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

2023-12-20

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)使用详解 的相关文章

  • 如何防护零日攻击

    零日攻击是什么 零日攻击 也称为零时差攻击 通常是指利用还没有被补丁的安全漏洞进行的攻击 这些漏洞在被发现后 由于各种原因 软件供应商未能及时发布补丁 使得黑客有机会利用这些漏洞进行攻击 零日攻击通常由技术高超的黑客发起 他们在对目标系统或
  • 第八章 确认访问用户身份的认证

    第八章 确认访问用户身份的认证 8 1 何为认证 在计算机安全和网络通信的背景下 认证是 确认实体 如用户 计算机系统 服务 身份真实性的过程 认证是确保系统只对合法用户或实体开放访问权限的一种关键机制 在网络通信中 认证通常涉及验证用户或
  • PDH光端机技术与应用:稳定可靠的数据传输解决方案

    在当今数字化 网络化日益加速的世界中 数据传输的稳定性和可靠性至关重要 PDH Plesiochronous Digital Hierarchy 准同步数字系列 光端机技术 作为早期的数字传输系统之一 虽然已被更先进的SDH Synchro
  • 一个网工(网络工程师)七年的职业血泪史....

    前言 一个工作了七年的老网工 上家公司待了五年 现在这家公司也快三年了 分享一些我自己学习网络安全路上的一些经历 也算是帮大家少走些弯路 一 如何学习网络安全 1 不要试图以编程为基础去学习网络安全 不要以编程为基础再开始学习网络安全 一般
  • 会stm32有机会进大公司吗?

    今日话题 会stm32有机会进大公司吗 我本科期间参与了飞思卡尔和电赛等比赛 使用过多种单片机 但渐渐发现单片机只是其中的一小部分 不要过分迷恋所谓的单片机基础和技巧 更值得深入研究的是C语言 如果你对此感兴趣 我愿意无偿分享一个资源包 其
  • 网络基础面试题(二)

    11 什么是网桥 防火墙的端口防护是指什么 网桥是一种网络设备 用于连接两个或多个局域网 LAN 并转发数据包 它能够根据MAC地址来识别和转发数据 提高网络的传输效率和安全性 防火墙的端口防护是指对防火墙上的各个端口进行保护和限制 只允许
  • 浅谈能耗系统在马来西亚连锁餐饮业的应用

    1 背景信息 Background 针对连锁餐饮业能耗高且能源管理不合理的问题 利用计算机网络技术 通讯技术 计量控制技术等信息化技术 实现能源资源分类分项计量和能源资源运行监管功能 清晰描述各分店总的用能现状 实时监测各供电回路的电压 电
  • 网络空间安全女生就业,怎么学?

    我实验室的学长们基本都是以红队和复现为主 如果学校好点可能还有更多的选择 如果想在这个方向深入下去 推荐流程是先打两年CTF 把大概的技术方向摸一摸 大一的话 如果学校还不错 那就优先建议打好基础 包括C语言 Python一类 建议把CTF
  • 太阳诱电树立超高端产品概念,与电子产业同步发展

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

    电容器中存在寄生于电极和电介质的电阻成分 当纹波电流等交流电流通过电容器时 电阻的成分会产生热量 为了抑制发热 选择ESR较低的电容器非常重要 陶瓷电容器在电容器中ESR较低 非常适合抑制发热 电容器中的纹波电流主要是指电源电路中由于IC的
  • for循环延时时间计算

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 之前做led点亮的实验 好像是被delay函数影响了 因为delay参数设置的不对
  • 牛客字符串

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 提示 这里可以添加本文要记录的大概内容 例如 随着人工智能的不断发展 机器学习这门
  • 【信道估计】【MIMO】【FBMC】未来移动通信的滤波器组多载波调制方案(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及文章
  • 前端必备的 web 安全知识手记

    前言 安全这种东西就是不发生则已 一发生则惊人 作为前端 平时对这方面的知识没啥研究 最近了解了下 特此沉淀 文章内容包括以下几个典型的 web 安全知识点 XSS CSRF 点击劫持 SQL 注入和上传问题等 下文以小王代指攻击者 话不多
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • Python爬虫实战:IP代理池助你突破限制,高效采集数据

    当今互联网环境中 为了应对反爬虫 匿名访问或绕过某些地域限制等需求 IP代理池成为了一种常用的解决方案 IP代理池是一个包含多个可用代理IP地址的集合 可以通过该代理池随机选择可用IP地址来进行网络请求 IP代理池是一组可用的代理IP地址
  • 通俗易懂,十分钟读懂DES,详解DES加密算法原理,DES攻击手段以及3DES原理

    文章目录 1 什么是DES 2 DES的基本概念 3 DES的加密流程 4 DES算法步骤详解 4 1 初始置换 Initial Permutation IP置换 4 2 加密轮次 4 3 F轮函数 4 3 1 拓展R到48位 4 3 2
  • 【网安神器篇】——WPScan漏洞扫描工具

    目录 一 Wordpress简介 二 WPScan介绍 三 安装 四 获取token 1 注册账号 2 拿到token 五 使用教程 1 常用选项 2 组合命令 1 模糊扫描 2 指定扫描用户 3 插件漏洞扫描 4 主题漏洞扫描 5 Tim
  • 网络安全(黑客)自学启蒙

    一 什么是网络安全 网络安全是一种综合性的概念 涵盖了保护计算机系统 网络基础设施和数据免受未经授权的访问 攻击 损害或盗窃的一系列措施和技术 经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 作
  • DSCA190V 57310001-PK

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

随机推荐

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

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