SPI总线

1、概述       

 串行外设接口 (SPI) 总线是一个工作在全双工模式下的同步串行数据链路。它可用于在单个主控制器和一个或多个从设备之间交换数据。其简单的实施方案只使用四条支持数据与控制的信号线如下图

        SPI也有三线制的,实现半双工通讯,将MOSIMISO合并;

         虽然引脚名称来自摩托罗拉开发的 SPI 标准,但具体集成电路的 SPI 端口名称往往与1图中所示的不同。

         SPI 数据速率一般在 1 70MHz 的范围内,字长为从 8 位及 12 位到这两个值的倍数。

2、 协议

         数据传输一般由数据交换构成。在主控制器向从设备发送数据时,从设备也向主控制器发送数据。因此主控制器的内部移位寄存器和从设备都采用环形设置。

        在数据交换之前,主控制器和从设备会将存储器数据加载至它们的内部移位寄存器。收到时钟信号后,主控制器先通过 MOSI 线路时钟输出其移位寄存器的 MSB。同时从设备会读取位于 SIMO 的主控器第一位元,将其存储在存储器中,然后通过 SOMI 时钟输出其 MSB。主控制器可读取位于 MISO 的从设备第一位元,并将其存储在存储器中,以便后续处理。整个过程将一直持续到所有位元完成交换,而主控器则可让时钟空闲并通过 /SS 禁用从设备。

        除设置时钟频率外,主控制器还可根据数据配置时钟极性和相位。这两个分别称为 OPOL CPHA 的选项可实现时钟信号 180 度的相移以及半个时钟周期的数据延迟。下图是相应的时序图。

      CPOL = 0 时,时钟空闲在逻辑 0 位置上:

  1. 如果 CPHA = 0,数据在 SCK 的上升沿读取,在下降沿变化。
  2. 如果 CPHA = 1,数据在 SCK 的下降沿读取,在上升沿变化。

      CPOL = 1 时,时钟在逻辑为高时空闲:

  1. 如果 CPHA = 0,数据在 SCK 的下降沿读取,在上升沿变化。
  2. 如果 CPHA = 1,数据在 SCK 的上升沿读取,在下降沿变化。

 3、拓扑图

         在 SPI 中,主控制器可与单个或多个从设备通信。如果是一个单从设备,从设备选择信号可连接至从设备的本地接地电位,实现永久接入。对使用多个从设备的应用,可使用两种配置:独立从设备与菊花链从设备

        要与从设备单独通信,主控制器必须提供多重从设备选择信号。该配置通常用于必须单独访问多个模数转换器 (ADC) 及数模转换器 (DAC) 的数据采集系统中。

        菊花链从设备只需要主控制器提供一个从设备选择信号,因为这种配置要求所有从设备同时启用,以确保数据不间断地流经该链路中的所有移位寄存器。典型应用是工业 I/O 模块中的级联多通道输入串行器与输出驱动器。

4、SPI的优缺点

      优点

  1. 传输速度高,SPI并未限定最高速度;
  2. 全双工,但是有的芯片为三线SPI,不支持全双工;
  3. 相对SPI而言,SPI简单一些,编程容易,控制简单;
  4. 信号为单向,方便隔离;
  5. 没有复杂的仲裁机制;

     缺点

  1. 没有寻址机制,单独控制时需要增加片选;
  2. 无法支持很多从设备,而且系统中只能有一个主设备;
  3. 无法长距离通讯;

5、对比I2C总线

        I2C基础架构简单(两线SDA/SCL),支持寻址,但是相对复杂,性能上有所欠缺;

        SPI有更高的数据传输性能和自由度,为扩展提供了很大的灵活性;

        由于两者的特性,所以失眠上芯片多数对两种接口都支持,比如EEPROMADCDACRTCMCUSENSORLCD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值