吳含冰
(中國汽車技術(shù)研究中心有限公司,天津 300300)
控制器局域網(wǎng) (Controller Area Network,以下簡(jiǎn)稱CAN)作為現(xiàn)場(chǎng)總線是汽車企業(yè)為解決現(xiàn)代車輛中眾多的控制和數(shù)據(jù)交換問題所開發(fā)的通信協(xié)議。CAN總線是一種多主總線,應(yīng)用于車輛的CAN總線通信介質(zhì)多為雙絞線,通信速率最高可達(dá)1Mb/s。由于CAN總線具有數(shù)據(jù)結(jié)構(gòu)較短、非破壞性總線仲裁技術(shù)以及靈活的通信方式特點(diǎn),已被全世界眾多汽車企業(yè)采用,成為最重要的汽車總線標(biāo)準(zhǔn)。而基于CAN網(wǎng)絡(luò)故障診斷也越來越受到了各大汽車廠商的重視,汽車廠商通常在國際上統(tǒng)一的診斷通信標(biāo)準(zhǔn)的基礎(chǔ)上構(gòu)建自己的整車診斷網(wǎng)絡(luò)。國際上針對(duì)基于CAN網(wǎng)絡(luò)的診斷通信技術(shù)已經(jīng)比較成熟,具備完善的配套標(biāo)準(zhǔn)。國際標(biāo)準(zhǔn)化組織ISO已經(jīng)制定了覆蓋整個(gè)診斷協(xié)議棧的國際標(biāo)準(zhǔn) (包括ISO 15765《道路車輛 基于控制器局域網(wǎng)的診斷通信》系列標(biāo)準(zhǔn)和ISO 14229《道路車輛 統(tǒng)一的診斷服務(wù)》系列標(biāo)準(zhǔn)等),這些標(biāo)準(zhǔn)在全世界范圍內(nèi)已經(jīng)得到廣泛的實(shí)施和應(yīng)用,在規(guī)范和引導(dǎo)車載診斷系統(tǒng)技術(shù)發(fā)展發(fā)揮了重大作用。
車載診斷系統(tǒng)遵循開放系統(tǒng)互聯(lián) (以下簡(jiǎn)稱OSI)基本參考模型,該模型是國際標(biāo)準(zhǔn)化組織 (ISO)于1984年提出的分層網(wǎng)絡(luò)體系結(jié)構(gòu)模型,其定義的是一種抽象機(jī)構(gòu),而并非具體實(shí)現(xiàn)的描述,其目的是支持異構(gòu)網(wǎng)絡(luò)系統(tǒng)的互聯(lián)互通。OSI參考模型將通信系統(tǒng)劃分為7層,從上至下依次是應(yīng)用層 (第7層)、表示層 (第6層)、會(huì)話層 (第5層)、傳輸層(第4層)、網(wǎng)絡(luò)層 (第3層)、數(shù)據(jù)鏈路層 (第2層)和物理層(第1層)。各層的目的是向上層提供服務(wù)。 其中,物理層是利用傳輸介質(zhì)為數(shù)據(jù)鏈路層提供物理連接,實(shí)現(xiàn)比特流的透明傳輸,一般情況下,物理層進(jìn)行信道編碼或解碼,保障數(shù)據(jù)傳輸?shù)目煽啃裕粩?shù)據(jù)鏈路層主要保障在物理鏈路上進(jìn)行數(shù)據(jù)的可靠傳遞,數(shù)據(jù)或指令被封裝成特定的可被物理層傳輸?shù)膸?,還包括訪問控制、資源管理、數(shù)據(jù)分段、 級(jí)聯(lián)、糾錯(cuò)等功能;網(wǎng)絡(luò)層負(fù)責(zé)進(jìn)行路由選擇,從而確定兩節(jié)點(diǎn)之間的路徑,可以進(jìn)行流量控制;傳輸層負(fù)責(zé)為會(huì)話層提供網(wǎng)絡(luò)線路,即傳輸通路;會(huì)話層負(fù)責(zé)兩節(jié)點(diǎn)之間會(huì)話建立、維持和終止;表示層負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行編碼或解碼,從而將數(shù)據(jù)轉(zhuǎn)換為兼容或適合的傳輸格式,也可以進(jìn)行數(shù)據(jù)的解密與加密;應(yīng)用層負(fù)責(zé)為應(yīng)用程序 (或用戶)提供服務(wù)。
車載診斷系統(tǒng)按照應(yīng)用場(chǎng)景和應(yīng)用目的不同,從協(xié)議棧層面分為3類:第1類是增強(qiáng)型診斷,主要用于車輛制造商開發(fā)車載診斷系統(tǒng);第2類是排放相關(guān)車載診斷系統(tǒng) (OBD);第3類是全球協(xié)調(diào)車載診斷系統(tǒng) (WWH-OBD),主要應(yīng)用于商用車。本文主要針對(duì)基于控制器局域網(wǎng)的增強(qiáng)型車載診斷展開研究。
增強(qiáng)型車載診斷系統(tǒng)遵循OSI架構(gòu),針對(duì)OSI架構(gòu)的每一個(gè)層級(jí),國際標(biāo)準(zhǔn)化組織都制定了相應(yīng)的國際標(biāo)準(zhǔn),并在全球汽車行業(yè)中得到廣泛的實(shí)施和應(yīng)用 (表1)。
表1 基于CAN的增強(qiáng)型車載診斷國際標(biāo)準(zhǔn)協(xié)議棧[1]
增強(qiáng)型診斷的傳輸層和網(wǎng)絡(luò)層定義了網(wǎng)絡(luò)節(jié)點(diǎn)間數(shù)據(jù)交互使用的傳輸層和網(wǎng)絡(luò)層通信協(xié)議,例如從一個(gè)ECU到另一個(gè)ECU或外部測(cè)試設(shè)備和一個(gè)ECU之間的通信,其主要任務(wù)是傳輸報(bào)文,并且提供了分段、流控制傳輸和重組的方法。
CAN總線上的單個(gè)數(shù)據(jù)幀每幀只能傳輸8個(gè)字節(jié),根據(jù)需要傳輸?shù)脑\斷服務(wù)數(shù)據(jù)大小,可以使用單幀或多幀的方式進(jìn)行傳輸。采用單幀傳輸時(shí),可以傳輸6個(gè) (擴(kuò)展或混合尋址)或7個(gè) (常規(guī)尋址)數(shù)據(jù)字節(jié);如要傳輸較長報(bào)文,要先將其分段再傳輸多個(gè)網(wǎng)絡(luò)層協(xié)議數(shù)據(jù)單元 (以下簡(jiǎn)稱N_PDU)。多個(gè)N_PDU包括首幀 (報(bào)文的第1個(gè)N_PDU)及連續(xù)幀 (所有后續(xù)N_PDU),多個(gè)N_PDU報(bào)文的接收端通過流控機(jī)制使傳輸吞吐量適合自身容量,如圖1所示。]
圖1 多幀傳輸示意圖[2
首幀,即第1幀 (FF)只能用于傳輸不適用于單個(gè)CAN幀傳輸?shù)膱?bào)文 (即分段報(bào)文)。收到FF后,網(wǎng)絡(luò)層接收實(shí)體應(yīng)開始重組分段報(bào)文。
發(fā)送分段數(shù)據(jù)時(shí),將首幀以后所有連續(xù)的幀編碼為連續(xù)幀 (CF)。收到連續(xù)幀后,網(wǎng)絡(luò)層接收實(shí)體應(yīng)重組接收到的數(shù)據(jù)字節(jié),直到所有報(bào)文接收完畢。正確接收到最后一幀報(bào)文后,接收實(shí)體應(yīng)將重組報(bào)文傳遞至相鄰的上層協(xié)議層。
流控幀的目的是調(diào)節(jié)向接收端發(fā)送連續(xù)數(shù)據(jù)幀的速率,流控機(jī)制允許接收端將其能力通知發(fā)送端,如果發(fā)送實(shí)體傳輸?shù)拈L度超出接收實(shí)體緩沖區(qū)大小,流控幀也可以在分段報(bào)文傳輸期間指示網(wǎng)絡(luò)發(fā)送實(shí)體暫停傳輸后續(xù)的連續(xù)幀,或終止傳輸分段報(bào)文。
應(yīng)用層服務(wù)通常稱為診斷服務(wù),用于基于客戶端—服務(wù)器端的系統(tǒng),以執(zhí)行諸如車載車輛服務(wù)端的測(cè)試、檢查、監(jiān)控或診斷等功能。客戶端 (通常稱為診斷設(shè)備)使用應(yīng)用層服務(wù)來請(qǐng)求在一個(gè)或多個(gè)服務(wù)端中執(zhí)行診斷功能。服務(wù)器端 (通常作為ECU的部分功能)使用應(yīng)用層服務(wù)將由請(qǐng)求的診斷服務(wù)提供的響應(yīng)數(shù)據(jù)發(fā)送回客戶端,客戶端應(yīng)用層和服務(wù)器應(yīng)用層的診斷通信典型交互過程如圖2所示。客戶端通常是非車載診斷儀,但在某些系統(tǒng)中也可以是車載診斷儀,同一車輛系統(tǒng)中允許有多個(gè)客戶端。應(yīng)用層根據(jù)診斷交互的需求,能夠提供多種診斷服務(wù),其中最為常用的診斷服務(wù)包括診斷和通信管理類功能和數(shù)據(jù)傳輸類功能,如表2和表3所示。
圖2 客戶端和服務(wù)器的診斷通信交互示意圖
汽車設(shè)計(jì)中的一大難點(diǎn)是如何預(yù)先評(píng)估潛在的危害和風(fēng)險(xiǎn),并采取適當(dāng)?shù)姆椒ê痛胧﹣斫档惋L(fēng)險(xiǎn)。隨著電子電氣系統(tǒng)復(fù)雜性的提高,來自系統(tǒng)性失效、隨機(jī)硬件失效和軟件故障的風(fēng)險(xiǎn)也日益增加。因此,車載診斷服務(wù)對(duì)于車輛的整體安全性的作用也日益重要。
表2 診斷和通信管理功能[3]
表3 數(shù)據(jù)傳輸功能單元[3]