久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 13107|回復: 2
收起左側

正點原子探索者STM32F407例程連載 第40章 OV2640攝像頭

[復制鏈接]
ID:134536 發表于 2018-3-13 00:32 | 顯示全部樓層 |閱讀模式
1.硬件平臺:正點原子探索者STM32F407開發板2.軟件平臺:MDK5.13.固件庫版本:V1.4.0

ALIENTEK探索者STM32F4開發板具有DCMI接口,并板載了一個攝像頭接口(P8),該接口可以用來連接ALIENTEK OV2640等攝像頭模塊。本章,我們將使用STM32驅動ALIENTEK OV2640攝像頭模塊,實現攝像頭功能。本章分為如下幾個部分:

40.1 OV2640&DCMI簡介

40.2 硬件設計

40.3 軟件設計

40.4 下載驗證

40.1 OV2640&DCMI簡介

本節將分為兩個部分,分別介紹OV2640和STM32F4的DCMI接口。
40.1.1 OV2640簡介

OV2640是OV(OmniVision)公司生產的一顆1/4寸的CMOS UXGA(1632*1232)圖像傳感器。該傳感器體積小、工作電壓低,提供單片UXGA攝像頭和影像處理器的所有功能。通過SCCB 總線控制,可以輸出整幀、子采樣、縮放和取窗口等方式的各種分辨率8/10位影像數據。該產品UXGA圖像最高達到15幀/秒(SVGA可達30幀,CIF可達60幀)。用戶可以完全控制圖像質量、數據格式和傳輸方式。所有圖像處理功能過程包括伽瑪曲線、白平衡、對比度、色度等都可以通過SCCB接口編程。OmmiVision 圖像傳感器應用獨有的傳感器技術,通過減少或消除光學或電子缺陷如固定圖案噪聲、拖尾、浮散等,提高圖像質量,得到清晰的穩定的彩色圖像。

OV2640的特點有:

l  高靈敏度、低電壓適合嵌入式應用

l  標準的SCCB接口,兼容IIC接口

l  支持RawRGB、RGB(RGB565/RGB555)、GRB422、YUV(422/420)和YCbCr(422)輸出格式

l  支持UXGA、SXGA、SVGA以及按比例縮小到從SXGA到40*30的任何尺寸

l  支持自動曝光控制、自動增益控制、自動白平衡、自動消除燈光條紋、自動黑電平校準等自動控制功能。同時支持色飽和度、色相、伽馬、銳度等設置。

l  支持閃光燈

l  支持圖像縮放、平移和窗口設置

l  支持圖像壓縮,即可輸出JPEG圖像數據

l  自帶嵌入式微處理器

OV2640的功能框圖圖如圖40.1.1.1所示:



圖40.1.1.1 OV2640功能框圖

       OV2640傳感器包括如下一些功能模塊。

       1.感光整列(Image Array)

OV2640總共有1632*1232個像素,最大輸出尺寸為UXGA(1600*1200),即200W像素。

2.模擬信號處理(Analog Processing)

模擬信號處理所有模擬功能,并包括:模擬放大(AMP)、增益控制、通道平衡和平衡控制等。

3.10位A/D 轉換(A/D)

原始的信號經過模擬放大后,分G和BR兩路進入一個10 位的A/D 轉換器,A/D 轉換器工作頻率高達20M,與像素頻率完全同步(轉換的頻率和幀率有關)。除A/D轉換器外,該模塊還有黑電平校正(BLC)功能。

4.數字信號處理器(DSP)

這個部分控制由原始信號插值到RGB 信號的過程,并控制一些圖像質量:

l  邊緣銳化(二維高通濾波器)

l  顏色空間轉換(原始信號到RGB或者YUV/YCbYCr)

l  RGB色彩矩陣以消除串擾

l  色相和飽和度的控制

l  黑/白點補償

l  降噪

l  鏡頭補償

l  可編程的伽瑪

l  十位到八位數據轉換

5.輸出格式模塊(Output Formatter)

該模塊按設定優先級控制圖像的所有輸出數據及其格式。

6.壓縮引擎(Compression Engine)

壓縮引擎框圖如圖40.1.1.2所示:

圖40.1.1.2 壓縮引擎框圖

       從圖可以看出,壓縮引擎主要包括三部分:DCT、QZ和entropy encoder(熵編碼器),將原始的數據流,壓縮成jpeg數據輸出。

7.微處理器(Microcontroller)

OV2640自帶了一個8位微處理器,該處理器有512字節SRAM,4KB的ROM,它提供一個靈活的主機到控制系統的指令接口,同時也具有細調圖像質量的功能。

8.SCCB接口(SCCB Interface)

SCCB接口控制圖像傳感器芯片的運行,詳細使用方法參照光盤的《OmniVision Technologies Seril Camera Control Bus(SCCB) Specification》這個文檔

9.數字視頻接口(Digital Video Port)

OV2640擁有一個10位數字視頻接口(支持8位接法),其MSB和LSB可以程序設置先后順序,ALIENTEK OV2640模塊采用默認的8位連接方式,如圖40.1.1.3所示:

圖40.1.1.3 OV2640默認8位連接方式

OV2640的寄存器通過SCCB時序訪問并設置,SCCB時序和IIC時序十分類似,在本章我們不做介紹,請大家參考光盤《OmniVision Technologies Seril Camera Control Bus(SCCB) Specification》這個文檔。

接下來,我們介紹一下OV2640的傳感器窗口設置、圖像尺寸設置、圖像窗口設置和圖像輸出大小設置,這幾個設置與我們的正常使用密切相關,有必要了解一下。其中,除了傳感器窗口設置是直接針對傳感器陣列的設置,其他都是DSP部分的設置了,接下來我們一個個介紹。

傳感器窗口設置,該功能允許用戶設置整個傳感器區域(1632*1220)的感興趣部分,也就是在傳感器里面開窗,開窗范圍從2*2~1632*1220都可以設置,不過要求這個窗口必須大于等于隨后設置的圖像尺寸。傳感器窗口設置,通過:0X03/0X19/0X1A/0X07/0X17/0X18等寄存器設置,寄存器定義請看OV2640_DS(1.6).pdf這個文檔(下同)。

圖像尺寸設置,也就是DSP輸出(最終輸出到LCD的)圖像的最大尺寸,該尺寸要小于等于前面我們傳感器窗口設置所設定的窗口尺寸。圖像尺寸通過:0XC0/0XC1/0X8C等寄存器設置。

圖像窗口設置,這里起始和前面的傳感器窗口設置類似,只是這個窗口是在我們前面設置的圖像尺寸里面,再一次設置窗口大小,該窗口必須小于等于前面設置的圖像尺寸。該窗口設置后的圖像范圍,將用于輸出到外部。圖像窗口設置通過:0X51/0X52/0X53/0X54/0X55/0X57等寄存器設置。

圖像輸出大小設置,這是最終輸出到外部的圖像尺寸。該設置將圖像窗口設置所決定的窗口大小,通過內部DSP處理,縮放成我們輸出到外部的圖像大小。該設置將會對圖像進行縮放處理,如果設置的圖像輸出大小不等于圖像窗口設置圖像大小,那么圖像就會被縮放處理,只有這兩者設置一樣大的時候,輸出比例才是1:1的。

因為OmniVision 公司公開的文檔,對這些設置實在是沒有詳細介紹。只能從他們提供的初始化代碼(還得去linux源碼里面移植過來)里面去分析規律,所以,這幾個設置,都是作者根據OV2640的調試經驗,以及相關文檔總結出來的,不保證百分比正確,如有錯誤,還請大家指正。

以上幾個設置,光看文字可能不太清楚,這里我們畫一個簡圖有助于大家理解,如圖40.1.1.4所示:

圖40.1.1.4 OV2640圖像窗口設置簡圖

       上圖,最終紅色框所示的圖像輸出大小,才是OV2640輸出給外部的圖像尺寸,也就是顯示在LCD上面的圖像大小。當圖像輸出大小與圖像窗口不等時,會進行縮放處理,在LCD上面看到的圖像將會變形。

最后,我們介紹一下OV2640的圖像數據輸出格式。首先我們簡單介紹一些定義:

UXGA,即分辨率位1600*1200的輸出格式,類似的還有:SXGA(1280*1024)、WXGA+(1440*900)、XVGA(1280*960)、WXGA(1280*800)、XGA(1024*768)、SVGA(800*600)、VGA(640*480)、CIF(352*288)、WQVGA(400*240)、QCIF(176*144)和QQVGA(160*120)等。

PCLK,即像素時鐘,一個PCLK時鐘,輸出一個像素(或半個像素)。

VSYNC,即幀同步信號。

HREF /HSYNC,即行同步信號。

OV2640的圖像數據輸出(通過Y[9:0])就是在PCLK,VSYNC和HREF/ HSYNC的控制下進行的。首先看看行輸出時序,如圖40.1.1.5所示:

圖40.1.1.5 OV2640行輸出時序

從上圖可以看出,圖像數據在HREF為高的時候輸出,當HREF變高后,每一個PCLK時鐘,輸出一個8位/10位數據。我們采用8位接口,所以每個PCLK輸出1個字節,且在RGB/YUV輸出格式下,每個tp=2個Tpclk,如果是Raw格式,則一個tp=1個Tpclk。比如我們采用UXGA時序,RGB565格式輸出,每2個字節組成一個像素的顏色(高低字節順序可通過0XDA寄存器設置),這樣每行輸出總共有1600*2個PCLK周期,輸出1600*2個字節。

再來看看幀時序(UXGA模式),如圖40.1.1.6所示:

圖40.1.1.6 OV2640幀時序

上圖清楚的表示了OV2640在UXGA模式下的數據輸出。我們按照這個時序去讀取OV2640的數據,就可以得到圖像數據。

最后說一下OV2640的圖像數據格式,我們一般用2種輸出方式:RGB565和JPEG。當輸出RGB565格式數據的時候,時序完全就是上面兩幅圖介紹的關系。以滿足不同需要。而當輸出數據是JPEG數據的時候,同樣也是這種方式輸出(所以數據讀取方法一模一樣),不過PCLK數目大大減少了,且不連續,輸出的數據是壓縮后的JPEG數據,輸出的JPEG數據以:0XFF,0XD8開頭,以0XFF,0XD9結尾,且在0XFF,0XD8之前,或者0XFF,0XD9之后,會有不定數量的其他數據存在(一般是0),這些數據我們直接忽略即可,將得到的0XFF,0XD8~0XFF,0XD9之間的數據,保存為.jpg/.jpeg文件,就可以直接在電腦上打開看到圖像了。

OV2640自帶的JPEG輸出功能,大大減少了圖像的數據量,使得其在網絡攝像頭、無線視頻傳輸等方面具有很大的優勢。OV2640我們就介紹到這。



圖40.1.2.3 ALIENTEK OV2640攝像頭模塊外觀圖

模塊原理圖如圖40.1.2.4所示:


這些線的連接,探索者STM32F4開發板的內部已經連接好了,我們只需要將OV2640攝像頭模塊插上去就好了。特別注意:DCMI攝像頭接口和I2S接口、DAC、SDIO以及1WIRE_DQ等有沖突,使用的時候,必須分時復用才可以,不可同時使用。實物連接如圖40.2.2所示:

圖40.2.2 OV2640攝像頭模塊與開發板連接實物圖
40.3 軟件設計
軟件設計請直接下載附件的pdf講解和實驗工程。
40.4 下載驗證
在代碼編譯成功之后,我們通過下載代碼到ALIENTEK探索者STM32F4開發板上,在OV2640初始化成功后,屏幕提示選擇模式,此時我們可以按KEY0,進入RGB565模式測試,也可以按KEY1,進入JPEG模式測試。
當按KEY0后,選擇RGB565模式,LCD滿屏顯示壓縮放后的圖像(有變形),如圖40.4.1所示:



圖40.4.1 RGB565模式測試圖片
此時,可以按KEY_UP切換為1:1顯示(不變形)。同時還可以通過KEY0按鍵,設置對比度;KEY1按鍵,設置飽和度;KEY2,可以設置特效。
當按KEY1后,選擇JPEG模式,此時屏幕顯示JPEG數據傳輸進程,如圖40.4.2所示:
圖40.4.2 JPEG模式測試圖
默認條件下,圖像分辨率是QVGA(320*240)的,硬件上:我們需要一根RS232串口線連接開發板的COM2(注意要用跳線帽將P9的:COM2_RX連接在PA2(TX))。如果沒有RS232線,也可以借助我們開發板板載的USB轉串口實現(有2個辦法:1,改代碼;2,杜邦線連接P9的PA2(TX)和P6的RX)。
我們打開上位機軟件:串口攝像頭.exe(路徑:光盤à\6,軟件資料à軟件à串口攝像頭軟件à串口攝像頭.exe),選擇正確的串口,然后波特率設置為115200,打開即可收到下位機傳過來的圖片了,如圖40.4.3所示:
圖40.4.3 串口攝像頭軟件接收并顯示JPEG圖片
我們可以通過KEY_UP設置輸出圖像的尺寸(QQVGA~UXGA)。通過KEY0按鍵,設置對比度;KEY1按鍵,設置飽和度;KEY2按鍵,設置特效。
同時,你還可以在串口,通過USMART調用SCCB_WR_Reg等函數,來設置OV2640的各寄存器,達到調試測試OV2640的目的,如圖40.4.4所示:
圖40.4.4 USMART調試OV2640
       從上圖還可以看出,幀率為15幀,這和我們前面介紹的OV2640在UXGA模式,輸出幀率是15幀是一致的。
回復

使用道具 舉報

ID:310098 發表于 2018-4-26 20:51 | 顯示全部樓層
您好,我下載程序后,用串口2接收數據,這時電腦端攝像頭助手會閃退,后面我用串口助手查看接收數據,把接收的數據轉換成JPEG格式時出現格式不正確,請問該怎么辦
回復

使用道具 舉報

ID:144749 發表于 2020-1-26 23:25 | 顯示全部樓層
gzxyssw 發表于 2018-4-26 20:51
您好,我下載程序后,用串口2接收數據,這時電腦端攝像頭助手會閃退,后面我用串口助手查看接收數據,把接 ...

我跟你一樣的情況,查看數據顯示ff d8 .... ff d9,用串口軟件顯示會閃退 用16進制轉圖片的軟件保存打開不能顯示
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩成人免费视频 | 日韩a视频| 丁香一区二区 | 男女啪啪高潮无遮挡免费动态 | 一区二区三区在线播放视频 | 久久久毛片| 99riav国产一区二区三区 | av一区在线观看 | 色网站视频 | 日韩在线播放第一页 | 久久久精品黄色 | 欧美激情一区二区三级高清视频 | 国产成人高清 | 欧美 日韩 国产 成人 在线 91 | 一级aaaaaa毛片免费同男同女 | 亚洲成人一区二区 | 全部免费毛片在线播放网站 | 91高清在线| 91精品国产综合久久香蕉922 | 日韩中文字幕视频在线观看 | 狠狠的日 | 精品国产乱码久久久久久蜜退臀 | 免费看黄色视屏 | 国产精品欧美一区二区 | 国产精品一区二区在线免费观看 | 亚洲精品日韩欧美 | 精品一级电影 | 免费视频二区 | 亚洲精品国产一区 | 精品国产乱码久久久久久蜜柚 | 激情 一区| 日本一区二区高清不卡 | 日韩精品一区二区三区中文字幕 | 免费在线观看一区二区 | 免费艹逼视频 | 国产精品欧美一区二区三区不卡 | 午夜视频免费 | 亚洲国产精品91 | 不卡一区二区三区四区 | 综合久久亚洲 | 久久久久网站 |