【FPGA工程篇】图像采集及显示(一) |
您所在的位置:网站首页 › fpga可以做什么项目 › 【FPGA工程篇】图像采集及显示(一) |
FPGA学习入门:流水灯; FPGA项目入门:图像采集及显示。 ----FPGA大叔·沃自己硕得 目录 前言 一、项目要求 二、方案设计 三、代码实现 前言很多小伙伴在学习FPGA的时候,肯定都是先了解了verilog语法后,写了几个加法器;然后搞块学习开发板,跑跑流水灯、搞搞数码管显示对吧。流水灯的点亮,也可以说是点亮了我们FPGA殿堂的第一盏灯。 而同样的,图像采集及显示,在笔者看来可以说是FPGA项目入门的第一个项目也不为过。在该系统中,涉及到接口时序、缓存(FIFO、DDR3)、显示驱动(LCD)等,一个较为完整而又较为容易理解的系统。另外,上板调试还会涉及到约束文件的编写、硬件的连接、bit文件及mcs文件的生成、程序固化等,一个完整的入门项目。 其他图像处理类项目,基本可以在此基础上进行扩展。包括图像前处理(图像滤波、伽马矫正、图像增强etc)、图像后处理(锐化、边沿提取etc)等。 所以,笔者在此对其进行整理。温故而知新。 一、项目要求对摄像头信号采集并传输到LCD屏上显示。 硬件平台: 摄像头型号 :MT9V034(灰度摄像头,8位并行接口,分辨率:752*480 ,帧率:15-60fps) FPGA型号 :Xilinx A7 软件平台: Vivado 2018.3 二、方案设计首先,我们拿到项目要求,第一件事情就是分析其需求。而且,需求分解尽可能细致、详尽。那么,对于本项目要求来说,我们也可以大致对其需求分解: 摄像头信号采集图像数据传输LCD屏显示针对各个需求,我们再进一步深究其内涵。 摄像头信号采集,如何采集、根据什么采集?根据摄像头手册可知,摄像头将采集到的模拟信号转为数字信号,包括: 场同步信号、行同步信号、8位并行数据信号;这里,简单解释下,场同步信号代表一帧图像的有效范围;行同步信号确定有效像素数据。在场同步信号以及行同步信号都有效时,数据为有效像素数据。 所以,我们只需要在同步信号有效时,采集这8位并行数据即可。 图像数据传输,从采集到输出显示,如何保证不丢帧,不撕裂?一般来说,由于FPGA内部存储容量有限,会外挂DDR芯片作为存储扩展;所以,常用的做法是,先通过FIFO进行数据缓存,然后写入DDR,进行缓存一定帧数的图像(通常,项目也会要求xxM大小的缓存容量)。同时,FIFO还能起到跨时钟域数据同步的作用。最后,再从DDR读出图像数据,根据发送接口的不同,对发送模块设计相应的时序控制。 LCD屏显示,需要我们设计驱动模块,提供LCD显示所需的行/场同步信号以及RGB信号。RGB数据为565格式。即:R[4:0]G[5:0]B[4:0] 接下来,我们可以初步画出系统框图了:(后面使用电脑重新画图,便于查看) 根据系统设计,我们将项目分为以下三个子模块: 图像采集子模块(接收模块) image_capture.vDDR缓存子模块(缓存模块) ddr_top.vLCD驱动子模块(发送模块)lcd_drive.v——>接收——缓存——发送——> 接下来,我们再仔细讨论这几个子模块。 三、代码实现各模块的详细规划设计以及代码实现,我们下期见。 项目涉及到DDR3部分可以参考博文: Xilinx FPGA平台DDR3设计保姆式教程(汇总篇)——看这一篇就够了 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |