一种实现I2C和MDIO通信接口协议转换的方法[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 201610480916.0
(22)申请日 2016.06.27
(71)申请人 武汉电信器件有限公司
地址 430000 湖北省武汉市洪山区邮科院
路88号
(72)发明人 陈龙 张春艳 王振 
(74)专利代理机构 北京中北知识产权代理有限
公司 11253
代理人 段秋玲
(51)Int.Cl.
G06F  13/38(2006.01)
(54)发明名称
一种实现I2C和MDIO通信接口协议转换的方
(57)摘要
本发明公开了一种实现I2C和MDIO通信接口
协议转换的方法,该方法为重新制定I2C通信帧
结构,使其满足MDIO寄存器访问,从而实现实时
转换;或者,基于SFP模块的内部寄存器,使用预
留的从地址或者寄存器提供MDIO的访问接口,由
主机通过寄存器实现MDIO数据的访问。该方法实
现了IEEE802.3标准上第45章MDIO通信方式与传
统I2C通信的协议转换,方便用于10G以上带PHY
的模块产品设计,直接沿用原来模块的I2C接口,
有效降低了产品设计成本。权利要求书2页  说明书6页  附图2页CN 106201944 A 2016.12.07
C N  106201944
A
1.一种实现I2C和MDIO通信接口协议转换的方法,其特征在于:该方法为重新制定I2C 通信帧结构,使其满足MDIO寄存器访问,从而实现实时转换;或者,基于SFP模块的内部寄存器,使用预留的从地址或者寄存器提供MDIO的访问接口,由主机通过寄存器实现MDIO数据的访问。
2.根据权利要求1所述的一种实现I2C和MDIO通信接口协议转换的方法,其特征在于,所述重新制定I2C通信帧结构,使其满足MDIO寄存器访问包括如下步骤:
1)对一个寄存器进行写入操作:I2C主机发送起始信号后,发送从地址+写入,收到从机ACK信号之后,发送Device Address,收到从机ACK之后,再发送两个字节的Register Address,高8位在前,再发送需要写入该寄存器的数据,高8位在前,最后发送结束信号;
2)对一个寄存器进行读取操作:I2C主机发送起始信号后,发送从地址+写入,收到从机ACK信号之后,
发送Device Address,收到从机ACK之后,再发送两个字节的Register Address,高8位在前,然后发送结束信号;
3)读取数据:I2C主机发送起始信号后,发送从地址+读取,收到从机ACK信号之后,从I2C总线上读取一个字节,该字节为读取数据的高8位,主机发送ACK信号,然后继续读取一个字节,该字节为读取数据的低8位,主机发送NACK信号,表示读取完毕,最后发送结束信号。
3.根据权利要求2所述的一种实现I2C和MDIO通信接口协议转换的方法,其特征在于,所述步骤3)中,读取的两次通信之间,需要留足够的延时,以便于I2C从机完成MDIO数据的获取。
4.根据权利要求1所述的一种实现I2C和MDIO通信接口协议转换的方法,其特征在于,基于SFP模块的内部寄存器,使用预留的从地址或者寄存器提供MDIO的访问接口,由主机通过寄存器实现MDIO数据的访问包括如下步骤:
1)对一个寄存器进行写入操作:
Step1.设置待访问的DEVAD,
Step2.设置待访问的Register Address,
Step3.设置要写入的16bit数值Write Data,
Step4.写入Command命令,
Step5.等待命令执行,
Step6.查询执行结果,
如果状态为Busy,则重复Step5和Step6,
如果状态为Fail,则表示命令执行失败,
如果状态为Complete,则表示命令执行成功;
2)对一个寄存器进行读取操作:
Step1.设置待访问的DEVAD,
Step2.设置待访问的Register Address,
植物蛋白提取Step3.写入Command命令,
陶土面砖Step4.等待命令执行,
Step5.查询执行结果,
如果状态为Busy,则重复Step4和Step5,
如果状态为Fail,则表示命令执行失败,
如果状态为Complete,则表示命令执行成功,继续执行Step6,Step6.读取数据。
一种实现I2C和MDIO通信接口协议转换的方法
技术领域
[0001]本发明涉及一种通信协议相互转换和对接的方法,具体是一种实现I2C和MDIO通信接口协议转换的方法,属于电子器件技术领域。
背景技术
[0002]一般而言,以太网通信用的PHY芯片,通常都支持MDIO接口来实现内部寄存器的访问。目前的高速交换机设备广泛使用SFP接口模块来进行数据传输。SFP模块中有一种RJ45Copper电接口模块,其内部都集成了一个PHY芯片。SFP模块对外的管理通信接口协议是I2C,PHY芯片的对外管理通信接口是MDIO,两者不能直接对接。
[0003]系统设备一般都不能直接访问PHY内部寄存器,而是通过SFP模块内部的MCU来实现功能的配置。但是由于系统调试及实时监测的需要,系统设备需要能够直接对PHY内部寄存器进行读取和修改。
[0004]目前,对于1000M以下速率的PHY芯片,MDIO通信协议符合IEEE802.3ae的第22章规定,其访问方式如图1所示。其中,PHYAD只是产品的物理地址,一般由硬件管脚决定;REGAD 是寄存器地址,只有五个bit,即最多有32个寄存器。由于内部寄存器数量较少,所以可直接通过I2C的一个256字节的寻址空间来实现。一般使用0xAC的I2C从地址,从而达到与SFP的I2C通信接口模式兼容。
[0005]对于10Gbpc及以上的应用,IEEE802.3ae标准中对于MDIO通信接口标准有变化,定义在第45章,如图2和图3所示。其中,PRTAD是指产品的物理地址,通常由硬件管脚决定;DEVAD指设备地址,支持32种不同类型的寄存器。每一个Device Address都对应有65536个寄存器(Regsiter),所以有专门的通信帧(Frame)来对寄存器地址(Address)来进行设置。基于这种情况,就没有办法使用I2C的一个从地址来实现PHY寄存器的直接访问。然而,10G BASE_T的SFP模块中必须使用该种PHY芯片,也需要支持PHY芯片寄存器的访问。因此,需要一种I2C接口到MDIO接口的转换机制,从而实现通过I2C接口访问PHY的寄存器。
发明内容
[0006]针对上述现有技术存在的问题,本发明提供一种实现I2C和MDIO通信接口协议转换的方法,该方法通过在10G以上PHY芯片的MDIO与I2C之间形成转换机制,从而实现物理连接。
[0007]本发明通过以下技术方案来实现上述目的:一种实现I2C和MDIO通信接口协议转换的方法,该方法为重新制定I2C通信帧结构,使其满足MDIO寄存器访问,从而实现实时转换;或者,基于SFP模块的内部寄存器,使用预留的从地址或者寄存器提供MDIO的访问接口,由主机通过寄存器实现MDIO数据的访问。
七芯电缆
[0008]进一步,所述重新制定I2C通信帧结构,使其满足MDIO寄存器访问包括如下步骤:[0009]1)对一个寄存器进行写入操作:I2C主机发送起始信号后,发送从地址+写入,收到从机ACK信号之后,发送De vi ce Add ress,收到从机ACK之后,再发送两个字节的二联件
RegisterAddress,高8位在前,再发送需要写入该寄存器的数据,高8位在前,最后发送结束信号;
[0010]2)对一个寄存器进行读取操作:I2C主机发送起始信号后,发送从地址(+写入,收到从机ACK信号之后,发送Device Address,收到从机ACK之后,再发送两个字节的RegisterAddress,高8位在前,然后发送结束信号;
[0011]3)读取数据:I2C主机发送起始信号后,发送从地址+读取,收到从机ACK信号之后,从I2C总线
上读取一个字节,该字节为读取数据的高8位,主机发送ACK信号,然后继续读取一个字节,该字节为读取数据的低8位,主机发送NACK信号,表示读取完毕,最后发送结束信号。
[0012]所述步骤3)中,读取的两次通信之间,需要留足够的延时,以便于I2C从机完成MDIO数据的获取。
[0013]基于SFP模块的内部寄存器,使用预留的从地址或者寄存器提供MDIO的访问接口,由主机通过寄存器实现MDIO数据的访问包括如下步骤:
[0014]1)对一个寄存器进行写入操作:
造纸废水处理工艺
[0015]Step1.设置待访问的DEVAD:
[0016]将DEVAD值写入I2C A2 Page的Byte 0x70,
[0017]Step2.设置待访问的Register Address:
[0018]将16bit Register Address值分别写入I2C A2 Page的Byte 0x71和0x72,[0019]MSB写入0x71,LSB写入0x72,
[0020]Step3.设置要写入的16bit数值Write Data
[0021]将16bit Write Data值分别写入I2C A2 Page的Byte 0x73和0x74,
[0022]MSB写入0x73,LSB写入0x74,
[0023]Step4.写入Command命令
[0024]将值0x01写入I2C A2 Page的Byte 0x6E,
[0025]Step5.等待命令执行
[0026]Step6.查询执行结果
[0027]读取A2 Page的Byte 0x6F,
[0028]如果状态为Busy,则重复Step5和Step6,
吸油烟机止回阀[0029]如果状态为Fail,则表示命令执行失败,
[0030]如果状态为Complete,则表示命令执行成功。
[0031]2)对一个寄存器进行读取操作:
[0032]Step1.设置待访问的DEVAD:
[0033]将DEVAD值写入I2C A2 Page的Byte 0x70,
[0034]Step2.设置待访问的Register Address:
[0035]将16bit Register Address值分别写入I2C A2 Page的Byte 0x71和0x72 [0036]MSB写入0x71,LSB写入0x72,
[0037]Step3.写入Command命令
[0038]将值0x02写入I2C A2 Page的Byte 0x6E,
[0039]Step4.等待命令执行

本文发布于:2024-09-21 22:57:55,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/234298.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:寄存器   访问   发送   实现   方法
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议