新聞中心

CAN總線的局限

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

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

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


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


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


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


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


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


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



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

評(píng)論


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

關(guān)閉