机器人视觉识别系统研究

更新时间:2024-06-27 19:22:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

西南科技大学城市学院

毕业论文(设计)

论文题目: 机器人视觉识别系统研究

系 别: 机电工程系 专 业: 自动化 班 级: 0701 学 号: 200740128 学生姓名: 蒋伟 指导教师: 王媛

西南科技大学城市学院本科生毕业论文

机器人视觉识别系统研究

摘 要

现实生活和工业生产中,具有视觉识别系统的机器人的应用越来越多,本文

目标是设计出一个基于嵌入式微处理器ARM(S3C2440)与CMOS构建的图像数据采集系统,完成高质量的图像数据采集功能及星形图形的识别。

论文重点对图像数据采集系统总体方案进行了探索和设计,构造了一种基于ARM+OV7725的图像采集系统方案,通过ARM处理器、OV7725图像传感器、及LCD显示器构成整个图像采集系统的硬件部分,并通过相应的软件设计完成对整个系统的控制,最终实现图像数据采集和识别功能。

关键词: 图像采集 识别 ARM处理器 OV7725

西南科技大学城市学院本科生毕业论文II

Robot Vision Recognition System

Abstract

In real life, and industrial production, a robot with a visual identification system used more and more and more, this goal is to design a microprocessor-based embedded ARM (S3C2440) and CMOS image data acquisition system built to complete the high-quality The image data acquisition and star identification graphics.

Paper focuses on the general scheme of image data acquisition system are explored and the design, construction which is based on ARM + OV7725 image acquisition system, through the ARM processor, OV7725 image sensor, and LCD monitor system constitutes the entire image acquisition hardware, and through Completion of the appropriate software to control the whole system, and ultimately the image data acquisition and recognition.

Keywords: ARM processor OV7725 image acquisition Recognition

西南科技大学城市学院本科生毕业论文

目录

第一章 绪论 ................................................................................................................................1

1.1背景 .....................................................................................................................................1 1.2 意义 ..................................................................................................................................2 1.3 总结 ....................................................................................................................................3 第二章 系统方案设计 ................................................................................................................4

2.1系统处理器选择 .................................................................................................................4 2.2图像传感器的选择..............................................................................................................5 2.3系统方案 .............................................................................................................................6 第三章 硬件设计 ............................................................................................................................8

3.1 S3C2440处理器................................................................................................................8 3.2 ARM处理器与OV7725图像传感器接口设计 ................................................................10 3.3 ARM处理器与液晶屏接口 .............................................................................................. 11 3.4 本章小节 ........................................................................................................................12 第四章 软件设计 ..........................................................................................................................13

4.1 图像数据采集系统软件总体设计 .................................................................................13 4.2 相机程序 ..........................................................................................................................14 4.3 相机接口程序设计.........................................................................................................19 4.4 OV7725图像传感器模块 ................................................................................................23 4.5 LCD显示模块 .................................................................................................................29 4.6源代码文件说明 ...............................................................................................................32 4.7 图形识别的算法 ..............................................................................................................33 4.8本章小节 ............................................................................................................................34 第五章 系统调试优化 ..................................................................................................................35

5.1 优缺点 ...............................................................................................................................35 5.2 实物图 ...............................................................................................................................35 致谢 ..................................................................................................................................................37 参考文献 ..........................................................................................................................................38

西南科技大学城市学院本科生毕业论文

第一章 绪论

1.1背景

进入21世纪以来,机器人的研究取得了长足的发展,从论文发表和成

果报道来看,视觉识别机器人已成为机器人领域目前最引人注目的拘束热点。从2000年起,IEEE每年召开视觉识别机器人专题的学术会议(Int.conf.on Humanoid Robots),学术期刊Int.J.ofhumanoid Robotics也于2004年创刊。视觉识别机器人的研究论文也频见于机器人相关领域其它学术刊物,这些都表明视觉识别机器人座位机器人学的一个重要分支,已经受到学界的充分重视

目前世界各国都在发展,日本的视觉识别机器人研究在企业界的大力支持下发展较快,无论从羡慕数量或是研究成果看,都占据着明显的领先地位,此外,美英德韩也都在开展相关研究。.

机器人视觉对于智能机器人就相当于眼睛和人的关系一样,为了使机器人实现智能化,则必须让机器人具有感知功能,是机器人能够―看到‖周围世界,第一代工业机器人由于没有视觉系统,只能按照预先规定的动作往返操作,一旦工作环境变化,机器就不能胜任工作,因为无法感知周围环境和工作对象的情况,因此对于机器人来说,视觉系统是必不可少的,所以对于图像采集的研究和探索那是绝对不可少的。

且随着科学技术的发展,更高速,更可靠,更低成本成为各种技术开发的要求。图像采集与处理技术的应用越来越广泛,技术要求也越来越高,设计能实现图像采集与图像处理一体化,结构紧凑,并能有效降低成本的专用图像处理系统,将具有很大的市场应用前景,这种系统具有安装方便、配置灵活,便于携带等突出优点。

计算机技术已经进入嵌入式产品时代,嵌入式产品将逐渐成为行业发展的主流,而作为这个时代的代表行产物——ARM嵌入式微处理器的应用将更加广泛,ARM实业界领先的16/32位嵌入式RISC处理器技术供应商,占领了大约75%的市场。它可为一个完整系统的开发提供全面的技术支持,具有性能高,低成本和能耗省等特点,ARM嵌入式处理器采用PCA架构,支持大容量Fllash和ARM存储器,支持实时操作系统,ARM的微处理器核心正迅速地在便携通信设备、手持设备、工业控制仪器仪表,信息家电及消费类电子等各个领域得到广泛的应

1

西南科技大学城市学院本科生毕业论文

用。

1.2 意义

近年来, 随着电子技术、计算机技术、自动控制技术、多媒体技术的迅速发展,图像数据采集系统技术也取得了长足的发展。在智能仪器仪表和工业测控系统中图像采集占据着重要地位。

传统的图像采集系统大多采用PCI图像采集卡进行图像采集和微型计算机软件进行图像处理或采用单片机作为控制核心的设计方案。采用PCI图像采集卡的设计方案致使系统体积庞大、成本高、携带不便,且因微型计算机总线插槽数目和采集卡通道数目有限,实现多点采集困难。而以单片机作为控制核心的设计方案由于单片机资源有限,实现图像采集需要大量的系统资源和强大的运算处理能力,因此难以实现。从而提出了一种基于ARM处理器的实现图像数据采集的方案,此方案提高了系统图像数据的采集与处理能力,整个系统速度快、功耗低、体积小、易于升级维护

近20年来由于微电子学的进步以及计算机应用的日益广泛,我国图像据采集系统技术也取得了巨大的进展,从技术背景上说,硬件集成电路的不断发展和创新是一个重要因素。各种集成电路芯片都在朝超大规模、全CMOS化的方向发展。微电子技术的不断发展尤其是微处理器的出现.引发了图像采集结构的根本变革,出现了各种采用微处理器的图像采集系统.新的设计思想和新的集成电路不断涌现,图像数据采集系统已进入了崭新的发展阶段,图像数据采集系统广泛应用于我们的日常生活中,如我们用的摄像机、DV等。在工业控制方面,图像采集系统也起着重要的作用。我国图像数据采集系统研究成果很丰富,如基于FPGA的图像采集系统、基于USB总线的图像采集系统、基于ARM的图像采集系统等。并且这些图像采集系统大量应用于机械、电子 、安防、化工、探测、侦查等领域。而基于ARM的图像采集系统在工业生产中的应用还不是很多。

为此,本文特别采用基于ARM微处理器的图像采集和处理系统的解决方案, 并对其可行性,实现方法以及相应的理论进行了深入的探讨,基于ARM嵌入式平台图像采集与处理系统具有体积小,成本低,稳定性高等优点,未来会在诸如只能交通移动机器人,只能产品检测,医学仪器,视频监控系统,便携式多媒体设备等各种应用领域得到越来越广泛的应用。

2

西南科技大学城市学院本科生毕业论文

1.3 总结

所以,综合各方面的因素,本文提出了基于嵌入式微处理器ARM(S3C2440)与OV7725(CMOS)构建的图像数据采集识别系统,完成高质量的图像数据采集功能及星形图形的识别。以下具体介绍该系统的软件硬件设计。

3

西南科技大学城市学院本科生毕业论文

第二章 系统方案设计

2.1系统处理器选择

目前,市面上常用的芯片有单片机、FPGA、DSP、ASIC、ARM9,以下分别介绍这几类芯片的优缺点:

单片机:采用Atmel公司的AT89S52单片机作为主控制器。AT89S52是一个低功耗,高性能的51内核的CMOS 8位单片机,片内含8k空间的可反复擦些1000次的Flash只读存储器,具有256 bytes的随机存取数据存储器(RAM),32个IO口,3个16位可编程定时计数器。且该系列的51单片机可以不用烧写器而直接用串口或并口就可以向单片机中下载程序。但是考虑到本系统要进行图像采集和OV7725传感器的检测以及LCD显示,若使用AT89S52可能在数据处理方面有一些不足,且占用CPU资源较多而使得单片机同时处理其他任务的速度和能力降低,这样图像采集起来速度太慢。

FPGA:采用FPGA(可编程逻辑门阵列)作为主控制器,它可实现系统集成,基于实现宏函数的嵌入式阵列及实现普通功能的逻辑阵列,提供异步的―乘积项‖或者―和项‖构成的寄存器的置位/复位信号,且还可以单独的可编程的输出电压摆率控制位。虽然他还具有高速,高可靠性,开发周期短,质量稳定。开发软件投入小、开发工具先进,可多次擦写等优点。但是本系统主要是对图像进行采集,不需要逻辑性很强的控制器,基于这一点也不选择此方案。

DSP:采用DSP(数字图像处理)作为图像采集控制器,它是在原有通用CPU的基础上,发展改进硬件结构和指令集结构而来的。DSP能够更好的完成在数字信号处理的滤波、卷积和FFT中最重复出现的乘法器,地址产生器,使得DSP在相同时间内能够完成更过的操作,提高程序执行速度,精简指令,有利于DSP结构上的简化和成本的降低,总线结构,专用寻址单元,DSP中采用独立程序总线和数据总线,能够同时取指令和取操作数,区别于传统CPU采用统一城乡和地址空间的冯.诺曼结构,共享程序和数据总线,专用寻址单元。DSP有地址产生器,与ALU并行操作,地址运算不额外占用CPU时间,片内存储器,存放参数和数据,解决了外部存储器的总线竞争和访问速度不匹配问题,访问速度快,缓解DSP数据瓶颈,流水处理,使得两个或更多不同的操作可以重叠执行,提高

4

西南科技大学城市学院本科生毕业论文

DSP程序执行效率。但是它控制系统比较复杂,实时图像处理比较复杂,基于本系统立志于简单高速考虑也放弃此种方案。

ASIC:采用ASIC芯片,与通用集成电路相比,ASIC芯片具有体积小,重量轻、功耗低、可靠性高等几个方面的优势,而且在大批量应用时,可降低成本,但ASIC得缺点在于设计周期长,非大批量应用场合,造价昂贵且功能单一,而且ASIC一旦投入应用,构建的系统灵活性差,新的技术和算法只能重新设计芯片来实现,这样导致ASIC芯片通用性较差。

ARM9:ARM微处理器是一种高性能、低功耗的32位微处器,它被广泛应用于嵌入式系统中。ARM9代表了ARM公司主流的处理器,已经在手持电话、机顶盒、数码像机、GPS、个人数字助理以及因特网设备等方面有了广泛的应用。由于ARM处理器体积小、低功耗、使用0.13um的CMOS制造技术和记忆体编程器制造、有16K的指令快取、MU快取、强大的索引地址模式、且支持ARM处理器16-bit指令模式主频可以达到499MHZ,提高了系统图像数据的采集与实时处理能力。

综合上述几种芯片,我们从硬件、完成高质量的图像采集和实时处理能力、简单处理速度快速等几个方面考虑,选择ARM9作为本设计的系统处理器。

2.2图像传感器的选择

目前图像传感器类型有两种:一种是广泛使用的CCD(电荷藕合)图像传感器;另一种是CMOS(互补金属氧化物导体)图像传感器。这两种都是基于核心成像部件CCD和CMOS而区分的

CCD中文译为\电子耦合组件\,它就像传统相机的底片一样,是感应光线的电路装置,可以将它想象成一颗颗微小的感应粒子,铺满在光学镜头后方,当光线与图像从镜头透过、投射到CCD表面时,CCD就会产生电流,将感应到的内容转换成数码资料储存起来。CCD的尺寸其实是说感光器件的面积大小,CCD像素数目越多、单一像素尺寸越大,捕获的光子越多,感光性能越好,信噪比越低,收集到的图像就会越清晰。因此,尽管CCD数目并不是决定图像品质的唯一重点,我们仍然可以把它当成相机等级的重要判准之一。

互补性氧化金属半导体CMOS(Complementary Metal-Oxide Semiconductor)

5

西南科技大学城市学院本科生毕业论文

和CCD一样同为可记录光线变化的半导体。CMOS的制造技术和一般计算机芯片没什么差别,主要是利用硅和锗这两种元素所做成的半导体,使其在CMOS上共存着带N(带–电) 和 P(带+电)级的半导体,这两个互补效应所产生的电流即可被处理芯片记录和解读成影像。同样,CMOS的尺寸大小影响感光性能的效果,面积越大感光性能越好。CMOS的缺点就是太容易出现杂点, 这主要是因为早期的设计使CMOS在处理快速变化的影像时,由于电流变化过于频繁而会产生过热的现象。

由两种感光器件的工作原理可以看出,CCD的优势在于成像质量好,但是由于制造工艺复杂,只有少数的厂商能够掌握,所以导致制造成本居高不下,特别是大型CCD,价格非常高昂。

在相同分辨率下,CMOS价格比CCD便宜,但是CMOS器件产生的图像质量相比CCD来说要低一些。 CMOS影像传感器的优点之一是电源消耗量比CCD低,CCD为提供优异的影像品质,付出代价即是较高的电源消耗量,为使电荷传输顺畅,噪声降低,需由高压差改善传输效果。但CMOS影像传感器将每一像素的电荷转换成电压,读取前便将其放大,利用3.3V的电源即可驱动,电源消耗量比CCD低。CMOS影像传感器的另一优点,是与周边电路的整合性高,可将ADC与信号处理器整合在一起,使体积大幅缩小。

综合考虑既满足功能要求又有较高的性价比,我们选用CMOS芯片的OV7725图像传感器。

OV7725是一款高度整合的1/4英寸CMOS CameraChip(TM)传感器,在一个单芯片上提供一部VGA摄像头和影像处理器的全部功能。OV7725的一个独特性能是有很大的主光线角度,它能显著减小模块高度,而高度是让相机能够装配进当前超薄笔记本电脑的关键因素。OV7725以OmniVision的OmniPixel2(TM)专利技术为基础,弱光环境中也能提供卓越的性能,在VGA模式下能够以60帧每秒(fps)或在QVGA模式下120fps运行。OV7725无铅、28引脚CSP2封装。

2.3系统方案

本图像数据采集系统由ARM处理器、CMOS图像传感器、存储器和电源模块构成。

6

西南科技大学城市学院本科生毕业论文

硬件总体结构图

电源模块启动后,在ARM处理器的控制下 ,CMOS图像传感器片上采集到的数据经帧同步信号触发产生中断后被拷贝到 SDRAM。然后通过ARM处理器的处理由LCD显示出来,通过二值化识别出星形图形。

SDRAM LCD LCD控制器 ARM9 Interface 电源模块 OV7725 7

西南科技大学城市学院本科生毕业论文

第三章 硬件设计

3.1 S3C2440处理器

①处理器概述

三星公司推出的16/32位RISC微处理器S3C2440A, 为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。

S3C2440A采用了ARM920T的内核,0.13um 的CMOS 标准宏单元和存储器单元。其低功耗、简单、优雅、且全静态设计特别适合于对成本和功率敏感型的应用。它采用了新的总线架构Advanced Micro controller Bus Architecture (AMBA)。

S3C2440A的杰出的特点是其核心处理器(CPU),是一个由Advanced RISC Machines 有限公司设计的 16/32位 ARM920T 的RISC处理器。ARM920T 实现了MMU, AMBA BUS和 Harvard 高速缓冲体系结构构。这一结构具有独立的 16KB指令 Cache和 16KB数据 Cache。每个都是由具有 8字长的行组成。通过提供一套完整的通用系统外设, S3C2440A减少整体系统成本和无需配置额外的组件。

②S3C2440A集成的片上功能

* 1.2V内核供电, 1.8V/2.5V/3.3V存储器供电,3.3V外部I/O供电,具备16KB的I-Cache和16KB DCache/MMU微处理器。

* 外部存储控制器(SDRAM控制和片选逻辑)。

* LCD 控制器(最大支持4K色STN 和256K色TFT)提供1通道LCD 专用DMA 。

* 4 通道DMA并有外部请求引脚。

* 3 通道UART(IrDA1.0, 64字节Tx FIFO,和64字节Rx FIFO)。 * 2 通道SPI 。

* 1通道IIC-BUS接口 (多主支持)。 * 1通道IIS-BUS音频编解码器接口。 * AC’97 解码器接口。

* 兼容SD主接口协议1.0版和MMC卡协议2.11兼容版。 * 2 端口USB主机/1端口USB设备 (1.1 版)。

8

西南科技大学城市学院本科生毕业论文

* 4 通道PWM定时器和1通道内部定时器/看门狗定时器。 * 8 通道10 比特ADC和触摸屏接口。 * 具有日历功能的RTC。

* 相机接口 (最大4096 × 4096像素的投入支持。 2048 × 2048像素的投入, 支持缩放)。

* 130 个通用I/O口和24通道外部中断源。 * 具有普通,慢速,空闲和掉电模式。 * 具有PLL片上时钟发生器。 ③S3C2440 方框图

S3C2440 方框图如图3-1所示

图3-1

9

西南科技大学城市学院本科生毕业论文

3.2 ARM处理器与OV7725图像传感器接口设计

图像传感器接口电路是硬件设计的关键部分,如何有效地采集数据也是系统 的关键问题。OV7725集成了SCCB ( Serial Camera Control Bus)控制接口以访问片内寄存器。该芯片内部功能寄存器地址从0X00~0X7C(其中不少是保留寄存器)。通过对片内寄存器的读写可以方便地对图像帧频、曝光时间、增益进行控制。各寄存器的功能见参考文献。由于S3C2440处理器有一个专门的相机接口,所以CPU可以直接和CMOS图像传感器连接。图像传感器输出的数据及控制信号包括像素时钟( PCLK) 、水平参考(HREF)、帧同步(VSYNC)和数据总线(Y0~Y7) ,分别和主处理器的相应信号相连。PCLK与HREF在处理器内部相遇后产生有效的像素时钟信号,在有效时钟信号的上升沿将数据锁定。OV7725和S3C2440接口电路如图3-2所示。

图3-2 OV7725和S3C2440接口电路图

IICSDA IICSCL CAMRESET CAMCLKOUT CAMHREF CAMVSYNC CAMPCLK CAMDATA7 CAMDATA6 CAMDATA5 CAMDATA4 CAMDATA3 CAMDATA2 CAMDATA1 CAMDATA0 AGND DGND S3C2440 SIO-0 SIO-1 RESET XCLK1 HREF VSYNC PCLK Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 AGND DGND OV7725

10

西南科技大学城市学院本科生毕业论文

3.3 ARM处理器与液晶屏接口

液晶显示器LCD为英文Liquid Crystal Displayer的缩写,它是一种数字显示技术,可以通过液晶和彩色过滤光源,并在平面面板上产生图像。与传统的阴极射线管CRT相比,LCD占用空间小、功耗低、辐射低、无闪烁、降低视觉疲劳等优点,本设计选用LCD作为显示设备。

S3C2440处理器提供有LCD控制器,S3C2440的LCD控制器是由一个逻辑单元组成,它的作用是:把LCD图像数据从一个位于系统内存的video buffer传送到一个外部的LCD驱动器。LCD控制器使用一个基于时间的像素抖动算法和帧速率控制思想,可以支持单色,2位每像素(4级灰度)或者4位每像素(16级灰度)屏,并且它可以与256色(8BPP)和4096色(12BPP)的彩色STN LCD连接。它支持1BPP,2BPP,4BPP,8BPP的调色板TFT彩色屏,并且支持64K色(16BPP)和16M色(24BPP)非调色板真彩显示。

LCD控制器是可以编程满足不同的需求,如水平、垂直方向的像素数目,数据接口的数据线宽度,接口时序和刷新速率。 本设计中所使用的液晶屏是TFT LCD屏。

图3-3 S3c2440与LCD接口电路图

11

西南科技大学城市学院本科生毕业论文

3.4 本章小节

本章主要对图像采集系统的硬件系统做了系统设计,同时给出了图像传感器与ARM处理器之间的接口电路图。并介绍了ARM处理器与液晶屏接口。这样硬件搭建完成,为下一步的软件开发做好了准备。

12

西南科技大学城市学院本科生毕业论文

第四章 软件设计

4.1 图像数据采集系统软件总体设计

上面一章主要介绍了图像数据采集系统的硬件搭配,如何让硬件在我们的控制下正常工作,实现图像数据采集的目标,便是本章要做的工作。软件设计的模块方框图如图4-1所示。

图4-1 软件设计模块图

SCCB DATA VSYNHREF PCLK DMA 相机接口 S3C2440 处理器 中断 START AHB I/O Port SDRAM OV7725 图像传感器 LCD

S3C2440处理器初始化,通过GPIO模拟SCCB总线初始化OV7725图像传感器,使OV7725产生PCLK、HREF、VSYNC三个同步信号,S3C2440处理器初始化LCD显示器与相机接口,所有初始化完成后,处理器发出开始图像数据采集命令,VSYNC处于低电平时,开始图像数据采集,图像传感器随着三个同步信号,开始送出数据,并通过相机接口保存在SDRAM中,LCD通过LCD控制器以DMA方式在SDRAM中调出数据并显示在LCD上,当VSYNC处于高电平时,一帧图像数据采集完毕,系统会产生一个中断,并由处理器判断其为何种中断,决定图像采集是否继续。

为此,我们可把图像采集系统分为以下四个模块:ARM处理器初始化模块、

13

西南科技大学城市学院本科生毕业论文

相机接口模块、图像传感器模块和LCD显示模块。

4.2 相机程序

①相机接口概述

S3C2440A 中的CAMIF(相机接口)由7部份组成 – 多元仿真, 捕捉单位,预览缩放,编解码器缩放,预览DMA ,编解码器DMA 与SFR 。该CAMIF支持国际电联- R的BT.601/656 YCbCr 8位标准,最大输入尺寸4096x4096像素( 2048x2048像素缩放)和两个缩放存在。预览缩放致力于创造小尺寸图像PIP(画中画),编解码器缩放致力于产生图像编解码器有用的图像如平面型YCbCr 4:2:0或4:2:2 。两个主要的DMAs可以做镜相和旋转捕获的移动环境图像。这些特征在文件夹类型的手机中是非常有用的并且生成的测试图案在同步信号输入校准中是有用的,如 CAMHREF, CAMVSYNC. 此外,视频同步信号和像素时钟极性可以通过寄存器组在CAMIF处被转化。 ②相机接口特征

* 外部接口支持ITU-R BT. 601/656 8位模式 * DZI (数字变焦) 能力 *可编程极性视频同步信号

*最大值支持 4096 × 4096像素输入不缩放( 支持2048 × 2048像素输入缩放) *最大值支持4096 × 4096像素输出为编解码器路径 *最大值支持 640 x 480像素输出为预览路径 *镜头旋转( X轴, Y轴和180 °旋转)

*画中画和图像编解码器输入图像形式( 16/24位的RGB格式与YCbCr 4:2:0 / 4:2:2格式信号种类特点:

支持 ITU-R BT.601/656 8bit 模式外部接口,具有 DZI(Digital Zoom in)功能; 视频同步型号的极性可编程; 在没有缩放比例(scaling)时,支持 4096×4096 像素的输入;在有缩放比例时,支持 2048×2048 像素的输入; CODEC path 时,支持 4096×4096 像素输出, PREVIEW path 时,支持 640×480 像素输出; 支持图像的镜像和旋转的方式。

14

西南科技大学城市学院本科生毕业论文

信号种类如表4-1

表4-1 相机接口信号种类

名称 CAMPCLK 输入/输出 作用 描述 输入 - H/L H/L - - H/L 像素时钟,由相机处理器驱动 帧同步,由相机处理器驱动 水平同步,由相机处理器驱动 像素数据,由相机处理器驱动 相机处理器控制主时钟 相机处理器控制软件重启或关机 CAMVSYNC 输入 CAMHREF CAMDATA 输入 输入 CAMCLKOUT 输出 CAMRESET ④方框图

输出 CAMIF的方框图如图4-2所示。

图4-2

15

西南科技大学城市学院本科生毕业论文

⑤时序图

ITU-R BT 601时序图如图4-3所示。

图4-3 ITU-R BT 601时序图

⑥两个 DMA 路径

CAMIF有2个DMA路径。P路径(预览路径)和C 路径(编解码器路径),在AHB总线上是互相分隔的。由于系统总线,两个路径是独立的。P路径为PIP存储RGB图像数据到内存中。C路径为编解码器存储YCbCr 4:2:0或4:2:2图像数据到内存中,如MPEG-4,H.263等。这两个主要的路径支持变量应用,如DSC(数码相机) , MPEG - 4的视频会议,视频录制等例如,P路径图像可以用作预览图像,C 路径图像可被用作在数码相机应用中的JPEG图像。寄存器组可以单独禁用P路径或C路径。两个DMA路径如图4-5所示。

16

西南科技大学城市学院本科生毕业论文

图4-5 两个DMA路径

⑦时钟域

CAMIF有两个时钟域。一个是系统总线时钟,是HCLK 。另一种是像素时钟,是CAMPCLK 。系统时钟必须比像素时钟快。图4-6显示CAMCLKOUT必须从固定频率如USB PLL时钟中被分开。如果外部时钟振荡器被使用, CAMCLKOUT应浮动。内部缩放时钟是系统时钟。两个时钟域没有必要彼此同步。其他信号如CAMPCLK应同样连接到史密特触发电平转换器。

图4-6 CAMIF 时钟发生器

17

西南科技大学城市学院本科生毕业论文

⑧帧存储器

每个P和C路径的帧存储器由四个乒乓存储器组成,如图4-7 所示。 C路径乒乓存储器有三个存储元素-亮度Y,色度Cb和色度Cr。如果AHB总线通信量在一个水平行扫描周期内不够DMA完成操作,有可能导致不良运作。

图4-7 Ping-Pong 存储器体系

⑨寄存器设定时序图

帧捕捉命令的第一次寄存器设定可以发生在帧时期的任何地方。但是,建议你首先将其设置在CAMVSYNC(摄像视频同步)的―L‖状态,CAMVSYNC信息可以从SFR状态下读取。所有命令包括ImgCptEn ,在CAMVSYNC下降边缘是有效的。但是要小心,除了首次SFR的设置,所有的命令应编入一个ISR(中断服务程序)。特别是,当目标大小的相关信息被改变时捕捉作业应停止。设置时序如图4-8所示。

18

西南科技大学城市学院本科生毕业论文

图4-8 寄存器设置时序图

4.3 相机接口程序设计

相机接口程序设计主要是设计相机接口初始化程序,以此来完成对OV7725图像传感器的图像数据接收工作。如果没有正确初始化相机接口,那么所采集的图像数据就不能正常的保存下来,从而失去了图像数据采集的意义。图像传感器采集的视频数据通过 8 位视频数据总线进入微控制器数据接 口,由微控制器将此视频数据存 SDRAM 存储器。或将此图像压缩成 JPEG 格式再存人SDRAM 存储器,也可将此 JPEG 格式图像通过 USB(通用串行总线)总线上传给 PC 机。 微控制器通过控制接口来控制 CMOS 图像传感器,控制接口包括 IIC 总线和由微控制 器提供的 CMOS 图像传感器主时钟信号、复位信号及图像传感器的 HSYNC 和 VSYNC 信 号等。相机接口程序设计流程如图4-9所示。

19

西南科技大学城市学院本科生毕业论文

开始 设置球形控制寄存器 设置窗口选择寄存器 设置源格式寄存器

20

西南科技大学城市学院本科生毕业论文

开始 设置球形控制寄存器 设置窗口选择寄存器 设置源格式寄存器

图4-9 相机接口程序设计流程图

①主要变量介绍

相机接口初始化是相机接口程序设计的主要内容,在相机初始化时,会用到

21

西南科技大学城市学院本科生毕业论文

下面的一些变量,各自含义如下: CoDstWidth: Codec 路径的目标宽度 CoDstHeight: Codec 路径的目标高度 PrDstWidth: Preview 路径的目标宽度 PrDstHeight: Preview 路径的目标高度 WinHorOffset: 水平方向窗口偏移的大小 WinVerOffset: 垂直方向窗口偏移的大小 CoFrameBuffer: Codec DMA起始地址 PrFrameBuffer: Previe DMA起始地址

WinOfsEn: 窗口偏移使能,在窗口选择寄存器的第31位设置,当第31位值为0时,没有窗口偏移,当第31位值为1时,窗口偏移使能。缩放比例图解如图4-10所示。

图4-10 缩放比例图解

[5]

22

西南科技大学城市学院本科生毕业论文

Main Burst Size: 主脉冲大小 Remained Burst Size:保留脉冲大小 ②主要寄存器的配置 源格式寄存器(CISRCFMT)

4.4 OV7725图像传感器模块 OV7725传感器介绍

高敏感度、低功耗工作方式;

低电压供电,适合嵌入式便携产品的应用;支持标准的 SCCB 接口; 支持 SXGA、VGA、QVGA、QQVGA、CIF、QCIF、QQCIF 格式窗口图像;支持Raw RGB(RGB4:2:2)、YUV(4:2:2)和 YCbCr(4:2:2)格式图像;

支持自动图像控制函数,包括自动曝光控制(AEC)、自动增益控制(AGC)、自 动白平衡(AWB)、自动黑度校准(ABLC);

支持图像质量控制,包括色彩饱和度、色调、gamma 校正、锐度、镜头校正、降

噪;

0V7725关键参数

23

西南科技大学城市学院本科生毕业论文

CMOS图像传感器需要控制器S3C2440的驱动才能正常工作,并输出正确的图像数据。为了实现CMOS传感器和存储器(SDRAM)之间的快速传输,可以采用DMA方式。DMA是一种快速传送数据的机制 ,它不需要CPU的参与而实现高速外设和存储器之间自动成批交换数据的操作方式。在图像开始采集之前,S3C2440通过GPIO模拟SCCB总线初始化图像传感器OV7725,设置如扫描方式、数据格式等参数。当初始化完成之后就可以进行图像数据采集了。图像传感器模块程序设计流程图如图4-11所示。

开 始 S3C2440 GPIO初始化 时钟控制,设置UPLL、UCLK、CAMCLK的值 外部相机处理器复位 OV7725初始化,准备写入数据 设置OV7725寄存器的值 24 结 束 西南科技大学城市学院本科生毕业论文

图4-11 图像传感器模块程序设计流程图

SCCB总线是图像传感器OV7725与处理器S3C2440之间进行数据交换的通道,有必要对总线的数据传输过程了解清楚。SCCB 是OmniVision 公司定制的串行摄像头控制总线(Serial Camera Control Bus) ,它用于对摄像头的寄存器进行读写,以达到对摄像头输出图像的控制。两线制SCCB 与I2C 总线类似,是一种双向二线制同步串行总线。SCCB 的数据传输由主器件控制,主器件能够发出数据传输启动信号、时钟信号以及传送结束时的停止信号。通常主器件都是微处理器,它寻址访问的设备称为从器件。为了进行通讯,每个接到SCCB 的设备都有一个唯一的地址( ID) ,使用软件来识别总线上的从器件,省去了从器件的片选。因此,只需要两根线(串行时钟线SIO-C 和串行数据线SIO-D) ,挂接到总线上的器件就能相互进行信息传递,组成SCCB 的SIO-C 和SIO-D必须经过上拉电阻RP接到正电源上,连接到总线的器件的输出级必需为―开漏‖或―开集‖的形式,以便在多个主或从需求仲裁的情况下完成功能。在SCCB 协议中定义开始和停止条件如下:开始条件:在SIO-C为高电平时,SIO-D 出现一个下降沿,则SCCB 开始传输;停止条件:在SIO-C 为高电平时,SIO-D 出现一个上升沿,则SCCB 停止传输。除了开始和停止状态,在数据传输时,当SIO-C 为高电平时,必需保证SIO-D上的数据的稳定,也就是说,SIO-D 上的数据只能在SIO-C 为低电平时改变。

与I2C总线类似,完整的数据传输包括两个或三个阶段。每一阶段包中含9 位二进制数据,其中高8 位为所要传输的8 位数据,最低位根据主器件的数据传输是读操作还是写操作而确定。在进行主器件写操作时,全部阶段的最低位均是无关位(低或高电平均可) ;读操作时,第一阶段的最低位是无关位,第二阶段的最低位为NA。

在SCCB 协议中定义了两种写操作,即三相写操作和两相写操作。三相写操作是往从器件的目的寄存器中写入数据。在三相写操作中,第一阶段写从器件的8 位IDW 和无关位,第二阶段写从器件目标寄存器的8 位地址和无关位,第三阶段写要求写入寄存器的8 位数据和无关位; 两相写操作只有三相写操作的前两个阶段。两相写操作的目的是为了确定读操作中的从器件地址,这是因为两相读操作不能提供所要求读取的寄存器的地址。SCCB 协议定义了两读操作,它用于读取从器件目的寄存器中的数据。在第一阶段中写从器件读操作8 位IDR 和无关位,在第

25

西南科技大学城市学院本科生毕业论文

二阶段中读取寄存器中的8 位数据和写NA位 。在两阶段读循环操作前,必需有一个两相或三相的写循环操作,以提供读操作中的寄存器地址。

在此模块中需要编写如下几个函数:s3c2440_cam_gpio_init( )(GPIO初始化函数);s3c2440_camif_init( )(相机接口初始化函数);OV9650_init( )(图像传感器初始化函数);OV9650_config( )(图像传感器配置函数)。

至此,图像传感器模块编写完毕,可以进行通过处理器对图像传感器进行测试。

S3C2440A Camera接口寄存器

Camera 接口初始化

static void s3c2440_cam_gpio_init(void) {

//--- changed, hzh rGPJCON = 0x2aaaaaa; rGPJDAT = 0;

rGPJUP = 0; //pull-up enable }

void s3c2440_camif_init(void) {

26

西南科技大学城市学院本科生毕业论文

unsigned int upll, uclk, camclk,camclk_div;

camclk = get_camera_clk(); CLKCON |= CLKCON_CAMIF; ChangeUPllValue(56, 2, 1); //0x38==56

CLKDIVN |= DIVN_UPLL_EN; //UCLK=UPLL/2 upll = 96000000; uclk = (CLKDIVN & DIVN_UPLL_EN) ? upll/2 : upll;

printk(\ UCLK d CAMCLK d \\n\camclk); camclk_div = upll /( camclk * 2) -1 ;

CAMDIVN = CAMCLK_SET_DIV | (camclk_div & 0xf ) ; }

Camera 图像采集程序

void Test_CamPreview(void) {

Uart_Printf(\

//camera global variables

camTestMode=CAM_TEST_MODE_PVIEW; camCodecCaptureCount=0; camPviewCaptureCount=0; camPviewStatus=CAM_STOPPED; camCodecStatus=CAM_STOPPED; flagCaptured_P=0;

LCD_LTS350Q1_PE1_Init() ;

Uart_Printf( \

// Initialize Camera interface switch(USED_CAM_TYPE)

27

西南科技大学城市学院本科生毕业论文

{

case CAM_S5X532 : // defualt for test : data-falling edge, ITU601, YCbCr CamInit(640, 480, 240, 320, 112, 20, CAM_FRAMEBUFFER_C, CAM_FRAMEBUFFER_P); break;

case CAM_S5X3A1 : // defualt for test : data-falling edge, YCbCr CamInit(640, 480, 240, 320, 120, 100, CAM_FRAMEBUFFER_C, CAM_FRAMEBUFFER_P); rCISRCFMT = rCISRCFMT & ~(1<<31); // ITU656 //

rCIGCTRL &= ~(1<<26); // inverse PCLK, test pattern

break; //--- add by hzh case CAM_OV7620:

CamInit(240, 320, 240, 320, 0, 0, CAM_FRAMEBUFFER_C, CAM_FRAMEBUFFER_P); break; //--- default :

CamInit(640, 480, 320, 240, 0, 0, CAM_FRAMEBUFFER_C, CAM_FRAMEBUFFER_P); break; }

Uart_Printf(\

// Start Capture

rSUBSRCPND |= BIT_SUB_CAM_C|BIT_SUB_CAM_P; ClearPending(BIT_CAM); pISR_CAM = (U32)CamIsr; CamPreviewIntUnmask();

CamCaptureStart(CAM_PVIEW_SCALER_CAPTURE_ENABLE_BIT);

Uart_Printf(\

28

西南科技大学城市学院本科生毕业论文

while (1) {

if (flagCaptured_P) {

flagCaptured_P = 0; // }

if ( Uart_GetKey() == ESC_KEY ) break;

}

Uart_Printf(\

4.5 LCD显示模块

S3C2440A 的内置 LCD 控制器支持单色、每象素 2 位(4 级灰度)、每象素 4 位(16 级灰度)的黑白屏,也支持每象素 8 位(256 色)和每象素 12 为(4096 色)的彩色 LCD, 并且也支持每象素 16 位和每象素 24 位的真彩显示。 LCD 控制器可以通过编程选择支持不同的 LCD 屏的要求,例如行和列象素,数据总线 宽度,就口时序和刷新频率。LCD 控制器的主要作用是将定位于系统存储器的显示缓冲区 的 LCD 图像数据传送到外部 LCD 驱动器。 S3C2440A LCD的控制器

VFRAME/VSYNC/STV :LCD 控制器和 LCD 驱动器之间的帧同步信号。他通知 LCD 屏新的 一帧显示,LCD 控制器在一个完整帧的显示后发出 VFRAME 信号。

VLINE/HSYNC/CPV :LCD 控制器和 LCD 驱动器之间的同步脉冲信号,LCD 驱动器通过他 来将水平移位寄存器中的内容显示到 LCD 屏上。LCD 控制器在一整行数据全部传输到 LCD 驱动去后,插入一个 VLINE 信号。

VCLK/LCD_HCLK :此信号为 LCD 控制器和 LCD 驱动器之间的象素时钟信号,LCD 控制 器在 VCLK 的上升沿发送数据,LCD 驱动器在 VCLK 的下降沿采样数据。

VM:LCD 驱动器所使用的交流信号,LCD 驱动器使用 VM 信号改变用于打开或关闭象素的 行和列电压的极性,从而控制象素点的显示或熄灭。VM 信号可以与每个帧同步,也可以与 可变数量的 VLINE 信号同步。

29

西南科技大学城市学院本科生毕业论文

VD[23:0] :LCD 象素数据输出端口,也就是我们所说的 RGB 信号线。 LCD控制方框图如图4-12所示。

图4-12 S3C2440A 内部的 LCD 控制器的逻辑示意图

图4-13 LCD控制方框图

S3C2440 LCD控制器被用来传送视频数据和生成必要的控制信号,比如VFRAME, VLINE, VCLK, VM, 等等。除了控制信号外,这S3C2440还有作为视频数据的数

据端口,它们是如图4-12所示的VD[23:0]。LCD控制器由REGBANK, LCDCDMA,VIDPRCS, TIMEGEN, 和LPC3600组成。REGBANK由17个可编程的寄存器组和一块256*16的调色板内存组成,它们用来配置LCD控制器的。LCDCDMA是一个专用的DMA,它能自动地把在帧内存中的视频数据传送到LCD

30

西南科技大学城市学院本科生毕业论文

驱动器。通过使用这个DMA通道,视频数据在不需要CPU的干预的情况下显示在LCD屏上。VIDPRCS接收来自LCDCDMA的数据,将数据转换为合适的数据格式,比如说4/8位单扫,4位双扫显示模式,然后通过数据端口VD[23:0]传送视频数据到LCD驱动器。TIMEGEN由可编程的逻辑组成,支持不同的LCD驱动器接口时序和速率的需求。TIMEGEN块可以产生VFRAME, VLINE, VCLK, VM等。 LCD控制器的功能是通过程序设置相应的寄存器来实现。在这里我们用到了端口C、D控制寄存器(GPCCON、GPDCON)与其上拉控制寄存器(GPCUP、GPDUP),5个LCD控制寄存器(LCDCON),3个LCD帧缓冲器起始地址寄存器(LCDSADDR)。LCD显示模块程序设计流程如图4-13所示。

图4-14 LCD显示模块程序设计流程图

清除串口中的数据并计数复位 结 束 调整被测物体与摄像头之间 的距离为10CM 通过串口工具接收图像数据 并保存为文本文件 开 始 运行程序并采集一帧图像数据 图像数据经过MATLAB仿真 并还原为图像

程序设置如下:

rLCDCON1 =rLCDCON1 & 0x3fffe; // 禁止视频输出和LCD控制信号 rGPCUP=0xffffffff; // 禁用端口C上拉功能

rGPCCON=0xaaaa56a9; //初始化VD[7:0],LCDVF[2:0],VM,VFRAME,VLINE,VCLK,LEND

rGPDUP=0xffffffff; // 禁用端口D上拉功能 rGPDCON=0xaaaaaaaa; //初始化 VD[15:8] 设置LCD 5个控制寄存器

rLCDCON1=(CLKVAL_TFT_320240<<8)|(MVAL_USED<<7)|(3<<5)|(12<<1)|0;

31

西南科技大学城市学院本科生毕业论文

rLCDCON2=(VBPD_320240<<24)|(LINEVAL_TFT_320240<<14)|(VFPD_320240<<6)|(VSPW_320240);

rLCDCON3=(HBPD_320240<<19)|(HOZVAL_TFT_320240<<8)|(HFPD_320240); rLCDCON4=(MVAL<<8)|(HSPW_320240);

rLCDCON5=(1<<11)|(1<<9)|(1<<8)|(1<<3)|(BSWP<<1)|(HWSWP); 设置3个帧缓存器起始地址寄存器

rLCDSADDR1=(((U32)LCD_BUFFER_CAM>>22)<<21)|M5D((U32)LCD_BUFFER_CAM>>1);

rLCDSADDR2=M5D( ((U32)LCD_BUFFER_CAM+(SCR_XSIZE_TFT_320240*LCD_YSIZE_TFT_320240*2))>>1 );

rLCDSADDR3=(((SCR_XSIZE_TFT_320240-LCD_XSIZE_TFT_320240)/1)<<11)|(LCD_XSIZE_TFT_320240/1);

rLCDINTMSK|=(3); // 屏蔽LCD子中断 rTPAL=0; // 禁用临时调色板

rLCDCON1|=1;使能视频输出和LCD控制信号

4.6源代码文件说明

源代码文件说明如表4-2。

表4-2 源代码文件说明表

文件名 2440init.s 2440lib.c 2440slib.s main.c mmu.c Test-OV7725.c camproset.c camif.c LCD-LTV350QV-F05.c 功能 2440初始化程序 2440库文件程序 2440子库文件程序 图像采集的主程序 内存管理单元程序 OV7725测试程序 相机接口预设置程序 相机接口设置程序 LCD显示程序 32

西南科技大学城市学院本科生毕业论文

4.7 图形识别的算法

二值化的定义:图像的二值化,就是将图像上的像素点的灰度值设置为0或255,

也就是将整个图像呈现出明显的只有黑和白的视觉效果。

全局二值化

一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,最常用的方法就是设定一个全局的阈值T,用T将图像的数据分成两部

全局二值化

分:大于T的像素群和小于T的像素群。将大于T的像素群的像素值设定为白色(或者黑色),小于T的像素群的像素值设定为黑色(或者白色)。

局部二值化

全局二值化,在表现图像细节方面存在很大缺陷。为了弥补这个缺陷,出现了局部二值化方法。

局部二值化的方法就是按照一定的规则将整幅图像划分为N个窗口,对这N个窗口中的每一个窗口再按照一个统一的阈值T将该窗口内的像素划分为两部分,进行二值化处理。

局部自适应二值化

局部二值化也有一个缺陷。这个缺陷存在于那个统一阈值的选定。这个阈值是没有经过合理的运算得来,一般是取该窗口的平局值。这就导致在每一个窗口内仍然出现的是全局二值化的缺陷。为了解决这个问题,就出现了局部自适应二值化方法。

局部自适应二值化,该方法就是在局部二值化的基础之上,将阈值的设定更加合理化。该方法的阈值是通过对该窗口像素的平均值E,像素之间的差平方P,像素之间的均方根值Q等各种局部特征,设定一个参数方程进行阈值的计算,例如:T=a*E+b*P+c*Q,其中a,b,c是自由参数。这样得出来的二值化图像就更能表现出二值化图像中的细节。

二值化是图像处理的基本操作,任何图像处理基本离不开二值化的操作。其应用非常广泛,以二值图像处理为中心的图像处理系统很多,这主要是因为二值图像处理系统速度快,成本低;能定义几何学的各种概念;多值图像也可编程二

33

西南科技大学城市学院本科生毕业论文

值图像处理等。二值图像处理的流程如图所示。

灰度图像 二值化 连接成分的变形 图形特征测量 结构分析描述

分类 . 测量 识别 . 理解 4.8本章小节

本章对各个模块做了一定的简介,说明了各个模块的功能,以及如何实现各自的功能,给出了源代码的简单说明。使整个图像数据采集系统能够正常的运行。

34

西南科技大学城市学院本科生毕业论文

第五章 系统调试优化

5.1 优缺点

5.1.1本设计只能适用于测量精度要求不太高的场合,图像传感器OV7725支持的最高分辨率为640×480,为了得到更高的测量精度,可以选用分辨率更高的图像传感器。

5.1.2 当多个星形图形叠加在一起,无法检测你阴影部分,需要在后续实验中进行深层设计。

5.2 实物图

ARM(S3C2440)与CMOS构建的图像数据采集系统。

二值化的算法

在对图像数据二值化过程中,主要是对CAM_Y_BUFFER[1024][1280]数组元素逐个元素与阈值比较判断,如果在阈值范围内,就将该元素值赋予1,否则赋予255;这样将采集到的图像像素点灰度值是1或255。二值化程序如下: for(i=0; i<1024;i++) //图像行

35

西南科技大学城市学院本科生毕业论文

for(j=0;j<1280;j++) //图像列 {

if(CAM_Y_BUFFER[

i][j]>210) //对i行j列像素判断,210为获取特征图像的阈值

y_erzhi[i][j]=1; //在

阈值范围内的像点置为1

else

y_erzhi[i][j]=255; //在阈值范围内的像点置为255 }

经过二值化实验处理得到的图像

36

本文来源:https://www.bwwdw.com/article/5qr3.html

Top