車載網(wǎng)絡(luò)系統(tǒng)及CAN協(xié)議的應(yīng)用分析
目前,CAN 協(xié)議及其網(wǎng)絡(luò)系統(tǒng)已被全球汽車廠商普遍接受,成為車載網(wǎng)絡(luò)系統(tǒng)的計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)基礎(chǔ)。
在歐洲幾乎每一輛新款汽車均裝配有CAN 局域網(wǎng)。同樣,CAN 也用于其他類型的交通工具,從火車到輪船或者用于工業(yè)控制。CAN 已經(jīng)成為全球范圍內(nèi)最重要的總線之一——甚至領(lǐng)導(dǎo)著串行總線。在1999 年,接近6 千萬(wàn)個(gè)CAN 控制器投入應(yīng)用。到了2000 年,全球市場(chǎng)銷售了超過(guò)1 億個(gè)CAN 元器件。
2.2 CAN 網(wǎng)絡(luò)協(xié)議的內(nèi)容和基本原理
作為一種網(wǎng)絡(luò)協(xié)議一般應(yīng)符合ISO/OSI 模型,即國(guó)際標(biāo)準(zhǔn)化組織的開(kāi)放系統(tǒng)互連參考模型。但目前廣泛應(yīng)用的許多網(wǎng)絡(luò)協(xié)議并不完全符合這個(gè)模型,CAN 就是這種網(wǎng)絡(luò)協(xié)議。對(duì)照ISO/OSI 模型中的7 層次,CAN 僅明確定義了相當(dāng)于數(shù)據(jù)鏈路層和物理層的內(nèi)容。圖2 給出它的層次結(jié)構(gòu)。其中對(duì)象層和傳輸層包括所有由ISO/OSI 模型定義的數(shù)據(jù)鏈路層的服務(wù)和功能。
圖2
CAN 協(xié)議的報(bào)文傳輸由以下四種不同的幀類型所表示和控制:
- 數(shù)據(jù)幀:數(shù)據(jù)幀攜帶數(shù)據(jù)從一個(gè)節(jié)點(diǎn)的發(fā)送器至所有節(jié)點(diǎn)的接收器。
- 遠(yuǎn)程請(qǐng)求幀:總線的一個(gè)節(jié)點(diǎn)發(fā)出遠(yuǎn)程請(qǐng)求幀,請(qǐng)求某個(gè)節(jié)點(diǎn)響應(yīng)具有同一識(shí)別符的數(shù)據(jù)幀。
- 錯(cuò)誤幀:總線上的任何節(jié)點(diǎn)一旦檢測(cè)到總線的錯(cuò)誤就發(fā)出錯(cuò)誤幀。
- 過(guò)載幀:過(guò)載幀用以在先行的和后續(xù)的數(shù)據(jù)幀(或遠(yuǎn)程幀)之間提供一附加的延時(shí),防止產(chǎn)生接收器過(guò)載。
CAN 協(xié)議在其幀結(jié)構(gòu)中定義了多種校驗(yàn)方式,確保信息傳送的可靠性。信息在網(wǎng)絡(luò)中采用廣播的方式,總線上所有的節(jié)點(diǎn)均先接收到報(bào)文,然后根據(jù)幀結(jié)構(gòu)中的11 位或29 位標(biāo)識(shí)符進(jìn)行識(shí)別,接收所需的信息,屏蔽掉本節(jié)點(diǎn)不需要的信息。
在報(bào)文發(fā)送時(shí)是采用內(nèi)容(而不是一般的地址方式)擇優(yōu)的優(yōu)先級(jí)方式,我們稱其為載波偵聽(tīng)多路訪問(wèn)/沖突檢測(cè),即:CSMA/CD(Carrier Sense Multiple Access with Collision Detect)。
如果利用一般的CSMA 訪問(wèn)總線,可對(duì)總線上信號(hào)進(jìn)行檢測(cè),只有當(dāng)總線處于空閑狀態(tài)時(shí)才允許發(fā)送。利用這種方法可以允許多個(gè)節(jié)點(diǎn)掛接到同一網(wǎng)絡(luò)上,但當(dāng)檢測(cè)到一個(gè)沖突位時(shí),所有節(jié)點(diǎn)將重新回到監(jiān)聽(tīng)總線的狀態(tài),直到該沖突時(shí)間過(guò)后才開(kāi)始發(fā)送。在總線超載的情況下,這種技術(shù)可能會(huì)造成發(fā)送信號(hào)經(jīng)過(guò)許多延遲。為了避免發(fā)送延時(shí)可利用CSMA/CD 方式訪問(wèn)總線:當(dāng)總線上有兩個(gè)節(jié)點(diǎn)同時(shí)進(jìn)行發(fā)送時(shí),必須通過(guò)無(wú)損的逐位仲裁方法來(lái)使有最高優(yōu)先權(quán)的的報(bào)文優(yōu)先發(fā)送。在CAN 總線上發(fā)送的每一條報(bào)文都具有唯一的一個(gè)11 位或29 位的標(biāo)識(shí)符 ,CAN 總線狀態(tài)取決于二進(jìn)制數(shù)0 而不是1 ,所以ID 號(hào)越小則該報(bào)文擁有越高的優(yōu)先權(quán)。因此一個(gè)為全0 標(biāo)志符的報(bào)文具有總線上的最高級(jí)優(yōu)先權(quán)??捎昧硗獾姆椒▉?lái)解釋,在消息沖突的位置第一個(gè)節(jié)點(diǎn)發(fā)送0,而另外的節(jié)點(diǎn)發(fā)送1,那么發(fā)送0 的節(jié)點(diǎn)將取得總線的控制權(quán),并且能夠成功的發(fā)送出它的信息。這種獨(dú)特的總線爭(zhēng)用方式保證了高優(yōu)先級(jí)報(bào)文的及時(shí)發(fā)送,減少了時(shí)延。
在差錯(cuò)處理方面CAN 也有其獨(dú)特的優(yōu)勢(shì)。對(duì)于一個(gè)幀可以用互不排斥的5 種方式檢查出出錯(cuò)的幀。
另外還有一個(gè)計(jì)數(shù)機(jī)制,當(dāng)一個(gè)節(jié)點(diǎn)錯(cuò)誤的次數(shù)滿足一定條件時(shí),會(huì)被進(jìn)行相應(yīng)的故障處理,以防止出故障的節(jié)點(diǎn)對(duì)整個(gè)系統(tǒng)的影響,保證其他節(jié)點(diǎn)之間的正常通信。
2.3 CAN 協(xié)議適宜于車載網(wǎng)絡(luò)應(yīng)用的優(yōu)勢(shì)
正如本文1.2 節(jié)中所描述的那樣,一個(gè)適宜于汽車環(huán)境的網(wǎng)絡(luò)協(xié)議必須滿足許多苛刻的要求,并具有一些獨(dú)特的特性。CAN 具有十分優(yōu)越的特點(diǎn),這使得絕大多數(shù)的工程師都選擇它作為車載網(wǎng)絡(luò)協(xié)議的標(biāo)準(zhǔn)。這些優(yōu)點(diǎn)包括以下內(nèi)容:
(1) 低成本。由于CAN 已經(jīng)成為車載網(wǎng)絡(luò)中應(yīng)用最廣泛的標(biāo)準(zhǔn),這使得相關(guān)元器件的產(chǎn)量很大,從而大大的降低了成本。對(duì)于已經(jīng)競(jìng)爭(zhēng)非常激烈的汽車產(chǎn)業(yè)來(lái)說(shuō)是十分重要的。
(2) 極高的總線利用率。如前一節(jié)分析的那樣,其發(fā)送沖突解決方案是一種沖突規(guī)避的設(shè)計(jì)方式,減少了信息重發(fā)可能性,從而提高了利用率,對(duì)于發(fā)送優(yōu)先級(jí)高的重要信息尤為如此。
(3) 高速的數(shù)據(jù)傳輸速率可高達(dá)1 Mbit/s,完全可滿足汽車動(dòng)力和懸架等高速系統(tǒng)的傳輸需求。
(4) 可根據(jù)報(bào)文的ID 決定接收或屏蔽該報(bào)文,而不是采用一般的地址方式。方便與網(wǎng)絡(luò)相連的汽車電器系統(tǒng)的靈活配置。
(5) 可靠的錯(cuò)誤處理和檢錯(cuò)機(jī)制;發(fā)送的信息遭到破壞后可自動(dòng)重發(fā);節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)退出總線;這些特點(diǎn)都保證了系統(tǒng)極高的可靠性、安全性和健壯性。很明顯,這對(duì)于車載的網(wǎng)絡(luò)系統(tǒng)是十分重要的要求。
(6) 報(bào)文幀結(jié)構(gòu)相對(duì)比較簡(jiǎn)單,占用總線時(shí)間短,從而保證了通信很高的實(shí)時(shí)性。
(7) 目前如:Bosch、Philips、Siemens、Delphi、Valeo 等世界上重要的汽車電器供應(yīng)商已開(kāi)發(fā)出大量成熟的CAN 元器件和嵌入了CAN 接口的電控單元(ECU),這樣可大大的縮短相關(guān)汽車電器系統(tǒng)的開(kāi)發(fā)時(shí)間,減少開(kāi)發(fā)成本。
3 CAN 系統(tǒng)已經(jīng)開(kāi)始在新型的汽車上得到了廣泛的實(shí)際應(yīng)用
3.1 CAN 在車載網(wǎng)絡(luò)中的應(yīng)用
在CAN 協(xié)議中僅對(duì)網(wǎng)絡(luò)的低層進(jìn)行了具體規(guī)定,其應(yīng)用層協(xié)議并未給出。這樣針對(duì)不同的應(yīng)用,其應(yīng)用層也不盡相同。在汽車領(lǐng)域,目前存在的多種車載網(wǎng)絡(luò)標(biāo)準(zhǔn),其側(cè)重的功能也有所不同。為了便于設(shè)計(jì)和使用,SAE(汽車工程協(xié)會(huì))將車載網(wǎng)絡(luò)按傳輸速率的不同劃分為A、B、C 三類。其中B 類在國(guó)際標(biāo)準(zhǔn)ISO-IS11519-2 中稱為低速CAN 網(wǎng),C 類在國(guó)際標(biāo)準(zhǔn)ISO-IS11898 中稱為高速CAN 網(wǎng)。(參見(jiàn)圖3)
評(píng)論