王雨婷,薛志超,文 豐
(1.中北大學儀器與電子學院電子測試技術國家重點實驗室,山西太原 030051;2.中國運載火箭技術研究院空間物理重點實驗室,北京 100076)
以太網如今已經走入千家萬戶、各行各業,應用范圍非常廣泛。通過對使用集成TCP/IP 協議的以太網芯片W5300進行寄存器、存儲器、端口等配置,就可以實現高速度的數據傳輸。其優點是,傳輸數據穩定,系統造價較低,開發時長較短,設計者易于上手操作[1]。
同時,本設計中選用的百兆以太網協議芯片W5300,實測傳輸數據的速率達到90 Mb/s 以上,極大地滿足了實際應用中的多種需求。
設計選用FPGA 控制W5300 實現以太網通信,接收上位機軟件指令并執行相應操作,在不同網絡間建立可靠連接。
FPGA 內部包括普通I/O 口和高速I/O 口,接口傳輸速率可達到10 Gb/s 以上[2],具有良好的傳輸穩定性,所以選用FPGA 作為主控芯片。為了達到90 Mb/s以上傳輸速率的設計要求,W5300 采用16 位數據總線,配置全功能自動握手運行模式[2]。16 位數據位均與FPGA 的I/O 口相連,接收到的數據存入兩片Flash中,使用雙備份方式保證數據的準確性。為了讓W5300 在傳輸數據的過程中具有更好的抑制高頻電壓的能力,將W5300 內部產生的電壓信號與外部電壓信號進行隔離,該設計摒棄了傳統以太網電路設計中選用的變壓器TT1-6,而是選用了網口變壓器H1102NL。它的作用與選頻電路相通,使通帶中的信號通過,極大抑制阻帶中的信號,并且阻帶的電壓增益更接近零,通帶的電壓增益為常數。系統硬件電路設計如圖1所示。

圖1 系統硬件電路設計
為了將不同的計算機設備連接到一起,國際各大公司和機構定義了一系列基于以太網的軟件和硬件協議標準。當前,在主流的以太網接口協議中,主要有TCP/IP 協議和UDP 協議[3]。相較于TCP/IP 協議,UDP 協議的傳輸速率較快,但數據沒有握手驗證,不能很好地保證高速數據的穩定性。而TCP/IP 協議具有優良的雙向傳輸機制,將TCP 與IP 協同工作,在建立連接前需進行3 次握手,以達到客戶端和服務器進行3 次確認性連接[4],在滿足數據傳輸速度的基礎上又保證了數據傳輸的穩定性。
使用W5300 內部PHY 模式,設置TEST_MODE[0:3]引腳均置0。配置OP_MODE[2:0]=001,既為自動握手模式。為了盡量消除導線阻抗不一致對信號傳輸的負面影響,設計采取TXON 與TXOP,以及TXON 與TXOP 的導線均為差分線。介質接口信號表如表1 所示。

表1 介質接口信號表
該系統通過直接尋址方式控制FPGA 操控W5300,對其寄存器進行配置。設計者在ISE14.7 軟件下編寫相關程序。W5300 的控制時序包括復位時序和寄存器讀、寫時序。復位時序產生復位信號并控制時序的復位邏輯;寄存器讀時序和寄存器寫時序控制W5300 的主機讀、寫數據的邏輯[5]。復位信號周期最小為2 μs,鎖相環鎖定最短時間為50 μs,最長時間為10 ms[6]。系統軟件設計流程分為3 個步驟:W5300 初始化、數據通信模式配置、數據接收和發送。
W5300 初始化分為3 個步驟:主機接口設置、網絡信息設置、TX/RX 存儲器分配[7]。
2.1.1 主機接口設置
W5300 接口設置包括模式寄存器配置和中斷配置。
W5300 的MR 寄 存 器、COMMON 寄 存 器 和SOCKET 寄存器映射在主機存儲空間。當中斷寄器和中斷屏蔽寄存器對應位都為1 時,/INT 輸出低電平產生中斷;當中斷寄存器寫入16 位0 時,/INT 變為高電平不產生中斷[8]。
2.1.2 網絡信息設置
系統設置主機接口為TCP/IP 模式,為了合理的分配好重傳的次數和時間,使網絡數據通信的可靠性提高,我們對RTR 寄存器和RCR 寄存器進行設置[9]。TCP 數據包傳輸超時流程如圖2 所示。

圖2 TCP數據包傳輸超時流程圖
2.1.3 分配TX/RX存儲器空間
W5300 內部128K 字節的存儲單元依次映射在發送存儲器(TX)和接收存儲器(RX)當中[10],該設計定義了內部TX 和RX 存儲量均為64K。
在完成對W5300 初始化的配置之后,還需要分別對8 個獨立的SOCKET 通信端口進行不同的設 置[11]。“TCP 客戶 端”主動發 送SYS 數據包 到對端進行連接請求,對SOCKET 進行初始化配置并打開[12]。其中,數據通信連接狀態圖如圖3 所示。

圖3 數據通信連接狀態圖
在完成W5300 的初始化和數據通信模式配置之后,便可建立連接進行接收數據處理和發送數據處理。當檢測到RX 存儲器中有數據時,W5300 開始接收數據。可通過判斷ALIGN 位的狀態來確定數據包中是否存在PACKET_INFO 和數據[13]。
當Sn_MR 的ALIGN 位為0 時,數據包中存在PACKET_INFO 和數據;當Sn_MR 的ALIGN 位為1時,只存在數據包而沒有PACKET_INFO[14]。當數據全部讀取完成后,將執行RECV 命令,W5300 的數據接收完成。
經多次實驗驗證發現,每次發送1 460 byte 數據時,傳輸速率最快。所以設置數據包的大小為730 byte,每次同時發送兩包數據。在每次發送數據之前,都應先檢查上次的SEND 命令是否完成,如完成則繼續發送數據,以確保發送數據的進程無誤。
圖4、圖5 分別為數據的接收、發送流程圖。

圖4 數據接收流程圖

圖5 數據發送流程圖
在傳輸數據的過程中,會出現網絡異常中斷導致傳輸中斷的現象[15]。為了避免發送或接收數據過程中“斷網”導致數據丟失或傳輸異常,進行了以太網斷網重連設計。加入E_LINK_D 信號,當初始化完成時,判斷E_LINK_D 是否置0。如置0 則可進行數據收發[16],如網絡異常則置1,返回重新進行初始化,直到E_LINK_D 狀態為0 時可進行下一步操作。也可通過配置Sn_KPALVTR 寄存器,在TCP 狀態下,當Sn_KPALVTR>0,W5300 每5秒發送一個數據包[17]。而我們設置Sn_KPALVTR=10,既每隔50 s 發送一次心跳包,以檢查網絡連接狀態。
為了實現客戶端與服務器之間的高速數據傳輸,系統使用10 m 的六類四對屏蔽雙絞線,一端連接地面測試臺,另一端連接計算機進行數據通信[18]。測試臺通過以太網將遞增數傳輸到計算機并保存在Flash 中,遞增數結構如圖6 所示。使用上位機軟件對數據進行分解校驗。通過上位機軟件校驗的結果可以看出,數據傳輸穩定,數據結果完整,無丟幀現象。上位機軟件測試結果如圖7 所示。

圖6 遞增數測試結果

圖7 上位機軟件測試結果
實驗時間內共傳輸347 831 85 個幀數,730 個數據為一個包,共計24 215 Mb 數據,傳輸時的啟動記錄與停止記錄相隔時間為35 分24 秒,計算得出傳輸速率可達91.21 Mb/s,與設計要求的高速傳輸數據速率達到90 Mb/s 以上的條件相符。經多次采集調試,傳輸速率均可達到90 Mb/s 以上。
設計采用基于W5300 的以太網高速數據傳輸系統,傳輸速率達到90 Mb/s 以上;選用TCP/IP 協議保障了傳輸的可靠性。對TCP/IP 協議的交互方式以及W5300 設計流程進行了較為詳盡的敘述。最后通過實驗驗證了該設計有助于傳輸速率的提高,且軟件開發成熟度高,系統實際操作靈活便捷,目前該系統已經在地面有線測量數據傳輸工程中得到良好應用。