首页 > 其他分享 >(转载)为什么UART串口通信要16倍过采样数据

(转载)为什么UART串口通信要16倍过采样数据

时间:2023-12-28 16:59:38浏览次数:27  
标签:采样 16 UART 检测 数据位 串口 数据 时钟

增强抗干扰是原因之一

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

 

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

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

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

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

 

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

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

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

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

 转载自:https://blog.csdn.net/wordwarwordwar/article/details/80178708

标签:采样,16,UART,检测,数据位,串口,数据,时钟
From: https://www.cnblogs.com/mickey-double/p/17933048.html

相关文章

  • 嵌入式教学实验箱_数字信号处理实验箱_操作教程:5-16 灰度图像线性变换(LCD显示)
    一、实验目的学习灰度图像线性变换的原理,掌握图像的读取方法,并实现在LCD上显示线性变换前后的图像。二、实验原理图像线性变换一般成像系统只具有一定的亮度范围,亮度的最大值与最小值之比称为对比度。由于形成图像的系统亮度有限,常出现对比度不足的弊病,使人眼观看图像时视觉效果很......
  • 2016.6 六级English作文
    1.机器人Directions:Forthispart,youareallowed30minutestowriteashortessayone-learning.Trytoimaginewhatwillhappenwhenmoreandmorepeoplestudyonlineinsteadofattendingschool.Youarerequiredtowriteatleast150wordsbutnomoret......
  • [C++ 从入门到精通] 16.RTTI、dynamic_cast、typeid、虚函数表
    文章预览:一.RTTI是什么二.dynamic_cast类型(指针/引用)转换2.1C风格的强制类型转换2.2指针转换(常见用法)2.3引用转换三.typeid运算符四.type_info类五.RTTI与虚函数表一.RTTI是什么RTTI(Run-TimeTypeIdentification):通过运行时类型信息,程序能够使用基类的指针或引用来检查......
  • 串口接收与转发
    STM32F107的内核是ARMCortex-M3,主频是72MHz.RAM是20K的SRAM,ROM是64K的FLASH。供电范围是2.0~3.6V,标准是3.3V.STM32是ST公司基于ARM公司生产的Cortex-M内核这个MCU根据自身需要完善外围电路所开发的32位单片机。ARM生产的内核有Cortex-A系列,Application,手机领域&苹果基于ARM架......
  • Ubuntu16下QEMU6.1.0安装和使用完整流程
    目录一、测试环境二、环境搭建1、安装依赖库2、安装pyhton3.82.1、下载Python3.8.172.2、创建新版python的安装目录(便于卸载)2.3、安装依赖库2.4、解压安装包2.5、安装2.6、添加环境变量2.7、配置python3默认版本为3.83、安装gcc73.1、下载安装:3.2、指令安装:三、QEMU安装1、下载解......
  • 文心一言 VS 讯飞星火 VS chatgpt (166)-- 算法导论13.1 6题
    六、用go语言,在一棵黑高为k的红黑树中,内部结点最多可能有多少个?最少可能有多少个?文心一言:红黑树是一种自平衡的二叉查找树,其中每个节点都有一个颜色属性,可以是红色或黑色。红黑树满足以下性质:每个节点或者是红色,或者是黑色。根节点是黑色。每个叶节点(NIL或空节点)是黑色。......
  • 03 CP2104串口驱动安装
    1概述串口是最常用的一种调试工具,开发过程中我们经常会使用串口输出一些调试信息,在LINUX下也会用串口控制台控制LINUX系统。目前的串口,大部分都是USB转串口。CP2104是一款非常稳定好用的USB转串口芯片。接下来我们看下如何进行驱动安装。2软件下载登录米联客技术论坛https://......
  • ARC168
    [ARC168A]<Inversion>之前打了,忘了,懒得想了,咕。$\texttt{Code}$#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#defineilinline#definereregisterconstintN=3e5+113;intn,ans;chara[N];ilintread(){reintx=0,f=1;char......
  • 03 RS485串口程序收发环路设计
    软件版本:VIVADO2021.1操作系统:WIN1064bit硬件平台:适用XILINXA7/K7/Z7/ZU/KU系列FPGA登录米联客(MiLianKe)FPGA社区-www.uisrc.com观看免费视频课程、在线答疑解惑!1概述在前面的课程中,我们已经学习了UART串口程序的设计,在工业场合为了提高串口的抗干扰能力,以及传输距离,RS48......
  • AtCoder Regular Contest 168 F Up-Down Queries
    洛谷传送门AtCoder传送门貌似是第三道问号题?感觉前面这个转化不是人能想到的。。。考虑维护\(y\)的差分序列。更进一步地,我们类比slopetrick,维护一个可重集,里面有\(y_{i+1}-y_i\)个\(i\)(为了方便我们让每次操作时\(y_{m+1}\)加\(1\))。那么一次操作就相当于,插......