1 引言
随着通信网络技术和集成电路设计的高速发展,以tcp/ip网络传输通信协议为代表,成熟度较高的开放式网络通信技术向各种自动化系统进行渗透CONTROL ENGINEERING China版权所有,连接并控制所有设备。
而在工业控制和各种通讯设备中,更多的却是符合rs-232标准的串行口设备。要将串行口的数据转发到网络上以实现数据的远程传输,就必须使用网关系统。网关又被称为网间协议变换器,用于连接采用不同通信协议的网络,实现网络之间的数据传输。本文提出了一种基于嵌入式系统来实现串口和以太网口之间的数据传输的设计方案。
本文以32位嵌入式微处理器s3c241o为核心,通过移植嵌入式操作系统linux,并在linux上开发相应的驱动程序和应用程序来构建一个方便、实用的网关。
2 嵌入式网关的结构化设计
本网关主要实现串口和以太网口之间的数据传输。其总体结构可简化为硬件层和软件层两部分。硬件层由高性能的微处理器和多个功能模块组成,软件层由嵌入式操作系统及应用软件构成.
2.1 硬件设计
本系统采用结构化设计,由串行口模块www.cechina.cn,协议转换模块和以太网接口模块等三部分组成。
各模块基本组成描述如下:
(1) 微处理器mcu
基于arm92ot内核的s3c241o微处理器是一个多用途的通用芯片,它内部集成了微处理器和常用外围组件,特别适用于手持设备;
(2) 1o/1oom以太网接口
选用realtek公司生产的rtl82oi芯片作为以太网的物理层接口控制芯片。再通过rj45就可连接到以太网;
(3) flash存储器
采用一片hy29lv16o构建flash存储器系统,其存储容量为2mb;
(4) sdram存储器
选用两片hynix公司的hy57v64162o芯片并联构建sdram存储器系统;
(5) jtag接口
可对芯片内部的所有部件进行访问,通过该接口可对系统进行调试,编程等;
(6) 串行接口
s3c241o自身就带有两个uart控制器,我们将它们与max232相连进行电平转换,就可以得到两个标准rs-232串行接口;
(7) i/o接口
主要包括键盘控制模块和液晶显示模块等。
2.2 软件设计
网关的软件体系结构设计分为3个层次:
(1) linux内核:提供文件系统管理、中断和中断处理、系统初始化、网络协议栈等;
(2) 硬件驱动层:包括驱动串口、以太网等;
(3) 应用程序:如串口通信程序、网络服务程序等。
● 建立linux开发环境。基于linux操作系统的应用开发环境由s3c2410的开发板和宿主pc机所构成。目标板所用到的操作系统的内核编译、应用程序的开发和调试由宿主pc机来完成。双方通过串口和以太网接口建立连接关系。
首先,在宿主机上安装linux操作系统,然后从网上下载工具链如:arm-elf-gcc-2.95.3-2.i386.rpm将它复制到宿主机上的任一目录下,键入安装命令,将交叉编译器安装到宿主机,建立起交叉开发环境.就可以用交叉编译器arm-elf-gcc编译操作系统内核和用户应用程序了。
● 设备驱动程序。设备驱动程序是内核和硬件之间的接口。它是一组数据结构和函数的集合,其中以init_module和cleanup_module这两个函数和file_operations,inodewww.cechina.cn,file这三个数据结构最重要,它们都在linux/fs.h中定义。这些数据结构和函数通过定义的接口控制一个或多个设备。设备驱动程序位于内核的最底层www.cechina.cn,直接与硬件进行交互。内核提供统一的系统调用,用户程序通过这些标准系统调用来访问硬件设备。
本设计中需要开发的硬件驱动有:以太网卡控制器,串口,lcdCONTROL ENGINEERING China版权所有,小键盘等驱动程序。为linux内核编写驱动要做的只是为相应的设备编写几个基本函数并vfs注册即可。一般都是在一个现成的驱动程序的基础上针对特殊的硬件设备作相应的改动。驱动编好以后,就为上层的应用程序提供了接口函数,然后开始编写针对该设备的应用程序。最后重新编译内核,把linux的二进制文件烧进flash存储器,就可以使用这些外部设备了。
● 应用程序设计。本网关的主要功能就是实现串口协议和网络协议的转换。由于移植了linux操作系统,我们只需在linux操作系统上编写串口应用程序和网络应用程序就可以实现网关的设计要求。应用程序设计框图如