基于SAE J1939協(xié)議的車輛網(wǎng)絡(luò)集成方法
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要 電控單元(ECU)是車輛內(nèi)部系統(tǒng)控制模塊的代名詞。本文介紹如何集成自定義ECU和具有SAEJI939CAN接口的ECU產(chǎn)品,實(shí)現(xiàn)基于SAE JI939協(xié)議的車輛網(wǎng)絡(luò),完成自定義ECU的信息采集和各ECU 間的信息交換。該網(wǎng)絡(luò)使用雙核單片機(jī)和μC/OS-II操作系統(tǒng),通過液晶顯示器和按鍵實(shí)現(xiàn)信息交互,解決了車輛儀表盤信息量較少和故障診斷實(shí)時(shí)性不足等問題。該方法可推廣應(yīng)用到其他工業(yè)環(huán)境類似的CAN通信領(lǐng)域,如列車控制、工廠控制等。
引 言
隨著車輛電子化和自動(dòng)化程度的提高,車輛上的ECU日益增多。為了提高信號(hào)的利用率,要求在不同的ECU間,大量的數(shù)據(jù)狀態(tài)信息能夠?qū)崿F(xiàn)共享,大量的控制信號(hào)能夠?qū)崟r(shí)交換。這樣,傳統(tǒng)線束已遠(yuǎn)遠(yuǎn)不能滿足這種需求。
CAN總線及基于CAN的車輛網(wǎng)絡(luò)通信協(xié)議提供了解決上述問題的途徑。SAE J1939協(xié)議是美國汽車工程師協(xié)會(huì)(SAE)在CAN2.0B協(xié)議基礎(chǔ)上制定的重型貨車和客車網(wǎng)絡(luò)通信協(xié)議,是目前汽車電子網(wǎng)絡(luò)中應(yīng)用最廣泛的應(yīng)用層協(xié)議之一。該協(xié)議使用多路復(fù)用技術(shù)為車輛各傳感器、執(zhí)行器和控制器提供建立在CAN總線基礎(chǔ)上的標(biāo)準(zhǔn)化高速網(wǎng)絡(luò)連接,在不同的ECU間實(shí)現(xiàn)高速數(shù)據(jù)共享,以有效減少線束數(shù)量并提高車輛電子控制系統(tǒng)的靈活性、可靠性、可維修性。
目前,車輛的ECU產(chǎn)品大都帶有SAE J1939 CAN接口。針對(duì)具有SAE J1939 CAN接口的ECU產(chǎn)品(如發(fā)動(dòng)機(jī)、變速器及其緩速器和ABS等ECU),自定義若干ECU,集成實(shí)現(xiàn)基于SAE J1939協(xié)議的車輛網(wǎng)絡(luò),完成自定義ECU的信息采集和各ECU間的信息交換。
1 車輛網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
具有SAE J1939 CAN接口的ECU產(chǎn)品接上儀表板連成網(wǎng)絡(luò)后,已基本滿足車輛駕駛的要求。為了使自定義ECU對(duì)外通信盡量不影響ECU產(chǎn)品間的通信,整個(gè)網(wǎng)絡(luò)分為兩個(gè)網(wǎng)段,必要時(shí)可合并成一個(gè)網(wǎng)段。網(wǎng)段A包含信息交互ECU,發(fā)動(dòng)機(jī)ECU,變速器及其緩速器ECU,ABS ECU;網(wǎng)段B包括信息交互ECU,發(fā)動(dòng)機(jī)外圍、I橋及II橋ECU,分動(dòng)器ECU,III橋及IV橋ECU。信息交互ECU用兩個(gè)CAN端口分別與兩個(gè)網(wǎng)段連接,具有報(bào)文轉(zhuǎn)發(fā)功能。車輛網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示。
2 車輛網(wǎng)絡(luò)通信設(shè)計(jì)
按照SAE J1939協(xié)議,車輛網(wǎng)絡(luò)通信設(shè)計(jì)包括以下幾方面內(nèi)容:
◆物理層與SAEJI939-11兼容;
◆數(shù)據(jù)鏈路層與SAE J1939-21兼容;
◆網(wǎng)絡(luò)層與SAE J1939-31兼容;
◆應(yīng)用層與SAE J1939-71兼容;
◆應(yīng)用層診斷與SAE J1939-73兼容;
◆網(wǎng)絡(luò)管理層與SAE J1939-81兼容。
2.1 物理層
物理層實(shí)現(xiàn)網(wǎng)絡(luò)上所有ECU的電氣連接。物理介質(zhì)采用特征阻抗為120 Ω的屏蔽雙絞線,CAN_H為黃色、CAN_L為綠色。網(wǎng)段盡可能使用線性拓?fù)浣Y(jié)構(gòu),其波特率為250 kbps。網(wǎng)段干線兩端均以120 Ω電阻做終端匹配。ECU使用短支線與網(wǎng)段干線連接,在網(wǎng)段中采用不相等布置以防止產(chǎn)生駐波。
位時(shí)間內(nèi)實(shí)現(xiàn)同步、網(wǎng)絡(luò)延時(shí)補(bǔ)償及采樣點(diǎn)位置確定等總線管理功能,其段組成如圖2所示。同步是相位緩沖段1加長或相位緩沖段2縮短,其上限為同步跳轉(zhuǎn)帶寬 (SJW)。采樣點(diǎn)盡量位于(但不超過)位時(shí)間的7/8,能實(shí)現(xiàn)傳播延遲和時(shí)鐘誤差最佳折中。時(shí)鐘頻率為16 MHz時(shí),推薦分頻因子=4、SJw=ltq、TSEGl=13tq、TSEG2=2tq(tq為時(shí)鐘周期)。
2.2 數(shù)據(jù)鏈路層
數(shù)據(jù)鏈路層在物理層之上提供了可靠的數(shù)據(jù)傳輸功能,實(shí)現(xiàn)了應(yīng)用層報(bào)文的數(shù)據(jù)交換。通過數(shù)據(jù)鏈路層的組織,實(shí)現(xiàn)了發(fā)送數(shù)據(jù)幀必須具有的同步、順序控制、錯(cuò)誤控制和流控制等功能。
數(shù)據(jù)鏈路層通過協(xié)議數(shù)據(jù)單元(PDU)組織數(shù)據(jù)幀中的協(xié)議相關(guān)信息。PDU由數(shù)據(jù)幀中29位ID和O~8字節(jié)數(shù)據(jù)場(chǎng)組成,其數(shù)據(jù)結(jié)構(gòu)如圖3所示。P場(chǎng)決定報(bào)文優(yōu)先級(jí);R位保留;DP位是數(shù)據(jù)頁位;PF場(chǎng)決定PDU格式(PDUl或PDU2);PS場(chǎng)為PDU細(xì)節(jié),由PF場(chǎng)決定是目標(biāo)地址DA還是對(duì)PF、的組擴(kuò)展GE;SA為源地址。
數(shù)據(jù)鏈路層提供的報(bào)文有命令報(bào)文、請(qǐng)求報(bào)文、廣播/響應(yīng)報(bào)文、應(yīng)答報(bào)文及組功能報(bào)文。此外,數(shù)據(jù)鏈路層還實(shí)現(xiàn)了傳輸協(xié)議功能,用于將大于8字節(jié)報(bào)文進(jìn)行打包重組、連接管理,分為廣播公告的BAM協(xié)議和點(diǎn)對(duì)點(diǎn)會(huì)話的RTS/CTS協(xié)議。
2。3 網(wǎng)絡(luò)層
網(wǎng)絡(luò)層定義了為不同網(wǎng)段間提供互聯(lián)功能的設(shè)備需求和服務(wù)。當(dāng)多個(gè)網(wǎng)段存在時(shí)需要網(wǎng)絡(luò)互聯(lián)ECU,其功能包括報(bào)文轉(zhuǎn)發(fā)、報(bào)文過濾、報(bào)文地址轉(zhuǎn)換、報(bào)文重組及數(shù)據(jù)庫管理。網(wǎng)絡(luò)層功能對(duì)于特定ECU來說是可選的,網(wǎng)絡(luò)中僅信息交互ECU用到網(wǎng)絡(luò)層功能。
2.4 應(yīng)用層
應(yīng)用層定義了針對(duì)車輛應(yīng)用的信號(hào)(參數(shù))和報(bào)文(參數(shù)組)。應(yīng)用層通過參數(shù)描述信號(hào),給每個(gè)參數(shù)分配了一個(gè)19位的可疑參數(shù)編號(hào)(SPN);通過參數(shù)組描述報(bào)文,給每個(gè)參數(shù)組分配了一個(gè)24位的參數(shù)組編號(hào)(PGN)。SPN用來標(biāo)識(shí)與ECU相關(guān)的故障診斷元素、部件或參數(shù)組中參數(shù);PGN用來唯一標(biāo)識(shí)一個(gè)特定參數(shù)組。除已分配的參數(shù)和參數(shù)組外,用戶還可通過分配未使用的SPN給自定義參數(shù)和定義專有報(bào)文對(duì)應(yīng)用層進(jìn)行補(bǔ)充。
2.5 應(yīng)用層診斷
應(yīng)用層診斷定義了診斷報(bào)文DMl-19,其作用如表1所列。這19種報(bào)文在網(wǎng)絡(luò)中并不都可用。目前,網(wǎng)絡(luò)中僅用到報(bào)文DMl、DM2、DM3及DMll。
表l中的診斷故障代碼(DTC)為4字節(jié),由19位可疑參數(shù)編號(hào)(SPN)、5位故障失效模式(FMI)、7位故障發(fā)生次數(shù)(OC)以及1位SPN轉(zhuǎn)換方式(CM)組成,如圖4所示。
2.6 網(wǎng)絡(luò)管理層
網(wǎng)絡(luò)管理層通過提供地址分配管理和網(wǎng)絡(luò)錯(cuò)誤管理的定義和過程描述,來唯一識(shí)別網(wǎng)絡(luò)上的控制器。其功能包括:請(qǐng)求網(wǎng)絡(luò)上控制器的地址和名字、為控制器聲明一個(gè)地址、公告不能聲明的地址和命令其他控制器使用新的地址等。
3 車輛網(wǎng)絡(luò)信息交互設(shè)計(jì)
車輛網(wǎng)絡(luò)信息交互選用的液晶顯示器為8寸、640×480像素、RS-232通信,具有6個(gè)無源P9接口薄膜按鍵,其顯示布局如圖5所示。圖中左半部分:上部為紅色信號(hào)指示燈及其報(bào)警提示,其下為其他顏色信號(hào)指示燈:中部為儀表模擬模式下表盤指針或數(shù)字模式下數(shù)字,其下為小儀表報(bào)警提示;下部為組成員數(shù)據(jù)及各組報(bào)警提示。圖中右半部分:上部為日期時(shí)間、環(huán)溫/氣壓、單/全里程,其下為診斷指示燈及DMl來源、菜單;下部為信息分頁,包括基本信息、各ECU 產(chǎn)品未處理的信息、DMl及DM2內(nèi)容、DMl及DM2下載應(yīng)答、DM3應(yīng)答、DMll應(yīng)答、單里程清零應(yīng)答和日期時(shí)間交互修改等。
液晶顯示器的功能有:在指定位置顯示8×16英文字符,在指定位置畫線,在指定位置顯示預(yù)置位圖,在指定位置按指定方式自動(dòng)顯示日期時(shí)間、讀取年月日、讀取時(shí)分秒、設(shè)置日期時(shí)間、顯示/關(guān)閉光標(biāo)、打開/關(guān)閉背光。當(dāng)進(jìn)行不同程度的報(bào)警時(shí),通過蜂鳴器發(fā)出的緩和或尖銳兩種不同的聲音進(jìn)行提示。
4 車輛網(wǎng)絡(luò)軟件設(shè)計(jì)
4.1 信息交互ECU
信息交互ECU選用Freescale公司S12X系列中的MC;9S12XDP512作為主芯片,使用了嵌入式操作系統(tǒng)uC/()S-II。S12X的從CPU——中斷協(xié)處理器XGate,處理μC/OS-II時(shí)鐘節(jié)拍中斷并作任務(wù)切換,提高了系統(tǒng)的實(shí)時(shí)性,減輕了主CPU的負(fù)荷。XGate還用于處理與液晶顯示器串口通信、與PC串口通信、查詢鍵盤的有效輸入,并管理報(bào)警蜂鳴器。
信息交互ECU在μC/0S-II下創(chuàng)建了5個(gè)任務(wù):系統(tǒng)初始任務(wù)、指示燈任務(wù)、儀表數(shù)據(jù)任務(wù)、鍵盤相關(guān)任務(wù)、J1939處理任務(wù)。系統(tǒng)初始任務(wù)打開 RTI中斷,上電自檢,打開日期時(shí)間顯示;指示燈任務(wù)周期性地顯示信號(hào)指示燈及紅色信號(hào)指示燈報(bào)警提示,顯示診斷指示燈及DMl來源,處理報(bào)警事件;儀表數(shù)據(jù)任務(wù)周期性地按選定模式顯示儀表及小儀表報(bào)警提示,顯示組成員數(shù)據(jù)及組報(bào)警提示,顯示環(huán)溫/氣壓及單/全里程,并處理報(bào)警事件;鍵盤相關(guān)任務(wù)在有效輸入下根據(jù)按鍵及菜單進(jìn)行分頁顯示切換、系統(tǒng)設(shè)置修改等;JI939處理任務(wù)周期性地遍歷兩個(gè)端口的協(xié)議棧進(jìn)行報(bào)文收發(fā)、報(bào)文轉(zhuǎn)發(fā)和提取應(yīng)答等。
4.2 其余自制ECU
其余自制ECU選用Freescale公司S12系列中的M(29S12DGl28作為ECU主芯片。上電初始化后,在無限循環(huán)下先遍歷協(xié)議棧,對(duì)請(qǐng)求報(bào)文進(jìn)行響應(yīng),然后采集數(shù)據(jù)更新報(bào)文。程序采集傳感器信息,周期性地更新應(yīng)用層報(bào)文。程序根據(jù)采集的信號(hào)、數(shù)據(jù)生成DTC,周期性地更新應(yīng)用層診斷報(bào)文,根據(jù)DTC數(shù)目決定是否發(fā)送及是否用傳輸協(xié)議。程序半固定數(shù)據(jù)如DTC信息、里程信息等均保存在EEPROM中,每次上電導(dǎo)入,發(fā)生變化后實(shí)時(shí)更新。
結(jié) 語
通過對(duì)具備SAE J1939 CAN接口的ECU產(chǎn)品CAN總線功能進(jìn)行分析,自定義若干ECU,集成實(shí)現(xiàn)基于SAE J1939協(xié)議的車輛網(wǎng)絡(luò)。在實(shí)驗(yàn)室對(duì)比CAN卡、上車對(duì)比儀表板進(jìn)行試驗(yàn)研究的結(jié)果表明,所集成的車輛網(wǎng)絡(luò)工作穩(wěn)定、信息量豐富、能實(shí)時(shí)反映故障診斷信息,解決了車輛儀表盤信息量較少和故障診斷實(shí)時(shí)性不足的問題。
雙核單片機(jī)的從CPU可提高μC/OS-II的實(shí)時(shí)性,降低了主CPU的負(fù)荷。此外,SAEJ1939協(xié)議的完備通信策略和成熟的通信機(jī)制,使得協(xié)議完全可以在修改應(yīng)用層和應(yīng)用層診斷相關(guān)定義之后,推廣應(yīng)用到其他工業(yè)環(huán)境類似的CAN通信領(lǐng)域,如列車控制、工廠控制等。