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