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

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

3天内不再提示

UART串口通讯协议解析

嵌入式单片机MCU开发 来源:嵌入式单片机MCU开发 作者:嵌入式单片机MCU开 2022-11-14 16:48 次阅读

概述

通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。 具体实物表现为独立的模块化芯片,或作为集成于微处理器中的周边设备。一般是RS-232C规格的,与类似Maxim的MAX232之类的标准信号幅度变换芯片进行搭配,作为连接外部设备的接口。在UART上追加同步方式的序列信号变换电路的产品,被称为USART(Universal Synchronous Asynchronous Receiver Transmitter)。

接口

在UART通信中,两个UART直接相互通信。发送UART将来自CPU等控制设备的并行数据转换为串行形式,并将其串行发送到接收UART,接收UART然后将串行数据转换回接收设备的并行数据。数据从发送UART的Tx引脚流向接收UART的Rx引脚,硬件连接比较简单,仅需要3条线,如果两个设备UART电平不一致需要转换电平再连接。

TX - 数据发送接口 RX - 数据接受接口 GND - 保证两设备共地,有统一的参考平面 在这里插入图片描述

通信协议

UART串口传输的数据被组织成数据包。每个数据包包含1个起始位,5至9个数据位,可选的奇偶校验位和1或1.5或2个停止位,协议如下: |起始位|数据位 |奇偶校验位|停止位| |--|--|--|--| | 1bit | 5-9bit |0-1bit | 1-2bit | 空闲位 :UART协议规定,当总线处于空闲状态时信号线的状态为‘1’即高电平,表示当前线路上没有数据传输。

起始位 :开始进行数据传输时发送方要先发出一个低电平’0’来表示传输字符的开始。因为总线空闲时为高电平所以开始一次通信时先发送一个明显区别于空闲状态的信号即低电平。

数据位 :起始位之后就是要传输需要传输的数据,数据可以是5,6,7,8,9位,构成一个字符,一般都是8位。先发送最低位最后发送最高位,使用低电平表示‘0’高电平表示‘1’完成数据位的传输。 奇偶校验位 :数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。校验位其实是调整个数,串口校验分几种方式:

  1. 无校验(no parity)
  2. 奇校验(odd parity):如果数据位中“1”的数目是偶数,则校验位为“1”,如果“1”的数目是奇数,校验位为“0”。
  3. 偶校验(even parity):如果数据为中“1”的数目是偶数,则校验位为“0”,如果为奇数,校验位为“1”。
  4. mark parity:校验位始终为1(不常用)。
  5. parity:校验位始终为0(不常用)。

停止位 :数据结束标志,可以是1位,1.5位,2位的高电平。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备之间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟的机会。停止位个数越多,数据传输越稳定,但是数据传输速度也越慢。 传输方向 :即数据是从高位(MSB)开始传输还是从低位(LSB)开始传输。

波特率

电子通信领域,波特(Baud)即调制速率,指的是有效数据讯号调制载波的速率,即单位时间内载波调制状态变化的次数。 波特率表示每秒钟传送的码元符号的个数,它是对符号传输速率的一种度量,它用单位时间内载波调制状态改变的次数来表示,1波特即指每秒传输1个符号。 数据传输速率使用波特率来表示。单位bps(bits per second),常见的波特率9600bps、115200bps等等,其他标准的波特率是1200,2400,4800,19200,38400,57600。举个例子,如果串口波特率设置为115200bps,那么传输一个比特需要的时间是1/115200≈8.68us。

示例

设置115200,传输单个0x62的数据,使用示波器抓得的波形如下所示。 在这里插入图片描述 上图是uart协议传输一个0x62的数据,通过示波器的uart解码而得到的波形示意图,由于未设置奇偶校验位,故在上图未显示出来;比特流格式为LSB,故从低位开始传输,接收数据为0100 0110,实际的数据应该反过来,即0110 0010(0x62)。

设置115200,传输0x55,0xAA,0x03等多个数据时,使用示波器抓得的波形如下所示。 在这里插入图片描述

上图是uart协议传输0x55,0xAA,0x03等多个数据,通过示波器的uart解码而得到的波形示意图,由于未设置奇偶校验位,故在上图未显示出来,设置的停止位为1位;比特流格式为LSB,故从低位开始传输,接收三个数据分别为1010 1010、0101 0101、1100 0000,实际的数据应该反过来,即0101 0101(0x55)、1010 1010(0xAA)、0000 0011(0x03)。

审核编辑:汤梓红

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

    关注

    14

    文章

    1540

    浏览量

    76040
  • uart
    +关注

    关注

    22

    文章

    1219

    浏览量

    101104
  • 通讯协议
    +关注

    关注

    10

    文章

    265

    浏览量

    20306
收藏 人收藏

    评论

    相关推荐

    最详细的UART通讯协议分析在这里

    UART协议,将并行输入信号转换成串行输出信号。因为UART简单实用的特性,其已经成为一种使用非常广泛的通讯协议。我们日常接触到的
    的头像 发表于 09-04 16:13 9512次阅读
    最详细的<b class='flag-5'>UART</b><b class='flag-5'>通讯</b><b class='flag-5'>协议</b>分析在这里

    UART串口通讯协议解析

    - 数据接受接口 GND - 保证两设备共地,有统一的参考平面 通信协议 UART串口传输的数据被组织成数据包。每个数据包包含1个起始位,5至9个数据位,可选的奇偶校验位和1或1.5或2个停止位
    发表于 09-12 16:01

    RS-232-C串口通讯协议解析

    RS-232-C串口通讯协议解析
    发表于 08-18 22:08

    UART串口通讯协议是什么

    UART串口通讯协议解析概述接口通信协议概述通用异步收发传输器(Universal Asynch
    发表于 07-29 08:07

    基于STM32的串口通讯协议

    通讯协议是指在嵌入式开发中,不同的硬件系统或者操作系统之间进行数据交换的方式,是一种数据通讯的规约。 通讯协议有很多种,而我今天要说的是
    发表于 08-03 06:12

    串口通讯协议的相关资料推荐

    文章目录通讯的基本概念串口通讯协议简介物理层RS-232标准USB转串口原生的串口
    发表于 12-09 08:27

    SPI、I2C、UART串行总线协议

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

    实验五 UART串口通讯实验

    UART串口通讯
    发表于 01-22 20:51 8次下载

    基于KMP算法的串口通讯协议解析邹铁

    基于KMP算法的串口通讯协议解析_邹铁
    发表于 03-17 08:00 2次下载

    UART串口通讯协议的实现

    何时发送数据: 什么时候开始,我知道你开始发送数据 2. 何时结束发送:什么时候开始,我知道你已经结束数据的发送了 3. 该怎样接受数据:接受到的数据我该怎样进行存储 3. 协议 UART一共用4根线,分别是数据发送线,数据接收线,VCC,GND,从这4根线上
    的头像 发表于 03-29 14:45 1700次阅读
    <b class='flag-5'>UART</b><b class='flag-5'>串口</b><b class='flag-5'>通讯</b><b class='flag-5'>协议</b>的实现

    【STM32学习笔记】串口通讯 — USART / UART

    文章目录通讯的基本概念串口通讯协议简介物理层RS-232标准USB转串口原生的串口
    发表于 11-26 11:51 15次下载
    【STM32学习笔记】<b class='flag-5'>串口</b><b class='flag-5'>通讯</b> — USART / <b class='flag-5'>UART</b>

    UART串口通讯

    UART串口通讯总结前言串口的基本概念串口配置的基本属性串口(Serial port)和RS-2
    发表于 12-20 19:31 24次下载
    <b class='flag-5'>UART</b><b class='flag-5'>串口</b><b class='flag-5'>通讯</b>

    STM32的串口通讯协议

    本文主要讲解串口协议和RS-232标准,以及RS232电平与TTL电平的区别;介绍"USB/TTL转232"模块(以CH340芯片模块为例)的工作原理。一、串口协议1.1
    发表于 12-24 18:37 8次下载
    STM32的<b class='flag-5'>串口</b><b class='flag-5'>通讯</b><b class='flag-5'>协议</b>

    串口通讯时的数据帧格式和通讯协议有什么区别?

    串口通讯时的数据帧格式和通讯协议是两个不同的概念,它们在串口通讯中起着不同的作用,但都是为了实现
    的头像 发表于 01-30 09:21 1793次阅读

    UART串口通信协议是什么?

    UART (Universal Asynchronous Receiver/Transmitter) 是一种通信接口协议,用于实现串口通信。它是一种简单的、可靠的、广泛应用的串口通信
    的头像 发表于 03-19 17:26 1176次阅读