浅析PREEvision中AUTOSAR NM开发
AUTOSAR Network Management(以下简称:AUTOSAR NM),即“AUTOSAR网络管理”,是AUTOSAR体系中的网络管理机制。在AUTOSAR NM中,按照总线协议的类型,又可以分为在CAN总线上使用的CAN NM;在FlexRay上使用的FlexRay NM;在J1939上使用的NM;以及在ETH上使用的UDP NM等等。
那我们为什么要做网络管理呢?请看下图:当前整车上有许多ECU,都连接到了蓄电池,假如我们实行一刀切政策,简单粗暴地把这些ECU全都连到15电或者30电,分别会有什么样的后果呢?
图1
很明显,如果所有ECU全都连接30电,那么ECU一直处于运行状态,很快蓄电池就亏电了;如果将ECU全都连接到15电,那么像图中的安全控制模块这类需要一直供电的模块,就没办法正常工作了。那么如何做到在满足ECU正常通信需求的情况下,又能节省蓄电池的电量呢?答案之一就是网络管理。
网络管理的目的,就是使网络中的ECU节点有序的睡眠和唤醒。当ECU在没有通信需求的时候睡眠,在需要通信的时候唤醒,用这种方法来达到节约汽车蓄电池电量的效果。
今天,小怿的任务就是给大家重点科普一下CAN以及ETH的网络管理。
1
图2 拓展的AUTOSAR通信栈(Udp NM)
图2中框出了AUTOSAR NM体系,其中各个模块又有不同的作用:
Communication Manager:又称ComM,是BSW(Basic Software)中的一个组件。它是一个封装了底层通信服务控制的资源管理器,主要用于为用户简化总线通信栈的使用,ComM模块收集来自通信请求者的总线通信访问请求,并协调总线通信访问请求,控制总线通信模式;
State Manager:控制与ComM模块请求的通信模式所对应的总线实际状态;
Network Management Interface:网络管理接口,用于支持通用的底层模块,这些模块遵循特定总线NM模块的一组固定需求;
NM Coordinator:用于协调多个网段的同睡同醒;
NM Module:网络管理模块,通过发送NM PDU来进行网络管理。
以上的这些模块共同组成了AUTOSAR NM体系,用于对不同类型的总线进行网络管理。
2
AUTOSAR NM体系中,CAN和UDP NM存在的三种主模式如下:
Bus Sleep Mode:睡眠模式,总线无通讯,ECU处于低功耗状态。该模式下NM报文只收不发,APP报文不收不发。
Network Mode:网络模式,总线有通讯。该模式下NM报文又收又发,APP报文又收又发。
Prepare Bus Sleep Mode:预睡眠模式,总线无通讯。该模式下NM报文只收不发,APP报文不收不发。
图3 CAN/UDP NM主模式跳转
在Network Mode中,又存在三种状态:
Repeat Message State重复报文状态,此时NM报文以快速周期发送。在重复报文状态中又存在两种子状态:快速发送报文状态(以一个快速周期,按照规定的快发次数发送NM报文)、正常发送报文状态(以正常发送周期发送NM报文)。
Normal Operation State正常运行状态,此时NM报文以正常周期发送。
Ready Sleep State准备睡眠状态,NM报文只收不发,APP报文可收可发。
图4 Network Mode中的状态跳转
下图为CAN NM的状态机,从图中我们可以对节点之间的状态跳转有一定的了解。
图5 节点状态以及跳转总览
3
下图为有n个Byte的NM PDU的格式:
图6 NM PDU默认格式
在CAN NM中,PDU长度为8Byte;而在UDP NM中,PDU长度可以自行定义,当然,一个NM报文的长度不能超过底层物理传输层的MTU(最大传输单元)。
Byte0:源节点ID,由基地址+ECU源地址两部分组成
Byte1:Control Bit Vector(CBV),控制比特矢量
Byte2-n:User Data,用户数据,主要用于部分网络管理和自定义功能参数
下表是控制比特矢量(CBV)的格式:
表1 控制比特矢量
Bit0:重复发送报文请求位
0:没有进入重复发送状态(Repeat Message Request)的请求;
1:有进入重复发送状态(Repeat Message Request)的请求。
Bit1:PN关闭请求位(PNSR)
0:NM报文中不含有同步的部分网络管理关闭请求;
1:NM报文中至少含有一个PNC的同步部分网络管理关闭请求。
Bit3:NM协调器睡眠位
0:主协调器没有请求启动同步休眠;
1:主协调器请求启动同步休眠。
Bit4:激活唤醒位
0:作为NM报文发送方的节点没有唤醒网络(被动唤醒);
1:由作为NM报文发送方的该节点唤醒网络(主动唤醒)。
Bit5:部分网络管理学习位(PNL)
0:没有请求PNC learning;
1:表示请求PNC learning。
Bit6:Partial Network Information Bit(PNI),部分网络管理信息位
0:NM报文中没有部分网络管理的请求信息;
1:NM报文中含有部分网络管理的请求信息。
4
PREEvision工具支持可视化的NM参数配置,目前支持CAN Nm、FlexRay Nm、UDP Nm、LIN Nm等Cluster的创建,以下举例CAN Nm Confoguration的设置。
在PREEvision中有专门用于放置Nm配置的Network Management Package,创建位置如下:
图7 创建Network Management Package的路径
在创建完文件夹后,就可以开始创建一个CAN Nm的Nm Configuration了,当前有两种方法可以创建CAN Nm Configuration:
在Network Management Package下直接创建Network Management Configuration
图8 创建Network Management Configuration
在CAN Cluster上进行refactoring
图9 Refactoring CAN Cluster
在CAN Cluster基础上refactoring的Network Management Configuration会直接展示比较完整的相关联的网络管理工件。如果手动创建也可以参考下图中网络管理工件的结构:
图10 CAN Cluster与其对应的Network Management Configuration
在CAN NM Cluster的Property页,可以配置NM所需要的一些关键属性,例如NM Timeout Time等,这些可配置的属性都是AUTOSAR NM中所定义好的。
图11 一些PREEvision中可配置的NM参数
此外,在CAN NM Node的Property页,还可以直接配置Nm节点的Node ID等重要参数。
图12 CAN NM Node的一些属性配置
PREEvision工具中还可以创建网络管理所专有的NM PDU,并配置相应的报文。可以说需要配置的参数都已经被PREEvision安排的明明白白了,是不是很方便呢?不过,在AUTOSAR NM中,除了有像NM Node这类特殊的属性需要配置外,NM PDU与普通的Signal IPDU其实并没有太大的差别,因此在这里也就不做过多的赘述了。今天的内容小怿就介绍到这里啦,我们下期见咯~