• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

      楊定定 施慧彬 錢巨 李依桐

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

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

      DOI: 10.3969/j.issn.1005-5517.2013.9.006

      *基金項(xiàng)目:國(guó)家自然科學(xué)基金項(xiàng)目(NSFC60903026)

      引言

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

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

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

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

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

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

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

      由于本設(shè)計(jì)中使用Spartan 6 Atlys系列,本文為該系列的網(wǎng)絡(luò)通信研究提供的方法:使用Soft Ethernet IP核,設(shè)置使用GMII模式,該IP核是soft TEMAC需要特定的license,可在官方網(wǎng)站上下載。Ethernet核可以計(jì)算發(fā)送TCP/UDP校驗(yàn)和以及驗(yàn)證發(fā)送TCP/UDP校驗(yàn)和,使用此邏輯可以顯著地提高最大以太網(wǎng)總線數(shù)據(jù)傳輸率,同時(shí)降低處理器對(duì)以太網(wǎng)任務(wù)的利用率。系統(tǒng)的MicroBlaze微處理器通過(guò)AXILITE總線接口訪問(wèn)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

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

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

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

      Xilkernel系統(tǒng)使用多線程通信的方法,通過(guò)調(diào)用相應(yīng)的線程來(lái)實(shí)現(xiàn)對(duì)應(yīng)的功能,如下述建立初始線程,訪問(wèn)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庫(kù)文件中定義的mfs_init_ fs(),mfs_exists_fle()等庫(kù)函數(shù)即可確定文件系統(tǒng)是否成功建立,同時(shí)文件系統(tǒng)也可供后續(xù)FTP設(shè)計(jì)中的文件上傳和下載作存儲(chǔ)器使用。

      FTP文件傳輸設(shè)計(jì)

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

      以下是對(duì)lwip130庫(kù)文件的設(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編程來(lái)實(shí)現(xiàn)以太網(wǎng)通信,設(shè)置MCB_DDR2作為文件存儲(chǔ)系統(tǒng)的存儲(chǔ)器進(jìn)行文件的存儲(chǔ)和調(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://寫(xiě)文件

      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庫(kù)中的庫(kù)函數(shù)編程來(lái)實(shí)現(xiàn)文件傳輸。

      系統(tǒng)的實(shí)現(xiàn)與驗(yà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)頁(yè)對(duì)開(kāi)發(fā)板的遠(yuǎn)程動(dòng)態(tài)顯示,同時(shí)將開(kāi)發(fā)板上的串口與主機(jī)的串口使用串口線進(jìn)行連接,可以進(jìn)行串口通信,也可以將相應(yīng)的操作結(jié)果顯示到主機(jī)屏幕上,圖3為命令操作界面,圖4為超級(jí)終端顯示指示信息和操作反饋信息,通過(guò)本機(jī)上的瀏覽器訪問(wèn)192.168.1.10,如圖5為訪問(wèn)顯示結(jié)果。

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

      結(jié)束語(yǔ)

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

      參考文獻(xiàn):

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

      [2] 王長(zhǎng)清,陳棟.基于FPGA的千兆以太網(wǎng)通信板的設(shè)計(jì)與實(shí)現(xiàn)[J].河南師范大學(xué)學(xué)報(bào):自然科學(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ù)器實(shí)現(xiàn)[J].電氣自動(dòng)化:嵌入式系統(tǒng),2011,33,(3)

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

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

      [7] 張亞魁.基于LWIP的嵌入式WEB服務(wù)器的研究與實(shí)現(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

      猜你喜歡
      實(shí)時(shí)控制
      媒介對(duì)現(xiàn)代中學(xué)生思想意識(shí)的影響
      基于LabVIEW微電網(wǎng)實(shí)驗(yàn)平臺(tái)監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
      探討ERP系統(tǒng)環(huán)境下企業(yè)會(huì)計(jì)的實(shí)時(shí)控制
      利用有線電視網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)智能小區(qū)方法的探討
      基于全集成自動(dòng)化的能耗監(jiān)控管理系統(tǒng)設(shè)計(jì)
      空間機(jī)器人的計(jì)算力矩實(shí)時(shí)控制方法
      牡丹江市| 宝应县| 探索| 九江县| 黑山县| 广昌县| 项城市| 汝阳县| 辽阳市| 桦甸市| 西平县| 镇雄县| 乐亭县| 桓仁| 葵青区| 汉阴县| 观塘区| 宁河县| 洛宁县| 曲靖市| 泰兴市| 汾西县| 宝鸡市| 斗六市| 敦化市| 赣州市| 仪陇县| 许昌市| 永福县| 昭平县| 恩平市| 怀化市| 根河市| 鱼台县| 台前县| 固原市| 高陵县| 福海县| 随州市| 大理市| 江都市|