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