一.前言 項(xiàng)目競(jìng)標(biāo):GE PHY芯片設(shè)計(jì) STM32Fxx7 系列(互聯(lián)型產(chǎn)品)中內(nèi)置了 MAC,配合外置的 PHY 可以實(shí)現(xiàn)以太網(wǎng)通訊。這篇文檔將介紹以太網(wǎng)接口的信號(hào)定義,重點(diǎn)介紹時(shí)鐘電路的設(shè)計(jì),并給出在實(shí)踐中已成功應(yīng)用的設(shè)計(jì)方案,希望可以對(duì)需要進(jìn)行以太網(wǎng)電路設(shè)計(jì)的朋友提供 幫助。 二.以太網(wǎng)接口 STM32 的以太網(wǎng)支持 10M/100M bits 的全雙工和半雙工的工作方式,其中的 MAC 通過 MII 接口或者 RMII 接口與 PHY 通訊。 1. MII MII 接口標(biāo)準(zhǔn)定義了 16 跟信號(hào)線,根據(jù)功能將其可以分為 3 組(發(fā)送,接收,載波偵聽 和沖突監(jiān)測(cè)),另外還 有用于對(duì) PHY 進(jìn)行配置的 SMI 接口。
發(fā)送 ·TX_CLK:MII 接口需要 25MHz 的時(shí)鐘(100Mbits 傳輸速率時(shí)),當(dāng)以 10Mbits 的速率工作,PHY 內(nèi)部的電路會(huì)對(duì) 25MHz 的信號(hào)進(jìn)行十分頻以得到 2.5MHz 的時(shí)鐘。 ·TXD[3 :0] : 根據(jù)時(shí)鐘速率,不難算出 TXD 需要 4 根數(shù)據(jù)線。數(shù)據(jù)線需要與時(shí)鐘保持同步。 ·TX_EN : 發(fā)送使能信號(hào),也需要與時(shí)鐘保持同步。 ·TX_ER : 發(fā)送錯(cuò)誤指示信號(hào),MAC 通過此信號(hào)向 PHY 表示數(shù)據(jù)無效。需要注意的是在許多 PHY 和 MAC 中,這個(gè) 信號(hào)是沒有的(STM32 就沒有這個(gè)信號(hào),圖中用虛線表示),由于在另一端的接 收信號(hào)中包含 RX_ER,因此這個(gè) 信號(hào)是不必要的。 接收·RX_CLK: 接收時(shí)鐘與發(fā)送時(shí)鐘完全類似。 ·RXD[3 :0]: 與發(fā)送數(shù)據(jù)線完全類似。 ·RX_ER:接收錯(cuò)誤指示信號(hào),PHY 通過此信號(hào)向 MAC 層表示在某一幀數(shù)據(jù)中發(fā)現(xiàn)問題。需要與RX_DV 一起使用。 ·RX_DV:與 RX_ER 一起進(jìn)行出錯(cuò)分析。 載波偵聽和沖突監(jiān)測(cè)CRS,COL:這兩根信號(hào)線在半雙工工作方式下提供載波偵聽和沖突監(jiān)測(cè)功能,全雙工下無用。
SMI 接口MDC,MDIO:對(duì) PHY 進(jìn)行配置的接口?梢酝ㄟ^ GPIO 口進(jìn)行模擬。 2. RMII
RMII 接口可以簡(jiǎn)單的理解為(Reduce-MII)接口,即減少了 MII 接口中信號(hào)線的數(shù)量。基本原理是通 過提高時(shí)鐘速率來完成的(RMII 的時(shí)鐘為 50MHz),因此發(fā)送/接收數(shù)據(jù)線都只需要兩根,并合并了一定功能引腳。 CRS_DV:此信號(hào)是 MII 接口中 CRS 和 RX_DV 的復(fù)合信號(hào)。
三. 時(shí)鐘電路設(shè)計(jì)
仔細(xì)觀察圖 1 和圖 2,細(xì)心的讀者會(huì)發(fā)現(xiàn)兩者在時(shí)鐘電路上有著明顯的區(qū)別。在 MII 接口電路中,時(shí)鐘由 PHY 向 MAC 提供 (時(shí)鐘源由通訊的一方來提供);在 RMII 接口電路中,MAC 和 PHY 共同使用來 自外部的時(shí)鐘信號(hào)(數(shù)據(jù)的發(fā)送方和接收 方采用同一個(gè)時(shí)鐘源)。 由于 MAC 和 PHY 的通訊速率相對(duì)較快,為保證硬件電路的可靠性,在設(shè)計(jì)中應(yīng)該通過器件的數(shù)據(jù)手冊(cè)了解相關(guān)參數(shù)以確定 具體的電路方式。一般需要注意的有: ·上升時(shí)間/下降時(shí)間 t_rise/t_fall : STM32 的 GPIO 口可以進(jìn)行擺率的設(shè)置,不同擺率下上升時(shí)間和下降時(shí)間是不同的。 尤為需要注意的是,當(dāng)使用 MCO(Main Clock Output 需要了解此功能的讀者 請(qǐng)閱讀參考手冊(cè))對(duì)多個(gè) PHY 提供 時(shí)鐘,需考慮負(fù)載的增加,對(duì)輸出能力的要求的影響。 ·時(shí)鐘抖動(dòng)(短周期)jitter(short term):特別需要注意的是此項(xiàng)參數(shù),不同的 PHY 對(duì)此項(xiàng)參數(shù)的有不同的要求,一般 多要求 jitter 小于幾十個(gè) ps,有些 PHY 的則要求 jitter 小于幾百個(gè) ps。STM32 的 MCO 直接輸出 HSE 的時(shí)鐘抖動(dòng) 一般在 30~40ps,但若使用 PLL 對(duì) HSE 倍頻后,再由 MCO 輸出 會(huì)帶來幾百個(gè) ps 的時(shí)鐘抖動(dòng)。 下面將分別介紹目前在實(shí)踐中應(yīng)用最為廣泛的兩種接口電路。
1.MII 接口設(shè)計(jì)
圖 3 MII 接口設(shè)計(jì)實(shí)例 如圖 3 所示,此系統(tǒng)是典型的 MII 接口電路設(shè)計(jì),PHY 所需的時(shí)鐘由 STM32 的 MCO 管腳輸出(直接輸出 HSE 的信號(hào),沒 有經(jīng)過 PLL 處理)。需保證 MCO 輸出的時(shí)鐘滿足 PHY 的要求。 2.RMII 時(shí)鐘電路
圖 4 RMII 接口設(shè)計(jì)實(shí)例 如圖 4 所示,此系統(tǒng)是典型的 RMII 接口電路設(shè)計(jì),MAC 和 PHY 所需的時(shí)鐘由外部的有源晶振(50MHz)提供,需保證OSC 輸出的時(shí)鐘滿足 MAC 和 PHY 的要求。 四. 結(jié)語 盡管本文討論的是以太網(wǎng)電路的設(shè)計(jì)要點(diǎn),事實(shí)上,在數(shù)字電路接口的設(shè)計(jì)中,了解信號(hào)鏈走向和器件的參數(shù)要求都是必要 的,也只要如此,才可以保證數(shù)字電路接口的硬件可靠性。
文章來源:微信公眾號(hào) 融創(chuàng)芯城(一站式電子元器件、PCB、PCBA購買服務(wù)平臺(tái),項(xiàng)目眾包平臺(tái),方案共享平臺(tái))
|