FIFO芯片和单片机实现的图像采集系统

发布者:phi31最新更新时间:2012-05-29 来源: 单片机与嵌入式系统 关键字:点光源标杆  图像  FIFO  单片机 手机看文章 扫描二维码
随时随地手机看文章
引言
    在单片机应用系统中,由于图像采集速度、程序存储器和数据存储器的寻址空间的限制,要完整存储30 fps、640×480像素大小的一幅图像是相当困难的。本文运用较高性能的16位飞思卡尔单片机在超高频的情况下直接采集图像,也只能采集到每行320个像素,丢失图像,无法获得一幅完整的图像。本文通过在图像采集过程中增加FIFO芯片AL422B较好地解决了这一问题,相对于采用昂贵的DSP而言,降低了图像采集系统的成本。

1 单目点光源测距原理
    野外作业时,需要在运动中知道前方标杆和观察点之间的距离。本文将标杆制成等间距红外点光源标杆,满足了基于单帧静态图像的小孔成像原理测距模型要求,减少了图像处理量,提高了测量的实时性、全天候性。H为各点光源标杆的实际距离;n为点光源个数,它可以通过图像处理获得;f为摄像头焦距;标尺实际像素物理距离h由摄像头标定取得。远距离测距原理示意图如图1所示,整条点光源标杆都在摄像头视野范围内。近距离测距原理示意图如图2所示,点光源标杆只有部分在摄像头范围内。通过图1,可求出前方标杆与观察点的距离D。摄像机的成像几何关系也可用小孔成像原理来近似表示:
    a.JPG

b.JPG

c.JPG[page]

2 图像采集系统硬件设计
    根据单目视觉测距的要求,需要通过一黑白摄像头实时采集前车的点光源标杆,通过标尺上点光源所在的像素距离推算出前车距离。为了能完整地读取图像,本文增加了FIFO芯片,图像采集原理示意图如图3所示。由单片机监测摄像头的行/场信号,控制FIFO读取相应的图像;读完所有行后,关闭FIFO读取图像功能,开始由单片机从FIFO中读取图像数据,并进行相应的图像处理,根据图像处理的复杂程度,决定图像处理和图像采集的时间比。由于FIFO是先入先出,其读取数据时单片机只需通过中断使能行/场信号,绝大部分时间单片机可以用来进行图像处理。本文采取的是采集一帧图像后,单片机利用两帧图像的空闲时间和下一帧FIFO采集时间,共约3帧时间进行图像处理和控制,其结果是图像由原来的30 fps,变成10fps。尽管帧率慢了,但经过分析得知,在100 km/h情况下,滞后距离2.8 m,可以满足要求。

d.JPG


2.1 飞思卡尔16位单片机MC9S12DG128
    本文采用飞思卡尔1 6位单片机MC9S12DG128作为主控芯片,该芯片是Freescale公司推出的S12系列微控制器中的一款增强型、汽车级的16位微控制器,片内总线时钟频率最高可达25 MHz,集成了8 KB的RAM、128KB的Flash、2 KB的EEPROM,集成度高,资源也相当丰富。
2.2 摄像头芯片OV7670
    OV7670是OmniVision公司推出的Camerachiptm图像传感器,体积小,工作电压低。VGA图像最高达到30fps。其主要特性为:
    ◆感光阵列(共有656×488个像素,在YUV的模式中有效像素为640×480个);
    ◆高灵敏度适合低照度应用,对红外光线敏感;
    ◆标准的SCCB接口,兼容I2C总线接口;
    ◆RawRGB、RGB(GRB4:2:2,RGB565/555/444)、YUV(4:2:2)和YCbCr(4:2:2)输出格式;
    ◆支持VGA、CIF和从CIF到40×30的各种尺寸。
2.3 FIFO芯片AL422B
    AL422B是AverLogic公司推出的一个存储容量为393 216字节×8位的FIFO存储芯片。其所有的寻址、刷新等操作都由集成在芯片内部的控制系统完成,AL422B内部功能结构框图如图4所示。

e.JPG


    AL422B主要特点是:
    ◆AL422B的存储体为3 Mb(393 21 6字节×8位);
    ◆可以存储VGA、CCIR、NTSC、PAL和HDTV等制式一帧图形的信息;
    ◆独立的读写操作,可以接受不同的I/O速率;
    ◆高速异步串行存取;
    ◆读写周期为20 ns;
    ◆存取时间为15 ns;
    ◆内部DRAM自刷新。

[page]

3 图像采集系统程序设计
3.1 系统实现
    要想在单片机应用系统中实现数字图像的静态存储,必须解决存储速度和存储容量两大问题。对于速度问题,需要对OV7670的数据输出时序进行分析,使其满足要求。VGA时序图如图5所示。其中PCLK为像素时钟,频率与主频一致,即27 MHz,上升沿时数据输出有效;VSYNC为场信号;

f.JPG


    HREF为水平参考信号,当像素在窗口有效时为高电平,否则为低电平;HSYNC为行信号;D[7:0]为8位数据输出。
    AL422B写操作时序图如图6所示,WCK为AL422B的写入时钟,周期最大为1000 ns,最小为20 ns(对应主频50 MHz);其上升沿时数据写入,随着该时钟输入其内部,写指针自动增加。可见,AL422B的速度满足设计要求。具体操作时,由单片机的I/O口控制AL422B的写使能/WE,使其为低电平,使能写功能,数据端DI7~0在WCK上升沿时将数据写入。写完一副图像后,由单片机的I/O口控制写复位/WRST,使其为低电平,使能复位,数据写入地址指针将回到0地址位。

g.JPG


    AL422B读操作时序图如图7所示。RCK为AL422B的读出时钟,周期最大为1000 ns,最小为20 ns,当/RE和/OE有效时,在其上升沿数据有效,随着该时钟输入,其内部的读指针自动增加。当单片机的主频为25 MHz时,还不能直接给OV7670的系统时钟XCLK提供时钟,我们采用外部晶振提供27 MHz的同频信号给OV7670。

h.JPG

[page]

    图像采集电路原理图如图8所示。OV7670的像素时钟PCLK直接和AL422B的数据读入时钟WCK相连,具体操作时,由单片机的I/O口控制AL 422B的读使能/RE和输出数据使能/OE,使它们为低电平;使能数据读出功能,数据端DO7~0在RCK上升沿时将数据输出给单片机。读完一副图像后,由单片机的I/O口控制写复位/RRST,使其为低电平,使能复位,数据读出地址指针将回到0地址位。

i.JPG


3.2 程序设计
    程序设计流程如图9所示。当单片机检测到场信号更新后,开始监测行信号到达,之后使能/WE,开始顺序读取图像。读完一帧图像后关闭/WE,单片机使能/RE,开始读取首行图像中的640个像素。本文采取边读边处理的方式,较好地解决了一帧图像多达3 MB的问题。点光
源标杆发出的红外光线在图像上呈现出若干个光晕区域,找到光晕中心就可以找到点光源的图像坐标,为此在读取的同时将各像素点与阈值进行比较,小于阈值的为疑似点光源并记录对应坐标;当读取完一行像素时,得到的将是一组疑似点光源坐标的像素位置,将其进行统计求平均,得出点光源在该行的坐标,最多12个字节(正面标杆6个,某侧标杆6个),远远小于整行640个字节。

j.JPG


    当读取完一帧像素时,得到最多12×480个字节,单片机64 KB的容量完全可以存储,最后将行求平均,得出最终的点光源坐标。经验证,所需总时间在2.15帧图像内完成。

结语
    文中讨论了基于FIFO芯片和单片机实现的点光源图像采集系统,描述了单目点光源测距原理、图像采集系统硬件和软件设计方法,着重介绍了FIFO芯片在图像采集中的桥梁作用。通过系统样机检验,能够满足要求,达到了预期效果。

关键字:点光源标杆  图像  FIFO  单片机 引用地址:FIFO芯片和单片机实现的图像采集系统

上一篇:基于USB2.0单片机的全数字图像的实时采集设计
下一篇:单片机的扩展RAM读写时序实验

推荐阅读最新更新时间:2024-03-16 13:00

51单片机片内数据存储器分为哪几个性质和用途不同的区域?
8051内部128B的数据RAM区,包括有工作寄存器组区、可直接位寻址区和数据缓冲区。各区域的特性如下: (1)00H~1FH为工作寄存器组区,共分4组,每组占用8个RAM字节单元,每个单元作为一个工作寄存器,每组的8个单元分别定义为8个工作寄存器R0~R7。当前工作寄存器组的选择是由程序状态字PSW的RS1、RS0两位来确定。如果实际应用中并不需要使用工作寄存器或不需要使用4组工作寄存器,不使用的工作寄存器组的区域仍然可作为一般数据缓冲区使用,用直接寻址或用Ri的寄存器间接寻址来访问。 (2)20H~2FH为可位寻址区域,这16个字节的每一位都有一个地址,编址为00H~7FH。 当然,位寻址区也可以用作字节寻址的一般
[单片机]
关于PIC单片机的一些经验总结
为了给前一段时间学习PIC16F616型单片机的一个总结和方便大家的交流,我写了这篇关于PIC单片机的学习心得,都是在看了手册和编程调试后用自己的语言组织的,其中有不足或者有疑问的地方希望大家能及时的给予纠正和批评,提出宝贵的意见. 2.PIC单片机的概述 PIC16F616是一款14引脚、8位的CMOS单片机.采用精简指令集,仅有35条指令,由于采用了数据总线和指令总线分离的哈佛总线结构,使得除少量指令不是单周期之外,大部分的指令都是单周期指令.这样有利于提高单片机的运行速度和执行效率. PIC16F616这款单片机供电电压可以在2V到5.5V之间,内部集成了一个RC振荡器,频率可以配置成8MHZ或者4MHZ,也可以用外部
[单片机]
PIC单片机与AM2302温湿度传感器通信优化
AM2302温湿度传感器采用单总线方式与MCU通信,这就要求MCU有一定的处理速度, 才能正确解析收到的AM2302发送过来的数据。 MCU处理AM2302数据的方式 AM2302一次传送40位数据给MCU。数据位0由50微妙低电平加26微妙高电平组成。 数据位1有50微妙低电平加70微妙高电平组成。这种编码方式有点象NEC的红外传输协议。 另外AM2302需要由MCU发起启动信号。所以针对这种单线协议,虽然可以采用电平变化中断+计数器,或输入捕捉来解析40位数据位。但这就需要切换端口的输入输出配置及控制相应外设的介入时机。 本文介绍的方法采用简单的端口读+延时操作来解析40位数据位。 if (data_po
[单片机]
利用MSP430单片机进行SD卡初始化-实战应用(一)
~~首先吐槽一下CSDN的MarkDown编辑器,实在是不习惯,又改回来了……人家说我没文化,MarkDown本来就是纯阅读没那么多花里胡哨的,好吧那我就是喜欢花里胡哨 ———————————————————————————————————————————————————————————————————————————— 利用MSP430F5438A进行SD卡初始化 手头材料: MSP430F5438A开发板一个 SD卡开发板一个 8GB SDHC卡一张 首先,回顾一下在理论解说(文章链接)中提到的几个注意事项: 1. 与SD卡建立SPI通信的时钟频率在20MHz~25MHz之间 那么在建立SPI通信的代码当中首先
[单片机]
求一种STM32单片机玩转TFTLCD彩屏设计方案
一、功能简介 本项目使用Proteus8.12仿真STM32单片机控制器,使用ST7735R彩屏模块等。 主要功能如下: (1)汉字字符显示; (2)2D图形显示; (3)图片显示; 二、软件设计 //显示界面1--汉字字符显示 void _show_demo1(void) { FRONT_COLOR=WHITE; LCD_ShowString(10,10,tftlcd_data.width,tftlcd_data.height,12, Hai XiaoYi ); FRONT_COLOR=RED; LCD_ShowString(10,30,tftlcd_data.width,tftlcd_data.height,16, Hai
[单片机]
求一种STM32<font color='red'>单片机</font>玩转TFTLCD彩屏设计方案
将程序下载到单片机
首先,我们要把硬件连接好,把板子插到我们的电脑上,打开设备管理器查看所使用的是哪个 COM 口,如图 2-21 所示,找到“USB-SERIAL CH340(COM5)”这一项,这里最后的数字就是开发板目前所使用的 COM 端口号。 图 2-21 查看COM口 然后 STC 系列单片的下载软件——STC-ISP,如图 2-22 所示。 图2-22 程序下载设置 下载软件列出了 5 个步骤:第一步,选择单片机型号,我们现在用的单片机型号是STC89C52RC,这个一定不能选错了;第二步,点击“打开程序文件”,找到我们刚才建立工程的那个 lesson2 文件夹,找到 LED.hex 这个文件,点击打开;第三步,选择刚才查到的
[单片机]
将程序下载到<font color='red'>单片机</font>
基于C8051F040单片机的温度测控系统设计
  温度遥控遥测是远程实现对温度的测量与控制,特别适合那些环境恶劣,测量人员不容易接近的场合,近年来在工农业生产中应用广泛。根据遥控遥测系统的特点,提出了对水温遥控遥测的设计方案。   1 总体方案设计   温度遥控遥测系统主要由微处理器系统、测温模块、加热模块、通信模块、液位模块以及上位机软件等组成。系统构成如图1所示。      测温模块测量液体温度后,把温度数值发送给微处理器,当温度变化达到一定值后,加热模块开始加热,首先可以在设定的时间内,加热到设定的温度并稳定在该温度一段时间。系统还可以按照设计好的各温度节点进行分段折线加热,精度很高。测液位模块实时测量液体液位,并传给微处理器。系统通过两个通信模块实现遥测遥控,
[单片机]
基于C8051F040<font color='red'>单片机</font>的温度测控系统设计
英飞凌新推8/16/32位微控制器,面向工业应用
英飞凌科技股份有限公司近日在国际集成电路展览会上(IIC)宣布推出全新微控制器(MCU)产品。全新闪存MCU,包括8位、16位和32位TriCore系列器件,经过优化,可满足工业应用的苛刻要求。 英飞凌MCU适用于电机控制系统,使工程师能提高工业驱动设备的能源效率与性能。英飞凌MCU具有较好的实时性能(如对外部事件的响应时间)。据称,与带有众多外部组件(如DSP、PWM ASIC、ADC、外部振荡器和微控制器等)的传统解决方案相比,高度集成的MCU可以削减高达40%的系统成本。除了使系统可靠性更高之外,电控驱动装置的广泛应用估计还可在全球范围内节省高达20%的电能消耗。 据市场研究公司IMS的报告称,英飞凌在全球工业半导体市场
[新品]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved