上隅角瓦斯测量的CCD光纤光谱仪设计*

2019-11-06 12:19张海涛冯永贵王江鹏
山西煤炭 2019年3期
关键词:波长光谱电路

张海涛,冯永贵,王江鹏

(1.山西省晋城无烟煤矿业集团有限公司,山西 晋城 048000;2.中国电子科技集团第三十三研究所,太原 030000)

矿井瓦斯广泛存在于煤层中,其主要成分是甲烷,因此实现矿井全范围内有效的瓦斯测量、监控,始终是矿井开采过程中保证生产安全的前提和基础之一。综采工作面采煤过程中,由于瓦斯的存在和其物理化学特性,上隅角成为瓦斯积聚的主要地点,也是瓦斯治理的重点区域之一,因此,基于光谱学分析原理,提出了利用先进的光电传感元件和集成电路实现矿井瓦斯的安全、高效、精确测量。设计了一种基于线阵CCD光电传感元件的测量煤矿瓦斯的光谱仪软硬件系统。

根据物质对不同波长光的吸收程度不同而产生特征光谱,光源通过含有甲烷气体的混合空气后,特定波长的光被吸收,接收器接收到剩余的光谱与通过空气时的特征光谱分析比较,就可以定性定量测定甲烷含量[1]。

光纤光谱仪的小型化、数据处理速度、可测光谱范围、测量精度等性能是衡量其优越性的标准,也是设计更高性能光谱仪的参考性能和最终目的。

设计第一部分实现光路系统采集到的光信号由线阵CCD转换为模拟电信号,通过模数转换芯片输出数字信号,数据直接传输至FPGA主控芯片,同时,FPGA控制CCD的驱动时序及AD转换芯片时序,实现数据的有效传输。

第二部分完成FPGA与FT245BL之间的数据通信,FT245BL的TXE和RXF信号在查询地址有效时,由FPGA读取信号状态,判断接收数据还是发送数据;TXE信号标志发送缓冲区是否数据满,低电平代表可继续传输, 高电平表示数据满,TXE为低电平时, FIFO缓冲区可读入由FPGA传输的数据,直到数据再次写满;RXF信号检测接收缓冲区是否有数据,若检测到数据,RXF置0, FPGA可通过检测RXF信号来读取有效数据。USB芯片的WR和RD 信号与FPGA互通,FPGA可以读取接收数据和写入发送数据。此外,数据通信过程中为保证数据传输的有效性,由FPGA加入循环冗余校验码(CRC)校验算法,将打包后数据传输至FT245BL芯片[2]。

第三部分设计了基于C++builder的上位机软件与FT245BL之间的数据通信,通过配置调用FTDI的D2XX库函数完成数据的高效接收,并利用校验位解码检验数据有效性,并最终显示光谱曲线,对比选用查表法、参数拟合算法、样条插值拟合、算术平均滤波法、加权递推平均滤波法等算法中的一种或几种完成波长标定、滤波等功能。由此完成光谱数据处理。

第四部分对实测甲烷数据进行验证,并且完成了误差分析,实测结果符合设计要求,实现了对甲烷地有效监测。

1 硬件设计

1.1 光路系统

光路结构设计好坏直接影响测量精度和体积大小,光纤光谱仪的性能主要由光纤分辨率、光谱范围和灵敏度来决定,而这些性能主要依靠光路系统的设计。

选用反射式成像系统中的折叠Czerny-Turner结构,待测光由光纤入射光路系统, 经入射狭缝使光束按固定宽度入射到准直反射镜上, 光线通过准直反射镜准直后照射到光栅上分光,汇聚反射镜汇聚分光后的光束,使初射光成为平行光束,并成像在线阵CCD光敏面上。折叠Czerny-Turner结构如图1所示。

光路原理分析:采用折叠Czerny-Turner结构,光路分析如图2所示:其中M1是准直物镜,焦点f;G代表光栅;M2是反射镜,用于将光栅分光后的光谱反射为平行光束射入光谱成像单元CCD,焦点为f′;i为准直物镜M1光束入射光栅的入射角;θ为经M2反射光线的反射角,A′B′代表线阵CCD。

入射狭缝置于M1反射镜物方焦平面与光轴偏离一定角度的位置,这样可充分利用物点发射光束能量。设光束入射角为i,光束由入射狭缝经准直物镜M1反射后成平行光束投射到光栅G上,按照波长的空间位置排列,光栅将入射平行光束展开成光谱谱线,即通过色散原理将入射复色平行光变成衍射角各异的单色平行光束,通过反射镜M2将色散后光束成像,成像物镜接收到的是成扇形分布的单色光束,其视场随波长呈反向变化,故准直物镜口径小于成像物镜的口径,成像后的单色光束平行入射线阵CCD成像面,为保证光谱谱线能够全部落在CCD成像面上,应根据测量波长范围及成像线阵CCD宽度合理选择准直物镜M1和反射镜M2的焦距以及相对位置[3]。

图2 光谱仪光路结构分析图Fig.2 Optical path structure analysis of spectrometer

横向焦距的选择应使入射狭缝处于M1物方焦平面上时不干扰光路,确定横向焦距后,纵向焦距分析如下:

光栅色散方程:

d(sini′±sini)=kλ.

(1)

式中:i′是衍射角,i是入射角,λ为波长,d是光栅常数,k示衍射级次。

根据需测量波长范围内的最大最小值,给定光栅时,即可确定衍射角的最大最小值。

设CCD成像面长度为L,则有:

L=f′tanθ-f′tanα.

(2)

式中:θ和α分别是最小衍射角和最大衍射角,由此确定f′:

(3)

由以上分析,折叠Czerny-Turner结构能够有效减小光谱仪硬件体积,符合设计要求。

1.2 CCD模块

TCD1304D由3 694个光敏单元构成线型阵列,其中包括后14个与前32个用于暗电流检测而被屏蔽的象元和中间3 648个有效光敏单元。光敏单元两侧是用作存储光生电荷的MOS电容阵列。转移栅的两侧为CCD模拟移位寄存器,其输出部分由信号输出单元和补偿输出单元构成。MOS电容阵列的两侧是转移栅电极SH。并且片内集成了采样保持电路(S/H)。

CCD器件工作时提供正确的的驱动脉冲,包括输入转移门控脉冲SH,主时钟脉冲φM以及积分清空脉冲ICG三路驱动脉冲。

图3 CCD驱动时序Fig.3 CCD driving timing

图3是CCD驱动时序的详细介绍,给出了各个信号间的具体关系以及应该有的建立保持时间,其中t1为ICG脉冲信号的延时,最小时间为1 000 ns,t2为ICG与SH之间的时间延时,允许范围是100 ns与1 000 ns之间,典型值500 ns,t3为SH的脉冲宽度,最小值1 000 ns,t4为ICG与φM之间的延时,最小值0,典型值为20 ns。SH有效电平持续t3+t2的时间,下降沿到来时开始本次积分时间操作,上升沿到来结束上一次积分时间操作,SH信号的相邻两个脉冲之间的时间间隔则代表积分时间(integration time)的长短。ICG低电平有效,持续t1+t2+t3+t4的时间,因此,要合理设置各个控制驱动信号的建立保持时间,确保CCD正常工作并输出数据; TCD1304DG器件共包含3 694个像元的输出信号,其中有效信号为3 648个,前后各有14个和32个哑元输出信号(dummy output)。同时,SH低电平时间必须保证一行3 648个像元信号完整的输出,否则下一次的输出信号则会包含这次不完整积分设置造成的错误数据,因此,至少需要有14 776个主时钟脉宽时间[4]。

表1 时钟与有效信号典型值Table 1 Typical values of clock and effective signal

表1所示是主时钟与数据输出速率的典型值,设计中主时钟选择2 MHz。

设计TCD1304DG驱动时序典型硬件电路如图4所示:设计中将CCD电路部分独立出来做成一块电路板,并通过接口线与主电路板相连,目的是便于调整CCD位置,能够使光谱线完全投射到CCD有效接收区域,当确定CCD精确位置后,再将其固定。

根据CCD输出电压特性,输出电压幅值较小,并随光照强度增强而减少,需设计信号调理电路,使CCD无光照时输出电压为0(理想情况是0,实际只需在0~0.1V之间即可),提高输出信号电压,并实现随光照强度增强而增加的正向变化。

图4 线阵CCD TCD1304DG驱动电路原理图Fig.4 Driving circuit principle of CCD linear array TCD1304DG

设计电路如图5所示,分析如下:设2点电位是U2(可通过滑动变阻器调节电位大小),输入信号电压设为Ui,一级输出电压为Uo1,6点电位设为U6,二级输出电压为Uo,根据运算放大器“虚短”、“虚断”的概念[5],得到:对于前一级减法电路,有:

(4)

整理,得到:

Uo1=2U2-Ui.

(5)

由式(5)可得,通过调整滑动变阻器连入电路的阻值,即可以设置合理的U2点电位,实现输出电压的反向减法电路。

后一级电路实现放大功能,放大倍数为2:

(6)

并且:

Uo1=U6.

(7)

整理,得:

Uo=2Uo1.

(8)

该级电路实现了输入信号的放大功能,输出信号满足AD信号输入要求,信号输出后接入AD转换模块的输入端。

图5 CCD信号输出调理和增强电路Fig.5 CCD signal output conditioning and enhanced circuit

1.3 AD转换模块

对比各种模数转换芯片的性价比,最终选择LTC1403A芯片作为AD转换模块核心部分,LTC1403-1/LTC1403A-1具有4.7 mAh 3V单电源供电,睡眠关机,低功耗和小封装等功能特性,适用于高速,便携式应用。该器件转换-1.25 V至1.25 V双极性输入差分信号。串行口转换数据在16个时钟周期中输出,随后CONV上升沿到来,实现与标准串行接口的兼容性。数据转换完后如果设置两个额外的采集时间,可以在50.4 MHz时钟输入下实现2.8 Msps的充分采样[6]。典型硬件配置电路如图6所示。

CCD输出的模拟信号经整形放大后通过AIN+输入AD转换芯片,此处AIN-接地,VREF与VDD分别通过10uF的极性钽电容接地,作为旁路电容滤除混有高频电流和低频电流中的高频成分,CONV,SCK,SDO三个管脚与FPGA直接相连。

图6 LTC1403A典型硬件配置电路原理图Fig.6 LTC1403A typical hardware configuration circuit

1.4 USB通信模块

根据FT245BL管脚信息、功能,设计相应FT245BL硬件电路配置原理图如图7所示,其中PWREN在正常工作模式下配置为低电平。

由于设计高频电路电路板,应将FT245BL与FPGA以及相关高速传输数据信号尽量靠近,避免信号间的交叉布线引起干扰;与低频信号,电源信号要分开排板,并遵循相关高频信号电路设计的相关规则,使数据通信能够达到良好效果,为信号通信过程降低误码率提供硬件基础。

2 软件设计

依据设计要求,对比各种设计软件,最终选用Borland公司推出的C++Builder软件作为开发环境,实现了功能强大的编程语言与可视化的编程环境的结合[7]。

基于C++builder的光谱软件设计包括数据通信,界面设计,光谱曲线绘制,数据平滑处理以及波长定标等模块的实现;光谱软件设计能直观的显示光谱曲线,并对光谱数据进行一系列处理,包括数据存储,曲线保存,波长定标,平滑处理,峰值检测等功能。

其中曲线绘制将接收到的光谱数据以曲线的形式显示出来,通过在Chart组件中添加Series增加所要显示的曲线,并使用曲线绘制的ADD方法和ADDARRAY方法即可显示曲线,满足设计要求,其中ADDARRAY方法能够一次性响应海量数据的显示,适用于光谱曲线绘制。另外使用TChartGrid组件能够将TeeChart组件中的数据以表格形式显示出来,大大方便了光谱曲线的分析处理。图8所示是光谱数据的实时显示主界面[8]。

图7 FT245BL硬件配置电路原理图Fig.7 FT245BL hardware configuration circuit

图8 光谱软件主界面Fig.8 Main interface of spectrum software

图9所示为软件设计中的数据处理框图,图中可看出基于C++builder的上位机软件数据通信过程。

图9 软件设计框图Fig.9 Software design block diagram

2.1 USB数据传输

光谱数据采集,存储,以及前期运算分析等功能通过FPGA芯片现场实现,完成后需要将数据传输到指定上位机的配套软件中进行进一步的数据存储和分析运算等复杂功能,近距离的数据通信选用FTDI公司的FT245BL作为USB通信部分主模块来实现,远距离传输后续可配套建设成熟的以太环网,选用相关数据通信总线技术和通信协议来实现,以下论述近距离USB数据通信的实现。

如图10所示,一帧数据应包括:起始位:AA,55作为有效数据开始标志;数据长度:一帧数据包含的有效数据的长度,CCD采集一次含有的象元数总计为(3 694+16)3 710个每个象元的数据用两个字节传输,并且每个数据都带有该数据的位置信息(即第几个象元),这也需要两个字节,一共四个字节,则总的数据长度就是3 710×4=14 840个字节;数据校验:采用CRC校验来判定传输数据的有效性,如果传输错误就放弃当前一帧数据的传输,若设计采用偶校验:当有效数据中1的个数是奇数,偶校验位置1,否则置0。

图10 USB模式一帧数据Fig.10 One frame data in USB mode

算法实现:传送一帧的CCD光谱数据到C++builder中,并在数据中加上开始位,数据长度位,校验位以及结束标志,达到数据的低误码率接收。

FTDI为芯片提供了两种可供选择的软件接口:USB-UART和USB-FIFO。一种是虚拟COM口(VCP),完全可作为系统COM口使用。第二种D2XX端口通过专有的DLL(FTD2XX.DLL)设置。该D2XX接口提供了标准操作系统的COM端口API所不具备的特殊功能,可配置设备进入不同模式或将数据写入设备的EEPROM。Windows环境下,D2XX驱动程序和VCP驱动程序分配相同的驱动程序包,称为联合驱动程序模型(CDM)包[9]。

1)C++builder动态载入DLL。在正确安装了FT245BL的驱动程序后,还需将驱动程序中的“ftd2xx.h”头文件以及“ftd2xx.lib”库文件载入工程文件中,即C++builder动态载入DLL方法。

选择View->Project Manager打开工程列表,在工程目录下点击右键选择add菜单,向工程中加入接口库“ftd2xx.lib”“ftd2xx.h”头文件通过在主程序的头文件页面中加入声明即可。由此能够动态调用FT245BL的API函数。

2)C++builder中编程配置FT245BL。数据通信要遵守通信协议,这样发送和接受的数据才能保证正确的收发,以下程序段就是通过调用FT245BL自带的函数配置实现FT245BL的打开关闭,以及数据由USB到C++builder的正确传输。以下是配置FT245BL用到部分基本函数:

FT-Open (int iDevice, FT-HANDLE *ftHandle)//打开端口命令。

FT-Read(FT-HANDLEftHandle,LPVOIDlpBuffer,DWORDdwBytesToRead,LPDWORDlpdwBytesReturned)//读取数据命令。

FT-Purge(FT-HANDLEftHandle,DWORDdwMask)//清除缓存数据命令

FT-Close(FT-HANDLE ftHandle)//关闭端口命令;ftStatus=FT-SetBaudRate(ftHandle, 115200)//设置波特率。

数据接收是光谱仪上位机软件设计的关键模块,要求实现数据的实时、快速、精确以及可控收发,C++builder中通过调用按钮响应事件触发数据接收,并考虑到海量数据的接收、存储等,设计中通过启用C++builder的多线程功能提高软件处理速度和并行性,符合软件设计主流算法。图11是启用线程后实现数据有效接收的流程图。接收到有效数据后,通过编程创建结构体和数据存储文件,将数据以及和数据有关的数据特征(例如数据指针,数据量,帧数等)存储到C++builder定义的文件中(适用于数据海量存储),以便数据处理。

图11 FT245BL读取数据流程图Fig.11 FT245BL reading data flow chart

2.2 光谱仪波长标定

对测量光谱来说,需要得到能量与波长的对应关系,而不是以CCD像元序号为横坐标和能量为纵坐标的光谱曲线,因此根据CCD像元序号确定对应的波长就是波长标定。波长标定功能的实现是光谱软件设计的又一项关键部分。

经方案论证,选用参数拟合方法。从波长-像元序号的实际关系出发,得到波长-像元序号关系的一般函数[10]。采用多项式拟合算法实现波长标定。光谱线要尽可能在400 nm~800 nm范围内均匀分布,这样测量结果才能通过TCD1304DG,即线阵CCD正确响应。

试验选用低压汞灯标准光源进行光谱标定(气体放电光源和激光器等都可以作为标定的标准光源)。汞灯的6条特征谱线波长分别为366.5 nm,404.66 nm,435.8 nm,546.07 nm,576.96 nm,579.1 nm,它们均匀分布于可见光区。由于TCD1304DG响应范围是400 nm~800 nm,只需测量其中的5条特征谱线,并进行波长定标即可。

标定方法:使用设计的光谱仪器测出低压汞灯的幅值-象元曲线,即光谱数据,并根据汞灯标准谱线,找出测出的若干条峰值波长对应的CCD像元序号以及幅值,然后采用最小二乘法进行线性拟合。

(x1,y1),(x2,y2),(x3,y3),(x4,y4),(x5,y5)设为光谱数据,选择3次多项式拟合数据,则有:

p(x)=a0+a1x+a2x2+a3x3.

(9)

代入光谱数据,得到方程组:

(10)

此方程组五个方程,4个未知参数,方程未知数个数小于方程个数,是个矛盾方程组,直接通过一般方法联立解方程组是无解的。这里给出一个判定拟合好坏的计算公式:

(11)

(12)

将式(12)写成矩阵方程:

(13)

式(13)简化为:

(14)

式(14)存在唯一的一组解。通过解矩阵方程,求出a0,a1,a2,a3,可以确定出拟合曲线方程[11]。实测光谱曲线在特征谱线邻域内并不是只在某一象元出现理想的峰值,而是在特征谱线附近同时出现幅值大小相近的一段较大的值;因此,如何确定谱线的中心最大位置也是设计必须考虑的一部分。经论证,光谱线中心光敏元标号X0应落在光敏象元响应拟合函数p(x)的极大值处,即有:

(15)

C++builder软件设计中的波长标定部分采用半自动标定方法,主要内容是通过软件编程设计了标定系统图形界面以及参数拟合功能,界面如图12,13所示。

3 数据验证及结论

软硬件设计完成后,需要进行系统调试验证系统功能,并最终实现甲烷的现场测试和数据的远距离传输以及上位机软件的存储,分析,控制等一些列复杂功能,以下给出现场实测数据验证以及误差分析结果。

图12 波长标定界面Fig.12 Wavelength calibration interface

图13 参数拟合界面Fig.13 Parameter fitting interface

甲烷标准浓度/%仪器测量浓度t1/%仪器测量浓度t2/%仪器测量浓度t3/%仪器测量浓度t4/% 0.010.010 20.010 10.010 00.010 3 0.030.029 90.030 20.030 40.030 3 0.050.050 40.050 10.050 70.050 2 0.080.080 10.080 20.080 30.079 9

甲烷传感器在测量范围内允许的基本误差为:0~1.00%CH4;±0.10%(绝对误差)CH4;1.00% ~3.00% CH4;读数的±10%;3.00% ~4.00% CH4;±0.30% (绝对误差) CH4。“允许误差”采用甲烷传感器的基本误差,即在正常试验条件下确定的传感器测量误差值。

表2中测试数据以百分比浓度表示,t1,t2,t3,t4表示在不同时刻测量的浓度值,此为部分测量数据,从表中数据以及后续测量数据中得出结论,0~1.00%CH4浓度范围内,绝对误差在允许范围内,测量海量数据证明,该系统能显著提高测量精度。

图14所示是设计的光谱软件甲烷浓度曲线图,此图中可直观监测矿井瓦斯实时及历史浓度数据,并根据此数据做后续的统计分析。

图14 甲烷浓度曲线Fig.14 Methane concentration curve

测试过程需要注意以下几点:

1)确认光谱仪器是否在规定的温度和湿度范围内工作。工作温度过高或者过低,都可能导致仪器测量值不准确。湿度也对测量值有一定的影响。2)在标准环境下,利用可以确信的标准表,来对比该仪器在不同浓度值时,与标准表的显示值的偏差。3)经过多个浓度值的测量,观察该光谱系统的显示值相对于标准表的偏差数值,如果这个偏差数值是有规律的,那么就可以利用差分公式计算补偿算法。如果偏差数值没有规律,那么,就可以判定此系统功能有待改进,实用价值不大。

结果证明,该系统能有效完成甲烷数据的高精度测量,且测量速率达到标准要求,功耗设计也存在后续优化空间,将系统集成后,通过设计符合煤矿电气设备防爆安全性能的硬件后,有一定的技术经济效益和矿井应用前景,并可扩展强大功能。

猜你喜欢
波长光谱电路
基于三维Saab变换的高光谱图像压缩方法
电路的保护
杯中“日出”
高光谱遥感成像技术的发展与展望
解读电路
巧用立创EDA软件和Altium Designer软件设计电路
基于MATLAB模拟混沌电路
基于频域分析方法的轨道高低不平顺敏感波长的研究
日本研发出可完全覆盖可见光波长的LED光源
星载近红外高光谱CO2遥感进展