×
嵌入式 > 嵌入式开发 > 详情

基于FPGA的气溶胶粒径信息存储系统的设计与实现

发布时间:2020-05-15 发布时间:
|
   

摘  要: 利用电子学时间多道存储技术,结合大规模可编程逻辑控制器FPGA和高速大容量双端口内存芯片,设计了一种高速大容量气溶胶粒子信息分类计数存储系统,实现了气溶胶粒子的快速识别与分类存储。时间多道系统存储容量高达32 768道,每道计数深度65 536个(16 bit)。
关键词: 气溶胶; 空气动力学粒径; FPGA;多道存储技术

 大气气溶胶在大气辐射、空气污染、大气物理化学性质、人类健康状况等方面扮演着重要角色,是衡量大气污染状况的重要指标[1]。研究表明,气溶胶粒子因其空气动力学粒径不同而滞留在人体呼吸道的不同部位,大于5 μm的气溶胶粒子滞留在上呼吸道,小于5 μm多滞留在气管、支气管和肺泡内,对人类的健康危害很大[2]。因此,持续有效地监测气溶胶粒子粒径分布信息具有重要意义。为了连续、实时、在线测量气溶胶粒径分布,本课题组开展了基于飞行时间ToF(Time-of-Flight)测量原理[2]的气溶胶空气动力学粒径谱仪系统的研制。
 空气动力学粒径是一当量概念,它是指在低雷诺数的气流中与单位密度球(ρ=1 g/cm3)具有相同终末沉降速度的颗粒直径,也就是指在较平稳的气流中被测颗粒物的直径相当于与其具有相同终末沉降速度的密度为1 g/cm3的球形标准颗粒物的直径[3]。气溶胶空气动力学粒谱仪不仅可以精确测量气溶胶颗粒物的空气动力学粒径,还可以记录、统计相同粒径大小的粒子数目。系统设计要求粒径0.5 μm的气溶胶粒子检测浓度最高可达1 500 pt/cm3,当仪器的采样气流量控制在1 L/min时,粒径0.5 μm的粒子数目每分钟最高可达到1.5×106个,则每秒钟需要检测的气溶胶颗粒物最高达25 000个。为了实现连续、实时、在线测量,大量粒子的快速识别和存储对电子学信号处理提出了较高的要求。这里以FPGA(Filed-Programmable Gate Array)为核心控制器来设计高速大容量数据存储系统。FPGA技术已广泛应用于当今数字电路设计领域,而基于FPGA的数据采集存储系统就是其典型应用[4]。
 当前,数字系统的核心控制芯片通常为单片机、DSP和FPGA等[4],单片机的速度较慢,效率低,DSP不擅长对外围复杂电路的控制,与单片机和DSP相比,采用FPGA作为控制芯片具有明显的优点,FPGA时钟频率高,硬件逻辑可编程,运行速度快,且功耗低、能够控制较为复杂的外围器件等[5],因此FPGA成为目前高性能数据采集存储系统主要使用的控制芯片。
 本文针对空气动力学粒谱仪系统研制的需要,采用电子学多道存储技术设计了一种基于大规模可编程逻辑控制器FPGA和双口RAM的高速大容量存储系统,实现了对气溶胶粒子快速识别和空气动力学粒径信息的分类计数存储。


1 系统总体设计
 气溶胶空气动力学粒谱仪通过复杂的光学系统与精确的时序控制技术的结合来完成其测量过程。气溶胶颗粒物经过根据空气动力学原理设计的喷口加速进入如图1所示的光学整形部件中,光学整形部件产生两束距离约为100 μm的激光。颗粒物垂直飞行通过,发生光散射形成双峰信号,如图1。基于飞行时间测量方法的空气动力学粒谱仪就是通过测量双峰信号的峰峰间隔,即飞行时间 ToF,从而计算出该气溶胶粒子的飞行速度。因为不同空气动力学粒径的颗粒物具有不同的飞行速度[2],通过对颗粒物飞行时间的直接测量,计算出该颗粒物的飞行速度,进而实现该粒子空气动力学粒径大小的测量。

 通过对气溶胶粒子采样系统中的壳气流量和总气流量的控制[3],可以使气溶胶粒子经空气动力学喷口加速后绝大多数单个依次通过目标光斑测量区,粒子散射产生连续双峰信号,此即为有效粒子,其波形如图2(a)所示。可能有些粒子很小其散射强度不够大,所产生的信号不能稳定在检测线以上,因此造成单峰信号和虚假的飞行时间,其转换成电脉冲波形如图2(b)所示。偶尔也会有粒子重叠产生多于两峰的情况,所谓粒子重叠就是指在测量时2个或多个粒子同时进入检测区域,其波形如图2(c)所示。重叠事件的结果产生会干扰粒径信息并导致粒子浓度测量结果偏低。同时仪器还有粒径测量范围,对粒子粒径很大(或者在检测器内紊流或弧线飞行),所需要的飞行时间超过仪器自身的检测时钟(4 096 ns),造成单独的宽峰谱图,波形图如图2(d)所示。单峰、粒子重叠多峰以及大粒子超过检测时钟的粒子都被认为是无效粒子,只有双峰信号是关心和检测的重点。为此电子学系统的设计需增加对有效粒子的识别,剔除干扰。粒子识别之后,方可进行飞行时间的快速转化与存储,进而进行粒径大小反演。

    如前所述,1 s内需检测和存储上万个粒子,且粒子的飞行时间在纳秒级,为此作为主控制器的FPGA,要进行粒子的快速识别和存储。系统电子学整体设计框图如图3所示。

 


    粒子的散射光信号通过光信号采集电路由信号调理电路[3]进行调理转换成数字信号(GATE、DIFF),波形如图4所示,GATE信号为高电平时有效,表示有粒子经过。图4为有效粒子的波形情况。相应的,如果单峰、多峰情况,转化成数字信号时,在GATE为高电平期间,DIFF信号分别为单脉冲和多脉冲,此作为粒子识别的依据,对于超大粒子,超过仪器检测范围的情况,可以通过定时计数器最高位的溢出进行识别。GATE和DIFF分别送至FPGA和高速计时逻辑单元。高速计时逻辑单元由500 MHz时钟电路、计数器控制、ECL-TTL高速计数器电路所组成,用来测定气溶胶粒子的飞行时间,由于时钟频率为500 MHz,计时的时间分辨可达2 ns物理精度,将测量ECL电平的飞行时间经电平转换成TTL电平后,送至大规模可编程逻辑控制器FPGA。

    GATE和DIFF信号,一方面送至FPGA作为粒子识别依据,当有粒子经过时,即GATE为高电平有效时,便对DIFF信号计数,如果有单个脉冲识别为事件1,如果有两个脉冲识别为事件2,多于两个脉冲识别为事件3,另一方面送至高速计时逻辑单元,在GATE信号有效期间,当第一个DIFF信号到来时,启动计数器,第二个DIFF信号关闭计数器。在计数器没有溢出的情况下(如果是超大粒子,计数器溢出,识别为事件4),所记录的飞行时间(定时器值),在GATE的下降沿被锁存,作为FPGA的输入信号,由FPGA将其转化成相应存储器地址,以便完成电子学道道存储[3]。


 具有同一飞行时间的粒子是具有同一电子学特征的粒子,反之不同飞行时间的粒子对应不同电子学特征。所谓电子学多道存储是指对具有不同电子学特征信号的气溶胶粒子进行分类计数,在所分析信号特征范围内,将粒子的特征信号按一定规则分类,每一类称为一道,每一道有一个相应的子存储单元,用来记录具有该类特征信号的粒子个数。一个子存储单元对应一种飞行时间的粒子,而子存储单元的内容存储了该飞行时间的粒子数目,因此一个子存储单元以及子存储单元里的内容则记录了该粒子的全部信息。设计要求记录的气溶胶粒子电子学特征种数为32 768种,故至少需具有32 768道(即32 k,地址线数据宽度为15位)存储容量的存储器来存储这些气溶胶粒子信息。因此作为高速核心控制器的FPGA完成的功能如下:
   (1)高速粒子模式识别逻辑;
   (2)飞行时间与电子学多道地址信息的高速转换;
   (3)高速存储器控制信号逻辑,控制高达32 768道计数存储器以便按空气动力粒径大小分类计数存储。
 可见,不同飞行时间对应存储器RAM的不同存储单元,具有相同飞行时间的粒子被统计在同一存储单元中。FPGA先快速将不同的电子学特征粒子信息锁存在双口RAM中,然后单片机从另外一端定时(单片机的定时器2实现)读取,通过RS232串口传至上位机,由上位机完成数据实时显示、保存,加以双端口可以简化硬件电路的设计。同时单片机还完成获取仪器状态参数和进行相应的控制,以及中断等。

[page]
2 电路实现
    核心控制器FPGA选用ALTERA公司Cyclone Ⅱ系列EP2C8T144C8N芯片,配置芯片为EPCS4,开发环境为Quartus II,设计采用硬件编程语言VHDL。整个逻辑控制分为4个模块进行设计,分别为时钟分频模块(Freq)、粒子事件识别模块(ShiBie)、飞行时间地址转换模块(T-Address)和双端口RAM的存储控制模块(SRAMCtrl)。顶层电路的设计如图5所示。

 时钟分频模块(Freq):时钟输入clk为50 MHz的有源晶振提供,经分频转化合适时钟clock供给存储控制模块使用。
 粒子事件识别模块:在GATE为有效电平期间,对DIFF信号计数,识别出事件1、事件2和事件3。
 飞行时间地址转换模块:ECL-TTL高速计数器的最高位T[12]位为1时,飞行时间为4 096 ns,被认为是超大粒子,超出仪器的测量范围,该信号是以ORR作为飞行时间地址转换模块的一个输入信号,用于识别事件4。该模块在识别出事件1、事件2、事件3和事件4之后转换成相应的地址,其中事件2为有效粒子情况,识别为该事件时,将不同飞行时间T[11..0]输入转换成不同的存储器地址信号输出,识别为事件1、事件3和事件4时为少数粒子的干扰情况,分别产生一固定的存储器地址信号输出。
    双端口RAM的存储控制模块:该模块的主要功能是完成对内存RAM的控制[6-10]。由于两粒子之间的时间间隔很短(GATE为低电平期间),在纳秒量级,在如此短的时间内完成内存的读写控制以及复位等,是存储器设计的一个难点。CYPRESS公司研制的64 K×16位高速低功耗CMOS型静态双口RAM芯片CY7C028可以满足存储设计的要求,一方面其存储器的最大访问时间12/15/20 ns,另一方面由于其容量高达64 KB,可以满足存储具有32 768种电子学特征信号的粒子信息,同时数据总线宽度为16位,故每一内存单元可以记录的同一特征粒子数高达65 535个。而且配有双端口,可以不必修改已设计完成的单片机端而扩展存储器访问控制功能,缩短开发周期[11]。出于仪器开发成本的考虑,下一目标是在FPGA内部实现双口RAM的功能,节省硬件双口RAM成本消耗。目前,为缩短开发周期,使用外部双口RAM,在FPGA内部采用状态机进行内存的访问控制。双口RAM访问控制时,首先要注意最重要的问题是RAM两端的控制器同时访问同一内存单元而产生的竞争问题,其次就是要注意由于FPGA端与RAM连接的数据总线是双向的,在空闲和读取之前要注意赋值为高阻态。整个系统设计的流程如图6所示。

     Quartus II仿真波形结果如图7所示。

    在GATE信号为高电平期间对DIFF信号进行计数,如果DIFF脉冲数为2,粒子识别为事件2,便在DATE信号的下降沿锁存飞行时间T,由T-Address模块将其转换成地址信号的输出ADDR(如图7中的192和512),然后由存储控制模块完成读写控制后,发出复位信号对时间T进行清零,从而完成一次操作。如果GATE为高电平时,DIFF脉冲的个数为1或者3时,分别产生一固定地址输出。如图7中所示,DIFF为3时,地址固定输出为1 023,尽管T值为384,DIFF为1时同理。可见,仿真波形结果与实际设计要求结果一致。


3 实验结果分析
    目前,该存储系统已运行于本研究所自行研发的空气动力学粒谱仪中。图8给出了实测的颗粒物飞行时间谱分布结果,测量时间为2010年6月18日,地点为安徽省合肥市科学岛中科院安徽光机所大楼室内,图中横坐标代表气溶胶粒子的飞行时间,单位为纳秒(ns),纵坐标代表各个不同飞行时间对应的气溶胶粒子数,单位为个(pt)。其中,采样气流1 L/min(总气流51 L/min,壳气流41 L/min),采样时间为30 s,将各个飞行时间粒子的粒子数相加求和得粒子总数为233 047个。图中,实测气溶胶粒子飞行时间谱的分布符合大气气溶胶常规分布这一特征,即气溶胶粒子粒径分布不完全是正态分布,而只是接近正态分布的特征[4]。


    针对空气动力学粒谱仪系统研制的需要,采用电子学多道存储技术设计了一种基于核心控制器FPGA和双口RAM的高速大容量存储系统,实现了对气溶胶粒子的识别和空气动力学粒径信息的分类计数、存储,存储容量高达32 768道,每道计数深度达65 535个(16 bit),完全满足气溶胶粒子的特征和个数要求。FPGA时钟频率高达50 MHz,完全能够实现对大量粒子的快速识别和飞行时间在纳秒级的地址转换存储,另外FPGA采用内部硬件电路完成逻辑控制,所以工作稳定可靠,且功耗低。经过实际运行验证,该存储系统完全满足仪器连续、实时、在线监测的要求,工作稳定可靠,实现了对气溶胶粒径测量,广泛应用于环境空气质量监测、洁净室检测、气溶胶特性研究及对大气传输特性的研究等领域。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
PLC控制步进电机方法