基于ARM的串口服务器的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于ARM的串口服务器的设计与实现
作者:郭剑城
来源:《中国科技博览》2015年第23期
[摘要]现在正在使用的大量的传统设备采用的是异步串行接口,与现今流行的TCP/IP网络设备之间存在着互连的问题。

本文提出了基于32 位ARM 处理器的网络串口服务器的设计方案,支持多种网络协议,且体积较小、功能齐全,提供了一种将异步RS232 串行数据和在以太网传送的TCP/IP 数据包之间进行相互转换的桥梁。

[关键词]嵌入式 TCP/IP 串口服务器
中图分类号:TP393 文献标识码:A 文章编号:1009-914X(2015)23-0047-01
1.前言
以太网从出现至今已经三十多年了,由于它的性能价格比高,容易普及使用,在企业内部互联网(Intranet),外部互联网(Extranet),以及国际互联网(Internet)提供的广泛应用不但已经进入今天的办公室领域,而且还可以应用于生产和过程自目前全球企事业用户的90%以上都采用以太网接入,已成为企事业用户的主导接入方式。

但在很多场合,大量的采用传统的RS232 异步串行接口的传统设备仍旧在广泛使用,在很多应用中,这些设备的异步数据需要通过网络进行传输,因此这些传统的设备与现今的网络设备之间存在着互联问题。

串口服务器是一款带有1 个10/100M 网络接口的和1 个或多个异步RS232S 串行接口的串口服务器。

异步串行数据服务器内部使用高性能的32 位ARM 处理器,支持多种网络协议,且体积较小、功能齐全,提供了一种将异步RS232 串行数据和在以太网传送的TCP/IP 数据包之间进行相互转换的桥梁,使带有传统的异步RS232 串行数据设备的信息可以通过互联网络进行传送或共享。

串口服务器可以使数量众多且分散在不同位置的RS232 串口设备共享主机资源,同时这些RS232 串口设备可以通过网络得到远程主机的支持。

作为专用的异步数据和网络数据的相互转换的设备,具有传统的多用户卡和终端服务器无可比拟的优点:传统的多用户卡扩展串口方案,占用主机资源,并可能导致系统不稳定,同时联接的终端数目和距离有限;而终端服务器解决方案成本太高,很难普及应用。

串口服务器是最优解决方案,不占用主机资源,且具有终端服务器的功能。

更重要的是可将现有的传统的串口设备立即转换成具备网络接口的外设,保障用户原有硬件和软件的投资而不影响设备的任何性能。

串口服务器可以用在下列的众多场合:
◆工业/工厂自动化系统;
◆电信/光纤通讯系统;
◆银行、保险等金融系统;
◆楼宇自动控制系统;
◆大型零售系统;
◆各种远程和分布式串口设备控制;
◆各种实验仪器仪表的联网自动化等。

2.系统设计
2.1 设计需求(功能描述)
◆能与网管代理通过TCP/IP协议通信;
◆能与监测前端通过RS232通信;
◆不丢失被测数据,各采集端口可独立设置(包括波特率等)、独立工作;
◆具有抗干扰功能,具备硬件看门狗,防止死机;
◆对各采集端口读写信息实现透明传输;
◆具有自动连接网管代理和自动选择网段(提供两个备选网段)的功能;
◆具有软件升级接口;
◆可以向监测前端供电。

2.2 系统结构
串口服务器采用通用设计方式,方便裁减或修改成适应多种测量控制用途。

它主要包括微控制器、存储器、以太网扩展芯片、看门狗及复位电路、多路串口扩展这几部分。

微控制器可采用自带网络功能的CPU(例如S3C4510B,ARM7TDMI,带10/100Mbps MAC层)。

FLASH采用一片SST39VF160 1M×16bit(2MB),SDRAM采用两片K4S641632F
1M×16bit×4Banks(64Mbit)(×2片,构成32bit数据)。

串口扩展采用的是TL16C554A ,单片集成了4路TL16C550C,最高速度1Mbps,MAX3232每片2路电平转换。

以太网部分采用RTL8201BL。

看门狗及复位电路采用MAX706T / S (MAX6369)。

2.3 软件层次描述
基于4510B的串口服务器要可以实时完成采集到数据的TCP/IP协议封装的功能,需要采用嵌入式操作系统。

一种方案是采用ucLinux,但在实际工作中我们发现,ucLinux容错能力不够强,经常会造成系统死机。

因此,为了保证实时系统的稳定性,我们采用了Vxworks嵌入式操作系统,属于强实时系统,已经广泛应用在航空航天、通信、仪器、自动化控制等领域。

该系统提供支持ARM7TDMI内核的板级支持包以及TCP/IP工具包。

系统主要任务及主要流程
在串口服务器中,硬件和软件部分相结合完成整个系统功能。

软件系统将完成协议解析及协议转换的功能。

主要任务有:复位连接,解析网管代理指令,激活指定端口的处理任务,指令字传送至端口,转发端口数据,错误信息处理,定时清空看门狗定时器,等7个任务。

流程举例:复位连接
3.3 基于VxWorks嵌入式实时操作系统的TCP/IP数据封装
在4510B上配制Vxworks的方法如下:
首先要调试VxWorks在4510B上的BSP,其中config.h是一个重要的配置文件。

该文件中最需要关注的一部分配置就是对存储空间的配置:
……
#define ROM_BASE_ADRS 0x01000000 /* base of Flash/EPROM */
#define ROM_TEXT_ADRS 0x01000000 /* code start addr in ROM */
#define ROM_SIZE 0x00100000 /* size of ROM holding VxWorks */
#define RAM_LOW_ADRS 0x00001000 /* VxWorks image entry point */
#define RAM_HIGH_ADRS 0x00100000 /* RAM address for ROM boot */ ……
相应的,在MAKEFILE文件中对内存的设置要与上面相同:
……
ROM_TEXT_ADRS = 01000000 # ROM entry address
ROM_WARM_ADRS = 01000004 # ROM warm entry address
ROM_SIZE = 00100000 # number of bytes of ROM space
RAM_LOW_ADRS = 00001000 # RAM text/data address (bootrom)
RAM_HIGH_ADRS = 00100000 # RAM text/data address (bootrom)
……
在Vxworks系统中数据封装的方法如下:
为了及时响应外部的数据读取请求,4510B的软件中采用中断处理方式读取FPGA中的AD数据缓存。

为了保障连续的采集和传输,对于这部分数据缓存采用“乒乓法”。

待当前缓存区存满时,从中断处理程序中释放一个二进制信号量给上传任务,由上传任务负责TCP数据封装,并且数据存储的指针切换到另一块缓存区。

VxWorks使用与BSD4.4 Socket兼容的TCP/IP网络协议栈。

因此,基于BSD4.4 UNIX Socket的网络应用程序可以很方便的移植到VxWorks中来。

4.结语
串行数据服务器内部使用高性能的32 位ARM 处理器,支持多种网络协议,且体积较小、功能齐全,提供了一种将异步RS232 串行数据和在以太网传送的TCP/IP 数据包之间进行相互转换的桥梁,使带有传统的异步RS232 串行数据设备的信息可以通过互联网络进行传送或共享。

本设计在网络通信层达到了资源共享,用通用的ARM7TDI内核的三星4510B板上完成了复杂的数据封装等网络通信工作,并且用Vxworks嵌入式操作系统增加了系统的稳定性。

参考文献
1.李驹光,聂雪媛,“ARM应用系统开发详解-基于S3C4510B的系统设计”,清华大学出版社,2003年
2.Wind River[美],“VxWorks网络程序员指南”,Wind River Systems,2003年。

相关文档
最新文档