1?概述
????????SPI(serial peripheral interface):串行外设接口是一种高速全双工(同时收发数据)同步串行通信总线,由1个主设备和n个从设备组成。
????????1.1?特点
????????????????1.1.1 采用主从模式(Master-Slave)的控制方式
????????????????????????两个SPI设备间通信必须由主设备(master)控制从设备(slave),主从设备间由4根信号线进行通信,如下:
????????????????????????SCK(Serial Clock)?:时钟信号,Master 设备产生并控制数据交换的时机以及速率;
? ? ? ? ????????????????SS/CS(Slave Select/Chip Select)?:从设备使能信号,用于 Master 设备片选 Slave 设备, 使被选中的 Slave 设备能够被 Master 设备所访问;
? ? ? ? ????????????????SDO/MOSI(Serial Data Output/Master Out Slave In):?在 Master 上面也被称为 Tx-Channel, 作为数据的出口, 主要用于 SPI 设备发送数据;
? ? ? ? ????????????????SDI/MISO(Serial Data Input/Master In Slave Out):在 Master 上面也被称为 Rx-Channel, 作为数据的入口, 主要用于SPI 设备接收数据。
? ? ? ? ? ? ? ? 1.1.2 采用同步方式(Synchronous)传输数据
? ? ? ? ? ? ? ? ? ? ? ? SPI总线一共有4种传输模式,由下面2个参数定义,时序图如下:
????????????????????????CPOL(clock polarity): 时钟极性,表示 SPI 在空闲时, 时钟信号是高电平1还是低电平0;?
????????????????????????CPHA(clock phase):时钟相位,表示 SPI 设备是在 SCK 管脚上的时钟信号的第1个变化沿(CPHA=0)触发数据采样, 还是在第二个变化沿时(CPHA=1)触发数据采样。
? ? ? ? ? ? ? ? ?1.1.3 数据交换(data exchange)
????????????????????????SPI 协议规定一个 SPI 设备不能在数据通信过程中仅仅只充当一个 "发送者(Transmitter)" 或者 "接收者(Receiver)"。在每个 Clock 周期内, SPI 设备都会发送并接收一个 bit 大小的数据, 相当于该设备有一个 bit 大小的数据被交换了。
2 缺点
? ? ? ? ? ? ? ? 没有指定的流控制,没有应答机制确认是否接收到数据。
|