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
窗口設置:接口
- 傳感器窗口設置(OV2640_Window_Set)
- 圖像尺寸設置(OV2640_ImageSize_Set)
- 圖像窗口設置(OV2640_ImageWin_Set)
- 圖像輸出大小設置(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