STM32F407自帶有10/100Mbit/s的以太網MAC內核,STM32F407的ETH框圖如下:
F407的MAC有3種接口:SMI、MII和RMII。下面依次介紹這3種接口。
①SMI接口
SMI接口為站管理接口,程序中可以通過這個接口來訪問PHY寄存器。SMI接口有兩條線:數據線MDIO和時鍾線MDC。該接口可支持訪問最多32個PHY。
MDC:周期性時鍾,提供以最大頻率2.5MHZ傳輸數據時的參考時序,在空閑狀態下,SMI管理接口將MDC信號的時鍾信號驅動為低電平。
MDIO:數據輸入/輸出比特流,用於通過MDC時鍾信號向PHY設備同步傳輸信息。
②MII接口
MII接口:介質獨立接口 (MII) 定義了 10 Mbit/s 和 100 Mbit/s 的數據傳輸速率下 MAC 子層與 PHY 之間的互連。 MII 包括 16 個數據和控制信號的引腳。
TX_CLK和RX_CLK為發送和接收連續時鍾,當速率為10Mbit/s時為2.5MHZ,速率為100Mbit/s時為25MHZ。
要生成TX_CLK和RX_CLK時鍾,必須向外部PHY提供25MHZ時鍾,通常我們使用25M的晶振,也可以使用STM32F4xx的MCO引腳輸出25MHZ的時鍾。
③RMII接口
介質獨立接口 (RMII) 規范降低了 10/100 Mbit/s 下微控制器以太網外設與外部 PHY 間的 引腳數。 RMII 規范將引腳 數減少為 7 個(引腳數減少 62.5%)。不過RMII接口的參考時鍾必須是50MHZ!
RMII時鍾源: 通常使用50MHZ的時鍾驅動PHY或使用嵌入式PLL生成50MHZ頻率來驅動PHY。