电子产业一站式赋能平台

PCB联盟网

搜索
查看: 145|回复: 1
收起左侧

如何使用gpio模拟mdio通信?

[复制链接]

317

主题

317

帖子

3149

积分

四级会员

Rank: 4

积分
3149
发表于 2024-11-11 11:51:00 | 显示全部楼层 |阅读模式
点击左上方蓝色“一口Linux”,选择“设为星标
第一时间看干货文章
?【干货】嵌入式驱动工程师学习路线?【干货】Linux嵌入式知识点-思维导图-免费获取?【就业】一个可以写到简历的基于Linux物联网综合项目?【就业】找工作简历模版

0mkikolghs2640129824858.gif

0mkikolghs2640129824858.gif

一、前言 实际项目开发中,由于设计原因,会将phy的mdio引脚连接到SoC的2个空闲gpio上,
这样就无法通过Gmac自有的架构实现修改phy,
因此只能通过GPIO模拟的方式实现MDIO,
好在Linux支持MDIO via GPIO功能。
该功能需要用到内核驱动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内核访问PHY寄存器接口,它由两根线组成,双工:
  • MDC(Management Data Clock)为时钟,
  • MDIO(Management Data Input/Output)为双向数据通信,
    原理上跟I2C总线很类似,也可以通过总线访问多个不同的phy。
    MDIO协议是以太网标准IEEE802.3中专门用于MAC和PYH之间管理的串行接口总线,该接口主要用于MAC控制器对PYH层的状态读取和设置(寄存器操作)、获取链路状态,控制物理层协商等操作。
    MDC/MDIO基本特性:
  • 两线制    :MDC(时钟线)和MDIO(数据线)。分主从设备。
  • 时钟频率:2.5MHz
  • 通信方式:总线制,可同时接入的PHY数量为32个
  • 通过SMI接口,MAC芯片主动的轮询PHY层芯片,获得状态信息,并发出命令信息。其中主设备称作STA,从设备称作MDI,一个主设备可以对多个从设备进行命令读写操作。

    155df4bxsuu640129824958.png

    155df4bxsuu640129824958.png

    三、mdio协议波形 1、MDIO接口数据帧在IEEE802.3协议中,把MDIO接口数据帧分为两种,一种是Clause22,另一种是Clause45
    前者主要用于百兆千兆以太网,后者用于千兆以上的以太网。
    2、Clause22
  • 回复

    使用道具 举报

    0

    主题

    4

    帖子

    17

    积分

    一级会员

    Rank: 1

    积分
    17
    发表于 2024-11-12 19:19:17 | 显示全部楼层
    不错。。。。。。。。。。。
    回复 支持 反对

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表