嵌入式爱好者

如何开启硬件流控功能

2024-7-29 16:58| 发布者: 拉不拉东| 查看: 59| 评论: 0

类目: 知识库  >  RK3588系列产品     文档编号: 1462

概念

串口流控 CTS/RTS

流控分为软件流控和硬件流控

串口只接了RXTX两个信号,那么要流控的话只能使用软流控;

如果接了RXTXCTSRTS四个信号,那么可以使用硬流控或者软件流控

软件流控(双发约定)

软件流控通过在数据流中插入Xoff(特殊字符)和Xon(另一个特殊字符)信号来实现。

A设备一旦接收到B设备发送过来的Xoff,立刻停止发送;

反之,如接收到B设备发送过来的Xon,则恢复发送数据给B设备。

同理,B设备也类似,从而实现收发双方的速度匹配。

 

硬件流控

常用的有RTS/CTS流控制和DTR/DSR(数据终端就绪/数据设置就绪)流控制

RTS,用于指示本设备准备好可接收数据,低电平有效,低电平说明本设备可以接收数据。是输出信号

CTS,用于判断是否可以向对方发送数据,低电平有效,低电平说明本设备可以向对方发送数据。是输入信号。

总的来说,就是RTS 信号控制CTS 信号。

 

 

引脚链接图

A设备的RTS 连接B设备的CTS , B设备的RTS 连接A设备的CTS, 从而实现A,B设备的互相控制。

图右代表 a设备的rts信号 为低电平时,b设备的cts信号 也为低电平。b设备可以向a设备发送数据。

一旦有上升沿跳变成高电平,b设备的cts信号 也会变成高电平。 b设备就不可以向a设备发送数据。

 

硬件流控修改

1,在设备树添加流控引脚。

2,驱动层不做修改

3,应用层需打开硬件流控控制

要么如下图图脚本所示,提前配置串口

`stty`Set TTY)是一个命令行工具,用于设置和查看终端的各种属性和参数。

它可以用来改变终端的输入输出模式、波特率、行规则、控制字符等特性,以便根据不同的需求对终端行为进行定制和调整。

这里因为是串口自发自收,所以不需要设置波特率。

·        -echo:表示关闭终端的回显功能,即输入的内容不会在屏幕上显示出来。

·        -F /dev/ttyS4:指定操作的串口设备为 `/dev/ttyS4`

·        crtscts:启用硬件流控(RTS/CTS)。

 

要么在系统自带的fltest_uart测试程序里,添加如下代码。这里的参数和脚本里配置的参数是一致的。

 


已解决

未解决

只是看看

最新评论

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-11-22 11:15

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部