劉黎明,王用璽
(1.商丘師范學院 物理與電氣信息學院,河南 商丘476000;2.河南城鄉規劃設計總院有限公司 智能化研究所, 河南 鄭州 450000)
基于嵌入式Web的FPGA遠程控制系統的設計與實現
劉黎明1,王用璽2
(1.商丘師范學院 物理與電氣信息學院,河南 商丘476000;2.河南城鄉規劃設計總院有限公司 智能化研究所, 河南 鄭州 450000)
針對傳統基于C/S模式的Web遠程控制系統在性能、功耗及實時性上的弊端,提出了一種基于嵌入式Web的FPGA遠程控制系統的SOPC設計方案,該方案硬件設計采用Altera EP4CE115F系列FPGA芯片和Nios II軟核處理器,軟件部分通過μC/OS-II實時操作系統實現嵌入式Web遠程控制的功能.實驗表明,該系統達到了控制的預期效果,對后續復雜遠程控制的研究提供了一定的參考價值.
FPGA;SOPC;μC/OS-II;嵌入式web
隨著網絡技術的不斷發展,互聯網已經滲透到人們工作和生活的各個角落.嵌入式系統因其功耗低、結構緊湊、穩定可靠等優點,已經作為計算機領域的一個重要研究方向,廣泛應用于社會生活的各個方面.由于人們對現代社會信息交互的迫切性,利用互聯網技術通過嵌入式系統對設備進行實時性監控、檢測、遠程控制等將成為未來發展的趨勢.
為了實現遠程控制,嵌入式Web服務器必須具備先進的網絡結構和硬件設施,具有一定的技術先進性、成熟可靠性、兼容性、擴展升級的功能.而現有的嵌入式Web服務器系統仍存在一些問題,文獻[1]采用MSP430F149微控制器實現嵌入式Web服務器溫度檢測控制,基于16位單片機由于其運行速度、存儲容量、功耗和資源不足等問題已經越來越不能滿足復雜系統的需求. 文獻[2]和文獻[3]是基于ARM和S3C2440A實現嵌入式Web服務器的遠程控制設計,雖然在實用性、易用性和速度上有了很大程度的提高,適合一般的應用,但是具有開發周期長,擴展升級性和靈活性不強的缺點,當結構相對復雜時,RAM和ROM會不足,而且不能直接對硬件進行修改,處理能力和實時性不能滿足今后升級的要求[2,3].
采用片上可編程器件FPGA來實現網絡通信目前已有報道[4-6],本設計采用Altera公司生產的EP4CE115F系列FPGA芯片和Nios II軟核處理器[7,8]及SOPC技術構建嵌入式網絡硬件平臺以實現遠程通信控制的目的.
基于嵌入式Web的遠程控制系統主要由兩部分組成:嵌入式Web服務器、現場需控制的設備.服務器通過交換機或調制解調器與Intemet互聯網連接,用戶端只需在已聯網的計算機上通過網頁瀏覽器訪問該遠程服務器的IP地址,即可使用瀏覽器對遠端的嵌入式設備進行檢測和控制[9].
典型的嵌入式Web服務器有httpd、thttpd和Boa等,其中httpd功能最為簡單,不支持CGI.Boa是一個select I/O多路復用的http服務器,源代碼開放、性能高.它和傳統服務器的主要區別是:它是單進程的,在接到請求時并不fork出一個新的進程來響應,不能將自己拷貝很多份來處理多連接;它在內部處理所有正在進行的http連接請求;只對單獨的CGI程序、自動文件的產生、自動文件的解壓等請求fork出新進程;它最大的優點就是代碼簡單、速度快,適合于嵌入式應用.本系統選擇實現一個支持CGI的、能實現動態Web技術的Boa Web服務器.
本系統硬件平臺設計采用Altera公司的QuartusII軟件+SOPC Builder,結合Nios II IDE集成開發環境,能夠迅速有效的構建系統的硬件平臺和軟件平臺,提高系統設計的效率.本系統的硬件框圖如圖1所示.

圖1 系統硬件框圖
2.1 硬件設計
本系統采用Nios CPU組件負責對系統進行統一的管理控制.定時器組件用于產生時鐘來控制LED顯示數字的變化.LCD組件用于控制LCD液晶顯示屏.LED組件用于控制紅色和綠色的LED燈.由于工程需要上電自啟動所以需要EPCS組件和cfi_flash組件.cfi_flash組件需要連接在Avalon三態橋上才能正常工作,因此還需添加Avalon三態橋.另外考慮到軟件程序需要一個空間來運行,所以添加SDRAM組件.JTAG_UART組件負責PC與Nios系統的通訊.88E1111 PHY組件來為網卡提供驅動.由于本工程還可以通過電平開關來對實驗板的IP地址進行設置,因此還需要添加電平開關.系統整體結構如圖2所示.

圖2 WEB控制器SOPC系統結構圖
2.2 軟件設計
根據系統要求,軟件設計主要包括嵌入式μC/OS-II實時操作系統[10]的移植、NicheStack TCP/IP網絡協議棧的實現、應用級代碼編寫等部分.軟件結構框圖如圖3所示.

NiosIIProcessorSoftwareDeviceDriverHALAPIMicroC/OS-IINichestackTCP/IPSoftwareCompomentApplicationSpecificSystemIntializationWebserverApplication
圖3 系統軟件結構框圖
2.2.1 μC/OS-II在NIOS II中的移植
依據嵌入式Web系統在實時性和并發性等方面的要求,系統必須能夠移植多任務實時操作系統才能滿足系統在多任務環境下的調度,而μC/OS-II作為一個多任務的實時操作系統可以看作是多個任務進行調度的調度器,提供與多任務操作系統有關的信號量、郵箱等服務,μC/OS-II在Nios II上的移植集中在多任務切換的實現上,有處理器相關,只能用匯編語言來實現[11],不過由于Nios II IDE集成開發環境對μ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頭文件定義了程序中使用數據的類型、堆棧的增長方向、堆棧的寬度、任務切換宏和臨界訪問處理.基本的配置和定義全部集中在OS_CPU.H頭文件中.
(2)編寫4個預處理器相關的函數
在匯編文件OS_CPU_A32.S中需要移植的函數為OSStartHighRdy()、OSCtxSw()、OSIntCtxSw()、OSTickISR().
(3)OS_CPU_C.C
需要在OS_CPU_C.C文件中改寫與操作系統有關的6個C語言函數即:OSTaskStkInit()、OSTaskCreatHook()、OSTaskDelHook()、OSTaskSwHookStatHook()、 OSTaskTickHook().其中必須修改的函數是,其余5個都是用戶接口函數及鉤子函數,可以不加代碼.
2.2.2 NicheStack移植
在系統的軟件設計中,Altera已經在 Nios II IDE集成了NicheStack TCP/IP協議棧,在使用中可以根據需求通過在Nios II IDE下的圖形化界面配置相應的選項就可移植到Nios II上,從而實現NicheStack的移植.
2.2.3 軟件流程設計
工程運行時首先初始化NicheStack TCP/IP和網絡設備,接著獲得IP地址,隨后建立操作Socket接口,等待客戶端PC的請求,并判斷此請求是需要接受還是需要發送,根據不同的請求做不同的操作.若是接受請求,則接受由客戶端發送的IP包,解析IP包送至TCP層,之后解析TCP包到應用層,最后處理信息.如果是發送請求,則進行TCP打包,IP打包,最后傳送數據.整個系統運行流程如圖4所示.

圖4 網絡服務器流程圖
在整個硬件系統和軟件系統配置好的情況下,首先,在PC終端通過ping命令驗證系統可以進行正常的通信.其次,在系統正常通信的情況下運行網頁服務器應用程序,FPGA作為服務器,此時LCD顯示出本地的IP地址,在客戶端PC機的網頁瀏覽器中輸入LCD上顯示的IP地址并打開.然后在瀏覽器上出現的實時監控的網頁頁面 ,在網頁中通過所設計頁面的控件開關可訪問FPGA硬件上不同的外設.本次測試通過網頁控制按鈕對硬件LED亮滅狀態進行控制,同時可以通過對網頁數據的更改來控制硬件LCD輸出信息和設定七段數碼管顯示的數值.圖5(a)、(b)為網頁服務器運行頁面截圖.

圖5 系統運行結果
本文在NIOS II嵌入式軟核處理器的基礎上, 采用μC/OS- II 實時操作系統,移植NicheStackTCP/IP協議棧, 在TCP/IP 協議的基礎上實現了HTTP協議, 設計并實現了基于嵌入式Web的FPGA遠程控制系統.系統具有占用系統資源少, 結構簡單, 可擴充, 可升級,成本低和性能穩定等優點, 為基于嵌入式WEB的智能儀表、網絡測控和遠程監控系統提供了一個優秀的通信平臺.
[1] 賴于樹, 李迅波, 杜平安.基于嵌入式WEB服務器的多通道溫濕度監測儀[J].儀表技術與傳感器,2006( 05) : 16-18.
[2] 何鵬舉. 基于Web服務的無線網絡節點傳感器研究[J].傳感技術學報,2009,22(11): 1634-1638.
[3] 王莉,周偉.基于ARM的嵌入式Web服務器設計[J].計算機工程與應用,2012,48(14): 90-94.
[4] 楊林楠,李紅剛,張麗蓮,彭琳.基于FPGA的高速多路數據采集系統的設計[J]. 計算機工程,2007,33(07): 246-248.
[5] 彭堅,何渝. 基于FPGA的交通信息采集系統的設計與應用[J].計算機應用與軟件,2011,28(01):82-84.
[6] 糜峰,肖鐵軍.基于NiosⅡ的嵌入式Web服務器設計與實現[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以太網技術的研究與實現[D].大連:大連理工大學,2007.
[10] Labrose J J. 邵貝貝,等譯. 嵌入式實時操作系統μC/OS-II[M].北京:北京航空航天大學出版社, 2003.
[11] 李正軍.基于NiosII軟核CPU的TCP/IP協議實現[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-),男,河南夏邑人, 商丘師范學院助教,碩士,主要從事嵌入式系統應用,復雜系統仿真的研究.
TP393
A
1672-3600(2015)03-0056-04