當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于MicroBlaze嵌入式Web服務(wù)器設(shè)計

1 引言

由于Internet技術(shù)的滲透,嵌入式系統(tǒng)正變得越來越智能化并具有越來越多的網(wǎng)絡(luò)友好特性。Web技術(shù)的飛速發(fā)展,給嵌入式系統(tǒng)進入Internet提供絕佳的途徑。在現(xiàn)場儀表和企業(yè)設(shè)備層應(yīng)用嵌入式技術(shù)是企業(yè)監(jiān)控系統(tǒng)的發(fā)展趨勢。與現(xiàn)場總線技術(shù)相比,嵌入式技術(shù)不僅為開發(fā)者提供了大量的工具和函數(shù)庫,而且減少了傳統(tǒng)的客戶端,減少了二次開發(fā)的工作量;而把嵌入式技術(shù)和Internet技術(shù)結(jié)合起來,使得整個工控網(wǎng)絡(luò)易于和Internet實現(xiàn)無縫連接;現(xiàn)在多數(shù)企業(yè)控制網(wǎng)絡(luò)是通過專用線路進行數(shù)據(jù)通信,其通信介質(zhì)、通信協(xié)議都是專用的,而Internet技術(shù)的滲透使嵌入式設(shè)備的遠程控制和管理方式都有了改變,不再需要專用的通信線路,傳輸?shù)男畔⒁膊辉倬窒抻跀?shù)據(jù)信息。Web技術(shù)的發(fā)展、通信協(xié)議的公開、HTML語言的標準統(tǒng)一性,使得只要在嵌入式設(shè)備中有一個微型服務(wù)器,通過用任意一種Web瀏覽器,用戶就可以監(jiān)控現(xiàn)場數(shù)據(jù)和設(shè)備。

2 嵌入式軟核處理器MicroBlaze

MicroBlaze是基于Xilinx公司FPGA的微處理器IP核,和其他外設(shè)IP核一起,可以完成可編程系統(tǒng)芯片(SoPc)的設(shè)計。MicroBlaze 32位軟處理芯核運行速度為150 MHz,性能達100 D-MIPS。采用RISC架構(gòu)和哈佛結(jié)構(gòu)的獨立32位指令和數(shù)據(jù)總線,可以全速度執(zhí)行存儲在片上存儲器和外部存儲器中的程序并訪問其中的數(shù)據(jù)。支持CoreConnect總線的標準外設(shè)集合為MicroBlaze設(shè)計人員提供了兼容性和重利用能力。MicroBlaze內(nèi)部有32個32位通用寄存器和2個32位特殊寄存器PC指針和MSR狀態(tài)標志寄存器。為了提高性能,MicroBlaze還具有指令和數(shù)據(jù)緩存。所有的指令字長都是32位,有3個操作數(shù)和2種尋址模式。指令按功能劃分有邏輯運算、算術(shù)運算、分支、存儲器讀/寫和特殊指令等。指令執(zhí)行的流水線是并行流水線,他分為3級流水:取指、譯碼和執(zhí)行。

MicroBlaze軟處理器可為您提供不同方法的靈活性。首先可以從處理器內(nèi)核開始,構(gòu)建能夠準確滿足設(shè)計需要的外設(shè)集合。由于只需要實現(xiàn)自己所需要的部分,因此避免了芯片資源浪費。因為不需要編寫代碼關(guān)閉/禁止不需要的處理器功能,因此降低了軟件設(shè)計復(fù)雜性。創(chuàng)建專用處理器配置的工作也成為一項簡單的任務(wù),而為了滿足技術(shù)規(guī)格的變化專用處理器配置隨時可能需要改變。即使在實際應(yīng)用5~6年后,連FPGA硬件本身可能也已經(jīng)接近其生命期的終點時,只需要簡單的利用同樣的C代碼將軟處理器內(nèi)核移植到新的FPGA硬件中就可以。硬件平臺或許需要一定的PCB修改,但遺留下的代碼仍然是可用的,不需要修改。

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

在系統(tǒng)結(jié)構(gòu)設(shè)計上,考慮現(xiàn)有的各種嵌入式網(wǎng)絡(luò)實現(xiàn)方案,絕大多數(shù)嵌入式Internet都使用微控制器和相應(yīng)的軟件來實現(xiàn)。本文介紹的嵌入式Web服務(wù)器的設(shè)計則是采用基于FPGA的MicroBlaze軟核處理器,其靈活性大大提高,而成本則可以大大降低,充分體現(xiàn)了可編程片上系統(tǒng)(SoPc)的優(yōu)勢。系統(tǒng)主要支持CoreConnect總線的標準外設(shè)集合,DDR SDRAM主要用來存放軟件代碼以及一些需要保存的參數(shù),BRAM用來在系統(tǒng)運行時的代碼和數(shù)據(jù)存儲;網(wǎng)絡(luò)接口芯片采用SMSC公司的IAN91C111芯片作為網(wǎng)絡(luò)接口。該器件是一個以太網(wǎng)控制器,實現(xiàn)了網(wǎng)絡(luò)7層協(xié)議棧中的物理層和MAC層的功能。他具有10 M/100 M自適應(yīng)、雙工/半工自適應(yīng)等功能,非常適合嵌入式網(wǎng)絡(luò)開發(fā)。LCD用來指示系統(tǒng)運行狀態(tài)。整個系統(tǒng)的結(jié)構(gòu)如圖1所示。

4 硬件設(shè)計

本文在進行硬件設(shè)計的時候采用基于IP核的設(shè)計方法,并將大部分功能在單個FPGA芯片上予以實現(xiàn)。設(shè)計電路原理圖之前,必須根據(jù)系統(tǒng)需求選擇合適的IP核。所謂IP核,是指那些以硬件形式(硅片版圖)或者軟件形式(用Verilog、VHDL描述的RTL或者門級模型)存在的、具有特定功能的硬件電路。IP核通常分為硬核、固核與軟核3種。根據(jù)系統(tǒng)的硬件開發(fā)環(huán)境以及性能需求,本文選擇Xilinx公司開發(fā)的一系列軟核產(chǎn)品,他們是用VHDL語言所描述的硬件模塊,允許用戶根據(jù)需要對各種參數(shù)進行配置,如數(shù)據(jù)通路帶寬、優(yōu)先進行速度優(yōu)化還是資源優(yōu)化等,因而應(yīng)用非常靈活。系統(tǒng)所用到的軟IP核產(chǎn)品有MicroBlaze,BRAM、定時器、通用異步收發(fā)器UART,以及用于外部功能擴展的OPB總線模塊。

硬件設(shè)計使用的是ISE可編程邏輯器件集成開發(fā)環(huán)境。提供從設(shè)計輸入到器件編程的全部功能。采用Xilinx公司的EDK開發(fā)工具可大大提高系統(tǒng)設(shè)計效率,他能夠在圖形化界面內(nèi)定制一個從硬件到軟件的完整系統(tǒng)。在EDK中包含了外設(shè)與MicroBlaze的接口,所以只需定義CPU與外設(shè)的接口即可。設(shè)計采用的CPU為MicroBlaze僅占用900個邏輯單元。在EDK下添加對應(yīng)接口模塊。然后生成對應(yīng)的VHDL文件。同時,EDK還根據(jù)定制的結(jié)果,自動的生成針對特定硬件環(huán)境的C語言的頭文件以及函數(shù)庫,這在軟件設(shè)計中會極大地減少軟件開發(fā)人員的工作量。

本文采用的是Xilinx公司Virtex4系列FPGA芯片,最多能提供200 000個邏輯單元和多達64 kB的BRAM存儲空間。由于FPGA芯片具有可反復(fù)更改的特性,因此有助于硬件系統(tǒng)的改進和不斷升級。

由于在FPGA芯片上構(gòu)造以太網(wǎng)物理層、MAC層電路較困難,本文將這些功能放到FPGA芯片的外面,使用LAN91C111芯片來實現(xiàn)以太網(wǎng)硬件接口功能。SMSC公司的LAN91C111是為了方便嵌入式應(yīng)用系統(tǒng)連接到快速以太網(wǎng)而專門設(shè)計的,他實現(xiàn)CSMA/CD協(xié)議的物理層和媒體訪問控制層(MAC)兩個部分,并可以很方便地與許多嵌入式處理器進行數(shù)據(jù)交換。

5 軟件設(shè)計

軟件設(shè)計包括:操作系統(tǒng)移植、網(wǎng)絡(luò)協(xié)議棧設(shè)計、文件系統(tǒng)生成、應(yīng)用級代碼編寫等部分。

5.1 操作系統(tǒng)

為了簡化設(shè)計,本文中的Web服務(wù)器采用單一線程,無需RTOS(實時操作系統(tǒng))的支持。故采用EDK提供的僅支持單進程的standalone板支持包即可。

5.2 協(xié)議棧

系統(tǒng)采用的是EDK中包含針對MicroBlaze的網(wǎng)絡(luò)協(xié)議棧,隱藏了低層硬件細節(jié),以類似于Unix套接字的方式實現(xiàn)一個精簡的網(wǎng)絡(luò)協(xié)議棧Xilnet。他支持以下一些網(wǎng)絡(luò)協(xié)議:IP,ARP,ICMP,UDP,TCP。調(diào)用如下函數(shù)初始化棧以及MAC地址和IP地址。

5.3 文件系統(tǒng)

為了支持HTTP協(xié)議,一個文件系統(tǒng)是必不可少的。本設(shè)計使用EDK提供的xilmfs文件系統(tǒng)對網(wǎng)頁的靜態(tài)頁面和圖片進行組織和存儲。

調(diào)用mfs_file_open()和mfs_file_wrire()函數(shù)打開和創(chuàng)建文件系統(tǒng)??紤]到有限的系統(tǒng)資源,文件存放在DDR SDRAM中。

5.4 HTTP協(xié)議及其實現(xiàn)

嵌入式Web服務(wù)器技術(shù)的核心是HTTP(超文本傳送協(xié)議)引擎。HTTP是WWW上的協(xié)議。HTTP協(xié)議使Web服務(wù)器和瀏覽器可以通過Web交換數(shù)據(jù)。他是一種請求/響應(yīng)協(xié)議,即服務(wù)器等待并響應(yīng)客戶方請求。當(dāng)用戶要瀏覽服務(wù)器上的一個網(wǎng)頁時,一個HTTP請求就會從用戶的瀏覽器發(fā)到HTTP服務(wù)器。服務(wù)器響應(yīng)這個請求,把指定的網(wǎng)頁傳送回來,用戶才看到了網(wǎng)頁。HTTP協(xié)議不維護與客戶方的連接,他使用可靠的TCP連接,通常采用TCP的80端口。客戶/服務(wù)器傳輸過程可分為4個基本步驟:瀏覽器與服務(wù)器建立連接;瀏覽器向服務(wù)器請求文檔;服務(wù)器響應(yīng)瀏覽器請求;斷開連接。

服務(wù)器程序開始運行時,主進程就創(chuàng)建一個套接字,并與主機地址綁定到一起,隨后置為被動*狀態(tài),等待客戶端連接請求的到來,分別有xilsock_socket()創(chuàng)建一個套接字,xilsock_bind()綁定,xilsock_listen()*,xilsock_accept()接收來完成。一旦接收一個連接,xilsock_acept()會返回一個新的套接字描述符,主程序則開辟一個新的子程序來處理這個新的連接。這樣系統(tǒng)可以同時接收多個客戶端的請求。

如圖2所示,首先創(chuàng)建套接字,將套接字與本地地址和端口綁定,并設(shè)置套接字處于*狀態(tài)。Web服務(wù)器在接收一個連接請求后,讀取用戶的請求,根據(jù)用戶的請求進行相應(yīng)的處理。

當(dāng)請求位靜態(tài)文本時,文檔直接提交輸出,當(dāng)請求位動態(tài)文本時,請求模塊自動調(diào)用腳本引擎,將腳本替換位現(xiàn)場數(shù)據(jù),再提交輸出,當(dāng)請求為帶參數(shù)的執(zhí)行命令時,請求解析器調(diào)用命令執(zhí)行模塊分析命令并控制監(jiān)控前端。

這里并沒有采用通常的CGI(Common Gateway Interface)技術(shù)對請求信息進行處理,而是將活動頁面由加載進Web服務(wù)器的模塊處理,因此處理速度比CGI程序更快、更高效?;顒禹撁孢€可以處理表單、HTTP會話和方便的訪問數(shù)據(jù)庫。因此,活動頁面對動態(tài)Web頁面提供完整的服務(wù)器端支持。

6 結(jié) 語

本文介紹的基于MicroBlaze的嵌入式Web服務(wù)器可以實現(xiàn)預(yù)期功能,用戶可以通過IE瀏覽器瀏覽存儲到FLASH芯片中的網(wǎng)頁。

CPU本身是以軟核的方式實現(xiàn),其功能可根據(jù)需要進行定制,非常靈活。EDK不但在硬件設(shè)計上提供了支持,在軟件上也為設(shè)計者提供了較好的支持,提供了現(xiàn)成的網(wǎng)絡(luò)協(xié)議棧。加上EDK提供的集成開發(fā)環(huán)境使得軟件開發(fā)更加便利。采用這種方式的控制系統(tǒng)具有控制分散、開放性好、使用簡單、穩(wěn)定性好等優(yōu)點,而且可以通過瀏覽器進行遠程多點監(jiān)控和遠程支持,是未來控制系統(tǒng)發(fā)展的一個趨勢。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉