文章目录

    • 前言
    • 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…