CAN网络管理Autosar(入门)

article/2025/9/28 7:28:50

一,个人小心得

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

软件:
1,CANoe软件(很强大的软件,德国Vector公司的产品,主要用来测试)

2,DaVinci软件(用于编写Autosar架构的软件)有两款,如下图在这里插入图片描述
DaVinci Developer: 主要用来设计AppL的程序架构
DaVinci Configurator pro: 主要用来配置BSW和自动生成RTE的

3,Matlab: 主要是用Simulink做代码生成的,就是我们的应用层软件就需要Matlab来开发,当然手写也是可以的,不过弊端就很多了

4,IAR(用来Debug以及烧录程序),eclipse(编译环境)

5,keil5

硬件
1,示波器的使用(可以用来测量CAN总线电压,CAN物理层参数,CAN数据链路层参数等。必备)
2,PWM(主要用来编写控制电机的转速及唤醒),I2C,ADC(数模转换),SBC电源芯片,看门狗(程序必备),

知识点
1,NM : 网络管理(Network Management)

2,UDS: 统一诊断服务 (Unified diagnostic services )

3,CAN: CAN(Controller Area Network,控制器局域网络) 汽车上必用的通信总线,用于传输各个ECU(电子控制单元)的数据收发

4,LIN总线

5,Autosar:就是AUTomotive Open System ARchitecture的简称,中文翻译就是汽车开放系统架构,将汽车电子控制单元(ECU)的软件底层做了一个标准的封装。使得大家都能共用一套底层软件,只需要修改其中的一些参数,就可以匹配不同硬件,也可以匹配不同的应用层软件。如此之后,用户只需要专心负责应用层功能开发即可,底层都交给AutoSAR工程师就行了。

二,什么是网络管理NM

车载网络总线管理的目的是使网络中的ECU节点有序地睡眠和唤醒,在没有通信需求的时候睡眠,
可以节约电池的能量。

CAN总线上的网络管理,是一种无中心式的网络管理,网络中的每个节点都依赖于自己和别人的网络管理报文(NM PDU)来实现通信的睡眠和唤醒,这个NM PDU是周期性发送的,对于每个ECU来说,收到别的ECU发送的NM PDU则意味着当前的网络有通信需求,自己发出NM PDU则是告知别的ECU自己有通信需求。

整个网络管理模式如下图。
在这里插入图片描述
由上图可知:

网络管理有三个模式
1,Bus-Sleep Mode(总线睡眠模式)
2,Net Work Mode(网络模式)
3,Prepare Bus-Sleep Mode(预总线睡眠模式)

Net Work Mode(网络模式)又有三种状态
1,Repeat Message State(重复报文状态)
2,Normal Operation State(常规操作状态)
3,Ready Sleep State(准备睡眠状态)

接下来一一拆解上图过程

NM_01
节点供电状态(KL30电源线)从电池off切换到电池on 后(此时汽车并没有点火。ignition off),,节点进行网络管理模块初始化,初始化完成后节点进入睡眠模式,并且需要立即具备被主动唤醒请求或者被动唤醒请求唤醒的能力;在这里插入图片描述
在CANoe软件上可以看出,不收发任何报文,总线处于睡眠模式。可以接受被动唤醒NM_02 (随便发送个网络报文),或者主动唤醒NM_03(KL15点火线on,:即汽车上点火按钮按下;或一些厂家定义的按键唤醒,如:近光灯按下)

NM_02
当节点处于睡眠模式时,如果收到被动唤醒,那么节点将离开睡眠模式并进入重复报文状态中的NM正常发送状态。进入NM正常发送状态后,在计时器Repeat Message Timer(3200ms为例)超时以前,节点必须以正常周期CanNmMsgCycleTime(500ms为例)发送网络管理报文。在节点收到网络管理报文时,它向总线发出的第一帧报文可以是网络管理报文也可以是应用报文。

NM_03
如果节点在总线睡眠模式下检测到主动唤醒请求,(此时如下图1,总线被唤醒,正常接收报文)首先进入NM PDU快速发送状态。当节点因主动唤醒请求需要唤醒网络时,必须快速发送连续NM PDU报文。(以厂家为定,以20ms的周期连续发送5帧报文为例。如下图2)

图1
在这里插入图片描述

图2
在这里插入图片描述

NM_04
如果是走03(主动唤醒)进来的,先在NM Immediate Transmit State中以很快的周期发送5帧报文,发完再进入到NM Normal Transmit State中以正常的周期CanNmMsgCycleTime(500ms)发送报文如下图。如果是直接走02进来的,那么直接以正常周期发送NM报文。一直发到Repeat Message Timer(3200ms为例)结束。根据节点本身是否需要网络通信(网络请求),节点将移动到NM_6正常操作状态或NM_12准备睡眠状态

NM_06
处于重复报文状态下的主动请求网络节点(KL15点火线on: 汽车点火按钮按下), 如果Repeat Message Timer 发生超时,但节点的主动网络请求仍持续存在,节点必须进入常规操作状态。节点继续保持以正常周期500ms发送网络管理报文和应用报文。如下图
在这里插入图片描述

NM_09
处于常规操作状态的节点,如果释放所有的网络请求,不再需要主动请求网络(KL15 off 以及不做任何按键唤醒),那么它必须立即将网络管理状态切换到准备睡眠状态,同时该节点必须立即停止发送网络管理报文。

NM_10
处于准备睡眠状态的节点,如果检测到主动网络请求,节点必须立刻进入常规操作状态同时必须开始以正常周期发送网络管理报文和应用报文PDU。

NM_07,11
收到NM报文的byte1字节的重复请求位如果置1,强制进入Repeat Message State。
在这里插入图片描述

NM_08,05,14
T_NM_timerout定时器超时,不改变当前状态。定时器需要重置。

NM_13
在Ready Sleep State状态,NM报文不可以发送。等待T_NM_TIMEOUT定时器超时后进入Prepare Bus-Sleep Mode。

NM_15,16
Prepare Bus-Sleep Mode状态只可以接收NM报文,其他报文不发不收。收到被动唤醒,走15;收到主动唤醒,走16。

NM_17
如果Prepare Bus-Sleep Mode状态收不到任何唤醒源,在T_WAIT_BUS_SLEEP定时器超时后进入Bus-Sleep Mode。


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

相关文章

汽车总线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 维度建模理论

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

维度建模示例

以库存模块和零售模块这两个模块来谈一谈维度建模的相关事项梳理库存业务中的表的构造与设计思想梳理一下缓慢变化维的处理方法与优缺这篇博客计划用周末来完成,只能简单的讨论一下建模概况,从维度建模这本书中摘录出一些重要的知识点,对于维度建模这本书的报告计划在5.1之前完…

浅谈维度建模

前言:本人作为BI方向相关的数据系统后端开发,虽然不是从事具体的数仓方面的工作,但是对维度建模过程有个大致了解,可加深对于系统现有的架构设计的理解(比如数据模型构建,指标库的作用)&#xf…

关系建模与维度建模

一、OLTP与OLAP 当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-linetransaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。 OLTP是传统的关系型数据库的主要应用,主要是…