中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 729查看
  • 0回复

[模块网络] CAN通讯系列补充篇- 网管报文开发配置9

[复制链接]


该用户从未签到

发表于 3-12-2023 07:55:41 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


本文经CSDN博主- 嵌软小白呗允许转发,感谢支持!作者对网管报文开发的具体配置工作做了详细地说明,可以进一步揭开网络管理开在开发层面的神秘面纱,让大家从上层的需求和协议规范到如何落地有更直观的认识。本文将在原文基础上稍作修改,也欢迎关注作者其他文章。原文链接:Autosar CAN开发10(Autosar的CanNM报文开发Configurator-非PNC)前面文章:CAN通讯系列补充篇- 为什么要网管报文7 CAN通讯系列补充篇- NM状态机跳转详解8 介绍了关于网管报文的作用,NM状态机及其跳转,在此基础上,本文将更进一步,开始介绍网管报文具体是如何开发的。1. 接收网管报文的ID范围在总线上,网管报文的有效ID是有范围的(比如0x550-0x5FF),总线上的ECU只有接收到有效ID的网管报文才进行响应(唤醒或保持唤醒)。在Vector工具链的Configurator配置工具中,网管报文ID的配置是在CANIF模块中配置,如下图所示,网管报文的接收范围为0x580-0x5FF:
CAN通讯系列补充篇- 网管报文开发配置9w1.jpg
2. 网管报文的关键时间参数
网报报文的关键时间参数有:

    Repeat Message Timer:状态机停留在Repeat Message状态的时间

    NM-Timeout Timer:若超过该时间没接收到网管报文,网管状态就从Ready Sleep状态跳转到Prepear Bus Sleep状态。

    Wait BusSleep Timer:若超过该时间没检测到唤醒源,网管状态就从Prepear Bus Sleep状态跳转到Bus Sleep状态。

CAN通讯系列补充篇- 网管报文开发配置9w2.jpg
另外的一些重要时间参数有:

    NM Message Cycle Time:网管报文发送的周期时间。

    Immediate NM Cycle Time:当被本地唤醒后,网管报文快发的周期时间。

    Immediate NM transmissions: 当被本地唤醒后,网管报文快发的次数。

它们的配置如下图所示:

CAN通讯系列补充篇- 网管报文开发配置9w3.jpg
3. 其它配置项1)网管报文的Source Node Identifier(Nid)和Control Bit Vector(Cbv)网管报文的Byte0和Byte1分别为Nid和Cbv,至于Byte0是Nid还是Cbv可以根据用户自己定义。目前我所接触到的项目,Byte0都是Nid,Byte1都是Cbv,如下图所示:
CAN通讯系列补充篇- 网管报文开发配置9w4.jpg
Nid其实就是ECU节点的ID。比如车企定义有效网管报文的ID范围为0x550-0x5FF,则发出0x550这帧网管的ECU的NodeID为0,发出0x551的NodeID为1,以此类推,发出0x5FF的ECU的NodeID为175(或十六进制:0xAF)。根据AutoSAR标准,NID在NM报文中占一整个字节(8个Bit)。NoteID的在Configurator中的配置如下:
CAN通讯系列补充篇- 网管报文开发配置9w5.jpg
Cbv也占据一整个字节(8个Bit),具体每一个Bit的定义如下(这是Autosar标准,不能自己改变的):
CAN通讯系列补充篇- 网管报文开发配置9w6.jpg

CAN通讯系列补充篇- 网管报文开发配置9w7.jpg
    Bit0:该位为RepeatMessage请求位。即当ECU发出的网管报文该位置1时,发出的ECU自身的网管状态要进入RepeatMessage状态;其它ECU接收到网管报文该位置1时,也要进如RepeatMessage状态。Bit4:主动唤醒标志位。即当ECU为主动唤醒时该位置1。Bit6:当网管报文有PNC功能才会用到。
2) 网管报文的Offset(CanNmMsgCycleOffset)网管报文Offset的意义:当CAN总线上的所有ECU都处于休眠状态,此时若某个ECU主动唤醒并向总线发出网管报文,总线上的其它所有ECU接收到网管报文后也将被唤醒进入RepeatMessage状态,向外发出网管报文,若每个ECU同时向外发出网管报文,则会造成总线爆发,因此给每个ECU配置不同的网管Offset,就避免了总线爆发。官方解释如下:
CAN通讯系列补充篇- 网管报文开发配置9w8.jpg
另外,CanNmMsgCycleOffset只会在网管报文唤醒ECU时起作用。其实很容易理解,若是主动唤醒是没必要用这个Offset的。官方解释如下:
CAN通讯系列补充篇- 网管报文开发配置9w9.jpg
Configurator配置如下:
CAN通讯系列补充篇- 网管报文开发配置9w10.jpg

4. 网管报文的User Data

网管报文Byte2-Byte7是的UserData,用户可以在Byte2-Byte7中填充数据,填充好后通过网管报文发出来,这些数据通常在出现问题后可以很好帮助解决问题。一些车企要求这些UserData中实时更新唤醒源、保持唤醒源等等。

下面了解下如何配置UserData。一般情况下,UserData都是在网管状态机跳转时,代码调用StateChangeNotification函数,在函数内更新网管报文的UserData。开启StateChangeNotification函数调用的配置方法如下:
CAN通讯系列补充篇- 网管报文开发配置9w12.jpg
然后在函数内调用如下接口,就能够配置网管报文的UserData了。
CAN通讯系列补充篇- 网管报文开发配置9w13.jpg


该用户从未签到

发表于 17-3-2025 17:53:00 | 显示全部楼层
关于CAN通讯系列补充篇中关于网管报文开发配置的文章,经过CSDN博主嵌软小白呗的允许转发,我深感荣幸。作为一名汽车工程师,深知网管报文在网络管理中的重要性。文章详细阐述了网管报文开发的具体配置工作,从上层需求和协议规范到实际落地实施,为读者提供了直观的认识。文章将会详细介绍如何在Autosar的CanNM中开发配置网管报文,而不仅仅局限于PNC配置工具的使用。基于前文的铺垫,本文将继续深入探讨网管报文的细节,如报文的发送与接收、错误处理等。同时,也非常欢迎大家关注嵌软小白呗的其他相关文章,相信在进一步深入学习后,能够更全面理解CAN通讯中网管报文的运用及其在网络管理中的作用。
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 27-7-2025 08:54 , Processed in 0.308148 second(s), 35 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.