新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > 關于CAN隱患的爭辯

關于CAN隱患的爭辯

作者: 時間:2009-07-08 來源:網絡 收藏

摘要 對于在《單片機與嵌入式系統(tǒng)應用》上發(fā)表的的2篇文章,Bosch對比作出了答復。Bosch在聲明中默認了故障約束機制會造成發(fā)送與接收延遲現(xiàn)象的存在,但未提及其帶來的惡性后果;強調這樣做的好處,稱這是特色而不是錯誤。本文在分析等效離線或真正離線對應用帶來壞處的基礎上,說明此事的嚴重性――可能引起大規(guī)模的召回事件。故障約束機制的好處與壞處是可以分開的,改進不僅在現(xiàn)在是必須,也可進一步提高在未來應用中的競爭力。
關鍵詞 CAN 故障 安全 故障約束機制

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


CAN始于本刊發(fā)表的2篇文章,一是“CAN總線系統(tǒng)中的一種安全”,一是“CAN消極報錯發(fā)送節(jié)點變?yōu)殡x線狀態(tài)的故障“。這2篇文章在送稿前已經發(fā)給國內外的一些專家征求意見,尚未有反駁的意見。由于此事關系重大,涉及許多單位的利益,例如芯片供應商、開發(fā)工具供應商、ECU供應商、汽車制造商、高層協(xié)議供應商、高層協(xié)議產品提供商、各類服務提供商等等,為了避免這些單位由于既得利益的驅動有意無意地淡化問題的嚴重性,需要一個獨立的代表第三者利益的機構來考察與評判問題是否存在,及其危害性。這個第三方利益就是終端用戶,例如汽車的駕駛與乘用人員、行人及與此有關的保險公司、道路管理單位等。因此,不僅應該告知CAN產業(yè)的有關方,也應告知利益有關方,才能得到正確的恰如其分的應對。基于此種考慮,筆者將2篇文章的英文稿送美國國家交通部公路交通安全管理處(U.S.Department of Transportation,National Highwav Traffic Safety Administration)的網絡熱線,提請他們注意。后來這件事大概由他們轉到了國際標準化組織(ISO)。ISO的TC/22/SC3負責車用通信有關業(yè)務,其TC/22/SC3/WG1/TF1的組長是CiA的主席Zeltwanger先生。CiA曾有人作了回復,筆者也作了答復,最后由 Zeltwanger。先生轉來對此問題的正式聲明作為答復。這是對問題的答復,并不是對個人的答復,這個聲明是由ISO中國CAN專家組轉來的。(它的英文全文見本刊網站www.mesnet.com.cn。)下面是Bosch聲明要點與筆者的觀點,在引述Bosch聲明時將力求準確。
Bosch聲明的標題是“它不是隱患,而是特色”(It's not
a bug,it's a feature!)。在引用參考文獻[1―2]時說,“在那2篇文章中有一些對CAN協(xié)議故障約束機制,特別是對由消極報錯狀態(tài)下看到本地錯的關切。…… 在CAN總線上網絡流量很高以致連續(xù)幀之間不再有空閑時間時,以及消極報錯節(jié)點看到本地錯(即未被其他節(jié)點看到的錯)時,它將無法完成其消極報錯標志。后果是這個節(jié)點將不再能收發(fā)幀,直到它遇到空閑時間或其他節(jié)點發(fā)的主動報錯幀。消極報錯狀態(tài)的發(fā)送節(jié)點會由此而使出錯計數器加上去,直到達到離線狀態(tài)?!?這是CAN協(xié)議故意要達到的行為。……2種方法企圖解決的是1個并不存在的問題。”
上述引述與原文略有差異??偩€上空閑的分布是不受控制的,尖峰負載也是不可控的,即使有部分空閑也不能保障消極報錯幀正確結束。尖峰負載是由消息到達時間的本質決定的,事件觸發(fā)消息的到達時間是隨機的,周期性消息的到達時間隨本地時鐘而變。例如,有2個初始相位相差5 ms的消息,它們的振蕩器相差200×lO-6,它們的相位差在25 s后就消失了。在某個公倍數時間點上,所有的消息就會有接近O的相位差,就形成CAN調度分析最壞響應時間時假定的最壞峰值負載。這種差異不影響對 Bosch聲明的進一步分析。就聲明的上述表述而言,“特色”、“故意要達到的行為”等語句實際上同意了等效離線和真正離線后果的存在,后面還有 Bosch對此行為的直接描述。不過,Bosch并不認為此后果是有害的,而是強調此后果的有利方面。
它說:“故障約束機制的目的是防止有故障的節(jié)點干擾其余節(jié)點間的通信?!比缓蠼忉屃诉M入消極報錯狀態(tài)或離線狀態(tài)就可以達到上述目的。并說“1個因REC而進入消極報錯狀態(tài)的接收節(jié)點在成功收到1個無錯的消息后,它能切換回主動報錯狀態(tài)(見故障約束規(guī)則8),使它能至少再發(fā)1次主動報錯幀。”在談論總線負載應小于50%后,它說“尖峰負荷典型地是由總線上的擾動造成,此時通信要中斷一段時間,待發(fā)的傳送會累積起來。當擾動結束時,所有這些待發(fā)的消息將按它們的標識符一個接一個送出。……如果擾動是由有故障節(jié)點引起,并在節(jié)點進入消極報錯狀態(tài)結束,那么故障約束機制想要的功能是把該節(jié)點保持在消極報錯狀態(tài),至少讓被該干擾推遲的所有消息發(fā)完,即尖峰負荷結束。
在這里,尖峰負荷并不隨著干擾的消失而消失,CAN作為一種事件觸發(fā)協(xié)議,負荷的分布完全是隨機的,50%負載的約束并不能防止等效離線或真正離線狀況的出現(xiàn),參考文獻[1]中引述的例子已證明了這一點。Bosch把引入消極報錯狀態(tài)的好壞后果混為一談。當節(jié)點進入消極報錯狀態(tài)后其報錯幀全是隱位,本來可以不再干擾其他節(jié)點的正常通信,沒有必要讓它退出通信。此外,在這一段表述中可以清楚地看到,CAN故障約束機制要讓被該干擾推遲的所有消息發(fā)完,至少要禁止消極報錯狀態(tài)節(jié)點發(fā)送(不管消極報錯狀態(tài)節(jié)點待發(fā)的消息優(yōu)先級多高),這印證了參考文獻[1-2]的分析,但是它未提及接收也被禁止了。


上一頁 1 2 下一頁

關鍵詞: 爭辯 隱患 CAN 關于

評論


相關推薦

技術專區(qū)

關閉