APP下载

基于STM32的光谱采集系统设计

2017-03-07王毅磊高鹏飞郭汉明

电子科技 2017年2期
关键词:时序上位串口

王毅磊,高鹏飞,黄 斐,周 郑,郭汉明

(上海理工大学 光电信息与计算机工程学院,上海 200093)

基于STM32的光谱采集系统设计

王毅磊,高鹏飞,黄 斐,周 郑,郭汉明

(上海理工大学 光电信息与计算机工程学院,上海 200093)

针对微型光谱数据采集电路的设计要求,设计了一种基于STM32的光谱数据采集系统。该设计由单芯片STM32F407内部的TIMER、ADC、DMA、RAM组成替代传统的多芯片设计,完成对线阵CCD TCD1304DG的驱动及信号采集,并能够通过串口与上位机测试软件进行通信,实时显示采集光谱。测试结果表明,该方案具有很好的驱动CCD工作能力,并具有良好的光谱采集效果、简单易行、成本低、集成度高等优点,还可拓展到其他型号CCD的驱动,实际应用价值高。

光谱采集;STM32;线阵CCD

光谱检测分析技术在食品、医疗、化学等诸多领域得到广泛应用[1]。随着光谱检测应用需求进一步扩展,其核心部件电荷耦合元件(Charge-Coupled Device, CCD),具有光电转换、信息存储和传输等功能,已被广泛应用于众多检测领域[2-4],尤其是在光谱检测方面。在实际应用中,线阵CCD驱动信号一般为复杂的周期信号,CCD信号采集电路的设计重点在于对CCD驱动设计及对CCD输出信号的调理、模数转换器(A/D转换)、数据传输和存储等[5-6]。常见的光谱数据采集电路通常由微控制器、时序发生器、模数转换器、数据存储器等组成[7-9],涉及芯片较多,电路复杂,集成度差。为此本系统设计了基于STM32的光谱数据采集系统,采用单芯片STM32F407作为时序控制、A/D转换、数据传输和存储中心,实现光谱的快速采集。

1 线阵CCD的工作原理和时序

线阵CCD 采用Toshiba公司的TCD1304DG,具有3 648个像素,需要三路驱动控制信号ΦM、SH、ICG,其中ΦM为主时钟脉冲信号,SH是转移栅信号,ICG是积分控制信号[10]。CCD的驱动电路有严格的工作时序要求,在电荷读出时,ICG下降沿要比SH上升沿最少提前100 ns,以保证光敏元和模拟移位寄存器完全导通,让光敏元里面的电荷信号全部进入模拟移位寄存器;SH脉冲宽度最少1 000 ns,让光敏元里面的电荷信号充分转移;ICG上升沿要比SH下降沿延迟最少1 000 ns,以充分接受光敏元里的电荷;ICG上升沿要比ΦM下降沿最多提前20 ns。TCD1304DG有两种驱动模式,第一种模式是采用电子快门,第二种模式是不采用电子快门,两种模式的主要区别是一个CCD工作周期内SH脉冲的个数及SH脉冲控制光信号的有效采集时间。本设计要求采用第二种模式,其工作时序如图1所示。

图1 CCD工作时序图

CCD的典型驱动脉冲为2 MHz,采用STM32F4能够产生波形较好的驱动信号[11]。当CCD主驱动时钟为2 MHz时,其数据输出频率为500 kHz,而STM32F4内部的模数转换器最高转换频率可达36 MHz[12],能够满足A/D转换要求。

2 基于STM32的光谱采集实现

STM32F407具有集成度高、速度快、可靠性好、硬件电路易于编程实现等特点[12]。如果更改逻辑设计,不需更改任何硬件电路,只将STM32F407内部逻辑重新编程即可。因此适合CCD驱动电路的设计、制作、调试和进一步开发、升级。

2.1 总体设计方案

系统驱动电路框图如图2所示,STM32F407产生CCD 时序,驱动CCD工作,CCD输出经信号调理电路反向、放大后,将CCD输出的电压信号变换到0~VREF间的电压信号,通过A/D对每一个像素进行AD转换后存储到内存中。当一帧3 648个数据全部采集完毕后,通过串口传给上位机进行数据处理,绘制出相对光谱强度分布曲线。

图2 系统驱动电路框图

2.2 CCD驱动程序设计

CCD三路驱动信号同步方式如下[12]:将STM32F407内部TIM2配置为主模式,每次发生更新事件(UEV)时输出一个周期性触发信号,同时将TIM3和TIM4配置为从模式,并使用内部触发,然后将从模式控制器设为外部时钟模式,最后使能相关定时器即可做到同步。

CCD三路驱动信号产生方式如下:将主定时器TIM2时钟频率设置为84 MHz的内置模式,配置TIM2预装载值(ARR)分频出8.4 MHz的工作频率,然后通过TIM2触发从定时器TIM3和TIM4,通过配置TIM4通道1的ARR和捕获/比较值(CCR)产生占空比为50%的2.1 MHz PWM波,通过配置TIM3通道1与通道2的ARR和CCR产生占空比26/14 592的525 kHz和10/14 592的525 kHz的PWM波。通过示波器观察产生的驱动时序波形如图3所示,该波形为每个周期内SH、ICG、ΦM的对应关系。

图3 TCD1304DG驱动时序图

2.3 CCD输出信号调理电路设计

由于CCD的饱和输出压降约为600 mV,而CCD输出中又含有固有噪声和随机噪声,因此,为了提高信噪比和信号灵敏度,在A/D转换前,需要对CCD输出信号进行调理[13]。在电路设计中,选用4片低功率、低失真度、高效率运算放大器对CCD信号进行反向、放大、缓冲处理,将CCD输出的电压信号变换到0-VREF间的电压信号,如图4中(a)~图4(c)所示。

反相电路原理图如图4(a)所示,U1为稳压芯片,输出为VREF,电路输出VOUT与输入VIN的关系如式(1)所示

(1)

其中,R3为可变电阻,通过上式可知,在无光的情况下,VIN为最大值,此时可通过调节R3阻值的大小使得VOUT输出电压幅值为零。随着光信号的增强,VIN值变小,VOUT值变大,从而达到反相的目的。

放大电路原理图如图4(b)所示,R2为可变电阻,调节R2的阻值大小可改变放大电路的放大倍数,从而改变测量电路的灵敏度。其输出与输入的关系如式(2)所示

(2)

电压缓冲电路原理图如图4(c)所示,作为与前后级电路间的缓冲器,避免后级电路对CCD 信号输出和前级电路对A/D转换造成干扰,输出与输入信号相等。

图4 CCD信号调理

2.4 CCD输出信号A/D转换和DMA传输

其中Margalet物种丰富度指数计算公式:D=(S-1)/lnN。其中,S为群落中的物种总数,N为观察到的全部物种的个体总数。

调理后的CCD输出信号还需要ADC转换成数字信号才能被STM32F407处理,选用STM32F407内部12位高速ADC完成模数转换工作。ADC最大转换速率为2.4 MHz,而TCD1304DG最大输出525 kHz,完全可以满足采集速度的要求。经过信号调理电路输出的信号电压范围为0~3.3 V,因此选择ADC参考电压VREF+=3.3 V。ADC的输出如式(3)所示

(3)

根据上式可知,ADC的输出与输入信号的幅值成正比,与VREF的幅值大小成反比,其准确性与VREF电压参考芯片的输出精度和噪声水平相关。为使所选择的ADC有较好的输出结果,需要重点考虑基准电压源和模拟输入信号与ADC接口的前端。所以选择TI公司的输出3.3 V、精度高达0.2%的串联基准REF3033作为基准电压源,并在ADC前端放置一个低阻抗缓冲器,减少前级对A/D转换干扰。

为保证CCD输出的每个像素都能被正确采集,采用直接内存访问(Directional Memory Access, DMA)原理设计了一种数据传输系统[14]。DMA传输的基本特点是不经过CPU,直接实现存储器与外设之间的数据传输,不仅提高了CPU的利用率,而且实现了数据的快速传输。在使能ADC规则通道外部上升沿触发单次转换和转换完成后的DMA请求后,每当CCD采集的电荷要向外转移时,ADC会在ICG上升沿前被ADC控制转换信号触发,准备对输出信号进行转换。在每完成ADC规则通道组中的一次转换后,都会生成一个DMA请求,DMA控制器接受到ADC发出的DMA请求后,DMA2数据流0通道2会将转换结果从ADC数据寄存器实时地传输到内存中。

2.5 串口通信设计

采用STM32F407内部串口与上位机进行数据通信[15]。STM32F407通过串口接收到上位机开始采集的指令后,产生CCD所需的时序和A /D控制信号。STM32F407接收到ADC控制信号后,使能ADC和DMA,并将ADC转换后的电压值转化成光强值。完成CCD数据采集、转换和存储后,STM32F407使用内部的串口将采集到的数据传输至上位机进行处理,上位机通过相关算法对数据进行处理、显示。

3 实验结果与分析

为了验证设计方案的正确性,可通过上位机软件绘制CCD采集到的相对光谱强度分布曲线来判断。当CCD饱和时,经12位ADC转换后输出光谱强度应约为4 096;当CCD无光照时,考虑CCD暗电流等干扰输出光谱强度应约为100。测试方法如下:在一片白纸上贴数条不透光的黑胶带,并且每条胶带的宽度递减,将CCD垂直于胶带扣在白纸上,均匀移动CCD,采集光谱数据,通过上位机实时显示采集到的光谱。

图5是CCD信号采集实物图,通过上位机可测得,在光照饱和状态下CCD输出光谱强度约在4 000,在无光状态下CCD输出光谱强度约在100。

图5 CCD信号采集实物图

图6是CCD通过白纸透光部分和遮光部分采集到的光谱数据,图中横坐标为CCD像元数值,纵坐标为相对光谱强度。图中的凹陷部分是CCD经过遮光区域的像素未采集到光信号形成的,凸起部分是CCD经过透光区域的像素采集到光信号形成的,这与本设计的预期符合。但遮光区域边缘漏光,造成系统采集的光谱在遮光边缘处谱线缓慢的上升或下降。

4 性能总结与结论

通过实验可知,所设计的光谱采集系统能够良好的完成光谱采集,总体性能较好,上位机能够正确显示采集到的CCD光谱,噪声在允许的范围内,在不同的工作环境下,系统性能稳定。由此可见,采用单芯片STM32F407完成时序控制、A/D转换、数据传输和存储的方案是可行的,而且简单易行、成本低。本设计具有一定的扩展性,在数据传输方面,不仅可以使用STM32F407内部串口与上位机进行数据通迅,也可以采用内部的CAN、USB2.0通迅接口与上位机进行数据传输,以满足不同用户的需求。此外,还可以针对不同型号的CCD编写不同的驱动时序,驱动其他型号CCD工作。

[1] 李锐,代本才,赵永德,等.光谱法在分子间非共价相互作用中的应用及进展[J].光谱学与光谱析,2009,29(1):240-243.

[2] 王庆友.图像传感器应用技术[M].北京:电子工业出版社,2003.

[3] 徐宏宇,赵行,孙彦超,等.基于STM32的光功率实时监测系统设计[J].电子科技,2014,27(12):85-89.

[4] 郭伟,杨牧,王青狮,等.基于面阵CCD的钢板几何尺寸测量系统[J].电子科技,2013,26(7):47-50.

[5] 梁忠望.线阵CCD数据采集电路研究[D].湖南:湖南大学,2010.

[6] 张俊.光谱数据采集与处理技术研究[D].天津:天津理工大学,2014.

[7] 李刚,王焱,李海兰,等.基于CPLD的线阵CCD光谱检测数据采集系统的研究[J].光谱学与光析,2007,27(10):1905-1909.

[8] 窦建华,王英,李长凯,等.基于CPLD和DSP的线阵CCD数据采集系统设计[J].合肥工业大学学报:自然科学版,2010,33(5):690-693.

[9] 董杰,苗长云,杨彦利,等.基于FPGA和ARM的线阵CCD信号采集器的设计[J]. 仪表技术与传感器,2015 (5):20-23.

[10] Toshiba.TCD1304DG data sheets[M].Japan:Toshiba,2004.

[11] 李宁.基于MDK的STM32处理器开发应用[M].北京:北京航空航天大学出版社,2008.

[12] ST.STM32F4xx data sheet[M].Switzerland:ST Microelectronics,2013.

[13] 唐嘉铭,朱金福.基于AD8334的光声信号调理电路设计与噪声分析[J].福建师范大学学报,2014,30(5):49-54.

[14] 张滔.基于STM32单片机DMA机制的多通道数据采集[J].黑龙江科技信息,2013,10(30):27-27.

[15] 周阳,周美娇.基于C#的串口通信系统的研究与设计[J].电子测量技术,2015,38(7):135-140.

Design of the Spectrum Acquisition System Based on STM32

WANG Yilei, GAO Pengfei, HUANG Fei, ZHOU Zheng, GUO Hanming

(School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 20093, China)

According to the design requirements of micro-spectrometer data acquisition circuit, a spectral data acquisition system based on STM32 is proposed. The internal TIMER, ADC, DMA, RAM of single-chip STM32F407 instead of the traditional multi-chip design are employed for a linear CCD TCD1304DG drive and the signal acquisition. Communication with the test software of host computer is achieved via the serial port to display the acquired spectrum in real time. The test results show that the CCD can be driven to acquire good spectra data. This project not only has the advantages of simple design, low cost and high integration, but also has a good practical value.

spectrum acquisition; STM32; linear CCD

2016- 04- 05

国家自然科学基金资助项目(61178079);上海市教育委员会科研创新基金资助项目(13SG47)

王毅磊(1991-),男,硕士研究生。研究方向:光电检测,嵌入式应用等。

10.16180/j.cnki.issn1007-7820.2017.02.001

TN873;TH744

A

1007-7820(2017)02-001-04

猜你喜欢

时序上位串口
清明
浅谈AB PLC串口跟RFID传感器的通讯应用
基于不同建设时序的地铁互联互通方案分析
特斯拉 风云之老阿姨上位
基于FPGA 的时序信号光纤传输系统
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
基于模体演化的时序链路预测方法
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索