免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進行處理。
節(jié)點BusOff恢復(fù)過程分析與測試
發(fā)布時間:2020-06-11 責(zé)任編輯:lina
【導(dǎo)讀】總線關(guān)閉(bus off)是CAN節(jié)點比較重要的錯誤處理機制。那么,在總線關(guān)閉狀態(tài)下,CAN節(jié)點的恢復(fù)流程是怎樣的?又該如何理解節(jié)點恢復(fù)流程的“快恢復(fù)”和“慢恢復(fù)”機制?本文將為大家詳細分析總線關(guān)閉及恢復(fù)的機制和原理。
總線關(guān)閉(bus off)是CAN節(jié)點比較重要的錯誤處理機制。那么,在總線關(guān)閉狀態(tài)下,CAN節(jié)點的恢復(fù)流程是怎樣的?又該如何理解節(jié)點恢復(fù)流程的“快恢復(fù)”和“慢恢復(fù)”機制?本文將為大家詳細分析總線關(guān)閉及恢復(fù)的機制和原理。
故障界定與總線關(guān)閉狀態(tài)
為了避免某個設(shè)備因為自身原因(例如硬件損壞)導(dǎo)致無法正確收發(fā)報文而不斷的破壞總線的數(shù)據(jù)幀,從而影響其它正常節(jié)點通信,CAN網(wǎng)絡(luò)具有嚴格的錯誤診斷功能,CAN通用規(guī)范中規(guī)定每個CAN控制器中有一個發(fā)送錯誤計數(shù)器和一個接收錯誤計數(shù)器。根據(jù)計數(shù)值不同,節(jié)點會處于不同的錯誤狀態(tài),并根據(jù)計數(shù)值的變化進行狀態(tài)轉(zhuǎn)換,狀態(tài)轉(zhuǎn)換如下圖所示。
圖1節(jié)點狀態(tài)轉(zhuǎn)換圖情形1
以上三種錯誤狀態(tài)表示發(fā)生故障的嚴重程度,總線關(guān)閉是節(jié)點最嚴重的錯誤狀態(tài)。并且,節(jié)點在不同的狀態(tài)下具有不同的特性,在總線關(guān)閉狀態(tài)下,節(jié)點不能發(fā)送報文或應(yīng)答總線上的報文,也就意味著不能再對總線有任何影響。
狀態(tài)跳轉(zhuǎn)和錯誤計數(shù)的規(guī)則使得節(jié)點在發(fā)生通信故障時有了較好的自我錯誤處理和恢復(fù)機制,從一種較嚴重的錯誤狀態(tài)跳轉(zhuǎn)到另一種嚴重性相對較低的狀態(tài),本質(zhì)上就是一種恢復(fù)過程。圖1所呈現(xiàn)的轉(zhuǎn)換過程是CAN通用規(guī)范所要求的,我們從設(shè)備供應(yīng)商買回來的CAN控制器已經(jīng)把這些功能固化在硅片之中。
在通信過程中,錯誤主動和錯誤被動兩種狀態(tài)下節(jié)點的恢復(fù)過程一般不需要MCU進行額外的編程處理,直接使用CAN控制器固有功能即可。但對于總線關(guān)閉狀態(tài),往往不直接使用CAN控制器固有的恢復(fù)過程,而是對其進行編程控制,以實現(xiàn)“快恢復(fù)”和“慢恢復(fù)”機制。
注:
由于篇幅有限,關(guān)于錯誤計數(shù)的詳細規(guī)則以及各狀態(tài)下節(jié)點的具體特性不在本文進行討論,讀者可以查閱CAN的相關(guān)協(xié)議規(guī)范。
本文的“CAN控制器”是指已經(jīng)實現(xiàn)了CAN通用協(xié)議物理層和數(shù)據(jù)鏈路層所要求的功能和特性的器件,如SJA1000;而“節(jié)點”是指把CAN控制器與MCU、收發(fā)器等相關(guān)器件進行整合開發(fā)出來的具有一定功能的CAN節(jié)點。
為什么需要對總線關(guān)閉狀態(tài)的節(jié)點實現(xiàn)“快恢復(fù)”和“慢恢復(fù)”策略?
當(dāng)節(jié)點進入總線關(guān)閉狀態(tài)后,如果MCU僅是開啟自動恢復(fù)功能,CAN控制器在檢測到128次11個連續(xù)的隱性位后即可恢復(fù)通信,在實際的CAN通信總線中,這一條件是很容易達到的。以125K的波特率為例,128*11*(1/125000)= 0.011264s。這意味著如果節(jié)點所在的CAN總線的幀間隔時間大于0.011264s,節(jié)點在總線空閑時間內(nèi)便可輕易恢復(fù)通信。我們已經(jīng)知道,當(dāng)進入總線關(guān)閉狀態(tài)時,節(jié)點已經(jīng)發(fā)生了嚴重的錯誤,處于不可信狀態(tài),如果迅速恢復(fù)參與總線通信,具有較高的風(fēng)險,因此,在實際的應(yīng)用中,往往會通過MCU對CAN控制器總線關(guān)閉狀態(tài)的恢復(fù)過程進行編程處理,以控制節(jié)點從總線關(guān)閉狀態(tài)恢復(fù)到錯誤主動狀態(tài)的等待時間,達到既提高靈活性又保證節(jié)點在功能上的快速響應(yīng)性的目的。具體包括“快恢復(fù)”和“慢恢復(fù)”策略,兩種策略一般同時應(yīng)用。
通過以上的討論,我們可以知道,節(jié)點進入總線關(guān)閉狀態(tài)后,存在以下幾種恢復(fù)情況:
MCU僅開啟CAN控制器的自動恢復(fù)功能,節(jié)點只需檢測到128次11個連續(xù)的隱性位便可以恢復(fù)通信,恢復(fù)過程如圖1所示。
MCU沒有開啟CAN控制器的自動恢復(fù)功能,也不主動干預(yù)總線關(guān)閉錯誤,節(jié)點將一直無法“自動”恢復(fù)總線通信,只能通過重新上電的方式使節(jié)點恢復(fù), 恢復(fù)過程如圖2所示。
說明: E:CAN分析儀產(chǎn)品分類CANDT微信文章CANScope節(jié)點BusOff恢復(fù)過程分析與測試圖2.jpg
圖2 節(jié)點狀態(tài)轉(zhuǎn)換圖情形2
MCU對CAN控制器的恢復(fù)過程進行編程處理,這時,節(jié)點的恢復(fù)行為由具體的編程邏輯決定,各廠家普遍采用了先“快恢復(fù)”后“慢恢復(fù)”的恢復(fù)策略,恢復(fù)過程如圖3所示。
說明: E:CAN分析儀產(chǎn)品分類CANDT微信文章CANScope節(jié)點BusOff恢復(fù)過程分析與測試圖3.jpg
圖3 節(jié)點狀態(tài)轉(zhuǎn)換圖情形3
MCU如何實現(xiàn)“快恢復(fù)”和“慢恢復(fù)”?
MCU編程實現(xiàn)總線關(guān)閉“快恢復(fù)”和“慢恢復(fù)”的一般過程可用以下流程圖描述:
說明: E:CAN分析儀產(chǎn)品分類CANDT微信文章CANScope節(jié)點BusOff恢復(fù)過程分析與測試圖4.jpg
圖4 MCU實現(xiàn)總線關(guān)閉恢復(fù)流程
節(jié)點以正常發(fā)送模式發(fā)送報文的過程中,如果出現(xiàn)了發(fā)送錯誤,發(fā)送錯誤計數(shù)會增加,只要發(fā)送錯誤計數(shù)沒有超過255, CAN控制器便會自動重發(fā)報文,如果出現(xiàn)多次發(fā)送錯誤,使發(fā)送錯誤計數(shù)累加超過255,則節(jié)點跳轉(zhuǎn)為總線關(guān)閉狀態(tài)。MCU能夠第一時間知道節(jié)點進入了總線關(guān)閉狀態(tài)(例如在錯誤中斷處理邏輯中查詢狀態(tài)寄存器的相應(yīng)位),這時MCU控制CAN控制器進入“快恢復(fù)”過程,即控制CAN控制器停止報文收發(fā),并進行等待,計時達到需要的時間T1(如100ms)后,MCU重新啟動恢復(fù)CAN控制器參與總線通信,這樣便完成了一次“快恢復(fù)”過程。
節(jié)點每進入一次“快恢復(fù)”過程時,MCU會對此進行計數(shù),當(dāng)節(jié)點“快恢復(fù)”計數(shù)達到設(shè)定的值N(如5次),則后續(xù)再次進入總線關(guān)閉狀態(tài)時MCU把恢復(fù)總線通信的等待時間T2進行延長(如1000ms),這樣便實現(xiàn)了“慢恢復(fù)”過程。“快恢復(fù)”和“慢恢復(fù)”過程的主要區(qū)別就在于恢復(fù)節(jié)點參與總線通信的等待時間的不同。
通過MCU對于總線關(guān)閉后的恢復(fù)行為進行編程控制,實際上是對CAN控制器的錯誤管理和恢復(fù)機制進行了補充,使得總線關(guān)閉狀態(tài)后的恢復(fù)過程更加靈活,更能適應(yīng)實際應(yīng)用的需要。對于 “快恢復(fù)”和“慢恢復(fù)”的等待時間,以及“快恢復(fù)”計數(shù)多少次后進入“慢恢復(fù)”過程,不同廠家可根據(jù)具體的需求進行編程實現(xiàn)。
實測總線關(guān)閉恢復(fù)過程
通過廣州致遠電子有限公司的CAN總線分析儀的流量分析功能,可以很方便分析總線關(guān)閉后節(jié)點的恢復(fù)過程及測試“快恢復(fù)”和“慢恢復(fù)”的恢復(fù)時間。
第一步,連接DUT但先不要上電。按以下配置,使能接收干擾功能,并開啟報文讀取功能。
圖5 功能設(shè)置
第二步,給DUT上電,并采集一段時間報文,停止采集后使用流量分析功能進行分析。
圖6 采集報文并進行流量分析
第三步,鼠標放置于波形“團”(本文把包含多幀密集幀的波形稱為波形“團”)之間讀取恢復(fù)時間。
圖7 讀取恢復(fù)時間
至此,我們便可以得出結(jié)論:該DUT對總線關(guān)閉的恢復(fù)過程進行了編程控制,采用了先“快恢復(fù)”后“慢恢復(fù)”的恢復(fù)機制,節(jié)點進入總線關(guān)閉狀態(tài)后,進行一次“快恢復(fù)”過程,后續(xù)進行“慢恢復(fù)”過程,兩個恢復(fù)過程的恢復(fù)時間分別為27.5ms和209.5ms。
那么,我們該如何根據(jù)所得波形理解該DUT進入總線關(guān)閉狀態(tài)及恢復(fù)通信的整個過程呢?
把第一個波形“團”放大得到下圖:
圖8 放大波形“團”觀察
可以清晰的看到,波形“團”中包含共32幀CAN報文。把其余各波形“團”放大后也都是包含32幀,這里不再把詳細的圖片貼出來。
DUT上電后,初始發(fā)送和接收錯誤計數(shù)都為0。由于在測試時配置了接收干擾功能,當(dāng)DUT開始發(fā)送報文后,每一幀報文都受到CAN總線分析儀的干擾而出現(xiàn)發(fā)送錯誤,第一次發(fā)送時發(fā)送錯誤計數(shù)加8,并自動重發(fā),第二次發(fā)送時錯誤計數(shù)再加8,直到發(fā)送了32次后,發(fā)送錯誤計數(shù)大于255,根據(jù)圖3的錯誤狀態(tài)的轉(zhuǎn)換規(guī)則,這時DUT跳轉(zhuǎn)為總線關(guān)閉狀態(tài),MCU控制進入“快恢復(fù)”過程同時對“快恢復(fù)”次數(shù)進行計數(shù),并等待約27ms后,MCU控制DUT從總線關(guān)閉狀態(tài)恢復(fù)為錯誤主動狀態(tài),由MCU繼續(xù)啟動發(fā)送,由于仍然受CAN總線分析儀的持續(xù)干擾,發(fā)送32幀后再次進入總線關(guān)閉狀態(tài),再次執(zhí)行“快恢復(fù)”或“慢恢復(fù)”過程,以此類推。
根據(jù)流量分析的結(jié)果可知,該DUT進入“快恢復(fù)”的計數(shù)達到1次后便執(zhí)行“慢恢復(fù)”過程,“慢恢復(fù)”等待時間約為209ms。
注:
干擾的設(shè)置可以根據(jù)需要設(shè)置其他的參數(shù),只要保證能對DUT發(fā)送的幀進行干擾使其出現(xiàn)發(fā)送錯誤即可。
為了分析完整的總線關(guān)閉恢復(fù)過程,建議DUT和CAN總線分析儀連接好后,先開啟“報文讀取”和“接收干擾”功能后再上電DUT。因為這樣能確保DUT的接收錯誤計數(shù)和發(fā)送錯誤計數(shù)的初始計數(shù)都為0。
需要對DUT進行連續(xù)的干擾,否則DUT恢復(fù)后成功發(fā)送了報文,“快恢復(fù)”次數(shù)的計數(shù)會遞減,這不利于分析DUT總線關(guān)閉后的整個恢復(fù)行為。
總線關(guān)閉后節(jié)點的“恢復(fù)”是指恢復(fù)參與總線的通信,但并不意味著恢復(fù)后一定能成功發(fā)送或接收報文。如上述案例,DUT恢復(fù)通信后由于仍然受CAN總線分析儀的干擾,導(dǎo)致報文發(fā)送再次失敗。
總結(jié):
在總線關(guān)閉狀態(tài)下,“快恢復(fù)”和“慢恢復(fù)”不是CAN控制器固有的功能,而是通過MCU的編程邏輯實現(xiàn)的恢復(fù)機制,是總線關(guān)閉狀態(tài)下恢復(fù)過程的補充,使恢復(fù)過程更具有靈活性。
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進行處理。
特別推薦
- 增強視覺傳感器功能:3D圖像拼接算法幫助擴大視場
- PNP 晶體管:特性和應(yīng)用
- 使用IO-Link收發(fā)器管理數(shù)據(jù)鏈路如何簡化微控制器選擇
- 用好 DMA控制器這兩種模式 MCU效率大大提高!
- 深入分析帶耦合電感多相降壓轉(zhuǎn)換器的電壓紋波問題
- Honda(本田)與瑞薩簽署協(xié)議,共同開發(fā)用于軟件定義汽車的高性能SoC
- 第13講:超小型全SiC DIPIPM
技術(shù)文章更多>>
- 解決模擬輸入IEC系統(tǒng)保護問題
- 當(dāng)過壓持續(xù)較長時間時,使用開關(guān)浪涌抑制器
- 用于狀態(tài)監(jiān)測的振動傳感器
- 解鎖多行業(yè)解決方案——AHTE 2025觀眾預(yù)登記開啟!
- 汽車智造全“新”體驗——AMTS 2025觀眾預(yù)登記開啟!
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
精密電阻
精密工具
景佑能源
聚合物電容
君耀電子
開發(fā)工具
開關(guān)
開關(guān)電源
開關(guān)電源電路
開關(guān)二極管
開關(guān)三極管
科通
可變電容
可調(diào)電感
可控硅
空心線圈
控制變壓器
控制模塊
藍牙
藍牙4.0
藍牙模塊
浪涌保護器
雷度電子
鋰電池
利爾達
連接器
流量單位
漏電保護器
濾波電感
濾波器