新闻  |   论坛  |   博客  |   在线研讨会
DSP/CPLD二级建构在机器视觉中的应用
yanqin | 2009-04-16 23:56:23    阅读:2158   发布文章

DSP/CPLD二级建构在机器视觉中的应用
(提供:浙江大学检测技术及自动化研究所 余丹 侯迪波 周泽魁, 应用领域:食品饮料) 【在线联系作者】
  摘要:本文以啤酒瓶自动检测系统为应用背景,利用DSP在运算处理能力上的卓越性和CPLD非凡的逻辑控制能力,设计一种基于DSP和CPLD的双重架构的处理系统,充分发挥二者的优势。在达到控制要求的情况下尽力精简了系统,降低了成本。同时把一整套采集,存储,识别,处理,通讯等功能集成在同一块PCI卡上,大大提高了系统的可靠性和安全性。数据传输方面采用了管道数据流方式,解决了图象处理中大量数据传输存储的难题。印刷板设计方面采用6层板结构,用镜像层巧妙分隔实现EMI辐射的抑止。同时由于采用了模块化设计,移植性高,不仅适用于啤酒瓶自动检测系统,还能适用于大多数图象处理和机器视觉场合。另外,还预留了足够的IO口,方便今后系统的扩展,升级。  关键词:DSP; CPLD; 图象识别系统; 机器视觉    The use of DSP/CPLD multiple architecture   in industrial high-speed real-time machine vision   Yu dan Hou dibo Zhou zekui  (The institution of inspection technology and automation   ZhejiangUniversity ,Hangzhou 310027,china)  Abstract: Based on the use of an empty bottle image inspection system, and taking advantage of the extraordinary operation of DSP and the prominent logistic control ability of CPLD, we devised a multiple architecture system. On the premise of meeting the actual demand, we simplified the whole system, and reduced the cost. Meanwhile, we integrated functions such as collection, storing, recognition, operation, communication in the same chip board, improving the reliability and security. We adopted the pipeline-mode in transferring data. The chip board has six layers to restrain the EMI radiation. By virtue of the modularization, the system is not only suitable for empty bottle image inspection, but also adaptive for most of image process systems. More over, it is convenient to expand and upgrade the system because of the redundant I/O ports.  Keywords: DSP; CPLD; image recognition; machine vision     一 引言  传统的机器视觉系统是一种基于PC的系统,它采用通用PC机加图像采集卡的硬件平台,由图像采集卡进行视频捕捉,采集到的图像不加任何处理的传送到PC机,在PC机上通过软件对捕捉到的图像或视频片断进行处理,从而得到图像处理结果。这种系统有其固有的优点,如开发成本小,开发周期短,可以最大限度利用业已成熟的PC硬件资源,因此在工业领域得到广泛应用。但是这种系统其自身的缺陷,如低速,非实时,数据瓶颈,非模块化,移植性差,与工业上广泛使用的PLC接口麻烦等,导致其不能适用与一些性能要求和实时性要求高的场合。这就产生了对一种更加先进的图象处理平台的需求。本文中设计的这套图象采集与处理系统就能符合这种需要,并且以工业实用为终极目标,并不单纯追求系统性能和运算能力,而是在符合现场要求的情况下,通过特殊的设计或改进,尽力简化、优化,在选材上尽量选用那些应用成熟,价格低廉的中、低端芯片,降低成本,提高可靠性。因此体现着浓厚的工业应用色彩。    二 系统整体架构  主要分为3大模块及其外围器件:视频采集模块、全局逻辑控制模块、DSP模块。如图一所示。      图1 系统硬件结构示意图   Fig 1 Framework of hardware in the system     系统设计的主要思路是:一方面要尽量发挥dsp的运算处理优势,让其专注于一些算法运算和处理;一方面要让CPLD尽量包揽逻辑控制任务,发挥全局时序操控的作用。数据传输采用管道流方式,分解大量数据的压力,避免了堵塞。同时还要兼顾所用器材、设备的价格,尽量降低成本。    概括来说,视频处理芯片TVP5145接受来自摄像头的视频模拟信号,通过内部AD转换为数字信号,为后续传输、运算做准备。CPLD控制这视频采集芯片完成采集、转换功能,控制着芯片的复位时序,并把数字信号存储到FIFO中,然后完成FIFO的读、写控制。DSP模块则接受传送而来的图象信号,经过预设图象算法,分析图象信息,提取有用信息,完成判断、报警、预处理等功能。     此外图象处理系统支持PAL、NTSC、SECAM等制式视频信号处理,从而与主流的CCD摄像机兼容。图像处理子系统达到8bit,256灰度级或10bit,1024灰度级的数字化精度,同时,能够实时采集全分辨率的PAL (25fps),NTSC (30fps)视频信号。能够通过硬件完成对图像中感兴趣部分的剪切。     下面具体阐述该系统的软硬件结构。    三 系统硬件组构    1.视频采集部分  视频采集部分以视频解码芯片为核心。我们采用TI公司的TVP5145芯片。该芯片显著特点在于片内集成了4 行自适应梳状滤波器用于减小色度交叉和亮度交叉噪声,单14.318MHz或 27MHz 晶振用于所有视频标准,片内实现制式的自动检测,支持标准字幕(WST)和扩展数据服务等功能。该芯片可广泛应用于数字电视、数字图像处理、多媒体、视频采集和安全应用诸多领域。    TVP5145可以从PAL制模拟信号分离出像素时钟,分别从PCLK和SCLK输出一倍和两倍像素时钟。两种像素时钟用于驱动YUV信号的20-/16-bit或10-/8-bit输出格式。对于PAL信号,TVP每帧采样625行,每行采样864个像素,去除行场消隐信号和行场同步信号后实际输出的视频图像的分辨率为720×576。TVP5145通过一系列的内部寄存器来设置其运行参数,这些寄存器的编址范围为00h-FFh(包含一些预留的寄存器),每个寄存器都是8bit的。TVP5145的每个寄存器都有其默认值,在芯片复位以后,各寄存器按默认值初始化。在我们的设计中,大部分寄存器按默认值工作就可以满足要求,必须要通过I2C编程设置的寄存器主要有:    1)微处理器启动寄存器07h:TVP5145硬件复位以后,向该寄存器中写入任意的8bit数据,可以启动TVP5145的内部微处理器,使TVP5145开始工作。    2)AVID起始像素的位置寄存器11h和12h,结束位置寄存器13h和14h,VBLK起始行寄存器18h即结束行寄存器19h,通过对这些寄存器的设置完成图像的剪切。    TVP5145有两种主机接口模式:PHI和I2C。PHI是异步的并行主机接口,需要较多的信号线。考虑到我们的应用目标,为了简化系统设计结构,我们采用I2C总线,只需要SDA和SCL两条信号即可,代价是较复杂的程序时序逻辑控制。时序总线是在CPLD的控制下完成的,对于TVP5145,I2C总线的数据传输率可以达到最高400kbit/S,这是I2C总线的高速模式。一般工业用途不需要这么高的传输速率。为了保证数据传输的可靠性,我们选用I2C的100kbit/s的标准模式。    TVP完成正常的启动后就会从Y[0..9]口输出亮度信号,从UV[0..9]口输出色度信号。考虑到在啤酒瓶自动检测系统中,并不需要色度信号,因此TVP5145检测到模拟信号不存在色度分量后,会旁路色度处理过程,从而UV的输出总为0,所以图像处理子系统实际以像素时钟PCLK(13.5MHz)处理8bit的亮度信号。    2.全局逻辑控制部分  这是整个系统中很重要的一块,几乎全部的全局逻辑控制与运算都来自这一部分。以前的图象卡中采用单片机和FPGA的比较多,也各有其有点。但考虑到我们的应用背景,一方面我们需要通过I2C接口传输的数据量很小,并且不需要经常修改,所以不选择传统的使用单片机与TVP5145进行I2C通讯的方式,另一方面FPGA虽然性能上卓越不少,但是其相对较高昂的价格促使我们最终还是选择了xilinx公司的CPLD XC95288XL,它既可满足我们的性能要求,又以其每片几十元的低廉价格满足了成本要求。    在该图像处理系统中,CPLD具有以下功能:    1) 频输入处理的控制:CPLD通过I2C总线,初始化视频解码芯片TVP5145的内部寄存器,并启动TVP5145的工作。下图(图二)是我们在ModelSim 5.6环境下得到的仿真结果。      图二 I2C时序总线控制仿真结果    2)系统复位控制:系统上电以后,需自动或手动复位以使各芯片工作于已知的状态,总的复位信号由MAX708s产生,经CPLD通向各个需要复位的芯片。在CPLD中通过不同的延时逻辑可以控制各个芯片的启动顺序。(利用这一特性,可以根据现场需要,合理调节各芯片的工作情况,降低能耗,从而可以提高整个系统的耐用性和寿命)    3)图像数据写入FIFO的控制:CPLD以TVP5145输出的同步信号和像素时钟为输入,根据系统需要控制图像数据写入FIFO缓冲器。因此通过VBLK和AVID(分别为场、行有效信号),CPLD可以利用其全局逻辑控制的权力,方便的通过逻辑时序控制有效图象信号的采集和无效信号的丢弃。实用中我们也是这么做的,通过一个简单的逻辑即可提取出我们感兴趣的图象块,从而大大减少后续传输、处理的数据量。    4)DSP读FIFO的控制:DSP的异步接口必须通过CPLD产生组合逻辑,来完成FIFO的读操作。    5)数据缓冲控制:部分信号可通过CPLD缓冲,这样可以利用CPLD内部的布线资源来减少印刷电路版布线的复杂性。    6)数字IO的控制:数字IO主要包括,从控制单元来的采样触发信号,发送给控制单元的处理结果信号,还有一些IO被预留以期达到系统功能的扩展。    3.Dsp中央处理部分  DSP是影响整个系统性能的主要指标之一,它直接关系到我们设计出的板卡是否能达到设计要求。经过性能和成本上的比较,我们选用TMS320C6201定点DSP。它应用已经非常成熟,并且价格低廉。可以工作在200MHz的时钟频率,全速运行时性能高达1600MIPS,完全满足了我们的现场需求。下图(图三)是DSP最小系统的示意图。    我们使用双电压同步供电模块PT6942为 DSP保证内核1.8V和I/O3.3V的稳定供电,且保证上电及掉电时内核的prior顺序。使用MAX708S完成芯片的上电复位、手动复位及电压监控。Bootmode模块在reset期间正确配置DSP的引导模式和内存分配。Flash实现了程序在板卡上的固化,方便今后对系统的软件升级。PLL电路提供了DSP不同的工作频率模式,方便我们根据实际需要进行选择。CLK电路不仅提供DSP稳定频率,还提供1/4和1/6频率输出接口,可以用此来驱动外设。FIFO数据缓冲器有效解决了视频处理芯片和DSP的同步问题,C6201与FIFO通过异步接口相连,当FIFO半满标志/HF被触发后,在CPLD的逻辑时序控制下,DSP完成数据攫取。         图三 DSP处理模块最小系统示意图    四 数据存储与传输方式  一般来说,图象处理系统的难点在于海量的数据压力。不论是存储还是传输,稍有不慎就会引起堵塞,甚至处理失败。可以说,正确协调好这一矛盾是图象处理系统的关键所在。    对于我们的系统来说,由于我们设定一幅图像为512×256=128Kbytes,而FIFO半满的空间为8Kbytes,需要16次半满完成一幅图像的传送。由于DSP从FIFO中取数据的同时,FIFO还在从TVP5145中接收数据,这样,FIFO两次半满中断的时间间隔会非常的小,DSP无法在这样小的时间间隔内完成数据的实时处理,即上次中断读入的数据还未处理完毕,而下次中断已经发生。因此把数据从FIFO中直接搬运到片内RAM中处理的方式是不可行的。如果采用存储量更大的器件,则不仅会增加成本,还会增大体积,给现场应用带来负面影响。实用中我们利用DMA控制器,采用管道流方式,或者所谓的乒乓方式。示意图如图四所示。         图四 数据的管道传输方式     不论是在SBSRAM中,还是在片内数据RAM中,都使用此方式存储图像数据。在SBSRAM中,使用其中256KB的存储空间,最多存储两幅的图像(每场128KB),当DAM1从SBSRAM读入上一幅图像时,DMA0从FIFO向SBSRAM中传输下一幅图像。在片内数据RAM中,开辟两块16KB的存储空间,当CPU读取上一个16KB数据并处理时,DAM1从SBSRAM读取另外的16KB,如此往复循环。由于DMA控制器可以完全独立于CPU进行工作,CPU在处理数据时,DMA可以在后台传输数据,所以CPU处理数据总是和DMA1传输数据并行进行,所以比起DSP直接对位于片外RAM中(SBSRAM或SDRAM)的数据进行处理的方式,效率和速度上有明显的优势。    五 系统的工作流程   系统的工作过程可以分为四个步骤,首先是接收主机的图像采集触发命令。然后在cpld的控制下采集一幅完整的图像。第三步是图像处理,在处理器中完成滤波、边缘提取、图像识别等各种检测任务。最后是输出检测结果给上位机。视觉检测的工作流程如图5所示:         图五 系统工作流程    主机通过光电感应开关等器件可以探测被测物体的位置,当被测物体处于最佳摄像位置时产生一触发信号发送到下位机,下位机接收主机指令,开始一幅图像的采集。图像处理包括图像预处理和图像识别。图像预处理,主要是滤波,作用是滤除采集过程中由于光源等的影响而产生的噪声,使图像的背景变的均匀,同时异物瑕疵等需要检测的指标要保持原有特征,滤波方法采用中值滤波。图像识别的过程,先对图像进行边缘检测和二值化,得到图像的边缘数据,然后统计各个边缘的面积和周长,根据检测阈值判断该被测物体是否合格。最后将检测结果发送到上位管理机,由上位机决定做何种操作,并控制相应执行结构。    下面是我们的实物图(仅板卡部分,且未上电时)。      图六 系统实物图(未上电的板卡外观)    六 系统流水线分析:     我们要达到的目标是检测速度每分钟600瓶的啤酒灌装线,所以在100ms内就得完成1个瓶的所有处理。现在我们来分析该系统的工作流线。C6201的主频为f=133MHz,时钟周期T=7.5ns。在程序开始寄存器初始化时,对包含FIFO的CE1空间的读时序设置为:读建立时间tsetup=2T,读选通时间tstrobe=5T,读保持时间thold=lT,则FIFO的读周期Tr=2T+5T+lT=8T=8×7.5ns=60ns,即从FIFO读取一个字节理论上需要60ns。那么,从FIFO读128K字节(一幅图像)理论上需要的时间Tr=128×1024×60ns=7.9ms。SBSRAM的工作频率为f=133MHz,Tsbsram=7.5ns,SBSRAM可以每个周期写一个字节,写128K字节理论上所用时间Tw=128×1024×7.5ns=0.98ms。DMA1从SBSRAM向片内数据RAM传送128K的数据也需要0.98ms。瓶底检测时,在片内RAM中CPU对128KB数据进行中值滤波、sobel边缘提取、统计判决需要50ms。    综和来看,检测软件处理128KB数据所需的时间为:  7.9ms+0.98ms+0.98ms+50ms=60ms<100ms,满足流水线不堵塞的要求。    七 结束语:    以最小的成本实现既定的要求是工业控制系统设计的上乘境界。本文立足于工业现场应用,以实用为最终目的,设计了一套成本低廉,结构相对简单,并且满足生产要求的高速实时图象处理系统。今年来,虽然国外同类产品已经成熟,并且已广泛应用于实践,如北京燕京啤酒集团曾经化1000多万元购买了9套德国KRONES的啤酒瓶自动验瓶机,单价每套达100多万元!可见具有独立自主知识产权,并且成本低廉的国产同类产品,应该是有广泛市场前景的。      参考文献:  【1】 李武森, 迟泽英, 陈文建. 高速DSP图像处理系统的模拟视频输入接口设计[J]. 南京理工大学学报. 2003, 27(1)  【2】任 俊,涂晓昱,傅一平,袁 丁,李志能 利用DSP的实时图像识别系统的设计与应用[J]. 光电工程,2004,2  【3】苏光大.微机图像处理系统[M].北京:清华大学出版社,2000.  【4】边计年,薛宏熙 译 用VHDL设计电子线路[M]. 北京:清华大学出版社  【5】Rafael C. Gonzalez, Richard E. Woods, Digital Image Processing[M].电子工业出版社2003.   作者简介:余丹(1981-),男,汉族,四川泸州人,硕士生。从事图象处理,机器视觉,自动检测、控制方面的研究与应用。 Email:yudantaxi@163.com   作者单位:浙江大学检测技术及自动化研究所  地址:杭州浙大路38号教十3013 310027 Email:yudantaxi@163.com



*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客