一种双MCU结构的嵌入式Internet接入服务器
摘要:针对某些单MCU结构的嵌入式Internet服务器性能价格比低且灵活性差的问题,提出了一种双MCU结构的嵌入式Internet接入服务器(DMCUEIAS)。它使嵌入式Internet的用户交互和设备控制分离,用户通过Internet不仅可以监视和控制现场设备,而且利用RAC可以将任务下载到现场;解决了低端单MCU处理能力低高端MCU成本高的矛盾,并能够灵活地实现现场控制程序的功能扩展和升级。
关键词:双MCU结构 嵌入式Internet RAC 嵌入式TCP/IP协议栈
嵌入式Internet[1]是指借助于Internet监视和控制工厂的机器、通信设备、数据采集系统、过程控制系统、医疗设备、机顶盒、车辆控制器、办公机械、个人数字助理(PDA)和其它设备。随着Internet/Intranet的迅猛发展,将Internet延伸到8位、16位、32位单片机,实现基于Internet的远程数据采集、远程控制、自动报警、上传/下载数据文件、自动发送EMALL等功能已经成为嵌入式系统发展的必然趋势。就嵌入式Internet系统而言,实现Internet通信协议及其服务,同时还要控制现场设备将占用大量资源,而嵌入式Internet系统中大量存在的是8位和16位MCU,这些系统在某些环境下实现上述功能将十分困难[2]。如果采用32位或64位的处理器,无疑会增加成本。为此,本文提出了一种双MCU结构的嵌入式Internet接入服务器DMCUEIAS。其中一个MCU作为Internet服务器与用户交互(称作InetMCU),它支持TCP/IP协议栈并运行Internet服务程序,形成一个用户可以通过浏览器进行交互的服务器;另一个MCU专门用作设备服务器(称作DevMCU)控制多个设备。InetMCU和DevMCU通过RAC协议实现通信,完成现场设备的控制。这样可以提高性能价格比,具有操作简便、功能易扩展等特点。
1 硬件结构
双MCU结构的嵌入式Internet接入服务器DMCUEIAS采用ATMEL公司生产的AT90S8515微控制器作为InetMCU,采用AT89S53作为DevMCU,系统体系结构如图1。其中,DevMCU拥有12K字节的Flash程序存储器,256字节的片内RAM,3个可预分频的16位定时储器,256字节的片内RAM,3个可预分频的16位定时器、计数器,32位I/O口和一个内置的全双工UART;InetMCU拥有8K字节的Flash程序存储器,512字节的片内EEPROM,512字节的片内RAM,1个可预分频的8位定时器、计数器,1个可预分频、具有比较、捕捉和8/9/10位PWM功能的16位定时器和计数器,用于程序下载的SPI口,32位I/O和一个内置的全双工UART。InetMCU的时钟频率是8MHz,可以高速地通过ISA口传递数据(约2Mbps)。通过一个时钟周期内执行一条指令,InetMCU可以取得近1MIPS/MHz的性能。通过在单一芯片内将一个增强性的8位RISC CPU与可下载的Flash结合,使它非常适合多种嵌入式应用要求,具有高度灵活性和低成本的特点。DMCUEISA的以太网控制器采用台湾Realtek公司的RTL8019AS(10Mbps)。其采用全双工通信方式,使帧的发送与接收能够在一条通信线路上同时进行。使信道的带宽增加一倍,实现了基于IEEE802.3协议标准的MAC层(Media Access Control Layer)的所有功能。内置的双DMA通道 FIFO完成简单有效的包管理(数据帧的接收和发送)功能,本地DMA通道的传输速率高达10Mbps。其优越的性能价格比使它非常适合嵌入式Internet系统。
在InetMCU的片内Flash中固化的服务程序可以现任务调度、线程支持、文件系统、内存管理、网络系统(TCP/IP)和I/O管理等。通过20位(8位A口,8位C口,D口的PD0、PD1、PD2、PD7)I/O口连接到廉价的ISA总线的网卡芯片RTL8019AS卡,能够对外(如Internet上的用户)提供一种通过以太网接口访问嵌入式系统的方法。InetMCU的片内EEPROM存储授权的用户名、密码和其固定的IP地址及MAC地址。远程用户访问DMCUEIAS时,要比较用户名密码,只有合法用户可以通过Internet访问DMCUEIAS。InetMCU的片内RAM存储临时数据,同时外扩了32K字节的SEEPROM。它采用AT24C256存储不同的控制网页,完成必要的文件系统功能,通过WEB页可以实现远程用户与DMCUEIAS的交互。InetMCU用12位(8位B口作为数据口,D口的PD3、PD4、PD5、PD6作为控制口)I/O完成与DevMCU的通信。DevMCU的片内Flash已经固化DCX51嵌入式实时操作系统、通信服务和远程存取控制服务(RAC),负责现场设备的控制。DevMCU的另外16位(8位A口,8位C口作为数据)I/O口与ISP相连,完成必要的逻辑功能,最后由ISP的IO56~IO63(8位)通过功率驱动直接驱动设备。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2 软件体系结构
2.1 TCP/IP协议
由于系统的资源有限,要求实现协议时应从具体需求着眼,而不是以实现完整的协议为主要目的。DMCUEIAS要求能够提供WWW服务,并选择以太网为其运行的网络环境。这样用户可以利用浏览器通过HTTP协议浏览事先下载到InetMCU的SEEPROM中的控制网页,通过该网页传递控制命令到InetMCU。客户端发来的数据以HTTP协议标准发到DMCUEIAS。这是因为HTTP协议是国际标准,它被所有浏览器支持,能保证用户可以通过任何地方的浏览器下达命令。HTTP协议建立在TCP协议的基础上。建立连接时经过三次握手,每次传输数据都要求服务器给予确认;如无确认,