首页 ov6620摄像头使用说明

ov6620摄像头使用说明

举报
开通vip

ov6620摄像头使用说明一直以来OV6620的采集电路困扰了很多网友,还有就是如何保证采集的不失真性,与图像的真实性等问题,都有很多讲究。 下面给出下在认为比较好的一种采集电路,就此电路而言展开讨论: 一定要保证行中断的优先性, 上面出了采集电路,下面就采集电路而展开讨论。 电路图中CD40106的作用:将行信号反向,原因是单片要贩IRQ中断只能捕捉下跳变,而对行信号而已,其下跳变是行扫描的结束,上跳变以行扫描的开始,用CD40106后,将信号反向,使得单片机捕捉到下跳变后,正好是行扫描的开始,这样就可以一进入中断就进行采集了。 对于...

ov6620摄像头使用说明
一直以来OV6620的采集电路困扰了很多网友,还有就是如何保证采集的不失真性,与图像的真实性等问题,都有很多讲究。 下面给出下在认为比较好的一种采集电路,就此电路而言展开讨论: 一定要保证行中断的优先性, 上面出了采集电路,下面就采集电路而展开讨论。 电路图中CD40106的作用:将行信号反向,原因是单片要贩IRQ中断只能捕捉下跳变,而对行信号而已,其下跳变是行扫描的结束,上跳变以行扫描的开始,用CD40106后,将信号反向,使得单片机捕捉到下跳变后,正好是行扫描的开始,这样就可以一进入中断就进行采集了。 对于场信号接PJ0,主要是用于图像的刷新,一副图像的开始。 下面给出运用些电路图的一种采集程序结构图与程序思想: #define VIDEO_SAMPLE      INTCR_IRQEN=1 #define NO_SAMPLE         INTCR_IRQEN=0   void PLL_Init(void); void Video_Init(void); void main() {  DisableInterrupts;  PLL_Init();   //PLL  Video_Init();  //采集的初使化  EnableInterrupts; //开中断  VIDEO_SAMPLE;  //开始采集图像  for(;;); } void PLL_Init(void) {  ///PLL } void Video_Init(void) {  //开行中断,开场中断 } #pragma CODE_SEG NON_BANKED void interrupt 6 IRQ_ISR() {   //判断是否是采集的行,不是就跳出,  //采集 } #pragma CODE_SEG DEFAULT_ROM   #pragma CODE_SEG NON_BANKED void interrupt x PORTJ_ISR() {  //一融图像采集完  //图像矩阵清零 } #pragma CODE_SEG DEFAULT_ROM 当然上述只是很多种采集程序中的一种架构,但是万变不离其中,其目的是一样的,就是图像采集。 前面给出了COMS的采集电路与采集思路,下面给出一些注意事项,以及选择那些引脚的原因。 首先一点,必须保证行中断为本系统中的最高优先级中断,当然这是在系统没有问题的前提下进行的,系统都有问题了,还保证中断也没有用,呵呵。 保证行中断优先级有两点问题可以解决:一,保证执行行中断的时候不被其它的高优先级的中断打断,从而保证了采集时序的严密性与正确性;二,当行信号来时,如果其它的中断正在执行,可以打断其它的中断,而跳转执行行中断,保证采集的及时性,原因是:COMS摄像头的行描扫描不等人,如果你正在执行其它的中断,而此时行中断来了,但是却不能及时进行行中断,行中断处于等待状态,说极限一点,当你执行完其它中断后进行行中断可能已经过去了几十微秒,早已经没有有效的图像信息,再去采集,如果图像信息是对的,那么肯定是你的系统出了问题,即使只错过了几微秒,采集到的图像也是错位的,因为在几微秒中已经错过了一些图像,这一点也是有些人常说的图像变形的情况,用上位机软件看,总有图像移位的情况。有人会问,在执行行中断的时候可以关用DisableInterrupts关闭所有的中断,当采集完后用EnableInterrupts开启所有中断,这样确实可以保证在行中断的时候不被其它高优先级的中断所打断,但是对于第于种情况呢,行中断到来的时候必须即时进入行中断程序,保证采集的即时性,如果行中断的优先级不高,就做不到这一点了。 对于我的BLOG给出的原理图,行信号接的是IRQ中断,IRQ中断在S12单片机中是中断优先级比较高的中断,如果此时你的行中断优先级不是你的系统中最高的优先级,建议你设置HPRIO寄存器,将行中断设置为最高优先级中断。 对于场信号,对于这一个信号,还是用中断处理,当然也可以用等待,但是等待,会消耗很多时间,不是好的选择,建议用中断处理场信号。 至于场信号的中断优先级的问题,我认为高一点会好一点,但是对场中断的优先级要求不是很高,因为一帧图像完后,有一个场恢复时间,这个时间比较长,足够处理其它中断了,场信号中断可以等待。 对于中断程序,中断程序应该越简洁越好,在中断里面执行的时间不应该过长。 上面写了关于行中断优先级的问题,首先一点,行中断优先级最高是保证采集正确的前提,但是这并不表示其采集的时序是严格的,因为进入行中断后,还需要有判断,判断是否为采集的那一行,OV6620输出292行图像,我们不可能全部采集,也没有必要全部采集。 首先一点值得注意的是:程序的预判断功能,即进入行中断后如何去做的问题。我们必须保证,每一次有用的行信号跳变(采集的那一行)到采集开始的时间是一样的,否则容易引进图像的变形,也就是错位。这种说法如何去理解:假如你采集第十行,此行的行信号跳变到采集的时间这2uS,然而你第十一行,其时间却是4us,这其间相差了2us,基本相当于图像错们了1/20,对于采集的点数低于50点的系统而言也许无关紧要,但是如果你采集100点以上,那么这个时候图像的错位可能就严重了,通过上位机是很容易看出来,这也是图像发生错位的原因之一。 到此时为止,对于图像采集的需要注意的细节问题,基本已经说完,总结为一点,就是时序的问题,保证其采集的严密性。 经常有人问我关于像素同步信号的捕捉与方法,实际上我认识可以不用管TCLK,对于本次的比赛而言。 下图为场信号、行信号以及FCLK的时序图: 上面的国幅图是大多数的COMS摄像头的时序,不包括一些特殊的。 行信号与场信号的时间比较长,S12的单片机足以捕捉到,但是对于多数的OV6620的像素同步时间而言是110ns左右,S12单片机的最高总线时钟是25M,即使能够捕捉到110ns的信号,而这其间还有采集这一步,很难做到既采集也判断是否有像素同步。 然而,我们是否真正的必须捕捉TCLK的信号,读回来的信号才是正确的呢?显然是否定的,对于S12单片机,即使不用TCLK读回来图像也是正确的。为什么呢?原因是S12单片机的读取速度是有限的,我曾经帮过实验,即使当行信号到来的时候,单片机什么也不做,就去读取图像,程序用纯汇编写,而且不用循环判断语句,牺牲空间换取时间来采集,即使是这样,读到有效点数一行也只在280多左右,而OV6620的行像素输出是352点,这说明单机的读取速度比CMOS的图像输出慢。 那么,我如果一行要读取50点,我如何去平分这50点呢?方法很简单,就是延时,采集一点,延时一会,再采集,平均分为50点,如何去控制延时就得进行实验了,最好借助于示波器。有人会问,采集的这50点之中,难道就没有无效点吗?不排除这种可能性,但是就算是无效,它能差很多吗?打个比方,采集到的这个点的前一个像素(相对于352点而言)值为70,后一个像素值为78,那么即使采集此点的时候TCLK不是高电平,采集到的值也是在70~78之间,也许还会问,在黑线的边沿处,如果发生这种情况如何呢?请大家记住,即使在黑线的边沿,COMS的图像输出也不会少于5点,所以这个问题,也不用考虑了。 对于TCLK的具体用处,显然TCLK肯定是有用的,如果一套采集系统的采集速度很快(如DSP,FPGA),一行能采集到700点,或者更高,那么对于OV6620,TCLK就有作用了,像素同步,因为你一行采集700点,这之中有一半的点是无效点,或者是重复的点。 此外,对于S12单片机,如果真的想捕捉到TCLK信号,也是可以的,必需地TCLK作一定的处理。对Tclk分频,将TCLK降为微秒级就可以,可以用分频器来实现,找一个高速的分频器就行了,很容易,但是个人觉得没有这个必要,所以就没有用Tclk了。
本文档为【ov6620摄像头使用说明】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_369504
暂无简介~
格式:doc
大小:69KB
软件:Word
页数:5
分类:互联网
上传时间:2011-12-05
浏览量:63