3个版本
0.1.2 | 2022年10月1日 |
---|---|
0.1.1 | 2020年12月27日 |
0.1.0 | 2020年12月27日 |
#19 in #ethernet
用于 ksz8863
18KB
201 行
mdio
这是一个简化管理数据输入/输出(MDIO)接口访问的API,包括标准媒体独立接口管理(MIIM)协议的实现。
术语
在一般讨论中,MDIO和MIIM经常被用来指代同一事物。在这个crate中,MDIO用来指代双引脚(MDIO,MDC)I/O接口,而MIIM用来指代通过MDIO引脚通信的标准MII管理协议。
通过这种方式区分两者,我们在API中为标准MIIM协议留出了空间,同时还可以支持MDIO接口上的非标准协议,这在某些以太网交换机中并不罕见。
mdio::Read
和 mdio::Write
特性。
这些特性应该在给定16个控制位的情况下可以执行MDIO操作的接口上实现。
这些特性设计用于允许MDIO接口支持标准MIIM以及协议的定制变体。例如,某些以太网交换机通过略微修改标准MIIM协议(即将操作码位设置为0b00
)或使用一些PHY地址位来增加寄存器地址的数量,支持扩展寄存器访问,这是很常见的。
请注意,可能无法以允许同时使用集成MAC并支持定制协议的方式直接在某些MCU上实现这些特性。这是因为某些MCU提供的MAC接口仅支持标准MIIM协议。在这些情况下,虽然不是最佳选择,但可以将特性用于“位带”接口。此crate通过bitbang
特性提供了一个这样的接口。
特性
bitbang
:启用bb
模块以及提供bb::Mdio
类型的mdio::Read
和mdio::Write
特征的位带实现。
所有这些功能都是可选的,默认情况下是禁用的。
依赖项
~18KB