人人干人人模-人人干人人看-人人干人人搞-人人干人人干人人干-人人干人人干-人人干人人插

您現(xiàn)在的位置:首頁 > 服務支持 > 資訊動態(tài)資訊動態(tài)

PHY芯片快速深度理解

 摘要:

  • 什么是phy
  • 為什么要熟悉RJ45網口
  • 網絡七層協(xié)議
  • 兩個模塊進行通信
  • 什么是MDIO協(xié)議
  • MDIO的作用 
  • MDIO沒那么重要
  • MDIO讀寫時序
  • 為什么說讀取的phy最多32個


什么是phy
物理層芯片稱為PHY、數(shù)據(jù)鏈路層芯片稱為MAC。
    可以看到PHY的數(shù)據(jù)是RJ45網絡接口(網線口)穿過了的差分信號,而PHY作用就是將差分信號轉為數(shù)字信號,這塊內容不用深究,制造商都設計好了。那我們干什么呢?(主要是對phy芯片進行模式選擇,比如工作速率,工作模式)

為什么要熟悉RJ45網口
    上面說到針對phy芯片我們只要進行模式選擇(下文海翎光電的小編會介紹使用mdio接口,通過寄存器控制)那模式選擇后,如何查看是否有效呢?最簡單直接的就是通過RJ45網口的指示燈查看。

1.png

   RJ45 座子上一般有兩個燈,一個黃色(橙色),一個綠色,綠色亮的話表示網絡連接正常,黃色閃爍的話說明當前正在進行網絡通信,黃燈閃動頻率快表示網速好,這兩個燈由 PHY 芯片控制。
    如果不懂物理層和數(shù)據(jù)鏈路層可以和海翎光電的小編一起看一下網絡七層協(xié)議

網絡七層協(xié)議
2.png

兩個模塊進行通信
    下圖是兩個主控直接的通信,比如我們的電腦和路由器 ,但是如果沒有中間的介質還能連接網絡嗎?答案是可以的
    如果phy芯片沒有,那么可以直接通過兩個mac連接進行通信,之所以需要mac 、phy、變壓器的目的是為了轉換數(shù)據(jù)類型適配所以的網線,但是在一些電路上,沒必要加這么多東西
    比如搭載 Linux系統(tǒng)的arm芯片想要網絡,可以直接通過mac和網卡芯片連接獲取,這時候就需要通過RGMII接口或者MII接口 和 MDIO 連接網卡芯片。
(網卡芯片內置也是mac+phy,有的只有mac 層這個要看具體的手冊)
3.png

什么是MDIO協(xié)議

    mido協(xié)議即SMI協(xié)議,SMI協(xié)議也是一種通信協(xié)議類似與I2C協(xié)議但是通信方式不一樣。SMI包含兩根信號線,一個MDC時鐘線,一個MDIO雙向傳輸?shù)臄?shù)據(jù)線,

    如圖為SMI應用框圖。STA設備通過MDIO接口與PHY通信。STA(StaTIon Management)為主控設備,比如MCU、MAC、ONU等。PHY為從設備。一個STA最多管理32個PHY。MDC信號由STA控制,MDIO信號根據(jù)通信方式的不同可以由STA或者PHY接管控制。如圖通常MDIO會接一個電阻上拉至接口電源。

4.png

MDIO的作用 
    從上面的連接圖可以看到MDIO是用來連接主設備和多個PHY設備,并且通過MDIO來傳輸數(shù)據(jù)。那么傳輸?shù)氖菙?shù)據(jù)是哪些呢?主要是傳輸鏈接狀態(tài)、傳輸速度與選擇、斷電、低功率休眠狀態(tài)、TX/RX模式選擇、自動協(xié)商控制、環(huán)回模式控制等。

MDIO沒那么重要

    MDIO在上面說到的兩個模塊通信,我提到了 arm芯片和網卡芯片直接需要,那么這個真的有必要嗎?其實沒必要連接!!!

    換個話說 不連接也可以使得網絡暢通,因為網絡的數(shù)據(jù)傳輸時靠RGMII不是靠MDIO,MDIO的作用僅僅只是用來查看一些狀態(tài)和功能,還有簡單的控制,而這些簡單的控制是完全可以有網卡芯片內置去寫死,arm層只要和網卡的寫的一直就可以通訊。

    但是為什么很多時候需要通過mdio來進行讀寫控制,這個只是在網絡通訊正常后的升級優(yōu)化,用來方便查看狀態(tài),就像寫了個前端網頁來看后臺數(shù)據(jù)。

    如果mido沒有讀通,或者讀取的數(shù)據(jù)是0xfffff,那么不一定是mdio的問題,很多時候是網卡本身沒有啟動!

MDIO讀寫時序

5.png

Preamble:32bits的前導碼

Start:2bit的開始位。

OP Code:2bits的操作碼,10表示讀,01表示寫。

PHYAD:5bits的PHY地址。

REGAD:5bits的寄存器地址,即要讀或寫的寄存器。

Turn Around:2bits的TA,在讀命令中,MDIO在此時由MAC驅動改為PHY驅動,并等待一個時鐘周期準備發(fā)送數(shù)據(jù)。在寫命令中,不需要MDIO方向發(fā)生變化,則只是等待兩個時鐘周期準備寫入數(shù)據(jù)。

Data:16bits數(shù)據(jù),在讀命令中,PHY芯片將讀到的對應PHYAD的REGAD寄存器的數(shù)據(jù)寫到Data中,在寫命令中,MAC將要寫入對應PHYAD的REGAD寄存器的值寫入Data中。

Idle:空閑狀態(tài),此時MDIO無源驅動,處高阻狀態(tài),但一般用上拉電阻使其處在高電平,上拉電阻一般為1.5K。

 

為什么說讀取的phy最多32個

  因為mdio中讀取的phy只提供5bit的字節(jié)即最高11111 轉成十進制就是31即0-31就是32個,但這是從讀取的方式判斷的,而mdio讀取是依照phy芯片本身地址空間就5為。
為什么說reg地址最多32個
    同樣mdio中讀取的reg只提供5bit的字節(jié)即最高11111 轉成十進制就是31即0-31就是32個
     PHY 芯片寄存器地址空間為 5 位,地址 0-31 共 32 個寄存器, IEEE 定義了 0-15 這 16 個寄存器的功能, 16~31 這 16 個寄存器由廠商自行實現(xiàn)。也就是說不管你用的哪個廠家的 PHY 芯片,其中 0~15 這 16 個寄存器是一模一樣的。僅靠這 16 個寄存器是完全可以驅動起 PHY 芯片的,至少能保證基本的網絡數(shù)據(jù)通信。

以上內容海翎光電的小編了大量的參考文獻和一步步的實踐總結的經驗,通過實踐,把每一層都走一遍,把變壓器去掉,把phy去掉,linux系統(tǒng)的網卡函數(shù)看了一遍,phy芯片的手冊有看了很多。寫的淺顯易懂因為想幫助到大家。

主站蜘蛛池模板: 免费被黄网站在观看 | 免费在线成人 | 亚洲欧美日韩综合 | 你懂的在线视频观看 | 一级人与动毛片免费播放 | 一级做a爱过程免费视频韩国 | 综合色久七七综合七七蜜芽 | 午夜福免费福利在线观看 | 一级色视频| 丁香六月天婷婷 | 日本高清不卡一区久久精品 | 在线国产资源 | 欧美日韩 国产区 在线观看 | 亚洲网址在线观看 | 欧美特黄一级片 | 一级爱做片免费观看久久 | 亚洲一区二区免费视频 | 亚洲免费高清视频 | 91福利在线观看视频 | 欧美中文综合在线视频 | 亚洲一区www | 日韩在线二区 | 九九色网站 | 国产亚洲精品日韩已满十八 | 国产精品三级 | 国产手机在线精品 | 午夜精品在线视频 | 免费一级a毛片在线播 | 日本一区二区视频在线 | 国产亚洲在线观看 | 日韩亚洲国产欧美精品 | 欧美成人三级网站 | 亚州黄色网址 | 亚洲欧美另类久久久精品能播放的 | 亚洲欧美在线免费 | 天天操天天做 | 免费看黄色一级毛片 | 国产精品亚洲欧美大片在线看 | 又黄又刺激的视频 | 久久亚洲精品视频 | 日韩久久精品 |