Ethernet的接口实质是MAC通过MII总线控制PHY的过程
- 当soc不包括mac的时候
soc - mdio接口/spi接口/gpio接口-- mac ---RGMII/RMII---phy -----差分信号-----RJ45接口网线
- 当soc集成mac的时候
soc -- RGMII/RMII ----phy -----差分信号-----RJ45接口网线
|________MDIO/MDCK_____|
// MDIO/MDCK 被称作 MI(Management Interface) 接口 , MI接口用于MAC层与PHY层之间的管理和控制,主要负责PHY层的配置和状态监控
// RGMII/RMII 被称作 MII(Media Independent Interface)接口 , MII是IEEE 802.3标准定义的接口,位于MAC层和PHY层之间,主要用于数据传输
- 注意:
//MDIO是用来传输控制命令的,控制芯片
//RGMII接口是用来传输网络数据的,用来传输从网络或者从芯片来的数据
PHY是 IEEE802.3 中定义的一个标准模块。
-
SOC与MAC及PHY的硬件关系
1.
soc(带mac和phy) -----差分信号-----RJ45接口网线
2.
soc(带mac,不带phy) -- RGMII/RMII ----phy -----差分信号-----RJ45接口网线
3.
soc(不带mac,不带phy) - mdio接口/spi接口/gpio接口-- mac(带phy) -----差分信号-----RJ45接口网线
|________MDIO/MDCK_________________________|
4.
soc(不带mac,不带phy) - mdio接口/spi接口/gpio接口-- mac(不带phy) ---RGMII/RMII---phy -----差分信号-----RJ45接口网线
|________MDIO/MDCK________________________|
// soc 自带mac和phy 也可以用外置的
//stm32 103不带以太网模块,105和107带
//MDIO是用来传输控制命令的,控制芯片
//RGMII接口是用来传输网络数据的,用来传输从网络或者从芯片来的数据
- ENC28J60
ENC28J60集成了MAC控制器和PHY收发器,属于 模型 3,接口为spi,四线两line
除了这个网络芯片,还有 并口形式的RTL8019S,CS8900A等.
-
硬件连接图
-
集成mac的soc与phy的连线
-
ENC28J60硬件ops
需要提供的ops有三个
ENC28J60_Init
ENC28J60_Packet_Receive
ENC28J60_Packet_Send
ENC28J60_Init // 还需要用 ENC28J60_PHY_Write 来初始化灯
1. 初始化spi
2. rset enc
3. 设置 enc
4. 判断是否初始化enc 成功
ENC28J60_Packet_Receive
1.读是否接到包
2.读包的状态(长度)
3.复制包到内存
4.判断是否已经读到包(读硬件)
ENC28J60_Packet_Send
1.复制包到硬件
2.判断是否复制完成