本文转载自:http://www.chuandong.com/publish/tech/application/2008/12/tech_3_16_12438.html
1 引 言
随着数字技术和网络技术的迅猛发展,嵌入式系统进入了一个新的发展时期。32位高性能专用微处理器的出现,使嵌入式系统已经能够适应十分复杂的控制需求,进行多任务,尤其是嵌入式视频的处理,大大扩展了嵌入式系统的应用范畴,正成为我国教育现代化对数字化、网络化的教学设备进入全新的发展时期的强大技术支撑。32位高性能专用微处理器需要嵌入式操作系统,而μClinux操作系统是针对32位微处理器设计的嵌入式Linux操作系统。
μClinux是控制领域的嵌入式操作系统,其内核功能结构与Linux基本相同,且可移植和裁剪;用户通过重新配置、编译内核,可方便移植到多种处理器平台上。
本文主要介绍基于嵌入式视频的多媒体集控系统基本技术构架和相关的关键技术,即嵌入式μCLinux操作系统的裁剪和移植和基于μCLinux的嵌入式系统的实时性解决方法以及集中控制系统的安全性设计等关键技术。
通过关键技术的设计与部署,实现了适合于局域网和广域网环境下对远程多媒体教学设备和屏幕、窗帘、灯光、空调和门禁等环境设备进行集中控制与管理。不仅适用于多媒体教室更高层次的远程集中控制、管理、监测与维护,而且也适用于无人值守的和环境险恶等环境的远程控制与管理。
2 基于嵌入式视频的多媒体集控系统实现的体系结构
基于嵌入式视频的多媒体集控系统以高性能32位微处理器为硬件核心,嵌入式软件运行于μClinux操作系统上,其系统主要分为控制台软硬件系统和多媒体教室终端设备2部分,组成远程交互平台。
两部分之间控制信号、状态信息、数据等交互信息均通过嵌入式控制器硬件提供的多种网络接口和TCP/IP协议,实现与局域网或广域网的连接,使控制台软硬件系统和多媒体教室终端设备通过网络,实现远程控制和管理。基于嵌入式视频的多媒体集控系统体系结构如图1所示。
3 基于嵌入式视频的多媒体集控系统实现的关键技术
3.1 选择32位嵌入式微处理器MCF5249模块单元为硬件平台
通过8/16/32位单片机性能对比测试,只有32位高性能单片机具备更高的反应速度、更强的数据处理、逻辑运算和数据存储能力;不仅可用于工业数据采集、流程控制、远程监控等应用领域,而且还特别适合于嵌入式视频的大数据量处理与控制的数字化多媒体教学设备的开发应用。
选择Freescale公司的MCF5249 32位嵌入式微处理器模块单元作为多媒体集控系统终端数据处理和功能控制的硬件平台。
MCF5249模块单元主要由32位处理器MCF5249和若于外围器件AM29LV160DB90快闪存储器、K4S281632SDRAM、SP3223串行通讯电路、DM9000网络接口芯片、MT8816音视频矩阵电路等硬件构成。其主要性能如下表1所示。
3.2 嵌入式μCLinux操作系统的裁剪和移植
嵌入式μCLinux是专为没有MMU内存管理单元的微处理器芯片而裁剪的小型化操作系统,嵌入式μCLinux针对没有MMU的处理器采用了实存储器管理策略。因此,嵌入式μCLinux操作系统不仅保持了稳定、强大的网络和文件系统支持等传统Linux的主要性能,而且还具有自身的特点,使μCLinux成为真正意义上的嵌入式操作系统。
针对32位微处理器MCF5249的性能特点,结合基于嵌入式视频的多媒体集控系统对操作系统功能的应用需求,需要对μCLinux的微内核、内存管理、进程管理、事务管理、初始化、硬件驱动、文件系统和TCP/IP协议栈等模块进行剪裁和移植。
在编译μCLinux微内核之前,首先需要通过建立菜单配置来配置微内核。从条件编译的角度,就是在内核上选择所需的模块,去掉不必要的模块不参与编译,从而可以控制内核大小在一定的范围内,以适合嵌入式μCLinux应用需求,利用Linux开放等特点降低对系统硬件成本和减少对资源的需求;然后还需要进一步对内核中的代码进行裁减,通过修改源代码来满足裁减的要求。
采用μCLinux的内核有2种可选的运行方式:可以在FLASH上直接运行,也可以加载到内存中运行。其中FLASH运行方式是把内核的可执行映像烧写到FLASH上,系统启动时从FLASH的某个地址开始逐句执行;内核加载方式则是把内核的压缩文件存放在FLASH上,系统启动时读取压缩文件在内存里解压,然后开始执行。选择采用后一种相对复杂,但压缩后的程序文件较小,对FLASH的空间要求低,并且程序运行速度更快可以很好地满足对高实时性要求的方式。一般地,RAM的存取速率要比FLASH高。
在系统启动后,最先调用的是针对32位微处理器MCF5249的特定的arch文件夹内mmcontr.S文件。最后跳到main.c中的start_kernel()。μClinux/Linux-2.4.X/init/main.c中包含了对Linux系统初始化的代码。其中stan_kernel()包含主要的初始化代码。
3.3 嵌入式μCLinux操作系统实时性解决措施
由于μClinux主要针对MCF5249等微处理器在没有内存管理单元(MMU)而设计的,并不是为了Linux的实时性而提出的,因此μClinux本身并不能解决基于嵌入式视频的多媒体集控系统对实时性的要求。为此,μClinux需要使用Rt-Linux的patch来增强μClinux的实时性要求,从而解决μClinux在对应用于一些实时要求较高的,诸如工业控制、进程控制等应用领域的需求。
Rt-Linux是有别于μClinux另一种嵌入式Linux版本,其突出特色在于内核的处理上增强了对于实时问题的关注。Rt-Linux执行管理器把普通Linux的内核当成一个任务运行,同时还管理了实时进程。而非实时进程则交给普通Linux内核处理。这种方法已经应用于很多的操作系统来增强操作系统的实时性,包括一些商用版Unix系统、Windows NT等。这种方法优点首先是实现简单,且实时性能容易检验;其次是非实时进程运行于标准Linux系统,同其他Linux版本之间保持着很大的兼容性;再有就是可以支持硬实时时钟的应用。
嵌入式视频的多媒体集控系统对红外接收等功能在实时性方面要求很高,否则直接影响多媒体设备的使用效果。选择Rt-Linux的patch作为增强μClinux的实时性要求,并且以后台任务方式运行红外接收中断处理调度策略,从而增强了μClinux的实时性,满足红外接收等系统任务对实时性的严格要求。
3.4 OCX控件标准的控件封装技术
OCX是基于嵌入式视频的多媒体集控系统的网络控制软件;其视频显示模块采用专用控件封装技术解决了嵌入式数字视频数据在跨网段、跨平台上数据流传输,实现全数字网络图像的跨平台无缝集成。
为了保证配置的灵活性,嵌入式视频技术针对各厂家的网络数字摄像头的接口属性,采用开放的设计风格,无论各生产厂家的算法接口采用何种开发平台,即VB,VC,Delphi等,均采用Windows平台下OCX控件标准的控件封装技术。专用控件封装技术使多媒体集控系统网络控制软件的视频显示模块整体上去掉不必要的冗余程序,结构简单紧凑;嵌入式视频采集硬件提供了多种网络接口,并使用TCP/IP协议,可实现同局域网、广域网的连接,使用户无论身处何地都能通过网络连线,实现对被监控区域的监控。实验结果表明:这种专用控件封装技术有效地解决了跨网段、跨网络平台下的全数字嵌人式视频图像的传输与管理。需要说明的是,嵌入式视频的图像采集硬件采用数字式数码网络摄像头,通过图像采集卡进行A/D转换,采用不同的图像分辨率可针对不同的网络环境满足网络传输的现实需要。
3.5 系统链路可靠性与数据传输安全性技术方案
由于嵌入式视频的多媒体集控系统使用范围具有相当程度的封闭性,所以系统平台的中、下层使用开放性的TCP/IP协议,在应用层则使用私有协议,对传输数据进行适度的加密处理。
系统传输链路可靠性设计方面,考虑通信数据与嵌入式视频的多媒体集中控制系统的处理能力以及TCP连接建立的额外开销,网络传输层采用UDP协议封装上层的应用数据。而UDP协议的非连接和不可靠性,则由应用层协议保证数据传输的正确性与可靠性。在应用协议设计中,采用发出请求帧与3 s内接收应答帧判断是否传输超时或者出错。若超过3次请求而未收到应答则判断系统故障,终止该次请求操作。另外,嵌入式视频的多媒体集控系统还进行间隔10 s的主动式在线检测,并将检测数据分别向终端面板和控制台发送显示。
传输数据的安全性设计方面,采用加强网络访问控制和采用可靠的协议进行加密,对于协议数据被窃听分析的风险,定义私有应用层交互协议和对数据包加密传输。在应用层交互协议设计中定义了数据包类型、控制编码、数据编码、数据定义等数据结构。在网络传输的数据采用移位加密算法进行加密。
数据包重放攻击是在数据窃听基础上的一种攻击行为。为了防止数据包重放攻击,在设计中采用在嵌入式视频的多媒体集控系统端口设置3个可信IP地址,只接收可信IP地址的指令操作。对于其他的IP只能查询集中控制器的运行状态,不能控制操作,这样有效地防止了非法用户仿照获取的数据包来控制操作集控系统。
4 结 语
嵌入式视频多媒体集控系统采用32位嵌入式微处理器MCF5249模块单元为硬件平台、嵌入式μCLinux操作系统的裁剪和移植、嵌入式μCLinux操作系统实时性解决措施和OCX控件标准的控件封装技术以及系统链路可靠性与数据传输安全性设计方法等系列关键技术,是一种运用32位MCF5249微处理器+μClinux在嵌入式系统中的典型应用。
毋容置疑,MCF5249+μClinux系统平台以其移植性好和性价比高在数字化多媒体教学设备研制与开发中将会得到进一步应用。