新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的表具數(shù)字圖像采集系統(tǒng)設(shè)計(jì)

基于單片機(jī)的表具數(shù)字圖像采集系統(tǒng)設(shè)計(jì)

—— 推動(dòng)實(shí)現(xiàn)智能建筑
作者: 時(shí)間:2010-10-23 來源:電子產(chǎn)品世界 收藏

  系統(tǒng)存儲(chǔ)器接口

本文引用地址:http://m.butianyuan.cn/article/113798.htm

  CMOS圖像傳感器OV7670支持整幀圖像讀取模式,VGA圖像速率最高達(dá)30幀/s,為了實(shí)現(xiàn)OV7670與之間傳輸速率匹配,首先將內(nèi)部時(shí)鐘與時(shí)鐘同步,然后通過設(shè)置OV7670內(nèi)部寄存器對(duì)系統(tǒng)內(nèi)部時(shí)鐘速率分頻來降低圖像數(shù)據(jù)速率,使OV7670采集圖像數(shù)據(jù)的速度滿足的要求。由于表具數(shù)字圖像數(shù)據(jù)量比較大,而AT89LV51 單片機(jī),其內(nèi)部只有128byte隨機(jī)存儲(chǔ)器,要完成對(duì)表具數(shù)字圖像的采集、存儲(chǔ)和處理是遠(yuǎn)遠(yuǎn)不夠的,所以在硬件電路上擴(kuò)展了外部數(shù)據(jù)存儲(chǔ)器,通過數(shù)據(jù)存儲(chǔ)器的存儲(chǔ)空間和存儲(chǔ)速度,在OV7670和單片機(jī)之間建立起數(shù)據(jù)傳送中樞,實(shí)現(xiàn)表具數(shù)字圖像的采集、存儲(chǔ)和處理,其硬件連接電路如圖3所示,BS62LV256存儲(chǔ)器地址低8位通過鎖存器與單片機(jī)P0口連接,同時(shí)P0口也是圖像數(shù)據(jù)輸出口,存儲(chǔ)器地址高7位以及存儲(chǔ)器片選端與單片機(jī)P2口連接,單片機(jī)通過控制片外數(shù)據(jù)存儲(chǔ)器讀寫控制端完成數(shù)據(jù)的存儲(chǔ)[3]。

  系統(tǒng)軟件設(shè)計(jì)

  在本系統(tǒng)設(shè)計(jì)中,通過圖像傳感器OV7670攝像頭的SCCB總線接口配置攝像頭,通過控制攝像頭的場同步信號(hào)(VSYNC),行同步信號(hào)(HREF)以及像素時(shí)鐘信號(hào)(PCLK)開中斷,開始表具圖像數(shù)據(jù)采集,將這些數(shù)據(jù)傳送到外部數(shù)據(jù)存儲(chǔ)器中,當(dāng)一幀完成后,關(guān)閉所有中斷,等待采集下一幀圖像。

  本系統(tǒng)采用查詢VSYNC的下降沿表示一幀圖像的開始,水平同步信號(hào)HREF高時(shí)開始有效數(shù)據(jù)采集。在水平同步信號(hào)HREF高電平期間,PCLK上升沿的到來表示像素?cái)?shù)據(jù)的產(chǎn)生,PCLK每來一個(gè)上升沿系統(tǒng)就傳輸一位像素?cái)?shù)據(jù)[4~5]。OV7670同步信號(hào)時(shí)序如圖4所示。

  單片機(jī)通過控制圖像傳感器OV7670攝像頭的SCCB總線接口配置攝像頭,本系統(tǒng)設(shè)置OV7670為黑白工作模式,分辨率為80×60,控制OV7670以一幀圖像讀取模式,采用此模式傳輸時(shí),以像素時(shí)鐘信號(hào)(PCLK)為頻率自動(dòng)傳輸完一幀圖像后停止。在軟件設(shè)計(jì)開始,將圖像存儲(chǔ)設(shè)置成外部數(shù)據(jù)存儲(chǔ)方式,此時(shí)OV7670數(shù)據(jù)總線為三態(tài),準(zhǔn)備發(fā)送數(shù)據(jù)。

  當(dāng)圖像采集開始按鍵按下時(shí),開中斷準(zhǔn)備進(jìn)入數(shù)據(jù)采集,單片機(jī)監(jiān)測場同步信號(hào)(VSYNC)的變化,其為高時(shí)OV7670 數(shù)據(jù)準(zhǔn)備完畢,變低時(shí)開始發(fā)送。HREF為水平同步信號(hào),以其上升沿開始,輸出有效數(shù)據(jù)。PCLK為像素同步信號(hào),下降沿更新數(shù)據(jù),上升沿為數(shù)據(jù)穩(wěn)定期。用來存儲(chǔ)圖像的外部數(shù)據(jù)存儲(chǔ)器的使能信號(hào)CE和寫信號(hào)WE及讀信號(hào)RE以及地址信號(hào)ADDRESS都是由單片機(jī)來產(chǎn)生。

  由于在數(shù)據(jù)輸出時(shí),PCLK上升沿信號(hào)穩(wěn)定,而數(shù)據(jù)存儲(chǔ)器是在WR上升沿將數(shù)據(jù)寫入,因此可以在場同步信號(hào)(VSYNC)有效后(VSYNC=0) 采用像素時(shí)鐘信號(hào)(PCLK)作為寫信號(hào)WE。同時(shí)設(shè)計(jì)一個(gè)計(jì)數(shù)器中斷,在場同步信號(hào)(VSYNC)有效后,以行同步信號(hào)(HREF)的下降沿為觸發(fā)沿對(duì)一幀圖像每一行計(jì)數(shù),并取其輸出作為數(shù)據(jù)存儲(chǔ)器的地址信號(hào)ADDRESS。這樣在HREF的下降沿更新地址信號(hào),接著在行同步信號(hào)(HREF)和像素時(shí)鐘信號(hào)(PCLK)上升沿存儲(chǔ)數(shù)據(jù)。

  系統(tǒng)圖像傳感器OV7670的初始化主要包括配置各種寄存器,利用單片機(jī)I/O口產(chǎn)生I2C總線信號(hào),實(shí)現(xiàn)對(duì)OV7670各種寄存器的設(shè)置以及對(duì)圖像傳感器的行場同步信號(hào),開窗及掃描格式的確定[6]??梢苑謩e設(shè)置輸出格式,縮放/DCW使能,像素時(shí)鐘分頻,水平、垂直采樣,輸出順序等。

  由于AT89LV51工作在11.0592MHz,而OV7670的工作時(shí)鐘頻率為10~24MHz,所以需要對(duì)0V7670的輸入時(shí)鐘進(jìn)行分頻來降低OV7670的工作頻率,進(jìn)而降低像素時(shí)鐘,這通過設(shè)置0V7670時(shí)鐘速率控制寄存器(CLKRC)為0xBF,設(shè)置通用寄存器7為0x12,用以控制采集圖像輸出格式為QVGA圖像大小為320×240;設(shè)置SCALING_DCWCTR寄存器為0x33,用以控制輸出圖像數(shù)據(jù)水平、垂直4抽樣;設(shè)置通用寄存器3為0x0c,用以控制縮放/DCW使能,設(shè)置通用寄存器14為0x13,用以控制像素時(shí)鐘4分頻,設(shè)置TSLB寄存器為 0x01,用以控制當(dāng)分辨率改變時(shí),傳感器自動(dòng)設(shè)置窗口。設(shè)置具體的程序如下:

  #include “sccb.h”

  void initial_OV7670(void)

  {

  write_addSCCB(0x11,0xbf);

  //系統(tǒng)時(shí)鐘64分頻

  write_addSCCB(0x3e,0x13);

  //PCLK 4分頻

  write_addSCCB(0x12,0x10);

  //輸出格式QVGA

  write_addSCCB(0x72,0x33);

  //水平,垂直4抽樣

  write_addSCCB(0x0c,0x0c);

  //縮放/DCW使能

  write_addSCCB(0x3a,0x01);

  //當(dāng)分辨率改變時(shí),

  傳感器立即自動(dòng)設(shè)置窗口

  }

c語言相關(guān)文章:c語言教程


存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理


攝像頭相關(guān)文章:攝像頭原理
數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理


關(guān)鍵詞: 單片機(jī) 圖像采集 201010

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉