999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

高速攝像頭數據采集系統設計及算法研究*

2017-11-03 00:46:04楊紅莉曾憲陽郁漢琪
電子器件 2017年5期
關鍵詞:單片機程序信號

楊紅莉,曾憲陽,郁漢琪

(1.南京工程學院數理部,南京 211167;2.南京工程學院工業中心,南京 211167;3.南京大學數學系,南京 210093)

高速攝像頭數據采集系統設計及算法研究*

楊紅莉1,3,曾憲陽2,3*,郁漢琪2

(1.南京工程學院數理部,南京 211167;2.南京工程學院工業中心,南京 211167;3.南京大學數學系,南京 210093)

由于攝像頭輸出圖像數據量大,像素同步信號PCLK頻率高,無法被眾多學者所熟知的51單片機采集到。提出了以犧牲程序空間來換取執行速度的程序框架,提高了數據采集效率與速度。為避免圖像錯位,提出將行中斷設為高優先級。為避免采集到無效數據,指出行采集時間段必須與行中斷信號高電平區間對齊。實驗結果表明,51單片機運行此程序能夠很好的采集攝像頭圖像數據,給用戶帶來方便的同時也節約了FIFO成本。

電子技術;攝像頭;51單片機;行中斷信號;隔行采樣;驅動算法

攝像頭原理較為復雜,輸出圖像數據量很大,單片機要想采集到正確的圖像信息,往往需要與像素信號PCLK同步,而PCLK的頻率高達8.8 MHz左右,一般只有飛思卡爾、STM32、DSP等高速單片機才能滿足要求[1-3]。對于大多數熟悉51單片機的學者來說,由于其速度限制,一直不能用51單片機來驅動攝像頭。為此攝像頭廠家對此進行了改進,增加了價格較高的FIFO緩沖器,以至于低速單片機如AVR、403等不同步PCLK信號也能對改進后帶FIFO的攝像頭進行控制,但成本明顯增加[4-5]。還有些學者為了滿足低速單片機驅動攝像頭要求,刻意通過修改SCCB寄存器將攝像頭輸出分辨率調低,這將影響圖像輸出質量[4-5]。本文以不帶FIFO的OV6620攝像頭為例(其他攝像頭與此類似),深入分析其工作原理,在不改變攝像頭默認輸出分辨率的前提下,提出以低速51單片機驅動攝像頭解決方案,并通過實驗驗證該方案的可行性。

1 攝像頭工作原理

OV6620攝像頭工作電壓為5 V,工作制式有兩種,在NAL制式下,每秒輸出25幀圖像,每幀圖像分為奇偶兩場,因此每秒輸出50場圖像。在不改變配置寄存器SCCB時,其默認輸出的圖像為356像素×292像素,因此一副圖像可定義為292行,每行有356個像素點。一副圖像是逐行按序輸出的,并且每行像素點數據又是逐個按序輸出[6-8]。

如圖1所示,一副圖像包括2次場中斷申請信號VSYNC以及292次行中斷申請信號HREF,場中斷申請信號用來表示一場圖像數據輸出的開始與結束,行中斷申請信號表示每行數據輸出的開始。在行中斷申請信號的高電平期間,該行356個像素點的灰度數據將在像素同步時鐘PCLK的同步下,按序通過數據口Y0-Y7引腳輸出。行中斷申請信號低電平期間為消隱及曝光時間,此時數據輸出無效。為避免圖像錯位,必須保證每行像素點數據嚴格對齊,因此在讀取各像素點數據時,應當在PLCK信號的同步下進行[9-13]。

圖1 OV6620攝像頭信號輸出時序圖

2 低速單片機驅動方案

2.1 存在的問題分析

通過對攝像頭工作原理分析,結合示波器觀察得知,OV6620每隔110 ns將會輸出一個像素點數據。因此只有機器周期必須遠小于55 ns的高速單片機,才能捕捉到像素同步時鐘PCLK。而對于51單片機來講,即使在24 MHz的較高晶振頻率下,其機器周期已達到500 ns,速度上不能滿足要求。而且51單片機片內RAM容量太小,僅為128 byte,不能暫存像攝像頭龐大的數據。

2.2 本文的驅動解決方案

本文的將從兩方面解決此問題。一方面盡可能提高51單片機速度,且增加片內RAM大小。選用當前市場流行的國產增強型51單片機STC12C5A60S2[14],其內部已擴展1 024 byte RAM,可方便進行數據緩沖,程序存儲器Flash有60K之多,可以用來存放較大程序。外部晶振頻率采用22.118 4 MHz,先從硬件上提高其運行速度。在軟件設計上,匯編語言程序往往可取得更高的運行效率及執行速度,但對于多數單片機工程師來講,對匯編語言并不常用,本文將設計一種特殊結構的C語言程序以達到匯編語言相同的執行效率,從而提高單片機執行速度。

在另一方面,研究出一套適合低速51單片機的數據采集方案。根據文獻[6]分析可知,PCLK同步信號主要是防止讀取的圖像錯位,是否必須跟PCLK信號同步才能保證圖像不錯位呢?答案是否定的。在行中斷信號到來后的高電平期間,只要時間間隔均勻的采集該行數據,即使不跟PCLK信號同步,也可獲取一副正確的圖像。每行上有356個像素點,單片機假設只采樣50點,這50點可通過采集—延時—采集的方式,將50點平均分布在該行上。讀者也許會有疑惑,采樣到的50點數據是否存在無效數據?設前一個像素點數據為70,后一個像素點數據75,那么即使采樣時PCLK不是高電平,采集到的值也會在70~75之間,因此不會出現圖像錯位問題。由于每行采樣點比實際像素點少,那么應采用隔行采集的方式與列數對應,形成圖像比例縮放。當然為使數據采集過程中不被干擾,必須將行中斷設置為高優先級,這些方案將在下文實驗中進行驗證。

2.3 硬件電路原理圖

硬件電路連接如圖2所示。要獲取黑白圖像,只需采集Y0-Y7端口數據即可。場中斷請求信號HREF采用下降沿觸發,接至單片機外部中斷1引腳。行中斷請求信號VSYNC采用上升沿觸發,經非門取反后接至單片機外部中斷0引腳。采用帶有滯回比較器功能的非門可有效消除干擾信號。

圖2 硬件電路連接圖

2.4 軟件程序編寫

軟件編程時應盡可能提高數據采集速度,初始化程序中,首先在RAM中開啟一個二維數組,用來存放采集的圖像數據。設置行中斷為高優先級中斷,場中斷為低優先級別中斷。當場中斷信號到來后,使能數據接收,當行中斷到來后,設系統每隔7行采集1行數據,如果行中斷滿足條件,則開始采集數據。設圖像數據采集30行30列,行數據采集的匯編程序代碼如下:

MOV DPTR,#0000H

LOOP:MOV A,P1

MOVX @DPTR,A

MOV A,DPL

CJNE A,#30,LOOP

由于匯編程序不便于移植,下面將寫出對應的C語言程序代碼如下:

void ReadOv6620Data()

{ for(H=0;H<30;H++)

{ for(L=0;L<30;L++)

{Pixel_Y[H][L]=IO6620;delay_ov6620();}

}}

以上程序代碼雖然精簡,可讀性好,但在運行中反復進行了for循環判斷來決定程序流向,耽誤了大量的時間,這也是C語言編程效率比匯編低的最主要原因。本文將去除循環判斷,直接按序向下編寫讀寫程序,程序讀寫中,按照讀—寫—讀—寫的模式將數據按序直接存入到RAM中,也即采用了犧牲程序空間來提高數據采集速度的方法,達到與匯編程序相同的執行效率,而對于本文選用的單片機程序存儲器容量足夠滿足要求。根據此思路編寫的數據采集部分完整程序代碼如下:

void xie0() //讀第1行數據并寫入到數組

{ CS_P10=0;

Pixel_Y[0][0]=IO6620;delay_ov6620();

Pixel_Y[0][1]=IO6620;delay_ov6620();

Pixel_Y[0][28]=IO6620;delay_ov6620();

Pixel_Y[0][29]=IO6620;

CS_P10=1;}

……

void xie29() //讀第29行數據并寫入到數組

{ CS_P10=0;

Pixel_Y[29][0]=IO6620;delay_ov6620();

Pixel_Y[29][1]=IO6620;delay_ov6620();

Pixel_Y[29][28]=IO6620;delay_ov6620();

Pixel_Y[29][29]=IO6620;

CS_P10=1;}

void ReadOv6620Data()//數據讀取、處理、發送

{ if(ReadOv6620Data_EN==1)

{ switch(PixelRow)

{ case 0:xie0();break;

case 1:xie1();break;

case 28:xie28();break;

case 29:xie29();break;}

ReadOv6620Data_EN=0;

PixelRow++;}

if(HrefStartFlag==1)//確認場中斷到來

{ RowCount++; //行計數器加1

if((RowCount>20)&&(RowCount%7)==0)

{ ReadOv6620Data_EN=1;}

if (RowCount>=226)

{RowCount=0; //行計數器清零

HrefStartFlag=0;//場中斷標志清零

PixelRow=0;//數組行計數清零

ReadOv6620Data_EN=0;//讀使能清零

EX0=0;

PixelBinary();//圖像二值化處理

SEND(); //通過串口發送給上位機

delay_ms(1000);//一副圖片發送完畢

EX0=1;} }}

根據以上思路,數據采集及通過串口上傳至上位機的完整程序流程圖如圖3、圖4所示。

圖3 主程序流程圖

圖4 行中斷子程序流程圖

3 實驗及分析

3.1 實驗驗證

在keil C51編譯環境下編譯以上程序,在延時函數delay_ov6620()中調整不同的延時參數,然后下載代碼至單片機。用攝像頭拍攝黑色的“A”字,將攝像頭的VTO模擬圖像輸出端接至裝有視頻采集卡的PC機上觀察視頻圖像,單片機將采集到的圖像數據經二值化處理后,通過串口發送給上位機軟件(串口調試助手)得出二值化圖像,與上位機視頻圖像形成對比,其中二值化閾值設置為0X55。同時用SIGLENT SDS2204四通道示波器觀察行、場中斷信號及行采集時間信號,得出以下實驗結果。

圖5展示了實驗中每行采集時間為35 μs時的二值化圖像。圖5(a)為上位機視頻采集卡采集到的視頻圖像。圖5(c)中粉色波形為行中斷輸出信號,每個周期代表一行,其中高電平時間段為該行有效數據輸出時間,低電平時間段數據輸出無效。黃色波形為單片機采集一行的時間信號,從下降沿開始采集該行數據,上升沿后該行數據采集完成。圖5(c)中可以看出35 μs時間段正好處于行中斷信號高電平期間,因此數據采集有效。同時在圖5(b)中顯示出了采集圖像的二值化處理結果,0區域代表黑線部分,1區域代表白色地面,與圖5(a)對比沒有發現圖像出現變形情況,而且很好的再現了一場黑白圖像。該實驗不僅證明了本文攝像頭算法的可行性,同時也證明了在行采集時間小于行中斷高電平時間40 μs時,不會出現無效數據及圖像變形問題。

圖5 行采集時間為35 μs時的二值化圖像及示波器波形

如圖6所示,當行采集時間為55 μs時,由于行采集時間超過每行有效時間40 μs,在圖6(c)中也可看出黃色低電平維持的時間已超過粉色高電平時間,采集點已進入數據無效區域。如圖6(b)所示,二值化圖像的右側已顯示出一列整齊的無效數據,因此實際采樣時間不應超過行中斷高電平時間區域。

圖6 行采集時間為55 us時的二值化圖像及示波器波形

圖7 行采集時間為75 μs時的二值化圖像及示波器波形

圖7展示了行采集時間為75 μs時的輸出波形及二值化圖像,由圖7(c)可看出每行采集時間已超過行中斷信號周期,數據采樣點不僅越過無效區域且已采集到下一場圖像,因此在圖7(b)中左邊顯示了圖像“A”,在中間區域出現了一列無效數據區,在右邊出現了下一場圖像數據的左半部分。該實驗也證明了行采集時間不能超過行中斷信號的高電平時間。

通過以上實驗可以看出,單片機在不經過PCLK信號同步下,也能有效采集一副完整畫面;當行采集時間小于行中斷高電平時間40 μs時,能夠很好的讀取并再現一場圖像;當行采集時間超過行中斷高電平時間時,生成的圖像將出現一列無效數據區;當行采集時間超過行中斷周期時,生成的圖像除了出現無效數據區之外,還將出現下一場部分圖像。因此單片機在采集圖像數據時,要想正確再現一副圖像,行采樣時間不應超出行中斷高電平時間區域。

3.2 與高速單片機對比

圖8展示了在行采集時間為35 μs且在相同采樣點數(共采樣30行,每行30點)的情況下,不捕捉PCLK信號的51單片機采集到的圖像與捕捉PCLK信號的STM32采集到的圖像對比。通過對比可以看出,51單片機集到的圖像效果與STM32單片機采集到的圖像效果幾乎沒有區別,進一步驗證了該程序算法的可行性。

圖8 51單片機與STM32單片機拍攝的圖像對比

3.3 數據采集最高性能指標實驗

將51單片機晶振頻率設為22.118 4 MHz,調整void xie0()等函數中的delay_ov6620()延時函數,讓行采樣總時間限制在40 μs。考慮到單片機內部擴展RAM為1 024 byte的限制,為保證圖像盡可能不失真,設置每行采樣32個點,共采集32行,此時將采樣到最大圖像數據,為系統數據采集最高性能指標,數據采集效果如圖9所示,其實驗現場如圖10所示。

圖9 最高指標實驗效果圖

圖10 實驗現場調試圖

4 結論

文中分析了攝像頭的工作原理,指出低速單片機驅動攝像頭存在的困難。分析了單片機不捕捉像素同步信號PCLK而直接采樣數據的可行性。在不改變攝像頭固有輸出分辨率的前提下,提出了利用犧牲程序空間來提高執行速度的程序算法。為防止采集到無效數據,行采集時間區域必須與行中斷高電平時間區域對齊,不能超出高電平時間。為避免采集的圖像出現錯位,行中斷必須設置為高優先級。實驗結果驗證了該程序算法的可行性,表明該驅動算法在低速單片機上能很好的采集到攝像頭圖像數

據。該研究不僅給不帶FIFO的攝像頭節約了成本,也給廣大熟悉51單片機的學者提供了方便。由于該程序獨特的算法大大提高了數據采集效率,從而提升了數據采集速度,如果將程序移植到STM32單片機系統中,相對原有STM32系統來講可進一步提升圖像采集效率與速度,從而獲取更高分辨率的圖像,這可適用于更高要求場合。該驅動算法程序將共享到網絡供廣大學者共同學習研究。

[1] 樊冬雪,成怡,金海林. 四軸飛行器視覺導航系統設計[J]. 電子技術應用,2014,40(8):140-146.

[2] 黃戰華,鄧超,張尹馨,等. 基于時序相關雙采樣的紫外光譜CCD信號采集[J]. 傳感技術學報,2013,26(2):216-220.

[3] 劉秀峰,王興東,裴云,等. 基于圖像灰度自適應控制的光源系統[J]. 電子器件,2015,38(2):269-273.

[4] 楊帆,張皓,馬新文. 基于FPGA的圖像處理系統[J]. 華中科技大學學報,2015,43(2):119-123.

[5] 戴智堅,林培杰,程樹英. 基于太陽能電源的圖像采集系統[J]. 電子技術應用,2012,38(10):41-43.

[6] OV6620datesheet.pdf.http://html.alldatasheet.com/html-pdf/103226/ETC/OV6620/53/1/OV6620.html.

[7] 馬旭波,王宜懷. 基于KL25的同步時鐘圖像采集[J]. 計算機工程與設計,2014,35(6):1936-1940.

[8] 張寶龍,李丹,郭艷艷. 基于OV7962的車載全景攝像頭設計[J]. 液晶與顯示,2015,30(4):634-640.

[9] 隋修武,劉蕾,杜玉紅,等. 基于線陣CCD的可吸收縫合線線徑在線檢測系統[J]. 傳感技術學報,2014,27(8):1154-1158.

[10] 馬其華,張春燕,任洪娟. 單目OV6620數字攝像頭在視覺測距中的應用[J]. 機械設計與制造,2011(2):71-73.

[11] 陳張榮,賈俊鋮,嚴建峰. 基于嵌入式系統的網絡視頻會議系統設計[J]. 電子器件,2016,39(1):156-159.

[12] 高云波,季聰,漢鵬武. 基于攝像頭識別路徑的智能車系統設計[J]. 蘭州理工大學學報,2013,39(6):98-102.

[13] 邰玉民,耿艷峰,張朋舉. 基于攝像頭的直立自平衡智能車設計[J]. 計算機測量與控制,2016,24(1):99-101.

[14] 南通國芯微電子有限公司. STC12C5A60S2系列單片機器件手冊.南通:南通國芯微電子有限公司,2011.

DesignandAlgorithmsofDataCollectorSystemsforHigh-SpeedCamera*

YANGHongli1,3,ZENGXianyang2,3*,YUHanqi2

(1.Department of Mathematics and Physics,Nanjing Institute of Technology,Nanjing 211167,China;2.Industrial Center,Nanjing Institute of Technology, Nanjing 211167,China;3.Department of Mathematics,Nanjing University,Nanjing 210093,China)

Because the camera output image data quantity is big and with high PCLK pixel synchronization signal frequency,it cannot be collected by 51 single-chip microcomputer which is known for many scholars. The application framework of program space for execution speed was proposed to improve the speed of data acquisition. To avoid dislocation images,the row set is put forward as high priority. In order to avoid invalid data collected,it is pointed out that line collection period must be line with the interrupt signal high level range alignment. The experimental results show that the 51 single-chip computer to run this program can collect a good camera image data,bring convenience to the user and at the same time also save on cost of FIFO.

electronic technology;camera;51 single-chip microcomputer;interlaced sampling;drive the algorithm

10.3969/j.issn.1005-9490.2017.05.022

項目來源:南京工程學院青年基金重點項目(QKJA201404);南京工程學院2014年校級教學改革項目(JG201440);南京工程學院創新基金重大項目(CKJA201410)

2016-07-17修改日期2016-11-17

TP212.9

A

1005-9490(2017)05-1161-06

楊紅莉(1980-),女,漢族,江蘇靖江人,南京大學博士后,南京工程學院講師,主要研究方向為算法分析與設計,系統建模與仿真等,yanghongli1016@163.com;

曾憲陽(1979-),男,通信作者,漢族,湖北隨州人,南京大學博士研究生,南京工程學院教師,主要研究方向為電子與通信,控制理論與控制工程等,zxy@njit.edu.cn。

猜你喜歡
單片機程序信號
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
基于FPGA的多功能信號發生器的設計
電子制作(2018年11期)2018-08-04 03:25:42
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于LabVIEW的力加載信號采集與PID控制
主站蜘蛛池模板: 亚洲香蕉在线| 国产综合精品日本亚洲777| 五月婷婷伊人网| 国产日本欧美亚洲精品视| 性视频一区| a级毛片毛片免费观看久潮| 国产日韩久久久久无码精品| 国产免费羞羞视频| 成年人国产网站| 国产99精品久久| 日韩精品一区二区三区swag| 天天躁夜夜躁狠狠躁躁88| 国产一区二区免费播放| 国产丝袜第一页| 中国国产一级毛片| 一区二区三区毛片无码| 亚洲天堂区| 99久久国产综合精品女同| 另类专区亚洲| 亚洲AV无码久久精品色欲| 久久国产成人精品国产成人亚洲 | 久久毛片网| 怡春院欧美一区二区三区免费| 青草精品视频| 波多野结衣一区二区三区四区视频 | 毛片在线看网站| 亚洲色图欧美激情| 精品撒尿视频一区二区三区| 亚洲人成高清| 国产成人久视频免费| 福利在线不卡| 成人福利在线观看| 国产乱人伦偷精品视频AAA| 国产最爽的乱婬视频国语对白 | 在线观看免费人成视频色快速| 亚洲精品成人7777在线观看| 毛片免费试看| 一级不卡毛片| 毛片手机在线看| 国产三级成人| 在线无码av一区二区三区| 成人午夜网址| 久久青草免费91线频观看不卡| 一级片一区| 久久综合结合久久狠狠狠97色| 99精品热视频这里只有精品7| 亚洲VA中文字幕| 国产高清无码第一十页在线观看| 91精品国产丝袜| 日韩在线欧美在线| 婷婷亚洲综合五月天在线| 另类重口100页在线播放| 亚洲中文字幕久久精品无码一区| 日韩av高清无码一区二区三区| 免费看a毛片| 国产成人资源| 久久精品中文字幕免费| 91无码国产视频| www中文字幕在线观看| 自拍欧美亚洲| 一区二区三区四区日韩| 91 九色视频丝袜| 五月六月伊人狠狠丁香网| 色九九视频| 国产人碰人摸人爱免费视频| 亚洲 成人国产| 成人福利在线观看| 欧美久久网| 国产91小视频| 99热这里只有精品在线播放| 国产99在线| 国产成人精品日本亚洲| 国产精品区视频中文字幕| 亚洲视频在线观看免费视频| 日韩中文欧美| 国产成人精品一区二区免费看京| 国产人免费人成免费视频| 四虎永久在线精品国产免费| 麻豆国产原创视频在线播放 | 伊人查蕉在线观看国产精品| 成人免费一级片| 中文字幕欧美成人免费|