Autosar-ComM浅谈
一、ComM概述
ComM全称是Communication Manager,顾名思义就是通信的管理,是BSW(基本软件)服务层的一个组件。
ComM的作用:
为用户简化Communication Stack的使用,包含一个简单的网络管理
搜集通讯请求者对于通讯访问的请求,协调总线访问请求
提供API去禁止信号发送,以免ECU唤醒总线
在每一个总线通道实现一个状态管理从而控制一个或多个通讯总线通道>
二、和其他模块的依赖关系
每个模块和ComM的主要交互功能如下:
RTE:每个用户都可以请求通信模式。RTE传播用户向通信模块发出请求,并将来自ComM的通知告诉APP。
EcuM:负责验证唤醒事件,然后发送指示到ComM,ComM切换到COM模式。ECU通讯的允许和关闭是由EcuM和BswM一起完成。
BswM:配置Com相关的Action和Rules,从而控制相关的通信,同时通信状态的改变也会报告给BswM,在EcuM Flex下,BswM也会将Com允许通信的功能告诉ComM。
NvM:负责处理与ComM相关的Nv Data操作。
xxxSM:包括了具体的通信媒介的状态管理,如CanSM、LINSM、EthSM、FrSM等,控制实际的总线状态,ComM请求xxxSM进行相关的状态转换,并传递到总线上。
NM:同步整个Ecu总线的开关。DCM:执行和诊断相关的ComM请求。
Com:通过Com信号区分PNC的状态信息。
DET:用于在开发中追溯ComM开发相关的错误。
三、ComM通道状态机
ComM通道状态机包含三种:
①COMM_NO_COMMUNICATION
②COMM_SILENT_COMMUNICATION
③COMM_FULL_COMMUNICATION
ComM channel state machine
每一个ComM通道默认的状态是COMM_NO_COMMUNICATION
ComM模式与通讯能力关系表
Communication Mode | Message Transmission | Message Reception | NM(COMM_NM_VARIANT=FULL) | Wake-up/Restart capability |
---|---|---|---|---|
COMM_NO_COMMUNICATION | On | On | Bus Communication requested | N/A |
COMM_SILENT_COMMUNICATION | Off | On | Bus Communication released | User/diagnostic request;Network indication |
COMM_FULL_COMMUNICATION | Off | Off | Bus Communication released | User/diagnostic request;Passive wake-up |
四、ComM中的PNC
ComM主要是对通信协议栈进行服务控制的模块,在通信网络中和通信控制密切相关的功能主要会结合网络管理进行控制和使用,ComM模块对网络管理中每一个PNC(partial network cluster)实现了一个状态控制,能够请求和释放一个PNC的网络通信进行通信的控制。
在CAN和FR通信模式下,ComM的User会根据需要在主动唤醒模式下将NM报文中的UserData中对应的Bit设置为1,如果不请求特定的PNC,那么将该Bit设置为0,同时xxxNM模块会将对应的Bit通过COM中信号传递到ComM模块。每个PNC的状态切换如下所示: