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

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

3天内不再提示

UART数据帧与发送器

麦辣鸡腿堡 来源:古月居 作者:行走的皮卡丘 2023-11-09 17:42 次阅读

数据帧

对于发送设备和接收设备来说,两者的串行通信配置应该设置为完全相同。

起始位:起始位是在实际数据之前添加的同步位。起始位标记数据包的开始。通常,空闲数据线,即当数据传输线不传输任何数据时,它保持在高电压电平。为了开始数据传输,发送 UART 将数据线从高电平拉到低电平(从 1 到 0)。接收 UART 在数据线上检测到这种从高到低的变化,并开始读取实际数据。通常,只有一个起始位。

数据位:数据位是从发送方传输到接收方的实际数据。数据帧的长度可以在 5 到 9 之间(如果不使用奇偶校验,则为 9 位,如果使用奇偶校验,则只有 8 位)。

奇偶校验位:奇偶校验允许接收器检查接收到的数据是否正确。Parity 是一个低级错误检查系统,有两种类型:偶校验和奇校验。

停止位:表示一帧数据的结束。电平逻辑为“1”停止位,顾名思义,标志着数据包的结束。它通常有两位长,但通常只使用一个位。为了结束传输,UART 将数据线保持在高电压。

如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。

接收

UART受一个内部时钟信号控制。该时钟信号是数据传输率的倍频,典型是比特率的8或16倍。接收器在每个时钟脉冲时测试接收到的信号状态是否为开始比特。

如果开始比特的低电平持续传输1个比特所需时间的一半以上,则认为开始了一个数据帧的传输;否则,则认为是毛刺脉冲并忽略。

到了下一个比特时间后,线路状态被采样并送入移位寄存器。约定的表示一个字符的所有数据比特(典型为5至8个比特)接收后,移位寄存器可被接收系统使用。UART将设置一个标记指出新数据可用,并产生一个处理器中断请求主机处理器取走接收到的数据。

UART的标准特性之一是在接收下一个字符时在缓冲区保存上一个接收到的字符。这种“双缓冲区”允许接收计算机用一个字符的传输时段来获取缓冲区内的上一个字符。

许多UART有更大的FIFO缓冲区,允许主机一次处理多个字符,这特别适用于高传输数据率的串行通信同时处理器中断频率有限(通常中断间隔大于1毫秒)。

发送器

UART把一个字符放入移位寄存器,就开始产生一个数据帧。对于全双工通信,发送与接受使用不同的移位寄存器。使用更大的FIFO使得主机处理器或DMA(Direct Memory Access)放置多个字节后由UART自主完成传输。UART用一个标志位表示busy。

在 UART 中,发送器和接收器必须事先就时序参数达成一致。此外,UART 在每个数据字的开头和结尾使用特殊位来同步发送器和接收器。

在基于 UART 的串行通信中,发送器和接收器以下列方式进行通信。发送设备上的 UART 即发送 UART 从 CPU微处理器微控制器)接收并行数据并将其转换为串行数据。

该串行数据被传输到接收设备上的 UART,即接收 UART。接收 UART 在接收到串行数据后,将其转换回并行数据并提供给 CPU。由于 UART 涉及并行到串行和串行到并行数据转换,因此移位寄存器是 UART 硬件的重要组成部分(具体来说是两个移位寄存器:发送器移位寄存器和接收器移位寄存器)。

UART规则

如前所述,UART 中没有时钟信号,发送器和接收器必须就串行通信的某些规则达成一致,以实现无差错数据传输。规则包括:

•同步位(开始位和停止位)

•奇偶校验位

•数据位和

•波特率

波特率:使用波特率提到数据传输的速度。发送 UART 和接收 UART 必须在波特率上达成一致才能成功传输数据。

波特率以每秒位数为单位。一些标准波特率是 4800 bps、9600 bps、19200 bps、115200 bps 等。其中 9600 bps 波特率是最常用的一种。

让我们看一个示例数据帧,其中必须传输两个数据块,即 00101101 和 11010011。帧的格式是 9600 8N1 即 9600 bps,有 8 位数据,无奇偶校验和 1 个停止位。在这个例子中,我们没有使用奇偶校验位

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

    关注

    30

    文章

    5028

    浏览量

    117722
  • uart
    +关注

    关注

    22

    文章

    1159

    浏览量

    99961
  • 发送器
    +关注

    关注

    1

    文章

    237

    浏览量

    26560
  • 数据帧
    +关注

    关注

    0

    文章

    33

    浏览量

    6647
收藏 人收藏

    评论

    相关推荐

    #硬声创作季 #FPGA Zedboard教程-44 UART串口发送器的分析实现-1

    fpgauart发送器
    水管工
    发布于 :2022年11月04日 03:34:36

    #硬声创作季 #FPGA Zedboard教程-44 UART串口发送器的分析实现-2

    fpgauart发送器
    水管工
    发布于 :2022年11月04日 03:34:58

    #硬声创作季 #FPGA Zedboard教程-44 UART串口发送器的分析实现-3

    fpgauart发送器
    水管工
    发布于 :2022年11月04日 03:35:18

    PSoC_8位串行发送器数据手册

    •8位串行发送器的可选择时钟可达48 MHz,产生最大的6 Mbit数据速率 •数据包括起始位、可选奇偶校验位和停止位•RS-232串行数据
    发表于 11-20 15:44

    UART发送器如何进入超级终端?

    大家好,我目前正在研究简单的UART发送器,将来自FPGA(SP 605)的8位数据发送到超级终端。我验证了我的代码,我认为一切都很好,但问题是我没有看到任何进入超级终端!!我的代码在
    发表于 07-18 07:24

    PIC32MX UART错误该怎么解决?

    你好,我有一个问题,“UART错误”,并使用PIC32 MX575 F256HIF我发送非常快的数据从PuTTY(我推非常快的任何键盘的计算机键盘)通过串行/ USB电缆到PIC32
    发表于 11-01 09:07

    通用异步接收/发送器UART

    电平(在Tx端)和解释(在Rx端)。毫不奇怪,如果发送器和接收已配置为不同的数据传输频率,则UART通信将不起作用。同样,内部时钟信号必须:1)相对于预期频率足够准确; 2)在时间和
    发表于 09-18 09:00

    通用异步接收/发送器UART

    电平(在Tx端)和解释(在Rx端)。毫不奇怪,如果发送器和接收已配置为不同的数据传输频率,则UART通信将不起作用。同样,内部时钟信号必须:1)相对于预期频率足够准确; 2)在时间和
    发表于 09-25 17:43

    请问STM8 UART发送器根据M位的状态发送8位或9位的数据字怎么实现?

    STM8 UART发送器根据M位的状态发送8位或9位的数据
    发表于 11-11 06:35

    数字温度发送器电路

    数字温度发送器电路
    发表于 02-27 22:40 478次阅读
    数字温度<b class='flag-5'>发送器</b>电路

    调频光发送器电路图

    调频光发送器电路图
    发表于 04-01 09:20 690次阅读
    调频光<b class='flag-5'>发送器</b>电路图

    MAX3140集成通用异步接收发送器(UART)和失效保护的

      MAX3140是一个完整的通用异步接收发送器(UART)和一个真正的
    发表于 10-20 09:09 2014次阅读
    MAX3140集成通用异步接收<b class='flag-5'>发送器</b>(<b class='flag-5'>UART</b>)和失效保护的

    MAX3109 双通用异步接收发送器(UART)

    MAX3109先进的双通用异步接收发送器(UART)的有128字的接收和发送先进先出(FIFO),它一个高速SPI™或I ² C控制接口
    发表于 04-15 10:17 1802次阅读
    MAX3109 双通用异步接收<b class='flag-5'>发送器</b>(<b class='flag-5'>UART</b>)

    高带宽、高频发送器参考设计

    发送器(英语:Transmitter)或无线电发送器指的是一种利用天线发送无线电波的装置。无线电发送器产生交变电流,作用于天线。天线产生无线电波,并将其
    发表于 05-10 16:15 10次下载
    高带宽、高频<b class='flag-5'>发送器</b>参考设计

    开启Cache后UART无法发送数据

    有人使用STM32H743做产品开发, DMA 传输待发送数据UART 发送寄存器做后续UART通信。在开启D-Cache的情况下,
    的头像 发表于 11-23 09:02 1009次阅读