软件开发|编程技术|编程代码|编程入门先学什么—程序设计语言

基于嵌入式Internet技术的检测系统是怎样的

随着当前社会的不断进步和科学技术的飞速发展,为电力系统的发展和进步提供了广阔的空间和新的技术手段,对于电网的监测也提出了新的挑战。以往的电网监测装置普遍是基于单片机开发的,在特定时间或地点进行电网的监测操作,精度较低,实时性不高。随着电网不断扩大,原本的监测装置己很难满足实际需要。

本系统基于近年来新兴的嵌入式Internet技术将嵌入式系统与Internet结合,把PHILIPS公司生产的ARM7微处理器作为系统实现的核心器件,同时利用以太网接口芯片构建一个嵌入式网络系统并将其运用到电网远程监测中。整个设计符合电网远程监测的要求,并克服了传统模式的监测方式,以其优异的性能应用于电网远程监测系统中。

1. 系统总体设计

基于嵌入式Internet技术的电网远程监测系统是电网监测研究领域的一个崭新的方向。目前为了将嵌入式系统与Internet结合常用的嵌入式Internet技术实现方案主要有以下几种:[1]

第一种方案是单片机应用系统内部支持TCP/IP协议,它实质上由MCU及内部固化TCP/IP协议的芯片组成应用系统的核心。此方案中,由于单片机使用了TCP/IP协议芯片,因此[1]需要大容量的程序存储器,而且要求MCU有较高的运行速度。应用系统的设计工程师还必须熟悉TCP/IP协议和相关的接口,软件设计复杂,工作量大。

第二种方案是采用嵌入式微控制器结合通用的网络接口芯片的方法,解决以微控制器为核心的嵌入式系统接入Internet的问题。

本系统将第二种方案应用于电网远程监测系统的开发与实现,把监测装置作为以太网中的一个独立的节点,使其拥有自己的IP地址,而任何授权的工作站都可以通过Internet实时浏览在线信息。整个电网远程监测系统的结构如图1,其中用户层是远程监测主机,负责实时监测电网运行参数确保电网运行安全。应用层为采用嵌入式Internet技术设计开发的电网远程监测系统,每个监测设备分配一个独立的IP,方便用户层进行数据监测。数据层则为分布在各地的待监测的电网,提供电网运行参数。

2. 系统的硬件平台

硬件平台是实现嵌入式Internet接入的基础,本文提出的电网远程监测系统的硬件平台采用ARM7代替了传统的CPU,同时在外围接入电流电压监测模块、功率因数监测模块、键盘输入模块、以及网络通信模块,整个系统的硬件平台结构图如图2。其中微处理器部分采用基于ARM7TDMI内核的LPC2290,它拥有16 kB 片内静态RAM,32 位定时器、8 路10 位ADC,并且拥有多个串行接口,包括2个UART、高速I2C 接口和2个SPI接口,通过配置总线,LPC2290 最多可提供76个GPIO。由于LPC2290内置了宽范围的串行通信接口,因此在通信网关、协议转换器,远程监测以及其它各种类型的应用中非常适合。

网络通信模块是实现嵌入式系统与Internet互联的关键,本系统采用的是通用的以太网控制芯片DM9000E,它是MAC、PHY、MMU三合一的网络芯片,精度高、速度快,具有10M/100M自适应、16KB大容量FIFO、4路多功能GPIO、掉电特性、全双工工作等功能。由于它拥有3种等级的掉电模式,所以是作为网络设备的理想选择,在全双工模式下,如果连接到一个同样是全双工的交换机或集线器,则可以实现同时接收和发送。通过该芯片可实现嵌入式系统与Internet的互联。

2.1 嵌入式操作系统的选择

嵌入式操作系统是整个嵌入式系统的核心,它具有实时性强、可靠性高等特点,在嵌入式系统中应用广泛。商用的嵌入式实时操作系统比如Vxworks、Nucleaus、QNX等价格比较昂贵,一般不适宜广泛应用。μC Linux是从Linux 2.0/2.4内核派生而来[2],适用于没有虚拟内存或内存管理单元的处理器,它在标准的Linux基础上进行了适当的裁剪和优化,体积很小,而且保留了Linux的大多数的优点:稳定、良好的移植性、优秀的网络功能,并内嵌了TCP/ IP 协议。考虑到嵌入式μCLinux的以上优点,本系统选择采用嵌入式μCLinux作为嵌入式的实时操作系统。

2.2 Web服务器的实现

在电网远程监测系统中,嵌入式Web服务器技术将有效降低系统运行维护费用,提高系统管理水平 [3]。本系统将嵌入式Web服务器以及B/S结构模型相结合。其中B/S结构中最底层为数据层,负责从采集电网数据;中间层为信息处理系统,负责将电网中的实时参数写入挂接在这一层的Web服务器中,然后对数据进行统计、分析等处理,最后将处理过的数据实时的以网页的形式发送到第三层客户端,客户端可以通过浏览器直接监测电网运行参数,实现了电网远程监测系统。

嵌入式Web服务器是实现电网远程监测的重要组成部分和关键技术,利用嵌入式Web服务器可对电网进行监测和实时参数的传输[4]。嵌入式web服务器通过CGI接口或其他方法,可以在HTML文件或表单中运行代码,供RAM读/写数据。在μCLinux下,本系统选择使用一个支持CGI的、非常适合于嵌入式系统的Boa Web Server。在Boa Web Server使用时需要对与Boa相关的文件做一些配置和修改:

1) 建立存放目录

由于μClinux默认的根文件系统romfs是只读的,不能用mkdir等命令来新建目录,故应在编译内核前先建好要用到的目录,这通过修改。。/μClinux-dist/vendors/Philips/LPC2200/Makefile文件来实现。在ROMFS_DIRS=bin dev etc home lib mnt proc usr var的后边增加home/cgi-bin,这样修改后编译内核,编译好的根文件系统romfs中就包含这些目录了。

2) 指定Web服务器的根目录路径。

进入。。/μClinux-dist/user/boa/src/目录,通过修改defines.h文件中#define SERVER ROOT “/home/”语句来指定SERVER ROOT。

3) 修改boa.conf文件。修改。。/μClinux-dist/user/boa/examples/boa.conf主要内容如下:

Part 80

User 0

Group 0

ServerName μClinux

DocumentRoot /home/ /*设定存放路径*/

Directoryindex index.html

MimeType /home/mime.types

ScriptAlias /cgi-bin/ /home/cgi-bin/

AddType text/plain.txt /*可支持的文件类型*/

AddType image/gif.gif

AddType text/html.html

AddType text/html.htm

AddType image/jpeg.jpeg

这样指定后,index.html为远程浏览客户访问Web Server所看到的首页默认值。把C编写的CGI程序编译成二进制文件,存放到。。 /home/cgi-bin/目录下。Boa.conf和mime.types文件必须放到Web服务器根目录下,也就是把bao.conf和mime.types复制到“。。/μClinux-dist/romfs/home/”目录下。然后在。。/μClinux-dist/Vendors/Philip/LPC2200/inittab里修改,在“inet:unknown:/bin/inetd”后加“boa:unknown: /bin/boa /home/”。

配置完成后,重新编译内核。把编译好的内核下载到ARM硬件平台,启动μClinux操作系统,完成IP配置,运行Boa Web Server,然后就可以通过浏览器访问网页了。

2.3 用户与主机间安全交互的实现

为了在μCLinux系统中实现网页的实时刷新,得到实时电网参数,实现客户端与电网监测系统之间的交互,本系统采用了CGI的方法。当客户端采用FORM POST形式向Boa服务器发出CGI请求时,服务器守护进程启动相应的CGI程序,CGI程序通过CONTENT—LENGTH获取客户端传输数据的字节数,通过STDIN读取客户端传输数据,这些数据一般是客户端在表单中输入的简单的监控信息。CGI获取这些信息后通过串行通信将这些信息发送到电网监测系统中,等待监测系统模块的应答消息,最后生成网页文件,并且将返回结果嵌入到网页文件中,通过cgi—send—string函数将此网页发送给客户端浏览器。一段时间后客户端浏览器会再次向服务器发送一个CGI请求,相应的CGI函数会查询最新的数据,刷新后将新数据发送给客户端浏览器。这样周而复始,实现了网页的刷新功能,从而保证了远程监测数据的实时性,实现客户端与电网监测系统之间的交互。客户端通过CGI接口与电网监测系统之间交互的关系