一种自动校准AD9361板卡的方法、装置、设备及存储介质转让专利

申请号 : CN202210184519.4

文献号 : CN114268382B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李亚斌梁山林杰

申请人 : 四川鸿创电子科技有限公司

摘要 :

本发明涉及电子通信技术领域,公开了一种自动校准AD9361板卡的方法、装置、设备及存储介质,其中的方法是配合FPGA技术,遍历确定出能基于伪随机二进制序列得到校验正确结果的可用值和/或可用延迟值,并从多个可用值和/或多个可用延迟值中选出最佳可用数值来配置内部寄存器0x006/7的值和/或输入/输出延迟单元的延迟值,从而自动化完成对AD9361板卡接收路径及发射路径的校准调整,不但使得FPGA程序无需在每次AD9361板卡生产时都独立地编译,还可极大减少人工操作,避免处理麻烦,快速准确地校准多张AD9361板卡上单个或多个AD9361模块的RX路径,进而利于以后批产时生产人员的操作,大大提高生产效率。

权利要求 :

1.一种自动校准AD9361板卡的方法,其特征在于,适用于通信连接AD9361板卡的计算机设备执行,包括:

配置AD9361模块中的内部寄存器0x3F4的值为0x09,使所述AD9361模块内建产生伪随机二进制序列,并利用接收通道向现场可编程逻辑门阵列FPGA模块的输入端口传送所述伪随机二进制序列,其中,所述AD9361模块和所述FPGA模块分别布置在所述AD9361板卡上并通信相连;

遍历各个第一延迟数组:先将所述AD9361模块中的内部寄存器0x006的值配置为第一数值和/或将所述输入端口中的输入延迟单元的延迟值配置为第二数值,然后读取由所述FPGA模块记录的且基于所述伪随机二进制序列的第一校验结果,若所述第一校验结果指示校验正确,则将包含有所述第一数值和/或所述第二数值的第一延迟数组作为第一可用延迟数组;

从遍历所得的多个第一可用延迟数组中确定出第一最佳可用延迟数组,其中,所述第一最佳可用延迟数组位于所述多个第一可用延迟数组中的中心位置;

根据所述第一最佳可用延迟数组配置所述内部寄存器0x006的值和/或所述输入延迟单元的延迟值。

2.如权利要求1所述的方法,其特征在于,在配置AD9361模块中的内部寄存器0x3F4的值为0x09之前或同时,所述方法还包括:将所述FPGA模块中的第一外设寄存器的值配置为第一指示值,以便通过所述第一指示值向所述FPGA模块的逻辑程序指示对由所述输入端口输入的数据进行隐藏处理,不提供给用户接口,直到在根据所述第一最佳可用延迟数组配置所述寄存器0x006的值和/或所述输入延迟单元的延迟值之后进行恢复。

3.如权利要求1所述的方法,其特征在于,先将所述AD9361模块中的内部寄存器0x006的值配置为第一数值和/或将所述输入端口中的输入延迟单元的延迟值配置为第二数值,然后读取由所述FPGA模块记录的且基于所述伪随机二进制序列的第一校验结果,若所述第一校验结果指示校验正确,则将包含有所述第一数值和/或所述第二数值的第一延迟数组作为第一可用延迟数组,包括:

将所述AD9361模块中的内部寄存器0x006的值配置为第一数值;

将所述FPGA模块中的第二外设寄存器的值配置为第二数值,以便使所述第二数值作为所述输入端口中的输入延迟单元的延迟值;

将所述FPGA模块中的第三外设寄存器的值从无效状态值配置为有效状态值,以便触发所述FPGA模块的逻辑程序读取所述第二外设寄存器的值,使所述第二数值载入到基于所述伪随机二进制序列的逻辑程序校验过程中;

在等待第一时长后,读取所述FPGA模块中的第四外设寄存器的值,以便得到由所述FPGA模块记录的且基于所述伪随机二进制序列的第一校验结果,其中,所述第一时长不小于 微秒, 表示所述AD9361模块的采样率且单位为MHz, 表示预设的验证数据目标数;

判断所述第四外设寄存器的值是否为用于指示校验正确的状态值;

若是,则记录所述第一数值和所述第二数值,以便将包含有所述第一数值和所述第二数值的第一延迟数组作为第一可用延迟数组。

4.如权利要求1所述的方法,其特征在于,在根据所述第一最佳可用延迟数组配置所述内部寄存器0x006的值和/或所述输入延迟单元的延迟值之后,所述方法还包括:配置所述AD9361模块中的内部寄存器0x3F5的值为0x81,使所述AD9361模块将发射通道中的数字信号回环至所述接收通道,以便利用所述接收通道向所述FPGA模块的输入端口传送所述数字信号,其中,所述数字信号为由所述FPGA模块的输出端口传出的且仿照所述伪随机二进制序列产生的新序列;

遍历各个第二延迟数组:先将所述AD9361模块中的内部寄存器0x007的值配置为第三数值和/或将所述输出端口中的输出延迟单元的延迟值配置为第四数值,然后读取由所述FPGA模块记录的且基于所述数字信号的第二校验结果,若所述第二校验结果指示校验正确,则将包含有所述第三数值和/或所述第四数值的第二延迟数组作为第二可用延迟数组;

从遍历所得的多个第二可用延迟数组中确定出第二最佳可用延迟数组,其中,所述第二最佳可用延迟数组位于所述多个第二可用延迟数组中的中心位置;

根据所述第二最佳可用延迟数组配置所述内部寄存器0x007的值和/或所述输出延迟单元的延迟值。

5.如权利要求4所述的方法,其特征在于,在配置所述AD9361模块中的内部寄存器

0x3F5的值为0x81之前或同时,所述方法还包括:将所述FPGA模块中的第五外设寄存器的值配置为第二指示值,以便通过所述第二指示值向所述FPGA模块的逻辑程序指示对由所述输入端口输入的数据进行隐藏处理,不提供给用户接口,直到在根据所述第二最佳可用延迟数组配置所述内部寄存器0x007的值和/或所述输出延迟单元的延迟值之后进行恢复。

6.如权利要求4所述的方法,其特征在于,先将所述AD9361模块中的内部寄存器0x007的值配置为第三数值和/或将所述输出端口中的输出延迟单元的延迟值配置为第四数值,然后读取由所述FPGA模块记录的且基于所述数字信号的第二校验结果,若所述第二校验结果指示校验正确,则将包含有所述第三数值和/或所述第四数值的第二延迟数组作为第二可用延迟数组,包括:

将所述AD9361模块中的内部寄存器0x007的值配置为第三数值;

将所述FPGA模块中的第六外设寄存器的值配置为第四数值,以便使所述第四数值作为所述输出端口中的输出延迟单元的延迟值;

将所述FPGA模块中的第七外设寄存器的值从无效状态值配置为有效状态值,以便触发所述FPGA模块的逻辑程序读取所述第七外设寄存器的值,使所述第四数值载入到基于所述数字信号的逻辑程序校验过程中;

在等待第二时长后,读取所述FPGA模块中的第八外设寄存器的值,以便得到由所述FPGA模块记录的且基于所述数字信号的第二校验结果,其中,所述第二时长不小于微秒, 表示所述AD9361模块的采样率且单位为MHz, 表示预设的验证数据目标数;

判断所述第八外设寄存器的值是否为用于指示校验正确的状态值;

若是,则记录所述第三数值和所述第四数值,以便将包含有所述第三数值和所述第四数值的第二延迟数组作为第二可用延迟数组。

7.一种自动校准AD9361板卡的装置,其特征在于,布置于通信连接AD9361板卡的计算机设备中,包括有依次通信连接的第一参数配置模块、序列校验遍历模块、最佳配置确定模块和第二参数配置模块;

所述第一参数配置模块,用于配置AD9361模块中的内部寄存器0x3F4的值为0x09,使所述AD9361模块内建产生伪随机二进制序列,并利用接收通道向现场可编程逻辑门阵列FPGA模块的输入端口传送所述伪随机二进制序列,其中,所述AD9361模块和所述FPGA模块分别布置在所述AD9361板卡上并通信相连;

所述序列校验遍历模块,用于遍历各个第一延迟数组:先将所述AD9361模块中的内部寄存器0x006的值配置为第一数值和/或将所述输入端口中的输入延迟单元的延迟值配置为第二数值,然后读取由所述FPGA模块记录的且基于所述伪随机二进制序列的第一校验结果,若所述第一校验结果指示校验正确,则将包含有所述第一数值和/或所述第二数值的第一延迟数组作为第一可用延迟数组;

所述最佳配置确定模块,用于从遍历所得的多个第一可用延迟数组中确定出第一最佳可用延迟数组,其中,所述第一最佳可用延迟数组位于所述多个第一可用延迟数组中的中心位置;

所述第二参数配置模块,用于根据所述第一最佳可用延迟数组配置所述内部寄存器

0x006的值和/或所述输入延迟单元的延迟值。

8.如权利要求7所述的装置,其特征在于,所述第一参数配置模块还通信连接所述第二参数配置模块,还用于在根据所述第一最佳可用延迟数组配置所述内部寄存器0x006的值和/或所述输入延迟单元的延迟值之后,配置所述AD9361模块中的内部寄存器0x3F5的值为

0x81,使所述AD9361模块将发射通道中的数字信号回环至所述接收通道,以便利用所述接收通道向所述FPGA模块的输入端口传送所述数字信号,其中,所述数字信号为由所述FPGA模块的输出端口传出的且仿照所述伪随机二进制序列产生的新序列;

所述序列校验遍历模块,还用于遍历各个第二延迟数组:先将所述AD9361模块中的内部寄存器0x007的值配置为第三数值和/或将所述输出端口中的输出延迟单元的延迟值配置为第四数值,然后读取由所述FPGA模块记录的且基于所述数字信号的第二校验结果,若所述第二校验结果指示校验正确,则将包含有所述第三数值和/或所述第四数值的第二延迟数组作为第二可用延迟数组;

所述最佳配置确定模块,还用于从遍历所得的多个第二可用延迟数组中确定出第二最佳可用延迟数组,其中,所述第二最佳可用延迟数组位于所述多个第二可用延迟数组中的中心位置;

所述第二参数配置模块,还用于根据所述第二最佳可用延迟数组配置所述内部寄存器

0x007的值和/或所述输出延迟单元的延迟值。

9.一种计算机设备,其特征在于,包括有依次通信连接的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发信息,所述处理器用于读取所述计算机程序,执行如权利要求1~6中任意一项所述的自动校准AD9361板卡的方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如权利要求1~6中任意一项所述的自动校准AD9361板卡的方法。

说明书 :

一种自动校准AD9361板卡的方法、装置、设备及存储介质

技术领域

[0001] 本发明属于电子通信技术领域,具体地涉及一种自动校准AD9361板卡的方法、装置、设备及存储介质。

背景技术

[0002] AD9361芯片是ADI公司推出的一款面向3G/4G基站应用的且具有高性能及高集成度的射频捷变收发器,并采用10mm×10mm的144引脚芯片级球栅阵列封装方式进行封装。所
述AD9361芯片的工作频率为70MHz~6GHz,涵盖了大部分特许执照和免执照频段,支持可调
谐200kHz~56MHz的通道带宽,且具有高度的可编程能力,因此基于所述AD9361芯片的
AD9361模块(即由AD9361芯片及其外围电路组成)常与现场可编程逻辑门阵列FPGA(Field 
Programmable Gate Array)模块(即由FPGA芯片、若干外设寄存器及它们的外围电路组成)
一起搭配布置在电路板上,构成一张实现信号无线收发功能的AD9361板卡。例如在单系统
支持8×8 MIMO(Multiple Input Multiple Output,多进多出技术)的软件无线电系统中,
可在一块高速背板上搭载4块所述AD9361板卡,并在每块AD9361板卡上布置一个FPGA模块
和四个AD9361模块,其中,所述FPGA模块的主要功能是为所述AD9361模块提供时钟数据接
口,并对数据接口上的信号提供时序控制,所述AD9361模块的且用于配置的SPI接口
(Serial Peripheral Interface,串行外设接口)都通信连接诸如PowerPC(Performance 
Optimization With Enhanced RISC–Performance Computing,有时简称PPC,是一种精简
指令集架构的中央处理器)处理器/DSP(Digital Signal Processing,数字信号处理)处理
器等上位机,所述AD9361模块的时钟数据接口都通信连接该FPGA模块。
[0003] 在AD9361板卡的具体电路结构中,AD9361模块的数据发射端口及数据接收端口都是连接在FPGA模块上,并且对应的发送通道线路和接收通道线路都有时钟信号线(即CLK
线)、数据信号线(即DATA线)和用于架构FRAME指示的指示信号线(其也需要调整IODELAY
值),而由于这些通道线路存在诸如硬件走线(例如不等长)等原因,将导致在信号接收时各
路数字信号到达FPGA模块的时间与期望时间可能不一致和/或在信号发射时各路数字信号
到达AD9361模块的时间与期望时间可能不一致(即跟芯片手册要求的时钟/数据信号时序
图有差异,比如错位),进而造成接收到的信号出现波形失真和/或发射出的信号出现杂散
等问题,因此在使用AD9361板卡前,需要对AD9361板卡的接收路径(也称RX路径)和/或发射
路径(也称TX路径)进行校准处理,避免出现前述问题。
[0004] 目前对AD9361板卡进行校准的方法,主要是采用固定FPGA IODELAY值(即单位时间TAP的数目,以便作为在时间上的延迟值,例如Xilinx 7系列FPGA的IODELAY TAP值范围
为0~31,一个TAP的时长为78ps)的模式,即在每块板子中只要是AD9361模块的时钟数据接
口通信连接到FPGA模块,都是将用于控制收发时钟、数据和FRAME信号延迟值的输入/输出
延迟单元IODELAY的延迟值设置为固定值。详细的,以对RX路径进行校准为例,先通过在
FPGA模块的逻辑程序中内置VIO(Virtual Input/Output,即Xilinx FPGA的虚拟输入输出
IP核,可以通过开发软件Vivado在线向所述逻辑程序输入数值),并结合AD9361模块内部自
己产生的单音源信号及基于ILA(Integrated Logic Analyzer,即Xilinx FPGA的集成逻辑
分析仪IP核,可以采集逻辑内部信号并显示在所述开发软件Vivado的界面上)采集的且来
自AD9361模块的接收信号波形,不断地手动调整VIO输出的IDELAY TAP数目(例如在0~31
的取值范围内进行调整),并使用ILA人工观察采集波形,直至发现波形为平滑的正弦波,并
记录下当前可用的IDELAY TAP数目,最后在可用的所有IDELAY TAP数目值中选择一个中间
值来作为最佳的IDELAY TAP数目,来对输入延迟单元IDEALY的延时值进行配置。
[0005] 但是,由于诸如硬件走线等对信号传输速度产生的差异,不同批次的AD9361板卡所选用的最佳IODELAY TAP数目可能完全不一样,使得FPGA程序(即FPGA模块的逻辑程序)
不可能在每次AD9361板卡生产时都独立地编译(即在不同AD9361板卡的FPGA程序中设置不
同的固定IODELAY TAP数目,相当于更改了程序,必须重新编译),同时处理起来也比较麻烦
(即需要针对每张板卡,都手动地应用调试工具VIO和ILA来找出最佳IODELAY TAP数目),不
利于以后批产时生产人员的操作,限制了生产效率的提高,因此需要走程序化自动校准的
路线,即如何快速准确地校准多张AD9361板卡上单个或多个AD9361模块的RX路径和/或TX
路径,是本领域技术人员亟需研究的课题。

发明内容

[0006] 为了解决现有AD9361板卡校准方法所存在需独立编译FPGA程序、处理麻烦和不利于批产操作的问题,本发明目的在于提供一种自动校准AD9361板卡的方法、装置、计算机设
备及计算机可读存储介质,可自动化完成对AD9361板卡接收路径及发射路径的校准调整,
不但使得FPGA程序无需在每次AD9361板卡生产时都独立地编译,还可极大减少人工操作,
避免处理麻烦,快速准确地校准多张AD9361板卡上单个或多个AD9361模块的RX路径及TX路
径,进而利于以后批产时生产人员的操作,大大提高生产效率,便于实际应用和推广。
[0007] 第一方面,本发明提供了一种自动校准AD9361板卡的方法,适用于通信连接AD9361板卡的计算机设备执行,包括:
[0008] 配置AD9361模块中的内部寄存器0x3F4的值为0x09,使所述AD9361模块内建产生伪随机二进制序列,并利用接收通道向现场可编程逻辑门阵列FPGA模块的输入端口传送所
述伪随机二进制序列,其中,所述AD9361模块和所述FPGA模块分别布置在所述AD9361板卡
上并通信相连;
[0009] 遍历各个第一延迟数组:先将所述AD9361模块中的内部寄存器0x006的值配置为第一数值和/或将所述输入端口中的输入延迟单元的延迟值配置为第二数值,然后读取由
所述FPGA模块记录的且基于所述伪随机二进制序列的第一校验结果,若所述第一校验结果
指示校验正确,则将包含有所述第一数值和/或所述第二数值的第一延迟数组作为第一可
用延迟数组;
[0010] 从遍历所得的多个第一可用延迟数组中确定出第一最佳可用延迟数组,其中,所述第一最佳可用延迟数组位于所述多个第一可用延迟数组中的中心位置;
[0011] 根据所述第一最佳可用延迟数组配置所述内部寄存器0x006的值和/或所述输入延迟单元的延迟值。
[0012] 基于上述发明内容,提供了一种配合FPGA技术校准AD9361板卡接收路径的自动化方案,即先配置AD9361模块内建产生伪随机二进制序列,然后针对AD9361模块中的内部寄
存器0x006的各个可能值和/或输入延迟单元的各个可能延迟值进行遍历,确定出能基于所
述伪随机二进制序列得到校验正确结果的可用值和/或可用延迟值,最后从多个可用值和/
或多个可用延迟值中选出最佳可用数值来配置所述内部寄存器0x006的值和/或所述输入
延迟单元的延迟值,从而自动化完成对AD9361板卡接收路径的校准调整,不但使得FPGA程
序无需在每次AD9361板卡生产时都独立地编译,还可极大减少人工操作,避免处理麻烦,快
速准确地校准多张AD9361板卡上单个或多个AD9361模块的RX路径,进而利于以后批产时生
产人员的操作,大大提高生产效率,便于实际应用和推广。
[0013] 在一个可能的设计中,在配置AD9361模块中的内部寄存器0x3F4的值为0x09之前或同时,所述方法还包括:
[0014] 将所述FPGA模块中的第一外设寄存器的值配置为第一指示值,以便通过所述第一指示值向所述FPGA模块的逻辑程序指示对由所述输入端口输入的数据进行隐藏处理,不提
供给用户接口,直到在根据所述第一最佳可用延迟数组配置所述寄存器0x006的值和/或所
述输入延迟单元的延迟值之后进行恢复。
[0015] 在一个可能的设计中,先将所述AD9361模块中的内部寄存器0x006的值配置为第一数值和/或将所述输入端口中的输入延迟单元的延迟值配置为第二数值,然后读取由所
述FPGA模块记录的且基于所述伪随机二进制序列的第一校验结果,若所述第一校验结果指
示校验正确,则将包含有所述第一数值和/或所述第二数值的第一延迟数组作为第一可用
延迟数组,包括:
[0016] 将所述AD9361模块中的内部寄存器0x006的值配置为第一数值;
[0017] 将所述FPGA模块中的第二外设寄存器的值配置为第二数值,以便使所述第二数值作为所述输入端口中的输入延迟单元的延迟值;
[0018] 将所述FPGA模块中的第三外设寄存器的值从无效状态值配置为有效状态值,以便触发所述FPGA模块的逻辑程序读取所述第二外设寄存器的值,使所述第二数值载入到基于
所述伪随机二进制序列的逻辑程序校验过程中;
[0019] 在等待第一时长后,读取所述FPGA模块中的第四外设寄存器的值,以便得到由所述FPGA模块记录的且基于所述伪随机二进制序列的第一校验结果,其中,所述第一时长不
小于 微秒,表示所述AD9361模块的采样率且单位为MHz,表示预设的验证
数据目标数;
[0020] 判断所述第四外设寄存器的值是否为用于指示校验正确的状态值;
[0021] 若是,则记录所述第一数值和所述第二数值,以便将包含有所述第一数值和所述第二数值的第一延迟数组作为第一可用延迟数组。
[0022] 在一个可能的设计中,在根据所述第一最佳可用延迟数组配置所述内部寄存器0x006的值和/或所述输入延迟单元的延迟值之后,所述方法还包括:
[0023] 配置所述AD9361模块中的内部寄存器0x3F5的值为0x81,使所述AD9361模块将发射通道中的数字信号回环至所述接收通道,以便利用所述接收通道向所述FPGA模块的输入
端口传送所述数字信号,其中,所述数字信号为由所述FPGA模块的输出端口传出的且仿照
所述伪随机二进制序列产生的新序列;
[0024] 遍历各个第二延迟数组:先将所述AD9361模块中的内部寄存器0x007的值配置为第三数值和/或将所述输出端口中的输出延迟单元的延迟值配置为第四数值,然后读取由
所述FPGA模块记录的且基于所述数字信号的第二校验结果,若所述第二校验结果指示校验
正确,则将包含有所述第三数值和/或所述第四数值的第二延迟数组作为第二可用延迟数
组;
[0025] 从遍历所得的多个第二可用延迟数组中确定出第二最佳可用延迟数组,其中,所述第二最佳可用延迟数组位于所述多个第二可用延迟数组中的中心位置;
[0026] 根据所述第二最佳可用延迟数组配置所述内部寄存器0x007的值和/或所述输出延迟单元的延迟值。
[0027] 基于上述可能设计,还可以在完成AD9361板卡接收路径的校准调整基础上,进一步配合FPGA技术自动化完成对AD9361板卡发射路径的校准调整,快速准确地校准多张
AD9361板卡上单个或多个AD9361模块的TX路径,进一步利于以后批产时生产人员的操作和
提高生产效率。
[0028] 在一个可能的设计中,在配置所述AD9361模块中的内部寄存器0x3F5的值为0x81之前或同时,所述方法还包括:
[0029] 将所述FPGA模块中的第五外设寄存器的值配置为第二指示值,以便通过所述第二指示值向所述FPGA模块的逻辑程序指示对由所述输入端口输入的数据进行隐藏处理,不提
供给用户接口,直到在根据所述第二最佳可用延迟数组配置所述内部寄存器0x007的值和/
或所述输出延迟单元的延迟值之后进行恢复。
[0030] 在一个可能的设计中,先将所述AD9361模块中的内部寄存器0x007的值配置为第三数值和/或将所述输出端口中的输出延迟单元的延迟值配置为第四数值,然后读取由所
述FPGA模块记录的且基于所述数字信号的第二校验结果,若所述第二校验结果指示校验正
确,则将包含有所述第三数值和/或所述第四数值的第二延迟数组作为第二可用延迟数组,
包括:
[0031] 将所述AD9361模块中的内部寄存器0x007的值配置为第三数值;
[0032] 将所述FPGA模块中的第六外设寄存器的值配置为第四数值,以便使所述第四数值作为所述输出端口中的输出延迟单元的延迟值;
[0033] 将所述FPGA模块中的第七外设寄存器的值从无效状态值配置为有效状态值,以便触发所述FPGA模块的逻辑程序读取所述第七外设寄存器的值,使所述第四数值载入到基于
所述数字信号的逻辑程序校验过程中;
[0034] 在等待第二时长后,读取所述FPGA模块中的第八外设寄存器的值,以便得到由所述FPGA模块记录的且基于所述数字信号的第二校验结果,其中,所述第二时长不小于
微秒, 表示所述AD9361模块的采样率且单位为MHz, 表示预设的验证数
据目标数;
[0035] 判断所述第八外设寄存器的值是否为用于指示校验正确的状态值;
[0036] 若是,则记录所述第三数值和所述第四数值,以便将包含有所述第三数值和所述第四数值的第二延迟数组作为第二可用延迟数组。
[0037] 第二方面,本发明提供了一种自动校准AD9361板卡的装置,布置于通信连接AD9361板卡的计算机设备中,包括有依次通信连接的第一参数配置模块、序列校验遍历模
块、最佳配置确定模块和第二参数配置模块;
[0038] 所述第一参数配置模块,用于配置AD9361模块中的内部寄存器0x3F4的值为0x09,使所述AD9361模块内建产生伪随机二进制序列,并利用接收通道向现场可编程逻辑门阵列
FPGA模块的输入端口传送所述伪随机二进制序列,其中,所述AD9361模块和所述FPGA模块
分别布置在所述AD9361板卡上并通信相连;
[0039] 所述序列校验遍历模块,用于遍历各个第一延迟数组:先将所述AD9361模块中的内部寄存器0x006的值配置为第一数值和/或将所述输入端口中的输入延迟单元的延迟值
配置为第二数值,然后读取由所述FPGA模块记录的且基于所述伪随机二进制序列的第一校
验结果,若所述第一校验结果指示校验正确,则将包含有所述第一数值和/或所述第二数值
的第一延迟数组作为第一可用延迟数组;
[0040] 所述最佳配置确定模块,用于从遍历所得的多个第一可用延迟数组中确定出第一最佳可用延迟数组,其中,所述第一最佳可用延迟数组位于所述多个第一可用延迟数组中
的中心位置;
[0041] 所述第二参数配置模块,用于根据所述第一最佳可用延迟数组配置所述内部寄存器0x006的值和/或所述输入延迟单元的延迟值。
[0042] 在一种可能设计中,所述第一参数配置模块还通信连接所述第二参数配置模块,还用于在根据所述第一最佳可用延迟数组配置所述内部寄存器0x006的值和/或所述输入
延迟单元的延迟值之后,配置所述AD9361模块中的内部寄存器0x3F5的值为0x81,使所述
AD9361模块将发射通道中的数字信号回环至所述接收通道,以便利用所述接收通道向所述
FPGA模块的输入端口传送所述数字信号,其中,所述数字信号为由所述FPGA模块的输出端
口传出的且仿照所述伪随机二进制序列产生的新序列;
[0043] 所述序列校验遍历模块,还用于遍历各个第二延迟数组:先将所述AD9361模块中的内部寄存器0x007的值配置为第三数值和/或将所述输出端口中的输出延迟单元的延迟
值配置为第四数值,然后读取由所述FPGA模块记录的且基于所述数字信号的第二校验结
果,若所述第二校验结果指示校验正确,则将包含有所述第三数值和/或所述第四数值的第
二延迟数组作为第二可用延迟数组;
[0044] 所述最佳配置确定模块,还用于从遍历所得的多个第二可用延迟数组中确定出第二最佳可用延迟数组,其中,所述第二最佳可用延迟数组位于所述多个第二可用延迟数组
中的中心位置;
[0045] 所述第二参数配置模块,还用于根据所述第二最佳可用延迟数组配置所述内部寄存器0x007的值和/或所述输出延迟单元的延迟值。
[0046] 第三方面,本发明提供了一种计算机设备,包括有依次通信连接的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发信息,所述处理器
用于读取所述计算机程序,执行如第一方面或第一方面中任意可能设计所述的方法。
[0047] 第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如上第一方面或第一方面中任意可能设
计所述的方法。
[0048] 第五方面,本发明提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如上第一方面或第一方面中任意可能设计所述的方法。

附图说明

[0049] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的附图。
[0050] 图1是本发明提供的自动校准AD9361板卡的方法流程示意图。
[0051] 图2是本发明提供的计算机设备与AD9361板卡的通信连接关系示意图。
[0052] 图3是本发明提供的伪随机二进制序列及仿照所述伪随机二进制序列产生的新序列的波形示例图,其中,图3(a)示出了伪随机二进制序列的波形,图3(b)示出了新序列的波
形。
[0053] 图4是本发明提供的自动校准AD9361板卡的装置结构示意图。
[0054] 图5是本发明提供的计算机设备的结构示意图。

具体实施方式

[0055] 下面结合附图及具体实施例来对本发明作进一步阐述。在此需要说明的是,对于这些实施例方式的说明虽然是用于帮助理解本发明,但并不构成对本发明的限定。本文公
开的特定结构和功能细节仅用于描述本发明示例的实施例。然而,可用很多备选的形式来
体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。
[0056] 应当理解,尽管本文可能使用术语第一和第二等等来描述各种对象,但是这些对象不应当受到这些术语的限制。这些术语仅用于区分一个对象和另一个对象。例如可以将
第一对象称作第二对象,并且类似地可以将第二对象称作第一对象,同时不脱离本发明的
示例实施例的范围。
[0057] 应当理解,对于本文中可能出现的术语“和/或”,其仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A、单独存在B或者同时
存在A和B等三种情况;对于本文中可能出现的术语“/和”,其是描述另一种关联对象关系,
表示可以存在两种关系,例如,A/和B,可以表示:单独存在A或者同时存在A和B等两种情况;
另外,对于本文中可能出现的字符“/”,一般表示前后关联对象是一种“或”关系。
[0058] 如图1~3所示,本实施例第一方面提供的所述自动校准AD9361板卡的方法,可以但不限于由通信连接AD9361板卡的且具有一定计算资源的计算机设备执行,例如由
PowerPC(Performance Optimization With Enhanced RISC – Performance Computing,
有时简称PPC,是一种精简指令集架构的中央处理器,其基本的设计源自IBM的POWER架构)
处理器、DSP(Digital Signal Process,数字信号处理器)处理器、个人计算机(Personal 
Computer,PC,指一种大小、价格和性能适用于个人使用的多用途计算机;台式机、笔记本电
脑到小型笔记本电脑和平板电脑以及超级本等都属于个人计算机)、智能手机、个人数字助
理(Personal digital assistant,PAD)或可穿戴设备或等电子设备执行,以便自动化完成
对AD9361板卡接收路径的校准调整,不但使得FPGA程序无需在每次AD9361板卡生产时都独
立地编译,还可极大减少人工操作,避免处理麻烦,快速准确地校准多张AD9361板卡上单个
或多个AD9361模块的RX路径,进而利于以后批产时生产人员的操作,大大提高生产效率,便
于实际应用和推广。如图1所示,所述自动校准AD9361板卡的方法,适用于先对AD9361板卡
的接收路径进行校准处理,可以但不限于包括有如下步骤S1~S4。
[0059] S1.配置AD9361模块中的内部寄存器0x3F4的值为0x09,使所述AD9361模块内建产生伪随机二进制序列,并利用接收通道向现场可编程逻辑门阵列FPGA模块的输入端口传送
所述伪随机二进制序列,其中,所述AD9361模块和所述FPGA模块分别布置在所述AD9361板
卡上并通信相连。
[0060] 在所述步骤S1中,如图2所示,所述计算机设备用于作为通信连接所述AD9361板卡的上位机,具体可以但不限于通过第一SPI接口通信连接所述AD9361板卡上的所述FPGA模
块,以便实现所述计算机设备与所述FPGA模块的控制通信;同时所述FPGA模块可以但不限
于通过第二SPI接口通信连接所述AD9361模块,以便实现所述FPGA模块与所述AD9361模块
的控制通信。所述内部寄存器0x3F4为在所述AD9361模块中位于AD9361芯片内的且命名为
0x3F4的现有寄存器,根据所述AD9361芯片的芯片手册可知,当所述内部寄存器0x3F4的值
为0x09时,可使所述AD9361模块内建产生伪随机二进制序列(Pseudo‑Random Binary 
Sequence,简称PRBS);具体配置方式可以但不限于为:由所述计算机设备生成第一配置指
令,然后将所述第一配置指令传送至所述FPGA模块,最后由所述FPGA模块执行所述第一配
置指令,将所述内部寄存器0x3F4的值配置为0x09。此外,所述FPGA模块与所述AD9361模块
可以是一对多的对应关系,即在单张AD9361板卡上布置有多个AD9361模块,以便分别对与
各个AD9361模块对应的RX路径进行校准。
[0061] 在所述步骤S1中,考虑在对所述AD9361板卡的接收路径进行校准过程中,所述接收通道上的数据没有意义,因此可以向所述FPGA模块的逻辑程序告知当前处于接收路径校
准过程中,可将从所述接收通道上获取的数据隐藏掉,直到校准完成,即在配置AD9361模块
中的内部寄存器0x3F4的值为0x09之前或同时,所述方法还包括:将所述FPGA模块中的第一
外设寄存器的值配置为第一指示值,以便通过所述第一指示值向所述FPGA模块的逻辑程序
指示对由所述输入端口输入的数据进行隐藏处理,不提供给用户接口。如图2所示,所述第
一外设寄存器为在所述FPGA模块中位于FPGA芯片外的且根据逻辑程序设计需要而配置的
寄存器,举例的,所述第一外设寄存器可以为命名AD_CAL_EN的1位寄存器,进而通过配置为
1(即所述第一指示值)来向所述FPGA模块的逻辑程序指示当前处于接收路径校准过程中,
需对由所述输入端口输入的数据进行隐藏处理,并通过配置为0(即在配置所述第一指示值
前的初始指示值)来向所述FPGA模块的逻辑程序指示当前校准完成,可将由所述输入端口
输入的数据提供给用户接口;具体配置方式可以但不限于为:由所述计算机设备生成第一
控制指令,并执行所述第一控制指令,将所述第一外设寄存器的值配置为所述第一指示值。
此外,若所述FPGA模块与所述AD9361模块是一对多的对应关系,则所述第一外设寄存器需
设置为多个并与多个所述AD9361模块一一对应,以便指示对应的RX路径是否处于校准过程
中。
[0062] S2.遍历各个第一延迟数组:先将所述AD9361模块中的内部寄存器0x006的值配置为第一数值和/或将所述输入端口中的输入延迟单元的延迟值配置为第二数值,然后读取
由所述FPGA模块记录的且基于所述伪随机二进制序列的第一校验结果,若所述第一校验结
果指示校验正确,则将包含有所述第一数值和/或所述第二数值的第一延迟数组作为第一
可用延迟数组。
[0063] 在所述步骤S2中,所述第一延迟数组用于配置所述内部寄存器0x006的值和/或所述输入延迟单元的延迟值,可以为仅包含有所述内部寄存器0x006的可能值的二维坐标值
(其两坐标值分别对应时钟信号延迟处理和数据信号延迟处理,并且它们的可能值范围均
为0~15,即所述第一延迟数组有16×16个,可分别用于配置所述内部寄存器0x006的值)、
仅包含有所述输入延迟单元的可能延迟值的一维坐标值(例如可能延迟值范围为0~31,即
所述第一延迟数组有32个,可分别用于配置所述输入延迟单元的延迟值)或包括有所述内
部寄存器0x006的所有可能值和所述输入延迟单元的所有可能延迟值的三维坐标值(即所
述第一延迟数组有16×16×32个,可分别用于配置所述内部寄存器0x006的值和所述输入
延迟单元的延迟值)。所述遍历各个第一延迟数组具体是指针对各个二维坐标值、各个一维
坐标值或各个三维坐标值,分别按照如下方式处理一次:先将所述AD9361模块中的内部寄
存器0x006的值配置为第一数值(即某个二维坐标值)和/或将所述输入端口中的输入延迟
单元的延迟值配置为第二数值(即某个一维坐标值),然后读取由所述FPGA模块记录的且基
于所述伪随机二进制序列的第一校验结果,若所述第一校验结果指示校验正确,则将包含
有所述第一数值和/或所述第二数值的第一延迟数组作为第一可用延迟数组。
[0064] 在所述步骤S2中,所述内部寄存器0x006为在所述AD9361模块中位于AD9361芯片内的且命名为0x006的现有寄存器,根据所述AD9361芯片的芯片手册可知,所述内部寄存器
0x006为8位寄存器,其中,4位用于在时钟信号延迟处理时实现在0~15范围内的取值,另有
4位用于在数据信号延迟处理上实现在0~15范围内的取值;具体配置方式可以但不限于
为:由所述计算机设备生成第二配置指令,然后将所述第二配置指令传送至所述FPGA模块,
最后由所述FPGA模块执行所述第二配置指令,将所述内部寄存器0x006的值配置为所述第
一数值(例如Ox0102,其中,前4位可用于时钟信号延迟处理,后4位可用于数据信号延迟处
理)。所述输入延迟单元为在所述FPGA模块内FPGA芯片中的所述输入端口中的现有单元,用
于可编程地设置IDELAY TAP数目(即在0~31范围内取值),实现时间延迟目的;具体配置方
式可以但不限于为:由所述计算机设备生成第二控制指令,并执行所述第二控制指令,将所
述输入延迟单元的延迟值配置为第二数值(例如Ox101=17)。基于所述伪随机二进制序列的
第一校验结果是由所述FPGA模块的逻辑程序通过判断AD9361官方驱动代码输出的adc_pn_
oos信号和adc_pn_err信号在一定时间内是否都不为0的方式来得到,即当两信号在一定时
间内都不为0,则判定校验结果正确,反映RX校准在一定时间内能自动完成,表示当前配置
的第一数值和/或第二数值可用,构成所述第一可用延迟数组。
[0065] 在所述步骤S2中,具体的,当所述第一延迟数组为三维坐标值时,先将所述AD9361模块中的内部寄存器0x006的值配置为第一数值和/或将所述输入端口中的输入延迟单元
的延迟值配置为第二数值,然后读取由所述FPGA模块记录的且基于所述伪随机二进制序列
的第一校验结果,若所述第一校验结果指示校验正确,则将包含有所述第一数值和/或所述
第二数值的第一延迟数组作为第一可用延迟数组,包括但不限于有如下步骤S21~S26。
[0066] S21.将所述AD9361模块中的内部寄存器0x006的值配置为第一数值。
[0067] S22.将所述FPGA模块中的第二外设寄存器的值配置为第二数值,以便使所述第二数值作为所述输入端口中的输入延迟单元的延迟值。
[0068] 在所述步骤S22中,所述第二外设寄存器为在所述FPGA模块中位于FPGA芯片外的且根据逻辑程序设计需要而配置的寄存器,用于存储为所述输出延迟单元配置的IDELAY 
TAP数目,以便载入FPGA模块的逻辑程序中。举例的,所述第二外设寄存器可以为命名AD_
IDELAY_TAP的5位寄存器,以便实现在0~31范围内的取值。
[0069] S23.将所述FPGA模块中的第三外设寄存器的值从无效状态值配置为有效状态值,以便触发所述FPGA模块的逻辑程序读取所述第二外设寄存器的值,使所述第二数值载入到
基于所述伪随机二进制序列的逻辑程序校验过程中。
[0070] 在所述步骤S23中,所述第三外设寄存器为在所述FPGA模块中位于FPGA芯片外的且根据逻辑程序设计需要而配置的寄存器,用于触发将所述第二外设寄存器的值载入逻辑
程序中。举例的,所述第三外设寄存器可以为命名IDELAY_TAP_LD_CTRL的1位寄存器,同时
考虑逻辑程序是检测IDELAY_TAP_LD_CTRL寄存器的比特位上升沿再进行触发操作,因此所
述无效状态值可为0,所述有效状态值可为1,并在将所述FPGA模块中的第二外设寄存器的
值配置为第二数值之前,需先将所述FPGA模块中的第三外设寄存器的值配置为无效状态
值。此外,若所述FPGA模块与所述AD9361模块是一对多的对应关系,则所述第三外设寄存器
需设置为多个并与多个所述AD9361模块一一对应,以便分别触发将所述第二外设寄存器的
值载入到对应RX路径的逻辑程序校验过程中。
[0071] S24.在等待第一时长后,读取所述FPGA模块中的第四外设寄存器的值,以便得到由所述FPGA模块记录的且基于所述伪随机二进制序列的第一校验结果,其中,所述第一时
长不小于 微秒, 表示所述AD9361模块的采样率且单位为MHz, 表示预设
的验证数据目标数。
[0072] 在所述步骤S24中,所述第四外设寄存器为在所述FPGA模块中位于FPGA芯片外的且根据逻辑程序设计需要而配置的寄存器,用于记录所述第一校验结果。举例的,所述第四
外设寄存器可以为命名AD_CAL_RESULT的1位寄存器,并用状态值1指示校验正确,用状态值
0指示校验不正确。由于所述AD9361模块的采样率是由所述计算机设备通过所述FPGA模块
进行配置的,因此可以提前确定所述第一时长,例如当所述采样率为60MHz且所述验证数据
目标数预设为2000时,所述第一时长需要不小于8.33微秒。考虑在所述FPGA模块中基于所
述伪随机二进制序列进行逻辑程序校验需要一定的时间,若等待时间过短将可能存在adc_
pn_oos信号或adc_pn_err信号一直都为零的情况,因此需在触发载入后等待所述第一时长
才读取所述第四外设寄存器的值。此外,若所述FPGA模块与所述AD9361模块是一对多的对
应关系,则所述第四外设寄存器需设置为多个并与多个所述AD9361模块一一对应,以便分
别记录对应RX路径的逻辑程序校验结果。
[0073] S25.判断所述第四外设寄存器的值是否为用于指示校验正确的状态值。
[0074] 在所述步骤S25中,具体是判断所述第四外设寄存器的值是否为1,若为1则表明在RX路径上的逻辑程序校验正确,此时的所述第一数值可用于配置所述寄存器0x006的值,以
及此时的所述第二数值可用于配置所述输入延迟单元的延迟值,反之则不行。
[0075] S26.若是,则记录所述第一数值和所述第二数值,以便将包含有所述第一数值和所述第二数值的第一延迟数组作为第一可用延迟数组。
[0076] 在所述步骤S26之后,若针对所述第一数值未遍历完所述输入延迟单元的所有可能延迟值,则需针对另一个可能延迟值,重新返回执行步骤S22~S26,否则,需针对所述寄
存器0x006的另一个可能值,重新返回执行步骤S21~S26,直到遍历完所述寄存器0x006的
所有可能值。此外,在遍历过程中各个可能数值的顺序可以有序的(例如从0递增到31),也
可以是无序的,并无限定。
[0077] 在所述步骤S2中,参照前述步骤S21~S26,还可以在所述第一延迟数组为二维坐标值时,得到对应的遍历过程,即:先将所述AD9361模块中的内部寄存器0x006的值配置为
第一数值;然后将所述FPGA模块中的第三外设寄存器的值从无效状态值配置为有效状态
值,以便触发所述FPGA模块的逻辑程序读取所述第二外设寄存器的值,使固定不变的某个
可能延迟值(例如17)载入到基于所述伪随机二进制序列的逻辑程序校验过程中;在等待所
述第一时长后,读取所述FPGA模块中的第四外设寄存器的值,以便得到由所述FPGA模块记
录的且基于所述伪随机二进制序列的第一校验结果;最后判断所述第四外设寄存器的值是
否为用于指示校验正确的状态值,若是,则记录所述第一数值,以便将包含有所述第一数值
的第一延迟数组作为第一可用延迟数组。
[0078] 在所述步骤S2中,同样参照前述步骤S21~S26,还可以在所述第一延迟数组为一维坐标值时,得到对应的遍历过程,即:先将所述FPGA模块中的第二外设寄存器的值配置为
第二数值,以便使所述第二数值作为所述输入端口中的输入延迟单元的延迟值(此时所述
内部寄存器0x006的值为一个固定不变的可能值);将所述FPGA模块中的第三外设寄存器的
值从无效状态值配置为有效状态值,以便触发所述FPGA模块的逻辑程序读取所述第二外设
寄存器的值,使所述第二数值载入到基于所述伪随机二进制序列的逻辑程序校验过程中;
在等待所述第一时长后,读取所述FPGA模块中的第四外设寄存器的值,以便得到由所述
FPGA模块记录的且基于所述伪随机二进制序列的第一校验结果;最后判断所述第四外设寄
存器的值是否为用于指示校验正确的状态值,若是,则记录所述第二数值,以便将包含有所
述第二数值的第一延迟数组作为第一可用延迟数组。
[0079] S3.从遍历所得的多个第一可用延迟数组中确定出第一最佳可用延迟数组,其中,所述第一最佳可用延迟数组位于所述多个第一可用延迟数组中的中心位置。
[0080] 在所述步骤S3中,由于所述内部寄存器0x006的可用值和/或所述输入延迟单元的可用延迟值会具有连续性,因此所述多个第一可用延迟数组在一维空间、二维空间或三维
空间中具有连通特点,进而可将位于连通区域中心的第一可用延迟数组确定为所述第一最
佳可用延迟数组。例如当所述多个第一可用延迟数组中的多个二维坐标值分别为(3,7)、
(4,7)、(5,7)、(3,8)、(4,8)、(5,8)、(3,9)、(4,9)和(5,9)时,可将(5,8)作为第一最佳数值,
和/或当所述多个第一可用延迟数组中的多个一维坐标值分别为2、3、4、5、6、7和8时,可将5
作为第二最佳数值,得到所述第一最佳可用延迟数组。
[0081] S4.根据所述第一最佳可用延迟数组配置所述内部寄存器0x006的值和/或所述输入延迟单元的延迟值。
[0082] 在所述步骤S4中,具体的,当所述第一最佳可用延迟数组仅包含有为二维坐标值的第一最佳数值时,可通过所述FPGA模块将所述AD9361模块中的内部寄存器0x006的值配
置为该第一最佳数值;当所述第一最佳可用延迟数组仅包含有为一维坐标值的第二最佳数
值时,可将所述输入端口中的输入延迟单元的延迟值配置为该第二最佳数值;当所述第一
最佳可用延迟数组包含有为二维坐标值的第一最佳数值和为一维坐标值的第二最佳数值
时,可通过所述FPGA模块将所述AD9361模块中的内部寄存器0x006的值配置为该第一最佳
数值,并将所述输入端口中的输入延迟单元的延迟值配置为该第二最佳数值。此外,发明人
通过多次试验发现,为所述内部寄存器0x006配置最佳可能值所带来的且避免接收信号出
现波形失真的效果,要明显优于为所述输入延迟单元配置最佳可能延迟值所带来的对应效
果,因此可优选考虑根据所述第一最佳可用延迟数组配置所述内部寄存器0x006的值。
[0083] 在所述步骤S4之后,由于在前已通过所述第一外设寄存器向所述FPGA模块的逻辑程序指示对由所述输入端口输入的数据进行隐藏处理,不提供给用户接口,出于恢复和指
示RX路径校准调整完成的目的,可将所述第一外设寄存器的值配置为另一指示值(例如0),
以便向所述逻辑程序指示对由所述输入端口输入的数据不进行隐藏处理,可提供给用户接
口。此外,还可以将所述多个第一可用延迟数组保存在所述FPGA模块的其他外设寄存器,以
便供内部调试用。
[0084] 由此基于前述步骤S1~S4所描述的自动校准AD9361板卡的方法,提供了一种配合FPGA技术校准AD9361板卡接收路径的自动化方案,即先配置AD9361模块内建产生伪随机二
进制序列,然后针对AD9361模块中的内部寄存器0x006的各个可能值和/或输入延迟单元的
各个可能延迟值进行遍历,确定出能基于所述伪随机二进制序列得到校验正确结果的可用
值和/或可用延迟值,最后从多个可用值和/或多个可用延迟值中选出最佳可用数值来配置
所述内部寄存器0x006的值和/或所述输入延迟单元的延迟值,从而自动化完成对AD9361板
卡接收路径的校准调整,不但使得FPGA程序无需在每次AD9361板卡生产时都独立地编译,
还可极大减少人工操作,避免处理麻烦,快速准确地校准多张AD9361板卡上单个或多个
AD9361模块的RX路径,进而利于以后批产时生产人员的操作,大大提高生产效率,便于实际
应用和推广。
[0085] 本实施例在前述第一方面的技术方案基础上,还提供了一种如何配合FPGA技术校准AD9361板卡发射路径的可能设计一,即如图1所示,在根据所述第一最佳可用延迟数组配
置所述内部寄存器0x006的值和/或所述输入延迟单元的延迟值之后,所述方法还包括但不
限于有如下步骤S5~S8。
[0086] S5.配置所述AD9361模块中的内部寄存器0x3F5的值为0x81,使所述AD9361模块将发射通道中的数字信号回环至所述接收通道,以便利用所述接收通道向所述FPGA模块的输
入端口传送所述数字信号,其中,所述数字信号为由所述FPGA模块的输出端口传出的且仿
照所述伪随机二进制序列产生的新序列。
[0087] 在所述步骤S5中,所述内部寄存器0x3F5为在所述AD9361模块中位于AD9361芯片内的且命名为0x3F5的现有寄存器,根据所述AD9361芯片的芯片手册可知,当所述内部寄存
器0x3F5的值为0x81时,可使所述AD9361模块将发射通道中的数字信号回环至所述接收通
道中;具体配置方式可以但不限于为:由所述计算机设备生成第三配置指令,然后将所述第
三配置指令传送至所述FPGA模块,最后由所述FPGA模块执行所述第三配置指令,将所述内
部寄存器0x3F5的值配置为0x81。此外,所述新序列需在遍历前产生,具体产生方式可通过
查阅相关资料和仿真代码,找到AD9361芯片内建PRBS的逻辑生成方式,然后基于该逻辑生
成方式进行仿真恢复;如图3(a)示出的伪随机二进制序列的波形和图3(b)示出得新序列的
波形,可见两波形的部分序列完全一致,足以用于与所述伪随机二进制序列进行一样的逻
辑程序校验。
[0088] 在所述步骤S5中,同样考虑在对所述AD9361板卡的发射路径进行校准过程中,所述接收通道上的数据(即所述数字信号和所述伪随机二进制序列)还是没有意义,因此同样
可以向所述FPGA模块的逻辑程序告知当前处于发射路径校准过程中,可将从所述接收通道
上获取的数据隐藏掉,直到校准完成,即在配置所述AD9361模块中的内部寄存器0x3F5的值
为0x81之前或同时,所述方法还包括:将所述FPGA模块中的第五外设寄存器的值配置为第
二指示值,以便通过所述第二指示值向所述FPGA模块的逻辑程序指示对由所述输入端口输
入的数据(例如DDS数据,其中,DDS为直接数字频率合成Direct Digital Synthesis的英文
缩写)进行隐藏处理,不提供给用户接口。如图2所示,所述第五外设寄存器为在所述FPGA模
块中位于FPGA芯片外的且根据逻辑程序设计需要而配置的寄存器,举例的,所述第五外设
寄存器可以为命名DA_CAL_EN的1位寄存器,进而通过配置为1(即所述第二指示值)来向所
述FPGA模块的逻辑程序指示当前处于发射路径校准过程中,需对由所述输入端口输入的数
据进行隐藏处理,并通过配置为0(即在配置所述第二指示值前的初始指示值)来向所述
FPGA模块的逻辑程序指示当前校准完成,可将由所述输入端口输入的数据提供给用户接
口;具体配置方式可以但不限于为:由所述计算机设备生成第三控制指令,并执行所述第三
控制指令,将所述第五外设寄存器的值配置为所述第二指示值。此外,若所述FPGA模块与所
述AD9361模块是一对多的对应关系,则所述第五外设寄存器需设置为多个并与多个所述
AD9361模块一一对应,以便指示对应的TX路径是否处于校准过程中。
[0089] S6.遍历各个第二延迟数组:先将所述AD9361模块中的内部寄存器0x007的值配置为第三数值和/或将所述输出端口中的输出延迟单元的延迟值配置为第四数值,然后读取
由所述FPGA模块记录的且基于所述数字信号的第二校验结果,若所述第二校验结果指示校
验正确,则将包含有所述第三数值和/或所述第四数值的第二延迟数组作为第二可用延迟
数组。
[0090] 在所述步骤S6中,所述第二延迟数组用于配置所述内部寄存器0x007的值和/或所述输出延迟单元的延迟值,可以为仅包含有所述内部寄存器0x007的可能值的二维坐标值
(其两坐标值分别对应时钟信号延迟处理和数据信号延迟处理,并且它们的可能值范围均
为0~15,即所述第二延迟数组有16×16个,可分别用于配置所述内部寄存器0x007的值)、
仅包含有所述输出延迟单元的可能延迟值的一维坐标值(例如可能延迟值范围为0~31,即
所述第二延迟数组有32个,可分别用于配置所述输出延迟单元的延迟值)或包括有所述内
部寄存器0x007的所有可能值和所述输出延迟单元的所有可能延迟值的三维坐标值(即所
述第二延迟数组有16×16×32个,可分别用于配置所述内部寄存器0x007的值和所述输出
延迟单元的延迟值)。所述遍历各个第二延迟数组具体是指针对各个二维坐标值、各个一维
坐标值或各个三维坐标值,分别按照如下方式处理一次:先将所述AD9361模块中的内部寄
存器0x007的值配置为第三数值(即某个二维坐标值)和/或将所述输出端口中的输出延迟
单元的延迟值配置为第四数值(即某个一维坐标值),然后读取由所述FPGA模块记录的且基
于所述数字信号的第二校验结果,若所述第二校验结果指示校验正确,则将包含有所述第
三数值和/或所述第四数值的第二延迟数组作为第二可用延迟数组。
[0091] 在所述步骤S6中,所述内部寄存器0x007为在所述AD9361模块中位于AD9361芯片内的且命名为0x007的现有寄存器,根据所述AD9361芯片的芯片手册可知,所述内部寄存器
0x007为8位寄存器,其中,4位用于在时钟信号延迟处理时实现在0~15范围内的取值,另有
4位用于在数据信号延迟处理上实现在0~15范围内的取值;具体配置方式可以但不限于
为:由所述计算机设备生成第四配置指令,然后将所述第四配置指令传送至所述FPGA模块,
最后由所述FPGA模块执行所述第四配置指令,将所述内部寄存器0x007的值配置为所述第
三数值(例如Ox0102,其中,前4位可用于时钟信号延迟处理,后4位可用于数据信号延迟处
理)。所述输出延迟单元为在所述FPGA模块内FPGA芯片中的所述输出端口中的现有单元,用
于可编程地设置ODELAY TAP数目(即在0~31范围内取值),实现时间延迟目的;具体配置方
式可以但不限于为:由所述计算机设备生成第四控制指令,并执行所述第四控制指令,将所
述输出延迟单元的延迟值配置为第四数值(例如Ox101=17)。由于所述AD9361板卡的接收路
径已在前完成校准调整,因此通过将所述新序列由所述输出端口传出至所述发射通道并回
环至所述接收通道,使得可用回收的新序列进行与所述伪随机二进制序列一样的逻辑程序
校验,来反映所述AD9361板卡的发射路径是否能得到正确的校验结果,即反映TX校准在一
定时间内能自动完成。此外,同样基于所述新序列的第二校验结果是由所述FPGA模块的逻
辑程序通过判断AD9361官方驱动代码输出的adc_pn_oos信号和adc_pn_err信号在一定时
间内是否都不为0的方式来得到,即当两信号在一定时间内都不为0,则判定校验结果正确,
表示当前配置的第三数值和/或第四数值可用,构成所述第二可用延迟数组。
[0092] 在所述步骤S6中,具体的,当所述第二延迟数组为三维坐标值时,先将所述AD9361模块中的内部寄存器0x007的值配置为第三数值和/或将所述输出端口中的输出延迟单元
的延迟值配置为第四数值,然后读取由所述FPGA模块记录的且基于所述数字信号的第二校
验结果,若所述第二校验结果指示校验正确,则将包含有所述第三数值和/或所述第四数值
的第二延迟数组作为第二可用延迟数组,包括但不限于有如下步骤S61~S66。
[0093] S61.将所述AD9361模块中的内部寄存器0x007的值配置为第三数值。
[0094] S62.将所述FPGA模块中的第六外设寄存器的值配置为第四数值,以便使所述第四数值作为所述输出端口中的输出延迟单元的延迟值。
[0095] S63.将所述FPGA模块中的第七外设寄存器的值从无效状态值配置为有效状态值,以便触发所述FPGA模块的逻辑程序读取所述第七外设寄存器的值,使所述第四数值载入到
基于所述数字信号的逻辑程序校验过程中。
[0096] S64.在等待第二时长后,读取所述FPGA模块中的第八外设寄存器的值,以便得到由所述FPGA模块记录的且基于所述数字信号的第二校验结果,其中,所述第二时长不小于
微秒, 表示所述AD9361模块的采样率且单位为MHz, 表示预设的验证数
据目标数。
[0097] S65.判断所述第八外设寄存器的值是否为用于指示校准正确的状态值。
[0098] S66.若是,则记录所述第三数值和所述第四数值,以便将包含有所述第三数值和所述第四数值的第二延迟数组作为第二可用延迟数组。
[0099] 所述步骤S61~S66的技术细节可参见前述步骤S21~S26,并通过常规方式推导得到,于此不再赘述。同样的,在所述步骤S66之后,若针对所述第三数值未遍历完所述输出延
迟单元的所有可能延迟值,则需针对另一个可能延迟值,重新返回执行步骤S62~S66,否
则,需针对所述寄存器0x007的另一个可能值,重新返回执行步骤S61~S66,直到遍历完所
述寄存器0x007的所有可能值。此外,在遍历过程中各个可能数值的顺序可以有序的(例如
从0递增到31),也可以是无序的,并无限定。
[0100] 在所述步骤S6中,参照前述步骤S61~S66,还可以在所述第二延迟数组为二维坐标值时,得到对应的遍历过程,即:先将所述AD9361模块中的内部寄存器0x007的值配置为
第三数值;然后将所述FPGA模块中的第七外设寄存器的值从无效状态值配置为有效状态
值,以便触发所述FPGA模块的逻辑程序读取所述第七外设寄存器的值,使固定不变的某个
可能延迟值(例如17)载入到基于所述数字信号的逻辑程序校验过程中;在等待所述第二时
长后,读取所述FPGA模块中的第八外设寄存器的值,以便得到由所述FPGA模块记录的且基
于所述数字信号的第二校验结果;最后判断所述第八外设寄存器的值是否为用于指示校验
正确的状态值,若是,则记录所述第三数值,以便将包含有所述第三数值的第二延迟数组作
为第二可用延迟数组。
[0101] 在所述步骤S6中,同样参照前述步骤S61~S66,还可以在所述第二延迟数组为一维坐标值时,得到对应的遍历过程,即:先将所述FPGA模块中的第六外设寄存器的值配置为
第四数值,以便使所述第四数值作为所述输出端口中的输出延迟单元的延迟值(此时所述
内部寄存器0x007的值为一个固定不变的可能值);将所述FPGA模块中的第七外设寄存器的
值从无效状态值配置为有效状态值,以便触发所述FPGA模块的逻辑程序读取所述第七外设
寄存器的值,使所述第四数值载入到基于所述数字信号的逻辑程序校验过程中;在等待所
述第二时长后,读取所述FPGA模块中的第八外设寄存器的值,以便得到由所述FPGA模块记
录的且基于所述数字信号的第二校验结果;最后判断所述第八外设寄存器的值是否为用于
指示校验正确的状态值,若是,则记录所述第四数值,以便将包含有所述第四数值的第二延
迟数组作为第二可用延迟数组。
[0102] S7.从遍历所得的多个第二可用延迟数组中确定出第二最佳可用延迟数组,其中,所述第二最佳可用延迟数组位于所述多个第二可用延迟数组中的中心位置。
[0103] 在所述步骤S7中,由于所述内部寄存器0x007的可用值和/或所述输出延迟单元的可用延迟值会具有连续性,因此所述多个第二可用延迟数组在一维空间、二维空间或三维
空间中具有连通特点,进而可将位于连通区域中心的第二可用延迟数组确定为所述第二最
佳可用延迟数组。例如当所述多个第二可用延迟数组中的多个二维坐标值分别为(11,9)、
(12,9)、(13,9)、(11,10)、(12,10)、(13,10)、(11,11)、(12,11)和(13,11)时,可将(12,10)
作为第三最佳数值,和/或当所述多个第二可用延迟数组中的多个一维坐标值分别为9、10、
11、12和13时,可将11作为第四最佳数值,得到所述第二最佳可用延迟数组。
[0104] S8.根据所述第二最佳可用延迟数组配置所述内部寄存器0x007的值和/或所述输出延迟单元的延迟值。
[0105] 在所述步骤S8中,具体的,当所述第二最佳可用延迟数组仅包含有为二维坐标值的第三最佳数值时,可通过所述FPGA模块将所述AD9361模块中的内部寄存器0x007的值配
置为该第三最佳数值;当所述第二最佳可用延迟数组仅包含有为一维坐标值的第四最佳数
值时,可将所述输出端口中的输出延迟单元的延迟值配置为该第四最佳数值;当所述第二
最佳可用延迟数组包含有为二维坐标值的第三最佳数值和为一维坐标值的第四最佳数值
时,可通过所述FPGA模块将所述AD9361模块中的内部寄存器0x007的值配置为该第三最佳
数值,并将所述输出端口中的输出延迟单元的延迟值配置为该第四最佳数值。此外,发明人
通过多次试验发现,为所述内部寄存器0x007配置最佳可能值所带来的且避免发射信号出
现杂散的效果,要明显优于为所述输出延迟单元配置最佳可能延迟值所带来的对应效果,
因此可优选考虑根据所述第二最佳可用延迟数组配置所述内部寄存器0x007的值。
[0106] 在所述步骤S8之后,由于在前已通过所述第五外设寄存器向所述FPGA模块的逻辑程序指示对由所述输入端口输入的数据进行隐藏处理,不提供给用户接口,出于恢复和指
示TX路径校准调整完成的目的,可将所述第五外设寄存器的值配置为另一指示值(例如0),
以便向所述逻辑程序指示对由所述输入端口输入的数据不进行隐藏处理,可提供给用户接
口。此外,还可以将所述多个第二可用延迟数组保存在所述FPGA模块的其他外设寄存器,以
便供内部调试用。
[0107] 由此基于前述步骤S5~S8所描述的可能设计一,还可以在完成AD9361板卡接收路径的校准调整基础上,进一步配合FPGA技术自动化完成对AD9361板卡发射路径的校准调
整,快速准确地校准多张AD9361板卡上单个或多个AD9361模块的TX路径,进一步利于以后
批产时生产人员的操作和提高生产效率。
[0108] 如图4所示,本实施例第二方面提供了一种实现第一方面或第一方面中任一可能设计所述的方法的虚拟装置,布置于通信连接AD9361板卡的计算机设备中,包括有依次通
信连接的第一参数配置模块、序列校验遍历模块、最佳配置确定模块和第二参数配置模块;
[0109] 所述第一参数配置模块,用于配置AD9361模块中的内部寄存器0x3F4的值为0x09,使所述AD9361模块内建产生伪随机二进制序列,并利用接收通道向现场可编程逻辑门阵列
FPGA模块的输入端口传送所述伪随机二进制序列,其中,所述AD9361模块和所述FPGA模块
分别布置在所述AD9361板卡上并通信相连;
[0110] 所述序列校验遍历模块,用于遍历各个第一延迟数组:先将所述AD9361模块中的内部寄存器0x006的值配置为第一数值和/或将所述输入端口中的输入延迟单元的延迟值
配置为第二数值,然后读取由所述FPGA模块记录的且基于所述伪随机二进制序列的第一校
验结果,若所述第一校验结果指示校验正确,则将包含有所述第一数值和/或所述第二数值
的第一延迟数组作为第一可用延迟数组;
[0111] 所述最佳配置确定模块,用于从遍历所得的多个第一可用延迟数组中确定出第一最佳可用延迟数组,其中,所述第一最佳可用延迟数组位于所述多个第一可用延迟数组中
的中心位置;
[0112] 所述第二参数配置模块,用于根据所述第一最佳可用延迟数组配置所述内部寄存器0x006的值和/或所述输入延迟单元的延迟值。
[0113] 在一种可能设计中,所述第一参数配置模块还通信连接所述第二参数配置模块,还用于在根据所述第一最佳可用延迟数组配置所述内部寄存器0x006的值和/或所述输入
延迟单元的延迟值之后,配置所述AD9361模块中的内部寄存器0x3F5的值为0x81,使所述
AD9361模块将发射通道中的数字信号回环至所述接收通道,以便利用所述接收通道向所述
FPGA模块的输入端口传送所述数字信号,其中,所述数字信号为由所述FPGA模块的输出端
口传出的且仿照所述伪随机二进制序列产生的新序列;
[0114] 所述序列校验遍历模块,还用于遍历各个第二延迟数组:先将所述AD9361模块中的内部寄存器0x007的值配置为第三数值和/或将所述输出端口中的输出延迟单元的延迟
值配置为第四数值,然后读取由所述FPGA模块记录的且基于所述数字信号的第二校验结
果,若所述第二校验结果指示校验正确,则将包含有所述第三数值和/或所述第四数值的第
二延迟数组作为第二可用延迟数组;
[0115] 所述最佳配置确定模块,还用于从遍历所得的多个第二可用延迟数组中确定出第二最佳可用延迟数组,其中,所述第二最佳可用延迟数组位于所述多个第二可用延迟数组
中的中心位置;
[0116] 所述第二参数配置模块,还用于根据所述第二最佳可用延迟数组配置所述内部寄存器0x007的值和/或所述输出延迟单元的延迟值。
[0117] 本实施例第二方面提供的前述装置的工作过程、工作细节和技术效果,可以参见第一方面或第一方面中任一可能设计所述的方法,于此不再赘述。
[0118] 如图5所示,本实施例第三方面提供了一种执行第一方面或第一方面中任一可能设计所述方法的计算机设备,包括有依次通信连接的存储器、处理器和收发器,其中,所述
存储器用于存储计算机程序,所述收发器用于收发信息,所述处理器用于读取所述计算机
程序,执行如第一方面或第一方面中任一可能设计所述的方法。具体举例的,所述存储器可
以但不限于包括随机存取存储器(Random‑Access Memory,RAM)、只读存储器(Read‑Only 
Memory,ROM)、闪存(Flash Memory)、先进先出存储器(First Input First Output,FIFO)
和/或先进后出存储器(First Input Last Output,FILO)等等;所述处理器可以但不限于
采用型号为STM32F105系列的微处理器。此外,所述计算机设备还可以但不限于包括有电源
模块、显示屏和其它必要的部件。
[0119] 本实施例第三方面提供的前述计算机设备的工作过程、工作细节和技术效果,可以参见第一方面或第一方面中任一可能设计所述的方法,于此不再赘述。
[0120] 本实施例第四方面提供了一种存储包含第一方面或第一方面中任一可能设计所述方法的指令的计算机可读存储介质,即所述计算机可读存储介质上存储有指令,当所述
指令在计算机上运行时,执行如第一方面或第一方面中任一可能设计所述的方法。其中,所
述计算机可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优
盘和/或记忆棒(Memory Stick)等计算机可读存储介质,所述计算机可以是通用计算机、专
用计算机、计算机网络、或者其他可编程装置。
[0121] 本实施例第四方面提供的前述计算机可读存储介质的工作过程、工作细节和技术效果,可以参见第一方面或第一方面中任一可能设计所述的方法,于此不再赘述。
[0122] 本实施例第五方面提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面或第一方面中任一可能设计所述的方法。其中,所
述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
[0123] 最后应说明的是,本发明不局限于上述可选的实施方式,任何人在本发明的启示下都可得出其他各种形式的产品。上述具体实施方式不应理解成对本发明的保护范围的限
制,本发明的保护范围应当以权利要求书中界定的为准,并且说明书可以用于解释权利要
求书。