分布式光纤温度传感系统中数据处理的FPGA设计
2009-03-02
作者:毕卫红,杨焰文,张燕君
摘 要: 介绍了分布式光纤测温系统的测温原理及数据处理的FPGA设计方法。在FPGA设计方法中,提出一种可以提高数据处理精度的处理方法,该方法简单、容易编程实现。
关键词: FPGA;分布式光纤测温系统;多点数字平均器;反斯托克斯; 斯托克斯
分布式光纤温度传感技术是近年来发展起来的一种新型传感技术,它利用一根光导纤维作为温度信息的传感和传导介质,可以测量整个光纤长度上的温度变化。分布式光纤温度传感器的信号处理技术,是将探测器输出的信号尽可能地去除干扰和噪声,从而得到准确而快速的温度显示和温度数据,这在解决大型重要结构的实时监控、准确测量等问题以及在组成智能材料结构等方面具有重要价值和应用潜力。
在高速数据采集方面,FPGA有单片机和DSP无法比拟的优势。FPGA时钟频率高、内部时延小、全部控制逻辑由硬件完成。速度快,组成形式灵活,可以集成外围控制、译码和接口电路;最主要的是FPGA可以采用IP内核技术,通过继承、共享或购买所需的知识产权内核提高开发进度。利用EDA工具进行设计、综合和验证,加速了设计过程,降低了开发风险,缩短了开发周期,效率高而且更能适应市场[1]。
1 分布式光纤测温系统的测温原理
分布式光纤温度传感器是利用光纤中自发拉曼散射的Anti-stokes光强与温度密切相关(常温下温度系数为0.8%)的原理[2],通过检测激光脉冲在光纤中传播时产生的Stokes光信号和Anti-stokes光信号的比值来获得一根长达数千米的光纤上的温度信息。采用Anti-stokes光/Stokes光原理的分布式光纤传感器如图1。
根据参考文献[3],光纤局域处的温度可由下式得出:
其中,h是普郎克常量,c是光速,k是波耳兹曼常数,Δγ是光纤分子振动频率,T为待测点温度,T0为参考温度;F(T)代表Anti-Stokes和Stokes光的强度比,F(T0)为Anti-Stokes和Stokes光在参考温度时的强度比,F(T)和F(T0)也分别代表T和T0时Anti-Stokes和Stokes光光电转换后的电压比。根据式(1)可以计算出待测点的温度。根据不同采样时刻的值不同可以测出不同点的温度。
2 FPGA的设计
本FPGA设计采用的软件是Xilinx ISE 9.1i,因而设计用到的FIFO可直接调用软件自带的ip核完成。因此,此设计的主要工作是求T电路、对数运算电路以及数字平均去噪电路。
2.1 FPGA的工作原理
为保证每次采样的数据不丢失,在FPGA上设计两个FIFO缓存[4]模块,分别作为Anti-Stokes光和Stokes光经光电转换后的A/D转换器与FPGA的接口。定义三个8位寄存器register1、register2和registerT0,分别用于存放常数(N为方便处理而放大的倍数)和参考温度T0时Anti-Stokes光和Stokes光光强度比值。从FIFO缓存器读入的数据读入数字平均去噪电路,去噪后数据经一除法电路,可求得Anti-Stokes光和Stokes光的光强在待测温度T时的强度比值,所得结果与registerT0中的数据经除法电路求得比值,送入对数电路,便可求得值,再送入求T模块便可得到T。然后送入比较模块,输出显示最高温,并与设定温度值比较,超过则报警。原理框图如图2。
2.2 求T电路模块
由式(1)得:
由于数值很小,所以均放大N倍处理,则:
也即由一除法电路来完成。为提高计算精度,这里把式(3)分子再扩大M(2的指数倍)倍,得这样经过一个二进制除法运算后,将结果MT保存在一寄存器(设为register3)中,然后在将register3中的数右移lnM位,便得到整数部分,并存入另一寄存器中(设为register4);将register4中的数左移lnM位,并用register3中的数减去register4中的数,可得小数部分的二进制数,存入寄存器(设为register5)中。由于FPGA中不能直接处理小数,因此可以将register5中每一位对应的小数乘以一个权值变为整数处理。
例如:register5位宽为6位,则每一位对应的关系如表1。
编程时小数的处理就化为整数处理,定义一寄存器变量register6存储当前被测温度十进制数对应小数的尾数,则:
Register6=register5[5]*500+register5[4]*250+register5[3]*125+register5[2]*62+register5[1]*31+register5[0]*15
如:register5=6’b101001,则对应小数在小数存储器中的值为640,小数显示为0.640。
因而计算所得到的值可精确到小数。进行FPGA设计时,可以把小数和整数结果分别存入两个不同的存储器中,而存储单元的地址可以共享,从而显示时只要一个地址分别读出整数和小数。
2.3 对数运算电路模块
常用的对数运算电路模块的FPGA设计方法有查找表法和基于CORDIC算法的方法。由于基于CORDIC算法[5][6]的方法对输入数据的范围有约束条件,因而此处采用查找表的方法计算对数。根据参考文献[7],Anti-Stokes光和Stokes光光强度比有如下关系:
其中,Ias为Anti-Stokes光光强,Is为Stokes光光强;λs是Stokes光波长,λas是Anti-Stokes光波长。已知普朗克常量h=6.63×10-34J·S,波耳茲曼常数k=1.38×10-23J/K;石英光纤的拉曼偏移波为Δγ=4.4×104m-1。当入射波长为λ0=905nm时,可以算出λs=942nm,λas=870nm[8]。由于随温度的升高拉曼光谱对温度的灵敏度呈曲线下降[7],因此把测温范围选在-20℃~+100℃,则可以计算得到Ias/Is的范围在0.112~0.282内。假设选则的参考温度T0=300K,则可以估算出的范围在0.67~1.70内。如果比值精确到两位小数计算,即以0.01为步长寻址,则需要在定制ROM时存入104个数据,这104个数据分别对应0.67~1.70的对数值;由于在FPGA中不能直接处理小数,在除法电路中使结果放大100倍处理,则寻址空间变为67~170,步长为1;同样对应址67~170的数据也需要放大存储(若保留三位有效数字则放大1000倍存储)。在ROM核中,其地址是从0开始的,因此在读ROM时,应设法使地址从0开始;具体做法可以在FPGA中定义一寄存器(regsub)存储数据67,使计算所得的值在寻址前减去regsub中的数据,则寻址空间变为0~103,对应数据分别为放大了1 000倍的0.67~1.70的对数值,如图3所示(放大的倍数将在最后求T时缩回)。最后计算的误差在1℃~2℃。
2.4 数字去噪电路模块
去噪的方法有很多,如取样积分法、小波分解法、混沌系统的微弱信号检测、数字平均法等。一般认为,在一个很短的时间内,光纤各测试点的温度是不变的。所以为便于FPGA的程序实现,采用数字平均法。在数字平均器设计过程中,由于线性累加平均过程的计算存储数据量较大,占用系统资源多,所以这里采用递推式平均法[7],原理如式(5):
是第n个测量激光脉冲在第j个测量点的测量数据的平均值, 是第n-1个测量脉冲第j个测量点的平均值,xnj是第n个测量激光脉冲在第j个测量点的测量数据,n是所发激光脉冲的个数。
可以看出随着n值的增大,当|时,起不到修正作用,因此需要将(5)式等式右端两项分开处理,且需要定义两个存储器分别存储整数(设为ave_reg1)和小数(设为ave_reg2)。可直接存入整数部分存储器ave_reg1,后面一项将放大处理,再除以n值;若放大L倍(L=2m)存入寄存器(设为register7)中,将register7中的数与n相除得到数存入寄存器(设为register8)中,然后由register8中的数右移m位得到的数加到ave_reg1修正整数部分; register8的低m位的数值大小用于修正ave_reg2中的数。设ave_reg2每个存储单元位宽为B(B>m),当ave_reg2中存储单元的第m+1到B-1位有不为零时,则将ave_reg2中存储单元B-1到m+1位的数值大小用于修正ave_reg1对应的存储单元,同时ave_reg2中存储单元的B-1到m+1位清零。
FPGA程序设计是:假设每个脉冲的测量点数为N,总共发出了S个脉冲。初始时j=0,n=1;当n=1时,数据直接存ave_reg1中,每存一个数据j增加1;当j=N时,n增加1;n≥2时,ave_reg1中相应存储单元所存的上一次的数据与当前采样计算的数据共同计算出第n次的平均值,并将结果所得的整数部分和和小数部分分别修正上一次ave_reg1和ave_reg2的上一次的数据。直到S个脉冲采样计算完成。再将分别存有Anti-Stokes 数据和Stokes 数据存储器中的数据送入除法电路,计算出每个待测点的Anti-Stokes光强度和Stokes光强度的比值。数字平均去噪电路程序设计原理框图如图3。
本设计模数转换时钟都由FPGA提供,以保证计算的同步性;在求T和平均处理时的小数处理方法简单,容易实现;基于查找表法的对数运算速度快,适合于实时信号处理。
递推式平均法设计的数字平均器占用的系统资源少,如上述S×N个数据只要能存储2N个数据的容量就可以了,这也节省了FPGA中自带的有限存储单元。不足之处是受存储位数的限制,当n很大时,修正值将几乎不起作用。
参考文献
[1] 周胜军,张志鹏.分布式光纤温度传感器准确测量实现[J].测试技术学报,1997,1(4).
[2] RICHAND M,SENIOR E.Fiber sensots provide kdy for monitoring temperature in compostite materials[M].Laser Focus,1987,23(5):122-127.
[3] 张步新,陈阳,陈晓竹,等.红外分布光纤温度传感器系统及特性研究[J].光电子·激光,1995,6(8).
[4] 杨宗凯.数字专用集成电路的设计与验证.北京:电子工业出版社,2004.
[5] (美)贝斯著,刘凌译.数字信号处理的FPGA实现.北京:清华大学出版,2002.
[6] 牟胜梅,杨晓东.eθ的CORDIC迭代初值选取策略及其硬件实现[J].计算机工程与应用,2007.
[7] 常程.基于后向喇曼散射分布式光纤测温系统温度解调方法研究[J].航空学报,2001.
[8] 曹立军.分布式光纤温度测量及数据处理技术的研究[D].合肥工业大学,2006.