详解通信协议之SPI通信

详解通信协议之SPI通信

1. SPI通信协议简介

   SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速、全双工、同步短距离通信总线,所以可以在同一时间发送和接收数据,数据传输速度可达到10M/bps,远超IIC通信总线。其优缺点如下:

优点:

  1. 无起始位和停止位,因此数据位可以连续传输而不会被中断; 没有像I2C这样复杂的从设备寻址系统; 数据传输速率比I2C更高(几乎快两倍);
  2. 分离的MISO和MOSI信号线,因此可以同时发送和接收数据; 极其灵活的数据传输,不限于8位,它可以是任意大小的字;
  3. 非常简单的硬件结构。从站不需要唯一地址(与I2C不同)。从机使用主机时钟,不需要精密时钟振荡器/晶振(与UART不同)。不需要收发器(与CAN不同)。

缺点:

  1. 使用四根信号线(I2C和UART使用两根信号线);无法确认是否已成功接收数据(I2C拥有此功能);没有任何形式的错误检查,如UART中的奇偶校验位;
  2. 只允许一个主设备; 没有硬件从机应答信号(主机可能在不知情的情况下无处发送);没有定义硬件级别的错误检查协议; 与RS-232和CAN总线相比,只能支持非常短的距离;

2. SPI硬件构成以及工作模式

   SPI通信协议共需要四根线,分别为:主出从入(MOSI)、主入从出(MISO)、时钟线(SCLK)、片选线(CS)。下面对四根及进行解释:
   MOSI(master output slave input):主设备输出数据,从设备接收数据;
   MISO(master input slave output):从设备输出数据,主设备接收数据;
   SCLK(serial clock):由主设备产生的时钟信号;
   CS(chip select):从设备的使能信号,由主设备控制。
   SPI有主、从两种模式,主机只能一个从机可以是一个也可以有多个,如下图所示。但是同一时间主机只能与一个从机通信。提供时钟的为主设备(Master),接收时钟的设备为从设备(Slave),SPI接口的读写操作,都是由主设备发起,当存在多个从设备时,通过各自的片选信号进行管理,所以每增加一个从设备就要增加一个片选线。

一主一从

一主多从

3. 通信原理以及时序

	SPI通信数据流如下图所示,主设备和从设备都有一个串行移位寄存器,主设备通过向它的SPI串行寄存器写入一个字节来发起一次传输。注意:不管是主机发送还是从机发送,都是先发送低位,再发送高位,主机需要和哪个从机通信就把那个从机的片选段拉低。

数据流图
SPI外设的写操作和读操作是同步完成的。若只进行写操作,主机只需忽略接收到的字节(乱码);反之,若主机要读取从机的一个字节,就必须发送一个空字节来引发从机的传输。也就是说,你发一个数据必然会收到一个数据;你要收一个数据必须也要先发一个数据,读写同时发生,需要什么数据则存储什么数据。

SPI的读写时序由时钟极性和时钟相位共同决定,如下图所示。
在这里插入图片描述
这写都设置好就可以使用SPI通信了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值