一个嵌入式视频监控系统的设计与实现
扫描二维码
随时随地手机看文章
引言
传统的数字视频监控多采用数字芯片集成或采用纯PC监控,由于数字芯片无智能化的操作系统而PC机处理多路视频信号的速度较低,导致系统稳定性不够好。随着嵌入式系统和视频压缩技术的日渐成熟,以及高网络带宽的普及,通过嵌入式平台,将视频信号数字化并压缩,并通过内置的Web服务提供给访问者已成为可能。用户可在现有网络环境中,通过浏览器直接观看实时的监控图像,实现高效、简洁的监控操作。以嵌入式系统为基础的数字视频监控具有:便于计算机处理,适合远距离传输,可靠性高、安装方便、使用灵活和体积轻巧等优点[1- 3]。
1 系统组成方案
我们设计的嵌入式视频监控系统由视频服务器、控制中心、和客户端组成,这是因为当监控点和控制台到达一定数目之后,监控点对于用户的开销也越来越大,因此增加控制中心辅助进行管理。系统结构如图1所示。
1) 嵌入式视频服务器
嵌入式的视频服务器由硬件模块和软件模块组成。视频服务器硬件模块主要完成视频信号采集、压缩、网络传输和用户设置,每个视频服务器出厂时被分配了一个唯一的序列号作为用户访问的唯一标识。嵌入式软件模块的主要功能有是控制硬件和向用户传输经过压缩的视音频数据。
2) 控制中心
控制中心主要处理从客户端发送过来的视频监控信息,然后将许可的请求通知视频服务器,使它们之间建立有效连接以传输监控视频数据;另外,控制中心负责视频服务器的登记注册,设定用户权限和视频服务器的参数。控制中心软件运行在PC服务器上,由管理员操作维护。
3) 客户端
客户端是提供给用户使用的基于PC的操作界面,可根据不同用户权限设定其操作功能。客户端完成控制中心的管理维护、图像观看、云台调整、图像参数调整、录像、告警等功能。
2 视频终端硬件设计
视频终端硬件完成视频信号采集、MPEG-4压缩和网络传输。由于高精度实时视频信息量巨大,在传输时需丢弃大量数据帧,因此必须压缩[4]。我们采用专用芯片按即定格式高速压缩视频,实时性好,可靠性高。系统视频服务器硬件的结构如图2所示。
[!--empirenews.page--]
(1) 视频解码器模块:采用SAA7114H视频解码芯片,主要功能是将1路模拟视频量化后形成YUV数据格式通过并行输出端口传输到IME6410视频MPEG-4压缩处理单元。
(2) 音频编解码器模块:主要是完成模拟音频到数字音频的解码工作,采样速率32K bps。
(3) MPEG-4压缩处理器模块:数字视频数据编码压缩工作由INTIME公司设计的IME6410视/音频压缩处理器完成。微控制器通过主机接口对IME6410配置和接收压缩得到的视频码流。
(4) SDRAM模块:IME6410和网络处理器S3C2500B各需要一片SDRAM,为DSP和网络处理器中程序运行提供外部存储器。
(5) FLASH模块:用来存储DSP和网络处理器中运行的程序。
(6) 网络处理器模块:选用SAMSUNG的ARM940T内核的S3C2500B网络处理器,S3C2500B将编码后的视频/音频数据流打包形成标准的网络数据流并传输到因特网中。用户可通过互联网发送命令,对IP编码器进行参数调整,例如编码的帧率、编码效率、图像质量、IP地址设定等。
(7) 异步串口:支持RS-232、RS-422/485等多种协议,用于和PC通讯和控制摄像头。用户可根据需要设置系统的工作参数,例如网络的IP地址,编码的帧率、编码效率、图像质量等。
(8) I/O模块:通用I/O接口可以满足用户的控制目的,例如摄像机的镜头焦距控制等。
(9) PHY层网络接口:完成调制、解调功能。
3 嵌入式视频服务器软件的设计与实现
uCLinux具有精巧、高效的内核,完整的网络功能和良好的可裁剪性,它内置的TCP/IP协议找、良好的开放性和可扩展性以及高效的任务管理,能够满足数字视频服务器的要求[5]。
本视频服务器采用了uCLinux作为嵌入式操作系统,移植BLOB作为系统引导模块,移植ez-ipupdate实现动态域名解析,使用在系统内核态下编写的driver实现视频数据的获取,使用在系统用户态下编写的应用服务程序iplay实现组帧、发送以及与用户交互等功能。
3.1 系统引导模块
系统引导模块LOADER移植自BLOB(Boot Loader OBject)项目,它是LART项目的系统引导模块。移植的BLOB的发行版是BLOB-2.0.5-pre2,编译器使用arm-linux- toolchain。由于视频服务器上的硬件环境与处理器SAMAUNG的S3C2500B的软件开发包SMDK2500中的配置有所不同,因此对 BLOB中的源代码在移植过程中作出了修改。以下是对BLOB程序做出的具体修改。
(1) 串口参数代码修改
由于视频服务器上的串口时钟源和SMDK2500不一样,因此对文件“/src/lib/serial-s3c2500.c”做出修改。
(2) 修改BLOB程序中各块在内存中的分布。
因为BLOB中的各部分内存分配和SMDK2500不一样,因此需要修改内存分配的预定义。修改文件是“include/BLOB/arch/smdk2500.h”。
(3) 增加对网卡支持
由于BLOB只支持一个网口,且只能在编译前指定使用使用WAN还是LAN,故首先在编译配置时添加:enable-network,这个指定修改在文件“/src/BLOB/smdk2500.c”中。为了在网络中避免地址冲突,需要为本机网卡设置唯一的MAC地址。这个修改在文件“src /lib/ether.c”中。
(4) 修改启动延时
针对本系统的启动延时,修改文件“src/BLOB/main.c”中的原设置时间。
3.2 系统内核的移植
系统内核Kernel是基于uClinux-dist-20040408的uClinux的分发版,下面是移植的修改部分。
(1) 修改时钟频率的设置
修改的原因是目标版与评估版采用的时钟源不一样。需要修改的文件为“uClinux-dist/linux-2.4.x/arch/armnommu/mach-SMDK2500/config.c”。
(2) 添加支持从flash中获取MAC地址
为了防止网络上出现MAC地址重复的情况,采用了从flash中直接读取BLOB中设定的MAC地址。在此需修改在文件“uClinux- dist/linux-2.4.x/arch/armnommu/mach-SMDK2500/readf.c”中相关的调用函数实现调用自己的函数。添加的自定义函数用来从flash的BLOB区域中指定的位置来获取MAC参数,然后向系统内核kernel提供获取的MAC参数内容。
(3) 添加kernel中对GPIO口通用操作的支持
为了在系统内核kernel中调试和使用GPIO提供统一的调用接口,需要修改文件为“uClinux-dist/linux-2.4.x/arch/armnommu/mach-SMDK2500/lmhgpio.c” 。
(4) 修改有关内存分配的内容
为了使系统支持内存GFP_DMA方式的内存分配,需要修改文件“uClinux-dist/linux-2.4.x/mmnommu/page_alloc2.c”。
[!--empirenews.page--]
3.3 动态域名解析
ez-ipupdate程序用于实现动态域名解析(DDNS)的功能,移植自uClinux-dist中的ez-ipupdate包。使用此模块的 DDNS功能,系统开机运行即自动登记已注册的动态域名。ez-ipupdate基本实现了DDNS的规范流程,但它直接读取端口的IP地址,这对于直接使用公网IP的用户是可以的。而有些计算机可能并不是直接连接公网,直接获取端口IP不合适,需要适当修改程序。
本动态域名解析模块的功能是通过www.3322.org实现的,获取本机IP的过程是通过本机向www.3322.org服务器发出一个 getip的HTTP请求包,www.3322.org的服务器收到该请求包,就会按一定格式返回一个包含本机IP的包,这样无论是直接使用公网IP,还是通过代理上网,最后获得的都是公网IP。获得IP的方法是通过监视服务商windows下的注册程序的网络通信得到的。
3.4 应用服务模块
应用服务模块iplay是运行在嵌入式系统上用来控制系统硬件,同时完成与客户端软件交互过程的程序。系统启动时会自动运行这个程序,视频音频压缩处理芯片IME6410只有通过这个程序才能正常工作。其工作模式是一个多线程的工作组合模式。主控程序首先对系统初始化,在完成了必要的初始化过程以后创建与其他模块对应的工作线程,如RTP协议处理线程、包接收控制线程、包发送控制线程、系统监控线程和CDMA通讯处理线程
4 结束语
本文介绍了一种视频监控系统的设计方案,该系统由一个基于嵌入式平台的视频服务器、控制中心、客户端三大部分组成。依据系统的总体架构和设计思想,主要给出了嵌入式视频服务器软硬件的设计与实现。系统已开发完成,基本达到了预期的各项目标。
本文作者创新点: 系统采用嵌入式系统uCLinux设计和实现视频监控,和一般系统比,具有体积轻巧,安装方便和使用灵活的优点。
项目产生的经济效益: 系统可用于安全监控、视频会议、远程同步教学和VOD(视频点播)等领域,应用范围十分广泛。
参考文献
[1] 许东. 网络化的全数字图像监控系统. 有线电视技术, 2002, 2(9): 31-32
[2] 刘富强. 数字视频监控系统开发及应用. 北京: 机械工业出版社, 2003, 3:15-17
[3] 解天霞, 李春葆. 一种适合数字远程监控系统的网络体系设计. 计算机工程与应用, 2003(23): 154-156
[4] 张峥, 张元. 基于DirectShow的无线视频监控系统. 微计算机信息, 2006, 11-1: 136-139
[5] 黄贤英, 肖朝辉, 陈媛. 嵌入式软件开发方法研究及应用. 自动化技术与应用, 2004, 3(23): 56-58