劉黎明,王用璽
(1.商丘師范學院 物理與電氣信息學院,河南 商丘476000;2.河南城鄉(xiāng)規(guī)劃設計總院有限公司 智能化研究所, 河南 鄭州 450000)
基于嵌入式Web的FPGA遠程控制系統(tǒng)的設計與實現(xiàn)
劉黎明1,王用璽2
(1.商丘師范學院 物理與電氣信息學院,河南 商丘476000;2.河南城鄉(xiāng)規(guī)劃設計總院有限公司 智能化研究所, 河南 鄭州 450000)
針對傳統(tǒng)基于C/S模式的Web遠程控制系統(tǒng)在性能、功耗及實時性上的弊端,提出了一種基于嵌入式Web的FPGA遠程控制系統(tǒng)的SOPC設計方案,該方案硬件設計采用Altera EP4CE115F系列FPGA芯片和Nios II軟核處理器,軟件部分通過μC/OS-II實時操作系統(tǒng)實現(xiàn)嵌入式Web遠程控制的功能.實驗表明,該系統(tǒng)達到了控制的預期效果,對后續(xù)復雜遠程控制的研究提供了一定的參考價值.
FPGA;SOPC;μC/OS-II;嵌入式web
隨著網(wǎng)絡技術的不斷發(fā)展,互聯(lián)網(wǎng)已經(jīng)滲透到人們工作和生活的各個角落.嵌入式系統(tǒng)因其功耗低、結構緊湊、穩(wěn)定可靠等優(yōu)點,已經(jīng)作為計算機領域的一個重要研究方向,廣泛應用于社會生活的各個方面.由于人們對現(xiàn)代社會信息交互的迫切性,利用互聯(lián)網(wǎng)技術通過嵌入式系統(tǒng)對設備進行實時性監(jiān)控、檢測、遠程控制等將成為未來發(fā)展的趨勢.
為了實現(xiàn)遠程控制,嵌入式Web服務器必須具備先進的網(wǎng)絡結構和硬件設施,具有一定的技術先進性、成熟可靠性、兼容性、擴展升級的功能.而現(xiàn)有的嵌入式Web服務器系統(tǒng)仍存在一些問題,文獻[1]采用MSP430F149微控制器實現(xiàn)嵌入式Web服務器溫度檢測控制,基于16位單片機由于其運行速度、存儲容量、功耗和資源不足等問題已經(jīng)越來越不能滿足復雜系統(tǒng)的需求. 文獻[2]和文獻[3]是基于ARM和S3C2440A實現(xiàn)嵌入式Web服務器的遠程控制設計,雖然在實用性、易用性和速度上有了很大程度的提高,適合一般的應用,但是具有開發(fā)周期長,擴展升級性和靈活性不強的缺點,當結構相對復雜時,RAM和ROM會不足,而且不能直接對硬件進行修改,處理能力和實時性不能滿足今后升級的要求[2,3].
采用片上可編程器件FPGA來實現(xiàn)網(wǎng)絡通信目前已有報道[4-6],本設計采用Altera公司生產(chǎn)的EP4CE115F系列FPGA芯片和Nios II軟核處理器[7,8]及SOPC技術構建嵌入式網(wǎng)絡硬件平臺以實現(xiàn)遠程通信控制的目的.
基于嵌入式Web的遠程控制系統(tǒng)主要由兩部分組成:嵌入式Web服務器、現(xiàn)場需控制的設備.服務器通過交換機或調制解調器與Intemet互聯(lián)網(wǎng)連接,用戶端只需在已聯(lián)網(wǎng)的計算機上通過網(wǎng)頁瀏覽器訪問該遠程服務器的IP地址,即可使用瀏覽器對遠端的嵌入式設備進行檢測和控制[9].
典型的嵌入式Web服務器有httpd、thttpd和Boa等,其中httpd功能最為簡單,不支持CGI.Boa是一個select I/O多路復用的http服務器,源代碼開放、性能高.它和傳統(tǒng)服務器的主要區(qū)別是:它是單進程的,在接到請求時并不fork出一個新的進程來響應,不能將自己拷貝很多份來處理多連接;它在內(nèi)部處理所有正在進行的http連接請求;只對單獨的CGI程序、自動文件的產(chǎn)生、自動文件的解壓等請求fork出新進程;它最大的優(yōu)點就是代碼簡單、速度快,適合于嵌入式應用.本系統(tǒng)選擇實現(xiàn)一個支持CGI的、能實現(xiàn)動態(tài)Web技術的Boa Web服務器.
本系統(tǒng)硬件平臺設計采用Altera公司的QuartusII軟件+SOPC Builder,結合Nios II IDE集成開發(fā)環(huán)境,能夠迅速有效的構建系統(tǒng)的硬件平臺和軟件平臺,提高系統(tǒng)設計的效率.本系統(tǒng)的硬件框圖如圖1所示.
圖1 系統(tǒng)硬件框圖
2.1 硬件設計
本系統(tǒng)采用Nios CPU組件負責對系統(tǒng)進行統(tǒng)一的管理控制.定時器組件用于產(chǎn)生時鐘來控制LED顯示數(shù)字的變化.LCD組件用于控制LCD液晶顯示屏.LED組件用于控制紅色和綠色的LED燈.由于工程需要上電自啟動所以需要EPCS組件和cfi_flash組件.cfi_flash組件需要連接在Avalon三態(tài)橋上才能正常工作,因此還需添加Avalon三態(tài)橋.另外考慮到軟件程序需要一個空間來運行,所以添加SDRAM組件.JTAG_UART組件負責PC與Nios系統(tǒng)的通訊.88E1111 PHY組件來為網(wǎng)卡提供驅動.由于本工程還可以通過電平開關來對實驗板的IP地址進行設置,因此還需要添加電平開關.系統(tǒng)整體結構如圖2所示.
圖2 WEB控制器SOPC系統(tǒng)結構圖
2.2 軟件設計
根據(jù)系統(tǒng)要求,軟件設計主要包括嵌入式μC/OS-II實時操作系統(tǒng)[10]的移植、NicheStack TCP/IP網(wǎng)絡協(xié)議棧的實現(xiàn)、應用級代碼編寫等部分.軟件結構框圖如圖3所示.
NiosIIProcessorSoftwareDeviceDriverHALAPIMicroC/OS-IINichestackTCP/IPSoftwareCompomentApplicationSpecificSystemIntializationWebserverApplication
圖3 系統(tǒng)軟件結構框圖
2.2.1 μC/OS-II在NIOS II中的移植
依據(jù)嵌入式Web系統(tǒng)在實時性和并發(fā)性等方面的要求,系統(tǒng)必須能夠移植多任務實時操作系統(tǒng)才能滿足系統(tǒng)在多任務環(huán)境下的調度,而μC/OS-II作為一個多任務的實時操作系統(tǒng)可以看作是多個任務進行調度的調度器,提供與多任務操作系統(tǒng)有關的信號量、郵箱等服務,μC/OS-II在Nios II上的移植集中在多任務切換的實現(xiàn)上,有處理器相關,只能用匯編語言來實現(xiàn)[11],不過由于Nios II IDE集成開發(fā)環(huán)境對μC/OS-II具有良好的支持性,所以能夠很好的結合硬件完成移植工作.
μC/OS-II在Nios II處理器上移植μC/OS-II,需修改3個與Nios II體系結構相關的文件: OS_CPU.H文件,OS_CPU_C.C文件和OSCPUA.S文件.
(1)基本的配置和定義OS_CPU.H頭文件.
OS_CPU.H頭文件定義了程序中使用數(shù)據(jù)的類型、堆棧的增長方向、堆棧的寬度、任務切換宏和臨界訪問處理.基本的配置和定義全部集中在OS_CPU.H頭文件中.
(2)編寫4個預處理器相關的函數(shù)
在匯編文件OS_CPU_A32.S中需要移植的函數(shù)為OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()、OSTickISR().
(3)OS_CPU_C.C
需要在OS_CPU_C.C文件中改寫與操作系統(tǒng)有關的6個C語言函數(shù)即:OSTaskStkInit()、OSTaskCreatHook()、OSTaskDelHook()、OSTaskSwHookStatHook()、 OSTaskTickHook().其中必須修改的函數(shù)是,其余5個都是用戶接口函數(shù)及鉤子函數(shù),可以不加代碼.
2.2.2 NicheStack移植
在系統(tǒng)的軟件設計中,Altera已經(jīng)在 Nios II IDE集成了NicheStack TCP/IP協(xié)議棧,在使用中可以根據(jù)需求通過在Nios II IDE下的圖形化界面配置相應的選項就可移植到Nios II上,從而實現(xiàn)NicheStack的移植.
2.2.3 軟件流程設計
工程運行時首先初始化NicheStack TCP/IP和網(wǎng)絡設備,接著獲得IP地址,隨后建立操作Socket接口,等待客戶端PC的請求,并判斷此請求是需要接受還是需要發(fā)送,根據(jù)不同的請求做不同的操作.若是接受請求,則接受由客戶端發(fā)送的IP包,解析IP包送至TCP層,之后解析TCP包到應用層,最后處理信息.如果是發(fā)送請求,則進行TCP打包,IP打包,最后傳送數(shù)據(jù).整個系統(tǒng)運行流程如圖4所示.
圖4 網(wǎng)絡服務器流程圖
在整個硬件系統(tǒng)和軟件系統(tǒng)配置好的情況下,首先,在PC終端通過ping命令驗證系統(tǒng)可以進行正常的通信.其次,在系統(tǒng)正常通信的情況下運行網(wǎng)頁服務器應用程序,F(xiàn)PGA作為服務器,此時LCD顯示出本地的IP地址,在客戶端PC機的網(wǎng)頁瀏覽器中輸入LCD上顯示的IP地址并打開.然后在瀏覽器上出現(xiàn)的實時監(jiān)控的網(wǎng)頁頁面 ,在網(wǎng)頁中通過所設計頁面的控件開關可訪問FPGA硬件上不同的外設.本次測試通過網(wǎng)頁控制按鈕對硬件LED亮滅狀態(tài)進行控制,同時可以通過對網(wǎng)頁數(shù)據(jù)的更改來控制硬件LCD輸出信息和設定七段數(shù)碼管顯示的數(shù)值.圖5(a)、(b)為網(wǎng)頁服務器運行頁面截圖.
圖5 系統(tǒng)運行結果
本文在NIOS II嵌入式軟核處理器的基礎上, 采用μC/OS- II 實時操作系統(tǒng),移植NicheStackTCP/IP協(xié)議棧, 在TCP/IP 協(xié)議的基礎上實現(xiàn)了HTTP協(xié)議, 設計并實現(xiàn)了基于嵌入式Web的FPGA遠程控制系統(tǒng).系統(tǒng)具有占用系統(tǒng)資源少, 結構簡單, 可擴充, 可升級,成本低和性能穩(wěn)定等優(yōu)點, 為基于嵌入式WEB的智能儀表、網(wǎng)絡測控和遠程監(jiān)控系統(tǒng)提供了一個優(yōu)秀的通信平臺.
[1] 賴于樹, 李迅波, 杜平安.基于嵌入式WEB服務器的多通道溫濕度監(jiān)測儀[J].儀表技術與傳感器,2006( 05) : 16-18.
[2] 何鵬舉. 基于Web服務的無線網(wǎng)絡節(jié)點傳感器研究[J].傳感技術學報,2009,22(11): 1634-1638.
[3] 王莉,周偉.基于ARM的嵌入式Web服務器設計[J].計算機工程與應用,2012,48(14): 90-94.
[4] 楊林楠,李紅剛,張麗蓮,彭琳.基于FPGA的高速多路數(shù)據(jù)采集系統(tǒng)的設計[J]. 計算機工程,2007,33(07): 246-248.
[5] 彭堅,何渝. 基于FPGA的交通信息采集系統(tǒng)的設計與應用[J].計算機應用與軟件,2011,28(01):82-84.
[6] 糜峰,肖鐵軍.基于NiosⅡ的嵌入式Web服務器設計與實現(xiàn)[J].測控技術,2010,2( 12):70-73.
[7] Kang Q M,HE H, Wang H R. Study on Embedded Web Server and Realization[J].International Symposium on Pervasive Computing and Applications, 2006:675-678.
[8] Altera Corporation. Nios II[M].Processor Reference Handbook, 2011.
[9] 張曉亮.基于SOPC以太網(wǎng)技術的研究與實現(xiàn)[D].大連:大連理工大學,2007.
[10] Labrose J J. 邵貝貝,等譯. 嵌入式實時操作系統(tǒng)μC/OS-II[M].北京:北京航空航天大學出版社, 2003.
[11] 李正軍.基于NiosII軟核CPU的TCP/IP協(xié)議實現(xiàn)[D].西安:西安電子科技大學,2006.
【責任編輯:王軍】
Design and implementation of FPGA remote control system based on embeded web server technology
LIU Liming1, WANG Yongxi2
(1.School of Physics and Electrical Informationof Shangqiu Normal UniVersity, Shangqiu 476000, China;2. Henan Institute of Urban and Rural Planning and Design Institute Limited Intelligent, Zhengzhou 450000, China)
To resolve the disadvantages of traditional web remote control system based on C/S model in performance、power consumption and real-time, a design scheme for embedded web remote control system based on FPGA is proposed in the way of SOPC. The system embeds Altera EP4CE115F series FPGA chip and the Nios II soft-core processor in its hardware design and introduces μC/OS-II real-time operating system in the software design. The experiments show that the system has reached the expected effect of the control, it provides a certain reference value for follow-up studies of complex remote control.
FPGA;SOPC;μC/OS-II;embedded web
2014-11-26;
2013-12-17
劉黎明(1982-),男,河南夏邑人, 商丘師范學院助教,碩士,主要從事嵌入式系統(tǒng)應用,復雜系統(tǒng)仿真的研究.
TP393
A
1672-3600(2015)03-0056-04