Ubuntu linux命令 centos php nginx shell HTML5 程序员 开源 linux 微软 Firefox Android Windows wordpress apache google Python mysql java

串口流量控制的常见工具

  常见的串口工具软件都提供了RTS/CTS和XON/XOFF选项。这两个选项对应的RS232串口的两种流量控制方式,串口流量控制主要应用于调制解调器的数据通信,对于普通的RS232串口编程。了解一点流量控制方面的知识也是有好处的。

  在两个串口之间传输的数据,通常称作串口数据流,串口数据流的两端由于计算机的处理能力差别,常会出现数据丢失的现象,如单机片和pc之间使用串口传输数据,单机片的处理能力远小于PC,如果PC按照自己的处理速度发送数据,串口的另一端单机片很快就会因为处理不过来而导致新的数据丢失。
 
  解决掉串口的传输问题是对串口数据传输两端进行流量的控制,在串口协议中规定了新的传输的速度。即单位时间内传输的字节数。根据不同的传输速度。在接收端和发送端可以进行新的流量控制。接收端如果接收缓冲了,向发送端发出暂停发送信号。等接收缓冲区数据被取走后,向发送端继续发出新的信号。发送端收到暂停发送信号后停止数据发送。直到收到继续发送的信号才会再次发送新的数据。
 
  如果一端准备停止接受, 它就将RTS降为 -5V, 意思是, request NOT to send to me(停止发送)
如果处理完毕,可以接受更多数据时,将RTS拉为 高电平,    接收的数据流 就恢复了

  流控信号的发送方向,跟 信息数据的发送 方向恰好是相反的

  有时候,这两个信号的定义,容易跟 原始的RTS的用途(I Request To Send to you)混淆,
用来请求发送, 跟数据的流动方向相同。并且它只保护一个方向的数据流(从PC到modem的)

  DTR,告诉别人自己上电了,可以操作了,硬件流控是靠软件实现的,之所以强调“硬件”二字,仅仅是因为硬件流控提供了用于流量情况指示的硬件连线(CTS/RTS),并不是说,你只要把线连上,硬件就能自己流控。如果软件不支持,光连上RTS和CTS是没有用的。

  软件流控 不需要 额外的连线, 只需要TxD和RxD, 在数据通道上 发送特殊的流量控制字符来实现。软件流量控制的远离和硬件流量控制原理都是类似的。不同的是,软件流量控制使用特殊的字符表示硬件流量控制中的CTS信号,在软件流量控制中,首先设置数据接收缓冲高位和低位,当接收端数据流量超过高位的时候,接收端向发送端发出XOFF字符。XOFF字符通常是十进制数19,表示停止数据发送。当接收端数据缓冲数据低于低位的时候。接收端向发送端XON字符。表示开始数据传输。
 
 

延伸阅读

  • 抱歉,暂无相关内容!

评论