CAN Interface(CanIf)作为 CAN 协议栈的 ECU 抽象层,位于 Can(驱动)/ CanTrcv(收发器)之上与 PduR(PDU Router)/ CanTp(传输层)/ CanNm / CanSm 之下。提供 PDU 路由、滤波、BusOff 协调、唤醒通知、动态 DLC 等服务。
CanIf / CAN / CAN FD / CAN XL / PDU / HOH / HTH / HRH / CanTp / CanNm / CanSm / BusOff / PduR / L-PDU / I-PDU
[1] AUTOSAR SWS PduR
[2] AUTOSAR SWS CAN Driver
[3] AUTOSAR SWS CAN Transceiver Driver
[4] AUTOSAR SWS CAN State Manager
[5] AUTOSAR SWS CAN Network Management
[6] AUTOSAR SWS CAN Transport Layer
[7] AUTOSAR SRS CAN
CanIf 应:
CanIf 依赖:Can(驱动)/ CanTrcv(收发器)/ PduR(PDU 路由)/ CanTp / CanNm / CanSm / Dem(错误上报)。
CanIf 位于 CAN 协议栈中,是 CAN 协议栈最重要的 ECU 抽象层。
void CanIf_Init(const CanIf_ConfigType* ConfigPtr):初始化。
Std_ReturnType CanIf_DeInit(void):去初始化。
Std_ReturnType CanIf_SetControllerMode(uint8 Controller, CanIf_ControllerModeType ControllerMode):设置控制器模式(CANIF_CS_UNINIT / CANIF_CS_SLEEP / CANIF_CS_STARTED / CANIF_CS_STOPPED)。
Std_ReturnType CanIf_GetControllerMode(uint8 Controller, CanIf_ControllerModeType* ControllerModePtr):获取模式。
Std_ReturnType CanIf_SetTrcvMode(uint8 Transceiver, CanTrcv_TrcvModeType TransceiverMode):设置收发器模式。
Std_ReturnType CanIf_GetTrcvMode(uint8 Transceiver, CanTrcv_TrcvModeType* TransceiverModePtr):获取收发器模式。
Std_ReturnType CanIf_Transmit(PduIdType CanIfTxPduId, const PduInfoType* PduInfoPtr):发送 PDU。
Std_ReturnType CanIf_TransmitPdu(CANIF_VIRTUAL_CAN_PDU_MAP / CanIfTxPduCanIdType CanId, PduInfoType* PduInfoPtr):通过 CAN ID 发送 PDU。
Std_ReturnType CanIf_TriggerTransmit(PduIdType TxPduId, PduInfoType* PduInfoPtr):触发传输(用于动态长度)。
Std_ReturnType CanIf_CancelTransmit(PduIdType TxPduId):取消传输。
Std_ReturnType CanIf_SetDynamicTxId(PduIdType CanIfTxPduId, Can_IdType CanId):设置动态 CAN ID。
Std_ReturnType CanIf_SetRxFilter(uint8 Controller, CanIf_RxFilterType* FilterParamsPtr):设置接收滤波。
Std_ReturnType CanIf_GetTxConfirmationState(uint8 Controller):获取发送确认状态。
CanIf_NotifStatusType CanIf_GetStatus(void):获取 CanIf 状态(CANIF_NO_NOTIFICATION / CANIF_TX_RX_NOTIFICATION)。
void CanIf_TxConfirmation(PduIdType CanTxPduId, Std_ReturnType Result):发送确认。
void CanIf_RxIndication(const Can_HwType* Mailbox, const PduInfoType* PduInfoPtr):接收指示。
void CanIf_ControllerBusOff(uint8 Controller):BusOff 指示。
void CanIf_SetWakeupEvent(uint8 Controller, CanIf_TrcvWakeupModeType WakeupMode):唤醒事件通知。
void CanIf_MainFunction_Read(void):读取处理。
void CanIf_MainFunction_BusOff(void):BusOff 处理。
void CanIf_MainFunction_Wakeup(void):唤醒处理。
void CanIf_MainFunction_Mode(void):模式处理。
CanIf 配置类:
CANIF_E_UNINIT:模块未初始化。
CANIF_E_PARAM_POINTER:参数指针为空。
CANIF_E_PARAM:参数无效。
CANIF_E_INV_CTRL_IDX:控制器索引无效。
CANIF_E_INV_HOH:HOH 索引无效。
CANIF_E_BUSY:模块忙。
校对轮次:L1 自动校对(2026-06-13)