<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種應(yīng)用于ARM7的CMOS圖像采集系統(tǒng)

          一種應(yīng)用于ARM7的CMOS圖像采集系統(tǒng)

          作者: 時(shí)間:2012-05-18 來源:網(wǎng)絡(luò) 收藏

          配置的具體方法如下:采用三相寫數(shù)據(jù)的方式,即在寫寄存器過程中要先發(fā)送OV7640的ID地址,然后發(fā)送數(shù)據(jù)的目的寄存器地址,接著為要寫的數(shù)據(jù)。如果給連續(xù)的寄存器寫數(shù)據(jù),寫完一個(gè)寄存器后,OV7640會(huì)自動(dòng)把寄存器地址加1,程序可繼續(xù)向下寫,而不需要再次輸入地址,從而三相寫數(shù)據(jù)變?yōu)榱藘上鄬憯?shù)據(jù),由于本中只需要對(duì)有限個(gè)不連續(xù)寄存器的數(shù)據(jù)進(jìn)行更改,如果采用對(duì)全部寄存器都加以配置這一方法的話,會(huì)浪費(fèi)很多時(shí)間和資源,所以我們只對(duì)需要更改數(shù)據(jù)的寄存器進(jìn)行寫數(shù)據(jù)。對(duì)于每一個(gè)變化的寄存器,都采用三相寫數(shù)據(jù)的方法。三相寫數(shù)據(jù)的傳輸周期如圖3所示。

          5.gif

          2) 數(shù)據(jù)的

          配置完畢后,將進(jìn)行數(shù)據(jù)的。在的過程中,最主要的是判別一幀圖像數(shù)據(jù)的開始和結(jié)束時(shí)刻。在仔細(xì)研究了OV7640輸出同步信號(hào)(VSYNC是垂直同步信號(hào)、HREF是水平同步信號(hào)、PCLK是輸出數(shù)據(jù)同步信號(hào))的基礎(chǔ)上,用C語言實(shí)現(xiàn)了采集過程起始點(diǎn)的精確控制。圖4表示了圖像采集期間三個(gè)同步信號(hào)的時(shí)序關(guān)系示意圖。

          6.gif

          VSYNC的上升沿表示一幀新的圖像的到來,下降沿表示一幀圖像數(shù)據(jù)采集的開始(圖像傳感器是按列采集圖像的)。HREF是水平同步信號(hào),其上升沿表示一列圖像數(shù)據(jù)的開始。PCLK是輸出數(shù)據(jù)同步信號(hào)。當(dāng)HREF為高電平期間,才能開始有效的數(shù)據(jù)采集,PCLK下降沿的到來表明數(shù)據(jù)的產(chǎn)生,PCLK每出現(xiàn)一個(gè)下降沿傳輸一位數(shù)據(jù)。HREF為高電平期間共傳輸640位數(shù)據(jù)。在一幀圖像中,即VSYNC為低電平期間,HREF出現(xiàn)480次高電平。當(dāng)下一個(gè)VSYNC信號(hào)的上升沿到來時(shí),就表明分辨率640*480的圖像采集過程結(jié)束。

          4. 軟件編程設(shè)計(jì)

          本文的軟件設(shè)計(jì)是運(yùn)行于uCLinux環(huán)境下的標(biāo)準(zhǔn)C程序。軟件設(shè)計(jì)的主要步驟是,在加電時(shí),對(duì)系統(tǒng)進(jìn)行初始化,包括S3C4510B的初始化和SCCB的配置,配置完后,當(dāng)接受到開始采集信號(hào)后,根據(jù)同步信號(hào)的狀態(tài)判斷是否開始采集數(shù)據(jù),采集完一幀圖像后將數(shù)據(jù)存入FLASH中。由于篇幅有限,下面給出了采集部分的程序代碼:



          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();