更新时间:2024-06-20 02:34:59下载pdf
本文主要介绍了 SPI 接口通信设计时的相关事项。
SPI 通信是一种全双工通信,它的最大特点是具有同步时钟,带有片选功能,数据传输速率可达几 Mb/s,比 I2C 快,但没有应答机制,一般是在时钟上升沿主机采样数据,时钟下降沿从机提供新数据。
SPI 采用主从模式(Master Slave)架构,支持多 slave 模式应用,一般仅支持单 Master。时钟由 Master 控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后(MSB first),总线结构如下图所示。
SPI 接口共有 4 根信号线,分别是:
使用时需要注意以下几点:
在 SPI 操作中,有两项比较重要的设置,就是时钟极性(CPOL 或 UCCKPL)和时钟相位(CPHA 或 UCCKPH)。时钟极性设置时钟空闲时的电平,时钟相位设置读取数据和发送数据的时钟沿。
SPI 模式 | CPOL | CPHA | 空闲状态下的时钟极性 | 用于采样和移位数据的时钟相位 |
---|---|---|---|---|
0 | 0 | 0 | 逻辑低电平 | 数据在上升沿采样,在下降沿移出 |
1 | 0 | 1 | 逻辑低电平 | 数据在下降沿采样,在上升沿移出 |
2 | 1 | 1 | 逻辑高电平 | 数据在下降沿采样,在上升沿移出 |
3 | 1 | 0 | 逻辑高电平 | 数据在上升沿采样,在下降沿移出 |
4 根信号线可串联 10~50 欧姆的小电阻,可以适当增加信号线阻抗,满足终端阻抗匹配,以抑制信号终端反射。
当只有一个 slave 设备,且 I/O 口资源紧张的条件下,可直接将 CS 引脚拉低。这样可以节省出一个 I/O 口,下拉电阻阻值可选择 10K 左右。
在常规模式下,主机需要为每个从机提供单独的片选信号。一旦主机使能(拉低)片选信号,MOSI/MISO 线上的时钟和数据便可用于所选的从机。如果使能多个片选信号,则 MISO 线上的数据会被破坏,因为主机无法识别哪个从机正在传输数据。
随着从机数量的增加,来自主机的片选线的数量也增加。这会快速增加主机需要提供的输入和输出数量,并限制可以使用的从机数量。可以使用其他技术来增加常规模式下的从机数量,例如使用多路复用器产生片选信号。
在菊花链模式下,所有从机的片选信号连接在一起,数据从一个从机传播到下一个从机。在此配置中,所有从机同时接收同一 SPI 时钟。来自主机的数据直接送到第一个从机,该从机将数据提供给下一个从机,依此类推。
使用该方法时,由于数据是从一个从机传播到下一个从机,所以传输数据所需的时钟周期数与菊花链中的从机位置成比例。例如为使第 3 个从机能够获得数据,需要 24 个时钟脉冲,而常规 SPI 模式下只需 8 个时钟脉冲。
并非所有 SPI 器件都支持菊花链模式,请参阅产品数据手册以确认菊花链是否可用。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈