STM32學習筆記之攝像頭實驗(OV2640)

OV2640

相關概念:學習

  • UXGA,即分辨率位1600*1200的輸出格式,相似的還有:SXGA(1280*1024)、XVGA(1280*960)、WXGA(1280*800)、XGA(1024*768)、SVGA(800*600)、VGA(640*480)、CIF(352*288)和QQVGA(160*120)等。
  • PCLK,即像素時鐘,一個PCLK時鐘,輸出一個(或半個)像素。
  • VSYNC,即幀同步信號。
  • HREF /HSYNC,即行同步信號。

簡介: 
OV2640是OmniVision公司生產的一顆1/4寸的CMOS UXGA(1632*1232)圖像傳感器。該傳感器體積小、工做電壓低,提供單片UXGA攝像頭和影像處理器的全部功能。經過SCCB 總線控制,能夠輸出整幀、子採樣、縮放和取窗口等方式的各類分辨率8/10位影像數據。UXGA最高15幀/秒(SVGA可達30幀,CIF可達60幀)。 
注:SCCB總線能夠當作IIC總線的簡化版spa


窗口設置:接口

  1. 傳感器窗口設置(OV2640_Window_Set)
  2. 圖像尺寸設置(OV2640_ImageSize_Set)
  3. 圖像窗口設置(OV2640_ImageWin_Set)
  4. 圖像輸出大小設置(OV2640_OutSize_Set) 
    關係以下圖: 

通常來講1,2採起默認設置,咱們只須要調整3和4便可。圖片


時序圖: 
OV2640是採起先讀一行像素,再跳到下一行從新開始讀取新一行像素。 
首先,咱們看行輸出時序: 
 
圖像數據在HREF爲高的時候輸出,當HREF變高後,每個PCLK時鐘,輸出一個字節數據。好比咱們採用UXGA時序,RGB565格式輸出,每2個字節組成一個像素的顏色(低字節在前,高字節在後),這樣每行輸出總共有1600*2個PCLK週期,輸出1600*2個字節 
而後,看幀輸出時序: 
 
當HREF輸出高電平時開始讀取一行像素點,當低電平時不操做,重複操做便可讀取一幀圖像。 
OV2640支持:RGB565或JPEG輸出。RGB565輸出時,時序如圖所示。JPEG輸出時,PCLK大大減小,且HREF不連續,數據流以0XFF,0XD8開頭,以0XFF,0XD9結束,將此間數據保存爲.jpg便可在電腦打開查看。get

DCMI

DCMI是STM32F4芯片自帶的一個數字攝像頭接口,該接口是一個同步並行接口,可以接收外部8位、10位、12位或 14位 CMOS 攝像頭模塊發出的高速數據流(可達 54 MB/s)。 
接口定義以下: 
1,數據據輸入(D[0:13]),接攝像頭的數據輸出。 
2,水平同步(行同步)輸入(HSYNC),接攝像頭的HSYNC/HREF信號。 
3,垂直同步(場同步)輸入(VSYNC),接攝像頭的VSYNC信號。 
4,像素時鐘輸入(PIXCLK),接攝像頭的PCLK信號。 
同步

DCMI接收到的數據,存儲在DCMI_DR寄存器(32位)裏面,咱們接ATK-OV2640採用8位數據寬度,因此每4個像素時鐘,纔會捕獲完32位數據,第一個字節存放在LSB位置,第四個字節存放在MSB位置,以下圖所示: 
這裏寫圖片描述 
注:低字節在前,高字節在後it

DCMI支持DMA傳輸,當DCMI_CR寄存器中的CAPTURE位置1時,激活DMA接口。 
像頭接口每次在其寄存器(DCMI_DR)中收到一個完整的32位數據塊時,都將發一個DMA請求,由DMA將DCMI_DR寄存器的值搬運到目的地址(好比LCD/SRAM)。DCMI的DMA請求是映射在DMA2通道1的數據流1上面的,因此配置DMA時,應該配置這個。io

DCMI控制寄存器(DCMI_CR) 
這裏寫圖片描述 
ENABLE,用於設置是否使能DCMI。在使能以前,必須將其餘配置設置好。 
FCRC[1:0],這兩個位用於幀率控制,咱們捕獲全部幀,因此設置爲00便可。 
VSPOL,用於設置垂直同步極性,也就是VSYNC引腳上面,數據無效時的電平狀態,根據前面說所,咱們應該設置爲0。 
HSPOL,用於設置水平同步極性,也就是HSYNC引腳上面,數據無效時的電平狀態,一樣應該設置爲0。 
PCKPOL,用於設置像素時鐘極性,咱們用上升沿捕獲,因此設置爲1。 
CM,用於設置捕獲模式,咱們用連續採集模式,因此設置爲0便可。 
CAPTURE,用於使能捕獲,咱們設置爲1。該位使能後,將激活DMA,DCMI等待第一幀開始,而後生成DMA請求將收到的數據傳輸到目標存儲器中。(最後使能)class

攝像頭操做:配置

一.初始化時鐘 
二.初始化OV2640: 
1. 初始化IO口 
2. 上電,並復位 
3. 執行初始化序列 
三.設置圖像窗口設置和圖像輸出大小設置,能夠調整圖像大小或者縮放模式 
四.初始化DCMI: 
1. 配置相關引腳的複用功能,使能DCMI時鐘。 
2. 設置DCMI工做模式及PCLK/HSYNC/VSYNC等參數。 
3. 設置DMA 
4. 啓動DCMI傳輸。即設置DCMI->CR的最低位爲1

嵌入式學習交流羣:561213221

相關文章
相關標籤/搜索