欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

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 單片機教程網

快速回復 返回頂部 返回列表