黃景毅
(廣州海格通信集團股份有限公司,廣東 廣州 510663)
隨著以太網技術的發展,人們的生活也發生了巨大的變化,從100M 寬帶到如今的光纖直接入戶。數據在光纖中傳輸速度比在網線中要快得多,光纖直接入戶,離用戶距離越近,中間經過轉換越少,則數據傳輸的速度也會更快,所以光電轉換是必不可少的環節。本文介紹了一種交換芯片MAC 與PHY 數據通信系統的設計,主要是由交換芯片通過PHY[1]轉換出光口。
MAC(Media Access Control),即媒體訪問控制子層協議[2]。該協議位于OSI 七層協議中數據鏈路層的下半部分,主要負責控制與連接物理層的物理介質。
RGMII(Reduced Gigabit Media Independent Interface)是Reduced GMII(吉比特介質獨立接口)[3]。RGMII 均采用4 位數據接口,工作時鐘為125 MHz,并且在上升沿和下降沿同時傳輸數據,因此傳輸速率可達1 000 Mb/s。
本文設計了一種基于交換芯片MAC 與PHY 數據通信系統。該系統是在通用交換芯片實現基本網口功能的基礎上,再擴展出光口,以便能連接光纖,這樣普通網口和光纖都能使用。
圖1 為數據通信系統的系統連接框圖。該系統使用一個交換芯片實現基本100M 網口功能,同時交換芯片的RGMII 口與PHY 相連接進行數據通信,再通過PHY 轉出光模塊所需的SFP 信號,從而能連接光纖。交換芯片和PHY 芯片由MCU(選用STM32F103 系列芯片)控制,并通過SMI 接口進行配置。

圖1 系統框圖
SMI:串行管理接口(Serial Management Interface),包括MDC 和MDIO 兩條信號線。MDIO 為管理接口,用來讀/寫芯片的寄存器,以控制其行為或獲取其狀態,MDC 為MDIO 提供時鐘。
根據交換芯片需要有多路100M 網口和至少有1 路1 000M 網口的需求,選用了BROADCOM 的BCM53242,此芯片為第九代RoboSwitch?基于經過現場驗證的BCM5324 器件進行設計。它完全符合IEEE 802.3 和IEEE 802.3x 規范,并包含24 個全雙工10BASE-T/100BASE-TX 快速以太網收發器,支持高級電纜診斷功能。此外,BCM53242 還具有兩個GMII/RGMII/TBI 接口,可提供靈活的10/100/1000BASE-TX/FX 連接,通過RvMII 或MII 接口包含用于CPU 連接的附加MAC。
PHY 則選用了能轉換出SFP 信號的MARVELL 的88E1111[4]。該芯片為千兆以太網[5]PHY 芯片,支持GMII、RGMII、MII 等接口,并能轉出SFP 信號,具備4 個GMII 時鐘模式,支持自適應功能、超低功耗模式、功率降低模式,MCU 可通過MDC/MDIO 接口對芯片進行配置。
根據系統框圖進行相關硬件設計,STM32F103 對BCM53242 和88E1111 進行管理和配置,BCM53242 與88E1111 通過RGMII 接口進行數據通信,再由88E1111的SFP 數據口連接到光模塊,由此實現BCM53242 所連接的網口與外接光纖進行通信。
由于STM32F103 使用3.3 V 供電,而BCM53242和88E1111 使用2.5 V,需要在MDC/MDIO 信號上增加電平轉換芯片,電平轉換后才能使得芯片的電平匹配。BCM53242 和88E1111 都支持RGMII,所以數據接口只需要接收和發送數據各4 個、隨路時鐘接收和發送信號各1 個、使能和錯誤報送信號各1 個。88E1111 的SFP 信號與光模塊之間需串接10 nF 電容,以保證與光模塊轉換出信號的隔離和耦合效果。BCM53242 要求的PHY 地址不能隨意使用,如果使用多個PHY 芯片,需地址按0x19H、0x1AH 逐個加1 遞增。圖2 為88E1111的信號連接圖。

圖2 88E1111 的信號連接圖
關于交換芯片與PHY 之間的數據通信,正常情況下只要電路供電正常、連接不出錯,配置正確,在最初調試時也按以往調試交換芯片與PHY 通信情況進行,電路板在上電后數據通信沒有問題。
在STM32 對BCM53242 配置好后,其所出的百兆網口通信無問題,RGMII 也能通過示波器檢測到它們之間有數據通信。但當接上光模塊后發現88E1111 的千兆口與交換芯片通信不正常。檢查交換芯片的其他接口是能正常通信,因此排除交換芯片故障,PHY 芯片與交換芯片的硬件配置管腳也無問題,交換芯片是沒有劃分VLAN 的,所有接口都是可以相互連通的[4]。
經過仔細分析和重新對電路板進行查看,發現PHY 的千兆口接收燈有閃爍,說明PHY 已收到信號,但確不能與交換芯片正常通信。之后通過STM32 讀取交換芯片和PHY 的MAC 接口接收寄存器,發現交換芯片根本接收不到數據包,而PHY 可以接收到數據包,但數據包都是錯的。收發兩個方向的情況不一樣,對通信數據的信號質量和時序進行測量,交換芯片接收方向上,數據和時鐘的上升延是對齊的,黃色為時鐘信號,綠色為數據信號,如圖3 所示。

圖3 交換芯片接收數據和時鐘
對PHY 的寄存器重新配置,增加發送給交換芯片數據的時延,如圖4 所示(黃色為時鐘信號,綠色為數據信號),讓數據與時鐘錯開,交換芯片則可以接收到正確的數據包。
交換芯片發送給PHY 的數據包,均為錯誤包。測量該發送的數據時序,數據與時鐘有錯開,按理說應該是沒有問題,但查看PHY 芯片資料,芯片對發送的時鐘時延要求是大于1 ns,而交換芯片資料顯示發送來的時鐘的時延是小于0.5 ns,因此滿足不了PHY 芯片對時延要求[5]。

圖4 增加時延后的交換芯片接收到的時序
經過對PHY 資料進一步查閱,發現可通過對該芯片寄存器RGMII Transmit Timing Control 進行設置來增加發送端時鐘與數據的時延,配置寄存器增加時延后,PHY 再也沒有收到錯誤包。
BCM53242 與88E1111 之間的數據通信經過多次分析、測量和查閱相關資料,最終解決了無法進行正常數據通信的問題。
通過本文所述基于BCM53242 與88E1111 之間的數據通信系統的設計和實際問題分析,可以看出不同交換芯片和PHY 之間實現數據通信功能時會略有差別,特別是不同芯片之間對時延的要求。只有根據實際功能、芯片時序要求來完成電路的設計和功能的實現,才能滿足產品的實際需求。