CAN總線的技術(shù)規(guī)范與控制器類型
CAN協(xié)議介紹
CAN協(xié)議是參考ISO/OSI的7層協(xié)議模式而做定義的,但因它主要是用來傳送簡短且簡單的信號(hào),而且是一封閉性的系統(tǒng),并不需要負(fù)責(zé)系統(tǒng)的安全、產(chǎn)生用戶接口的數(shù)據(jù),以及監(jiān)控網(wǎng)絡(luò)的登入等動(dòng)作,因此只涉及了實(shí)體層和數(shù)據(jù)鏈接層的定義。
1、實(shí)體層規(guī)范特性
實(shí)體層負(fù)責(zé)的是網(wǎng)絡(luò)中節(jié)點(diǎn)與節(jié)點(diǎn)之間的連結(jié),以及在銅線、同軸纜線、光纖,甚至是無線信號(hào)的實(shí)際電性脈沖傳送。傳送器的實(shí)體層會(huì)把從數(shù)據(jù)鏈接層來的數(shù)據(jù)轉(zhuǎn)換為電子信息,再傳送出去;在接收端,實(shí)體層將這些電子信息傳換為數(shù)據(jù)格式,再傳送到數(shù)據(jù)鏈接層。
在一個(gè)網(wǎng)絡(luò)系統(tǒng)中,要確保各個(gè)節(jié)點(diǎn)之間能夠順利地溝通,先決條件是每個(gè)節(jié)點(diǎn)的實(shí)體層特性必須是相同的,而CAN實(shí)體層的作用就在于規(guī)范位表示法、位時(shí)序及同步性,通常還包括腳位連接器和接線的型式。CAN由兩條序列總線(CAN_H和CAN_L)實(shí)時(shí)傳輸數(shù)據(jù),傳輸速率可高達(dá)1Mb/s。理論上,每個(gè)CAN總線最多可連結(jié)2032個(gè)節(jié)點(diǎn),但受限于收發(fā)器的功能,實(shí)際運(yùn)用上最多大約可連結(jié)100個(gè)節(jié)點(diǎn),而在一般的運(yùn)用上則大約是連結(jié)3~10個(gè)節(jié)點(diǎn)。CAN實(shí)體層示意圖如圖2所示。
圖2 CAN實(shí)體層架構(gòu)示意圖
CAN數(shù)據(jù)鏈接層可以說是CAN功能的核心,其目的在于建立數(shù)據(jù)信框封包,在信框內(nèi)包含數(shù)據(jù)和控制數(shù)據(jù)。數(shù)據(jù)鏈接層的主要功能之一,就是當(dāng)系統(tǒng)中出現(xiàn)兩個(gè)信號(hào)同時(shí)想使用網(wǎng)絡(luò)中的相同資源時(shí),如何防止沖突的發(fā)生。這就是所謂MAC(Medium Access Control)功能。在CAN協(xié)議中,MAC功能會(huì)讓具有最高優(yōu)先權(quán)的數(shù)據(jù)信框優(yōu)先使用總線的網(wǎng)絡(luò)資源,此機(jī)制對(duì)于網(wǎng)絡(luò)效能的影響很大。
在網(wǎng)絡(luò)的接取控制上有兩大方向,即先決式和隨機(jī)式。在先決式的接取控制中,總線的使用權(quán)必須在節(jié)點(diǎn)接取總線前就預(yù)先定義好了,以確保不會(huì)發(fā)生任何沖突。此類網(wǎng)絡(luò)需要一個(gè)中央管控裝置來進(jìn)行網(wǎng)絡(luò)管理,但一旦此裝置失常,整個(gè)網(wǎng)絡(luò)就無法運(yùn)作;也有非中心化的架構(gòu),但相對(duì)會(huì)復(fù)雜許多。
在隨機(jī)式接取控制中,當(dāng)總線閑置時(shí),每個(gè)節(jié)點(diǎn)都能夠要求使用網(wǎng)絡(luò)資源。最常見的隨機(jī)式接取控制方式是載波偵測(cè)多重存取(Carrier Sense Multiple Access,CSMA),CSMA又分成限制或防止信號(hào)碰撞的CSMA/CA方式和允許碰撞再進(jìn)行處置的CSMA/CD方式。由于CSMA/CD較浪費(fèi)頻寬資源及會(huì)產(chǎn)生較長的延遲性,因此CAN采用的是CSMA/CA的方式,此作法又稱為非破壞性的按位仲裁機(jī)制。
CAN協(xié)議讓優(yōu)先權(quán)較高的信號(hào)先接取使用總線資源,在每個(gè)信號(hào)信框的一開始處就存在仲裁域,仲裁域中有一個(gè)識(shí)別碼,識(shí)別碼的數(shù)值越小,表示其優(yōu)先權(quán)限越高。此作法能有效地利用總線資源,其具有最高優(yōu)先權(quán)的信號(hào),最大的延遲時(shí)間大約只有150ms。
在CAN的2.0A標(biāo)準(zhǔn)中,一開始定義識(shí)別碼的長度為11位,后來因市場(chǎng)的需求又提出了延伸性的2.0B版本。2.0B的格式通常被稱為延伸性CAN,它允許29位的識(shí)別碼,而且有主動(dòng)及被動(dòng)式兩種:2.0B主動(dòng),也就是能收、發(fā)延伸信框的節(jié)點(diǎn);以及2.0B被動(dòng),它會(huì)放棄掉接收到的延伸信框。2.0B的29位識(shí)別碼能夠提供51200萬個(gè)獨(dú)特的信號(hào)及優(yōu)先等級(jí),足以滿足來自越來越多節(jié)點(diǎn)的大量存取要求。
三、數(shù)據(jù)鏈接層規(guī)范特性:信框格式
所謂的信框即包含由傳送器送出的完整信號(hào)的數(shù)據(jù)封包。在CAN協(xié)議中具有4種信框,即數(shù)據(jù)信框、遠(yuǎn)程信框、誤碼信框及額外負(fù)載信框。以下主要介紹數(shù)據(jù)信框的組成。
數(shù)據(jù)信框包含了識(shí)別碼和各種控制信息,以及最多8字節(jié)的數(shù)據(jù)。其基本組成包括:信框開始、仲裁域(又包括識(shí)別碼和RTR)、控制域(又包括IDE、r0和數(shù)據(jù)長度碼)、數(shù)據(jù)域、循環(huán)冗余碼檢驗(yàn)域、確認(rèn)域,以及信框終點(diǎn)等,如圖3所示。
圖3 延伸型CAN的數(shù)據(jù)信框組成架構(gòu)
評(píng)論