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

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

3天内不再提示

UART串口通信使用16倍过采样数据的原因

硬件攻城狮 来源:硬件攻城狮 2024-02-21 13:38 次阅读

增强抗干扰是原因之一

标准UART可以选16倍采样,也可以选64倍采样,个人觉得应该是方便分频设计。

标准UART的RXD前端有一个"1到0跳变检测器",当其连续接受到8个RXD上的地电平时,该检测器就认为RXD线出现了起始位,进入接受数据状态.在接受状态,接受控制器对数据位7,8,9三个脉冲采样,并遵从三中取二的原则确定最终值.采用这一方法的根本目的还是为了增强抗干扰,提高数据传送的可靠性,采样信号总是在每个接受位的中间位置,可以避开数据位两端的边沿失真,也可以防止接受时钟频率和发送时钟频率不完全同步引起的误差。

首先回顾一下异步串口通信的数据格式:

c386fa5c-d070-11ee-a297-92fbcf53809c.png

由于在空闲状态时,传送线为逻辑“1”状态,而数据的传送总是以一个起始位“0”开始,所以当接收器检测到一个从“1”向“0”的跳变时,便视为可能的起始位(要排除干扰引起的跳变);起始位被确认后,就知道发送器已开始发送,接收器就可以按这个数据通信格式接收后续的数据了;当检测到停止位“1”后就表明一帧字符数据已发送完毕。

关于接收器的设计最主要的一点是如何提高采样的准确率,最好是保证采样点处于被采样数据的时间中间点。所以,在接收采样时要用比数据波特率高n倍(n≥1)速率的时钟对数据进行采样。在本程序中用16倍波特率时钟进行采样。结合图示,我们讲解一下如何让采样时刻处于被采样数据的时间中间点:

c38b9dd2-d070-11ee-a297-92fbcf53809c.png

1.在t1时刻若检测到低电平,就开始对这个低电平进行连续的检测

2. 当检测了8个时钟周期后,到达t2,此刻,若前面的8个周期都是低电平,则认为检测到了起始脉冲。否则就认为是干扰,重新检测。

3. 在检测到起始位后,再计数16个采样时钟周期就到达了第一个数据位的时间中间点t3,在此刻采样数据并进行保存。

4. 然后再经过16个周期,就是第二个数据位的时间中间点,在此时刻进行采样;然后,再经过16个周期,就是第三个数据位的时间中间点, 在此时刻进行采样…..一直这样采样,直到把所有的数据位采样完毕。




审核编辑:刘清

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

    关注

    112

    文章

    16073

    浏览量

    176972
  • 接收器
    +关注

    关注

    14

    文章

    2453

    浏览量

    71746
  • uart
    +关注

    关注

    22

    文章

    1218

    浏览量

    101091
  • 串口通信
    +关注

    关注

    34

    文章

    1607

    浏览量

    55363
  • 时钟采样
    +关注

    关注

    0

    文章

    4

    浏览量

    3355

原文标题:为什么UART串口通信要16倍过采样数据

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    通信技术:UART串口通信开源代码实操!

    今天我们分享的是关于UART串口通信示例,欢迎大家探讨
    的头像 发表于 11-05 11:56 340次阅读
    <b class='flag-5'>通信</b>技术:<b class='flag-5'>UART</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>开源代码实操!

    请问单片机和GSM模块通信使用的串口可以同时使用在电脑上打印调试信息吗?

    单片机和GSM模块通信使用的串口,还能同时使用在电脑上打印调试信息不?搞了半天没现象,是这个原因不?一个串口引脚既和GSM模块通信,又在电脑
    发表于 03-14 06:35

    介绍一种Atmega16单片机串口通信

    制作而成。串口通信需要使用到的内部寄存器在进行程序编写前需要对16单片机中的寄存器的作用和使用方法有所了解,下面为16单片机串口
    发表于 07-13 07:46

    niosii的UART串口通信

    niosii的UART串口通信niosii的UART串口通信
    发表于 04-06 17:03 1次下载

    基于51单片机的UART串口通信

    基于51单片机的UART串口通信详解。
    发表于 11-21 10:14 6.3w次阅读
    基于51单片机的<b class='flag-5'>UART</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    uart是什么意思?认识uart串口

    设备没有显示屏,无法获得嵌入式设备实时数据信息,通过UART串口和超级终端相连,打印嵌入式设备输出信息。并且在对嵌入式系统进行跟踪和调试时,UART
    发表于 12-06 14:51 10.9w次阅读
    <b class='flag-5'>uart</b>是什么意思?认识<b class='flag-5'>uart</b><b class='flag-5'>串口</b>

    串口通信的原理,IO口模拟UART串口通信

    UART串口波特率,常用的值是300、600、1200、2400、4800、9600、14400、19200、28800、38400、57600、115200等速率。IO口模拟UART串行通信
    的头像 发表于 05-04 15:26 2.2w次阅读
    <b class='flag-5'>串口</b><b class='flag-5'>通信</b>的原理,IO口模拟<b class='flag-5'>UART</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    如何使用FPGA实现串口通信的资料和程序免费下载

    UART接收。因为只有数据线,没有时钟,这种叫异步通信。首先双方必须约定好通信用的时钟频率, 但是双方用的时钟必定有误差, 而且不知道每个bit 的起始时间。这两点是造成你有时候收到对
    发表于 09-23 16:48 5次下载
    如何使用FPGA实现<b class='flag-5'>串口</b><b class='flag-5'>通信</b>的资料和程序免费下载

    AD776:16位100kSPS采样ADC过时数据

    AD776:16位100kSPS采样ADC过时数据
    发表于 05-10 16:03 1次下载
    AD776:<b class='flag-5'>16</b>位100kSPS<b class='flag-5'>过</b><b class='flag-5'>采样</b>ADC过时<b class='flag-5'>数据</b>表

    Atmega16单片机串口通信

    制作而成。串口通信需要使用到的内部寄存器在进行程序编写前需要对16单片机中的寄存器的作用和使用方法有所了解,下面为16单片机串口
    发表于 11-15 13:21 13次下载
    Atmega<b class='flag-5'>16</b>单片机<b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    C51的UART 串口通信

    C51的UART 串口通信
    发表于 11-29 12:21 11次下载
    C51的<b class='flag-5'>UART</b> <b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    UART串口通讯

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

    STM32F103VE USART & UART串口通信

    STM32F103VE共有5个串口功能,其中USART1,USART2,USART3为通用同步异步串口通信UART4,UART5为通用异步
    发表于 12-24 19:06 24次下载
    STM32F103VE USART & <b class='flag-5'>UART</b><b class='flag-5'>串口</b><b class='flag-5'>通信</b>

    Uart的接收采样率为什么是发送速率的16

    学过串口通信的朋友都知道这个设计,这个来源在最早要追溯到8086处理器芯片中,为了兼顾速度和稳定性,采样倍数就采取了16。所以就一直流传下
    的头像 发表于 01-12 10:12 2123次阅读

    UART串口通信协议是什么?

    ,广泛应用于嵌入式领域。 在UART串口通信协议中,数据以字节的形式进行传输。发送和接收端的通信流程如下: 1、
    的头像 发表于 03-19 17:26 1171次阅读