基于嵌入式Webserver的光伏逆变器监控平台开发
2011-09-20李方健郝瑞祥
李方健 郝瑞祥
(北京交通大学电气工程学院,北京 100044)
0 引言
随着经济的飞速发展,能源紧缺环境恶化问题日趋严重,寻找绿色环保的新能源已成为人类面临的迫切课题。光伏并网发电就是一种很好的绿色新能源,它将太阳能电池发出的直流电经并网逆变器转化为与现有电网同频、同相的交流电,供给负荷使用或送入电网。
现有的光伏逆变器多分散安装在较偏远的地区,同时面临光照不连续稳定的情况,这给用户和电网监管人员都带来了很大的不便,故设计一整套能够完善的监控系统对用户和监管人员都显得十分重要。
本文坚持以远程、实时、集中监控为原则,设计了基于嵌入式webserver的光伏逆变器监控平台。该平台采用ARM9系列的32位微处理器S3C2440和DM9000A网络芯片为核心,扩展了串口、485、CAN及网络通信功能。基于该硬件平台,移植了嵌入式linux系统和boa服务器程序,并通过后台数据处理程序实现了监控数据的可靠传送,保证了光伏逆变器的稳定运行。
1 监控系统结构图
现有的监控系统结构通常分为B/S结构和C/S结构两种。由于C/S结构要在监控计算机端编写和部署大型软件,给安装和维护带来了不便。故在本设计中采用了B/S模式的监控结构。监控人员只需在监控计算机打开浏览器,输入正确的IP地址即可方便地进行操作。
在本监控平台中,以ARM为核心的电路板作为服务器,通过现场总线与光伏逆变器的DSP控制板相连接,实现数据的相互传送。监控人员通过浏览器向服务器发送请求,服务器则把相应的数据反馈给监控人员。监控系统逻辑示意图如图1示。
图1 系统逻辑示意图
2 系统硬件平台设计
2.1 主控芯片S3C2440介绍
Samsung公司推出的32位RISC处理器S3C2440为嵌入式设备和一般类型应用提供了高性价比和高可靠性的微控制器解决方案。它的低功耗精简结构和出色的全静态设计特别适用于对成本和功耗敏感的应用。S3C2440采用ARM920T内核,400M主频,保证了逆变器监控对实时性的要求。同时,具有2通道的USB HOST,以及3通道的UART,为外部接口的设计提代了很大的便利。此外,S3C2440芯片还具有LCD控制器,SD卡控制器,并可以方便的外扩CAN控制器,保证了平台功能增加和移植的可行性。
2.2 硬件平台设计
在硬件设计时为了保证出色的电气性能和抗干扰性能,核心板采用6层设计,外扩接口板采用4层设计。其中S3C2440处理器和NAND FLASH(64M)、SDRAM(64M)设计在核心板上,其余接口和电源电路设计在扩展板。64M的NAND FLASH用来存储操作系统、文件系统及应用程序,足够大的空间保证了烧写系统内核和文件系统的可靠性。64M的SDRAM作为系统运行的动态内存。网络接口芯片选择了 DAVICOM公司的DM9000A。串口用来与光伏逆变控制板进行通信,JTAG接口用来烧写程序。硬件连接示意图见图2。
图2 系统硬件连接示意图
3 软件功能的设计与实现
3.1 软件的结构设计
在本系统中,采用B/S模式的监测结构,即是以ARM板作为服务器端,嵌入式 Web服务器的具体实现方法是多种多样的,本文采用 BOA作为web服务器,与其他传统的Web服务器不同的是,当有连接请求到来时.它并不为每个连接单独创建进程,也不通过复制自身进程来处理多链接,而是通过建立HTTP请求列表来处理多路HTTP连接请求,同时它只为CGI程序创建新的进程,这样就在最大程度上节省了系统资源。Web server软件结构图如图3示。
图3 Web server软件结构示意图
在后台的数据处理模块中,设计CGI程序来产生浏览器页面,但是由于 CGI程序是在远程用户通过浏览器访问时才执行,直接通过CGI程序来访问和控制下位机不合适。所以需要存在一个后台串口数据处理程序,该程序负责控制和访问下位机,并且负责与CGI程序的通讯。两个程序间通过共享内存方式传递数据。后台处理程序的结构示意图如图4示。
图4 后台处理程序示意图
3.2 BOA服务器的移植与实现
(1)在 www.boa.org下载 boa服务器代码 boa-0.94.13.tar.gz,并将其解压。
(2)生成相应的makefile文件。
#cd boa -0.94.13
#src/configure
(3)对BOA的配置做出相应的修改。主要通过对boa.eonf和mine.types进行修改来实现,比如指定Web Server的根目录路径或其他文件路径等。
(4)创建相关目录。在/etc目录下创建boa目录,里面放入boa的配置文件boa.conf,创建日志文件所在目录/var/www,创建CGI脚本所在目录/var/www/cgi-bin/。
(5)把准备好的boa服务器程序放置在内核/etc/boa下,重新编译内核根文件系统。此时,运行boa可执行文件后,通过远程即可访问并远程操作。
3.3 串口数据处理程序
串口数据处理程序随Linux系统启动而运行,运行之后首先初始化串口,然后创建一个1024字节的共享内存空间,开始等待CGI程序传来控制命令,当接收到控制命令后,从串口中读取数据,并把数据写入共享内存。程序流程图如图5所示。
Linux系统中对串口的操作主要分为打开串口,接收和发送数据等。
3.4 共享内存问题的处理
图5 后台数据程序流程图
为了保证共享空间数据的正确性,防止串口数据处理程序和CGI程序同时读写共享空间,需要设置一个信号量实行PV操作保证同时只能由一个程序读写。创建共享内存主要代码如下:
3.5 动态网页生成CGI程序设计
CGI(common gateway interface)是外部应用扩展应用程序与WWW服务器交互的一个标准接口。按照CGI标准编写的外部扩展应用程序可以处理客户端浏览器输入的数据.从而完成客户端与服务器的交互操作。CGI脚本程序可以用多种语言编写,本文中采用C语言编写CGI程序,具有程序结构简单、执行效率高的优点。
当有数据从浏览器传到Web服务器后,该服务器会根据传送的类型,将这些接收到的数据传入QUERY_STRING变量中,CGI程序可以通过标准输入,在程序中接收这些数据。当要向浏览器发送信息时,只要向Web服务器发送特定的文件头信息,即可通过标准输出将信息发往Web服务器,Web服务器处理完这些由CGI程序发来的信息后,就会将这些信息发送给浏览器。
4 系统的连接与调试
在测试监测平台功能时,将光伏逆变器的DSP控制板RS232接口与ARM板的RS232接口相连,并将ARM板的网口通过网线直接与笔记本相连,将ARM板的IP地址设置为192.168.0.2,将个人电脑 IP 设置为192.168.0.1。
5 结束语
本文提出了一种基于B/S模式的光伏逆变器监测平台设计方法。给出了相应的软硬件设计和实现的关键技术,详细分析了实现嵌入式web server功能的软件结构及程序设计过程。该监测平台具有硬件接口丰富,软件结构健壮的特点。由于此设计是一个单独的模块,是一个连接下位机和监控者的中间件,只要在软件上作相应地修改就能很容易地应用到各种嵌入式设备中,在工业或日常生活中具有广阔的应用前景。
[1]陈晓龙,周文华,刘建华.基于UC1825控制的光伏并网发电系统设计[J].制造业自动化,2010,32(7):173 -175.
[2]冯轲,贺明智,游小杰,等.光伏并网发电系统孤岛检测技术研究[J].电气自动化,2010,32(2):39 -42.
[3]徐荣珍,李加文,郭伟,等.基于uClinux的串口/以太网数据转换设备开发[J].计算机工程,2006,32(17):265 -267.
[4]彭道刚,张浩,江剑宁,等.基于ARM和Linux的嵌入式Web Server设计与实现[J].机电一体化,2008,14(10):37 -40.
[5]吴学名.和谐机车车载自动过分相监控系统的研究[D].北京:北京交通大学,2009.
[6]陈昆灿.地铁牵引变断路器在线监控系统的设计与开发[D].北京:北京交通大学,2010.
[7]蒋鸣.基于Internet的嵌入式远程监控系统的研究[D].西安:西北工业大学,2007.
[8]董涛.基于嵌入式Web server的远程测控系统设计与研究[D].武汉:湖北工业大学,2007.
[9] Zhu F.uCLinux-based webserver realization on ARM platform[C].ISECS InternationalColloquium on Computing, Communication,Control,and Management,2009.
[10]陆永健,王萍,吴佳,等.嵌入式Web服务器Boa的移植及其应用[J].河海大学常州分校学报,2005,19(4):44-47.