SPI Handler/Driver(Spi)提供对 SPI 总线的访问抽象,支持同步(轮询)/ 异步(中断/DMA)传输。位于 MCAL 层,对外服务于 Eep(EEPROM)/ Wdg(看门狗)等需要外设通信的 BSW 模块。
Spi / SPI / MOSI / MISO / SCLK / CS / DMA / IRQ / Channel / Job / Sequence / HW Unit / LSB / MSB / Clock / Polarity / Phase / Eep / Wdg
[1] AUTOSAR SWS BSW General
[2] AUTOSAR SRS SPI Handler/Driver
Spi 应:
Spi 依赖:MCU(时钟配置)/ Port(引脚复用)/ DMA(异步传输)/ Dem(错误上报)。
核心概念:
void Spi_Init(const Spi_ConfigType* ConfigPtr):初始化。
Std_ReturnType Spi_DeInit(void):去初始化。
Std_ReturnType Spi_WriteIB(Spi_ChannelType Channel, const Spi_DataType* DataBufferPtr):同步写 IB(Internal Buffer)。
Std_ReturnType Spi_ReadIB(Spi_ChannelType Channel, Spi_DataType* DataBufferPtr):同步读 IB。
Std_ReturnType Spi_Transmit(Spi_SequenceType Sequence):异步启动 Sequence 传输(轮询/中断/DMA)。
Spi_StatusType Spi_GetStatus(void):获取 Spi 整体状态(SPI_UNINIT / SPI_IDLE / SPI_BUSY)。
Spi_SeqResultType Spi_GetSequenceResult(Spi_SequenceType Sequence):获取 Sequence 结果(SPI_SEQ_OK / SPI_SEQ_PENDING / SPI_SEQ_FAILED / SPI_SEQ_CANCELED)。
Spi_JobResultType Spi_GetJobResult(Spi_JobType Job):获取 Job 结果。
Spi_StatusType Spi_GetHWUnitStatus(Spi_HWUnitType HWUnit):获取 HW Unit 状态。
Std_ReturnType Spi_Cancel(Spi_SequenceType Sequence):取消 Sequence。
Std_ReturnType Spi_SetAsyncMode(Spi_AsyncModeType Mode):设置异步模式(POLLING / INTERRUPT / DMA)。
Std_ReturnType Spi_SetHWUnitDelay(Spi_HWUnitType HWUnit, uint16 Delay):设置 HW Unit 延迟。
void Spi_JobEndNotification(Spi_JobType Job):Job 结束通知。
void Spi_SeqEndNotification(Spi_SequenceType Sequence):Sequence 结束通知。
Spi 配置类:
SPI_E_UNINIT:模块未初始化。
SPI_E_PARAM_POINTER:参数指针为空。
SPI_E_PARAM:参数无效。
SPI_E_ALREADY_INITIALIZED:重复初始化。
SPI_E_BUSY:模块忙。
SPI_E_HW_ERROR:硬件错误(溢出、超时)。
校对轮次:L1 自动校对(2026-06-13)