找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2209|回复: 0
打印 上一主题 下一主题
收起左侧

OV6620采集

[复制链接]
跳转到指定楼层
楼主
ID:105323 发表于 2016-2-22 23:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一直以来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摄像头的行描扫描不等人,如果你正在执行其它的中断,而此时行中断来了,但是却不能及时进行行中断,行中断处于等待状态,说极限一点,当你执行完其它中断后进行行中断可能已经过去了几十微秒,早已经没有有效的图像信息,再去采集,如果图像信息是对的,那么肯定是你的系统出了问题,即使只错过了几微秒,采集到的图像也是错位的,因为在几微秒中已经错过了一些图像,这一点也是有些人常说的图像变形的情况,用上位机软件看,总有图像移位的情况。有人会问,在执行行中断的时候可以关用DisableInterrupts关闭所有的中断,当采集完后用EnableInterrupts开启所有中断,这样确实可以保证在行中断的时候不被其它高优先级的中断所打断,但是对于第于种情况呢,行中断到来的时候必须即时进入行中断程序,保证采集的即时性,如果行中断的优先级不高,就做不到这一点了。
对于我的BLOG给出的原理图,行信号接的是IRQ中断,IRQ中断在S12单片机中是中断优先级比较高的中断,如果此时你的行中断优先级不是你的系统中最高的优先级,建议你设置HPRIO寄存器,将行中断设置为最高优先级中断。
对于场信号,对于这一个信号,还是用中断处理,当然也可以用等待,但是等待,会消耗很多时间,不是好的选择,建议用中断处理场信号。
至于场信号的中断优先级的问题,我认为高一点会好一点,但是对场中断的优先级要求不是很高,因为一帧图像完后,有一个场恢复时间,这个时间比较长,足够处理其它中断了,场信号中断可以等待。
对于中断程序,中断程序应该越简洁越好,在中断里面执行的时间不应该过长。
上篇日志写了关于行中断优先级的问题,首先一点,行中断优先级最高是保证采集正确的前提,但是这并不表示其采集的时序是严格的,因为进入行中断后,还需要有判断,判断是否为采集的那一行,OV6620输出292行图像,我们不可能全部采集,也没有必要全部采集。
首先一点值得注意的是:程序的预判断功能,即进入行中断后如何去做的问题。我们必须保证,每一次有用的行信号跳变(采集的那一行)到采集开始的时间是一样的,否则容易引进图像的变形,也就是错位。这种说法如何去理解:假如你采集第十行,此行的行信号跳变到采集的时间这2uS,然而你第十一行,其时间却是4us,这其间相差了2us,基本相当于图像错们了1/20,对于采集的点数低于50点的系统而言也许无关紧要,但是如果你采集100点以上,那么这个时候图像的错位可能就严重了,通过上位机是很容易看出来,这也是图像发生错位的原因之一。
到此时为止,对于图像采集的需要注意的细节问题,基本已经说完,总结为一点,就是时序的问题,保证其采集的严密性。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表