国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

CanSM模塊如何處理Busoff等問題呢

冬至配餃子 ? 來源:開心果 Need Car ? 作者:開心果 Need Car ? 2022-08-29 18:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

CAN總線中,相對其他通信類問題,Busoff問題比較難搞。本文從CanSM模塊出發,就Busoff產生、Busoff信息交互、Busoff快/慢恢復等問題展開聊一聊。

這個話題前面有聊過,可以參考前文Autosar網絡管理:說說Busoff那點事。

1Busoff產生

這里再說一次Busoff產生的條件:TEC > 255。也就是說ECU自身發出的報文錯誤,導致TEC(Transmit Error Counter)不斷累加,直到TEC超過255產生Busoff,如下所示:

pYYBAGMMjnqAFn0fAACQljR28BU098.png

舉例:ECU1::CAN1發送的錯誤幀只能使ECU1::CAN1進入Busoff狀態,而不能使ECU2::CAN1進入Busoff,如下所示:

pYYBAGMMjo6AVGbjAAA84abQWUc735.png

因為錯誤由ECU1::CAN1自己產生,ECU1::CAN1有問題,自己脫離CAN總線即可,不要影響ECU2::CAN1繼續使用CAN總線。

2Busoff信息交互及Busoff恢復機制

節點產生Busoff以后,ControllerMode狀態自動切換到CANIF_CS_STOPED模式,停止發送錯誤幀,避免影響總線其他節點的通信。既然Busoff已經發生,對應的信息就需要傳遞給上層,讓上層決策后續的通信行為。怎樣通知上層呢?

Can Controller通知到上層有兩種方式:Interrupt或者Polling

Step1、Busoff事件信息如何通知到CanSM

Interrupt方式:

Busoff中斷發生->

CanInterruptStatus()

->CanHL_ErrorHandling()->

CanIf_ControllerBusOff()

->

CanSM_ControllerBusOff()

->CanSM_BusOffIndicated(),CanSM_BusOffFlag = TRUE

...CanSM_MainFunction()周期性檢查CanSM_BusOffFlag置位情況。

Polling方式:Can_MainFunction_BusOff()

->CanHL_ErrorHandling()->

CanIf_ControllerBusOff()

->

CanSM_ControllerBusOff()

->CanSM_BusOffIndicated(),CanSM_BusOffFlag= TRUE

...CanSM_MainFunction()周期性檢查CanSM_BusOffFlag置位情況。

提示:上述函數關聯關系,除Autosar標準接口以外,其他接口,不同軟件供應商,實現上可能存在不同。

Step2、CanSM請求重啟Can Controller,通知ComM、BswM模式切換

Busoff發生以后,CanSM調用CanIf_SetControllerMode()接口,請求將ControllerMode切到CANIF_CS_STARTED模式,以便于后續嘗試恢復通信。同時關閉Tx PDU的發送,只能接收Rx PDU。所以這也是為什么在恢復期內可以收到報文的原因。CanSM調用BswM_CanSM_CurrentState()接口通知BswM進入CANSM_BSWM_BUS_OFF狀態,調用ComM_BusSM_ModeIndication()接口通知ComM進入COMM_SILENT_COMMUNICATION狀態。

Busoff發生以后,CanSM先告知ComM,ComM在請求CanSM對應Channel由FULL COMMUNICATION進入SILENT COMMUNICATION。進入CANSM_BSM_S_SILENTCOM_BOR狀態,如下所示:

poYBAGMMjqSAEHXFAACSG9k43Ko105.png

Busoff發生以后,CanSM會啟動一個Busoff Timer,BusoffTimer分為兩種:

快恢復時間參數:CanSMBorTimeL1;

慢恢復時間參數:CanSMBorTimeL2

具體BusoffTimer應該等于CanSMBorTimeL1還是CanSMBorTimeL2,取決于配置參數CanSMBorCounterL1ToL2

如果Busoff連續發生次數 <CanSMBorCounterL1ToL2,BusoffTimer =CanSMBorTimeL1;

如果Busoff連續發生次數≥ CanSMBorCounterL1ToL2,BusoffTimer=CanSMBorTimeL2;

注意:CanSMBorTimeL1、CanSMBorTimeL2、CanSMBorCounterL1ToL2三個參數均在CanSM模塊配置,具體數值根據OEM需求配置。測試中,busoff的快/慢恢復行為如下所示:

pYYBAGMMjriAYZquAABizoyWPcE912.png

在快/慢恢復時間內,可以接收報文。

Step3、CanSMBorTimeL1或者CanSMBorTimeL2耗盡

CanSMBorTimeL1或者CanSMBorTimeL2耗盡(elapse),重新發送Tx PDU,讓故障節點再次嘗試向CAN總線發送報文。同時,CanSM通知BswM進入CANSM_BSWM_FULL_COMMUNICATION狀態,通知ComM進入COMM_FULL_COMMUNICATION狀態??梢詥覥anSMBorTimeTxEnsured,確認Busoff是否恢復,也可以使用Confirm方式確認Busoff恢復。

Step4、CanSMBorTimeTxEnsured耗盡

在CanSMBorTimeTxEnsured時間內,Busoff再次發生,則進行下一次的Busoff恢復機制,如果CanSMBorTimeTxEnsured耗盡,則說明成功從Busoff狀態恢復。如果在CanSMBorTimeTxEnsured時間內,再次發生Busoff,則Busoff次數累加。

3Busoff發生時的網絡狀態

這里主要討論Busoff進入慢恢復期,節點在NOS(Normal Operation State)和RSS(Ready Sleep State)下是否會進行網絡狀態切換。

NOS:Busoff進入慢恢復期,如果上層不主動請求釋放網絡,網絡狀態無法進入RSS,所以,節點會一直在NOS狀態下,一直處于慢恢復狀態,如下所示:

pYYBAGMMjsmAChhQAAAmTktH2f0595.png

RSS:Busoff進入慢恢復期,如果在恢復期收不到有效的網絡管理報文,NM-Timeout時間超時以后,進入PBSM(Pre Bus Sleep Mode);如果可以收到有效的網絡管理報文,則網絡處于RSS狀態,如下所示:

pYYBAGMMjt6AINgeAAAxsA-wGuc740.png

如果節點在NOS狀態下,一直處于慢恢復,會帶來什么問題呢?節點一直在慢恢復期,意味著該節點不會外報文(應用報文和網絡管理報文均不會外發),其他節點會上報對應的節點丟失故障。



審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • CAN總線
    +關注

    關注

    145

    文章

    2043

    瀏覽量

    135228
  • 中斷
    +關注

    關注

    5

    文章

    917

    瀏覽量

    43758
  • AUTOSAR
    +關注

    關注

    10

    文章

    398

    瀏覽量

    23653
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    串口接收不等長的數據如何處理

    串口是一個很重要的通信方式,但是要用好串口并不是那么簡單,比如如何接收不等長的數據。你們是如何處理?大家來說說你們的做法。
    發表于 05-15 08:02

    DLPC3433的PCLK和PDATA【0~23】該如何處理?

    我們項目里面只用到了mipi接口,請問下如何處理不用的并口輸入? 規格書中在第7頁有描述PDM_CVS_TE,VSYNC_WE,HSYNC_CS,DATAEN_CMD需要下拉,但沒有明確說PCLK和PDATA【0~23】該如何處理
    發表于 02-27 08:43

    請問STM32程序不使用的GPIO如何處理?

    請教各位大神,制作STM32程序的時候,那些沒用的GPIO管腳,該如何處理?是不進行任何代碼處理,還是初始化?如果要初始化,那該選擇哪一種模式
    發表于 02-27 06:53

    何處理接口bewtween?

    親愛的大家,我正在做一個關于一些bisic信號處理的項目。它描述如下,信號由PmodMic采樣,然后數字化信號被發送到我們定制的濾波器模塊,然后濾波后的信號被發送到ARM進行進一步處理,顯示
    發表于 03-12 10:29

    何處理好跨時鐘域間的數據

    跨時鐘域處理是什么意思?如何處理好跨時鐘域間的數據?有哪幾種跨時鐘域處理的方法
    發表于 11-01 07:44

    何處理電子污染

    電子垃圾污染給環境造成了巨大的壓力,當今隨著電子產品廢棄量的增加他逐漸得到了社會各界的高度關注。如何處理電子垃圾帶來的污染?請看下文
    發表于 01-22 14:18 ?7537次閱讀

    在國外人們都是如何處理電子垃圾的_電子垃圾回收產業現狀及其意義

    電子產品更新換代,大量廢舊家電隨之產生,這些淘汰的家電應如何處置,這讓很多人感到頭疼。在國外人們都是如何處理電子垃圾的?電子垃圾回收產業現狀及其意義是什么
    發表于 01-22 19:09 ?1.2w次閱讀

    何處理軸表面磨損造成的傷害

    何處理軸表面磨損造成的傷害
    發表于 02-15 16:03 ?1次下載

    何處理HTTP 503故障問題?

    HTTP 503故障問題在業務管理上很常見, 以問題的可能性也相當多, 故障時除了503提示, 好像什么也沒有, 發生故障時應如何處理? 文章內會為大家詳細說明
    的頭像 發表于 04-12 10:05 ?1916次閱讀
    如<b class='flag-5'>何處理</b>HTTP 503故障問題?

    什么是busoff?BUSOFF是如何產生的?BUSOFF恢復機制和故障碼記錄

    BUSOFF,從字面意思可以看出,表示總線的關閉,此時ECU從總線脫離,既不能接收總線的報文,也不能向總線發送報文。
    的頭像 發表于 09-04 09:48 ?4.5w次閱讀
    什么是<b class='flag-5'>busoff</b>?<b class='flag-5'>BUSOFF</b>是如何產生的?<b class='flag-5'>BUSOFF</b>恢復機制和故障碼記錄

    調試TrustZone時,如何處理HardFault?

    調試TrustZone時,如何處理HardFault?
    的頭像 發表于 09-27 16:33 ?1439次閱讀
    調試TrustZone時,如<b class='flag-5'>何處理</b>HardFault?

    廣播系統出現噪音、嘯叫如何處理

    公共廣播系統目前是一個各行各業都會有需求的系統,酒店、商場、公園、景點場所都會用到。現實使用中,我們會發現有的廣播系統是電聲悅耳、自然流暢,但是有一些則帶有些噪音、嘯叫。面對這種情況,我們該如何處理
    發表于 11-08 09:41 ?3609次閱讀
    廣播系統出現噪音、嘯叫如<b class='flag-5'>何處理</b>?

    何處理MOS管小電流發熱?

    何處理MOS管小電流發熱?
    的頭像 發表于 12-07 15:13 ?1383次閱讀
    如<b class='flag-5'>何處理</b>MOS管小電流發熱?

    何處理同軸阻抗失配?如何避免阻抗失配這種風險?

    何處理同軸阻抗失配?如何避免阻抗失配這種風險? 同軸阻抗失配是電子通信領域中一種常見的問題,當同軸電纜的輸出端口的阻抗與接收端口不匹配時,就會發生阻抗失配。這種失配會導致信號反射、傳輸效率降低
    的頭像 發表于 11-28 14:18 ?2103次閱讀

    變壓器運行中常見的異?,F象應如何處理?

    變壓器運行中常見的異?,F象應如何處理
    的頭像 發表于 03-08 09:19 ?1036次閱讀
    變壓器運行中常見的異?,F象應如<b class='flag-5'>何處理</b><b class='flag-5'>呢</b>?