產品廠商新聞方案技術培訓下載招聘品牌展會視頻媒體國防軍民融合

  •  
     

    CAN總線技術在智能汽車系統中的應用

    2010-01-12

     

    摘  要:   智能汽車是一種具有自動駕駛功能的汽車,它綜合應用了計算機、控制、信息處理、通訊以及傳感器等多種技術。使用CAN總線保證了系統內部數據交換的高速性和可靠性。引入了一種帶有CAN總線接口的單片機--PIC18F258,介紹了它CAN模塊的結構及其在完成通信任務時的工作原理。該方法在人工智能和工業測控領域具有一定的應用價值。


    關鍵詞:   智能控制     CAN總線      PIC18F258    中斷接收


    1 引言

        CAN總線是控制局域網絡(Control Area Network)的簡稱,它最早由德國BOSCH公司提出。由于它具有傳輸速率高,抗干擾能力強,硬件連接方便等突出特點,非常適合用于汽車系統中,解決眾多測試與控制儀器之間的數據交換問題。

    2  智能汽車系統簡介

        智能汽車主要被用于野外環境中,它可以按照人預先設定的指令,根據地圖信息做出全局路徑規劃,并在行進過程中不斷感知周圍的環境信息,自主地制定出各種決策,引導自身安全地行使并完成相應的規劃和操作任務。


        它除具備普通汽車的各類功能外,還增加了測算車身位置,測算車頭方向,控制汽車自帶有向天線的方向使其與基地之間進行無線通信等功能。如此眾多的信息,如果完全采用RS-232總線進行內部數據交換顯然有些力不從心。因而采用CAN總線作為其內部數據傳輸的通道,是理所當然的。

    3  系統設計

    3.1  概述
         智能汽車的控制系統由擔負著檢測計算功能的下位機系統和擔負著控制顯示功能的上位機系統組成。圖1為該系統的功能框圖。


    下位機系統各模塊及其功能:
        〇 GPS數據采集模塊,用來測量汽車當前位置。
        〇 磁羅盤數據采集模塊,用來測量車頭的方向。
        〇 步進電機控制模塊,用來驅動有向天線的旋轉。
        〇 步進電機轉動角度限制模塊,用來測量有向天線相對于車頭的角度,并防止由于步
           進電機單方向轉動角度過大而造成的線路纏繞。
        〇 CAN模塊。
     

        注:圖1中的電位器用來測量步進電機轉過的角度,將它的輸出電平轉換成頻率信號再發往下位機。CAN總線使用共地的雙絞線作為其傳輸介質。

        上位機系統各模塊及其功能:
        〇 LCD模塊,用來顯示下位機傳送來的各種數據。
        〇 簡易鍵盤輸入模塊,通過8鍵鍵盤完成對下位機的一些簡單控制。
        〇 CAN模塊。
        上位機和下位機通信由CAN模塊和CAN總線來完成。其中,下位機要傳送給上位機的數據有,汽車當前的GPS坐標,車頭當前的方向,有向天線相對于車頭的角度;上位機要傳送給下位機的數據有,基地的GPS坐標,手動模式下電機旋轉的方向和角度。

    3.2  硬件實現
        系統上下位機均采用PIC18F258單片機,該單片機自帶CAN收發接口,它的引腳見圖2。CAN模塊相對獨立,其的主要特征如下:
            〇 通過ISO CAN標準測試。
            〇 執行CAN協議:CAN1.2 CAN2.0A CAN2.0B。
            〇 標準和擴展數據模式。
            〇 0-8位數據長度。
            〇 可編程速率高達1M bps。
            〇 2個數據接收緩沖器
            〇 6個完全接收濾波器,2個對應高優先權緩沖器,4個對應低優先權緩沖器。
            〇 2 個完全接收掩碼器。
            〇 3個具有優先權的發送緩沖器
        該系統中,上位機與其外圍設備鍵盤和LCD顯示器通過標準并行I/O總線相連,下位機與其外圍設備GPS接收器、磁羅盤以及電機驅動器通過RS-232串行總線相連,在此不做詳細介紹。圖3是CAN通信模塊硬件簡圖。

     

        由于單片機的輸出電流比較弱,難以驅動光電隔離器,為保險起見,信號輸入光偶前要經過74HC573鎖存;同樣為了增加信號驅動能力,經過隔離的信號要再次經過74HC573鎖存。


         使用該單片機,無須擴展CAN總線模塊,簡化了硬件設計,提高了運行效率。

    3.3  軟件實現


        PIC18F258的CAN模塊帶有眾多控制和數據寄存器,為方便起見,可以將它們做以下分類:
        〇控制和狀態寄存器
        〇發送緩沖寄存器
        〇接收緩沖寄存器
        〇波特率控制寄存器
        〇I/O控制寄存器
        〇中斷標志和控制寄存器


        CAN模塊可工作于6種模式下,配置模式,禁止模式,正常工作模式,監聽模式,自循環模式,錯誤識別模式。本系統涉及到了2種模式,配置模式和正常工作模式。


        首先在配置模式下將控制和狀態寄存器,波特率控制寄存器,I/O控制寄存器,中斷標志和控制寄存器,接收掩碼器和接受濾波器按照系統要求設定好,以保證CAN總線暢通。這些寄存器只能在配置模式下進行設定。設定完畢后,進入正常工作模式。上位機和下位機都將各自的CAN接收中斷打開,等待CAN總線傳送來的數據。所不同的是,上位機只在需要進行人工干預的情況下,向總線發送控制信號;而下位機是循環向總線發送采集到的信息的。


        圖4是CAN模塊發送數據的程序流程圖:
     

     


                          
      圖4   發送程序流程圖

        CAN模塊數據接收是通過中斷方式實現的,即每傳來一個報文,就發生一個中斷,然后將收到的數據從接收寄存器中轉移到指定的存儲區域內并保存起來 ,最后中斷返回。
    圖5是下位機CAN模塊接收數據的中斷服務程序流程圖:

     


     

    分享到:
     
     
     
     
    熱門產品
     
    推薦廠商
     
    關于我們 | 聯系我們 | 廣告服務 | 版權隱私 | 積分換禮 | 友情鏈接 | 站點導航 | 違規舉報
     
    曾道人黄金资料