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