<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于嵌入式Linux和FPGA的千兆網(wǎng)數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)

          基于嵌入式Linux和FPGA的千兆網(wǎng)數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)

          作者: 時(shí)間:2013-03-29 來(lái)源:網(wǎng)絡(luò) 收藏

          3.3 內(nèi)存端口的設(shè)置

          MPMC (Multi-Port Memory Controller)是DDR2內(nèi)存控制器的IP核,它最多可以接八個(gè)數(shù)據(jù)端口,這樣的好處是多個(gè)設(shè)備都可以通過各自的端口共享內(nèi)存,本論文使用了四個(gè)端口:port0和port1都通過plb總線連接在PowerPC上,分別用于傳輸指令和數(shù)據(jù),port2端口采用的是NPI(Native Port Interface)接口,用于接收A/D模塊傳輸過來(lái)的用戶數(shù)據(jù),port3采用SDMA (Soft Direct Memory Access)接口,通過locallink總線和IP核相連。在對(duì)MPMC配置時(shí)要根據(jù)內(nèi)存的型號(hào)、大小等實(shí)際參數(shù)來(lái)設(shè)置。

          3.4 用戶自定義數(shù)據(jù)接口IP核

          開發(fā)工具雖然提供了一些常用的IP核,但是對(duì)于一些特定要求的邏輯,需要用戶自己開發(fā)。由于從A/D采集板傳送過來(lái)的數(shù)據(jù)速度很大,所以本論文在MPMC 的port2上采用NPI接口把A/D模塊傳過來(lái)的數(shù)據(jù)直接送入DDR2中。需要用硬件描述語(yǔ)言編寫基于NPI接口的邏輯,并且還要編寫基于PLB總線的IP核來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)傳輸?shù)目刂?,例如?shù)據(jù)傳輸開始與停止、握手方式、數(shù)據(jù)包的大小等等。

          3.5 千兆三態(tài)以太網(wǎng)硬核的配置

          三態(tài)以太網(wǎng)TEMAC (Tri-Mode Ethernet Media Access Controller)是嵌在內(nèi)部的硬核。本論文通過LocalLink總線使其連在內(nèi)存控制器MPMC上,采用SDMA方式,使得數(shù)據(jù)直接從內(nèi)存到網(wǎng)絡(luò)接口而不必經(jīng)過PowerPC的搬運(yùn), 這樣在很大程度上減輕了CPU的負(fù)擔(dān),提高了數(shù)據(jù)傳輸速度。

          4 板級(jí)支持包的生成

          4.1板級(jí)支持包工具的選擇和設(shè)置

          先在http://git.xilinx.com/網(wǎng)站上下載device-tree.git,它是板級(jí)支持包(BSP)生成工具。解壓后放在EDK安裝目錄下的EDKswlibbsp,之后點(diǎn)擊Software-->

          Software Platform Settings就可以發(fā)現(xiàn)并選擇它了,如圖5所示。

          圖5 板級(jí)支持包工具的選擇

          在device-tree下要把 bootargs的設(shè)置成console=ttyUL0,而不是默認(rèn)的console =ttyS0,否則超級(jí)終端將沒有輸出。這是因?yàn)槲覀冊(cè)谡{(diào)試時(shí)需要RS232串口作為超級(jí)終端,用的是XPS UART Lite核,但板級(jí)支持包默認(rèn)的卻是UART16500核。

          4.2 dts(device tree)文件的生成

          xilinx.dts文件是板級(jí)支持包工具device tree生成的,它記錄了硬件信息。正是這個(gè)文件的存在操作系統(tǒng)才能知道本系統(tǒng)有哪些硬件及其屬性。在EDK菜單中選擇Software-->generate Libraries and BSP就會(huì)生成xilinx.dts文件。

          5的移植

          5.1安裝用于PowerPC的交叉編譯鏈并設(shè)置環(huán)境變量

          先下載并安裝德國(guó)DENX公司提供的開發(fā)環(huán)境編譯套件ELDK4.1,用source 命令設(shè)置路徑和交叉編譯環(huán)境變量,再用export ARCH=powerpc命令使其支持PowerPC架構(gòu)。

          5.2 準(zhǔn)備內(nèi)核及根文件系統(tǒng)

          這不是一般的內(nèi)核,而是專門針對(duì)Xilinx 的linux-2.6-xlnx.git??梢缘絞it.xilinx.com網(wǎng)站下載最新版本的Linux內(nèi)核。在http://xilinx.wikidot.com/網(wǎng)上下載根文件系統(tǒng)鏡像壓縮文件ramdisk.image.gz,把ramdisk.image.gz拷貝到內(nèi)核文件夾的arch/powerpc/boot文件夾中。

          5.3準(zhǔn)備 device tree文件

          需要把把EDK工程中板級(jí)支持包工具生成的xilinx.dts復(fù)制到Linux內(nèi)核文件夾arch/powerpc/boot/dts中,這樣linux才能根據(jù)這個(gè)文件給硬件設(shè)備添加相應(yīng)的驅(qū)動(dòng)。

          5.4內(nèi)核的裁剪與定制

          用命令make 40x/ virtex4_defconfig載入ML405開發(fā)板的內(nèi)核配置,再用make menuconfig打開內(nèi)核定制圖形界面進(jìn)行裁剪和定制,使?jié)M足自己的特定需求,需要選上TCP/IP協(xié)議。如果需要調(diào)試就要把串口驅(qū)動(dòng) xilinx uartlite serial port support選上。這樣才能使用RS2323作為超級(jí)終端。保存配置后用make zImage命令就可以生成內(nèi)核鏡像文件了。

          6 測(cè)試結(jié)果與分析

          在EDK中選把硬件文件燒錄到中, 把Linux鏡像文件下載到內(nèi)存中運(yùn)行,這樣一個(gè)系統(tǒng)就能運(yùn)行起來(lái)了。編寫一個(gè)基于socket的網(wǎng)絡(luò)通信程序,把FPGA作為客戶端,把PC機(jī)作為服務(wù)器端,從FPGA不斷的向PC發(fā)送基于TCP協(xié)議的數(shù)據(jù)包,來(lái)測(cè)試每次發(fā)送的數(shù)據(jù)包大小和傳輸速度之間的關(guān)系。當(dāng)發(fā)送的數(shù)據(jù)包大小為30000Byte時(shí),用tcp/ip協(xié)議傳輸?shù)乃俾适?0Mb/s,用udp協(xié)議傳輸?shù)乃俾适?35Mb/s。

          在一定范圍內(nèi),每次發(fā)送的數(shù)據(jù)包越大,則網(wǎng)絡(luò)傳輸速率就越大。傳輸?shù)乃俣燃磁cpowerpc、內(nèi)存、內(nèi)部總線的頻率及位寬有關(guān)系,也與操作系統(tǒng)及應(yīng)用程序有關(guān)系。

          7結(jié)束語(yǔ)

          本文詳細(xì)的介紹了基于Linux和FPGA的數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)方法,測(cè)試結(jié)果表明傳輸速度能滿足設(shè)計(jì)指標(biāo)。由于FPGA和linux都具有很大的靈活性,會(huì)給將來(lái)系統(tǒng)的升級(jí)和變更帶來(lái)很大方便。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: Linux FPGA 嵌入式 千兆網(wǎng)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();