基于客户/服务器结构的底层设备驱动的方法

文档序号:6573699阅读:334来源:国知局
专利名称:基于客户/服务器结构的底层设备驱动的方法
技术领域
本发明涉及一种基于客户/服务器结构的底层设备驱动的方法,特别是指一种中间件系统通过客户/服务器的结构方式实现上层应用与底层系统进行通信和调用处理的方法。
数字电视接收设备由于其功能强大、操作方便,已经开始大量进入家庭。数字电视接收设备所接收的是数字化的图像和数据信息,因此,不同于传统的模拟电视信号的接收与处理,数字电视接收设备对数字化的图像信息和数据的接收及处理是通过其内部的CPU及与其相连接的外围器件进行的。
众所周知,一般情况下,数字电视接收设备制造厂商在设计、制造了数字电视接收设备的硬件以后,通常还要在相应的硬件及操作系统的基础上开发出该数字电视接收设备适用的应用程序;同样,一些专业的数字广播内容服务商也需要根据不同的数字电视接收设备的硬件性能和功能开发出相应的服务软件。
目前的数字电视接收设备的种类繁多,其软件操作平台也非常丰富;如果应用程序的开发都必须针对所有具体的数字电视接收设备及其软件操作平台进行的话,不仅软件开发的工作量非常大,而且一种软件只能适用于一种硬件及操作系统都已经固定下来的数字电视接收设备;这样的应用程序既不具有可移植性,软件开发的周期也会非常长,这种方法显然不适应数字电视接收设备开发生产的需要,而且也不适应专业数字广播内容服务商生产数字电视应用程序生产的要求。
具体而言,当前数字电视接收设备应用开发所存在的主要技术问题有1)数字电视接收设备的应用程序开发直接面向硬件驱动程序和实时操作系统(Real Time Operating System,简称RTOS),在实现过程中,需要考虑硬件驱动程序的支持和RTOS的具体细节,导致应用程序的层次结构不清晰,开发周期较长,其维护工作量很大。
2)用户界面的开发直接面向底层的一些功能,如想实现个性化比较强的界面,就需要编写大量重复的代码,同时还要经过相当复杂调试过程才能实现。
3)应用程序的开发涉及实时任务间的协调、系统的中断过程、输入输出处理、系统响应时间等问题,但由于实时操作系统的控制过程非常复杂,一些具体控制细节很难掌握,严重影响开发的进度。
由于以上的原因,导致当前数字电视接收设备应用程序的开发普遍效率低、周期长、成本高。
针对上述的问题,业界通常采用一种借助中间件将应用程序与底层系统(包括硬件系统和实时操作系统)分离的方法来解决上述的传统开发中诸多弊端。具体而言就是,在应用程序开发过程之中,利用一在应用程序与其运行环境之间的软件系统来处理应用程序与实际的硬件系统之间的访问和调用,应用程序设计人员只关心应用程序自身功能的实现,而该应用程序与实际的硬件系统之间的访问及调用则通过中间件来实现。这样就会使得应用程序的开发不必考虑实际的硬件系统或实时操作系统的具体情况,有利于加快开发的速度,提高开发效率。


图1所示,现有的中间件采用进程直接调用驱动层中相应的设备驱动程序或者模块或来实现对系统环境的访问。这种结构使得中间件必须具有与具体设备驱动程序或者模块相对应的接口才能真正实现中间件的功能,而且在具体的设备驱动程序或者模块中也必须具有与中间件相对应的接口。
尽管,中间件可以通过配合不同的接口来适应不同数字电视接收设备的驱动层;但是,当将应用程序从一数字电视接收设备移植到其他数字电视接收设备时,依然需要对中间件的接口做适当的修改或者调整;显然,这同样会影响应用程序的开发速度和效率。
另外,在现有技术中,无论中间件还是驱动层的各模块都应具有内存分配管理、消息与通信管理以及时钟、定时器管理等基本功能;由于传统的中间件以直接调用的方式与各驱动层的模块通讯和连接,所以,传统的中间件和驱动层的各模块均各自设有所述的用以实现基本管理功能的模块;无疑,这将使得系统的资源耗费增加,移植效率低并且不便于驱动层实现。
本发明另一目的在于提供一种基于客户/服务器结构的底层设备驱动的方法,中间件与驱动层通过遵从客户/服务器通讯方式的接口连接,该接口支持中间件的多线程对设备驱动程序或模块进行多次的调用。
本发明又一目的在于提供一种基于客户/服务器结构的底层设备驱动的方法,在中间件与驱动层之间设有基本功能服务器,用以避免基本功能模块在中间件及驱动层各设备驱动程序或模块之中的重复设置,减少资源的占用。
本发明再一目的在于提供一种基于客户/服务器结构的底层设备驱动的方法,所述的驱动层的各设备驱动程序或模块便于下层实现。
本发明的方法是这样实现的一种基于客户/服务器结构的底层设备驱动的方法,在应用或中间件与设备驱动层之间设有接口装置,应用或中间件通过该接口与设备驱动层进行交互。
所述的接口装置至少包括实时操作系统、应用接口和服务器;其中,应用接口与服务器一一对应。
所述的服务器为基本功能服务器,用于实现基本管理和任务处理功能。
所述的服务器为设备驱动服务器,用于根据应用或中间件的指令、消息与设备驱动层的设备驱动模块进行交互。
所述的交互具体包括如下的步骤步骤1应用通过中间件或直接调用服务器的接口功能;步骤2设备驱动服务器通过消息机制将设备驱动层中设备驱动模块的处理结果返回给基本功能服务器的消息处理模块;步骤3基本功能服务器的消息处理模块将处理结果传递给应用或中间件。
应用或中间件在调用服务器时,该应用或中间件与该服务器之间首先建立相应的会话,并保持连接;应用或中间件通过该会话调用该服务器提供的功能。
服务器与应用或中间件之间建立会话的具体步骤为步骤A应用或中间件在访问相应的服务器之前,向该服务器发出建立会话的请求;步骤B该服务器接收到该请求后,协调该服务器的资源,并初始化相应的设备;步骤C如果该服务器的资源允许,则分配一个会话,否则请求失败。
所述的服务器设有并管理会话标识列表。一个应用或中间件的线程与服务器之间可建立一个或一个以上的会话。
应用或中间件对服务器的调用包括同步调用和异步调用。
当应用或中间件对服务器进行同步调用时,服务器同步执行该调用功能,被调用功能返回的请求信息可用;服务器直接在调用时将数据返回给应用或中间件。
当应用或中间件对服务器进行异步调用时,服务器对该调用的功能或请求不同步响应,服务器通过异步操作将异步事件或数据返回给应用或中间件。
所述的异步操作为服务器发送消息给消息处理模块;消息处理模块根据该消息的类型和注册信息将该消息分发给相应的应用或中间件;进入应用或中间件的消息入口;处理该消息数据。
所述的应用接口至少包括解调设备接口、解复用设备接口、用户数据接收接口、智能卡接口、条件接收接口、音视频接口、前面板显示接口、网络接口、存储模块接口及输入设备接口。
所述的基本功能服务器至少包括内存管理服务器、消息与通信管理服务器、时钟与定时器管理服务器以及图形服务器。
所述的内存管理服务器管理内存的自由区域,其将小块的自由区域收集起来形成大的自由区。
所述的消息与通信管理服务器用于返回事件的状态和数据,当应用或中间件调用该消息与通信管理服务器操作时,首先注册该调用所需响应的事件消息处理功能。
所述的消息由消息类型信息和消息代码信息构成,该消息类型与消息与通信管理服务器端事件一一对应。
所述的时钟与定时器管理服务器用于获取和设置系统时间,并进行时钟管理。
所述的图形服务器用于提供基本图形功能和图形性能。
该图形至少包括用于用真彩色画图的背景层、显示图象的静止图象层、用于显示视频流的视频层、用于显示位图的图形层和用于显示光标和指针的光标层;其中,背景层为最底层,静止图象层位于背景层之上,视频层位于静止图象层之上,图形层位于视频层之上,光标位于层图形层之上。
所述的设备驱动层设有一个或一个以上的设备驱动服务器,该设备驱动服务器分别与相应的一个或一个以上的设备驱动模块连接;其中,该设备驱动服务器至少包括解调设备服务器、解复用设备服务器、用户数据接收服务器、智能卡服务器、条件接收服务器、解扰服务器、音频解码服务器、视频解码服务器、前面板显示服务器、以太网络服务器、存储模块服务器及输入设备服务器;该设备驱动模块至少包括解调设备驱动模块、解复用设备驱动模块、用户数据接收驱动模块、智能卡驱动模块、条件接收驱动模块、解扰驱动模块、音频解码驱动模块、视频解码驱动模块、前面板显示驱动模块、以态网络驱动模块、存储驱动模块及输入设备驱动模块;其中任一种设备驱动模块为一个或一个以上。
通过上述的技术方案,本发明为数字电视接收设备的驱动层提供了一种基于客户/服务器架构的系统设计方案,使得各驱动模块可以通过服务器的形式相互连接;采用客户/服务器的结构实现了应用或中间件对驱动层设备驱动模块的调用,使得基于该架构开发的中间件或应用具有良好的可移植性,驱动层的各设备驱动模块便于下层实现。
由于中间件与驱动层通过遵从客户/服务器的通讯方式进行连接,所以支持了中间件的多线程对设备驱动模块进行的多次调用。
由于在中间件与驱动层之间设有基本功能服务器,避免了基本功能模块在中间件及驱动层各设备驱动模块之中的重复设置,减少了资源的占用。
以下结合附图和具体的实施例对本发明做进一步的详细说明。
图2为本发明应用或中间件与设备驱动层进行交互的流程图。
图3为本发明总体结构示意图。
图4为本发明一实施例的设备驱动服务器示意图。
图5为本发明服务器与应用或中间件之间建立会话的流程图。
具体实施例方式参见图2,本发明在应用或中间件与设备驱动层之间设置接口装置,应用或中间件通过该接口与设备驱动层进行交互,具体的交互包括如下的步骤步骤1应用通过中间件或直接调用服务器的接口功能;步骤2设备驱动服务器通过消息机制将设备驱动层中设备驱动模块的处理结果返回给基本功能服务器的消息处理模块;步骤3基本功能服务器的消息处理模块将处理结果传递给应用或中间件。
参见图3、图4,本发明的一实施例包括实时操作系统、应用接口(服务器1API、服务器2API、服务器3API)和服务器;该服务器包括基本功能服务器和设备驱动服务器两大类;其中,基本功能服务器包括图形管理、消息管理、内存管理以及时钟定时器服务器。
设备驱动服务器至少包括解调设备服务器、解复用设备服务器、用户数据接收服务器、智能卡服务器、条件接收服务器、解扰服务器、音频解码服务器、视频解码服务器、前面板显示服务器、以太网络服务器、存储模块服务器及输入设备服务器。每一设备驱动服务器可以同时与一个或一个以上的设备驱动层中相应的设备驱动模块连接交互。
如上所述的设备驱动模块包括有解调设备驱动模块、解复用设备驱动模块、用户数据接收驱动模块、智能卡驱动模块、条件接收驱动模块、解扰驱动模块、音频解码驱动模块、视频解码驱动模块、前面板显示驱动模块、以太网络驱动模块、存储驱动模块及输入设备驱动模块;其中的任一种设备驱动模块可以是一个或多个。
设备驱动服务器作为实现数字电视接收、处理、显示等业务的基本硬件平台接口,是应用或中间件系统调用的主要模块。设备驱动服务器是指硬件平台所提供的各设备模块均作为一个个独立的服务器,对这些模块的调用均以对象方法进行;任何调用设备对象的中间层或应用层均作为客户端。因此构成客户/服务器结构。对于某些临界保护的设备,其对象是一个实际的驱动,执行驱动对应的硬件操作;而某些对象是一个虚拟的设备,在调用该对象时,可由设备驱动服务器进行处理和解释,并执行相应的功能。
参见图5,应用或中间件在调用服务器时,该服务器与该应用或中间件之间首先应建立起相应的会话,并在整个调用过程之中保持连接;应用或中间件通过该会话调用该服务器所提供的功能。
服务器与应用或中间件之间建立会话的具体步骤为步骤A应用或中间件在访问相应的服务器之前,向该服务器发出建立会话的请求;步骤B该服务器接收到这一请求后,协调该服务器的资源,并初始化相应的设备;步骤C如果该服务器的资源允许,则会分配一个会话给相应的应用或中间件相应的进程,否则请求失败。
在服务器中设有会话标识列表,该会话标识列表有该服务器进行管理。
如上所述的一个应用或中间件的线程与服务器之间可建立一个或一个以上的会话;并且可通过一个会话使用该服务器一个或一个以上的功能。
应用或中间件对服务器的调用包括有同步调用和异步调用;当应用或中间件对服务器进行同步调用时,被调用功能返回的请求信息可用;服务器直接在调用时将数据返回给应用或中间件;当应用或中间件对服务器进行异步调用时,服务器对该调用的功能或请求不同步响应,服务器通过异步操作将异步事件或数据返回给应用或中间件。
具体的异步操作为服务器发送消息给消息处理模块;消息处理模块根据该消息的类型和注册信息将该消息分发给相应的应用或中间件;进入应用或中间件的消息入口;处理该消息数据。
本实施例中的应用接口(服务器1API、服务器2API、服务器3API)包括有解调设备接口、解复用设备接口、用户数据接收接口、智能卡接口、条件接收接口、音视频接口、前面板显示接口、网络接口、存储模块接口及输入设备接口;该接口对应于相应的服务器,作为客户端的应用或中间件通过该应用接口于相应的服务器进行交互。
上述的基本功能服务器至少包括内存管理服务器、消息与通信管理服务器、时钟与定时器管理服务器以及图形服务器;其中,内存管理服务器管理内存的自由区域,该内存管理服务器负责管理自由区域的垃圾收集。垃圾收集算法可以是Mark-Sweep或更加复杂的generational或incremental算法。该内存管理模块可以使用消除碎片的算法将小块内存的自由区域收集起来组合形成大的自由区。
每个线程各自负责自己内存区域的分配和释放。一个客户线程可以分配一块内存区域并传递给服务器线程一个指针。该服务器线程可将请求的信息填充到这块自由区,并在一个事件消息内发送回给相应的客户线程。但是,请求服务器线程分配内存,并让客户线程释放内存并非本发明推荐的方法,对于经常使用的内存,有必要使用静态内存或者在系统的开始时就预先分配内存。
消息与通信管理服务器用于返回事件的状态和数据,当应用或中间件调用该消息与通信管理服务器操作时,首先注册该调用所需响应的事件消息处理功能。所谓的消息由消息类型信息和消息代码信息构成,消息与通信管理服务器端的事件与该消息类型一一对应。
时钟与定时器管理服务器用于获取和设置系统时间,并进行时钟管理。在本实施例中,时钟与定时器管理服务器对于所有的系统都是公用的,它以UNIX系统内定义的功能为基础。
本实施例的操作系统为一可实现多任务操作的实时操作系统,它可通过同一个实时操作系统调用多个不同的功能来实现。该实时操作系统支持多线程。在该实时操作系统的支持下,每个设备驱动服务器、应用或中间件可以动态或静态地创建多个线程。该实时操作系统管理的最大线程数视系统能力而定,并且支持用于可执行区域和数据保护的信号控制。通常情况下,嵌入式环境使用驱动优先策略。时间片策略可以单独使用,也可以和驱动优先策略一起使用。
本发明中各服务器、应用或者中间件的操作遵守如下的规则每个设备模块均作为一个设备驱动服务器,应用或中间件和设备模块之间的关系为客户端和服务器端的关系。
应用或中间件可以在多个线程里同时或不同时调用同一个设备模块功能,对相同设备模块的调用和设备临界保护均由服务器端封装层进行协调和管理。
设备封装层可以利用实时操作系统的线程管理和信号量控制来实现对设备模块驱动的管理,以实现服务器的功能。
设备模块的功能调用可以是实际对应的硬件操作,如解调、解扰等,也可以是虚拟的设备操作,如解复用通道、过滤器操作等。
每个设备驱动服务器相对于其它设备驱动服务器而言是独立的。它控制自身的硬件行为,内部地处理中断,并通过事件/消息和其它设备驱动服务器、以及应用单独通信。
对于客户端,每一个设备模块的调用都是对一个逻辑的服务器操作。这些操作封装了底层硬件I/O的控制和内部中断等的处理。
每个设备驱动服务器对客户端调用的响应,均不对客户端调用时带入的指针进行任何内存分配,它只对这些指针进行赋值和处理。
以允许同时多客户访问的设备驱动服务器例(如支持多个解调器的解调设备服务器),每个功能都支持重新进入。
客户端对服务器请求的数据回传有两种方式一种是同步方式,即直接通过调用接口返回值返回。另一种是异步返回,即,服务器端需要回传数据给客户端时,其以消息方式将数据回传给客户端。
所有设备服务器端发给客户端的消息统一通过一个消息队列进行处理。每个消息都具有一个消息类型信息和一个消息标识信息做唯一的确定,数据则由消息中的数据指针返回。
客户端调用服务器功能时,用到的参数均采用有效字节优先、有效位优先的方式进行存储。
最后所应说明的是以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种基于客户/服务器结构的底层设备驱动的方法,其特征在于在应用或中间件与设备驱动层之间设有接口装置,应用或中间件通过该接口与设备驱动层进行交互。
2.根据权利要求1所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于所述的接口装置至少包括实时操作系统、应用接口和服务器;其中,应用接口与服务器一一对应。
3.根据权利要求2所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于所述的服务器为基本功能服务器,用于实现基本管理和任务处理功能。
4.根据权利要求2所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于所述的服务器为设备驱动服务器,用于根据应用或中间件的指令、消息与设备驱动层的设备驱动模块进行交互。
5.根据权利要求1或4所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于所述的交互具体包括如下的步骤步骤1应用通过中间件或直接调用服务器的接口功能;步骤2设备驱动服务器通过消息机制将设备驱动层中设备驱动模块的处理结果返回给基本功能服务器的消息处理模块;步骤3基本功能服务器的消息处理模块将处理结果传递给应用或中间件。
6.根据权利要求5所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于应用或中间件在调用服务器时,该服务器与该应用或中间件之间首先建立相应的会话,并保持连接;应用或中间件通过该会话调用该服务器提供的功能。
7.根据权利要求6所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于服务器与应用或中间件之间建立会话的具体步骤为步骤A应用或中间件在访问相应的服务器之前,向该服务器发出建立会话的请求;步骤B该服务器接收到该请求后,协调该服务器的资源,并初始化相应的设备;步骤C如果该服务器的资源允许,则分配一个会话,否则请求失败。
8.根据权利要求6所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于所述的服务器设有并管理会话标识列表;一个应用或中间件的线程与服务器之间可建立一个或一个以上的会话。
9.根据权利要求5所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于应用或中间件对服务器的调用包括同步调用和异步调用。
10.根据权利要求9所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于当应用或中间件对服务器进行同步调用时,被调用功能返回的请求信息可用;服务器直接在调用时将数据返回给应用或中间件。
11.根据权利要求9所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于当应用或中间件对服务器进行异步调用时,服务器对该调用的功能或请求不同步响应,服务器通过异步操作将异步事件或数据返回给应用或中间件。
12.根据权利要求11所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于所述的异步操作为服务器发送消息给消息处理模块;消息处理模块根据该消息的类型和注册信息将该消息分发给相应的应用或中间件;进入应用或中间件的消息入口;处理该消息数据。
13.根据权利要求2所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于所述的应用接口至少包括解调设备接口、解复用设备接口、用户数据接收接口、智能卡接口、条件接收接口、音视频接口、前面板显示接口、网络接口、存储模块接口及输入设备接口。
14.根据权利要求3所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于所述的基本功能服务器至少包括内存管理服务器、消息与通信管理服务器、时钟与定时器管理服务器以及图形服务器。
15.根据权利要求14所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于所述的内存管理服务器管理内存的自由区域,其将小块的自由区域收集起来形成大的自由区。
16.根据权利要求14所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于所述的消息与通信管理服务器用于返回事件的状态和数据,当应用或中间件调用该消息与通信管理服务器操作时,首先注册该调用所需响应的事件消息处理功能。
17.根据权利要求16所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于所述的消息由消息类型信息和消息代码信息构成,该消息类型与消息与通信管理服务器端事件一一对应。
18.根据权利要求14所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于所述的时钟与定时器管理服务器用于获取和设置系统时间,并进行时钟管理。
19.根据权利要求14所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于所述的图形服务器用于提供基本图形功能和图形性能。
20.根据权利要求19所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于该图形至少包括用于用真彩色画图的背景层、显示图象的静止图象层、用于显示视频流的视频层、用于显示位图的图形层和用于显示光标和指针的光标层;其中,背景层为最底层,静止图象层位于背景层之上,视频层位于静止图象层之上,图形层位于视频层之上,光标位于图形层之上。
21.根据权利要求4所述的基于客户/服务器结构的底层设备驱动的方法,其特征在于所述的设备驱动层设有一个或一个以上的设备驱动服务器,该设备驱动服务器分别与相应的一个或一个以上的设备驱动模块连接;其中,该设备驱动服务器至少包括解调设备服务器、解复用设备服务器、用户数据接收服务器、智能卡服务器、条件接收服务器、解扰服务器、音频解码服务器、视频解码服务器、前面板显示服务器、以太网络服务器、存储模块服务器及输入设备服务器;该设备驱动模块至少包括解调设备驱动模块、解复用设备驱动模块、用户数据接收驱动模块、智能卡驱动模块、条件接收驱动模块、解扰驱动模块、音频解码驱动模块、视频解码驱动模块、前面板显示驱动模块、以态网络驱动模块、存储驱动模块及输入设备驱动模块;其中,任一种设备驱动模块为一个或一个以上。
全文摘要
一种基于客户/服务器结构的底层设备驱动的方法,应用或中间件应用或中间件与设备驱动层间设有接口装置,应用或中间件应用或中间件通过该接口与设备驱动层进行交互。该接口装置包括实时操作系统、应用接口和服务器;应用接口与服务器一一对应;本发明为数字电视接收设备的驱动层提供了一种基于客户/服务器架构的系统设计方案,使各驱动模块可通过服务器的形式连接;实现了应用或中间件对驱动层设备驱动模块的调用,使得中间件和应用具有跨平台的良好的可移植性,驱动层的各设备驱动模块便于下层实现,支持中间件的多线程对设备驱动模块进行的多次调用,避免了基本功能模块在中间件及驱动层各设备驱动模块之中的重复设置,减少了资源的占用。
文档编号G06F15/16GK1427361SQ0114435
公开日2003年7月2日 申请日期2001年12月17日 优先权日2001年12月17日
发明者廖洪涛, 邹义生 申请人:北京中视联联合软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1