SPI通信协议_spi总线和i2c总线的区别

SPI通信协议_spi总线和i2c总线的区别SPI通信协议与原理_spi通信协议

一.   SPI协议简介

SPI
全称是 Serial Perripheral Interface),也就是串行外围设备接口。是一种高速、全双工同步通信总线。

SPI 是很常用的通信接口,也可以通过 SPI 来连接众多的传感器。

SPI 以主从方式工作,通常是有一个主设备和一个或多个从设备,一般 SPI 需要 4 根线,但是也可以使用三根线(单向传输)。

SPI传输速度:SPI 接口的通信速度很快,I2C 最多 400KHz,但是 SPI 可以到达几十 MHz

二.  SPI 协议

1.  SPI的硬件通信线

本章我们讲解标准的 4 线 SPI。

SPI通信的四根线如下:

(1)  CS/SS(Slave Select/Chip Select),为片选信号线,用于选择需要进行通信的从设备。

SPI 主机不需要发送从机设备,直接将相应的从机设备片选信号拉低即可。

(2) SCK,Serial Clock
,串行时钟,

SPI
通信提供时钟。

(3)  MOSI/SDO,Master Out Slave In/Serial Data Output,简称主出从入信号线,这根数据线只能用于主机向从机发送数据,也就是主机输出,从机输入。

(4)  MISO/SDI,Master In Slave Out/Serial Data Input,简称主入从出信号线,这根数据线只能用户从机向主机发送数据,也就是主机输入,从机输出。

SPI
通信都是由主机发起的,主机需要提供通信的时钟信号。主机通过
SPI
线连接多个从设备的结构,如下图所示:

SPI通信协议_spi总线和i2c总线的区别

2.  SPI协议

注意:SPI通信协议的全双工,同步通信的理解:

SPI只有主模式和从模式之分,没有读和写的说法,外设的写操作和读操作是同步完成的。

如果只进行写操作,主机只需忽略接收到的字节;反之,若主机要读取从机的一个字节,就必须发送一个空字节来引发从机的传输。换句话理解就是,你发一个数据必然会收到一个数据;你要收一个数据必须也要先发一个数据。 

如果读从设备数据时,主机不发送一些数据,则主机接收不到数据(可能接收到的数据是 一些 0,也就是空数据)。

SPI 四种工作模式

SPI
有四种工作模式,通过串行时钟极性
(CPOL)
和相位
(CPHA)
的搭配来得到四种工作模式。两种时钟极性与两种相位如下:
(1)  CPOL=0,串行时钟空闲状态为低电平。

(2) CPOL=1,串行时钟空闲状态为高电平。

(3) CPHA=0,串行时钟的第一个跳变沿(上升沿或下降沿)采集数据。

(4) CPHA=1,串行时钟的第二个跳变沿(上升沿或下降沿)采集数据。

通过以上两个时钟极性与两个相位吗,两两组合即可以组成四种工作模式。四种工作模式如下:

SPI通信协议_spi总线和i2c总线的区别

SPI 通信时序


I2C
一样,
SPI
也是有时序图的,以
CPOL=0

CPHA=0
这个工作模式为例,
SPI
进行全双工通信时序图,如下所示:

SPI通信协议_spi总线和i2c总线的区别

从上面的时序图可以看出,SPI
的时序图很简单,不像
I2C
那样还要分为读时序和写时序,因为
SPI
是全双工的,所以读写时序可以一起完成。
CS
片选信号先拉低,选中要
通信的从设备,然后,通过
MOSI

MISO
这两根数据线进行收发数据。
MOSI
数据线发出了
0XD2
这个数据给从设备,同时从设备也通过
MISO
线给主设备返回了
0X66
这个数据。

其他三种工作模式的时序图不做具体的介绍了,与上述的类似。SPI协议简单介绍完成。

今天的文章SPI通信协议_spi总线和i2c总线的区别分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/75417.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注