网站建设主要哪些内容,com域名的网站,漳州市城乡建设局网站6,金牛区建设局网站文章目录 前言一、简介1、通信模式2、总线定义3、SPI通信结构4、SPI通讯时序5、SPI数据交互过程 二、多从机模式1、多NSS2、菊花链3、SPI通信优缺点4、UART、IIC、SPI 区别 三、总结四、参考资料 前言
SPI协议是我们的重要通信协议之一#xff0c;我们需要掌握牢靠。 一、简介… 文章目录 前言一、简介1、通信模式2、总线定义3、SPI通信结构4、SPI通讯时序5、SPI数据交互过程 二、多从机模式1、多NSS2、菊花链3、SPI通信优缺点4、UART、IIC、SPI 区别 三、总结四、参考资料 前言
SPI协议是我们的重要通信协议之一我们需要掌握牢靠。 一、简介
1、通信模式
SPI是“全双工”具有单独的发送和接收线路因此可以在同一时间发送和接收数据另外SPI的接收硬件可以是一个简单的移位寄存器。这比异步串行通信所需的完整UART要简单得多并且更加便宜
2、总线定义
MISOMaster input slave output 主机输入从机输出数据来自从机
MOSIMaster output slave input 主机输出从机输入数据来自主机
SCLK Serial Clock 串行时钟信号由主机产生发送给从机
SSSlave Select 片选信号由主机发送以控制与哪个从机通信通常是低电平有效信号。
需要注意的是不同的厂家定义不同 MISO也可以是SIMODOUTDOSDO或SO在主机端; MOSI也可以是SOMIDINDISDI或SI在主机端; NSS也可以是CECS或SSEL; SCLK也可以是SCK; 3、SPI通信结构 上图为了更好的区分实际上无论是在主机传输到从机还是从机传输到主机两条线都在传输数据。传输过程主机首先会将NSS信号拉低来表示选择那个从机进行通信当接收端检测到时钟的边沿信号立即读取数据线的信号时钟信号只能由主机产生。 SSPBUFSynchronous Serial Port Buffer 泛指 SPI 设备里面的内部缓冲区 一般在物理上是以 FIFO 的形式 保存传输过程中的临时数据; SSPSRSynchronous Serial Port Register 泛指 SPI 设备里面的移位寄存器Shift Regitser 它的作用是根据设置好的数据位宽bit-width 把数据移入或者移出 SSPBUF; Controller泛指 SPI 设备里面的控制寄存器 可以通过配置它们来设置 SPI 总线的传输模式。 需要注意的是在数据传输的过程中每次接收到的数据必须在下一次数据传输之前被采样。如果之前接收到的数据没有被读取那么这些已经接收完成的数据将有可能会被丢弃导致 SPI 物理模块最终失效。
4、SPI通讯时序
时钟极性 CKP/Clock Polarity
根据芯片的级型要求决定我们的空闲状态是高电平还是低电平
CKP 0时钟空闲IDLE为低电平 0CKP 1时钟空闲IDLE为高电平1
时钟相位 CKE /Clock Phase (Edge)
除配置串行时钟速率和极性外SPI主设备还应配置时钟相位或边沿。根据硬件制造商的不同时钟相位通常写为CKE或CPHA顾名思义时钟相位/边沿也就是采集数据时是在时钟信号的具体相位或者边沿
CKE 0在时钟信号SCK的第一个跳变沿采样CKE 1在时钟信号SCK的第二个跳变沿采样 我们根据上面这两个极性与相位来确定我们的传输模式不同的模式传输的时序不同。01 10 00 11 汇总图
5、SPI数据交互过程
下面解释的数据交互过程采用00的模式进行传输 上表中时钟信号 1 代表时钟上升沿0 代表下降沿。我们采用的时 SPI 通信模式 0所以第一个时钟上升沿到来时完成数据采样主机将自己要发送的数据最高位放到 MOSI主机输出从机输入数据线上而从机也将自己要发送的数据最高位放到 MISO从机输出主机输入数据线上当第一个时钟的下降沿到来时主机的 SSPSR 把 MISO 上的数据存入 SSPBUF而从机的 SSPSR 则把 MOSI 上的数据存入自己的SSPBUF这样主机从机就完成了 1bit 数据的交互。 二、多从机模式
1、多NSS
通常每个从机都需要一条单独的SS线。如果要和特定的从机进行通讯可以将相应的NSS信号线拉低并保持其他NSS信号线的状态为高电平。
2、菊花链
定义在设备信号以串行的方式从一个设备依次传到下一个设备不断循环直到数据到达目标设备的方式称为菊花链。
由于串行传输我们需要一级一级的查找如果在更高优先级的设备发送故障那么下面优先级较低的就不会得到服务一般的解决方法是使用超时处理超过我们设定的时间直接跳过该从机(短路)。
3、SPI通信优缺点
优点:
1、全双工通信
2、高速数据传输速率
3、极其灵活的数据传输、不限于8位、可以是任意大小的字
4、非常简单的硬件结构从站不需要唯一地址、从机使用主机时钟不需要精密时钟振荡器/晶振与UART不同。不需要收发器与CAN不同。
缺点
1、没有主从机的应答信号主机可能在不知情的情况下无处发送
2、通常仅支持一个主设备
3、需要更多的引脚(与I2C不同)
4、没有定义硬件级别的错误检查协议
5、与RS-232和CAN总线相比只支持非常短的距离
4、UART、IIC、SPI 区别
1、对于信号线数目 UART为3根RX、TX、GND SPI为4根SDO、SDI、SCLK、SSIIC为2根SDA、SCLK 2、设备主从关系 UART无从属关系SPI存在主从设备通过片选信号选择从机 而IIC同样也存在主从设备不过是通过地址选择从机。 3、通信方式 UART无从属关系SPI存在主从设备通过片选信号选择从机 而IIC同样也存在主从设备不过是通过地址选择从机。 4、传输速度 UART传输速度较慢 SPI比I2C总线要快速度可达到几Mbps。 5、应用场景 UART常用于控制计算机与串行设备的芯片也就是我们经常所说的串口基本都用于调试。 SPI主要应用在EEPROMFLASH实时时钟AD转换器还有数字信号处理器和数字信号解码器之间 。 I2C一般是用在同一个板子上的2个IC之间的通信 它可以替代标准的并行总线连接各种集成电路和功能模块 6、传输距离 IIC弱于UART和SPI因为I2C需要有双向IO的支持而且使用上拉电阻(为了实现线与)抗干扰能力较弱一般用于同一板卡上芯片之间的通信较少用于远距离通信 7、通信特征 UART异步一帧可以传5/6/7/8位低位先发送。 SPI: 同步SPI允许数据一位一位的传送甚至允许暂停。从最高位开始传。 IIC:同步电平信号一次连续8bit。从最高位开始传。 8、协议复杂度 UART结构比较复杂 SPI实现要比UART简单UART需要固定的波特率也就是说两位数据的间隔要相等而SPI则无所谓因为它是有时钟的协议。 IIC协议比SPI复杂但是连线比标准的SPI要少 三、总结
稍微将SPI的资料进行了一个整理这里非常感谢下面参考的博主写的非常详细一文读懂
四、参考资料
SPI协议详解图文并茂超详细