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或液晶显示器。


审核编辑:刘清

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

    关注

    112

    文章

    15334

    浏览量

    172360
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1622

    浏览量

    89825
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1350

    浏览量

    121065
  • uart
    +关注

    关注

    22

    文章

    1162

    浏览量

    100195
  • 通讯协议
    +关注

    关注

    9

    文章

    250

    浏览量

    20188
收藏 人收藏

    评论

    相关推荐

    I2CSPIUART通信过程还可以这样理解

    到目前为止,I2CSPIUART等仍然是电子嵌入式设备中最常用的通信协议,本文,我们将剖析这三种协议,让大家清楚、直观的了解它们的功能、
    的头像 发表于 05-23 08:10 651次阅读
    <b class='flag-5'>I2C</b>、<b class='flag-5'>SPI</b>、<b class='flag-5'>UART</b>的<b class='flag-5'>通信</b>过程还可以这样理解

    SPII2C通信协议:应用与区别

    本文深入解析了SPII2C这两种通信协议的特点、工作原理和应用场景。SPI适用于高速数据传输,常用于存储器芯片和显示器驱动等领域;I2C
    的头像 发表于 04-22 16:45 298次阅读

    逼真动画展示I2CSPIUART通信过程

    到目前为止,I2CSPIUART等仍然是电子嵌入式设备中最常用的通信协议,本文,我们将剖析这三种协议,让大家清楚、直观的了解它们的功能、
    的头像 发表于 04-12 08:27 494次阅读
    逼真动画展示<b class='flag-5'>I2C</b>、<b class='flag-5'>SPI</b>、<b class='flag-5'>UART</b>的<b class='flag-5'>通信</b>过程

    总结usart、uarti2cspi区别及相关知识

    USART、UARTI2CSPI是四种不同的串行通信协议,它们各自具有独特的特点和应用领域
    的头像 发表于 04-10 09:47 340次阅读
    总结usart、<b class='flag-5'>uart</b>、<b class='flag-5'>i2c</b>、<b class='flag-5'>spi</b><b class='flag-5'>区别</b>及相关知识

    用STM32F103普通IO模拟通信协议I2C,SPI,串口,怎么精准的控制通讯的速率?

    用STM32F103普通IO模拟通信协议I2C,SPI,串口等。 怎么精准的控制通讯的速率,我看到STLINK也是用的STM32的芯片,为何通讯速度能达到10M那么高? 怎么操作的,有例程指导一下吗?
    发表于 03-28 08:24

    UART串口通信协议是什么?

    UART (Universal Asynchronous Receiver/Transmitter) 是一种通信接口协议,用于实现串口通信。它是一种简单的、可靠的、广泛应用的串口
    的头像 发表于 03-19 17:26 507次阅读

    蓝牙串口通讯总线——I2C/SPI/UART

    Sensor、Touch、蓝牙模块、WIFI模块等也都兼容这三种通信协议的1种以上。那么这三条通信总线有什么区别呢?工业物联网无线通信专业厂商为您一一细说——
    的头像 发表于 01-22 09:41 519次阅读
    蓝牙串口通讯总线——<b class='flag-5'>I2C</b>/<b class='flag-5'>SPI</b>/<b class='flag-5'>UART</b>

    i2c接口和spi接口区别

    重要的区别I2C接口和SPI接口都属于串行通信接口标准,广泛应用在嵌入式系统和电子设备中。它们之间的主要
    的头像 发表于 12-25 15:02 1202次阅读

    介绍一下I2CSPI两种常见的通信协议之间区别

    在与ECU或者嵌入式相关的工作中, 我们肯定会接触到各种通信协议, 很多协议有很多类似的地方, 也容易混淆. 本文来介绍一下两种常见的通信协议之间
    的头像 发表于 11-30 16:50 1251次阅读
    介绍一下<b class='flag-5'>I2C</b>和<b class='flag-5'>SPI</b>两种常见的<b class='flag-5'>通信协议</b><b class='flag-5'>之间</b><b class='flag-5'>区别</b>

    SPI通信协议原理是什么

    Peripheral Interface,也就是串行外设接口,同样是一种通信协议,在很多芯片中都有集成。 相比之前学习的UART串口通信,他多了两根线,其中一个是时钟信号,另一个是设备使能信号,用来控制设备是否
    的头像 发表于 11-24 17:37 524次阅读
    <b class='flag-5'>SPI</b><b class='flag-5'>通信协议</b>原理是什么

    UARTSPII2C比较 串口通信介绍

    UARTSPII2C比较 I2C线更少,比UARTSPI更为强大,但是威廉希尔官方网站 上也更加麻烦些,
    的头像 发表于 11-09 18:06 817次阅读
    <b class='flag-5'>UART</b>、<b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b>比较 串口<b class='flag-5'>通信</b>介绍

    I2CSPIUART:如何布局这些通用总线

    UART协议与下游MCU或可编程IC进行接口。I2C总线,SPI总线和UART总线之间
    的头像 发表于 11-08 17:33 500次阅读
    <b class='flag-5'>I2C</b>与<b class='flag-5'>SPI</b>与<b class='flag-5'>UART</b>:如何布局这些通用总线

    终于搞清了:SPIUARTI2C通信区别与应用!

    电子设备之间通信就像人类之间的交流,双方都需要说相同的语言。在电子产品中,这些语言称为通信协议。 之前有单独地分享了SPI
    发表于 10-07 17:01

    SPIUARTI2C通信协议区别

    电子设备之间通信就像人类之间的交流,双方都需要说相同的语言。在电子产品中,这些语言称为通信协议
    发表于 08-17 10:21 518次阅读
    <b class='flag-5'>SPI</b>、<b class='flag-5'>UART</b>、<b class='flag-5'>I2C</b><b class='flag-5'>通信协议</b>的<b class='flag-5'>区别</b>

    I2C通信协议:了解I2C Primer、 PMBus和SMBus

    I2C,即Inter-Integrated Circuit,是一种常用的串行通信协议,用于在器件之间——特别是两个或两个以上不同电路之间建立通信
    的头像 发表于 06-15 15:29 3890次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>通信协议</b>:了解<b class='flag-5'>I2C</b> Primer、 PMBus和SMBus