基于FPGA的嵌入式串行千兆以太網(wǎng)設計
3 嵌入式系統軟件設計
本系統軟件部分需實(shí)現TCP/IP網(wǎng)絡(luò )協(xié)議,TCP/IP協(xié)議模型包括應用層、傳輸層、網(wǎng)絡(luò )層和網(wǎng)絡(luò )接口層。網(wǎng)絡(luò )接口層分為PHY層和MAC層兩部分。其中,PHY層由外部PHY芯片88E1111實(shí)現,MAC層由Xilinx公司的Hard Ethernet MAC IP核實(shí)現,并作為整個(gè)Power-PC系統硬件的一部分在FPGA的內部實(shí)現。
網(wǎng)絡(luò )層和傳輸層主要采用LwIP協(xié)議模塊編寫(xiě)相應的軟件代碼。LwIP同時(shí)支持服務(wù)器模式和客戶(hù)端模式,提供RAW和Socket兩種API。它的特點(diǎn)是在保持TCP/IP協(xié)議主要功能的情況下,減少對RAW的使用,使得LwIP在各類(lèi)高檔嵌入式系統開(kāi)發(fā)中得到廣泛的應用。本設計選擇Xili nx公司的精簡(jiǎn)嵌入式操作系統Xilkernel,用于更好地管理系統資源。Xilkernel能與EDK形成的硬件系統緊密結合,是一種可定制的簡(jiǎn)單高效系統。Xilkernel系統的配置可以在開(kāi)發(fā)環(huán)境SDK中進(jìn)行手動(dòng)設置。本設計中運用LwIP協(xié)議模塊編寫(xiě)運行在Xilkernel操作系統上的應用軟件,實(shí)現了Web Server(網(wǎng)頁(yè)服務(wù))、FTP(FileTransfer Protocl)、Telnet遠程登錄服務(wù)、iperf應用等功能。下面以網(wǎng)頁(yè)服務(wù)程序、iperf服務(wù)器和客戶(hù)端程序為例對軟件設計流程進(jìn)行說(shuō)明。
具體流程描述如下:
①在Xilkernel系統的靜態(tài)啟動(dòng)線(xiàn)程main_thread()中,初始化網(wǎng)絡(luò )協(xié)議和文件系統。
②調用線(xiàn)程生成函數sys_thread_new()生成并啟動(dòng)線(xiàn)程1。
③在線(xiàn)程1中設置電路板硬件的MAC地址、網(wǎng)關(guān)、IP地址和子網(wǎng)掩碼等參數,并初始化網(wǎng)絡(luò )接口。具體設置方式如下:MAC地址為00;0a:35;00;01;02;IP4地址為192.168.1.10;IP4地址掩碼為255.255.255.0;IP4地址網(wǎng)關(guān)為192.168.1.1。
④初始化一個(gè)Socket,將它與IP地址和端口號綁定,然后開(kāi)始監聽(tīng)網(wǎng)絡(luò ),一旦監聽(tīng)到網(wǎng)絡(luò )請求,再由函數sys_thread_new()生成一個(gè)線(xiàn)程2去響應,用于緩存接收到的數據包。然后,通過(guò)函數launch_app_threads()判斷監聽(tīng)到的網(wǎng)絡(luò )請求屬于哪種類(lèi)型,并由函數sys_thread_ new()生成相應的線(xiàn)程3去處理。
如果是網(wǎng)絡(luò )服務(wù)請求,則將網(wǎng)頁(yè)文件輸出到PC機上,并接收PC機傳輸的控制數據信息,其程序流程如圖5所示。如果是iperf應用請求,則發(fā)送或接收相應的數據完成對請求的響應。本文引用地址:http://dyxdggzs.com/article/153698.htm
網(wǎng)頁(yè)服務(wù)程序運行前需在FPGA外部的DDR中建立文件系統,將用于控制的相關(guān)網(wǎng)頁(yè)文件保存在該文件系統中。系統在運行時(shí),訪(fǎng)問(wèn)預設的IP地址,會(huì )將相關(guān)網(wǎng)頁(yè)文件傳輸到遠端控制電腦上,并通過(guò)網(wǎng)頁(yè)中的超鏈接命令腳本將預設的控制信息傳送給PowerPC處理器,用以控制電路板上的LED燈亮滅,或者讀取電路板上撥碼開(kāi)關(guān)的狀態(tài)值并在服務(wù)器首頁(yè)上顯示。
本設計中采用iperf網(wǎng)絡(luò )測試軟件對其性能進(jìn)行測試。采用9 000字節巨幀可以實(shí)現高達490 Mbps的傳輸速率。
結語(yǔ)
本文成功使用Virtex-5 FX70t芯片實(shí)現串行千兆以太網(wǎng)系統,并通過(guò)網(wǎng)頁(yè)服務(wù)程序對其功能加以驗證。本系統在硬件電路設計階段具有I/O端口數目少、便于PCB布線(xiàn),以及信號完整性容易保證等優(yōu)點(diǎn)。通過(guò)iperf網(wǎng)絡(luò )測試軟件對其傳輸速率進(jìn)行測試,其結果達到高速數據傳輸的要求。
fpga相關(guān)文章:fpga是什么
評論