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