一文读懂如何使用FPGA驱动PHY芯片

一文读懂如何使用FPGA驱动PHY芯片这里写自定义目录标题如何使用 FPGA 驱动 PHY 芯片前言必要的硬件知识如何确定 PHY 芯片的物理地址和工作模式 如何确定 PHY 芯片的工作模式 如何驱动 PHY 芯片 MDIO 的通讯协议是什么 合理的创建标题 有助于目录的生成如何改变文本的样式插入链接与图片如何使用 FPGA 驱动 PHY 芯片前言笔者因为工作的原因接触到使用 FPGA 驱动 PHY 芯片进行通信 期间接触到了德州仪器的 dp83849 博通公司的 B50610 裕太车通的 YT8512 等芯片 下面以裕太车通的芯片 YT8512 为例来讲解如何使用和驱动 PHY 芯片 必

如何使用FPGA驱动PHY芯片

前言

笔者因为工作的原因接触到使用FPGA驱动PHY芯片进行通信,期间接触到了德州仪器的dp83849,博通公司的B50610,裕太车通等芯片。下面以博通公司的B为例来讲解如何使用和驱动PHY芯片。

必要的硬件知识

对于嵌入式软件开发来说,不讲硬件就讲软件构架的行为都是耍流氓。

如何确定PHY芯片的物理地址?

首先读者要明确一点,PHY芯片的物理地址是什么?这个东西有什么意义? 假如在你使用的电路板子上存在多个PHY芯片,为了区分每个不同的PHY芯片,给定PHY芯片一个独有的地址,从而确定我发送的的控制信号是给哪个PHY芯片的,而这个地址就是PHY芯片的物理地址。根据MDIO的协议,PHY的物理地址是5Bit数据,则理论上来说一根总线最多可以驱动2的5次方,即32个PHY芯片。但是实际上一般不会这么使用,首先在一般的工程中用不到这么多芯片,其次就是FPGA的引脚往往有很多,也不会如此的节省引脚。

那么如何给定PHY芯片的物理地址呢?一般来说,PHY芯片的物理地址都是通过PHY芯片管脚连接的电阻的上拉下拉决定的。即当你板子焊接好后,PHY的物理地址就确定了,除了改变硬件连接之外,没有其它办法改变PHY芯片的物理地址。

PHY芯片有一个POS(英语原文叫PowerOnStrapping ,笔者也不知道对应的中文名词是什么)的过程,即PHY芯片在上电的过程中,通过硬件的连接确定PHY芯片的物理地址,工作模式等等。

如何确定PHY芯片的工作模式?

以博通芯片为例,此芯片支持两种接口:MII和RGMII。在上文提到的POS过程中,根据控制引脚的电阻上拉下拉决定。

如何驱动PHY芯片?

以MII为例

读者可以把PHY芯片的接口简单的理解为两部分,其一为控制接口,包括MDC, MDIO两个管脚;其二为通讯管脚,包括TXCLK, TXD, TXEN, RXCLK, RXD, RXDV等信号。

控制管脚用于了解和控制PHY芯片的工作状态,通过读取和写入寄存器数据的方式了解当前PHY芯片的工作状态。MDIO是一种串行通讯方式,每次读取或者写入16位数据,至于每一位数据代表什么,就请各位读者去看对应芯片的器件手册了。其中MDC起到的是同步时钟的作用,其每个周期应该发送和接收MDIO一个bit数据。以笔者使用的,裕太车通的YT8512的MII规定为例:根据工作模式的不同,如果工作在100M工作模式下,MDC应该为25MHz的时钟,如果工作在10M工作模式下,MDC应该是2。5MHz的时钟。

通讯管脚就更好理解了,就是发送和接收数据的管脚。当发送信号的时候TXEN作为发送信号的使能位,将其置为高电平后只需按照TXCLK时钟把要发送的数据赋给TXD端口就行了;同理,当接收信号的时候当RXDV置为高电平意味着发送的信息已经开始到达PHY芯片,只需按照RXCLK时钟把RXD信号存储起来就好。

MDIO的通讯协议是什么?

图为博通芯片的MII接口

PHY芯片怎么收发数据?

//TODO

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/228672.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午6:28
下一篇 2026年3月16日 下午6:28


相关推荐

  • IUnKNown接口——QueryInterface函数

    IUnKNown接口——QueryInterface函数COM笔记-QueryInterface函数fangyukuan2010.6.1客户同组件的交互都是通过一个接口完成的。在客户查询组件的其他接口时,也是通过接口完成的。这个接口就是IUnknown。它在UNKNWN.H头文件定义:如下       Interface IUnknown       {            virtual HRESULT _

    2022年6月29日
    34
  • impala实战篇

    impala实战篇第 1 章 impala 基本概念 1 什么是 impalaCloude 公司推出 提供对 HDFS Hbase 数据的高性能 低延迟的交互式 SQL 查询功能 基于 Hive 使用内存计算 兼顾数据仓库 具有实时 批处理 多并发等优点 是 CDH 平台首选的 PB 级大数据实时查询分析引擎 1 1Impala 的优缺点 1 1 1 优点基于内存运算 不需要把中间结果写入磁盘 省掉了大量的 I O 开销 无需转换 MapReduce 直接访问存储在 HDFS HBase 中的数据进行作业调度 速度快 使用了支持

    2025年9月3日
    5
  • OpenClaw安装教程[源码]

    OpenClaw安装教程[源码]

    2026年3月16日
    1
  • 不平衡数据处理之SMOTE、Borderline SMOTE和ADASYN详解及Python使用

    不平衡数据处理之SMOTE、Borderline SMOTE和ADASYN详解及Python使用  不平衡数据在金融风控、反欺诈、广告推荐和医疗诊断中普遍存在。通常而言,不平衡数据正负样本的比例差异极大,如在Kaggle竞赛中的桑坦德银行交易预测和IEEE-CIS欺诈检测数据。对模型而言,不均衡数据构建的模型会更愿意偏向于多类别样本的标签,实际应用价值较低,如下图所示,为在不均衡数据下模型预测的概率分布。  不平衡数据的处理方法,常见方法有欠采样(under-sampling)和过采样(…

    2025年8月25日
    22
  • 密码库LibTomCrypt学习记录——(1.2)分组密码算法——使用前注册算法register_cipher

    密码库LibTomCrypt学习记录——(1.2)分组密码算法——使用前注册算法register_cipher在使用某个密码算法前需要先注册 然后才能使用 密码算法索引值的获取步骤步骤 1 利用 intregister cipher conststructl cipher descriptor cipher 注册算法 步骤 2 利用 intfind cipher constchar name 获取已注册的密码算法索引值 步骤 3 使用完毕后利用 intunregiste ciphe

    2026年3月18日
    1
  • rsyslogd关闭_系统驱动丢失无法开机

    rsyslogd关闭_系统驱动丢失无法开机最近发现跑keepalived的几台机器的日志总是打印不完,还好给抛了一个报错,信息如下:[root@yw_lvs2_backupetc]#tail-n1000000/var/log/messages-20130526|grep”rate-limiting”May2011:43:55yw_lvs2_backuprsyslogd-2177:imuxsockbeginst…

    2022年8月15日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号