微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 基于嵌入式Web服务器的远程故障诊断系统

基于嵌入式Web服务器的远程故障诊断系统

时间:09-16 来源:互联网 点击:
远程诊断技术是通过设备诊断技术与计算机网络技术相结合,在设备上建立状态监测点,采集设备状态数据,在诊断中心对设备运行进行分析诊断的一项新技术。用于诊断的系统大致可以分为三类:大型的在线状态监测与诊断系统; 以便携式数据采集器与巡检装置的计算机辅助诊断系统;利用Internet实现的远程诊断系统。 在线式系统适用于连续的状态监测与诊断,系统构成复杂、费用昂贵、专用性强。而便携式监测与分析系统可以定时或不定时巡检,适用面广,用途广泛。远程诊断的实现既能使设备的故障诊断更加灵活方便,应用更加广泛,又能实现资源共享,避免重复开发。因此,该技术近年来得到飞速的发展。一般的远程诊断系统需要在现场配置专用计算机系统,成本较高,本文提出一种基于嵌入式Web服务器的数据采集与诊断系统,它不需要在现场配置专用计算系统。

1 系统原理及组成

图1是基于嵌入式Web服务器的数据采集与故障诊断系统的结构图。从图1中可以看出,整个远程故障诊断系统可分为三个部分:嵌入式Web服务器的数据采集、客户方局域网、远程诊断服务器与网上诊断资源。



1.1 嵌入式Web服务器  

近年来互联技术发展的一个重要趋势就是它被越来越多地用于低成本的场合,如手持设备、智能家电等。8位处理器已经在很多场合替代昂贵的32位处理器实现互联;而且这种策系统也有着自身的优点,例如:低廉的价格、易于与各种传感器和采集器接口、体积小巧,而且能很方便地扩展各种协议如UART、I2C、SPI协议等与以太网协议的转换,从而实现远程数据采集和远程控制。 本系统中嵌入式Web服务器为客户方局域网提供网络接口,同时具有现场数据采集的功能,实现现场采集数据到客户局域网的数据传输。克服了传统方法中需要现场配置PC机的缺陷,而且更能克服环境条件的限制。  

(1)硬件结构  

嵌入式Web服务器硬件结构如图2所示。



本系统中嵌入式Web服务器选择SX52BD作为主控CPU。SX52BD是美国Ubicom公司专门为网络通信设计的一款8位超高速控制器,运行速度可高达50MHz。该芯片基于RISC架构、运算速度高、灵活的I/O控制、高效的数据操作,而且支持ISP在线编程。

本系统选择24LC256串行EEPROM作为数据存储单元(网页存储单元)。24LC256是32K字节的串行EEPROM,通过I2C总线与SX52BD通信。可以存放采集数据或者网页。如果需要存储网页,应该预留网络下载接口(可以通过I/O口线扩展串行口,网页内容通过PC机串口下载)。NIC芯片可选择RTL8019AS或者美国DAVICON公司的DM9008。RTL8019AS是台湾REALTEK半导体器件公司生产的10BaseT全双工以太网收发控制器。

这两款控制器与NE2000完全兼容,只是管脚分布有些不同。数据采集部分可以根据需要自行选择,具有相当的灵活性。  

(2)软件实现  

本系统中嵌入式Web服务器的软件主要由芯片初始化设置、TCP/IP协议栈的实现、数据采集及处理等模块组成。在程序中加入基于TCP/IP协议的用户自定义数据通信协议。这样使客户局域网中的PC机能够与嵌入式Web服务器进行自定义的通信,如:发送数据采集命令、采集参数初始化命令等。利用SX52BD实现的网络协议栈中,物理层功能由网络接口卡(NIC芯片)来完成。

程序的初始化部分包含其驱动程序。网络层部分加入了地址解析协议(ARP),实现IP地址到物理地址的映射。整个结构如图3所示。



协议栈的实现主要分为接收数据包的解释以及发送数据包的打包。以太网数据以帧的格式进行传输,其帧格式如下:(字段没有按比例画出,数据单位为Octet) 如果帧类型字段值为0x0806,则为ARP包;如果为0x0800,则为IP数据包。接收帧时,根据不同的帧类型由不同的软件模块对它进行处理。发送数据帧时,也根据不同的帧类型由不同的程序进行打包处理。基本方法和处理接收帧相同,只是把读操作改为写操作。帧的接收和发送都是基于物理层对NIC的操作,包括读接收缓冲区、写发送缓冲区。NIC采用8位工作方式,对其缓冲区的操作需要逐一读写每个8位组。读接收缓冲区时对不同的字段进行判断、记录处理。NIC操作具体内容可以参考芯片资料,限于篇幅,不作详细介绍。  

由于在Internet中都使用约定俗成的TCP/IP协议,因此,基于IP的TCP和UDP协议起着非常重要的作用。由于SX52BD是一种嵌入式微控制器,内存较小,不能用传统的方法实现TCP和UCP。因此它们需要很大的缓冲区来构造套接字(SOCKET),一边进行应用层的处理。发送数据时也是这样,边处理实用数据边填充发送数据。这种方法极大地节约了内存资源,而且有效地提高了应用程序的处理速度。由于程序的主要功能是接收数据采集命令,真正传送的数据量很小,不需巨大的缓存空间。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top