一种基于FPGA实现的触发电平自动校准方法与流程

文档序号:11215513阅读:1408来源:国知局
一种基于FPGA实现的触发电平自动校准方法与流程

本发明属于校准技术,具体涉及一种基于fpga实现的触发电平自动校准方法。



背景技术:

信号触发功能是数据采集领域的一个重要功能,其在信号采集的精准定位、信号数据的准确分析、信号波形的稳定显示等方面扮演重要角色。而触发信号的灵敏实现中,电压比较电路是其主要功能环节,电压比较器的稳定性、灵敏性直接关系到整形后触发信号质量的好坏。因通常的输入信号大多为正弦信号,其信号上升沿、下降沿较为平缓,不利于fpga等数字信号处理器件进行信号的识别判别,所以,输入信号需先经电压比较电路进行触发信号的方波整形处理,然后再输送到fpga或其他处理单元进行触发信号的识别处理。方波信号具备快速的信号上升和滚降特性,fpga等处理器件能够灵敏的识别处理。图1为电压比较器在触发应用中的工作原理。

如图1所示,正弦波输入信号在经与直流比较电压信号在电压比较器中比较处理后,输出方波整形信号,对于输入信号中大于直流比较电压的信号段,经电压比较器输出后输出为高电平,对于输入信号中小于等于直流比较电压的信号段,经电压比较器输出后输出为低电平。当直流比较电压在输入信号幅值范围内时,输出一个正脉宽和负脉宽占比一定的方波信号;当直流比较电压低于输入信号幅值最小值时,比较输出只有高电平;当直流比较电压高于输入信号幅值最大值时,比较输出只有低电平。

在正常信号触发的使用应用中,系统初始化状态下一般要默认为触发电平在输入信号幅值的中心位置处,也即电压比较器输出为正脉宽和负脉宽接近相等的方波信号,所以对于比较电压,在初始化时是一个固定值。而在通常的设计实现过程中,我们通过数模转换器dac来实现直流比较电压的设置,dac通过fpga等可编程逻辑器件进行电压数字编码的设置,输出一定幅值的直流信号,所以对于初始直流比较电压而言,需要在fpga中预置一个初始电压数字编码,以完成直流电压的初始化生成。在通过电压比较器进行触发信号的产生、调试过程中,如图2所示,其一般的确定方法为:通过信号源产生想要的输入波形信号,在电压比较器的输出端,在测试探点处通过示波器进行触发信号的观测,通过fpga进行dac直流电压设置的控制,改变dac直流设置,产生不同的直流电压,观测示波器触发信号改变的情况,不断的调节dac设置从而确定相对输入信号的触发电平中心位置值。

触发电平的以上测试确定方法虽然能够满足大部分的使用应用情况,但却存在以下缺点,通过人为观测的方式确定触发电平,存在人为因素观测误差,且可能不同的人有不同的略小差别结果,存在人为操作偏差,无法避免。对于已经调试好的电路在产品中封装好后,无法再次进行调试,当由于产品的使用存在电路老化等产生比较电路电压偏差时,无法直接进行人为再测试、再修正。对于不同的工作环境,可能存在电源电压偏差问题,无法直接进行测试修正。对于输入信号中存在直流分量的情况,封装产品也无法直接进行人为测试修改。也即,对于产品一旦封装好,触发部分触发电平的修正修改将不再能够通过以上测试方法进行,如存在以上误差情况,将不能得到及时的改进处理,有可能致使触发工作存在一定的偏差或发生错误。



技术实现要素:

针对现有技术中存在的上述技术问题,本发明提出了一种基于fpga实现的触发电平自动校准方法,设计合理,克服了现有技术的不足,具有良好的效果。

为了实现上述目的,本发明采用如下技术方案:

一种基于fpga实现的触发电平自动校准方法,包括如下步骤:

步骤1:对于给定的触发系统,根据测试准确性要求,设同步计数时钟频率为h1,输入被测信号频率为h2,根据同步计数时钟频率h1推算出被测信号一个信号周期的计数值为num,采用同步计数时钟h1计数一个整形后方波信号正脉宽的计数值为np、负脉宽的计数值为nn,设cpu中dac的初始序列值为x1,设fpga中dac渐进步进为δx,设np为0,nn为0,cpu通过总线在fpga中设置dac输出直流信号的序列值x为x1,然后进入步骤2;

步骤2:fpga依序列值x设置dac输出直流信号,通过同步计数时钟h1对输入fpga中的整形触发信号进行计数操作预判断;

若:判断结果是输入整形触发信号在持续的高电平逻辑‘1’状态下计数值np≥num,则停止计数,进入步骤3;

或判断结果是输入整形触发信号在持续的低电平逻辑‘0’状态下计数值nn≥num,则停止计数,进入步骤4;

或判断结果是计数过程中监测到输入整形触发信号由低电平逻辑‘0’到高电平逻辑‘1’的状态转变,则设np为0,nn为0,进入步骤5;

步骤3:将dac直流信号序列值x递增δx,即x=x+δx;设np为0,nn为0,返回步骤2;

步骤4:将dac直流信号序列值x递减δx,即x=x-δx;设np为0,nn为0,返回步骤2;

步骤5:以同步计数时钟h1持续计数np,直到监测到输入整形触发信号由高电平逻辑‘1’到低电平逻辑‘0’的状态转变,则停止np计数,进入步骤6;

步骤6:以同步计数时钟h1持续计数nn,直到监测到输入整形触发信号由低电平逻辑‘0’到高电平逻辑‘1’的状态转变,则停止nn计数,进入步骤7;

步骤7:对于预置的理论计数差值ny以及计数允许偏差值nc,如果满足|np-nn-ny|≤nc,则进入步骤9;否则进入步骤8;

步骤8:如果np-nn-ny<0,则将dac直流信号序列值x递减δx,即x=x-δx,否则将dac直流信号序列值x递增δx,即x=x+δx;设np为0,nn为0,返回步骤2;

步骤9:fpga将x定为满足ny和nc的最佳序列,同时总线中断通知cpu,cpu响应中断,并读取fpga中的x值,作为之后的信号触发dac初始序列值x1的基准值,校准过程完成。

优选地,在步骤1中,所述测试准确性要求,是指输入被测信号的频率h2小于或者等于同步计数时钟频率h1的十分之一。

优选地,在步骤1中,所述推算出的被测信号一个信号周期的计数值num为:

优选地,在步骤5中,以同步计数时钟h1持续计数np的方法为:在h1时钟的上升沿时,且当输入整形触发信号为高电平逻辑‘1’时,np=np+1;在步骤6中,以同步计数时钟h1持续计数nn的方法为:在h1时钟的上升沿时,且当输入整形触发信号为低电平逻辑‘0’时,nn=nn+1。

优选地,在步骤7中,所述的理论计数差值ny以及计数允许偏差nc是通过cpu在fpga中设置的基准判别值,其中,理论计数差值ny的确定方法为:其中,α为整形触发信号的正脉宽占空比,nc取值为<10且≥0的整数。

优选地,在步骤1中,所述dac渐进步进δx应为大于0,且小于dac满量程范围十分之一的正整数。

本发明所带来的有益技术效果:

本发明方法通过软硬件对工作环节的有机分解、协调运行,使整个处理过程融合一体,不但大大提高了测试的速度和准确性,还避免了人为观测方式的观测误差和操作偏差。同时,对于已封装好的产品,有效克服了人为观测方法不能进行再调试、再修正的缺陷,解决了因使用环境差异、产品老化退化、注入信号差异等引起触发基准电平偏差而再校准的问题,使得存在误差情况时能够得到及时的修正处理,从而避免测试误差情况的发生;本方法自动判别的处理方式,也在一定程度上减少了人力测试资源的投入,降了成本提高了效率。

附图说明

图1为电压比较器工作原理图。

图2为触发信号调试工作原理图。

具体实施方式

下面结合附图以及具体实施方式对本发明作进一步详细说明:

本发明方法的基本原理是:通过电压比较电路将输入的正弦波信号整形处理成方波信号,然后在fpga中进行方波信号正脉宽和负脉宽计数,并进行计数判别处理,以及dac触发比较电路比较电平的判别调节,最终确定适合要求的触发电平值,通过上位机cpu进行保存及再使用。

因fpga在做本地接口总线通讯时常用50mhz时钟来同步数据传输,所以本校准方法也使用50mhz时钟来进行自动校准的逻辑同步,如图2所示,我们采用50mhz时钟来计数一个方波信号正脉宽的计数个数np和负脉宽的计数个数nn,当每周期内np和nn计数的个数越多,则自动校准方法实现测量的结果越准确,为了测试结果的准确性,这里要求输入信号的频率不大于同步时钟的十分之一,也即5mhz。当然,50mhz同步时钟只是本示例的一个个例,对于本发明算法,只要在fpga硬件器件允许的最大时钟范围内,均满足算法要求,并不受限于50mhz。

对于输入的被测信号,因已知计数时钟为50mhz,所以可以首先推算出被测信号一个信号周期的大致计数值num,当实现一个触发的初始化状态时,上位机cpu首先通过总线预置周期估值num、dac初始序列x和渐进步进δx,dac会产生一个相应直流信号,并与输入信号经电压比较器进行比较输出,当持续计数值np大于等于num时,说明dac输出的直流电压信号低于输入信号幅值最小值,fpga停止计数并np、nn清零,将初始化序列x递增δx,经dac转换后得到新的直流比较电压,然后再进行新一轮的np、nn计数。记下每次的np、nn、x值,直到np与nn之差由大变小,再到增大时,取np与nn之差最小的那次x序列值即可作为自动校准的信号中值触发电平值。

当然,当第一次测试到持续计数的nn大于等于num时,说明dac输出的直流电压信号高于输入信号幅值最大值,此时将初始化序列x递减δx处理,并经dac转换后得到新的直流比较电压,然后再进行新一轮的np、nn计数。记下每次的np、nn、x值,直到np与nn之差由大变小,再到增大时,取np与nn之差最小的那次x序列值即可作为自动校准的信号中值触发电平值。

当然,当第一次测试得到np、nn都不等于零时,如np大于nn,则将初始化序列x递增δx处理,如np小于nn,则将初始化序列x递减δx处理,进行新一轮的np、nn计数。记下每次的np、nn、x值,直到np与nn之差由大变小,再到增大时,取np与nn之差最小的那次x序列值即可作为自动校准的信号中值触发电平值。

在本实施例中,求取的是中值触发电平值,即整形触发信号的正脉宽占空比α为50%的情况,也即计数差值ny为0的情况。对于实际的其他应用情况,根据具体工作要求,α可取不同的百分比。而对于取np与nn之差最小的那次x序列值的判别,可根据具体的计数允许偏差值nc的给予进行判别。ny和nc的取值可依具体设计要求进行相应的更改,以达到获取最佳触发电平状态的效果。

当fpga获取最佳序列x后,可中断通知上位机cpu,cpu响应中断,并读取fpga中的x值,作为之后的信号中值触发电平值,以便在后续使用。该自动校准过程可由上位机控制,随需要进行触发电平中值校准处理,可节省大量的人为测试工作量,也减少了人为误差。况且,能够在产品封装完好的情况下进行,避免了之前使用示波器点测的诸多不便因素。可随着使用环境的不同随时进行自动校准处理,避免了很多因环境因素造成的不稳定性因素或测试误差。每次自动校准后,初始化序列x可保存于cpu的硬盘中,以便下次再调用使用。当然,也可将保存的x作为下次自动校准处理的预设值,这样只需测量出偏差即可,进行循环测试的次数还少,可节省大量自动校准时间。

当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1