陈永昌,逯力红,孙可亮
(天津工业大学,天津 300387)
基于COMS数字摄像头的低速单片机的实时采集研究
陈永昌,逯力红∗,孙可亮
(天津工业大学,天津 300387)
以国内大学生智能车设计竞赛及相关电子信息类竞赛为背景,主要针对智能车所用COMS数字摄像头的图像输出与单片机的采集速度不匹配问题,提出一种基于COMS数字摄像头的低速单片机的实时采集方案。具有低成本、易实现、高分辨率、全速帧率等优点,能够将采集分辨率从每行160个像素点提高到每行320个像素点,整张图片无噪点。实验证明此方法可以在降低对硬件要求的同时进行高速数据采集,节省成本,为低速单片机的高速数据采集的提供了一种新思路。
图像采集、单片机、COMS、并口扩展
智能车及相关的电子信息类竞赛主要是以迅猛发展的汽车电子为背景,该类比赛涵盖了自动控制、计算机软件技术、嵌入式编程、系统调试等多个交叉学科的知识。摄像头智能小车以摄像头为主要传感器提取赛道引导线信息,并在规范的赛道内自主寻线[1-2]。图像采集系统是智能车主要用来获取赛道信息的装置,直接影响图像采集的质量和图像处理的难易程度,对智能车的精确控制和稳定运行具有不可或缺的决定性作用[3-4]。
目前国内智能车比赛中,举办方基于开发难度、软硬件资源等原因的考虑,选用的MCU的速度往往难以捕捉或丢失摄像头传来的高速信号,以“飞思卡尔”智能车竞赛中较为主流Freescale公司的K60芯片为例,其Core Clock最大值为100MHZ(以单指令周期来算),当选用OV7620数字摄像头进行图像采集,图像分辨率最大达到(H)664×(V)492,帧率可达30帧,内置10位双通道 A/D转换器,输出8位像素点[5]。采集OV7620摄像头图像时,要根据行场中断信号来区分一幅图像和一行图像。若不通过SCCB协议设置OV7620的寄存器,默认输出有效像素(H) 640×(V)480。因为采用隔行扫面的方式又分为奇偶场,这样计算的话,每秒将产生60幅图像,每幅图像有效像素位(H)320×(V)240。所以为使MCU有效响应,允许中断间隔将小于73ns,一般单片机是无法达到的。因此通常采用低分辨率或者低帧率的方案来完成采集,一方面牺牲了图像质量,另一方面图像信息易造成丢失,丧失其完整性。不难发现,对于图像采集的速率和采集到的图像的分辨率并不能令人满意。为保证图像采集的速率,通常采用降低分辨率的方案,效果不好。
一方面限于采集用芯片的学习难度和开发难度,不易上手,且研发成本高;另一方面源于竞赛方限制(不允许使用其他可编程芯片与存储介质),两者即限制了人们的开发能力又限制了设计者的创新能力。随着比赛水平越来越高,对采集到的图像也要求更加清晰,采集速率更快。而越是简单的芯片越稳定,采用单片机和逻辑门足够实现所需功能[6]。文章中将阐述利用OTV公司的OV7620、Freescale公司的K60芯片以及一些常用的74系列逻辑门设计一套基于并口扩展技术的能够同时满足分辨率和采集帧率的图像采集系统,并给出具体实验方案[7]。相比于国内智能车类电子信息竞赛中的图像采集系统,文章中设计的系统可以获得320×240的分辨率,其图像采集速率可高达每秒30帧。
实现低速单片机的高速数据采集的关键在于充分利用单片机丰富的IO口资源。通过设计相应电路,把CMOS摄像头输出的八位灰度值图像数据转换十六位数据,一次性读入。将CMOS的像素同步时钟信号被分频电路分成奇偶两列脉冲,其中奇数列脉冲触发74LS374把当前输出的数据锁存起来,等待偶数列脉冲到来触发K60的中断,当中断响应时,同时读取IO口D0~D15的值,即完成一次图像数据的采集。
整个分频电路由:74LS04、74LS08、74LS160芯片组成。通过逻辑门(与门、非门、计数器)电路将采集速率分频,构成的四分频电路能够将采集速率慢一倍,能够确保图像信息完整不丢失。为了避免电路造成的延时干扰,选用74LS574芯片等器件组成锁存电路,将采集到的八位灰度数据锁存到锁存器中,图像同步信号在采集过程中将使得OUT1、OUT2触发锁存信号,奇数次采集到的八位图像数据将由OUT1信号(奇分频)触发锁存[8],同理,偶数次采集到的八位图像数据将由OUT2信号(偶分频)触发锁存,并且偶分频信号将触发中断,将两次八位图像灰度值转换成十六位数据发送给K60。硬件原理图如图1所示。
图1 硬件原理图
在电路图(如图2所示)中,IN输入摄像头像素时钟信号,OUT1、OUT2输出的是时钟信号分频后的信号。
图2 分频电路图
图3 分频时序图
(由上至下依次为IN_CLK、OUT1、OUT2)
从时序图(如图3所示)中可以看出来,OUT1和OUT2均是从CLK的四分频后分频信号,其中OUT1定为奇分频(即锁存),OUT2即为偶分频(锁存并触发发送中断)。采用四分频的原因是:对于K60来说使用二分频的采集过程还是不够稳定,采集效果不佳。图4和图5分别是OUT1与IN_CLK实际信号图和OUT1与OUT2实际信号图。
图4 OUT1与IN_CLK实际信号图
图5 OUT1与OUT2实际信号图
整个分频电路可分解成两个部分,第一部分是分频电路部分完成对图像信息的采集,第二部分是锁存电路分别将两次采集到的数据锁存,并且在第二次锁存结束后将相邻两次的八位数据组合成十六位发送给K60,构成完整的图像采集数据。
实验中采用并口扩展技术。该技术有两个主要特点:一是同时并行传送的二进位数就是数据宽度;二是在嵌入式系统与外设之间采用应答式的联络信号来协调双方的数据传送操作,这种联络信号又称为握手信号。实验中使用不可编程并行口芯片74LS373,实现并口扩展。其内部结构图如图6所示。
图6 74LS373内部结构图
该实验方案使得图像质量得到提升,分辨率将达到320∗240,其采集速率相比同类型单片机将高达30帧/秒。
K60的图像采集工作主要包括下面几个方面:
(1)图像传感器寄存器配置;
(2)场同步,行同步信号的处理;
(3)像素同步时钟信号的处理;
(4)DMA配置与传输。
将D0~D7的数据锁存在74LS374中,数据流直接读取,当第二次采集到数据有D8~D15接收,并且直接发送到K60上,此时的该段数据流将触发中断,进入中断服务程序,将74LS374中锁存的数据释放,再调用子函数,将两次采集到的八位数据整理成十六位数据进行处理,实际上是做一个并行计算的处理。考虑到图像信息数据量大、易丢失,故采取DMA方式进行数据传输及处理。DMA方式具有如下特点:
1、外部设备的输入输出请求直接发给主储存器。
主存储器既可以被CPU访问,也可以被外围设备访问。因此,在主存储器中通常要有一个存储管理部件来为各种访问主存储器的申请排队,一般计算机系统把外围设备的访问申请安排在最高优先级。
2、不需要做保存现场和恢复现场等工作,从而使DMA方式的工作速度大大加快。
由于在外围设备与主存储器之间传送数据不需要执行程序,因此,也不动用CPU中的数据寄存器和指令计数器等。
3、在DMA控制器中,除了需要设置数据缓冲寄存器、设备状态寄存器或控制寄存器之外,还要设置主存储器地址寄存器,设备地址寄存器和数据交换个数计数器。
外围设备与主存储器之间的整个数据交换过程全部要在硬件控制下完成。另外,由于外围设备一般是以字节为单位传送的,而主存储器是以字为单位访问的,因此,在DMA控制器中还要有从字节装配成字和从字拆卸成字节的硬件。
4、在DMA方式开始之前要对DMA控制器进行初始化,包括向DMA控制器传送主存缓冲区首地址、设备地址、交换的数据块的长度等,并启动设备开始工作。在DMA方式结束之后,要向CPU申请中断,在中断服务程序中对主存储器中数据缓冲区进行后处理。如果需要继续传送数据的话,要再次对DMA控制器进行初始化。
5、在DMA方式中,CPU不仅能够与外围设备并行工作,而且整个数据的传送过程不需要CPU的干预。如果主存储器的频带宽度足够的话,外围设备的工作可以丝毫不影响CPU运行它自身的程序。
基于DMA方式的工作,对于图像采集设备来说:从输入介质上读一个字节或字到DMA控制器中的数据缓冲寄存器BD中,如果输入设备是面向字符的,则要把读入的字符装配成字。若一个字还没有装配满,则返回到上面;若校验出错,则发中断申请;若一个字已经装配满,则将BD中的数据送入主存数据寄存器。把主存地址寄存器BA(在DMA控制器中)中的地址送入主存地址寄存器,并且将BA中的地址增值至下一个字地址。把DMA控制器内的数据交换个数计数器BC中的内容减“1”。若BC中的内容为“0”,则整个DMA数据传送过程全部结束,否则返回到最上面继续进行。
而对于输出设备:把主存地址寄存器BA(在DMA控制器中)中的地址送入主存地址寄存器,并启动主存储器,同时将BA中的地址增值至下一个字地址。将主存储器数据寄存器中的数据送入DMA控制器的数据缓冲寄存器BD中。如果输出设备是面向字符的,则要把BD中的数据拆卸字符。把BD中数据逐个字符(对于面向字符的设备)或整个字写到输出介质上。把DMA控制器内的数据交换个数计数器BC中的内容减“1”。若BC中的内容为“0”,则整个DMA数据传送过程全部结束,否则返回到最上面继续进行。
目前使用的DMA方式实际上有如下3种:
1、周期窃取方式
在每一条指令执行结束时,CPU测试有没有DMA服务申请,如果有,则CPU进入一个DMA周期。在DMA周期中借用CPU完成上面所列出的DMA工作流程。包括数据和主存地址的传送,交换个数计数器中的内容减“1”,主存地址的增值及一些测试判断等。
采用周期窃取方式时,主存储器可以不与外围设备直接相连接,而只与CPU连接,因为外围设备与主存储器的数据交换与程序控制输入输出方式和中断输入输出方式一样都是要经过CPU的。
周期窃取方式与程序控制输入输出方式和中断输入输出方式的不同处主要在:它不需要使用程序来完成数据的输入或输出,只是借用了一个CPU的周期来完成DMA流程。因此,其工作速度是很快的。
周期窃取方式的优点是硬件结构很简单,比较容易实现。缺点是在数据输入或输出过程种实际上占用了CPU的时间。
2、直接存取方式
这是一种真正的DMA方式。DMA控制器的数据传送申请不是发向CPU,而是直接发往主存储器。在得到主存储器的响应之后,整个DMA工作流程全部在DMA控制器中用硬件完成。
直接存取方式的优点与缺点正好与周期窃取方式相反。
目前的多数计算机系统均采用直接存取方式工作。
3、数据块传送方式
在设备控制器中设置一个比较大的数据缓冲存储器,一般要能够存放下一个数据块,如在软磁盘存储器中通常设置512个字节的数据缓冲存储器。与设备介质之间的数据交换在数据缓冲存储器中进行。设备控制器与主存储器之间的数据交换以数据块为单位,并采用程序中断方式进行。
文章中采用的是第一种方式,程序流程图如图7所示。
图7 程序流程图
4、实验效果图
采用该技术处理前后的图像对比如图8(a) (b)所示。
图8 (a) 处理前
图8 (b) 处理后
通过对比可明显看出两者之间的差异,图8 (a)中噪点较多,畸变明显,图像分辨率差,可处理性差;而在图8(b)中,不难看出图像质量明显改善,分辨率大幅度提高,图像平滑无噪点。证明该方案切实可行。
图9 实物电路连接图
为保征该方案能在各个智能车类电子信息类竞赛中占得先机,其运行稳定性、可靠性及精度将是决定比赛胜负的关键,为实现这几点,实验中通过分频锁存的手段保证了图像信息的完整性,在保证图像采集速率的前提下,提高了图像的分辨率、确保软硬件运行的稳定性、可靠性,在DMA及并行口扩展技术的模式下使图像采集精度将大大提高,既满足了对采集速率的要求又满足了对分辨率的需求,进而保证图像信息处理的时效性,一举多得。
根据总体设计思路,搭建电路,对校徽进行实时采集。实物连接图如图9所示,采集效果图如图10所示。
图10 采集效果图
由于单片机、逻辑芯片的研发成本低、研发难度小,对于初学者来说功能易于实现,仍有较高的实践及利用价值。
文章中采用FreescareK60搭配逻辑门电路,设计一种基于COMS数字摄像头的低速单片机的实时采集方案,并对硬件电路和软件实现流程进行了说明。该方案能够将采集分辨率从每行160个像素点提高到每行320个像素点,确保整张图片无噪点。实验结果表明:采取此方案,图像采集速度、图像质量都有大幅提高,此方案切实可行。
[1] 徐利文.智能车电机控制和图像采集系统设计与研究[D].长安大学,2012.
[2] 朱江转,罗锻斌.全息照相实验中图像采集数码装置的应用[J].大学物理实验,2014(6):17-20.
[3] Bishop R.Survey of Intelligent Vehicle ApplicationsWorldwide[J].Proceedings of the IEEE Intelligent Vehicles Symposium.2000,108(16):509-516
[4] 薛志文,周敏,杨傲雷,等.摄像头智能车调试系统的设计与开发[J].仪表技术,2014(11):47-51.
[5] 郑建英.数字图像处理技术 [J].内蒙古科技与经济,2002(5):58-59.
[6] 王诗元,吕子豪,田洪亮.摄像头组智能车图像预处理算法研究[J].无线互联科技,2014(11):136 +164.
[7] 胡房武.基于图像采集的智能车系统设计[D].大连海事大学,2011.
[8] 张春生,常青.特殊分频电路设计[J].现代电子技术,2006(6):112-113+116.
The Real-Time Acquisition of Low Speed M icrocontroller Based on COMSDigital Video Camera
CHEN Yong-chang,LU Li-hong,SUN Ke-liang
(Tianjin Polytechnic University,Tianjin 300387)
The domestic undergraduate intelligent vehicle design competition and relevant electronic information competition is set as the background in this paper.In order to solve themismatch problem between image output of COMS digital video camera used on the intelligent vehicle and sampling speed ofmicrocontroller,a real-time acquisition scheme of low speed microcontroller based on COMSdigital video camera is proposed.It has advantages of low cost,easy realization,high resolution and full frame rate,and so on,which can increase acquisition resolution from 160 pixel points per row to 320 pixel points per row.Thewhole picture has no error point.The experiment shows that thismethod can reduce the requirements of the hardware,carry out high speed data acquisition at the same time,save cost and provide a new way for high speed data acquisition of low speed microcontroller.
image acquisition;microcontroller;COMS;parallel ports expansion
O 4-39
A
10.14139/j.cnki.cn22-1228.2015.006.006
1007-2934(2015)06-0018-06
2015-07-17
国家级大学生创新创业训练计划(201310058047)
∗通讯联系人