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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 遠(yuǎn)程測控中嵌入式Web服務(wù)器的FPGA實(shí)現(xiàn)

          遠(yuǎn)程測控中嵌入式Web服務(wù)器的FPGA實(shí)現(xiàn)

          ——
          作者:趙不賄,孫智權(quán),徐雷鈞,郭文 時(shí)間:2006-11-28 來源:電測與儀表 收藏
          引 言
              
          是指被嵌入到各種產(chǎn)品或工程應(yīng)用中以微處理器或微控制器為核心的軟硬件系統(tǒng)。與Internet技術(shù)相結(jié)合,形成的嵌入式Internet技術(shù)是近幾年隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的普及而發(fā)展起來的一項(xiàng)新興技術(shù)。工程技術(shù)人員、管理人員或調(diào)試人員通過而不用親臨現(xiàn)場就可以得到遠(yuǎn)程數(shù)據(jù),并對測控儀器進(jìn)行控制、校準(zhǔn)等工作。這里介紹利用嵌入式軟核處理器Nios II及廣泛應(yīng)用的嵌入式操作系統(tǒng)uClinux來實(shí)現(xiàn)電網(wǎng)參數(shù)的服務(wù)器的功能。
              
          1、功能及體系結(jié)構(gòu)
              
          圖1是系統(tǒng)結(jié)構(gòu),其中嵌入式服務(wù)器和監(jiān)控端位于現(xiàn)場,它們之間的連接可以用串行口、并行口、USB等實(shí)現(xiàn)。現(xiàn)場監(jiān)控端完成對目標(biāo)地區(qū)電網(wǎng)參數(shù)(電壓、電流、諧波等數(shù)據(jù))的檢測,并將檢測結(jié)果實(shí)時(shí)傳送至web界面,使得無論監(jiān)控人員在哪里,只要連接至Internet網(wǎng)絡(luò),便可對目標(biāo)區(qū)
          域電網(wǎng)參數(shù)實(shí)時(shí)觀測。其實(shí)現(xiàn)過程是:三相電壓、電流分別通過電壓互感器、電流互感器變換后,經(jīng)電路調(diào)理送至AID轉(zhuǎn)換,每周期采樣128點(diǎn),DSP芯片對采樣數(shù)據(jù)進(jìn)行FIR數(shù)字濾波、FFT運(yùn)算、計(jì)算各參數(shù)值、存儲(chǔ)、顯示等操作。測量電路與Nios之間的通信通過串口傳輸,根據(jù)事先約定的通信協(xié)議(基于Modbus協(xié)議)可以方便地把所測數(shù)據(jù)發(fā)送至以Nios II處理器為核心的嵌入式服務(wù)器。通過CGI技術(shù),完成遠(yuǎn)程監(jiān)控端的命令傳輸及將測量數(shù)據(jù)實(shí)時(shí)傳送至遠(yuǎn)程監(jiān)控端。

                                               系統(tǒng)結(jié)構(gòu)圖
                                                                 圖1 系統(tǒng)結(jié)構(gòu)圖

          2、硬件結(jié)構(gòu)
              
          系統(tǒng)的硬件結(jié)構(gòu)如圖2所示。硬件系統(tǒng)的核心是構(gòu)建于Ahera Cyclone 中的Nios II嵌入式軟核處理器。Nios II系列嵌入式處理器是一款通用的RISC結(jié)構(gòu)的CPU,它定位于廣泛的嵌入式應(yīng)用。Nios II處理器系列包括了三種核心:快速的(Nios II/f)、經(jīng)濟(jì)的(Nios II/e)和標(biāo)準(zhǔn)的(Nios II/s)內(nèi)核,每種都針對不同的性能范圍和成本而優(yōu)化。這三種核都使用共同的32位的指令集結(jié)構(gòu)(ISA),都兼容二進(jìn)制代碼。

                                 硬件系統(tǒng)圖
          圖2 硬件系統(tǒng)圖

          對于Nios II的配置在SOPC Builder中完成。通過配置所需要的外部/內(nèi)部元件,SOPC Builder將自動(dòng)生成適合選定元件的CPU,以符合系統(tǒng)的需求。16M的CF卡作為系統(tǒng)的外存儲(chǔ)器,用來存儲(chǔ)測量數(shù)據(jù),網(wǎng)頁文件和應(yīng)用程序。以太網(wǎng)接口芯片采用的SMSC的Lan91cl11芯片,這是一種非PCI接口的單芯片網(wǎng)絡(luò)控制器,具有8k的FIFO,可以實(shí)現(xiàn)和8位、16位、32位的CPU接口,廣泛地應(yīng)用于設(shè)計(jì)中。
              
           3、軟件結(jié)構(gòu)
              
          系統(tǒng)軟件結(jié)構(gòu)如圖3所示。uClinux是一個(gè)完全符合GNU/GPL(通用公共許可證)公約的項(xiàng)目和完全開發(fā)代碼。它是標(biāo)準(zhǔn)Linux的一個(gè)分支,現(xiàn)在由Lineo公司支持維護(hù)。它專門針對沒有MMU的CPU,并且為嵌入式系統(tǒng)做了許多小型化的工作。uClinux For Nios是Microtronics公司專門針對Nios CPU 定制的uClinux操作系統(tǒng),使用方便,不需要復(fù)雜的移植過程,并自動(dòng)地集成于Nios/Nios II的開發(fā)環(huán)境(IDE)中。只要根據(jù)自身的需求對內(nèi)核和文件系統(tǒng)進(jìn)行配置即可,這里的服務(wù)器、TCP/IP協(xié)議棧及底層的接口驅(qū)動(dòng)程序即是集成于uClinux中的。除此之外,自行編寫CGI腳本來實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁的功能。CGI(Common Gate Interface)動(dòng)態(tài)網(wǎng)關(guān)接口是外部擴(kuò)展應(yīng)用程序與WWW 服務(wù)器交互的一個(gè)標(biāo)準(zhǔn)接口。按照CGI標(biāo)準(zhǔn)編寫的外部擴(kuò)展應(yīng)用程序可以處理客戶端(一般是WW W瀏覽器)輸入的協(xié)同工作數(shù)據(jù),完成客戶端與服務(wù)器的交互操作。可以編寫CGI外部擴(kuò)展程序來訪問外部數(shù)據(jù)系統(tǒng),客戶端用戶可以通過它和WWW 服務(wù)器來進(jìn)行數(shù)據(jù)查詢。CGI可以由PERL、C及大部分的腳本語言來編寫,不過由于是用于嵌入式系統(tǒng)中的程序,而腳本語言又需要解釋器,故選擇C語言來編寫CGI腳本比較合適,還可節(jié)省很大的系統(tǒng)資源。

                                  軟件結(jié)構(gòu)圖
                                                                    圖3 軟件結(jié)構(gòu)圖

          3.1 uClinux操作系統(tǒng)內(nèi)核及文件系統(tǒng)的配置

          (1) uClinux的內(nèi)核配置。內(nèi)核是一個(gè)操作系統(tǒng)的核心,它負(fù)責(zé)管理系統(tǒng)的進(jìn)程、內(nèi)存、設(shè)備驅(qū)動(dòng)程序、文件和網(wǎng)絡(luò)系統(tǒng),決定著系統(tǒng)的性能和穩(wěn)定性。嵌入式uClinux具有高度可靈活定制內(nèi)核,保持了Linux的源代碼公開、穩(wěn)定、可裁減大小等特性。這里采用Microtronix公司專門為Nios/Nios II移植的uClinux1.3版本,并根據(jù)需要進(jìn)行重新配置:在“Developing Board”選項(xiàng)中要選擇自己所用的開發(fā)板,添加CF卡作為系統(tǒng)的硬盤等。
              
          (2) 文件系統(tǒng)配置。文件系統(tǒng)是操作系統(tǒng)的重要組成部分。對用戶而言,文件系統(tǒng)也是操作系統(tǒng)中最直接可見的部分,它負(fù)責(zé)管理外存上的文件,并為操作系統(tǒng)和用戶提供文件的存取、共享和保護(hù)等功能。這里要在文件系統(tǒng)配置中,選中Install Minimal、然后增加agetty、boa、dhcpcd、ftpd、inetd、init、ping、route和telnetd等選項(xiàng)。
              
          3.2 Web服務(wù)器配置    web 服務(wù)器工作流程
                                                        圖4 Web 服務(wù)器工作流程

          本文所使用的Web Ser

          ver為Boa,它是一個(gè)單任務(wù)的http服務(wù)器,源代碼開放、性能高、速度快。其工作流程如圖4所示。目前,uClinux的代碼中已經(jīng)包含Boa的源代碼,在uClinux下實(shí)現(xiàn)Boa,需要對Boa做一些配置和修改。配置Boa包括以下幾個(gè)步驟:
              
          (1) 打開所建立文件系統(tǒng)中的“/target/etc/config”文件夾中的“boa.conf’文件。

          (2) 將“ChRoot”更改為“/mnt/ide0/www”,其目的是將CF卡上面的“www”文件夾作為Web Server的主文件夾。鍵入系統(tǒng)IP時(shí),服務(wù)器自動(dòng)解析為在此目錄內(nèi)尋找名為“index.htm”的網(wǎng)頁,也就是本設(shè)計(jì)的主頁。
              
          (3) 在“SeriptAlias”選項(xiàng)中添加命令:“ScriptAlias/mnt/ide0/www/cgi-bin//cgi-bin/",其目的是將前面的具有完整路徑的文件夾的地址映射為后一個(gè)文件夾,一是可以省去在地址欄內(nèi)輸入地址的很多時(shí)間,方便用戶操作;二是增加了系統(tǒng)的保密性和安全性。其他選項(xiàng)可以選擇默認(rèn)選項(xiàng)。
              
          (4) 保存配置好的文件。當(dāng)下載文件系統(tǒng)后,要在“/mnt/ide0/www”文件中,建立“csi-bin”目錄來存放CGI腳本文件。
              
          3.3 CGI程序設(shè)計(jì)
              
          CGI程序使用C語言編寫,內(nèi)嵌html腳本,所以當(dāng)CGI執(zhí)行的時(shí)候,即可以完成對特定端口的操作,又可以將其返回的結(jié)果顯示在網(wǎng)頁上供監(jiān)控人員查看。具體操作是:首先,CGI腳本采用GET的方式,接收Web Server解析的從網(wǎng)頁所傳輸過來的“QUERY_STRTING”,它代表的是用戶的監(jiān)控命令。接到命令后,CGI程序?qū)⒚钭g碼后傳送到串口,向現(xiàn)場監(jiān)控模塊發(fā)送采集命令,并接受其傳回來的采集結(jié)果,并迅速傳到監(jiān)控用戶所瀏覽的Web界面。需要注意的是,在編寫過CGI程序并成功編譯后,要將其移動(dòng)至CF卡相關(guān)目錄,也就是上面所介紹的Boa Web Server所設(shè)置的“www/csi-bin”中,并將其后綴更改為“.cgi”,屬性改為“可執(zhí)行”,這樣,Web Server才可以正確識別并執(zhí)行此CGI程序。

                                 顯示實(shí)時(shí)測量結(jié)果的網(wǎng)頁畫面
           圖5 顯示實(shí)時(shí)測量結(jié)果的網(wǎng)頁畫面

          4、結(jié)論
              
          本文將嵌入式系統(tǒng)與Internet技術(shù)相結(jié)合,在上開發(fā)了一個(gè)嵌入式Web服務(wù)器,并與電網(wǎng)參數(shù)測量儀器相結(jié)合,構(gòu)成遠(yuǎn)程電網(wǎng)參數(shù)測量系統(tǒng),為電網(wǎng)系統(tǒng)網(wǎng)絡(luò)化管理提供了技術(shù)支持,具有很好的應(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); })();