本申请涉及通信安全,具体是一种gmac与fpga通信自动校准方法。
背景技术:
1、在通信安全领域都会涉及到高速接口与fpga的通信,而gmac是一种性能表现优秀的高速接口。gmac控制器一般集成在cpu的内部,作为cpu对外通信的千兆网络接口,控制器数据的接收与发送多采用dma模式与cpu的内存进行交互,无需cpu干预。在现实应用中gmac控制器多与fpga通过rgmii接口直接进行相联来实现对外网络通信,这种方法一般占用cpu较少,传输速度较高,实时性也比较好,但在实际应用过程中由于批量生产的电气参数误差导致通信采样偏差会出现数据传输错误,而设置固定的tx-delay和rx-delay参数,将会导致部分设备通信异常,虽然通过一些方法,比如通信重传机制、手动校准时序参数可以解决问题,但是在批量生产时效率低下,需要人为调测,风险不可控。
技术实现思路
1、本申请的目的在于提供一种gmac与fpga通信自动校准方法,以解决上述背景技术中提出的技术问题。
2、为实现上述目的,本申请公开了以下技术方案:
3、本申请提供了一种gmac与fpga通信自动校准方法,该方法包括以下步骤:
4、构造样本数据;
5、接收校准:在cpu端通过gmac发起校准申请,使fpga端进入校准模式,在校准模式下,所述fpga端发送所述样本数据,所述cpu端接收所述样本数据后,根据所述样本数据的校验位错误数量,按照错误数量在样本数据中的比例调整rx-delay,并循环接收所述样本数据进行循环验证,直至所述样本数据的校验位中没有错误后,记录rx-delay校准参数值,所述cpu端发送接收校准结束命令,完成接收校准;
6、发送校准:所述cpu端发送校准申请,进入发送校准流程,此时所述cpu端通过所述gmac发送所述样本数据,所述fpga端进入回环模式,所述cpu端对接收到的样本数据进行校验,统计错误数量,按照错误数量在样本数据中的比例调整tx-delay,并循环接收所述样本数据进行循环验证,直至所述样本数据中没有错误发生后,记录tx-delay校准参数值,所述cpu端发送结束校准命令,完成发送校准;
7、回归校验:完成所述接收校准和所述发送校准后,根据rx-delay校准参数值和tx-delay校准参数值,所述cpu端发送验证申请,所述fpga端进入回环验证模式,此时所述cpu端循环发送所述样本数据进行压力测试,统计所述样本数据中的错误数量,当发送错误时则重新进行校准,否则所述cpu端发送结束校准申请,退出校准模式;
8、保存校准:结束校准后,将rx-delay校准参数值和tx-delay校准参数值保存为环境变量,并在下一次校准时加载该rx-delay校准参数值和该tx-delay校准参数值。
9、作为优选,所述构造样本数据具体包括:
10、选取m个样本数据量的样本数据集;
11、将所述样本数据集按照行和列进行分布;
12、将所述样本数据集在行方向上划分为n个单元;
13、将所述样本数据集在列方向上划分为n个单元。
14、作为优选,所述样本数据集的每一行所述样本数据中,采用32bit计算8bit的ecc。
15、作为优选,自所述样本数据集的第一列至最后一列,依次按照预设的构造方式对每一列的样本数据进行构造,所述构造方式为0滑动、1滑动、全0切换全1、全1切换全0、0和1交替切换。
16、有益效果:本申请的gmac与fpga通信自动校准方法,应用于gmac与fpga直连通信的场景,根据偶发错误特性,采用双循环验证,提取统计错误位,最终根据错误位的数量,动态调整cpu端gmac控制器的rx-delay和tx-delay进行校准,自动完成校准过程并保存校准参数,解决在批量生产时由于电气参数误差或者fpga设计问题导致的通信错误的情况,通过本申请,能够最大化的兼容现有软件,更改应用极为方便,增强了系统的稳定性,避免出现偶发通信异常问题。并且,相对于pcba和fpga设计阶段增加延时进行调整,此方案能够最大化的兼容现有软件,更改应用极为方便,增强了系统的稳定性。
1.一种gmac与fpga通信自动校准方法,其特征在于,该方法包括以下步骤:
2.根据权利要求1所述的gmac与fpga通信自动校准方法,其特征在于,所述构造样本数据具体包括:
3.根据权利要求2所述的gmac与fpga通信自动校准方法,其特征在于,所述样本数据集的每一行所述样本数据中,采用32bit计算8bit的ecc。
4.根据权利要求2所述的gmac与fpga通信自动校准方法,其特征在于,自所述样本数据集的第一列至最后一列,依次按照预设的构造方式对每一列的样本数据进行构造,所述构造方式为0滑动、1滑动、全0切换全1、全1切换全0、0和1交替切换。