1、基于DSP和CPLD的智能相机系统设计与研究毕业设计论文基于DSP和CPLD的智能相机系统设计与研究1 绪论1.1 背景智能相机是指通过传感器(即图像摄取装置,分CMOS和CCD两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。智能相机的特点是能够提高生产制造的柔性和自动化程度。在一些不适合于人工作业的危险工作环境或人类视觉难以满足要求的场合,如钢厂对钢板或钢带的检验,造纸厂对纸张的均匀度,亮度等质量标准进行检验,就常用智能相机来替代人类视觉;同时
2、在大批量工业生产过程中,用人类视觉检查产品质量效率低且精度不高,用智能相机可以大大提高生产效率和生产的自动化程度。而且智能相机易于实现信息集成,通过对生产线上产品的检验结果的分析可以实时对生产线的运行情况进行监控,并将结果反馈给控制系统,以随时对生产线进行调整。因此,智能相机是实现计算机集成制造的基础技术3。正是由于智能相机系统可以快速获取大量信息,而且易于自动处理,也易于同设计信息以及加工控制信息集成,因此,在现代自动化生产过程中,人们将智能相机广泛地用于工况监视、成品检验和质量控制等领域。在我国,这种应用也在逐渐被认知,带来最直接的反应就是国内对于智能相机的需求将越来越多。但由于国内对智能
3、相机研究刚刚起步,与国外的应用情况相比有一定差距。从组成结构来分类,典型的机器视觉系统可分为两大类:PC式或板卡式机器视觉系统(PCBased Vision System),以及嵌入式机器视觉系统,亦称“智能相机”(Smart Camera)或“视觉传感器”(Vision Sensor)。PC式视觉系统是一种基于个人计算机(PC)的视觉系统,一般由光源、光学镜头、CCD或CMOS相机、图像采集卡、图像处理软件以及一台PC机构成。基于PC的机器视觉应用系统尺寸较大、结构复杂,开发周期较长,但可达到理想的精度及速度,能实现较为复杂的系统功能。另一类是嵌入式视觉系统,嵌入式视觉系统具有易学、易用、易
4、维护、易安装等特点,可在短期内构建出可靠而有效的机器视觉系统,从而极大的提高了应用系统的开发速度5。从产品本身看,机器视觉会越来越趋于依靠PC技术,并且与数据采集等其他控制和测量的集成会更紧密。且基于嵌入式的产品将逐渐取代板卡式产品,这是一个不断增长的趋势。主要原因是随着计算机技术和微电子技术的迅速发展,嵌入式系统应用领域越来越广泛,尤其是其具备低功耗技术的特点得到人们的重视1。随着专用的数字处理芯片(DSP)和CPLD/FPGA的性能的不断提高,体积的不断减小,能耗的不断降低,使得智能相机的性能在不断增加的同时体积在不断的减小,使其应用的范围越来越广。另外,嵌入式操作系统绝大部分是以C语言为
5、基础的,因此使用C高级语言进行嵌入式系统开发是一项带有基础性的工作,使用高级语言的优点是可以提高工作效率,缩短开发周期,更主要的是开发出的产品可靠性高、可维护性好、便于不断完善和升级换代等。智能相机不但能够获取图像,同时还能够描述和分析它们所“看”到的图像,因此被广泛应用于检测,监视和运动分析等领域。随着对实时图像处理需求的不断增长,智能相机被集成到各种应用中以提供低费用,低能耗的系统,这些系统不但能够完成图像的处理和压缩,还能够运行大量的算法以便从视频流中提取有用的信息。随着技术的发展,智能相机不但拥有自己的实时的操作系统,也开始向多内核,分布式的方向发展。总的来说,智能相机是由图像传感器,
6、高速的图像处理器件和通讯器件所组成的一个嵌入式的设备。图像传感器一般采用CCD或COMS器件,图像处理器件一般选用专用的数字信号处理器(DSP),通讯器件随工作环境的不同可采用不同的通讯手段,近距离的可以采用串行口或并行口,远距离的可以通过以太网来交换数据。1.2智能相机与一般数字相机的比较智能相机与一般的数字相机有着很大的不同:虽然智能相机和数字相机的输入都是CCD或CMOS所产生的数字图像信号,但是智能相机输出的是对数字图像理解和分析的结果,并不是一幅数字图像;而数字相机输出的是一幅数字图像11。智能相机中图像处理算法例如预处理、边缘检测的目的是为了后续处理的方便,为特征提取等算法作准备;
7、而数字相机的图像处理算法是为了提高输出图像的清晰度。在算法实现上智能相机主要准则是提高“机器”对图像“理解”的能力,而数字相机准则是满足人类视觉系统(HVS)对图像的质量评价。智能相机的目的是满足工业生产控制、质量控制等需要,是为工业生产服务的;而数字相机为了满足人们对图像获取、保存等需求,是为了满足人们日常生活的需要7。1.3智能相机系统构成及工作原理智能相机是利用光电成像技术形成的一种能从图像信号中实时地自动识别目标、提取目标的特征进而根据处理判别结果来控制现场设备动作的嵌入式机器视觉系统。一般智能相机系统由六部分组成,光学系统、图像摄取装置、图像处理模块、通信控制模块、显示模块和实时记录
8、模块构成,组成框图如图1-1所示13。图1-1智能相机组成框图智能相机的工作过程如下:光学系统为图像摄取装置(即图像传感器,分CMOS和CCD两种)提供清晰的图像,图像传感器把光学图像转变为全数字信号(即数字图像);图像处理模块对数字图像进行处理,根据像素分布和亮度、颜色等信息来抽取目标的特征并根据特征对处理的目标进行分类;通信控制模块根据处理结果给出相应的控制信号来控制现场设备的动作,也可以接受外部控制信息;显示模块用来在调试时对处理结果进行评价,一般调试完毕就很少使用;记录设备可以记录工作信息,以提供一段时间内的统计信息2。1.4智能相机实现的技术基础所谓数字图像处理是指通过处理数字图像来
9、识别图像中指定的目标,因此它必须完成下述工作:搜索图像中目标存在的区域;检测、识别并分割图像中的目标;提取目标特征;对目标进行分类。将上述各点综合起来可表述为:数字化的智能相机就是要实时地搜索、识别目标图像,确定其特征,并根据不同特征将不同的目标识别开来15。智能相机的实现涉及多种技术知识的融合,包括图像处理、模式识别、信号分析、神经网络等多领域的知识,特别是复杂背景下对目标的检测、识别技术是一个对实时性和识别精度都有很高要求的技术。在过去的几十年里,智能相机一直是机器视觉中一个非常活跃的研究领域,采用数字信号进行处理的先进性得到一致认同。1.5智能相机的数学模型f(x,y,t,)图1.2智能
10、相机的数学模型智能相机获得的图像信息通常为空域二维的图像f(x,y,t,),其中x,y分别为空域二维的坐标,t为获取图像对应的时刻,是系统工作的光谱的波长。如果采用一些特殊的方法智能相机也可以在紫外或红外波段工作,本文在后续的讨论中把省略,其基本任务是在可见光条件下对目标进行识别处理6。1.6本文研究的主要内容嵌入式数字化的智能相机系统是本文研究的主要内容。本文针对数字化的智能相机系统的硬件结构和软件框架,进行了深入的分析。在此基础上,设计并实现了嵌入式智能相机系统的硬件平台,并利用此平台进行产品缺陷检测的算法实现。2 智能相机系统概述2.1智能相机系统构成框图智能相机的硬件组成框图如图2.1
11、所示:图 2.1:系统硬件构成CMOS图像传感器或CCD+解码器TVP5150与数字信号处理器DM642的视频端口VPort构成系统的图像采集部分,图像采集模块与系统主板采用柔性电缆连接,在主板稳定后可通过单独设计图像采集模块来开发不同性能的产品。利用DM642强大的数据处理能力来完成各种算法处理、网络协议栈等功能,其中以太网媒体访问控制器EMAC和网络收发器LXT971A、变压器XFMR以及以太网接口RJ-45构成系统的网络传输部分3。FLASH存储器用于存储系统的BootLoader代码、主程序代码、相机的配置信息、IP地址、MAC地址以及工程信息等相关参数。SDRAM作为程序、数据存储器
12、,为海量图像数据的处理提供足够的内存空间。该系统的主要特点是:1)图像采集模块与系统主板分离设计,可以在不改变主板的情况下通过采用不同图像传感器来设计图像采集模块,推出满足不同应用需求的相机。2)CMOS图像传感器或TVP5150输出的图像数据可与DM642的VP端口直接链接,不需要单独设计接口时序。3)DM642的VP口有5120字节的FIFO,可以缓存采集到的图像数据,利用DM642的增强型DMA控制器(EDMA),可以在几乎不占用CPU的情况下将采集到的图像数据快速搬移到SDRAM中供算法处理。4)DM642集成了EMAC,TI还提供了高效率的TCP/IP协议栈NDK,外接以太网就可实现
13、网络传输,通过网络实现对相机的运行控制。2.2数字信号处理器DM642介绍TMS320DM642是TI公司在2003推出的一款专门针对多媒体处理应用的高速DSP芯片。对于大型图像处理软件开发而言,除了高速的图像处理能力,还要求能在众多的任务之间进行合理的调度,否则就可能影响系统整体上的性能DM642可以加载TI自带的嵌入式操作系统DSP/BIOS,方便地实现任务调度、内存管理、中断管理等功能,从而大大提高系统的总体性能。2.2.1 DM642的特点及内部结构DM642基于C64x内核结构,最高主频达到了600MHz(指令周期1.67ns)在体系结构上采用了VLIW(Very Long Inst
14、ruction Word)结构,内核中有8个独立的功能单元,64个32-bit通用寄存器,程序总线宽度为256bit,可以每个指令周期执行8条32位指令,最大峰值速度为4800MIPS,这些指令在2个数据通路(A和B)中的功能单元内执行,其中的指令打包技术,减小了代码容量;同时DM642还集成了丰富的片上外设和接口4。DM642高速的处理能力以及出色的对外接口能力,使得它在雷达声纳、医用仪器和图像处理等领域具有不可替代的优势。2.2.2 DM642的主要特点及性能: C64x内核,548脚BGA封装,高度集成化; 内核工作电压1.4V,I/O工作电压3.3V; 外部50MHz晶振输入经过倍频后
15、内部工作时钟在600MHz,运算能力为4800MIPS,外部总线时钟为100MHz; 支持IEEE-1149.1(JTAG)边界扫描接口; 两级Cache结构。一级程序高速缓存L1P及一级数据高速缓存L1D,各自为16K Bytes;二级Cache为256K Bytes,缓存的分段和大小分配有很多种配置,可以将二级缓存全部作为外部内存的映射,其他配置方式既有直接映射,又有4路集合相关法的方式,一般用作视频数据缓存; 增强型DMA控制器(EDMA)。 I2C总线主/从模式接口,可以用该总线实现对视频解码器和CMOS图像传感器的参数设置。2.2.3 DM642视频口DM642有3个可配置的视频口(
16、Video Port0、Video Port 1、Video Port2),其中视频口0和1也可设置为MCASP或SPDIF接口,视频口可以与CMOS图像传感器或视频编解码器无缝链接。每个端口都支持多种分辨率和多种视频模式(如8/10/16/20 bit RAW模式、8/10 bit ITU-R BT.656、8/10 Bit Y/C输入、TSI模式),既能工作于视频捕捉,又能工作于视频输出模式,但同一Video Port不能同时配置为采集与显示模式。捕捉模式时,每个视频口可采集2路8/10bit视频,显示模式,每个视频口可输出一路8/10/16/20bit视频流。每个视频口有5120 Byt
17、es的FIFO,用于缓存采集得到的图像数据。利用DM642的EDMA,可以实现图像数据的高速搬移13。显示模式下,只支持一路输出(8 Bit RAW模式可支持2路同步输出)。在本系统中采用DM642的Video Port0来采集图像数据。2.2.4 DM642 EDMADM642的EDMA提供超过2Gbit/s的外部带宽,支持64路独立同步事件的触发传输,支持EDMA传输参数连接和传输通道的连接。DM642的64个EDMA通道,最高时钟达1/2 CPU CLK。EDMA的状态和控制寄存器映射在存储区,支持DMA的传送优先级控制,支持中断报告,支持外部设备DMA传输,支持对8 Bit、16 Bi
18、t和32 Bit数据的1维或2维传输,可以根据需要设置为读/写同步或帧/块同步。2.2.5 DM642 Cache结构为了让CPU能够高速访问存储器中的数据,需要解决CPU与存储器之间的带宽问题,因此存储器的结构设计很重要,而存储器体系结构中最重要的问题就是对存储器容量、速度以及成本要求之间的矛盾。片上存储器速度快,容量小,但是成本高;片外存储器容量大,成本低,但是访问速度慢。因此,产生了多级存储器体系结构。这一结构就是把存储器分为若干级别,寄存器离处理器最近,速度最快,容量最小;高速缓存(Cache)速度次之,容量较大;主存(Memory)离CPU最远,速度最慢,但容量可以很大13。2.2.
19、6 DM642 I2C模块I2C总线(Inter IC BUS)是Philips公司开发的一种用于芯片间通讯的串行传输总线。它以两根连线(串行时钟线、串行数据线)实现了全双工同步数据传送可以极方便地构成多机系统和外围器件扩展系统。I2C总线采用了器件地址的硬件设置方法,通过软件寻址完全避免了器件的片选线寻址方法,从而使硬件系统具有简单灵活的扩展方法。根据I2C总线规范,总线传输中的所有状态都生成相对应的状态代码,系统中的主机能够按照这些状态码自动地进行总线管理,用户只要在程序中装入标准处理模块,根据数据操作要求完成对I2C总线的初始化启动I2C总线就能自动完成预先设定的数据传送操作7。DM64
20、2集成了I2C模块,可以通过配置寄存器使其工作在7bit地址(不包括读写控制位)标准I2C模式,10bit地址高速模式和无格式数据模式,而且可以自己控制I2C总线时钟频率。在本系统中就充分利用了DM642片上集成的I2C模块,来实现CMOS图像传感器或者TVP5150解码芯片的参数控制,省去了用GPIO模拟I2C的工作,提高了开发的效率。2.2.7通用I/O端口GPIODM642提供了16个通用I/O端口支持,其中部分GPIO管脚与芯片的其他功能模块复用。如果在GPEN寄存器将某个GPIO端口使能,用户可以在GPDIR寄存器中选择I/O方向,当配置成输出,用户能控制驱动输出状态;当配置成输入,
21、用户可以读取到输入状态。在GPVAL寄存器中控制或读取管脚上的电平。GPIO内部还集成了一个边沿检测逻辑,可以在GPDH和GPDL寄存器中捕获输入管脚上电平的变换情况。此外,GPIO外设能够在直通模式和逻辑模式两种中断/事件生成模式下产生CPU中断及EDMA事件7。2.2.8其他外设接口DM642除了上述片上外设外,还提供了主机接口HPI、32 bit PCI总线接口和以太网MAC接口,这些接口复用相同的管脚。32-bit的HPI提供和多种工业标准的主处理器或PCI桥芯片相连。HPI能够运行在32-bit或16-bit模式下。此外HPI能作为从端口,使得主机设备能够通过它访问DSP。通过HPI
22、主机设备能够访问DSP的整个内存空间,为用户的程序调试与优化提供了监控方法。32 bit的PCI和HPI端口复用管脚,PCI总线频率66MHz。2.3 CCS IDE集成开发环境本系统在开发时采用了TI的CCS集成开发环境,进行嵌入式软件开发,版本是CCS 2.20,为了支持DM642开发,还须安装2.20.18软件升级包,TI还提供了TCP/IP协议栈NDK,为网络功能开发提供了方便12。构建以DSP为核心的系统包括硬件系统和软件系统,随着DSP应用技术的深入发展,系统变得非常庞大复杂,迫切需要一个高效而且稳定的开发环境来方便用户的开发,从而降低用户开发的难度,提高开发调试的效率。CCS(C
23、ode Composer Studio)是TI开发的一个可视化的DSP集成开发环境,它是目前最为广泛的DSP开发软件之一。目前,所有的TI DSP都可以使用该软件工具来进行开发,在CCS环境中,不仅集成了常规的开发工具,如源代码编辑器、代码生成工具(编译器、链接器)及调试环境,还提供了DSP/BIOS开发工具。CCS已经成为TI DSP开发过程中非常重要的工具。2.4 CPLD技术虽然DM642提供了丰富的接口信号,但在DM642IPP系统中由于扩展外设较多,不能满足所有外设的逻辑。了解了DM642和外设之间的粘和逻辑关系,本系统中采用一片CPLD来协调DM642和外设的组合逻辑和时序逻辑冲突
24、。CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)是在可编程逻辑器件PLD的基础上发展起来的。典型的PLD一个“与”门和一个“或门阵列组成积和的形式完成大量的组合逻辑功能CPLD器件可以实现速度特性较好的逻辑功能。但由于结构简单导致其只能实现规模较小的电路。20世纪80年代中期,Altera和Xilinx分别推出了类似于PAL结构的扩展型CPLD和与标准fJ阵列类似的FPGA,它们具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点,因此被广泛应用于产品的原型设计和复杂电路系统中6。CPLD可分为:宏单元(Marocell),可编程连线(P
25、脚和I/控制块)。其中,宏单元是PLD的基本结构,由它来实现基本的逻辑功能。可编程连线负责信号传递,连接所有的宏单元。l/O控制块负责输入/输出的电气特性控制,可以设定集电极开路输出、摆率控制、三态输出等。INPUT/GCLKl,INPUT/GCLRn,INPUT/OEl,INPUT/OE2是全局时钟,清零和输出使能信号,通过专用连线与PLD中每个宏单元相连,信号到每个宏单元的延时相同且延时最短。2.3嵌入式实时操作系统DSP/BIOS由于需要完成图像处理、网络等多个任务之间的合理调度,本系统在开发嵌入式软件时,利用了CCS提供的DSP/BIOS嵌入式实时操作系统,来提高系统的工作效率。DSP
26、/BIOS嵌入式操作系统是一个可抢占式操作系统的内核,本身只占用极少的CPU资源。它提供底层的应用函数接口,可用于支持实时分析、任务管理、调度软件中断、周期函数和idle函数(后台运行函数)以及外部硬件中断与各种外设的管理。在DSP的程序开发过程中,DSP/BIOS工具可以帮助应用程序设计者更加容易的控制DSP的硬件资源,更加灵活地协调各个软件模块的执行,从而大大加快软件的开发和调试进度。使用DSP/BIOS开发DSP软件有两个重要特点。第一,所有与硬件有关的操作都必须借助DSP/BIOS本身提供的函数完成,开发者应避免直接控制硬件资源,如定时器、DMA控制器、串口、中断等。开发人员可以通过C
27、CS提供的图形化工具在DSP/BIOS的配置文件中完成这些配置,也可以在代码中直接调用API(应用编程接口)完成动态设置。第二,带有DSP/BIOS功能的程序在运行时与前面的程序有所不同。在未使用DSP/BIOS开发工具的工程中,用户自己的程序完全控制DSP,软件按顺序依次执行,而在使用DSP/BIOS后,由DSP/BIOS程序控制DSP,用户的应用程序建立在DSP/BIOS的基础之上。应用程序也不再是简单的按编写次序顺序执行,而是在DSP/BIOS的调度下按任务、中断的优先级排队等待执行9。使用DSP/BIOS嵌入式操作系统开发的应用程序主要是通过调用一系列的DSP/BIOS实时库中的API
28、函数来实现的。这些API函数是为在硬件目标的嵌入式程序中工作,包括在实时、I/O模块、软件中断管理、时钟管理等情况下捕捉信息所进行的操作。多任务程序在一个单独的处理器上运行是通过允许高优先级的任务抢占低优先级的任务来实现的,并且允许任务之间的各种相互作用,包括暂停、通信及同步。DSP/BIOS内核支持具有不同优先级的多种类型的任务。每种任务类型具有不同的执行及抢先特点。3 智能相机的硬件电路设计与实现3.1系统硬件组成概述系统硬件电路的设计主要指根据各个模块的功能选定主芯片及其外围电路。系统硬件电路组成框图如图2-1所示,DM642系统包括以下模块:TMS320DM642处理单元、电源模块、扩
29、展存储器模块、视频输入/输出模块、CPLD模块、调试模块、网络模块以及其他功能模块。3.2 DM642处理器单元TMS320DM642是TI公司C6000系列的于2003年初推出的一款32-Bit定点处理器芯片,其核心是C6000系列中的C64x内核,主频可以达到600MHz,最高指令执行速度4800MIPS,采用VLIW架构设计,可以单周期并行执行8条32位指令5。3.2.1 VLIW(very long instruction word):VLIW体系结构是指由一个超长的指令字来驱动内部多个功能单元。每个指令字包含多个字段(指令),字段之间相互独立,各自控制一个功能单元,因此可以单周期发射
30、多条指令,实现多条指令并行执行。3.2.2 大端(Big Endian)和小端(Little Endian):字长大于8位(16位、32位、或者64位)时,如TMS320DM642的字长是32位,即存储数据的操作是按字对齐的,在支持字节寻址的微处理器中,通常有两种数据排列方式:Little Endian排序:多字节数据中,字节从右向左排,高位地址对应数据的MSB;Big Endian排序:多字节数据中,字节从左向右排,高位地址对应数据的LSB。如表3.1从内存地址0x0000开始的数据:表3.1 所需存储的数据和地址地址数据0x00000x120x00010x340x00020xab0x000
31、30xcd如果读取一个地址为0x0000的四个字节变量,若字节序为big-endian,则读出结果为0x1234abcd:若字节序位little-endian,则读出结果为0xcdab3412将0x1234abcd写入以Ox0000开始的内存中,对应big-endian和little-endian的结果如表3.2所示:表3.2 不同方式下的存储状态地址Big-endianLittle-endian0x00000x120xcd0x00010x340xab0x00020xab0x340x00030xcd0x123.3电源电路模块3.3.1 系统所需电源种类本系统中,外部输入电源为5V系统内部电源分
32、为以下5类:(1)TMS320DM642 核心电压CVdd:+14V800mA I/0电压OVdd:+33v160mA 上电次序:CVdd上电后OVdd上电(2)TVP5150 数字接口电源:+3.3V 视频数字,模拟:+1.8V(3) SAA7105、CPLD、SDRAM和FLASH 数字/模拟:+3.3V(4) 其余器件 +3.3V3.3.2 电源电路类型直流转直流的电源可分为4类:(1)线性稳压器(LDO):线性稳压器在工业控制电路中应用广泛,外部只需加一电容滤波,具有简单且成本低的优点,但效率较低,电源芯片消耗功率较大。传统的线性稳压器如78xx系列的芯片要求输入电压要高于输出电压2V3V以上,但某些情况下,如5V转3.3V,输入与输出的压差为1.7v,不能满足条
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1