SPI协议
物理层
信号线
SCK(Serial Clock):时钟线
MOSI(Master Output, Slave Input ):主设备输出,从设备输入
MISO(Master Input,, Slave Output):主设备输入,从设备输出
SSN(Slave Select ,N表示第N个设备):设备选择,每个设备单独使用这一条线
协议层
(起始/停止)信号
SSN=高->低=>起始信号
SSN=低->高=>停止信号
通信模式
SPI 使用 MOSI 及 MISO 信号线来传输数据,使用 SCK 信号线进行数据同步。 MOSI 及 MISO 数
据线在 SCK 的每个时钟周期传输一位数据,且数据输入输出是同时进行的。数据传输时, MSB
先行或 LSB 先行并没有作硬性规定,但要保证两个 SPI 通讯设备之间使用同样的协定,一般都
会采用图 SPI 通讯时序 中的 MSB 先行模式。
观察图中的标号处, MOSI 及 MISO 的数据在 SCK 的上升沿期间变化输出,在 SCK 的下降沿时
被采样。即在 SCK 的下降沿时刻, MOSI 及 MISO 的数据有效,高电平时表示数据“1”,为低电
平时表示数据“0”。在其它时刻,数据无效, MOSI 及 MISO 为下一次表示数据做准备。
SPI 每次数据传输可以 8 位或 16 位为单位,每次传输的单位数不受限制。
CPOL/CPHA 及通讯模式
根据不同的SPI模式,空闲时SCK时钟和采样时刻都不一样,具体由从设备指定。