基于FPGA的视频采集显示系统
为防止视频图像数据在采集与显示存在不同步的情况,在两极之间构建了FIFO并配合SDRAM以实现对采集数据的暂存,FIFO的写使能与摄像头的行同步信号相连,当行同步信号有效时开始写FIFO,当FIFO空标志位为低时电平表示FIFO中已存入数据,则NiosII开始控制SDRAM从FIFO中读取视频数据,这样操作的特点就是将经过缓存的数据流无停顿地传送到输出端,因此适合对时序不连续的像素进行无缝缓冲处理。
1.4 视频图像显示模块
视频图像显示通过在FPGA中构建的Nios II嵌入式内核实现,Nios II系统可以在设计阶段根据实际的需求来增减外设的数量和种类。可以使用Altera提供的开发工具SOPC Builder,在FPGA器件上创建软硬件开发的基础平台,即用SOPC Builder创建嵌入式内核CPU和参数化的接口总线Avalon。在此基础上,可以快速地将硬件系统与常规软件集成在单一可编程芯片中。而且,SOPC Builder还提供标准的接口方式,以便用户将外围电路做成Nios II嵌入式内核可以添加的外设模块。这种设计方式,方便了各类系统的调试。
2 系统软件设计
2.1 软件模块介绍
系统软件总设计模块如图6所示,在sys_ctrl中建立PLL锁相环对时钟倍频、分频产生系统各模块所需时钟与系统复位信号,vedio_in put模块负责OV7670摄像头的初始化与视频图像数据的采集,wrfifo模块配合Nios II负责对vedio_input采集的视频图像数据的缓存,以防止数据时钟不匹配而出现数据紊乱,而vga_ctrl模块主要负责产生读取wrfifo中的数据与实现数据的VGA显示产生相应的RGB数据与行、场同步信号,再将采集数据送到Nios II中,在Nios II中用C语言驱动TFT液晶,实现视频数据的显示。
2.2 Nios II嵌入式内核程序设计
Nios II嵌入式内核主要任务是将rag_ctrl采集数据送入SDRAM暂存,然后再根据显示需要将暂存的数据读取出来送到LCD显示,为了确保显示图像与采集图像的一致,在送LCD显示数据时要注意以下几点;
(1)根据实际情况去除行、场消隐数据,再根据显示内容的多少对数据进行裁剪,裁剪到适合LCD显示的大小,从而避免显示时图像的错位以及乱码等情况。
(2)由于嵌入式内核时钟频率相对于摄像头的大量数据来说速度还是难以做到摄像头采集的每幅图像都能完全显示,所以在设计中采用隔场采集处理的方式,这样避免SDRAM中数据过多以至于被填满的情况,也解决了嵌入式内核采集的出现的卡屏的情况。
3 结束语
采用FPGA设计并实现了一种视频显示系统,大幅减少了电路板的尺寸,节约了成本,同时增加了设计的灵活性和系统的可靠性,充分应用FPGA快速并行处理数据的特性,在产生同步信号的同时送出像素数据。嵌入式内核Nios II的使用,解决了其他系统实时图像显示的体积与速度问题,扩展了应用范围。
![](http://m.amcfsurvey.com/webstorage/images/2014/m/wx.png)
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码