1引言
互联网络硬件、软件的迅猛发展,使得网络用户呈指数增长,在电子设备日趋网络化的背景下,越来越多的嵌入式应用需要支持网络功能。 TCP/IP是一套把因特网上的各种系统互连起来的协议组,成为事实上最常用的网络标准之一。在使用计算机进行网络互联的同时,各种家电设备、仪器仪表以及工业生产中的数据采集与控制设备在逐步地走向网络化,以便共享网络中庞大的信息资源。只要那些设备上实现了TCP/IP协议并增加一个网络接口,就可方便地接入到现有的网络中。考虑到单片机成本低廉,利用TCP/IP协议中的UDP(用户数据报协议)、IP(网络报文协议)、ARP(地址解析协议)及简单的应用层协议,根据应用的需要做相应的裁减,文中将介绍用AT90S8515单片机与10Mbps以太网控制器芯片RTL8019AS设计嵌入式TCP/IP单片机系统,成功地实现了RS-485现场总线设备通过嵌入TCP/IP的单片机系统接入以太网,完成PC 机与终端设备的远程通信和控制,最后对系统性能进行分析。
2以太网控制器RTL8019AS简介
RTL8019AS是台湾REALTEK公司生产的基于ISA总线的10 Mbps以太网控制器芯片。由于其优良的性能、低廉的价格,使其在市场上10Mbps网卡中占有相当的份额。
主要性能:
(1)符合EthernetⅡ与IEEE802.3(10Base5、10Base2、10BaseT)标准;
(2)支持全双工,收发可同时达到10Mbps速率;
(3)16KB片内SRAM,用于收发缓冲,降低对主处理器的速度要求;
(4)支持8/16位数据总线,8个中断请求线以
(6)支持跳线和非跳线模式;
(7)允许4个诊断LED引脚可编程输出;
(8)100脚的PQFP封装。
该芯片功能很强,它集成介质访问子层(MAC)和物理层的功能,对RTL8019做了很大改进,处理能力更强,操作更灵活。但与一般单片机接口时,只需要用到其中一部分即可完成网络通信功能,其它引脚悬空。
3与AT90S8515单片机系统的接口电路
该文选用AT90S8515单片机,与8051系列单片机相比,具有系统内可编程8KFLASH,内部集成了在片512字节EEPROM和512字节SRAM,使用精简指令集,编写程序简练,调试程序方便。
系统硬件连接如图3—1所示,系统提供RJ45接口连接Ethernet网络,提供一个RS-485接口与现场设备连接,实现数据的网络传输和设备的远程控制。
AT90S8515单片机所提供的接口信号线为:PA口的8位数据总线D0~D7、5根地址线A8~A12、读信号线RD、写信号线WR、2根控制线 PB0、PB1。这些信号线与RTL8019AS的各信号线对应连接。其中,RTL8019AS的IOCS16B接下拉电阻,使芯片工作在8位总线方式,复位通过PB0控制,PB1片选地址使能。时钟电路为单片机8MHz和网络芯片20MHz。在现场控制端,需要一个RS-232转RS-485的485芯片(WM485),在网络接入端需要一个网络隔离滤波器(FM2146),这样接口电路设计完成,然后计算并分配地址空间,编写汇编程序。该系统中网络芯片在单片机中地址映射空间为80××H-0x9F××H,网络芯片的内部I/O基地址为300H。
对设计电路的几点说明,RTL8019AS的JP引脚接高电平,使芯片工作在跳线模式;没有使用地址锁存器,直接用地址数据复用口读写 RTL8019AS数据,网络芯片只用到5位地址线,没有冲突;系统采用查询工作方式,没有连接中断信号线,简化电路设计。
4软件设计
4.1嵌入TCP/IP协议的单片机汇编程序设计
单片机接入以太网,必须嵌入TCP/IP协议,用户终端的应用程序才可以使用通用的网络编程技术,例如使用Socket套接字,与单片机建立连接,实现数据通信。汇编流程图如图4—1所示,单片机首先初始化堆栈和串口,初始化RTL8019AS网络芯片,系统的IP地址存放在单片机的片内EEPROM 中,单片机复位后首先读取这些数据以初始化网络。由于单片机的资源有限,所以网络协议根据嵌入式应用的需求作了裁剪,系统中使用了ARP、RARP、 IP、UDP等部分协议,既保证单片机接入以太网,又保证足够小的代码量。单片机主要完成网络数据的解包和串口RS-485数据的打包。当以太网有数据到达该设备,单片机采用查询方式,读取网络数据并分析,如果是ARP(物理地址解析协议)数据包,则转入ARP处理程序,并发送RARP数据包,将IP地址和物理地址加入到局域网中建立映射。如果是UDP数据包且IP地址和端口号正确,则接收数据包,数据解包后,将数据部分通过串口输出,控制RS-485现场设备。反之,如果现场通过串口发送数据到单片机,单片机将数据按照UDP协议格式打包,送入RTL8019AS,由RTL8019AS将数据输出到局域网中。根据需要还可以在收到串口数据时,先完成数据预处理,再将处理好的数据送到局域网。
TCP/IP协议的4层模型中,链路层部分由RTL8019AS完成,网络层和传输层由单片机来处理,应用层则根据需要可以在单片机内完成,也可以由单片机转给用户或终端设备完成。
在单片机的程序处理中,主要有完整的ARP、RARP协议模块,UDP协议模块,其它协议根据需要取舍,完成系统要求,网络芯片的初始化是必须的,对RTL8019AS各寄存器的配置正确,才能使硬件正常工作。
4.2用户终端程序设计
为了实现对嵌入TCP/IP的单片机通信系统设备的控制,笔者用VC++6.0在用户终端PC上编写一个数据传输的应用程序。通常采用Winsock编程,先创建一个套接字,绑定IP地址和端口号,使用UDP数据报,与嵌入TCP/IP单片机系统的套接字建立连接,当有网络数据到达时,VC++响应 Receive()消息,读取数据并处理;当用户需要控制嵌入式设备,调用Send()函数发送控制命令或数据。
在调试试验中,PC机上采用Sniffer软件来监视(或截获)PC机同单片机之间通信的TCP/IP协议包数据流,测试系统的性能,取得了满意的效果。
5系统性能分析
网络性能的主观评价可以用如下的指标来体现:容量、利用率、最优利用率、吞吐量、可供负载、精确度、效率、延迟、延迟变化量、响应时间等。网络性能的最终表现形式就是最终用户在使用过程中的主观评价。
下面主要从各网络层对系统性能的影响分别进行分析:
(1)物理层、数据链路层性能。从系统的硬件上看,这两层的功能主要由RTL8019AS完成,每帧最大传输包为1K字节,但是数据的读写都是由单片机完成,所以整个系统的带宽受到单片机速度的限制,文中设计系统理论最大带宽为8Mbps,最优利用率为3~4Mbps。
(2)网络层性能。在这里主要考虑传输协议的选择。对于使用有重传机制的TCP协议,意味着在
网络环境恶劣的情况下,存在大量的数据报重传,降低了网络利用率,同时还有很大的延时。在系统的具体应用中,采用UDP协议满足了数据采集的实时性要求,对于丢包现象,可以在应用层上采取必要的控制策略加以改善。
(3)应用层性能。主机、服务器、应用协议构成网络应用层性能的三要素。主机和服务器是网络连接的两端,应用协议是网络连接的两端数据传输过程的一个约定。方案采用在以太网嵌入系统中运行一个套接字程序作为服务器,应用RS-485通讯协议对远程设备控制和数据采集。这个过程中,网络服务器的性能问题影响最大:服务器的负载、请求队列过长、协议参数设置不当等等。
6结束语
以太网的低成本、开放性、广泛的开发和应用软件、硬件支持,使得这种嵌入了 TCP/IP协议的单片机数据通信系统,具有成本低、硬件少、运行稳定可靠、传输速度快、开发周期短等优点,有着广泛的应用前景,特别是数据采集、数据传输等远程监控领域,以及智能家电的网络信息化方面。目前,该系统在变电站监控系统、远程数据采集系统中得到成功应用。
[参考文献]
[1]RTL8019AS Realtek Full-Duplex Ethernet Cotroller with Plug and Play
Function(RealPNP)[J].DATASHEEF,2000.
[2] ATMEL.8-bit AVR Microcontroller with 4K/8K bytes In-System
ProgrammableFlash[J].DATASHEET.1999.
[3] DouglasE.COMER.TCP/IP网络互连技术卷1-原理,协议和体系结构[M].北京:清华大学出版社,1998.
第4/5页
[4] Douglas E.COMER.TCP/IP网络互连接术卷2-设计,实现和内部结构[M].北京:清华大学出版社,1998.
[5] 逯昭义等.计算机通信网络信息量理论[M].电子工业出版社,1997.
作者简介:刘康(1977-),男,硕士生,研究方向为小波变换、图像处理、多媒体通信等。