0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FIFO芯片和MC9S12DG128单片机实现图像采集系统的设计

电子设计 作者:电子设计 2018-11-27 08:40 次阅读

引言

单片机应用系统中,由于图像采集速度、程序存储器和数据存储器的寻址空间的限制,要完整存储30 fps、640×480像素大小的一幅图像是相当困难的。本文运用较高性能的16位飞思卡尔单片机在超高频的情况下直接采集图像,也只能采集到每行320个像素,丢失图像,无法获得一幅完整的图像。本文通过在图像采集过程中增加FIFO芯片AL422B较好地解决了这一问题,相对于采用昂贵的DSP而言,降低了图像采集系统的成本。

1 单目点光源测距原理

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

基于FIFO芯片和MC9S12DG128单片机实现图像采集系统的设计

基于FIFO芯片和MC9S12DG128单片机实现图像采集系统的设计

基于FIFO芯片和MC9S12DG128单片机实现图像采集系统的设计

2 图像采集系统硬件设计

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

基于FIFO芯片和MC9S12DG128单片机实现图像采集系统的设计

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所示。

基于FIFO芯片和MC9S12DG128单片机实现图像采集系统的设计

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位数据输出。

基于FIFO芯片和MC9S12DG128单片机实现图像采集系统的设计

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

基于FIFO芯片和MC9S12DG128单片机实现图像采集系统的设计

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

基于FIFO芯片和MC9S12DG128单片机实现图像采集系统的设计

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

基于FIFO芯片和MC9S12DG128单片机实现图像采集系统的设计

3.2 程序设计

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

基于FIFO芯片和MC9S12DG128单片机实现图像采集系统的设计

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

结语

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    453

    文章

    50360

    浏览量

    421639
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632696
  • 图像采集
    +关注

    关注

    2

    文章

    299

    浏览量

    41252
收藏 人收藏

    评论

    相关推荐

    基于MC9S12DG128单片机的智能寻迹车设计

    单片机控制的只能寻迹车系统。该系统MC9S12DG128为控制核心,采用CCD图像传感器检测路面信息,利用加速度传感器检测加速度,采用红外
    发表于 10-27 12:58

    MC9S12DG128 ECT中断问题

    我在调试MC9S12DG128的ECT模块的时候,使用到了定时器通道0和1的中断,为什么当我使用TSCR2_PR寄存器进行分频时,程序就执行不下去,而不调用这句话的时候程序就能够执行呢??求大神指点
    发表于 08-18 16:01

    MC9S12DG128的一些基础资料

    MC9S12DG128的一些基础资料
    发表于 08-19 20:00

    MC9S12DG128通过 继电器 的开合来控制 电磁阀 的程序

    现在在学习飞思卡尔单片机。想找一个MC9S12DG128通过继电器的开合来控制电磁阀的程序。求各位大神们帮忙。
    发表于 11-19 11:18

    单片机MC9S12DG128B相关资料分享

    MC9S12DG128B是一款使用16位HCS12内核单片机,它隶属于飞思卡尔单片机S12系列,其内核为CPU
    发表于 04-14 06:53

    MC9S12DG128微处理器芯片相关资料推荐

    概述:MC9S12DG128是飞思卡尔半导体公司生产的一款微处理器芯片。它为112脚LQFP工艺封装。
    发表于 05-19 06:25

    MC9S12DT128 datasheet pdf

    E, MC9S12DG128, MC9S12DJ128,MC9S12DB128, MC9S12A128, SC515846, SC515847,SC515848, SC515849,
    发表于 03-03 15:47 35次下载

    MC9S12DG128教学实验系统

    MC9S12DG128教学实验系统:支持GPIO通用输入输出口及IRQ中断、SCI、A/D、TIMER、SPI、I2C、PWM等实验,对于这些实验有配套教材和实验指示书
    发表于 07-07 10:27 0次下载

    基于MC9S12DG128单片机的智能寻迹车设计

    摘要:设计了一种基于飞思卡尔MC9S12DG128单片机控制的智能寻迹车系统。该系统MC9S12DG128为控制核心,采用CCD
    发表于 07-22 21:26 115次下载

    S12单片机模块应用及程序下载调试

    S12单片机模块应用及程序下载调试 本次智能车邀请赛采用的MC9S12DG128(以下简称DG128)是Freescale公司推出的S12
    发表于 11-23 21:13 2805次阅读

    基于16位单片机MC9S12DG128的智能车控制系统设计与

    基于16位单片机MC9S12DG128的智能车控制系统设计与实现 1引言      我国自2006年起举办的全国大学生“飞
    发表于 12-04 10:35 1903次阅读

    MC9S12DG128中文资料

    MC9S12DG128中文资料详细的ppt。
    发表于 12-24 13:59 83次下载

    采用MC9S12DG128单片机的智能车控制系统的设计与实现方法

    本文所述的智能车就是根据比赛规则要求设计并制作而成的,该智能车控制系统采用飞思卡尔半导体公司生产的16位MC9S12DG128单片机作为数字控制器,由安装在车前部的黑白CMOS摄像头负责采集
    发表于 09-07 15:58 8次下载
    采用<b class='flag-5'>MC9S12DG128</b><b class='flag-5'>单片机</b>的智能车控制<b class='flag-5'>系统</b>的设计与<b class='flag-5'>实现</b>方法

    使用MC9S12DG128单片机和CCD传感器实现智能小车的研究论文

    Freescale16位单片机MC9S12DG128作为系统控制处理器,基于CCD传感器采集视频图像,通过对获得的
    发表于 11-26 15:35 1次下载
    使用<b class='flag-5'>MC9S12DG128</b><b class='flag-5'>单片机</b>和CCD传感器<b class='flag-5'>实现</b>智能小车的研究论文

    MC9S12DG128的结构与工作原理的学习课件免费下载

    本文档的主要内容详细介绍的是MC9S12DG128的结构与工作原理的学习课件免费下载包括了:MC9S12DG128的内部结构,MC9S12DG128引脚功能,MC9S12DG128的运
    发表于 12-28 08:00 16次下载
    <b class='flag-5'>MC9S12DG128</b>的结构与工作原理的学习课件免费下载