翟倩倩,吳加權(quán),葉 飛,馬 琨
(昆明理工大學(xué) 理學(xué)院,云南 昆明 650500)
?
基于ZedBoard的Web服務(wù)器移植研究*
翟倩倩,吳加權(quán),葉飛,馬琨
(昆明理工大學(xué) 理學(xué)院,云南 昆明 650500)
研究了基于采用Xilinx公司官方開發(fā)板ZedBoard進(jìn)行Web服務(wù)器的移植。該開發(fā)板采用Xilinx 7系列芯片:XC7Z020,封裝為CLG484,等級(jí)速度為-1。該芯片屬于Artix系列型號(hào)。Web服務(wù)器是一個(gè)可以接收HTTP請(qǐng)求并響應(yīng)請(qǐng)求的網(wǎng)絡(luò)服務(wù)器,用戶可以通過瀏覽器來(lái)訪問并控制ZedBoard。為了實(shí)現(xiàn)這一目的,采用Boa服務(wù)器進(jìn)行移植,在Linux系統(tǒng)下運(yùn)行,支持HTTP1.0和CGI,適用于嵌入式系統(tǒng)的服務(wù)器。
ZedBoard開發(fā)板;Xilinx 7系列;ARM9;Linux系統(tǒng);Boa服務(wù)器;超級(jí)終端;Web服務(wù)器;HTML;CGI
在Xilinx公司的7系列芯片推出以前,主要是Virtex系列和Sparartan系列的產(chǎn)品占市場(chǎng)主導(dǎo)地位。由于Virtex系列(如Virtex4和Virtex5)的硬核為PowerPC,隨著市場(chǎng)上V4和V5的芯片大部分停產(chǎn),以及ARM的廣泛應(yīng)用,Xilinx推出7系列芯片。Xilinx 7系列包括Artix-7、Kintex-7和Virtex-7,其中Artix-7為低成本的一款系列[1]。本設(shè)計(jì)采用的ZedBoard開發(fā)板的FPGA芯片就是Artix-7系列的產(chǎn)品。
由于ZedBoard中有2個(gè)ARM9硬核,因此可以把Linux移植到ZedBoard開發(fā)板上。該開發(fā)板有官方自帶的Linux操作系統(tǒng),可以直接從SD卡中啟動(dòng)。ZedBoard連線圖如圖1所示。該開發(fā)板還具有多種方式的視頻輸入,如1080p HDMI、8-bit VGA、OLED、I2S的音頻編碼解碼器、FMC與Pmod接口、千兆以太網(wǎng)接口、4 GB的SD卡與512DDR3內(nèi)存,用戶可用于視頻處理、電動(dòng)機(jī)控制和以太網(wǎng)通信等方面的應(yīng)用。該開發(fā)板具有雙核ARM9的硬核[2],用戶可以單獨(dú)進(jìn)行FPGA的設(shè)計(jì),也可以和ARM進(jìn)行協(xié)調(diào)設(shè)計(jì),同樣適合Linux/Andrio的開發(fā)。本文采用官方自帶的Linux操作系統(tǒng),將Web服務(wù)器移植到該開發(fā)板上。
圖1 ZedBoard連線圖
移植Web服務(wù)器的主要目的是方便用戶在IE中訪問ZedBoard,并對(duì)其進(jìn)行控制。在當(dāng)今社會(huì)網(wǎng)絡(luò)發(fā)展如此迅速的今天,在嵌入式管理和交互中,基于Web方式的應(yīng)用已成為設(shè)計(jì)的一個(gè)主流方向,用戶可以對(duì)設(shè)備進(jìn)行遠(yuǎn)程交互與控制,大大減少了維護(hù)者的工作量[3]。
Boa服務(wù)器是一個(gè)輕量級(jí)的Web服務(wù)器,其占用的系統(tǒng)內(nèi)存小,運(yùn)行速度快,可實(shí)行源代碼開發(fā)。Boa服務(wù)器支持http1.0和CGI等,其設(shè)計(jì)主要在于速度與安全方面的考慮[4],在嵌入式Linux領(lǐng)域比較流行。
本文采用Xilinx公司的ZedBoard開發(fā)板自帶的Linux系統(tǒng)進(jìn)行Boa服務(wù)器的移植。由于要在Linux系統(tǒng)下對(duì)Boa進(jìn)行配置,首先需要安裝由Xilinx官方提供的交叉編譯工具鏈,該工具鏈在Xilinx wiki網(wǎng)站上進(jìn)行下載,下載完成后放在虛擬機(jī)中的Linux系統(tǒng)中并對(duì)其進(jìn)行安裝;安裝完成后打開超級(jí)終端輸入vi/etc/profile,把安裝后的路徑加進(jìn)去完成環(huán)境變量的設(shè)置(見圖2);最后在超級(jí)終端輸入source/etc/profile[5]。
圖2 環(huán)境變量設(shè)置
本文采用Red Hat Enterprize 5進(jìn)行移植操作。首先,在“http://www.boa.org/”下載Boa服務(wù)器后進(jìn)行解壓,在超級(jí)終端上輸入“tar-xzvf boa-0.94.13.tar.gz-C/home/boa/”,解壓完成后進(jìn)入src文件,在超級(jí)終端上輸入“./configure”,產(chǎn)生Makefile文件;然后,對(duì)Makefile進(jìn)行修改,找到CC=gcc,替換成上述安裝的交叉編輯工具CC=arm-xilinx-linux-gnueabi-gcc,交叉編譯工具CC=arm-xilinx-linux-gnueabi-g ++;最后,修改完成后在超級(jí)終端輸入make,從而成功完成。
在RedHat中打開boa文件,可以通過修改boa.conf來(lái)對(duì)Boa服務(wù)器進(jìn)行配置。打開boa.conf對(duì)其進(jìn)行修改[6],修改根目錄文件DocumentRoot /mnt/www;服務(wù)器名字修改為ServerName:www.zedboard.org;指定mim.type文件的位置:MimeTypes /etc/mime.types。
從ZedBoard中的SD卡中取出ramdisk.image文件掛載到虛擬機(jī)下。輸入“mount -o loop ramdisk.image./file_tmp”,以實(shí)現(xiàn)對(duì)ramdisk.image的掛載工作。完成掛載后進(jìn)入file_tmp文件并創(chuàng)建相關(guān)文件:mkdir -p etc/boa var/log/boa var/www/cgi-bin,并且完成下述復(fù)制工作,操作命令如下[7]。
cp ./boa-master/boa.conf etc/boa
cp ./boa-master/mime.types etc/
touch var/log/boa/error_log var /log/boa/access_log
cp ./boa-master/src/boa root/
cp ./boa-master/examle/cgi-test.cgi var/www/cgi-bin/
cp ./boa-master/example/index.html var/www/index.html
復(fù)制完成后對(duì)index.html進(jìn)行編輯(見圖3),編輯完成后保存并卸載file_tmp。完成上述操作后對(duì)ramdisk.image重新進(jìn)行壓縮,在超級(jí)終端上的操作命令如下:umount file_tmp; gzip ramdisk.image。完成上述全部操作后,重新把SD卡插入ZedBoard板上,打開電源和Windows下的超級(jí)終端,啟動(dòng)操作系統(tǒng)。由于開發(fā)板與本機(jī)不在同一段IP地址,需要對(duì)開發(fā)板的IP進(jìn)行配置,在Windows下的超級(jí)終端上輸入“ifconfig etho 202.38.214.211”,使開發(fā)板和電腦處于同一段IP地址,完成后在IE上輸入開發(fā)板的IP地址“202.38.214.211”(見圖4),就可以順利訪問Boa服務(wù)器了。
圖3 HTML文件編寫
圖4 訪問Boa服務(wù)器
本文通過ZedBoard開發(fā)板實(shí)現(xiàn)了Boa服務(wù)器的移植工作。通過Boa服務(wù)器的移植,實(shí)現(xiàn)了對(duì)ZedBoard開發(fā)板的遠(yuǎn)程訪問,為ZedBoard開發(fā)板在遠(yuǎn)程訪問及網(wǎng)絡(luò)應(yīng)用中提供了初步探索。
[1] 陸佳華,潘祖龍,彭競(jìng)宇.嵌入式系統(tǒng)軟硬件協(xié)調(diào)設(shè)計(jì)實(shí)戰(zhàn)指南[M].北京:機(jī)械工業(yè)出版社,2014.
[2] 何賓.Xilinx All Programmable Zynq-7000 SOC設(shè)計(jì)指南[M].北京:清華大學(xué)出版社,2013.
[3] 賀振歡,劉軍,王寶山.Web服務(wù)器開發(fā)技術(shù)[M].北京:人民郵電出版社,2007.
[4] 謝華成,李晶.物聯(lián)網(wǎng)系統(tǒng)中嵌入式BOA的移植與應(yīng)用[J]. 軟件,2011,32(5):106-110.
[5] 王世江,鳥哥.鳥哥的Linux私房菜[M].北京:人民郵電出版社,2010.
[6] 劉嵩,劉海洋,高志勇.基于FPGA的嵌入式WEB服務(wù)器設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2009,17(3):579-583.
[7] 江國(guó)強(qiáng).SOPC技術(shù)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2006.
*云南省教育廳科學(xué)研究基金資助項(xiàng)目(2015Y068)
國(guó)家自然科學(xué)基金面上項(xiàng)目(51278235)
責(zé)任編輯鄭練
Research of Embedded Web Server based on ZedBoard
ZHAI Qianqian, WU Jiaquan, YE Fei, MA Kun
(Faculty of Science, Kunming University of Science and Technology, Kunming 650500, China)
Use Xilinx development board (ZedBoard) to design. The chip of this board is Xilinx 7 series-XC7Z020, while the package is CLG484 and the speed is -1. It belongs to Artix family. Web server is an internet server that can accept HTTP request and respond to request. The user can use IE to access the ZedBoard and get control. In order to achieve this goal, this design uses Boa server which can accept for HTTP1.0 and CGI. Propose a scheme that how to embed Boa server to the ZedBoard.
ZedBoard, Xilinx 7 series, ARM9, Linux system, Boa server, hyperterminal, Web server, HTML, CGI
TP 274+.2
A
翟倩倩(1992-),女,碩士研究生,主要從事嵌入式系統(tǒng)等方面的研究。
2016-04-08