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