摘要:本文首先对分布式拉曼光纤测温技术的原理进行了简要的介绍,分析了系统的主要结构。在集成的拉曼测温模块的基础上,使用Cyclone IV系列的FPGA作为后端数据采集控制模块的主要控制模块,进行设计和制作。最后使用ARM作为上位机测试软件的运行平台,对后端数据采集控制模块进行测试与分析。

关键词:RAMAN散射,模数转换,FPGA,ARM,温度解调

1 引言

分布式光纤测温技术(DTS)在是上个世纪80年代随着光纤通信技术的不断发展而逐渐发展起来的,利用光时域反射技术(OTDR)和光纤中拉曼散射光对温度敏感的特性,检测光纤不同位置下温度变化的一项技术[1]

因为这项技术具有抗干扰、抗腐蚀、安全性高以及测量距离远等特点,所以分布式拉曼测温系统得到了越来越多的关注,在国防工业、工业生产、电力传输等领域具有十分广阔的应用前景。

本文主要探讨了分布式拉曼光纤测温设备中的后端基于FPGA的数据采集处理模块的平台搭建。

2 分布式拉曼测温系统的基本理论及其实现

2.1 光时域反射原理

分布式光纤测温技术的实现需要对空间进行精确的定位。OTDR具有对被测光纤逐点定位的功能,它是为了适应光纤通信过程中对光纤状态诊断的需要诞生于上个世纪的七十年代中期[1]

根据公式2.1,已知入射光出发到散射光信号返回的时间、真空光速c和光纤的折射率n,便可以计算出被测光纤的长度L。

图2-1 OTDR的工作原理图

2.2 拉曼散射原理

拉曼散射也成为拉曼效应,它由印度物理学家拉曼在1928年发现。拉曼散射分为受激和自发拉曼散射,其中自发拉曼散射是入射光在光纤中的非弹性碰撞产生的与光纤分子的热振动相关的散射,因此可以用于对温度的测量[2]

拉曼散射光可分成反斯托克斯散射光和斯托克斯散射光两部分。在自发拉曼散射的条件下,反斯托克斯光对温度变化的敏感程度要高于斯托克斯光,解调时分别用作信号通道与参考通道,以消除其他因素对温度信息的干扰。

公式2.2为标准温度解调公式,其中是反斯托克斯散射光的光波长而是斯托克斯散射光的光波长;h为普朗克常数;c为光在真空中的速度;Δv为波数偏移;k为波尔兹曼常数。

2.3 拉曼测温的系统结构

图2-3 分布式拉曼光纤测温系统框架结构图

如图2-3所示,是分布式拉曼光纤测温系统的基本框架,整个系统可以分为两大部分,虚线外的光信号部分和虚线内的电信号部分。

前端的光信号部分由集成的拉曼模块实现,它根据拉曼散射效应和光时域反射原理实现主要由脉冲激光器、耦合器、分光器、APD雪崩光电二极管、信号放大器组成。后端电信号部分则包含FPGA控制下的多位高速AD转换,数据的缓冲与处理和通讯接口等,它可以通过串口接收指令和发送数据。我的主要工作便是后端数据采集控制模块的设计、制作和测试。

图2-4 是拉曼测温模块实物图,模块中光脉冲波长为1550nm,脉冲重复频率在250Hz-10KHz之间可调。模块使用SMA天线头作为拉曼散射光经过光电转换后信号的输出端口,输出信号最大幅值为±0.5V。激光器使用外部触发,其控制信号为TTL电平,上升沿触发,最右端为激光器触发脉冲输入。

图2-4 拉曼测温模块实物图

最后在拉曼测温模块的基础之上确定后端数据采集控制模块的基本指标,设计并实现基于FPGA的电信号数据处理控制模块。

3 后端数据采集控制模块的实现

3.1 控制模块整体逻辑结构

图3-1 FPGA内部模块框架逻辑

图4-5是FPGA内部各模块的基本逻辑框架图,基于FPGA的数据处理控制模块流程如下:当FPGA上电后初始化,PLL提供时钟信号,控制模块等待启动命令,并根据信号处理模块的需求发出触发脉冲;当模数转换模块接收的散射光信号之后将得到的数据首先存储数据存储模块之中,等待信号处理模块的数据调用;当信号处理模块完成数据处理之后,通过通讯模块将数据发送到上位机。

3.2 模数转换模块的设计

为了达到系统空间精确度达到1m的要求,在不考虑系统带宽的影响下,在已知光在光纤中的传播速度的前提下,根据公式3.1得到所需模数转换芯片的转换速率必须能达到100MSPS。


本文选用两片由ANALOG DEVICE 公司生产的输出数据位12位,最高转换速度为125MSPS的模数转换芯片:AD9233BCPZ-125。它具有灵活的模拟输入范围、灵活的数据输出格式、灵活的时钟输入方式而且在速率为125MSPS时依旧能够提供高达12位的采样精度,同时可以在工作温度范围内实现无失码[3],能够满足设计对于采样速度、信号输入频率与电压的需要。

系统时钟源为50MHz的石英晶体振荡器,使用FPGA内部的PLL模块(锁相环)对原始时钟信号进行两倍倍频为AD9233提供时钟信号。

3.3 数据缓存模块的设计

数据缓存模块分为FIFO(先进先出存储器)和双口RAM两部分。因为AD9233是高速模数转换芯片,为了能够保证AD9233输出的数据能够被FPGA及时读取必须对信号数据进行缓冲。使用EDA设计软件Quartus II中的MegaWizardPlug-In Manager生成异步FIFO模块,FPGA根据信号处理模块的状态判断数据是否能够写入FIFO中。

信号处理模块处理后的数据缓存在双口RAM中,使用双口RAM存储数据在简化逻辑的同时,因为双口RAM它具有两套完全独立的数据线、地址线和读写控制线,所以数据的读与写不会相互干涉,大大提高了数据的吞吐量[6]。如图3-2所示,本设计使用具有32位数据线和11位地址线的双口RAM作为一路运算数据的缓存器。

图3-2 双口RAM模块

3.4 信号处理模块的设计

因为采集到的反斯托克斯光与斯托克斯光信号的强度十分微弱,实际有用的信息都被噪音淹没,所以为了提取其中有用的信息,必须对信号进行消噪处理。累加平均法是分布式光纤测温技术中一种常见的消噪手段。常用的累加平均方式有线性累加平均和递推式累加平均,本设计使用线性累加平均的方式对信号进行处理。

在模块当中使用有限状态机完成累加平均的过程控制,所谓的有限状态机(Finite Automation)也就是通过寄存器与组合逻辑构成的硬件逻辑电路,它通过不同的状态迁移来完成与实现一些特定的顺序逻辑[4]。使用有限状态机的优点在于能把并行执行的Verilog HDL代码转化为顺序执行的代码,弥补硬件代码不容易实现顺序执行的不足,同时增强代码的可读性。

如图3-3所示便是信号处理模块的寄存器传输级示意图,其中“AD_DATA”是采集到的信号输入端口,“FILTER_OUT_DIV”和“FILTER_OUT_REM”则分别为处理后信号的商与余数。

图3-3 信号处理模块寄存器传输级示意图

通过仿真软件ModelSim进行仿真测试,图3-4是数据处理仿真结果,其中设定的累加次数“ADD_SUM”为4次,参与累加的数据长度为16,最后“FILTER_OUT_DIV”和“FILTER_OUT_REM”分别显示的商与余数符合实际运算得到的结果。

图3-3 累加平均模块仿真图

4 模块的测试

上位机测试软件运行在ARM平台上,使用Qt作为上位机运行平台。上位机软件通过串口将数据发往上位机完成对进行温度的测量并在绘图区域显示温度信息、设定累加次数、测量精度与触发脉冲等一系列的功能。

图4-1 测量系统上位机软件界面

图4-2则是对拉曼反斯托克斯与斯托克斯信号进行多次累加平均之后的曲线,可以看到随着累加次数的增加,信号中的噪声能够得到有效的抑制。同时还可以从图中看出测量的光纤长度与实际光纤长度相符合,达到了采样分辨率1m的要求。

图4-2 多次累加平均处理后的数据曲线

为了获得温度曲线,对使用两路数据进行解调,通过参考重庆大学邹建的博士论文中对损耗补偿的研究,获得带损耗补偿的温度解调公式4.1:

其中为拉曼频移,,和分别为反斯托克斯与斯托克斯的损耗系数。

将光纤末尾的一小段放入热水中,通过数据采集控制模块测得的拉曼光光强数据并带入式4.1中,通过图4-3加入损耗补偿前后的温度信息对比图可以发现,公式4.1可以有效补正温度信息曲线,上位机的温度解调程序可行[5]

图4-3 加入损耗补偿前后的温度信息曲线

5 小结

使用FPGA作为主控,利用EDA设计工具进行分布式拉曼光纤测温系统的后端电信号数据处理控制模块的设计,在完成模块的验证与仿真的基础之上,设计基于ARM平台的上位机软件,并对模块进行实际的测试,最后实验结果表明:整套系统可以正常运行,实现了基于FPGA的拉曼分布式光纤测温控制系统的基本功能。

Abstract:The paper briefly introduces the basicprinciple of distributed Raman optical fiber temperature measurement technology,and analyzed the structureof the system. On the basis of optical fiber sensing device, we using analog todigital conversion chip, FPGA and ARM design the distributed Raman opticalfiber temperature measurement system.

Key Words: Raman Scattering, ADC, FPGA, ARM, Temperature Demodulation

参考文献:
[1]. 张宝军. OTDR的原理及应用[J]. 中国有线电视, 2009, (12):1319-1321.
[2]. 翟延忠,赵玉明,许舒荣,王大文.分布式光纤测温系统[J], 仪表技术与传感器, 2007, (9):36-38.
[3]. 高嵩. 基于FPGA的多道脉冲幅度分析器研究[D]. 硕士学位论文. 哈尔滨工程大学. 2012.
[4]. 陈小琴, 蒋存波,金 红. 状态机原理在控制程序设计中的应用[J]. 制造业自动化,2007,(10):57-60.
[5]. 邹 建. 分布式光纤温度测量系统关键技术研究[D]. 博士学位论文. 重庆大学. 2005. 
[6]. 翟  伟,纪元法,孙希延,徐亚宁. 基于FPGA的高速数据串口采集系统设计[N]. 桂林电子科技大学学报, 2013,(4):275-278.

基于FPGA的分布式拉曼光纤测温控制系统相关推荐

  1. 分布式拉曼光纤测温系统DTS市场现状与未来市场情况分析(纯手敲码字原创)

    分布式拉曼光纤测温系统DTS产品的现状分析:     分布式光纤测温系统,从诞生之日起,至今也有近30年的时间了.算起来,从拉曼分布式光纤测温系统在国内,从2005年开始,有为数不多的公司在不断的研发 ...

  2. 基于stm32人脸识别和红外测温

    目录 一.项目功能 二.原理图 三.实物视频 四.实物图片 五.程序 资料下载地址:基于STM32人脸识别和红外测温 一.项目功能 本系统由stm32f103c8t6单片机最小系统电路+k210人脸识 ...

  3. 【单片机毕业设计】【mcuclub-jk-003】基于单片机的非接触红外测温的设计

    最近设计了一个项目基于单片机的非接触红外测温系统,与大家分享一下: 一.基本介绍 项目名:非接触红外测温 项目编号:mcuclub-jk-003 单片机类型:STC89C52.STM32F103C8T ...

  4. 基于MAX6675的k型热电偶测温系统

    基于MAX6675的k型热电偶测温系统 亲测 本人亲测代码有效 测温整数误差控制在0摄氏度 如果所显示和实际误差相差25摄氏度 请在仿真中点击MAX6675属性调节把环境温度改为0 即k型热电偶冷端温 ...

  5. 基于STM32F1的手势识别PJ7602和测温报警MLX90614

    基于STM32F1的手势识别和测温报警 器件:我使用的是正点原子的STM32f103MiNi和手势识别模块PJ7602还有红外测温模块MLX90614 温度模块MLX9061 ![在这里插入图片描述] ...

  6. 基于MSP430G2553用Lora进行远程测温

    文章目录 前言 一. MPS430 软件 IAR ccs: ccs一个工程中使用多个c文件 IO口 配置时钟 串口通信 ADC 二.硬件 DS18B20测温温度模块 接线 时序分析 问题 三.Lora ...

  7. 基于51单片机的密码锁多路测温+测距+语音播报

    本项目为单片机课程设计成果,实物制作+proteus仿真,相关资料见结尾. 文章目录 前言 一.系统组成 1.1 WT588D语音模块 1.2 JQ8900-TF语音模块 1.3 HC-SR04-P超 ...

  8. 基于51单片机的智能大棚光温控制系统

    目录 文章目录 前言 一.器件 51单片机 1602lcd显示屏 ds18b20温度传感器 继电器 hs0038红外模块 二.部分代码展示 1.头文件 2.main.c 3.obj.c 总结 前言 这 ...

  9. 基于51单片机的多路热电偶测温系统proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前检测的温度值 2.循环显示多路热电偶检测值 3.当温度超过设定温度值一定范围以后,蜂鸣器报警,同时启动升温或降温装置 ...

最新文章

  1. 数据类型中的零碎基础知识
  2. C语言读写配置文件--转载
  3. linux二进制文件构建mysql_MySQL安装系列:使用通用二进制文件在Unix/Linux安装
  4. 家用电器用户行为分析与事件识别_8个步骤,教你如何开始用户行为分析
  5. kettle 脚本 java_Kettle 执行SQL脚本
  6. 用 Unity 探究 2D 游戏的打击感
  7. 【数学】奶牛编号(jzoj 2932)
  8. python存数据到excel_python爬取的数据--保存数据到excel
  9. pyquery获取不到网页完整源代码_爬虫神器之PyQuery实用教程(二),50行代码爬取穷游网...
  10. Creating a Google Suggest Style Filter with the AutoComplete Control
  11. 网盘用户分享独播剧链接 百度未及时封禁一审被判赔偿百万余元
  12. 服务器系统和数据库,服务器系统和数据库
  13. python max int
  14. MFC中如何画带实心箭头的直线
  15. Java基础知识点面试手册
  16. 一文搞懂VOS3000如何配置MicroSIP网络电话
  17. 数据库+PullToRefreshListView
  18. mysql执行存储过程报错1366_花花蘑菇
  19. Room cannot verify the data integrity. Looks like you‘ve changed schema but forgot to update the ve
  20. CF1603C Extreme Extension

热门文章

  1. 微信小程序开发遇到的错误总结
  2. 任正非对研究部门的方向指导
  3. Spring Security到底是什么
  4. python unicode.category
  5. 中国人民公安大学(PPSUC)网络对抗技术作业
  6. XML中大于号和小于号的写法
  7. 解决端口被进程占用 xxx port is already in use
  8. 无法将网络更改为桥接状态:没有未桥接的主机网络适配器
  9. 多媒体会议室系统有哪些功能,小型会议室系统解决方案
  10. 云环境渗透测试的重要性