《电子技术应用》

基于FPGA的微流控芯片电泳控制系统设计

摘要: 本系统以FPGA芯片为控制核心,使用VerilogHDL语言编制了信号调理模块、A/D模块、高压模块、温度控制模块以及USB传输模块的程序;另外还编写了基于Windows XP的驱动程序与控制软件。在选取串行控制的A/D芯片节约控制端口的同时,采用具有大量控制端口的FPGA作为系统的控制芯片,实现了同时对30个 PCR芯片的控制。该系统通过并行控制多个芯片,提高了PCR的检测效率,可应用于需大批量芯片检测的场合。本文提出的使用FPGA控制微流控芯片的方法具有集成度高的优点,大幅提高了芯片的检测效率,具有较高的实用价值。

Abstract:

1 概 述

微型全分析系统的概念由Manz于20世纪90年代初提出,是集进样、样品处理、分离检测为一体的微型检测和分析系统。微流控芯片是其主要部件,采用微电子机械系统技术集成了微管道、微电极等多种功能元器件。微流控芯片的电泳技术是指以电场方式驱动样品在芯片的微管道中流动,然后再通过光电倍增管(Photo Multiplier Tube,PMT)将被测试样品所产生的微弱信号转换为电信号,并对该信号进行采集与处理。与常规毛细管电泳系统相比,该技术具有分离时间短、系统体积小、集成度高等优点,被广泛应用于药品筛选以及I临床诊断中。聚合酶链式反应(Palymerase Chain Reaction,PCR)是一项在短时间内体外大量扩增特定DNA片段的分子生物学技术。目前已有的PCR控制系统一般采用单片机作为控制核心,成功地实现了对单个微流控芯片进行控制。然而在需要高效快速、大规模应用微流控芯片的场合,由于单片机的控制端口数量有限,难以实施控制。本文选取串行控制的 A/D与D/A芯片,减少了所需控制端口数量;采用具有大量控制端口的现场可编程门阵列(Field Programmable Gate Array,FPGA)作为系统的控制芯片,在使用VerilogHDL语言对其编程后,可同时对30个PCR芯片实施控制。

2 硬件设计

系统以FPGA芯片为控制核心,实现对信号调理模块、A/D模块、高压模块、温度控制模块以及USB传输模块的控制。具体结构示意图如图1所示。虚线框内为相应的控制信号。

 

FPGA采用Xilinx公司的Spartan II 2S100-PQ208-5。PQ208表示其封装为208引脚,“5”表示时延为5 ns。该器件密度为1O万门,内置5 KB的RAM,最高工作频率可达到125 MHz,用户可编程使用的I/O端口数目多达196个。工作核心电压引脚接+2.5 V电源,其输入/输出(I/O)引脚支持TTL、LVTTL电平逻辑,需接+3.3 V电源。程序存储采用CPLD加Flash的方式。Spartan II系列的FPGA支持4种配置模式:从串行模式、主串行模式、从并行模式和边界扫描模式。在调试时期,采用边界扫描模式。在程序编制成功后,使用通用编程器将程序烧入由EPROM组成的配置存储器,然后将3个配置引脚全设置为高电平,采用从串行模式进行配置。

信号调理模块由电流转电压I—V电路、低通滤波电路组成。I—V电路的输入为光电倍增管的电流输出。I—V电路芯片采用的是安森美半导体公司的 MC33501,该芯片的输入偏置电流典型值为40 fA,非常适用于微弱光电流信号的测量。反馈电阻选取1 MΩ的标称值,可将1μA的电流转换为1 V的电压。转换后的电压信号再经过运算放大器OP07组成的二阶巴特沃兹低通滤波器,其截止频率可设置在1 Hz以下。A/D模块采用TI公司的12位串行A/D转换器ADS7818。该芯片仅8个引脚,采用串口方式控制和输出数据。如图2所示,对A/D模块进行控制只需占用FPGA的3个控制端口(CONV、CLK、DATA)。FPGA可编程使用的I/O端口数目多达196个,在除去其他芯片的控制端口后,足以胜任同时控制30个A/D模块的工作。这也意味着可同时对30个PCR芯片实施数据采集。

 

高压控制模块由TI公司的D/A芯片TLV5630和高压模块实现。高压模块的输出与其输入控制电压成正比。TLV5630具有8通道的12位输出,可以使高压模块的电压步进精确控制在1 V量级。FPGA通过RS232接口与温度模块通信,通过发送命令字与接收返回信息来控制温度。

系统需要接口将数据上传至计算机,而计算机的命令参数也通过此接口下载至本系统中。USB2.0接口的传输速率达到480 Mb/s,可胜任快速传回数据的任务。本文采用USB2.0接口作为系统与计算机通信的接口,USB的通信芯片选用Cypress公司的 CY7C268013A,工作模式为SlaveFIFO方式。

3 程序编码

程序编码包括3部分:一是采用VerilogHDL语言对FPGA编程;二是对CY7C68013A的固件编程;三是WindowsXP环境下驱动程序的开发以及上位机控制软件的编程。与系统结构相对应,FPGA的控制模块包括A/D模块、D/A模块、RS232模块、USB模块以及状态机模块。模块共用同一个时钟与复位信号。除状态机模块外,其他模块都将信号封装为状态输出、命令输入、选通输入、数据输出4个部分,由状态机模块对其实施控制。如图3所示,状态机模块读取USB模块从上位机得来的命令并翻译,然后对所指定的模块输入命令或者读取信息,最后返回操作成功信息。FPGA擅长于高速的逻辑与时序控制,便于控制具体的芯片,但不适于整体复杂的流程控制。采用这种方式编程的好处在于,避免了FPGA复杂的流程控制编程,而将这一任务交给上位机去完成。

 

FPGA程序采用VerilogHDL语言在ISE6.2环境下编写。经ModelSim5.7g仿真无误后,在FPGA Compile-rII3.7环境下编译为bin文件;再经过ISE6.2的iMPACT工具烧入FPGA的配置存储器,上电后FPGA即可正常工作。 A/D部分的仿真波形如图4所示。

 

固件在uVision2集成开发环境下采用Keil C51语言开发。固件编译后,有两种方法载入CY7C68013A:一种是从EEPROM载入,另一种是从上位机下载。本系统采用第2种方式。 Hex2c.exe将固件目标码转换为C语言 数组形式;EZ-Loader提供程序模板;Windows DDK将嵌入固件后的模板编译为系统文件;制作相应的inf文件,使计算机系统在发现数据采集系统后,自动将固件下载入CY7C68013A。

USB设备驱动程序采用Jungo公司的WinDriver软件开发。具体实现过程为:连接本系统后运行DriverWiz-ard向导,选择对应的 USB设备,生成对应的.ini文件;然后在设备诊断对话框中检测到USB接口各端点的正确设置后,选择适合的编译环境即可生成驱动程序和API函数的示例代码。

上位机软件采用Visual C++6.0语言开发,操作界面友好。由于FPGA程序并未完成对整个微流控过程的控制,所以这一任务由上位机软件来完成。上位机可以通过状态机模块对其他各个控制模块询问状态、施加命令,以及读取返回数据。

4 结 论

本系统以FPGA芯片为控制核心,使用VerilogHDL语言编制了信号调理模块、A/D模块、高压模块、温度控制模块以及USB传输模块的程序;另外还编写了基于Windows XP的驱动程序与控制软件。在选取串行控制的A/D芯片节约控制端口的同时,采用具有大量控制端口的FPGA作为系统的控制芯片,实现了同时对30个 PCR芯片的控制。该系统通过并行控制多个芯片,提高了PCR的检测效率,可应用于需大批量芯片检测的场合。本文提出的使用FPGA控制微流控芯片的方法具有集成度高的优点,大幅提高了芯片的检测效率,具有较高的实用价值。
 

发布者:小宇

继续阅读>>