以强稳定性的优势,嵌入式DVR越来越被安防行业与广大客户所接受。嵌入式DVR的稳定性优势不光来自于硬件的低故障率,很大因素取决于嵌入式DVR中所采用的操作系统及应用软件的高稳定性,它所选用的软件平台起着至关重要的作用。
从国内嵌入式DVR的领军人物海康威视公司在嵌入式DVR的开发历程上,可清晰地看出Linux系统在
嵌入式DVR中的地位日益凸显出来。海康威视公司第一代嵌入式DVR的研发初期,在确定以
SamsungS3C2510加Ti的DM642作为其硬件平台的时候,采用了Linux与VxWorks同时开发,相互参照、评
估,最终主要由于基于对WindRiver的VxWorks商用软件的信赖,选用了VxWorks作为其操作系统及软件
开发平台;在第二代嵌入式DVR技术选型时,定下了以Ti的Davinci平台作为硬件平台,由于Linux提供了
对该平台的实现,而VxWorks不能提供该硬件平台的支持,海康威视公司选择性地将软件平台转向了
Linux系统;而在第三代嵌入式DVR的预言期间,就明确、肯定地将Linux定为海康威视公司下一代嵌入式
DVR的系统平台。不难看出,Linux凭着其自身的特点,各方面的优势逐步成为了嵌入式DVR软件平台的
主角。
当今非手机类的嵌入式产品中,主流的操作系统有VxWorks,各种版本的Linux、uCOS-II、uC/OS,
Qnx等等。其中最著名的VxWorks是美国WindRiver公司推出的一种嵌入式强实时操作系统,自20世纪80
年代问世以来,以其高性能、高可靠性、高实时性等特点成为实时操作系统中最具特色的系统。尤其以
成功应用于美国军方、国防部、航空航天项目如火星探测车和爱国者导弹等高科技产品而声名鹊起。自
1996年登陆中国,短短几年就已成为国防、工业自动化、网络通信、航空航天、医疗仪器、状态监控以
及消费电子产品等嵌入式实时领域的首选操作系统。
VxWorks作为商用软件,以其实时性、可靠稳定性著称于世,也因此被广泛用在第一代的嵌入式DVR
系统中。但正是它所具有的这些特性也必定限制了其发展,因为是商用软件,所以有专业的、全职的技
术人员进行维护,虽然WindRiver是一家非常成功的嵌入式软件公司,也同时可以拥有相当庞大的研发
队伍,但针对现代IT迅猛发展所带来的众多的硬件平台、海量的软件、协议而言,那是相当有限的,所
以造成VxWorks系统现在所能支持的硬件平台有限,只能支持一些主流厂家的典型平台,完全不能和日
新月异的硬件平台所同步,也违背了IT产业著名的摩尔定理。为了保证其可靠性,兼顾实时性的特点,
WindRiver在集成软件模块时非常谨慎,发展也就必然缓慢,造成不能对众多的软件协议实现及时地支
持。
而且针对DVR系统,主要实现视音频的编码录制任务,对于VxWorks推崇的实时特性并不能得到有效
利用,在DVR系统中,每秒25帧、50场及20毫秒视频编码的实际处理任务都是由DSP或ASIC芯片等专用芯
片完成,而CPU上运行的操作系统所负责的仅仅是应用级的程序调度,VxWorks所能达到的微时限
(Deadline)特性对于DVR所需的应用任务来说简直是牛刀杀鸡。 而uCOS-II、uC/OS,Qnx等操作系统由
于其本身产生的目的、设计的特性、维护运营的模式都更适合于纯的工业控制领域。
Linux自诞生那天开始,就以开源自由的特性吸引了全世界成千上万优秀的技术人员投入到Linux软
件的开发中来,使Linux系统得以高速发展,也使得Linux可以支持市场上绝大多数的硬件平台和各式各
样的软件协议,保持着高度一致的同步性。在Linux的应用初期,Linux的自由开放特性也使得不少商家
对其产生很多的误解,认为Linux就是不需要投入的!“开源意味着自由,但并不是成本上的免费,尽管
有时候的确免费。”位于加利福尼亚州SanMateo的开源软件开发公司Untangle的CTODirkMorris所说的
话给了Linux应用一个很好的参见。开源软件具有灵活性、可靠性、安全以及易于采用等诸多特点,但
免费不能算特点,至少不是主要特点。由于开源软件参与的人员来自于世界各地,不同行业,不同领域
,不同目的,开发质量也良莠不齐,获得的技术支持很有限,使得开源产品通常都不是一个完整的产品
,也一定程度上造成使用Linux会遇到很多困难。因此我们一定不要把开源简单地看成免费软件,而应
该把它视为自由软件,自由软件意味着用户可以自由地运行、拷贝、分发、研究和修改软件。开源的本
质是为程序员提供自由地查看和修改代码的能力,让程序员可以学习和借鉴别的程序员的设计思路,然
后进一步扩展和完善该产品,正是这个流程让Linux功能越来越强大,性能越来越稳定。
随着Linux的日益成熟,使用者对其有了进一步深入的了解,它所拥有的自由、开源本性,使得
Linux具有广泛的硬件支持特性、不断自我修复的完善性、强大的软件协议特别是网络的支持功能,也
必定决定了其将用作各式各样的嵌入式系统中,嵌入式DVR当然也不会例外。而且白热化的DVR市场,使
得成本因素、稳定因素、灵活因素越来越被各DVR用户所看重,因此Linux也就自然成为了现代嵌入式
DVR中的主角。为了提升嵌入式DVR的竞争力,现在嵌入式DVR产品的比拼已不局限于图像编码的压缩率
、清晰度等基本的视频特性上,更关注于嵌入式DVR作为一个系统所能提供的服务,因此而带来了各式
各样且非常新颖的需求,这种需求也只有具有灵活特性和广大资源的Linux平台才能完成,对于某个功
能,比如客户想要在DVR上加上SIP网关的功能,对于VxWorks这样的封闭系统是很难实现的,而对于
Linux来讲,只要在主流的PC平台上实现了,那对于嵌入式DVR平台来讲,仅仅是一个交叉编译的修正实
现。若要对某个新颖硬件的支持,比如某款新的CPU推出,或某个WiFi功能的支持,各厂家、协议组织
都会推出相应的Linux的示例程序,得到相应的源代码,我们要做的大多数仅仅是个平移实现的工作。
从应用模式上分,适合于嵌入式系统的Linux主要有三类,支持不含MMU单元CPU平台的uClinux,通
用内核加上相应硬件平台补丁的Linux(如Montavista,WindRiver提供的Linux),注重于强实时性的RT
-Linux.因DVR自身对实时性要求不高,所以RT-Linux类的linux不太适用于我们的行业,更多地依据所
选择的硬件平台特性而选择前两种Linux,如在海康威视公司第一代DVR系统中就采用了uClinux,第二
、第三代DVR就采用了通用的Linux系统。 在嵌入式DVR中实现Linux系统主要分为几个部分:引导装载
程序、Linux内核、Linux的根文件系统及相应的应用程序。
引导装载程序通常是在任何硬件上执行的第一段代码,就像普通PC机上所运行的BIOS程序,时下嵌
入式系统中比较流行的引导装载程序有u-boot、vivi等,做的工作、实现的功能大致相仿,主要实现初
始化CPU、内存、Flash、串行端口、网口等基本的外设,设置参数区域并构造参数结构和标记,从
Flash加载内核程序并最终跳转到内核的开始。
Linux内核版本的更新速度非常快,但Linux的内核版本发行同Linux对嵌入式处理器支持程度的发
展是不同步的,因此,需要对特定的处理器体系结构选择合适的内核,并且根据其硬件功能部件加上相
应的补丁。为配合现在的嵌入DVR所应用的硬件平台,如arm9或PowerPC,以及相应的硬件外设,如无线
网卡、USB2.0、SD卡等等流行的外设应用,建议选用较新的2.6版本的Linux内核。然后针对不同的硬件
模块、应用模块,对内核进行裁减、编译、打包。
因嵌入式DVR中所应用的存储空间(Flash芯片的容量)一般都较小,在构建整个系统的根文件系统时
,必须考虑节省空间,且结合DVR本身应用的相对单一性,一般都使用busybox、uClibc这样的精简模块
构成DVR系统的软件环境。
在嵌入式DVR系统中最主要的应用软件当然是对压缩的视音频数据的采集、存储、分发,特别是一
些网络协议的实现等相应的特性功能。在应有系统里还有很重要的一块就是DVR的GUI系统,嵌入式DVR
与PC-DVR相比较弱的一环也在于界面的相对不友好性,所以提供一个较好的GUI系统对于能否实现一款
易用、有竞争力的DVR产品起着关键的作用。国内飞漫公司提供的MiniGUI就是个很不错的选择,基于
MiniGUI平台,可以提供方便开发、易于集成的良好的用户界面。
可以预见,在今后的嵌入式DVR产品中,Linux系统必将占据绝对的领导地位。由于Linux系统的广
泛应用,也必将使嵌入式DVR的开发、销售模式得到变革性的更新,嵌入式DVR的应用会上升到一个全新
的高度。