99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

分享一個實例:Node路由超時引發(fā)的Bug

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

掃碼添加小助手

加入工程師交流群

項目包含Autosar網(wǎng)絡(luò)管理時,一般會要求Node外發(fā)的第一幀是網(wǎng)絡(luò)管理報文,目的是為快速喚醒網(wǎng)絡(luò);同時也會充分考慮通信棧的任務(wù)周期和時序,因為網(wǎng)絡(luò)狀態(tài)切換與其密切相關(guān),如果未考慮好這兩點則可能帶來潛在的Bug。本文從工程實際出發(fā),分享一個實例:Node路由超時引發(fā)的Bug。

1、需求描述

如下圖,Node1所在CAN/Flexray總線接收網(wǎng)絡(luò)管理報文NM1,該網(wǎng)絡(luò)管理報文在VCU內(nèi)部轉(zhuǎn)發(fā)給Node2(Node2連接CAN總線),如果收到的NM1包含Node2的PNCdes置位,則Node2網(wǎng)絡(luò)喚醒,且Node2發(fā)送網(wǎng)絡(luò)管理報文NM2。這里使用了PN的GateWay功能。

注意:Node1接收的NM1報文可以是不同的節(jié)點發(fā)來的網(wǎng)絡(luò)管理報文,即測試時,接收到的NM1報文時間可以是隨機的。

pYYBAGMEoHGANn1OAABYpWt56Zo972.png

接收的NM1報文,第一次PNCsrc = 1、PNCdes = 1時,設(shè)置時間為T1,Node2外發(fā)第一幀NM2的時間設(shè)置為T2,需求規(guī)定T2-T1 < 15ms,偏差10%,即(T2-T1)max < 15+15*10% = 16.5ms,T2-T1=Tgate。

NM1在Node1 Bus和NM2在Node2 Bus的具體行為如下所示:

pYYBAGMEoIiAIRh-AACq6SOaFJE955.png

實際測試結(jié)果實際測試Tgate > 16.5ms,不符合需求,Bug就這么來了。

2、Bug原因分析

問題點1:Node2發(fā)出的第一幀報文不是網(wǎng)絡(luò)管理報文NM2,而是Node2的應(yīng)用報文(周期性報文),由于NM2的優(yōu)先級低于應(yīng)用報文,導(dǎo)致NM2發(fā)送延遲。

具體分析1:如下圖所示,如果NM、App等報文在通信開啟的那一刻(t0)都請求驅(qū)動發(fā)送報文,比如:Can Controller,它只能根據(jù)優(yōu)先級(CANID)決定報文發(fā)送順序,因為NM報文相對App報文優(yōu)先級低,所以NM報文會被延遲發(fā)送。

如果讓每個周期性App報文,偏移(Offset)一段時間(t1、t2等)發(fā)送,而不是在t0時刻搶占NM報文,則可以讓NM報文優(yōu)先發(fā)送。

poYBAGMEoJyAPFtNAAB-SuObkeg357.png

問題點2

:通信棧模塊周期不匹配,這個因素影響較大

具體分析2

:比如CanSM、CanNM、Can等模塊任務(wù)周期是5ms,ComM模塊任務(wù)周期是20ms。當收到NM1中的

PNCsrc = 1

時,信息由CanNM通知到ComM,ComM切換到FULL_COMMUNICATION,這個過程實際只是一個狀態(tài)切換指令下發(fā),真正做狀態(tài)切換的是CanSM,而CanSM狀態(tài)機的切換需要時間,切換狀態(tài)后通知到ComM,

此時ComM至少要一個任務(wù)周期(20ms)才能知道狀態(tài)是否切換成功,切換成功才請求NM啟動網(wǎng)絡(luò),

網(wǎng)絡(luò)狀態(tài)切換告知ComM時間過長導(dǎo)致路由時間超時

pYYBAGMEoLOAAHOlAAEanvOjfBc701.png

3、Bug修復(fù)策略

問題點1修復(fù)策略

CanNM模塊修改配置

配置Retry Frist Message Request,確保Node2的NM2報文發(fā)送成功,即當前周期發(fā)送失敗,下一周期繼續(xù)嘗試發(fā)送。

Com模塊修改配置

Com模塊中,配置所有周期性(PERIODIC)/混合(MIXED)應(yīng)用報文偏移值(ComTxModeTimeOffset,默認值為0),避免高優(yōu)先級的應(yīng)用報文在通信開始時,搶占網(wǎng)絡(luò)管理報文,確保網(wǎng)絡(luò)管理報文被優(yōu)先發(fā)送。

問題點2修復(fù)策略

修改ComM模塊任務(wù)周期。由20ms調(diào)整到5ms,與CanSM、CanNM、Can等通信模塊任務(wù)周期匹配,確保ComM能更快地獲取底層狀態(tài)切換結(jié)果。


審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • CAN總線
    +關(guān)注

    關(guān)注

    145

    文章

    1987

    瀏覽量

    132898
  • 網(wǎng)絡(luò)管理
    +關(guān)注

    關(guān)注

    0

    文章

    125

    瀏覽量

    28236
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    380

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    隱秘的串口中斷BUG案例分享

    本文分享STM32L4平臺串口驅(qū)動比較隱秘的BUG,分享的目的不在結(jié)論本身,而在于問題的分析過程,和如何形成標準,形成checklist,避免類似問題,以及在嵌入式開發(fā)中的思想。
    的頭像 發(fā)表于 09-19 14:05 ?3385次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個</b>隱秘的串口中斷<b class='flag-5'>BUG</b>案例分享

    matlab script node

    哪位大神有matlab script node 操作的視頻教程 或者實例沒有求分享啊謝謝了
    發(fā)表于 10-07 23:01

    C語言中括號引發(fā)的……

    C語言中括號引發(fā)的……作者:薛定諤的coding貓今天給大家?guī)?b class='flag-5'>一比較典型的問題,
    發(fā)表于 05-19 14:06

    lwip網(wǎng)路組件中的測試實例出現(xiàn)bug

    主題:測試實例1、ftpd中似乎bug,現(xiàn)象:ftpd_start()運行該函數(shù),發(fā)現(xiàn)旦連接和互傳數(shù)據(jù),就會有內(nèi)存嘩嘩泄漏,list_mem()可以看到內(nèi)存占用從12K上升到40K
    發(fā)表于 04-01 11:02

    華為路由器配置實例

    華為路由器配置實例 華為路由器(R2621)、交換機(S3026e)各臺,組建VLAN,實現(xiàn)虛擬網(wǎng)和物理網(wǎng)之間的連接。實現(xiàn)防火墻策略,
    發(fā)表于 05-25 08:17 ?4578次閱讀

    用戶近日曝光 iPhone 12 的奇怪的充電 bug

    近日有用戶曝光了 iPhone 12 的奇怪的充電 bug,多口適配器在為該機充電時都會受影響。
    的頭像 發(fā)表于 11-16 14:31 ?1983次閱讀

    5G案例|T310超時引發(fā)VIVO終端 SCG failure失敗資料下載

    電子發(fā)燒友網(wǎng)為你提供5G案例|T310超時引發(fā)VIVO終端 SCG failure失敗資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-13 08:40 ?8次下載
    5G案例|T310<b class='flag-5'>超時</b><b class='flag-5'>引發(fā)</b>VIVO終端 SCG failure失敗資料下載

    如何解決JVM中極小概率發(fā)生的bug

    編者按:筆者遇到非常典型 JVM 架構(gòu)相關(guān)問題,在 x86 正常運行的應(yīng)用,在 aarch64 環(huán)境上低概率偶現(xiàn) JVM 崩潰。這是典型的 JVM 內(nèi)部
    的頭像 發(fā)表于 08-23 17:35 ?3695次閱讀

    Elasticsearch底層模塊:如何去規(guī)劃和配置各種各樣的node

    node module,主要是用來處理各種不同類型的節(jié)點的,es有哪些類型的node,另外就是對這些類型的node有些什么特殊的參數(shù),對于
    的頭像 發(fā)表于 12-22 10:18 ?1192次閱讀

    冗余電路導(dǎo)致的BUG

      昨天解了BUG,低級錯誤導(dǎo)致的BUG,
    的頭像 發(fā)表于 05-14 15:28 ?1213次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個</b>冗余電路導(dǎo)致的<b class='flag-5'>BUG</b>

    基于Node-RED的優(yōu)易通串口服務(wù)器應(yīng)用實例

    實例的方式,詳細介紹了基于Node-RED的優(yōu)易通串口服務(wù)器采集Modbus-RTU水位傳感器數(shù)據(jù),并將數(shù)據(jù)可視化的過程。
    的頭像 發(fā)表于 05-29 21:15 ?2923次閱讀
    基于<b class='flag-5'>Node</b>-RED的優(yōu)易通串口服務(wù)器應(yīng)用<b class='flag-5'>實例</b>

    req-ack接口引發(fā)的問題分析

    最近定位了bug,代碼是以前的同事留下的,沒有經(jīng)過太多充分的測試,且沒有仿真平臺,定位的過程是相當?shù)耐纯啵昂蠡瞬畈欢?b class='flag-5'>一星期。但是解
    的頭像 發(fā)表于 09-06 17:36 ?985次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>個</b>req-ack接口<b class='flag-5'>引發(fā)</b>的問題分析

    socket連接超時如何處理

    在網(wǎng)絡(luò)編程中,socket連接超時常見的問題,它可能由多種原因引起,比如網(wǎng)絡(luò)延遲、服務(wù)器負載過高或者客戶端請求超時設(shè)置過短等。處理socket連接
    的頭像 發(fā)表于 11-01 16:48 ?2360次閱讀

    socket 連接超時處理技巧

    在網(wǎng)絡(luò)編程中,Socket連接超時常見的問題。處理超時的關(guān)鍵在于確保程序能夠優(yōu)雅地處理這些情況,避免程序崩潰或者無響應(yīng)。以下是些處理
    的頭像 發(fā)表于 11-12 14:13 ?1293次閱讀

    【干貨】什么是Node-RED?文帶你了解!

    什么是Node-RED?首先我們來認識下什么是Node-RED。Node-RED是
    的頭像 發(fā)表于 03-13 19:32 ?819次閱讀
    【干貨】什么是<b class='flag-5'>Node</b>-RED?<b class='flag-5'>一</b>文帶你了解!