国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Spartan 6上嵌入式網(wǎng)絡(luò)服務(wù)系統(tǒng)設(shè)計實現(xiàn)

2013-04-29 00:44:03楊定定施慧彬錢巨李依桐
電子產(chǎn)品世界 2013年9期
關(guān)鍵詞:實時控制

楊定定 施慧彬 錢巨 李依桐

摘要:隨著FPGA在嵌入式領(lǐng)域的快速發(fā)展和網(wǎng)絡(luò)技術(shù)的日益成熟,基于FPGA的網(wǎng)絡(luò)開發(fā)成為嵌入式系統(tǒng)研究的重要分支。本文系統(tǒng)地研究了FPGA網(wǎng)絡(luò)通信,并成功運用Xilinx開發(fā)平臺EDK構(gòu)建一個基于總線AXI4的嵌入式網(wǎng)絡(luò)服務(wù)系統(tǒng)。系統(tǒng)包括硬件系統(tǒng)設(shè)計和軟件程序設(shè)計,即采用MicroBlaze微處理器軟核,Xilkernel嵌入式操作系統(tǒng)和lwip以太網(wǎng)協(xié)議,實現(xiàn)了通過Web瀏覽器對開發(fā)板的實時控制和網(wǎng)絡(luò)數(shù)據(jù)回傳的實時顯示。這一設(shè)計在Spartan 6 Atlys開發(fā)平臺上得以實現(xiàn)和驗證,為需要使用該系列開發(fā)板進(jìn)行的網(wǎng)絡(luò)通信設(shè)計提供了很好的指導(dǎo)作用。本文網(wǎng)絡(luò)版地址:http://www.eepw.com.cn/article/164385.htm

關(guān)鍵詞:FPGA;總線AXI4;lwip以太網(wǎng);實時控制

DOI: 10.3969/j.issn.1005-5517.2013.9.006

*基金項目:國家自然科學(xué)基金項目(NSFC60903026)

引言

隨著嵌入式系統(tǒng)的發(fā)展和Internet的普及,越來越多的嵌入式系統(tǒng)引進(jìn)Web Server和遠(yuǎn)程等概念。以太網(wǎng)以其速度快、成本低,成為嵌入式Web Server和遠(yuǎn)程文件傳輸接入網(wǎng)絡(luò)的主要方式。因此,實現(xiàn)基于以太網(wǎng)的嵌入式Web Server和遠(yuǎn)程文件傳輸具有十分重要的實際意義。

本設(shè)計采用Spartan 6 XCSLX45芯片Atlys FPGA開發(fā)板,其具有容量大、資源多、性價比適中等特點,此外Atlys配備了各種高端接口,包括千兆以太網(wǎng)、HDMI視頻輸入輸出、128MByte DDR2存儲陣列、AC97 Codec及USB接口,其采用的是Marvell公司的千兆以太網(wǎng)(GbE)PHY收發(fā)器88E1111,支持GMII接口,GMII接口支持三種速度模式10/100/1000Mbit,這為本文的以太網(wǎng)通信提供了網(wǎng)絡(luò)通信條件。同時,AXI總線是ARM高級微控制器總線結(jié)構(gòu)的一部分,擁有高產(chǎn)率、高靈活、廣泛IP可用性等優(yōu)勢[1]。本文采用AXI4總線結(jié)合Atlys上的GMII接口,設(shè)計并實現(xiàn)了lwip以太網(wǎng)通信,為今后在嵌入式通信領(lǐng)域的進(jìn)一步研究奠定了基礎(chǔ)。

系統(tǒng)的設(shè)計

本文將會從系統(tǒng)硬軟件兩方面的設(shè)計和實現(xiàn)進(jìn)行闡述,本設(shè)計是基于Spartan 6 Atlys硬件開發(fā)平臺,利用Xilinx ISE 13.2軟件開發(fā)平臺進(jìn)行硬軟件的設(shè)計,由于EDK集成的XPS(Xilinx Platform Studio)硬件設(shè)計平臺和SDK(Xilinx Software Development Kit)軟件設(shè)計平臺,本文的lwip以太網(wǎng)通信嵌入式系統(tǒng)的設(shè)計將會分成硬軟系統(tǒng)設(shè)計兩部分進(jìn)行詳細(xì)地介紹。

系統(tǒng)間的數(shù)據(jù)交互是通過千兆以太網(wǎng)實現(xiàn)的[2],下面對關(guān)鍵IP核:AXI_DMA、Ethernet IP核[3]進(jìn)行簡要的介紹。

E T H E R N E T _ d m a即A X I _ DMA(AXI直接內(nèi)存訪問),是Xilinx嵌入式開發(fā)套件(EDK)中自帶的IP軟核,它為內(nèi)存和AXI流型目標(biāo)外圍設(shè)備提供高帶寬的直接內(nèi)存訪問,它通過從CPU上卸載數(shù)據(jù)移動任務(wù)來體現(xiàn)分散/收集功能,如AXI以太網(wǎng)之間提供高速數(shù)據(jù)移動。

Ethernet核通過32位的AXI4-Lite接口子集為內(nèi)部寄存器提供了一個控制接口,AXI4-Lite接口支持單拍讀和寫的數(shù)據(jù)傳輸(無突發(fā)傳輸)。發(fā)送和接收數(shù)據(jù)接口都是通過AXI4-Stream接口。AXI Ethernet通過AXI4-Lite總線接口連接到MicroBlaze處理器內(nèi)核上,允許訪問寄存器,同時32位AXI4-Stream總線可供以太網(wǎng)數(shù)據(jù)在AXI Ethernet上發(fā)送和接收。在硬件沒有負(fù)載條件下,該AXI4-Stream總線提供TCP/UDP的部分校驗和。

由于本設(shè)計中使用Spartan 6 Atlys系列,本文為該系列的網(wǎng)絡(luò)通信研究提供的方法:使用Soft Ethernet IP核,設(shè)置使用GMII模式,該IP核是soft TEMAC需要特定的license,可在官方網(wǎng)站上下載。Ethernet核可以計算發(fā)送TCP/UDP校驗和以及驗證發(fā)送TCP/UDP校驗和,使用此邏輯可以顯著地提高最大以太網(wǎng)總線數(shù)據(jù)傳輸率,同時降低處理器對以太網(wǎng)任務(wù)的利用率。系統(tǒng)的MicroBlaze微處理器通過AXILITE總線接口訪問AXI DMA,分散/收集引擎從MCB_DDR2中查找緩沖區(qū)描述符,然后協(xié)調(diào)AXI Ethernet和MCB_DDR2之間的主要數(shù)據(jù)傳輸。例如MCB_DDR2中的參數(shù)設(shè)置:

P A R A M E T E R C _ I N T E R C O N N E C T _ S 0 _ A X I _ MASTERS = microblaze_0.M_AXI_ DC & microblaze_0.M_AXI_IC & ETHERNET_dma.M_AXI_SG & ETHERNET_dma.M_AXI_MM2S & ETHERNET_dma.M_AXI_S2MM

以及Ethernet中的接口設(shè)置:

BUS_INTERFACE AXI_STR_ TXD = ETHERNET_dma_txd

BUS_INTERFACE AXI_STR_TXC= ETHERNET_dma_txc

BUS_INTERFACE AXI_STR_RXS= ETHERNET_dma_rxs

BUS_INTERFACE AXI_STR_ RXD = ETHERNET_dma_rxd

通過上述設(shè)置和IP核的加入,一個基于AXI4總線lwip以太網(wǎng)嵌入式硬件系統(tǒng)搭建完畢,在Xilinx XPS硬件系統(tǒng)設(shè)計工具中修改相應(yīng)的ucf約束文件,即可通過Hardware->Generate Bitstream產(chǎn)生比特流文件供后續(xù)軟件系統(tǒng)設(shè)計的調(diào)用。

軟件系統(tǒng)的設(shè)計

本文的軟件系統(tǒng)主要分為三部分:文件系統(tǒng)的建立、FTP遠(yuǎn)程傳輸文件設(shè)計以及HTP(超文本傳輸協(xié)議)服務(wù)[4]利用網(wǎng)頁對Atlys開發(fā)板進(jìn)行遠(yuǎn)程顯示及實時控制的設(shè)計,從而使傳統(tǒng)控制設(shè)備轉(zhuǎn)變?yōu)榫邆淞艘訲CP/ IP為底層通信協(xié)議,Web技術(shù)為核心[5]的Internet控制設(shè)備。軟件系統(tǒng)采用Xilinx ISE集成的Xilkernel系統(tǒng)內(nèi)核,通過設(shè)置選擇相應(yīng)的庫文件,如本文所需要的lwip130(用于輕量級以太網(wǎng)的通信,TCP/IP協(xié)議的一種,并且了解了輕量級TCP/IP協(xié)議棧和一般操作系統(tǒng)的TCP/IP協(xié)議棧的區(qū)別[6])和xilmfs(用于文件存儲系統(tǒng))的庫文件,設(shè)計程序時調(diào)用所配置系統(tǒng)的庫文件、系統(tǒng)頭文件以及自定義的一些程序文件,從而設(shè)計出完整的lwip以太網(wǎng)通信系統(tǒng)。

以下先介紹Xilkernel系統(tǒng)內(nèi)核主要參數(shù)的設(shè)置以及多線程的調(diào)用方式:

PARAMETER OS_NAME = xilkernel

PAR AMETER PTHRE AD_ STACK_SIZE = 8192

PA R A M E T E R C O N F I G _ PTHREAD_MUTEX = true

PARAMETER CONFIG_TIME = true

PARAMETER CONFIG_SEMA = true

PARMETER MAX_SEM = 50

PARMETER MAX_SEM_WAITQ= 20

PARAMETER ENHANCED_ FEATURES = true

PARAMETER CONFIG_YIELD = true

P A R A M E T E R S TA T I C _ PTHREAD_TABLE = ((run_kerl,1))//系統(tǒng)訪問入口函數(shù)run_kerl()

Xilkernel系統(tǒng)使用多線程通信的方法,通過調(diào)用相應(yīng)的線程來實現(xiàn)對應(yīng)的功能,如下述建立初始線程,訪問network_thread()函數(shù):

PARAMETER PROC_INSTANCE= microblaze_0

PARAMETER NUMBYTES = 400000

PARAMETER BASE_ADDRESS = 0xC4000000

PARAMETER INIT_TYPE = MFSINIT_IMAGE

PARAMETER NEED_UTILS = true

END

最后,在xmd下執(zhí)行

d o w - d a t a F : / E D K _ l a b / Ethernet13_2AXI/SDK/memfs/image. mfs 0xc4000000命令,下載文件系統(tǒng)鏡像到指定地址上,在軟件程序中調(diào)用xilmfs庫文件中定義的mfs_init_ fs(),mfs_exists_fle()等庫函數(shù)即可確定文件系統(tǒng)是否成功建立,同時文件系統(tǒng)也可供后續(xù)FTP設(shè)計中的文件上傳和下載作存儲器使用。

FTP文件傳輸設(shè)計

本文主要是通過以太網(wǎng)上傳和下載文件到MCB_DDR2上的文件系統(tǒng)中,通過調(diào)用文件系統(tǒng)中的mfs_file_ open(),mfs_file_read(),mfs_file_ write()以及mfs_fle_close()等庫函數(shù)進(jìn)行文件系統(tǒng)的訪問。

以下是對lwip130庫文件的設(shè)置:BEGIN LIBRRY

PARAMETER LIBRARY_NAME = lwip130

PARAMETER LIBRARY_VER = 3.01.a

PARAMETER PROC_INSTANCE= microblaze_0

PARAMETER API_MODE = SOCKET_API

END

由以上的設(shè)置可以看出本文是基于Xilkernel內(nèi)核系統(tǒng)的Socket API編程來實現(xiàn)以太網(wǎng)通信,設(shè)置MCB_DDR2作為文件存儲系統(tǒng)的存儲器進(jìn)行文件的存儲和調(diào)用。

case TFTP_RRQ://讀文件

tftp_extract_filename(fname, args->request);printf("TFTP RRQ (read request): %s\r\n", fname);

tftp_process_read(sd, &args->from, fname);break;

case TFTP_WRQ://寫文件

tftp_extract_filename(fname, args->request);printf("TFTP WRQ (write request): %s\r\n", fname);

tfp_process_write(sd, &args->from, fname);break;

上述TFTP上傳和下載程序就是采用Socket API編程,調(diào)用lwip130庫中的庫函數(shù)編程來實現(xiàn)文件傳輸。

系統(tǒng)的實現(xiàn)與驗證

將主機(jī)的I P地址設(shè)置為1 9 2 . 1 6 8 . 1 . 1,子網(wǎng)掩碼為255.255.255.0,網(wǎng)關(guān)為192.168.1.1,將Atlys FPGA上的以太網(wǎng)口與主機(jī)電腦的以太網(wǎng)口使用網(wǎng)線連接,以便進(jìn)行tftp文件上傳下載操作以及網(wǎng)頁對開發(fā)板的遠(yuǎn)程動態(tài)顯示,同時將開發(fā)板上的串口與主機(jī)的串口使用串口線進(jìn)行連接,可以進(jìn)行串口通信,也可以將相應(yīng)的操作結(jié)果顯示到主機(jī)屏幕上,圖3為命令操作界面,圖4為超級終端顯示指示信息和操作反饋信息,通過本機(jī)上的瀏覽器訪問192.168.1.10,如圖5為訪問顯示結(jié)果。

系統(tǒng)的驗證分成兩部分:運用網(wǎng)口通信的驗證和串口通信的驗證。

結(jié)束語

本文詳細(xì)介紹了利用Atlys開發(fā)平臺使用AXI總線設(shè)計lwip以太網(wǎng)通信的嵌入式系統(tǒng),以及在Xilkernel系統(tǒng)上設(shè)置lwip130協(xié)議棧以及xilmfs文件系統(tǒng)協(xié)議棧開發(fā)嵌入式FTP以及web服務(wù)器的過程,開發(fā)的FTP具有遠(yuǎn)程傳輸?shù)墓δ埽琖eb服務(wù)器具有遠(yuǎn)程動態(tài)控制FPGA開發(fā)板LED燈亮滅以及動態(tài)顯示撥碼開關(guān)的狀態(tài)的功能,正是由于網(wǎng)絡(luò)在嵌入式領(lǐng)域的引入,因此實現(xiàn)基于以太網(wǎng)的嵌入式Web Server和遠(yuǎn)程文件傳輸具有十分重要的實際意義,本設(shè)計為今后更深入的嵌入式系統(tǒng)遠(yuǎn)程監(jiān)控、遠(yuǎn)程傳輸以及控制的研究做準(zhǔn)備,也為即將進(jìn)行的網(wǎng)絡(luò)遠(yuǎn)程重構(gòu)的實現(xiàn)提供網(wǎng)絡(luò)通信條件,是其中的關(guān)鍵技術(shù)之一。

參考文獻(xiàn):

[1] 楊定定,施慧彬.基于AXI總線的MicroBlaze雙核SoPC系統(tǒng)設(shè)計[J].電子產(chǎn)品世界,2012,19,(1)

[2] 王長清,陳棟.基于FPGA的千兆以太網(wǎng)通信板的設(shè)計與實現(xiàn)[J].河南師范大學(xué)學(xué)報:自然科學(xué)版,2011,39,(1)

[3] Xilinx[Z/OL].Xilinx, http://www.xilinx.com/support/ documentation/ip_documentation/axi_dma_ds781.pdf

[4] 楊俊,呂建平,徐峰柳.基于uC/OS-II和Lwip的嵌入式Web服務(wù)器實現(xiàn)[J].電氣自動化:嵌入式系統(tǒng),2011,33,(3)

[5] 李磊,楊柏林,胡維華.嵌入式Web服務(wù)器軟件的設(shè)計和實現(xiàn)[J].計算機(jī)工程與設(shè)計,2003,24,(10)

[6] 李慶江.基于Lwip協(xié)議棧的嵌入式Web服務(wù)器的設(shè)計及實現(xiàn)[J].山東輕工業(yè)學(xué)院學(xué)報,2008,22,(4)

[7] 張亞魁.基于LWIP的嵌入式WEB服務(wù)器的研究與實現(xiàn)[D].合肥工業(yè)大學(xué)碩士論文,2009:32-39

[8] Xilinx[Z/OL].Xilinx, http://www.xilinx.com/support/ documentation/ip_documentation/ds759_axi_ethernet.pdf

猜你喜歡
實時控制
媒介對現(xiàn)代中學(xué)生思想意識的影響
基于LabVIEW微電網(wǎng)實驗平臺監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)
探討ERP系統(tǒng)環(huán)境下企業(yè)會計的實時控制
利用有線電視網(wǎng)絡(luò)技術(shù)實現(xiàn)智能小區(qū)方法的探討
基于全集成自動化的能耗監(jiān)控管理系統(tǒng)設(shè)計
空間機(jī)器人的計算力矩實時控制方法
灵璧县| 贡山| 横峰县| 界首市| 淮安市| 三江| 乌苏市| 柘荣县| 水城县| 海晏县| 文山县| 景宁| 清水河县| 天等县| 绵阳市| 湘乡市| 谷城县| 广元市| 新龙县| 盐亭县| 华蓥市| 济源市| 营口市| 长海县| 双桥区| 邯郸县| 荆州市| 苗栗市| 保康县| 克拉玛依市| 甘肃省| 武义县| 吴旗县| 五台县| 扶沟县| 托里县| 梨树县| 武平县| 呼玛县| 嘉峪关市| 禄丰县|