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

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

3天内不再提示

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

美迅物联网 来源:jf_75680484 作者:jf_75680484 2024-01-22 09:41 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

嵌入式工程师在做串口通信调试工作的时候,会经常用到I2C、SPI、UART这3条总线,I2C、SPI、UART这三种通信总线在嵌入式领域很常见,目前主流的SOC芯片都内置了这三种总线的控制器,各种Sensor、Touch、蓝牙模块、WIFI模块等也都兼容这三种通信协议的1种以上。那么这三条通信总线有什么区别呢?工业物联网无线通信专业厂商为您一一细说——

I2C:半双工、同步、串行传输,物理上只有两根线(SDA/SCL);传输数据必须8位8位的传输。

I2C串口通信传输步骤

1.在SCL线为高电平时,主机通过将SDA线从高电平切换到低电平来启动总线通信;

2.主机向总线发送要与之通信的从机的7位或10位地址,以及读/写位;

3.每个从机将主机发送的地址与其自己的地址进行比较。如果地址匹配,则从机通过将SDA线拉低一位返回一个ACK位。如果主机的地址与从机的地址不匹配,则从机将SDA线拉高。

4.主机发送或接收数据帧;

5.传输完每个数据帧后,接收设备将另一个ACK位返回给发送方,以确认已成功接收到该帧;

6.随后主机将SCL切换为高电平,然后再将SDA切换为高电平,从而向从机发送停止条件。

SPI:全双工、同步、串行传输,收发独立,传输速率高,但是没有指定的流控制,没有应答机制确认是否接收到数据。物理上4根线(CLK/SDI/SDO/CS),因为是全双工,并且不需要寻址,所以速度要比I2C快,但是占用的物理线的数量要比I2C多;通信时可以一位一位的传输数据。

SPI串口通信传输步骤:

1.主机输出时钟信号

2.主机拉低SS/CS引脚,激活从机;

3.主机通过MOSI将数据发送给从机;

4.如果需要相应,则从机通过MISO将数据返回给从机。

UART:全双工、异步、串行传输,收发独立,UART总线并没有时钟线,所以需要提前约定对应的波特率,传输速度较慢,物理上4根线(VCC/TX/RX/GND),虽然速度慢,但是可用于不同主机间的通信,通常用于debug调试非常方便;传输时数据位可以5、6、7、8位。

UART串口通信传输步骤:

1.发送UART从数据总线并行接收数据;

2.发送UART将起始位、奇偶校验位和停止位添加到数据帧;

3.整个数据包从发送UART串行发送到接收UART。接收UART以预先配置的波特率对数据线进行采样;

4.接收UART丢弃数据帧中的起始位、奇偶校验位和停止位;

5.接收UART将串行数据转换回并行数据,并将其传输到接收端的数据总线。

单工、半双工、全双工

单工:数据只能在一个方向上传输。

半双工:数据可以在两个方向上进行传输,但是同一时刻,只允许数据在一个方向上传输,相当于单工通信的分时复用。

全双工:数据可以同时在两个方向上传输,相当于两个单工通信的结合。

同步通信和异步通信

同步是阻塞模式,异步是非阻塞模式。

同步通信要求发收双方具有同频同相的同步时钟信号(一般共用一个时钟),同步通信效率高。

异步通信的收发双方没有同步时钟,比如UART,收发双方仅仅是约定,你按照什么样的速率发,而我也按照这样的速率去接收,这样如果速度越快,那么信号宽度越窄,误差就越大,所以异步通信效率较低。

综上所述,工业物联网无线通信专业厂商要说的是I2C、SPI、UART这三条总线在通信速度上,SPI最快,UART最慢;通信距离上,I2C和SPI通常用于片上通信,而UART通常用于设备间通信,比如PC机和我们要调试的产品设备。

wKgaomWtx96AFO9kAAM4WMrTP2Y515.jpg

审核编辑 黄宇


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

    关注

    119

    文章

    6222

    浏览量

    177553
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1866

    浏览量

    99818
  • 总线
    +关注

    关注

    10

    文章

    3014

    浏览量

    91307
  • uart
    +关注

    关注

    22

    文章

    1304

    浏览量

    106117
  • 串口通讯
    +关注

    关注

    2

    文章

    266

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

    在嵌入式开发中,设备之间的通信是绕不开的话题。常见的三种总线接口——UARTSPII2C——各有优缺点。不同项目需求决定了选择哪一种协议最合适。本文结合实战经验,逐项对比三者,并附
    的头像 发表于 11-24 19:04 316次阅读
    <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 208次阅读

    SPII2CI2S、UART:通信协议对比表

    在嵌入式开发中,最常用的几种通信接口无非就是SPII2CI2S、UART。名字看起来差不多,但应用场景和特性却大不相同。很多初学者容易混淆:为什么都叫串行通信,结构却不一样?为什么
    的头像 发表于 11-17 10:53 1173次阅读
    <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 851次阅读

    I2C总线复用

    帝晶智慧屏I2C总线复用
    的头像 发表于 03-11 17:20 1855次阅读

    I2C总线通信原理 如何设计I2C总线电路

    I2C总线通信原理 I2C(Inter-Integrated Circuit)总线是一种用于集成电路之间进行通信的串行通信协议。它最早由飞利浦公司(现被恩智浦电子收购)于1982年推出
    的头像 发表于 01-31 15:01 1886次阅读

    I2C总线的优缺点分析

    I2C总线作为一种广泛使用的串行通信协议,以其简单性和高效性在嵌入式系统中占据着重要地位。 I2C总线的优点 1. 简单性和低成本 I2C
    的头像 发表于 01-17 15:50 1764次阅读

    I2C总线与Arduino的接口示例

    在现代电子设计中,I2C总线因其简单性和灵活性而广受欢迎。它允许多个设备共享同一通信线路,从而节省空间和成本。Arduino,作为一个多功能的微控制器平台,自然也支持I2C通信。 I2C
    的头像 发表于 01-17 15:34 2363次阅读

    I2C总线的工作模式介绍

    在现代电子系统中,I2C总线作为一种多主机、多从机的串行通信协议,扮演着至关重要的角色。它允许多个设备共享同一总线,进行数据传输,从而简化了系统设计并降低了成本。 I2C
    的头像 发表于 01-17 15:32 1635次阅读

    I2C总线协议详细解析

    1. I2C总线简介 I2C总线由Philips Semiconductor(现为NXP Semiconductors)在1980年代初期开发。它是一种多主机
    的头像 发表于 01-17 15:22 1573次阅读

    I2C总线故障排除技巧

    I2C总线是一种广泛使用的串行通信协议,它允许多个设备在两条线上(数据线SDA和时钟线SCL)进行通信。由于其简单性和灵活性,I2C总线在嵌入式系统中非常流行。然而,当
    的头像 发表于 01-17 15:20 3872次阅读

    I2C总线应用实例分析

    在现代电子系统中,I2C总线因其简单、灵活和高效的特点而被广泛应用于各种设备之间的通信。 I2C总线概述 I2C
    的头像 发表于 01-17 15:09 1244次阅读

    I2C总线SPI总线的比较

    在现代电子系统中,微控制器与各种外设之间的通信是必不可少的。I2CSPI是两种流行的串行通信协议,它们各自具有独特的特点和应用场景。 I2C总线
    的头像 发表于 01-17 15:08 1725次阅读

    为什么嵌入式调试经常用UART,却很少用SPII2C或USRT?

    在嵌入式调试中经常使用 UART(通用异步收发传输器)而较少使用 SPI(串行外设接口)、I2C(集成电路总线)或 USRT(通用同步 / 异步收发传输器)主要有以下原因
    的头像 发表于 12-18 09:58 1139次阅读
    为什么嵌入式调试经常用<b class='flag-5'>UART</b>,却很少用<b class='flag-5'>SPI</b>、<b class='flag-5'>I2C</b>或USRT?