<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

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

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

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

                                     系統結構圖
                                                       圖1 系統結構圖

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

                       硬件系統圖
圖2 硬件系統圖

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

                        軟件結構圖
                                                          圖3 軟件結構圖

3.1 uClinux操作系統內核及文件系統的配置

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

本文所使用的Web Ser

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

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

                       顯示實(shí)時(shí)測量結果的網(wǎng)頁(yè)畫(huà)面
 圖5 顯示實(shí)時(shí)測量結果的網(wǎng)頁(yè)畫(huà)面

4、結論
    
本文將嵌入式系統與Internet技術(shù)相結合,在上開(kāi)發(fā)了一個(gè)嵌入式Web服務(wù)器,并與電網(wǎng)參數測量?jì)x器相結合,構成遠程電網(wǎng)參數測量系統,為電網(wǎng)系統網(wǎng)絡(luò )化管理提供了技術(shù)支持,具有很好的應用前景。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>