黃景毅
(廣州海格通信集團股份有限公司,廣東 廣州 510663)
隨著以太網(wǎng)技術(shù)的發(fā)展,人們的生活也發(fā)生了巨大的變化,從100M 寬帶到如今的光纖直接入戶。數(shù)據(jù)在光纖中傳輸速度比在網(wǎng)線中要快得多,光纖直接入戶,離用戶距離越近,中間經(jīng)過轉(zhuǎn)換越少,則數(shù)據(jù)傳輸?shù)乃俣纫矔欤怨怆娹D(zhuǎn)換是必不可少的環(huán)節(jié)。本文介紹了一種交換芯片MAC 與PHY 數(shù)據(jù)通信系統(tǒng)的設(shè)計,主要是由交換芯片通過PHY[1]轉(zhuǎn)換出光口。
MAC(Media Access Control),即媒體訪問控制子層協(xié)議[2]。該協(xié)議位于OSI 七層協(xié)議中數(shù)據(jù)鏈路層的下半部分,主要負責控制與連接物理層的物理介質(zhì)。
RGMII(Reduced Gigabit Media Independent Interface)是Reduced GMII(吉比特介質(zhì)獨立接口)[3]。RGMII 均采用4 位數(shù)據(jù)接口,工作時鐘為125 MHz,并且在上升沿和下降沿同時傳輸數(shù)據(jù),因此傳輸速率可達1 000 Mb/s。
本文設(shè)計了一種基于交換芯片MAC 與PHY 數(shù)據(jù)通信系統(tǒng)。該系統(tǒng)是在通用交換芯片實現(xiàn)基本網(wǎng)口功能的基礎(chǔ)上,再擴展出光口,以便能連接光纖,這樣普通網(wǎng)口和光纖都能使用。
圖1 為數(shù)據(jù)通信系統(tǒng)的系統(tǒng)連接框圖。該系統(tǒng)使用一個交換芯片實現(xiàn)基本100M 網(wǎng)口功能,同時交換芯片的RGMII 口與PHY 相連接進行數(shù)據(jù)通信,再通過PHY 轉(zhuǎn)出光模塊所需的SFP 信號,從而能連接光纖。交換芯片和PHY 芯片由MCU(選用STM32F103 系列芯片)控制,并通過SMI 接口進行配置。
圖1 系統(tǒng)框圖
SMI:串行管理接口(Serial Management Interface),包括MDC 和MDIO 兩條信號線。MDIO 為管理接口,用來讀/寫芯片的寄存器,以控制其行為或獲取其狀態(tài),MDC 為MDIO 提供時鐘。
根據(jù)交換芯片需要有多路100M 網(wǎng)口和至少有1 路1 000M 網(wǎng)口的需求,選用了BROADCOM 的BCM53242,此芯片為第九代RoboSwitch?基于經(jīng)過現(xiàn)場驗證的BCM5324 器件進行設(shè)計。它完全符合IEEE 802.3 和IEEE 802.3x 規(guī)范,并包含24 個全雙工10BASE-T/100BASE-TX 快速以太網(wǎng)收發(fā)器,支持高級電纜診斷功能。此外,BCM53242 還具有兩個GMII/RGMII/TBI 接口,可提供靈活的10/100/1000BASE-TX/FX 連接,通過RvMII 或MII 接口包含用于CPU 連接的附加MAC。
PHY 則選用了能轉(zhuǎn)換出SFP 信號的MARVELL 的88E1111[4]。該芯片為千兆以太網(wǎng)[5]PHY 芯片,支持GMII、RGMII、MII 等接口,并能轉(zhuǎn)出SFP 信號,具備4 個GMII 時鐘模式,支持自適應(yīng)功能、超低功耗模式、功率降低模式,MCU 可通過MDC/MDIO 接口對芯片進行配置。
根據(jù)系統(tǒng)框圖進行相關(guān)硬件設(shè)計,STM32F103 對BCM53242 和88E1111 進行管理和配置,BCM53242 與88E1111 通過RGMII 接口進行數(shù)據(jù)通信,再由88E1111的SFP 數(shù)據(jù)口連接到光模塊,由此實現(xiàn)BCM53242 所連接的網(wǎng)口與外接光纖進行通信。
由于STM32F103 使用3.3 V 供電,而BCM53242和88E1111 使用2.5 V,需要在MDC/MDIO 信號上增加電平轉(zhuǎn)換芯片,電平轉(zhuǎn)換后才能使得芯片的電平匹配。BCM53242 和88E1111 都支持RGMII,所以數(shù)據(jù)接口只需要接收和發(fā)送數(shù)據(jù)各4 個、隨路時鐘接收和發(fā)送信號各1 個、使能和錯誤報送信號各1 個。88E1111 的SFP 信號與光模塊之間需串接10 nF 電容,以保證與光模塊轉(zhuǎn)換出信號的隔離和耦合效果。BCM53242 要求的PHY 地址不能隨意使用,如果使用多個PHY 芯片,需地址按0x19H、0x1AH 逐個加1 遞增。圖2 為88E1111的信號連接圖。
圖2 88E1111 的信號連接圖
關(guān)于交換芯片與PHY 之間的數(shù)據(jù)通信,正常情況下只要電路供電正常、連接不出錯,配置正確,在最初調(diào)試時也按以往調(diào)試交換芯片與PHY 通信情況進行,電路板在上電后數(shù)據(jù)通信沒有問題。
在STM32 對BCM53242 配置好后,其所出的百兆網(wǎng)口通信無問題,RGMII 也能通過示波器檢測到它們之間有數(shù)據(jù)通信。但當接上光模塊后發(fā)現(xiàn)88E1111 的千兆口與交換芯片通信不正常。檢查交換芯片的其他接口是能正常通信,因此排除交換芯片故障,PHY 芯片與交換芯片的硬件配置管腳也無問題,交換芯片是沒有劃分VLAN 的,所有接口都是可以相互連通的[4]。
經(jīng)過仔細分析和重新對電路板進行查看,發(fā)現(xiàn)PHY 的千兆口接收燈有閃爍,說明PHY 已收到信號,但確不能與交換芯片正常通信。之后通過STM32 讀取交換芯片和PHY 的MAC 接口接收寄存器,發(fā)現(xiàn)交換芯片根本接收不到數(shù)據(jù)包,而PHY 可以接收到數(shù)據(jù)包,但數(shù)據(jù)包都是錯的。收發(fā)兩個方向的情況不一樣,對通信數(shù)據(jù)的信號質(zhì)量和時序進行測量,交換芯片接收方向上,數(shù)據(jù)和時鐘的上升延是對齊的,黃色為時鐘信號,綠色為數(shù)據(jù)信號,如圖3 所示。
圖3 交換芯片接收數(shù)據(jù)和時鐘
對PHY 的寄存器重新配置,增加發(fā)送給交換芯片數(shù)據(jù)的時延,如圖4 所示(黃色為時鐘信號,綠色為數(shù)據(jù)信號),讓數(shù)據(jù)與時鐘錯開,交換芯片則可以接收到正確的數(shù)據(jù)包。
交換芯片發(fā)送給PHY 的數(shù)據(jù)包,均為錯誤包。測量該發(fā)送的數(shù)據(jù)時序,數(shù)據(jù)與時鐘有錯開,按理說應(yīng)該是沒有問題,但查看PHY 芯片資料,芯片對發(fā)送的時鐘時延要求是大于1 ns,而交換芯片資料顯示發(fā)送來的時鐘的時延是小于0.5 ns,因此滿足不了PHY 芯片對時延要求[5]。
圖4 增加時延后的交換芯片接收到的時序
經(jīng)過對PHY 資料進一步查閱,發(fā)現(xiàn)可通過對該芯片寄存器RGMII Transmit Timing Control 進行設(shè)置來增加發(fā)送端時鐘與數(shù)據(jù)的時延,配置寄存器增加時延后,PHY 再也沒有收到錯誤包。
BCM53242 與88E1111 之間的數(shù)據(jù)通信經(jīng)過多次分析、測量和查閱相關(guān)資料,最終解決了無法進行正常數(shù)據(jù)通信的問題。
通過本文所述基于BCM53242 與88E1111 之間的數(shù)據(jù)通信系統(tǒng)的設(shè)計和實際問題分析,可以看出不同交換芯片和PHY 之間實現(xiàn)數(shù)據(jù)通信功能時會略有差別,特別是不同芯片之間對時延的要求。只有根據(jù)實際功能、芯片時序要求來完成電路的設(shè)計和功能的實現(xiàn),才能滿足產(chǎn)品的實際需求。