UART中RTS和CTS流控学习总结

news2025/5/19 11:24:31

UART中RTS和CTS流控学习总结

目录

  • UART中RTS和CTS流控学习总结
    • 一、流控定义
    • 二、硬件流控过程分析

一、流控定义

流控:数据在两个串口之间进行通讯,常常会出现丢失数据的现象,比如当接收端数据缓冲区满了,而发送端还有数据发送过来,本质原因是速度不匹配,处理能力不匹配。

流控就是为了解决这个速度匹配的问题,它的含义非常简单,当接收端处理数据处理不过来时,就向发送端发送不在接收信息,当发送端接收到这个信号之后,就会停止发送,直到收到可以继续发送信号在继续发送。

流控的方式有两种,一种是硬件流控,一种是软件流控,一般UART只有RX、TX两个信号,要流控的话只能是软流控;如果有RX,TX,CTS,RTS 四个信号,则多半是支持硬流控的UART。

**RTS (Require ToSend,发送请求)**为输出信号,用于指示本设备准备好可接收数据,低电平有效,低电平说明本设备可以接收数据。

**CTS (Clear ToSend,发送允许)**为输入信号,用于判断是否可以向对方发送数据,低电平有效,低电平说明本设备可以向对方发送数据。翻译为“Clear ToSend”,可以理解为清除发送,因为CTS是对方的RTS控制己方的CTS是否允许发送的功能。

二、硬件流控过程分析

如下图,设备A和设备B的TX、RX、CTS、RTS、GND连接

在这里插入图片描述

  • 设备A要发送数据给设备B

1、设备A拉低自己的RTS,告诉设备B已准备好发送数据

2、此时设备B检测到自己的CTS被拉低,得知设备A准备发送数据,若设备B未准备好,就不拉低自己的RTS;若设备B已经准备好接收,也将自己的RTS拉低,对应A的CTS拉低,此时设备A、设备B可以正常通信了

  • 设备A正在给设备B发送数据

1、设备A发送数据太快,设备B接收缓冲区快要满了,此时设备B拉高自己的RTS引脚,对应设备A的CTS引脚被拉高

2、设备A发现自己的CTS引脚被拉高,停止发送,等待自己的CTS再次拉低后再发送数据

软件流控之后有空再学习——20230726

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/792832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java读取配置文档cofing

文件结构 代码部分 import java.util.ResourceBundle;/*** Author:romulushe* Date:2022/11/9-11-09-9:18* Description:PACKAGE_NAME* version:1.0*/ public class read_config_test {public static String getConfigFileParamVal(String paramName) {ResourceBundle resourc…

商业密码应用安全性评估量化评估规则2023版更新点

《商用密码应用安全性评估量化评估规则》(2023版)已于2023年7月发布,将在8月1日正式执行。相比较2021版,新版本有多处内容更新,具体包括5处微调和5处较大更新。 微调部分(5处) 序号2021版本202…

重生之我要学C++第四天

这篇文章的主要内容是类的默认成员函数。如果对大家有用的话,希望大家三连支持,博主会继续努力! 目录 一.类的默认成员函数 二.构造函数 三.析构函数 四.拷贝构造函数 五.运算符重载 一.类的默认成员函数 如果一个类中什么成员都没有&…

论述智慧消防在高层建筑信息化管理中的作用

安科瑞 华楠 【摘要】为了顺应时代的发展,我们做好信息化时代下的“智慧消防”工作,为“智慧城市”的建设奠定良好的基础。本文主要就“智慧消防”的含义、对如高层建筑等单位进行信息化“智慧消防”管理,当前消防管理工作中所存在的问题及如…

VUE使用docxtemplater导出word(带图片) 踩坑 表格循环空格 ,canvas.toDataURL图片失真模糊问题

参考:https://www.codetd.com/article/15219743 安装 // 安装 docxtemplater npm install docxtemplater pizzip --save // 安装 jszip-utils npm install jszip-utils --save // 安装 jszip npm install jszip --save // 安装 FileSaver npm install file-save…

Java集成微信公众号的事件回调, 解密的时候报错java.secwrity.InvalidKeyException: Illegal key size

java.secwrity.InvalidKeyException: Illegal key size 这是因为jar包的原因, 下载下面这个文件 https://download.csdn.net/download/dongyan3595/88103743 找到java的jre安装目录, 将jre/lib/security下的local_policy.jar、US_export_policy.jar 2个文件替换即可。

速度优化:重新认识速度优化

作者:helson赵子健 应用的速度优化是我们使用最频繁,也是应用最重要的优化之一,它包括启动速度优化,页面打开速度优化,功能或业务执行速度优化等等,能够直接提升应用的用户体验。因此,只要是 An…

小程序----配置原生内置编译插件支持sass

修改project.config.json配置文件 在 project.config.json 文件中,修改setting 下的 useCompilerPlugins 字段为 ["sass"], 即可开启工具内置的 sass 编译插件。 目前支持三个编译插件:typescript、less、sass 修改之后可以将原.w…

Qt Core学习日记——第三天QMetaEnum(上)

QMetaEnum用来代表枚举信息,内部也是访问moc文件。从moc文件中得到对应值 需要在头文件中声明 Q_ENUM,如下红框部分 moc中qt_meta_stringdata_XTest变为: qt_meta_data_XTest变为 static const uint qt_meta_data_XTest[] { // content: 8, // revision 0, // …

继承中的访问级别

值得思考的问题 子类是否可以直接访问父类的私有成员? 思考过程 继承中的访问级别 面向对象中的访问级别不止是 public 和 private 可以定义 protected 访问级别 关键字 protected 的意义 修饰的成员不能被外界直接访问修饰的成员可以被子类直接访问 思考 为什…

【数据库 - 用户权限管理】(简略)

目录 一、概述 二、用户权限类型 1.ALL PRIVILEGES 2.CREATE 3.DROP 4.SELECT 5.INSERT 6.UPDATE 7.DELETE 8.INDEX 9.ALTER 10.CREATE VIEW和CREATE ROUTINE 11.SHUTDOWN 12GRANT OPTION 三、语句格式 1.用户赋权 2.权限删除 3.用户删除 一、概述 数据库用…

Emacs之27.0以上共享鼠标中键复制内容(一百一十七一)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

264. 丑数 II

题目描述&#xff1a; 主要思路&#xff1a; 利用动态规划的思想&#xff0c;记录2 3 5分别乘到了哪里&#xff0c;然后取最小作为新的数字。 class Solution { public:int nthUglyNumber(int n) {int dp[n1];dp[1]1;int p21,p31,p51;for(int i2;i<n;i){int num2 dp[p2]*…

【概率预测】对风力发电进行短期概率预测的分析研究(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码、数据、详细文章 &#x1f4a5;1 概述 概率预测是一种通过概率统计方法对未来事件进行预测的技术。在风力发电的短期预测中&#xff0c;概率预测可以用来对未来风速和风…

自动生成python程序调用关系逻辑图

前言 你是否因为看一个程序或者运行一个框架&#xff0c;不知道他的运行流程&#xff1f; 自己想写一个运行流程却觉得麻烦无从下手&#xff1f; graphvizpycallgraph帮你绘制让领导看了都拍桌子称赞你的python程序逻辑调用关系图&#xff01; 先来看一下我这段时间在写的一…

60寸透明屏的透明度怎么样?

60寸透明屏是一种新型的显示屏技术&#xff0c;它具有透明度高、色彩鲜艳、清晰度高等特点&#xff0c;可以广泛应用于商业展示、户外广告、智能家居等领域。 首先&#xff0c;60寸透明屏的透明度高。 透明屏采用了特殊的材料和技术&#xff0c;使得屏幕在显示内容的同时&…

2023-07-25 LeetCode每日一题(将数组和减半的最少操作次数)

2023-07-25每日一题 一、题目编号 2208. 将数组和减半的最少操作次数二、题目链接 点击跳转到题目位置 三、题目描述 给你一个正整数数组 nums 。每一次操作中&#xff0c;你可以从 nums 中选择 任意 一个数并将它减小到 恰好 一半。&#xff08;注意&#xff0c;在后续操…

uni-app云打包(android)(自有证书、云端证书、公共测试证书)

一、进入云打包入口 发行->原生App-云打包 二、证书选择 1、使用自有证书 ①进入香蕉云编&#xff08;这里采用的证书从香蕉云编进行生成&#xff09; 香蕉云编-app打包上架工具类平台 ②进入页面选择“生成签名证书”->"立即创建证书" ③选择“安卓证书生…

一些python的高级方法(闭包、装饰器、多线程详解)

目录 闭包 装饰器 普通用法 多层装饰器 设计模式 单例模式 工厂模式 多线程 基础使用 得到当前的线程 守护线程 线程阻塞join方法 线程锁 Lock 递归锁对象RLock 闭包 例如要实现一个存钱的功能&#xff0c;可以这么做 account_amount 0def atm(num,deposit Tr…

linux学成之路(基础篇(二十三)MySQL服务(中)

目录 MySQL服务之SQL语句 一、SQL语句类型 一、 DDL语句 二、DML语句 三、DCL语句 四、DQL 语句 二、 数据库操作 一、查看 二、创建 三、进入 四、删除数据库 五、更改数据库名称 六、更改字符集 三、数据表管理 一、数据类型 一、数值类型 TINYINT SMALLINT…