串口流控--软件流控与硬件流控
在串行通讯处理中,常常看到rts/cts和xon /xoff这两个选项,这就是两个流控制的选项,目前流控制主要应用于调制解调器的数据通讯中。流控制在串行通讯中有何作用,在编制串行通讯程序怎样应用呢?下面我们就谈谈这个问题。
这里讲到的“流”,当然指的是数据流。数据在两个串口之间传输时,常常会出现丢失数据的现象,或者两台计算机的处理速度不同,如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。现在我们在网络上通过modem进行数据传输,这个问题就尤为突出。流控制能解决这个问题,当接收端数据处理不过来时,就发出“不再接收”的信号,发送端就停止发送,直到收到“可以继续发送”的信号再发送数据。因此流控制可以控制数据传输的进程,防止数据的丢失。 pc机中常用的两种流控制是硬件流控制(包括rts/cts、dtr/cts等)和软件流控制xon/xoff(继续/停止),下面分别说明。
硬件流控:
硬件流控制常用的有rts/cts流控制和dtr/dsr(数据终端就绪/数据设置就绪)流控制。
硬件流控制必须将相应的电缆线连上,用rts/cts(请求发送/清除发送)流控制时,应将通讯两端的rts、cts线对应相连,数据终端设备(如计算机)使用rts来起始调制解调器或其它数据通讯设备的数据流,而数据通讯设备(如调制解调器)则用cts来起动和暂停来自计算机的数据流。这种硬件握手方式的过程为:
我们在编程时根据接收端缓冲区大小设置一个高位标志(可为缓冲区大小的75%)和一个低位标志(可为缓冲区大小的25%),当缓冲区内数据量达到高位时,我们在接收端将cts线置低电平(送逻辑0),当发送端的程序检测到cts为低后,就停止发送数据,直到接收端缓冲区的数据量低于低位而将cts置高电平。rts则用来标明接收设备有没有准备好接收数据。常用的流控制还有还有dtr/dsr(数据终端就绪/数据设置就绪)。
软件流控:
由于电缆线的限制,我们在普通的控制通讯中一般不用硬件流控制,而用软件流控制。一般通过xon/xoff来实现软件流控制。常用方法是:当接收端的输入缓冲区内数据量超过设定的高位时,就向数据发送端发出xoff字符(十进制的19或control-s,设备编程说明书应该有详细阐述),发送端收到 xoff字符后就立即停止发送数据;当接收端的输入缓冲区内数据量低于设定的低位时,就向数据发送端发出xon字符(十进制的17或control- q),发送端收到xon字符后就立即开始发送数据。一般可以从设备配套源程序中找到发送的是什么字符。
应该注意,若传输的是二进制数据,标志字符也有可能在数据流中出现而引起误操作,这是软件流控制的缺陷,而硬件流控制不会有这个问题。
备注:
点击下面链接,进入奥比中光开发者社区,了解更多3D视觉技术信息:
https://developer.orbbec.com.cn/
或扫描下方二维码,进入奥比中光开发者社区:
串口流控--软件流控与硬件流控相关推荐
- CUDA流多处理器(stream multiprocessor,sm)和硬件流处理器(stream processor,sp)
SM是一种单指令多线程((single Instruction MultipleThread,SIMT)架构的处理器,类似单指令流多数据流(SIMD)的特点,含有指令发射单元,及若干个流处理器(str ...
- 测试测控软件,测控软件技术
本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 测控组态软件应包括以下3个主要功能:数据的采集和测量:测控过程中的控制决策和控制输出:数据的处理.分析和管理. 中文名 测控软 ...
- 燕山大学工控软件复习资料
工控也就是c++,考试难度感觉不是很高,作者给大家准备了以下资料. 1.2020工控试题 2.一份补考试题.也相对来说有很大的参考价值. 3.课后习题答案.这个还是蛮重要的,在复习的时候会起到很大作用 ...
- 渗透测试快速稳定远控软件,2019-9-11:渗透测试,Kill远控软件,初接触
初步使用Kill远控软件,使win7靶机被远控 该文章仅供学习,利用方法来自网络文章,仅供参考 1,打开运行Kill,选择系统设置,设置监听端口,通讯密码,点击保存设置 2,点击服务生成,上线参数,设 ...
- 使用远见远控软件控制靶机
控制端:运行在攻击者的电脑中,负责控制其他肉鸡 被控制端:需要生成,与你行在肉鸡上,木马病毒 两端需要数据互通 打开远见,在系统设置里修改密码后重启 然后打开hfs 右键,选择添加文件,将consys ...
- 串口的硬件流控和软件流控
为什么需要流控? 当两台设备进行串口通信,假如他们对数据的处理速度不同.如果接收端数据缓冲区已满,则此时继续发送来的数据就会丢失.使用流控机制时,当接收端数据处理能力饱和时,就发出"不再 ...
- STM32的串口硬件流控(RS232/RS485)
流控的概念源于 RS232 这个标准,在 RS232 标准里面包含了串口.流控的定义.RS232 中的"RS"是Recommend Standard 的缩写,即"推荐标准 ...
- STM32:UART中的硬件流控RTS与CTS
UART中的硬件流控RTS与CTS 最近太忙了,没时间写对Ucos-II的移植,先将工作中容易搞错的一个知识点记录下来,关于CTS与RTS的. 在RS232中本来CTS 与RTS 有明确的意义,但自从 ...
- UART中的硬件流控RTS与CTS
在RS232中本来CTS 与RTS 有明确的意义,但自从贺氏(HAYES ) 推出了聪明猫(SmartModem)后就有点混淆了,不过现在这种意义为主流意义的,各大芯片制造厂家对UART控制器的流控基 ...
最新文章
- 字体渲染 mac linux,Mac下通过命令来渲染字体
- windows平台一个高性能、通用型的C++生产者/消费者架构模板
- Service Broker实现发布-订阅(Publish-Subscribe)框架(3)
- 知识工程.Vs.软件构架,框架,设计模式.
- oracle数据表空间与数据文件,oracle 操作表空间和数据文件
- C++:两种类实例化
- opencv-python版本问题
- 百度地图开放平台web api 获取上海市所有小区信息
- 'MPD' object has no attribute 'myIP'
- 全球及中国隐形眼镜护理液行业消费规模及投资竞争力分析报告2021-2027年
- Ubuntu下耳机电流声消除方法
- ----已搬运----【总章程】SSRF完全学习,,什么都有,,,原理,绕过,攻击
- 王半仙儿的日记-0010——“在人生的十字路口,没有人会迷茫,但有人会胆怯。勤奋成就万事。”
- 【妇女节特辑】闪耀的工程师女性们
- 细粒度分析--WS-DAN
- 【太遗憾】这些杀毒软件你竟不了解?
- 27、scratch教程-画心形
- Qt的半透明方法总结
- 什么是并发、高并发以及实现高并发需要考虑的因素
- 计算机中丢失VComp140.dll