一、概述
隨著汽車工業(yè)以及自動(dòng)化程度的發(fā)展,現(xiàn)代汽車中所使用的電子控制系統(tǒng)和通訊系統(tǒng)越來(lái)越多,如發(fā)動(dòng)機(jī)電控系統(tǒng)、自動(dòng)變速器控制系統(tǒng)、防抱死制動(dòng)系統(tǒng)(ABS)、自動(dòng)巡航系統(tǒng)(ACC)和車載多媒體系統(tǒng)等,這些系統(tǒng)之間。系統(tǒng)和汽車的顯示儀表之間,系統(tǒng)和汽車故障診斷系統(tǒng)之間均需要進(jìn)行數(shù)據(jù)交換,如此巨大的數(shù)據(jù)交換量,如仍然采用傳統(tǒng)數(shù)據(jù)交換的方法,即用導(dǎo)線進(jìn)行點(diǎn)對(duì)點(diǎn)的連接的傳輸方式將是難以想象的,因此,用串行數(shù)據(jù)傳輸系統(tǒng)取而代之就成為必然的選擇。目前汽車上的電子部件越來(lái)越多,它們分別擔(dān)負(fù)著不同的作用并掛在不同的總線- CAN總線上。CAN 是控制局域網(wǎng)絡(luò)(Control Area Network)的簡(jiǎn)稱[/B],最早由德國(guó)BOSCH 公司推出,用于汽車內(nèi)部測(cè)量與執(zhí)行部件之間的數(shù)據(jù)通信。其總線規(guī)范已被ISO 國(guó)際標(biāo)準(zhǔn)組織制訂為國(guó)際標(biāo)準(zhǔn)。CAN 的信號(hào)傳輸采用短幀結(jié)構(gòu),每一幀的效字節(jié)數(shù)為8 個(gè),因而傳輸時(shí)間短,受干擾的概率低。當(dāng)節(jié)點(diǎn)嚴(yán)重錯(cuò)誤時(shí),具有自動(dòng)關(guān)閉的功能,以切斷該節(jié)點(diǎn)與總線的聯(lián)系,使總線上的其他節(jié)點(diǎn)及其通信不受影響,具有較強(qiáng)的抗干擾能力。CAN 總線開(kāi)始被用于汽車的電子系統(tǒng)通訊上起源于歐洲,它具有極強(qiáng)的抗干擾能力及糾錯(cuò)能力。汽車在運(yùn)行過(guò)程中,所屬電子部件之間需要進(jìn)行通訊以交換實(shí)時(shí)數(shù)據(jù),但是由于這些電子部件可能分別掛在不同的CAN總線上,而不同的CAN總線具有不同的數(shù)據(jù)傳輸速率,所以不同的CAN總線之間不能直接進(jìn)行數(shù)據(jù)通訊,這就需要一個(gè)CAN總線網(wǎng)關(guān)控制器來(lái)進(jìn)行協(xié)調(diào)高速CAN總線和低速CAN總線之間的通信。示意圖如下圖所示。
二、硬件設(shè)計(jì)
1、 總體框圖
作為一個(gè)工業(yè)上應(yīng)用的可靠CAN節(jié)點(diǎn),看門(mén)狗、電源隔離和信號(hào)隔離是必要的,總體原理框圖如下:
2、 硬件原理圖
從以上可以看出,該硬件電路主要由三部分組成。
I、 處理器最小系統(tǒng)
處理器采用帶有兩路CAN接口的ARM7系列單片機(jī) - LPC2119,該單片機(jī)內(nèi)部有兩路CAN接口、32位處理器、內(nèi)部總線結(jié)構(gòu)為哈佛總線結(jié)構(gòu)。如下圖所示:
復(fù)位電路主要采用采用專用復(fù)位芯片SP706以及數(shù)據(jù)緩沖芯片74HC125來(lái)構(gòu)成,如下圖所示:
該電路具有按鍵復(fù)位、上電復(fù)位和低電壓復(fù)位功能。按鍵復(fù)位主要用于系統(tǒng)調(diào)試功能,經(jīng)74HC125可以輸出兩路復(fù)位信號(hào)-系統(tǒng)復(fù)位信號(hào)和JTAG復(fù)位信號(hào)。
時(shí)鐘電路采用常用的無(wú)源晶振與微調(diào)電容組成。如圖所示。
程序燒寫(xiě)口采用JTAG方式,比較方便在線調(diào)試。如圖所示。
II、 電源控制部分
本系統(tǒng)共需要四組電源:5V、3.3V、1.8V,另外還有CAN隔離電源(5V)。電源主芯片采用開(kāi)關(guān)電源AP1509,其中5V電源是主電源,為其他各組電源提供輸入電源,由于汽車上只有DC12V電源,所以需要進(jìn)行DC/DC轉(zhuǎn)換,電路如下:
AP1509是一款寬輸入電壓范圍的DC/DC轉(zhuǎn)換器,輸入電壓可高達(dá)22V,輸出負(fù)載電流可高達(dá)2A。并且有可控輸入信號(hào)端SD,可以切斷或開(kāi)啟該芯片的正常工作,以達(dá)到節(jié)電的目的。
本系統(tǒng)的處理器LPC2119需要兩組電源- 3.3V和1.8V,其中1.8V為處理器的內(nèi)核電源,3.3V為處理器的I/O電源,電路如下:
由于CAN總線現(xiàn)場(chǎng)的電磁干擾非常強(qiáng),所以需要對(duì)CAN電源進(jìn)行單獨(dú)隔離,避免干擾處理器的正常運(yùn)行。主要就是采用一個(gè)隔離芯片,電路如下:
III、 CAN收發(fā)電路
該部分是系統(tǒng)的核心部分。共有兩路完全相同的電路分別掛在兩路CAN總線上。
電路如下:
CAN電路部分與處理器部分需要通過(guò)光耦進(jìn)行電氣隔離。采用了高速光耦芯片
TLP113。CAN收發(fā)器芯片采用TJA1050,該芯片的主要特點(diǎn)有:
● 高速 (高達(dá) 1 Mbaud)
● 至少可以連接110個(gè)節(jié)點(diǎn)
● 總線保護(hù)及終端保護(hù)功能
● 符合ISO 11898 標(biāo)準(zhǔn)
從上圖可以看出,在結(jié)構(gòu)上,CAN收發(fā)器TJA1050左側(cè)連接系統(tǒng)處理器,右側(cè)連接CAN總線。實(shí)現(xiàn)了單片機(jī)對(duì)CAN總線數(shù)據(jù)的操作。
三、軟件設(shè)計(jì)
CAN 是一種實(shí)時(shí)數(shù)據(jù)總線,它不需要給出信號(hào)接受者的地址,信號(hào)發(fā)送者將安全編碼后的數(shù)據(jù)發(fā)給所有的接受者。高速的CAN 總線每毫秒內(nèi)可傳送32bytes 有效數(shù)據(jù)。每個(gè)信號(hào)接受者從總線上讀取其所需的數(shù)據(jù)。CAN總線數(shù)據(jù)的收發(fā)遵循CAN-BUS 2.0協(xié)議,運(yùn)用到汽車上即為j1939協(xié)議。CAN-BUS 技術(shù)減少了線束的數(shù)量和控制器接口的引腳數(shù),與此同時(shí)可以更簡(jiǎn)單、迅速地實(shí)現(xiàn)在線編程、診斷,甚至多個(gè)控制器共同作用等新功能。當(dāng)停車發(fā)動(dòng)機(jī)熄火時(shí),CAN-BUS 的舒適型系統(tǒng)將自動(dòng)處于休眠狀態(tài),整個(gè)系統(tǒng)處于最低耗電狀態(tài),從而節(jié)省能源的消耗。一旦接受到車門(mén)開(kāi)啟等信號(hào),無(wú)需發(fā)動(dòng)機(jī)啟動(dòng),系統(tǒng)立即被喚醒而激活,開(kāi)始接受各處節(jié)點(diǎn)傳遞的信息。本裝置主要負(fù)責(zé)兩條CAN總線上數(shù)據(jù)的互相轉(zhuǎn)發(fā),并不對(duì)數(shù)據(jù)作任何改動(dòng)或診斷,即全透明傳輸.設(shè)置高速CAN總線上的數(shù)據(jù)傳送速率為500K,低速CAN總線上的數(shù)據(jù)傳送速率為125K.汽車上的每個(gè)電子模塊均有CAN接口,以連接到CAN總線上.汽車運(yùn)行時(shí),所有電子模塊均通過(guò)各自的CAN接口向CAN總線發(fā)送系統(tǒng)實(shí)時(shí)數(shù)據(jù),而需要CAN數(shù)據(jù)的模塊則從CAN總線接收數(shù)據(jù),然后再作處理或診斷.軟件總體架構(gòu)采用中斷結(jié)構(gòu),數(shù)據(jù)幀采用8位標(biāo)準(zhǔn)幀格式.該車載網(wǎng)關(guān)控制器的軟件流程圖如下:
主程序流程圖
中斷服務(wù)程序流程圖
目前CAN總線在汽車上已經(jīng)得到廣泛應(yīng)用,包括雅閣、新天籟、邁騰、領(lǐng)域、奧迪、寶馬、奔馳、凌志等!