嵌入式五大通信协议详解 (一) UART

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

嵌入式C语言学习进阶系列文章

GUN C编译器拓展语法学习笔记(一)GNU C特殊语法部分详解
GUN C编译器拓展语法学习笔记(二)属性声明
GUN C编译器拓展语法学习笔记(三)内联函数、内建函数与可变参数宏
数组存储与指针学习笔记(一)数据类型与存储、数据对齐、数据移植、typedef



一、定义

  通用异步收发传输器UART(Universal Asynchronous Receiver/Transmitter)。是一种串行、异步、全双工的通用数据通信协议。其特点是通信线路简单,只需要一对TX、RX的传输线即可实现双向通信,根据约定时序进行传输,但是相对而言传输速率不高。其衍生实体如基于TTL的UART通讯、基于RS232的UART通讯以及基于RS485的UART通讯等。
  注:USART是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。USART是指单片机的一个端口模块,可以根据需要配置成同步模式(增加了同步时钟),也可以将其配置为异步模式,后者就是UART。所以说UART姑且可以称之为一个与SPI,I2C对等的“协议”,而USART则不是一个协议,而是更应该理解为一个实体。

二、数据协议

2.1 电气连接形式

  UART通信协议包含两根数据线分别为RX、TX,两个UART通信设备通信过程交错连接,实现全双工独立通信。双方通信设备通过约定好波特率、起始位、校验位、停止位等核心配置参数,实现数据传输。
嵌入式五大通信协议详解 (一) UART

2.2 帧格式

嵌入式五大通信协议详解 (一) UART
  帧格式详解:

  • 起始位:在开始一次通信传输时,发送方先发送一个逻辑0的低电平信号,表示传输字符开始。因为总线空闲时为高电平,所以开始一次通信时先发送一个明显区别于空闲状态的信号即低电平。

  • 数据位:起始位发送完成后,接收方开始接收数据。起始位后面就是数据位,数据位可以是5、6、7、8,9位等,构成一个字符(一般都是8位),发送顺序为先发送最低位,最后发送最高位,使用低电平表示0高电平表示1完成数据位的传输。

  • 奇偶校验位:数据位加上这一位后,使得1的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。串口校验模式分为以下几种:

    • 无校验(no parity)。
    • 奇校验(odd parity):如果数据位中1的数目是偶数,则校验位为1,如果1的数目是奇数,校验位为0
    • 偶校验(even parity):如果数据为中1的数目是偶数,则校验位为0,如果为奇数,校验位为1
    • mark parity:校验位始终为1(不常用)。
    • parity:校验位始终为0(不常用)。
  • 停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。 由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备之间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟的机会。停止位个数越多,数据传输越稳定,但是数据传输速度也越慢。

  • 空闲位:UART协议规定,当总线处于空闲状态时信号线的状态为1即高电平,表示当前线路上没有数据传输。

  • 波特率: 波特率是UART协议,或者说所有异步串行协议,非常重要的一个概念,波特率表示一秒内传输了多少个码元数量,一般波特率为300,1200,2400,9600,19200,38400,115200等。例如9600 Baud表示一秒内传输了9600个码元信息,当一个码元只含1 bit信息时,波特率=比特率。
    嵌入式五大通信协议详解 (一) UART

2.3 存在问题

  • 电气接口不统一。UART在通信过程中一般使用处理器的电平信号,即TTL电平,但不同处理器的电平一般存在差异,在通信时需要转换电平
  • 抗干扰能力差。UART 在使用过程中使用TTL来表示逻辑0和逻辑1,但是TTL抗干扰能力差,传输数据过程容易出错。
  • 通信距离短。因为TTL的抗干扰能力差,因此传输距离很短,一般用于短距离传输。

三、协议常见应用

  面对UART存在的问题,工业上对串口协议做出了改进,增强了其电气特性。如常用的RS232和RS485串行通信标准。我们来认识一下它们。

3.1 RS232通信接口(全双工通信)

  RS232通讯又叫串口通讯方式,是指计算机通过RS232国际标准协议用串口连接线和单台设备(控制器)进行通讯的方式。

  • 电气接口:通常 RS-232 接口以9个引脚 (DB-9) 或是25个引脚 (DB-25) 的型态出现,一般个人计算机上会有两组 RS-232 接口,分别称为 COM1COM2
  • 通讯距离:9600波特率下建议在13米以内。
  • 通讯速率(波特率 Baud Rate):缺省常用的是 9600 bps,常见的还有 1200 2400 4800 19200 38400等。波特率越大,传输速度越快,但稳定的传输距离越短,抗干扰能力越差。传输速率较低,在异步传输时,波特率为20Kbps。
  • 电平特性:传输电平信号接口的信号电平值较高(信号1-3V至-15V,信号03至15V),易损坏接口电路的芯片,又因为与TTL电平(0~<0.8v,1~2.0V)不兼容故需使用电平转换电路方能与TTL电路连接。另外抗干扰能力差。
  • 抗干扰性:接口使用一根信号线和一根信号返回线而构成共地的传输形式, 这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
  • 多点通讯RS232接口在总线上只允许连接1个收发器,不能支持多站收发能力,所以只能点对点通信,不支持多点通讯。

3.2 RS485通信接口(半双工通信)

  RS485通讯RS-232一样,都是串行通信标准,现在的标准名称是TIA485/EIA-485-A,但是人们会习惯称为RS-485标准,RS-485常用在工业、自动化、汽车和建筑物管理等领域。RS-485总线弥补了RS-232通信距离短,速率低的缺点,RS-485的速率可高达10Mbit/s,理论通讯距离可达1200米;RS-485和RS-232的单端传输不一样,是差分传输,使用一对双绞线,其中一根线定义为A,另一个定义为B文章来源地址https://www.toymoban.com/news/detail-448603.html

  • 电气接口:通常 RS-485 接口以9个引脚 (DB-9) 或是25个引脚 (DB-25) 的型态出现。
  • 通讯距离RS485最大无线传输距离为1200米。最大传输速率为10Mbps,在100Kb/S的传输速率下,才可以达到最大的通信距离。采用阻抗匹配、低衰减的专用电缆可以达到1800米!超过1200米,可加中继器(最多8只),这样传输距离接近10Km。
  • 通讯速率(波特率 Baud Rate):缺省常用的是 9600 bps,常见的还有 1200 2400 4800 19200 38400等。波特率越大,传输速度越快,但稳定的传输距离越短,抗干扰能力越差。传输速率较低,在异步传输时,波特率为20Kbps。
  • 电平特性:传输差分信号逻辑1以两线间的电压差为+(2—6) V表示;逻辑0以两线间的电压差为-(2—6)V表示。接口信号电平比RS-232降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。
  • 抗干扰性:接口使用一根信号线和一根信号返回线而构成共地的传输形式, 这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
  • 多点通信:RS485接口在总线上是允许连接多达128个收发器。即具有多站通讯能力,这样用户可以利用单一的RS485接口方便地建立起设备网络。
      补充:共模传输和差模传输:
    嵌入式五大通信协议详解 (一) UART
      采用共模传输方式时,共模噪声将会叠加在最终的输出信号上面,污染了原始的信号。
    嵌入式五大通信协议详解 (一) UART
      采用差模传输方式,则源端发出的信号+与信号-相位是相反的,而对于共模噪声而言在+/-两条线上都会存在,理想情况是等幅同相的,而接收端,相当于一个减法器,有用信号由于相位相反则经过减法器仍然保留,而噪声则会被抵消。而实际电路中,则会大幅度削弱。
      由此可见,差模传输相对于共模传输方式,优势在于差模方式可以有效抵消共模干扰。

到了这里,关于嵌入式五大通信协议详解 (一) UART的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • STM32串口通信详解(嵌入式学习)

    时钟信号在电子领域中是指用于同步和定时电路操作的周期性信号。它在数字系统和通信系统中起着至关重要的作用,用于协调各个组件之间的数据传输和操作。 时钟信号有以下几个重要的方面: 频率:时钟信号的频率是指单位时间内信号周期的数量。它通常以赫兹(Hz)为

    2024年02月09日
    浏览(69)
  • 嵌入式 - UART介绍

    概述 嵌入式系统经常需要集成电路之间的通信。举个例子,一个数字温度传感器向主控芯片报告房间的环境温度。通常情况,这种数据会通过一个串行接口来传输。 那么,什么是串行接口? 在最基本的角度来说,串行接口是一个移位寄存器,每次将数据移入/移出一个比特。

    2024年02月08日
    浏览(53)
  • 【嵌入式总复习】Linux管道详解——管道通信、无名管道、有名管道、具体应用示例

    进程间的通信方式有五种,分别为:管道,信号量,共享内存,消息队列和套接字 把一个程序的输出直接连接在另外一个程序的输入。 管道分为有名管道和无名管道两种,它们的区别是: 无名管道只能在父子进程之间进行通信。 有名管道又称为命名管道,可以在任意两个进程之间进行

    2024年02月08日
    浏览(60)
  • 嵌入式Linux开发实操(八):UART串口开发

    串口可以说是非常好用的一个接口,它同USB、CAN、I2C、SPI等接口一样,为SOC/MCU构建了丰富的接口功能。那么在嵌入式linux中又是如何搭建和使用UART接口的呢? 一、Console接口即ttyS0 ttyS0通常做为u-boot(bootloader的一种,像是Windows的BIOS),它需要一个交互界面,一般使用ttyS0,即可

    2024年02月12日
    浏览(42)
  • 【嵌入式基础】串口通信操作实例

    本文主要介绍流水灯实验和串口通信的实验过程,对串口协议和RS-232标准,RS232电平与TTL电平的区别,以及\\\"USB/TTL转232\\\"模块(以CH340芯片模块为例)的工作原理这些知识也有了一定的涉及。 目录 一、了解串口协议以及\\\"USB/TTL转232\\\"模块的工作原理 1、串口协议 2、RS-232标准 3、

    2024年02月01日
    浏览(66)
  • 嵌入式学习笔记——SPI通信

    之前已经介绍了STM32的ADC、DMA、EXTI、TIME、NVIC、USART以及普通IO模式,此系列笔者还打算写最后三个大的内容,分别是SPI通信、IIC通信以及看门狗,后面就看大家的需求了,需要什么可以留在评论区,本文首先来介绍SPI的有关知识。 在通信协议分类的介绍中,提到过SPI,它是一

    2023年04月09日
    浏览(48)
  • 嵌入式学习笔记——IIC通信

    本文接着之前的M4系列介绍,对另外一个十分常见的通信总线进行一个介绍,就是IIC总线。 首先,还是找个免费劳动力来做一个官方的介绍,下面这一段话非常全面的介绍了IIC的各个特征,用之前提到的通信特征来总结,IIC是一种串行,同步,半双工,板级有线通信。与SPI对

    2024年02月06日
    浏览(77)
  • 《嵌入式系统开发实践》实验三 进程通信

    一、 实验目的 掌握无名管道与有名管道的进程通信; 掌握消息队列的读写操作; 掌握共享内存的通信机制。 二、 实验任务与要求 管道读写程序的编写与应用; 消息队列的发送和接收程序的编写和应用; 共享内存的创建、连接和分离编程和应用。 三、 实验工具和环境

    2024年02月07日
    浏览(55)
  • 【无标题】嵌入式开发-IIC通信介绍

    IIC(Inter-Integrated Circuit)是一种两线式串行总线协议,用于连接微控制器及其他外围设备。在IIC总线上的数据传输速率可以是标准模式(100Kbit/s),快速模式(400Kbit/s)和高速模式(3.4Mbit/s)。 IIC的起始和停止条件由SCL(Serial Clock Line,串行时钟线)和SDA(Serial Data Line,串行

    2024年02月10日
    浏览(55)
  • 【蓝桥杯嵌入式】蓝桥杯嵌入式第十二届省赛题,考点:模拟电压,串口通信,计时器

     🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都在这儿哦,欢迎大家前往订阅本专题,获取更多详细信息哦🎏 🎏【蓝桥杯嵌入式】蓝桥杯第十届省赛真题 🎏【蓝桥杯嵌入式】蓝桥杯第十二届省赛程序真题 🎏【蓝桥杯嵌入式

    2023年04月09日
    浏览(88)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包