一种和网络摄像机硬件无关联性的消息控制协议实现方法
【专利摘要】一种和网络摄像机硬件无关联性的消息控制协议实现方法,主要包括消息控制协议层、中间层程序集合和底层HAL接口的抽象,其特征在于,所述消息控制协议层,当Client端发起控制请求时,摄像机端收到Client发起的命令,Signal?Proxy层会解析命令,判断所使用的网络协议类型,然后将消息转发到相应网络协议栈去处理;所述中间层程序集合,进程之间通过Linux操作系统标准的D-BUS?IPC机制进行数据和信息的交换;所述底层HAL接口的抽象,HAL层对A/V实现了抽象,对firmware(固件)进行移植时,只需实现一组HAL层的接口,不需对整个firmware架构进行改动。本发明能够同时做到消息控制协议和硬件平台无关性,网络摄像机firmware能够通过标准的IPC机制划分成功能单一、完整独立、高度可定制的程序集合。
【专利说明】一种和网络摄像机硬件无关联性的消息控制协议实现方法
【技术领域】
[0001]本发明涉及一种和网络摄像机硬件无关联性的消息控制协议的firmware (固件)实现方法。
【背景技术】
[0002]目前已经存在的基于IP (网络之间互联的协议)的网络摄像机监控系统架构都是通过内嵌的HTTPserver+CGI (通用网关接口)的方式调用网络摄像机提供的本地服务。采用此种架构的网络摄像机由于CGI和本地服务的直接绑定,缺点如下:
[0003]1.架构和消息控制协议绑定在一起,不具有可扩展性。目前已经存在的基于IP的网络摄像机监控系统架构采用的进程间通信消息都是非标准的,和控制协议相关的。例如使用HTTPD+CGI的架构可能使用socket (套接字)进行通信,而采用其他消息控制协议的架构可能使用共享内存机制,因而系统很难再同时支持其他的消息控制协议;
[0004]2.程序不具备可定制性和可扩展性。目前已经存在的基于IP的网络摄像机监控系统架构中,由于所有功能都具有很强的关联性,很难分为功能单一、完整独立的程序集合,导致程序的复杂性随着功能的增加呈几何级数增大;
[0005]3.程序很难在不同平台间快速移植。目前已经存在的基于IP的网络摄像机监控系统架构中,由于程序和硬件编解码器之间的绑定,系统移植导致系统架构的改变。
【发明内容】
[0006]为实现上述发明目的,本发明采用如下技术方案:
[0007]一种和网络摄像机硬件无关联性的消息控制协议的firmware实现方法。主要包括消息控制协议层、中间层程序集合和底层HAL (硬件抽象层)接口的抽象,其特征在于,所述消息控制协议层,当Client (客户端)发起控制请求时,摄像机端收到Client发起的命令,Signal Proxy (信号解析协议)层会解析命令,判断所使用的TCP/IP (网络协议)类型,然后将消息转发到相应协议栈(如HTTP、UDP等)去处理;所述中间层程序集合,进程之间通过linux (Linux操作系统)标准的D-BUS IPC (进程间通信)机制进行数据和信息的交换;所述底层HAL接口的抽象,HAL层对A/V实现了抽象,对firmware (固件)进行移植时,只需实现一组HAL层的接口,不需对整个firmware架构进行改动。
[0008]本发明的有益效果在于,同时做到消息控制协议和平台无关性,网络摄像机firmware能够通过标准的IPC机制划分成功能单一、完整独立、高度可定制的程序集合。
【专利附图】
【附图说明】
[0009]图1是本发明的相关网络摄像机firmware架构的示意图。
【具体实施方式】
[0010]如图1所示,摄像机firmware主要由三部分组成:[0011](I)消息控制协议层。在本发明中有Signal Proxy,Httpd+CGI Daemon, Useragent(用户代理),Upnpserver (通用即插即用服务)模块。Signal Proxy是一个软件功能模块,用来解析命令,然后将消息转发到合适的协议栈去处理。Httpd+CGI Daemon是一个内部通讯软件模块,实现产品的附加功能。模块用于内部应用程序之间的调用。Useragent是内部功能的管理模块。模块接收到外部指令后,启动对应功能模块,实现产品的各种预设功能。Upnpserver是内网连接模块。启动后将在内网同一网段内广播一组特定信息。对应的设备或用户监听到这个信息后,将开始连接网络,实现数据交换。
[0012]当Client发起控制请求时,摄像机端收到Client发起的命令,Signal Proxy层会解析命令,判断所使用的协议类型,然后将消息转发到合适的协议栈去处理。这样,firmware就能够依据同时支持不同的消息控制协议,实现系统架构对消息控制协议的无关性。当然,每种消息控制协议所支持的命令集并不一定完全相同。例如,系统支持XMPP(可扩展通讯和表示协议)协议可能占命令集合的90%,UPnP (通用即插即用)和HTTP (超文本传送协议)占剩下的10%。
[0013](2)功能单一、完整独立的中间层程序集合。在本发明中有Disk Manager(硬盘管理员),Network Manager (网络管理员),A/V encoder (音视频编码),Stream Manager (视频流管理员),Recording Manager (录像管理员)模块。Disk Manager (硬盘管理员)是网络摄像机常见的功能软件模块,用来管理内部的硬盘以及闪存卡等硬件存储设备。NetworkManager (网络管理员)是网络摄像机必要的功能软件模块,主要是负责网络的连接与管理。A/V encoder (音视频编码)是网络摄像机必要的基本功能软件模块,用来进行音视频的编码以及控制等功能性管理与实现。Stream Manager (视频流管理员)是网络摄像机常见的功能软件模块,用来进行视频编码后的缓冲与传输等管理。Recording Manager (录像管理员)是网络摄像机常见的功能软件模块,用来读写内部的硬盘以及闪存卡。写入的数据可以管理和删除。
[0014]功能单一的程序作为独立的进程在系统中运行,每个单一功能进程都实现一组能够被外部使用的接口和方法,进程之间通过Iinux标准的D-BUS IPC机制进行数据和信息的交换。每个进程的异常并不会影响其他功能模块的运行,能够极大提供系统稳定运行和可维护性。
[0015](3)底层HAL (硬件抽象层)接口的抽象。不同摄像机硬件提供商会提供不同的audio/video(音视频)实现,HAL层对audio/video实现了一定程度的抽象。当对firmware进行移植时,只要特定硬件平台实现一组HAL层的接口即可,不需要对整个firmware架构进行改动。Database (数据库)可以是个数据库模块也可以是个文档,主要用来存储用户对这台网络摄像机的设置,例如解析度,码流,视频编码模式等参数。Hardware (硬件)是指这台网络摄像机的硬件部分,包含主晶片,内存,闪存,网络晶片等等。
[0016]因此,本发明能够同时做到消息控制协议和硬件平台无关性,网络摄像机firmware能够通过标准的IPC机制划分成功能单一、完整独立、高度可定制的程序集合。
[0017]尽管本发明就优选实施方式进行了示意和描述,但本领域的技术人员应当理解,只要不超出本发明的权利要求所限定的范围,可以对本发明进行各种变化和修改。
【权利要求】
1.一种和网络摄像机硬件无关联性的消息控制协议实现方法,主要包括消息控制协议层、中间层程序集合和底层HAL接口的抽象,其特征在于,所述消息控制协议层,当Client端发起控制请求时,摄像机端收到Client发起的命令,Signal Proxy层会解析命令,判断所使用的网络协议类型,然后将消息转发到相应网络协议栈去处理;所述中间层程序集合,进程之间通过Linux操作系统标准的D-BUS IPC机制进行数据和信息的交换;所述底层HAL接口的抽象,HAL层对A/V实现了抽象,对firmware (固件)进行移植时,只需实现一组HAL层的接口,不需对整个firmware架构进行改动。
2.如权利要求1所述的方法,其特征在于,所述的消息控制协议层包括SignalProxy,Httpd+CGI Daemon, Useragent (用户代理),Upnpserver (通用即插即用服务)模块;Signal Proxy是一个软件功能模块,用来解析命令,然后将消息转发到合适的协议栈去处理;Httpd+CGI Daemon是一个内部通讯软件模块,实现产品的附加功能,模块用于内部应用程序之间的调用;USeragent是内部功能的管理模块,模块接收到外部指令后,启动对应功能模块,实现产品的各种预设功能;Upnpserver是内网连接模块,启动后将在内网同一网段内广播一组特定信息,对应的设备或用户监听到这个信息后,将开始连接网络,实现数据交换。
3.如权利要求1所述的方法,其特征在于,所述的中间层程序集合包括DiskManager (硬盘管理员),Network Manager(网络管理员),A/V encoder(音视频编码),StreamManager (视频流管理员),Recording Manager (录像管理员)模块;Disk Manager (硬盘管理员)是网络摄像机常见的功能软件模块,用来管理内部的硬盘以及闪存卡等硬件存储设备;Network Manager (网络管理员)是网络摄像机必要的功能软件模块,主要是负责网络的连接与管理;A/V encoder (音视频编码)是网络摄像机必要的基本功能软件模块,用来进行音视频的编码以及控制等功能性管理与实现;Stream Manager (视频流管理员)是网络摄像机常见的功能软件模块,用来进行视频编码后的缓冲与传输等管理;Recording Manager(录像管理员)是网络摄像机常见的功能软件模块,用来读写内部的硬盘以及闪存卡,写入的数据可以管理和删除。
【文档编号】H04L29/08GK103428210SQ201310336044
【公开日】2013年12月4日 申请日期:2013年8月1日 优先权日:2013年8月1日
【发明者】何建亿 申请人:何建亿