关于CAN网络管理状态

article/2025/9/28 7:35:27
    首先介绍一下,我是一名刚刚入职1个月的汽车网络测试工程师,目前主要是一边学习一边跟着公司前辈做一个项目,主要的内容就是进行通信、网络、诊断方面的测试。想以文字的形式记下自己学习的一些感想或者是经验之类的,达到巩固知识的目的,同时也希望能通过这种形式与各位同行多多交流学习。今天就先直接说说关于CAN网络管理状态转换的一些内容吧,下面是一个网络管理的逻辑图:


上面就是我画的一个比较简单的网络状态转换逻辑图,在说明这张图之前,我先介绍以下其中用到的定时参数:
T_WAKE_UP:唤醒时间,用来计算从睡眠模式进入到网络模式并且开始发送第一帧NM(网络管理)报文的时间。
T_START_NM TX:这个时间用来描述从预睡眠模式、正常操作状态或准备睡眠状态进入到网络模式并开始发送第一帧NM报文的时间。(4种情况)
T_START_AppFrame:在成功发送第一帧NM报文后发送应用报文的时间。
T_REPEAT_MESSAGE:这个时间是指处于重复信息状态的时间。
T_NM_TIMEOUT:只要节点进入网络模式就开始启用这个计时器,当计时器到时后就会进入预睡眠模式。(在网络模式下成功接收NM报文就会重新开始计时)
T_ImmediateCycleTime:快速发送NM报文的周期时间。(只有在满足一定条件下进入重复信息状态下才有)
T_NM_MessageCycle:NM报文发送的正常周期时间。
T_WAIT_BUS_SLEEP:在总线预睡眠模式下启动该定时器,当定时器到期后即进入总线睡眠模式。
介绍完时间参数,现在来理一理网络管理状态转换的过程:
一开始在接通电源后初始化网络管理,总线处于睡眠模式,在这个模式下不能收发NM报文和APP报文;当收到NM报文或网络请求(本地条件)后,就会进入网络模式(默认进入重复信息状态)并开始发送报文(T_WAKE_UP、T_REPEAT_MESSAGE、T_NM_TIMEOUT、T_START_AppFrame)。在这两种情况下的NM报文的发送周期也不相同,如果是由于网络请求(本地条件)进入重复信息状态,则先以快速发送周期发送一定次数后再进行正常周期发送;若由于接收NM报文进入重复信息状态,则以正常发送周期发送NM报文。
当T_REPEAT_MESSAGE到期时,如果总线依然有通信需求,则进入正常操作状态(重复信息状态和正常操作状态都可以收发NM报文和APP报文);如果总线没有通信需求,则进如准备睡眠状态(停止发送NM报文,可以接收NM报文,收发APP报文)。在正常操作状态下,停止发送NM报文后立即进入准备睡眠状态。
在重复信息状态和正常操作状态下有两种情况可以回到重复信息状态,一种情况是自身的重复信息请求,另一种情况是收到重复信息请求位为1的NM报文,这个重复信息位在下面会进行解释。
当处于准备睡眠状态下T_NM_TIMEOUT到期时,则进入总线预睡眠模式(启动T_WAIT_BUS_SLEEP定时器),在这个状态下,若T_WAIT_BUS_SLEEP到期,就进入总线睡眠模式;若接收到NM报文或网络请求(本地唤醒),则进入重复信息状态。此时NM报文的发送周期与从睡眠模式进入重复信息状态时一样。
注:本地条件还有自身的重复信息请求所需条件是由主机厂进行定义的,所以我目前进行的单节点测试并没有涉及;测试所用到的本地唤醒通过上K15电实现。
以上就是网络管理状态转换的基本逻辑,下面说说网络管理报文的格式:
在这里插入图片描述
可以看到,网络管理的报文格式为10个位,即3个位的网络管理基本地址+1个字节的ECU地址,0x4**为网络管理报文的基本地址,所以网络报文的ID范围为0x400-0x4FF。举个例子,若ECU地址为06,则NM报文ID为406,若ECU地址为13,则NM报文ID为413,以此类推。展示一下CAN报文ID范围图:在这里插入图片描述
然后是一个非常重要的数据部分,有8个字节:
在这里插入图片描述
Byte0就是刚刚说的ECU地址了;
Byte1为控制位矢量,这8个位里有两个非常重要:bit0和bit4。bit0就是之前说的重复信息请求位,主要由两点(1)该位默认值为0,当由于自身重复信息请求而从正常操作状态或准备睡眠状态进入重复信息状态时,此位置1,直到再次进入正常操作状态或准备睡眠状态。(2)若在正常操作状态或准备睡眠状态收到此位为1的NM报文,例如:byte1=01,则进入重复信息状态,该位置0。 bit4是主动唤醒位,如果由于网络请求(本地唤醒)从睡眠或预睡眠模式进入重复信息状态,此位置1,直到再次进入预睡眠模式;当由于接收到NM报文从睡眠或预睡眠模式进入重复信息状态,此位置0。
用户数据字节是自定义的,需要参考通信矩阵进行解读。

比如有个报文为: 406 06 10 00 00 00 00 00 00
406为ID,06是ECU地址,Byte1=10,即主动唤醒位=1,重复信息位=0,表示当前处于重复信息状态,并且是由于本地条件唤醒的。

    先写这么多吧,第一次写可能写的不是很好,有错误的请帮忙指正,有问题也可以提出来一起交流。发现网上关于使用CANoe进行测试的内容比较少,下次打算写写CANoe测试方法之类的,毕竟实践才是最重要的。

http://chatgpt.dhexx.cn/article/qok0BCAY.shtml

相关文章

AutoSar之CAN网络管理详解

​AUTOSAR中网络管理主要使用了CAN接口(CanIf),并提供通用网络管理接口(NmIf)。CAN网络管理在CAN架构中所处的位置如图1,与其他模块的交互如图2。 图1 CAN架构 图2 网络管理和其他模块的联系 AUTOSAR网络管理基于分散的直接网络管理策略,这意…

CAN网络通信

1.网络层概述 1.1综述 这部分描述了网络层的整体功能。TP协议规定了用于网络节点之间交换数据的网络层通信协议,例如ECU与ECU之间,或测试设备与ECU之间。如果要传输的数据不能使用单个的CAN帧传输,则提供一种分包传输的方法。 传输通道是通信链路的物理组成部分,包含接收/传…

CAN网络管理Autosar(入门)

一,个人小心得 作为刚入门两个月汽车电子行业的软件工程师,现阶段在学习汽车组合开关的测试(主要用CANoe软件),在学习过程中总结了一些自己理解的知识点,当然也希望得到大佬们的指点。当然如果要做一个优秀…

汽车总线CAN网络分层机构 --3

CAN网络分层机构 CAN的分层结构 遵循ISO/OSI标准模型,CAN规定了分数据链路层和物理层。数据链路层又分逻辑链路控制子层LLC和媒体访问控制子层(MAC) CAN协议层 LLC子层和MAC子层的运行被“故障界定“实体监控着。错误界定是一种能区分短期干扰和永久故障的自校验…

AUTOSAR —— CAN网络管理(CanNm)

1. 网络状态 AUTOSAR网络管理节点内部有两个状态,一个是Requested - 被请求状态,另一个是Released - 被释放状态,当节点的应用层需要使用总线进行通讯的时候,会调用接口使得节点进入请求状态,当应用层没有通信需求的时…

AUTOSAR通信篇 - CAN网络通信(二:CanIf)

目录 初始化 数据发送 请求发送 发送数据流 发送缓存 发送确认 数据接收 数据接收提醒 读取接收数据 CAN控制器模式 控制器模式转换 唤醒 PDU通道模式控制 PDU通道组 PDU通道模式 总结 在上一篇,我们介绍了CAN模块,接下来我们介绍在CAN模…

整车CAN网络介绍

整车CAN网络介绍 CAN(Controller Area Network)控制器局域网络,CAN网络在早期的整车应用中以BCM(车身控制器)为控制中心,主要是车身零部件(雨刮/大灯/车窗…),智能硬件较少,所以早期的正常CAN网络把所有其他的ECU全部放在Other EC…

CAN网络基础知识_20220727

目录 通信协议 汽车网络如何进行数据的传输以及节点的通信? 高速CAN差分电压示意图 低速CAN差分电压示意图 通信协议的基本规则 通讯帧格式 数据帧结构/帧起始​编辑/仲裁场​编辑/控制场/数据场/CRC校验场 应答场/帧结束/拓展帧​/远程帧/错误帧结构/过载帧…

【CAN总线学习01】CAN网络概述

一、车载网络概述 1.1 车载网络起源及CAN诞生条件 二十世纪九十年代前,传统汽车的电器系统中各个模块之间采用点对点的通信方式,造成了庞大的布线系统,加之汽车近年来电子化、智能化趋势,独立运行的ECU足以实现电子功能。但工程…

CAN网络总线_20220720

本文提纲: 一、CAN 网络概念 二、新、老车型CAN网络对比 三、CAN网络ID规范 四、CAN网络规范 本文主要介绍了: 通过对CAN网络及其架构的学习,来对比熟悉新、老车型CAN网络架构; 学习CAN网络ID命名规范、CAN网络规范&#xf…

浅谈数据仓库维度建模

浅谈数据仓库维度建模流程 谈到Big Data就离不开数据仓库、数据集市等概念,而谈到数据仓库、数据集市,就又离不开数据仓库设计的方法,维度建模则是其中的典型。与维度建模相对立的则是范式建模,范式建模常用于传统的DB关系型数据库…

维度建模+实例

https://www.cnblogs.com/suheng01/p/13522677.html 第一步:选择业务过程 1、通过对业务需求以及可用数据源的综合考虑,确定对哪种业务过程开展建模工作 2、建立的第一个维度模型应该是一个最有影响的模型——它应该对最紧迫的业务问题作出回答&#…

数据仓库-维度建模

目录 1. 数据仓库定义 2. 数据仓库和数据库 3. 数仓分层 4. 维度建模 4.1 维度建模 VS 第三范式 4.2 维度建模设计过程 5. 粒度概念 6. 事实概念 6.1 事实表技术 7. 维度概念 7.1 维度表技术 8. 数据关系模型 8.1 星型模型 8.2 星座模型 8.3 雪花模型 9. 写在最…

维度建模详解

文章目录 1 维度设计1.1 代理键(太复杂,不推荐)1.2 稳定维度1.3 缓慢渐变维 > 拉链表1.4 维度表的拆分、合并 2 事实表设计2.1 明细事实表(dwd)2.1.2 案例:2.1.3 存储方案2.1.4 事实拉链表示例: 2.2 聚合事实表(dws)2.2.1 分类2.2.2 案例 …

老司机带带我:数仓建模架构|维度建模剖析与案例演示

作者基于多年的大数据处理经验,当前管理着100PB数据仓库和2000节点的集群。持续系统化给大家分享一下关于数据仓库建设的经验总结。本系列既有数据仓库的形而上学理论体系,也有结合公司业务的实践,既有大厂如阿里巴巴,京东&#x…

维度建模入门

1 概念 维度建模(dimensional modeling)是专门用于分析型数据库、数据仓库、数据集市建模的方法。数据集市可以理解为是一种"小型数据仓库"。 1.1 维度表(dimension) 维度表示你要对数据进行分析时所用的一个量,比如你要分析产品销售情况, 你可以选择按类别来进行分…

数据仓库——维度建模

数据仓库——维度建模 在维度建模中,将度量称为“事实”,将环境描述为“维度” 维度表 维度表概念 维度是维度建模的基础和灵魂。在维度建模中,将度量称为“事实”,将环境描述为“维度”,维度是用于分析事实所需要…

维度建模基本流程总结

一、维度建模基本流程图 数据RD进行业务调研和数据现状调研,产出符合相关模版规范的业务知识文档和数据现状文档。数据PM也会调研相关业务产出需求设计文档,三方参与需求评审,评审通过后基建数据RD进行需求拆解,产出技术方案&…

维度建模的基本理论

维度建模 围绕三个问题来展开 1、怎么组织数据仓库中的数据? 2、怎么组织才能使得数据的使用最为方便和便捷? 3、怎么组织才能使得数据仓库具有良好的可扩展性和可维护性? 维度建模两大派系 Bill Inmon(数据仓库之父) 的企业…

Kimball 维度建模理论

一、维度建模分为两种表 事实表 存在这样一些数据,如行为记录,操作记录,订单,日志等,都可以作为事实表 特点:每条数据都有一个唯一键,数据通常来说不会更新,随着时间的增加而增加维…