news 2026/4/16 3:53:43

异步串行通信及UART硬件工作机制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
异步串行通信及UART硬件工作机制

异步串行通信原理

外设电路根据波特率在相应的时间点对引脚上的电平进行采样,并根据采样结果将电平信号转化为相应的数字值(也就是0或1),并且填充到相应的寄存器。这样一个过程就是物理信号转化成数字信号的过程。

提出有关问题

  • 既然是通过约定的波特率来进行采样,如果通信双方系统晶振有误差,随着通信的进行,那么采样点就会偏移,甚至产生错位,导致乱码?

答:对于uart通信来说,一般会有起始位,数据位和停止位这样几个阶段。其中,起始位为低电平,终止位位高电平。正常在空闲时,信号线处于高电平,当一个字节开始发送时,会先发送一个起始位(由硬件自动产生),这时候信号线电平被拉低,接收方uart电路检测到一个下降沿,标志着数据要来了,然后8个比特的数据位发送完成后,再发送一个终止位将信号线拉高,代表一个字节的数据发送完毕。由于每次发送一个字节都会有一个起始位和终止位进行同步,那么整个误差就不会随着通信时间而累加。

  • 如何减少采样时,信号线上电平浮动的干扰?

答:一般电路会在一个位时间的中间点进行采样。通过在一个位时间内进行多次采样,取中间几次的采样结果作为最终结果,这样的技术成为过采样。一般有8倍或者16倍过采样。

  • 采样时core会参与吗?

答:采样时只有uart硬件电路在工作,内核不参与。只有拿数据的时候,内核才参与,也可以让DMA去搬数据。比喻:硬件电路(USART 外设): 它像是一个勤劳的前台助理。它不停地盯着 RX 引脚(采样、计数、校验、打包装箱)。在数据没攒够一个“字长”之前,它绝对不会去打扰 Core。中断控制器(NVIC): 它像是一个门铃。当外设助理把数据装好盒(RXNE=1)并按响门铃时,Core 才会停下正在处理的复杂算法(比如 PID 控制或 UI 刷新)。Core(处理器核心): 它只负责**“决策”**。进中断后,Core 只需执行一条指令data = RDR,拿走结果,然后继续干大事。这就是为什么“外设”存在的意义:把高频、机械、实时的物理层动作固化在逻辑电路里。

总结

  • 异步串行通信按照相应的物理协议将物理信号转化成数字信号的通信过程;
  • 根据原理,我们需要告诉外设电路波特率字长有无校验位停止位长度
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 14:23:24

GLM-4.6V-Flash-WEB模型能否识别候鸟飞行高度变化?

GLM-4.6V-Flash-WEB模型能否识别候鸟飞行高度变化? 在生态保护日益依赖智能技术的今天,一个看似简单却极具挑战性的问题浮现出来:我们能否仅凭一张照片或一段视频,判断一群候鸟正在上升、滑翔还是准备降落?传统方法依…

作者头像 李华
网站建设 2026/4/2 6:24:53

声学之水声学

水声学的定义 水声学是声学的分支学科,主要研究水下声波的产生、辐射、传播、接收和量度,应用于水下目标探测及信息传输。由于声波在海水中的衰减远小于电磁波,其成为海洋探测的有效工具,在军事反潜、民用导航、海底地质勘探等领…

作者头像 李华
网站建设 2026/4/16 14:32:48

GLM-4.6V-Flash-WEB模型在风筝冲浪运动安全监控中的应用

GLM-4.6V-Flash-WEB模型在风筝冲浪运动安全监控中的应用 在沿海沙滩的清晨,风力渐强,一群风筝冲浪爱好者跃入海中。他们的动作迅捷而优美,但每一次腾空翻转都伴随着潜在风险:装备松脱、失控坠海、与其他船只碰撞……传统上&#x…

作者头像 李华
网站建设 2026/4/16 14:26:22

GLM-4.6V-Flash-WEB模型在雪地搜救行动中的视觉辅助判断

GLM-4.6V-Flash-WEB模型在雪地搜救行动中的视觉辅助判断 当一架无人机在零下20℃的雪山峡谷中盘旋,传回的画面几乎被积雪完全覆盖,仅有一小块反光区域隐约可见——是阳光打在岩石上的错觉?还是被困者手机屏幕的微弱反射?传统图像识…

作者头像 李华
网站建设 2026/4/13 3:47:03

利用UltraISO注册码最新版工具打包GLM-4.6V-Flash-WEB环境镜像

利用UltraISO注册码最新版工具打包GLM-4.6V-Flash-WEB环境镜像 在AI模型部署日益复杂的今天,一个常见的困境摆在开发者面前:明明在本地跑得通的多模态推理服务,换一台机器就因CUDA版本不匹配、Python依赖冲突或模型权重缺失而失败。尤其是面对…

作者头像 李华