Spartan 6上嵌入式網(wǎng)絡(luò)服務(wù)系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)
摘要:隨著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)作用。
本文引用地址:http://www.ex-cimer.com/article/164385.htm引言
隨著嵌入式系統(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ì)
本系統(tǒng)的總體硬件設(shè)計(jì)如圖1,包括AXI總線,MicroBlaze CPU核,Ethernet為設(shè)計(jì)千兆以太網(wǎng),Ethernet_dma為實(shí)現(xiàn)Ethernet和MCB_DDR2的快速數(shù)據(jù)傳輸,MCB_DDR2 128MByte存儲(chǔ)陣列,axi_intc,axi_timer時(shí)鐘控制模塊,LED_8Bits 8個(gè)LED燈,RS232_Uart串口控制器,Debug_Module以及Dip_Switches_8Bits 8個(gè)撥碼開(kāi)關(guān),采用100MHz時(shí)鐘。
系統(tǒng)間的數(shù)據(jù)交互是通過(guò)千兆以太網(wǎng)實(shí)現(xiàn)的[2],下面對(duì)關(guān)鍵IP核:AXI_DMA、Ethernet IP核[3]進(jìn)行簡(jiǎn)要的介紹。
ETHERNET_dma即AXI_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接口支持單拍讀和寫的數(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è)置:
PARAMETER C_INTERCONNECT_S0_AXI_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ì)以及HTTP(超文本傳輸協(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)。
tcp/ip相關(guān)文章:tcp/ip是什么
評(píng)論