SPI(Serial Peripheral Interface,串行外围设备接口)总线和I2C类似,也是串行的主-从接口,继承于很多微处理器内部。和I2C使用2线相比,它使用4线:
SCLK(Serial CLocK,串行时钟)
CS(Chip Select,片选)
MOSI(Master Out Slave In, 主设备输出从设备输入)
MISO(Master In Slave Out,主设备输入从设备输出)
和I2C不同,由于SPI总线有专用的数据线用于数据的发送和接收,因此可以工作于全双工,SPI的经典速度为几兆赫兹,比I2C的吞吐量大得多。
SPI主要的数据结构:
数据结构 | 位置 | 描述 |
---|---|---|
spi_driver | kernel-4.9/include/linux/spi/spi.h | 代表一个SPI驱动程序 |
spi_device | kernel-4.9/include/linux/spi/spi.h | 代表一个SPI设备 |
spi_transfer | kernel-4.9/include/linux/spi/spi.h | SPI传输缓冲区的详细内容 |
spi_message | kernel-4.9/include/linux/spi/spi.h | spi_transfer分段序列 |