联系人:
所在地:
由三个子项目组成:嵌入式网络开发平台,通用接入网关和基于IP流技术的视频点播系统。项目之一:嵌入式网络开发平台嵌入式系统以应用为目的,以计算机技术为基础,它的软件和硬件都是可裁剪的,适应应用系统中对性能、成本、体积、功耗等各方面的要求。以Linux为基础建立一个网络开发平台,实现一个网络电话的应用,以验证平台的可用性。嵌入式网络开发平台主要有硬件平台、软件平台两部分,同时与应用软件构成一个完整的系统。其中硬件平台和软件平台是整个系统的主体,而应用软件是根据每个应用目的的不同而不同的。在具体的网络开发平台设计中,前两者是设计中的重点,也是关键所在,而应用软件是对系统的运行功能的检测,是具体的应用的实现,可以通过不同的实现方法来满足具体的应用要求。硬件平台主要由以下几部分组成:微处理器(MCU)、内存和外设以及为完成特定的功能而选用的其他设备或器件等。选择恰当的硬件来构造合适的硬件平台是一个复杂的工作。其中成本是关键的问题,但是考虑成本时不仅仅只是CPU(或MCU)的问题,要综合各方面的因素来权衡这个问题。虽然Linux提供了完成嵌入功能的基本内核和需要的所有用户界面,由于要开发一个嵌入式网络平台,要根据需求对Linux进行裁剪和拆分,并根据实际性能的要求进行必要的改进。一个小型的嵌入式Linux系统只需要下面三个基本元素:※ 引导程序和引导工具※ Linux微内核,由内存管理、进程管理、进程调度和事务管理等构成※ 初始化进程为了能够检验系统是否正常工作和使系统完成简单的功能,还需要给系统增加以下部件:※ 硬件驱动程序※ 提供为完成所需功能需要的一个或更多的应用程序根据需要还可能增加下述功能模块:※ 一个文件系统(保存在ROM或RAM中)※ TCP/IP网络堆栈该项目的研制提供了一个通用的嵌入式网络开发平台。其主要功能与特点包括:完全PC兼容,具有良好的可继承性及丰富的可用资源;完善多样的总线及接口功能;高集成度;低功耗;高度灵活的系统配置;Linux操作系统FLASH引导功能;单片FLASH无磁盘存储解决方案;高性价比。项目之二:通用接入网关通用接入网关的研制开发建立在TCP/IP网络构架上的,通过IP地址映射技术、入侵检测技术、路由技术的综合运用在Internet网络环境中保护内部网络的链路级网络安全技术基础上。它基于Linux内核,提供了一系列完善强大的功能。它从结构上对Linux内核2.2的ipchains作了很大的改动,提供了一个抽象、通用化的框架。它为每种网络协议(IPv4、IPv6等)定义一套钩子函数(IPv4定义了5个钩子函数),这些钩子函数在数据报流过协议栈的几个关键点被调用。在这几个点中,协议栈将把数据报及钩子函数标号作为参数调用netfilter框架。Iptable内核的任何模块可以对每种协议的一个或多个钩子进行注册,实现挂接,这样当某个数据包被传递给netfilter框架时,内核能检测是否有任何模块对该协议和钩子函数进行了注册。若注册了,则调用该模块的注册时使用的回调函数,这样这些模块就有机会检查(可能还会修改)该数据包、丢弃该数据包及指示netfilter将该数据包传入用户空间的队列。在iptable中,那些排队的数据包是被传递给用户空间的异步地进行处理。一个用户进程能检查数据包,修改数据包,甚至可以重新将该数据包通过离开内核的同一个钩子函数中注入到内核中。另外,所有的包过滤/NAT等等都基于该框架。内核网络代码中不再有到处都是的、混乱的修改数据包的代码了。除了常用的防火墙功能外,基于iptable的Linux防火墙还提供了对多媒体应用的支持,对先进的状态检测技术的支持等。从而使得它与商用防火墙相比毫不逊色。项目之三:基于IP流技术的视频点播系统该项目所指的视频点播(VOD,Video On Demand)技术是建立在纯IP计算机网络的基础上的,在服务器端利用软件实现存储管理、流调度和数据传输,在客户端利用软件点播和播放节目。对于客户端,亦可将软件嵌入到网页中,使用户的操作更加简单方便。根据VOD系统的结构,可以将整个系统划分为三个模块:服务器模块,传输协议模块和客户端模块。服务器端程序要求对视频节目在视频硬盘上的存放进行管理,对用户发出的视频流请求给予响应,对硬盘指针的移动进行调度。其中最关键的技术在于视频节目在硬盘上的存储。本系统中,我们把视频硬盘在半径方向上划分为若干个分区,每个分区又在纵向上划分为若干个小分区。装载视频节目时,节目被划分为若干个数据块,每个数据块的大小等同于硬盘上小分区的大小。存储时,数据块沿着半径方向依次存放在各个分区相同级别的小分区上,当到达硬盘中心或硬盘边缘时再反向依次存储在下一级别的小分区中,最后形成一个S形的存储。事实上,数据块在硬盘上的存储正是根据硬盘指针移动的S形移动来确定的。这样,当为用户提供视频服务时,硬盘指针始终在一个最短的距离上移动,从而使硬盘定位时间最小,同时支持的用户数最多。在每个时钟周期内,硬盘指针在同一个硬盘分区内活动,把用户所要求的节目的当前部分传送给网络。传输协议模块主要包括数据传输协议和VCR控制协议这两部分。由于VOD系统中传输的实际上是流媒体,这样就要求采用流媒体的传输协议。当前主要的流媒体的传输协议主要有实时传输协议RTP(Real-time Transport Protocol)和实时传输控制协议RTCP(Real-time Transport Control Protocol)、实时流协议RTSP(Real Time Streaming Protocol)、资源预留协议RVSP(Resource Reserve Protocol)。我们在RTP、RTCP、RTSP协议的基础上做了一些改动,作为自己定义的协议,并结合在服务器端和客户端的实现中。客户端程序的主要功能是,按照用户的控制,接收从网络上来的实时数据,解码,播放并呈现给用户。其主要难点是接收从网络上来得数据包,如何对单个数据包,而不是以文件的方式来解码数据并播放。另一个难点是客户端接收数据动态缓存的处理。我们借鉴了Microsoft DirectShow的技术,把客户端的模块分为三个部分:RTSP控制协议部分,数据接收及解码部分,RTCP质量控制部分。对于客户端来说,RTSP的实现主要是和服务器端建立一个TCP SOCKET连接,并在其上传输播放控制信息。对于数据接收来说,在RTSP的TCP SOCKET建立并交换信息后,便建立一个UDP SOCKET,来进行网络数据的接收。从网络接收的数据加入我们的动态缓存,播放器便从该缓存中规则的取数据,进行解码呈现。RTCP部分包含一些检测数据传输质量参数的函数,利用和判断这些参数,客户便可以采取一些措施来控制和报告传输质量。这里要强调一下动态缓存的设计,它主要用于平滑网络数据,可以使数据平滑地进行播放。我们用一个单向链表来实现。从网络上来的数据从链表尾部加入,而解码读出时,则从头部读。该项目利用面向对象的C++编程技术进行开发,将整个系统分成若干个模块,并且通过多线程的机制实现。开发中应用到了套接字、数据库、DirectX等多项技术。整个系统的结构清晰,维护性较好。