CAN Transceiver Driver(CanTrcv)位于 MCAL 层,控制 CAN 物理层收发器。提供 NORMAL / STANDBY / SLEEP 状态切换、唤醒检测与通知、CAN FD 支持等服务。
CanTrcv / CAN / CAN FD / CAN XL / NORMAL / STANDBY / SLEEP / Wakeup / ISO 11898-2 / SPI
[1] AUTOSAR SWS CAN Interface
[2] AUTOSAR SRS CAN
[3] ISO 11898-2
CanTrcv 应:
CanTrcv 依赖:Dem(错误上报)/ Port(引脚复用)/ CanIf(接口)/ Spi(部分收发器通过 SPI 通信)。
CanTrcv 位于 MCAL 层,对下控制 CAN 收发器(SPI 或并行),对上为 CanIf 提供抽象。
void CanTrcv_Init(const CanTrcv_ConfigType* ConfigPtr):初始化。
void CanTrcv_DeInit(void):去初始化。
Std_ReturnType CanTrcv_SetOpMode(uint8 Transceiver, CanTrcv_TrcvModeType OpMode):设置运行模式(CANTRCV_TRCV_MODE_NORMAL / CANTRCV_TRCV_MODE_STANDBY / CANTRCV_TRCV_MODE_SLEEP)。
Std_ReturnType CanTrcv_GetOpMode(uint8 Transceiver, CanTrcv_TrcvModeType* OpModePtr):获取模式。
Std_ReturnType CanTrcv_GetBusWuReason(uint8 Transceiver, CanTrcv_WakeupReasonType* ReasonPtr):获取唤醒原因。
Std_ReturnType CanTrcv_SetWakeupMode(uint8 Transceiver, CanTrcv_WakeupModeType Mode):设置唤醒模式。
Std_ReturnType CanTrcv_GetBusErrState(uint8 Transceiver, CanTrcv_BusErrStateType* ErrorStatePtr):获取总线错误状态(CANTRCV_BUSERR_NORMAL / CANTRCV_BUSERR_DTC)。
CanTrcv 配置类:
CANTRCV_E_UNINIT:模块未初始化。
CANTRCV_E_PARAM_POINTER:参数指针为空。
CANTRCV_E_PARAM:参数无效。
CANTRCV_E_BUSY:模块忙。
校对轮次:L1 自动校对(2026-06-13)