↑点击上方蓝色字体,关注“嵌入式软件实战派”回复“AUTOSAR”获得更多实战教程。
(图片来源于百度百科)
Mode |
CPOL |
CPHA |
0 |
0 |
0 |
1 |
0 |
1 |
2 |
1 |
0 |
3 |
1 |
1 |
MCAL SPI的功能在AUTOSAR上可以从这个图示来理解。
另外,以下是和MCAL SPI相关的几个概念,先了解下:
Acronym: |
Description: |
DET |
Default Error Tracer – 报告错误的模块 |
DEM |
Diagnostic Event Manager – 报告与产品相关的错误的模块。 |
SPI |
Serial Peripheral Interface. |
CS |
Chip Select,即片选 |
MISO |
Master Input Slave Output,即数据从从设备输出 |
MOSI |
Master Output Slave Input,即数据从主设备输出 |
Abbreviation: |
Description: |
EB |
Externally buffered channels. 包含要传输的数据的缓冲区在SPI处理程序/驱动器之外。 |
IB |
Internally buffered channels. 包含要传输的数据的缓冲区位于SPI处理程序/驱动器内部。 |
ID |
元素的标识号 (Channel, Job, Sequence). |
Definition: |
Description: |
Channel |
Channel是使用相同标准定义的数据的软件交换介质:参数配置,具有相同大小和数据指针(源和目标)或位置的数据元素数量。 |
Job |
Job由具有相同片选的一个或多个Channel组成(在处理Job期间不会释放)。 一个Job被视为原子作业,因此不能被另一个Job打断。Job具有分配的优先级。 |
Sequence |
Sequence是要传输的多个连续Job,但是可以使用优先级机制在Job之间重新安排Sequence。 Sequence传输是可中断的(通过另一Sequence传输)或不可中断,这取决于静态配置。 |
Spi_DataBufferType |
SpiDataWidth |
uint8 |
SpiDataWidth < 9 |
uint16 |
9 =< SpiDataWidth < 17 |
uint32 |
17 =< SpiDataWidth |
SPI处理程序/驱动程序模块和使用它的模块之间存在关系。此关系在配置阶段得到解决,其结果影响这些模块之间正确的API和行为。
用户需要向SPI处理程序/驱动程序提供部分配置,以使其适应其必要性。SPI处理程序/驱动程序应采用此配置,并向用户提供所需的工具。
下图显示了在配置SPI处理程序/驱动器期间的信息流。仅以一个用户为例,以外部EEPROM驱动程序为例进行显示,但是这种情况对于SPI处理程序/驱动器的所有用户都是常见的。为了突出显示更多用户受到影响的情况,绘制了多个重叠的文档。
MCAL SPI配置