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

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

3天内不再提示

UART传输的数据被封装成数据包

电子设计 来源:电子设计 作者:电子设计 2022-02-21 11:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

介绍UART

最早的串行通讯设备可以追溯到电报机,它使用长度可变的脉冲信号进行数据传输。要说早期的芯片级UART,不得不提一下DEC,该公司的PDP系列计算机用上了第一个UART。当时的UART的线路占据了整个电路板,体积巨大!可以联想一下早期计算机的样子,如下图。

如今PC机上的串口早已被USB取代,对RS-232(也称标准串口)有需求的用户通常使用USB转串口线,这里常见的有CH340串口驱动程序。在UART通信中,两个UART直接通信。

发送端的UART将来自控制设备(如CPU)的并行数据转换为串行数据,以串行方式将其发送到接收端的UART,然后由接收端的UART将串行数据转换为并行数据以用于接收设备的正常处理。这里只需要两条线RX/TX即可在两个UART之间传输数据,如下图所示。

UART传输的数据被封装成数据包。每个数据包包含1个起始位,5~9个数据位(取决于UART的具体设置),一个可选的奇偶校验位以及1个或2个停止位,如下图所示。

起始位

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

数据

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

校验位

在串口通信中一种简单的检错方式。有四种检错方式:

偶校验

奇校验

高校验

低校验

对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。

停止位

发送端UART将数据传输线从低电压驱动到高电压至少持续两位数据的时间宽度来表示整个数据包的传输已经结束。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容错性越好,但是数据传输率同时也越慢。

波特率

波特率是串口数据的传输速度,即Bit/s,常见的波特率比如:9600,19200,38400,57600,115200等。假设目前UART的配置为,1个起始位,8个数据位,0个校验位,1个停止位,那么9600的波特率,可以计算出每一位数据的时间宽度为:

o4YBAGAHxKWADljhAAAQjK6T-sg963.png

那么传输一个字节(也就是10 bit 数据)需要的时间为 1.04 毫秒。

UART传输过程

①发送端UART从数据总线转换并行数据。

②发送端UART将起始位,奇偶校验位和停止位添加到数据包中,示意图如下。

③整个数据包从发送端UART串行发送到接收端UART,接收端UART按照预先配置好的波特率对数据线进行采样,示意图如下。

④接收端UART解析接收的数据,丢弃数据包中的起始位,奇偶校验位和停止位。

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

本文转自: STM32嵌入式开发(微信号:c-stm32),作者:acket,转载此文目的在于传递更多信息,版权归原作者所有。

审核编辑:何安

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

    关注

    6078

    文章

    45566

    浏览量

    673296
  • uart
    +关注

    关注

    22

    文章

    1319

    浏览量

    106948
  • 异步串行
    +关注

    关注

    0

    文章

    7

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MIMXRT1189奇数长度UDP数据包的最后一个字节出现问题,为什么?如何解决?

    我遇到了一个问题,即奇数长度 UDP 数据包的最后一个字节无法通过线路正确发送。最后一个字节似乎是未初始化或过时的数据。如果我将 UDP 数据包填充到偶数长度(2 字节绑定),则数据
    发表于 04-17 07:47

    PI7C9X2G304EV:PCI Express Gen 2 数据包交换机的深度解析

    PI7C9X2G304EV:PCI Express Gen 2 数据包交换机的深度解析 在当今的电子设备中,PCI Express(PCIe)技术扮演着至关重要的角色,它为设备之间的数据传输提供了
    的头像 发表于 04-16 17:30 370次阅读

    CW32R030可以兼容BLE及XN297L数据包,请问这个XN297L数据包是什么?

    CW32R030可以兼容BLE及XN297L数据包,请问这个XN297L数据包是什么?
    发表于 01-20 06:37

    bk3633 usb 设备如何读取主机向端点0 发送数据包

    bk3633 usb 设备如何读取主机向端点0 发送数据包
    发表于 12-30 13:03

    【道生物联TKB-623评估板试用】-3.数据传输

    1.根据不同速率模式查验数据传输 已知速率模式有 10 种; 24/155761bps,155761bps 代表每秒能传输约 15.5 万个二进制位。 有一个模块丢失 1 个数据包,SNR13
    发表于 11-01 00:22

    使用MCU200T开发板的UART口进行数据传输

    ;amp;gt;Source->Drivers文件夹里可以看到。 完成uart口初始化后,我们开启中断发送使能。 根据链路状态寄存器LSR的状态判断是否有数据UART传输
    发表于 10-28 08:16

    串口DMA接收数据包丢失怎么解决?

    RTT串口DMA接收数据,超过缓冲区后为什么会吞掉一个数据包呢,不能每次处理完后清除缓冲区数据吗,感觉接收的数据是累计的,累计满之后会重新覆盖,在最后一个
    发表于 09-29 07:50

    请问DCTCP与DCUDP 的登录数据包和心跳数据包与服务器端是如何交互的?

    DCTCP与DCUDP 的登录数据包和心跳数据包与服务器端是如何交互的?
    发表于 08-06 06:29

    在EZ串行的BLE“无响应写入”中, CAN一次通信中接收的最大数据包大小是多少?

    :所有数据都显示在与 ez-Serial 和 PUART 连接的 TeraTerm 上 [问题] (1)在 EZ 串行的 BLE“无响应写入”中, CAN 一次通信中接收的最大数据包大小是多少? (2
    发表于 07-07 07:33

    Android14在BLE中,当MTU超过 517时,如何处理数据传输

    的情况下: 在分段传输过程中,是否应该对每个数据包应用单独的延迟? 芯片组制造商是否有关于分段传输的具体注意事项或性能优化指南? 当前的 OTA 问题是否(BTSDK-10583)与上述请求 MTU 有关吗? 使用分段
    发表于 07-01 06:56

    RDMA简介7之可靠传输

    可靠传输技术旨在通过多种方法确保数据包传输过程中不会丢失或损坏,同时保证数据包按发送顺序到达接收端,其要求在链路发生丢或网络发生拥塞等情
    发表于 06-13 10:01

    蓝牙数据通道空口数据包

    ​ 与蓝牙广播相对应,蓝牙数据包是另一种Bluetooth LE packet。蓝牙数据包是蓝牙数据信道空中的简称,表示空中
    发表于 06-03 10:51

    能否使用两个 FX3 设备实现 USB 数据包嗅探、插入和移除?

    能否使用两个 FX3 设备实现 USB 数据包嗅探、插入和移除?如果需要,除了两个 FX3 设备外,还需要哪些硬件(如果有的话)?
    发表于 05-26 07:16

    更改最大数据包大小时无法识别USB设备如何解决?

    将生产者 EP 端点描述符中的最大数据包大小从 1024 字节更改为 512 字节时,无法识别 USB 设备。 请告知如何解决这个问题。
    发表于 05-20 08:13

    使用CyU3PDmaChannelCommitBuffer提交超过1024字节数据时usb异常大怎么解决?

    你好,我正在尝试使用fx3实现USB3Vision设备,但是当我使用CyU3PDmaChannelCommitBuffer函数提交超过1024字节数据时,主机获取到的USB数据包变得非常大
    发表于 05-13 06:11