
FIFO和单片机视频采集.doc
7页在单片机应用系统中,由于图像采集速度、程序存储器和数据存储器的寻址空间的限制,要完整存储30 fps、640×480像素大小的一幅图像是相当困难的本文运用较高性能的16位飞思卡尔单片机在超高频的情况下直接采集图像,也只能采集到每行320个像素,丢失图像,无法获得一幅完整的图像本文通过在图像采集过程中增加 FIFO 芯片 AL422B 较好地解决了这一问题,相对于采用昂贵的 DSP 而言,降低了图像采集系统的成本1 单目点光源测距原理野外作业时,需要在运动中知道前方标杆和观察点之间的距离本文将标杆制成等间距红外点光源标杆,满足了基于单帧静态图像的小孔成像原理测距模型要求,减少了图像处理量,提高了测量的实时性、全天候性H 为各点光源标杆的实际距离;n 为点光源个数,它可以通过图像处理获得;f 为摄像头焦距;标尺实际像素物理距离 h 由摄像头标定取得远距离测距原理示意图如图1所示,整条点光源标杆都在摄像头视野范围内近距离测距原理示意图如图2所示,点光源标杆只有部分在摄像头范围内通过图1,可求出前方标杆与观察点的距离 D.摄像机的成像几何关系也可用小孔成像原理来近似表示:2 图像采集系统硬件设计根据单目视觉测距的要求,需要通过一黑白摄像头实时采集前车的点光源标杆,通过标尺上点光源所在的像素距离推算出前车距离。
为了能完整地读取图像,本文增加了 FIFO芯片,图像采集原理示意图如图3所示由单片机监测摄像头的行/场信号,控制 FIFO 读取相应的图像;读完所有行后,关闭 FIFO 读取图像功能,开始由单片机从 FIFO 中读取图像数据,并进行相应的图像处理,根据图像处理的复杂程度,决定图像处理和图像采集的时间比由于 FIFO 是先入先出,其读取数据时单片机只需通过中断使能行/场信号,绝大部分时间单片机可以用来进行图像处理本文采取的是采集一帧图像后,单片机利用两帧图像的空闲时间和下一帧 FIFO 采集时间,共约3帧时间进行图像处理和控制,其结果是图像由原来的30 fps,变成10fps.尽管帧率慢了,但经过分析得知,在100 km/h 情况下,滞后距离2.8 m,可以满足要求2.1 飞思卡尔16位单片机 MC9S12DG128本文采用飞思卡尔1 6位单片机 MC9S12DG128作为主控芯片,该芯片是 Freescale 公司推出的 S12系列微控制器中的一款增强型、汽车级的16位微控制器,片内总线时钟频率最高可达25 MHz,集成了8 KB 的 RAM、128KB 的 Flash、2 KB 的 EEPROM,集成度高,资源也相当丰富。
2.2 摄像头芯片 OV7670OV7670是 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 芯片 AL422BAL422B 是 AverLogic 公司推出的一个存储容量为393 216字节×8位的 FIFO 存储芯片其所有的寻址、刷新等操作都由集成在芯片内部的控制系统完成,AL422B 内部功能结构框图如图4所示AL422B 主要特点是:◆AL422B 的存储体为3 Mb(393 21 6字节×8位);◆可以存储 VGA、CCIR、NTSC、PAL 和 HDTV 等制式一帧图形的信息;◆独立的读写操作,可以接受不同的 I/O 速率;◆高速异步串行存取;◆读写周期为20 ns;◆存取时间为15 ns;◆内部 DRAM 自刷新。
3 图像采集系统程序设计3.1 系统实现要想在单片机应用系统中实现数字图像的静态存储,必须解决存储速度和存储容量两大问题对于速度问题,需要对 OV7670的数据输出时序进行分析,使其满足要求VGA 时序图如图5所示其中 PCLK 为像素时钟,频率与主频一致,即27 MHz,上升沿时数据输出有效;VSYNC 为场信号;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地址位AL422B 读操作时序图如图7所示RCK 为 AL422B 的读出时钟,周期最大为1000 ns,最小为20 ns,当/RE 和/OE 有效时,在其上升沿数据有效,随着该时钟输入,其内部的读指针自动增加。
当单片机的主频为25 MHz 时,还不能直接给 OV7670的系统时钟 XCLK 提供时钟,我们采用外部晶振提供27 MHz 的同频信号给 OV7670图像采集电路原理图如图8所示OV7670的像素时钟 PCLK 直接和 AL422B 的数据读入时钟 WCK 相连,具体操作时,由单片机的 I/O 口控制 AL 422B 的读使能/RE 和输出数据使能/OE,使它们为低电平;使能数据读出功能,数据端 DO7~0在 RCK 上升沿时将数据输出给单片机读完一副图像后,由单片机的 I/O 口控制写复位/RRST,使其为低电平,使能复位,数据读出地址指针将回到0地址位3.2 程序设计程序设计流程如图9所示当单片机检测到场信号更新后,开始监测行信号到达,之后使能/WE,开始顺序读取图像读完一帧图像后关闭/WE,单片机使能/RE,开始读取首行图像中的640个像素本文采取边读边处理的方式,较好地解决了一帧图像多达3 MB 的问题点光源标杆发出的红外光线在图像上呈现出若干个光晕区域,找到光晕中心就可以找到点光源的图像坐标,为此在读取的同时将各像素点与阈值进行比较,小于阈值的为疑似点光源并记录对应坐标;当读取完一行像素时,得到的将是一组疑似点光源坐标的像素位置,将其进行统计求平均,得出点光源在该行的坐标,最多12个字节(正面标杆6个,某侧标杆6个),远远小于整行640个字节。
当读取完一帧像素时,得到最多12×480个字节,单片机64 KB 的容量完全可以存储,最后将行求平均,得出最终的点光源坐标经验证,所需总时间在2.15帧图像内完成结语文中讨论了基于 FIFO 芯片和单片机实现的点光源图像采集系统,描述了单目点光源测距原理、图像采集系统硬件和软件设计方法,着重介绍了 FIFO 芯片在图像采集中的桥梁作用通过系统样机检验,能够满足要求,达到了预期效果。












