Autosar 网络管理-诊断请求到底能不能快发Nm报文?

文章目录

前言

之前一直理解的诊断请求会维持网络,客户报问题说诊断请求不能快发Nm报文,但软件没改过,以前也没报过这个问题,本文梳理一下该问题报的是否合理

Autosar规范

标准Autosar CanNm状态机如下:

大家知道快发Nm报文是在Repeat Message State 状态下,正常ECU被动唤醒状态下,处于Ready Sleep State 状态下,不会发送Nm报文

由上图Nm状态机可以看到,当Nm处于Network Mode 时,如果CanNmPnHandleMultipleNetworkRequests 配置为True时(上图红框1),调用CanNm_NetworkRequest() ;函数会重新进入RMS状态,此时就可以快发Nm报文了。如果CanNmPnHandleMultipleNetworkRequests 配置为False,同时Nm处于Network Mode-RSS时(上图红框2),调用CanNm_NetworkRequest() ;函数,Nm状态会跳转到Normal Operation State ,此时Nm报文正常慢周期发送(如1s),也就不会有快发报文

对应的Autosar标准需求如下:

细心的同学应该发现了,从RSS到RMS还可以通过调用CanNm_RepeatMessageRequest 函数实现,那为什么诊断不是通过调用该函数实现快发的呢?之前介绍过诊断请求网络的实现,参考:Autosar Dcm开发-诊断报文请求网络管理报文的实现方法-基于ETAS软件

请求网络最终由ComM_DCM_ActiveDiagnostic函数实现,Autosar ComM中有如下需求:

可知诊断请求最终由Nm_NetworkRequest实现,对于Can网络来说,也就是CanNm_NetworkRequest实现。

同时,我查了下代码,项目中CanNm_RepeatMessageRequest实际没有用到,Nm在NOS或RSS状态下,外部调用这个函数可以主动进RMS,而诊断请求并不是通过该函数实现的。

问题分析

到此已经可以解释文章的问题了,到底能不能快发Nm报文取决于CanNm中的CanNmPnHandleMultipleNetworkRequests配置,配置为True才能快发Nm报文,否则不能快发Nm报文。

而客户需求中明确规定了CanNmPnHandleMultipleNetworkRequests需要配置为True,所以这个问题提的就是不合理的。

总结

Nm状态机这边只提了调用CanNm_NetworkRequest来触发快发报文,那诊断请求又是如何调用CanNm_NetworkRequest函数的呢?CanNmPnHandleMultipleNetworkRequests又是如何影响Nm状态机的呢?留着后面有空再整理吧~

相关推荐
AUTOSAR组织4 天前
AUTOSAR AP状态管理、操作系统及编程实例
汽车·autosar·软件架构·软件
supabc1234 天前
Celium:连接 Windows、Mac、Linux 与 Android,让远程访问和设备管理更简单
android·linux·windows·macos·远程访问·网络管理·celium
寇旨5 天前
AUTOSAR_CP文档图解==>AUTOSAR_CP_SWS_COMManager
autosar·isolar工具
寇旨6 天前
AUTOSAR_CP文档图解==>AUTOSAR_CP_SWS_PDURouter
autosar·isolar工具
寇旨6 天前
AUTOSAR_CP文档图解==>AUTOSAR_CP_SWS_CANStateManager
autosar·isolar工具
寇旨6 天前
AUTOSAR_CP文档图解==>AUTOSAR_CP_SWS_COMBasedTransformer
网络·autosar
瞬间记忆1 个月前
AUTOSAR基础概念学习
汽车·autosar
2601_962077601 个月前
CMD 命令大全(终极完整版):120 + 命令分类详解
系统管理·网络管理·cmd命令大全·系统信息查询·文件目录操作
赞哥哥s1 个月前
车载以太网概念及协议架构介绍(一)
ethernet·autosar·aurix
车软派开发学长2 个月前
车企研发的“整合与自研”之争,本质是一场生意
车载系统·汽车·can·autosar