采用FPGA+DSP结构的多通道高速数据采集与实时图像处理系统的设计与实现方案。
1 系统硬件结构设计方案
本文设计的多通道同步高速采集及处理系统结构如图1所示。该系统由采集、处理、显示和系统控制四个模块组成。采集的多路模拟视频信号经A/D阵列转换后,输入到处理模块中进行图像处理,处理结果经D/A转换后,显示在终端监视设备上。整个过程(包括采集模块、处理模块、显示模块)都在系统控制模块协调下进行。
2 采集模块
通常的多路数据采集方案[2]是:(1)采用多片ADC器件,每路模拟输入对应1片ADC。(2)采用1片高速ADC器件,由多路开关选择后送给ADC。一般采用CPLD或FPGA控制各ADC或多路开关的方式达到高速采集的目的。但是,采用以上的方案均存在一些问题:相应外围电路庞大,接口复杂;一般都外挂数据缓冲区,降低了系统的传输速度,同时对于高精度、多通道、并行转换A/D系统,使接入FPGA的管脚数增多,这样造成FPGA等系统资源的严重浪费和成本的增加。
本系统采用了一种共享总线、同步采集、分时读取的方法[3],提高了系统采集和传输速度,达到对多通道、高分辨率并行A/D同步采集的有效控制,合理利用了FPGA系统资源,降低了硬件成本。总线共享、同步采集、分时读取的方法主要是借鉴了分时操作系统的思想,按照时间片对A/D转换结果进行轮循读取。从图1可知,在硬件设计上,多路A/D转换器共享采样时钟信号CLK、读写控制信号AD_wr、片选信号ADC_cs;A/D1、A/D3、A/D5共享一路数据总线ADCB14~27,A/D0、A/D2、A/D4共享另一路数据总线ADCB0~13;A/D0、A/D1共享输出使能信号ADC_OE0,A/D2、A/D3共享输出使能信号ADC_OE1,A/D4、A/D5共享输出使能信号ADC_
OE2。多路A/D转换器共享采样时钟信号ADC_clk、片选信号ADC_CS,保证了采样的同步问题;共享数据总线节约了FPGA管脚,合理利用了FPGA资源,通过分别使能ADC_OE信号,在A/D转换完成后数据有效的时间内,分时读取转换结果,达到了并行采集的目的;不同数据总线的二路A/D转换器共享使能信号,保证在同一时间片内并行读取二路A/D转换结果。
ADC的选择如下:
该系统要求在线检测速度达到25瓶/s,也就是每个瓶的检测时间为40ms。另外,对药用管制瓶的检测其精确度是考虑的重要因素。这对ADC的转换精度和转换时间要求较高。
本文A/D转换芯片采用TI公司的ADS8364芯片,它是专为高速同步数据采集系统设计的高速、低功耗、六通道同步采样的16位A/D转换芯片,共有64个引脚,适用于噪声比较大的环境,其最大采样率为250KS/s;每个输入端都有一个ADC保持信号,用来保证几个通道能同时进行采样和转换,可以对单极性或双极性输入电压进行A/D转换;三个保持信号(HOLDA、HOLDB、HOLDC)可以启动指定通道的转换。当三个保持信号同时被选通时,其转换结果将保存在六个寄存器中;当ADS8364芯片采用5MHz的外部时钟来控制转换时,它的取样率是250kHz,采样和转换可以在20个时钟周期内完成;对于每一个读操作,ADS8364芯片均输出十六位数据;地址/模式信号(A0、A1、A2)决定如何从ADS8364芯片中读取数据,可以选择单通道、周期或FIFO模式;在ADS8364芯片的HOLDX保持至少20ns的低电平时,转换开始。这个低电平可使各个通道的采样保持放大器同时处于保持状态从而使每个通道同时开始转换。当转换结果被存人输出寄存器后,引脚EOC的输出将保持半个时钟周期的低电平;ADS8364芯片采用+5V工作电压,并带有80dB共模抑制的全差分输入通道以及六个4Ls连续逼近的模数转换器、六个差分采样放大器。另外,在REFIN和REFOUT引脚内部还带有+2.5V参考电压以及高速并行接口。ADS8364芯片的差分输入可在-VREF~+VREF之间变化。在信号输入端采用差动运放将模拟输入信号以差分方式输入ADS8364芯片,以有效地减少共模噪声,实现较高的有效采集精度。通过同时置/RD和/CS为低电平可使数据读出到并行输出总线。
ADS8364芯片转换过程为:当ADS8364芯片的/HOLDX保持至少20ns的低电平时,转换开始。当转换结果被存入输出寄存器后,引脚/EOC的输出将保持半个时钟周期的低电平,以提示数据分析处理器进行转换结果的接收,处理器通过置/RD和/CS为低电平可使数据通过并行输出总线读出。在转换数据的接收过程中,ADS8364芯片各管脚工作的时序安排很重要。
3 FPGA逻辑控制功能的实现
FPGA是整个采集、处理和显示系统的逻辑控制核心,主要包括A/D阵列采集控制、数据存储与传输控制、图像的预处理、同步时序产生与控制、图像显示控制、EMIF总线接口逻辑。
根据以上控制要求,系统中采用Altera公司的ACEX1K系列EP1K50芯片。EP1K50芯片是一款适合复杂逻辑以及有存储、缓冲功能的FPGA芯片,最高工作频率可达250MHz。该系列芯片具有效率高而又廉价的结构,其特点是将LUT(查找表)和EAB(嵌入式阵列)相结合。基于LUT的逻辑对数据路径管理、寄存器强度、数学计算或数字信号处理的设计提供优化的性能和效率。而EBA可实现RAM、ROM、双口RAM或FIFO(先入先出存储器)功能。
3.1 A/D控制[3]
通过上面对A/D控制的分析可以知道,在采样时钟CLK为高电平的半个时钟周期内,读取转换结果是可靠和稳定的。由于片选、地址建立时间以及输出激活时间的要求,在5MHz时钟信号的半个周期内,以共享总线方式可以控制三路A/D转换器。因此,通过两路总线,就可以完成对六路并行数据的采集。图2为三路A/D转换器共享数据总线的控制时序图,采用QuartusⅡ仿真工具完成。其中,ADC_OE1、ADC_OE2、ADC_OE3为三路A/D输出使能信号,通过分时有效的方法,读取各路A/D转换结果,每个时间片长度为30ns;ADC_clk为A/D采样时钟;In_clk为外接时钟,经过PLL输出Main_clk作为系统的主时钟,时钟周期为10ns;ADC_cs为A/D片选信号,该信号建立需要一定时间,为实现多路A/D并行采样,将六路A/D片选信号连接在一起,一直有效;Reset为FPGA复位信号。 |