一,个人小心得

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

CAN总线的AUTOSAR网络管理相关推荐

  1. autosar can协议栈 源码解读_我用一晚上时间给女朋友讲懂CAN总线的AUTOSAR网络管理...

    前言:最近正好在学习CAN总线的AUTOSAR网络管理,前期踩了很多的坑,总结了一下最近所学和大家一起学习.学的很浅,有不正确的地方请各位前辈同仁不吝赐教~ 1.什么是AUTOSAR? 官方一点:AU ...

  2. can总线配置读入是什么意思_我用一晚上时间给女朋友讲懂CAN总线的AUTOSAR网络管理...

    前言:最近正好在学习CAN总线的AUTOSAR网络管理,前期踩了很多的坑,总结了一下最近所学和大家一起学习.学的很浅,有不正确的地方请各位前辈同仁不吝赐教- 1.什么是AUTOSAR? 官方一点:AU ...

  3. 【AUTOSAR网络管理】

    1.什么是AUTOSAR? 官方一点:AUTOSAR 就是AUTomotive Open System ARchitecture的简称,中文翻译就是汽车开放系统架构. 直白一点:将汽车电子控制单元(E ...

  4. autosar网络管理_AP AUTOSAR平台设计(11)——网络管理

    点击蓝字右上角      关注置顶不迷路 Hello!大家好!欢迎来到<搞一下汽车电子>本篇是AP AUTOSAR平台设计(11)--网络管理如果觉得不错,"转发" & ...

  5. 一文了解AUTOSAR网络管理

    在本文中,我们将讨论 NM(网络管理)接口和 CAN 总线特定的 NM 模块,它们是 AUTOSAR 分层软件架构的服务层的一部分. 1 网络管理接口: Network Management Inte ...

  6. 车载网络 - Autosar网络管理 - 基本概念

    Autosar作为当前车载行业使用最为广泛的一种汽车开发系统架构,网上也有很多相关的介绍:不过我看很多有完整的来讲一下这个规范的,一般都是只讲了其中一部分,我这就准备搞出来一套完整版本的Autosar ...

  7. 车载网络 - Autosar网络管理 - 网络管理简介

    一.什么是CAN网络管理及它的作用 现在的车辆是由大量的ECU节点组成的,为了能使各ECU能够正确并及时地进行CAN通信,需要有一套机制来统一协调总线上各节点的休眠唤醒,这套机制就是CAN网络管理(N ...

  8. AUTOSAR网络管理

    了解如何测试AutoSar网络管理之前,先要了解什么是AutoSar网络管理 AutoSar网络管理 什么是AutoSar Automotive Open System Architecture,汽车 ...

  9. AUTOSAR网络管理需求规范

    AUTOSAR网络管理需求规范 1.概述 1.1 AUTOSAR基本定义 1.2 CAN总线基本介绍 1.3 网络管理基本介绍 2.CAN协议栈 2.1 CAN协议栈定义 2.2 CAN通信发送过程 ...

最新文章

  1. ERROR: epmd error for host 192: badarg (unknown POSIX error)
  2. 从源码角度分析 Mybatis 工作原理
  3. vue中如何实现全全全屏和退出全屏?
  4. Ubuntu 14.04 为root帐号开启SSH登录
  5. MaxCompute存储力持续升级,每年节省不止一个亿
  6. wordpress模板-单栏整洁的个人博客Siren主题模板
  7. 数据挖掘-分类与预测-神经网络算法
  8. AttributeError : module ‘enum‘ has no attribute ‘IntFlag‘
  9. java解析消息头代码_javaWeb项目-文件下载的消息头和编码问题
  10. [转]一道受用终身的测试题
  11. oracle发邮件没有反应,[数据库]Oracle发邮件,权限问题
  12. JDK下Bin目录的工具介绍
  13. Linux上vi(vim)编辑器使用教程
  14. Ubuntu下载依赖包
  15. Mac的Adobe Creative Cloud无法连接至服务器解决方法
  16. 关于金融行业网络安全解决方案,您了解多少?
  17. 【懒懒】我不生产笑话,我只是笑话的搬运工 [问题点数:200分]
  18. Outlook设置新folder location后无法显示default view的解决方案
  19. 我得意地笑: 搞定了, 哈哈 如何读取Thermo Scientific Nicolet Omnic *.spa二进制格式的谱图文件中的数据
  20. Container killed by YARN for exceeding memory limits

热门文章

  1. mac selenium java_软件测试 实验02 MAC环境下Firefox配置selenium java读取xlsx文件
  2. android 破碎酷炫动画,Android特效——玻璃破碎效果
  3. sap basis 常用事务代码
  4. 统计员工年度,月度的加班和调休统计
  5. SKIL/安装/MySQL
  6. python-opencv录制视频
  7. Channel基本介绍
  8. CODESYS在智能生产线中的应用案例:食品饮料行业——一体式模块化灌装机原创
  9. 5G NR的子载波间隔、帧、子帧、时隙、符号的总结
  10. EVE 居然是用 python 写的!!太不可思议了