技术频道

一种新的嵌入式MPEG-4 DVR系统设计

摘要:目前,视频监控已步入了全数字化的多媒体网络时代,在这一开发背景下,文章详细介绍了基于VW2010编解码芯片、FPGA和嵌入式CPU设计的嵌入式MPEG-4 DVR监控系统的设计方式,并在此基础上进一步介绍了VW2010芯片的应用。
关键词:嵌入式CPU;FPGA;DVR;MPEG-4;
1引言
随着网络带宽、计算机处理能力和存储容量的快速提高,以及如MPEG-4、H.264等各种视频编码技术的涌现,从而使嵌入式DVR网络监控系统得以迅速发展与普及。
MPEG-4标准[1]采用基于对象的编码理念,支持内容的可分级性,并具有基于内容的交互性、高效的压缩性和通用的访问性等特点。MPEG-4提供了易出错环境的鲁棒性,来保证其在许多无线和有线网络及存储介质中的应用。因此,在嵌入式多媒体网络监控系统中采用MPEG-4视频压缩技术不仅能够获得其在视频处理方面的诸多优势,而且有利于网络的实时传输及硬盘存储,实现真正意义上的网络远程实时监控。
文章针对实际需求,提出了采用VW2010编解码芯片为核心的嵌入式MPEG-4 DVR监控系统的设计方案,详尽介绍了系统的设计原理和VW2010芯片的应用。此次设计结合了高效的音视频处理技术、大容量的信息存储技术、网络传输技术以及低功耗高稳定性的嵌入式技术于一身,是当代安防领域的新应用,在高端视频监控领域具有较广阔的应用前景。
2 DVR系统硬件设计原理
2.1 系统组成
由图1系统实现框图所示,系统框图中蓝色虚线为I2C总线,黑色粗线为地址数据和控制总线。系统硬件核心由:VW2010编解码芯片[2]、AT91RM9200嵌入式CPU[3],以及EP1C6 FPGA处理芯片[4]构成。整个系统共分5大功能模块,分别为:视频前端解码A/D转换模块、视频预处理及后处理FPGA模块、MPEG-4编码和解码模块、主控制芯片AT91RM9200模块、视频后端编码D/A转换模块。
视频前端解码A/D转换模块:
视频前端解码A/D转换模块选用SAA7115(一路实时或两路分时)或者TW2824(四路实时)视频解码芯片来实现视频信号采集,并对采集获得的视频信号进行模数转换。然后向视频预处理及后处理FPGA模块输出ITU-R.BT.656标准的8bitYUV数字视频信号,以及所需的8bit的VBI信号。SAA7115和TW2824可分别由主控制CPU或VW2010芯片通过I2C总线进行控制。当在视频预处理及后处理FPGA模块中进行特殊图像处理时,由主控制CPU采用I2C总线模式进行控制;当无需特殊处理时,可把视频预处理及后处理FPGA模块视为直通数据传输通道,此时可由VW2010芯片自带的ICI总线模式直接对其进行控制。



图1 MPEG-4 DVR系统实现框图
视频预处理及后处理FPGA模块:
视频预处理及后处理FPGA模块采用Cyclone-EP1C6芯片进行视频图像的特殊处理以及系统所需的时序生成。由主控制CPU通过I2C总线和系统控制总线对其实现的功能逻辑进行直接控制。该模块主要实现三个功能——前端预处理、后端后处理和时序生成。
前端预处理是为了满足某些监控领域的特殊需求,对未压缩的视频图像数据进行预处理,如添加水印和特殊信息插入等。同时,当前端有多路(4路)视频数据输入时,可通过多路视频数据的整合来实现4路图像的实时处理。后端后处理,也是为了满足某些特殊需求,而对由VW2010解码后的图像数据进行特殊处理。
MPEG-4编码和解码模块:
MPEG-4编码和解码模块选用VW2010芯片实现MPEG-4的编解码处理。由主控制CPU 采用Motorola主机通信模式通过VW2010的HIU接口单元实现对VW2010芯片内部寄存器设置和工作状态控制,以及对压缩视频数据的读写操作。
功能描述:该模块主要实现对视频数据的MPEG-4编码和解码,以及对音频数据的编解码功能。VW2010内部集成DSP芯片能够实现对音频信号编解码以及对视频信号、音频信号、用户数据和VBI数据实现复用、解复用功能。VW2010通过VPI接口和VBI接口接收视频预处理及后处理FPGA模块输出的8bit视频信号以及VBI信号进行MPEG-4编码处理,复用处理后转入HIU接口单元等待主控制芯片接收。同时,VW2010可通过HIU接口单元接收主控制芯片发送的MPEG-4编码后的视频数据,经过解复用处理后进入MPEG-4解码单元,然后把解码后的视频数据通过VPO接口向视频预处理及后处理FPGA模块发送8bit解码后的视频数据。
系统中由主控制芯片对VW2010芯片的11个GPIO口进行控制,实现某些特殊功能。其中,GPIO[10:11]作为VW2010的第二个I2C总线接口,GPIO[8:9]用于SAA7120中的TTX功能,而GPIO[0:7]可用于输出多路报警信号。
主控制芯片AT91RM9200模块:
主控制CPU芯片选用AT91RM9200芯片为主控制处理器,通过I2C总线、控制总线、主机地址总线和数据总线参与外围设备控制。系统通过AT91RM9200芯片实现对前端视频解码控制、视频预处理控制和MPEG-4编码和解码控制,后端视频编码控制,以及多入报警信号的输入控制。同时,主控制芯片的数据总线和地址总线通过复用方式与外围的VW2010、8M Flash和32M SDRAM芯片进行数据通信。
系统设计中,应用其实现2路IDE硬盘存储功能、网络传输功能、USB功能、2路串口功能和6键键盘控制功能。AT91RM9200芯片控制MPEG-4码流的接收和发送,并对码流进行IDE硬盘存储控制和数据读写处理。主控制芯片通过其网络芯片进行视频流的网络传输,也可以通过USB芯片进行数据交换传输。PC主机可通过USB、串口和JTAG口对其进行控制。
视频后端编码D/A转换模块:
视频编码模块采用SAA7120为其核心芯片,可由主控制CPU、VW2010芯片通过I2C总线对其进行控制。SAA7120接收视频预处理及后处理FPGA模块发送的ITU-R.BT.656标准的8bitYUV数字视频信号,并进行视频信号的数模转换,实现对视频信号的分时编码与显示,并输出YC或CVBS等视频信号。
2.2 系统硬件特点及硬件电路设计
系统硬件具有系统结构设计简单、稳定性高、交互性能强、数据压缩可选格式多,以及应用性强和应用范围广等特点。该系统具有三片核心芯片,通过摩托罗拉主机通信模式完成交互控制。由于在系统设计中采用了具有高性价比的FPGA芯片使其能够根据某些特殊需求做出相应调整,因此极大的增强了其应用的灵活性。同时,利用嵌入式CPU的丰富接口不但节省了传统的IDE控制接口芯片、以太网MAC及USB接口芯片,还减少了电路尺寸及布线工作量。VW2010外围的A/D、D/A等芯片可以通过AT91RM9200的串行I2C总线,方便地完成相应的初始化和制式转换。整个系统对电源种类要求很低,减少了对电源部分的设计压力和成本。AT91RM9200通过CPLD芯片扩展出的两个IDE接口相比在一个IDE接口上挂接多个IDE设备来说提高了速度。压缩完成的文件不但可以通过以太网接口进行网络传输,还可以通过目前流行的USB移动硬盘完成数据的传递。
由于电路的复杂性,且采用了高速数字电路,加上对电磁兼容(EMC)的设计要求,设计硬件电路时需考虑以下几点:1.VW2010编解码器的SDRAM必须尽可能的靠近VW2010芯片;2.对于处理VW2010、SDRAM、SAA7115和SAA7120等控制接口的时钟线时,要尽量使各线的长度及阻抗匹配,并要求对电路中的高速时钟线进行覆铜屏蔽;3.采用六层电路板,可以降低回路噪声,提高电路的稳定性;4.应做到模拟地与数字地隔离。避免数字电路对模拟电路产生干扰,提高采样的精度;5.对于高速的数据总线应尽量添加排阻,以达到阻抗匹配的目的。并应尽量减少走线长度,减小电路中电流的环路面积;6.对于USB等接口电路需添加相应的保护电路,以免外部噪声干扰。
2.3 VW2010应用
VW2010是实时MPEG-1、-2和-4音视频系统编解码芯片,支持同时压缩、解压或编码、解码处理,兼容多种视频标准。视频编码部分接收未压缩的ITU-R.BT.656数字视频信号。其为网络应用提供TS传输流或为存储应用提供PS节目流。视频解码部分接收MPEG码流,并输出ITU-R.BT.656数字视频。VW2010是该DVR系统中完成音视频编解码的主芯片。
主机接口结构、功能与应用:
VW2010的主机接口由HIU和PCI这两个内部模块构成。HIU模块具有16bit带宽内核,能够连接16bit带宽的主机总线(摩托罗拉、Intel等主机),并能连接标准PCI总线。
通过主机接口能够访问VW2010芯片内部硬件寄存器和编解码器SDRAM。主机接口内部拥有中断控制器用于管理来自芯片内部各个独立工作模块的中断信号,片内A/V缓存器和各个FIFO,以及允许外部主机来确定中断源。主机接口还允许外部主机重置芯片内部编解码器和主RISC处理器等各个独立模块。主机接口能够灵活响应DMA请求,而且主机接口内部包含了一系列内部寄存器,这些内部寄存器保存着用于A/V捕获和编码处理的相关参数,可用于启动和停止编解码器操作等。
在DVR系统设计中,VW2010通过HIU与外部主机通信。此时置芯片rom_data[6:0]引脚为0x1x001,即rom_data[1]引脚接下拉电阻置低位,rom_data[0]引脚悬空置高位。
寄存器读写:
HIU模块具有读写芯片内部硬件寄存器的I/O通道。HIU模块通过发送寄存器读写命令来获得访问权限。HIU访问寄存器命令由两部份构成,HIU命令码和寄存器地址码。
微码下载:
HIU提供了往芯片内编解码器的CPU和主RISC处理器下载微码的通道。微码的下载类似于寄存器访问和SDRAM访问,它需要HIU的命令,而且HIU提供的带宽必须能区分出写入带宽(16bits)和内部寄存器带宽(16bits)间指令长度存在的差异。
启动码导入:
VW2010支持三种启动码导入模式:ROM导入,ICI导入和主机导入。所有三种模式向主RISC处理器、编解码器CPU导入的微码都是先置于解码器的SDRAM中。
在系统设计中采用主机导入模式,此时,所有的微代码都通过HIU模块下载。且系统中无需外部ROM或SEEPROM协助。在此模式下,外部主机负责所有的下载程序。一旦所有的微码被下载,且所有模块都被初始化后,外部主机可启动编解码器和主RISC处理器。
主机接口信号:



由图2所示,图中host_hiu_data[15:0]为VW2010与外部主机通信的数据总线;host_hiu_addr[15:0]为VW2010与外部主机连接的地址总线,被用于传输访问内部寄存器的HIU命令或芯片内存地址信号;int_为主机中断信号,当产生中断信号时,主机通过读取INTS中断源寄存器来检测中断信号源;host_hiu_as_、host_hiu_cs_和host_hiu_rw_为VW2010地址选通信号,片选信号和主机读/写选择信号; hiu_host_cdo_req_压缩数据输出请求,请
求主机的DMA控制;host_hiu_cdo_ack_压缩数据输出确认信号,由主机DMA控制;hiu_host_cdi_req_压缩数据接收请求信号;host_hiu_cdi_ack_ 压缩数据接收确认信号;hiu_host_dtack_主机压缩数据输出的传输确认信号。在系统设计中,由于摩托罗拉接口总是16bit模式的,因此,传统的摩托罗拉接口的UDS和LDS信号未被使用。
小结:
文章较为详细的论述了系统设计思想和设计原理。并通过分析VW2010的主机接口模式,深入浅出的描述了VW2010芯片的具体应用方法。系统设计的嵌入式MPEG-4 DVR监控系统通过采用VW2010、FPGA和嵌入式ARM9三款核心芯片来构造,融合三者各自应用特点,具有高效的图像处理能力、交互性能强、灵活的应用性和稳定性高等特点。

文章版权归西部工控xbgk所有,未经许可不得转载。