专利名称:一种基于fpga的微粒检测统计系统及方法
技术领域:
本发明及一种微粒统计系统及方法,尤其是涉及一种基于FPGA的微粒检测统计 系统及方法。
背景技术:
电阻抗法(coulter法)和光阻法测电阻用于检测及统计微粒已有50多年的历 史。Coulter原理最早是由美国科学家Coulter在1947年发明,并且在血细胞分析应用上 获得了成功。目前,国内外大部分血细胞分析仪都还在使用Coulter法。光阻法仪器最早 由美国HIAC公司生产,20世纪80年代引进到我国,主要应用于航天汽油、医药等领域,在微 粒检测中有着重要的地位。无论是电阻抗法还是光阻法检测微粒,都需要对这两种方法产生的微粒信号脉冲 进行检测。电阻法和光阻法传感器都会受到干扰,如电源波动和外界电磁干扰,会产生信号 的干扰脉冲(不是正常的微粒脉冲信号);或者是由于两个微粒信号几乎同时通过传感器 而产生叠加信号(我们可以称之为M信号),对信号的检测及统计会带来一定的误差。传统的模拟信号检测微粒方法其中一个缺点是无法识别复杂信号(干扰信号和M 信号)。另一个缺点就是模拟方法检测信号时其电路复杂,实际使用时调试困难,且容易受 到环境的影响产生电路参数的变化导致检测统计不准确。近些年来,视觉图像法、人工神经网络等方法在微粒检测方法进程中涌现出来,在 实际的使用中也取得了一定的效果,但这些方法硬件资源开销大,使得该类方法中很少能 实际移植到FPGA等可编程器件中,对这些方法的推广起到了一定的阻碍作用。
发明内容
本发明所要解决的技术问题是提供一种结构简单、且统计准确度高的基于FPGA 的微粒检测统计系统及方法。本发明解决上述技术问题所采用的技术方案为一种基于FPGA的微粒检测统计 系统,包括多个微粒分析模块和SPI接口电路,所述的多个微粒分析模块通过所述的SPI接 口电路与主控制器连接,微粒信号通过A/D转换器与微粒分析模块连接,其特征在于所述 的微粒分析模块包括滤波电路、微粒识别电路、译码电路和统计电路,所述的A/D转换器与 所述的滤波电路连接,所述的滤波电路与所述的微粒识别电路连接,所述的微粒识别电路 与所述的译码电路连接,所述的微粒识别电路与所述的统计电路连接,所述的译码电路与 所述的统计电路连接,所述的统计电路通过所述的SPI接口电路与所述的主控制器连接, 所述的译码电路通过所述的SPI接口电路与所述的主控制器连接。所述的微粒识别电路包括微分器、幅度比较器、宽度比较器、状态机和峰值保持模 块;所述的统计电路包括模式控制模块、地址发生器、SRAM操作控制器和SRAM存储 器;
4
滤波电路分别与所述的微分器、幅度比较器和宽度比较器连接,所述的微分器、所 述的幅度比较器和所述的宽度比较器分别与所述的状态机连接,所述的状态机与所述的峰 值保持模块连接,所述的微分器、所述的幅度比较器和所述的宽度比较器分别与所述的峰 值保持模块连接,所述的峰值保持模块与所述的地址发生器连接,所述的状态机与所述的 SPI接口电路连接;所述的译码电路与所述的模式控制模块连接,所述的峰值保持模块与地址发生器 连接,所述的地址发生器通过SRAM操作控制器与SRAM存储器连接,所述的模式控制模块与 地址发生器连接,所述的模式控制模块与所述的SRAM操作控制器连接,所述的SRAM存储器 与所述的SPI接口电路连接。一种基于FPGA的微粒检测统计方法,具体包括如下步骤,步骤一被测微粒通过 Coulter传感器或光阻传感器得到微粒脉冲信号,微粒脉冲信号通过低噪声放大器放大,并 通过带通滤波器进行滤波;步骤二 将通过带通滤波器的微粒脉冲信号进行A/D转换变成微粒数字信号;步骤三定义正常信号峰值幅度范围为SOOmV 5V,单个微粒信号宽度范围为 15us 30us,AD采样率为lMHz,AD参考电压为5V,AD采样数据为8位,微粒数字信号经过 微粒识别模块;具体步骤如下(1)、微粒数字信号经过微分器,微分器能反映微粒数字信号的趋势,如果微粒数 字信号的微分值大于0,则微粒数字信号处于上升过程中;如果微粒数字信号的微分值小 于0,则微粒数字信号处于下降过程中;(2)、微粒数字信号经过幅度比较器,如果微粒数字信号处在上升过程中,则判断 微粒数字信号峰值电压是否大于800mV,如果微粒数字信号峰值电压大于800mV,则满足峰 值幅度条件,如果微粒数字信号峰值电压小于等于800mV,则认为该信号为干扰信号;如果 微粒数字信号处在下降过程中,则判断微粒数字信号峰值电压是否小于400mV,如果微粒数 字信号峰值电压小于400mV,则认为信号满足结束条件,如果微粒数字信号峰值电压大于或 等于400mV,则认为是信号没有满足结束条件;(3)、微粒数字信号经过宽度比较器,对于单峰信号,判断微粒信号宽度是否在 15us 30us之内;对于双峰信号,则判断微粒信号宽度是否在25 60us之内;(4)、状态机根据其当前状态及微分器、幅度比较器和宽度比较器来决定下一个 状态,如果微粒数字信号的状态以SO — Sl — S2 — S3 — S4 — SO进行转换且微粒信号 宽度在15 30us之内,则认为微粒数字信号为单峰信号;如果微粒数字信号的状态以 SO — Sl — S2 — S3 — S4 — S5 — S6 — S7 — S8 — SO进行转换且微粒信号宽度在25 60us之间,则认为微粒数字信号为双峰信号,如微粒数字信号以SO — Sl — SO — Sl进行转 换,则认为微粒数字信号为干扰信号,若微粒数字信号以SO — Sl — S2 — S3 — S4 — SO进 行转换,但微粒信号宽度大于30us或小于15us,则认为微粒数字信号为干扰信号;步骤四当判断出信号为正常微粒数字信号,则将该微粒数字信号的峰值波形保 持并传输给统计电路,统计电路在SRAM存储器中根据该峰值进行个数统计。与现有技术相比,本发明的优点是能够区分干扰信号和正常信号,且能识别两个 信号距离很近而产生的叠加信号(M信号),并且由于采用可编程器件实现,不存在模拟信 号识别中存在的问题。本发明能大大降低实际电路的复杂程度及成本,且能提高微粒信号的识别率计数的准确性。对信号进行必要的数字信号预处理,提高了识别的精度可靠性,其采用状态机的 实现方法对微粒信号进行识别,合理的利用了信号形态变化这一显性判据来识别信号,可 以达到较好的分类效果。本发明结合FPGA技术实现,从而达到实时,高效的识别。本发明 在Cyclone II EP2C5中构建了五通道的微粒识别统计系统,结合电阻抗法测试微粒,效果 良好,各项指标均优于传统模拟识别电路。
图1为本发明的系统框图;图2为本发明的单通道微粒分析模块的结构图;图3为本发明的统计电路的结构图;图4为本发明的微粒识别电路的结构图;图5为本发明的微粒信号检测时的状态示意图;图6为本发明的微粒信号检测时的状态机状态转换图。
具体实施例方式以下结合附图实施例对本发明作进一步详细描述。一种基于FPGA的微粒检测统计系统,包括多个微粒分析模块3和SPI接口电路4, 多个微粒分析模块3通过SPI接口电路4与主控制器连接,微粒信号通过A/D转换器2与 微粒分析模块3连接,微粒分析模块3包括滤波电路5、微粒识别电路6、译码电路7和统计 电路8,A/D转换器2与滤波电路5连接,滤波电路5与微粒识别电路6连接,微粒识别电路 6与译码电路7连接,微粒识别电路6与统计电路8连接,译码电路7与统计电路8连接,统 计电路8通过SPI接口电路4与主控制器连接,译码电路7通过SPI接口电路4与主控制 器连接。主控制器采用常规市售的。微粒识别电路6包括微分器13、幅度比较器14、宽度比较器15、状态机16和峰值 保持模块17 ;统计电路8包括模式控制模块9、地址发生器10、SRAM操作控制器11和SRAM存 储器12 ;滤波电路5分别与微分器13、幅度比较器14和宽度比较器15连接,微分器13、幅 度比较器14和宽度比较器15分别与状态机16连接,状态机16与峰值保持模块17连接, 微分器13、幅度比较器14和宽度比较器15分别与峰值保持模块17连接,峰值保持模块17 与地址发生器10连接,状态机16与SPI接口电路4连接;译码电路7与模式控制模块17连接,峰值保持模块17与地址发生器10连接,地 址发生器10通过SRAM操作控制器11与SRAM存储器12连接,模式控制模块17与地址发 生器10连接,模式控制模块17与SRAM操作控制器11连接,SRAM存储器12与SPI接口电 路4连接。一种基于FPGA的微粒检测统计方法,具体包括如下步骤,步骤一被测微粒通过 Coulter传感器或光阻传感器得到微粒脉冲信号,微粒脉冲信号通过低噪声放大器放大,并 通过带通滤波器进行滤波;
步骤二 将通过带通滤波器的微粒脉冲信号进行A/D转换变成微粒数字信号;步骤三定义正常信号峰值幅度范围为SOOmV 5V,单个微粒信号宽度范围为 15us 30us,AD采样率为lMHz,AD参考电压为5V,AD采样数据为8位,微粒数字信号经过 微粒识别模块;具体步骤如下(1)、微粒数字信号经过微分器13,微分器13能反映微粒数字信号的趋势,如果微 粒数字信号的微分值大于0,则微粒数字信号处于上升过程中;如果微粒数字信号的微分 值小于0,则微粒数字信号处于下降过程中;(2)、微粒数字信号经过幅度比较器14,如果微粒数字信号处在上升过程中,则判 断微粒数字信号峰值电压是否大于800mV,如果微粒数字信号峰值电压大于800mV,则满足 峰值幅度条件,如果微粒数字信号峰值电压小于等于800mV,则认为该信号为干扰信号;如 果微粒数字信号处在下降过程中,则判断微粒数字信号峰值电压是否小于400mV,如果微粒 数字信号峰值电压小于400mV,则认为信号满足结束条件,如果微粒数字信号峰值电压大于 或等于400mV,则认为是信号没有满足结束条件;(3)、微粒数字信号经过宽度比较器15,对于单峰信号,判断微粒信号宽度是否在 15us 30us之内;对于双峰信号,则判断微粒信号宽度是否在25 60us之内;(4)、状态机16根据其当前状态及微分器13、幅度比较器14和宽度比较器15来决 定下一个状态,如果微粒数字信号的状态以SO — Sl — S2 — S3 — S4 — SO进行转换且微 粒信号宽度在15 30us之内,则认为微粒数字信号为单峰信号;如果微粒数字信号的状态 以SO — Sl — S2 — S3 — S4 — S5 — S6 — S7 — S8 — SO进行转换且微粒信号宽度在25 60us之间,则认为微粒数字信号为双峰信号,如微粒数字信号以SO — Sl — SO — Sl进行转 换,则认为微粒数字信号为干扰信号,若微粒数字信号以SO — Sl — S2 — S3 — S4 — SO进 行转换,但微粒信号宽度大于30us或小于15us,则认为微粒数字信号为干扰信号;步骤四当判断出信号为正常微粒数字信号,则将该微粒数字信号的峰值波形保 持并传输给统计电路16,统计电路16在SRAM存储器中根据该峰值进行个数统计。本发明的结构及部件解释如下基于FPGA的微粒统计系统主要包括微粒信号1、A/D转换器2、微粒分析模块3、 SPI接口模块4,以下是对这几部分的说明。1)微粒信号的产生微粒悬浮液经过Coulter传感器或者光阻传感器,将悬浮液 中微粒的体积大小转换成电信号大小,经放大器放大,变成适合A/D转换器转换的电信号。2)电信号由A/D转换器转换后变成数字信号。3)由微粒分析模块3检测微粒信号,当检测到微粒信号后保持该信号的峰值,以 该值作为地址,在相应的存储单元中数据累加1。4) SPI接口电路4 为节省IO 口资源,本系统采用标准SPI通讯方式来实现主控制 器对微粒分析装置的指令控制和数据读取。主控制器对每一通道的控制指令有开始计数 指令、停止计数指令、读取微粒体积分布值指令及清空存储器指令。如图2所示,本装置单通道微粒分析模块有以下4部分构成滤波电路5、微粒识 别电路6、译码电路7、统计电路8,以下是对这几部分的说明。1)滤波电路5 本发明所用的滤波电路是采用消耗硬件资源较少的均值滤波器, 用于滤除由于A/D转换器的误差及电源波动造成的数据突变点,以避免在进行微粒识别时
7系统发生误动作。2)微粒识别电路6 微粒信号识别时本发明的核心部分,主要分三部分第一部分 是检测是不是有信号;第二部分是判断信号是否为合理的微粒信号;第三部分是若有合理 的信号则要判断该信号的类型(是不是M信号)及确定该信号需要保持的峰值信号值(或 谷值信号值)以用于微粒体积的统计。该信号识别电路是由状态机实现的,具体说明见图 4。该电路核心是状态机和三个条件判断电路构成。状态机根据当前状态和三个条件判断 电路的判断结果决定下一状态。三个条件判断器依次为微分器、幅度比较器、宽度比较器。 微分器主要是判断信号波形的趋势,用于判断信号是否开始或者结束;幅度比较器判断信 号波形幅度的大小,用于判断微粒信号幅度是否合理,其也是信号开始点和结束点的一个 重要判据;宽度比较器判读信号宽度的大小,用于判断信号宽度是否合理。当微粒识别模块 判断出当前信号为合理微粒信号后保持该信号峰值作为统计模块的输入以用于统计微粒 体积分布。3)译码电路7 译码电路主要的任务是将主控制器的控制指令译码成控制通道的 信号。其实质是一个2-4译码器。4)统计电路8 统计电路主要的任务是统计不同幅值的微粒信号个数,具体说明 见图3。如图3所示,本装置微粒统计电路有以下4部分模式控制模块9、地址发生器10、 SRAM操作控制器11、SRAM存储器12,以下是对这几部分的说明。1)模式控制模块9 在前面提到,微粒分析模块共有4条指令,每条指令对应的 SRAM操作是不一样的,如在读取数据时,“写使能”控制信号应为无效,“读使能”控制信号 有效,故控制器的任务是让SRAM操作控制器11知道当前处在什么指令模式下并让地址发 生产生对应的地址,以便让SRAM操作控制器11控制SRAM存储器12读写操作。2)地址发生器10 微粒分析模块4条指令中对应的地址来源是不一样的。如在计 数时,地址应为微粒识别电路保持下来的信号峰值;而在清零和读取数据时,地址应为地址 发生器内部产生的从最低位到最高位的地址。3)SRAM操作控制器11 微粒分析模块在不同指令模式下对SRAM存储器12的操作 是不同的,SRAM操作控制器11就是根据不同指令模式和地址发生器产生的地址对SRAM存 储器12进行操作。4) SRAM存储器12 =SRAM存储器12的任务是对微粒信号统计值存储。如图4所示,本装置微粒信号识别电路有5部分组成微分器13、幅度比较器14、 宽度比较器15、状态机16、峰值保持模块17,以下是对这几部分的说明。1)微分器13 是利用信号的微分值来确定信号是处于上升状态、下降状态或持平 状态。2)幅度比较器14 信号幅度判断是确定信号是否降低到某个小值,利用该判断来 确定信号是否结束。3)宽度比较器15 信号宽度是用来确定信号是否正常、过宽或过窄。过宽过窄信 号都算干扰信号而不对其计数。4)状态机16 状态机16是微粒信号识别电路的状态控制器,有前面所述的3中判 断条件和状态机自身的状态来决定下一状态。其状态机详细的情况见图5和图6所示。
8
5)峰值保持模块17 在识别出一个信号后要对该信号计数,计数是将该信号的峰 值作为地址对SRAM累加1。如图5所示,根据信号变化的趋势(其微分值)我们可以将信号划分成21个不同 的状态,以下是对这21个状态的说明。S0 初始状态;S1 信号第一次开始上升点和上升斜率最大值点之间状态;S2 信号第一次斜率最大值点和信号最大值点之间状态;S3 信号第一次开始下降和下降斜率最大值点之间状态;S4 信号第一次下降斜率最大值点到停止下降点之间的状态;S5 信号第二次开始上升点和上升斜最大值点之间状态;S6 信号第二次斜率最大值点和信号最大值点之间状态;S7 信号第二次开始下降和下降斜率最大值点之间状态;S8 信号第二次下降斜率最大值点到停止下降点之间的状态;S9, S10, S11, S12, S13、S14, S8、S15, S16, S17, S18, S19, S20 各个状态之间转换的过渡状态, 以防止AD采样以及信号偶尔的抖动。各状态之间的转换关系如图7所示。如图6所示,图中简要描绘了状态转换过程。图6中如果信号的状态以 S0-S1-S2-S3-S4- S0如此转换,则判定该信号为单峰信号;若信号状态以 S。一 S1 — S2 — S3 — S4 — S5 — S6 — S7 — S8 — S0如此转换,则判定该信号为双峰信号。判 断出信号的类型后,结合记录的参数来判断该信号是否为正常信号。通过上述方法,最终可以识别出单峰信号、M信号、伪M信号以及过窄和过宽的信 号。最后通过统计模块可以对微粒信号统计计数。统计电路步骤1)每通道微粒分析系统有四种模式,每种模式对应对SRAM存储器的操作是不一 样的。2)在统计模式下,微粒识别模块每识别出一个微粒信号,就向统计模块发出脉冲 信号及保持下来的峰值信号。统计模块接收到脉冲信号后读取峰值信号A,根据峰值信号A 读取SRAM中的数据B,将数据B加1得到数据C,然后使能SRAM中“写使能”信号端口,将 数据C写入以信号A为地址的SRAM中。3)在读取数据模式下,SPI信号接收外部主控制器的始终信号,产生地址信号,统 计模块使能“读使能”控制信号端口,根据该地址信号读取SRAM中的信号并传输给SPI接 口向外输出。4)在清零模式下,统计模块内部产生地址信号,使能“写使能”控制信号端口,根据 地址信号向SRAM中写0。5)在停止模式下,不对统计模块进行操作。
9
权利要求
一种基于FPGA的微粒检测统计系统,包括多个微粒分析模块和SPI接口电路,所述的多个微粒分析模块通过所述的SPI接口电路与主控制器连接,微粒信号通过A/D转换器与微粒分析模块连接,其特征在于所述的微粒分析模块包括滤波电路、微粒识别电路、译码电路和统计电路,所述的A/D转换器与所述的滤波电路连接,所述的滤波电路与所述的微粒识别电路连接,所述的微粒识别电路与所述的译码电路连接,所述的微粒识别电路与所述的统计电路连接,所述的译码电路与所述的统计电路连接,所述的统计电路通过所述的SPI接口电路与所述的主控制器连接,所述的译码电路通过所述的SPI接口电路与所述的主控制器连接。
2.根据权利要求1所述的一种基于FPGA的微粒检测统计系统,其特征在于所述的微粒 识别电路包括微分器、幅度比较器、宽度比较器、状态机和峰值保持模块;所述的统计电路包括模式控制模块、地址发生器、SRAM操作控制器和SRAM存储器;滤波电路分别与所述的微分器、幅度比较器和宽度比较器连接,所述的微分器、所述的 幅度比较器和所述的宽度比较器分别与所述的状态机连接,所述的状态机与所述的峰值保 持模块连接,所述的微分器、所述的幅度比较器和所述的宽度比较器分别与所述的峰值保 持模块连接,所述的峰值保持模块与所述的地址发生器连接,所述的状态机与所述的SPI 接口电路连接;所述的译码电路与所述的模式控制模块连接,所述的峰值保持模块与地址发生器连 接,所述的地址发生器通过SRAM操作控制器与SRAM存储器连接,所述的模式控制模块与地 址发生器连接,所述的模式控制模块与所述的SRAM操作控制器连接,所述的SRAM存储器与 所述的SPI接口电路连接。
3.一种基于FPGA的微粒检测统计方法,其特征在于具体包括如下步骤,步骤一被测 微粒通过Coulter传感器或光阻传感器得到微粒脉冲信号,微粒脉冲信号通过低噪声放大 器放大,并通过带通滤波器进行滤波;步骤二 将通过带通滤波器的微粒脉冲信号进行A/D转换变成微粒数字信号;步骤三定义正常信号峰值幅度范围为SOOmV 5V,单个微粒信号宽度范围为15us 30us, AD采样率为1MHz,AD参考电压为5V,AD采样数据为8位,微粒数字信号经过微粒识 别模块;具体步骤如下(1)、微粒数字信号经过微分器,微分器能反映微粒数字信号的趋势,如果微粒数字信 号的微分值大于0,则微粒数字信号处于上升过程中;如果微粒数字信号的微分值小于0, 则微粒数字信号处于下降过程中;(2)、微粒数字信号经过幅度比较器,如果微粒数字信号处在上升过程中,则判断微粒 数字信号峰值电压是否大于800mV,如果微粒数字信号峰值电压大于800mV,则满足峰值幅 度条件,如果微粒数字信号峰值电压小于等于800mV,则认为该信号为干扰信号;如果微粒 数字信号处在下降过程中,则判断微粒数字信号峰值电压是否小于400mV,如果微粒数字信 号峰值电压小于400mV,则认为信号满足结束条件,如果微粒数字信号峰值电压大于或等于 400mV,则认为是信号没有满足结束条件;(3)、微粒数字信号经过宽度比较器,对于单峰信号,判断微粒信号宽度是否在15us 30us之内;对于双峰信号,则判断微粒信号宽度是否在25 60us之内;(4)、状态机根据其当前状态及微分器、幅度比较器和宽度比较器来决定下一个状态,如果微粒数字信号的状态以SO — Sl — S2 — S3 — S4 — SO进行转换且微粒信号 宽度在15 30us之内,则认为微粒数字信号为单峰信号;如果微粒数字信号的状态以 SO — Sl — S2 — S3 — S4 — S5 — S6 — S7 — S8 — SO进行转换且微粒信号宽度在25 60us之间,则认为微粒数字信号为双峰信号,如微粒数字信号以SO — Sl — SO — Sl进行转 换,则认为微粒数字信号为干扰信号,若微粒数字信号以SO — Sl — S2 — S3 — S4 — SO进 行转换,但微粒信号宽度大于30us或小于15us,则认为微粒数字信号为干扰信号;步骤四当判断出信号为正常微粒数字信号,则将该微粒数字信号的峰值波形保持并 传输给统计电路,统计电路在SRAM存储器中根据该峰值进行个数统计。
全文摘要
本发明公开了一种基于FPGA的微粒检测统计系统及方法,微粒分析模块包括滤波电路、微粒识别电路、译码电路和统计电路,A/D转换器与滤波电路连接,滤波电路与微粒识别电路连接,微粒识别电路与译码电路连接,微粒识别电路与统计电路连接,译码电路与统计电路连接,统计电路通过SPI接口电路与主控制器连接,译码电路通过SPI接口电路与主控制器连接,其优点是能够区分干扰信号和正常信号,且能识别两个信号距离很近而产生的叠加信号(M信号),并且由于采用可编程器件实现,不存在模拟信号识别中存在的问题,能大大降低实际电路的复杂程度及成本,且能提高微粒信号的识别率计数的准确性。
文档编号G01N15/12GK101915727SQ20101022217
公开日2010年12月15日 申请日期2010年7月2日 优先权日2010年7月2日
发明者施金良, 李宏, 汪强, 陈宇 申请人:宁波大学