<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è) > EDA/PCB > 設計應用 > 在FPGA中實(shí)現嵌入式TCP/IP通信協(xié)議棧

在FPGA中實(shí)現嵌入式TCP/IP通信協(xié)議棧

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

引言

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

隨著(zhù)電子信息技術(shù)的發(fā)展,網(wǎng)絡(luò )化日益普遍,以太網(wǎng)被廣泛應用到各個(gè)領(lǐng)域,只要在設備上增加一個(gè)網(wǎng)絡(luò )接口并實(shí)現TCP/IP協(xié)議,就可以方便地接入到現有的網(wǎng)絡(luò )中,完成遠程數據傳輸的相關(guān)功能。因此,嵌入式網(wǎng)絡(luò )技術(shù)一直是關(guān)注的焦點(diǎn),目前已經(jīng)廣泛應用于通信、工業(yè)控制、消費電子等各個(gè)領(lǐng)域。近年來(lái),隨著(zhù)可編程邏輯器件的飛速發(fā)展,人們開(kāi)始考慮將整個(gè)集成到單片中實(shí)現,其中也包括了以太網(wǎng)的嵌入式片上系統。

本文從實(shí)際應用出發(fā),以Xilinx 的軟核CPUY MicroBlaze IPCore搭建的片上系統(System—on—Chip),構建了嵌入式網(wǎng)絡(luò )硬件開(kāi)發(fā)平臺,實(shí)現了TCP/IP通信協(xié)議棧(Light-weight Internet Protocol)在實(shí)時(shí)操作系統Xilkernel上的移植。詳細介紹了其軟硬件的系統組成和原理,闡述了的片上系統配置,及其驅動(dòng)層和協(xié)議棧層軟件的結構,并給出部分關(guān)鍵源碼。

1 系統硬件平臺設計

Xilinx為嵌入式網(wǎng)絡(luò )通信解決方案提供了廣泛的組件和資源。Xilinx嵌入式解決方案的一個(gè)主要優(yōu)點(diǎn)是其處理器、IP內核以及軟件組件的靈活性和可擴展能力,其強大的靈活性允許用戶(hù)根據需要開(kāi)啟或禁止處理器、IP內核以及軟件平臺的選項和高級功能,并且可以對許多獨立參數進(jìn)行精細調整,直到在軟件級滿(mǎn)足應用要求。

系統采用Xilinx公司的FPGA芯片XC5VFX70T為硬件設計平臺,以MicroBlaze軟核作為中央處理器,以VHDL硬件描述語(yǔ)言實(shí)現協(xié)處理功能模塊,以片上總線(xiàn)連接MicroBlaze處理器和外圍設備(IP)來(lái)搭建嵌入式片上系統。

Xilinx以IBM CoreConnect總線(xiàn)通信鏈作為嵌入式處理器的片上總線(xiàn),提供了豐富的接口資源,主要有PLB(Processor Local Bus,處理器本地總線(xiàn))接口、高速的LMB(Local Memory Bus,本地存儲器總線(xiàn))接口、FSL(Fast Simplex Link,快速單連接)主從設備接口、XCL(Xilinx Cache Link,Xilinx緩存鏈路)接口。PLB總線(xiàn)可將外設IP核連接到Micro Blaze系統中,常用在速度要求不高的場(chǎng)合;LMB專(zhuān)門(mén)用于實(shí)現對片上塊RAM的高速訪(fǎng)問(wèn);XCL則用于實(shí)現對片外存儲器的高速訪(fǎng)問(wèn)。FSL是MicroBlaze處理器特有的一個(gè)基于FIFO的單向鏈路,可實(shí)現用戶(hù)自定義IP核與MicroBlaze內部通用寄存器的點(diǎn)對點(diǎn)直接相連,一般用在傳輸速度要求較高的場(chǎng)合。

已實(shí)現的系統由MicroBlaze處理器、ILMB總線(xiàn)、DLMB總線(xiàn)、Block RAM、DDR SDRAM、10/100/1000 Soft TEMAC、GPIO接口、UART16550串口、PLB TIMER定時(shí)器,以及基于PLB總線(xiàn)技術(shù)的DDC(數字下變頻)自定義IPCore和基于FSL總線(xiàn)技術(shù)的FFT(快速傅里葉變換)自定義IPCore組成。設計的系統架構如圖1所示,整個(gè)系統在Xilinx的EDK開(kāi)發(fā)工具中構建,具有完全的可編程特性,可根據不同任務(wù)需求來(lái)更改相關(guān)的配置參數。

在FPGA中實(shí)現嵌入式TCP/IP通信協(xié)議棧

2 系統軟件平臺設計

2. 1 協(xié)議棧

是一個(gè)開(kāi)源TCP/IP協(xié)議棧,在實(shí)現TCP/IP協(xié)議棧主要功能的基礎上減少了對RAM的占用,一般只需要幾十KB的RAM和40 KB左右的ROM就可以運行,因此非常適合在硬件配置較低的中使用。EDK為L(cháng)wIP庫提供了良好的接口,并為Xilinx公司TEMAC IP核提供了適配器,在EDK工程中方便地應用LwIP協(xié)議棧實(shí)現網(wǎng)絡(luò )功能。LwIP具有如下特點(diǎn):

①支持多網(wǎng)絡(luò )接口下的IP轉發(fā);

②支持ICMP協(xié)議;

③包括實(shí)驗性擴展的UDP(用戶(hù)數據報協(xié)議);

④包括阻塞控制、RTT估算以及快速恢復和轉發(fā)的TCP(傳輸控制協(xié)議);

⑤提供專(zhuān)門(mén)的內部回調接口(Raw API)用于提高應用程序性能;

⑥可選擇的Berkeley接口A(yíng)PI(多線(xiàn)程情況下);

⑦在最新的版本中支持PPP;

⑧新版本中增加了的IP fragment的支持;

⑨支持DHCP協(xié)議,動(dòng)態(tài)分配IP地址。

在Xilinx的嵌入式開(kāi)發(fā)工具EDK中,LwIP的版本為lwip130,即LwIP的v1.3.0版本。LwIP庫提供了RAW模式和Socket模式兩類(lèi)API函數,前者面向高性能,后者面向通用性,提供一組標準的Socket API接口函數。

2.2 Xilkemel實(shí)時(shí)操作系統

Xilkernel是Xilinx公司提供的用于EDK系統的小型、模塊化的嵌入式實(shí)時(shí)操作系統,支持MicroBlaze、PowerPC405以及PowerPC440處理器。Xilkernel是一種專(zhuān)用的嵌入式操作系統,內核完整,占用CPU資源較少,運行速度快,內核響應時(shí)間間隔最短可設置為1 ms,且與EDK生成的硬件系統緊密結合,具有可定制的特點(diǎn),支持可移植操作系統接口(PO SIX),是中小型設計的理想操作系統。其內部結構如圖2所示。

在FPGA中實(shí)現嵌入式TCP/IP通信協(xié)議棧

Xilkernel本身不帶有文件處理系統和TCP/IP協(xié)議棧,但與LwIP庫具有良好的接口,且支持LibXil MFS文件系統庫,因此,也可形成較為復雜的。其具有如下特點(diǎn):

①內核配置功能都已集成到EDK工具中,使用簡(jiǎn)單、方便;

②內核啟動(dòng)時(shí),靜態(tài)創(chuàng )建線(xiàn)程,而動(dòng)態(tài)分配內存;

③可加載或卸載不同的功能模塊來(lái)實(shí)現內核的擴展性;

④提供了一套符合POSIX的API用戶(hù)程序接口函數;

⑤所有系統調用函數帶有參數合法性檢查保護,并返回符合POSIX的錯誤代碼。

3 TCP/IP通信協(xié)議實(shí)現及測試

3.1 Socket應用程序開(kāi)發(fā)

LwIP Socket API是建立在XilKernel操作系統多線(xiàn)程任務(wù)基礎上的,與BSD標準的Socket API非常相似,具有開(kāi)發(fā)難度較小、便于用戶(hù)調用的特點(diǎn),可滿(mǎn)足一般網(wǎng)絡(luò )應用的要求。使用LwIP的Soeket模式,首先要在初始化線(xiàn)程中調用lwip_init()函數對LwIP協(xié)議棧進(jìn)行初始化,再使用sys_thread_new()函數來(lái)產(chǎn)生一個(gè)新的線(xiàn)程,即進(jìn)入主線(xiàn)程。在主線(xiàn)程中首先通過(guò)xemac_add()函數來(lái)添加網(wǎng)絡(luò )接口,然后為xemacif_input_thread()函數單獨開(kāi)啟一個(gè)線(xiàn)程,將從中斷響應過(guò)程中接收到的數據包移植到LwIP的xemacif_input_thre ad()函數運行的線(xiàn)程中,該線(xiàn)程在LwIP數據包到達時(shí)發(fā)出通知,并通過(guò)接收中斷句柄將數據存在緩沖中。以下為主線(xiàn)程中添加的網(wǎng)絡(luò )接口程序代碼:

在FPGA中實(shí)現嵌入式TCP/IP通信協(xié)議棧

通過(guò)上述步驟后,就可使用Socket編程建立網(wǎng)絡(luò )服務(wù)器。

3. 2 網(wǎng)絡(luò )數據傳輸性能測試

使用RJ45交叉以太網(wǎng)線(xiàn)將Xilinx XC5VFX70T開(kāi)發(fā)板和PC機直連。PC機作為T(mén)CP/IP的客戶(hù)端,Xilinx XC5VFX70T開(kāi)發(fā)板作為T(mén)CP/IP的服務(wù)端,客戶(hù)端經(jīng)連接響應后,高速向服務(wù)器端連續發(fā)TCP包。服務(wù)端接收到數據后計算接收到的數據總量,不做其他處理。使用iperf網(wǎng)絡(luò )測試軟件測試系統網(wǎng)絡(luò )直接發(fā)送數據的性能。

Socket模式下網(wǎng)絡(luò )發(fā)送速率為27.2 Mb/s,其iperf服務(wù)器端顯示結果如圖3所示。

在FPGA中實(shí)現嵌入式TCP/IP通信協(xié)議棧

為了檢測本文開(kāi)發(fā)的應用程序中數據發(fā)送的速率及其準確度,在計算機端使用LabView軟件開(kāi)發(fā)網(wǎng)絡(luò )服務(wù)客戶(hù)端接收本系統的數據,并將數據記錄為DAT文件,使用多特Net PerSec網(wǎng)絡(luò )測試軟件測試網(wǎng)絡(luò )的當前速率和平均速率。在寫(xiě)數據速率為24.1 Mb/s時(shí),NetPerSec顯示網(wǎng)絡(luò )接收平均速率為24.8 Mb/s;記錄的DAT文件顯示圖形中無(wú)跳變點(diǎn),數據無(wú)丟失,NetPerSec截圖及DAT文件顯示圖形如圖4所示。

在FPGA中實(shí)現嵌入式TCP/IP通信協(xié)議棧

寫(xiě)數據速率為24.3 Mb/s時(shí),NetPersec顯示網(wǎng)絡(luò )接收平均速率為25.4 Mb/s;記錄的DAT數據顯示圖形中間出現跳變點(diǎn),說(shuō)明有數據包丟失,NetPersec截圖及DAT數據顯示圖形如圖5所示。

在FPGA中實(shí)現嵌入式TCP/IP通信協(xié)議棧

測試結果表明,使用LwIP協(xié)議棧Socket模式進(jìn)行網(wǎng)絡(luò )數據傳輸,可實(shí)現網(wǎng)速為24.8 Mb/s、接收偵察信號帶寬為750 kHz的穩定數據傳輸。

結語(yǔ)

本文研究了TCP/IP通信協(xié)議在Xilinx公司FPGA上的實(shí)現,介紹了其軟硬件的系統組成及原理。其功能可根據需要進(jìn)行定制,不但引入了軟核處理器和嵌入式操作系統ilker nel,而且應用了LwIP TCP/IP協(xié)議棧,同時(shí)使用了大量的IP核,系統構建非常靈活。其軟硬件部分的設計采用分離的設計架構,使得整個(gè)系統修改和重構更加方便,真正實(shí)現了嵌入式片上系統。



關(guān)鍵詞: TCP/IP FPGA LwIP 嵌入式系統

評論


相關(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>