引言
社會的不斷進步和科學技術的飛速發(fā)展,為電力系統(tǒng)的發(fā)展和進步提供了廣闊的空間和新的技術手段,對于電網的監(jiān)測也提出了新的挑戰(zhàn)。以往的電網監(jiān)測裝置普遍是基于單片機開發(fā)的,在特定時間或地點進行電網的監(jiān)測操作,精度較低,實時性不高。隨著電網不斷擴大,原本的監(jiān)測裝置己很難滿足實際需要。
本系統(tǒng)基于近年來新興的嵌入式Internet技術將嵌入式系統(tǒng)與Internet結合,把PHILIPS公司生產的ARM7微處理器作為系統(tǒng)實現的核心器件,同時利用以太網接口芯片構建一個嵌入式網絡系統(tǒng)并將其運用到電網遠程監(jiān)測中。整個設計符合電網遠程監(jiān)測的要求,并克服了傳統(tǒng)模式的監(jiān)測方式,以其優(yōu)異的性能應用于電網遠程監(jiān)測系統(tǒng)中。
1. 系統(tǒng)總體設計
基于嵌入式Internet技術的電網遠程監(jiān)測系統(tǒng)是電網監(jiān)測研究領域的一個嶄新的方向。目前為了將嵌入式系統(tǒng)與Internet結合常用的嵌入式Internet技術實現方案主要有以下幾種:[1]
第一種方案是單片機應用系統(tǒng)內部支持TCP/IP協(xié)議,它實質上由MCU及內部固化TCP/IP協(xié)議的芯片組成應用系統(tǒng)的核心。此方案中,由于單片機使用了TCP/IP協(xié)議芯片,因此[1]需要大容量的程序存儲器,而且要求MCU有較高的運行速度。應用系統(tǒng)的設計工程師還必須熟悉TCP/IP協(xié)議和相關的接口,軟件設計復雜,工作量大。
第二種方案是采用嵌入式微控制器結合通用的網絡接口芯片的方法,解決以微控制器為核心的嵌入式系統(tǒng)接入Internet的問題。
本系統(tǒng)將第二種方案應用于電網遠程監(jiān)測系統(tǒng)的開發(fā)與實現,把監(jiān)測裝置作為以太網中的一個獨立的節(jié)點,使其擁有自己的IP地址,而任何授權的工作站都可以通過Internet實時瀏覽在線信息。整個電網遠程監(jiān)測系統(tǒng)的結構如圖1,其中用戶層是遠程監(jiān)測主機,負責實時監(jiān)測電網運行參數確保電網運行安全。應用層為采用嵌入式Internet技術設計開發(fā)的電網遠程監(jiān)測系統(tǒng),每個監(jiān)測設備分配一個獨立的IP,方便用戶層進行數據監(jiān)測。數據層則為分布在各地的待監(jiān)測的電網,提供電網運行參數。
2. 系統(tǒng)的硬件平臺
硬件平臺是實現嵌入式Internet接入的基礎,本文提出的電網遠程監(jiān)測系統(tǒng)的硬件平臺采用ARM7代替了傳統(tǒng)的CPU,同時在外圍接入電流電壓監(jiān)測模塊、功率因數監(jiān)測模塊、鍵盤輸入模塊、以及網絡通信模塊,整個系統(tǒng)的硬件平臺結構圖如圖2。其中微處理器部分采用基于ARM7TDMI內核的LPC2290,它擁有16 kB 片內靜態(tài)RAM,32 位定時器、8 路10 位ADC,并且擁有多個串行接口,包括2個UART、高速I2C 接口和2個SPI接口,通過配置總線,LPC2290 最多可提供76個GPIO。由于LPC2290內置了寬范圍的串行通信接口,因此在通信網關、協(xié)議轉換器,遠程監(jiān)測以及其它各種類型的應用中非常適合。
網絡通信模塊是實現嵌入式系統(tǒng)與Internet互聯的關鍵,本系統(tǒng)采用的是通用的以太網控制芯片DM9000E,它是MAC、PHY、MMU三合一的網絡芯片,精度高、速度快,具有10M/100M自適應、16KB大容量FIFO、4路多功能GPIO、掉電特性、全雙工工作等功能。由于它擁有3種等級的掉電模式,所以是作為網絡設備的理想選擇,在全雙工模式下,如果連接到一個同樣是全雙工的交換機或集線器,則可以實現同時接收和發(fā)送。通過該芯片可實現嵌入式系統(tǒng)與Internet的互聯。
3.1 嵌入式操作系統(tǒng)的選擇
嵌入式操作系統(tǒng)是整個嵌入式系統(tǒng)的核心,它具有實時性強、可靠性高等特點,在嵌入式系統(tǒng)中應用廣泛。商用的嵌入式實時操作系統(tǒng)比如Vxworks、Nucleaus、QNX等價格比較昂貴,一般不適宜廣泛應用。μC Linux是從Linux 2.0/2.4內核派生而來[2],適用于沒有虛擬內存或內存管理單元(MMU)的處理器,它在標準的Linux基礎上進行了適當的裁剪和優(yōu)化,體積很小,而且保留了Linux的大多數的優(yōu)點:穩(wěn)定、良好的移植性、優(yōu)秀的網絡功能,并內嵌了TCP/ IP 協(xié)議。考慮到嵌入式μCLinux的以上優(yōu)點,本系統(tǒng)選擇采用嵌入式μCLinux作為嵌入式的實時操作系統(tǒng)。
3.2 Web服務器的實現
在電網遠程監(jiān)測系統(tǒng)中,嵌入式Web服務器技術將有效降低系統(tǒng)運行維護費用,提高系統(tǒng)管理水平 [3]。本系統(tǒng)將嵌入式Web服務器以及B/S結構模型相結合。其中B/S結構中最底層為數據層,負責從采集電網數據;中間層為信息處理系統(tǒng),負責將電網中的實時參數寫入掛接在這一層的Web服務器中,然后對數據進行統(tǒng)計、分析等處理,最后將處理過的數據實時的以網頁的形式發(fā)送到第三層客戶端,客戶端可以通過瀏覽器直接監(jiān)測電網運行參數,實現了電網遠程監(jiān)測系統(tǒng)。
嵌入式Web服務器(Embedded Web Server,簡稱EWS)是實現電網遠程監(jiān)測的重要組成部分和關鍵技術,利用嵌入式Web服務器可對電網進行監(jiān)測和實時參數的傳輸[4]。嵌入式web服務器通過CGI接口或其他方法,可以在HTML文件或表單中運行代碼,供RAM讀/寫數據。在μCLinux下,本系統(tǒng)選擇使用一個支持CGI的、非常適合于嵌入式系統(tǒng)的Boa Web Server。在Boa Web Server使用時需要對與Boa相關的文件做一些配置和修改:
1) 建立存放目錄
由于μClinux默認的根文件系統(tǒng)romfs是只讀的,不能用mkdir等命令來新建目錄,故應在編譯內核前先建好要用到的目錄,這通過修改。。/μClinux-dist/vendors/Philips/LPC2200/Makefile文件來實現。在ROMFS_DIRS=bin dev etc home lib mnt proc usr var的后邊增加home/cgi-bin,這樣修改后編譯內核,編譯好的根文件系統(tǒng)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操作系統(tǒng),完成IP配置,運行Boa Web Server,然后就可以通過瀏覽器訪問網頁了。
3.3 用戶與主機間安全交互的實現
為了在μCLinux系統(tǒng)中實現網頁的實時刷新,得到實時電網參數,實現客戶端與電網監(jiān)測系統(tǒng)之間的交互,本系統(tǒng)采用了CGI的方法。當客戶端采用FORM POST形式向Boa服務器發(fā)出CGI請求時,服務器守護進程啟動相應的CGI程序,CGI程序通過CONTENT—LENGTH獲取客戶端傳輸數據的字節(jié)數,通過STDIN讀取客戶端傳輸數據,這些數據一般是客戶端在表單中輸入的簡單的監(jiān)控信息。CGI獲取這些信息后通過串行通信將這些信息發(fā)送到電網監(jiān)測系統(tǒng)中,等待監(jiān)測系統(tǒng)模塊的應答消息,最后生成網頁文件,并且將返回結果嵌入到網頁文件中,通過cgi—send—string函數將此網頁發(fā)送給客戶端瀏覽器。一段時間后客戶端瀏覽器會再次向服務器發(fā)送一個CGI請求,相應的CGI函數會查詢最新的數據,刷新后將新數據發(fā)送給客戶端瀏覽器。這樣周而復始,實現了網頁的刷新功能,從而保證了遠程監(jiān)測數據的實時性,實現客戶端與電網監(jiān)測系統(tǒng)之間的交互。客戶端通過CGI接口與電網監(jiān)測系統(tǒng)之間交互的關系如圖3所示[5]。
評論
查看更多