基于SOPC 的嵌入式Web 服務(wù)器設計與實(shí)現
摘要:設計并實(shí)現了基于SOPC技術(shù)的嵌入式Web服務(wù)器,簡(jiǎn)單介紹了SOPC技術(shù)的特點(diǎn)及構建方法,隨后對該嵌入式Web服務(wù)器的實(shí)現在硬件和軟件兩方面都作了詳細論述,其中運用Nios II軟核處理器作為主控制器,實(shí)時(shí)多任務(wù)操作系統uC/OS-II為應用軟件運行平臺,簡(jiǎn)化的TCP/ IP 協(xié)議LwIP為應用層通信協(xié)議。具有設計靈活、可重構、集成度高、實(shí)現風(fēng)險低、開(kāi)發(fā)周期短的優(yōu)點(diǎn)。
本文引用地址:http://dyxdggzs.com/article/148592.htm1、引言
近來(lái),隨著(zhù)嵌入式Internet技術(shù)的飛速發(fā)展,當今社會(huì )逐漸步入網(wǎng)絡(luò )時(shí)代。嵌入式Web服務(wù)器技術(shù)在遠程監控和生產(chǎn)過(guò)程控制系統中得到了廣泛的應用,該技術(shù)允許任意地點(diǎn)的用戶(hù)通過(guò)Web瀏覽器接入網(wǎng)絡(luò ),訪(fǎng)問(wèn)Web服務(wù)器發(fā)布的各類(lèi)信息,通過(guò)Web可以實(shí)現最為親切的信息互動(dòng)。
基于SOPC(可編程片上系統)技術(shù)的嵌入式Web服務(wù)器采用嵌入式軟核處理器技術(shù),使用嵌入式實(shí)時(shí)操作系統,內嵌網(wǎng)絡(luò )接口和網(wǎng)絡(luò )通信協(xié)議,可直接接入以太網(wǎng)。由于嵌入式Web服務(wù)器具有成本低、體積小、高可靠、微功耗、環(huán)境適應能力強等諸多優(yōu)勢,在通信和工業(yè)控制等領(lǐng)域正得到日益廣泛的應用。
2、Web服務(wù)器概述
本設計介紹的嵌入式Web服務(wù)器采用基于FPGA的Nios II 軟核處理器,具有靈活性高、而成本低的特點(diǎn),充分體現了可編程片上系統的優(yōu)勢??蛻?hù)端通過(guò)IE瀏覽器對該服務(wù)器進(jìn)行訪(fǎng)問(wèn),實(shí)時(shí)地獲得服務(wù)器發(fā)布的各類(lèi)信息,以便執行相應的操作。這樣就要求服務(wù)器提供WWW服務(wù),即實(shí)現HTTP協(xié)議。它應被所有瀏覽器支持,以保證任何地方的用戶(hù)都可以通過(guò)瀏覽器下達命令。在網(wǎng)絡(luò )接口上,本設計選擇以太網(wǎng)為其運行的網(wǎng)絡(luò )環(huán)境。如圖1所示為HTTP設計模型[1]。首先,客戶(hù)端的瀏覽器與Web服務(wù)器使用一個(gè)或多個(gè)TCP連接,通過(guò)80號端口進(jìn)行通信,瀏覽器通過(guò)HTTP協(xié)議瀏覽存儲在FLASH中的網(wǎng)頁(yè),通過(guò)該網(wǎng)頁(yè)傳遞瀏覽、控制命令到網(wǎng)絡(luò )服務(wù)器,然后服務(wù)器對命令進(jìn)行解析,調用相應的功能,充分實(shí)現客戶(hù)端與瀏覽器之間的信息互動(dòng)。根據Web服務(wù)器的原理,本設計實(shí)現了以下協(xié)議:DHCP、HTTP、TCP、IP、ICMP、ARP。
3、硬件結構設計
3.1、FPGA芯片
服務(wù)器的整體硬件方案采用1 片規模較大的FPGA 完成大部分功能,該款FPGA采用Altera公司的低價(jià)格、高性能的Cyclone系列,根據系統邏輯規模的預判,選EP1C20F400C7不勝數FPGA。此型FPGA含有以下可編程邏輯資源:20 060個(gè)邏輯單元;64個(gè)M4K RAM塊,多達294 912位RAM;內嵌2個(gè)PLL(鎖相環(huán)),可作為全局時(shí)鐘;最大用戶(hù)I/O引腳301個(gè);且該芯片還支持用Altera公司的SOPC Builder工具嵌入Nios II的內核。

圖1 HTTP設計模型
3.2、Nios II 軟核處理器
Nios II[2]是在A(yíng)ltera公司的FPGA上實(shí)現的一款嵌入式處理器。Nios II系列嵌入式處理器是一款用戶(hù)可配置的通用的32/16位RISC(精簡(jiǎn)指令集)結構的CPU ,它定位于廣泛的嵌入式應用。使用業(yè)界領(lǐng)先的設計軟件Altera 公司的Quartus II軟件以及SOPC Builder 工具。
3.2、Nios II 軟核處理器的實(shí)現與應用
系統采用32 位嵌入式Nios II軟核,它可以提供靈活豐富的接口,針對該系統的需求配置合適的外圍設備。在A(yíng)ltera 公司提供的SOPC軟件中對該軟核進(jìn)行配置時(shí),我們選用了NIOSCPU、內部定時(shí)器、JTAG異步串行接口、SDRAM 控制器、Flash 存儲器接口、以太網(wǎng)接口、LCD接口、片內存儲器和EPCS4串行配置器件控制器接口。其框圖如圖2所示。

圖2 SOPC系統硬件實(shí)現框圖
在SOPC芯片中,所有部件都由Altera 公司或第三方以IP 核的方式提供,可方便復用,用戶(hù)也可在FPGA 中自定義用戶(hù)模塊,并生成自定義IP(知識產(chǎn)權)核。系統部件及其功能見(jiàn)表1。CPU 和所有部件通過(guò)Avalon 總線(xiàn)連接在一起,構成基于A(yíng)valon 總線(xiàn)的SOPC 系統架構。
Avalon總線(xiàn)是Altera 公司開(kāi)發(fā)的片上總線(xiàn),是一種簡(jiǎn)單的總線(xiàn)體系結構,用來(lái)將處理器和周邊設備集成到SOPC 中,并規定了主設備和從設備的端口連接方式和時(shí)序關(guān)系。主設備和從設備的交互采用“從端仲裁”技術(shù)。在多個(gè)主設備試圖訪(fǎng)問(wèn)同一個(gè)從設備時(shí),用于決定哪個(gè)主設備獲得訪(fǎng)問(wèn)權。在本文的系統設計中,CPU 是主設備,其他部件均為從設備。
表1 SoPC 中的系統部件

4、SOPC的構建方法
SoPC 系統的設計基于EDA 工具的可編程邏輯器件設計流程,是一個(gè)軟/ 硬件協(xié)同設計的過(guò)程[3]。采用Altera 公司SOPC Builder 設計工具,可以極大提高系統得設計效率,開(kāi)創(chuàng )了嵌入式系統設計的新理念。
硬件開(kāi)發(fā)流程:用 SOPC Builder 系統綜合軟件來(lái)選取合適的CPU、存儲器以及外圍器件,并定制它們的功能。使用Quartus II 軟件來(lái)選取具體的Altera 可編程器件系列,并對SOPC Builder 生成的HDL 設計文件進(jìn)行布局布線(xiàn);在使用Quartus II 軟件完成管腳的分配。最后生成配置文件,下載到開(kāi)發(fā)板上。軟件開(kāi)發(fā)流程:在用SOPC Builder 進(jìn)行硬件設計的同時(shí),就可以開(kāi)始編寫(xiě)獨立于器件的C/C++軟件,用戶(hù)可以使用現成的軟件庫和開(kāi)放的操作系統內核來(lái)加快開(kāi)發(fā)進(jìn)程。在NiosII IDE 中建立新的軟件工程時(shí),IDE 會(huì )根據SOPC Builder 對系統的硬件配置自動(dòng)生成一個(gè)定制HAL(硬件抽象層)系統庫。這個(gè)庫能為程序和底層硬件的通信提供接口驅動(dòng)程序,之后進(jìn)行編譯、調試、下載軟件到開(kāi)發(fā)板上。
5、軟件實(shí)現
軟件設計主要包括嵌入式操作系統的移植、網(wǎng)絡(luò )協(xié)議棧的實(shí)現、應用級代碼編寫(xiě)等部分。軟件結構框圖如3所示。

圖3 SOPC系統軟件結構框圖
5.1、uC/OS-II 操作系統的應用
根據Web服務(wù)器的特點(diǎn),設計必須滿(mǎn)足實(shí)時(shí)性和并發(fā)性的要求,以便更好地支持TCP/IP運行時(shí)的多任務(wù)環(huán)境的調度,所以應用軟件應該基于嵌入式實(shí)時(shí)操作系統。目前比較流行的嵌入式操作系統主要有VxWorks、Windows CE、uCLinux、uC/OS-II 等??紤]到uC/OS-II的規模較小、實(shí)時(shí)性和可靠性較高,Nios II IDE 開(kāi)發(fā)環(huán)境對uC/OS-II的良好支持,故操作系統選擇uC/OS-II[4]。它是一種可移植、可固化、可裁減、占先式的多任務(wù)實(shí)時(shí)操作系統內核。它通過(guò)為每個(gè)任務(wù)分配單獨的任務(wù)堆棧來(lái)保存任務(wù)工作環(huán)境,提供任務(wù)管理與調度,任務(wù)間的同步、互斥與通信,時(shí)間和中斷管理、內存的動(dòng)態(tài)分配等多種系統服務(wù)。在程序設計時(shí),將網(wǎng)絡(luò )協(xié)議棧在其中一個(gè)任務(wù)中運行,而用戶(hù)程序在另外的任務(wù)中運行。通過(guò)調用協(xié)議棧提供的API函數進(jìn)行通信。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論