Marvell交换机芯片SMI接口读写协议
Marvell的88E6XXX系列交换机芯片基本都提供SMI(Serial Management Interface)接口。
SMI接口使用2线串行通信,一个MDC提供时钟,一个MDIO为双向数据引脚。
外部CPU通过这2个引脚访问芯片内部的寄存器。
SMI接口的通信时序如图所示:
开始通信前要发送32个时钟做为前导帧,操作结束后同样也发送32个时钟作为空闲。空闲期间MDIO引脚保持高电平。
通信数据包含:
2bit起始位,
2bit读写操作码,
5bit设备地址,
5bit寄存器地址,
2bit读写转换,
16bit寄存器数据。
SMI寻址方式又分为2种,单芯片模式和多芯片模式。
单芯片模式:是直接通过读写命令访问内部寄存器。
多芯片模式:多个芯片并联在同一条SMI总线上,类似于I2C,通过芯片地址来访问。
由于多了一个芯片地址,只能以间接的方式访问内部寄存器。
此时的设备地址是芯片地址,寄存器地址只能是0x00或0x01。
把要访问的内部寄存器地址和设备地址写入0x00(Command Register),
把要写入的数据写入0x01(Data Register),或者从0x01(Data Register)读出内部数据。
如图所示:Command Register的bit[9:5]写入的是设备地址,这个地址就是单芯片模式的SMI设备地址,bit[4:0]写入的是寄存器地址,和单芯片模式的SMI寄存器地址一样。
然后读回Command Register的bit15,如果为0表示操作完成,此时可以从Data Register读回数据。
芯片内部寄存器地址解读:
如下图所示,是某芯片手册里的寄存器地址表。
顶部的0到1D表示设备地址。左侧的0到1F是寄存器地址。
比如设备地址10,寄存器地址0,那就是Port Status(端口1的状态)。
Marvell交换机芯片SMI接口读写协议相关推荐
- RK3399驱动开发 | 21 -Marvell交换机芯片88E6390X调试(基于linux主线5.4.32内核)
一.88E6390X 1. 芯片框图 88E6390X芯片是Marvell的一款11端口交换器芯片,有1个CPU端口.8个10/100/1000Mbsp以太网端口.两个XAUI/RXAUI/2500光 ...
- USB-C接口 OTG协议芯片 支持同时传输数据充电
TYPE-C接口 OTG协议芯片 支持同时传输数据充电.乐得瑞科技推出LDR6028A 针对 USB Type-C 标准中的 Bridge 设备而开发的 USB-C DRP 接口 USB PD 通信芯 ...
- Marvell 88E1111PHY芯片简介
1.PHY芯片简介 PHY芯片在OSI协议栈中属于最底层的物理层,与其它层的关系图如下: 从硬件上来说,一般PHY芯片为模数混合电路,负责接收电.光这类模拟信号,经过解调和A/D转换后通过MII接口将 ...
- STM32网络之SMI接口
目录 01.以太网简介 02.STM32F207的ETH介绍 03.SMI接口 3.1.站管理接口:SMI 3.2.SMI帧结构 3.3.SMI写操作 3.4.SMI读操作 3.5.SMI时钟选择 0 ...
- Marvell交换芯片88E6390驱动开发
作者 QQ群:852283276 微信:arm80x86 微信公众号:青儿创客基地 B站:主页 https://space.bilibili.com/208826118 参考 Marvell交换芯片8 ...
- Marvell交换芯片88E6321/88E6320驱动总结-硬件篇
芯片特性 Marvell 88E6321/88E6320 是一个7-Port千兆以太网交换芯片.支持最新的IEEEE802.1 Audio Video Bridging标准. 芯片包含两个10.100 ...
- BCM ESW芯片和Marvell CAT芯片的比较
我曾经分别对BCM的ESW系列芯片和Marvell的XCAT芯片有一段时间的开发经历,这两块芯片在共同支持的功能上没有什么大的不同,但是在硬件实现上有着很大的区别,现在我跟进个人感受总结他们的不同,希 ...
- Marvell交换芯片88E6321/88E6320驱动总结-寄存器篇
由于我在项目中将该芯片作为PHY和SERDES使用,因此本文内容主要还是围绕PHY和SERDES的相关功能,至于其他功能则没有进行深入研究. 工作模式 在之前的硬件篇中有提到,该芯片有两种寻址模式:单 ...
- 各种交换机的数据接口类型
各种交换机的数据接口类型 作为局域网的主要连接设备,以太网交换机成为应用普及最快的网络设备之一,同时,也是随着这种快速的发展,交换机的功能不断增强,随之而来则是交换机端口的更新换代以及 ...
最新文章
- Go 学习笔记(21)— 标准库 os 操作文件(新建、打开、写入、读取、删除、关闭文件)
- 2018-3-31 文章(ELM-Chinese-Brief)原文
- 有点郁闷,但是又不能表现出来,好难过
- 不得不知的小程序基本知识
- MVC架构 在Android中的使用
- 软件开发人员该如何深入理解自己的代码
- 还原数据库:The backup set holds a backup of a database other than the existing database……
- lua os.date函数定义和示例
- 科技复原,让 3000 多前年的木乃伊「发声」
- access找不到输入表或者dual_在Access窗体中显示指定路径的图片
- OFBiz的探索进阶
- oracle如何判断奇数偶数_图解面试题:如何分析中位数?
- strlen()实现
- fatal io error 11错误
- 判断输入的年月日是否合法
- Office Scan(OSCE)10.0客户端手动卸载
- 苹果无法安装计算机,苹果电脑安装win7报错误,代码状态0xc0000428,信息:windows无法验证此文件的数字签名,applessd.sys...
- 【Arcgis】Extract by Mask时出错,ERROR 999999
- 技术管理必备之沟通机制
- Apache commons lang简介