0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

EM9460工控主板为例的串口扩展应用方案

英创信息技术 作者:英创信息技术 2019-10-27 11:14 次阅读

多串口通讯在工控领域中是十分常用的一种通讯方式,常用于数据交互、搜集、传送等。基于这类应用,英利嵌入式Linux工控主板自带6个异步串口;还支持用户通过精简ISA总线、USB接口扩展出更多的串口。本文介绍使用英利工控主板,通过精简ISA总线连接ETA503 四串口扩展模块,组成10串口的扩展应用方案。同时,通过USB接口扩展串口的应用方案参见《英利工控主板8串口应用方案》。

本文以EM9460工控主板为例,然而该方案完全适用于英利EM9x60系列工控主板。

该方案的系统构成如下图所示:

EM9460工控主板为例的串口扩展应用方案

由EM9460工控主板与ETA503组成的10串口系统

ETA503是一款基于英利嵌入式Linux工控主板的四串口扩展模块,通过一片16C554和一片逻辑控制器扩展出四个串口供用户使用。ETA503的硬件设计使得用户既能快速方便地进行评估,又能很好地将其融入自己的产品设计中。用户可通过以下步骤来快速实现10串口应用方案:

1、原型评估
ETA503 的外观示意图如下:

(标注尺寸:inch(1 inch = 1000mil = 25.4mm))

ETA503包括5个插座,其中CN1为精简ISA总线接口,其信号定义如下:

信号名称及简要描述 PIN# 信号名称及简要描述
RESET#,复位输出 1 2 SA0,地址总线
SD0,数据总线,低位 3 4 SA1,地址总线
SD1,数据总线 5 6 SA2,地址总线
SD2,数据总线 7 8 SA3,地址总线
SD3,数据总线 9 10 SA4,地址总线
SD4,数据总线 11 12 WE#,写信号控制线
SD5,数据总线 13 14 RD#,读信号控制线
SD6,数据总线 15 16 CS1#,片选线
SD7,数据总线,高位 17 18 VCC,+5V电源输出
IRQ1,中断请求线 19 20 GND,公共地

CN3-CN6是四个扩展出的9线制串口,LVTTL(3.3V)电平,分别对应ttyISA0-ttyISA3,具有相同的信号定义如下:

信号名称及简要描述 PIN# 信号名称及简要描述
DCD# 1 2 DSR#
RXD 3 4 RTS#
TXD 5 6 CTS#
DTR# 7 8 RI#
GND 9 10 VCC(+5V)

从英利公司购买EM9x60开发评估套件和ETA503,通过精简ISA总线进行连接,可进行快速的功能评估。ETA503的驱动程序已经固化在英利嵌入式Linux工控主板中,在此基础上,客户可利用英利公司为ETA503提供的基本通讯应用程序源代码快速评估多串口扩展单元的基本性能是否满足其具体的应用需求。

2、设计应用产品
实际应用时,ETA503可以作为一个“器件”直接背插在用户的应用底板上,以获得最佳的数据传输性能。如果需要修改各个串口的驱动形式,如RS232C、RS485RS422等,用户可以参考相应开发评估底板的威廉希尔官方网站 原理图和PCB图。

3、应用程序开发
在Linux应用环境中对扩展串口的编程方法与标准的串口应用程序完全一样,只是需要注意打开扩展串口的设备名称有所不同,对于扩展串口需采用“/dev/ttyISAx”,而不是板卡上的串口名称“/dev/ttySx”。

英利所提供的扩展驱动库文件放置在根文件系统/lib/modules/2.6.30目录下,相关的驱动文件是:
/lib/modules/2.6.30/eta503_serial.ko

在使用时需要首先载入该驱动功能模块,在Linux操作系统下,一般是利用系统的内部指令insmod来实现向系统内核载入模块:
[root@EM9X60 /mnt/nandflash]# insmod /lib/modules/2.6.30/eta503_serial.ko

在嵌入式领域的应用中,往往是需要自动加载模式的方式,这一功能可通过编程来实现,利用C++中的构造函数以及析构函数可以很好地实现驱动功能模块的自动载入和自动卸载。

定义一个class CSerial 串口通讯类,在该类中主要实现串口通讯应用的功能。
其构造函数:
CSerial:: CSerial ( )
{
system( 'insmod /lib/modules/2.6.30/eta503_serial.ko' ); // 载入扩展串口驱动模块
}

对应的析构函数:
CSerial::~CSerial( )
{
system( 'rmmod eta503_serial.ko' ); // 卸载驱动模块
}

应用程序中,一旦定义了class CSerial 的实例就实现了键盘模块的自动载入。后续就可按照标准打开串口设备文件的方式操作扩展串口。在Linux系统中,所有的设备文件都位于“/dev”目录下,EM9460板卡上6个串口所对应的设备名依次为“/dev/ttyS1”-“/dev/ttyS6”,通过ETA503扩展出的串口设备名依次为“/dev/ttyISA0”-“/dev/ttyISA3”。为了方便统一应用程序,可以做以下操作:

if( PortNo>6 )
sprintf( portname, '/dev/ttyISA%d', PortNo-6); // PortNo为串口端口号,从7开始
else
sprintf( portname, '/dev/ttyS%d', PortNo ); // PortNo为串口端口号,从1开始
m_fd = open( portname,O_RDWR | O_NOCTTY | O_NONBLOCK);

具体串口通讯的细节可参考《英利Linux工控主板应用程序编程手册》中的相关章节。如果还需要更多的串口扩展,可参阅《英利工控主板8串口应用方案》中的介绍作进一步的串口扩展。客户可以综合这两个方案并进行拓展应用,以扩展出符合自己需求数量的串口。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11302

    浏览量

    209431
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35317
收藏 人收藏

    评论

    相关推荐

    工控主板EM335x多串口扩展方案

    中断请求输入,必须由EM335x主板的GPIO24充当。ISA信号以#后缀的信号,表示低电平有效。多串口扩展模块ETA503 / ETA5
    发表于 07-05 16:01

    英利Linux工控主板使用必读(EM9x60)

    英利EM9x60系列工控主板包括两个型号:EM9160和EM9260。便于读者了解和使用英利产
    发表于 11-09 21:47 34次下载

    嵌入式工控主板EM9160的PWM功能

    英创公司新近推出的嵌入式工控主板EM9160是一款专门面向工业智能设备的高性价比ARM9+WinCE平台,该工控主板不仅配置了常规的标准通讯
    发表于 04-09 15:49 36次下载

    EM9460工控主板数据手册资料免费下载

    EM9460 是一款专为高效低成本工控应用而设计的嵌入式 Linux 主板,其硬件核心工业级的 ARM9 芯片 AT91SAM9260,预装嵌入式 Linux-2.6 实时多任务操作
    发表于 11-21 08:00 12次下载

    基于EM9460的ETA501使用方法

    本文将以EM9460介绍ETA501的使用方法,该方法同样适用于英利的其他Linux嵌入式主板产品,如EM9160、
    的头像 发表于 10-27 11:09 1928次阅读

    英创信息技术工控主板EM9000串口扩展介绍

    EM9000工控主板是英创公司的主流产品之一,以突出的综合性性能为特色,特别是Windows CE平台与EM9000较强的显示硬件单元相匹配,使其得到了越来越广泛的应用。在工业应用中,
    的头像 发表于 11-15 09:19 1777次阅读
    英创信息技术<b class='flag-5'>工控</b><b class='flag-5'>主板</b><b class='flag-5'>EM</b>9000<b class='flag-5'>串口</b><b class='flag-5'>扩展</b>介绍

    英创信息技术EM9560工控主板简介

    了新的需求。针对这些需求,我们对其产品进行了进一步的优化设计,并将在近期推出与EM9460完全兼容的增强版本,产品型号为EM9560工控主板EM
    的头像 发表于 01-15 14:48 1514次阅读

    英创信息技术EM9560工控主板GPIO的使用介绍

    EM9560工控主板是以EM9460工控主板基础,
    的头像 发表于 01-15 14:48 1615次阅读

    英创信息技术EM9560工控主板专用数字IO的使用介绍

    EM9560工控主板是以EM9460工控主板基础,
    的头像 发表于 01-15 14:25 1461次阅读
    英创信息技术<b class='flag-5'>EM</b>9560<b class='flag-5'>工控</b><b class='flag-5'>主板</b>专用数字IO的使用介绍

    英创信息技术EM9X60利用串口实现ISO7816介绍

    英利EM9160、EM9460系列产品,均以丰富的串口资源特色,已大量地应用于工业环境中,特别是在电力系统中应用。最近公司即将推出一款新的产品EM
    的头像 发表于 01-15 14:49 2909次阅读
    英创信息技术<b class='flag-5'>EM</b>9X60利用<b class='flag-5'>串口</b>实现ISO7816介绍

    英创信息技术EM9280工控主板对音频的支持介绍

    对于需要使用音频播放应用的工控系统,我们设计了专门的音频扩展模块ETA972,ETA972可与英创的大部份工控主板配合使用。EM9280是我
    的头像 发表于 01-16 09:15 1920次阅读
    英创信息技术<b class='flag-5'>EM</b>9280<b class='flag-5'>工控</b><b class='flag-5'>主板</b>对音频的支持介绍

    英创信息技术Linux调试串口转换为应用串口的方法

    英创公司的EM9X60系列工控主板(包括 EM9160、EM9360、EM9460
    的头像 发表于 01-16 09:28 1622次阅读

    英创信息技术EM9280工控主板对TF卡支持介绍

    标准配置的EM9280工控主板有8路串口,其中COM7、COM8、COM9这3路是EM9280扩展
    的头像 发表于 01-17 10:22 1754次阅读
    英创信息技术<b class='flag-5'>EM</b>9280<b class='flag-5'>工控</b><b class='flag-5'>主板</b>对TF卡支持介绍

    英创信息技术EM9460 USB虚拟串口应用简介

    ,最方便的方法就是利用EM9460中的USB device设备口和PC机的USB主控口相连,在EM9460的USB device驱动实现将其映射一个虚拟串口的功能,PC和
    的头像 发表于 02-03 08:59 1709次阅读
    英创信息技术<b class='flag-5'>EM9460</b> USB虚拟<b class='flag-5'>串口</b>应用简介

    英创信息技术EM335x工控主板四网络扩展方案介绍

    扩展需求,英创公司推出利用精简ISA总线接口的双网络扩展单元ETA728。客户可以直接使用ETA728或者参考ETA728进行设计,从而组成EM335x嵌入式主板的四网络应用
    的头像 发表于 02-03 10:03 1360次阅读