Autosar Nm-網管報文PNC停發后無法休眠問題排查

文章目錄

    • 前言
    • Autosar CanNm標準中的相關參數
      • CanNmAllNmMessagesKeepAwake
      • PN過濾功能
      • CanNm_ConfirmPnAvailability
    • 問題描述
    • 問題原因排查
    • 解決方案
    • 擴展
    • 總結

前言

Autosar Nm中針對于支持PN功能的收發器,要求PNC停發后允許進入休眠模式,開發過程中遇到PNC停發后無法休眠,本文對該問題進行排查與處理。

Autosar CanNm標準中的相關參數

此處我們討論支持PN功能的情況,也就是CanNmPnEnabled為True

CanNmAllNmMessagesKeepAwake

在這里插入圖片描述
在這里插入圖片描述
當該參數配置為Trrue時,只要收到Nm報文,就會認為是有網絡喚醒請求

當該參數配置為false時,需要Nm Pdu中PNI位為1且有對應的PNC請求才會認為是有效的網絡喚醒請求

對于不支持PN功能的can收發器,該配置項可以配置為True以防止PNI置位時被頻繁喚醒

對于支持PN功能的can收發器,該配置項需要配置為false,保證PNI置位但沒有PNC請求時也可以進入休眠模式。

注意:此時can收發器端配置data有效數據時不能包含PNI位,只需關聯對應的PNC位為1即可
在這里插入圖片描述
在這里插入圖片描述

標準解讀:

1.對于支持PN功能的ECU,當PNI為0時,CanNmAllNmMessagesKeepAwake為TRUE時,仍需要認為接收到有效的Nm Pdu,也就是能夠維持喚醒。

2.對于支持PN功能的ECU,當PNI為0時,CanNmAllNmMessagesKeepAwake為FALSE時,需要忽略接收到的Nm Pdu,也就是會走網絡管理下電流程(Ready Sleep-PreBus Sleep-Bus Sleep)

3.對于支持PN功能的ECU,當PNI為1且沒有關聯的PNC置位時,CanNmAllNmMessagesKeepAwake為FALSE時,需要忽略接收到的Nm,Pdu,也就是會走網絡管理下電流程

4.對于支持PN功能的ECU,當PNI為1且沒有關聯的PNC置位時,CanNmAllNmMessagesKeepAwake為TRUE時,仍需要認為接收到有效的Nm Pdu,也就是能夠維持喚醒

PN過濾功能

此處有三個配置參數,CanNmPnInfoOffset,CanNmPnInfoLength,CanNmPnFilterMaskByteValue,Offset表示PNC從Nm Pdu中的第幾個字節開始算,Length即為PNC的字節數,MaskByteValue配置有效的PNC位

標準中示例如下:
在這里插入圖片描述
例子中兩個字節的PNC,第一個字節沒有有效的PNC位,第二個字節中有有效的PNC

CanNm_ConfirmPnAvailability

為了通知CanNm能夠支持PN過濾,需要CanSm調用CanNm_ConfirmPnAvailability函數在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

問題描述

Nm PDU中關聯的PNC停止發送,ECU報文停發,但未進入休眠模式,導致耗電嚴重

問題原因排查

停發PNC后,Nm狀態仍處于Ready Sleep狀態,Nm Pdu仍能正常接收,查看CanNm配置項CanNmAllNmMessagesKeepAwake已經為FALSE。在CanNm_RxIndication中默認PDU是收到的,只有CanNmAllNmMessagesKeepAwake為FALSE且CANNM_GetPnMsgFilteringStatus為TRUE才能允許PDU未接收

而CANNM_GetPnMsgFilteringStatus一直為FALSE,所以Nm PDU一直能收到

排查發現CANNM_SetPnMsgFilteringStatus沒有運行,該函數在CanNm_ConfirmPnAvailability中調用,而CanNm_ConfirmPnAvailability在CanSM_ConfirmPnAvailability中調用,實際CanSm_ConfirmPnAvailability函數沒有地方調用

所以導致Nm Pdu一直是收到的狀態,導致無法進入下電過程

解決方案

本質上就是要調用CANNM_SetPnMsgFilteringStatus,可以在初始化完后通過CanNm_ConfirmPnAvailability函數進行調用

注意:該函數傳遞的參數為nmChannelHandle,需要確認對應的Nm通道是否正確

另外,如果關聯的PNC停發后仍然沒有進入休眠狀態,那么就需要再排查下 PN過濾的參數了。

擴展

標準文檔中的推薦流程為:CanTrvc->CanIf->CanSm->CanNm

查看Autosar CanSm文檔,CanSm_ConfirmPnAvailability函數由CanIf模塊調用
在這里插入圖片描述
CanIf有對應配置CanIfDispatchUserConfirmPnAvailabilityUL及CanIfDispatchUserConfirmPnAvailabilityName,需要在CanIf中配置為CanSm盒CanSm_ConfirmPnAvailability,且配置CANIF_PUBLIC_PN_SUPPORT為TRUE
在這里插入圖片描述
在這里插入圖片描述
這樣配置之后,CanIf中的CanIf_ConfirmPnAvailability函數就會調用CanSm_ConfirmPnAvailability了
在這里插入圖片描述
而CanIf_ConfirmPnAvailability需要由CanTrcv調用,標準中描述如下:
在這里插入圖片描述

總結

由于我們沒有使用CanTrcv模塊,所以用標準流程會導致很多check不過,但是知道原理之后,怎么解決問題就很簡單了~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/917370.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/917370.shtml
英文地址,請注明出處:http://en.pswp.cn/news/917370.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

RK3568下的進程間通信:基于UDP的mash網絡節點通信

基于UDP的mash網絡節點通信系統實現: 最近的項目中需要實現一個功能,類似mash網絡的功能,比如 類似下圖中的多個節點之間,相互之間通信, 節點A自身的通信列表中,只有B和C,所以A發出的消息給B和C,依次類推,A發送的消息所有節點都能收到,同理,其他節點比如K節點發送的…

Effective C++ 條款17:以獨立語句將newed對象置入智能指針

Effective C 條款17:以獨立語句將newed對象置入智能指針核心思想:使用智能指針管理動態分配的對象時,必須確保new操作與智能指針構造在同一獨立語句中完成,避免編譯器優化順序導致的內存泄漏。 ?? 1. 跨語句初始化的危險性 資源…

Linux iptables防火墻操作

資料: 網絡運維相關 - iptables 【Main】 https://www.zsythink.net/archives/tag/iptables/ netfilter 在 Linux 內核 TCP/IP協議棧中的位置 【框架】【Aulaxiry】 https://zhuanlan.zhihu.com/p/93630586 1 概念詳解 ● 防火墻概念 ○ 主機防火墻 網絡防火墻 ○…

飛書推送工具-自動化測試發送測試報告一種方式

飛書推送工具 要獲取飛書開發所需的 APP_ID、APP_SECRET 以及用戶的 USER_ID,需通過飛書開放平臺和飛書客戶端的相關設置操作。以下是詳細步驟: 一、獲取 APP_ID 和 APP_SECRET(飛書應用憑證) APP_ID 和 APP_SECRET 是飛書開放…

從零開始的云計算生活——第三十七天,跬步千里,ansible之playbook

目錄 一.故事劇情 二.Playbook簡介 三.Playbook核心元素(重要) 四.Playbook語法 五.Playbook的運行方式 六.Playbooks中tasks語法使用 1、file 2、lineinfile 3、replace 4、shell 5、debug 6、template/copy 7、fetch 8、unarchive 9、wait_for 10、yum 11、…

AI驅動下的數據新基建:騰訊游戲數據資產治理與湖倉架構革新

在大模型技術迅猛發展的今天,AI 正深度重塑數據基礎設施,推動其向智能化快速演進。如何將 AI 深度融入數據管理,釋放數據的潛在價值、提升運營效率,成為企業在構建 AI 驅動的數據資產管理體系的核心問題。在近期舉辦的“DataFun A…

ubuntu 系統風扇控制軟件 CoolerControl

背景 A6000顯卡的溫度一直都是86度左右,GPU的風扇轉速不夠大。 我首先把 nvidia的驅動更新了,但是發現風扇依然依然保持在較低的轉速。 后面無意間搜到了CoolerControl 這個linux平臺的風扇控制軟件。設置之后,增加了風扇的轉速,…

Oracle 11gR2 Clusterware應知應會

Oracle 11gR2 Clusterware應知應會 關鍵特性 啟動順序 日志路徑 資源狀態 資源管理 關鍵特性 ?? Oracle 11gR2 Clusterware的一些關鍵特性如下: 在安裝運行11gR2的Real Application Clusters數據庫之前需要先安裝11gR2 Clusterware。 GRID home包括Oracle Clusterware和AS…

微信小程序蘋果手機和安卓,怎么做適配

1. 基于 rpx 單位進行布局適配微信小程序采用 rpx 作為尺寸單位,以實現不同設備的布局適配。小程序的屏幕寬度固定為 750rpx,在不同設備上通過動態計算 1rpx 對應的像素值進行適配。例如,在 iPhone 6 中,屏幕寬度為 375px&#xf…

XGBoost三部曲:XGBoost參數詳解

之前已經介紹了XGBoost三部曲:XGBoost原理。本文詳細介紹XGBoost參數,讓大家在使用XGBoost的過程中能得心應手。后續會更新XGBoost實戰,敬請期待。 文章目錄 一、核心概念回顧 二、XGBoost算法參數整體介紹 1 原生接口和Scikit-learn接口的區別 2 參數分類詳解 三、核心Boos…

【python】轉移本地安裝的python包

我們現在需要將某個環境已經安裝的 python 包離線傳遞到另外一個環境,且確保這種安裝行為最終不需要對 PYPI 中央倉庫的有效連接,也能完成。下面給出兩種辦法: docker container 如果你的 python 環境位于某個容器內,那最好的辦法…

TGD第十篇:當神經網絡遇到TGD特征

目錄一、實驗背景二、實驗設置三、實驗結果和分析四、結語TGD 是我們定義的一種新的“變化率表征”,對連續函數而言是一種新的“廣義導數”,對離散序列而言是一種新的差分。TGD 是一個名字,一個代號。在基于 TGD 的圖像邊緣檢測以及視頻邊緣檢…

FreeRTOS源碼分析二:task啟動(RISCV架構)

系列文章目錄 FreeRTOS源碼分析一:task創建(RISCV架構) 文章目錄系列文章目錄前言vTaskStartScheduler 調度器啟動函數xPortStartScheduler架構特定調度器啟動函數vPortSetupTimerInterrupt啟動 RISCV 定時器中斷xPortStartFirstTask啟動第一…

Python編程基礎與實踐:Python基礎運算符與表達式入門

Python運算符與表達式實戰 學習目標 通過本課程的學習,學員可以掌握Python中算術運算符、比較運算符、邏輯運算符及賦值運算符的使用方法,并能夠構建簡單的表達式來解決實際問題。 相關知識點 Python運算符與表達式 學習內容 1 Python運算符與表達式 1.1…

Git下載全攻略(未更新完)

一、在 Windows 上安裝 Git? ??? 1.1 下載安裝包? 官方版本可在 Git 官方網站下載,打開Redirecting…,下載會自動開始。此安裝包來自名為 Git for Windows 的項目(也稱作 msysGit),它與 Git 本身是相互獨立的項目,更多相關信息可訪問Redirecting Git for Windows…

rocky\centos安裝docker鏡像的命令

1.安裝依賴: sudo yum install -y yum-utils device-mapper-persistent-data lvm22. 選擇倉庫源: sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo阿里源: sudo yum-config-manager --add-r…

扣子,正式擁抱開源!

資料來源:火山引擎-開發者社區 扣子 是新一代 AI Agent 平臺,旗下有四款子產品:「扣子空間」、「扣子開發平臺」、「扣子羅盤」 及 Eino 。 我們始終堅信,AI Agent 的未來屬于每一位開發者和創造者。為了讓前沿的 AI 技術能夠更快…

Git 各場景使用方法總結

以下是對 Git 各場景使用方法的全面總結,涵蓋 20+ 核心場景和 100+ 命令,包含詳細參數、使用示例及原理說明: 一、基礎操作場景 1. 倉庫初始化 # 本地初始化 git init git init --bare # 創建裸倉庫(無工作區) git init -b main # 指…

國際標準組織共聚,智源推動全球AI開源與國際標準雙輪驅動人工智能普惠化發展

7 月 26 日,人工智能標準化國際合作論壇在上海召開。該論壇由聯合國工業發展組織全球工業人工智能聯盟卓越中心主辦,中國電子技術標準化研究院、上海人工智能研究院承辦,工業和信息化部副部長單忠德、國家市場監督管理總局標準創新管理司司長…

《安富萊嵌入式周報》第356期:H7-TOOL的250M示波器模組批量生產中,自主開發QDD執行器,開源14bit任意波形發生器(2025-07-28)

周報匯總地址:嵌入式周報 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬漢嵌入式論壇 - Powered by Discuz! 視頻版 《安富萊嵌入式周報》第356期:H7-TOOL的250M示波器模組批量生產中,自主開發QDD執行器&a…