监控系统方案设计
基于嵌入式操作系统和嵌入式数据库系统构建的视频监控系统的结构如图1所示.嵌入式数据库系统是介于用户和嵌入式操作系统之间的一层软件,它由众多程序模块组成,其作用是对多线程环境下的数据进行有效的组织和管理以及多用户的并发访问进行统一的管理.
从嵌入式数据库的应用方式来看,通常可以分为两种类型:一种是通用的嵌入式数据库系统,如开放源码的Berkeley DB和Sqlite等;另一种是针对具体的应用对象而白行设计开发的专用嵌入式数据库系统方式一般把数据库作为应用程序的一部分,允许直接访问嵌入式数据库系统.
一般情况下,嵌入式数据库无须独立运行数据库引擎,它由程序直接调用相应的C函数去实现对数据的存取操作,这一特点使得与C程序编写的嵌入式应用程序得到“无缝连接”.由于嵌入式实时数据库系统在运行环境和运行方式上与常见的企业数据库管理系统有很大差别,传统的企业数据库如Oracle、DB2等在实时嵌入式环境中很难发挥作用.因此在嵌入式多核处理器平台的视频监控系统中,采用了开源的数据库FUEL,构建了一个基于ARM+DSP+thttpd+FUEL的嵌入式多核处理器视频监控系统.
1.1 FUEL简介
FUEI 是一个针对开源操作系统高性能的嵌入式数据库管理系统,其具有快速、灵活、轻量级的特点.FUEL应用广泛,包括电信通信、网络系统管理、文档管理以及实时嵌入式操作系统等.具有微小的内核结构,属于真正的嵌入式结构,能够实时性操作和可编程控制,实现数据库多线程访问等特点。
1.2 FUEL在TM$320DM6446下的移植FUEL是一个开源的嵌入式数据库系统,同时它是一个嵌入在应用程序中可配置的数据库,故其移植到
TMS320DM6446下的过程类似于I inuxl1 下一个应用程序的开发和移植过程,具体移植步骤如下:
1)将FUEL的压缩包解压到移植目录/lib/FUEI 中;
2)完成移植用户应用程序的设置;
3)配置Linux内核 ;
4)编译内核以及文件系统.通过make dep,make lib—only,make user—only,make romfs,make image等操作编译Linux的内核kernel,并在Linux下生成包含有FUEL的romfs文件系统.把含有FUEL应用程序的文件系统下载到TMS320DM6446开发板上的/home下,运行FUEL即可.
2 嵌入式视频监控系统结构设计
通过对嵌入式视频监控系统所需设备的特点分析,可把系统的基本功能概括为:现场画面的实时监控,同时监控端针对现场画面的情况自定义的各种图像参数(图像饱和度、对比度、云台控制参数和移动侦测参数等)的获取、传输和显示;对采集到的参数数据进行处理和存储;对数据处理的结果进行分析、判断和报警.进一步可以对捕获的视频数据流进行索引标记,以便以后对其进行历史数据的搜索等上层操作.实现上述监控功能的嵌入式视频监控系统的体系结构有三部分组成:监控端控制参数命令的发出,嵌入式web服务器thttpd和监控现场各种参数的修正.其中,嵌入式web服务器是视频监控的中心节点.其主要任务为:①允许远程监控端通过浏览器远程实时的监控现场画面;② 修正远程监控端提出的对现场画面的参数,即针对各监控端提出的修正参数通过浏览器发送给web服务器,进而利用FUEL的多用户管理机制实现各监控端的请求.
在嵌入式视频监控系统中,为保证系统的访问效率,数据信息的统一管理以及现场视频流媒体数据的实时传输,应使得嵌入式web服务器thttpd的资源不被多监控端同时访问请求过度所占用;同时在实际应用中,监控端对嵌入式web服务器的请求数据具有高信息吞吐量,多用户同时访问以及实时性强等需求特点.因此,解决这一矛盾的最好方法为,在嵌入式web服务器和多监控端之间采用嵌入式数据库的方式实现数据的存储、处理和响应,达到数据的统一管理,增强应用程序的可移植性和缓解嵌入式web服务器资源占用.
3 基于FUEL视频监控系统的实现
基于嵌入式数据库的视频监控平台系统结构如图2所示.在嵌入式视频监控系统启动后,加载程序bootloader负责在加电后对ARM 以及DSP进行必要的硬件设置并初始化内存,然后将Linux的内核映像从flash复制到开发板内的SDRAM 中,再把控制权交给内核,使内核脱离宿主机运行起来,最终使应用程实时数据的处理程序由视频流数据传输模和视频控制参数以及系统控制参数模块组成.视频流数据传输模块主要负责将来自视频源的视频信号经过A/D芯片转化后,进入嵌入式Linux操作系统的控制,在双核处理’器的协作以及FUEL嵌入式数据库的管理下,利用五个POSIX线程(Main Thread、ControlThread、Speech Thread、Video Thread、Display Thread),将压缩后的视频信号由TMS32ODM6446上的网络层经网卡发送到监控端;视频控制参数和系统控制参数模块则主要负责在监控期间监控端提出的对监控画面的参数修正.在这两个模块中,嵌入式数据库FUEL作为嵌入式视频监控系统和监控端之间数据传输的中间件应用软件,对视频流数据进行了索引,同时对相应的控制参数进行了一致性管理和锁闭机制的管理.这样监控端可以对视频数据进行搜索,同时使得多用户同时访问视频数据以及修改图像参数对操作系统的资源占用达到最小.