在串行通讯处理中,常常看到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/

或扫描下方二维码,进入奥比中光开发者社区:

串口流控--软件流控与硬件流控相关推荐

  1. CUDA流多处理器(stream multiprocessor,sm)和硬件流处理器(stream processor,sp)

    SM是一种单指令多线程((single Instruction MultipleThread,SIMT)架构的处理器,类似单指令流多数据流(SIMD)的特点,含有指令发射单元,及若干个流处理器(str ...

  2. 测试测控软件,测控软件技术

    本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 测控组态软件应包括以下3个主要功能:数据的采集和测量:测控过程中的控制决策和控制输出:数据的处理.分析和管理. 中文名 测控软 ...

  3. 燕山大学工控软件复习资料

    工控也就是c++,考试难度感觉不是很高,作者给大家准备了以下资料. 1.2020工控试题 2.一份补考试题.也相对来说有很大的参考价值. 3.课后习题答案.这个还是蛮重要的,在复习的时候会起到很大作用 ...

  4. 渗透测试快速稳定远控软件,2019-9-11:渗透测试,Kill远控软件,初接触

    初步使用Kill远控软件,使win7靶机被远控 该文章仅供学习,利用方法来自网络文章,仅供参考 1,打开运行Kill,选择系统设置,设置监听端口,通讯密码,点击保存设置 2,点击服务生成,上线参数,设 ...

  5. 使用远见远控软件控制靶机

    控制端:运行在攻击者的电脑中,负责控制其他肉鸡 被控制端:需要生成,与你行在肉鸡上,木马病毒 两端需要数据互通 打开远见,在系统设置里修改密码后重启 然后打开hfs 右键,选择添加文件,将consys ...

  6. 串口的硬件流控和软件流控

    为什么需要流控?   当两台设备进行串口通信,假如他们对数据的处理速度不同.如果接收端数据缓冲区已满,则此时继续发送来的数据就会丢失.使用流控机制时,当接收端数据处理能力饱和时,就发出"不再 ...

  7. STM32的串口硬件流控(RS232/RS485)

    流控的概念源于 RS232 这个标准,在 RS232 标准里面包含了串口.流控的定义.RS232 中的"RS"是Recommend Standard 的缩写,即"推荐标准 ...

  8. STM32:UART中的硬件流控RTS与CTS

    UART中的硬件流控RTS与CTS 最近太忙了,没时间写对Ucos-II的移植,先将工作中容易搞错的一个知识点记录下来,关于CTS与RTS的. 在RS232中本来CTS 与RTS 有明确的意义,但自从 ...

  9. UART中的硬件流控RTS与CTS

    在RS232中本来CTS 与RTS 有明确的意义,但自从贺氏(HAYES ) 推出了聪明猫(SmartModem)后就有点混淆了,不过现在这种意义为主流意义的,各大芯片制造厂家对UART控制器的流控基 ...

最新文章

  1. 字体渲染 mac linux,Mac下通过命令来渲染字体
  2. windows平台一个高性能、通用型的C++生产者/消费者架构模板
  3. Service Broker实现发布-订阅(Publish-Subscribe)框架(3)
  4. 知识工程.Vs.软件构架,框架,设计模式.
  5. oracle数据表空间与数据文件,oracle 操作表空间和数据文件
  6. C++:两种类实例化
  7. opencv-python版本问题
  8. 百度地图开放平台web api 获取上海市所有小区信息
  9. 'MPD' object has no attribute 'myIP'
  10. 全球及中国隐形眼镜护理液行业消费规模及投资竞争力分析报告2021-2027年
  11. Ubuntu下耳机电流声消除方法
  12. ----已搬运----【总章程】SSRF完全学习,,什么都有,,,原理,绕过,攻击
  13. 王半仙儿的日记-0010——“在人生的十字路口,没有人会迷茫,但有人会胆怯。勤奋成就万事。”
  14. 【妇女节特辑】闪耀的工程师女性们
  15. 细粒度分析--WS-DAN
  16. 【太遗憾】这些杀毒软件你竟不了解?
  17. 27、scratch教程-画心形
  18. Qt的半透明方法总结
  19. 什么是并发、高并发以及实现高并发需要考虑的因素
  20. 计算机中丢失VComp140.dll

热门文章

  1. 第三篇 (.net socket 与 android )
  2. 保护眼睛设置.txt
  3. 用sql语句实现按时间求累计值
  4. 雷军这个程序员!真的牛逼!
  5. 网友提问:精通 Spring 全家桶,被 15 家公司拒绝,大专程序员出路在哪?
  6. 基于Spring Boot+Cloud构建微云架构
  7. 阿里p8程序员吐槽:新来应届生都开卡宴上班,当时就震惊了!
  8. 这可能是2018年IT界规模最大的裁员事件了
  9. 创业公司崛起靠加班?别闹了,早死才靠加班
  10. 来翻翻百度的老底:当年你是怎么赢的谷歌?