摘 要: 随着Internet 的迅猛发展和广泛普及, 让全部设备接入网络, 以Internet 为介质实现信息交互成为未来设备网络化的发展趋势。 介绍了一种以ARM7 系列的微处理器S3C44B0X 和RTL8019AS 网络接口芯片为主要构件的嵌入式系统, 移植了uClinux 操作系统、 boa 软件和CGIC 库, 实现了串口设备的网络化, 用户可以通过Internet访问该系统并通过Web 网页与之交互, 实现远程实时监控和管理设备, 在工业自动化、远程监测等领域有广阔的应用前景。
随着因特网和通信产业的迅猛发展, 人们的生活、工作、思维方式都发生了巨大变化。 嵌入式系统给信息社会带来了新的生机, 而嵌入式Internet 技术的出现和发展无疑给这种趋势起到了推波助澜的作用。
目前, 随着互联网技术应用的日益广泛, 网络传输已经成为一种最为经济有效的数据传输方式,越来越多的设备需要配置网络接入功能, 以实现对系统的远程监测和数据集中处理。
本文提出了一种嵌入式Web 系统方案, 利用基于TCP/IP 协议的串口/以太网数据转换技术实现串口设备数据的网络化传输, 监测数据存储在非易失性存储器中, 并及时发布到互联网上更新监测网页。 用户可以通过Internet 访问系统Web 服务器远程获取所需信息, 实现有效的远程监控和信息处理。
1 串口以太网数据的转换
近年来, 互联网以其高速便捷传输数据的特点越来越受到人们的青睐。 而在工控和通信设备中, 更多的却是符合RS-232/485 标准的串行口设备。 与基于RS-232/485 标准的串行通信相比, TCP/IP 网络具有带宽、高速、远距离及通信业务广泛的优点, 而且连网通信距离可以无限延长, 并且相对RS 标准的通信抗干扰能力差, 信息传输容易出错, 网络是基于复杂环境设计的, 具有自动纠错功能, 通信质量稳定不易受外界干扰。 因此, 将串口数据通过网络传输成为串口设备网络化进程的研发热点。
图1 串口以太网转换器
串口以太网转换器(如图1 所示)的出现使得基于TCP/IP 的串口数据流传输成为可能, 它可以连接多个串口设备并将串口数据流进行选择和处理, 把现有的RS 标准接口数据转化成IP 端口数据, 然后IP 化管理, IP 化存取, 这样就能将传统的串行数据送上流行的网络通道, 无需过早淘汰现有串口设备, 提高设备利用率。 各种转换器完成的是一个面向RS 标准的链接和无连接的以太网通信数据存储控制器, 对各种来自串口设备的数据流进行格式转换使之成为可以在以太网中传播的数据帧并对来至以太网的数据帧进行判断转换成串行数据送达相应的串口设备。 这包括三个关键技术:
① TCP / IP 协议的工作模式: 串行转以太网, 不是简单的物理层和数据链路层的转换, 而是串口的数据作为TCP/IP 的应用层数据, 用TCP/IP 封装传输的方式。 如用户通过socket 的recv()和send()函数接收和发送的实际是应用层数据。 但是TCP/IP 并不只是recv()和send()这么简单, 根据工作模式的不同, 它关系到连接、监听、关闭等, 这是串口转网口后需要增加处理的部分。 TCP/IP 的工作模式可以分为: TCP 服务端模式(TCP Server)、TCP 客户端模式(TCP Client)、UDP 模式。 UDP 模式: UDP 模式是基于非连接的模式,只要有数据发送即可发送, 不需要事先连接。 TCP 模式: TCP 模式采用数据可靠传输机制, 所以可以保证数据基本不误码、不丢失。
② 串口分帧技术: 串口数据是可以连续不断发送的, 而以太网数据则是以数据包为单位发送的。 这样就关系到将多长的串口数据打包后作为一个以太网数据包发送的问题。 目前主要采用数据包长度或数据包间隔两种方式。
③ 9 位技术: 以太网数据是以字节Byte 计算的每个字节都是8 位, 但是串口数据则有可能出现9 位, 第9 位常常用于区分是地址帧还是数据帧, 1 表示地址帧0 表示数据帧。 那么在当串口转化为以太网之后, 如何将第9 位也传送出去就成了一个关键技术。 在众多的串口转网口方案中都是将第9 位直接舍弃的, 目前据了解上海卓岚信息科技的方案具有快速地适应9 位的功能, 其实现方法中采用了称之为RealCom 的协议。
由于增加了第9 位, 所以串口数据不能够直接透明地转化为TCP/IP 应用层数据, realcom 协议将串口数据打包之后整个作为TCP/IP 的应用数据传输。 这样可以在realcom协议的协议头部加入该数据包的第9 位是1还是0 的信息, 从而实现了9 位传输技术。
2 嵌入式Web系统设计
2.1 系统基本工作原理
要将嵌入式接入以太网达到通过网络进行数据传输的要求, 首先要正确设置RTL8019AS 的工作方式和状态, 通过对相应地址和数据端口的读写操作完成以太网帧的接受和发送。 RTL8019AS 内部具有远程DMA 接口、本地DMA 接口、MAC 逻辑、数据编码解码逻辑和其他端口。 远程DMA 接口是MCU 对网卡内部RAM 进行读写操作的总线, 本地DMA 接口是RTL8019AS 与网线的连接通道, 完成控制器与网线的数据交换。
MAC 主要完成下面两功能: (1)当MCU 向网上发送数据时, 先将一帧通过远程DMA 通道送到网卡的发送缓冲区, 然后发送传送命令, 待网卡发送完上一帧数据后, 在开始发送当前帧。 (2)网卡接收到的数据通过MAC 比较和CRC 校验后, 由FIFO 存到接收缓冲区。 收满一帧后, 以中断方式通知主处理器。 当RTL8019AS 相关参数设置完毕后, 系统进入正常工作状态, 执行与Internet 连接相关功能。
2.2 硬件设计
系统有两部分构成: 嵌入式Web 服务器和串口终端设备, 如图2 所示。
图2 系统结构
嵌入式Web 是系统的核心, 采用B/S 机制。 对外直接连接Internet, 对内连接串口终端, 并提供Web服务和用户交互。 用户可通过网页形式向服务器发送指令。 系统接收到信息后进行协议分析转换, 并向相应的串口终端发送控制命令。 串口终端执行完相关操作后, 将执行结果通过Web 服务器以网页形式反馈给用户。
嵌入式Web 服务器主要构成有: 微控制芯片(S3C44B0X), 以太网控制芯片(RTL8019AS), 多串口协议处理器, 外扩Flash ROM芯片等。 外扩ROM用于存放IP 地址, 网卡物理地址和其他相关参数, 同时还可以保存程序和网页数据。