【CAN高階】帶您認識ISO11898-4:時(shí)間觸發(fā)通訊
CAN總線(xiàn)通訊發(fā)展的過(guò)程中,為了兼容實(shí)時(shí)操作系統,是否也有與之對應的實(shí)時(shí)通訊網(wǎng)絡(luò )協(xié)議呢?
本文引用地址:http://dyxdggzs.com/article/201804/377933.htmISO11898之前3個(gè)部分的解讀提高了對傳統CAN網(wǎng)絡(luò )的理解,無(wú)論是高速CAN還是低速CAN,亦或者是最基礎的物理層定義都進(jìn)行了詳細的闡述。傳統的CAN網(wǎng)絡(luò )總線(xiàn)通訊基本都是事件觸發(fā)的,當同時(shí)有許多信息需要傳輸時(shí)可能會(huì )造成總線(xiàn)過(guò)載,為了避免這種現象,傳統CAN網(wǎng)絡(luò )采用仲裁機制按信息優(yōu)先級進(jìn)行傳輸。

圖 1 新能源汽車(chē)CAN總線(xiàn)透視圖
顯然,傳統分布式的CAN網(wǎng)絡(luò )如果能用于實(shí)時(shí)操作系統(基于時(shí)間觸發(fā)調度而非事件觸發(fā)),對于系統的兼容性和綜合集成性將大有提高,但問(wèn)題是我們如何才能將并非同樣遵從時(shí)間調度的兩者結合起來(lái)呢?
一、時(shí)間觸發(fā)CAN
1、概述
時(shí)間觸發(fā)CAN是建立在標準CAN上的高層協(xié)議,它會(huì )對網(wǎng)絡(luò )中所有節點(diǎn)通訊進(jìn)行同步調度,也就是每個(gè)節點(diǎn)在一個(gè)固定的時(shí)間里發(fā)送信息,這樣就不用再對信息進(jìn)行優(yōu)先級仲裁,由于每個(gè)節點(diǎn)分配到的時(shí)間是固定的,所以還可以預判整個(gè)網(wǎng)絡(luò )的延遲時(shí)間。
2、要實(shí)現這樣的時(shí)間觸發(fā)CAN通訊有兩種方式
方式一:用于周期信息傳輸;
方式二:支持全局系統時(shí)間傳輸。
3、幾個(gè)重要概念
基本周期:兩個(gè)參照幀之間的時(shí)間被稱(chēng)為一個(gè)基本周期,基本周期由數個(gè)時(shí)間窗組成;
參照幀:開(kāi)始一個(gè)基本周期的數據幀,為網(wǎng)絡(luò )提供一個(gè)全局時(shí)間,其作用就好像格林尼治時(shí)間之于世界時(shí)間一樣,用以同步所有節點(diǎn)的時(shí)間;
時(shí)間窗:系統矩陣里為傳輸信息分配的時(shí)間段,包括仲裁時(shí)間窗、自由時(shí)間窗和專(zhuān)用時(shí)間窗,見(jiàn)圖2。

圖 2 一個(gè)周期內的數個(gè)時(shí)間窗
所謂的時(shí)間觸發(fā)就是上面已經(jīng)分配好的的數據從左到右按順序發(fā)送,下面介紹一下這三種時(shí)間窗
專(zhuān)用時(shí)間窗(Exclusive Windows):用來(lái)傳輸特殊的周期信息,這些消息不會(huì )參與總線(xiàn)競爭,是置身事外的一個(gè)記錄員角色;
仲裁時(shí)間窗(Arbitrating Windows):CAN節點(diǎn)在總線(xiàn)不是空閑的時(shí)候是不能傳輸消息的,而在時(shí)間觸發(fā)CAN的仲裁時(shí)間窗里可以安排網(wǎng)路內的幾個(gè)節點(diǎn)同時(shí)發(fā)送報文,不過(guò)沒(méi)有重發(fā)功能;
自由時(shí)間窗(Free Windows):保留用作系統擴展,可以配置成增加節點(diǎn)的仲裁時(shí)間窗或專(zhuān)用時(shí)間窗,相當于機動(dòng)部隊;

圖 3 系統矩陣
上圖的系統矩陣有4個(gè)基本周期,一個(gè)基本周期可由不同類(lèi)型、長(cháng)度的時(shí)間窗組成,矩陣的縱列也叫做傳輸陣,傳輸陣里的時(shí)間窗有相同的長(cháng)度但是可以擁有不同類(lèi)型。
二、接收和發(fā)送
明確完了概念,我們接下來(lái)了解時(shí)間觸發(fā)CAN是如何接收和發(fā)送信息的。
1、信息的發(fā)送
2、信息發(fā)送觸發(fā)器
在時(shí)間觸發(fā)CAN網(wǎng)絡(luò )里,節點(diǎn)發(fā)送的信息由信息發(fā)送觸發(fā)器控制。信息發(fā)送觸發(fā)器會(huì )顯示信息是由系統矩陣里面的哪個(gè)時(shí)間窗以及怎么來(lái)進(jìn)行傳輸的。
所以信息發(fā)送觸發(fā)器有多個(gè)功能組,一是信息正確性判斷,二是發(fā)送的時(shí)間標示,三是判斷傳輸陣里的發(fā)送位置,四是重發(fā)因數,一個(gè)信息發(fā)送觸發(fā)器的觸發(fā)條件滿(mǎn)足時(shí),即使信息的傳輸出錯導致信息失效時(shí)它也將立即啟動(dòng)。

圖 4 舉例一個(gè)專(zhuān)用信息的發(fā)送觸發(fā)器
上圖是一個(gè)專(zhuān)用信息D的信息發(fā)送觸發(fā)器,它表述了在系統矩陣里第三個(gè)基本周期的第五個(gè)時(shí)間窗(專(zhuān)用窗)發(fā)送,周期偏差為0,重發(fā)因素為2。
三、信息的接收
1、信息接收觸發(fā)器
在時(shí)間觸發(fā)CAN里,信息的接收是由信息接收觸發(fā)器控制的,信息接收觸發(fā)器的構成與上述的信息發(fā)送觸發(fā)器一樣,信息接收觸發(fā)器的時(shí)標會(huì )在信息接受完成后確定時(shí)間點(diǎn)。
2、參照幀的發(fā)送
3、信息接收觸發(fā)器
參照幀發(fā)送觸發(fā)器是一個(gè)特殊的信息發(fā)送觸發(fā)器,它只存在于備用的時(shí)間主節點(diǎn)里。在嚴格的時(shí)間觸發(fā)網(wǎng)絡(luò )中,只用唯一的一個(gè)參照幀發(fā)送觸發(fā)器來(lái)確保參照幀的周期發(fā)送,只要時(shí)間到了,參照幀就會(huì )被發(fā)送。
而在事件同步的基本周期系統中會(huì )有兩個(gè)參照幀發(fā)送觸發(fā)器,其中一個(gè)參照幀發(fā)送觸發(fā)器按系統矩陣基本周期定時(shí)發(fā)送,另一個(gè)作為后備,在事件同步異常時(shí)重新發(fā)送參照幀。
四、時(shí)間主節點(diǎn)初始化和錯誤處理
1、時(shí)間主節點(diǎn)初始化概念
雖然正常通訊建立起來(lái)時(shí)只有一個(gè)時(shí)間主節點(diǎn),但在時(shí)間觸發(fā)CAN中備用的時(shí)間主節點(diǎn)可能超過(guò)8個(gè)。系統啟動(dòng)時(shí),硬件初始化,所有備用時(shí)間主節點(diǎn)根據優(yōu)先級和等待時(shí)間可以開(kāi)始嘗試發(fā)送參照幀。硬件初始化后有高優(yōu)先級的CAN標識符的幀同步實(shí)體(數據鏈路層和媒體訪(fǎng)問(wèn)控制層的執行單元)可以?xún)?yōu)先傳輸。
2、錯誤處理
CAN的失效處理遵循ISO 11898-1的規定,當幀同步實(shí)體檢測到調度表有誤時(shí),會(huì )通過(guò)CAN的ISO 11898-1協(xié)議來(lái)處理。

圖 5 錯誤處理
評論