">

AUTOSAR_SWS_CANDriver 中文翻译

文档编号:080 | 状态:Final | 发布于:AUTOSAR CP Release 4.4.0
所属标准:AUTOSAR Classic Platform | 文档责任方:AUTOSAR

本翻译覆盖原文档 1-100 页正文。原文为软件规范(SWS),定义 CAN Driver(Can)模块的 API、配置、错误处理——位于 MCAL 层。R4.4 引入 Multicore Distribution + Header File Cleanup。


1 引言与范围

CAN Driver(Can)位于 MCAL 层,初始化并控制 CAN CC(Communication Controller)。支持 CAN 2.0(ISO 11898-1)、CAN FD(ISO 11898-1:2015)、CAN XL(ISO 11898-1:2024)。提供帧收发、波特率设置、BusOff 恢复、硬件环回等服务。

2 缩略语

Can / CAN / CAN FD / CAN XL / CC / TTCAN / ISO 11898-1 / ISO 11898-1:2015 / DLC / IDE / RTR / BRS / ESI / L-PDU / HOH / MB(Mailbox)

3 相关文档

[1] AUTOSAR SWS CAN Interface
[2] AUTOSAR SWS CAN Transceiver Driver
[3] AUTOSAR SRS CAN
[4] ISO 11898-1 / ISO 11898-1:2015 / ISO 11898-1:2024

4 约束与假设

Can 应:

5 依赖其他模块

Can 依赖:Dem(错误上报)/ MCU(时钟配置)/ Port(引脚复用)/ CanTrcv(收发器)。

6 功能规格

6.1 架构

Can Driver 位于 MCAL 层,对下控制 CC 寄存器,对上为 CanIf 提供抽象。

7 API 服务

7.1 初始化 / 关闭

void Can_Init(const Can_ConfigType* Config):初始化 CAN 驱动。
void Can_DeInit(void):去初始化。

7.2 控制器模式

Can_ReturnType Can_SetControllerMode(uint8 Controller, Can_StateTransitionType Transition):设置控制器状态转换(CAN_T_START / CAN_T_STOP / CAN_T_SLEEP / CAN_T_WAKEUP)。
Can_ReturnType Can_GetControllerMode(uint8 Controller, Can_ControllerStateType* ControllerModePtr):获取模式。

7.3 帧传输 / 接收

Can_ReturnType Can_Write(uint8 Hth, const Can_PduType* PduInfo):写入 PDU 到 HOH(Hardware Object Handle)。
void Can_MainFunction_Read(void):读取轮询。
void Can_MainFunction_BusOff(void):BusOff 轮询。
void Can_MainFunction_Wakeup(void):唤醒轮询。
void Can_MainFunction_Mode(void):模式轮询。

7.4 触发传输

Can_ReturnType Can_TriggerTransmit(uint8 Controller, Can_PduType* PduInfoPtr):触发传输(用于动态长度)。

7.5 错误状态

Can_ReturnType Can_GetControllerErrorState(uint8 Controller, Can_ErrorStateType* ErrorStatePtr):获取错误状态(CAN_ERRORSTATE_ACTIVE / CAN_ERRORSTATE_PASSIVE / CAN_ERRORSTATE_BUSOFF)。

7.6 版本信息

void Can_GetVersionInfo(Std_VersionInfoType* versioninfo):获取版本信息。

8 配置

Can 配置类:

9 错误处理

9.1 开发错误

CAN_E_UNINIT:模块未初始化。
CAN_E_PARAM_POINTER:参数指针为空。
CAN_E_PARAM:参数无效。
CAN_E_INV_CTRL_IDX:控制器索引无效。
CAN_E_INV_HOH:HOH 索引无效。

9.2 运行时错误

CAN_E_BUSY:模块忙。

9.3 扩展生产错误(上报 DEM)

CAN_E_TIMEOUT:发送超时。
CAN_E_BUSOFF:BusOff 事件。


校对记录

校对轮次:L1 自动校对(2026-06-13)