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