英创EM9x60系列工控主板均板载高速全双工物理串口,其中除了ttyS3引出方式为232电平以外,其余串口均以TTL电平引出,客户可以在应用底板上将这些串口扩展为标准RS232或RS485串口使用,也可以连接自己的串口外设。
EM9x60的TTL串口除了ttyS1以外,都是三线串口,提供RXD、TXD、GND这3路信号。为了提高电路的抗干扰能力,实际RS485串口应用中,客户可能需要使用GRTS#硬件方向控制。英创为此提供的方案是:使用板载GPIO作为RTS#信号线,并在内核串口驱动中增加相关的控制操作,客户只需在使用串口之前使能RTS#功能,就可以启动RTS#硬件方向控制功能。
EM9x60支持这一功能的有ttyS3、ttyS4、ttyS5、ttyS6这4路串口,相应的用于模拟RTS#信号线的GPIO为GPIO6、GPIO8、GPIO9、GPIO10,具体对应关系如下:
| 串口名称 | RTS#使用的GPIO |
| ttyS3 | GPIO6 |
| ttyS4 | GPIO8 |
| ttyS5 | GPIO9 |
| ttyS6 | GPIO10 |
须注意的是,上述4路GPIO一旦被用作RTS#信号线,则无法同时作为GPIO使用。
要使用这一功能,在应用底板制作的时候,除了引出TXD、RXD,并将串口信号转换为差分信号以外,还需要进行一些电路扩展,如下图。

从图中可以看出,方向控制信号COM2_RTSn(即RTS#信号)是低电平有效的,有效时(低电平)串口处于发送状态,无效时(高电平)处于接收状态。 用户需要特别注意RTS#信号是低电平有效的控制信号,这是因为:(1)在主板上电复位时,所有管脚均处于带上拉的输入状态,这时管脚的电平为高。采用低电平输出有效,防止了在上电复位过程中,RS485总线被无效信号干扰的问题;(2)若由于某种原因RTS#信号与RS485驱动断开,因为悬空管脚在数字电路中是作高电平状态的,因此也避免了电路内部的故障影响RS485总线的情况发生。
EM9x60内核中已经增加了RTS#控制部分,在串口测试例程中也增加了相应结构定义和函数如下:
#define EM9x60_RTS_CONTROL_TOGGLE (1 << 15)
int enable_rts_toggle(pport_info p_info)
{
struct termios cur_opt;
int status;
tcgetattr(p_info->port_fd,&cur_opt);
// 修改模式,进入rts toggle操作
cur_opt.c_cflag |= EM9x60_RTS_CONTROL_TOGGLE;
status = tcsetattr(p_info->port_fd,TCSANOW,&cur_opt);
if(status != 0)
{
perror('Cannot set the serial port parameters');
return -1;
}
return status;
}
在提供的应用例程step2_serialtest中,可在初始化串口函数OpenPort()中加上使能RTS的代码,如:
// 使能 RTS
if( enable_rts_toggle( &info )!=0 )
{
printf( 'enable rts toggle fail\n');
}
之后对于串口的读写操作和标准的RS232串口操作完全一致。
由于RTS#的控制由驱动程序自动进行,因此无论是否打开这一功能,客户的应用程序开发是完全一样的,可参考英创光盘的Step2_SerialTest进行开发。
-
嵌入式主板
+关注
关注
7文章
6107浏览量
36950
发布评论请先 登录
龙芯中科助力2025教育信息技术应用创新大赛成功举办
新时代的硬核基石:龙芯工控主板助力信创产业新基建
3A6000CPU+7A2000桥片龙芯主板:国产芯的实力担当
智慧新核心,龙芯主板助力信创体系再升级
佛瑞亚如何通过信息技术推动业务增长
飞腾主板为信创产业发展提高硬实力
信创浪潮澎湃,国产主板迎来黄金时代!
DEKRA德凯成为沙特通信和信息技术设备技术法规认证机构
科普|信创是什么?一文读懂“信息技术应用创新”战略
2025第二届教育信息技术应用创新大赛正式开赛
瑞芯微开发板/主板Android调试串口配置为普通串口方法

英创信息技术EM9x60主板串口的RTS硬件方向控制方法
评论