【CAN高階】帶您認(rèn)識(shí)ISO11898-4:時(shí)間觸發(fā)通訊
CAN總線通訊發(fā)展的過(guò)程中,為了兼容實(shí)時(shí)操作系統(tǒng),是否也有與之對(duì)應(yīng)的實(shí)時(shí)通訊網(wǎng)絡(luò)協(xié)議呢?
本文引用地址:http://2s4d.com/article/201804/377933.htmISO11898之前3個(gè)部分的解讀提高了對(duì)傳統(tǒng)CAN網(wǎng)絡(luò)的理解,無(wú)論是高速CAN還是低速CAN,亦或者是最基礎(chǔ)的物理層定義都進(jìn)行了詳細(xì)的闡述。傳統(tǒng)的CAN網(wǎng)絡(luò)總線通訊基本都是事件觸發(fā)的,當(dāng)同時(shí)有許多信息需要傳輸時(shí)可能會(huì)造成總線過(guò)載,為了避免這種現(xiàn)象,傳統(tǒng)CAN網(wǎng)絡(luò)采用仲裁機(jī)制按信息優(yōu)先級(jí)進(jìn)行傳輸。
圖 1 新能源汽車(chē)CAN總線透視圖
顯然,傳統(tǒng)分布式的CAN網(wǎng)絡(luò)如果能用于實(shí)時(shí)操作系統(tǒng)(基于時(shí)間觸發(fā)調(diào)度而非事件觸發(fā)),對(duì)于系統(tǒng)的兼容性和綜合集成性將大有提高,但問(wèn)題是我們?nèi)绾尾拍軐⒉⒎峭瑯幼駨臅r(shí)間調(diào)度的兩者結(jié)合起來(lái)呢?
一、時(shí)間觸發(fā)CAN
1、概述
時(shí)間觸發(fā)CAN是建立在標(biāo)準(zhǔn)CAN上的高層協(xié)議,它會(huì)對(duì)網(wǎng)絡(luò)中所有節(jié)點(diǎn)通訊進(jìn)行同步調(diào)度,也就是每個(gè)節(jié)點(diǎn)在一個(gè)固定的時(shí)間里發(fā)送信息,這樣就不用再對(duì)信息進(jìn)行優(yōu)先級(jí)仲裁,由于每個(gè)節(jié)點(diǎn)分配到的時(shí)間是固定的,所以還可以預(yù)判整個(gè)網(wǎng)絡(luò)的延遲時(shí)間。
2、要實(shí)現(xiàn)這樣的時(shí)間觸發(fā)CAN通訊有兩種方式
方式一:用于周期信息傳輸;
方式二:支持全局系統(tǒng)時(shí)間傳輸。
3、幾個(gè)重要概念
基本周期:兩個(gè)參照幀之間的時(shí)間被稱(chēng)為一個(gè)基本周期,基本周期由數(shù)個(gè)時(shí)間窗組成;
參照幀:開(kāi)始一個(gè)基本周期的數(shù)據(jù)幀,為網(wǎng)絡(luò)提供一個(gè)全局時(shí)間,其作用就好像格林尼治時(shí)間之于世界時(shí)間一樣,用以同步所有節(jié)點(diǎn)的時(shí)間;
時(shí)間窗:系統(tǒng)矩陣?yán)餅閭鬏斝畔⒎峙涞臅r(shí)間段,包括仲裁時(shí)間窗、自由時(shí)間窗和專(zhuān)用時(shí)間窗,見(jiàn)圖2。
圖 2 一個(gè)周期內(nèi)的數(shù)個(gè)時(shí)間窗
所謂的時(shí)間觸發(fā)就是上面已經(jīng)分配好的的數(shù)據(jù)從左到右按順序發(fā)送,下面介紹一下這三種時(shí)間窗
專(zhuān)用時(shí)間窗(Exclusive Windows):用來(lái)傳輸特殊的周期信息,這些消息不會(huì)參與總線競(jìng)爭(zhēng),是置身事外的一個(gè)記錄員角色;
仲裁時(shí)間窗(Arbitrating Windows):CAN節(jié)點(diǎn)在總線不是空閑的時(shí)候是不能傳輸消息的,而在時(shí)間觸發(fā)CAN的仲裁時(shí)間窗里可以安排網(wǎng)路內(nèi)的幾個(gè)節(jié)點(diǎn)同時(shí)發(fā)送報(bào)文,不過(guò)沒(méi)有重發(fā)功能;
自由時(shí)間窗(Free Windows):保留用作系統(tǒng)擴(kuò)展,可以配置成增加節(jié)點(diǎn)的仲裁時(shí)間窗或?qū)S脮r(shí)間窗,相當(dāng)于機(jī)動(dòng)部隊(duì);
圖 3 系統(tǒng)矩陣
上圖的系統(tǒng)矩陣有4個(gè)基本周期,一個(gè)基本周期可由不同類(lèi)型、長(zhǎng)度的時(shí)間窗組成,矩陣的縱列也叫做傳輸陣,傳輸陣?yán)锏臅r(shí)間窗有相同的長(zhǎng)度但是可以擁有不同類(lèi)型。
二、接收和發(fā)送
明確完了概念,我們接下來(lái)了解時(shí)間觸發(fā)CAN是如何接收和發(fā)送信息的。
1、信息的發(fā)送
2、信息發(fā)送觸發(fā)器
在時(shí)間觸發(fā)CAN網(wǎng)絡(luò)里,節(jié)點(diǎn)發(fā)送的信息由信息發(fā)送觸發(fā)器控制。信息發(fā)送觸發(fā)器會(huì)顯示信息是由系統(tǒng)矩陣?yán)锩娴哪膫€(gè)時(shí)間窗以及怎么來(lái)進(jìn)行傳輸?shù)摹?/p>
所以信息發(fā)送觸發(fā)器有多個(gè)功能組,一是信息正確性判斷,二是發(fā)送的時(shí)間標(biāo)示,三是判斷傳輸陣?yán)锏陌l(fā)送位置,四是重發(fā)因數(shù),一個(gè)信息發(fā)送觸發(fā)器的觸發(fā)條件滿足時(shí),即使信息的傳輸出錯(cuò)導(dǎo)致信息失效時(shí)它也將立即啟動(dòng)。
圖 4 舉例一個(gè)專(zhuān)用信息的發(fā)送觸發(fā)器
上圖是一個(gè)專(zhuān)用信息D的信息發(fā)送觸發(fā)器,它表述了在系統(tǒng)矩陣?yán)锏谌齻€(gè)基本周期的第五個(gè)時(shí)間窗(專(zhuān)用窗)發(fā)送,周期偏差為0,重發(fā)因素為2。
三、信息的接收
1、信息接收觸發(fā)器
在時(shí)間觸發(fā)CAN里,信息的接收是由信息接收觸發(fā)器控制的,信息接收觸發(fā)器的構(gòu)成與上述的信息發(fā)送觸發(fā)器一樣,信息接收觸發(fā)器的時(shí)標(biāo)會(huì)在信息接受完成后確定時(shí)間點(diǎn)。
2、參照幀的發(fā)送
3、信息接收觸發(fā)器
參照幀發(fā)送觸發(fā)器是一個(gè)特殊的信息發(fā)送觸發(fā)器,它只存在于備用的時(shí)間主節(jié)點(diǎn)里。在嚴(yán)格的時(shí)間觸發(fā)網(wǎng)絡(luò)中,只用唯一的一個(gè)參照幀發(fā)送觸發(fā)器來(lái)確保參照幀的周期發(fā)送,只要時(shí)間到了,參照幀就會(huì)被發(fā)送。
而在事件同步的基本周期系統(tǒng)中會(huì)有兩個(gè)參照幀發(fā)送觸發(fā)器,其中一個(gè)參照幀發(fā)送觸發(fā)器按系統(tǒng)矩陣基本周期定時(shí)發(fā)送,另一個(gè)作為后備,在事件同步異常時(shí)重新發(fā)送參照幀。
四、時(shí)間主節(jié)點(diǎn)初始化和錯(cuò)誤處理
1、時(shí)間主節(jié)點(diǎn)初始化概念
雖然正常通訊建立起來(lái)時(shí)只有一個(gè)時(shí)間主節(jié)點(diǎn),但在時(shí)間觸發(fā)CAN中備用的時(shí)間主節(jié)點(diǎn)可能超過(guò)8個(gè)。系統(tǒng)啟動(dòng)時(shí),硬件初始化,所有備用時(shí)間主節(jié)點(diǎn)根據(jù)優(yōu)先級(jí)和等待時(shí)間可以開(kāi)始嘗試發(fā)送參照幀。硬件初始化后有高優(yōu)先級(jí)的CAN標(biāo)識(shí)符的幀同步實(shí)體(數(shù)據(jù)鏈路層和媒體訪問(wèn)控制層的執(zhí)行單元)可以?xún)?yōu)先傳輸。
2、錯(cuò)誤處理
CAN的失效處理遵循ISO 11898-1的規(guī)定,當(dāng)幀同步實(shí)體檢測(cè)到調(diào)度表有誤時(shí),會(huì)通過(guò)CAN的ISO 11898-1協(xié)議來(lái)處理。
圖 5 錯(cuò)誤處理
評(píng)論