基于OSEK_VDX的乘用車車身CAN網(wǎng)絡(luò)管理與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
隨著汽車電子技術(shù)的不斷發(fā)展,車輛上電控單元的數(shù)量不斷增加,而且功能也越來越復(fù)雜,多個(gè)處理器之間相互連接、協(xié)調(diào)工作并共享信息構(gòu)成了汽車車載計(jì)算機(jī)通信網(wǎng)絡(luò)。車載網(wǎng)絡(luò)運(yùn)用多路傳輸技術(shù),采用多條不同速率的總線分別連接不同類型的節(jié)點(diǎn),并使用網(wǎng)關(guān)服務(wù)器來實(shí)現(xiàn)整車的信息共享和網(wǎng)絡(luò)管理。其中, 在汽車車載網(wǎng)絡(luò)中,CAN(Controller Area Network 控制型局域網(wǎng)) 總線技術(shù)得到了最廣泛的應(yīng)用。CAN 總線的物理層協(xié)議和數(shù)據(jù)鏈路層協(xié)議作為國際標(biāo)準(zhǔn),已經(jīng)被大家廣泛熟知,并且得到國際大芯片廠商的支持,各種的CAN 網(wǎng)絡(luò)協(xié)議芯片和物理層芯片已經(jīng)相當(dāng)?shù)钠占?。由于?yīng)用場合的不同,應(yīng)用層的協(xié)議則是百家爭鳴, 其中應(yīng)用于工業(yè)現(xiàn)場的主要有DeviceNet ,CANopen 等,應(yīng)用于卡車和客車的協(xié)議主要有SAE J1939[1] 。但是, 應(yīng)用于轎車的應(yīng)用層協(xié)議則沒有統(tǒng)一的標(biāo)準(zhǔn),這是因?yàn)楦鱾€(gè)廠家的轎車的應(yīng)用層協(xié)議是多年積累的結(jié)果,作為保密協(xié)議不對(duì)外公開。這也是最近幾年我國轎車產(chǎn)業(yè)在CAN 總線應(yīng)用方面比較滯后的原因。本文主要研究了轎車CAN 車身網(wǎng)絡(luò)應(yīng)用層協(xié)議中的基礎(chǔ)核心,基于OSEKΠVDX 的網(wǎng)絡(luò)管理,并給出了關(guān)鍵的設(shè)計(jì)方法。
2 網(wǎng)絡(luò)管理基礎(chǔ)
2. 1 OSEKΠVDX 介紹
CAN 協(xié)議的錯(cuò)誤處理能力以及物理層的抗EMC 等特性保證了CAN 節(jié)點(diǎn)的相對(duì)可靠性。但是對(duì)于CAN
網(wǎng)絡(luò)來說,單個(gè)節(jié)點(diǎn)的可靠性不能代表整個(gè)網(wǎng)絡(luò)的可靠性。為了保證整個(gè)CAN 網(wǎng)絡(luò)的可靠性,必須存在網(wǎng)絡(luò)管理功能,通過網(wǎng)絡(luò)管理保證各個(gè)節(jié)點(diǎn)的協(xié)調(diào)工作,并監(jiān)督網(wǎng)絡(luò)其他節(jié)點(diǎn)的運(yùn)行狀態(tài)或錯(cuò)誤區(qū)別情況。汽車CAN 網(wǎng)絡(luò)管理的主要參考標(biāo)準(zhǔn)是OSEKΠVDX 。
OSEKΠVDX 是用于分布式實(shí)時(shí)結(jié)構(gòu)的一組標(biāo)準(zhǔn),由歐洲汽車制造商和供應(yīng)商的一個(gè)社團(tuán)與德國Karlsruhe 大學(xué)共同開發(fā)。它包含4 個(gè)標(biāo)準(zhǔn):操作系統(tǒng)(OS) 、通信(COM) 、網(wǎng)絡(luò)管理(NM) 和OSEK 實(shí)現(xiàn)語言(OIL) 。OSEKΠ的許多電子控制單元(ECU) 。在不同的設(shè)計(jì)中,可以重用編碼和專業(yè)技術(shù),而且使用通用接口標(biāo)準(zhǔn),可以在工業(yè)生產(chǎn)方面實(shí)現(xiàn)明顯的節(jié)約。其中符合OSKEΠVDX 的操作系統(tǒng)在國內(nèi)已有研究,但是對(duì)網(wǎng)絡(luò)管理還沒有相關(guān)的文章報(bào)道。本文主要研究以CAN 網(wǎng)絡(luò)為基礎(chǔ)的車身網(wǎng)絡(luò)間接管理方法,并提出具體的實(shí)現(xiàn)方式。
2 2. 2 CAN 總線網(wǎng)絡(luò)幀的傳輸模式根據(jù)觸發(fā)條件的不同,在車身CAN 網(wǎng)絡(luò)中可以分為事件型、周期型、混合型3 種傳輸模式[3] 。
2 2. 2. 1 事件型傳輸模式
隨著類型或數(shù)據(jù)的轉(zhuǎn)變而及時(shí)發(fā)送的消息。此類型消息的好處是極少占用總線資源,但是可能會(huì)存在漏發(fā)等情況。這種消息類似于網(wǎng)絡(luò)的中斷,用于故障診斷的幀可以是事件型的。
2. 2. 2 周期型傳輸模式
以某個(gè)時(shí)間為周期,循環(huán)發(fā)送的消息類型。此類型的消息要求的時(shí)間精度一般小于10 %, 可以盡可能的保證消息的可靠性,如果周期過短,可能會(huì)使總線的負(fù)載過大,影響網(wǎng)絡(luò)的質(zhì)量。在設(shè)計(jì)網(wǎng)絡(luò)中,可以遵守如下的基本規(guī)則:如果幀的ID 號(hào)越小,它的優(yōu)先級(jí)高,那么它的周期可以越小。用于監(jiān)督網(wǎng)絡(luò)狀態(tài)的幀可以是周期型的。
2. 2. 3 混合型傳輸模式
即事件型與周期型混合類型的幀。事件型消息發(fā)送實(shí)時(shí)變化的幀,周期性的發(fā)送保證了消息的完備性。如用于監(jiān)控外部設(shè)備的幀,如果幀中的參數(shù)沒有變化,將周期性的發(fā)送,如果幀中的參數(shù)發(fā)生了變化,將會(huì)以事件發(fā)送此幀,然后重新計(jì)時(shí),以周期型發(fā)送。
三種傳輸模式的分類,使CAN 網(wǎng)絡(luò)中的幀的類型更加清晰,有利于制定應(yīng)用層協(xié)議和網(wǎng)絡(luò)管理規(guī)則。
3 網(wǎng)絡(luò)管理方式
3. 1 OSEKΠVDX NM 研究
由于汽車的運(yùn)行環(huán)境比較惡劣,安全性要求又非常的高,所以對(duì)于通訊網(wǎng)絡(luò)要求非常嚴(yán)格。OSEKΠVDX 網(wǎng)絡(luò)管理的主要任務(wù)就是保證ECU 之間互相通信網(wǎng)絡(luò)的安全性和可靠性[2] 。由于每個(gè)網(wǎng)絡(luò)的結(jié)構(gòu)和特性要求不同,所以網(wǎng)絡(luò)管理的實(shí)現(xiàn)方式也不同。
OSEKΠVDX 提供了兩種網(wǎng)絡(luò)管理機(jī)制直接監(jiān)控與間接監(jiān)控。直接監(jiān)控是利用標(biāo)記的通訊機(jī)制進(jìn)行直接監(jiān)控,網(wǎng)絡(luò)中的每一個(gè)節(jié)點(diǎn)被其他節(jié)點(diǎn)所監(jiān)控,所以每一個(gè)被控節(jié)點(diǎn)會(huì)發(fā)出一個(gè)特定的統(tǒng)一的網(wǎng)絡(luò)關(guān)系消息。直接監(jiān)控通過一個(gè)邏輯環(huán)來實(shí)現(xiàn)網(wǎng)絡(luò)監(jiān)控信息的同步。在這個(gè)環(huán)上每個(gè)節(jié)點(diǎn)有一個(gè)地址,通過獨(dú)立于網(wǎng)絡(luò)協(xié)議的專用單向網(wǎng)絡(luò)管理通訊,可以檢測到網(wǎng)絡(luò)上每個(gè)節(jié)點(diǎn)的狀態(tài)。直接網(wǎng)絡(luò)管理方式可靠性高,但是需要更多的時(shí)間,并且增加了網(wǎng)絡(luò)負(fù)載和CPU 的負(fù)載。
間接網(wǎng)絡(luò)管理是以監(jiān)督ECU 節(jié)點(diǎn)的周期型信息幀為基礎(chǔ)。也就是說,一個(gè)節(jié)點(diǎn)發(fā)出的一個(gè)周期性的幀被一個(gè)或多個(gè)節(jié)點(diǎn)接收,接收節(jié)點(diǎn)通過監(jiān)督這個(gè)周期性的幀完成間接網(wǎng)絡(luò)管理。間接網(wǎng)絡(luò)管理節(jié)點(diǎn)狀態(tài)類型分類描述常用于中央控制型網(wǎng)絡(luò),有一個(gè)功能強(qiáng)大的網(wǎng)關(guān)發(fā)送狀態(tài)非無聲的(not mute) 可以傳送特定的消息幀作為網(wǎng)絡(luò)管理的主ECU ,其他節(jié)點(diǎn)ECU 被網(wǎng)關(guān)無聲的(mute) 傳送某特定的信息幀超時(shí)監(jiān)控。每個(gè)節(jié)點(diǎn)ECU 必須要發(fā)送特定的周期性接受狀態(tài)存在的(present) 特定消息幀可以被接受的幀來實(shí)現(xiàn)被監(jiān)督。一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)存在兩種狀消失的(absent) 態(tài):接受狀態(tài)或者發(fā)送狀態(tài),如表1 所示。
3. 2 CAN 車身網(wǎng)絡(luò)狀態(tài)管理
為了實(shí)現(xiàn)車身網(wǎng)絡(luò)的低功耗,網(wǎng)關(guān)系統(tǒng)會(huì)協(xié)調(diào)控制,在這個(gè)狀態(tài)只能接受外部喚醒幀,或內(nèi)部喚醒幀等,不能接收功能信息幀[4] 。
圖1 所示為4 種網(wǎng)絡(luò)狀態(tài)的轉(zhuǎn)換圖。箭頭方向?yàn)镋CU 狀態(tài)轉(zhuǎn)換的方向,ECU 初始狀態(tài)進(jìn)入休眠狀態(tài),如果有網(wǎng)關(guān)的喚醒命令,那么ECU 進(jìn)入喚醒狀態(tài),如果在喚醒狀態(tài)收到網(wǎng)關(guān)的正常狀態(tài)的命令,那么ECU 進(jìn)入正常的狀態(tài)。其他狀態(tài)轉(zhuǎn)換類似[5] 。
4 網(wǎng)絡(luò)管理的設(shè)計(jì)方法
圖1 網(wǎng)絡(luò)狀態(tài)轉(zhuǎn)換
網(wǎng)絡(luò)節(jié)點(diǎn)ECU 通過C MUTE 和C ABSENT 計(jì)數(shù)器來確定節(jié)點(diǎn)是不是達(dá)到了MUTE 或ABSENT。當(dāng)計(jì)數(shù)器達(dá)到255 時(shí),節(jié)點(diǎn)就出現(xiàn)了故障。故障的出現(xiàn)或消失, ECU 通過事件類型幀的方式發(fā)送故障幀到網(wǎng)關(guān)。故障幀設(shè)計(jì)實(shí)例如表2 所示。
幀的ID 為0x499 ,DLC 為8 。其中第1 個(gè)字節(jié)表明故障是出現(xiàn)還是消失,第2 ,3 兩個(gè)字節(jié)表明了故障代碼,第4 個(gè)字節(jié)表明了故障后是否需要功能降級(jí)。第5 到8 個(gè)字節(jié)表明故障的其他情況。C MUTE 和C ABSENT 的計(jì)數(shù)加減規(guī)則是通過監(jiān)督不同周期型的幀來完成的。對(duì)于C MUTE ,如果ECU 沒有成功發(fā)送一幀數(shù)據(jù),那么C MUTE 加數(shù)直到255 ,故障確認(rèn)。如果ECU 成功的發(fā)送一幀數(shù)據(jù),那么C MUTE 減數(shù)直到0,故障消失。同理,對(duì)于C ABSENT ,如果ECU 沒有成功接收一幀數(shù)據(jù),那么C ABSENT 加數(shù)直到255 ,故障確認(rèn)。如果ECU 成功接收一幀數(shù)據(jù),那么C ABSENT 減數(shù)直到0,故障消失。在實(shí)際例子中,對(duì)于周期為200ms 的幀,如果3 幀數(shù)據(jù)沒有發(fā)送成功或接收成功,增量為77 , 減量為26 。對(duì)于周期為100ms 的幀,如果3 幀數(shù)據(jù)沒有發(fā)送成功或接收成功,增量為39 , 減量為13 。所以,如果使用這樣網(wǎng)絡(luò)管理方式,每個(gè)ECU 必須有一個(gè)100ms 或200ms 周期發(fā)送的幀。C MUTE 和C ABSENT 的故障類型可以根據(jù)具體情況自己定義。圖2 所示為節(jié)點(diǎn)K的C-ABSENT 計(jì)數(shù)規(guī)則,分別表示了節(jié)點(diǎn)K的技術(shù)規(guī)則,節(jié)點(diǎn)K的缺失或存在狀態(tài)與計(jì)數(shù)器之間的關(guān)系以及節(jié)點(diǎn)K的擴(kuò)展?fàn)顟B(tài)。
圖2 節(jié)點(diǎn)K的C ABSENT 計(jì)數(shù)規(guī)則
實(shí)現(xiàn)網(wǎng)絡(luò)管理的另一個(gè)幀是監(jiān)督幀。監(jiān)督幀是一個(gè)周期性的幀,ECU 按照周期發(fā)送監(jiān)督幀到網(wǎng)關(guān)。主要內(nèi)容包括ECU 的CAN 總線的物理錯(cuò)誤(如果是低速容錯(cuò)CAN) , ECU 單元是否ABSENT,ECU 單元是否MUTE ,ECU 單元的BUSOFF 次數(shù)以及ECU 單元的發(fā)送超時(shí)錯(cuò)誤的次數(shù)[6] 。通過這些參數(shù),網(wǎng)關(guān)會(huì)了解到當(dāng)前ECU 的運(yùn)行情況。如果出現(xiàn)錯(cuò)誤情況,網(wǎng)關(guān)會(huì)將這些錯(cuò)誤記錄到EEPROM 中,這樣有利于維修人員通過診斷工具進(jìn)行后期診斷,并且能夠判斷出在行車時(shí)不易跟蹤的隨機(jī)出現(xiàn)的故障。
5 小結(jié)
隨著中國技術(shù)實(shí)力的不斷提高和國家政策的調(diào)整,中國的汽車企業(yè)將不再只重視市場,正在逐漸將重點(diǎn)放在了核心技術(shù)的突破上。本文的支撐項(xiàng)目就是在這個(gè)大背景下實(shí)施的?;?strong>CAN 網(wǎng)絡(luò)的網(wǎng)絡(luò)管理方法和網(wǎng)絡(luò)狀態(tài)管理已經(jīng)在某車型得到了應(yīng)用,運(yùn)行良好,證明了方法的可行性與可靠性。