OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8770|回复: 5

SPI通信协议

[复制链接]

9

主题

12

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2018-10-19
在线时间
4 小时
发表于 2018-12-5 09:29:24 | 显示全部楼层 |阅读模式
SPI通信协议
一 SPI协议概述
SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚。SPI以主从方式工作模式被广泛应用于电路系统中,本文作者结合自己的项目情况对SPI协议进行解析,并通过LOTO虚拟示波器采集到的数据波形并进行对比分析,方便大家的理解。
SPI通信协议一般只需要四根线将主控芯片与从芯片连接起来,其中四根线分别为:
(1)SDO    – 主设备数据输出,从设备数据输入
(2)SDI     – 主设备数据输入,从设备数据输出
(3)SCLK  – 时钟信号,由主设备产生
(4)CS       – 从设备使能信号,由主设备控制
其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上连接多个SPI设备成为可能。
实际应用中只需要三根线来进行通信。在SPI是串行通讯协议下,数据是一位一位的传输的。这就是SCLK时钟线存在的原因,由SCLK提供时钟脉冲,SDO则基于此脉冲完成数据传输。数据输出通过 SDO线在时钟上升沿或下降沿时改变,完成一位数据传输。输入也使用同样原理。在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据(一个字节数据)的传输。下面是项目中所涉及的SPI通信协议的时序图为16位数据。采用LOTO的OSC802采集到的对应波形如下图所示。 QQ图片20181204163545.png
QQ图片20181204163606.png
QQ图片20181204163637.png
要注意的是,SCLK信号线只由主设备控制,从设备不能控制信号线。同样,在一个基于SPI的设备中,至少有一个主控设备。这样传输的特点:与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停。当没有时钟跳变时,从设备不采集或传送数据。主设备通过对SCLK时钟线的控制可以完成对通讯的控制。因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。不同的SPI设备的实现方式有所不同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义。
SPI接口不需要进行寻址操作,且为全双工通信,简单高效。硬件上比I2C系统要稍微复杂一些。由于SPI没有指定的流控制,没有应答机制确认是否接收到数据。
二 SPI协议举例
            在自己的项目中只用到数据输出模式,因此SPI可串行3线方式进行通信:一条时钟线SCLK,一条输出控制线CS,一条数据输出线SDO;
SPI 模块为了和外设进行数据交换,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果 CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI主模块和与之通信的外设备时钟相位和极性应该一致。 QQ图片20181204163702.png QQ图片20181204163714.png
QQ图片20181204163730.png QQ图片20181204163745.png QQ图片20181204164735.png QQ图片20181204164813.png
三 SPI协议心得
主设备配置SPI接口时钟的时要弄清楚从设备的时钟要求,因为主设备的时钟极性和相位都是以从设备为基准的。因此在时钟极性的配置上一定要搞清楚从设备是在时钟的上升沿还是下降沿接收数据,是在时钟的下降沿还是上升沿输出数据。



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

633

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1331
金钱
1331
注册时间
2016-8-1
在线时间
229 小时
发表于 2018-12-5 10:27:33 | 显示全部楼层
回复 支持 反对

使用道具 举报

4

主题

10

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2019-2-26
在线时间
8 小时
发表于 2019-4-16 16:45:18 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2019-5-20
在线时间
2 小时
发表于 2019-5-20 11:45:05 | 显示全部楼层
多谢总结
回复 支持 反对

使用道具 举报

0

主题

143

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2019-5-30
在线时间
4 小时
发表于 2019-6-14 14:36:57 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

0

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
148
金钱
148
注册时间
2018-12-5
在线时间
39 小时
发表于 2019-9-28 00:05:49 | 显示全部楼层
请问总线波形研究采用的是什么软件?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-1 04:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表