<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于嵌入式Internet技術(shù)的電網(wǎng)遠程監(jiān)測系統(tǒng)

          基于嵌入式Internet技術(shù)的電網(wǎng)遠程監(jiān)測系統(tǒng)

          作者: 時間:2017-06-06 來源:網(wǎng)絡(luò) 收藏
          引言

          社會的不斷進步和科學(xué)技術(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)基于近年來新興的系統(tǒng)與Internet結(jié)合,把PHILIPS公司生產(chǎn)的ARM7微處理器作為系統(tǒng)實現(xiàn)的核心器件,同時利用以太網(wǎng)接口芯片構(gòu)建一個網(wǎng)絡(luò)系統(tǒng)并將其運用到電網(wǎng)遠程監(jiān)測中。整個設(shè)計符合電網(wǎng)遠程監(jiān)測的要求,并克服了傳統(tǒng)模式的監(jiān)測方式,以其優(yōu)異的性能應(yīng)用于中。

          1. 系統(tǒng)總體設(shè)計

          基于嵌入式是電網(wǎng)監(jiān)測研究領(lǐng)域的一個嶄新的方向。目前為了將嵌入式系統(tǒng)與Internet結(jié)合常用的嵌入式實現(xiàn)方案主要有以下幾種:[1]

          第一種方案是單片機應(yīng)用系統(tǒng)內(nèi)部支持TCP/IP協(xié)議,它實質(zhì)上由MCU及內(nèi)部固化TCP/IP協(xié)議的芯片組成應(yīng)用系統(tǒng)的核心。此方案中,由于單片機使用了TCP/IP協(xié)議芯片,因此[1]需要大容量的程序存儲器,而且要求MCU有較高的運行速度。應(yīng)用系統(tǒng)的設(shè)計工程師還必須熟悉TCP/IP協(xié)議和相關(guān)的接口,軟件設(shè)計復(fù)雜,工作量大。

          第二種方案是采用嵌入式微控制器結(jié)合通用的網(wǎng)絡(luò)接口芯片的方法,解決以微控制器為核心的嵌入式系統(tǒng)接入Internet的問題。

          本系統(tǒng)將第二種方案應(yī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)測主機,負責(zé)實時監(jiān)測電網(wǎng)運行參數(shù)確保電網(wǎng)運行安全。應(yī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ù)。

          本文引用地址:http://www.ex-cimer.com/article/201706/349460.htm 圖1 電網(wǎng)遠程監(jiān)測系統(tǒng)結(jié)構(gòu)圖

          Fig1. Composition chart of electric network remote monitoring system

          2. 系統(tǒng)的硬件平臺

          硬件平臺是實現(xiàn)嵌入式Internet接入的基礎(chǔ),本文提出的電網(wǎng)遠程監(jiān)測系統(tǒng)的硬件平臺采用ARM7代替了傳統(tǒng)的CPU,同時在外圍接入電流電壓監(jiān)測模塊、功率因數(shù)監(jiān)測模塊、鍵盤輸入模塊、以及網(wǎng)絡(luò)通信模塊,整個系統(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)測以及其它各種類型的應(yīng)用中非常適合。

          網(wǎng)絡(luò)通信模塊是實現(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種等級的掉電模式,所以是作為網(wǎng)絡(luò)設(shè)備的理想選擇,在全雙工模式下,如果連接到一個同樣是全雙工的交換機或集線器,則可以實現(xiàn)同時接收和發(fā)送。通過該芯片可實現(xiàn)嵌入式系統(tǒng)與Internet的互聯(lián)。

          圖2 系統(tǒng)的硬件平臺

          Fig.2 Hardware platform of the system 3. 系統(tǒng)的軟件實現(xiàn)


          3.1 嵌入式操作系統(tǒng)的選擇

          嵌入式操作系統(tǒng)是整個嵌入式系統(tǒng)的核心,它具有實時性強、可靠性高等特點,在嵌入式系統(tǒng)中應(yīng)用廣泛。商用的嵌入式實時操作系統(tǒng)比如Vxworks、Nucleaus、QNX等價格比較昂貴,一般不適宜廣泛應(yīng)用。μC 是從 2.0/2.4內(nèi)核派生而來[2],適用于沒有虛擬內(nèi)存或內(nèi)存管理單元(MMU)的處理器,它在標準的基礎(chǔ)上進行了適當(dāng)?shù)牟眉艉蛢?yōu)化,體積很小,而且保留了Linux的大多數(shù)的優(yōu)點:穩(wěn)定、良好的移植性、優(yōu)秀的網(wǎng)絡(luò)功能,并內(nèi)嵌了TCP/ IP 協(xié)議。考慮到嵌入式μCLinux的以上優(yōu)點,本系統(tǒng)選擇采用嵌入式μCLinux作為嵌入式的實時操作系統(tǒng)。

          3.2 Web服務(wù)器的實現(xiàn)

          在電網(wǎng)遠程監(jiān)測系統(tǒng)中,嵌入式Web服務(wù)器技術(shù)將有效降低系統(tǒng)運行維護費用,提高系統(tǒng)管理水平 [3]。本系統(tǒng)將嵌入式Web服務(wù)器以及B/S結(jié)構(gòu)模型相結(jié)合。其中B/S結(jié)構(gòu)中最底層為數(shù)據(jù)層,負責(zé)從采集電網(wǎng)數(shù)據(jù);中間層為信息處理系統(tǒng),負責(zé)將電網(wǎng)中的實時參數(shù)寫入掛接在這一層的Web服務(wù)器中,然后對數(shù)據(jù)進行統(tǒng)計、分析等處理,最后將處理過的數(shù)據(jù)實時的以網(wǎng)頁的形式發(fā)送到第三層客戶端,客戶端可以通過瀏覽器直接監(jiān)測電網(wǎng)運行參數(shù),實現(xiàn)了電網(wǎng)遠程監(jiān)測系統(tǒng)。

          嵌入式Web服務(wù)器(Embedded Web Server,簡稱EWS)是實現(xiàn)電網(wǎng)遠程監(jiān)測的重要組成部分和關(guān)鍵技術(shù),利用嵌入式Web服務(wù)器可對電網(wǎng)進行監(jiān)測和實時參數(shù)的傳輸[4]。嵌入式web服務(wù)器通過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等命令來新建目錄,故應(yīng)在編譯內(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服務(wù)器的根目錄路徑。

          進入../μ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服務(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硬件平臺,啟動μ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的方法。當(dāng)客戶端采用FORM POST形式向Boa服務(wù)器發(fā)出CGI請求時,服務(wù)器守護進程啟動相應(yīng)的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)模塊的應(yīng)答消息,最后生成網(wǎng)頁文件,并且將返回結(jié)果嵌入到網(wǎng)頁文件中,通過cgi—send—string函數(shù)將此網(wǎng)頁發(fā)送給客戶端瀏覽器。一段時間后客戶端瀏覽器會再次向服務(wù)器發(fā)送一個CGI請求,相應(yīng)的CGI函數(shù)會查詢最新的數(shù)據(jù),刷新后將新數(shù)據(jù)發(fā)送給客戶端瀏覽器。這樣周而復(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]。

          圖3 用戶通過CGI與目標板交互

          Fig.3 Client Connects with Target Board through CGI


          同時為了保證遠程監(jiān)測的安全性不被非法侵入,通常嵌入式Internet可以采用:加密和解密(Encryption andde—eryption)、數(shù)字簽名(Digitalsignatures)、信息摘要(Message digests)、公共密鑰基本架構(gòu)(Public—keyinfiastrueture)、證書(Certifieates)等方法確保網(wǎng)絡(luò)通訊的安全。本系統(tǒng)采用了用命令識別的方法來保證系統(tǒng)數(shù)據(jù)傳輸?shù)陌踩?即客戶端計算機首先向監(jiān)測系統(tǒng)發(fā)送命令代碼,由監(jiān)測系統(tǒng)分析,確定為請求數(shù)據(jù)發(fā)送命令碼再向客戶端計算機端發(fā)送數(shù)據(jù),發(fā)送命令代碼即相當(dāng)于發(fā)送了身份驗證碼,從而保證電網(wǎng)數(shù)據(jù)傳輸?shù)陌踩浴?

          4.系統(tǒng)的應(yīng)用

          本系統(tǒng)在成都某電廠的局域網(wǎng)(以太網(wǎng))的環(huán)境里做調(diào)試,通過IE瀏覽器完全實現(xiàn)了電網(wǎng)參數(shù)的監(jiān)測功能:在客戶端IE瀏覽器中輸入主網(wǎng)頁的地址,進入電網(wǎng)監(jiān)測系統(tǒng)的主網(wǎng)頁,如圖4;輸入正確的用戶名和密碼后登陸電網(wǎng)遠程監(jiān)測系統(tǒng)的參數(shù)監(jiān)測網(wǎng)頁。在參數(shù)監(jiān)測網(wǎng)頁可以監(jiān)測到電網(wǎng)運行的實時參數(shù)。整個系統(tǒng)具有良好的人機界面,操作簡單,有效的保證了電網(wǎng)運行安全,大幅提高了電網(wǎng)監(jiān)測的實時性和有效性。

          圖4 主網(wǎng)頁

          Fig4 The home

          5.結(jié)束語

          本文提出了將嵌入式Internet技術(shù)應(yīng)用于電網(wǎng)遠程監(jiān)測系統(tǒng)的開發(fā)與實現(xiàn),研究了基于嵌入式實時操作系統(tǒng)μCLinux下嵌入式Internet的接入方案以及Boa Web服務(wù)器的參數(shù)配置,并提出了利用CGI技術(shù)實現(xiàn)網(wǎng)頁的實時刷新以及客戶端與主機間交互的方法 ,開發(fā)實現(xiàn)了電網(wǎng)遠程監(jiān)測系統(tǒng)并將該系統(tǒng)應(yīng)用于成都某電廠。實踐表明,該系統(tǒng)可以實時監(jiān)測電網(wǎng)參數(shù),保證了電網(wǎng)的安全運行。本系統(tǒng)的構(gòu)建代表了新一代監(jiān)測網(wǎng)絡(luò)發(fā)展的必然趨勢,在不久的未來必將具有十分廣闊的應(yīng)用前景。


          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();