基于TMS320C6711的线阵CCD采集与处理系统
摘要:一种基于DSP的CCD采集与处理系统。在该系统中DSP(TMS320C6711)进行高速、大数据量的数字信号处理、MCU(89C52)完成人机界面处理。文中给出该系统在生物医学工程中的应用:静止悬浮式激光散射法血细胞分类计数仪中光电信号的采集和处理。将该系统做适当修改,同样也可适用于其它光电信号的采集处理。
关键词:TMS320C6711 CCD 89C52 数据采集 数据处理
引言
TMS320C6711是TI公司推出的DSP芯片。其数据处理功能非常强大,javascript:window.open(this.src);" style="cursor:pointer;"/>时钟速度可大100M(或者150M),但是其I/O功能要求有限。因此,采用MCU(89C52)作为人机接口,构成双CPU(MCU和DSP)系统。
1 系统构成
本文所介绍的CCD采集系统是在32位浮点DSP(TMS320C6711)上实现的。如图1所示:单片机89C52负责接受键盘输入,并在液晶显示器上显示处理的结果信息;CCD在光点转换后的数据通过A/D转换器后在异步FIFO中缓存;DSP是系统的信息处理中心,它读取FIFO中的数据后经过处理,将结果传给89C52,由液晶显示器显示信息。
DSP(TMS320C6711)是整个硬件系统的信号处理中心。它接受CCD传来的采集信号,加以处理并将结果传给单片机。DSP还完成对Flash和SDRAM的控制。
MCU(89C52)主要充当人机界面的角色,接受外部键盘的输入,将DSP传输未来的结果用数据和图文的形式在液晶显示器上显示出来。
javascript:window.open(this.src);" style="cursor:pointer;"/>
*8KB的可编程Flash Memory;
*可以写/擦1000次以上;
*内置256×8位RAM;
*32个可编程I/O口。
图3 信号双向缓冲器隔离图
由于DSP计算能力很强,但I/O控制能力有限,因此89C52的以上性能可以保障系统控制能力,提供人机接口之便。
CCD(TCD132D)是一种新型的固体成像器件。特别适合各种精密图像传感和无接触工件尺寸的在线测量。TCD132D是具有1024个像素的二相线性CCD。
IDT7204是4K×9位的异步FIFO,读写操作会自动访问存储器中连续的存储单元。从FIFO中读出的数据和写入的顺序相同,地址的顺序在内部已经预先定义好。芯片对读写指针提供复位功能,使内部读写指针同时设置到初始位置。另外,它还可以对已经读出的数据通过将读指针重新设置到初始位置而实现数据的重新读取。该器件用9位数据宽度,第9位可以根据用户需要作控制位或者校验位。IDT7204的存取速率可达12ns。
javascript:window.open(this.src);" style="cursor:pointer;"/>
A/D转换器(AD7821)是Analog公司出品的高速8位A/D转换器件;Flash采用AMD公司4Mbit的Flash Memory AM29LV400B;SDRAM采用了4片Micron公司生产的高速SDRAM芯片MT48LC2M8A;液晶显示采用T6963C控制器点阵图形液晶显示模块。
2 系统内关键电路的设计和主要芯片的互连互控
2.1 CCD以及A/D模块
采用TCD132D线性CCD,光电转换后用三极管放大,如图2所示。三极管放大后用LF357进行滤波处理,然后再送A/D模块滤波、转换。A/D转换使用AD7821,采用READ方式读取数据。
2.2 DSP与SDRAM、FIF0的互连和信号完整性设计
由于TMS320C6711的时钟频率在100MHz以上,时钟沿时间为10ns或者以下,系统构成中除有DSP芯片本身外,还有SDRAM、Flash、FIFO等。故必须对系统进行分割,主要目的是保护高速部分,即SDRAM部分。
javascript:window.open(this.src);" style="cursor:pointer;"/>
设计中高速部分(SDRAM部分)要求信号线尽量短,尽量靠近DSP。本系统中需要使用大量存储器(4片SDRAM)。DSP与SDRAM的时钟接口速度很高,为保障信号的完整性,如图3所示,采用图4所示的时钟缓冲器产生4个相同、延迟极小并且一致的时钟,分别接到4片SDRAM上。这样不但增加了时钟的驱动能力,同时还很好地保证了信号的完整性。
为了保护高速信号部分,同时为了防止DSP外设驱动能力的不足,用74LVT162245双向缓冲器实现Flash和异步FIFO数据线的职责离。
FIFO芯片IDT7204与DSP连接中图5所示。FIFO是异步器件,所以放到CE1空间上。FIFO的读信号由XARE#、XCE1#、XA20、XA21控制。当AD7821信号转换害完成后, 由DB_INT向WE#写信号线开始写入FIFO;而当FIFO半满后,由HF#向DSP的X_INT4请求写入DSP。
2.3 DSP与MCU的互连
由于DSP的McBSP接口和MCU(89C52)的UART接口并不一致,所以不能直接把McBSP当作标准的UART来应用。McBSP和UART连接有两种方式:一种是Serial Port方式,硬件连接如图6所示;另一种是将McBSP设置成GPIO方式,其硬件连接如图7所示。
javascript:window.open(this.src);" style="cursor:pointer;"/>
3 系统在生物医学工程中的应用举例
利用静止悬浮式(非流式)激光散射法血细胞分类计数测定法对血细胞分类计数,不需要固定和染色样品,不需要导电介质,更不需要昂贵的流式装置,可以方便、快捷地对血细胞分类计数。这不但大大降低了仪器造价,满足于血液常规的检验,而且还可以针对病人的不同要求分别检验,减轻病人负担。
3.2 软件及其优化
本系统的软件分为两部分:一是以单片机为核心的系统控制程序,主要是人机接口程序;二是以DSP为核心的数据处理程序。下面就分别对这两部分进行详细的阐述。
(1)以单片机为核心的系统控制程序
单片机作为系统的控制核心负责液晶的显示、键盘的扫描及系统的启动和停止。图8是这部分的程序流程图。
javascript:window.open(this.src);" style="cursor:pointer;"/>
(2)以DSP为核心的数据处理程序
DSP子系统接受单片机传递的操作指令和参数,启动CCD工作,然后,通过QDMA方式从FIFO(数据缓冲作用)里面读取光强数据,调用NNLS算法计算血细胞的尺寸分布。最后,把结果传递给单片机。javascript:window.open(this.src);" style="cursor:pointer;"/>
图9是这部分程序的流程图。程序采用C语言与汇编语言混合编写。C语言构成程序的主框架。
程序的优化包数据预处理和采用浮点运算器TMS320C6711的各种优化方法进行数据处理。
由于测得的散射光强分布信息的数字化信号往往带有电路噪声和随机误差,影响到测量的精度。为使这些数据能更好地反映实际情况,通常要对它们进行一定的预处理,这样才能作为数据处理软件进一步计算的原始数据。我们采集50组光学数据进行平均,来减小相对误差。由于CCD光学探测器的各像元具有空间等间隔特点,故采用五点三次平滑滤波获取血液样品的径向散射光强。
4 结论
线阵CCD采集和处理系统采用DSP(TMS320C6711)和MCU(89C52)的双CPU处理系统。将DSP的数据处理速度快和MCU的I/O控制能力强的优点结合起来,外加高速AD转化器、异步FIFO,构成了功能强大、计算速度快的光电采集处理系统。该系统在工业信号采集处理、医学信号采集处理等领域都有很广的应用前景。