中國船舶重工集團公司第七一五研究所 王承宇
基于AM3359的千兆雙冗余以太網接口模塊設計
中國船舶重工集團公司第七一五研究所 王承宇
千兆以太網具有可靠性高、擴展性強、速度快等諸多優點,在各個工業領域得到了廣泛的應用。通過雙冗余技術,可以使一個網絡通道故障后自動切換到另一個正常通道,實現熱備份。本文基于Ti公司的AM3359處理器設計并開發了一種千兆雙冘余以太網接口模塊,針對于設計過程中軟硬件設計、LWIP協議的移植等進行了詳細的論述。
千兆雙冘余以太網;AM3359;LWIP協議棧
以太網從10M開始發展,經理多年的變遷,目前已發展到千兆乃至萬兆以太網,在各領域已經得到了廣泛地應用。以太網具有以下優點:(1)可靠性高:網絡上單一節點的故障不會對網絡中其他設備的通訊產生影響;(2)擴展性強:所有設備連接到網絡交換機中,網口紙質熱插拔;(3)速度快:千兆以太網將提高10倍與百兆網的性能并與現有的10/100以太網標準兼容;(4)采用雙冗余技術可以在一個網絡通道出現故障后進行自動切換,實現熱備份。AM3359是TI公司最便宜的Cortex A8處理芯片,集成2個MAC并支持Linux、Android和WinCE系統。本文基于AM3359處理器設計并開發了一種千兆雙冘余以太網接口模塊,針對硬性設計與軟件開發中的難點進行了詳細的論述。
1.1 總體功能與結構
以太網接口模塊主要有DSP、DDR3內存、FLASH芯片、PHY芯片、電源芯片等多個部分組成。DSP選用Ti公司的AM3359處理器。該芯片具有一個ARMcortexA8核,最大運行速率可達1GHz,具有兩個工業千兆以太網MAC,支持MII、RGMII和MDIO接口程序。DDR3選擇Micron公司MT41K128M16JT,容量為2Gb。FLASH芯片選擇三星公司的K9F4G08U0E,位寬為8bit,容量為4Gb。程序固化在片外FLASH芯片中,當系統上電后,將程序加載至DDR3內存中運行。物理層芯片選擇TI公司的DP83867IR,該芯片具有8kV的ESD保護能力,運行功耗僅565mW。由DSP控制兩個物理層芯片提供兩個雙冘余千兆網口實現與外部網絡的通訊。以太網接口模塊的組成如圖1所示。

圖1 總體組成框圖
1.2 千兆網口設計
每一個物理層芯片均由一片晶振為其提供25MHz時鐘信號以滿足千兆網的傳輸要求。物理層芯片通過RGMII總線和MDI0總線與DSP連接,RGMII由12個信號組成:6個接收新號RX_CTL、RX_CLK和RX_ D[3:0]以及6個發送信號TX_CTL、TX_CLK和TX_D[3:0]。在千兆運行過程中,TX_CLK和RX_CLK的時鐘為125MHz,因此為避免一條數據總線上不同數據線上信號傳播延時造成的偏差,所有信號線的走線長度差異應盡可能小。DSP通過MDIO總線可以實現對PHY內部寄存器空間和狀態信息以及配置進行訪問。PHY與外部網線之間使用了一個隔離變壓器以保證本地電器與外部電纜之間的直流隔離。

圖2 千兆網口設計
2.1 LWIP協議棧
LWIP協議棧是一套用于嵌入式系統的開源TCP/IP協議棧,可以移植到操作系統上,也可以在誤操作系統的情況下獨立運行。LWIP的優點在于保持TCP/IP協議的基礎上減少對RAM的占用。一般它要幾十kg的RAM就可以運行,這使LWIP協議棧適合在小型嵌入式系統中。LWIP協議棧的主要作用是負責處理各層各種協議,在數據收發過程中完成網絡數據幀封裝與解析并完成ARP功能。
LWIIP協議棧的移植十分便捷。為適應各種不同的硬件環境,協議棧中留有底層收發程序的指針、因此,移植的核心就是根據格式要求編寫底層收發程序。移植完成后,當需要收發網絡幀是,協議棧便會自動調用底層收發程序。
2.2 網絡數據收發的實現
網絡數據的處理過程主要可以分為兩個部分:底層驅動程序和協議棧。底層驅動程序負責讀取PHY收到的網絡數據或將所要發送的信息從PHY發送出去。協議棧根據本地與通訊對象的MAC地址、IP地址和端口號完成網絡數據幀的封裝與解析。

圖3 網絡數據收發流程
在LWIP協議棧的移植過程中,用戶所要完成的主要工作為協議棧的初始化以及編寫底層硬件驅動程序并對應函數在協議棧中完成綁定。
在初始化主要分為網絡接口初始化和協議棧初始化兩個部分。網絡接口初始化主要完成硬件的初始化。對于本文中的以太網接口模塊,硬件初始化的主要內容為通過MDIO讀取PHY內部寄存器完成與連接對象的網絡自動協商功能。協議棧初始化主要完成本地IP地址以及端口號的配置。首先使用udp_new()函數建立UDP控制塊,再調用udp_bind()函數綁定本地的IP地址和端口號。為了收到UDP數據后能夠正常完成數據處理,還需要通過udp_recv()函數將用戶自定義的網絡數據處理函數進行綁定。
完成上述設置后LWIP協議棧當收到正確的網絡數據便會自動調用用戶定義處理函數對網絡數據進行處理,調用udp_sendto()函數便能實現以太網數據的發送。
AM3359是TI公司最便宜的Cortex A8處理芯片,集成2個MAC具有良好的應用前景。本文基于AM3359處理器設計并開發了一種千兆雙冘余以太網接口模塊,針對硬性設計與軟件開發中的難點進行了詳細的論述。
[1]Adam Dunkels,Design and Implementation of the Lwip TCP/IP Stack,2001.
[2]Texas Instrument,AM335X Sitara Processors Technical Reference Manual,2016.