、工業(yè)控制
、安全防護(hù)等領(lǐng)域中得到了廣泛應(yīng)用。 隨著CAN總線在各個(gè)行業(yè)和領(lǐng)域的廣泛應(yīng)用
,對(duì)其的通信格式標(biāo)準(zhǔn)化也提出了更嚴(yán)格的要求
。1991年CAN總線技術(shù)規(guī)范(Version2.0)制定并發(fā)布。該技術(shù)規(guī)范共包括A和B兩個(gè)部分
。其中2.0A給出了CAN報(bào)文標(biāo)準(zhǔn)格式
,而2.0B給出了標(biāo)準(zhǔn)的和擴(kuò)展的兩種格式。美國(guó)的汽車工程學(xué)會(huì)SAE在2000年提出了J1939協(xié)議
,此后該協(xié)議成為了貨車和客車中控制器局域網(wǎng)的通用標(biāo)準(zhǔn)。
相關(guān)組織
依據(jù)國(guó)際標(biāo)準(zhǔn)化組織/開放系統(tǒng)互連(International Standardi-zation Organization/Open SystemInterconnection
,ISO/OSI)參考模型
,CAN的ISO/OSI參考模型的層結(jié)構(gòu)如圖7-6所示。
概念和特征
下面對(duì)CAN協(xié)議的媒體訪問控制子層的一些概念和特征做如下說明: (1)報(bào)文(Message)總線上的數(shù)據(jù)以不同報(bào)文格式發(fā)送
,但長(zhǎng)度受到限制
。當(dāng)總線空閑時(shí),任何一個(gè)網(wǎng)絡(luò)上的節(jié)點(diǎn)都可以發(fā)送報(bào)文
。 (2)信息路由(Information Routing)在CAN中
,節(jié)點(diǎn)不使用任何關(guān)于系統(tǒng)配置的報(bào)文,比如站地址
,由接收節(jié)點(diǎn)根據(jù)報(bào)文本身特征判斷是否接收這幀信息
。因此系統(tǒng)擴(kuò)展時(shí),不用對(duì)應(yīng)用層以及任何節(jié)點(diǎn)的軟件和硬件作改變
,可以直接在CAN中增加節(jié)點(diǎn)
。 (3)標(biāo)識(shí)符(Identifier) 要傳送的報(bào)文有特征標(biāo)識(shí)符(是數(shù)據(jù)幀和遠(yuǎn)程幀的一個(gè)域),它給出的不是目標(biāo)節(jié)點(diǎn)地址,而是這個(gè)報(bào)文本身的特征
。信息以廣播方式在網(wǎng)絡(luò)上發(fā)送
,所有節(jié)點(diǎn)都可以接收到。節(jié)點(diǎn)通過標(biāo)識(shí)符判定是否接收這幀信息
。 (4)數(shù)據(jù)一致性應(yīng)確保報(bào)文在CAN里同時(shí)被所有節(jié)點(diǎn)接收或同時(shí)不接收
,這是配合錯(cuò)誤處理和再同步功能實(shí)現(xiàn)的。 (5)位傳輸速率不同的CAN系統(tǒng)速度不同
,但在一個(gè)給定的系統(tǒng)里
,位傳輸速率是唯一的,并且是固定的
。 (6)優(yōu)先權(quán) 由發(fā)送數(shù)據(jù)的報(bào)文中的標(biāo)識(shí)符決定報(bào)文占用總線的優(yōu)先權(quán)
。標(biāo)識(shí)符越小,優(yōu)先權(quán)越高
。 (7)遠(yuǎn)程數(shù)據(jù)請(qǐng)求(Remote Data Request) 通過發(fā)送遠(yuǎn)程幀
,需要數(shù)據(jù)的節(jié)點(diǎn)請(qǐng)求另一節(jié)點(diǎn)發(fā)送相應(yīng)的數(shù)據(jù)?div id="d48novz" class="flower left">
;貞?yīng)節(jié)點(diǎn)傳送的數(shù)據(jù)幀與請(qǐng)求數(shù)據(jù)的遠(yuǎn)程幀由相同的標(biāo)識(shí)符命名
。 (8)仲裁(Arbitration) 只要總線空閑,任何節(jié)點(diǎn)都可以向總線發(fā)送報(bào)文
。如果有兩個(gè)或兩個(gè)以上的節(jié)點(diǎn)同時(shí)發(fā)送報(bào)文
,就會(huì)引起總線訪問碰撞。通過使用標(biāo)識(shí)符的逐位仲裁可以解決這個(gè)碰撞
。仲裁的機(jī)制確保了報(bào)文和時(shí)間均不損失
。當(dāng)具有相同標(biāo)識(shí)符的數(shù)據(jù)幀和遠(yuǎn)程幀同時(shí)發(fā)送時(shí),數(shù)據(jù)幀優(yōu)先于遠(yuǎn)程幀
。在仲裁期間
,每一個(gè)發(fā)送器都對(duì)發(fā)送位的電平與被監(jiān)控的總線電平進(jìn)行比較。如果電平相同
,則這個(gè)單元可以繼續(xù)發(fā)送
,如果發(fā)送的是“隱性”電平而監(jiān)視到的是“顯性”電平,那么這個(gè)單元就失去了仲裁
,必須退出發(fā)送狀態(tài)
。 (9)總線狀態(tài) 總線有“顯性”和“隱性”兩個(gè)狀態(tài),“顯性”對(duì)應(yīng)邏輯“0”
,“隱性”對(duì)應(yīng)邏輯“1”
。“顯性”狀態(tài)和“隱性”狀態(tài)與為“顯性”狀態(tài)
,所以兩個(gè)節(jié)點(diǎn)同時(shí)分別發(fā)送“0”和“1”時(shí)
,總線上呈現(xiàn)“0”
。CAN總線采用二進(jìn)制不歸零(NRZ)編碼方式,所以總線上不是“0”
,就是“1”
。但是CAN協(xié)議并沒有具體定義這兩種狀態(tài)的具體實(shí)現(xiàn)方式,如圖7-7所示
。 ?div id="4qifd00" class="flower right">
。?0)故障界定(Confinement) CAN節(jié)點(diǎn)能區(qū)分瞬時(shí)擾動(dòng)引起的故障和永久性故障。故障節(jié)點(diǎn)會(huì)被關(guān)閉