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

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

3天内不再提示

I2C与SPI与UART:如何布局这些通用总线

要长高 来源:韬放科技 2023-11-08 17:33 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

如果您要为项目构建开发板或使用通用MCU,则会发现许多用于通信其他活动组件的协议。USB以太网之类的标准已内置在大多数控制器中,用于与计算机外围设备一起使用。尽管如此,仍使用I2C,SPI,UART等协议与下游MCU或可编程IC进行接口。I2C总线,SPI总线和UART总线之间的区别很简单,任何使用MCU的设计人员都应该知道如何为这些协议设置路由和布局。

这些协议是速度较慢的信令标准,因此,如果您使用这些协议,几乎不必担心诸如阻抗控制或传输线行为之类的问题。但是,在确保在接收器上正确读取总线信号时,必须考虑一些重要的设计要点。解决问题也很重要,但是特定的产品和您的代码可以解决这一点。现在,让我们看一下如何在您的PCB布局中使用这三种通用协议,以及一些保持信号完整性的要点。

I2C与SPI与UART之间的差异

从8位到32位的所有MCU都将至少使用这些协议中的一种以及GPIO,以实现可编程性并将信号发送到简单的外设。这三个串行协议是总线协议。I2C和UART使用寻址方案,而SPI是无地址的。尽管SPI是无地址的,但它是一种总线协议,仍可用于选择下游设备以接收数据。

I2C协议

I2C(发音为I平方的C,有时也称为集成电路间的IIC)使用两条线(标准,快速和快速加法模式)来控制其他设备;一条线是时钟线(SCL),另一条线是数据线(SDA)。它具有三种模式,下表总结了这些模式。请注意,上升/下降时间值假定在I / O上安装了典型的串联电阻

wKgZomVLVVOAR0PSAABlQHfP81M908.png

*假设VDD / VCC = 5.5V。如果VDD / VCC较低,则按线性比例缩小

**将时钟线的这些值除以2

请注意,超快速模式是唯一将通信仅用于下游写入操作的模式。此模式也很重要,因为它可以帮助我们了解何时需要匹配总线阻抗,而实际上这几乎是绝不可以匹配的。如果我们对临界线长度采取非常保守的10%限制,我们会发现这些线的临界长度为0.32 m,这比使用I2C的大多数电路板的尺寸要长得多。如果我们将拐点频率用于最短的上升/下降时间,并且将临界长度限制为10%,则得出的值会更长,为0.92 m。对于超快模式,我们应该将保守的数字设置为0.32 m。任何小于此值的I2C线都不会充当传输线,我们只需要担心端接方案。

端接的重点是选择合适的上拉电阻和串联电阻。上拉电阻器和VDD / VCC线路总线的电容形成放电和充电RC电路,当驱动器切换时,该电路为接收器提供信号。信号线和时钟线的上拉电阻值(Rp)必须遵守以下不等式:

wKgZomVLVWGAIgLsAAD0rQmmkkw998.png

总线电容是使用VCC总线阻抗的标准公式确定的,该公式使用与传输线(微带或带状线)相同的公式计算得出。然后,您可以使用线路的阻抗和传播延迟来解决总线电容。在I2C标准下,串联电阻是可选的,但可以包括在内以保护器件免受电压尖峰的影响并减慢上升/下降时间。确定与您的上拉电阻值配对的正确串联电阻值。

SPI协议

SPI协议类似于I2C。该总线上总共使用了4条线,并且可以两种可能的方式排列组件。如果使用单个控制器设备来触发单个下游设备,则拓扑就是点对点的。触发多个设备取决于驱动器提供的芯片选择输出的数量(标准模式)。第二种模式使用菊花链,其中单个设备选择输出连续触发菊花链中的每个设备。

与I2C不同,SPI中的各种信令参数都是高度可配置的。除非您运行的接口非常快,否则您可以将互连线上的信号电平近似为DC,因为它将低于传输线行为的临界长度。然后,您可以使用一个串联电阻器来终止驱动器的低阻抗输出,并确保最大的功率传输。上面显示的具有跟踪电容的RC放电方法可以控制接口的输出电流和上升/下降时间。

UART协议

通用异步收发器(UART)与I2C相似。这些接口的最大数据速率约为5 Mbps。UART设备也很容易使用,因为设备之间没有时钟发送。一切都是异步的。注意,每个UART设备的内部(系统)时钟必须以波特率的几倍运行(即,每个位被采样N次)。单个控制器设备和单个下游设备之间仅使用两条电线进行通信。

注意,UART器件的数据格式,信号电平和波特率可通过外部驱动器电路进行配置。不幸的是,这也意味着对于UART器件的布线和布局几乎没有硬性规定。遵循标准的高速设计指南,通过查看传输线行为的转变来确定何时需要终止。减少过冲的典型端接方法是串联端接。请注意,UART可能在高电平或低电平下处于空闲状态,并且可能需要上拉电阻来设置所需的空闲水平;在添加上拉电阻之前,请务必检查您的组件规格。

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

    关注

    17

    文章

    1899

    浏览量

    102106
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1562

    浏览量

    131719
  • uart
    +关注

    关注

    22

    文章

    1319

    浏览量

    106963
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    SGM4541 I2C总线过压保护器:设计与应用的详细解析

    SGM4541 I2C总线过压保护器:设计与应用的详细解析 在如今的电子设备设计中,保护电路免受过电压的损害是至关重要的。SG Micro Corp推出的SGM4541 I2C总线过压
    的头像 发表于 03-17 16:30 378次阅读

    SGM4541A:I2C总线过压保护的理想之选

    SGM4541A:I2C总线过压保护的理想之选 在电子设备的设计中,I2C总线的稳定运行至关重要。而SGM4541A作为一款低IQ I2C
    的头像 发表于 03-17 16:30 209次阅读

    I2C总线-通信线缆长度的影响及改进措施

    。 (3)如果不考虑成本,可以采用 I2C 总线 中继芯片,比如P82B715、P82B96等,这些中继芯片的基本原理是,将I2C总线接口
    发表于 01-21 06:03

    I2C 为什么只要两根线就能搞定通信?

    到目前为止,我们已经讨论了SPI通信和UART通信的基础知识,现在让我们讨论本系列的最后一个协议,即集成电路间协议(I2C)。如果您曾经构建过使用OLED显示器、气压传感器或陀螺仪/加速度计模块
    的头像 发表于 01-04 09:14 2038次阅读
    <b class='flag-5'>I2C</b> 为什么只要两根线就能搞定通信?

    P82B715:I2C总线扩展的得力助手

    )的P82B715,一款专门用于缓冲高电容I2C总线系统的器件,看看它是如何解决这些问题的。 文件下载: p82b715.pdf 1. 器件概述 P82B715是一款支持通过I²
    的头像 发表于 12-26 10:20 1504次阅读

    基于FPGA的I2C控制模块设计

    I2C_WRITE_WDATA.v模块实现I2C写时序,I2C_Controller (I2C控制器)例化了I2C_WRITE_WDATA.
    的头像 发表于 12-26 09:48 5922次阅读
    基于FPGA的<b class='flag-5'>I2C</b>控制模块设计

    I2C总线协议

    I2C 总线使用两根信号线(数据线 SDA 和时钟线 SCL)在设备间传输数据。SCL 为单向时钟线,固定由主机驱动。SDA 为双向数据线,在数据传输过程中由收发两端分时驱动。 I2C 总线
    发表于 12-15 08:07

    I2C的缺点介绍

    上升时间变慢和潜在的信号衰减。对于长距离通信,其他协议,如 UART通用异步接收器/发送器)或 SPI(串行外设接口)可能更合适。 速度限制: 虽然 I2C 支持不同的速度模式,但其
    发表于 11-27 06:10

    UARTSPII2C 实战对比:哪个更适合你的项目?

    在嵌入式开发中,设备之间的通信是绕不开的话题。常见的三种总线接口——UARTSPII2C——各有优缺点。不同项目需求决定了选择哪一种协议最合适。本文结合实战经验,逐项对比三者,并附
    的头像 发表于 11-24 19:04 1582次阅读
    <b class='flag-5'>UART</b>、<b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b> 实战对比:哪个更适合你的项目?

    SPII2CUART三种串行总线的区别与对比

    1)概念定义 SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS:意为IC之间总线) UART(Universa
    发表于 11-20 07:19

    SPII2CI2S、UART:通信协议解释

            在嵌入式开发中,最常用的几种通信接口无非就是SPII2CI2S、UART。名字看起来差不多,但应用场景和特性却大不相同。为什么都叫串行通信,结构却不一样?为什么有的
    的头像 发表于 11-18 10:53 711次阅读

    SPII2CI2S、UART:通信协议对比表

    在嵌入式开发中,最常用的几种通信接口无非就是SPII2CI2S、UART。名字看起来差不多,但应用场景和特性却大不相同。很多初学者容易混淆:为什么都叫串行通信,结构却不一样?为什么
    的头像 发表于 11-17 10:53 2102次阅读
    <b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b>、<b class='flag-5'>I2</b>S、<b class='flag-5'>UART</b>:通信协议对比表

    Diodes公司推出高性能I2C/SPI总线至双通道UART网桥PI7C9X762Q

    Diodes 公司(Diodes)(Nasdaq:DIOD)宣布推出PI7C9X762Q,这是一款符合汽车标准*的高性能 I2C/SPI 总线至双通道
    的头像 发表于 10-17 17:51 2112次阅读

    深入剖析I2C协议

    I2C是由Philips开发的简单的双向两线总线,在深入浅出理解SPI协议中,我们区分了单工,半双工,全双工协议数据流向的区别,根据特征,I2C协议属于半双工协议(即同一时刻,数据单向
    的头像 发表于 08-21 15:10 3876次阅读
    深入剖析<b class='flag-5'>I2C</b>协议

    I2C总线通信,为什么要进行电气隔离?

    I2C总线采用双向二线制,支持多主机多从机通信,具备高可靠性、抗干扰能力强,广泛应用于嵌入式系统中。
    的头像 发表于 08-11 11:04 2658次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>总线</b>通信,为什么要进行电气隔离?