UART串口的8倍过采样和16倍过采样原理

本文围绕STM32接收器数据采样展开。介绍了数据传送起始位、停止位的判断,强调接收器设计关键是提高采样准确率,要让采样点处于数据时间中间点。程序用16倍波特率时钟采样,并结合图示说明了使采样时刻处于中间点的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于在空闲状态时,传送线为逻辑“1”状态,而数据的传送总是以一个起始位“0”开始,所以当接收器检测到一个从"1"向"0”的跳变时,便视为可能的起始位(要排除干扰引起的跳变) ;起始位被确认后,就知道发送器已开始发送,接收器就可以按这个数据通信格式接收后续的数据了;当检测到停止位"1"后就表明一帧字符数据已发送完毕。关于接收器的设计最主要的一点是如何提高采样的准确率,最好是保证采样点处于被采样数据的时间中间点。所以,在接收采样时要用比数据波特率高n倍(n21)速率的时钟对数据进行采样。在本程序中用16倍波特率时钟进行采样。结合图示,我们讲解一下如何让采样时刻处于被采样数据的时间中间点:

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

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

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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瑞莱科技

感谢您的支持,希望与您交流学习

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值