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

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

3天内不再提示

I2C与SPI及其UART通信协议之间的区别

冬至配饺子 来源:硬件大熊 作者:雕塑者 2022-07-27 17:16 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

I2C、SPI、UART都是常见的低速板级通信协议,目前主流的SoC都内置了这些通讯协议的控制器,同样,各种传感器、Touch控制器、指纹模块、蓝牙模块、WIFI模块也都兼容这三种通信方式的一种或几种。对于这三种通信协议的差别,可以区分到非常细,包括信号的单位、传输协议中的封包格式等。

UART一般由TXD、RXD、GND三根线组成,是一种异步传输协议。无论是主机还是从机,均可以自由发送数据,但是由于UART总线并没有时钟线,所以需要提前约定对应的波特率,这是一种很简单的传输协议,以此基础再搭电路可以实现RS-232、RS-242、RS-485等通信协议。过去老式电脑是具备RS-232接口的,但近10年的电脑都只具备USB,因此通常需要透过一个UART转USB的转接电路才能互相连接。UART比较简单,所以CPU输出log一般都是通过一个UART口来输出,是目前最常用的调试接口,其传输速度比较慢,传统的传输速度在115200bps或以下,不过现在大部分UART控制器也能支持到4Mbps或者8Mbps了

pYYBAGLhAZyAQe3TAABT5Sh_tcU066.png

I2C是两根线,SDA(数据)和SCL(时钟),是一种半双工同步传输协议。主机在发送开始信号之后,先发送7个比特的地址位和1个比特的读写位,每个从机有自己的I2C地址,当发现该条指令是发给自己的时候,拉低SDA线(即回复ACK信号),然后主机发送或接收数据,完成传输。传输完成之后,主机发送停止位,完成该次传输。I2C最早是由PHILIPS提出来的,用于晶片间的传输,理论上可以连接128个从机(一般最多只接10个),原则上只能以PCB板上的铜箔线路来走,然而目前许多应用却是把I2C缆线化。另外,I2C总线的管脚都是开漏输出,必须外接上拉电阻,阻值可以根据总线速度来推算,一般我们常用400kbps传输速率(标准模式:100kbps,快速模式:400kbps,高速模式:3.4Mbps),上拉电阻选用2.2K。

pYYBAGLhAa-AeVLZAABKs0PQ5r0211.png

SPI是四根线,分别是CS(片选)、MOSI(主发从收)、MISO(从发主收)、CLK(时钟),是一种全双工同步传输协议。主机送出CLK信号,主机到从机的数据在MOSI线上传输,从机到主机的数据在MISO线上传输。在启动传输之前,需要先拉低(一般是这样,也有各别芯片是CS高有效)对应从机的CS管脚,在传输完成之后,再拉高CS管脚,从机的SPI Slave模块进入休眠。SPI由Motorola发明,与I2C相同可以接多个从机,只是每增加一个从机,线路至少要增加一条,其发送与接收可以同时进行,传输速度可达到几Mbps水平,比I2C快

UART和后面两者最大的区别在于后面两者是同步的,要有统一的时钟线,而UART不需要,接线方便,但收发双方都需要配置相同的波特率,即设备要有自己的时钟源;I2C协议中是有地址规则的,因此在一对多通信的时候更有优势。常用来连接传感器;SPI编程简单,在设备不多,端口充足,对通信速度要求不高的场合可以应用,较常用来连接EEPROM、FLASH或液晶显示器。


审核编辑:刘清

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

    关注

    114

    文章

    17915

    浏览量

    195809
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1906

    浏览量

    102436
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1566

    浏览量

    131940
  • uart
    +关注

    关注

    22

    文章

    1324

    浏览量

    107139
  • 通讯协议
    +关注

    关注

    10

    文章

    303

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MAX96752的 Main I2C 和 pass through I2C 驱动外设有什么区别没有?

    你好,想请问下: 1: MAX96752的 Main I2C 和 pass through I2C驱动外设有什么区别没有? 2: MAX96572 有两个pass through
    发表于 05-13 07:49

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

    I2C总线确实不适合远距离通信,尤其是需要使用线缆与I2C接口器件进行通信,这里的“不适合”并不是说不可以,这也是本文的重点。一般使用I2C
    发表于 01-21 06:03

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

    到目前为止,我们已经讨论了SPI通信UART通信的基础知识,现在让我们讨论本系列的最后一个协议,即集成电路间
    的头像 发表于 01-04 09:14 2186次阅读
    <b class='flag-5'>I2C</b> 为什么只要两根线就能搞定<b class='flag-5'>通信</b>?

    SPI 为什么比 I2C 更快?

    领域,这些语言被称为通信协议。幸运的是,在构建大多数DIY电子项目时,我们只需要了解少数几种通信协议。在本系列文章中,我们将讨论三种最常见协议的基础知识:串行外设
    的头像 发表于 01-04 09:14 995次阅读
    <b class='flag-5'>SPI</b> 为什么比 <b class='flag-5'>I2C</b> 更快?

    基于FPGA的I2C通信协议设计

    I2C(Inter-Integrated Circuit)是一种由飞利浦半导体(现为恩智浦半导体)在1980年代初开发的同步、串行、半双工的总线型通信协议。主要用于近距离(同一块印刷电路板(PCB
    的头像 发表于 12-26 09:44 6467次阅读
    基于FPGA的<b class='flag-5'>I2C</b><b class='flag-5'>通信协议</b>设计

    I2C的优点介绍

    是一种同步通信协议,这意味着它依靠时钟信号来同步设备之间的数据传输。主设备产生时钟信号,保证精确的时序协调。这种同步可以实现可靠、准确的数据传输,这对于数据完整性至关重要的应用至关重要。I2C 的同步特性简化了
    发表于 11-27 07:49

    I2C的缺点介绍

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

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

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

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

    SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间通信,较少用于远距离
    发表于 11-20 07:19

    SPII2CI2S、UART通信协议解释

            在嵌入式开发中,最常用的几种通信接口无非就是SPII2CI2S、UART。名字看起来差不多,但应用场景和特性却大不相同。
    的头像 发表于 11-18 10:53 809次阅读

    SPII2CI2S、UART通信协议对比表

    在嵌入式开发中,最常用的几种通信接口无非就是SPII2CI2S、UART。名字看起来差不多,但应用场景和特性却大不相同。很多初学者容易混
    的头像 发表于 11-17 10:53 2273次阅读
    <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>:<b class='flag-5'>通信协议</b>对比表

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

    Diodes 公司(Diodes)(Nasdaq:DIOD)宣布推出PI7C9X762Q,这是一款符合汽车标准*的高性能 I2C/SPI 总线至双通道 UART 网桥。该器件在工作状态
    的头像 发表于 10-17 17:51 2316次阅读

    串行通信相关的基础知识

    串行通信是电子设备中数据交换的基石。最常见的串行通信协议UARTSPII2C等。
    的头像 发表于 10-15 10:53 2238次阅读
    串行<b class='flag-5'>通信</b>相关的基础知识

    深入剖析I2C协议

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

    第十八章 I2C通信测试

    本章介绍了I2C协议,其物理层用SDA和SCL双线,支持多设备:协议层含起始/停止信号、应答机制等。还讲解W55MH32的I2C外设及初始化,并进行了
    的头像 发表于 06-19 17:07 1568次阅读
    第十八章 <b class='flag-5'>I2C</b><b class='flag-5'>通信</b>测试