PHY芯片快速深度理解
摘要:
什么是phy 為什么要熟悉RJ45網口 網絡七層協議 兩個模塊進行通信 什么是MDIO協議 MDIO的作用 MDIO沒那么重要 MDIO讀寫時序 為什么說讀取的phy最多32個
mido協議即SMI協議,SMI協議也是一種通信協議類似與I2C協議但是通信方式不一樣。SMI包含兩根信號線,一個MDC時鐘線,一個MDIO雙向傳輸的數據線,
如圖為SMI應用框圖。STA設備通過MDIO接口與PHY通信。STA(StaTIon Management)為主控設備,比如MCU、MAC、ONU等。PHY為從設備。一個STA最多管理32個PHY。MDC信號由STA控制,MDIO信號根據通信方式的不同可以由STA或者PHY接管控制。如圖通常MDIO會接一個電阻上拉至接口電源。
MDIO沒那么重要
MDIO在上面說到的兩個模塊通信,我提到了 arm芯片和網卡芯片直接需要,那么這個真的有必要嗎?其實沒必要連接!!!
換個話說 不連接也可以使得網絡暢通,因為網絡的數據傳輸時靠RGMII不是靠MDIO,MDIO的作用僅僅只是用來查看一些狀態和功能,還有簡單的控制,而這些簡單的控制是完全可以有網卡芯片內置去寫死,arm層只要和網卡的寫的一直就可以通訊。
但是為什么很多時候需要通過mdio來進行讀寫控制,這個只是在網絡通訊正常后的升級優化,用來方便查看狀態,就像寫了個前端網頁來看后臺數據。
如果mido沒有讀通,或者讀取的數據是0xfffff,那么不一定是mdio的問題,很多時候是網卡本身沒有啟動!
MDIO讀寫時序
Preamble:32bits的前導碼
Start:2bit的開始位。
OP Code:2bits的操作碼,10表示讀,01表示寫。
PHYAD:5bits的PHY地址。
REGAD:5bits的寄存器地址,即要讀或寫的寄存器。
Turn Around:2bits的TA,在讀命令中,MDIO在此時由MAC驅動改為PHY驅動,并等待一個時鐘周期準備發送數據。在寫命令中,不需要MDIO方向發生變化,則只是等待兩個時鐘周期準備寫入數據。
Data:16bits數據,在讀命令中,PHY芯片將讀到的對應PHYAD的REGAD寄存器的數據寫到Data中,在寫命令中,MAC將要寫入對應PHYAD的REGAD寄存器的值寫入Data中。
Idle:空閑狀態,此時MDIO無源驅動,處高阻狀態,但一般用上拉電阻使其處在高電平,上拉電阻一般為1.5K。
為什么說讀取的phy最多32個