摘要 TTCAN通過獨占窗口的方式解決消息傳送的確定性問題,提高總線利用率,試圖滿足應(yīng)用發(fā)展的要求。但是在惡劣環(huán)境的高誤碼率下,傳送的可靠性下降,容錯的措施不成熟,成本較高。再考慮TTCAN的其他得失,認(rèn)為它不是性價比高的CAN技術(shù)升級方案。
關(guān)鍵詞? CAN? TTCAN? 時間觸發(fā)協(xié)議? 誤碼率
2002年左右國外推出的TTCAN是一種時間觸發(fā)的通信協(xié)議,在我國電動汽車“863”攻關(guān)項目及地方的科研項目中有許多嘗試,目的是判斷它能否成為新一代汽車的通信骨干網(wǎng)絡(luò)。在研制中,它們一般規(guī)模較小,總線負(fù)載較輕,試驗環(huán)境并不十分惡劣,對誤碼造成的丟幀不容易發(fā)現(xiàn),且未經(jīng)長期考驗,所以沒有發(fā)現(xiàn)什么問題;但對于大量生產(chǎn)的汽車,必須全面認(rèn)識TTCAN的優(yōu)劣,以及汽車控制用總線的技術(shù)走向,才能避免采用新技術(shù)帶來的技術(shù)與經(jīng)濟(jì)風(fēng)險。本文試圖從可靠性與經(jīng)濟(jì)性角度對TTCAN作些分析,供大家決策時參考。
1? TTCAN興起的推動力量
TTCAN是在CAN的基礎(chǔ)上發(fā)展起來的一種高層協(xié)議,它的出現(xiàn)是為解決CAN應(yīng)用中遇到的瓶頸而作的一種試探。
現(xiàn)在,TTCAN已被采納為國際標(biāo)準(zhǔn)ISO118984;但在工業(yè)上也只是試驗性的應(yīng)用,沒有見到大規(guī)模的采用。雖然如此,對它興起的原因進(jìn)行分析仍然會對我們有很大的啟發(fā),正是這些需求構(gòu)成了評價一種新技術(shù)優(yōu)劣的依據(jù)。CAN是最成功的一種現(xiàn)場總線,在今天依然是應(yīng)用的主力,經(jīng)過近20年的實踐,對它的局限也有了較多的認(rèn)識[1]。這里不重復(fù)其中總結(jié)的內(nèi)容,僅從應(yīng)用的角度來說明CAN所面臨的問題。
1.1? 為滿足時限要求不得不降低總線利用率
CAN是事件觸發(fā)協(xié)議,當(dāng)許多消息同時要求發(fā)送時,競爭結(jié)果使低優(yōu)先級消息發(fā)送的時間推后很多,甚至不能滿足其時限的要求。
現(xiàn)以一個SAE benchmark為例[1]。該例有5條5 ms周期的消息,其幀長含1B、2B、1B、2B和4B數(shù)據(jù),其余為50、100和1 000 ms的消息。在參考文獻(xiàn)[1]中,消息可能的最大長度計算小了,但即便這樣,對于5 ms周期的消息在125、250、500 kbps和1 Mbps的總線速率下,最大響應(yīng)時間為4.456、2.228、1.114、0.557 ms。由于這些消息都置于較高優(yōu)先級,它們只可能被一個低優(yōu)先級4B數(shù)據(jù)消息阻斷1次。我們可以只算這幾條消息而估計相應(yīng)總線的通信負(fù)載為75 kbps,對應(yīng)的總線利用率為60%、30%、15%和7.5%。
現(xiàn)在看看最大響應(yīng)時間對于應(yīng)用意味著什么:一個閉環(huán)控制系統(tǒng)以5 ms為采樣控制周期,在最壞響應(yīng)時間為4.456 ms時,執(zhí)行器產(chǎn)生的反饋控制效果在下一次采樣前維持的時間最壞為5-4.456=0.55 ms,最長為5 ms。顯然在這種變動巨大的情況下,控制參數(shù)只能取得比較保守,例如微分和積分增益不能太強(qiáng)。這就極大地限制了控制品質(zhì)的提高。有些控制算法對這種純遲后的變化更為敏感,例如smith預(yù)估,因此為了保證品質(zhì),只能取較低的總線利用率。對于以品質(zhì)為第一的整車廠,這是唯一的選擇,而取較低的總線利用率意味著成本的提高。
1.2? 汽車廠是對成本非常敏感的企業(yè)
如果總線利用率只有20%~30%,隨著安全、節(jié)能與舒適性要求的提高,要增加更多消息而不希望增加成本。1條總線不夠,在技術(shù)上可再加,或者是連接2個ECU的專用總線,或者是連多個ECU的附加總線。要在2條CAN總線中加網(wǎng)橋,不要說復(fù)雜性的增加,成本的增加就很大。以一個網(wǎng)橋200元算,年產(chǎn)20萬臺車的廠家要增加4 000萬元成本。如果把總線利用率提高到60%,這錢就省下來了。
1.3? CAN的開發(fā)與應(yīng)用成本較高
為了使低優(yōu)先級消息發(fā)送時間減少,不得不修改消息的優(yōu)先級分配,這種變化增加了維修、管理的成本。由于系統(tǒng)中消息量與種類的變化,消息的送達(dá)時間會變化,又增加了認(rèn)證和驗證的工作量和成本。在開發(fā)新功能方面,也受到消息優(yōu)先級設(shè)置上的相互影響,不易單獨推進(jìn)。
1.4? CAN達(dá)不到線控技術(shù)的要求
線控技術(shù)可能簡化汽車的結(jié)構(gòu)、降低成本、提高控制能力,是一個重要發(fā)展的方向。但要達(dá)到與原來機(jī)械—液壓系統(tǒng)同樣的可靠性,需要通信系統(tǒng)有更高的確定性與冗余度。CAN達(dá)不到這一確定性要求,所以要改進(jìn)。當(dāng)然,新的協(xié)議不能在性能上比CAN還差。
通過時間觸發(fā)協(xié)議,使消息在調(diào)度好的時間片內(nèi)發(fā)送,可以消除總線的爭用,消息傳送的確定性得到了保證,總線的利用率也得到了提高。由于一部分消息不具有周期性質(zhì),需要提供合理的帶寬與時隙分布。TTCAN就在這種背景下出現(xiàn)了。幾乎同時出現(xiàn)的還有其他時間觸發(fā)協(xié)議,早一點的有TTP/C,晚一點的有FTTCAN、FlexRay等。它們都是在特定時隙指定周期性消息或事件消息的傳送,細(xì)節(jié)上雖有區(qū)別,但沒有根本的區(qū)別。與其他協(xié)議比較,TTCAN的優(yōu)點是它用現(xiàn)有的CAN芯片就可以實現(xiàn),因此價格便宜。這些經(jīng)濟(jì)上的考慮是TTCAN出現(xiàn)的直接推動力量。
2? TTCAN的簡要內(nèi)容
參考文獻(xiàn)[2]有TTCAN的詳細(xì)介紹。它的作者是TTCAN技術(shù)專利發(fā)明人、標(biāo)準(zhǔn)起草人。這里僅將它的幾個要點摘出:
① TTCAN用System Matrix組織時間片。它相當(dāng)于一個大周期,一個System Matrix里又分為2n個Cycle。在每個Cycle開始處,由時間上的Master節(jié)點發(fā)Reference消息,時間上的從節(jié)點對Reference進(jìn)行同步,這樣就建立了全局時鐘。
② Cycle里可以劃分為若干長度不同的Slot(時隙),但每個Cycle的Slot劃分是一樣的。
?、?Slot的用途有3種:Exclusive Window(獨占窗)、Arbitration Window(仲裁窗)和 Free Window(空窗)。Exclusive Window用于周期性消息發(fā)送,Arbitration Window用于事件消息的爭用,F(xiàn)ree Window用來備用。
④ 禁止消息跨窗口的發(fā)送,只有相連續(xù)的Arbitration Window除外。為此,禁止CAN的出錯自動重發(fā)功能。在Arbitration Window內(nèi)爭用的消息要先判斷能否發(fā)完,如能發(fā)完,才可參加爭用。
?、?Slot用途的指定是由調(diào)度器來實現(xiàn)的,它不是標(biāo)準(zhǔn)的內(nèi)容,然而事件消息在Arbitration Window的爭用并不是嚴(yán)格意義上的隨到隨爭用。按參考文獻(xiàn)[2]的想法,事件消息是偶發(fā)消息,應(yīng)用程序可以預(yù)先安排幾個偶發(fā)消息到一個Arbitration Window,再任它們爭用。
?、?在一個Cycle里,Slot的用途不受約束。
3? TTCAN的缺點與問題
(1) TTCAN與CAN是不兼容的
TTCAN要求獨占窗,因此它不能和CAN混合使用在一個系統(tǒng)中。帶CAN通信口的ECU不受TTCAN的約束,可在任意時刻發(fā)送,就有可能在總線空閑時爭得發(fā)送權(quán),使TTCAN的調(diào)度發(fā)送完全失效。汽車廠在采用TTCAN時必須將所有要用到的ECU都改為用TTCAN的方式,這就要重新認(rèn)證和驗證所有的ECU,涉及大的工作量和投資。如果用網(wǎng)關(guān)將CAN的ECU過渡到TTCAN網(wǎng),其成本的增加更大,只具有實驗意義。
(2) TTCAN在惡劣環(huán)境下誤幀太多
參考文獻(xiàn)[3]中, 用實驗方法得到CAN在惡劣環(huán)境下的誤碼率為2.6× 10-7。據(jù)文章作者認(rèn)為,這是較為保守的估計,實際情況要好些。為了考察這個數(shù)據(jù)的有效性,我與該文作者進(jìn)行了溝通,得到更為詳細(xì)的資料,見參考文獻(xiàn)[4]。根據(jù)這些資料,可以認(rèn)為這個數(shù)據(jù)是一個與汽車現(xiàn)場接近的數(shù)據(jù),不能算作保守。其主要理由有:
① 實驗的原始想法是只測來源于CAN電纜干擾的誤碼,所以把CAN發(fā)送和接收節(jié)點放在屏蔽箱內(nèi),用二條電纜傳送信號,一條在箱內(nèi),一條在箱外,通過比較從二條電纜收到的數(shù)據(jù)流,計算出誤碼率。但是將手機(jī)放在不帶屏蔽、不作雙絞的通信線上進(jìn)行另外的實驗時,卻沒有任何出錯,說明來自空間的干擾影響很小。而實際惡劣環(huán)境下現(xiàn)場被測試設(shè)備的電源與干擾源的電源并不獨立。與此對比,認(rèn)為出錯是通過電源傳導(dǎo)的,這與原始設(shè)想不同。
?、?實驗的惡劣環(huán)境是指電焊機(jī)工作時的干擾,并無具體的數(shù)量指標(biāo),無法與汽車的電源傳導(dǎo)干擾相比較(ISO7637)。實際上可能不如汽車電源干擾大。
③ 在電源傳導(dǎo)干擾下,造成誤碼計數(shù)的情形較復(fù)雜。它與可能的故障位置、CAN收發(fā)節(jié)點狀態(tài)有關(guān)。誤碼有多算也有少算的情形。
?、?電焊機(jī)是人工操作,通信實驗中干擾源只在部分時間存在,計算誤碼率的通信總量多算了。
在此推定下,如假設(shè)TTCAN的總線利用率為60%,通信速率為500 kbps,按照2.6×10-7的誤碼率,那么在1小時內(nèi)會有280.8個誤碼(500k×3 600×60%×2.6×10-7=280.8),約12.8秒1次。由于TTCAN禁止出錯自動重發(fā),因此會大量丟幀。而對CAN來說,只要在12.8 s內(nèi)重發(fā)成功,就不會丟幀。TTCAN要回避這個問題,就要求更完善的抗干擾措施,這意味著成本的提高。
(3) 由預(yù)留Error Frame幀引起的開銷大
TTCAN沒有禁止Error Frame,由于錯誤可能出現(xiàn)在任何時間,就可能發(fā)生在幀的最后處,每一個Slot都要預(yù)留Error Frame的時間,否則它會阻礙下一個Slot內(nèi)消息的發(fā)送,這是很大的開銷,使TTCAN遠(yuǎn)達(dá)不到設(shè)想的100%的總線利用率。假定最小的數(shù)據(jù)幀為1B數(shù)據(jù),長為65位,而Error Frame為20位,那么這項開銷達(dá)到23.5%。
(4) Slot用途不同造成時間利用率低由
于TTCAN規(guī)定調(diào)度好的Cycle中的Slot劃分是一樣的,但可能的用途不同。不同的Cycle同一Slot里可能安排了長短不一的消息,此時對短幀來說,留下的時間就浪費了。
(5) 事件消息被阻塞的延遲可能性增大
在TTCAN中,由于調(diào)度結(jié)果造成幾個連續(xù)的Slot都是獨占窗,此時事件消息要等待的時間很長,必須有特別的設(shè)計加以處理。
(6) 網(wǎng)絡(luò)內(nèi)的時間同步要求較高
用軟件來實現(xiàn)時就得留出時間以容許主從節(jié)點間的同步誤差,這就又減少了帶寬。如用Level 2的硬件實現(xiàn),就不可能馬上使成本低到與CAN一樣。實際上,置TTCAN于一種新的與CAN無關(guān)的總線的地位,要與其他總線作全面的比較,TTCAN就沒有其他總線好了。
(7) 丟幀處理兩難
TTCAN在傳送出錯的情況下,不對本幀進(jìn)行自動重發(fā)。在應(yīng)用上要有所考慮?;蛘哂帽葘嶋H需要更多的發(fā)送,丟掉就算了的策略,這也會浪費帶寬;或者由應(yīng)用層在仲裁窗組織重發(fā),但這相當(dāng)復(fù)雜。如用冗余的第2條總線,意味著成本的加倍。
(8) 仲裁窗的要求較難實現(xiàn)
在仲裁窗判斷事件消息能否發(fā)完,然后控制事件消息的發(fā)送是不容易實現(xiàn)的。用軟件來實時處理來不及,又沒有現(xiàn)成的硬件。
另外,在對付CAN系統(tǒng)中Babbling idiot出錯方面,TTCAN沒有改進(jìn)。
4? 小結(jié)
工業(yè)應(yīng)用中可靠性是第一位的要求,出錯自動重發(fā)是CAN最有價值的部分;而TTCAN禁止出錯重發(fā),使它的抗干擾能力大打折扣,在應(yīng)用上造成困難。在許多時間觸發(fā)協(xié)議中糾錯的方法都復(fù)雜得多,如TTP/C和FlexRay用2個通道傳送同樣的消息,只要不是2個通道同時出錯,消息就能送達(dá),但是其代價是成本比單通道增加1倍。TTCAN也能構(gòu)造2個通道,也會面臨同樣的代價問題;而且2個通道同時出錯仍是有概率的,要重發(fā)又有時限等新的問題。因此在抗干擾方面,TTCAN沒有給出性價比合適的解決方案?,F(xiàn)在CAN每年都有數(shù)億的節(jié)點產(chǎn)量,這說明用戶對它的可靠性的認(rèn)同,而這種可靠性完全來源于CAN在數(shù)據(jù)鏈路層實現(xiàn)的出錯自動重發(fā)功能——干擾是客觀存在的,自動糾錯使用戶根本感覺不到有錯。比較所有的現(xiàn)場總線,糾錯的方法要比CAN復(fù)雜得多,應(yīng)用就不方便,性價比下降。盡管FlexRay的拓?fù)浣Y(jié)構(gòu)很多,有星型、總線型等,但設(shè)想用于替代CAN的只用1個通道的用法,可能會面臨TTCAN同樣的干擾丟幀問題;解決出錯重發(fā)的高層軟件并不成熟,也沒有標(biāo)準(zhǔn)化,因此目前不會構(gòu)成對CAN的威脅。
TTCAN與CAN的不兼容,使它在經(jīng)濟(jì)上不能充分利用CAN的資源,所以它也不是CAN的好的升級方案。
參考文獻(xiàn)
[1] ?Tindell K W, Burns A. Guaranteeing message latencies on Controller Area Network (CAN)[C]. In Proceedings of 1st International CAN Conference, pp. 111, September 1994.
[2] ?Fuhler T,et al. Time Triggered Communication on CAN[C]. Robert Bosch GmbH, Proceedings 7th International CAN Conference, Amsterdam, Holland, 2000.
[3]? Ferreira J,Oliveira A,Fonseca P,et al. An experiment to assess bit error rate in CAN[C]. RTN 2004? 3rd Int. Workshop on Real?Time Networks sattelite held in conjunction with the 16th Euromicro Intl Conference on Real?Time Systems, June 2004.
[4]? Ferreira J. PhDjjcf_Charpter_4.pdf
[5]? 楊福宇. CAN總線的局限[J]. 電子設(shè)計應(yīng)用,2006(11):32, 34.
楊福宇(高級工程師),主要研究方向為工控、現(xiàn)場總線與汽車電子。Email: yfy812@163.com。
(收修改稿日期:2008-1-16)
評論
查看更多