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

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

3天内不再提示

UART通讯原理

冬至子 来源:华维单片机编程 作者:华维 2023-06-06 15:01 次阅读

- 前言 -

开发中经常用到串口通讯,串即串行,顾名思义,是指数据在一根数据线上按照二进制的数位,从低到高位一位一位的传输。单片机中的串口有UART,USART。

UART/USART 在许多 DIY 电子项目中用于将 GPS 模块、蓝牙模块、 RFID 读卡器模块等连接到Raspberry PiArduino 或其他微控制器

- UART -

UART介绍:

我们今天要介绍的UART,全称Universal Asynchronous

Receiver/Transmitter,通用异步收发传输器。使用TTL电平信号,和电脑的COM口(遵循RS-232)不同。它们之间不能直接通讯,需要在之间加入转换器(如MAX232)。

Tips:

采用二进制来表示数据时:

TTL(晶体管-晶体管逻辑电平)电平信号规定,+5V等价于逻辑“1”,0V等价于逻辑“0”。

RS-232规定逻辑“1”的电平为-5V~-15 V,逻辑“0”的电平为+5 V~+15 V

UART工作原理

和其它串口一样,数据按照二进制从低位到高位一位一位的传输,能将要传输的数据在串行通信与并行通信之间加以转换,能够灵活地与外部设备进行全双工数据交换。例如要传输一个字节的数据10001110,它是从低位0开始,一位一位的传输过去。

在 UART 通信中,两个 UART 直接相互通信。发送端将来自控制设备(如 CPU)的并行数据转换为串行形式,接着将其串行传输到接收端,然后接收端将串行数据转换回并行数据以供接收设备使用。

数据从一个UART的发送引脚(Tx) 流向另一个UART的接收(Rx) 引脚:

图片

UART通讯分类:

单工:UART只用Tx或Rx其中一根线进行通讯,也就是只作接收或发送;

半双工:UART在同一时间,只用作发送或接收;

全双工:UART在发送的同时,也可以接收;

UART波特率:

UART的波特率是指每秒传输的二进制位数(单位bps),比如9600bps,意思就是每秒钟可以传输9600个位(bit)。

例如:设字符传输的速率为120字符/秒,而每1个字符为10位(bit),那么传送的波特率为:10位/字符 * 120 字符/秒 = 1200 /秒 = 1200bps。那么每1位二进制位(bit)的传送时间:

T = 1/1200 = 0.833ms

UART要求发送与接收两个UART的波特率配置相同。如果发送与接收波特率不同,相差很大,接收端采样点跨过多个电平,造成接收丢失,或者造成波特率不匹配,接收失败,如下图:

图片

常见的波特率有9600、115200、128000、256000等。

- 通讯 -

通讯过程:

UART属于异步传输数据,这意味着没有时钟信号将发送的位输出与接收的位采样同步,也就是发送与接收使用各自的时钟。发送端将开始和停止位添加到传输的数据帧中,通过数据帧中定义的开始位和结束位,接收端知道何时开始读取这些位。

每个数据帧包含 1 个起始位、5 到 9 个数据位(取决于 UART的设置,如果有奇偶校验位是5到8,没有则是5到9)、一个可选的奇偶校验位和 1 个或 2 个停止位:

图片

起始位:UART 数据传输线在不传输数据时通常保持在高电平。要开始发送数据时,发送端UART先在一个时钟周期内将传输线从高电平拉到低电平。当接收端UART 检测到从高到低的电压转换时,它开始以设置好的波特率的频率读取数据帧中的位。

数据:数据帧包含正在传输的实际数据。如果使用奇偶校验位,它可以是 5 位到 8 位。如果不使用奇偶校验位,则数据帧可以是 9 位。在大多数情况下,首先发送的数据是最低有效位。

校验:奇偶校验位是接收端UART 判断数据在传输过程中是否发生变化的一种方式。位会因电磁辐射、不匹配的波特率或长距离数据传输而发生改变。接收端 UART 读取数据帧后,检查数据部分值为1的个数是奇数还是偶数。当奇偶校验位与数据匹配时,UART 知道传输没有错误。

停止:发送端UART 将数据传输线从低电平拉到高电平持续至少两个位的时间来表示整个数据包的传输已经结束。

发送接收过程:

1.UART 从数据总线并行接收数据:

图片

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

图片

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

图片

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

图片

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

图片

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

    关注

    48

    文章

    6812

    浏览量

    147652
  • 单片机
    +关注

    关注

    6001

    文章

    43978

    浏览量

    620871
  • 串口通讯
    +关注

    关注

    1

    文章

    249

    浏览量

    24545
  • UART接口
    +关注

    关注

    0

    文章

    123

    浏览量

    15068
  • RFID读卡器
    +关注

    关注

    0

    文章

    56

    浏览量

    11244
收藏 人收藏

    评论

    相关推荐

    UART通讯过程详解

    UART通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通信双方接三根线,RX、TX和GND。其中,TX用于发送数据,RX用于接受数据,双方收发交叉对接,支持全双工方式。
    的头像 发表于 09-28 15:06 2703次阅读
    <b class='flag-5'>UART</b><b class='flag-5'>通讯</b>过程详解

    通过中断的方式进行UART通讯

    目录前言数据格式波特率产生相关寄存器相关程序配置中断相关内容配置通讯相关内容配置波特率串口及接收中断配置接收中断回调函数主逻辑UART模式对比不同配置波特率误差表前言华大单片机HC32L110
    发表于 12-06 06:55

    如何解决UART通讯不受长度和回车等字符限制?

    如何解决UART通讯不受长度和回车等字符限制?
    发表于 12-13 06:47

    如何实现基于STM32F103ZET6的UART通讯

    什么是IAP,为什么要IAP?如何实现基于STM32F103ZET6的UART通讯
    发表于 12-14 06:35

    钜泉(HiTrendtech) HT7017,现货 UART 通讯接口的高精度单相多功能计量芯片

    HT7017是-颗带UART通讯接口的高精度单相多功能计量芯片。芯片的工作电压范围是4.5 ~ 5.5V。工作晶振为6MHz。1.2. 芯片特性◆三路 22 bit Sigma-Delta ADC
    发表于 03-09 11:11

    关于485通讯UART通讯

    请问有人知道吗,就是目前我的电路板是485通讯的,现在我想转换成UART通讯,那么通过外接怎样的电路到我的485通讯接口可以实现呢
    发表于 04-11 09:10

    uart通讯问题求助

    各位好,我是刚工作的新手,最近接手一个传感器的项目,其中有一个问题是这样的:芯片是KEAZ128,CO2传感器跟mcu通讯时,CO2正确的应答数据是16 05 01+四个字节数据+校验和。通过串口转
    发表于 04-15 12:46

    AB32VG1之UART通讯相关资料分享

    1、AB32VG1之UART通讯  TTL转RS232模块一个,蓝讯UART1。  串口参数为:波特率9600、停止位1数据位8、无友好。  软件  开启UART1  在硬件中使能
    发表于 10-21 14:53

    使用ISP Uart为LPC5528 CFPA和CMPA编程流程,IC没有响应,Uart通讯失败的原因?

    目前正在开发LPC5528 CFPA和CMPA编程流程,使用ISP Uart。 但是刚开始发送(0x5A 0xA6)(波特率115200),IC没有响应,看来Uart通讯失败  我们的原理图如下,您有什么建议吗?  
    发表于 05-29 06:41

    ARM中基于DMA的高效UART通讯及其应用

    UART通讯中,通过采取DMA方式,直接将UART接收的数据转移到设定好的RAM区,然后设置相应的全局标志,通知主程序数据可用就可以了。
    发表于 04-16 16:32 7207次阅读
    ARM中基于DMA的高效<b class='flag-5'>UART</b><b class='flag-5'>通讯</b>及其应用

    msp430 UART 通讯寄存器的详细解读

    msp430 UART 通讯 寄存器的详细解读 相关参数的设置和命令的详见等等
    发表于 08-15 19:03 1次下载

    瑞萨G13单片机UART通讯例程资料包下载

    瑞萨G13单片机UART通讯例程
    发表于 04-12 11:03 12次下载

    UART通讯模块介绍

    功耗,并且集成了丰富的外设模块,可以满足工业和消费等多种应用。MSP430FR2311中的eUSCI_A0支持UART通讯,本文对此UART模块的寄存器配置进行了详细的分析和计算,以帮助工程师对此
    的头像 发表于 01-11 10:43 1806次阅读

    振弦采集模块UART 通讯协议

    振弦采集模块UART 通讯协议 UART 接口支持标准的工业 MODBUS 通讯协议( 03、 04、 06、 16 指令码)和自定义的简单 AABB协议以及$字符串指令集。 前两种协
    发表于 11-15 09:40 213次阅读
    振弦采集模块<b class='flag-5'>UART</b> <b class='flag-5'>通讯</b>协议

    VM系列振弦采集模块 温度传感器使用及UART 通讯参数

    VM系列振弦采集模块 温度传感器使用及UART 通讯参数 VM系列振弦采集模块 VMXXX 模块支持外接温度传感器,通过设置寄存器 TEMP_EX 的值来选择外接温度传感器的类型, 通过读取寄存器
    发表于 12-13 10:07 341次阅读
    VM系列振弦采集模块 温度传感器使用及<b class='flag-5'>UART</b> <b class='flag-5'>通讯</b>参数