简单介绍下,CAN控制器模块处于MCAL,为控制抽象层,这部分主要配置can外设的时钟、波特率、过滤器和邮箱,因芯片的不同,可能会增加一些新的配置项。需要解释下,什么是邮箱,邮箱就是一片报文缓存空间,存放指定接收报文或者发送报文。在接收报文,还可以配置滤波器,筛选出指定的范围的报文(网管报文)。
应用层发送一帧报文流程,先经过COM,再到PDUR路由到CANIF,接着到CAN控制器,最后到收发器。
相关CAN模块有Can、CanIf、CanNm、CanSM、CanTp、CanTrcv。
在AUTOSAR(汽车开放系统架构)中,CAN(Controller Area Network)模块以及相关的模块之间有着密切的关系,这些模块包括CANIF(CAN Interface)、CANNM(CAN Network Management)、CANTP(CAN Transport Protocol)、CANSM(CAN State Manager)和CANTRCV(CAN Transceiver)。
CANIF(CAN Interface):
CANIF负责提供一个抽象的接口,允许上层模块与CAN模块进行通信,而不需要了解CAN硬件的细节。
CANIF与CAN Driver之间建立了接口,使得上层应用程序可以通过CANIF向CAN Driver发送CAN消息或接收CAN消息。
CANNM(CAN Network Management):
CANNM模块负责管理CAN网络的状态和通信过程。
CANNM与CANIF和CANSM之间建立了接口,以便与上层应用程序和状态管理器进行通信,监控网络状态并执行网络管理任务,如节点的启动和关闭。
CANTP(CAN Transport Protocol):
CANTP是负责处理大数据量的CAN消息传输的模块,如诊断信息或长数据。(15765)
CANTP与CANIF之间建立了接口,使得上层应用程序可以通过CANIF与CANTP进行通信,从而传输大量数据。
CANSM(CAN State Manager):
CANSM负责管理CAN模块的状态,并根据系统需求对其进行控制。
CANSM与CANNM之间建立了接口,以便在网络状态发生变化时通知CAN Network Management模块,并根据情况进行状态的切换和管理。
CANSM的主要状态包括:
- BusOff(总线关闭):CAN总线不可用状态,可能由于错误太多导致控制器被关闭。
- StartUp(启动):CAN控制器正在启动过程中,进行初始化和配置。
- Waiting For ComMode(等待通信模式):CANSM正在等待系统进入特定的通信模式,例如Normal通信模式。
- Normal(正常):CAN总线处于正常通信状态,可以进行数据传输和接收。
- Prepare For Sleep(准备进入休眠):CANSM正在准备将CAN总线进入休眠状态,通常是在车辆熄火或进入节能模式时。
- No Communication Mode(无通信模式):CANSM处于一种不进行CAN通信的特定模式,例如在诊断模式或安全模式下。
- Restart(重启):CAN控制器正在重新启动过程中,可能是由于异常情况导致系统需要重新初始化。
CANTRCV(CAN Transceiver):
CANTRCV负责与CAN总线上的物理层进行通信,包括收发数据、错误检测等。
CANTRCV与CAN Driver之间建立了接口,以便CAN Driver与CAN Transceiver进行通信,并对CAN总线上的物理层进行控制。