#ethernet #phy #miim #rmii #smi

mdio

管理数据输入/输出的实现

3个版本

0.1.2 2022年10月1日
0.1.1 2020年12月27日
0.1.0 2020年12月27日

#19 in #ethernet


用于 ksz8863

MIT/Apache

18KB
201

mdio Actions状态 Crates.io Crates.io docs.rs

这是一个简化管理数据输入/输出(MDIO)接口访问的API,包括标准媒体独立接口管理(MIIM)协议的实现。

术语

在一般讨论中,MDIO和MIIM经常被用来指代同一事物。在这个crate中,MDIO用来指代双引脚(MDIO,MDC)I/O接口,而MIIM用来指代通过MDIO引脚通信的标准MII管理协议。

通过这种方式区分两者,我们在API中为标准MIIM协议留出了空间,同时还可以支持MDIO接口上的非标准协议,这在某些以太网交换机中并不罕见。

mdio::Readmdio::Write 特性。

这些特性应该在给定16个控制位的情况下可以执行MDIO操作的接口上实现。

这些特性设计用于允许MDIO接口支持标准MIIM以及协议的定制变体。例如,某些以太网交换机通过略微修改标准MIIM协议(即将操作码位设置为0b00)或使用一些PHY地址位来增加寄存器地址的数量,支持扩展寄存器访问,这是很常见的。

请注意,可能无法以允许同时使用集成MAC并支持定制协议的方式直接在某些MCU上实现这些特性。这是因为某些MCU提供的MAC接口仅支持标准MIIM协议。在这些情况下,虽然不是最佳选择,但可以将特性用于“位带”接口。此crate通过bitbang特性提供了一个这样的接口。

特性

  • bitbang:启用bb模块以及提供bb::Mdio类型的mdio::Readmdio::Write特征的位带实现。

所有这些功能都是可选的,默认情况下是禁用的。

依赖项

~18KB