寧 濤
(合肥工業(yè)大學(xué) 機械與汽車工程學(xué)院,合肥 230009)
隨著汽車電子技術(shù)的發(fā)展以及人們對汽車舒適性、安全性、功能性等要求的不斷提高,汽車上的電子控制單元也越來越多。若仍采用傳統(tǒng)的通信方式,會使汽車上的線束越來越多,這不僅增加了整車的重量,增加了生產(chǎn)的成本,同時也加大了布線的難度。現(xiàn)在越來越多的汽車上采用CAN總線,CAN總線又稱作汽車總線,其全稱為“控制器局域網(wǎng)(CAN-Controller Area Network)”。 CAN 總線是一種現(xiàn)場總線,是德國Bosch公司為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議。CAN總線可以將汽車上的電子控制單元連接成一個網(wǎng)絡(luò),可以實現(xiàn)各個控制節(jié)點的數(shù)據(jù)共享,增強控制功能,提高汽車的安全性,降低燃油的消耗以及生產(chǎn)成本。SAE J1939協(xié)議是基于CAN總線通信協(xié)議制定的車輛應(yīng)用層通訊協(xié)議。它是由美國汽車工程學(xué)會(SAE)發(fā)布的,是一類專門用于卡車、大客車、農(nóng)業(yè)機械等的CAN 總線通信協(xié)議[1]。
早在20世紀(jì)80年代,Bosch的工程人員開始研究用于汽車的串行總線系統(tǒng),因為當(dāng)時還沒有一個網(wǎng)絡(luò)協(xié)議能完全滿足汽車工程的要求。1983年,UweKiencke開始設(shè)計新的串行總線,參加研究的還有Mercedes-Benz公司、Intel公司,還有德國兩所大學(xué)的教授。1986年,Bosch在SAE(汽車工程人員協(xié)會)大會上第一次提出了CAN。1987年,INTEL就推出了第一片CAN控制芯片—82526;隨后Philips半導(dǎo)體推出了82C200。1991年9月Bosch公司制定并發(fā)布了CAN技術(shù)規(guī)范(version 2.0),該規(guī)范包括A和B兩個部分。1993年,CAN的國際標(biāo)準(zhǔn)ISO11898公布,從此CAN協(xié)議被廣泛的用于各類自動化控制領(lǐng)域。1994年美國汽車工程師協(xié)會以CAN為基礎(chǔ)制定了SAEJ1939標(biāo)準(zhǔn),用于卡車和巴士控制以及通信網(wǎng)絡(luò)。發(fā)展到今天,幾乎每一輛歐洲生產(chǎn)的轎車上都有CAN。
CAN總線與一般的總線相比具有突出的可靠性、靈活性和實時性。其特點如下:
(1)CAN總線是目前為止唯一有國際標(biāo)準(zhǔn)的總線。
(2)CAN總線采用非破壞的仲裁技術(shù)。多個節(jié)點同時向總線發(fā)送信息時,就會導(dǎo)致沖突,此時優(yōu)先級較低的節(jié)點主動退出發(fā)送,優(yōu)先級較高的節(jié)點可以不受影響繼續(xù)傳送數(shù)據(jù),這就節(jié)省了總線沖突仲裁的時間。
(3)CAN為多主的方式工作,網(wǎng)絡(luò)上的節(jié)點可以在任何時刻向總線發(fā)送信息。
(4)CAN的節(jié)點只需對報文的標(biāo)識符濾波就可以實現(xiàn)點對點、一點對多點及全局廣播等幾種方式傳送接收數(shù)據(jù)。
(5)CAN總線直接通信在速率5 kbps的最遠距離可達10 km,通信速率最高可達1 Mbps,此時的通信最長距離為40 m。
(6)CAN總線上的節(jié)點數(shù)目主要取決于總線驅(qū)動電路,目前可達110個;在標(biāo)準(zhǔn)幀報文標(biāo)識符有11位,而在擴展幀的標(biāo)識符(29位)的個數(shù)幾乎不受限制。
(7)報文采用短幀結(jié)構(gòu),傳輸時間短,受干擾概率低,保證了數(shù)據(jù)出錯率極低;CAN的每幀信息都有CRC校驗以及其他的檢驗措施,具有極好的檢錯效果。
(8)CAN節(jié)點在錯誤嚴重的情況下具有自動關(guān)閉輸出的功能,以使總線上其他節(jié)點的操作不受影響。
CAN總線協(xié)議只定義了物理層和數(shù)據(jù)鏈路層的標(biāo)準(zhǔn),要將CAN總線應(yīng)用于工程項目和產(chǎn)品中必須制定上層的應(yīng)用層協(xié)議。SAE J1939協(xié)議是目前在大型汽車中應(yīng)用最廣泛的應(yīng)用層協(xié)議,速率可達到 250 Kbps[3]。SAE J1939 協(xié)議是以 CAN 2.0B 為基礎(chǔ)的,它不僅定義了物理層和數(shù)據(jù)鏈路層,還定義了網(wǎng)絡(luò)層和應(yīng)用層的協(xié)議。它的數(shù)據(jù)鏈路層定義了信息幀的數(shù)據(jù)結(jié)構(gòu)、編碼規(guī)則,包括通信優(yōu)先權(quán)、傳輸?shù)姆绞?、通信要求、總線的仲裁、錯誤的檢測以及處理,對CAN擴展幀的29位標(biāo)識符重新分組定義,使得報文的標(biāo)識符能夠描述報文的全部特征。CAN擴展幀的29位標(biāo)識符與J1939協(xié)議定義的29位標(biāo)識符定義關(guān)系如圖1所示。
SAE J1939應(yīng)用層協(xié)議定義了協(xié)議數(shù)據(jù)單元(PDU),它用來定義CAN數(shù)據(jù)幀的消息的意義。SAE J1939協(xié)議數(shù)據(jù)單元有七個部分組成,分別是報文的優(yōu)先級、保留位、數(shù)據(jù)頁、PDU格式、特殊PDU、源地址和數(shù)據(jù)場等,如圖2所示。每一個CAN數(shù)據(jù)只能有一個PDU。其中優(yōu)先級P有3位,決定報文的優(yōu)先級,其值越小優(yōu)先級越高;R為保留位,以備以后開發(fā)使用;數(shù)據(jù)頁DP是選擇參數(shù)群描述的輔助頁;PDU格式PF的8位是確定數(shù)據(jù)場對應(yīng)的參數(shù)群編號的場;特定PDU(PS)的定義取決于PF的定義,當(dāng)PF的值在0~239之間時,PS的值表示目標(biāo)地址,報文為點對點發(fā)送到目的地址;當(dāng)PF的值在 240~255 之間時,報文向全局地址發(fā)送[4],PS 表示的是群擴展值;源地址(SA)定義發(fā)送該報文的設(shè)備地址,一個源地址只能匹配一個設(shè)備;數(shù)據(jù)場為該條報文所攜帶的數(shù)據(jù),最多有8個字節(jié)長度。
客車上電子控制系統(tǒng)主要包括發(fā)動機電子控制單元、變速器電子控制單元、車身控制單元、儀表控制單元、行車記錄儀控制單元、ABS控制單元等[6]。各控制節(jié)點通過CAN總線連接起來。由于發(fā)動機節(jié)點、變速器節(jié)點以及ABS節(jié)點等對數(shù)據(jù)傳輸、共享的實時性要求比較高,速率達到500 kb/s,這些節(jié)點通過高速CAN總線連接起來;而車身等節(jié)點對實時性要求不高,使用的是低速CAN連接各節(jié)點,速率是100 kb/s。由于低速CAN與高速CAN之間的傳輸速率不同,需要經(jīng)過整車控制器(網(wǎng)關(guān))作為接收兩邊報文的中轉(zhuǎn)站,然后再將數(shù)據(jù)發(fā)送到對方,實現(xiàn)數(shù)據(jù)的共享??蛙嚳刂葡到y(tǒng)的網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖3所示。
SAE J1939協(xié)議的應(yīng)用層規(guī)定了車輛控制與通信用到的各種參數(shù),包括信號的描述可疑參數(shù)編號(SPN)和參數(shù)群編號(PGN)。SPN 為信號參數(shù),PGN為報文參數(shù)[6]。其中PGN包括29位標(biāo)識符中的保留位、數(shù)據(jù)頁、PDU格式PF和群擴展場。圖3列出了客車控制系統(tǒng)當(dāng)中主要的控制節(jié)點,本文就以發(fā)動機控制節(jié)點的主要報文內(nèi)容說明SAE J1939應(yīng)用層協(xié)議的應(yīng)用。發(fā)動機控制節(jié)點主要采集發(fā)動機的轉(zhuǎn)速、燃油溫度、冷卻液溫度、冷卻液壓力以及機油壓力信息。由于發(fā)動機節(jié)點是比較重要的節(jié)點,將其地址設(shè)置為0[7],發(fā)送的數(shù)據(jù)也有較高的優(yōu)先級。發(fā)動機控制節(jié)點將采集的數(shù)據(jù)發(fā)送到整車控制器進行相應(yīng)的處理計算,整車控制器再將數(shù)據(jù)發(fā)送到其他的節(jié)點,如儀表節(jié)點進行顯示。發(fā)動機節(jié)點發(fā)送報文的數(shù)據(jù)長度為8字節(jié),發(fā)送周期20 ms,數(shù)據(jù)頁為0,PDU格式PF值240,為群擴展格式;特定PDU(PS)為 3,優(yōu)先級為 3,參數(shù)群編號為 61 443(0xF003)。具體報文數(shù)據(jù)內(nèi)容定義如表1所示。
表1 發(fā)動機控制單元報文數(shù)據(jù)域定義
CAN總線是目前在汽車上應(yīng)用最廣泛,也是最有前途的總線,其不僅通信速率高,通信可靠性也高。SAE J1939協(xié)議是基于CAN總線的在汽車上應(yīng)用最廣泛的應(yīng)用層協(xié)議,對汽車應(yīng)用到的各類參數(shù)都進行了定義。將來J1939協(xié)議在汽車上會有很廣闊的應(yīng)用前景[6]。
本文通過J1939協(xié)議,對客車各控制節(jié)點報文具體參數(shù)進行了詳細的定義,各節(jié)點之間能夠?qū)崟r發(fā)送與接收數(shù)據(jù),實現(xiàn)數(shù)據(jù)共享,不僅提高了客車控制效率和整體性能,而且還提高了安全性、燃油經(jīng)濟性和操作的穩(wěn)定性。
[1]羅峰,孫澤昌.汽車CAN總線系統(tǒng)原理、設(shè)計與應(yīng)用[M].北京:電子工業(yè)出版社,2010,1.
[2]饒運濤,鄒繼軍,鄭勇蕓.現(xiàn)場總線CAN原理與應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2003.
[3]李然,武俊峰,王海英,趙旭.電動公交客車CAN總線網(wǎng)絡(luò)通信結(jié)構(gòu)的設(shè)計[J].哈爾濱理工大學(xué)學(xué)報,2012,17(1):68-73.
[4]周躍鋼.基于LabVIEW和J1939協(xié)議的CAN總線通訊平臺構(gòu)建[J].汽車科技,2011,(6):18-22.
[5]李誠,孟廣仕,劉波.CAN總線在客車上的網(wǎng)絡(luò)控制[J].科技縱橫,2009,134-138.
[6]保翔.基于J1939協(xié)議的發(fā)動機電控信號的提取方法[J].機電信息,2009,30:16-17.
[7]趙佳.基于SAE J1939協(xié)議的混合動力客車通訊技術(shù)[J].客車技術(shù)與研究,2011,(2):55-57.
[8]高燕,高松,趙明.SAE J1939協(xié)議在客車上的應(yīng)用現(xiàn)狀及展望[J].工業(yè)控制計算機,2006,19(4):68-69.