UART、I2C、USB、SPI、CAN、Jtag、PCI/PCIE协议汇总

到目前为止,I2C、SPI 和 UART 等仍然是电子嵌入式设备中最常用的通信协议,本文,我们将剖析这三种协议,让大家清楚、直观的了解它们的功能、优点和局限性,并辅以 GIF 动图展示

I2C 协议

图片

I2C是一种串行通信协议,通常用于连接低速设备,如传感器、存储器和其他外设。它使用两根线(SCL和SDA)来实现双向通信,具有地址定向性和主从模式。

优点:

  • 多设备支持:I2C支持多个设备连接到同一总线上,每个设备都有唯一的地址。

  • 简单:I2C协议相对简单,易于实现和调试。

  • 低功耗:在空闲状态时,I2C总线上的器件可以进入低功耗模式,节省能量。

图片

缺点:

  • 速度较慢:I2C通信速度较低,适用于低速设备。

  • 受限制:I2C的总线长度和设备数量受到限制,过长的总线可能导致通信问题。

  • 冲突:当多个设备尝试同时发送数据时,可能会发生冲突,需要额外的冲突检测和处理机制。

应用案例:

就其应用而言,连接方面,I2C在需要简单且经济的通信环境中表现出色。它尤其擅长在小型传感器、LCD 屏幕和 RTC(实时时钟)模块中使用。此外,I2C 由于其在紧凑电路中的效率,在温度控制设备、电池管理系统和 LED 控制器中很有用。但是,在需要快速或长距离数据传输的项目中,最好选择其他协议。

读写等详细的通信过程可参考下文:

老宇哥带你玩转 ESP32:07 I2C协议,看这一篇就够了 (点击阅读)

SPI 协议

图片

SPI(串行外设接口)以其高速度而著称,使其成为快速通信的首选。与 I2C 不同,SPI 使用四线工作:MISO(主输入从输出)、MOSI(主输出从输入)、SCK(串行时钟)和 SS(从选择),允许全双工通信(发送和同时接收)。尽管简单且速度快,但 SPI 比 I2C 需要更多的引脚,这可能是电路设计中需要考虑的一个因素。

优点:

  • 高速:SPI通信速度较快,适用于对速度要求较高的应用。

  • 全双工:SPI支持全双工通信,可以同时进行数据发送和接收。

  • 简单:SPI的通信协议相对简单,适用于快速开发和实现。

图片

缺点:

  • 连线复杂:SPI需要多根线进行连接,可能会增加硬件设计的复杂性。

  • 长距离传输受限:SPI的传输距离受到限制,过长的线路可能导致信号衰减和干扰。

  • 主从模式限制:SPI通常采用主从模式,主设备数量受限,不适用于多主设备场景。

应用案例:

SPI 非常适合需要快速可靠的数据传输的情况,例如 TFT 显示器、SD 存储卡和无线通信模块。然而,在具有许多从站的复杂系统中,其有效性会降低。

UART 协议

图片

UART(通用异步接收器/发送器)是一种串行通信协议,因其多功能性和简单性而被广泛使用。与 I2C 和 SPI 不同,UART 只需要两条线即可运行:TX(发送)和 RX(接收)。该协议允许异步通信,也就是说发送器和接收器之间无需共享时钟。数据被组织成数据包,每个数据包包含一个起始位、5 到 9 个数据位、一个可选的奇偶校验位和一个或两个停止位。

图片

优点:

  • 简单:UART通信协议相对简单,易于实现和调试

  • 适用性广泛:UART被广泛应用于各种设备之间的通信,具有较好的兼容性。

  • 距离:UART通信距离较远,适用于需要长距离传输的场景。

缺点:

  • 速度较低:UART通信速度相对较低,不适用于对速度要求较高的应用。

  • 双工:UART通信是双工的,可以进行低速双工传输数据,进行数据的发送和接收。

  • 不可靠:由于UART是异步通信,可能会受到噪声和干扰的影响,导致数据传输不可靠。

应用案例:

  • 微控制器和外设之间的连接:用于简单直接的数据交换。

  • GPS 模块和与计算机的串行接口:用于可靠、低复杂性的通信。

  • 工业机器:UART 通常用于工业设备中以实现稳定的通信。

  • 使用 RS 标准(例如 RS-232、RS-485):这些标准支持更长距离的 UART 通信,并提供使用适当的收发器创建多从属网络的可能性,从而增加 UART 应用的灵活性和广度。

为我们的项目选择合适的协议:

  • 通信速度:SPI 提供高速度,UART 提供高灵活性,I2C 适用于速度要求较低接线简单的配置。

  • 电路设计:I2C 可实现多个设备的高效空间管理,SPI 可实现大型设计中的性能,而 UART 可实现简单性和多功能性。

  • 距离和通信环境:UART 在长距离上具有稳定性,而 I2C 更适合短距离。

  • 双工要求:SPI 和 UART 提供全双工功能,而 I2C 仅限于半双工。

结论

I2C因其简单性和用最少的引脚管理多个从设备的能力而脱颖而出,使其成为短距离配置的理想选择。

SPI具有高速和全双工模式,非常适合在空间不是主要问题的系统中进行快速高效的数据传输。

UART功能强大且功能强大,在长距离通信和速度要求较低的配置中表现出色。

图片

参考链接:逼真动画展示I2C、SPI、UART的通信过程 (qq.com)

接口总线对比表

对比表

在这里插入图片描述

同步方式与异步方式的主要区别在于:

是否传输时钟信号。
只要是通訊前雙方需要設定相同波特率的,都是異步傳輸方式。
异步传输(Asynchronous Transmission): 每次异步传输的信息都以一个起始位开头,它通知接收方数据已经到达了,这就给了接收方响应、接收和缓存数据比特的时间;在传输结束时,一个停止位表示该次传输信息的终止。每8个比特要多传送两个比特,总的传输负载就增加25%。因此,异步传输常用于低速设备。

同步传输(Synchronous Transmission):同步传输不是独立地发送每个字符,不是每个字符都有自己的开始位和停止位,而是把它们组合起来一起发送。我们将这些组合称为数据帧,或简称为帧。

一、UART

名称:Universal Asynchronous Receiver Transmitter,通用异步收发器。
特点:UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。
接口:
RS232:传输速率一般不超过20Kbps,速率低,抗干扰能力差,RS-232C能传输的最大距离不超过15m(50英尺)。
RS422:定义了一种平衡通信接口,将传输速率提高到10Mbps,传输距离延长到4000英尺(速率低于100Kbps时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。
RS485:增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。最高传输速率10Mbps,抗干扰能力强,可以传距离1.5km。
小结:

RS232:20Kbps | 15m | 全双工 | 1(-3 ~ -15) | 0(+3 ~ +15) | 共模传输 | 3线 | 异步串行
RS422:10Mbps | 1200m | 全双工 | 1(+2 ~ +6) | 0(-2 ~ -6) | 差分传输 | 5线 | 异步串行
RS485:10Mbps | 1200m | 半双工 | 1(+2 ~ +6) | 0(-2 ~ -6) | 差分传输 | 3线 | 异步串行
二、IIC

名称:Inter-Integrated Circuit,字面上的意思是集成电路之间,它其实是I²C Bus简称,所以中文应该叫集成电路总线。
特点:双向、二线制、同步串行总线。I2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。
速率:标准模式(100 kbps)、快速模式(400 kbps)和高速模式(3.4Mbps)。
小结:
IIC:100kbps 400kpbs 3.4Mbps | 板间 | 半双工 | 1(+2 ~ VCC) | 0(0 ~ 1.2) | 共模传输 | 2线 | 同步串行 | 多主机
三、SPI

名称:Serial Peripheral Interface,串行外围设备接口。
特点:是一种高速,全双工,同步的通信总线。常规只占用四根线,节约了芯片管脚,PCB的布局省空间。
速率:SPI没有定义速度限制,一般的实现通常能达到甚至超过10 Mbps。
小结:
SPI:10Mbps | 板间 | 全双工 | 1(+2 ~ VCC) | 0(0 ~ 1.2) | 共模传输 | 4线 | 同步串行 | 单主多从
四、CAN

名称:Controller Area Network,控制器局域网。
特点:是ISO国际标准化的串行通信协议。
速率:最高1Mbps(距离小于40M),最远可达10KM(速率低于5Kbps)。
小结:
CAN:1Mbps | 10km | 半双工 | 1(+2) | 0(0) | 差模传输 | 2线 | 异步串行 | 多主机
五、USB2.0

六、IIS
————————————————
版权声明:本文为CSDN博主「科技人生」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_18677445/article/details/102469255

协议通信方式
UART串行全双工
I2C

SPI是串行外设接口(Serial Peripheral Interface)的缩写。SPI是一种高速的、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,如今主流的微控制器都集成有spi接口,如 stm32 家族。

通用串行总线(英语:Universal Serial Bus,缩写:USB)是连接计算机系统与外部设备的一种串口总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通讯产品,并扩展至摄影器材、数字电视(机顶盒)、游戏机等其它相关领域。

所有协议通过示波器进行测量UART、SPI、CAN…三十多种通信协议都可以这么测!

2. USB、UART、SPI PCI/PCIE等总线速率

总线实现数据的传出,传输接口参数主要是速率和距离,以太网逐渐进入到高速设备,最开始的串口低速设备也是有存在的价值的。最开始低速接口都是通过串行,速度提高没有办法实现使用并行差分线实现数据传输。

  1. USB总线

USB1.1:
——-低速模式(low speed):1.5Mbps
——-全速模式(full speed): 12Mbps
USB2.0:向下兼容。增加了高速模式,最大速率480Mbps。
——-高速模式(high speed): 25~480Mbps
USB3.0:向下兼容。
——-super speed :理论上最高达4.8Gbps,实际中,也就是high speed 的10倍左右。

  1. UART

RS232:传输速率一般不超过20Kbps,速率低,抗干扰能力差,RS-232C能传输的最大距离不超过15m(50英尺)。

RS422:定义了一种平衡通信接口,将传输速率提高到10Mbps,传输距离延长到4000英尺(速率低于100Kbps时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。

RS485:增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。最高传输速率10Mbps,抗干扰能力强,可以传距离1.5km。

平衡双绞线的长度与传输速率成反比,在100Kbps速率以下,才可能使用规定最长的电缆长度。只有在很短的距离下才能获得最高速率传输。一般100米长双绞线最大传输速率仅为1Mbps。

  1. SPI总线

全双工通信,传输速率可达几Mbps水平,比I2C快。

  1. I2C总线

半双工,只有2根线。数据线和时钟线。
——–标准速度:100kbps
——–快速模式:400kbps
——–高速模式:3.4Mbps

  1. Ethernet

也就是通常的网速。

——–早期的以太网传输速率只有10Mbps。
——–百兆网:理论上最大100Mbps。
——–千兆网:理论上最大1Gbps。

  1. SD总线

最高能达10Mbps。

  1. SATA接口

——–SATA1.0:理论传输速度是150MB/s(或者1.5Gb/s),实际也就30MBps。
——–SATA2.0: 300MBps,即3Gbps。实际也就80MBps。
——–SATA3.0: 600MBps,即6Gbps。
——–eSATA:理论传输速度可达到1.5Gbps或3Gbps。

  1. PCI总线

——–PCI:32位,33MHz时钟频率,速率是33*4 = 133MBps,即1Gbps。
——– PCI 2.1:64位,66MHz时钟频率来说:速率是66*8 = 528MBps,即4Gbps。

  1. PCI-e

PCI Express 总线频率 2500 MHz,这是在 100 MHz 的基准频率通过锁相环振荡器(Phase Lock Loop,PLL)达到的。
串行总线带宽(MB/s) = 串行总线时钟频率(MHz) * 串行总线位宽(bit/8 = B) * 串行总线管线 * 编码方式 * 每时钟传输几组数据(cycle)
——PCI Express x1 总线位宽是 1位,总线频率 2500 MHz,串行总线管线是 1 条,每时钟传输 2组数据,编码方式为 8b/10b,它的带宽为 476.84 MB/s,即 3814.7 Mbps。(带宽是 PCI 的 3.75 倍。)
公式是 2500000000(Hz) * 1/8(bit) * 1(条管线) * 8/10(bit) * 2(每时钟传输2组数据) = 500000000 B/s = 476.8371582 MB/s,即 3814.6972656 Mbps。
下面给出其它类型组合的带宽。
——PCI Express x2 的带宽为 953.68 MB/s,即 7629.4 Mbps。(此模式仅用于主板内部接口而非插槽模式)
——PCI Express x4 的带宽为 1907.36 MB/s,即 15258.9 Mbps。
——PCI Express x8 的带宽为 3814.72 MB/s,即 30517.8 Mbps。
——PCI Express x16 的带宽为 7629.44 MB/s,即 61035.5 Mbps。(带宽是 AGP 8X 的 3.75 倍。)
——PCI Express x32 的带宽为 15258.88 MB/s,即 122071 Mbps。

  1. XGMII/XLGMII/CGMII

在以太网标准中,MAC层与PHY层之间的10Gbps/40Gbps/100Gbps速率等级所对应的接口分别为XGMII/XLGMII/CGMII,由于XGMII/XLGMII是并行总线,而且采用的是单端信号,HSTL电平,最大传输距离只有7cm。所以在实际应用中,XGMII/XLGMII基本上被XAUI/XLAUI替代。XAUI/XLAUI是四通道串行总线,采用的差分信号,CML逻辑传输,并且进行了扰码,大大增强了信号的抗扰性能,使得信号的有效传输距离增加到50cm。
XAUI/XLAUI在物理结构上是一样的,收发通道独立,各四对差分信号线。对于XAUI总线,每对差分线上的数据速率为3.125Gbps,总数据带宽为12.5Gbps,有效带宽为12.5Gbps*0.8=10Gbps (因为XAUI总线数据在传输前进行了8B/10B变换,编码效率为80%)。

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
UART(通用异步收发传输器)是一种常见的串行通信协议,用于在计算机和外部设备之间传输数据。它使用一对数据线(TX和RX)来进行全双工的数据传输。UART广泛应用在各种设备中,如计算机、嵌入式系统、传感器等。 I2C(Inter-Integrated Circuit)是一种串行通信协议,用于连接微处理器和外部设备。I2C使用两根信号线——串行数据线(SDA)和串行时钟线(SCL)进行数据传输。I2C能够同时连接多个设备,提供了一种方便和高效的通信方式,广泛应用于各种硬件设备之间的通信。 SPI(Serial Peripheral Interface)是一种串行通信协议,用于连接微控制器与外部设备。SPI采用全双工通信方式,在一个主设备和一个或多个从设备之间进行数据传输。SPI通信需要四根线:时钟线(SCLK),数据线(MOSI/MISO),片选线(SS/CS)和数据输出线(MISO/MOSI)。SPI在高速数据传输和多设备连接方面具有优势,通常应用于存储器、显示器、传感器等设备。 485/422是一种标准的串行通信协议,常用于长距离信号传输。它使用差分信号传输方式,使用两根信号线(非平衡信号线+和-)进行数据传输。485/422可以在单个总线上连接多个设备,支持多主机通信。该协议适用于要求长距离传输和多设备连接的应用场景,如智能家居系统、工业自动化等。 综上所述,UARTI2CSPI和485/422是常见的串行通信协议,它们在不同的应用场景中发挥重要作用。选择合适的通信协议取决于通信距离、通信速度、设备连接数量和应用要求等因素。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值