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