一种嵌入式WEB服务器的设计与实现
关键词:WEB服务器 以太网 CAN总线
在企业自动化的工业现场,下层车间的监测设备之间都是采用现场总线相互连接,而企业的管理层和生产监控层都是连于以太网的PC,甚至是位于异地的连于互连网上的PC。为了使工业现场的现场总线上的设备和管理监控层之间的PC能够通信,同时改善故障检测和设备维护的远程访问能力,笔者在CAN总线网与以太网的互连系统中设计了一个嵌入式WEB服务器。
1 嵌入式WEB服务器硬件设计
通常嵌入式系统硬件包括微控制器、存储器及外设器件和I/O端口等,其核心是嵌入式微控制器。为适应上网需求,嵌入式微控制器不仅要具有传统的控制功能,还要具有与因特网连接的功能。而Ubicom公司的SX52芯片能比较容易实现TCP/IP协议,选择它作为微控制器。关于传输媒质,采用最常用的连接模式即通过以太网连接Internet,利用网络接口控制器RTL8019AS实现数据链路层协议。RTL8019AS采用台湾Realtek公司生产的RTL8019AS芯片。
嵌入式WEB服务器硬件结构框图如图1所示。
嵌入式WEB服务器用SX52微控制器作为处理器,以太网驱动芯片RTL8019AS经耦合隔离滤波器HR61101G和RJ45接口接入以太网,配有RS232和CAN总线两个扩展接口,可以将具有RS232接口的设备或采用CAN总线协议通信的设备连到以太网上。RS232接口采用MAX232CPE芯片,CAN总线控制器采用Philips公司的SJAl000芯片,CAN收发器采用Philips公司的PCA82C250。
图1
数据的流向为:请求和控制信息从局域网中来,通过nJ45送到RTL8019AS,RTL8019AS负责将以太网帧的首部和尾部信息剥离,将处理后的数据包送入SX52的TCP/IP协议栈,由协议栈对数据包进行解析,得到原始的请求和控制信息。请求和控制信息再经过SJAl000进行CAN协议格式的数据封装,再与现场的CAN总线设备进行通信。请求和控制的回复信息到局域网的过程正好相反。
在嵌入式WEB服务器的硬件设计中,在确保通信功能顺利实现的同时,充分利用了SX52芯片I/O口灵活配置的特点,最大程度地节约了微控制器SX52的硬件资源。
图2为WEB服务器主要芯片连接电路简图,结合本图详细分析系统硬件设计。
1.1 RTL8019AS驱动程序实现
RTLS019AS是台湾Realtek公司制造的一种高集成度的全双工10Mbps以太网控制芯片,实现了基于Ethernet协议的MAC层的全部功能,内置16KB的SRAM、双DMA通道和FIFO完成数据包的接收和发送功能。在网关设计中,使用跳线模式(JP置为高)来硬配置RTLS019AS为8位模式;使用了RTL8019的低五位地址线A0~A4以及低8位数据线D0~D7。为满足RTL8019AS的ISA时序,RTL8019AS高端地址A5~A19须设置为0X300。SX52的B口的B0~B4脚作为地址线连接RTL8019AS的低5位地址线,B5~B7作为控制线分别连接读写时序控制脚IORB、IOWB、IOCHRDY;C口作为数据线连接RTLS019AS的低8位数据线;A口保留,用作日后扩展。设计中采用AT24C64这样一个8KB的EEPROM来保存WEB服务器的配置信息,如网关IP地址、MAC地址和SJAl000的ID网络标示符、网络掩码AMR和总线定时(BTR0、BTR1)等。这样就能够灵活方便地修改网关参数,适应不同环境,同时也考虑到以后的扩展。
图2
要实现嵌入式WEB服务器接入以太网,就要对RTL8019AS进行编程,完成以太网帧的数据收发,相当于实现PC机中网卡的驱动程序功能。首先要对RTL8019AS进行复位,并将其设置为跳线模式;然后对RTL8019AS的工作参数进行设置,以使其开始工作;接下来读写RTL8019AS的RAM以完成数据包的接收和发送。程序流程如图3所示。
1.2 TCP/IP协议栈的实现
《一种嵌入式WEB服务器的设计与实现》