DSP图像采集系统设计 精品.doc_第1页
DSP图像采集系统设计 精品.doc_第2页
DSP图像采集系统设计 精品.doc_第3页
DSP图像采集系统设计 精品.doc_第4页
DSP图像采集系统设计 精品.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于DSP图像采集系统设计1. 绪论1.1 选题背景人类获取外界信息的手段有视觉、听觉、触觉、嗅觉、味觉等多种形式,但绝大部分(约80%)是来自视觉所接收的图像信息。利用计算机或微处理器对图像信息进行处理,以满足人的视觉心理和实际应用要求的技术称为数字图像处理技术。随着信息高速公路、数字地球等概念的提出以及Internet的广泛应用,数字图像处理科学已经成为一门与国计民生紧密联系的应用科学,它已为人类带来了巨大的经济和社会效益。通常,图像采集可以分成两类:一类是静态图像采集,也就是拍摄照片,以得到某个时刻的图像为目的;另一类是动态图像采集,也就是拍摄视频,以获得某个时间段的连续图像为目的。静态图像采集可以通过普通的相机拍摄,而后通过扫描把图像数据转化成数字信息存储,而这些年数码相机的快速发展,使得数码相机在快速的普及,数码相机直接把拍摄的图片以数字方式存储在相机的存储卡中,用数码相机拍摄照片后,可以把存储卡里的照片直接拷贝、传输到电脑上,做备份和后期处理。使用数码相机得到图像数据,然后传输到电脑上处理,这个过程图像拍摄和图像处理分析是分离的,使得如果系统需要对图像的分析结果做实时快速响应,变得不可能。动态图像采集实现方式较多,可以使用现有的摄像机,把摄像的图像存储在磁带上,后期通过磁带采集设备把存储在磁带上的模拟图像数据转化成数字图像数据,做后期处理分析。现在也有可以把摄像图像,以数字方式直接存储在摄像机上的硬盘,或者实时刻录到摄像机上DVD盘上,然后直接把数字图像导出到电脑上处理。这两种方式的图像处理分析是非实时的。要想实现实时处理,需要得到实时图像数据,有两种常见方式:通过直接连接到电脑USB口/1393口的电脑眼;摄像头+图像采集卡。在第一种方式中的电脑眼以CMOS图像传感器获得图像,目前已经能做到分辨率640480每秒30帧的采集速度,可以在电脑上直接存储,处理,分析图像。但这种电脑眼通常可以调节的焦距不是很大,而且由于USB电缆长度的限制,仅仅能把电脑眼布置在电脑附近。如今,在视频监控,人脸识别、机器人的视觉系统等领域均需要图像采集部分,而市面上大部分适用于PC系统的图像采集卡,多半基于PCI插槽或者USB接口方式。当图像的处理平台不再是PC,而变成了DSP,32BitMCU或者专用图像处理芯片,这些系统的多半不再带有PCI USB接口,故基于这些接口的图像采集卡不再适用于这些非PC平台系统。事实上,这些由DSP或者32位MCU或者专用图像处理芯片构成的系统便是嵌入式系统。带有一定的硬件和一些软件代码,来实现特定功能的系统-这就是嵌入式系统的基本内涵。图像采集是指将模拟世界的真实景象转化成能被计算机系统处理,进行运算、存储与分析等操作的数字化“图像”的过程。目前,图像采集技术发展迅速,常见的系统实现方式主要有两种。一种是采用PC机加专业视频采集压缩卡的方法,利用CPU的处理能力和操作系统的结构,以纯软件的方法对采集的视频信号进行处理和压缩。但是这种的系统可移动性差,同时采集与处理算法也占用了很多的计算机系统资源,价格比较昂贵。市场上专用的视频压缩芯片只能实现一种压缩算法,灵活性和扩展性较差。另外一种实现方式为采用DSP作为主CPU对图像进行处理,构成脱机系统。这样的系统具有设备体积小,应用灵活简便的特点,受到广泛关注。目前DSP技术突飞猛进,其本身采用的改进型哈佛结构和具有专用指令集等特点特别适合于运算量巨大的数字信号处理领域。从20世纪60年代数字信号处理理论的崛起到80年代数字信号处理器的产生,数字信号处理技术的发展迅猛异常。目前,我国DSP产品主要来自国外,与国外DSP应用开发的情况相比,我国的差距较大,但随着近年国内一些专业DSP用户的推动下,我国DSP的应用日渐普及。随着大规模集成电路技术的迅速发展和目前各种设备小型化、智能化的普及,对独立于PC的实时图像处理系统的需求不断增加,使得以上两种实现方式相比而言,应用DSP实现的图像采集系统是目前非常被看好的实现方式。一方面系统体积小巧,携带方便,价格也相对便宜,易于推广;另外一方面,系统处理速度快,可现场编程,通用性能较好,而且功能易扩展。这是一个可以解决图像实时处理的有效手段。1.2 设计方法和主要研究内容本设计中硬件部分设计采用模块化的设计方法,即把整体设计分成四个模块:电源模块、图像读入模块、DSP核心板电路模块及DSP与PC机串行通信电路模块。并对相应的硬件编写程序以实现设计所要求的功能。本设计的主要研究内容包括如下几个方面:研究基于DSP的图像采集方案;设计本使用的硬件电路,包括电源模块、硬件读入模块、DSP核心板电路模块及DSP与PC机串行通信电路模块;编写软件实现硬件程序说明。内容的具体安排如下:的第二章总体介绍本设计的结构,主要元器件介绍。第三章详细介绍本设计的硬件电路设计。包括相关元器件的选择,电路的设计。第四章编写程序件以实现硬件部分的说明,包括系统初始化、图像传感器OV7660初始化及中断服务程序。最后是对本设计所作的工作进行总结以及对指导老师的感谢。2. 总体设计随着现代电子技术的快速发展,数字图像采集技术得到了越来越广泛的应用。例如号码图像的采集、人脸图像的采集等。对于便携式设备,要求系统体积小,可脱机实时操作。一般的图像采集系统采用PC机作为核心处理单元,系统可移动性差;应用CCD图像传感器和视频解码芯片实现的采集系统,设计比较电路复杂;由于DSP芯片具有体积小、处理速度快、使用方便灵活等特点,已被广泛应用于对处理速度和实时性要求较高的场合。这就使得DSP及其应用程序在科技、国防、国民经济、社会和个人生活中占有特殊地位。因此,开发应用DSP及其相应软件是当今科学和社会发展所需1。DSP是对信号和图像实现实时处理的一类高性能的CPU。所谓“实时(Real-Time)实现”,是指一个实际的系统能在人们听觉、视觉或按任务要求所允许的时间范围内实现对输入信号的处理并将其输出。对DSP应用提供实时操作,是DSP的性能和功能日益增加的必然结果,DSP正在从高速数字引擎转变为具有主流处理器特性的芯片。因此,需要设计人员集中精力解决应用问题,而不是重复实施系统级功能。数字图像采集技术是当今半导体电子行业中发展比较成熟的技术之一,采集模块的核心设计是图像传感器的选择,目前广泛使用的图像传感器器件有两种:电荷藕合器件图像传感器(Charge Coupled Device,CCD)和互补性氧化金属半导体传感器(plementary Metal-Oxide Semiconduc -tor,CMOS)。CMOS在数字科技中是一种可记录光线变化的半导体,它主要是硅和锗这两种元素所组成,使其在CMOS上共存着N型和P型半导体,这两个互补效应所产生的半导体电流即可被处理芯片记录和解读成图像。CMOS传感器的优点之一是电源消耗量低,CMOS图像传感器将每一像素的电荷转换成电压,读取前便将其放大,利用3.3V的电源即可驱动。具有高度系统整合的条件是它的另外一个优势。理论上,所有图像传感器所需的功能,例如垂直位移、水平位移暂存器、时序控制等,都可集成在一颗晶片上,将模数转化电路与信号处理器整合在一起,使体积大幅的缩小。本设计实现实时图像采集功能,及时完成与计算机的交互通信。本设计由四个模块组成,即电源模块和图像读入模块、DSP核心处理模块、DSP与PC机串行通信电路模块。电源模块为系统提供3.3V、5V及1.5V电压。图像读入模块用于采集图像数据然后将其转化为便于DSP进行处理的串行数据,本设计选择使用的是OmniVision公司生产的OV7660FSG CMOS摄像模组的核心芯片是OV7660 S图像传感器。OV7660芯片的主要功能模块包括:图像传感器阵列(Image Sensor Array)、时钟发生器(Video Timing Generator)、模拟信号处理器(Analog Signal Processor)、A/D转化器(A/D)、数字信号处理器(Digital Signal Processor, DSP)、输出格式控制(Formatter)、数字射频摄像口(Video Port)、可选的图像处理模块和SCCB总线接口。而且OV7660图像传感器和控制电路都集成在一个芯片上,功耗低,让开发者设计硬件简单,使用方便灵活。DSP核心处理模块选择TI公司的TMS320C5410A DSP芯片,属于TMS320C54x系列,是为实现低功耗、高性能而专门设计的定点DSP芯片,其主要特点包括:(1)运算速度快。运算速度为处理速度在80MIPS400MIPS。(2)优化的CPU结构。内部有1个40位的算术逻辑单元,2个40位的累加器,2个40位加法器,1个1717的乘法器和1个40位的桶形移位器。有4条内部总线和2个地址产生器。此外,内部还集成了维特比加速器,用于提高维特比译码器的速度。先进的DSP结构可高效地实现无线系统中的各种功能。(3)低功耗方式。TMS320C54x DSP核可以在3.3V,2.5V,1.8V甚至1.2V的低电压下工作,三个低功耗方式(IDLE1、IDLE2和IDLE3)可以节省DSP的功耗,TMS320C54x特别适合于无线移动设备。(4)智能外设。除了标准的串行口和时分复用(TDM)串行口外,还提供了自动缓冲串行口BSP(Buffered Serial Port)、多通道缓冲串口McBSP(Multi-channel BSP)和与外部处理器通信的HPI(Host Port Interface)接口。BSP可提供数据缓冲的读写能力,从而可以降低处理器的额外开销,指令周期为20ns是,BSP的最大数据吞吐量为50Mb/s,即使在IDLE方式下,BSP也可以全速工作。McBSP可与128个通道进行收发通信。HPI可以与外部标准的微处理器直接接口。DSP与PC机串行通信电路模块是DSP通信功能的扩展。使用RS232传输协议,通过UART提供的接口编程,实现TMS320VC5410A与PC机的高速串行通信。如图2.1所示,为本设计的结构框图。图2.1 图像采集系统硬件设计结构框图3. 硬件设计说明3.1 电源模块设计由于本设计中各个器件所需电源不同,故需提供不同的电源为其供电。图像采集器件需要2.5V和3.3V的电源为其供电;并/串转换器、双D触发器需要3.3V电源为其供电; DSP芯片则需要1.5V和3.3V两个电源为其供电。为保证器件能够正常而稳定的工作,这里选用AS1117-3.3、AS1117-2.5和TPS77615作为电源。AS1117-3.3可稳定输出3.3V直流电压,AS1117-2.5可稳定输出2.5V直流电压,TPS77615则可稳定输出1.5V直流电压,这样保证了系统的正常工作,根据相应芯片的资料,其电源硬件连接图如图3.1所示。图3.1 电源硬件连接图3.2 图像读入模块的设计3.2.1 图像传感器的选用图像传感器是该系统的关键部分,作用是读入二维图像,其成像质量的好坏直接影响整个系统的性能。一般常用的图像传感器有两种,一种是CCD,另一种是CMOS。CCD使用一种高感光度的半导体材料制成,由许多感光单位组成,通常以百万像素为单位,当CCD表面受到光线照射时,每个感光单位会将电荷反映在组件上,所有的感光单位所产生的信号加在一起,就构成了一幅完整的画面,它能把光线转变成电荷,输出为模拟信号,需要专用的解码芯片使之与标准工艺兼容。CCD的优势在于成像质量好,但是由于制造工艺复杂,只有少数的厂商能够掌握,所以导致制造成本居高不下,特别是大型CCD,价格非常高昂。CMOS图像传感器采用CMOS工艺,可利用现有的半导体设备,且品质可随著半导体技术的提升而进步。CMOS传感器的优点之一是电源消耗量比CCD低,CCD为提供优异的图像品质,付出的代价即是较高的电源消耗量,为使电荷传输顺畅,噪声降低,需由高压差改善传输效果,而CMOS图像传感器将每一像素的电荷转换成电压,读取前便将其放大,利用3.3V的电源即可驱动,电源消耗量比CCD低。它的另外一个优势具有高度系统整合的条件。理论上,所有图像传感器所需的功能,例如垂直位移、水平位移暂存器、时序控制等,都可集成在一颗晶片上,将模数转化电路与信号处理器整合在一起,使体积大幅缩小。本系统选择使用的OmniVision公司生产的OV7660FSG S摄像模组的核心芯片是OV7660 S图像传感器2。OV7660是单芯片S图像传感器,在单个芯片中高度集成了全部摄像功能。它采用了一个640480的感光阵列,能够在该分辨率下以高达 30 帧/秒的速度捕捉图像,独有的传感器技术采用了先进的算法来消除固定图案噪音(Fixed Picture Noise)且大大地减少拖尾和闪烁3。图3.2 CMOS图像传感器连接示意图3.2.2 图像传感器硬件的连接设计OV7660为二十引脚图像传感器,如图3.2所示,有两个电源和两个接地端。这是两套供电电源:1脚(GND)和6脚(VDD)为模拟电源,可以输入电压范围在2.45V2.8V,这里选用2.5V模拟电源为其供电;7脚(DOVDD)和15脚(GND)为数字电源,可以输入电压范围在2.25V3.6V,这里选用3.3V数字电源为其供电。因此6脚VDD与电源AS1117-2.5的输出端2.5V OUT相连, 7脚DOVDD与电源AS1117-3.3的输出端3.3V OUT相连,1脚和15脚与地相连,保证器件的正常工作。OV7660利用SCCB(Serial Camera Control Bus)接口来对OV7660完成进行有关设置和图像数据的读取。本设计中DSP通过作为普通I/O口的多通道缓冲串口McBSP1,向OV7660提供控制信号。DSP多通道缓冲串口1的数据发送端BDX1与OV7660的10脚SCCB串行时钟输入端SIO-C相连接,DSP多通道缓冲串口1的发送帧同步端BFSX1 与OV76608脚SCCB串行数据输入端SIO-D相连,并需要接一个上拉电阻1K(阻值的选取参见OV公司提供的芯片资料)。OV7660的4脚(PWDN)电压降模式端,与DSP多通道缓冲串口1的发送时钟端BCLKX1相连,控制OV7660的省电模式。20脚芯片复位端RESET,与DSP多通道缓冲串口1的接收时钟端BLCKR1相连,控制OV7660的复位。OV7660选择24MHz的时钟晶体振荡器作为工作时钟。图3.3 OV7660的时序图OV7660提供标准的视频定时信号:VSYNC帧同步信号、HREF行同步信号、PCLK像素同步信号和Y8位数据线。一幅图像的输出首先来一个帧同步信号(VSYNC),接下来输出行同步信号(HREF),在行同步信号有效期间(高电平有效),每来一个像素时钟(PCLK),就输出一个像素的数据(Y),如图3.3所示。所以,可以用帧同步信号来触发DSP的外部中断0,触发DSP准备接收数据,即3脚(VSYNC)帧同步信号输出端与DSP的INT0(外部中断0)相连。综上可得到,图像传感器OV7660硬件连接,如图3.4所示。图3.4 OV7660的硬件连接图3.2.3 图像传感器与DSP接口设计图3.5 图像行内输出时序图3.5为行内图像的输出时序。其中,PCLK为像素同步信号,HREF为行同步信号,D7.0 为并行图像数据。一个HREF(高电平有效)内输出一行数据,一个周期PCLK内输出一个8位并行图像数据,其中每行按YUV 4:2:2输出,各个像素数据D7.0的排列方式为:UYVY。图像输出速度计算如下式。OV7660的主时钟: (3.1)图像输出速度计算如下式,像素同步信号的频率为外界晶振的一半: (3.2)图像的输出频率为: (3.3)即图像采集速度为15幅/秒,满足图像实时采集的要求。PCLK的时钟频率是12MHz,每个像素时钟周期为: (3.4)DSP的接口设计的方案是TMSC5410A利用中断触发DSP多通道缓冲串口0(McBSP0)接收来自OV7660的图像数据,应先将并行数据转化为串行数据。使用74LV165可以完成此项功能。74LV165的工作过程是每到工作时钟(BCLKR0)上升沿将转化出一位串行数据,那么,八位数据就需要八个工作时钟,设计74LV165的工作时钟由DSP的多通道缓冲串口0(BCLKR0)提供,其大小应为像素时钟周期的2倍: (3.5) (3.6)此值由软件设计时设定,这样设计可以实现数据采集和数据的并/串转换同步。74LV165为16脚的串/并转化器件,需要3.3V电源供电,所以16脚与AS1117-3.3输出端3.3VOUT相连,8脚、10脚均接地。74LV165的15脚时钟允许输入端CE为低电平时, 2脚时钟控制输入端CLK1才有效。为使CLK1时钟总是有效,将15脚与地相连。时钟输入端CLK1与DSP多通道缓冲串口0的接收时钟端BCLKR0相连,使DSP通过BCLKR0来为74LV165提供时钟信号。要把采集到的并行数字图像信号送入74LV165中进行处理,需将74LV165的数据输入端P11脚、12脚、13脚、14脚、3脚、4脚、5脚、6脚与OV7660的数据输出端Y11脚、12脚、13脚、14脚、16脚、17脚、18脚、19脚相连。74LV165的9脚数据输出端MISO输出的就是串行的数字图像信号,该信号就是DSP进行数据处理时所需的图像信号,所以将它与DSP多通道缓冲串口0的数据接收端BDR0相连。为完成了器件间的同步,需引入了二分频信号,故将74LV165的1脚异步并行输入端PL与双D触发器74LV74的9脚相连,如图3.7.a所示。为实现像素时钟周期的分频和Y信号的采集,使用双D触发器74LV74。双D触发器74LV74内部由2PCLK和3PCLK两个D触发器组成,这里用D1、D2来表示。D1的1脚使能控制端CD与OV7660的3脚行同步信号HREF相连。当OV7660发送一个HREF时D1被开启,D1的5脚输出端悬空作为高电平,那么D1的6脚和2脚则作为低电平,所以D1的6脚反向输出端输出的是低电平。D1的3脚时钟输入端CLK与OV7660的5脚像素同步输出端PCLK相连,这样OV7660通过PCLK控制D1的时钟输入。由D触发器的性质可知,当遇到一个时钟的上升沿时则输出进行相应翻转,如图3.6所示。当PCLK有上升沿时,D1的输出端(/2PCLK)才进行翻转,这样就实现了同步信号的分频。D2的11脚(CLK)时钟输入端与DSP多通道缓冲串口0的时钟接收端BCLKR0相连,使DSP接收数据的时钟与像素同步时钟相同来完成同步功能。图3.6 74LV74同步时序图D2的9脚输出端与74LV165的1脚(PL)异步并行输入端相连,实现了DSP数据接收与数据并/串转换的同步。综上可得同步电路硬件连接如图3.7.b所示。图3.7.a 并串转换电路的硬件连接图 图3.7.b 双D触发器电路的硬件连接图3.3 DSP核心板电路模块设计核心板电路设计包括DSP最小系统的设计和存储器的扩展设计。DSP最小系统是能够保证DSP正常工作运行起来的最小系统。由于DSP片上存储器资源有限,本设计扩展了DSP的存储空间,存储空间的扩展包括程序空间的扩展和数据空间的扩展两部分。3.3.1 DSP的最小系统1. 时钟电路设计设计中将外部时钟源12MHz的石英晶体振荡器直接输入DSP X2/CLKIN引脚,X1悬空。外部时钟源为12MHz的有源晶振。芯片内部的锁相环PLL电路,利用高稳定的内部锁相环锁定时钟振荡频率,提高时钟信号的频率纯度,提供稳定的振荡频率源。同时,还可以通过控制锁相环的倍频锁定调节时钟振荡器的振荡频率。因此,实际运行频率可以比外部参考时钟高,从而也降低了高频干扰。本设计中锁相环PLL硬件的配置为CLKMD3, CLKMD2, CLKMD1选取为“100”,即CPU时钟由外部时钟除以2来获取。用软件重新配置CLKMD的值,使CLKMD=97FFh使系统的工作频率为120MHz。2. 复位电路设计复位操作是一个非屏蔽的外部中断,它为DSP提供了硬件初始化。为了保证硬件初始化正确操作,RS必须保证低电平为7个时钟周期以上,这样才能保证数据、地址和控制总线等能够初始化完成。RS变高后,处理器从FF80h取指令并开始执行指令。复位电路有三种方式,即上电复位、手动复位和软件复位。前两种是通过硬件电路实现的复位,后一种是通过指令方式实现的复位。设计使用的是手动复位和上电复位电路对DSP进行复位,下面详细介绍一下该电路的实际复位功能。图3.8 复位电路硬件设计图当按键不被使用时,RS和高电位相连,处于非复位状态,这里加入一个100K的上拉电阻可以保护DSP不被烧坏,加入4.7uf/16V的滤波电容可以滤除高频噪声干扰;当按键按下时,RS和低电位相连,DSP处于复位状态,可以保证系统复位时间大于7个时钟周期,完成复位操作过程。上电复位时,由于如图3.8所示电路中加入了电容器C5,所以根据电容特性曲线可知,在特性曲线的低电平可以满足7个时钟周期,实现复位功能。3. JTAG接口电路设计 JTAG是Joint Test Action Group的简称,又称JTAG口。它是一符合IEEE Std1149.1边界扫描逻辑标准的标准接口。它主要用于在硬件上对DSP进行实时在线仿真测试和DSP程序下载,它提供对所连接设备的边界扫描,同时也可以用来测试引脚到引脚的连续性,以及进行DSP芯片外围器件的测试操作。IEEE 1149.1标准扫描逻辑电路可与访问片内所有资源的内部扫描逻辑电路连接,因此DSP能够使用IEEE 1149.1标准扫描逻辑电路引脚和专用仿真引脚来完成在线仿真5。本设计中引用双排的14脚插针的JTAG芯片如图3.9所示,以完成对DSP的仿真功能。图3.9 JATG的硬件连接图4. 其它电路设计 (a) (b) (c) (d)图3.10 其它电路图3.10.b中的发光二极管D2用来显示电源是否正常工作,电阻R1,3.3K可以保护二极管不被烧坏。图3.10.a和3.10.c都用于反映程序运行状态,只要设置DSP的XF和DSP的BFSR1 TEST为低电平发光二极管就可以正常发光。其中电阻R4和R5,均为2K,保护二极管不被烧坏。图3.10.d阻排,RP2,10K*8为上拉电阻,使DSP相应引脚为高电平,DSP芯片的某些引脚:没有用到的中断引脚、数据准备好输入引脚READY、保持输入引脚HOLD、仿真中断引脚EMUO、仿真中断引脚EMU I等都需要接上拉电阻。最小系统设计成功的一个检验标志是,若接上电源和仿真器,如果能够顺利进入系统仿真环境,就表明系统能工作正常。3.3.2 存储器扩展电路设计由于TMSC5410A只有16K的片上存储空间,不能满足图像图像处理的要求,因此需要扩展存储空间,存储空间的扩展包括程序空间的扩展和数据空间的扩展。TMSC5410A的程序寻址空间是64K16bit,数据寻址空间是64K16bit,因此它的程序空间和数据空间都可以扩展到64K字节。本设计选用25AA256芯片即256K-bit串行可电擦除程序存储器来扩展存储空间。本设计选用的存储器的容量要比实际用到的要大,这是为了以后系统扩展的需要,以方便以后系统的升级,在电路设计上需要留有一定的余量。Flash ROM是仅仅存放程序代码,Bootload后它就没用了。其硬件连接图如3.11所示。图3.11 程序存储器硬件连接图3.4 DSP与PC机串行通信电路模块设计TMSC5410A是为实现低功耗、高性能而专门设计的定点DSP芯片。在本设计中它的通信接口控制能力比较弱,对于TMSC5410A串行通信的方案是DSP通过扩展UART(通用异步收发器)来进行高速串行通信,UART是一个并行输入成为串行输出的芯片。DSP通过UART提供的接口编程,能够实现TMSC5410A与PC机的串行通信。应用MAX3232实现RS232传输协议的电平要求,选取参考了MAX3232的芯片资料,得到硬件连接图如3.12所示。图3.12 DSP与PC机串行通信电路设计硬件连接方式4. 软件设计说明4.1 程序总体框图上一章已经对本设计中所要用到的硬件进行了简单的描述,这一章则针对以上的硬件的选择来编写可以完成图像采集和识别的软件程序。其软件编写的基本框图如图4.1所示。 开 始系 统 初 始 化 化OV7660 初 始 化 化LED灯闪烁,等待中断图4.1 程序总体框图根据分析本课题的硬件的选择和所要实现的功能,将软件的编写分成三个部分进行,即系统初始化部分、OV7660初始化部分及中断部分。系统初始化为了设置DSP的内部工作状态和DSP外部设置,OV7660初始化可设置OV7660为本设计需要的图像传感器模式,进行图像采集,采用中断服务程序实现了数据的接受和处理。下面对这三个部分做详细的阐述。4.2 程序设计4.2.1 系统初始化系统初始化主要是TMSC5410A的初始化,对于TMSC5410A的初始化又可分为四部:第一步是将TMSC5410A的工作时钟调到120MHz;第二步是CPU状态和控制寄存器的初始化;第三步TMSC5410A的存储器配置;第四步DSP的外设初始化。1. TMSC5410A的时钟调整TMSC5410A有两种不同类型的PLL,硬件配置的PLL电路这在硬件部分已介绍过,本设计选用软件配置的PLL电路,软件编程PLL的特点是有高度的灵活性,它包括一个用来提供各种时钟乘数因子的时钟标定器、直接开放和禁止PLL的功能和一个PLL所存定时器。TMSC5410A中的内部软件可编程PLL的时钟模式为PLL模式且它禁止DIV分频模式。在软件编程PLL模式下,通过对输入时钟信号(X2/CKI脚)的倍频以产生CPU时钟信号。其用公式可表示为: (4.1)从式子中可得,要得到120MHz的CPU时钟则乘数因子应为10,而乘数因子又是由CLKMD时钟模式寄存器的几个位来确定的,CLKMD框图4如图4.2所示。图4.2 CLKMD框图TMSC5410A的CLKMD寄存器的PLLDIV和PLLNDIV设置为01时,可得: (4.2)那么,要想得到乘数因子为10则PLLMUL必须为9,这样CLKMD的1512位应该为0X09、1位为1、11位为0,其余位为1,所以CLKMD=0X97FF。为此,CPU时钟被倍频到120MHz。2. CPU状态和控制寄存器的初始化根据设计的实际情况对所要用到的寄存器进行初始化,本设计中主要应用状态寄存器1(ST1),它包含了各种条件与模式的状态。ST1状态寄存器框图如图4.3所示。图4.3 状态寄存器1(ST1)框图设计中,使数据在被ALU使用之前进行符号扩展,对符号扩展模式SXM(决定是否使用符号扩展)置位;溢出处理不论是由于算术逻辑单元(ALU)或乘法器的原因导致加法器的溢出,在目标累加器中都是溢出的。对溢出模式OVM(当溢出产生时,确定向目标累加器中装入什么值)复位;相应的直接寻址模式使用数据页指针DP。对编译模式CPL(CPU指明在相应的直接寻找中使用那一个指针)复位。开始时应清除所有中断标志位,对中断标志寄存器IFR进行置位;禁止所有中断,对中断屏蔽寄存器IMR进行复位。CLKMD = 0x97FF;/ 1001_0111_1111_1111 / PLLMUL:9asm( SSBX SXM);/对SXM置位asm( RSBX OVM);/对OVM复位IFR = 0xffff;/对IFR(中断标志寄存器)置位IMR = 0x0000;/对IMR(中断屏蔽寄存器)复位3. TMSC5410A的存储器配置TMSC5410A内部带有一定数量的高速物理存储区空间,在实时性要求很严格的应用系统中,本设计将程序和数据存放在内部物理存储区中,而且尽可能地将数据区定义在内部双访问RAM(DARAM)中,TMSC5410ACPU片内存储器的双存取RAM设置为总是映射到数据空间,程序区可定义在内部单访问RAM(SARAM)、DARAM或是ROM中,一些查找表或是初始化数据也可以放在程序区中。因为对于程序区常常只有读操作,而对于数据区往往可以同时存在有读操作和写操作,所以数据区尽可能定义在DARAM中。对片内物理存储器的访问是通过访问映射存储器来实现的,也就是说,片内物理存储器必须被映射到映射存储器上才能被访问。本系统设计系统的映射存储器分为三块区域,分别称为程序区、数据区和I/O区。I/O区是片外资源,访问空间大小为64K16bit;数据区可以为片上存储区映射的,也可以是片外存储器映射的,或兼而有之,访问空间大小也是64K16bit,而且,这两个区域常常是不能被扩展访问的;程序区分为基本程序区和扩展程序区,显然是可以被扩展的。基本程序区的访问空间是64K16bit,最大扩展访问空间为8192K16bit。TMSC5410A提供了16K字ROM,64K字DARAM。映射存储器的配置受到TMSC5410A外部管脚MP/MC以及PMST(处理器模式状态寄存器)的控制,其PMST的框图4如图4.4所示。图4.4 处理器模式状态寄存器(PMST)框图TMSC5410A硬件复位成功后,设置PMST寄存器中的157IPTR(中断向量指针:指向中断向量驻留的包含128个字的程序页面)为01,实现重新定位中断向量表在程序区中的位置;设置MP/MC(微处理器/微处理机模式:使能或禁止片内ROM映射到程序存储器空间)为0,实现采用微处理机模式且允许访问片内ROM;设置OVLY(RAM重叠:使片内双存取数据RAM块映射到程序空间中)为1,实现片内DARAM、SARAM1映射到程序空间(0X01000X7FFF)且使用片内SARAM2映射到数据空间(0X80000XFFFF);设置DROM(数据ROM)为1,实现片内ROM的一部分可以映射到数据空间;其它位均设置为0,其PMST被设置为0X00A8。其根据PMST的设置存储器的映射如下图4.5所示。图4.5 TMSC5410A的存储器映射图4. DSP的外设初始化为了实现协调TMSC5410A内部时钟和外部各个器件的工作时钟,设置软件等待状态寄存器SWWSR为0X7FFF。块切换控制寄存器BSCR为0X9000,实现程序块与数据块之间、数据空间各块之间、程序空间各块之间的切换等。TMSC5410A具有三个多通道缓冲串行口McBSP,即McBSP0、McBSP1、McBSP2。其中,McBSP1和McBSP2设置为普通I/O口,作为TMSC5410A对外部器件的控制信号,而McBSP0作为串行口使用。TMSC5410A对硬件图像传感器OV7660的控制、外部程序存储器的控制都是通过McBSP1口和McBSP2口传输的控制信息,McBSP1口输出对图像传感器OV7660的控制信息;McBSP2口输出对外部程序存储器的控制信息。把McBSP1和McBSP2作为普通I/O口则把McBSP1的串口控制寄存器SPCR1和McBSP2的串口控制寄存器SPCR2的各位都设置为0,这样,SPCR1的各位被设置为0后,串口的接收器被废除,即SPSA1=SPCR11,SPSD1=0X0000;串口的发送器被废除,即SPSA1=SPCR21,SPSD1=0X0000。SPCR2的各位被设置为0后,串口的接收器被废除,即SPSA2=SPCR12,SPSD2=0X0000;串口的发送器被废除,即SPSA2=SPCR22,SPSD2=0X0000。通过引脚控制寄存器PCR来将McBSP引脚配置为输入或输出。综上所述,系统初始化部分的框图如图4.6所示。开始时钟调节CPU状态和控制寄存器初始化DSP存储器配置DSP的外设初始化结束图4.6 系统初始化框图4.2.2 图像传感器OV7660初始化OV7660利用串行摄像控制总线SCCB(Serial Camera Control Bus)接口来对OV7660完成进行有关设置和读取图像数据。图4.7 SCCB总线协议OV7660的初始化是为了把图像传感器设置成为开始时复位所有的寄存器为默认值,它工作时的传输速率为30幅/秒,且使能时钟加倍,输出格式为QCIF模式,输出序列为UYVY形式,带有对AGC(自动增益控制)、AEC(自动曝光控制)及AWB(自动白平衡控制)的使能等。本设计为了使OV7660达到以上要求,需要对OV7660的多个寄存器进行设置,其具体初始化过程如下:设置7(控制寄存器7)为0X80即77(SCCB寄存器设置位)为1,实现复位所有的寄存器为默认值;设置CLKRC(数据格式和内部时钟设置位)为0X80即CLKRC7(数据PLL选择位)为1,实现使能时钟加倍且不分频,传输图像速率为30幅/秒;设置7(控制寄存器7)为0X08即7Error! No bookmark name given.(输出模式格式位)为1,实现输出格式为QCIF模式;设置TSLB(缓冲线测试选择)为0X1C即TSLB2,3,4(Bit3:2为输出序列模式位、Bit4为UV输出值)为111,实现输出序列为UYVY形式且使用合适的UV值;设置8(控制寄存器8)为0X07即80,1,2为111,实现对AGC(自动增益控制)、AEC(自动曝光控制)及AWB(自动白平衡控制)的使能。4.2.3 中断服务程序设计本设计要使用直接存储器访问控制器DMA和数据接收寄存器McBSP进行对图像数据的传送和接收,而且每当DMA传送完一幅图像数据即44帧数据后,要向DSP发出一个信号通知DSP,44帧数据已经传送完毕,这时DSP可以对数据进行识别。为了实现其上述功能,设计两个中断服务程序即INT0中断服务程序和DMA5中断服务程序。1. INT0中断服务程序设计INT0中断服务程序主要的功能为每当检测到一个帧同步信号,则先对DMA和作为多通道缓冲串口的McBSP0进行初始化,然后使用DMA进行传输数据,使用McBSP0进行数据接收。DMA和McBSP0的初始化过程如下:(1) DSP的DMA(直接存储器访问控制器)初始化直接内存访问控制器指在没有CPU干预的情况下,直接存储器访问(DMA)控制器可以在存储器映射的各区域之间直接传送数据。在有CPU操作背景下,DMA允许在内部存储器、内部外设或者外围器件之间移动数据。本设计中使用DMA为了实现DRR10(McBSP0数据接收寄存器)其地址为0X0021到片内数据存储器之间直接访问。为实现这个功能对DMA的初始化分为三步,即首先,设定DMA通道优先级和使能控制寄存器;其次,是确定访问的源地址和目的地址;最后,设置传输模式控制寄存器。(a) DMA通道优先级和使能控制寄存器(DMPREC)初始化DMA通道优先级和使能控制寄存器DMPREC控制着DMA系统全面操作的一些功能,DMPREC位于数据空间的0054h地址处,上电初始化时的值为0000h,其功能包括:每个DMA通道的使用选择、复用中断的控制、通道优先权的控制等。因此,对DMA的初始化首先要设置DMPREC,其DMPREC的结构如图4.8所示。图4.8 DMPREC的结构框图根据本设计的要求,为实现当仿真器停止运行时,DMA继续工作,因此作为DMPREC控制DMA控制器在仿真时的行为的第15位FREE设为1;为实现每一个DMA通道都使用自己的重载寄存器,设置第14位RSVD为1;DMA的所有通道优先级均为低,设置优先级控制位DPRC为0;DMA的McBSP0、McBSP1、McBSP2、DMA4、DMA5所占用的中断号为4、5、6、7、10、11、12、13,设置中断复用控制位INTOSEL为0;初始化是禁止所有的DMA通道,设置DMA通道使能位DE5:0为0。因此,DMPREC设置为1100000000000000,即DMPREC=0XC000。(b) 数据初始化本设计要求McBSP0数据接收寄存器DRR10通过DMA方式访问片内数据存储器,每传送一幅图像包含44帧(程序设定只传送44帧),每帧数据的长度最大为176,且由McBSP0的接收事件来触发DMA传送。对特定的源地址寄存器(McBSP0数据接收寄存器)和目的地址寄存器(BLOCK0-ADDR片内数据寄存器)进行存取,要将这些源地址和目的地址分别写入DMA子寻址寄存器的地址寄存器DMSA中。这样就引导多路复用器将DMA子寻址数据寄存器DMSDN连接到所期望的物理单元。因此,DMSA=DMSRC5,DMSDN=0X0021是对源地址的设置即源地址为0X0021;DMSA=DMDST5,DMSDN=BLICK0-ADDR是对目的地址的设置,即目的地址为片内数据寄存器。传输量的确定需要用到元素计数寄存器DMCTR5和DMA同步事件和帧计数寄存器DMSFC5两个寄存器。实现每帧传送176个像素则用DMCTR5,此计数器保持对DMA传送已完成的数量的跟踪,元素计数器初始化时装载的数值是DMA通道元素计数寄存器DMCTR5中的16位无符号数,它表示需要被传送的元素数量,且元素计数寄存器初始化时的数值必须比所要传送的元素数量少1,本设计要传送176个元素则初始化数据为175转化为十六进制数为0X00AF,即DMSA=DMCTR5,DMSDN=0X00AF。 DMA由哪一个同步事件触发及每幅图像帧数量的确定由设置DMA同步事件和帧计数寄存器DMSFC5来实现。DMSFC5的结构如图4.9所示。图4.9 DMSFC5结构框图本设计中的DMA是由McBSP0的接收事件触发的,所以根据TMS5410A的芯片资料可知,同步事件控制位DSYN设置为0X0001;帧计数位Frame Count为8位字段,它的值也应该比期望的帧数少1。所以,一幅图像只传送44帧则该位应设置为43,转化为对应的十六进制数为0X002B。由此可知,DMSA=DMCTR5,DMSDN=0X102B。(c) 传输模式控制寄存器DMMCR5C的初始化为了实现传输,则应初始化传输模式控制寄存器DMMCR5,它控制着通道的传输模式,其结构图5如图4.10所示。图4.10 传输模式控制寄存器DMMCR5结构框图本设计的设计要求DMA禁止自动初始化,应设置DMA自动初始化模式位AUTOINIT为0;基于IMOD(DMA中断产生模式位)中断产生,设置DMA中断产生屏蔽位DINM为1;在图像传输完成后中断,设置DMA中断产生模式位IMOD为0;多帧模式,设置DMA传输计数器模式控制位CTMOD为0;不改变DMA源地址,设置DMA源地址传送变址模式位SIND为000;DMA源地址为数据存储器,设置源地址空间选择位DMS为01;DMA操作完成后目的地址加1,设置DMA目的地址传送变址模式位DIND为001;DMA目的地址为数据存储器,设置目的地址空间选择位DMD为0。即0100000010001101,转化为十六进制数为0X4049。由上可知,DMSA=DMMCR5,DMSDN=0X4049。以上是本设计对DMA的初始化过程,其DMA初始化框图如图4.11所示。开 始DMPREC 初始化数据初始化DMMCR5 初始化结 束图4.11 DMA初始化框图(2) DSP的McBSP0(多通道缓冲串行口0)初始化本设计中把多通道缓冲串行口McBSP0作为串行口使用,来实现当DSP的CPU或DMA控制器从数据接收器(DRR1,2)中读取数据,或者将要传送的数据写入数据发送寄存器中(DXR1,2)。写入DXR1,2的数据通过发送移位寄存器(XSR1,2) 移出到DX引脚上;从DR引脚上接收的数据被移入到接收移位寄存器(RSR1,2)中,而且被复制到接收缓冲寄存器(RBR1,2)中,然后RBR1,2中的数据被复制到DRR1,2中,DRR1,2可以被CPU或DMA控制器读取,这样就允许内部和外部的数据通信同时进行。对McBSP0(多通道缓冲串行口0)的初始化要分为四部进行:即串行口控制寄存器初始化;引脚控制寄存器初始化;采样率发生器寄存器初始化及接收和发送控制寄存器初始化。(a) 串行口控制寄存器初始化McBSP0串行口控制寄存器初始化即是对McBSP0串口控制寄存器1(SPRC10)和McBSP0串口控制寄存器2(SPRC20)的初始化。图4.12(a)和(b)为SPRC10和SPRC20的结构框图6 。(a) McBSP0串口控制寄存器1SPRC10(b) McBSP0串口控制寄存器2SPRC20 图4.12 McBSP0串口控制寄存器结构框图设计对SPRC10为了实现DLB(数字环反馈模式)被禁止,设置数字环反馈模式DLB为0;接收数据左对齐且用0来填充低位,设置接收符号扩展和调整模式RJUST为00;时钟模式为禁止且为非SPI模式提供正常时钟,设置时钟停止模式CLKSTP为00;DX使能器关闭,设置DX使能器DXENA为0;ABIS A-bis模式禁止即禁止McBSP0能在一个PCM连接上接收和发送多达1024位,设置ABIS(ABIS模式,McBSP0能否在一个PCM连接上接收和发送多达1024位)为0;由字的结尾和帧的结尾驱动,设置接收同步错误RSYNCERR为0。设置接收中断模式RINTM为00;无接收同步错误、RSR1,2不处于溢出状态,设置指示接收器已经溢出并在错误状态RFULL为0;接受器没有准备好,设置接收端准备就绪RRDY为0;接受器复位,设置接收端复位RRST为0。由上可知,McBSP0串口控制寄存器1(SPRC10)的初始化为SPSA0=SPCR10,SPSD0=0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论