AutoSar CanNm笔记

这篇具有很好参考价值的文章主要介绍了AutoSar CanNm笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

网络管理目的

网络管理的目的使车辆网络中的 ECU 节点有序的睡眠和唤醒。 在没有通信需求的时候睡眠,在需要通信的时候唤醒, 可以节约汽车电池的电量。

CAN Network Management(CanNm)是一种独立于硬件的协议实现的软件模块, 只能在 CAN 网络上使用, 主要功能是协调网络正常运行和总线睡眠模式之间的转换。 CanNm 提供了网络管理接口(NmIf) 和CAN 接口(CanIf) 模块间的适配。

CanNM与其他模块之间关系

AutoSar CanNm笔记

主动唤醒和被动唤醒

网络管理唤醒分为主动唤醒和被动唤醒。(BMS的休眠唤醒包括CAN唤醒,CAN唤醒又叫网络管理唤醒)
主动唤醒和被动唤醒的区分: 简单来说,除了收到其他节点发送的网络唤醒报文是被动唤醒外,其他都是主动唤醒(如:KL15、菊花链、RTC定时唤醒等)。

主动唤醒请求: 来自模块内部对网络的请求,并通过发送NM PDU尝试唤醒其他ECU。主动唤醒又叫做本地唤醒,和硬线相关的唤醒方式一般称为本地唤醒源。如:KL15硬线,硬线传感器信号(如:脚踢门、后备箱打开)主动唤醒节点(BMS即是一个节点)的网络管理报文必须先于应用报文发送。

被动唤醒请求: 来自总线上其他节点对该节点(例:BMS)的网络请求。被动唤醒的节点,发送的网络管理 PDU 和应用报文没有顺序要求。被动唤醒又叫做远程唤醒,简单来时就是和总线信号相关的唤醒方式。比如收到网络管理报文或者指定诊断报文,或者包含KL15信号的应用报文(有些节点没有KL15硬线,而是网关转发包含KL15信号的应用报文唤醒)。

状态管理

AUTOSAR CanNm 包含三种模式,其中 Network Mode包括三种子状态:

  • 网络模式(Network Mode)
    • 重复报文状态(Repeat Message State)
    • 常规运行状态(Normal Operation State)
    • 准备睡眠状态(Ready Sleep State)
  • 准备总线睡眠模式(Prepare Bus-Sleep Mode)
  • 总线睡眠模式(Bus-Sleep Mode)

1. 总线睡眠模式(Bus-Sleep Mode)

总线睡眠模式(BusSleepMode)的作用,是当网络上没有通信需求的时候,减少节点对蓄电池电量的消耗。 节点进入总线睡眠模式(BusSleepMode)后,对蓄电池电量的消耗下降到适当的程度。节点保留唤醒机制,等待被唤醒。
原则上,处于总线睡眠模式(BusSleepMode)的节点不接收应用报文并且不应给出ACK应答。如果此时节点数据链路层被唤醒且给出了ACK应答,需要在最短时间内重新进入低功耗模式。

2. 准备总线睡眠模式(Prepare Bus-Sleep Mode)

准备总线睡眠模式(PrepareBusSleepMode)的作用,是保证在进入总线睡眠前,节点有足够的时间停止其网络活动。在准备总线睡眠模式(PrepareBusSleepMode)下,总线活动减少(如:存在于发送缓存中的报文被发送,以清空发送缓存),最终总线将不再有活动(即没有任何报文被发送)。

节点进入准备总线睡眠模式(PrepareBusSleepMode)后,将立即开启T_WAIT_BUS_SLEEP定时器。在该定时器溢出后,该节点将离开准备总线睡眠模式(PrepareBusSleepMode),进入总线睡眠模式(BusSleepMode)。

当处于准备总线睡眠模式(BusSleepMode) 的节点接收到网络管理报文时 , 将向网络模式(NetworkMode)转换;默认情况下,节点进入网络模式(NetworkMode)中的重复报文状态(RepeatMessageState)。

3. 网络模式(Network Mode)

当节点从总线睡眠模式(BusSleepMode)或准备总线睡眠模式(PrepareBusSleepMode)进入网络模式(NetworkMode)时,在默认情况下,需进入重复报文状态(RepeatMessageState)。

节点进入网络模式(NetworkMode)后,需开启T_NM_TIMEOUT定时器;

节点处于网络模式 (NetworkMode),成功接收或成功发送一帧网络管理报文(NM PDU)后,需重启T_NM_TIMEOUT定时器;

3.1 重复报文状态(RepeatMessageState)

无论其睡眠条件是否满足,重复报文状态(RepeatMessageState)都可以使节点保持一段时间的活跃状态。该状态可以被用来监测在线节点,并且告诉其它节点我上线了,可以正常通信了。

当节点进入重复报文状态(RepeatMessageState)后,需要开始(或重新开始)发送网络管理报文。

节点处于重复报文状态(RepeatMessageState),T_NM_TIMEOUT定时器超时溢出时,需要重启T_NM_TIMEOUT定时器。

节点接收到本地唤醒源后,进入快发重复报文状态(InnmediateTransmitState);

节点接收到被动唤醒源后,进入正常重复报文状态(NormalTransmitState)。

节点在进入重复报文状态 (RepeatMessageState)需要保持一段时间 ,这段时间由参数T_REPEAT_MESSAGE 决定;T_REPEAT_MESSAGE 超时后,节点状态需进入常规运行状态(NormalOperationState)或准备睡眠状态(ReadySleepState)。 T_REPEAT_MESSAGE需保证网络上其它的节点都可以被网络管理报文唤醒。

节点离开重复报文状态(RepeatMessageState)后,若对网络通信有需求,应进入常规运行状态(NormalOperationState)。

节点离开重复报文状态(RepeatMessageState)后,若对网络通信无需求,应进入准备睡眠状态(ReadySleepState)。

节点离开重复报文状态(RepeatMessageState)后,需将重复报文请求标志位(RepeatMessageRequestBit)清零。

3.2 常规运行状态(NormalOperationState)

常规运行状态(NormalOperationState)用于保证只要对网络通信有需求,任何一个网络管理节点都可以保持网络处于唤醒状态。

当节点由重复报文状态(RepeatMessageState)或准备睡眠状态(ReadySleepState)进入常规运行状态(NormalOperationState)时,需按照T_NM_MessageCycle的周期发送网络管理报文。

当节点处于常规运行状态(NormalOperationState),而定时器T_NM_TIMEOUT溢出时需要重启定时器。

当节点处于常规运行状态(NormalOperationState),而本地睡眠条件满足时,需进入准备睡眠状态(ReadySleepState)。

当节点处于常规运行状态(NormalOperationState),而接收到重复报文请求标志位(RepeatMessageRequestBit)置位的网络管理报文时,需进入重复报文状态(RepeatMessageState)。

当节点处于常规运行状态(NormalOperationState),而RepeatMessageRequest()函数被调用时,需进入重复报文状态(RepeatMessageState),并将报文中重复报文请求标志位(RepeatMessageRequestBit)置位,同时启用快速发送机制

3.3 准备睡眠状态(ReadySleepState)

当节点从重复报文状态(RepeatMessageState)或常规运行状态(NormalOperationState)进入准备睡眠状态(ReadySleepState)后,需停止发送网络管理报文。

当节点处于准备睡眠状态(ReadySleepState),定时器T_NM_TIMEOUT溢出后,需进入准备总线睡眠模式(PrepareBusSleepMode)。

当节点处于准备睡眠状态(ReadySleepState),但因发生本地唤醒事件,睡眠条件不再满足时,需进入常规运行状态(NormalOperationState)。

当节点处于准备睡眠状态(ReadySleepState),接收到重复报文请求标志位(RepeatMessageRequestBit)置位的网络管理报文后,需进入重复报文状态(RepeatMessageState)。

当节点处于准备睡眠状态(ReadySleepState),RepeatMessageRequest()函数被调用时,需进入重复报文状态(RepeatMessageState),并将网络管理报文中的重复报文请求标志位(RepeatMessageRequest)置位,同时启用快速发送机制。

网络管理定时参数

参数 描述
T_REPEAT_MESSAGE 节点在重复报文状态(RepeatMessageState)中持续的时间
T_NM_TIMEOUT 节点进入网络模式(NetworkMode)后,即开启该定时器;
在准备睡眠状态(ReadySleepState)中,该定时器溢出后,节点进入准备总线睡眠模式(PrepareBusSleepMode)
T_WAIT_BUS_SLEEP 该定时器的作用是确保所有的节点都有时间停止其网络活动
T_START_NM_TX 该参数定义了节点从准备总线睡眠模式(PrepareBusSleepMode)、常规运行状态(NormalOperationState)或准备睡眠状态(ReadySleepState)进入重复报文状态(RepeatMessageState),到发出第一帧网络管理报文的最大允许时间间隔。
T_START_App_TX 在成功发送出第一帧网络管理报文后,节点应发送出应用报文的最大时间间隔
T_NM_ImmediateCycleTime 节点启动快速发送机制时,需以此参数作为网络管理报文的发送周期
T_NM_MessageCycle 在网络模式(NetworkMode) (除去准备睡眠状态)中,节点应以此参数作为网络管理报文的发送周期
T_WakeUp 节点从唤醒事件发生,到发出第一帧网络管理报文的最大允许时间间隔
N_ImmediateNM_TIMES 当节点处于重复报文状态并启用快速发送机制时,节点使用 T_NM_ImmediateCycleTime为周期发送网络管理报文的数量

状态切换整体框图

下图显示了与API规范相关的UML状态图。模式更改相关转换用绿色表示,错误处理相关转换用红色表示,可选节点检测相关转换用蓝色表示。此外,还假定启用了总线负载减少功能。
AutoSar CanNm笔记
状态切换详述:
AutoSar CanNm笔记

网络管理切换状态 描述
NM_1 CAN 网络管理模块的初始化
NM_2 节点在睡眠模式下检测到主动唤醒请求,发送网络管理报文来主动唤醒网络,必须首先进入 NM PDU 快速发送状态。
NM_3 处于睡眠模式时,收到有效的网络管理报文后,进入重复报文状态中的 NM PDU 正常发送状态。
NM_4 处于 NM PDU 快速发送状态的节点,在计数器 N_ImmediateNM_TIMES 为零时,节点将进入 NM PDU 正常发送状态,以正常周期发送网络管理报文。
NM_5 处于重复报文状态下的主动请求网络节点,如果 T_REPEAT_MESSAGE 发生超时,但节点的主动网络请求仍持续存在,节点必须进入常规操作状态。节点继续保持以正常周期T_NM_MessageCycle 发送网络管理报文和应用报文 PDU。
NM_6 如果节点的主动网络请求取消, 并收到有效的网络管理报文后, 节点应进入重复报文状态中。
NM_7 处于常规操作状态的节点,如果释放所有的网络请求,不再需要主动请求网络,那么它必须立即将网络管理状态切换到准备睡眠状态,同时该节点必须立即停止发送网络管理报文。
NM_8 处于准备睡眠状态的节点, 如果检测到主动网络请求,节点必须立刻进入常规操作状态,同时必须开始以正常周期 T_NM_MessageCycle 发送网络管理报文和应用报文 PDU。
NM_9 处于重复报文状态的 NM PDU 正常发送状态的节点,如果没有检测到主动网络请求(即被动唤醒),一旦T_REPEAT_MESSAGE 超时,节点将进入准备睡眠状态,在此状态下只发送应用报文,不发NM报文。
NM_10 如果节点的主动网络请求取消, 并收到有效的网络管理报文后, 节点应进入重复报文状态中。同NM_6。
NM_11 处于准备睡眠状态的节点如果没有检测到主动网络请求,一旦T_NM_TIMEOUT 超时, 节点将进入预睡眠模式。
NM_12 处于预睡眠模式的节点,如果检测到主动唤醒请求,节点将进入重复报文状态的 NM PDU 快速发送状态。
NM_13 处于预睡眠模式的节点,如果收到被动唤醒请求,节点将进入重复报文状态的 NM PDU 正常发送状态。
NM_14 处于预睡眠模式的节点如果不再收到主动或被动唤醒请求,一旦 T_WAIT_BUS_SLEEP 超时, 节点将进入睡眠模式。
NM_15 在任何状态下发生 Battery Power Off,节点都将进入关闭模式,不再拥有任何通信和网络管理的功能。

当ECU处于不同的运行模式时,可以发送和接收的CAN报文的类型。

网络模式 网络管理报文 应用报文[1]
Tx Rx Tx Rx
总线睡眠模式 N Y N N[2]
准备总线睡眠模式 N Y N[3] N
网络模式 重复报文状态 Y Y Y Y
常规运行状态 Y Y Y Y
准备睡眠状态 N Y Y Y
除特殊说明外, Tx/Rx 是对应用层而不是对数据链路层的需求;
“N”表示不允许报文的发送或接收;
“Y”表示允许报文的发送或接收;
[1]:应用报文包括常规应用报文、诊断报文、标定用报文;
[2]:是对数据链路层的需求(不应给出 ACK 应答);
[3]:已经存在于发送缓存中的报文允许被发送出来。

网络管理报文(NM PDU)

每一个AUTOASAR网络管理节点都会被分配一个唯一的网络管理报文ID。

NM PDU数据结构如下:
AutoSar CanNm笔记

源节点地址(SourceNodeIdentifier)

每一个参与网络管理的节点都会被分配一个唯一的标识符(NODE_ID),存放于网络管理报文的Byte0(SourceNodeIdentifier)中。

控制比特向量(ControlBitVector)

AutoSar CanNm笔记

  • Bit0:重复报文请求标志位(RepeatMessageRequestBit),信号值描述为:
    • 0x0:该报文发送节点未请求其他节点进入重复报文状态
    • 0x1:该报文发送节点请求其他节点进入重复报文状态
  • Bit3:NM协调器休眠位
    • 主协调器未请求启动同步关机
    • 主协调器请求启动同步关机
  • Bit4:主动唤醒网络标志位(ActiveWakeupBit),信号值描述为:
    • 0x0:该报文发送节点未主动唤醒网络(被其它节点唤醒)
    • 0x1:该报文发送节点主动唤醒网络
  • Bit6:PN功能位
    • 0x0:网络管理不使用PN功能。
    • 0x1:网络管理报文中包含PNC信息。如果项目中,网络管理要求使用PN功能,发送的网络管理报文中,有PNC请求时,需要先置位PNI。接收节点会根据PNI情况决定网络管理的处理流程。

用户数据(Userdata)

在网络管理报文中有6个字节的用户数据(Userdata0~5),可以被应用层读取和写入,用于传输用户定义信息。

被动唤醒和主动唤醒时的状态切换

  • 被动唤醒:
    处于休眠状态的主板,在收到NM报文唤醒时,会从 Bus-Sleep 模式切换到Network 模式的Repeat state,进行慢发NM报文,以 CanNmMsgCycleTime(例:200ms) 为周期,在Repeat Message Timer(例:1000ms)定时器到时时跳转到 Ready state, 此时主板不会再发送NM报文,只会发送APP应用报文。
  • 主动唤醒:
    处于休眠状态的主板,在由主动唤醒源唤醒后,会从 Bus-Sleep 模式切换到Network 模式的Repeat state,进行快发报文,以 CanNmImmediateNmCycleTime(例:20ms) 为周期,发送 CanNmImmediateNmTransmissions(例:10) 次,之后进入慢发报文,以 CanNmMsgCycleTime(例:200ms) 为周期,在Repeat Message Timer(例:1000ms)定时器到时时跳转到 Normal State,在此状态会一直发NM报文和应用报文,当满足休眠条件则切换到 Ready state,此时主板不会再发送NM报文,只会发送APP应用报文。

其中被动唤醒时,只发送几帧NM报文,意在告诉其他节点本节点已经被唤醒。

文章来源地址https://www.toymoban.com/news/detail-440086.html

常用缩写

缩写 英文名称 中文名称
Autosar Automotive Open System Architecture 汽车开发系统架构
ECU Electric Control Unit 电控单元
NM Netword Management 网络管理
PM Power Mode 电源模式
PDU Protocol Data Unit 协议数据单元
KL15 Terminal 15 of the vehicle 网络唤醒硬线电压
KL30 Terminal 30 of the vehicle 12V电源电压
Power On KL30 is connected 12V电源上电
Power Off KL30 is disconnected 12V电源下电
CAN Controller Area Network 控制器局域网络
CANFD CAN with Flexible Data Rate 灵活速率CAN网络
RMR Repeat Message Request 重复报文状态请求
BSM Bus Sleep Mode 总线休眠状态
PBSM Prepare Bus Sleep Mode 总线预休眠状态
RMS Repeat Message State 重复报文状态
NOS Normal Operation State 正常运行状态
RSS Ready Sleep State 就绪睡眠状态

到了这里,关于AutoSar CanNm笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【AUTOSAR】【Can通信】CanNM

    目录 一、概述 二、说明 三、功能说明 3.1 协调算法 3.2 操作模式 3.2.1 网络模式 3.2.2 准备总线睡眠模式 3.2.3 总线睡眠模式 3.3 网络状态 3.4 初始化 3.5 参数 3.6 网络管理PDU结构 3.7 通信调度 3.7.1 发送 3.7.2 接收 3.8 其他功能 3.8.1 远程睡眠指示器的检测 3.8.2 用户数据 3.8.3 被动模式

    2024年02月05日
    浏览(44)
  • Linux笔记——进程管理与网络监控技术讲解

    Linux笔记——磁盘进行分区与挂载介绍 Linux笔记——管道相关命令以及shell编程 文章目录 系列文章目录 前言 一 进程管理 1 简介 2  系统执行进程的情况 3  查看进程树 4  服务管理 4.1 服务的运行级别 4.2 chkconfig 4.3 systemctl管理指令 4.4 针对某个端口号,防火墙是放行的 二

    2024年02月16日
    浏览(41)
  • 网络安全笔记-day5,服务器远程管理

    windows远程有两种类型: 1.远程桌面(图形化) 2.telnet(命令行) 准备两台虚拟机,我用的是winsowsXP和windowsServer2003 1.将两台设备连接到一个交换机下 2.配置IP地址 windowsXP ip:192.168.1.2 子网掩码:255.255.255.0 windowsServer2003 ip:192.168.1.3 子网掩码:255.255.255.0 测试是否能通信 打开winsow

    2024年04月16日
    浏览(59)
  • 【尚医通】vue3+ts前端项目开发笔记 2 —— 创建项目、封装网络请求、集成elment-plus 、重置样式、准备状态管理/路由 等开发前准备

    服务器地址:http://syt.atguigu.cn 医院接口:http://139.198.34.216:8201/swagger-ui.html 公共数据接口:http://139.198.34.216:8202/swagger-ui.html 会员接口:http://139.198.34.216:8203/swagger-ui.html 短信验证码接口:http://139.198.34.216:8204/swagger-ui.html 订单接口:http://139.198.34.216:8206/swagger-ui.html 文件上传接口:

    2024年02月13日
    浏览(49)
  • 计算机网络管理-SNMP网络管理中遇到的问题及解决

    在实验中我发现,进入SNMPc 工具后,因为先前我是开启了网络发现的功能的,因此程序会自动生成拓补图,自动生成的网络规划是错误的,如下图所示: 我的设备:cdypc没有自动匹配到192.168.31.0的网段中,查看设备在SNMPc中的设备信息,我发现,cdypc的IP确实不在192.168.31.0的网

    2024年02月09日
    浏览(47)
  • 计算机网络管理-网络管理软件SNMPc软件的下载,安装和使用教程说明

    ⬜⬜⬜ 🐰🟧🟨🟩🟦🟪(*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜  ✏️write in front✏️ 📝个人主页:陈丹宇jmu 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 🙉联系作者🙈by QQ:813942269🐧 🌈致亲爱的读者:很高兴你能看到我的文章,希望我的文章可以帮助到你,祝万事

    2024年02月10日
    浏览(78)
  • 【计算机网络】网络基础--协议/网络协议/网络传输流程/地址管理

    网络的发展分为一下几个阶段: 独立模式: 计算机之间相互独立: 此时计算机之间是相互独立的,每个人在执行任务的时候是独立的,需要等待前一个将任务完成之后,自己才能进行执行任务,是串行执行的,效率很低。 网络互联: 多台计算机连接在一起, 完成数据共享:

    2024年02月03日
    浏览(47)
  • Docker基本管理与网络以及数据管理

    Docker是一个go语言开发的应用容器引擎,运行容器里的应用。docker是用来管理容器和镜像的一种工具。 容器是在linux上本机运行,并与其他容器共享主机的内核,它运行的是一个独立的进程,不占用其他任何可执行文件的内存,非常轻量。 虚拟机运行的是一个完整的操作系统

    2024年02月07日
    浏览(45)
  • 计算机网络管理 常见的计算机网络管理工具snmputil,Mib browser,SNMPc管理软件的功能和异同

     ⬜⬜⬜ 🐰🟧🟨🟩🟦🟪(*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜ ✏️write in front✏️ 📝个人主页:陈丹宇jmu 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 🙉联系作者🙈by QQ:813942269🐧 🌈致亲爱的读者:很高兴你能看到我的文章,希望我的文章可以帮助到你,祝万事

    2024年02月09日
    浏览(49)
  • 网络管理与维护(一)

    代理 代理(Agent)位于被管理对象中,被管理对象可以是计算机、网络设备(如,交换机、路由器)、应用程序等。代理把来自管理站的操作要求转换为被管理对象能够识别的指令,以完成管理站的管理任务,并将被管理对象的信息响应给管理站。代理也可能因为配置或其他

    2024年02月10日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包