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

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

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

如何使用gpio模擬mdio通信?

[復(fù)制鏈接]

277

主題

277

帖子

2400

積分

三級(jí)會(huì)員

Rank: 3Rank: 3

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


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

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

    主題

    4

    帖子

    17

    積分

    一級(jí)會(huì)員

    Rank: 1

    積分
    17
    沙發(fā)
    發(fā)表于 7 天前 | 只看該作者
    不錯(cuò)。。。。。。。。。。。

    發(fā)表回復(fù)

    本版積分規(guī)則


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