欢迎访问ic37.com |
会员登录 免费注册
发布采购

一款基于FPGA的可见光及近红外微型光谱仪

日期:2019-8-10标签: (来源:互联网)

一款基于FPGA的可见光及近红外微型光谱仪,介绍了其研究方案及实现功能。该微型光谱仪采用滨松公司的MS系列CMOS图像传感器,波长探测范围340 nm~1 050 nm,光谱分辨率约10 nm;功耗低于600 mW,可USB直接供电,通过USB2.0与PC及手机通信,积分时间5 ms,扫描次数、积分时间可调。实验表明,该微型光谱仪输出光谱波形稳定,工作可靠,响应速度快,可应用于农产品无损检测等方面。
  光谱仪是分析物质组成的重要仪器,传统光谱仪具有较高精度,但是其体积大,价格高昂,在现场应用等方面存在便携性差、普及困难等问题。随着微型光机电系统和宽波段探测器的发展,微型光谱仪得到了长足的发展[1],近年来商用微型光谱仪层出不穷,通过选配不同的探测器,可以实现宽波段、高精度的光谱测量[2]。微型光谱仪集成度高、功耗低、灵活方便、性价比高,在性能上能满足一定的要求[3],使得其得到了广泛的重视。
1系统设计及实现
  本微型光谱仪主要由互补金属氧化物半导体(Complementary Metal Oxide Semiconductor, CMOS)图像传感器、驱动与采集、通用串行总线(Universal Serial Bus,USB)通信等模块组成,系统结构如图1所示。光源照到被测物体,在其表面和浅层发生漫反射,带有内部信息的反射或者透射光为图像传感器所接收[4],传送至现场可编程门阵列(Field Programmable Gate Array, FPGA),经过平滑处理,再通过USB上传至电脑或者手持设备进行显示或作进一步处理[58]。
  图像传感器
  设计中采用日本滨松公司的MS系列CMOS图像传感器。MS系列包括C10822MA01(340 nm~750 nm)和C11708MA(640 nm~1 050 nm)两款,涵盖了可见光和近红外的探测范围。MS系列图像传感器包含256个像素点,狭缝尺寸75 μm×750 μm,像元尺寸12.5 μm×1 000 μm,其光学结构为一凸面闪耀光栅,光线经狭缝入射,经过凸面闪耀光栅分光[9],反射至CMOS传感器上,其结构紧凑,外观小巧,重量仅9 g,功耗低,仅有30 mW,在与手持设备连接时,低功耗有着更大的优势。
  硬件电路设计
  本设计中的硬件电路主要包括前端信号处理电路、模数转换电路、FPGA最小系统以及USB通信电路[7]。
  CMOS图像传感器输出的光谱数据需要经过多级缓冲放大滤波后再输入模数转换器(Analog to Digital Converter, ADC)进行转换,本设计中采用了三级缓冲放大电路:第一级跟随,第二级缓冲、滤波,第三级放大、滤波
  CMOS图像传感器输出的模拟信号频率为200 kHz,最大输出电压为2.76 V,经过放大滤波,输出电压最大可达5 V,信噪比明显提高
  设计中采用AD7671作为模数转换器,AD7671是16位的逐次逼近型高精度模数转换器,最大积分非线性误差±2.5 LSB (±190 μV),采样速率最高达1 MS/s,精度高,速度快,满足应用要求。该ADC具有三种工作模式:Warp、正常和脉冲模式。本系统中采用正常模式,转换速率为800 kS/s。ADC配置为主机模式,在转换期间输出前一次转换结果, 
  设计中的主控芯片采用的是ALTERA公司的EP2C5T144C8N,其逻辑资源丰富,配置灵活,满足设计需求[10]。USB通信采用Cypress公司的CY7C68013,其由集成了USB2.0收发器的增强型8051微控制器组成。在设计中将CY7C68013配置为Slave FIFO模式。USB在此模式下,CPU不参与数据传输,直接由内部端点进行传输,由外部控制器来对端点进行读写操作。FPGA与各模块之间的连接示意图如图6所示。
  FPGA最小系统及USB通信电路均按照芯片手册设计,最后绘制并制作PCB板。4层PCB板尺寸为45 mm×84 mm。
  程序设计
  FPGA负责整个系统的控制和传输,程序采用Verilog HDL语言编写,采用自上而下的设计思路,对整个系统进行分块设计[1112],最终整合。系统主要分为3个子模块[13]: COMS图像传感器驱动模块、AD数据缓存模块以及USB读写控制模块。COMS图像传感器驱动模块负责翻译指令并控制Sensor的工作状态;AD缓存模块负责接收光谱数据,进行平滑滤波处理,然后分时发送到USB读写模块;USB读写控制模块负责收发数据,获取USB的状态并建立通信[1415]
  CMOS图像传感器的正常使用需要施以正确的驱动时序,设计中由FPGA产生驱动时序,驱动时序须严格按照图像传感器的时序来设计,MS系列图像传感器驱动时钟为800 kHz,输出频率200 kHz,输出完成会给出EOS信号,ST信号控制传感器的工作状态。编写好驱动程序后联合ModelSim仿真,结果表明驱动时序符合设计要求。
  图像传感器在ST信号到来后开始工作,输出光谱数据,在程序中控制ST信号的触发次数和触发周期就能实现对扫描次数和积分时间的控制[16]。光谱模拟量输出后,经过缓冲放大,然后进行AD转换,CNVST信号为AD转换使能信号,CNVST信号节拍须与传感器输出频率一致,并且在波形建立稳定后进行转换。当CNVST信号到来后,ADC开始转换数据,在此期间,输出前一次的转换结果,当BUSY信号到来时,FPGA开始以SCLK为时钟读取串行数据,高位在前,存于寄存器中,然后平滑滤波处理,最后告知USB读写模块数据已经就绪,USB将数据输出至上位机[1718]。
  USB读写模块监视CY7C68013的状态,FLAGA为EP2的空标识,FLAGC为EP6的满标识,当EP2为空时,FPGA不再读FIFO,当EP6为满时,FPGA不再写入FIFO
  固件程序是CY7C68013能正常运行的核心,Cypress公司提供了固件程序框架,包括fw.c、periph.c、dscr.a51、USBJmptb.OBJ、Ezusb.lib五个部分,在本设计中主要对periph.c进行了修改,使能EP2和EP6两个端点,设置EP2端点为OUT,缓存区大小为512 B,2倍缓存,EP6端点为IN,缓存区大小为512 B,4倍缓存。端点均为块传输,自动提交包方式[1920]。
  开机后系统首先处于待机状态,Sensor没有工作,等待上位机发送指令。指令码为16位二进制数,包含积分时间、扫描次数、默认/用户选择位三个信息,FPGA收到上位机发送的指令码之后进行判断,然后执行相应的操作,Sensor工作,数据上传。
  上位机连接成功后将会进入模式选择窗口,默认模式下积分时间为100 ms,发送次数为无限,系统将会一直工作,持续探测光谱。用户模式下可以选择积分时间和扫描次数,扫描次数最低可以选择1次,步进为1,用户最多可以选择100次,积分时间最低为5 ms,最高为100 ms,步进为5 ms。用户配置好参数之后,上位机将指令发送到系统,系统将按照设置的参数工作。
  实验中用LED台灯和532 nm激光分别照射探测头,在上位机上可以观察到光谱
  本设计采用以FPGA为核心的系统硬件平台,结合MS系列CMOS图像传感器,实现了对可见光和近红外光谱快速准确的测量,通过USB2.0通信使光谱数据能实时传输。实验表明,该微型光谱仪能够准确地测量光谱波长,实时性好;功耗低,可通过USB与手机直连,便携性、实用性好;其结构小巧,成本低廉,可以普及使用。