美文网首页
关于串口流控制

关于串口流控制

作者: 齐天大圣跑龙套 | 来源:发表于2020-03-29 00:33 被阅读0次

    最近接触到了串口通信变成,但是对串口底层通信不是很了解,有其是对串口的流控制,今晚查了一些资料,算是有了一个比较清楚的认识,在此处记录一下。

    要深入理解一个问题,我觉得首先应该搞清楚他为何而来。串口为何需要流控制,是为了确保数据传输中的安全性,这个安全性是发送接收双方的数据处理速度不一致导致的。接收方的数据处理速度慢于数据发送方的时候,接收方的缓冲区写满之后会造成数据丢失。因此需要串口流控制来协调数据收发的双方。

    从以上的分析可以看出串口流控制的主导方是串口数据的接收方,理清楚这个问题之后,串口的流控制问题将变得非常容易。串口通信首先发送方告诉接受方我这边准备好了(发送方DTR有效,导致接收方DSR有效),你那边是啥情况,接收方检测到自己DSR有效之后查看自身状态看看自己能不能接受数据,如果可以的话就通知发送方我也准备好了,通知方式和发送方一样。这一步是串口通信最先需要进行的。

    完成了上面的步骤之后,数据接收方检查自身缓冲区当前状态,如果可以接受数据,就通过RTS有效告诉数据发送方可以继续发送数据了,数据接受方CTS有效。数据发送方在检查到自己CTS有效之后,就开始将自己发送缓冲区的数据发送到串口线上。当数据接受方发现自己接受缓冲区快满了就置RTS无效,进而控制数据发送方CTS无效,停止数据发送。

    基于以上分析,从任何一个终端来看,如果想发送数据就检查自己的DSR和CTS是否同时有效,若有效就可以发送了。如果还可以继续接受数据,就去置自己的DTR和RTS有效,告诉对面继续发送数据吧,我这边感觉良好。

    以上是通过接线实现的硬件流控制。软件流控制比较简单,其实就是在串口发送的数据里面设置了两个标志,这个标志传输的方向和数据传输的方向相反,是数据接收方通知数据发送方自己是否还可以继续接受数据。毕竟我们前面分析了串口通信的主导方是数据接收方。

相关文章

  • 关于串口流控制

    最近接触到了串口通信变成,但是对串口底层通信不是很了解,有其是对串口的流控制,今晚查了一些资料,算是有了一个比...

  • 树莓派——opencv读取摄像头

    7寸触摸屏设置与串口 禁用串口的控制台功能:树莓派io口引出串口默认是用来做控制台使用的,即是为了用串口控制树莓派...

  • PySerial和PyVisa timeout 设置

    最近在做串口和NI仪表控制的程序,记录一下关于串口通信和仪表通信中timeout的设置。 PySerial 官方说...

  • Python串口通信

    前言 从需求说起 串口通信控制二维码阅读器 串口通信控制门闸机 pyserial python 串口通信第三方包 ...

  • HC-05蓝牙串口调试

    1:HC-05蓝牙串口测试方法 2:安装setup.exe文件 提示串口错误,错误如下: 解决办法: 串口控制控件...

  • 嵌入式开发 - GDB串口远程调试

    1. 准备调试串口 目标板一般只有一个串口用于控制台输入输出,串口远程调试需要第二个串口。下面假设这个串口设备是/...

  • KEIL的串口调试功能(分享)

    KEIL有一个很强大的脚本功能,可通过初始化脚本来控制串口设备,实现串口的在线调试。 虚拟串口工具: ...

  • 青云系列矩阵和拼接屏联动操作视频

    在视频中,为大家演示青云系列网络中控矩阵的控制软件联动控制矩阵,首先控制电脑通过USB转串口线或者是原生串口,用串...

  • Android USB转串口通信

    最近需要在Android板卡上面对接些串口控制的外设,比如,4G模块、呼吸灯、光感传感器等,这些都是串口指令控制。...

  • esp8266 RN8209C 串口

    1、 串口初始化 串口参数根据自己实际情况调整,我的串口是为控制RN8209C,所以设置偶检验,4800波特率。 ...

网友评论

      本文标题:关于串口流控制

      本文链接:https://www.haomeiwen.com/subject/xkoeuhtx.html