電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 62|回復: 1
收起左側(cè)

如何使用gpio模擬mdio通信?

[復制鏈接]

277

主題

277

帖子

2400

積分

三級會員

Rank: 3Rank: 3

積分
2400
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 4 天前 | 只看該作者 |只看大圖 回帖獎勵 |正序瀏覽 |閱讀模式
點擊左上方藍色“一口Linux”,選擇“設為星標
第一時間看干貨文章
?【干貨】嵌入式驅(qū)動工程師學習路線?【干貨】Linux嵌入式知識點-思維導圖-免費獲取?【就業(yè)】一個可以寫到簡歷的基于Linux物聯(lián)網(wǎng)綜合項目?【就業(yè)】找工作簡歷模版


一、前言 實際項目開發(fā)中,由于設計原因,會將phy的mdio引腳連接到SoC的2個空閑gpio上,
這樣就無法通過Gmac自有的架構(gòu)實現(xiàn)修改phy,
因此只能通過GPIO模擬的方式實現(xiàn)MDIO,
好在Linux支持MDIO via GPIO功能。
該功能需要用到內(nèi)核驅(qū)動mdio-bitbang.c和mdio-gpio.c。
本例 :
  • 平臺:復旦微
  • kernel 版本:linux 4.14.55-xxxxx
  • phy芯片yt8521
  • phy連接到gmac0
  • mdio總線連接到:gpioc 2
    portc 3
    二、mdio基礎概念 1、SMI接口SMI是MAC內(nèi)核訪問PHY寄存器接口,它由兩根線組成,雙工:
  • MDC(Management Data Clock)為時鐘,
  • MDIO(Management Data Input/Output)為雙向數(shù)據(jù)通信,
    原理上跟I2C總線很類似,也可以通過總線訪問多個不同的phy。
    MDIO協(xié)議是以太網(wǎng)標準IEEE802.3中專門用于MAC和PYH之間管理的串行接口總線,該接口主要用于MAC控制器對PYH層的狀態(tài)讀取和設置(寄存器操作)、獲取鏈路狀態(tài),控制物理層協(xié)商等操作。
    MDC/MDIO基本特性:
  • 兩線制    :MDC(時鐘線)和MDIO(數(shù)據(jù)線)。分主從設備。
  • 時鐘頻率:2.5MHz
  • 通信方式:總線制,可同時接入的PHY數(shù)量為32個
  • 通過SMI接口,MAC芯片主動的輪詢PHY層芯片,獲得狀態(tài)信息,并發(fā)出命令信息。其中主設備稱作STA,從設備稱作MDI,一個主設備可以對多個從設備進行命令讀寫操作。

    三、mdio協(xié)議波形 1、MDIO接口數(shù)據(jù)幀在IEEE802.3協(xié)議中,把MDIO接口數(shù)據(jù)幀分為兩種,一種是Clause22,另一種是Clause45。
    前者主要用于百兆千兆以太網(wǎng),后者用于千兆以上的以太網(wǎng)。
    2、Clause22
  • 回復

    使用道具 舉報

    0

    主題

    4

    帖子

    17

    積分

    一級會員

    Rank: 1

    積分
    17
    沙發(fā)
    發(fā)表于 3 天前 | 只看該作者
    不錯。。。。。。。。。。。
    回復 支持 反對

    使用道具 舉報

    發(fā)表回復

    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規(guī)則


    聯(lián)系客服 關注微信 下載APP 返回頂部 返回列表