一、心跳帧
以太网通信中,心跳帧(Heartbeat frame)是一种用于检测网络连通性和链路状态的机制。当一段时间内没有数据帧通过时,网络设备会发送心跳帧以确认链路是否依然连接。如果心跳帧没有得到预期的响应,设备可以判断链路已经断开,从而采取必要的措施。
二、模块整体框图
![](https://img-blog.csdnimg.cn/direct/4877de792d804ffca1be38d0fca1dc2d.png)
三、模块实现
timer模块
timer模块产生秒脉冲,作为心跳帧产生的激励。
![](https://img-blog.csdnimg.cn/direct/32f8a369f81140598afa71f8be9517a6.png)
gen_frame_ctrl模块
gen_frame_ctrl模块实现的功能是将数据按照以太网包组合,本篇只实现心跳帧功能,IP检验、UDP校验和CRC先填写0。模块信号波形图如下图:
![](https://img-blog.csdnimg.cn/direct/6b5f15465ea24f57aa5ea46ee929e44b.png)
当秒脉冲到来时,拉高gen_frame_flag信号,开启gen_frame_cnt计数器的技术,当计数到113时停止计数并拉低gen_frame_flag。(按照以太网包结构,以太网帧头为50字节,另外设定心跳帧数据为64个0,所以共有114个字节)tx_data[7:0]和tx_en为输出的心跳包数据,根据gen_frame_cnt计数到不同的数值给tx_data[7:0]赋值,从而组成以太网包。
四、仿真验证
编写tb_文件验证模块功能,可以看到生成了基于以太网包结构的心跳帧,50字节的帧头后面有64字节的data(0)。
![](https://img-blog.csdnimg.cn/direct/29566b23f6fe4fa5a841abd20eab6bca.png)