《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > Virtex4在VxWorks下的UDP千兆網通信
Virtex4在VxWorks下的UDP千兆網通信
摘要: 由于FPGA中嵌入了PowerPC處理器及用于千兆網通信的Ethernet MAC,這樣,為利用FPGA實現高速網絡通信奠定了基礎。本文在VxWorks操作系統下實現了UDP的千兆網通信,實測速度達到294.68 Mb/s,吞吐量達到近30%。
Abstract:
Key words :

  當前,SoC向著面積更小、速度更高的方向發展,百兆網通信已不能滿足人們的生產和工作需要,用千兆網通信成為工作中迫切的要求。用FPGA實現千兆網的通信,有二種模式可以選擇:其一,編寫一個IP軟核;其二,用FPGA內嵌的MAC內核。方法一的靈活性大,但要實現并不容易,因此,賽靈公司將其歸為收費IP;方法二中,MAC的三態可配置特性為實現千兆網通信提供了可能。本設計就是基于此內嵌的Ethernet MAC模塊,在Vx-Works操作系統下成功實現了千兆網的通信。

  1 Virtex4 FX系列FPGA中內嵌的千兆通信硬核架構

  Virtex4 FX系列FPGA中內嵌了多個用于千兆通信的硬核。以XC4VFX20為例,如圖1所示,它通過一個主機接口連接了2個EMAC核。2個EMAC可以一起使用,也可以只使用其中的一個。

XC4VFX20

  Virtex4中嵌入的Ethernet MAC硬核主要特點:

  ◆支持半雙工和(或)全雙工操作;

  ◆設計符合IEEE 802.3-2002標準;

  ◆支持3種操作模式:1 Gb/s、100 Mb/s、10 Mb/s;

  ◆支持MII、GMII、RGMII、SGMII通信方式;

  ◆為不限長度的VLAN幀和JUMBO幀提供技術支持;

  ◆提供了可選的網絡管理特性,包括基于每個分組的統計數據矢量和流程控制。

  通過一個與處理器無關的接口,可以對TEMAC核進行配置和監控,其為用戶選擇適合其應用的理想處理器提供了附加的靈活性。

  在1 Gb模式下,TEMAC支持千兆位級媒體獨立接口(GMII)和降低千兆位級媒體獨立接口(RGMII)。GMII是一個運行頻率為125 MHz的字節寬并行SDR接口,而RGMII是一個運行頻率為25 MHz的半位元組并行DDR接口,可以提供的總帶寬為1 Gb/s。而且,在100 Mb/s和10 Mb/s模式下,TEMAC均支持MII接口。MII接口是4位寬,在100 Mb/s模式下其工作頻率為25 MHz。在10 Mb/s模式下,MII接口的工作頻率為2.5 MHz。

  由于Virtex4中嵌入了Ethernet MAC硬核,同時,FX系列還嵌入了PowerPC,這樣,就可以用PowerPC控制Ethernet MAC實現千兆網的通信。

  2 VxWorks下BSP的移植

  VxWorks 操作系統是美國WindRiver公司于1983年設計開發的一種嵌入式實時操作系統(RTOS)。它采用微內核的結構,具有支持多種處理器、豐富的網絡協議、良好的兼容性和裁剪性等特點,同時具有程序動態鏈接和下載的功能。自從20世紀80年代問世以來,以其不斷推出的升級版本、高性能內核以及友好的用戶開發環境,在嵌入式實時操作系統領域逐漸占據一席之地,尤其以成功應用于火星探測車和愛國者導彈等高科技產品而聞名。VxWorks的板級支持包BSP (Board Support Package)是介于底層硬件和上層軟件之間的底層軟件開發包,主要功能是屏蔽硬件,提供操作系統的驅動。具體功能包括:

  ◆單板硬件初始化,主要是CPU的初始化,為整個軟件系統提供底層硬件支持;

  ◆為操作系統提供設備驅動和系統中斷服務程序;

  ◆定制操作系統的功能,為軟件系統提供一個實時多任務的運行環境;

  ◆初始化操作系統,為操作系統的正常運行做準備。

  在嵌入式系統設計中,BSP的開發是一項非常復雜而繁瑣的工作,Xilinx公司提供的EDK套件,可以在很大程度上減輕開發者的工作負擔。EDK中的 BSP生成器(BSPgen)可以根據不同的微處理器、外設和RTOS組合自動產生用戶可裁剪的BSP。它包含了系統所必需的支持軟件,包括Boot代碼、設備驅動和RTOS的初始化。利用BSPgen可以把Xilinx器件驅動打包到BSP的子目錄下,并且把Xilinx器件驅動與VxWorks及其 Tornado集成開發環境無縫集成,充分縮短開發周期。

  但是,BSPgen生成的BSP只是一個固定的BSP模板,并不能正確地反映RAM/ROM的存儲器映射,不支持用戶通過BSPgen流程自定義的核/驅動等。因此還需要對BSPgen產生的BSP進行修改。

  對BSP開發人員來講,借助EDK的BSPgen,還必須要做以下幾項工作:

  ①修改config.h和Makefile中的RAM、ROM地址及串口速率;

  ②修改sysSerial.c,對串口進行正確的設置;

  ③增加不能與VxWorks無縫集成的器件的驅動文件,關鍵性中斷、GPIO接口等;

  ④配置sysNet.c中的以太網參數,設置MAC地址;

  ⑤根據EDK中的配置,禁止或使能Cache;

  ⑥修改sysL ib.c,以顯示正確的信息;

 

  ⑦設置主機IP地址。

  經過以上修改之后,將新的BSP放在Tornado的安裝目錄Tornado_root\target\config下。根據這個BSP,在Tornado集成環境下生成一個新的VxWorks工程,然后就可以進行一般的嵌入式操作系統開發了。

  EDK中RAM和ROM的地址映射如表1所列。

RAM和ROM的地址映射

  若為表1所列的工程,則在config.h和Makfile文件中要進行如下修改:

程序

  sysNet.c中通過以下語句定義了網絡的MAC地址,必須根據真實的MAC地址進行修改,如本文的MAC地址:00:0A:35:01:88:25

公式

  sysSerial.c對串口進行初始化,因為要正確地指定串口ID,sysLib.c中可以顯示VxWorks鏡像的信息,因此也要進行相應的修改,如將

程序

  通過對EDK下牛成的BSP的修改,并在Tornado集成環境下生成正確的VxWorks鏡像后,可以將其下載到FPGA中。觀察串口的輸出是否正確,可以進行相應的調試工作,以確定BSP的移植是正確的。

  3 UDP服務器/客戶端程序

  對VxWorks BSP進行正確的配置和修改后,在useAppInit.c中書寫自己的UDP服務器端程序。本設計用基于socket的UDP通信。

  網絡通信一般可通過socket實現。socket編程均采用客戶機/服務器模式,VxWorks提供了標準的BSDsocket調用,支持UDP協議。UDP協議即數據傳輸協議,它允許創建和維護與遠程計算機的連接,使其彼此可以進行數據傳輸。通信過程如圖2所示。

通信過程

  服務器首先調用socket()建立一個套接字socket,然后調用bind()將套接字與一個本地網絡地址(IP地址和端口號)捆綁在一起,以保證客戶端正確識別。接著服務器再調用listen()使套接字處于被動的準備接收狀態,同時規定它的請求隊列長度,隨后調用accept()來接收客戶連接。服務器進程隨即進入阻塞狀態。客戶與服務器的關系是不對稱的。服務器先啟動。然后在某時刻客戶主動發出請求,服務器被動應答。

  客戶端程序首先調用socket(),這個函數產生用于與各分系統連接的套接口,并為每個套接口返回一個ID號。然后初始化一個套接口結構體,為其賦上該 ID號以及服務端的IP地址和端口號,并將其作為函數connect()的參數.調用connect()函數主動去連接服務端。

  當服務端與客戶端建立連接之后,就可以發送(write)和接收(read)數據。部分代碼如下:

部分代碼

  客戶端應用程序在Windows下用VC實現,代碼略。

  4 實驗結果

  結合工程實際開發的順序,分2步對VxWorks下千兆網通信進行測試:

  第1步,在usrAppInit.c中打印hello the world,若出現圖3所示窗口,則證明VxWorks內核已正確加載,以及BSP移植的正確性。程序跑到用戶編寫的usrAppInit.c。

  第2步,對編寫的UDP服務器/客戶端進行測試,結果如表2所列。

  5 結 論

  由于FPGA中嵌入了PowerPC處理器及用于千兆網通信的Ethernet MAC,這樣,為利用FPGA實現高速網絡通信奠定了基礎。本文在VxWorks操作系統下實現了UDP的千兆網通信,實測速度達到294.68 Mb/s,吞吐量達到近30%。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久国产夜色精品鲁鲁99| 亚洲精品少妇| 亚洲精品在线观看免费| 国产综合网站| 国产一区二区三区高清播放| 国产精品美女久久久久久2018 | 欧美一区二区免费| 亚洲一区二区高清视频| 一本久久青青| 欧美一区免费视频| 欧美亚洲一级片| 99re视频这里只有精品| 亚洲免费观看| 一本大道久久a久久精二百| 亚洲人成啪啪网站| 在线观看一区二区视频| 亚洲高清视频一区二区| 亚洲国产精品专区久久| 亚洲日本va午夜在线影院| 亚洲精品国产日韩| 国产亚洲成av人片在线观看桃| 在线播放不卡| 国产性天天综合网| 久久久精品2019中文字幕神马| 亚洲欧美日韩一区二区| 在线视频亚洲欧美| 亚洲一区二区四区| 亚洲中午字幕| 午夜精品一区二区在线观看| 亚洲欧美国产制服动漫| 香蕉久久国产| 久久高清福利视频| 久久久不卡网国产精品一区| 久久先锋资源| 欧美电影打屁股sp| 欧美日韩在线观看视频| 国产精品欧美风情| 国产亚洲一区二区精品| 精品动漫3d一区二区三区免费版 | 欧美中文在线观看| 久久在线精品| 欧美精品日韩| 国产精品青草久久久久福利99| 国产人成一区二区三区影院| 激情av一区| 亚洲激情视频网站| 亚洲性视频网站| 欧美诱惑福利视频| 日韩一区二区免费高清| 亚洲欧美另类在线| 久久人人97超碰精品888| 欧美激情区在线播放| 国产精品伦理| 激情六月婷婷久久| 一本色道久久88综合亚洲精品ⅰ| 亚洲欧美日韩在线播放| 亚洲人成绝费网站色www| 中文国产成人精品| 久久久久久亚洲精品不卡4k岛国| 欧美成人一区二区三区在线观看 | 麻豆精品传媒视频| 久久综合一区二区| 欧美性猛交xxxx免费看久久久 | 激情久久久久久久| 99热在线精品观看| 久久精品99国产精品日本 | 快播亚洲色图| 国产精品久久久久国产精品日日| 韩日在线一区| 一本色道久久精品| 亚洲电影免费观看高清完整版在线观看 | 午夜精品久久久久久久99水蜜桃| 西西裸体人体做爰大胆久久久| 亚洲激情一区二区| 亚洲一区二区精品视频| 久久婷婷久久| 免费亚洲电影在线观看| 国产精品你懂得| 亚洲丁香婷深爱综合| 亚洲一品av免费观看| 99伊人成综合| 久久久久久久性| 国产精品一区二区三区乱码| 玖玖玖国产精品| 欧美色欧美亚洲另类七区| 国产乱理伦片在线观看夜一区| 亚洲第一在线综合网站| 亚洲免费综合| 99热这里只有成人精品国产| 久久精品亚洲乱码伦伦中文 | 亚洲一区二区三区乱码aⅴ| 亚洲第一区中文99精品| 亚洲欧美日韩一区| 欧美日本一区二区三区| 国内精品亚洲| 亚洲女ⅴideoshd黑人| 亚洲精品在线观看免费| 欧美在线视频导航| 亚洲国产精品成人综合| 亚洲一区二区精品在线观看| 久久成人免费电影| 亚洲午夜精品久久久久久浪潮| 欧美在线影院| 欧美日韩伦理在线| 亚洲第一在线综合网站| 亚洲欧美日韩精品久久| 亚洲一区二区免费看| 欧美不卡在线视频| 国产午夜精品全部视频播放| 亚洲精品免费在线播放| 亚洲国产网站| 久久九九免费视频| 欧美日本高清一区| 在线免费观看成人网| 午夜精品久久99蜜桃的功能介绍| 亚洲九九精品| 久久天堂av综合合色| 国产日韩一区二区| 日韩一级大片| 亚洲精品少妇网址| 老司机aⅴ在线精品导航| 国产亚洲欧美日韩美女| 午夜精品福利在线观看| 亚洲欧美在线磁力| 欧美伦理a级免费电影| 亚洲第一页自拍| 亚洲欧美在线看| 欧美在线精品免播放器视频| 国产精品久久久久久久久久妞妞| 艳妇臀荡乳欲伦亚洲一区| 一本色道久久综合狠狠躁篇怎么玩| 亚洲主播在线播放| 欧美大片免费看| 国产精品国产三级国产普通话99 | 久久国产精品高清| 欧美制服丝袜第一页| 欧美日韩三区四区| 日韩一区二区精品| 亚洲欧洲三级电影| 免费观看在线综合| 亚洲国产精品久久久久| 亚洲人成在线观看网站高清| 久久久成人网| 黄色成人av在线| 欧美在线观看一区二区| 久久久久久欧美| 一区精品久久| 久久成人18免费网站| 巨乳诱惑日韩免费av| 国产日产高清欧美一区二区三区| 欧美一区二区精美| 久久天天狠狠| 尤物九九久久国产精品的分类| 亚洲国产精品专区久久| 欧美96在线丨欧| 亚洲第一在线| 一区二区三区久久| 国产精品久久久久久久久免费樱桃 | 91久久久久久久久久久久久| 久久免费视频这里只有精品| 国产日韩欧美精品综合| 亚洲电影免费| 欧美精品二区三区四区免费看视频| 日韩一级免费| 欧美一区二区三区免费视| 国产欧美日韩综合一区在线播放| 亚洲午夜在线视频| 欧美专区日韩视频| 国产欧美成人| 亚洲风情亚aⅴ在线发布| 欧美极品在线观看| 尹人成人综合网| 99热在这里有精品免费| 国产精品久久久久久久久久尿| 亚洲视频免费看| 久久精品夜色噜噜亚洲aⅴ| 亚洲国产精品久久久久婷婷老年 | 亚洲高清一区二区三区| 中文av字幕一区| 国产日韩精品在线观看| 欧美一区综合| 久久婷婷综合激情| 欧美电影电视剧在线观看| 一本到高清视频免费精品| 久久精品盗摄| 99国产麻豆精品| 午夜精品久久久久久99热软件 | 亚洲国产一成人久久精品| 亚洲中字黄色| 好吊成人免视频| 夜夜嗨av一区二区三区四区 | 国产麻豆91精品| 亚洲人午夜精品免费| 欧美天堂亚洲电影院在线观看| 狠狠色综合网站久久久久久久| 亚洲高清123| 国产精品狠色婷| 久久成人免费| 欧美午夜影院| 亚洲二区在线观看|