搜索
查看: 539|回复: 11

ADI读书活动第八十八期:SPI接口简介

  [复制链接]

27

主题

43

帖子

497

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
497
发表于 2019-3-13 13:02:20 | 显示全部楼层 |阅读模式
串行外设接口(SPI)是微控制器和外围IC(如传感器、ADC、DAC、移位寄存器、SRAM等)之间使用最广泛的接口之一。本文先简要说明SPI接口,然后介绍ADI公司支持SPI的模拟开关与多路转换器,以及它们如何帮助减少系统电路板设计中的数字GPIO数量。

SPI是一种同步、全双工、主从式接口。来自主机或从机的数据在时钟上升沿或下降沿同步。主机和从机可以同时传输数据。SPI接口可以是3线式或4线式。本文重点介绍常用的4线SPI接口。

接口
1.png
图1. 含主机和从机的SPI配置。

4线SPI器件有四个信号:
  • 时钟(SPI CLK, SCLK)
  • 片选(CS)
  • 主机输出、从机输入(MOSI)
  • 主机输入、从机输出(MISO)


产生时钟信号的器件称为主机。主机和从机之间传输的数据与主机产生的时钟同步。同I2C接口相比,SPI器件支持更高的时钟频率。用户应查阅产品数据手册以了解SPI接口的时钟频率规格。

SPI接口只能有一个主机,但可以有一个或多个从机。图1显示了主机和从机之间的SPI连接。

来自主机的片选信号用于选择从机。这通常是一个低电平有效信号,拉高时从机与SPI总线断开连接。当使用多个从机时,主机需要为每个从机提供单独的片选信号。本文中的片选信号始终是低电平有效信号。

MOSI和MISO是数据线。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模式。

表1. 通过CPOL和CPHA选择SPI模式
2.png

图2至图5显示了四种SPI模式下的通信示例。在这些示例中,数据显示在MOSI和MISO线上。传输的开始和结束用绿色虚线表示,采样边沿用橙色虚线表示,移位边沿用蓝色虚线表示。请注意,这些图形仅供参考。要成功进行SPI通信,用户须参阅产品数据手册并确保满足器件的时序规格。

3.png

图2. SPI模式0,CPOL = 0,CPHA = 0:CLK空闲状态 = 低电平,数据在上升沿采样,并在下降沿移出。


图3给出了SPI模式1的时序图。在此模式下,时钟极性为0,表示时钟信号的空闲状态为低电平。此模式下的时钟相位为1,表示数据在下降沿采样(由橙色虚线显示),并且数据在时钟信号的上升沿移出(由蓝色虚线显示)。

4.png

图3. SPI模式1,CPOL = 0,CPHA = 1:CLK空闲状态 = 低电平,数据在下降沿采样,并在上升沿移出。


图4给出了SPI模式2的时序图。在此模式下,时钟极性为1,表示时钟信号的空闲状态为高电平。此模式下的时钟相位为1,表示数据在下降沿采样(由橙色虚线显示),并且数据在时钟信号的上升沿移出(由蓝色虚线显示)。

5.png

图4. SPI模式2,CPOL = 1,CPHA = 1:CLK空闲状态 = 高电平,数据在下降沿采样,并在上升沿移出。


图5给出了SPI模式3的时序图。在此模式下,时钟极性为1,表示时钟信号的空闲状态为高电平。此模式下的时钟相位为0,表示数据在上升沿采样(由橙色虚线显示),并且数据在时钟信号的下降沿移出(由蓝色虚线显示)。

6.png

图5. SPI模式3,CPOL = 1,CPHA = 0:CLK空闲状态 = 高电平,数据在上升沿采样,并在下降沿移出。



多从机配置
多个从机可与单个SPI主机一起使用。从机可以采用常规模式连接,或采用菊花链模式连接。

常规SPI模式:
7.png

图6. 多从机SPI配置。


在常规模式下,主机需要为每个从机提供单独的片选信号。一旦主机使能(拉低)片选信号,MOSI/MISO线上的时钟和数据便可用于所选的从机。如果使能多个片选信号,则MISO线上的数据会被破坏,因为主机无法识别哪个从机正在传输数据。

从图6可以看出,随着从机数量的增加,来自主机的片选线的数量也增加。这会快速增加主机需要提供的输入和输出数量,并限制可以使用的从机数量。可以使用其他技术来增加常规模式下的从机数量,例如使用多路复用器产生片选信号。

菊花链模式:
8.png

图7. 多从机SPI菊花链配置。


在菊花链模式下,所有从机的片选信号连接在一起,数据从一个从机传播到下一个从机。在此配置中,所有从机同时接收同一SPI时钟。来自主机的数据直接送到第一个从机,该从机将数据提供给下一个从机,依此类推。

使用该方法时,由于数据是从一个从机传播到下一个从机,所以传输数据所需的时钟周期数与菊花链中的从机位置成比例。例如在图7所示的8位系统中,为使第3个从机能够获得数据,需要24个时钟脉冲,而常规SPI模式下只需8个时钟脉冲。图8显示了时钟周期和通过菊花链的数据传播。并非所有SPI器件都支持菊花链模式。请参阅产品数据手册以确认菊花链是否可用。

9.png

图8. 菊花链配置:数据传播。


了解更多请观看原文:SPI接口简介


Q&A:
1、4线SPI器件的四个信号是什么
2、简述4种SPI模式
3、简述ADG1412的工作原理和控制信号图

时间:3月13日——4月03日
奖励:将从答对问题的网友中抽取3位获得20元京东券(都回答对的取前三个网友)

附上期获奖网友名单

行色匆匆、feixiang20、wujianwei3980-5

请以上3位尽快联系管理员,qq:1170894008,注明读书月活动获奖。领奖截止时间:4-5


回复

使用道具 举报

0

主题

451

帖子

5264

积分

论坛元老

Rank: 8Rank: 8

积分
5264
发表于 2019-3-14 01:31:08 | 显示全部楼层
此帖仅作者可见

使用道具 举报

0

主题

14

帖子

235

积分

中级会员

Rank: 3Rank: 3

积分
235
发表于 2019-3-15 09:57:17 | 显示全部楼层
此帖仅作者可见

使用道具 举报

0

主题

130

帖子

2110

积分

金牌会员

Rank: 6Rank: 6

积分
2110
发表于 2019-3-17 09:02:20 | 显示全部楼层
此帖仅作者可见

使用道具 举报

15

主题

410

帖子

2809

积分

金牌会员

Rank: 6Rank: 6

积分
2809
发表于 2019-3-19 10:19:19 | 显示全部楼层
此帖仅作者可见

使用道具 举报

0

主题

45

帖子

452

积分

中级会员

Rank: 3Rank: 3

积分
452
发表于 2019-3-19 22:48:51 | 显示全部楼层
此帖仅作者可见

使用道具 举报

23

主题

683

帖子

2102

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2102
发表于 2019-3-29 13:30:52 | 显示全部楼层
此帖仅作者可见

使用道具 举报

0

主题

7

帖子

52

积分

注册会员

Rank: 2

积分
52
发表于 2019-4-2 18:39:31 | 显示全部楼层
此帖仅作者可见

使用道具 举报

27

主题

43

帖子

497

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
497
 楼主| 发表于 2019-4-2 18:45:37 | 显示全部楼层
此帖仅作者可见

使用道具 举报

0

主题

3

帖子

40

积分

新手上路

Rank: 1

积分
40
发表于 2019-4-2 19:04:44 | 显示全部楼层
此帖仅作者可见

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|EEFOCUS

GMT+8, 2019-7-24 02:45 , Processed in 0.087734 second(s), 8 queries , MemCache On.

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表