客車網(wǎng)絡(luò)控制中CAN/CAN網(wǎng)橋設(shè)計
1 引言
控制器局部網(wǎng)CAN[1][2](Controller Area Network)是德國Robert Bosch公司在20世紀80年代初為汽車業(yè)開發(fā)的一種車載專用串行數(shù)據(jù)通信總線,經(jīng)過多年的發(fā)展,現(xiàn)在越來越多的被眾多汽車廠商所認可,并在包括BMW、Benz、VOLVO等汽車上使用。 CAN由于其獨特的特性,不僅在汽車領(lǐng)域,而且在工業(yè)控制領(lǐng)域也得到了廣泛的運用,如工業(yè)現(xiàn)場控制、小區(qū)安防、環(huán)境監(jiān)控等。由于在具體工程運用中,往往需要連接兩路CAN子網(wǎng),因此CAN/CAN網(wǎng)橋是必不可少的,是組網(wǎng)的關(guān)鍵設(shè)備之一。本文在將客車網(wǎng)絡(luò)控制系統(tǒng)劃分為底盤和車身的兩個網(wǎng)絡(luò)控制子系統(tǒng)的基礎(chǔ)上,利用Philips公司的LPC2119微控制器,從硬件和軟件上設(shè)計了一個CAN/CAN網(wǎng)橋。
2 客車網(wǎng)絡(luò)控制中的CAN/CAN網(wǎng)橋
由于目前汽車電子應(yīng)用的日益廣泛,CAN在轎車上應(yīng)用日益廣泛,但是在國內(nèi)的應(yīng)用還不是很多,只有在某些高檔豪華的車型上才會采用,CAN在國內(nèi)客車上的應(yīng)用也僅限于由國外公司幫助實施單總線局部聯(lián)網(wǎng)。汽車電子技術(shù)的網(wǎng)絡(luò)化是我國汽車電子研究與應(yīng)用的必然趨勢,CAN作為標準車載網(wǎng)絡(luò)技術(shù),其在汽車網(wǎng)絡(luò)化應(yīng)用的進程中將起著橋梁和紐帶的作用。由于客車中底盤部分涉及到整車行使的安全性,實時性要求和通信的信息量都明顯高于車身部分,因此本文在將客車網(wǎng)絡(luò)控制系統(tǒng)劃分為兩個子系統(tǒng)(底盤CAN和車身CAN)的基礎(chǔ)上,設(shè)計了連接兩路CAN的網(wǎng)橋。整個系統(tǒng)框架如圖1所示。
該網(wǎng)橋具有實現(xiàn)不同速率的CAN網(wǎng)段連接、不同網(wǎng)段的CAN報文過濾和轉(zhuǎn)發(fā)的功能。
使用CAN/CAN網(wǎng)橋的優(yōu)點[1]主要表現(xiàn)在以下幾方面:
(1)過濾通信量。網(wǎng)橋接收一個子網(wǎng)的報文,只有當報文是發(fā)送給網(wǎng)橋所連的另一個子網(wǎng)時才轉(zhuǎn)發(fā),否則不轉(zhuǎn)發(fā);
(2)擴大了通信距離;
(3)提高了通信的最大節(jié)點數(shù);
(4)各網(wǎng)段可使用不同的通信速率;
(5)提高了系統(tǒng)可靠性。當網(wǎng)絡(luò)出現(xiàn)故障時,一般只影響個別網(wǎng)段;
(6)整個網(wǎng)絡(luò)性能得到改善。
當然,使用網(wǎng)橋也有一定的缺點,如:
(1)由于網(wǎng)橋?qū)邮盏膸却鎯筠D(zhuǎn)發(fā),增加了延時;
(2)CAN總線的MAC子層并沒有流量控制功能。當網(wǎng)絡(luò)上的負荷很重時,可能因網(wǎng)橋中緩沖區(qū)的存儲空間不夠而發(fā)生溢出,產(chǎn)生幀丟失的現(xiàn)象;
(3)網(wǎng)橋若出現(xiàn)故障,對相鄰兩個子網(wǎng)的工作都將產(chǎn)生影響。
3 CAN/CAN網(wǎng)橋的硬件設(shè)計
3.1 LPC2119
CAN/CAN網(wǎng)橋是以ARM微控制器LPC2119[3][5]為核心的軟硬件系統(tǒng)。LPC2119是Philips公司生產(chǎn)的一款基于支持實時仿真和跟蹤的16/32位ARM7 TDMI-S MCU,帶有128KB嵌入的高速Flash存儲器。獨特的加速結(jié)構(gòu)使32位代碼能夠在最大時鐘速率下運行。對代碼規(guī)模有嚴格控制的應(yīng)用可使用16位Thumb模式將代碼規(guī)模降低超過30%,而性能的損失卻很小。LPC2119內(nèi)部集成2個CAN控制器,為設(shè)計CAN/CAN網(wǎng)橋提供了可能。它的主要特性有:單個總線上的數(shù)據(jù)傳輸速率高達1Mb/s;32位寄存器和RAM訪問;兼容CAN2.0B;全局驗收濾波器可以識別所有的11位和29位Rx標識符;驗收濾波器為選擇的標準標識符提供Full CAN style自動接收。
LPC2119內(nèi)部集成的CAN控制器與Philips公司的SJA1000 CAN控制器相比較大致相同,只是在驗收濾波這一環(huán)略有不同,這為習(xí)慣SJA1000的開發(fā)人員采用LPC2119提供了方便。在傳統(tǒng)的SJA1000中,接收過濾只能滿足一些規(guī)律性較高的ID篩選過濾,或個數(shù)較少的ID(一般小于10~15個)進行任意篩選過濾,難以實現(xiàn)更復(fù)雜的任意ID進行篩選過濾,這無疑增加了系統(tǒng)軟件設(shè)計及運行時負擔。LPC2000系列32位ARM微控制器中為所有CAN控制器提供了全局的接收標識符查詢功能。它包含一個512×32(2k字節(jié))的RAM,通過軟件處理,可在RAM中存放1~5個標識符表格。整個AF RAM可容納1024個標準標識符或512個擴展標識符,或兩種類型混合的標識符。由于允許的表格范圍有2k字節(jié),所以能容易地滿足設(shè)計復(fù)雜的ID接收過濾要求。
全局接收過濾的工作流程:當CAN控制器的接收端已接收到一個完整的標識符,它將通知接收過濾器。接收過濾器響應(yīng)這個信號,并讀出控制器編號、標識符尺寸(11bit或29bit),然后,接收過濾器搜索AF RAM中的表格進行匹配,以決定接收或放棄這一幀信息。
3.2 基于LPC2119的CAN/CAN網(wǎng)橋的結(jié)構(gòu)設(shè)計
CAN/CAN網(wǎng)橋的硬件框圖如圖2所示。LPC2119分別通過光電耦合電路和高速CAN總線收發(fā)器TJA1050與兩路總線相連。兩路CAN的連接方式基本相同。CAN總線驅(qū)動器都采用帶隔離的DC/DC模塊單獨供電。這樣,不僅實現(xiàn)了兩路CAN接口之間的電氣隔離,也實現(xiàn)了網(wǎng)橋與CAN總線的隔離。雖然這在一定程度上增加了網(wǎng)橋硬件的復(fù)雜性和成本,但卻是值得的。采取隔離措施可使故障局限在某一網(wǎng)段內(nèi),而不至于影響其它網(wǎng)段,既便于維護,又保證了系統(tǒng)設(shè)備的安全。采用光電耦合電路將CAN收發(fā)電路與LPC2119從物理上相隔離,避免了電氣上影響LPC2119的工作。
CAN/CAN網(wǎng)橋除了以上主要部分以外還加了LED指示、看門狗電路和復(fù)位電路。幾個LED主要指示兩路CAN的工作狀況以及出錯報警。LPC2119內(nèi)置了看門狗電路,當由于程序跑飛或者其他原因?qū)е孪到y(tǒng)工作不正常時將自動復(fù)位。復(fù)位電路采用MAX708SD來產(chǎn)生穩(wěn)定的復(fù)位信號。
評論