基于cmos图像传感器的视觉导航智能小车设计毕业论文(编辑修改稿)内容摘要:

LM2940 低压差稳压芯片克服了早期稳压芯片的缺点。 与其它的稳压芯片一样, LM2940 需要外接一个输出电容来保持输出的稳定性。 出于稳定性考虑,需要在稳压输出端和地之间接一个 22uF低等效电阻的电容器。 舵机额定工作电压是 6V,此时舵机的滞后常数很大,在毫秒级上。 我们测量了电机的内阻(不考虑感性因素)为 2Ω,综合电机的功率以及电池电压10%的波动,简单计算了一下在 9V 以下电 机 都能工作。 经过大量的测试,最终发现在电池电压不低于 时,舵机电源使用 7V 时,舵机的滞后常舵机 控制器编码器 传感器 5V 5V 7V 电 池 10 数将大大减小。 灵敏性将大大提高,所以舵机使用 7V电源。 使用两片 LM2940分别向传感器、控制器和编码器供电。 使用一片 LM2940 和 3 个整流二极管1N4007 将电压抬高到 7V 向舵机供电。 为了防止电源电压接反,利用二极管D1作为防反接保护二极管。 电路图如图 5 所示 控制 电路 此部分是整个智能小车的核心部分,起着控制小车所有运行状态的作用。 控制的方法有很多,但大多选用单片机作为控制。 由于 51 单片机具有 价格低廉操作简单的特点 ,这里选择 ATMEL 公司成产的 AT89C51 作为控制的核心部件 .其管脚定义如下: VCC:供电电压。 GND:接地。 P0 口: P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。 当 P1 口的管脚第一次写 1 时,被定义为高阻输入。 P0 能够用于外部程序数据存储器,它可以被定义为数据 /地址的第八位。 在 FIASH 编程时, P0 口作为原码输入口,当 FIASH 进行校验时, P0 输出原码,此时 P0 外部必须被拉高。 P1 口: P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口, P1 口缓冲器 能接收输出 4TTL 门电流。 P1 口管脚写入 1 后,被内部上拉为高,可用作输入, P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。 在 FLASH编程和校验时, P1 口作为第八位地址接收。 P2 口: P2 口为一个内部上拉电阻的 8 位双向 I/O 口, P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写 “1”时,其管脚被内部上拉电阻拉高,且作 11 为输入。 并因此作为输入时, P2 口的管脚被外部拉低,将输出电流。 这是由于内部上拉的缘故。 P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时, P2 口输出地址的高八位。 在给出地址 “1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时, P2 口输出其特殊功能寄存器的内容。 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口: P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL门电流。 当 P3 口写入 “1”后,它们被内部上拉为高电平,并用作输入。 作为输入,由于外部下拉为低电平, P3 口将输出电流( ILL)这是由于上拉的缘故。 P3 口也可作为 AT89C51 的一些特殊功能口,如下表所示: 管脚 备选功能 RXD(串行输入口) TXD(串行输出口) /INT0(外部中断 0) /INT1(外部中断 1) T0(记时器 0 外部输入) T1(记时器 1 外部输入) /WR(外部数据存储器写选通) /RD(外部数据存储器读选通) P3 口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。 当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 在 FLASH 编程期间,此引脚用于输入编程脉冲。 在平时, ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。 因此它可用作对外部输出的脉冲或用于定时目的。 然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。 如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。 此时, ALE 只有在执行 MOVX, MOVC 指令是 ALE 才起作用。 另外,该引脚被略微拉高。 如果微处理器在外部执行状态 ALE 禁止,置位无效。 /PSEN:外部程序存储器的选通信号。 在由外部程序存储器取指期间,每个机器周期两次 /PSEN 有效。 但在访问外部数据存储器时,这两次有效的 /PSEN 信号将不出现。 EA/VPP :当 /EA 保 持 低 电 平 时 , 则 在 此 期 间 外 部 程 序 存 储 器( 0000HFFFFH),不管是否有内部程序存储器。 注意加密方式 1 时, /EA 将内部锁定为 RESET;当 /EA 端保持高电平时,此间内部程序存储器。 在 FLASH 编程期间,此引脚也用于施加 12V编程电源( VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出 单片机管脚如图 6 所示: 12 V c c4 03 93 83 73 63 53 43 33 23 13 02 92 82 72 62 52 42 32 22 1P 0 . 0P 0 . 1P 0 . 2P 0 . 3P 0 . 4P 0 . 5P 0 . 6P 0 . 7/ E AA L E/ P S E NP 2 . 7P 2 . 6P 2 . 5P 2 . 4P 2 . 3P 2 . 2P 2 . 1P 2 . 01234567891 01 11 21 31 41 51 61 71 81 92 0P 1 . 0P 1 . 1P 1 . 2P 1 . 3P 1 . 4P 1 . 5P 1 . 6P 1 . 7R E S E TP 3 . 0P 3 . 1P 3 . 2P 3 . 3P 3 . 4P 3 . 5P 3 . 6P 3 . 7X T A L 2X T A L 1V s s 对于单片机的晶振电 路和复位电路的设计如下图 7: 13 30pf3 0 p fC1C 2G N D1 1 . 0 5 9 2 mX T A L 1 X T A L 2 晶振电路 2 0 01 k1 0 u f+R S T 复位电路 循迹 电路 本文采用的 CMOS 摄像头是一种以 CMOS 感光器件为主的高分辨率、低功耗图像传感器,为了减少硬件系统开销,选用数据量较少的黑白摄像头也可满足要求。 面阵 CMOS 摄像头采用行扫描模式,每行信号为持续约 56us 的电压模拟量,根据采样点的灰度值输出不同电平,并经过 A/D 转换输入控制器。 由于赛道是白色背景黑色引导线, 为区分黑线和白色赛道背景并过滤其他干扰信息,可取黑、白两个阈值带分别对应于黑色引导线与白色背景的值。 确定阈值带的宽度和基值时应考虑不同光线和不同摄像头型号,以满足在各种光线条件下谁都能准确识别黑色引导线。 循迹模块采用 CMOS 图像传感器作为采集视频信号的主控芯片。 由于 CCD目前的技术比较成熟,在尺寸方面也具有一定的优势(由于工艺方面的原因CMOS 的尺寸无法做的很大),但其工艺复杂、成本 高、耗电量大、像素提升难度大等问题也是不可否认的。 而 CMOS 由于制造工艺简单,因此可以在普通半导体生产线上进行生产,其制造 成本比较低廉。 故采用 CMOS 图像传感器。 OV7620 是一款 CMOS 摄像头器件,是一款彩色 CMOS 型图像采集集成芯片,提供高性能的单一小体积封装,该器件分辨率可以达到 640X480,传输速率可以达到 30 帧。 内置 10 位双通道 A/D 转换器 ,输出 8 位图像数据。 具有 14 自动增益和自动白平衡控制 ,能进行亮度、对比度、饱和度、 γ 校正等多种调节功能。 其视频时序产生电路可产生行同步、场同步、混合视频同步等多种同步信号和像素时钟等多种时序信号。 5V 电源供电 ,工作时功耗 120mW,待机时功耗 10μW。 它支持连续和隔行两种扫描方式 , VGA 与 QVGA 两种图像格式;最高像素为 664492,帧速率为 30fps;数据格式包括 YUV、 YCrCb、RGB 三种,能够满足一般图像采集系统的要求。 OV7620 图像传感器的管脚图如下 图 8: OV7620 内部可编程功能寄存器的设置有上电模式和 SCCB 编程模式。 OV7620 的控制采用 SCCB(Serial Camera ControlBus)协议。 SCCB 是简化的 I2C协议, SIOI 是串行时钟输入线, SIOO 是串行双向数据线,分别相当于 I2C 协议的 SCL 和 SDA。 SCCB 的总线时序与 I2C 基本 相同,它的响应信号 ACK 被称为一个传输单元的第 9 位,分为 Don’t care 和 NA。 Don’t care 位由从机产生; NA位由主机产生,由于 SCCB 不支持多字节的读写, NA 位必须为高电平。 另外, 15 SCCB 没有重复起始的概念,因此在 SCCB 的读周期中,当主机发送完片内寄存器地址后,必须发送总线停止条件, 不然在发送读命令时,从机将不能产生 Don’t care 响应信号。 OV7620 功能寄存器的地址为 0x00~ 0x7C(其中,不少是保留寄存器 )。 通过设置相应的寄存器,可以使 OV7620 工作于不同的模式。 例如,设置 OV7620 为连续扫描、 RGB 原始数据 16 位输出方式,需要进行如下设置: I2CSendByte()为写寄存器函数,它的第 1 个参数 OV7620 为宏定义的芯片地址 0x42,第 2 个参数为片内寄存器地址,第 3 个参数为相应的寄存器设定值。 OV7620有 4个同步信号: VSYNC(垂直同步信号 )、 FODD (奇数场同步信号 )、HSYNC(水平同步信号 )和 PCLK(像素同步信号 )。 当采用连续扫描方式时,只使用 VSYNC 和 HSYNC、 PCLK 三个同步信号,还引入了 HREF 水平参考信号。 LPC2210 的 3 个外部中断引脚分别 作为 3 个同步信号的输入,相应的中断服务程序分别为 Vsync_IRQ()、 Hsync_IRQ()和 Pclk_IRQ()。 在内存中定义一个二维数组存储图像数据,一维用变量 y 表示,用于水平同步信号计数;二维用变量 x表示,用于像素同步信号计数。 图像采集的基本流程 当用 SCCB 初始化好 OV7620 后,使能 VSYNC 对应的中断,在 Vsync_IRQ()中断服务程序中判断是否已取得一帧数据。 若是,则在主程序的循环体中进行数据处理;若不是,则使能 HSYNC 对应的中断,并将 y 置为 O。 在 Hsync_IRQ()中断服务程序中, 判断 HREF 的有效电平,若有效,则 y 加 1, x 置为 O,并使能 PCLK 对应的中断。 在 Pclk_IRQ()中断服务程序中,判断 HREF 的有效电平,若有效,则 z 增加,同时采集一个像素点的图像数据。 在 OV7620 的 3 个同步信号中, PCLK 的周期最短。 当 OV7620 使用 27 MHz的系统时钟时,默认的 PCLK 的周期为 74 ns。 而 LPC2210 的中断响应时间远远大于这个值。 LPC2210 的最大中断延迟时问为 27 个处理器指令周期,最小延迟时问为 4 个指令周期,再加上中断服务时间、现场恢复时间等,完成一次中断响应的时问要 大于 7~ 30 个指令周期。 当 LPC2210 使用最高系统频率 60 MHz 时,它的中断响应时间远大于 O. 2~ 0, 6 us,所以只能将 OV7620 的 PCLK 降频。 通过设置时钟频率控制寄存器,可将 PCLK 的周期设为 4us 左右。 OV7620 采用 16 位输出方式时, Y通道和 UV 通道数据输出格式如表 l 所列。 从表 l 中可以看出,每一行 Y 通道和 UV 通道交替输出上一行重复数据和本行新数据。 而在一行之内, B 数据只在奇数列出现, R 数据只在偶数列出现。 表 1 ov7620 16 位输出格式 R C 1 2 3 4 …… 通道 1 …… UV B11 G12 B13 G14 …… Y 2 G21 R22 G23 R24 …… UV B11 G12 B13 G14 …… Y 16 3 G21 R22 G23 R24 …… UV B31 G32 B33 G34 …… Y CMOS 图像传感器的工作原理图如图 9 所示: 光 敏 单 元 阵 列 行 选 择模 拟 数 字 转 换 电 路模 拟 信 号 处 理 电 路列 选 及 放 大视 频 时 序 产 生 电 路 曝 光 、 白 平 衡 等 控。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。