??? 摘??要: 提出了一種基于iCAN總線的汽車駕駛狀態測量節點" title="測量節點">測量節點的設計,給出了測量節點的硬件實現框圖及系統中轉發器軟件的設計方法,還對采用的加速度傳感器" title="加速度傳感器">加速度傳感器的數據處理方法進行了說明。?
????關鍵詞: iCAN-bus;智能測控" title="智能測控">智能測控節點;LPC2119;加速度傳感器
?
??? 控制器局域網CAN(Controller Area Network)是國際上應用最廣泛的現場總線之一。CAN最初被設計作為汽車環境中的控制總線,在車載各電子控制裝置(ECU)之間交換信息,形成汽車電子控制網絡。如在發動機管理系統、變速箱控制器、儀表裝備、電子主干系統中,均嵌入CAN控制裝置[1]。CAN 總線具有實時性強、傳輸距離遠、抗電磁干擾能力強、成本低等優點,以其高性能、高可靠性和獨立的設計而被廣泛應用于汽車工業、航空工業、工業控制、安全防護等領域。?
??? 本文提出了一種以Philips LPC2119為控制器的汽車駕駛狀態測量節點的設計, iCAN-bus協議的應用使汽車駕駛狀態(方向盤、油門、剎車和ECU控制等信息)的采集、處理和信息管理更具實時性和高效性。經實驗測試,該控制系統數據傳輸快速、準確。?
1 CAN總線系統組成模式?
1.1 基于iCAN協議的CAN網絡?
??? 在本文的系統中,采用自主研發的iCAN協議作為本系統的應用協議[2]。iCAN協議是基于CAN的內部通信協議,該協議小巧、通信效率高,對硬件資源要求低,非常適合于小型系統的使用。系統中的設備統稱為iCAN節點。iCAN協議定義的通信方式是“面向節點,基于連接”的通信方式。“面向節點”是指源節點地址及目的節點地址均已給定,即對于任何一個報文參與通信的雙方是確定的。如圖1所示。?
?
?
??? “基于連接”是指在網絡中任何一個參與通信的從站設備都必須和主站設備之間建立一個獨立的通信連接。這樣也為對任何一個設備的通信進行監控提供了可能。如圖2所示。?
?
?
1.2 設備的通信模式?
??? iCAN協議定義了兩種通信方式:主從輪詢" title="輪詢">輪詢方式和事件觸發方式。主從輪詢方式又可分成點對點方式和廣播方式;事件觸發方式又可分成定時循環方式和狀態觸發方式。如表1所示。
?
?
1.3 實際的iCAN系統設計?
??? 在本文設計中,采用分布式處理的思想,每個從節點都能完成一些數據處理工作。例如,在加速度的數據采集中,相應從站完成數據的采集、調理、有效數據的判斷等。這樣,減輕了主節點的工作量,減少了通信次數從而能進一步提高通信質量。?
??? 在通信模式上,采用主從輪詢和事件觸發相結合的方式。在有從節點采集到有效數據的時候才主動向主節點報告,在通常情況下是沒有任何動作的。之所以還需要主從輪詢模式是基于以下原因。從節點如果長時間沒有向主節點發送數據,有兩種可能:第一,的確沒有數據;第二,該節點已經損壞。在節點損壞的情況下,不會有任何數據發出,所以主節點必須定時查詢從節點的狀態,這個查詢周期可以設置得比較長,視具體要求而定(典型值在幾百毫秒到幾秒)。對于損壞的從節點,主站會及時向用戶報警。?
??? 系統由上位計算機節點(包括嵌入式PC機和CAN接口卡)作為系統的主節點,汽車駕駛狀態智能測控節點等作為從節點組成。網絡拓撲結構為總線型,通信介質為屏蔽雙絞線。主節點除了負責與從節點的基本通信外,還負責運行汽車駕駛狀態(疲勞駕駛)智能控制程序,動態顯示各節點的工作狀態和重要的現場參數以及報警信息等,并對各節點的控制參數、運行參數進行整定和修改。系統結構如圖3所示。從節點對方向盤、油門、剎車和ECU控制等信息進行采集并傳至主節點。對于不同的設備,其總線轉換接口原理相同,只是具體的轉換模塊不同。?
?
?
??? 油門控制加速度傳感器測量節點負責iCAN 總線的物理接口和底層協議的實現。測量節點如圖4所示。?
?
?
1.4 CAN控制器?
??? 該測量節點的硬件電路以Philips的單片機LPC2119為核心,由高速CAN收發器TJA1050 和抗干擾電路等組成[3]。LPC2119內帶有ARM7內核,具有封裝小、功耗低、多個32位定時器、4路10位ADC、2路CAN以及多達9個外部中斷等優點,使得節點具有強大的數據處理能力,可運行高級的算法,如快速傅立葉變換等。TJA1050提供了CAN控制器與物理總線之間的接口,以及對CAN總線的差動發送和接收功能。TJA1050是汽車專用高速CAN收發器,具有優秀的EMC和EMI性能。實踐證明,采用LPC2119和TJA1050構造的CAN通信模塊,外圍擴展能力強、空間小、同時可改善電磁輻射性能和抗電磁干擾性能。該智能節點對加速度傳感器信號進行模數轉換,并對所獲得的數據進行處理;CAN控制器用于同上位機進行數據通信,完成CAN總線數據的接收與發送工作;各智能測控節點可以對各自的參數進行初始化、自動調整和配置等工作。?
1.5 Low-G系列加速度傳感器?
??? Freescale雙軸加速度傳感器MMA6260Q由兩部分組成:G-單元和信號調理ASIC電路。G-單元是機械結構,它是用半導體制作技術、由多晶硅半導體材料制成;信號調理ASIC電路由積分、放大、濾波和控制邏輯等組成,完成G-單元測量的信號到電壓輸出的轉換。加速度傳感器的輸出電壓與加速度成正比,為了測量加速度傳感器芯片的輸出電壓,通常使用帶有A/D的微控制器。傳感器輸出與A/D之間的RC濾波電路用于減小時鐘噪聲,電源與地之間的0.1μF電容是去耦電容,芯片安裝時要盡量減小加速度傳感器與微控制器之間的距離。測試電路如圖5所示。?
?
?
??? ARM7 LPC2119 的A/D轉換器基本時鐘由VPB時鐘提供。每個轉換器包含一個可編程分頻器,可將時鐘調整至逐步逼近轉換所需的4.5MHz(最大);完全滿足精度要求的轉換需要11個轉換時鐘,10位轉換時間小于2.44μs。為了降低噪聲和出錯幾率,模擬地和數字地之間、模擬電源和數字電源之間均用10μH的電感進行隔離。?
2 系統軟件設計?
??? 系統軟件設計" title="軟件設計">軟件設計包括兩方面:(1)智能測控節點軟件設計。主要是對加速度傳感器的采樣數據處理和完成與上位機之間的數據通信功能。(2)上位機軟件設計。主要包括CAN節點初始化、報文發送和報文接收。?
2.1 智能節點軟件設計?
??? 由加速度傳感器MMA6260Q采樣來的模擬信號由LPC2119 A/D轉換,經過有效數據檢查、數字濾波、標度變換、線性化技術等處理,消除由于隨機干擾帶來的誤差,得到實際被測加速度的準確數值。LPC2119初始化完成以下任務:設置工作方式、接收濾波方式、接收屏蔽寄存器AMR和接收代碼ACR、波特率參數和中斷允許寄存器IER等。系統設定工作頻率為16MHz,波特率配置為1Mb/s。?
2.2 報文發送和接收子程序
??? CAN控制器有三個獨立的發送緩沖寄存器,發送時要判斷緩沖空閑,本設計中,先判斷第一主發送緩沖區,然后進行數據格式轉換,啟動發送數據。報文發送、接收數據流程如圖6所示。CAN的發送和接收子程序完成了CAN控制器的底層驅動。?
?
?
??? 報文發送函數原型:INT32U CANSendData(CANNUM CanNum,INT32U Cmd,*RxBuf),CanNum:CAN控制器;Cmd:發送命令字;RxBuf:發送數據指針。?
??? 接收采用中斷方式,為避免數據丟失,在函數庫中建立環形緩沖結構:?
??? Typedef struct_RcvCANDataCycleBuf_{ INT32U WritePoint:8;ReadPoint:8;?FullFlag:8;?
??? stcRxBUF RcvBuf [CAN_RCV_BUF_SIZE];?
??? }stcRcvCANCyBuf,*P_stcRcvCANCyBuf;?
??? 報文接收函數原型:?
??? void ReadCanRxBuf(CANNUM CanNum,stcRcvCAN CyBuf*RcvCyBuf) ?
??? CanNum:CAN控制器; RcvCyBuf:目標環形緩沖區指針。?
2.3 iCAN協議報文接收處理?
??? 智能節點必須符合iCAN協議報文的格式,先要把CAN的數據轉換成符合iCAN協議格式的報文,再通過CAN的收發子程序發送和接收,iCAN報文的接收處理流程如圖7所示。?
?
?
??? 系統采用iCAN總線技術及協議設計,實現了汽車駕駛狀態——方向盤、油門、剎車和ECU控制等信息采集和處理。與以往的系統相比,其最大特點是提高了各測量節點的精度和穩定性以及系統數據通信的速度并增強了抗干擾能力。?
參考文獻?
[1] 鄔明寬. CAN 總線原理和應用系統設計[M]. 北京:?北京航空航天大學出版社,1996. ?
[2]?周立功. iCAN現場總線原理與應用[M]. 北京: 北京航空航天大學出版社,2007.?
[3]?周立功,張華. 深入淺出ARM7-LPC213x/214x(上、下)?[M].北京:北京航空航天大學出版社,2005.?