当前位置: 首页 > news >正文

串口硬流控原理验证RTS与CTS

 

 

物理连接(交叉连接)

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

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

 

主机发送过程:

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

信号为有效(低),表示从机的接收FIFO未满,从机可以接收,此时主机可以向从机发送

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

 

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

从机在接收到主机发送的数据时,从机的接收模块的FIFO如果满了,则会使从机RTS无效,

也即主机的CTS信号无效。主机则查询到CTS无效时,主机发送中止。

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

信号由控制器代码查询和设置。

 

主机接收过程:

主机如果接收FIFO未满,则使主机RTS信号有效,也即从机的CTS信号有效。此时从机

如果要发送,发送前会查询从机的CTS信号,如果为有效,则开始发送。并且在发送过程

中移植查询从机CTS信号的有效状态,如果无效则中止发送。是否无效由主机的RTS信号

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

中止。

 

理论验证:

1、 主机发送验证:

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

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

 

2、 主机接收验证:

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

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

【作者】 张昺华
【出处】 http://www.cnblogs.com/sky-heaven/
【博客园】 http://www.cnblogs.com/sky-heaven/
【新浪博客】 http://blog.sina.com.cn/u/2049150530
【知乎】 http://www.zhihu.com/people/zhang-bing-hua
【我的作品---旋转倒立摆】 http://v.youku.com/v_show/id_XODM5NDAzNjQw.html?spm=a2hzp.8253869.0.0&from=y1.7-2
【我的作品---自平衡自动循迹车】 http://v.youku.com/v_show/id_XODM5MzYyNTIw.html?spm=a2hzp.8253869.0.0&from=y1.7-2
【新浪微博】 张昺华--sky
【twitter】 @sky2030_
【facebook】 张昺华 zhangbinghua
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

相关文章:

  • 1、计科研究生的学习之路
  • mysql支持emoji表情存取的解决方案
  • Android编译错误, Ignoring InnerClasses attribute for an anonymous inner class
  • Android中的资源与国际化!
  • frame与bounds
  • wpa_supplicant 和 802.11g WPA 认证的配置
  • 礼物
  • javaweb之动态读excel,导入excel,poi,jxl 支持判断2003.2007及以上
  • iOS如何兼容的应用程序32位系统和64Bit系统
  • linux下实时查看tomcat运行日志
  • C#中对象的销毁有三种方式Finalize,Dispose,GC。
  • shrio教程初级(八)shiro验证码与记住登录
  • 转载blog_Linux下Tomcat日志定期清理 及 logrotate 配置
  • Android Fragment间对象传递
  • windows下sublime text的node.js开发环境搭建
  • JS 中的深拷贝与浅拷贝
  • 30天自制操作系统-2
  • CAP理论的例子讲解
  • cookie和session
  • Debian下无root权限使用Python访问Oracle
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • JavaScript函数式编程(一)
  • Joomla 2.x, 3.x useful code cheatsheet
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Redis学习笔记 - pipline(流水线、管道)
  • Terraform入门 - 3. 变更基础设施
  • vue-router 实现分析
  • vue总结
  • webpack入门学习手记(二)
  • 程序员最讨厌的9句话,你可有补充?
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 大型网站性能监测、分析与优化常见问题QA
  • 分享几个不错的工具
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 算法-图和图算法
  • 移动端 h5开发相关内容总结(三)
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 第二十章:异步和文件I/O.(二十三)
  • 容器镜像
  • ​2021半年盘点,不想你错过的重磅新书
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #WEB前端(HTML属性)
  • $GOPATH/go.mod exists but should not goland
  • (06)金属布线——为半导体注入生命的连接
  • (4)(4.6) Triducer
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (LeetCode) T14. Longest Common Prefix
  • (六)软件测试分工
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET Micro Framework初体验(二)