CAN网络管理Autosar(入门)

2023-05-16

一,个人小心得

作为刚入门两个月汽车电子行业的软件工程师,现阶段在学习汽车组合开关的测试(主要用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。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CAN网络管理Autosar(入门) 的相关文章

  • podman常见使用命令

    常用命令 容器 podman run 创建并启动容器 podman start 启动容器 podman ps 查看容器 podman stop 终止容器 podman restart 重启容器 podman attach 进入容器 podm
  • 对子模函数(submodular function)的一些理解

    1 子模函数是一个集合函数 xff0c 又减小回转属性 xff08 diminishing returns 子模函数适用于多种应用 xff0c 包括近似算法 xff0c 博弈理论 xff0c 和电网络 2 标准定义 xff1a 如果是一个集
  • 二项分布(np.random.binomial),搞它就完了

    二项分布 xff08 np random binomial xff09 xff0c 搞它就完了 xff01 首先我们的搞清楚伯努利分布和二项分布 xff0c 我们先找个例子 xff0c 选西瓜 xff0c 待我细细道来 伯努利分布 选一个西
  • Numpy给数组增加维度的操作

    不说其他的 xff0c 直接给个例子就懂了 a是一个一维数组 a 61 np array 0 0 10 0 20 0 30 0 print a shape a np newaxis a np newaxis shape 输出 4 0 10
  • 参数辨识的简单理解

    1 参数辨识技术 xff0c 是一种将理论模型与试验数据结合起来用于预测的技术 参数辨识根据实验数据和建立的模型来确定一组模型的参数 xff0c 使得由模型计算得到的数值结果能最好地拟合测试数据 xff08 可以看做是一种曲线拟合问题 xf
  • Matlab中持久变量(persistent)在Python中的理解

    语法 persistent var1 varN 说明 persistent 将变量var1 varN 声明为持久变量 持久变量是声明它们的函数的局部变量 xff1b 但其值保留在对该函数的各次调用所使用的内存中 xff0c Matlab命令
  • 新的代数计算软件包——Magma

    Magma是一款由悉尼大学数学与统计学系计算代数学小组开发的功能强大的代数计算程序包 xff0c 该软件专门解决代数系统中的数论 代数几何和代数组合学的计算问题 新的代数计算软件包 Magma 前言一 Magama安装二 基本操作三 多项式
  • 基于ChatGPT的新一代辅助编程神器——Cursor

    Cursor 编辑器 Cursor 这是一款与OpenAI合作并且基于GPT3的新一代辅助编程神器 它支持多种文件类型 xff0c 支持格式化文本 xff0c 支持多种主题 xff0c 支持多语言语法高亮 xff0c 支持快捷键设置 xff
  • 2023 Microsoft Edge 新增的分屏功能

    Microsoft Edge Canary 通道目前已经发布 110 版 xff0c 本次更新带来一个非常实用的实验性功能 xff1a 同窗双屏功能 xff0c 可以在一个窗口里同时开两个网页并排看 如何开启分屏功能 xff1f 默认分屏功
  • ubuntu服务器图形界面崩溃解决方案

    你们看的没错 xff0c 我又来了 真的是 xff0c 读计算机不易啊 我又又又把机器搞坏了 就单纯的程序跑不通 xff0c 网上搜解决方案是说好像这个文件夹名带中文 xff0c 明明我修改过了 xff0c 想着重启一下吧 xff0c 然后
  • Mysql备份和恢复

    一 数据备份的重要性 备份的主要目的是灾难恢复 在生产环境中 xff0c 数据的安全性至关重要 任何数据的丢失都可能产生严重的后果 造成数据丢失的原因 1 程序错误 2 人为操作错误 3 运算错误 4 磁盘故障 5 灾难 xff08 火灾
  • FreeRTOS中任务的四种状态

    FreeRTOS任务的四种状态分别是 xff1a 就绪态 运行态 阻塞态 挂起态 各种状态的说明如下 xff1a 1 就绪态 xff1a 处于就绪态的任务是那些已经准备就绪 这些任务没有被阻塞或者挂起 xff0c 可以运行的任务 xff0c
  • BP神经网络实现汽油辛烷值预测,《MATLAB源码+数据集》

    发展背景 在人工神经网络的发展历史上 xff0c 感知机 Multilayer Perceptron xff0c MLP 网络曾对人工神经网络的发展发挥了极大的作用 xff0c 也被认为是一种真正能够使用的人工神经网络模型 xff0c 它的
  • ELM极限学习实现汽油辛烷值预测(MATLAB)

    什么是极限学习机 xff1f 极限学习机 xff08 ELM Extreme Learning Machines xff09 是一种前馈神经网络 xff0c 最早由新加坡南洋理工大学黄广斌教授于2006年提出 该算法具有良好的泛化性能以及极
  • 粒子群算法(PSO)测试函数寻优

    3 1粒子群算法 粒子群优化算法是一种模拟鸟群捕食活动的进化算法 xff0c 体现了种群相互协作行为的群体智能 在处理优化问题时 xff0c 每个粒子对应搜索空间的一个潜在方案 xff0c 在进化过程中基于适应度函数进行选择和记录 xff0
  • 解决路由器离自己电脑远的问题:电脑和Linux开发板通过网线口连接,实现电脑与虚拟机,虚拟机与电脑、开发板和虚拟机实现网络ping回复。

    第一步 xff1a 关闭防火墙 xff0c 打开网络 internet 设置 xff1b 第二步 xff1a 找到更改适配器选项 xff1b 第三步 xff1a 找到 本地连接 双击它 xff1b 第四步 xff1a 点击属性 xff1b
  • 解决ubuntu中使用make命令报错的问题

    ubuntu界面出现 xff1a make arm linux gnueabihf xff1a 命令未找到 bin sh 1 arm linux gnueabihf not found dirname 缺少操作数 Try 39 dirnam
  • ros使用usb摄像头追踪ArUco markers

    ros使用usb摄像头追踪ArUco markers 注意 xff1a 在通过ros使用usb摄像头追踪ArUco markers之前 xff0c 先进行相机的内参标定 xff0c 否则会出现以下问题 Error TF NAN INPUT
  • NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver解决办法

    NVIDIA SMI has failed because it couldn t communicate with the NVIDIA driver解决办法 参考链接1 参考链接2 参考链接3 2023 3 17更新 今天突然又出现这个
  • ur3+robotiq ft sensor+robotiq 2f 140+realsense d435i配置rviz,gazebo仿真环境

    ur3 43 robotiq ft sensor 43 robotiq 2f 140 43 realsense d435i配置rviz xff0c gazebo仿真环境 搭建环境 xff1a ubuntu 20 04 ros Nonetic

随机推荐

  • QT-信号槽中传递自定义数据类型

    Qt编程一个核心亮点就是信号槽机制 通过 QMetaObject connect const QObject sender const char signal const QObject receiver const char method
  • ubuntu20.04安装MinkowskiEngine

    ubuntu20 04安装MinkowskiEngine 安装这个库之前首先确认环境中pytorch的cudatoolkit版本是否与安装的CUDA版本一致 xff0c 确保一致 xff0c 然后开始安装 我的CUDA版本是11 6 故采用
  • 运行roscore 出现[rosout-1] process has died [pid 13103, exit code 127

    运行roscore 出现 rosout 1 process has died pid 13103 exit code 127 问题 xff1a 运行roscore后出现该报错 xff1a rosout 1 process has died
  • Zookeeper异常解决方案

    目录 一 Starting Zookeeper FAILED TO START 1 查看错误日志信息 2 总结 二 bash ZookeeperServer sh command not found异常 2 总结 一 Starting Zo
  • 用端口映射的办法使用矩池云隐藏的vnc功能

    矩池云隐藏了很多高级功能待用户去挖掘 租用机器 进入jupyterlab 设置vnc密码 span class token assign left variable VNC PASSWD span span class token oper
  • Linux apt-get autoremove千万别乱用

    使用linux下的apt get autoremove命令的心得体会 前几天在实验室搭建要做人工智能项目的环境时 xff0c 由于未解决python2 7和python3 6共存时 xff0c 只利用python2 7版本的库文件 xff0
  • 基于gazebo实现多机器人编队仿真(三)

    基于gazebo实现多机器人编队仿真 xff08 三 xff09 三角编队与一字编队的实现 前言原理简图代码实现虚拟坐标的发布跟随者消息接收 总结 前言 前文已经阐述了多机器人的编队模型实现与多辆小车跟随的实现 xff0c 本文以通过tf通
  • 天猫精灵通过AliOS网桥控制Zigbee设备

    天猫精灵对接AliOS 设备 The article is released under license CC BY NC ND 4 0 IoT Boot Camp系列课程是由TorchIoTBootCamp团队发起 xff0c 广大IoT
  • 什么是最长前缀匹配?为什么网络前缀越长,其地址块就越小,路由就越具体?

    使用 CIDR 时 xff0c 路由表中的每个项目由 网络前缀 和 下一跳地址 组成 在查找路由表时可能会得到不止一个匹配结果 应当从匹配结果中选择具有最长网络前缀的路由 xff1a 最长前缀匹配 longest prefix matchi
  • STM32 模拟串口(UART)使用

    学习目标 xff1a 由于在项目中需要用到多路的串口使用 xff0c 而自己的单片机目前来讲没法满足我们项目所需要的串口需求 xff0c 因此要对普通的GPIO进行转换为UART进行使用 从而使得我们单片机能够得到多一路的串口 学习内容 x
  • Linux(ubuntu) 基础

    本文主要讲解一些有关linux下的相关知识 xff1a 文章目录 一 shell 命令二 文件系统三 ubuntu磁盘管理操作四 Ubuntu下压缩和解压缩五 ubuntu用户和组六 ubuntu 文件权限管理七 Linux连接文件操作八
  • CentOS-7.2部署Squid服务

    一 安装Squid代理服务器 yum y install squid 1 启动Squid服务和设置开机启动 systemctl start squid systemctl enable squid 2 详解Squid服务器配置文件 默认的
  • 【Docker系列】Docker Swarm

    docker swarm 介绍 为什么不建议在生产环境中使用docker compose xff1f docker compose 单节点的问题 xff0c 多个实体机就无法适应的 多机器如何管理 xff1f 如果跨机器做scale横向扩展
  • 【mysql】远程连接服务器数据库出现 Client does not support authentication protocol requested by server的解决方法

    前言 之前已经配好了本地数据库与云服务器上的数据库的连接 xff0c 也能正常进行操作 几个月后某天打开navicat想打开此连接却弹出了个错误提示窗口 xff0c 显示Client does not support authenticat
  • Ubuntu16.04系统卡顿,刷新率低,输入有延迟

    问题 xff1a 从某次开机之后ubuntu就一直卡顿 xff0c 原本以为是cscode占用过大 xff0c 在删除部分文件后没有改善 xff0c swp也未使用 每次挂起重加载也经常出现失败的情况 在不断查找资料及更改配置文件之后 xf
  • vs code git配置及使用

    一 下载及安装git程序 浏览器中搜索git官网 xff1a https git scm com download win进行程序下载 xff0c 根据自己的系统选择不同版本 xff08 32 bit Git for Windows Set
  • 根文件系统rootfs的移植及制作镜像ramdisk.img

    根文件系统的移植 介绍 1 移植根文件系统的工具 gt busybox 1 短小精悍 2 版本更新较快 xff0c 版本之间差异不大 2 如何获取busybox 1 xff09 https busybox net downloads 选择b
  • 解决linux共享文件夹丢失的问题

    虚拟机已经设置了共享文件夹 xff0c ubuntu里 mnt hgfs 没有共享文件夹 在终端输入此命令 xff0c 即可恢复 xff08 前提必须有vmware tools安装过了 xff09 sudo vmhgfs fuse host
  • 汽车CAN总线入门,通俗易懂

    附件 xff1a 文档原件github CAN总线简介 CAN xff08 Controller Area Network xff0c 控制器局域网络 xff09 属于工业现场总线的范畴 最初CAN总线是由德国的Bosch 博世 公司为汽车
  • CAN网络管理Autosar(入门)

    一 xff0c 个人小心得 作为刚入门两个月汽车电子行业的软件工程师 xff0c 现阶段在学习汽车组合开关的测试 xff08 主要用CANoe软件 xff09 xff0c 在学习过程中总结了一些自己理解的知识点 xff0c 当然也希望得到大