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