本文所敘述的基于J1939的重型商用車(chē)CAN通訊平臺,主要用于獨立開(kāi)發(fā)的發(fā)動(dòng)機電控單元、AMT(Automatic and Mechanical Transmission機械自動(dòng)變速箱)電控單元以及防抱死制動(dòng)系統三者之間,通過(guò)接收和發(fā)送來(lái)自不同節點(diǎn)的消息實(shí)現信息的實(shí)時(shí)傳遞和共享。 SAE J1939協(xié)議規范及通信原理 在早期載貨卡車(chē)、大客車(chē)上的電子系統采用串行通信的方法,用SAE J1587標準來(lái)實(shí)施,但是其速度較慢且傳遞的數據量少,不適用于高速通信的場(chǎng)合。近年來(lái)CAN總線(xiàn)已發(fā)展成為車(chē)輛電子系統的主流總線(xiàn),載貨車(chē)及大客車(chē)已制定了SAE J1939協(xié)議作為它的通信標準。SAE J1939協(xié)議是由SAE組織發(fā)布并以CAN2.0B技術(shù)規范為基礎的串行通信協(xié)議標準,它是一種支持閉環(huán)控制的在多個(gè)ECU之間高速通信的網(wǎng)絡(luò )協(xié)議,通訊速率最高可達到250Kbit/s。J1939協(xié)議以CAN2.0為網(wǎng)絡(luò )核心,取自ISO(國際標準化組織)定義的OSI模型中的四層:物理層、數據鏈路層、應用層以及網(wǎng)絡(luò )管理層,其中CAN2.0技術(shù)規范定義了物理層及數據鏈路層規范,不同的汽車(chē)廠(chǎng)商可以制定符合自身需要的應用層協(xié)議來(lái)建立更加完善的系統。SAE J1939支持的開(kāi)放系統互連(OSI)模型如圖1所示。 在數據鏈路層,J1939協(xié)議對CAN標識符進(jìn)行了重新定義,并且僅使用CAN擴展幀格式作為其標準的通信消息幀格式并進(jìn)行了詳細的劃分和定義,而CAN標準幀則留給用戶(hù)作為自定義通信消息幀。J1939協(xié)議采用PDU(Protocol Data Unit,協(xié)議數據單元)傳遞信息,對CAN2.0B擴展格式29位標識符進(jìn)行了重新定義,它包含了以下幾個(gè)部分:優(yōu)先權(P)、保留位(R)、數據頁(yè)標識(DP)、PDU格式(PF)、PDU特定域(PS)、源地址(SA)。 SAE J1939PDU的數據格式如表1所示。 網(wǎng)絡(luò )層的主要作用是用于定義兩個(gè)或多個(gè)SAE J1939網(wǎng)絡(luò )間的網(wǎng)絡(luò )連接設備網(wǎng)橋的消息過(guò)濾功能。通過(guò)采用消息過(guò)濾功能,使兩個(gè)SAE J1939協(xié)議的網(wǎng)絡(luò )得以共享期望的PGN而無(wú)需將過(guò)度的網(wǎng)絡(luò )資源消耗在不期望的PGN上。 J1939協(xié)議應用層中的參數主要可分為三類(lèi):傳輸信號,離散參數(測量值),以及控制命令傳遞值(狀態(tài)量)。狀態(tài)參數表示具有多態(tài)信號的某一種狀態(tài),如發(fā)動(dòng)機剎車(chē)使能/禁能,巡航控制激活/關(guān)閉,扭矩/速度控制超載模式,錯誤代碼等;而測量參數則表示所接受到的信號的值的具體大小,如缸內爆發(fā)壓力、最大巡航速度、發(fā)動(dòng)機轉速等。不同類(lèi)型的參數、其范圍類(lèi)型也不同。在J1939協(xié)議中數據的傳輸范圍并不等于傳輸數值的范圍。對于物理數據J1939有如下的計算公式:物理數據=比例系數×傳輸數值+偏移量。 為了能更全面地定義應用層中各個(gè)物理參數的范圍和精度,J1939協(xié)議為各物理參數定義了SLOT(比例Scaling,界限Limit,偏移量Offset和傳送Transfer Function)這些概念,主要用于定義新的參數。Transfer Function:傳輸功能表示了數據的用途;Scaling:比例系數表示的是物理數據的精度;Offset:偏移量決定了物理參數數據范圍的初始量;Limit:數據范圍則是根據傳輸數值范圍、比例系數和偏移量所決定的物理參數的數據范圍。在SAE J1939中增加新參數時(shí),可以在給定的參數類(lèi)型中盡量保持數據的一致性。 CAN通訊平臺硬件設計 所要設計的CAN通訊平臺是在發(fā)動(dòng)機、變速器以及制動(dòng)系統之間傳遞數據,因此需要具備基本的接收和發(fā)送功能。通訊平臺硬件系統主要由CAN控制器和CAN驅動(dòng)器收發(fā)器兩個(gè)部分組成。 CAN控制器硬件選用的是英飛凌(Infineon) 公司的XC164CM系列單片機,它集成有CAN控制模塊。該單片機的TwinCAN模塊包含兩個(gè)全CAN功能節點(diǎn),兩節點(diǎn)可以獨立工作或者通過(guò)網(wǎng)關(guān)功能交換數據幀或遠程幀,該模塊還擁有32個(gè)CAN消息通道,這32個(gè)報文對象可以被獨立地分配到兩個(gè)CAN節點(diǎn)之一并設置為發(fā)送或者接收對象,它們可以設置成處理帶11位或29位標識符的幀。這個(gè)CAN控制器符合CAN規范V2.0B,每個(gè)CAN節點(diǎn)都有控制寄存器,支持速率可到1Mbit/s。 CAN驅動(dòng)器收發(fā)器選擇NXP公司的PCA82C250芯片給CAN控制器與物理總線(xiàn)之間提供接口。該芯片提供對總線(xiàn)的差動(dòng)發(fā)送和接收功能,也可以支持最高到1Mbit/s的通訊速率。其驅動(dòng)電路內部具有限流電路,可防止輸出極對電源、地或負載的短路。當結溫超過(guò)160℃時(shí),兩個(gè)發(fā)送器輸出端極限電流將減小,從而限制了芯片的溫升,實(shí)現了過(guò)熱保護。同時(shí),PCA82C250芯片采用了雙線(xiàn)差分驅動(dòng),有助于抑制汽車(chē)在惡劣電器環(huán)境下的瞬變干擾。 CAN總線(xiàn)接口電路的設計在遵循SAE J1939協(xié)議的同時(shí),要考慮對接口電路進(jìn)行一定抗干擾和保護措施。連接X(jué)C164CM單片機與PCA82C250芯片的硬件電路設計如圖2所示。 根據SAE J1939-11 中要求,線(xiàn)性總線(xiàn)的主要中樞鏈路的每個(gè)終端都必須以一個(gè)合適的電阻來(lái)結束,用以提供CAN_H和CAN_L導線(xiàn)的正確終端,其取值范圍應在 110W~130W之間,額定值為120W。實(shí)際設計時(shí)在PCA82C250的CANH與CANL之間接入一個(gè)阻值為120W的電阻RL作為CAN總線(xiàn)抑制反射的終端電阻。CAN_H和CAN_L與地之間各并聯(lián)一個(gè)30pF的電容,可以起到濾除總線(xiàn)上的高頻干擾的作用,并且具有一定的防電磁輻射能力。 電路設計時(shí)考慮到進(jìn)一步提高總線(xiàn)節點(diǎn)的抗干擾能力,有時(shí)在CAN控制器和CAN驅動(dòng)器之間加入光耦器件,并使用隔離電源供電。但是增加光耦也會(huì )增加總線(xiàn)節點(diǎn)的循環(huán)延遲,信號在每個(gè)節點(diǎn)要從發(fā)送和接收路徑通過(guò)這些器件兩次,這將減少當位速率給定時(shí)可使用的最大的總線(xiàn)長(cháng)度。 CAN通訊平臺軟件流程 軟件的設計工作主要是基于底層硬件的CAN控制器驅動(dòng)程序設計,該部分主要是面向CAN控制器的硬件系統的配置和CAN報文幀的收發(fā)處理,從而提供了面向通信層的服務(wù)功能,這由CAN模塊的初始化函數和CAN報文幀的發(fā)送接收函數來(lái)完成。 實(shí)車(chē)驗證 將已開(kāi)發(fā)CAN通訊硬件平臺搭載在解放牌平頭柴油牽引車(chē)上,斷開(kāi)AMT電控單元與發(fā)動(dòng)機和制動(dòng)系統之間的CAN總線(xiàn),接入CAN通訊平臺后進(jìn)行實(shí)車(chē)測試,試驗場(chǎng)地為長(cháng)直坡道。重型車(chē)先平路起步后上坡,連續換擋至最高檔位并最終制動(dòng),整個(gè)實(shí)驗過(guò)程中沒(méi)有出現控制錯誤,車(chē)輛能夠正常工作,利用串口傳遞數據觀(guān)測總線(xiàn)實(shí)時(shí)的信息流,得到了部分通訊數據(略)。 CAN通訊平臺上接受和發(fā)送的報文均符合SAE J1939協(xié)議,包含了在CAN通訊平臺上接收和發(fā)送到來(lái)自發(fā)動(dòng)機、AMT以及制動(dòng)系統的部分報文內容,先舉例說(shuō)明一組來(lái)自發(fā)動(dòng)機的報文如表2所示。 結語(yǔ) 本文從CAN總線(xiàn)和SAE J1939協(xié)議特點(diǎn)和原理的介紹入手,通過(guò)設計符合J1939通訊協(xié)議的硬件和軟件模塊,實(shí)現了在重型車(chē)上利用該CAN通訊平臺完成數據實(shí)時(shí)傳遞與共享的功能,并且在實(shí)車(chē)上通過(guò)了發(fā)動(dòng)機、變速箱和制動(dòng)系統三方通訊的驗證,為使用J1939協(xié)議開(kāi)發(fā)CAN通訊平臺提供了一定的思路。 |