1.关于IP收费的问题
Tri Mode Ethernet MAC是收费IP,打开IP后,当左下角显示Bought IP license available则IP可用。
2.功能说明
应用搭建的场景是,上位机发送数据,首先发起arp请求,随后下位机给出arp应答响应,上位机get到下位机的mac地址之后,将发送框中的数据打包成udp数据包下发到下位机中,下位机收到udp包,将有效数据保存到fifo中,然后在接收完毕之后,随即发起一次长度与接收长度一致的数据发送操作,在操作无误的情况下,上位机将收到下发的数据。
IP核扮演MAC层的作用,相当于是将AXI_Stream接口接口转换成RGMII接口(或其他物理层接口),起到了衔接用户侧与物理层PHY芯片的作用。上行数据传输时,用户侧按照MAC层的数据帧格式打包成AXI_S接口数据发送给IP核即可;下行数据时,IP核完成数据接收对齐等操作,将MAC层数据帧格式转换成AXI_S接口供用户解析。其时序图如下所示,具体参考PG-051.
与《E1--千兆以太网接口测试应用2022-09-07》相比,把RGMII接口的操作交给了IP核完成,仅此而已。关于原理,开发步骤,调试工具,调试技巧可参看这篇文章,相关链接在文末。
3.IP配置
数据速率支持1G和2.5G,用到的PHY芯片是RTL8211芯片,支持千兆网口,故选择1Gbps;
- 物理接口:选择RGMII,这是由硬件决定,具体看使用什么芯片支持哪种接口,当使用GT当作网口通信的phy层时,选择internal。
- MAC Speed:Tri speed代表速率可协商,1000Mbps代表千兆网速率,选1000Mbps;
- 管理类型:选择AXI-Lite,这里管理包含两种含义,一个是IP核内部寄存器,一个是通过MDIO接口配置phy芯片,通常phy芯片保持默认配置即可,因此可不勾选MDIO接口。
第三页共享逻辑选择in core的方式包含在IP内部,无需手动配置。
下一页是流控选项、帧过滤器选项等高级功能,保持默认配置即可。
4.功能验证
打开网口调试助手,为以太网卡分配固定IP地址192.168.1.102,绑定6001端口,输入对端即FPGA板卡ip地址192.168.1.10,此地址在下位机写死, 当点击发送时,由于此时ARP表中没有192.168.1.10地址的mac地址,因此会自动发出一个ARP的请求,FPGA程序接收后会响应ARP应答,这是在命令提示符中输入arp -a可以查到下位机的mac地址,具备了通信条件。
紧接着可以看到,发送的内容被原样返回,说明功能测试成功。
5.注意事项
①例程中端口号是写死的,即上位机端口号为6001,下位机端口号固定为6000但有可能出现6001被其他应用占用的情况,因此实际使用的时候,端口可以改为不固定,即下位机收到哪个端口的信息保存后返回到该端口。
②例程中使能发送模块进行一次发送操作的各个信号源自于接收模块时钟域,这是由于应用场景下这些信号是固定值,但在实际使用时要注意这点。
③用于接收的AXI_Stream接口发送接口的ready信号是要等valid信号拉高它才会被动拉高,只有当ready和valid信号同时拉高,数据才被转发。这一点与标准的AXI接口不同。
④IP核的信号inband_link_status用于输出指示链路连接状态,inband_duplex_status信号用于指示双工的连接状态,这两个信号可用于判断当前硬件电路的连接状态,tx_ifg_delay信号用于指示两个MAC帧之间的间隔,当设置为0的时候,即为以太网要求的最小间隔96。gtx_clk信号为IP核的全局时钟,为125MHz。glbl_rstn为IP全局复位信号,低有效。
⑤当发送数据小于以太网最低字节要求时,会自动补零。前导码和FCS校验字段IP核会自动填写。
6.工程链接
网口调试工具wireshark
网口调试助手netassist
手动ARP应答工程
UDP工程链接
本文对应工程链接
E1--千兆以太网接口测试应用