概念串口流控 CTS/RTS流控分为软件流控和硬件流控 串口只接了RX、TX两个信号,那么要流控的话只能使用软流控; 如果接了RX,TX,CTS,RTS四个信号,那么可以使用硬流控或者软件流控 软件流控(双发约定)软件流控通过在数据流中插入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)是一个命令行工具,用于设置和查看终端的各种属性和参数。 它可以用来改变终端的输入输出模式、波特率、行规则、控制字符等特性,以便根据不同的需求对终端行为进行定制和调整。 这里因为是串口4 自发自收,所以不需要设置波特率。 · -echo:表示关闭终端的回显功能,即输入的内容不会在屏幕上显示出来。 · -F /dev/ttyS4:指定操作的串口设备为 `/dev/ttyS4`。 · crtscts:启用硬件流控(RTS/CTS)。
要么在系统自带的fltest_uart测试程序里,添加如下代码。这里的参数和脚本里配置的参数是一致的。
|
|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )
GMT+8, 2024-11-22 11:15
Powered by Discuz! X3.4
© 2001-2013 Comsenz Inc.