- 目的:ZYNQ的PL端通过光纤或者电口传输数据,使用PS端的以太网完成数据交互。并且可通过同一个serdes输出数据。
- 条件:掌握传输接口以及传输通道、了解传输协议、通过协议控制ip核发送数据。
- 查到的实现方案:通过ps端的RGMII接MIO与外界通信。 使用ps端的GMII通过EMIO,与外界通信,而EMIO又可以转其他接口。
接口介绍:
首先主要了解解以太网的接口,主要有MII、RGMII、GMII、SGMII、TBI核RTBI。
对于接口,主要掌握的是每个管教都有什么用,用到哪些管教,管教之间怎么设计。
MII是传统的以太网接口。通过数据传输随路时钟以及使能信号简单控制数据发送。如下图。其中通过TX_er来销毁传输包。
其中MII(25M)是只有四根数据线,GMII则使用八根数据线(125M),相比之下数据增加一倍,SGMII是属于串行高速信号,理论上一致。不过两端添加串并解码,串行传输,也就是串行GMiI,且没有时钟,从数据恢复时钟。而RGMII利用双沿发送,上升沿发[3:0],tx_en;下降沿发[7:4],
链路介绍
MAC
(media access control)是媒体访问控制层协议,通过mac层判断是否发送数据,并添加控制信息。之后通过ip核解析mac层数据通过GMII接口与phy芯片桥接。
PHY(
physical layer
)
一般是芯片,mac层通过mdio等读写内部寄存器来控制当前phy芯片的状态。并且phy芯片有监测机制,也就是共享传输的方式。此次设计,使用SGMII PMA这个IP充当phy。该IP支持PHY模式的同时,可支持不通过MDIO访问判断IP地址,只通过PS端内部使用轮询的方式即可完成设备ID判断。
Ip使用:对该ip首先要提供复位,并且提供独立的参考时钟200M,用来做串并转换。且传输时钟需要是差分时钟,并只能是外界时钟(补充:该IP需要GT,即芯片内部结构,一个serdes只有一个GT)。且最大支持速率只能是1G。对于该ip最主要的就是时钟配置。可以参考example。
到此,就可以正常使用pl端到ps端的通信,后续会更新pl端的mac层。
调试:
1、首先用ps端自带的rgmii与上层通信,确保上层程序使用正确
。
2、直接下载工程后,利用ps端的lwip库即可完成与外界通信。
3、由于该IP不是通过MDIO读写,所有需要修改LWIP库。