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