详解AUTOSAR:Sbc_Tcan114x系统模式、选择性唤醒与SPI访问机制(拓展篇—18)

发布时间:2026/8/18 12:11:03
详解AUTOSAR:Sbc_Tcan114x系统模式、选择性唤醒与SPI访问机制(拓展篇—18)
一次Sbc_30_Tcan114x_SetMode()返回E_NOT_OK后,驱动仍报告旧的软件模式,底层 TCAN114x 却可能已经停在无法确定的硬件状态;一次 CAN 事件读取还可能顺带读出其他外设的事件,但不会把它们通过当前接口返回;写入 Partial Networking 配置成功,也不只是“寄存器写完”,还包含回读校验、清除SBC_CAN_EV_SYSERR和启用选择性唤醒。这些行为说明,Sbc 的难点不是 SPI 收发本身,而是如何维护“请求状态、软件缓存、硬件真实状态”之间的可验证关系。Sbc_30_Tcan114x 面向 TCAN1144-Q1、TCAN1145-Q1 和 TCAN1146-Q1,把 System Basis Chip 的系统模式、CAN Transceiver、Watchdog 及寄存器访问封装成上层可使用的接口。它支持 AUTOSAR Classic 4、Pre-Compile 与 Post-Build Selectable 配置,SBC_VENDOR_ID为 30,SBC_MODULE_ID为 255。模块没有周期性 MainFunction,所有公开服务均按同步调用完成,因此一次 SPI 同步传输的时间、临界区占用和失败结果都会直接落在调用链上。理解这类驱动时,需要始终区分三种信息:驱动内部保存的系统或外设模式、通过 SPI 回读的硬件状态,以及尚未清除的硬件事件与内部缓存事件。正常路径上三者相互吻合;通信失败时,驱动刻意保留旧软件模式以避免把未确认的切换当成成功,但硬件实际模式被定义为未知。恢复动作不能靠再次读取旧变量推断,而必须调用