SPI总线协议2016-09-30 Summerain [url=]小白学嵌入式[/url] 【概述】 SPI(Serial Peripheral Interface)总线是主要应用于嵌入式系统内部通信的串行同步传输总线协议。通常为四线制的SPI总线支持全双工通信。SPI总线定义两个及以上设备间的数据传输,提供时钟的设备为主设备(Master),接收时钟的设备为从设备(Slave)。SPI协议特点包括主从模式、全双工通信、片选功能、模式错误标识及CPU中断、缓冲数据寄存器和可配置时钟相位极性等。SPI允许数据一位一位的传送,甚至允许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对SCK时钟线的控制可以完成对通讯的控制。 【优点和缺点】 优点
【信号定义】 SPI协议定义四根信号线,分别为:
其中MISO方向为从设备到主设备,其余三个信号均为主设备到从设备。 【电路连接】 片选信号SS通常低电平有效。SPI数据传输原理是基于主从设备内部移位寄存器的数据交换。在主设备SCK的控制下,待传数据由各自设备的数据寄存器(Data Register)传输到移位寄存器(Shift Register),再通过MOSI和MISO信号线完成主从设备间的数据交换。两个移位寄存器中的内容被交换。外设的写操作和读操作是同步完成的。按位传输,高位MSB在前,低位LSB在后。 SPI主从模式传输示意图 单个主设备和单个从设备的SPI连接比较简单,以上图的表示的就是这种拓扑结构。对于单个主设备同时控制多个不同从设备,可以通过多个片选信号(SS)或菊花链方式(Daisy Chain Configuration)。 【传输模式】 CPOL,即时钟极性Clock Polarity,决定时钟空闲时的电平为高或低。对于SPI数据传输格式没有显著影响。 CPHA,即时钟相位Clock Phase,定义SPI数据传输的两种基本模式: CPHA = 0
Notes: 1. 主机和从机的发送数据是同时完成的,两者的接收数据也是同时完成的。所以为了保证主从机正确通信,应使得它们的SPI具有相同的时钟极性和时钟相位。 2. 在主设备这边配置SPI接口时钟的时候一定要弄清楚从设备的时钟要求,因为主设备这边的时钟极性和相位都是以从设备为基准的。一般来说,从设备都会支持模式00和11(CPOL | CPHA),具体应用时应查看设备SPI的传输模式说明。 3. 如果只进行写操作,主机只需忽略接收到的字节;反之,若主机要读取从机的一个字节,就必须发送一个空字节(Dummy Byte)来引发从机的传输。当主机发送一个连续的数据流时,有些外设能够进行多字节传输。多数具有SPI接口的存储芯片就以这种方式工作。在这种传输方式下,从机的片选端必须在整个传输过程中保持低电平。此时,一次传输可能会涉及到成千上万字节的信息,而不必在每个字节的数据发送的前后都去检测其起始位和结束位,这正是同步传输方式优于异步传输方式的原因所在。虽然SPI有以上优点,然而在图像传输中却很少用到,原因主要是其抗干扰能力差 |
这样会不会有问题啊