0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

根据时钟极性和时钟相位的不同,SPI有四个工作模式

Q4MP_gh_c472c21 来源:未知 作者:龚婷 2018-03-20 11:43 次阅读

串行外围设备接口(Serial Peripheral Interface,SPI)是由 Motorola 公司开发的,用来在微控制器和外围设备芯片之间提供一个低成本、易使用的接口(SPI 有时候也被称为4线接口)。这种接口可以用来连接存储器、AD/DA转换器实时时钟日历、LCD驱动器传感器音频芯片,甚至其他处理器。目前支持 SPI 的元件很多,并且还在不断增加。

这里需要提一下,由于专利在电子行业是很关键的,因此部分厂商可能会将 SPI 通讯协议更名以规避高昂的专利费,但其硬件处理方式是一样的,只是换了一个名称而已(或者在协议上做了一些修改),例如 TI 的 SSI(Synchronous Serial Interface)通讯协议。与标准的串行端口不同,SPI 是一个同步协议接口,所有的传输都参照一个共同的时钟,这个同步时钟信号由主机(处理器)产生。接收数据的设备(从设备)使用时钟对串行比特流的接收进行同步化。可能会有许多芯片连到主机的同一个 SPI 接口上,这是主机通过触发从设备的芯片的片选输入引脚来选择接收数据的从设备,没有被选中的外设将不会参与 SPI 传输。SPI 主要使用4个信号:主机输出/从机输入(MOSI)、主机输入/从机输出(MISO)、串行时钟(SCLK或SCK)和外设片选(nCS)。有些处理器有 SPI 接口专用的片选,称为从机选择(nSS)。MOSI 信号由主机产生,从机接收。在有些芯片上,MOSI 只被简单地标为串行输入(SI),或者串行数据输入(SDI)。MISO 信号由从机产生,不过还是在主机的控制下产生的。在一些芯片上,MISO 有时被称为串行输出(SO),或者串行数据输出(SDO)。外设片选信号通常只是由主机的备用 I/O 引脚产生。SPI 接口在内部硬件实际上是两个简单的移位寄存器,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,为全双工通信,数据传输速度总体来说比 I2C 总线要快,速度可达到 Mbps 级别。

根据时钟极性和时钟相位的不同,SPI 有四个工作模式。时钟极性有高、低两极:

1、时钟低电平时,空闲时时钟(SCK)处于低电平,传输时跳转到高电平;2、时钟极性为高电平时,空闲时时钟处于高电平,传输时跳转到低电平。

时钟相位有两个:相位0 和 相位1。对于时钟相位0,如果时钟极性是低电平,MOSI 和 MISO 输出在时钟(SCK)的上升沿有效(如图1所示)。

图1. 时钟极性为低电平且时钟相位0时的SPI时序图

如果时钟极性为高电平,对于时钟相位0,这些输出在 SCK 的下降沿有效(如图2所示)。

图2. 时钟极性为高电平且时钟相位0时的SPI时序图

对于时钟相位1,情况则相反。此时如果时钟极性是低电平,MOSI 和 MISO 输出在时钟(SCK)的下降沿有效(如图3所示)。

图3. 时钟极性为低电平且时钟相位1时的SPI时序图

如果时钟极性是高电平,这些输出在 SCK 的上升沿有效(如图4所示)。

图4. 时钟极性为高电平且时钟相位1时的SPI时序图

工程中一般会用 CPOL 代表时钟极性,用 CPHA 代表时钟相位,在 S5PV210 的 datasheet 中,我们可以看到相应的 SPI 接口配置寄存器(如图5所示)。

图5. S5PV210的SPI配置寄存器CH_CFGn

也就是由两个位(CPOL 和 CPHA)共同决定 SPI 的工作模式,所以有 2 * 2 = 4 种工作模式。其中,时钟极性(CPOL)决定的是时钟空闲时电平的高低状态(0:空闲时低电平,1:空闲时高电平);时钟相位(CPHA)决定的是数据在时钟的上升沿或下降沿锁存/采样(0:第一个边沿开始,1:第二个边沿开始)。

最后,SPI 接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动器
    +关注

    关注

    52

    文章

    8150

    浏览量

    145962
  • 寄存器
    +关注

    关注

    31

    文章

    5310

    浏览量

    119983
  • 时钟
    +关注

    关注

    10

    文章

    1720

    浏览量

    131349
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1700

    浏览量

    91301

原文标题:浅谈串行外围设备接口(Serial Peripheral Interface)SPI总线

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问LMK05318BEVM如何实现输入和输出时钟相位同步?

    相位也尽快调整,与输入时钟相位对齐。我们尝试了好多配置,都无法实现。除了配置wizard的内容之外,是否还需要其他配置?advance的内容如何配置?是否要选择ZDM功能?能帮我们提供一适合的配置吗?
    发表于 11-11 08:25

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-spi编程示例之spi硬件原理

    Slave设备。 接口 SPI的通信原理很简单,它以主从方式工作,这种模式通常有一主设备和一或多个从设备,需要至少4根线,事实上3根也可
    发表于 11-06 09:17

    飞凌嵌入式ElfBoard ELF 1板卡-spi编程示例之spi硬件原理

    Slave设备。 接口 SPI的通信原理很简单,它以主从方式工作,这种模式通常有一主设备和一或多个从设备,需要至少4根线,事实上3根也可
    发表于 11-05 08:44

    SPI协议解析

    必须是工作在同一模式下,所以我们可以对我们的主设备的SPI模式进行配置,通过CPOL(时钟极性
    发表于 09-30 15:08

    时钟抖动与相位噪声的关系

    时钟抖动和相位噪声是数字系统和通信系统中两至关重要的概念,它们之间存在着紧密而复杂的关系。以下是对时钟抖动和相位噪声关系的详细探讨,旨在全
    的头像 发表于 08-19 18:01 564次阅读

    探索SPI单线传输模式时钟线与数据传输的简化

    探索SPI单线传输模式时钟线与数据传输的简化之道 在当今的嵌入式系统和微控制器通信中,串行外设接口(SPI)因其高速、全双工和同步的特点而广受欢迎。然而,随着设备尺寸和复杂性的不断减
    的头像 发表于 05-28 18:26 1084次阅读

    超详细的SPI原理和通信模式

    SPI分为主、从两种模式,一SPI通讯系统需要包含一(且只能是一)主设备,一
    发表于 02-29 12:33 4151次阅读
    超详细的<b class='flag-5'>SPI</b>原理和通信<b class='flag-5'>模式</b>

    四个单片机能共用一晶振时钟频率来工作吗?

    四个单片机能共用一晶振时钟频率来工作吗? 四个单片机共用一晶振
    的头像 发表于 01-31 11:31 1567次阅读

    四个引脚无源晶振的接线方法

    无源晶振是一种常用的被动元件,用于产生稳定的时钟信号。它通常有四个引脚,分别是VCC、GND、OUT和NC。
    的头像 发表于 01-23 18:15 6148次阅读

    示波器测量之抖动的四个维度

    示波器测量之抖动的四个维度  抖动是指信号的随机波动或变动,通常用于描述信号的不稳定性或扰动。在示波器测量中,抖动是一重要的指标,用于评估测量结果的准确性和稳定性。抖动可以从四个维度进行评估和分析
    的头像 发表于 01-19 15:01 792次阅读

    如何根据SPI最大时钟18MHz计算AD7980能工作的最大采样率是多少?

    您好: 我现在使用的一微处理器的SPI最大时钟18MHz,如果用一AD7980工作在CS模式
    发表于 12-21 06:29

    请问FPGA PLL产生的时钟信号和AD9779A的数据时钟信号的相位关系?

    打出,请问FPGA PLL产生的时钟信号和AD9779A的数据时钟信号的相位关系? (2) AD9779A使用双端口模式,请问FPGA发送数据的时候,只要把AD9779A的TXENA
    发表于 12-20 07:12

    关于AD7779 DOUT模式下的时钟问题

    您好,我利用NXP K10芯片(M4内核)硬件SPI 从机模式与AD7779 主机模式进行通讯读取AD7779 DOUT模式下第0,1两
    发表于 12-07 06:30

    请问2AD9576之间怎么实现同步来保证16AD输出时钟相位都同步?

    的0-8输出时钟之间可以实现相位同步,那2AD9576之间怎么实现同步来保证16AD输出时钟相位都同步?
    发表于 12-05 08:16

    AD7606 SPI通信的时钟极性时钟相位要求是什么?

    AD7606的关于SPI通信的时钟极性时钟相位要求是什么? 我的主控芯片采用SPIAD760
    发表于 12-01 06:56