文章目录
- 一 简介
- 二 特点
- 三 接口
- 四 时钟极性和时钟相位
- 五 优缺点
一 简介
SPI (Serial Perripheral Interface),是由 Motorola 公司推出的一种高速、全双工的总线协议。SPI 采用主从方式工作,一般由 SCLK、CS、MOSI、MISO 四根线组成,主机与从机可以同时传输数据。
二 特点
SPI 规定设备之间通信必须由主设备控制次设备,主机需要提供通信的时钟信号。一个 Master 设备可以通过提供 Clock 以及对 Slave 设备进行片选(Slave Select)来控制多个 Slave 设备。SPI 协议规定 Slave 设备的 clock 由 Master 设备通过 SCLK 引脚提供,Slave 设备本身不同产生或控制 Clock。
三 接口
4线 SPI 器件有四个信号:
- 时钟(SPI CLK,SCLK)
- 片选(CS)
- 主机输出、从机输入(MOSI)
- 主机输入、从机输出(MISO)
产生时钟信号的器件称为主机。主机与从机之间传输的数据与主机产生的时钟同步。SPI 接口只能有一个主机,但可以有一个或多个从机。
来自主机的片选信号用于选择从机。这通常是一个低电平有效信号,拉高时从机与 SPI 总线断开连接。当使用多个从机时,主机需要为每个从机提供单独的片选信号。
MOSI 与 MISO 是数据线。MOSI 将数据从主机发送到从机,MISO 将数据从从机发送到主机。
四 时钟极性和时钟相位
时钟极性:空闲状态期间,CPOL 位设置时钟信号的极性。空闲状态是指传输开始时 CS 为高电平向低电平转变期间,以及传输结束时,CS 为低电平向高电平转变期间。
时钟相位:根据 CPHA 位的状态,时钟上升沿或下降沿采样/移位数据。
主机必须根据从机的要求选择时钟极性和时钟相位。根据 CPOL 和 CPHA 的选择,有四种 SPI 模式
SPI 模式 | CPOL | CPHA | 空闲状态下的时钟极性 | 采样和移位数据的时钟相位 |
---|---|---|---|---|
0 | 0 | 0 | 逻辑低电平 | 数据在上升沿采样,在下降沿移出 |
1 | 0 | 1 | 逻辑低电平 | 数据在下降沿采样,在上升沿移出 |
2 | 1 | 1 | 逻辑高电平 | 数据在下降沿采样,在上升沿移出 |
3 | 1 | 0 | 逻辑高电平 | 数据在上升沿采样,在下降沿移出 |
五 优缺点
优点:
-
无起始位与停止位,数据线上传输的全都是有效 bit
-
使用简单,没有复杂的设备寻址协议
-
全双工通信,数据传输速率高
-
两根数据线 MOSI 与 MISO,全双工通信,可以同时发送和接收数据
缺点:
- 占用 4 根信号线
- 没有应答机制以确认是否收到数据
- 没有任何形式的错误检查机制(uart 有奇偶校验)