当前位置:首页 > 工业控制 > 《机电信息》
[导读]摘要:为了解决视频流数据实时显示和图像预处理问题,设计了基于FPGA和OV5640摄像头的图像采集和处理系统。该系统通过OV5640摄像头进行图像数据的采集,然后将其传输至FPGA内部,FPGA先控制视频流数据存储在SDRAM中,再将其传输至TFT显示屏进行实时视频流显示和处理。

引言

基于FPGA图像采集和处理系统具有功耗低、体积小、处理速度快的优势,在图像采集和数据处理方面有广泛应用。本次设计主要解决了视频流数据实时显示和图像预处理问题,图像采集和处理系统基于FPGA和OV5640摄像头,通过OV5640摄像头进行图像数据的采集,然后将其传输至FPGA内部,FPGA首先控制视频流数据存储在SDRAM中,再将其传输至TFT显示屏进行实时视频流显示。与此同时,内部集成图像处理模块能实现视频数据的中值滤波、高斯滤波、边缘检测等功能。该图像采集和处理系统结构如图1所示。

1摄像头

本次设计摄像头选用OV5640,支持MIPI和DVP两种接口。DVP接口是并行总线接口,MIPI接口是LVDS低压差分接口。现拟采用DVP接口驱动该摄像头。

OV5640所使用总线为SCCB,该总线类似于I2C总线,总线时序分为写时序和读时序。

写时序:Start一deviceid一ac一一kaddr一ac一一kdata一ac一一Stwp:

读时序:Start一deviceid一ac一一raddr一ac一一Start一ac一一rdata一nac一一Stwp。

其中,Start表示启动总线:deviceid是设备ID,最后一位表示读写操作码,低表示写,高表示读:ac一是写操作应答信号:kaddr表示寄存器地址:raddr表示写对应的寄存器数据:kdata表示写寄存器数据:rdata表示读对应的寄存器数据:Stwp表明关闭总线。

使用OV5640,需首先进行上电初始化,然后对其关键寄存器进行配置以实现寄存器初始化。经过上述两个步骤后,即可操作该摄像头进行图像采集。拟选择的视频采集参数为480dpi,刷新率60fpS,图像格式为RGB565。由此算出PCLK时钟频率至少为PCLK=800×480×(16bit/8bit)×60=46.08MHz,而从时序可知图像显示会有一定比例无效像素点,故PCLK实际频率大于46.08MHz。

在视频流数据实时采集到FPGA再通过VGA接口实时显示于链路中,二者数据速率存在偏差,故需要在其中添加图像数据缓冲单元。图像的每个像素点为16bit,计算可知一帧有效图像的数据量大小6.144Mbit,片内ram无法满足要求,故选用外部存储方式。外部存储选择SDRAM,并将SDRAM的存储空间分为两个子空间,每个子空间存储一帧数据,实时通过乒乓操作进行切换,从而达到视频流数据的无缝传输。

2SDRAM

SDRAM全称为同步动态随机存储器。同步指其工作频率与对应控制器的系统时钟频率相同,且内部命令的执行与数据传输都是以该时钟为基准。本设计选用HY57V281620SDRAM,共有128Mbit存储空间,4个Bank。

为控制SDRAM,首先需对其进行上电初始化,然后便可对SDRAM进行操作,即读、写以及刷新。根据数据手册中读写刷新操作的说明,最终完成SDRAM的控制器设计,能够实现FPGA外挂SDRAM的读、写、刷新操作。

3TFT显示器

视频显示器选择RGB接口TFT屏,RGB接口的TFT屏扫描方式和VGA标准类似,都为行列扫描。TFT屏扫描方式与VGA差异在于VGA显示器接收模拟信号,而TFT屏则省略了此过程,直接接收数字信号。故可以按照设计VGA显示器的方法驱动该显示屏。

为驱动VGA接口,需了解其时序,其分为行扫描、列扫描。扫描从屏幕的左上方开始,从左到右,从上到下进行扫描,每扫完一行,电子束都回到屏幕的下一行左边起始位置。在这期间,CRT对电子束进行消隐。每行结束时,用行同步信号进行行同步:扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕左上方。同时进行场消隐,预备下一场(帧)的扫描。

不同VGA显示屏之间除了时序参数不一样外,其他并无差异,可按同一方式设计。在设计VGA驱动代码时,可将时序指标进行参数化设计,这样在更换显示屏时只需改动参数便可完成驱动。

3图像处理模块

图像处理模块用于实现视频流数据的图像预处理,包括中值滤波、SObe1边缘检测等。不同于ARM、DSP等通用CPU,FPGA进行图像处理能高速并发,重复设计,流水线控制。

中值滤波是一种基于排序统计理论的非线性平滑计数,能有效平滑噪声,且能有效保护图像的边缘信息,所以被广泛应用于数字图像处理的边缘提取,其基本原理是把数字图像或数字序列中一点的值用该点邻域内所有点的中值来代替。

FPGA中实现中值滤波,首先利用移位寄存器生成3×3像素矩阵,然后使用当前待滤波像素领域的9个像素的中值代替该像素。求中值的方法是:(1)对3×3矩阵的每行按从大到小进行排序。(2)利用排序法求出最大值那一列的最小值,求出数那一列的中间值,求出最小值那一列的最大值。(3)将求出的三个值再排序,这三个值的中间值就是这个3×3矩阵的中间值。

45SOb1边缘检测

SObe1算子主要用作边缘检测,在技术上,它是离散型差分算子,用来计算图像亮度函数灰度的近似值。SObe1边缘检测的核心在于像素矩阵的卷积,卷积运算的本质就是对制定的图像区域的像素值进行加权求和的过程。其计算过程为图像区域中的每个像素值分别与卷积模板的每个元素对应相乘,将卷积的结果做求和运算。

与中值滤波一致,采用移位寄存器实现3×3像素矩阵。SObe1算子的实现划分为3个步骤:(1)计算Gx、Gy:(2)求GEQ \* jc3 \* hps10 \o\al(\s\up 3(+GEQ \* jc3 \* hps10 \o\al(\s\up 3(:(3)求GEQ \* jc3 \* hps10 \o\al(\s\up 3(+GEQ \* jc3 \* hps10 \o\al(\s\up 3(的平方根。其中,Gx、Gy为原图像3×3像素矩阵与横向纵向高斯模板卷积后矩阵,求平方根时调用成熟稳定可靠的CORD1C1P核实现。

原图与经过中值滤波和SObe1边缘检测的图像分别如图2、图3、图4所示。由图2、图3对比可知,中值滤波后清晰度较好,有效过滤了椒盐噪声。由图3、图4对比可以看出边缘的部分显示为黑,其余部分显示为白,这样可以清楚看到图像边缘。

6结语

本文对图像采集系统的各个分模块做了独立设计,并将其整和、协调控制,完成了实时视频流数据的高速采集、高清显示以及图像预处理功能,并能够对实时视频流数据进行中值滤波、SObe1边缘检测等处理。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭