<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于千兆以太網(wǎng)的高速數據傳輸系統設計

基于千兆以太網(wǎng)的高速數據傳輸系統設計

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

2.3 系統實(shí)現
由物理層、鏈路層、網(wǎng)絡(luò )層、運輸層和應用層組成。在FPGA內部實(shí)現MAC層以及MAC層以上的部分TCP/IP協(xié)議,其中包括ARP協(xié)議,IP協(xié)議,UDP協(xié)議以及部分ICMP協(xié)議。物理層使用DP83865芯片。FPGA內部系統框圖如圖3所示。

本文引用地址:http://dyxdggzs.com/article/156459.htm

c.JPG


MAC控制器上層的協(xié)議在FPGA內部用硬件描述語(yǔ)言實(shí)現,這些協(xié)議將與MAC核共同組成網(wǎng)絡(luò )控制系統,各部分協(xié)議之間密切配合,共同完成網(wǎng)絡(luò )收發(fā)的功能。協(xié)議系統的時(shí)鐘速率設定為125 MHz,可以最大程度地發(fā)揮MAC核的作用,使吞吐率達到最大。
系統中關(guān)鍵的技術(shù)問(wèn)題在于協(xié)議的效率問(wèn)題。在調試初期,先以百兆速度運行,由于系統時(shí)鐘為25 MHz,相對較低,沒(méi)有出現程序因效率低下而導致系統不穩定的情況。當在原有基礎上改為時(shí),系統出現不穩定地情況,所發(fā)送的數據幀不能穩定地發(fā)送至上位機,有丟失數據幀的情況。
于是對協(xié)議部分進(jìn)行優(yōu)化,以提高其運行效率。在編寫(xiě)程序時(shí),良好的代碼風(fēng)格尤為重要。時(shí)序電路中最重要的是狀態(tài)機,所以狀態(tài)機的性能在一定程度上決定了整個(gè)程序的性能。協(xié)議中狀態(tài)轉移比較復雜,對狀態(tài)進(jìn)行合并、減少狀態(tài)數量之后,程序效率明顯提高。此外,由于需要處理大批量的數據,而且數據將流經(jīng)每一層協(xié)議,因而各層協(xié)議之間使用完全流水結構,銜接緊密,實(shí)時(shí)性更高,而且不必為每一
層開(kāi)辟緩沖區,節省了資源。
2.4 上位機控制
使用Visual C++編寫(xiě)上位機程序,上位機通過(guò)網(wǎng)絡(luò )向FPGA發(fā)送相關(guān)命令,FPGA接收到命令后進(jìn)行相應操作,并將數據通過(guò)千兆以太網(wǎng)發(fā)送至計算機,由上位機程序對接收到的數據進(jìn)行存儲。上位機程序在MFC環(huán)境下使用WinSock編程實(shí)現,使用面向無(wú)連接的數據報套接字,即采用UDP協(xié)議,無(wú)需建立連接。為提高系統效率,在程序中使用多線(xiàn)程技術(shù),一個(gè)線(xiàn)程負責接收數據,一個(gè)線(xiàn)程負責存儲數據,可以有效提高程序運行效率。
2.5 測試結果
在系統中,將存儲在電路板上Flash中的數據通過(guò)千兆以太網(wǎng)傳輸至計算機,使用UDP協(xié)議,每次傳輸1 024 Byte。經(jīng)測試,此千兆以太網(wǎng)性能穩定,數據吞吐率高。圖4所示是由SignalTap II采樣得到的由FPGA輸出的UDP波形,采樣時(shí)鐘為250 MHz。
在圖4中,rx_clk為125 MHz時(shí)鐘,gm_tx_d是由MAC發(fā)送至物理層芯片的數據幀。由圖可見(jiàn),MAC軟核每個(gè)時(shí)鐘周期發(fā)送8 bit數據,則此千兆以太網(wǎng)帶寬為1 000 Mb·s-1。千兆以太網(wǎng)額外開(kāi)銷(xiāo)小,大約占用FPGA資源的7%,為系統留下了充足的空間。對千兆以太網(wǎng)進(jìn)行測試時(shí),每次發(fā)送數十萬(wàn)數據幀至上位機,當檢測到錯誤幀或數據幀丟失時(shí)立即停止發(fā)送,在所進(jìn)行的一系列測試中,沒(méi)有出現中途停止發(fā)送的情況,說(shuō)明沒(méi)有數據幀丟失或在傳輸中出錯,系統工作穩定。

d.JPG


數據傳輸至計算機后由上位機程序接收并存儲,由于上位機程序效率偏低,千兆以太網(wǎng)傳輸速率受到限制。如果進(jìn)一步優(yōu)化上位機程序,可以提高千兆以太網(wǎng)帶寬利用率。若兩個(gè)電路系統使用千兆以太網(wǎng)互連,因為都是純硬件電路,運行效率較高,可以發(fā)揮千兆以太網(wǎng)高帶寬的特性。

3 結束語(yǔ)
中使用三速以太網(wǎng)軟核,并對源程序進(jìn)行了一系列優(yōu)化,代碼效率較高,系統工作穩定,資源利用率較高,數據吞吐率最高可達1 000 Mb·s-1。千兆以太網(wǎng)成本低,可以在多種平臺下應用,為數據傳輸提供了方便的途徑。

tcp/ip相關(guān)文章:tcp/ip是什么



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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>