CAN總線的功能安全問題
2 等效離線發生的概率
等效離線的發生有3個條件:①節點已經在消極報錯狀態(error passive status);②該節點發生了局部錯;③由于在消極報錯幀分界符內遇到其他節點掛起待發幀的發送而造成連續出錯。要考慮的是由于誤碼而報錯的概率與處于總線峰值負載的概率。
消極報錯幀規定:在發送連續隱位時讀回6個連續的相同位時視為報錯標志發完,然后開始發隱位,讀回隱位時作為消極報錯幀分界符開始,開始后必須有連續7個隱位,如內又有顯位,就作為新錯,節點要重發消極報錯幀。
對于消極報錯發送節點,發生局部錯的位置有2種。在ACK分界符前時,消極報錯標志的連續隱位會被接收節點以填充規則檢驗、CRC檢驗發現有錯,引起接收節點報錯。它們的主動報錯幀的連續6個顯位決定了發送節點消極報錯幀報錯標志結束時間的同步,不會發生分界符內出錯的情況。
在ACK及分界符后到EOF第3位間有局部錯時,消極報錯標志(P.E.Flag)的6個隱位會被接收節點認為是正常的發送幀結尾部分和2位服務間隔(I.M.)。別的節點所發新幀開始位(SOF),將落入發送節點消極報錯幀分界符(P.E.Del)內,形成新錯,如圖2所示。發送節點新的消極報錯幀將在新幀的ACK分界符處開始。然后,只要有掛起待發幀,這種出錯狀態就重復下去。而EOF第4~7位發送節點發的消極報錯幀由于未見到連續的6個相同位,發送節點要等待別的節點所發新幀的ACK分界符處開始才有機會見到,等同于在ACK分界符處開始的消極報錯幀。由此可知,產生等效離線錯誤的位置數為9位,其概率為9·BER。本文引用地址:http://www.104case.com/article/196159.htm
在消極報錯狀態的發送節點遇到16次重復錯后,會進入真正離線狀態,所以要求取有16幀掛起待發的機會。這與ECU的設計有關,較難分析。我們以仿真來求取,底盤CAN總線系統內一般有6個節點,約有60個左右的消息要傳送,則每個節點平均有10條消息,假定周期為10 ms、20 ms、50 ms、100 ms、1 000 ms等各有2條,每條幀長為97位,在500 kbps下6個節點的總線負載率總計43.4%。當一個節點等效離線后,還有約50條消息要發。在時鐘差的影響下,可以構成一個峰值,節點在相對頻差-0.2、0.4、0.6、0.8×100 ppm下的仿真結果如圖3所示。其中隊長度每0.2 ms統計一次,累計出該隊長在整個仿真時間內的出現次數。
為了便于ECU編程,采樣與寫CAN總線控制器在一個任務中完成,所以假定10條消息在4 ms內就緒。仿真開始時是最壞情況:所有節點同時開始寫CAN總線控制器任務。在上述頻差下,節點1、2經500 s差10 ms,也就是說2個節點的10ms周期的消息就緒時間又重合了,其他節點與節點1的組合各為250 s、166 s、125 s。由于較長周期消息對掛起隊長的影響較小,所以仿真的時段取得較短。以600 s的結果計算,掛起長度為16以上的情況有3 590次,占600 s內傳送的1.2×10-3。需要特別注意的是,掛起隊長的分布不是均勻的,因此處于等效離線而轉為真正離線的機會也不是均勻分布的。由上述仿真60 s、600 s的結果看,掛起長度為16以上的情況都是3 590次,如果在最壞情況60 s內遇上了的機會便是1.2×10-2。如果在最壞情況6 s內遇上掛起長度為16以上的情況有1 005次,機會便是3.3×10-2 。
評論