英创Linux工控主板上的串口除了COM2为五线制的串口,其余都为三线制的串口,五线制的串口就是常说的使用了RTS/CTS流控的串口,在三线制串口的基础上加入了流控信号,所以它的信号分别为RX,TX,RTS,CTS,GND。流控可以使数据接收设备在不能接收数据时通知数据发送设备,使其停止发送。 串口的流控经常采用硬件流控和软件流控两种方式。像COM2这样使用了RTS/CTS信号的就称为硬件流控,下面我们来详细介绍硬件流控的实现方式,硬件连接原理如下图:
首先看RTS信号,RTS (Require To Send,发送请求)为输出信号,用于指示本设备准备好可接收数据,低电平有效,低电平说明本设备可以接收数据。然后是CTS信号,CTS (Clear To Send,发送允许)为输入信号,用于判断是否可以向对方发送数据,低电平有效,低电平说明本设备可以向对方发送数据。
我们以ESM335x为例来介绍实际的使用过程中,硬件流控的工作方式。COM2(ttyS1)有4K的接收缓冲区,当缓冲区没有溢出,RTS信号始终输出低电平,表示可以接收数据,而CTS信号的电平取决于对方设备的RTS信号,当对方设备缓冲区没有溢出,RTS信号输出低电平,板卡COM2的CTS信号也为低,表示可以向对方发送数据,一旦设备的缓冲区满了,就会将RTS信号拉高,板卡检测到CTS信号为高,就会停止发送。所以在两端设备处理速度不同时,硬件流控可以避免出现由于接收缓冲溢出而出现的丢数据的现象,在很多高速串口的应用中,也能看到硬件流控的身影。
接下来我们看看在软件中如何设置,这里还是使用我们光盘中的例程step2_serialtest来做示例,在例程的基础上,只需要修改一个语句和增加一个语句即可。我们需要将串口的参数port_info.c_cflag中的CRTSCTS位置为1,在我们的例程中已经提供了接口,只用在CSerial::OpenPort中将info.flow_ctrl 的值修改为1,而info是标准的接口port_info结构体:
typedefstructport_info
{
intbaud_rate;
intport_fd;
charparity;
charstop_bit;
charflow_ctrl;
chardata_bits;
}*pport_info;
structport_info info;
info.flow_ctrl = '1';
ESM335x工控板还需要需要将硬件流控的标志位置为1,在open了COM2(ttyS1)之后调用一个ioctl就能够实现(ESM928x系列的主板可以省去这一步):
ioctl(m_fd,TIOCSERCONFIG);
这样在程序上就已经修改完成,只有五线制的串口COM2(ttyS1)能够支持硬件流控,需要注意的是CTS信号默认为输入加有3.3V上拉,所以需要连接具有流控的串口设备或是将CTS信号拉低才能够看到COM2口的输出波形,如下图所示,黄色为TX信号,蓝色为CTS信号:
CTS信号为高,TX没有输出
CTS为低,TX有信号输出
-
Linux
+关注
关注
87文章
11354浏览量
210657 -
嵌入式主板
+关注
关注
7文章
6087浏览量
35672
发布评论请先 登录
相关推荐
信息安全管理必备!Linux系统使用SSH登录root账号的方法
![<b class='flag-5'>信息</b>安全管理必备!<b class='flag-5'>Linux</b>系统使用SSH登录root账号的<b class='flag-5'>方法</b>](https://file1.elecfans.com/web3/M00/07/FC/wKgZPGesUdaAH-xaAAB2F0U-OwI629.png)
OpenHarmony测试RS232/RS485串口方法,触觉智能SBC3528工控主板演示
![OpenHarmony测试RS232/RS485<b class='flag-5'>串口</b><b class='flag-5'>方法</b>,触觉智能SBC3528<b class='flag-5'>工控</b><b class='flag-5'>主板</b>演示](https://file1.elecfans.com/web3/M00/02/98/wKgZPGdhGkGADIsaAAB610m85cE100.png)
国产工控主板,信创产业发展新引擎
中科创达荣获2024年软件和信息技术服务优秀企业
工控主板有哪些特点?
信创国产化背景下的工控主板发展现状
瑞芯微RK3588开发板Linux系统添加自启动命令的方法,深圳触觉智能Arm嵌入式鸿蒙硬件方案商
![瑞芯微RK3588开发板<b class='flag-5'>Linux</b>系统添加自启动命令的<b class='flag-5'>方法</b>,深圳触觉智能Arm嵌入式鸿蒙<b class='flag-5'>硬件</b>方案商](https://file1.elecfans.com/web2/M00/07/C0/wKgaombrfu2AU1EjAACOqej_r-w726.png)
评论