以FPGA为基础的激光陀螺信号解调系统设计过程详解

以FPGA为基础的激光陀螺信号解调系统设计过程详解,第1张

利用FPGA的高度并行性和对时延的准确控制,设计对激光陀螺信号的高速、精确解调系统。该系统以XILINX FPGA为硬件核心,通过巧妙的时钟设计和高速高阶滤波设计,很好地实现了对陀螺信号精确鉴相、计数和高速滤波,并协调DSP的后续处理和上位机通信。通过对国产某激光陀螺进行测试发现,本系统解调后得到的陀螺角速度10S、100S的方差都明显优于现有系统的测试结果,系统响应时间也得到极大提高。

激光陀螺由于具有精度高、动态响应快、寿命长、稳定性好等优点广泛运用于各类战术导d、军用飞机、航天航海等领域。

激光陀螺信号解调常用的实现方法是用DSP实现。由于解调过程中一般需要高阶滤波,虽然DSP运算速度特别快,但是由于滤波是多个串行乘法和加法的组合,当滤波阶数较高时,滤波周期很大。由此造成了基于DSP的激光陀螺解调系统速度慢的问题。如果还需要后续的导航算法,系统也只能采用多个DSP芯片分工的办法来提高系统的工作速度。但这样做也无法克服滤波器滤波周期大的缺点,同时也增加了系统成本和功耗。因此急需一种高速低功耗同时具备高精度的激光陀螺信号解调系统来替代现有系统。

基于FPGA的激光陀螺信号解调系统将用于陀螺信号解调的所有模块都集成到FPGA中。由于FPGA的高速并行性和极大的灵活性,解调过程中的各模块间以及模块内部实现了真正的并行性,极大地提高了解调的速度。FPGA程序设计中巧妙的时钟逻辑设计,实现了解调过程中的零丢数。另外FPGA只有在上电配置的过程中有较大电流,而在工作过程中工作电流比DSP小很多,从而此解调系统具有低功耗的优点。因此基于FPGA的激光陀螺信号解调系统将是陀螺解调领域理想的实现方案,而DSP只是配套用来做后续的算法实现。

1 系统程序结构设计

图1是本系统的FPGA程序框图。图中FA、FB是陀螺输出的正余弦信号经过整形后得到的方波信号,两路信号进入FPGA后首先进入鉴相模块,鉴相后得到的两路数据进入计数模块后进行可逆计数。可逆计数得到的计数值每隔一段时间再送到滤波器中进行高阶滤波,滤波后的结果对应滤波采样时间内的陀螺净转动角度。同时FPGA具有脉冲计数、机抖周期计算及控制AD读取系统工作参数的功能。FPGA最终将得到的各路数据编帧发送到上位机显示。如果需要对陀螺解调后的信号进行导航计算,则FPGA将解调后的角速度值发送到DSP进行后续处理。

以FPGA为基础的激光陀螺信号解调系统设计过程详解,以FPGA为基础的激光陀螺信号解调系统设计过程详解,第2张

由于本系统设计的滤波器需要占用大量FPGA资源,因此选用XILINX 公司的 SPARTAN 3E系列的FPGA芯片 XC3S300E,在ISE9.1以后的系统中对于这款芯片具有自带的FIR滤波器IP核,能减小滤波器设计的工作量。

2 系统关键程序设计及分析

2.1 系统时钟设计

激光陀螺解调需要准确读入两路脉冲数,要求不能存在误计数的情况。因此需要完善的系统时钟协调各模块来准确无误地对输入数据进行处理。可灵活设计的时钟系统和对时序的精确控制是FPGA在陀螺解调中的优势之一。

鉴相需要将输入的两路方波信号和主时钟同步,陀螺输入两路方波由于机抖的原因,方波的频率随时间成正弦变化。经测量,频率最大处为2 MHz左右。因此鉴相电路需要引入的主时钟必须为8 MHz以上,采用15 MHz的主时钟将两路信号同步。同步后的方波频率正好是输入的4倍频,如图2所示。

以FPGA为基础的激光陀螺信号解调系统设计过程详解,以FPGA为基础的激光陀螺信号解调系统设计过程详解,第3张

从图2可以看出,当SIN超前时,CW有输出。当COS超前时,CCW有输出。输出信号分别为两路信号的上升和下降沿被同步后的输出,脉冲宽度正好为一个时钟周期 。由于鉴相后两路信号输出的交替性,其交替周期便是机抖周期,因此可以据此来计算陀螺机抖频率。

2.2 计数器设计

CW和CCW信号已经与主时钟上升沿同步,脉冲宽度正好是一个主时钟周期。因此当主时钟下降沿到来时,CW、CCW一定没有跳变。据此特性可以利用系统主时钟的下降沿来作为计数器的工作时钟,主时钟下降沿到来时检测到CW、CCW为高电平时,各自的计数器加1。计数值采样时钟为主时钟的分频,和主时钟的上升沿同步,因此当采样时钟上升沿到来时,可以保证CW、CCW没有跳变。这种设计方案使得计数器在计数和取数的过程中都不会发生多一个脉冲或少一个脉冲的现象。图3是以10 kHz的采样频率得到的陀螺脉冲计数的波形图。

以FPGA为基础的激光陀螺信号解调系统设计过程详解,以FPGA为基础的激光陀螺信号解调系统设计过程详解,第4张

由于陀螺的自转角速度相对机抖转动小很多,1 s的时间内也只累加几个脉冲,因此图中不能明显观察出此转速的直流偏置量。由于合理的时钟设计,系统采样时钟到来后便对计数器清零,清零的过程中也可以保证不丢脉冲数。采样清零的方法使得计数器宽度可以较小,且不会有计数器溢出的危险。

2.3 滤波器设计

滤波器定时采样计数器计数值的采样频率可以通过外部拨码开关选择5 kHz、10 kHz、20 kHz、50 kHz等4个挡。要想设计一个截止频率为100 Hz,把计数脉冲高频段(200 Hz~400 Hz机抖频率)衰减-80 dB以上的FIR滤波器,经过分析滤波器阶数至少需要200阶才能满足要求。通过实验发现,当用DSP做一个16 bit的200阶FIR低通滤波时,用业界最快的浮点DSP TMS320C6713滤波器的采样频率最高也只有10 kHz左右,如果再加上其他算法,系统工作的速度会更慢。由于FPGA的高速并行性,使用分布式算法设计高阶滤波器,完成一次滤波只需要简单的几次查表运算,因此滤波周期也就是几次查表运算的时间之和,并且对于阶数增加,查表时间并没有明显变长,实验发现200阶滤波器的采样频率理论上可以到达1 MHz以上。此外FIR滤波器的系数可以由Matlab fdatool工具生成。由于FPGA不能直接进行浮点运算,因此需要将浮点数整型化,因此整型化的好坏直接影响滤波精度。通过实验,在保证系统较低资源利用率的情况下,原始数据需要扩大224倍。Matlab中整型化和系数存储程序如下:

COE=Num*4194304;

INDA=round(COE);

fid=fopen(‘fir200.txt’,‘wt’);

fprintf(fid,‘%d\n’,COE);

fclose(fid);

设计完成的滤波器对计数信号进行滤波,滤波结果传输到上位机进行绘图,波形如图4所示。

以FPGA为基础的激光陀螺信号解调系统设计过程详解,以FPGA为基础的激光陀螺信号解调系统设计过程详解,第5张

从图中可以看出,滤波结果波动范围正好为式(2)的计算值。其均值便对应1 s内一定转速下对应的陀螺输出值。

3 系统实验结果

利用本系统和原有系统对国产某型号陀螺进行多次测试并将测试结果进行对比分析。在本系统以10 kHz采样频率滤波,原有系统以5 kHz采样频率滤波的测试条件下发现,本系统的测试结果明显优于原有系统,在提高采样频率的情况下反而有更大的解调精度。图6是本系统的测试结果,图7是原有系统的测试结果。

以FPGA为基础的激光陀螺信号解调系统设计过程详解,以FPGA为基础的激光陀螺信号解调系统设计过程详解,第6张

从以上测试结果中可以看出,本解调系统在提高系统响应速度的前提下,滤波结果波动性反而更小,能够解调出更微弱的陀螺感知的外界角速度。

本文简介了基于FPGA的激光陀螺信号解调系统的设计方法,并着重介绍了FPGA算法和陀螺解调的理论基础。

由于FPGA解调系统较现有DSP解调系统解调速度更快,解调精度更高,加之FPGA本身稳定性和抗干扰能力等都优于DSP,因此基于FPGA的陀螺信号解调系统将在d道导d、航天航空等领域具有更大的优势。 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2616220.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-10
下一篇 2022-08-10

发表评论

登录后才能评论

评论列表(0条)

保存