搜索
bottom↓
回复: 0

《新起点V2之FPGA开发指南》第五十六章 双目OV5640摄像头HDMI

[复制链接]

出0入234汤圆

发表于 2021-11-1 15:10:54 | 显示全部楼层 |阅读模式
1)实验平台:正点原子新起点V2FPGA开发板
2)  章节摘自【正点原子】《新起点之FPGA开发指南 V2.1》
3)购买链接:https://detail.tmall.com/item.htm?id=609758951113
4)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-328002-1-1.html
5)正点原子官方B站:https://space.bilibili.com/394620890
6)正点原子FPGA技术交流QQ群:712557122
1.png


2.jpg


3.png


第五十六章 双目OV5640摄像头HDMI显示实验

       在双目OV5640摄像头RGB-LCD显示实验中,成功地在LCD屏上实时显示出了摄像头采集的图像。本章将使用FPGA开发板实现对双目OV5640的数字图像采集并在HDMI显示器上实时显示。本章包括以下几个部分:
      1.1简介
      1.2实验任务
      1.3硬件设计
      1.4程序设计
      1.5下载验证

1.1简介
       在“OV5640摄像头RGB-LCD显示实验”中对OV5640的视频传输时序、SCCB协议以及寄存器的配置信息等内容作了详细的介绍,如果大家对这部分内容不是很熟悉的话,请参考“OV5640摄像头RGB-LCD显示实验”中的OV5640简介部分。本次实验将在前面“双目OV5640摄像头RGB-LCD显示实验”的基础上学习双目摄像头的HDMI显示。
1.2实验任务
       本章的实验任务是利用双目OV5640摄像头采集图像,将采集到的图像实时显示在HDMI显示器上,两幅图像分别占据HDMI显示器的左右半边。
1.3硬件设计
       摄像头扩展接口原理图及双目OV5640模块说明与“双目OV5640摄像头RGB-LCD显示实验”完全相同,请参考“双目OV5640摄像头RGB-LCD显示实验”硬件设计部分。HDMI接口部分的硬件设计请参考“HDMI彩条显示实验”中的硬件设计部分。
由于双目OV5640、HDMI接口和SDRAM引脚数目较多且在前面相应的章节中已经给出它们的管脚列表,这里不再列出管脚分配。
1.4程序设计
       根据实验任务,首先设计如图 56.4.1所示的系统框图,本章实验的系统框架延续了“双目OV5640摄像头RGB-LCD显示实验”的整体架构。本次实验包括以下模块:时钟模块、SDRAM控制器模块、摄像头驱动模块和HDMI顶层模块。其中SDRAM控制模块和摄像头驱动模块我们没有做任何修改,时钟模块又添加了一个锁相环(pll_hdmi)用来生成HDMI驱动模块所需要的工作时钟。摄像头驱动模块在“OV5640摄像头RGB-LCD显示实验”中已经说明过,SDRAM控制模块在“双目OV5640摄像头RGB-LCD显示实验”中已经说明过,这里不再详述,本次实验只是将LCD顶层模块替换成了HDMI顶层模块。因为本次实验用的是HDMI显示器来显示,所以需要将LCD顶层模块替换成HDMI顶层模块。
第五十六章 双目OV5640摄像头HDMI显示实验1001.png

图 56.4.1 顶层系统框图

       由上图可知,时钟模块主要是为HDMI顶层模块、SDRAM控制模块以及OV5640驱动模块提供驱动时钟。OV5640驱动模块控制着传感器初始化的开始与结束,传感器初始化完成后将采集到的数据写入SDRAM控制模块。HDMI顶层模块从SDRAM控制模块中读出数据并驱动显示器显示,这时整个系统才完成了数据的采集、缓存与显示。需要注意的是图像数据采集模块是在SDRAM和传感器都初始化完成之后才开始输出数据的,避免了在SDRAM初始化过程中向里面写入数据。
       下面是顶层模块的原理图:
第五十六章 双目OV5640摄像头HDMI显示实验1302.png

图 56.4.2 顶层模块原理图

       时钟模块(pll和pll_hdmi):时钟模块通过调用锁相环IP核实现,其中pll锁相环用来生成100Mhz时钟(clk_100m)和100Mhz偏移-60度时钟(clk_100m_shift)供给SDRAM控制器模块使用,还生成50Mhz时钟(clk_50m)供给摄像头驱动模块使用。而pll_hdmi锁相环主要用来生成71Mhz时钟(hdmi_clk)和355Mhz时钟(hdmi_clk_5)用来供给HDMI控制模块使用。
       HDMI顶层模块(hdmi_top):HDMI顶层模块负责驱动HDMI显示器的驱动信号的输出,同时为其他模块提供显示器参数、场同步信号和数据请求信号。HDMI顶层模块例化了HDMI驱动模块(video_driver)、HDMI显示模块(lcd_disply)和HDMI驱动转换顶层模块(dvi_transmitter_top)。HDMI驱动模块负责产生行场信号和数据有效使能信号和像素点的横纵坐标,同时将内部信号data_req(数据请求信号)输出至端口,方便从SDRAM控制器中读取数据,完成读出图像数据的功能。HDMI显示模块(lcd_disply)产生HDMI显示器要显示的像素内容,包括图像内容和叠加上去的字符。HDMI驱动转换顶层模块负责将RGB888格式的视频图像转换成TMDS数据输出。有关HDMI驱动模块、HDMI驱动转换顶层模块的详细介绍请大家参考“HDMI彩条显示实验”章节。有关HDMI显示模块的详细介绍请大家参考“双目OV5640摄像头RGB-LCD显示实验”章节。
       摄像头驱动模块(ov5640_dri):本模块由原先的IIC驱动模块、OV5640 寄存器配置模块和摄像头图像采集模块封装而成,这样做是为了减少顶层模块的代码量,增强可读性,同时有利于代码的维护和管理。由于本次实验连接了两个相同的摄像头,因此我们会对摄像头驱动模块例化两次,将两个驱动模块输出的数据和数据有效使能全部连接到SDRAM控制模块。有关摄像头驱动模块的详细介绍请大家参考OV5640摄像头LCD显示实验章节。
       SDRAM控制模块(sdram_top):SDRAM读写控制器模块负责驱动SDRAM片外存储器,缓存图像传感器输出的图像数据。该模块将SDRAM复杂的读写操作封装成类似FIFO的用户接口,非常方便用户的使用。
1.5下载验证
       编译完工程之后我们就可以开始下载程序了。将双目OV5640摄像头模块插在开发板的P7扩展口上,并将HDMI电缆一端连接到开发板上的HDMI插座、另一端连接到显示器。将下载器一端连电脑,另一端与开发板上的JTAG端口连接,连接电源线并打开电源开关。接下来我们下载程序,验证双目OV5640 HDMI实时显示功能。下载完成后观察HDMI显示器显示的图案如下图所示,说明双目OV5640 HDMI实时显示程序下载验证成功。
第五十六章 双目OV5640摄像头HDMI显示实验2554.png

图 56.5.1 HDMI实时显示图像

阿莫论坛20周年了!感谢大家的支持与爱护!!

如果天空是黑暗的,那就摸黑生存;
如果发出声音是危险的,那就保持沉默;
如果自觉无力发光,那就蜷伏于牆角。
但是,不要习惯了黑暗就为黑暗辩护;
也不要为自己的苟且而得意;
不要嘲讽那些比自己更勇敢的人。
我们可以卑微如尘土,但不可扭曲如蛆虫。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-27 07:03

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表