基于Web服务器的电网监控系统的设计
视频采集方面利用zc301型摄像头接入S3c6410的USB接口,采用开源代码mipeg-streamer完成,主要实现对上位机S3c6410外界环境画面的实时采集功能。
2.3 51单片机电路
电网的采样监测功能由采样调理电路和51单片机搭配实现,通过模拟电路的调理过程,得到51单片机I/O口可以识别的高低电平(高电平大约为+5V,低电平大约为0V),51单片机通过识别输入电平,判定电网每一相电的工作状态。为了提高精确度,电网的每一相电的状态判定对应51单片机的2个I/O口,一个I/O口用来判定该相是否过压,另一个I/O口用来判定该相是否欠压,通过组合逻辑判断,实现对该路电网正常,欠压和过压三态的判定。51单片机综合逻辑关系如表1所示。
2.4 外围通信接口电路
外围通信接口电路的设计主要由485总线接口电路,USB接口电路和以太网接口电路3部分组成。
1)485总线是典型的串行通讯标准,1.RS-485的电气特性:逻辑“1”以两线间的电压差为+(2~6)V表示;逻辑“0”以两线间的电压差为-(2~6)V表示。RS-485的数据最高传输速率为10 Mbps。RS485接口组成的半双工网络一般只需二根连线,所以RS485接口均采用屏蔽双绞线传输。采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。最大传输距离标准值为4 000英尺(约1 219 m),实际上可达3 000米,另外RS-232-C接口在总线上只允许连接1个收发器,即单站能力。而RS-485接口在总线上是允许连接多达128个收发器。即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络。因RS-485接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。
2)USB接口分为主/从2种模式,USB主模式可连接U盘、打印机等USB接口设备,USB从模式接口可实现系统和上位机的通信,本文主要利用USB接口实现由摄像头到ARM芯片的通信。
3)以太网接口实现检测结果并通过网络发送给其他设备,DM9000A是集成和高效的10/100MHz自适应网卡芯片。DM9000A与ARM芯片连接,可以通过数据、地址和控制三总线进行连接并实现数据的转换。在对DM9000A读写之前,ARM芯片需要通过控制总线和地址总线提供DM9000A正确的读写时序,实现正确寻址。分别设置片选,工作模式后,才能完成数据的准确交换。
3 系统的软件设计
软件系统如图6所示,主要包括软件开发环境的构建、设备驱动和应用开发环境的开发。为使设备能够正常工作,SD卡,矩阵键盘,USB设备,LCD屏,网口,485总线等驱动程序均以模块的方式加载到内核中。应用程序主要分为:外围的通信接口程序,键盘和LCD屏的控制程序等。
本电网监控系统的工作流程是首先对电网各相电的参数进行采集,然后将信号量传给51单片机,经单片机对信号量的处理后得出状态结果,再通过485总线将其传输给ARM芯片,将结果存储在EEPROM中,并可将有关参数和分析结果嵌入到存储在EEPROM中的事先定制好的网页中,同时采集环境的温度和实时画面并上传,供客户机通过Internet网络访问,通信主程序流程如图7所示。
Linux下嵌入式Web服务器主要有3个:httpd、thttpd和Boa。http和Boa都支持认证、CGI等,功能比较全。本系统以Boa搭配Cgic作为服务器。Boa是一个单任务的hupd服务器,源码开发、系能高。随着internet技术的不断发展,在嵌入式设备的管理与交互中,B/S(即Brows er/Server浏览器/服务器机构)结构成为目前的主流。通过对Boa和Cgic源代码的操作,最后得到可执行文件Boa和CGIC库libcgic.a。
通过调试辅助程序capture和测试程序cgictest.cgi,可以验证生成CGIC库的正确性。将capture和cgictest.cgi复制到开发板的CGI程序目录下,用浏览器访问这个Cgi文件,可以看到页面,表示CGIC库和测试脚本都移植成功。为了能够在ARM上运行Web服务器Boa,需要完成对其运行环境、参数等进行设置,并将最终的配置文件Boa.conf置于工作目录下。
4 结束语
基于Web服务器的电网监控系统利用51单片机及采样调理电路实现对各电网状态的判定,通过485总线将结果传输给S3c6410芯片,同时采集环境温度及实时画面,S3c6410结合DM9000A芯片实现了TCP/IP协议栈,相比8位的MCU,大大的缩减了工作量,并提高了系统的可靠性。基于Web服务器的电网监控系统具有良好的联网和信息共享的功能,也具有测量精度高,硬件电路简单,操作简单的特点,因此本系统具有广泛的发展空间。
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)