節點BusOff恢複過程分析與測試
發布時間:2020-06-11 責任編輯:lina
【導讀】總線關閉(bus off)是CAN節點比較重要的錯誤處理機製。那麼,在總線關閉狀態下,CAN節點的恢複流程是怎樣的?又該如何理解節點恢複流程的“快恢複”和“慢恢複”機製?本文將為大家詳細分析總線關閉及恢複的機製和原理。
總線關閉(bus off)是CAN節點比較重要的錯誤處理機製。那麼,在總線關閉狀態下,CAN節點的恢複流程是怎樣的?又該如何理解節點恢複流程的“快恢複”和“慢恢複”機製?本文將為大家詳細分析總線關閉及恢複的機製和原理。
故障界定與總線關閉狀態
為了避免某個設備因為自身原因(例如硬件損壞)導致無法正確收發報文而不斷的破壞總線的數據幀,從而影響其它正常節點通信,CAN網絡具有嚴格的錯誤診斷功能,CAN通用規範中規定每個CAN控(kong)製(zhi)器(qi)中(zhong)有(you)一(yi)個(ge)發(fa)送(song)錯(cuo)誤(wu)計(ji)數(shu)器(qi)和(he)一(yi)個(ge)接(jie)收(shou)錯(cuo)誤(wu)計(ji)數(shu)器(qi)。根(gen)據(ju)計(ji)數(shu)值(zhi)不(bu)同(tong),節(jie)點(dian)會(hui)處(chu)於(yu)不(bu)同(tong)的(de)錯(cuo)誤(wu)狀(zhuang)態(tai),並(bing)根(gen)據(ju)計(ji)數(shu)值(zhi)的(de)變(bian)化(hua)進(jin)行(xing)狀(zhuang)態(tai)轉(zhuan)換(huan),狀(zhuang)態(tai)轉(zhuan)換(huan)如(ru)下(xia)圖(tu)所(suo)示(shi)。

圖1節點狀態轉換圖情形1
以(yi)上(shang)三(san)種(zhong)錯(cuo)誤(wu)狀(zhuang)態(tai)表(biao)示(shi)發(fa)生(sheng)故(gu)障(zhang)的(de)嚴(yan)重(zhong)程(cheng)度(du),總(zong)線(xian)關(guan)閉(bi)是(shi)節(jie)點(dian)最(zui)嚴(yan)重(zhong)的(de)錯(cuo)誤(wu)狀(zhuang)態(tai)。並(bing)且(qie),節(jie)點(dian)在(zai)不(bu)同(tong)的(de)狀(zhuang)態(tai)下(xia)具(ju)有(you)不(bu)同(tong)的(de)特(te)性(xing),在(zai)總(zong)線(xian)關(guan)閉(bi)狀(zhuang)態(tai)下(xia),節(jie)點(dian)不(bu)能(neng)發(fa)送(song)報(bao)文(wen)或(huo)應(ying)答(da)總(zong)線(xian)上(shang)的(de)報(bao)文(wen),也(ye)就(jiu)意(yi)味(wei)著(zhe)不(bu)能(neng)再(zai)對(dui)總(zong)線(xian)有(you)任(ren)何(he)影(ying)響(xiang)。
狀zhuang態tai跳tiao轉zhuan和he錯cuo誤wu計ji數shu的de規gui則ze使shi得de節jie點dian在zai發fa生sheng通tong信xin故gu障zhang時shi有you了le較jiao好hao的de自zi我wo錯cuo誤wu處chu理li和he恢hui複fu機ji製zhi,從cong一yi種zhong較jiao嚴yan重zhong的de錯cuo誤wu狀zhuang態tai跳tiao轉zhuan到dao另ling一yi種zhong嚴yan重zhong性xing相xiang對dui較jiao低di的de狀zhuang態tai,本ben質zhi上shang就jiu是shi一yi種zhong恢hui複fu過guo程cheng。圖tu1所呈現的轉換過程是CAN通用規範所要求的,我們從設備供應商買回來的CAN控製器已經把這些功能固化在矽片之中。
在通信過程中,錯誤主動和錯誤被動兩種狀態下節點的恢複過程一般不需要MCU進行額外的編程處理,直接使用CAN控製器固有功能即可。但對於總線關閉狀態,往往不直接使用CAN控製器固有的恢複過程,而是對其進行編程控製,以實現“快恢複”和“慢恢複”機製。
注:
由於篇幅有限,關於錯誤計數的詳細規則以及各狀態下節點的具體特性不在本文進行討論,讀者可以查閱CAN的相關協議規範。
本文的“CAN控製器”是指已經實現了CAN通用協議物理層和數據鏈路層所要求的功能和特性的器件,如SJA1000;而“節點”是指把CAN控製器與MCU、收發器等相關器件進行整合開發出來的具有一定功能的CAN節點。
為什麼需要對總線關閉狀態的節點實現“快恢複”和“慢恢複”策略?
當節點進入總線關閉狀態後,如果MCU僅是開啟自動恢複功能,CAN控製器在檢測到128次11個連續的隱性位後即可恢複通信,在實際的CAN通信總線中,這一條件是很容易達到的。以125K的波特率為例,128*11*(1/125000)= 0.011264s。這意味著如果節點所在的CAN總線的幀間隔時間大於0.011264s,節jie點dian在zai總zong線xian空kong閑xian時shi間jian內nei便bian可ke輕qing易yi恢hui複fu通tong信xin。我wo們men已yi經jing知zhi道dao,當dang進jin入ru總zong線xian關guan閉bi狀zhuang態tai時shi,節jie點dian已yi經jing發fa生sheng了le嚴yan重zhong的de錯cuo誤wu,處chu於yu不bu可ke信xin狀zhuang態tai,如ru果guo迅xun速su恢hui複fu參can與yu總zong線xian通tong信xin,具ju有you較jiao高gao的de風feng險xian,因yin此ci,在zai實shi際ji的de應ying用yong中zhong,往wang往wang會hui通tong過guoMCU對CANkongzhiqizongxianguanbizhuangtaidehuifuguochengjinxingbianchengchuli,yikongzhijiediancongzongxianguanbizhuangtaihuifudaocuowuzhudongzhuangtaidedengdaishijian,dadaojitigaolinghuoxingyoubaozhengjiedianzaigongnengshangdekuaisuxiangyingxingdemude。jutibaokuo“快恢複”和“慢恢複”策略,兩種策略一般同時應用。
通過以上的討論,我們可以知道,節點進入總線關閉狀態後,存在以下幾種恢複情況:
MCU僅開啟CAN控製器的自動恢複功能,節點隻需檢測到128次11個連續的隱性位便可以恢複通信,恢複過程如圖1所示。
MCU沒有開啟CAN控製器的自動恢複功能,也不主動幹預總線關閉錯誤,節點將一直無法“自動”恢複總線通信,隻能通過重新上電的方式使節點恢複, 恢複過程如圖2所示。
說明: E:CAN分析儀產品分類CANDT微信文章CANScope節點BusOff恢複過程分析與測試圖2.jpg

圖2 節點狀態轉換圖情形2
MCU對CAN控製器的恢複過程進行編程處理,這時,節點的恢複行為由具體的編程邏輯決定,各廠家普遍采用了先“快恢複”後“慢恢複”的恢複策略,恢複過程如圖3所示。
說明: E:CAN分析儀產品分類CANDT微信文章CANScope節點BusOff恢複過程分析與測試圖3.jpg

圖3 節點狀態轉換圖情形3
MCU如何實現“快恢複”和“慢恢複”?
MCU編程實現總線關閉“快恢複”和“慢恢複”的一般過程可用以下流程圖描述:
說明: E:CAN分析儀產品分類CANDT微信文章CANScope節點BusOff恢複過程分析與測試圖4.jpg

圖4 MCU實現總線關閉恢複流程
節點以正常發送模式發送報文的過程中,如果出現了發送錯誤,發送錯誤計數會增加,隻要發送錯誤計數沒有超過255, CAN控製器便會自動重發報文,如果出現多次發送錯誤,使發送錯誤計數累加超過255,則節點跳轉為總線關閉狀態。MCU能夠第一時間知道節點進入了總線關閉狀態(例如在錯誤中斷處理邏輯中查詢狀態寄存器的相應位),這時MCU控製CAN控製器進入“快恢複”過程,即控製CAN控製器停止報文收發,並進行等待,計時達到需要的時間T1(如100ms)後,MCU重新啟動恢複CAN控製器參與總線通信,這樣便完成了一次“快恢複”過程。
節點每進入一次“快恢複”過程時,MCU會對此進行計數,當節點“快恢複”計數達到設定的值N(如5次),則後續再次進入總線關閉狀態時MCU把恢複總線通信的等待時間T2進行延長(如1000ms),這樣便實現了“慢恢複”過程。“快恢複”和“慢恢複”過程的主要區別就在於恢複節點參與總線通信的等待時間的不同。
通過MCU對於總線關閉後的恢複行為進行編程控製,實際上是對CAN控製器的錯誤管理和恢複機製進行了補充,使得總線關閉狀態後的恢複過程更加靈活,更能適應實際應用的需要。對於 “快恢複”和“慢恢複”的等待時間,以及“快恢複”計數多少次後進入“慢恢複”過程,不同廠家可根據具體的需求進行編程實現。
實測總線關閉恢複過程
通過廣州致遠電子有限公司的CAN總線分析儀的流量分析功能,可以很方便分析總線關閉後節點的恢複過程及測試“快恢複”和“慢恢複”的恢複時間。
第一步,連接DUT但先不要上電。按以下配置,使能接收幹擾功能,並開啟報文讀取功能。

圖5 功能設置
第二步,給DUT上電,並采集一段時間報文,停止采集後使用流量分析功能進行分析。

圖6 采集報文並進行流量分析
第三步,鼠標放置於波形“團”(本文把包含多幀密集幀的波形稱為波形“團”)之間讀取恢複時間。

圖7 讀取恢複時間
至此,我們便可以得出結論:該DUT對總線關閉的恢複過程進行了編程控製,采用了先“快恢複”後“慢恢複”的恢複機製,節點進入總線關閉狀態後,進行一次“快恢複”過程,後續進行“慢恢複”過程,兩個恢複過程的恢複時間分別為27.5ms和209.5ms。
那麼,我們該如何根據所得波形理解該DUT進入總線關閉狀態及恢複通信的整個過程呢?
把第一個波形“團”放大得到下圖:

圖8 放大波形“團”觀察
可以清晰的看到,波形“團”中包含共32幀CAN報文。把其餘各波形“團”放大後也都是包含32幀,這裏不再把詳細的圖片貼出來。
DUT上電後,初始發送和接收錯誤計數都為0。由於在測試時配置了接收幹擾功能,當DUT開始發送報文後,每一幀報文都受到CAN總線分析儀的幹擾而出現發送錯誤,第一次發送時發送錯誤計數加8,並自動重發,第二次發送時錯誤計數再加8,直到發送了32次後,發送錯誤計數大於255,根據圖3的錯誤狀態的轉換規則,這時DUT跳轉為總線關閉狀態,MCU控製進入“快恢複”過程同時對“快恢複”次數進行計數,並等待約27ms後,MCU控製DUT從總線關閉狀態恢複為錯誤主動狀態,由MCU繼續啟動發送,由於仍然受CAN總線分析儀的持續幹擾,發送32幀後再次進入總線關閉狀態,再次執行“快恢複”或“慢恢複”過程,以此類推。
根據流量分析的結果可知,該DUT進入“快恢複”的計數達到1次後便執行“慢恢複”過程,“慢恢複”等待時間約為209ms。
注:
幹擾的設置可以根據需要設置其他的參數,隻要保證能對DUT發送的幀進行幹擾使其出現發送錯誤即可。
為了分析完整的總線關閉恢複過程,建議DUT和CAN總線分析儀連接好後,先開啟“報文讀取”和“接收幹擾”功能後再上電DUT。因為這樣能確保DUT的接收錯誤計數和發送錯誤計數的初始計數都為0。
需要對DUT進行連續的幹擾,否則DUT恢複後成功發送了報文,“快恢複”次數的計數會遞減,這不利於分析DUT總線關閉後的整個恢複行為。
總線關閉後節點的“恢複”是指恢複參與總線的通信,但並不意味著恢複後一定能成功發送或接收報文。如上述案例,DUT恢複通信後由於仍然受CAN總線分析儀的幹擾,導致報文發送再次失敗。
總結:
在總線關閉狀態下,“快恢複”和“慢恢複”不是CAN控製器固有的功能,而是通過MCU的編程邏輯實現的恢複機製,是總線關閉狀態下恢複過程的補充,使恢複過程更具有靈活性。
免責聲明:本文為轉載文章,轉載此文目的在於傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯係小編進行處理。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 築基AI4S:摩爾線程全功能GPU加速中國生命科學自主生態
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
微波功率管
微波開關
微波連接器
微波器件
微波三極管
微波振蕩器
微電機
微調電容
微動開關
微蜂窩
位置傳感器
溫度保險絲
溫度傳感器
溫控開關
溫控可控矽
聞泰
穩壓電源
穩壓二極管
穩壓管
無焊端子
無線充電
無線監控
無源濾波器
五金工具
物聯網
顯示模塊
顯微鏡結構
線圈
線繞電位器
線繞電阻




