SPI协议 gaunthan Posted on May 28 2016 ? Communication Protocol for Micorcomputer ? ? Embedded Development ? ## 简述 **SPI**(Serial Peripheral Interface,串行外设接口)是一种高速的,全双工,同步的通信总线,在芯片的管脚上只占用四根线。 ## 通信原理 SPI以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时): |线路|定义| |----|----| |MISO|主设备数据输入,从设备数据输出| |MOSI|主设备数据输出,从设备数据输入| |SCLK|时钟信号,由主设备产生| |CS| 从设备使能信号,由主设备控制| ## 工作方式 SPI总线有四种工作方式(SP0, SP1, SP2, SP3),其中使用的最为广泛的是SPI0和SPI3方式。SPI模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果 CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。 SPI主模块和与之通信的外设音时钟相位和极性应该一致。[查看原文](http://blog.csdn.net/ce123/article/details/6895408)  ## 特点 1. SCLK信号线只由主设备控制,从设备不能控制信号线。同样,在一个基于SPI的设备中,至少有一个主控设备。 这样的传输方式有一个优点,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送, 甚至允许暂停,因为SCLK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对SCLK时钟线的控制可以完成对通讯的控制。 2. SPI还是一个数据交换协议:因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。 3. 缺点:没有指定的流控制,没有应答机制确认是否接收到数据。 赏 Wechat Pay Alipay AL422B FIFO芯片 SCCB协议