SPI

来源:互联网 发布:arcgis java 开发手册 编辑:程序博客网 时间:2024/06/13 22:08

对SPI协议的掌握,重点有下面几点:
1、SPI是同步串行通信的理解
2、SPI的4线全双工通信理解。4线分别是:

  • (1)SDI – 主设备数据输入,从设备数据输出;
  • (2)SDO – 主设备数据输出,从设备数据输入;
  • (3)SCLK – 时钟信号,由主设备产生;
  • (4)CS – 从设备使能信号,由主设备控制。

另外还有种表示SDI和SDO的:
M:代表主机;S代表从设备;O代表输出;I代表输入
- MOSI:表示主机输出接从设备输入
- MISO:表示主机输入接从设备输出

3、SPI的3线半双工通信:
- (1)SDIO – 主从设备数据输出输入共用;
- (2)SCLK – 时钟信号,由主设备产生;
- (3)CS – 从设备使能信号,由主设备控制。

4、SPI主从关系,一个主设备可以有一个或多个从设备,根据硬件支持情况,主从可以动态互换。

5、SPI时序理解

  • (1)CPOL(时钟极性)表示时钟信号(SCLK)空闲极性

    • CPOL = 0 表示时钟信号空闲为低电平。
    • CPOL = 1 表示时钟信号空闲为高电平。
  • (2)CPHA(时钟相位)表示时钟前沿后沿与采集数据输出数据关系

    • CPHA = 0 表示时钟前沿采集数据,时钟后沿输出数据。
    • CPHA = 1 表示时钟前沿输出数据,时钟后沿采集数据。
      个人理解,时钟前沿,是指时钟信号从空闲到开始传输数据时的第一个边沿(CPOL=0是上升,CPOL=1是下降),第二个边缘就是时钟后沿,然后就是周期性的,前后,前后。。。
      如下图:
      这里写图片描述

CPOL和CPHA有4种组合,对应4种时序。具体根据从设备来配置这两个值。4种时序(先传输高位后传输低位),如下图:
这里写图片描述

其中红色小圈,标注的地方,都是数据输出的地方。
图3,CPHA = 0 第一位数据(绿色标注的AC),要先放到数据线上,然后才开始第一个边沿(因为第一个边沿就是采集数据)。然后第二个边沿是输出数据(绿色标注的BD)
图4,CPHA = 1 第一位数据(绿色标注的EG),是在第一个边沿到来后放到数据线上的(因为,第一个边沿是输出数据),然后第二个边沿采集数据,再然后输出数据到数据线上(绿色标注的FH)。

6、SPI速率
全双工通信,传输速率可达几Mbps水平。具体看应用场合了,如用在flash,lcd的就是比较高的速率。
各种通信速率可以参考博客:
各类总线传输速率

7、SPI应用
SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。

SPI参考资料:
SPI
SPI接口

0 0
原创粉丝点击