新聞中心

CAN總線的局限

作者: 時間:2016-12-15 來源:網(wǎng)絡(luò) 收藏
CAN總線由博世公司于1987年開發(fā),1993年成為標準,在近23年的時間里獲得了巨大的成功,逐漸替代了其它相近的總線,2001年的節(jié)點采用量已超過1億。但是,曾經(jīng)力推CAN總線的廠商,如寶馬、博世、飛利浦等,目前都開始支持新的總線。對于推動新總線研究的原因,X-By-Wire的發(fā)展是一方面,但從根本上講,消費者的安全需求才是最重要的原因。根據(jù)新聞報道:在CAN的發(fā)源地德國,2005年汽車拋錨事故中有35%是電子裝置引起的。因此,電子控制系統(tǒng)及其通信系統(tǒng)的可靠性是一個敏感的問題,即使沒有采用X-By-Wire,仍然使用常規(guī)的液壓氣動機構(gòu),也需要一種更為可靠的新總線來代替CAN。

車內(nèi)通信有兩個最基本的要求:一是數(shù)據(jù)內(nèi)容正確;二是通信及時,序列一致。對這兩點,CAN總線中均有所設(shè)計,但仍存在著不一致性、不可預(yù)測性、信道出錯堵塞等漏洞。

本文引用地址:http://m.butianyuan.cn/article/201612/330370.htm


1)不一致性
CAN總線中有一個著名的Last-But-One-Bit錯誤。CAN總線2.0A在信息認證(Message Validation)中規(guī)定:發(fā)送器驗錯的范圍可覆蓋到幀結(jié)束,如果發(fā)現(xiàn)錯誤,以后就按優(yōu)先權(quán)和狀態(tài)的規(guī)定重發(fā);接收器驗錯的范圍覆蓋到幀結(jié)束的前一位。因此,如果由于空間干擾、電源波動等原因,對于幀的倒數(shù)第二位,一部分節(jié)點A認為無錯,一部分節(jié)點B認為有錯,即出現(xiàn)了所謂的Byzantine錯誤。這時,根據(jù)EOF應(yīng)該是7個隱性位,節(jié)點B認為這是一種形式錯誤,所以就會啟動錯誤幀,通知發(fā)送器重發(fā),同時丟棄收到的幀。而認為沒錯的節(jié)點A由于只查到倒數(shù)第二位,因此就會接收此幀。如果在發(fā)送器例行的下一次發(fā)送前B通知的重發(fā)成功,A就會收到重復(fù)幀;如果重發(fā)不成功,B就丟了一幀。在轉(zhuǎn)向和制動系統(tǒng)中,4個輪子對命令的不同理解,可能造成性能的下降或其他更嚴重的后果。


2)不可預(yù)測性
CAN總線將節(jié)點狀態(tài)分為Error Active、Error Passive和Bus Off三種,這三種狀態(tài)在一定條件下可以互相轉(zhuǎn)換。不同狀態(tài)中節(jié)點的發(fā)送有不同的延遲。最高優(yōu)先權(quán)的信息發(fā)送延遲有幾種可能:當節(jié)點狀態(tài)為Error Active時,若總線空閑,則立即發(fā)送;當節(jié)點狀態(tài)為Error Active時,如果其它幀正在發(fā)送,則需等正在發(fā)送的報文結(jié)束后,再過3位后發(fā)送;當節(jié)點狀態(tài)為Error Passive時,它有一個出錯重發(fā)的要求,若沒有其它幀要發(fā)送,等3位傳送(Intermission)和8位掛起傳送(Suspend Transmission)后重發(fā);當節(jié)點狀態(tài)為Error Passive時,若總線空閑,出錯后等別的信息發(fā)送完后再發(fā),等待時間與其它幀的長度有關(guān);當節(jié)點狀態(tài)為Bus Off時,需等狀態(tài)恢復(fù)到Error Passive或Error Active再發(fā)。
當確認某節(jié)點的狀態(tài)時,還有幾個因素需要考慮:首先,節(jié)點由最高優(yōu)先權(quán)的信息和其他信息共用,因此,其他信息在傳送過程中出現(xiàn)的錯誤也會影響到節(jié)點狀態(tài);其次,進入Error Passive或 Bus Off狀態(tài)的條件是發(fā)送錯誤計數(shù)器與/或接收錯誤計數(shù)器的值,由于CAN的原子廣播特點,其它節(jié)點的發(fā)送錯誤或接收錯誤會開啟一個錯誤幀,從而影響到該節(jié)點的接收錯誤計數(shù)器的值,進而影響節(jié)點狀態(tài)。
對于優(yōu)先權(quán)較低的信息來說,發(fā)送時間的離散程度更大。在反饋控制系統(tǒng)中,采樣調(diào)節(jié)周期的大范圍抖動相當于信號延遲后的變化,它有可能使系統(tǒng)性能下降或不穩(wěn)定。在與安全相關(guān)的開環(huán)系統(tǒng)中,抖動可能造成動作順序的混亂。


3)信道出錯堵塞
節(jié)點有可能受干擾或其它原因暫時或永久失效,出錯的主機會命令CAN收發(fā)器不斷發(fā)送消息,即所謂的Babbling Idiot錯誤。由于該信息的格式等均合法,因此CAN沒有相應(yīng)的機制來處理這種情況。根據(jù)CAN的優(yōu)先權(quán)機制,比它優(yōu)先權(quán)低的信息就被暫時或永久堵塞。
由于CAN總線存在上述幾種根本的缺陷,因此,在更為嚴格的控制系統(tǒng)中,它將會造成巨大的風(fēng)險,無法滿足安全、環(huán)保、節(jié)能的要求。
CAN的事件觸發(fā)協(xié)議特點限制了ECU的應(yīng)用、開發(fā)與生產(chǎn),不僅用過的ECU難于重用,而且還不利于改善和開發(fā)新的ECU。


一個成功的CAN應(yīng)用僅在一定的條件下是有效的,簇內(nèi)所有信息的優(yōu)先權(quán)配置、波特率、通信負荷(所有信息的出現(xiàn)頻率和長度)都較為固定,任何一個參數(shù)的改變都會使通信的時域分布改變。因此,當需要改變車型時,如果添加了新的功能,或是修改了閉環(huán)控制方案,ECU的所有基本功能就必須重新驗證,這使工作量大大增加,延遲了新車型的上市時間。同樣,對于提供零部件的廠商,同一ECU在不同汽車廠商的汽車上應(yīng)用時,可能不得不對某些參數(shù)進行修改,這需要進行重新的驗證和認證,增加了管理的復(fù)雜性,也增加了成本。
在事件觸發(fā)通信系統(tǒng)中,所有的應(yīng)用都因優(yōu)先權(quán)規(guī)則而深深地耦合在一起。這一特點使得由不同的工作組對個別應(yīng)用同時進行設(shè)計、測試和認證的工作無法實現(xiàn),這一點對期望成為質(zhì)量與技術(shù)進步的汽車廠商來說是難以容忍的。


另外,對CAN的各種改進都難以實現(xiàn)向下的兼容性。自CAN總線問世以來,隨著對CAN局限性的認識不斷加深,業(yè)界提出了各種改進方案,這些方案采用標準的芯片,在底層協(xié)議上添加新的規(guī)定,使其具有分時通信的功能。如TTCAN、FTT_CAN ( Flexibly Time-Triggered CAN)、ServerCAN、TCAN (Timely CAN)、FlexCAN/SafeCAN 等。其中,TTCAN正在成為業(yè)界標準ISO11898-4。但是,這些改進都要對原有的CAN協(xié)議進行修改,例如出錯時不立即重發(fā),要將事件觸發(fā)的應(yīng)用程序改為時間觸發(fā)的應(yīng)用程序等。這些改動都是新協(xié)議必備而老協(xié)議不具備的,因此,原有的帶CAN通信協(xié)議的ECU如果想要在新系統(tǒng)中應(yīng)用,也就必須進行修改。


CAN總線的另一個局限因素是傳送波特率,十多年前確定的1M波特率由于應(yīng)用的飛速增加而變成瓶頸。從低速CAN總線、高速CAN總線,以致將來不得不配置第二條高速CAN總線,雖然這或許可以緩解速率問題,但從全局看,總線數(shù)量的增加使布線、網(wǎng)關(guān)、系統(tǒng)復(fù)雜性都隨之增加。從技術(shù)角度上看,重新設(shè)計CAN收發(fā)器,提高傳送波特率是有一定可能的;但從技術(shù)經(jīng)濟角度上看,無法與現(xiàn)有產(chǎn)品相兼容就使這種局部改進失去了意義。



關(guān)鍵詞: CAN總線局

評論


技術(shù)專區(qū)

關(guān)閉