ADI官方文档:SPI接口简介
扫描二维码
随时随地手机看文章
接口
4线SPI器件有四个信号:- 时钟(SPI CLK, SCLK)
- 片选(CS)
- 主机输出、从机输入(MOSI)
- 主机输入、从机输出(MISO)
数据传输
要开始SPI通信,主机必须发送时钟信号,并通过使能CS信号选择从机。片选通常是低电平有效信号。因此,主机必须在该信号上发送逻辑0以选择从机。SPI是全双工接口,主机和从机可以分别通过MOSI和MISO线路同时发送数据。在SPI通信期间,数据的发送(串行移出到MOSI/SDO总线上)和接收(采样或读入总线(MISO/SDI)上的数据)同时进行。串行时钟沿同步数据的移位和采样。SPI接口允许用户灵活选择时钟的上升沿或下降沿来采样和/或移位数据。欲确定使用SPI接口传输的数据位数,请参阅器件数据手册。时钟极性和时钟相位
在SPI中,主机可以选择时钟极性和时钟相位。在空闲状态期间,CPOL位设置时钟信号的极性。空闲状态是指传输开始时CS为高电平且在向低电平转变的期间,以及传输结束时CS为低电平且在向高电平转变的期间。CPHA位选择时钟相位。根据CPHA位的状态,使用时钟上升沿或下降沿来采样和/或移位数据。主机必须根据从机的要求选择时钟极性和时钟相位。根据CPOL和CPHA位的选择,有四种SPI模式可用。表1显示了这4种SPI模式。SPI 模式 | CPOL | CPHA | 空闲状态下的时钟极性 | 用于采样和/或移位数据的时钟相应 |
---|---|---|---|---|
0 | 0 | 0 | 逻辑低电平 | 数据在上升沿采样,在下降沿移出 |
1 | 0 | 1 | 逻辑低电平 | 数据在下降沿采样,在上升沿移出 |
2 | 1 | 1 | 逻辑低电平 | 数据在下降沿采样,在上升沿移出 |
3 | 1 | 0 | 逻辑低电平 | 数据在上升沿采样,在下降沿移出 |
多从机配置
多个从机可与单个SPI主机一起使用。从机可以采用常规模式连接,或采用菊花链模式连接。常规SPI模式:
图6. 多从机SPI配置。在常规模式下,主机需要为每个从机提供单独的片选信号。一旦主机使能(拉低)片选信号,MOSI/MISO线上的时钟和数据便可用于所选的从机。如果使能多个片选信号,则MISO线上的数据会被破坏,因为主机无法识别哪个从机正在传输数据。从图6可以看出,随着从机数量的增加,来自主机的片选线的数量也增加。这会快速增加主机需要提供的输入和输出数量,并限制可以使用的从机数量。可以使用其他技术来增加常规模式下的从机数量,例如使用多路复用器产生片选信号。菊花链模式:
图7. 多从机SPI菊花链配置。在菊花链模式下,所有从机的片选信号连接在一起,数据从一个从机传播到下一个从机。在此配置中,所有从机同时接收同一SPI时钟。来自主机的数据直接送到第一个从机,该从机将数据提供给下一个从机,依此类推。使用该方法时,由于数据是从一个从机传播到下一个从机,所以传输数据所需的时钟周期数与菊花链中的从机位置成比例。例如在图7所示的8位系统中,为使第3个从机能够获得数据,需要24个时钟脉冲,而常规SPI模式下只需8个时钟脉冲。图8显示了时钟周期和通过菊花链的数据传播。并非所有SPI器件都支持菊花链模式。请参阅产品数据手册以确认菊花链是否可用。最先传输的0xA5将会被配置到最远端的SPI器件,而最后传输的0x0A将会被配置到最近的SPI器件,所有的配置数据将会在CS的下降沿进行更新。图8. 菊花链配置:数据传播。文档下载
中文版:https://www.analog.com/media/cn/analog-dialogue/volume-52/number-3/introduction-to-spi-interface_cn.pdf英文版:https://www.analog.com/media/cn/technical-documentation/application-notes/AN-1248.pdf本文作者
Piyu DhakerPiyu Dhaker是ADI公司北美核心应用部门的应用工程师。2007年毕业于圣何塞大学,获电气工程硕士学位。2017年6月加入北美核心应用部门。此前,她也在ADI公司的汽车传动系统部门和电源管理 部门工作过。更多
- 一文看懂Modbus协议
- 一文看懂I2C协议
- 一文看懂SPI协议
- 串口通讯协议及其FPGA实现
- 如何写出易于维护的Verilog代码
- FPGA能进行断点调试吗?