基于FPGA的光纤传感解调数据处理系统

2022-05-25 07:27王莉申雅峰
计测技术 2022年2期
关键词:数据量光纤光谱

王莉,申雅峰

(航空工业北京长城计量测试技术研究所,北京 100095)

0 引言

在航空航天、桥梁建筑等领域的光纤传感测试中,大量使用光纤光栅原理的传感器组建传感网络进行测试[1-4]。基于光谱获取的光纤传感解调系统具有光源能量强、获取传感器光谱信息丰富、测试通道易扩展等特点,可有效满足光纤传感网络大数据量、数据实时处理的要求。一般测试系统的数据采集功能由数模转换芯片(ADC)、控制器(FPGA,DSP 或单片机等)和网口传输模块组成,模拟信号经ADC 转换成数字信号并发送至控制器,然后通过网口传输至上位机进行数据分析[5-7]。FPGA 是现场可编程门阵列,具有抗干扰、速度快等优点,适用于逻辑控制,因此多选用FPGA 作为主控制器实现测试系统的数据采集功能。

本文主要解决16 通道光纤传感解调系统对超过100点传感器网络的实时采集及解算问题,系统的采样频率为100 Hz,根据光纤光栅解调系统精度及分辨力的要求,80 nm 波长范围至少需要7500点数据。一帧光谱的采样周期为10 ms,为保证采集的信号满足系统要求,每个采样周期内需要采集7500 个信号点,故16 个通道采集到的总数据量为0.92 MB。如果将16 通道的采集数据直接发送至上位机,网口的传输速率为92 MB/s,由于数据量巨大,网口通信和上位机数据处理难度都较高。针对此问题,本文设计并实现了一种基于FPGA 的大数据量实时处理系统,将有用的峰值数据从庞大的数据量中提取出来,减少传输数据,从而降低数据传输压力和上位机数据分析压力。使用该系统时,一帧光谱数据中,有效的数据是光谱中峰极大值点对应的坐标和峰的包络(取41 个光强值),按照100 点传感器网络计算,每个采样周期内,FPGA 输出的数据量为0.038 MB,网口的数据传输速率可降至3.8 MB/s,极大减轻了网口传输压力和上位机数据处理压力。对基于FPGA 的大数据量实时处理系统的硬件构架和关键模块设计进行具体介绍,详细阐述了基于FPGA 的寻峰模块和交叉读写缓存模块设计方法,最后通过实验对该系统的实际性能进行验证。

1 大数据量实时处理硬件设计

1.1 硬件架构

光纤光栅解调系统的硬件架构如图1所示,首先FPGA 驱动AD 芯片,进行16 个通道传感器光谱和一个校准传感器光谱的采集,光谱的模拟信号经AD 转换为数字信号,进入FPGA,然后在FPGA内进行大数据量实时处理,将少量的有效数据(通道数、峰极大值点坐标、峰的包络)筛选出来,发送给单片机,最后单片机通过TCP/IP 通讯协议将数据传输至上位机。

图1 光纤光栅解调系统的硬件架构Fig.1 Hardware architecture of fiber grating demodulation system

1.2 芯片选择

LTC2325-16 是一款16-Bit 四通道同时采样逐次逼近寄存器模数转换芯片,每个通道的最高采样率为5 Ms/s,且具有宽动态范围和高共模抑制比。5 片LTC2325-16 可以实现17 路光谱模拟信号(包括16 路传感器信号和1 路校准传感器信号)的1 MHz 高速采集,能够有效满足系统对AD 多通道和高采样率的要求。

FPGA 选用INTEL 生产 的Cyclone Ⅲ系列EP3C120F484 芯片,M9K 内存块432 个,嵌入式存储空间3888 KB,丰富的存储资源支持FPGA 对大容量数据的实时处理,满足系统存储需求。EP3C120F484芯片的IO 口有284个,支持LVCMOS和LVDS 等多种接口类型,丰富的接口数量和接口类型能够支持FPGA 对多片AD 芯片和其他芯片进行驱动控制与数据交换。

2 大数据量实时处理功能实现

2.1 基于FPGA的大数据量处理

FPGA 大数据量处理流程图如图2所示,FPGA对16 个通道传感器的光谱和一个校准传感器的光谱进行同步采集和大数据量处理。在AD 驱动模块中,FPGA 驱动AD 芯片进行数据采集,将多路光谱模拟信号转换为数字信号并传输至FPGA。在寻峰模块中,为滤除信号高频噪声,首先对光谱信号进行滑动平均滤波[8],然后将校准传感器和被测传感器的光谱分开处理,因为校准传感器的峰数量多,寻峰不能有效减少校准传感器光谱数据的数据量,所以校准传感器的全光谱数据跳过寻峰模块,直接缓存进入后续交叉读写模块的RAM中;对16个通道被测传感器的光谱数据进行寻峰,找到多个峰极大值点对应的坐标和峰的包络,实现有效数据的提取,减少后续传输的数据量。

图2 FPGA大数据量处理流程图Fig.2 Flow chart of FPGA large data volume processing

2.1.1 AD驱动模块

模数转换芯片LTC2325-16支持CMOS 和LVDS两种高速SPI 兼容型串行接口,LVDS 差分信号的抗干扰能力更强,因此选用LVDS 接口。选用状态机实现AD 驱动,使用Verilog HDL 硬件描述语言,采用组合逻辑与时序逻辑相结合的三段式状态机编程方式,避免组合逻辑可能带来的毛刺[9],AD驱动的状态转换图如图3所示,在空闲状态下等待触发信号,获得触发信号后进入采集状态,CNV信号置高并保持5 个CLK,采集状态完成后进入转换和读出状态,FPGA 向SCK 引脚输出16 个脉冲,在每个脉冲的上升沿完成信号的转换和读出,待AD 转换完成后,进入数据串行转并行状态,将16位的串行数据转换成并行数据,便于后续数据处理。

图3 AD驱动状态转换图Fig.3 Diagram of AD driver status conversion

利用Quartus II 软件自带的调试工具SignalTap得到的AD 驱动仿真图如图4 所示,其中,cnv 和sck 为AD 的驱动信号;AD2_SDOA,AD2_SDOB,AD2_SDOC,AD2_SDOD 信号为AD 输出的四路串行数据信号;parallel_en为串转并使能信号。

图4 AD驱动仿真图Fig.4 Diagram of AD driver simulation

2.1.2 寻峰模块

一帧数据的寻峰通常在上位机中进行,方法有简单比较法、导数法、CFAR 法、对称零面积法和线性拟合寻峰法等[10]。除了简单比较法,其他方法涉及求导、拟合等数据处理,在FPGA 内较难实现。简单比较法首先对数据进行平滑处理,然后进行最大值比较,其优点是速度快并且适于寻找强单峰,但一帧光谱数据中有多个强单峰,因此本文改进了简单比较法,实现了多个峰的查找。在寻峰模块内,FPGA 对16个通道的光谱进行大数据量处理,寻峰程序顶层模块图如图5所示,输入信号为时钟CLK_100M、复位信号rst 和16 个通道全光谱数据,输出信号为交叉读写模块RAM 的写使能、写地址和写入的数据。运行寻峰算法之前先对每个通道的全光谱进行滑动平均滤波,去除光谱数据中高频噪声信号带来的干扰。然后对每个通道的光谱进行寻峰,找到光谱中的有效数据,即峰极大值点坐标和峰的包络。基本思路是先找到一帧光谱中多个超过阈值的峰的坐标,再根据坐标从一帧光谱中提取出峰的包络。

数据处理流程如下:

步骤一:将一帧光谱数据存入RAM1,与此同时,将光谱数据依次存入有41个寄存器的数组中。在数组中进行数据大小比较,当第21 个寄存器的数据最大并且超过设置的阈值时,表明找到了光谱的某个有效峰,将该数据在光谱中的坐标存入RAM2 中备用。当一帧光谱存放入RAM1 时,光谱中多个有效峰的坐标也全部在RAM2 中存放完成。本步骤中16个通道同时进行数据处理。

步骤二:将RAM2 中存放的坐标数据读取出来,作为RAM1的读地址,从一帧光谱数据中读取出峰的包络,完成光谱有效数据的筛选。16 个通道的有效数据均写入交叉缓存模块的同一块RAM中,依次进行数据处理。实现步骤二的难点在于程序中RAM2的读地址addrc、读使能enc和读数据peak_inx 与RAM1 的读地址addrb、读使能enb 的时序匹配,只有时序匹配正确才能确保从RAM1中读取到的包络准确。利用Quartus II 软件自带的调试工具SignalTap 抓取两个RAM 的读信号,仿真图如图6 所示,两个RAM 的使能信号enb,enc 同时置高,RAM2 读出一个峰极大值点坐标peak_inx 后,读地址addrc 保持不变,RAM1 中对应峰的包络数据peak_value 被读出后,RAM2 的读地址addrb 增加1,读出下一个峰坐标值peak_inx。

图6 RAM控制信号仿真图Fig.6 Simulation diagram of RAM control signal

2.2 基于FPGA的数据实时传输实现

数据的实时传输流程图如图7所示,一路校准光谱和16 个通道的寻峰模块输出的有效峰值数据依次写入RAM 中存放,写入完成后从RAM 中读出全部数据进行下一步数据传输,但读出RAM 中的数据时,新的数据正被写入RAM,RAM 的读写时序重叠,互相干扰,影响数据流,而交叉读写缓存使用两片RAM,使得数据的写入和读出互不干扰,保证数据传输的实时性。交叉读写缓存基本流程如下:在第一个光谱采集周期,将输入数据写入RAM3缓存;在第二个光谱采集周期,将输入数据写入RAM4 缓存,同时将RAM3 上一周期缓存的数据读出并传送至输出数据选择模块;在第三个光谱采集周期,将输入数据写入RAM3缓存,同时将RAM4上一周期缓存的数据读出并传送至输出数据选择模块,如此循环,两个RAM 交叉读写,实现数据的连续实时发送。

图7 数据实时传输流程图Fig.7 Flow chart of real-time data transmission

单片机和FPGA 间的SPI 总线连接如图8 所示,采用主从控制模式,单片机做主设备,FPGA 做从设备。一般SPI 总线只有CS/SS,SCK,MOSI,MISO 四 条信 号 线[11-12],其中CS/SS 是片 选 信号,高电平表示从设备被选中与主设备进行通信,SCK是串行时钟线,控制数据交换的时机和速率,MOSI 传输SPI 主设备向SPI 从设备发送的数据,MISO 传输SPI 主设备接收SPI 从设备传输过来的数据,CS_en 信号线的作用是提醒主设备从设备要向其发送数据,CS_en 由低电平转换为高电平时,CS/SS 随之变为高电平,主从设备就可以进行通信,单片机接收从FPGA发送的数据。

图8 SPI总线连接示意图Fig.8 Diagram of SPI bus connection

单片机和上位机间的数据传输通过TCP/IP 通信,特点是可靠性高,不丢包。FPGA 和单片机均可以实现TCP/IP 协议通信。TCP/IP 协议由应用层、传输层、网络层和链路层四层协议构成,指令复杂,通过FPGA 实现TCP/IP协议需要通过硬件描述语言对底层网络协议进行重构[13],对开发人员的FPGA 硬件逻辑编程能力要求高,难度较大,相比之下单片机实现TCP/IP 协议更简单一些,有很多轻量级开源TCP/IP 协议栈开源代码可以参考,其中LwIP 最 常用[14-15]。LwIP 的 优 点是 运行 需 求的RAM和ROM少,这是因为LwIP协议栈实现四层协议将网络接口层、网络层和传输层放在一个进程中处理,所以协议层之间处理的实时性更好,内存资源占用更少。

3 实验验证

对上述数据处理思想进行实验验证。从16 通道中选择4个通道接入不同的传感器串,上位机接收到待测传感器的数据如图9所示,没有接传感器的通道数据均为0(除通道数外),接入传感器的通道有通道数、峰的包络和峰极大值点坐标等数据,并且每个通道中峰的数目与接入的传感器串相符,表明基于FPGA 的光纤传感解调数据处理系统成功采集到了多通道数据,并把16 通道总的7500×16个全光谱数据压缩为7500个,减小了数据量,提高了系统的效率。从图9 中通道3 数据的放大图可以清楚地看到,通道3 光谱中有效峰有3个。每个峰取峰的41 点包络和相应的峰极大值点坐标数据发送至上位机,为验证寻峰程序的准确性,单独采集通道3传感器的原始光谱图,如图10所示。图9 与图10 中峰的坐标、光强等信息相符,表明通过基于FPGA 的寻峰模块,准确地提取了光谱的有效峰值数据,为光纤传感解调系统的实时数据处理提供了可靠支撑。

图9 上位机接收的16通道数据Fig.9 16-channel data received by upper computer

图10 通道3传感器的原始光谱图Fig.10 Original spectrum of channel 3 sensor

4 结论

针对光纤传感测试领域中组网测试采集量大的问题,设计了一套基于FPGA 的大数据量实时处理系统,利用FPGA 驱动AD 芯片对16 个通道传感器光谱和一个校准传感器光谱进行采集,之后将光谱的模拟信号转换为数字信号输入FPGA,利用FPGA 中的寻峰模块从大量光谱数据中选取有效数据,减少了传输的数据量,并通过交叉读写缓存保证数据传输的连续性,将筛选后的有效数据发送至上位机。经实验证明,该系统能够高效、可靠地满足基于光谱采集的多通道光纤传感解调数据处理要求,具有重要技术借鉴价值。

猜你喜欢
数据量光纤光谱
基于三维Saab变换的高光谱图像压缩方法
基于大数据量的初至层析成像算法优化
高光谱遥感成像技术的发展与展望
高刷新率不容易显示器需求与接口标准带宽
FIBBR King-A系列HDMI光纤线
宽带信号采集与大数据量传输系统设计与研究
高品质的忠实还原 FIBBR Ultra Pro2 HDMI光纤线
一条光纤HDMI线的诞生长飞/长芯盛FIBBR工厂走访实录
全国产1550nm 窄脉宽光纤放大器
基于GPU的高光谱遥感图像PPI并行优化