基于ARM9 的嵌入式多串口服务器设计-设计应用_第1页
基于ARM9 的嵌入式多串口服务器设计-设计应用_第2页
基于ARM9 的嵌入式多串口服务器设计-设计应用_第3页
基于ARM9 的嵌入式多串口服务器设计-设计应用_第4页
基于ARM9 的嵌入式多串口服务器设计-设计应用_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑基于ARM9的嵌入式多串口服务器设计-设计应用摘要:以ARM920T为内核的S3C2440A作为主控制器和以太网控制芯片DM9000AEP设计硬件平台;构建并移植适合嵌入式串口服务器系统的嵌入式Linux操作系统,利用Linux完善的TCP/IP协议设计ARM端的多线程网络服务器程序。设计实现RS-232C串口与以太网口数据的双向传输,使现有的智能仪器设备成功接入以太网。

随着计算机网络的发展和物联网的兴起,将智能仪器接入网络已成为一种趋势,以实现数据的共享与远程管理。但是目前大多智能仪器使用的是异步串行通信接口RS-232C/485/422,因此迫切需要一种能将异步串行通信协议转换为以太网TCP/IP协议的协议转换器,使现有的串行通信设备方便地接入以太网,而不需要改变原有仪器设备的硬件。为此,笔者研究设计了基于ARM9微处理器和Linux操作系统的嵌入式多串口服务器。

1系统总体思路

采用以ARM920T为内核的S3C2440A微处理器运行Linux操作系统,使用100MBase-T网络在串行设备与远端主机之间有效地进行传输数据,这样通过串口服务器使串行设备快速接入以太网,利用以太网的TCP/IP协议进行串口数据包的传输。嵌入式串口服务器作为以太网数据与串口数据之间交互的中间桥梁,负责数据的双向透明传送。服务器端的主要任务是在ARM处理器中实现RS-232C/485/422转TCP/IP协议网关,完成对各端口的监听和数据的双向传输,当端口有数据产生或客户端有数据请求时启动独立线程,保证实时而又不丢失地进行数据传输。基于上述要求系统必须具备:一套对网络支持良好的嵌入式操作系统,并且可根据专用的硬件平台进行裁剪;微处理器的运行速度与处理数据的能力,外围芯片接口友好。

笔者选用Linux作为实时操作系统,并进行移植与配置使其可以运行在以ARM9为的硬件平台上。S3C2440A自带三路串行通信口,完够满足多串口服务器的设计要求,但考虑到网络数据传输与串口数据传输速率不匹配,需要在硬件板卡上扩展SDRAM和NORFLASH,另外系统还需扩展以太网控制器芯片。系统的总体设计框架如图1所示。

2硬件电路

系统可同时独立地与两路串行端口通信,当数据由以太网传送给串口服务器时完成数据的存储与数据格式的转换与处理,为数据传向指定的串行口做准备。当系统解包处理完成后,根据TCP/IP协议的数据帧的帧头信息就能获得该数据包的发送目标串口,这样就完成了从以太网到串行口数据的传输;当数据由串口设备传送到串口服务器时完成数据的分析、处理与格式转换,为数据传向以太网口做准备,当数据打包结束后将其从以太网口发送出去,这样就完成了串行口到以太网数据的传输。

2.1S3C2440A扩展以太网模块电路

DM9000AEP是一款高集成度且成本较低的单片快速以太网媒体介质访问层MAC控制器,上有通用处理器接口,10M/100M物理层和16KbyteSRAM,低功耗、高性能IO管脚兼容3.3/5.0V电压。DM9000AEP合成了以太网MAC、物理层PHY和MMU,内置AUTOMDI2X功能10/100MPHY,芯片可以根据处理器提供8/16/32bit3种连接方式实现以太网MAC层和PHY层)的功能。

在如图2所示的电路中,IOR#管脚接处理器的LnOE读信号端,IOW#接处理器的LnWE写信号端,CS#片选信号端接处理器的nGCS4片选信号,SD0~SD15分别接处理器的数据总线,中断信号INT接处理器的EINT18管脚,RX+、RX-、TX+和TX–分别是两对差分收发信号线接带有隔离变压器的HR911105A的RJ45座连接,如图3所示。访问网卡以总线形式实现,网卡的IO基址为300H,片选信号接在了NGCS4上,所以网卡IO的基址为0x20000300H.由“DM9000地址端口=高位片选地址+300H+0;DM9000数据端口=高位片选地址+300H+4”可知,DM9000端口的端口地址为0×20000300,DM9000数据的端口地址为0×20000304.S3C2440通过数据端口与地址端口并结合读/写信号线就可以对DM9000进行读、写操作了。图2中只用了一根地址线LADDR2,这是由DM9000AEP的特性决定的,DM9000AEP的地址信号和数据信号复用,使用CMD引脚来区分它们(CMD为低时数据总线上传输的是地址信号,CMD为高电平时传输的是数据信号).访问DM9000AEP内部寄存器时,需要将CMD置为低电平,发出地址信号;然后将CMD置为高电平,读/写数据。另外,总数位宽16位,两对差分接收与发送信号线,特别要注意的是:

在PCB布线时这两对线必须走差分线,否则接收和发送数据将不稳定,模拟地与数字地也要处理好。

图2网卡接口电路

2.2S3C2440串口模块电路

S3C2440本身自带三路独立的UART接口,在设计嵌入式串口服务器系统时,应用了S3C2440串口模块的两路UART接口,另外一路UART接口做开发时的打印控制台用。这两路串行口用三线通信,采用MAX3232作为电平转换芯片,分别配置处理器的GPH2、CPH3、CPH4和CPG5,4个GPIO口为TXD0、RXD0、TXD1和RXD1串口收发信号线。RS-232C接口电路如图4所示。

3系统软件

系统软件的设计目标:嵌入式串口服务器能够接收来自以太网的数据流,将以太网数据流转换为串行口数据流发送给指定串口;实现串口数据流到以太网数据流的逆过程。软件平台采用拥有完备TCP/IP协议栈和丰富源码资源的Linux作为串口服务器的操作系统,在ARM9上移植并裁剪Linux系统,同时移植完善根文件系统,为应用层软件开发提供平台。应用程序软件的主要任务如图5所示,通过Linux系统调用接口、调用串口函数读取数据,并将数据通过socket接口发往以太网口;接收socket端数据、调用串口设备函数,将数据发往指定串口。

3.1在Linux系统中对串口的操作

UART的操作主要有:数据发送、数据接收、产生中断、设置波特率、loopback模式、红外模式和硬/软流控模式7部分。在Linux中,所有设备文件一般都位于“/dev”下,其中串口对应的设备为“/dev/ttySx”,在Linux下对设备的操作方法与对文件的操作方法一样。下面就是设计中串口应用的开发步骤。

串口设置主要设置structtermios结构体成员,具体的串口操作函数此处略去,串口操作流程如图6所示。

3.2Linux网络套接字编程步骤

在Linux中的网络编程通过socket接口进行。socket是一种特殊的IO接口,也是一种文件描述符,它是一种常用的进程之间的通信机制,通过它不仅能实现本地机器上进程间的通信,而且通过网络能够在不同机器上的进程间进行通信。

嵌入式串口服务器系统网络套接字编程步骤如图7所示。

系统上电后,嵌入式服务器进入Linux系统并自动运行装载在其内的server程序。作为服务器,server程序在开始运行时就为每一个打开的串口创建recvpcwritearm和readarmsendpc线程,并在网络连接正常以及客户端没有执行关闭串口的操作时,每一个已打开串口对应的两个线程将不会结束,这样在系统满负荷运行时,系统将同时开启4个线程。嵌入式串口服务器主程序流程如图8所示,主函数实现套接字的初始化工作,建立两路监听套接字,分别初始化线程recvpcwritearmsocket[3000+com]套接字和readarmsendpcsocket[4000+com]套接字com为串行端口号。一旦接收到客户端的连接请求,判断客户端请求的方式后,启用相应的进程函数进行数据处理。

4试验

4.1数据上行测试

数据上行测试指串口设备发送信息到嵌入式串口服务器,通过嵌入式串口服务器将数据从以太网口传输出去。考虑实际使用过程中上行数据量较大,为了模拟工业现场接收大量的数据,以“1234567890abcdefghijklmnopqrstuvwsyz”构成的数据包进行模拟。

测试方法为每秒钟连续不断地发送“1234567890abcdefghijklmnopqrstuvwsyz”,使之构成100KByte的数据包,观察客户端程序能否正常收到这个数据包。试验测试结果如图9所示,当从“终端串口设备”向上位机发送100KByte数据时,在客户端一侧正常收到了这些数据,并且没有丢失现象。

4.2数据下行测试

数据下行测试指通过工控机上的以太网口发送数据给串口服务器,串口服务器接收以太网数据帧并进行格式转换,同时判断发往指定的串口设备。在实际使用过程中,上位机发送到串行终端设备的数据量较小,这些数据一般都是由操作人员输入的数据,因此可以用单个数据流“1234567890abcDefghijklmnopqrstuvwxyz”进行测试。

测试方法是利用运行在PC机上的客户端程序每秒钟发送连续数据流,观察另一台PC机上串口调试助手是否正常接收到数据。试验测试结果如图10所示,当客户端程序发送数据时,在终端串口设备上得到同样的数据流。

5结束语

笔者利用完全开源的Linux操作系统,将其移植、裁剪后设计嵌入式串口服务器系统,选用非常适用于通信产品中的ARM9内核的S3C2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论