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