关于RTS和CTS的用处,谁能给个定论啊

2020-01-01 17:56发布

我用UART的时候好像从来没有
用到这两根线,
就光是GND,RX还有TX
好像也能正常传输数据……

这两根线既然不是费用不可
为什么还会有  '-_-

另外问下这三个概念区别和联系
我们常说的“串口”
UART
USART
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
24条回答
shangdawei
2020-01-03 17:32
<<ADSP-BF54x Blackfin®处理器增强的UART>>

EE-331_cn.pdf (201.07 KB, 下载次数: 1) 2016-7-20 15:21 上传 点击文件名下载附件




件流控制

硬件流控制是一个公用握手协议,用于使能UART接收器来防止当接收缓冲器溢出时,对应的发送器依旧发送数据。

接收器产生称为请求发送的RTS输出信号,当接收缓冲器填满并超过门限时,将使该信号无效。
发送器接收称为清除发送的CTS输入信号,当CTS无效时就停止发送。
当然,仍然会完成当前处理字的发送。
对于双向数据流,硬件连接如图所示。

Capture_0019.jpg (34.16 KB, 下载次数: 0)

下载附件

2016-7-20 15:18 上传



在工业设备中,RTS和CTS信号通常低电平有效(低电平时发送)。

通过设定UARTx_MCR寄存器中的FCPOL位可改变信号极性,使RTS和CTS变为高电平有效(高电平时发送)。

接收器RTS产生

UARTx_MCR寄存器中的ARTS位可使能自动产生RTS信号。
如果ARTS=0,则RTS输出信号的状态由MRTS位控制。
若ARTS=1,RTS输出说明接收缓冲器的状态。

与控制中断时序的RFIT位类似,接收FIFO RTS门限值位(RFRT)控制RTS信号的有效性。
与中断不同,RTS信号的有效和无效都有滞后现象。

当接收缓冲器中有两个(RFRT=0)或者四个(RFRT=1)字节,且检测到第三或者第五个开始位时,则RTS信号无效。
由于UARTx_RBR的读操作,当接收缓冲区低于两个(RFRT=0)或四个(RFRT=1)字节的门限时,则RTS将再次有效。

由于在端口复用级也必须使能RTS信号,给该信号加上拉电阻(当FCPOL=1时上拉)有利于防止处理器复位周期中的浮动。
同样,TX输出端的上拉电阻也可以避免处理器复位周期中的浮动。

发送器监测CTS

在UARTx_MCR寄存器中有个新的称为ACTS的位,当置位时,使能自动CTS监测。
一旦发送器检测到CTS输入引脚的电平被撤销,就完成当前TSR移位寄存器中的字发送。
然而,它会阻止UARTx_THR寄存器中当前的字发送给TSR寄存器,直到CTS再次有效为止。

另外,在UARTx_MCR中还有一个新的称为CTS的位,表示CTS输入信号是否有效。
此外,还有一个与CTS位相关联的SCTS位,W1C软件操作可对该位清零。

如果使能了EDDSI位,无论SDTS是否为1,都会产生所谓的调制解调器状态中断,并作为UART状态中断的信号量。
与CTS输入引脚相似,软件可以暂停发送。该过程可以通过设定UARTx_MCR寄存器中的XOFF位而立即实现。

在自回环模式(LOOP_ENA=1),接收器的RTS输出直接由内部回送到发送器的CTS输出。

一周热门 更多>