董航飞
(南通航运职业技术学院,南通226010)
近年,由于Internet技术的不断完善和飞速发展,采用Internet通信已经成为目前重要的通信手段之一;而基于MPU(微处理器)和MCU(微控制器)的嵌入式系统也已经在各个领域得到广泛的应用。若能将两者结合起来,既能实现通信的方便、高速和低廉又能实现设备的微型、简单和可靠,将会推动社会的智能化和现代化。本文基于以上目的,设计了一款基于C/S和B/S结构相结合的嵌入式Web服务器。该服务器能提供一个标准而且友好的界面给客户访问,并实现CAN 总线、RS-485、RS-232 与Internet的相互通信。该方案是将现场的设备组成一个底层的网络,通过该服务器,实现底层的设备网络和Internet通信,避免了所有现场设备直接接入Internet,简化了结构,便于控制。
整体设计如图1所示。嵌入式Wed服务器采集现场设备的实时数据,客户可通过现有的公共通信网络(如PSTN 等)和访问标准的Wed浏览器,进行现场设备的访问、设置和监控等操作,进而实现不同结构设备之间的跨平台通信。该服务器主要分成3大部分。
图1 整体设计
①网络模块。该模块是服务器的核心部分,该部分要完成服务器的初始化,及时响应客户的不同的服务请求,通过发送邮件的形式实现故障报警和数据存储。该模块提供两种网络接入模式:通过Ethernet接入Internet和通过PSTN(公共交换电话网)接入Internet。这样,使服务器能适应更多的场合,客户可以不受地理空间的限制,随时可以访问现场设备。
②存储空间。服务器的操作系统、Web浏览器网页和运行的程序存放在外扩的串行Flash芯片中,作为一个独立的文件系统;各个现场设备采集到的数据存放在RAM 中,定时将数据通过邮件发送至上层固定邮箱,现场再次采集的数据将原有数据覆盖。
③接口模块。该服务器设计了常用的通信接口,如RS-232、RS-485、CAN、Modem、Ethernet,以实现和不同的通信标准的设备连接。
硬件总体设计如图2所示。
图2 硬件总体设计图
本设计中主控制器采用MAXIM 公司生产的网络微控制器DS80C400,该控制器兼容8051,具有以下特点:外设集成了10/100M 以太网MAC,三个全双工串行端口,一个CAN 2.0B控制器,1-Wire,8个双向8位I/O 端口,可以方便地实现网络功能。
为更好地适应DS80C400的网络控制功能,采用Intel公司的生产芯片LXT972ALC,芯片功耗低,抗干扰能力强,支持10/100M 的双绞线应用,尤其自身集成的MII口正好符合10/100MACs。其与主控芯片的连接如图3所示。图中变压器采用汉仁集团的HR61H40,完成数据传输和网络隔离的功能。
该接口电路采用常见的芯片MAX213EAI,完成该服务器与电话网的连接实现远距离数据传输,接口电路如图4所示。
图3 DS80C400与LXT972ALC连接图
图4 Modem 接口电路图
软件是完成一个系统设计至关重要的部分,软件设计的好坏直接决定该设计的性能好坏。根据服务器的实际功能需求,该设计采用网络功能强、跨平台能力强的TINIOS操作系统和与之匹配的TINI软件。
服务器作为桥梁,完成客户对现场设备的访问。该服务器采用TCP/IP协议来传输数据,以HTTP 协议来进行客户端与服务器之间的请求和响应,其体系结构如图5所示。本体系结构采用C/S和B/S结构相结合的方式:客户的访问采用B/S模式,通过浏览器网页访问嵌入式Web服务器,该模式界面友好,使用简单,便于客户操作;通信采用C/S 模式和Java Applet技术相结合,在Java Applet源程序中嵌入一个套接字,并将整个源程序编译成Java码嵌入到Web网页中。当客户端访问该网页时Java码会自动下载到网页,随后与服务器建立Socket通信,从而获取实时数据。该方法让浏览器分担了服务器的部分工作,减少了服务器的运行负荷,提高了效率。
图5 Web体系结构图
客户端与服务器的通信过程如图6所示:当嵌入式Web服务器被启动,自动开启http服务线程和tini软件服务线程,http服务线程开启后启动监听程序进入等待状态,等待80端口的连接请求。客户端发出请求后,服务器发送包含Applet的主界面网页给客户端,客户根据主界面的选择按钮选择所需要访问的接口(如CAN2.0),随后主界面转入该接口的网页,网页中的Applet会向服务器发送命令请求初始化,初始化完成后,客户便可以对该网页进行操作比如参数设置等。Web服务器发送的初始化数据主要是上一次的配置信息和采集的数据。随后,客户端进入监听模式监听9999端口,等待客户的操作命令,当服务器收到命令请求后,解析命令并根据协议采集控制设备的实时数据发送给客户端网页中的Applet,显示在网页中。
图6 客户端与服务器通信过程图
完成了服务器的软件和硬件设计后,以西门子PLCS7-200作为现场设备通过以太网进行通信测试。客户首先登陆到Web服务器首页选择需要通信的接口,如图7所示,进入该接口页面后进行信息配置,Web服务器随后将客户的配置信息根据协议转换成PLC可以识别的相应代码,再发送给PLC。PLC 收到代码后进行解码,然后完成相应的操作比如采集实时数据。PLC将采集到的数据按照规定的数据帧发送给服务器。服务器收到数据后暂存在数据缓冲区,并根据数据绘制折线图,以便客户登陆服务器时能更加直观地查看数据,如图8所示。
图7 服务器登陆界面
图8 PLC实时数据图
本设计采用DS80C400作为主控芯片完成了硬件设计,采用Java技术完成了软件设计,并用PLC 作为现场设备通过以太网对其进行了控制和数据采集的验证,结果表明该服务器能运行可靠,性能稳定,能实时完成控制和数据采集任务,具有很好的实用和推广价值。C/S和B/S相结合的结构,不仅能提高服务器的工作效率,而且使客户端只需要浏览器就可访问,系统升级只在服务器端进行,简化了客户端的配置,使得服务器具有很强的可移植性和适应性。本设计虽达到预期效果,但仍有不足,比如服务器在网络上的安全性和远距离传输的实时性等需要改进。
[1]彭金林.基于嵌入式Web服务器的PLC 通讯研究[J].武汉科技大学学报:自然科学版,2004,27(4):423-425.
[2]Dallas Semiconductor Corporation.High-Speed Microcontroller User's Guide:DS80C400Supplement,2012.
[3]吴珏,谭文学.DS80C400在远程数据采集系统中的应用[J].国外电子测量技术,2003,22(3):40-41.
[4]万静华,丁亚军.以太网控制器的嵌入式设备网络互连[J].单片机与嵌入式系统应用,2001(1):41-43.
[5]李桂权.一种基于B/S结构与C/S结构结合的新体系结构[J].电子技术应用,2004,30(8):7-9.
[6]姜捷,王永红.TINI的硬件结构和软件环境[J].单片机与嵌入式系统应用,2002(9):53-55.
[7]郝金华.基于网络微控制器的远程监控系统的设计与应用[D].西安:西安电子科技大学,2006.