串口流控(CTS/RTS)使用详解

2023-12-21

1.流控概念

在两个设备正常通信时,由于处理速度不同,就存在这样一个问题,有的快,有的慢,在某些情况下,就可能导致丢失数据的情况。

如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。

流控制能解决这个问题,当接收端数据处理不过来时,就发出“不再接收”的信号,发送端就停止发送,直到收到“可以继续发送”的信号再发送数据。因此流控制可以控制数据传输的进程,实现收发双方的速度匹配,防止数据的丢失。

PC机中常用的两种流控制是硬件流控制(包括 RTS /CTS、DTR/CTS等)和软件流控制XON/XOFF(继续/停止)。

2. 使用方式
a. 硬件流控

硬件流控制常用的有RTS/ CTS 流控制和DTR/DSR(数据终端就绪/数据设置就绪)流控制。

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

CTS (Clear ToSend,发送允许)为输入信号,用于判断是否可以向对方发送数据,低电平有效,低电平说明本设备可以向对方发送数据。

其他介绍:

硬流控的RTS 、CTS :RTS (Require ToSend,发送请求)为输出信号,用于指示本设备准备好可接收;CTS (Clear ToSend,发送清除)为输入信号,有效时停止发送。假定A、B两设备通信,A设备的RTS 连接B设备的CTS ;A设备的CTS连接B设备的RTS。前一路信号控制B设备的发送,后一路信号控制A设备的发送。对B设备的发送(A设备接收)来说,如果A设备接收缓冲快满的时发出RTS信号(高电平)(意思通知B设备停止发送),B设备通过CTS 检测到该信号,停止发送;一段时间后A设备接收缓冲有了空余,发出RTS信号(低电平),指示B设备开始发送数据。A设备发(B设备接收)类似。

b. 软件流控

软件流控和硬件流控都方式一样,只是实现方式不同而已。在通信过程中,软件流控通过在数据流中插入Xoff(特殊字符)和Xon(另一个特殊字符)信号来实现。A设备一旦接收到B设备发送过来的Xoff,立刻停止发送;反之,如接收到B设备发送过来的Xon,则恢复发送数据给B设备。同理,B设备也类似,从而实现收发双方的速度匹配。

3. 流控使用

如果串口只接了RX、TX两个信号,那么要流控的话只能使用软流控;如果接了RX,TX,CTS ,RTS四个信号,那么可以使用硬流控或者软件流控。

在这里插入图片描述

4. 数据发送
a. 物理连接(交叉连接)

§ 主机的RTS(输出)信号,连接到从机的CTS(输入)信号。

§ 主机的CTS(输入)信号,连接到从机的RTS(输出)信号。

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

▪ CTS (Clear ToSend,发送允许)为输入信号,用于判断是否可以向对方发送数据,低电平有效,低电平说明本设备可以向对方发送数据。

b. 主机发送过程:

§ 主机查询主机的CTS脚信号,此信号连接到从机的RTS信号,受从机控制。

§ 如果主机CTS信号为有效(低),表示从机的接收 FIFO 未满,从机可以接收,此时主机可以向从机发送数据。

§ 主机在发送过程中要一直查询CTS信号是否为有效状态。一旦无效,则终止发送。

c. 主机接收过程:

§ 主机如果接收FIFO未满,则使主机RTS信号有效,也即从机的CTS信号有效。此时从机如果要发送,发送前会查询从机的CTS信号,如果为有效,则开始发送。

§ 在发送过程中一直查询从机CTS信号的有效状态,如果无效则中止发送。是否无效由主机的RTS信号决定。

§ 主机如果FIFO满了,则使主机RTS信号无效,也即从机CTS信号无效。主机接收中止。

d. 那主机的CTS信号什么时候会无效呢?

从机在接收到主机发送的数据时,从机的接收模块的FIFO如果满了,则会使从机RTS无效,也即主机的CTS信号无效。主机则查询到CTS无效时,主机发送中止。

此过程可以由硬流控完成。我们只要设置开启硬流控,设置FIFO大小。RTS信号和CTS信号由控制器代码查询和设置。

5. 理论验证:
a. 主机发送验证:

§ 向主机串口丢数据,看TX线上是否有数据。

§ 理论上,遥控主机CTS信号为无效时,TX线上无数据;遥控主机CTS信号为有效时,TX线上有数据;

b. 主机接收验证:

§ 从机向串口丢数据,主机看RX线上是否有数据。

§ 理论上,如果主机使RTS信号为有效时,RX线上有数据;如果主机使RTS信号为无效时,RX线上无数据;

注:本文来自于网络,如有侵权,请联系删除。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

串口流控(CTS/RTS)使用详解 的相关文章

  • 八路视频光端机技术导论:多通道视频传输的高效解决方案

    随着光通信技术的快速发展 八路视频光端机 已成为多通道视频传输的有效解决方案 本文将探讨该技术的原理 优势及应用前景 为光通信行业的技术人员和研究学者提供参考 技术原理 八路视频光端机基于 波分复用 WDM 技术 通过一个光纤同时传输多路视
  • 一个网工(网络工程师)七年的职业血泪史....

    前言 一个工作了七年的老网工 上家公司待了五年 现在这家公司也快三年了 分享一些我自己学习网络安全路上的一些经历 也算是帮大家少走些弯路 一 如何学习网络安全 1 不要试图以编程为基础去学习网络安全 不要以编程为基础再开始学习网络安全 一般
  • 广告竞价策略:激发广告变现潜能的关键

    在数字化时代 广告已经成为企业推广品牌 产品和服务的关键手段之一 为了最大程度地发挥广告的效果 广告竞价策略成为广告主和数字营销专业人士关注的焦点 通过巧妙运用竞价策略 广告主可以在激烈的市场竞争中脱颖而出 实现广告变现的潜能 admaoy
  • 学习STM32正点原子好吗?

    今日话题 学习STM32正点原子好吗 正点原子的教程内容简单明了 代码也清晰直接 使初学者能够轻松理解其功能和使用方法 尤其对于需要快速完成大学作业等任务的大学生来说 可以直接借鉴并稍作修改 便可满足需求 正点原子提供的资料通俗易懂 适合用
  • 会stm32有机会进大公司吗?

    今日话题 会stm32有机会进大公司吗 我本科期间参与了飞思卡尔和电赛等比赛 使用过多种单片机 但渐渐发现单片机只是其中的一小部分 不要过分迷恋所谓的单片机基础和技巧 更值得深入研究的是C语言 如果你对此感兴趣 我愿意无偿分享一个资源包 其
  • 太阳诱电树立超高端产品概念,与电子产业同步发展

    无论是传统的手机 家电 安防 汽车 医疗 交通 建筑的智能化转型 还是从物联网 工业4 0 智能硬件 互联网 一场基于大数据 互联网 应用软件等技术的硬件复兴热潮正在席卷全球 没有新东西出来 每家都一样 这一长期以来的争议一直困扰着CEAT
  • 太阳诱电 | 陶瓷电容器的静电容量相关

    陶瓷电容器的静电容量会因温度而变化吗 电容器的静电容量的温度特性是什么 陶瓷电容器的静电容量随周围的温度而变化 静电容量因温度而变化的现象 称为静电容量的温度特性 这是由于陶瓷电容器使用的材料造成的 也是所有陶瓷电容的常有现象 以下是本公司
  • for循环延时时间计算

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 之前做led点亮的实验 好像是被delay函数影响了 因为delay参数设置的不对
  • 掌握内网渗透之道,成为实战高手,看《内网渗透实战攻略》就够了

    文末送书 文末送书 今天推荐一本网络安全领域优质书籍 内网渗透实战攻略 文章目录 前言 如何阅读本书 目录 文末送书 前言 当今 网络系统面临着越来越严峻的安全挑战 在众多的安全挑战中 一种有组织 有特定目标 长时间持续的新型网络攻击日益猖
  • 基于成本和服务质量考虑的不确定性下,电动汽车充电网络基础设施需求预测和迭代优化的分层框架研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • 【信道估计】【MIMO】【FBMC】未来移动通信的滤波器组多载波调制方案(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文章
  • 白帽子如何快速挖到人生的第一个漏洞 | 购物站点挖掘商城漏洞

    本文针对人群 很多朋友们接触安全都是通过书籍 网上流传的PDF 亦或是通过论坛里的文章 但可能经过了这样一段时间的学习 了解了一些常见漏洞的原理之后 对于漏洞挖掘还不是很清楚 甚至不明白如何下手 可能你通过 sql labs 初步掌握了sq
  • 「网络安全渗透」如果你还不懂CSRF?这一篇让你彻底掌握

    1 什么是 CSRF 面试的时候的著名问题 谈一谈你对 CSRF 与 SSRF 区别的看法 这个问题 如果我们用非常通俗的语言讲的话 CSRF 更像是钓鱼的举动 是用户攻击用户的 而对于 SSRF 来说 是由服务器发出请求 用户 日 服务器
  • 带头双向循环链表基础

    带头双向循环链表基础 销毁 销毁 void ListDestory ListNode phead void ListDestory ListNode phead assert phead ListNode cur phead gt next
  • STM32H5 Nucleo-144 board开箱

    文章目录 开发板资料下载 目标 点亮LD1 绿 LD2 黄 和LD3 红 三个LED灯 开箱过程 博主使用的是STM32CubeMX配置生成代码 具体操作如下 打开STM32CubeMX File gt New project 选择开发板型
  • 用栈实现队列(OJ中报错的处理)

    用栈实现队列 ERROR AddressSanitizer myQueueFree函数中栈的释放处现了问题 没有调用StackDestory而是直接free了 这个是栈初始化时 capacity与malloc申请的空间大小没有匹配 请你仅使
  • DSCA190V 57310001-PK

    DSCA190V 57310001 PK DSCA190V 57310001 PK 具有两个可编程继电器功能 并安装在坚固的 XP 外壳中 DSCA190V 57310001 PK 即可使用 只需最少的最终用户校准 DSCA190V 573
  • ESP10B 锁定连接器

    ESP10B 锁定连接器 ESP10B 电机新增内容包括双极型号标准 NEMA 尺寸 17 23 和 34 的步进电机现在包括输出扭矩范围从 61 盎司英寸到 1291 盎司英寸的双极型号 该电机配有带锁定连接器的尾缆 可轻松连接 每转可步
  • 网工内推 | 上市公司同程、科达,五险一金,年终奖,最高12k*15薪

    01 同程旅行 招聘岗位 网络工程师 职责描述 1 负责职场 门店网络规划 建设 维护 2 负责网络安全及访问控制 上网行为管理和VPN设备的日常运维 3 负责内部相关网络自动化和系统化建设 4 优化与提升网络运行质量 制定应急预案 人员培
  • 网络安全行业热门认证证书合集

    网络安全认证证书 就和学历一样是敲门砖 拿到了可以用不到 但不能没有 技术大牛可以没有证书 但普通人不能没有 1 初级入门 就像学历在职场上展示一个人的基本素养一样 网络安全认证证书可以展示一个人在网络安全领域具备的基本知识和技能 它为初学

随机推荐

  • 快速能访问服务器的文件

    1 背景 访问ubuntu上的文件 2 方法 python3 m http server 8081 directory home NAS 共享访问协议 NFS SMB FTP WebDAV 各有何优势 http 1 Ubuntu 搭建文件服
  • ubuntu 打开所有端口

    1 打开所有端口 ubuntu开启所有端口 iptables P INPUT ACCEPT iptables P FORWARD ACCEPT iptables P OUTPUT ACCEPT iptables F iptables sav
  • .netCHARTING 10.6 .NET 8.0 Chart Support --Crack

    netCHARTING enables your web site to display massive amounts of dynamically generated data quickly and easily through a
  • linux ARM64 处理器内存屏障

    一 内存类型 ARMv8架构将系统中所有的内存 按照它们的特性 划分成两种 即普通内存和设备内存 并且它们是互斥的 也就是说系统中的某段内存要么是普通内存 要么是设备内存 不能都是 1 普通内存 Normal Memory 普通内存的特性是
  • 面向对象编程---基于Javaswing的医院管理系统课设

    S2021003基于Javaswing的医院管理系统 https www bilibili com video BV1e34y1Z75L share source copy web vd source 3d18b0a7b9486f50fe7
  • Qt 中文QString和std::string互转等中文格式问题

    中文QString转std string QString qstr QString fromLocal8Bit 中文 std string cur str qstr toLocal8Bit toStdString std string转中文
  • 遥感影像正射校正

    原始的遥感影像是没有坐标和投影信息的 其实就是一张图片 当做后续一些处理时 尤其是遥感地信方向后续应用中会涉及很多叠加分析 比如同一个地区的影像不同年份的叠加 但是影像大小又不能保证大小一致 因此需要添加坐标和投影信息 但是如果只是添加一个
  • shell批量查看文件的MD5值

    ls faces pkl xargs md5sum 执行结果 57dcc90d201e5f5e1c028afd6be43e5e faces lgr2 jpg pkl 3e3c547d0a79d77e4e14d33df45bcce3 face
  • Potplayer播放器远程访问群晖WebDav本地资源【内网穿透】

    文章目录 本教程解决的问题是 按照本教程方法操作后 达到的效果是 1 使用环境要求 2 配置webdav 3 测试局域网使用potplayer访问webdav 3 内网穿透 映射至公网 4 使用固定地址在potplayer
  • 如何在Ubuntu系统中安装VNC并结合内网穿透实现远程访问桌面

    文章目录 前言 1 ubuntu安装VNC 2 设置vnc开机启动 3 windows 安装VNC viewer连接工具 4 内网穿透
  • 一步步教你创建酒店预订小程序

    如果你想为你的酒店或旅馆创建一个预订小程序 这篇文章将为你提供详细的步骤和指南 我们将按照以下顺序进行 一 进入乔拓云网后台 首先 打开乔拓云网的官方网站 点击右上角的 登录 按钮 登录成功后 点击 轻应用小程序 进入设计小程序页面 3 在
  • Microsoft Excel 2019中文

    Microsoft Excel 2019是微软公司推出的一款电子表格软件 是Office 2019套件中的一部分 作为一款非常流行的电子表格软件 Excel 2019具有非常广泛的应用范围 能够进行数据管理 数据处理和数据分析等工作 Exc
  • MouseBoost Pro for Mac(右键助手专业版)

    MouseBoost Pro是一款实用的鼠标右键增强软件 专为Mac用户设计 它提供了30多种小工具 通过简单的点击 用户可以激活各种功能 包括快速创建文件 打开应用程序 复制路径 删除文件等 这款软件具有高度定制化的特点 用户可以根据自己
  • 2023最新 requests 库的使用(非常详细)从零基础入门到精通,看完这一篇就够了!!!

    urllib库使用繁琐 比如处理网页验证和Cookies时 需要编写Opener和Handler来处理 为了更加方便的实现这些操作 就有了更为强大的requests库 request库的安装 requests属于第三方库 Python不内置
  • 已下载1万次,PyPI库发现116 个恶意软件包,感染Windows 和 Linux 系统

    安全人员在 Python 包索引 PyPI 仓库中识别出116个恶意软件包 旨在通过定制后门程序感染 Windows 和 Linux 系统 网络安全研究人员在 Python 包索引 PyPI 仓库中识别出116个恶意软件包 旨在通过定制后门
  • 【前车之鉴】【全网唯一】IDEA自研插件安装时出现error信息:idToEntry must be empty (idToEntry=xxx) 完美解决方式

    文章目录 问题复现 Easy Answer 问题复现 最近在开发公司通用插件时 发现一个奇怪现象 只要打开装好插件的项目就提示如下错误 而且还不影响使用 最初没搭理 后来使用者多次反馈这一弊病 索性潜心思考下解决方式 此时Goole 百度目
  • 划片机,国内权威品牌博捷芯引领行业风向标

    划片机 作为国内权威品牌 博捷芯一直引领着行业风向标 博捷芯的划片机不仅具有高精度 高速度和高稳定性的特点 还采用了先进的加工工艺和材料 确保了产品的长期稳定性和耐用性 随着科技的飞速发展和半导体行业的崛起 划片机作为半导体生产中的关键设备
  • 基于SPring Boot+Vue的鲜花商城毕业设计

    源码编号 S21 项目名称 基于SPring Boot Vue的鲜花商城 项目类型 Java web SPring Boot框架 用户类型 双角色 用户 管理员 主要技术 Java Vue SpringBoot ElementUI 运行环境
  • go开发--操作mysql数据库

    在 Go 中访问 MySQL 数据库并进行读写操作通常需要使用第三方的 MySQL 驱动 Go 中常用的 MySQL 驱动有 github com go sql driver mysql 和 github com go xorm xorm
  • 串口流控(CTS/RTS)使用详解

    1 流控概念 在两个设备正常通信时 由于处理速度不同 就存在这样一个问题 有的快 有的慢 在某些情况下 就可能导致丢失数据的情况 如台式机与单片机之间的通讯 接收端数据缓冲区已满 则此时继续发送来的数据就会丢失 流控制能解决这个问题 当接收