FPGA 学习小组
直播中

李欣

7年用户 267经验值
私信 关注

如何设计数字视频监控系统?

近年来,视频监控系统以实时性强,适于远程控制,便于管理人员操作等优点。日益在银行、交通、仓管、军事等行业的安防方面得到了广泛的应用。与传统的模拟视频监控系统相比,数字视频监控系统的视频信号以数字形式进行采集和存储,便于压缩,分析,处理和显示,抗干扰能力强,适合网络传输。因此,数字化是视频监控系统的发展方向。

传统的视频处理系统为了满足实时性和灵活的实际接口需要,多采用FPGA+ DSP或者 MCU+DSP的硬件架构。其中 DSP实现视频处理算法, FPGA/MCU主要实现各种接口威廉希尔官方网站 及一些辅助性工作。随着大规模集成威廉希尔官方网站 威廉希尔官方网站 的进步和制造工艺水平的提高,FPGA的功能和处理能力越来越强,通过一个半导体芯片完成系统级的集成已成为可能。

可编程片上系统(SOPC:System On a Programmable Chip)作为一种基于 FPGA的可重构的片上系统(SOC:System On a Chip),将处理器、存储器、 I/ O口等系统需要的模块集成到一片FPGA上,完成整个系统的逻辑功能,具有设计灵活、可裁减、可扩充、可升级,并且软硬件在系统可编程,是一种灵活高效的SOC解决方案,那么我们具体该如何设计数字视频监控系统呢?


回帖(3)

胡小娟

2019-8-2 17:17:39
2 数字视频监控系统总体结构和功能

根据数字视频监控系统的功能需求,系统功能包括采集现场视频信号,进行相关图像和视频算法处理,输出信号至视频 D/A芯片,转换成模拟视频信号,在显示器上实时显示。考虑系统可扩展性和稳定性及Freedev数字应用开发板上的器件和其功能,本系统主要包括以下几方面:

1)CycloneII FPGA,包括 Nios II软核处理器、锁相器 PLL、操作系统使用的定时器、 JTAG UART下载口和外围设备的接口;

2)16 MB AMD AM29LV256 Flash,存放代码和参数;

3)32 MB Micron HY57V561620HT-H SDRAM,存储系统运行过程中的代码和图像数据;

4)640*480 CMOS模拟摄像头,采集视频模拟信号;

5)ADV7181B视频解码芯片,实现CVBS等模拟视频信号到YCrCb数字视频信号的转换;

6)ADV7123三路高速数模转换芯片,完成RGB信号的数模转换;

7)24位真彩色VGA视频输出接口,完成视频信号的输出;

8)CRT显示器,用于视频的显示;

9)发光LED和控制按钮,用于系统工作状态显示和控制。其中Cyclone II FPGA,Flash,SDRAM,ADV7181B,ADV7123,发光 LED,控制按钮均在开发板上。开发板上还有可扩展的I/O口,同时可用连线连接上摄像头和显示器。如图1所示,数字视频监控系统设计分为 3部分:视频采集、视频处理和视频显示三部分。



图像采集部分主要由I2C总线协议对ADV7181B模拟视频解码芯片进行配置,输出符合标准ITU 656 YUV 4∶2∶2格式的YCrCb视频数据信号。经过预处理和采集模块后用直接存储器存取方式( DMA)将RGB格式的有效视频数据存储在板上的SDRAM中。视频处理部分可采用硬件或软件两种不同方式来实现,硬件采用流水线和并行处理方式,完全由FPGA内设计的硬件威廉希尔官方网站 模块实现或者是由Nios II结合定制硬件威廉希尔官方网站 的方式实现;软件是在 Nios II IDE环境下以C语言实现。本文提出将两钟方法结合的方案。视频显示部分是ADV7123数模转换芯片加CRT显示器,它由Nios II控制,以直接存储器存取方式(DMA)接收SDRAM送来的图像数据与定时信号,并显示图像。 3 系统硬件平台构建

3.1 Nios II 嵌入式软核处理器

Nios II 处理器是 Altera 公司推出的第二代用于可编程逻辑器件的可配置的软核处理器,性能超过200DMIPS。最大特点为可根据实际应用的需要进行裁剪。Nios II处理器具有 32位指令集,32位数据通道和可配置的指令以及数据缓冲。它特别为可编程逻辑进行了优化设计。Nios II处理器系列包括三种内核:高速内核(Nios II/f);经济内核( Nios II/e);标准内核(NiosII/s)。使用Altera的QuartusII软件、SoPC Builder工具以及Nios II集成开发环境(IDE),用户可以轻松地将Nios II处理器嵌入到其系统中。

3.2 软核设计

本系统中用到的模块,除了视频输入、 I2C接口和 VGA显示控制接口,其余模块都可由 SoPC Builder直接添加获得,其中I2C控制器模块也可以在开发板提供商Freedev公司技术支持中心免费获得,所以本文只对上述另外两个接口模块用VHDL/Verilog语言编写程序。

3.2.1 视频输入接口设计


如图2所示,该视频输入模块采集格式为 CCIR-656 YCbCr4∶2∶2的8位数字视频流进入视频输入和FIFO缓存器,通过剪辑模块将其剪切成用户自定义的大小之后送到色彩空间转换模块进行YCbCr到RGB的转换。转换公式如下[3]:

R = 1.164(Y-16) + 1.596(Cr-128) G = 1.164(Y-16) - 0.813(Cr-128) - 0.392(Cb-128) B = 1.164(Y-16) + 1.017(Cb-128) + (Cb-128) 转换后的数据进入RGBFIFO缓存器,经扫描进入 FIFO缓存器,最后通过 AVALON DMA

控制器送入SDRAM缓存器进行显示帧的缓存。

3.2.2 VGA显示控制器设计

如图3所示, 显示控制器提供了两个Avalon总线接口,一个是 Avalon主端口,它从存储器读取图像数据,当读完一帧图像信号后,给系统一个中断信号。另一个是 Avalon从端口,它访问寄存器组来配置DMA控制器和VGA时序发生威廉希尔官方网站 。时序发生器产生显示所需要的各种同步信号,如行同步信号、帧同步信号和有效图像数据信号的时序关系。通过 Nios II处理器控制Avalon主端口从系统存储器(SDRAM)中读取帧图像数据至ADV7123视频D/A转换芯片产生三路模拟输出,同时结合时序同步信号送VGA接口完成图像的显示。




3.3 NIOS II系统模块生成

NIOS II系统模块设计用到 Altera公司的 SoPC Builder,该工具是 Altera公司推出的一种可加快在PLD内实现嵌入式处理器相关设计的工具。SoPC Builder提供了一个强大的平台,用于组建一个在模块级和组件级定义的系统。SoPC Builder的组件库包含了一系列常用的组件,这些组件的IP核可以根据设计需求直接加入系统,此外还可以通过SoPC Builder中提供的添加新设备功能,添加Verilog或VHDL语言程序,构建需要的自定义接口。本系统加入I2C控制器、NiosII/e(经济型)、定时器、JTAG UART、16 MB AMD AM29LV256 Flash、32 MB Micron HY57V561620HT-H SDRAM、视频输入接口、VGA显示接口等IP核,并生成系统模块。
举报

李丽

2019-8-2 17:17:44
4 系统软件设计与实现

4.1 利用 I2C总线对 ADV7181芯片的配置程序设计

使用FPGA模拟的 I2C接口可以对 ADV7181提供的多个控制字进行读写,从而完全控制 ADV7181的运行,也就是向 ADV7181相应的I2C寄存器写入所需要的工作模式对应值,使其读写都满足特定时序,准确无误。在这里 ,配置ADV7181使其输出 26MHz像素时钟、 CCIR656标准4∶2∶2的YCrCb格式视频数据。

4.2 NISO II 嵌入式系统软件程序开发

4.2.1 集成开发环境 (IDE)

NiosII集成开发环境(IDE)是NiosII系列嵌入式处理器的基本软件开发工具。所有软件开发任务都可以在NiosII IDE下完成,包括编辑、编译、调试程序和下载。 NiosII IDE提供了一个统一的开发平台,用于所有 NiosII处理器系统。软件开发人员将 PC机,Altera的FPGA通过 JTAG下载电缆连接,就能够往 NiosII处理器系统写入程序,并与 NiosII处理器系统进行通信。 IDE开发环境中有一个硬件开发层( HAL API),它是应用程序和系统硬件程序之间的一个系统库,集成了 ANSI C标准,可以允许应用程序使用类似 C库函数的方式访问硬件和文件,而且它提供了各种IP核的读写等操作函数库,非常方便软件工程师开发程序。

4.2.2 软件程序设计


图4是基于NiosII的软件设计的程序流程图。

先初始化Avalon总线接口中控制寄存器和状态寄存器的值和其他IP核参数的值,使得视频输入和VGA显示控制接口能够与总线正常通信。在视频输入接口的 Avalon总线从端口控制寄存器中定义 CS寄存器,当值为 0时,彩条测试信号模块作为系统信号源,为1时摄像头数据作为系统信号源。并设置用控制开关可以对 CS寄存器值修改。先设置 CS为0,采用彩条测试模块,读入一帧数据,显示器显示图像,则屏幕中出现彩条图案,证明硬件和整个程序正常工作。在图像显示稳定持续一段时间后,再开启控制开关采用摄像头数据输入,读入摄像头的图像数据和定时信号,经图像算法处理结束送至显示器显示图像,循环此过程。

举报

黄锐

2019-8-2 17:17:47
5 总结

本文的创新点在于提出一种基于SOPC实现数字视频监控系统的方案,应用Altera公司的 Nios II嵌入式处理器作CPU,起控制核心和算法核心的作用。在系统设计过程中,采用 CycloneII系列EP2C35F484C8芯片,开发平台是 Altera 嵌入式 Nios II处理器 Freedev数字应用开发板,完成基本的数字视频采集和视频显示功能。可以对该数字视频监控系统进行进一步的开发,将采集的数字视频进行压缩编码,扩展网络接口,进一步做成嵌入式无线视频传输系统;也可形成不同视频处理算法,完成例如入侵视频跟踪智能型监控系统等一系列相关的项目;此外,很容易将Linux等嵌入式系统移植到本硬件平台上来,为更高级的应用提供有效的支持。因此,它具有灵活性、实用性和可扩展性等特点,市场前景广阔。

参考文献:

[1]陈友荣,孟利民,卢允伟 . 基于NIOS II的数字视频系统设计 [J].单片机与嵌入式系统应用,2006(4):54~57。

[2]樊灵晶,基于 SOPC技术的嵌入式摄像控制系统的研究 [D].上海:上海海事大学, 2006。

[3]陈丽,基于 NIOS II的视频图像处理系统的设计 [D].北京:北京交通大学, 2006。

[4]陈彬,基于 FPGA的视频图像处理系统设计 [D]. 重庆:重庆大学,2006。

[5]潘松,黄继业,曾毓 .SOPC技术实用教程[M].北京:清华大学出版社, 2005:349~358。

[6]刘宇飞,郭宏.基于 Nios软核的CT机扫描系统控制器设计[J].微计算机信息, 2006(23): 146~148
举报

更多回帖

发帖
×
20
完善资料,
赚取积分