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