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

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

3天内不再提示

一文搞懂UART、I2C、SPI协议

STM32嵌入式开发 来源:STM32嵌入式开发 2023-03-26 09:29 次阅读

UARTI2C、SPI都是常见的低速板级通信协议,目前主流的SoC都内置了这些通讯协议的控制器,同样,各种传感器、Touch控制器、指纹模块、蓝牙模块、WIFI模块也都兼容这三种通信方式的一种或几种。

下面分别说下:

UART

UART一般由TXD、RXD、GND三根线组成,是一种异步传输协议。

无论是主机还是从机,均可以自由发送数据,但是由于UART总线并没有时钟线,所以需要提前约定对应的波特率,这是一种很简单的传输协议。

e2a65a94-ca28-11ed-bfe3-dac502259ad0.jpg

I2C

I2C是两根线,SDA(数据)和SCL(时钟),也是一种同步传输协议。主机在发送开始信号之后,先发送7个比特的地址位和1个比特的读写位,每个从机有自己的I2C地址,当发现该条指令是发给自己的时候,拉低SDA线(即回复ACK信号),然后主机发送或接收数据,完成传输。传输完成之后,主机发送停止位,完成该次传输。

wKgZomQfoBiATa_dAAATJvMracY215.png

SPI

SPI是四根线,分别是CS(片选)、MOSI(主发从收)、MISO(从发主收)、CLK(时钟),是一种同步传输协议。主机送出CLK信号,主机到从机的数据在MOSI线上传输,从机到主机的数据在MISO线上传输。在启动传输之前,需要先拉低(一般是这样,也有各别芯片是CS高有效)对应从机的CS管脚,在传输完成之后,再拉高CS管脚,从机的SPI Slave模块进入休眠。

wKgaomQfoBiAKwsdAAANdoff_uA398.png

使用场景

首先,I2C和SPI都是同步协议,都有时钟信号,在一条总线上也都可以挂多个从设备,但是I2C的从设备是通过地址来区分的,SPI的从设备是通过片选线来区分的,所以SPI总线上,每多挂一个从设备,就要多用一个线作为片选线,而I2C则不用,只要地址不冲突,可以随便挂设备。

但是,I2C总线速度一般普遍慢于SPI,I2C一般的速度是100kbs、400kbps和1Mbps,而SPI的速度可以在几Mbps,也可以10+Mbps。所以看使用场合,低速的话,I2C就挺合适的,如果速度快一些,则一般都要选用SPI。另外,I2C总线的管脚都是开漏输出,必须外接上拉电阻,阻值可以根据总线速度来推算,一般我们常用400kbps传输速率,上拉电阻选用2.2K。

UART和SPI、I2C不同,他是异步传输的,一般来说传输速度比较慢,传统的传输速度一般在115200bps或以下,不过现在大部分UART控制器也能支持到4Mbps或者8Mbps了。UART目前最常用的就是调试接口,因为UART比较简单,所以CPU输出log一般都通过一个UART口来输出。

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

    关注

    2548

    文章

    50664

    浏览量

    751895
  • 通信协议
    +关注

    关注

    28

    文章

    857

    浏览量

    40254
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1700

    浏览量

    91312
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1481

    浏览量

    123277
  • uart
    +关注

    关注

    22

    文章

    1227

    浏览量

    101169

原文标题:一文搞懂UART、I2C、SPI协议

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    SPI,UART,I2C区别与特点

    本内容详细介绍了SPI,UART,I2C区别与特点,SPI:高速同步串行口。3~4线接口,收发独立、可同步进行,UART:通用异步串行口。按
    发表于 02-02 16:15 6629次阅读

    逼真动画展示I2CSPIUART的通信过程

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

    SPII2CUART串行总线协议

    串口通讯通信协议UART,以及常用外设通信协议 SPII2C的介绍与他们之间的区别
    发表于 11-30 11:28 95次下载

    SPI、SCI、I2CUART之间的异同

    详细介绍了SPI、SCI、I2CUART几种通信方式的异同便于读者整体了解通信的意义.
    发表于 12-15 14:32 0次下载

    SPII2CUART三种串行总线协议的区别

    SPII2CUART三种串行总线协议的区别
    发表于 07-17 17:23 0次下载

    看懂I2C协议

    电子行业最常用的3种串行通讯协议UARTSPII2C。前面介绍了串口通讯协议及其FPGA实现,SP
    发表于 01-25 18:32 40次下载
    <b class='flag-5'>一</b><b class='flag-5'>文</b>看懂<b class='flag-5'>I2C</b><b class='flag-5'>协议</b>

    什么是I2C协议

    I2C协议个允许多个 “从机” 芯片和个或更多的 “主机” 芯片进行通讯的协议。它就像串行外设接口(
    发表于 10-11 16:46 4470次阅读

    简述UARTSPII2C协议区别

    I2CSPIUART都是常见的低速板级通信协议 ,目前主流的SoC都内置了这些通讯协议的控制器,同样,各种传感器、Touch控制器、指纹
    的头像 发表于 02-17 10:50 2487次阅读
    简述<b class='flag-5'>UART</b>、<b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b><b class='flag-5'>协议</b>区别

    低速板级通信协议UARTI2CSPI协议

    UARTSPII2C不同,他是异步传输的,般来说传输速度比较慢,传统的传输速度般在115200bps或以下,不过现在大部分
    发表于 03-23 12:51 1596次阅读

    详解I2C总线协议

    I2C协议个允许主多从进行通讯的协议。它就像串行外设接口(SPI
    发表于 04-11 10:33 2514次阅读

    SPI自举程序中使用的I2C协议

    电子发烧友网站提供《SPI自举程序中使用的I2C协议.pdf》资料免费下载
    发表于 09-21 11:41 0次下载
    <b class='flag-5'>SPI</b>自举程序中使用的<b class='flag-5'>I2C</b><b class='flag-5'>协议</b>

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

    如果您要为项目构建开发板或使用通用MCU,则会发现许多用于通信其他活动组件的协议。USB和以太网之类的标准已内置在大多数控制器中,用于与计算机外围设备起使用。尽管如此,仍使用I2CSPI
    的头像 发表于 11-08 17:33 1027次阅读
    <b class='flag-5'>I2C</b>与<b class='flag-5'>SPI</b>与<b class='flag-5'>UART</b>:如何布局这些通用总线

    UARTSPII2C比较 串口通信介绍

    ,较少用于远距离通信。 SPI实现要简单些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它是有时钟的协议
    的头像 发表于 11-09 18:06 1309次阅读
    <b class='flag-5'>UART</b>、<b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b>比较 串口通信介绍

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

    嵌入式工程师在做串口通信调试工作的时候,会经常用到I2CSPIUART这3条总线,I2CSPIU
    的头像 发表于 01-22 09:41 1465次阅读
    蓝牙串口通讯总线——<b class='flag-5'>I2C</b>/<b class='flag-5'>SPI</b>/<b class='flag-5'>UART</b>

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

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