衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【紫光同創國產FPGA教程】【第十五章】OV5640攝像頭顯示例程

FPGA技術專欄 ? 來源:芯驛電子科技 ? 作者:芯驛電子科技 ? 2021-02-22 13:45 ? 次閱讀

原創教程由芯驛電子科技(上海)有限公司(ALINX)創作,版權歸本公司所有,如需轉載,需授權并注明出處(alinx.com)。

1. 實驗簡介

本實驗將采用500萬像素的OV5640攝像頭模組(模塊型號:AN5640)為大家顯示更高分辨率的視頻畫面。OV5640攝像頭模組最大支持QSXGA (2592x1944)的拍照功能,支持1080P、720P、VGA、QVGA視頻圖像輸出。本實驗將OV5640配置為RGB565輸出,先將視頻數據寫入外部存儲器,再從外部存儲器讀取送到VGA、LCD等顯示模塊。

2.實驗原理

2.1 OV5640傳感器簡介

OV5640攝像頭模組采用美國OmniVision(豪威)CMOS芯片圖像傳感器OV5640,支持自動對焦的功能。OV5640芯片支持DVP 和MIPI 接口,本實驗所用 OV5640攝像頭模組通過DVP接口和FPGA連接實現圖像的傳輸。

2.2 OV5640的參數說明

像素:硬件像素500W;

感光芯片:OV5640;

感光尺寸:1/4;

功能支持:自動對焦, 自動曝光控制(AEC),自動白平衡(AWB);

圖像格式 : RAW RGB, RGB565/555/444, YUV422/420和JPEG壓縮;

捕獲畫面:QSXGA(2592x1944), 1080p, 1280x960, VGA(640x480), QVGA(320x240);

工作溫度:-30~70℃, 穩定工作溫度為0~50℃

2.3 OV5640的寄存器配置

OV5640的寄存器配置是通過FPGA的I2C(也稱為SCCB接口)接口來配置。用戶需要配置正確的寄存器值讓OV5640輸出我們需要的圖像格式,實驗中我們把攝像頭輸出分辨率和顯示設備分辨率配置成一樣的, OV5640的攝像頭輸出的數據格式在以下的0x4300的寄存器里配置,在我們的例程中OV5640配置成RGB565的輸出格式。

pIYBAGAvUHqAdeZMAACF743-LVA360.jpg

關于OV5640的寄存器還有很多很多,但很多寄存器用戶無需去了解,寄存器的配置用戶可以按照OV5640的應用指南來配置就可以了。如果您想了解更多的寄存器的信息,可以參考OV5640的datasheet中的寄存器說明。

2.4 OV5640的RGB565輸出格式

OV5640在HREF信號為高時輸出一行的圖像數據,輸出數據在PCLK的上升沿的時候有效。因為RGB565顯示每個像數為16bit, 但OV5640每個PCLK輸出的是8bit,所以每個圖像的像數分兩次輸出,第一個Byte輸出為R4~R0和G5~G3, 第二個Byte輸出為G2~G0和B4~B0,將前后2個字節拼接起來就是16Bit RGB565數據。

o4YBAGAvUHuAHmDsAACJY1IfDsA711.jpg

3. 程序設計

前面的實驗已經為本實驗做了大量的鋪墊,包括I2C寄存器的配置、外部存儲器的讀寫,本程序一個比較關鍵的地方在于視頻同時讀寫,如何做到讀寫不沖突?在設計幀讀寫模塊時就已經考慮到這點,所以有幀基地址選擇,最大4幀選擇,每次讀視頻幀地址和正在寫的幀地址是不同的,而是上次寫入一幀數據的地址,這樣就可以避免讀寫沖突,避免視頻畫面裂開錯位。

pIYBAGAvUHuAGpdaAAAuwNhQAQI350.jpg

cmos_8_16bit模塊完成攝像頭輸入的2個8bit數據轉換到一個16bit數據(一個像素),數據位寬變成2倍,時鐘頻率不變,所以16bit數據是隔一個時鐘周期有效,并不是每個時鐘一直有效。

信號名稱 方向 說明
rst in 異步復位輸入,高復位
pclk in 傳感器像素時鐘輸入
pdata_i in 傳感器8bit數據輸入
de_i in 數據有效(HREF)
pdata_o out 16bit數據輸出
hblank out de_i延時一個時鐘周期
de_o out 數據輸出有效

cmos_8_16bit模塊端口

cmos_write_req_gen模塊通過判斷攝像頭的列同步信號cmos_vsync的上升沿,生成ov5640數據寫入的請求信號,表示一幀圖像開始寫入請求。另外生成write_addr_index寫地址選擇和read_addr_index讀地址選擇,這里read_addr_index的值會比write_addr_index的值延遲一幀,使得讀和寫的地址不沖突。

信號名稱 方向 說明
rst in 異步復位輸入,高復位
pclk in 傳感器像素時鐘輸入
cmos_vsync in 場同步輸入,每一幀視頻都會變化一次,可以用于一幀的開始或結束
write_req out 寫數據請求
write_addr_index out 寫幀地址選擇
read_addr_index out 讀幀地址選擇
write_req_ack in 寫請求應答

cmos_write_req_gen模塊端口

frame_read_write模塊我們已經在前面的例程中使用過,在這里就是把攝像頭采集的數據存入寫FIFO里,然后產生DDR3的Burst寫請求,寫入到DDR3中,另外讀也是一樣,當讀FIFO里的數據小于一定值時,產生DDR3的Burst讀請求。在這里我們實例化了2個frame_read_write模塊,分別對應2路視頻的數據存儲和讀取。這里每路視頻的DDR3的存儲地址是不一樣的。

第一路視頻的存儲地址如下:

o4YBAGAvUHuATrUmAAAJDzY4OT8862.jpg

第二路視頻的存儲地址如下:

pIYBAGAvUHuADACcAAAJf7u3oSI351.jpg

video_rect_read_data模塊功能跟HDMI字符顯示osd_display模塊的功能類似,本例程中是把從DDR3里讀取的視頻圖像跟彩條圖像疊加,因為ax7035使用的是雙目攝像頭,所以需要調用2個video_rect_read_data模塊。

信號名稱 方向 說明
video_clk in 視頻的像素時鐘
rst in 復位信號
video_left_offset in 視頻顯示的水平偏移地址
video_top_offset in 視頻顯示的垂直偏移地址
video_width in 視頻的寬度
video_height in 視頻的高度
read_req out 讀一幀圖像數據請求
read_req _ack in 讀請求應答
read_en out 讀數據使能
read_data in 讀到的數據
timing_hs in 輸入的行同步信號
timing_vs in 輸入的列同步信號
timing_de in 輸入的數據有效信號
timing_data in 輸入的數據信號
hs out 輸出的行同步信號
vs out 輸出的列同步信號
de out 輸出的數據有效信號
vout_data out 輸出的數據信號

4. 實驗現象

1)將攝像頭模塊插入開發板,保證1腳對齊,1腳在焊盤形狀和其他引腳是有明顯區別的,是方形的。

AN5640攝像頭模塊連接開發板連接圖

AN5642攝像頭模塊連接開發板連接圖

2)如果使用HDMI來顯示,連接好HDMI顯示器,如果使用液晶屏顯示,插入液晶屏模塊,連接方法在《HDMI測試實驗教程》中已講述。

3)下載實驗程序,可以看到攝像頭模塊輸出的視頻。注意:ov5640模塊焦距是可調的,如果焦距不合適,圖像會模糊,旋轉鏡頭,可以調節焦距。攝像頭模塊要輕拿輕放,不要用手觸摸元器件

實驗效果圖

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21797

    瀏覽量

    606014
  • 視頻
    +關注

    關注

    6

    文章

    1956

    瀏覽量

    73141
  • 攝像頭
    +關注

    關注

    60

    文章

    4862

    瀏覽量

    96311
  • OV5640
    +關注

    關注

    1

    文章

    19

    瀏覽量

    14201
  • 紫光同創
    +關注

    關注

    5

    文章

    88

    瀏覽量

    27560
收藏 人收藏

    評論

    相關推薦

    飛凌嵌入式-ELFBOARD OV5640攝像頭講解第2期

    OV5640 輸出圖像格式如下圖3是OV5640輸出的圖像格式: 圖3 OV5640輸出圖像格式 除了上圖支持的圖像格式外,OV5640攝像頭
    發表于 12-02 13:35

    【小梅哥FPGAOV5640攝像頭資料,含應用手冊,1280*720P分辨率,30幀應用工程

    AC620_OV5640V2_SDRAM_TFT800_30FPS:使用Verilog直接配置OV5640攝像頭,RGB565、800*480分辨率、30FPS。圖像存入SDRAM后讀出并顯示
    發表于 04-30 10:26

    ov5640攝像頭采集的圖像顯示出來是錯誤的

    `STM32板子上ov5640攝像頭采集的JPEG數據圖像顯示出來是錯誤的。這樣的問題因為什么?該如何修改呢?`
    發表于 04-16 21:12

    STM32H750是如何獲取OV5640攝像頭圖像及上位機解碼的

    送到上位機軟件進行解碼。本文可作為STM32H7及STM32F7系列驅動OV5640攝像頭的代碼參考,本例程輸出分辨率(640×480)是通過DCMI的CROP方式從大圖片中“剪”出,使用者也可以做
    發表于 08-20 06:16

    如何利用stm32驅動ov5640攝像頭

    如何利用stm32驅動ov5640攝像頭
    發表于 02-22 07:44

    實驗教程:雙目攝像頭——紫光盤古50K開發板配套教程

    一、實驗目的Double_OV5640 雙目攝像頭模組采集視頻,通過 HDMI 輸出到外部顯示器。二、實驗設計OV5640 寄存器配置FPGA
    發表于 04-18 16:45

    紫光同創FPGA入門指導:OV5640 雙目攝像頭——紫光盤古系列50K開發板實驗教程

    :產生 visa 時序; ms72xx_ctl:配置 HDMI PHY; 五、實驗現象 步驟 1:按圖所示,連接 Double_OV5640 雙目攝像頭模組,HDMI 顯示器。 注 1:實驗
    發表于 06-13 16:01

    微雪電子OV5640 攝像頭模塊C型簡介

    OV5640攝像頭模塊C型 500萬像素 自動對焦 閃光燈 控制接口:SCCB 兼容I2C 型號 OV5640 Camera Board (C)
    的頭像 發表于 12-31 16:55 ?3211次閱讀
    微雪電子<b class='flag-5'>OV5640</b> <b class='flag-5'>攝像頭</b>模塊C型簡介

    微雪電子OV5640攝像頭模塊A型簡介

    OV5640攝像頭模塊A型 500萬像素 控制接口:SCCB 兼容I2C 型號 OV5640 Camera Board (A)
    的頭像 發表于 01-02 14:41 ?6456次閱讀
    微雪電子<b class='flag-5'>OV5640</b><b class='flag-5'>攝像頭</b>模塊A型簡介

    微雪電子OV5640 攝像頭模塊B型簡介

    OV5640攝像頭模塊B型 500萬像素 魚眼 廣視角 控制接口:SCCB 兼容I2C 型號 OV5640 Camera Board (B)
    的頭像 發表于 01-02 14:49 ?4008次閱讀
    微雪電子<b class='flag-5'>OV5640</b> <b class='flag-5'>攝像頭</b>模塊B型簡介

    基于OmniVision的OV5640設計的USB攝像頭模塊

    0V5640 USB攝像頭模塊是基于OmniVision公司的OV5640圖像傳感器進行設計的USB接口攝像頭模塊,高清免驅動,尺寸小巧,和廣州創龍AM335x、AM437x、AM57
    的頭像 發表于 11-12 15:55 ?5869次閱讀
    基于OmniVision的<b class='flag-5'>OV5640</b>設計的USB<b class='flag-5'>攝像頭</b>模塊

    自動對焦攝像頭模塊OV5640原理圖

    自動對焦攝像頭模塊OV5640原理圖下載
    發表于 02-13 09:44 ?48次下載

    【正點原子FPGA連載】第十五章 窗口門狗(WWDG)實驗 -摘自【正點原子】新起點之FPGA開發指南_V2.1

    【正點原子FPGA連載】第十五章 窗口門狗(WWDG)實驗 -摘自【正點原子】新起點之FPGA開發指南_V2.1
    發表于 12-05 11:21 ?12次下載
    【正點原子<b class='flag-5'>FPGA</b>連載】<b class='flag-5'>第十五章</b> 窗口門狗(WWDG)實驗 -摘自【正點原子】新起點之<b class='flag-5'>FPGA</b>開發指南_V2.1

    STM32驅動攝像頭ov5640的驅動源碼

    STM32驅動攝像頭ov5640的驅動源碼
    發表于 09-26 14:47 ?14次下載

    如何通過OV5640攝像頭顯示在VGA顯示屏上

    從本例開始,接下來的幾例,都將圍繞OV5640攝像頭來學習,教大家學會,如何通過OV5640攝像頭,采集圖像,并且顯示在VGA
    的頭像 發表于 10-18 09:20 ?3404次閱讀
    博九| 德州扑克规则视频| 百家乐投注方法新版| 大发百家乐官网现金| 奇博| 全讯网123| 百家乐网上投注文章| 百家乐官网空调维修| 澳门百家乐官网有限公司| 天空娱乐城| 威尼斯人娱乐场55556| 百家乐玄机| 红宝石百家乐官网的玩法技巧和规则 | 澳门百家乐博客| 机率游戏| 7位百家乐扑克桌| 百家乐自动下注| 百家乐官网可以作假吗| e世博百家乐官网技巧| 棋牌游戏易发| 基础百家乐博牌| 百家乐蓝盾假网| 粤港澳百家乐官网娱乐网| 溧阳市| 德州扑克玩法说明| 欧洲百家乐的玩法技巧和规则| 百家乐官网平玩法几副牌| 赌博百家乐官网技巧| 曲周县| 六合彩教程| 大发888真人真钱赌博| 乐宝百家乐官网的玩法技巧和规则| 澳门百家乐官网真人版| 江山市| 现金棋牌网站| 百家乐计划工具| 百家乐两边| 做生意摆放老虎好不好 | 女优百家乐官网的玩法技巧和规则 | 二代百家乐破解| 百家乐游戏公司|