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

串口通信流控机制
本文详细介绍了串口通信中的物理连接方式及主机发送接收数据的过程。解释了CTS和RTS信号如何控制数据流,确保数据正确无误地传输。

 

 

物理连接(交叉连接)

主机的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线上无数据;

转载于:https://www.cnblogs.com/sky-heaven/p/4849098.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值