网站首页 全球最实用的IT互联网站!

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

嵌入式分享#60:UART 我只会 TX、RX

时间:2026-04-10 15:14

人气:

作者:admin

标签:

导读:  说到 UART ,我只知道TX、RX两根线,对“什么是 RTS/CTS 硬件流控”一概不懂。今天正好有时间,就来搞它,懂它,搞懂它!   为什么需要“流控”? 先举个日常场景:小区快递员(发...
说到 UART ,我只知道TX、RX两根线,对“什么是 RTS/CTS 硬件流控”一概不懂。今天正好有时间,就来搞它,懂它,搞懂它!wKgZO2nKeIKAH5FkAABChmOAHH8941.png

为什么需要“流控”?


先举个日常场景:小区快递员(发送方)送快递,你(接收方)在家收快递。如果你正在忙(比如做饭),没法及时开门收件,快递员硬要把快递塞进去,很可能导致快递丢失;但如果居你能提前告诉快递员“现在能收”或“等下再来”,就能避免这种问题。

UART通信里的“流控”,主要就是解决这个问题:发送方和接收方的处理速度可能不匹配(比如发送方是高速 SoC,接收方是低速传感器),如果发送方一股劲拼命发数据,接收方缓冲区满了处理不过来,多余的数据就会丢失。流控的作用,就是让收发双方“互相沟通”,协调传输节奏。

流控分两种:软件流控(靠特殊字符XON/XOFF)和硬件流控(靠专用引脚RTS/CTS)。今天重点聊更可靠、更常用的——RTS/CTS硬件流控。

RTS和CTS 是两个“通信信号兵”


UART基础通信只需要TX(发送线)、RX(接收线)、GND(地线)三根线,而RTS/CTS硬件流控需要额外增加两根专用引脚,这两根线就像两个“信号兵”,专门负责传递“能不能发数据”的指令。

wKgZO2nKeIKAcfwDAAAzDizjbUE333.jpg

RTS(Request To Send)——请求发送:由“接收方”控制,发给“发送方”的信号,意思是“我(接收方)准备好了,你可以发数据了”(或“我忙,别发了”); 注意:很多人会搞反控制方,记住“RTS是接收方发的请求”,不是发送方!

CTS(Clear To Send)——允许发送:由“发送方”控制,发给“接收方”的信号?不!错了!再记一遍:CTS是“对RTS的响应”,通常和RTS交叉连接——接收方通过RTS发请求,发送方看到后,通过CTS回应“我收到你的请求了,马上发/停止发”;更简单的记法:RTS=接收方的“就绪信号”,CTS=发送方的“应答信号”,两根线交叉连接(A的RTS接B的CTS,A的CTS接B的RTS)。

补充:硬件上,RTS和CTS都是“低电平有效”(大部分场景)——比如接收方拉低RTS,就表示“我就绪了”;发送方拉低CTS,就表示“我收到指令,准备发/已停止”。

总结

RTS/CTS硬件流控的一句话概括:接收方靠RTS发“就绪/暂停”信号,发送方靠CTS响应,从硬件层面协调传输节奏,避免数据丢失。它不需要占用数据带宽,可靠性高,是高速、大数据量UART通信的“必备技能”。

你在使用UART流控时,有没有遇到过接线接反、配置无效这类坑?欢迎评论区留言交流分享~

(完)


本人专注 Linux 驱动 & Linux/Android BSP 开发调试,可接外包项目/技术支持/问题定位。有需求或交个朋友可加微信:【Chen_WeChat2026】。


温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信