串行通信协议UART,IIC,SPI的对比分析

这篇具有很好参考价值的文章主要介绍了串行通信协议UART,IIC,SPI的对比分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

常见串行通信有三个,即UART (Universal Asynchronous Receiver/Trasmitter,异步串行收发器),IIC,SPI。下面将分别介绍三种串行通信的过程。

一、UART、IIC、SPI通信过程

1、UART通信过程

UART是一种异步全双工串行通信协议。UART通信就是常说的串口通信。其数据传输方式为:

1.串口通信的信号线只需要两条线就可以完成,即发送端TX和接收端RX。

2.起始位,数据线从高变低,低有效为0,数据传输开始。

3.数据位,起始位传输之后便是数据位开始,一般为8位,传输时低位(LSB)在前,高位(MSB)在后。

4.校验位,校验位可以认为是一个特殊的数据位,通常使用的是奇偶校验,使用串口协议时通常取消奇偶校验位。

5.停止位,停止位高有效为1,他表示这一个个字节传输结束。

6.位时间,起始位、数据位、校验位的位宽度是一致的,停止位有0.5位、1位、1.5位格式,一般为1位。

7.空闲位,持续的高电平。

8.帧:从起始位开始到停止位结束的时间间隔称之为一帧。

uart和iic和spi,嵌入式硬件,fpga开发,Powered by 金山文档

文章来源地址https://www.toymoban.com/news/detail-645612.html

2、IIC通信过程

IIC是一种同步半双工串行通信协议。其数据传输方式为:

  1. IIC有两根双向信号线,一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟同步。

  1. SCL为高电平时,SDA由高变低表示起始信号,代表开始传输数据。

  1. SCL为高电平时,SDA由低变高表示停止信号,代表数据传输结束。

  1. IIC通信时每个字节位宽为8位,数据先传送最高位,后传送最低位,发送器发送完一个字节数据后接收器必须发送1位应答信号来回应发送器,即1帧共9位。

  1. 同步信号,时钟线SCL为低电平期间,发送器向数据线上发送一位数据,期间数据线上的信号允许发生变化,时钟线SCL为高电平期间,接收器从数据线上读取一位数据,期间数据线上的信号不允许发生变化,需保持稳定。

  1. 时钟信号SCL每调整一次,发送1位数据,一个字节的发送要经历9个时钟。

  1. IIC通信采用TTL电平标准。

uart和iic和spi,嵌入式硬件,fpga开发,Powered by 金山文档

IIC宏观通信过程:

  1. 主机发送起始信号启用总线(告知从机开始通信)

  1. 主机发送一个字节数据指明从机地址(高7位)和后续字节的传送方向(最低位)

  1. 被寻址的从机发送应答信号回应主机

  1. 发送器发送一个字节数据

  1. 接收器发送应答信号回应发送器

···循环步骤4,5

N、通信完成后主机发送停止信号释放总线

3、SPI通信过程

SPI是一种同步全双工串行通信协议,其数据传输方式为:

  1. SPI有三根信号线,一根信号线MOSI用于主机向从机发送数据,一根信号线MISO用于从机向主机发送数据,时钟线SPICLK用于通信双方时间同步。

  1. 一个字节传送完成后无需像IIC一样发送应答位即可开始下一个字节的发送。

  1. 时钟线在上升沿或下降沿时发送器向数据线上发送数据,在紧接着的下降沿或者上升沿时接收器从数据线上读取数据,完成一位数据传送,八个时钟周期即可完成一个字节数据的传送。

  1. 根据时钟的不同相位(CPOL)和极性(CPHL),SPI总线具有四种工作模式。对于从机,出厂时其工作模式已确定,使用主机和从机通信时需要保证主机工作模式和从机一致。

  1. SPI通信采用TTL电平标准

uart和iic和spi,嵌入式硬件,fpga开发,Powered by 金山文档

4、三种通信方式的简要对比:

类别

UART

IIC

SPI

时钟

异步

同步

同步

传输方向

全双工

半双工

全双工

信号线数

2

2

3

电平标准

TTL/RS232/RS422/RS485

TTL

TTL

应答信号

单字节所需时钟

由波特率决定

9

8

最大区别

UART每传输一个字节,数据线有一段持续的高电平,IIC数据传输时,时钟为持续的高电平,根据应答信号决定结束时间,SPI在每个时钟上升沿传输发送数据,下降沿接收数据

二、UART与RS232/RS422/RS485等的关系

1、RS232/RS422/RS485物理接口标准

RS232/RS422/RS485是三个常用的串行通信接口标准,什么是串行通信接口标准呢?是指用来进行串行通信的物理接口标准,它只表征了电气特性,而不涉及到接插件、电缆、协议等。电气特性规定了逻辑电平如何确定,数字电路以电信号0和1进行设计,逻辑家族中有不同的集成电路器件,在实际工作中,这些器件需要一个特定的电压电流标准去判定它的电信号是0还是1,将这个标准称为逻辑电平。

2、串口UART与RS232/RS422/RS485等的区别

需要说明一下,很多人经常把RS-232、RS-422、RS-485 误称为通讯协议,这是很不应该的,其实它们仅是关于UART通讯的一个机械和电气接口标准,顶多是网络协议中的物理层面。

UART是通用异步收发传输器,既然是“器”,显然,它就是个设备而已,要完成一个特定功能的硬件。它最基本的功能是串并数据转换。

另外UART还要控制数据的格式(波特率、起始位、数据位、校验位、停止位等内容),这表示它也是异步串行通信的一种方式,它本身不是协议,但具有协议的特征,然而比RS232协议更具一般性。

因此可以说,UART同时具有硬件和协议的范畴。

3、串口UART为什么不使用TTL电平标准而使用RS232/RS422/RS485等电平标准

UART存在以下两个问题使得UART通信放弃TTL电平标准,首先TTL的高电平一般为处理器使用的电平,因此对于不同设备无法直接进行UART通信,例如51认为5V为高电平,0V为低电平;STM32认为3.3V为高电平,0V为低电平。因此对于不同的设备需要将其UART控制器输出的TTL电平转化为被广泛使用的RS232电平等。也就是说FPGA芯片是无法(较为复杂)发出对应的电平标准,如:RS485、RS232、USB接口电平等。在大多数板卡设计时,都会在FPGA外围添加电平转换器,将FPGA的电平标准转换为通信的电平标准。因此开发板上会采用USB <->UART(LVCOMS/LVTTL)的电平转换芯片例如CP2102。所以开发板上的供电端口不仅仅可以供电,还可以进行通信。

此外,UART没有规定不同器件连接时连接器的标准(知道到有RXD,TXD两根线),所以不同器件间通过UART通信时连接很不方便。第二点是TTL电平抗干扰能力差,数据传输易出错。

RS232协议规定了UART串口通信时连接器的标准(DB9)和高低电平。传输距离可达15m。虽然很多处理器会集成UART控制器,但处理器产生的信号时TTL信号,不是符合RS232标准的信号,所以需要在处理器外部添加电路对信号进行电平转换(MAX232可以实现232电平和TTL电平转换)

为了解决RS232标准传输距离短和抗干扰能力差等缺点,提出了RS485标准,传输距离可达1500m。RS485采用两线制连接器标准,RS422采用四线制连接器标准。RS485采用差分信号,因此对于处理器产生的TTL信号,我们需要在处理器外部去添加电路将TTL信号转换成差分信号。

4、串口UART与RS232/RS422/RS485的简要对比

类别

UART

RS232/RS422/RS485

定位

通信协议

网络协议的物理层面

作用

规定数据传输方式

规定了逻辑电平等电气特性

软硬件范畴

软件/硬件兼具

硬件

基本功能

串行传输数据

将UART通信的TTL电平转换为安全、可靠、广泛的RS电平

UART串口通信为何采用RS(422,232,485)电平而非TTL电平?

1、不同的设备TTL电平不同,因此采用统一电平标准RS232。

2、TTL电平抗干扰能力差。

参考资料链接:

https://blog.csdn.net/weixin_49780322/article/details/120216265

https://blog.csdn.net/weixin_42369496/article/details/98199353

https://blog.csdn.net/oqqHuTu12345678/article/details/65445338

https://www.bilibili.com/video/BV1Dd4y1R7NC

https://zhuanlan.zhihu.com/p/150121520

https://blog.csdn.net/weixin_42369496/article/details/98199353

https://blog.csdn.net/passerbyyuan/article/details/78477756

https://zhuanlan.zhihu.com/p/558953115

到了这里,关于串行通信协议UART,IIC,SPI的对比分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UART、IIC、SPI、CAN通信的区别与应用

    数据通信基本方式可以分为 串行通信与并行通信 两种 1.1.1、串行通信 (1)定义:串行通信是指利用一条传输线将数据一位位地顺序传送。 (2)传输方式:传输一个字节(8个位)的数据时,串口是将8个位排好队,逐个地在1条连接线上传输。 (3)特点:通信线路简单,成

    2024年02月06日
    浏览(33)
  • IIC、SPI、Uart、One-wire等常见协议

    IIC两线式 串行 总线,由数据线 SDA 和时钟线 SCL 构成,由于数据在同一条线上传输,因此IIC通信是 半双工 通信方式; IIC使用 多主从架构 , 每个器件都有唯一的识别地址,都可以作为一个发送器或接收器,这里的主从并没有绝对的概念,基本上谁控制时钟线谁就是主设备,

    2024年02月12日
    浏览(31)
  • 嵌入式Linux裸机开发(七)UART串口、IIC、SPI通信

    大概学完这三种通信后,之后就先去学系统移植,其他的先暂时放下 串口全称叫做串行接口,通常也叫做 COM 接口。 UART:(Universal Asynchronous Receiver/Trasmitter)通用异步串行收发器。 USART:(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步串行收发器,相比 UART多了

    2024年02月07日
    浏览(52)
  • 常用通讯协议(UART、RS232、RS485、IIC、SPI)简单介绍

    目录 常用通讯协议随笔 通讯基础 UART UART存在的问题: RS232 接口 信号 电平转换 RS232存在的问题 RS485 信号 接口 电平转换 RS485的优势 IIC IIC总线通讯过程 IIC总线寻址方式 起始信号和停止信号 字节传输于应答 同步信号 典型IIC时序 SPI SPI寻址方式 SPI总线通讯过程 极性和相位

    2024年02月02日
    浏览(33)
  • 串行通信协议(I2C、SPI、UART、SCCB、CAN)

    推荐一部书,在这本书里面介绍了I2C、SPI、UART和CAN等通信协议,写的蛮不错的。 串行通信 :设备与设备之间,传输数据按顺序依次1bit位接1bit位进行传输。 并行通信 :设备与设备之间,通过多条传输线,可以同时传输多个bit位的信号。 1.简单的双向两线制总线协议标准、半

    2024年02月14日
    浏览(47)
  • 动画图解常见串行通讯协议:SPI、I²C、UART、红外分析

    一、 SPI传输                                                          图1:SPI 数据传输                                                      图1.2:SPI数据传输(2) ​                                                 图1.3: SPI时序信号 二、 I²C传输 图

    2024年02月03日
    浏览(29)
  • IIC协议——同步半双工串行通信方式

    2023.4.22 IIC : Inter-Integrated Circuit ,集成电路总线 半双工协议 多主设备,多从设备。通过地址索引,I2C可以使能所需从设备 实现不同集成电路组件之间的控制功能 接口减少,控制简单,只需要两条总线 通信速率高 多主控,但任意时刻只有一个主控有效。最大主设备——无限

    2023年04月23日
    浏览(27)
  • 对比SPI、UART、I2C通信的区别与应用

    SPI、UART、I2C通信是常用的数字通信协议,它们在不同的场景下有不同的应用。下面,我将分别介绍它们的特点、区别与应用。 SPI通信 SPI通信是一种串行同步通信协议,它的全称为“Serial Peripheral Interface”。SPI通信是一种单主多从的通信方式,通信时需要指定从机地址。SPI通

    2024年02月04日
    浏览(37)
  • 详解UART、I2C、SPI常用通信协议(全是细节)

            UART、I2C和SPI是我们在嵌入式开发中比较常见的通信协议了,没有最好的通信协议,每个通信协议都有自己的优缺点。如果想要通信速度快,SPI 将是理想的选择;如果用户想要连接多个设备而不是过于复杂,I2C 将是理想的选择,因为它最多可以连接 127 个设备并且易

    2024年02月15日
    浏览(26)
  • 常用通信协议TTL、RS232/RS485/RS422、CAN、IIC、SPI、USB整理

      最近在进行项目方案设计时,涉及到常用通信接口的选型,包括 TTL、RS232、RS485、RS422、CAN、IIC、SPI 等常用通信协议,这里对常见的通信协议进行一个整理,在需要的时候可以进行回顾,这里参考几个优秀博文并进行整理,大家也可以去看看。 不脱发的程序猿-详解RS232、

    2024年02月02日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包