用于宽带终端平台固件的操作系统抽象接口的制作方法

文档序号:7656624阅读:166来源:国知局
专利名称:用于宽带终端平台固件的操作系统抽象接口的制作方法
技术领域
本发明为2000年3月27日提出申请、转让给同一受让人并共同待决的美国第09/535,899号专利申请的部分接续申请案。
传统上,运行于宽带终端的每一不同的操作系统(OS)平台通常应用不同的固件。这在传统系统中是一个难题,因为需要对运行于不同操作系统之上的平台软件进行修改(即重新编译、移植等)。由于要求所有操作系统环境中的宽带终端平台软件均相同,因此需要保留不同版本的功能等效的代码,而这并不便利。应注意的是,宽带平台软件控制所有的硬件设备,支持用于处理下游及上游报文的所有相关通信协议以及数字电视服务。
然而,同时也存在对不同操作系统环境的需求,因为每一种环境可以提供在战略上不同的软件功能。有线“多重系统操作员(multiplesystem operator,MSO)”需要向其用户群体提供不同的功能集,例如,Microsoft操作系统环境可以提供更加“PC化”的软件环境,而LiberateOS环境则不能。除此之外,终端操作系统的不断变化也是技术改进、成本降低(即新的CPU)、新元件的采用(即新的存储器配置)以及第二来源的制造商的结果。这会造成混淆且需要进行大量的工作以对平台软件进行维护,由此产生问题,这还意味着必须研发软件/固件并将其下载至终端,而这将导致MSO的额外费用。对于MSO而言,固件的研发周期将会很漫长,且耗资巨大,因为成百上千的终端需要大量人员并肩作战。
传统系统的另一个问题是要增加应用于宽带环境的战略性操作系统功能很困难。尤其是传统操作系统不能为平台软件提供在宽带环境中必不可少的一些构造。
根据要求,电视网络操作员需采用与通用的(例如与操作系统无关的)固件类集相兼容的各种机顶操作系统。要使这一核心代码保持不受影响就意味着需要这一代码更加稳定,这一特点对于将要驻留于千家万户的代码而言尤其重要。同时还要求必需的构造可用于平台软件,以使所有的操作系统可以支持宽带环境中的通用功能集。
鉴于上述状况,本发明提供了一种能够克服现有技术限制的系统,其下述优点对于所属领域的技术人员而言是显而易见的。
根据本发明的一个特点,该操作系统抽象接口可以包含用于为平台软件的各种功能建立并启动控制线程的线程功能以及用于使线程初始化及同步化的同步器功能。利用线程功能可以对至少一个特定线程相对于其它线程的优先权进行修改,并可以通过开始令至少一个特定线程处于中止状态而将该特定线程中止,并可随后使该线程继续执行。同步器功能可以使至少一个特定线程暂停执行,直至通过一个同步器的所有线程到达一个同步点。
根据本发明的另一个特点,该操作系统抽象接口包含互斥功能,用于对至少一个特定线程的优先权进行转换,以便在与特定线程相关联的第一个任务的初始优先权比较低、同时占用了与另外一个线程相关联且优先权比较高的第二个任务所需的资源时,将第一个任务的优先权暂时修改为较高的优先权,直至第一个任务将资源释放。
根据另外一个特点,该操作系统抽象接口可以包含定时器功能,用于通知线程一个时间间隔结束。
根据另外一个特点,该操作系统抽象接口包含报文功能,从而使各对象能够传输任务间及任务内信息。
根据本发明的另外一个特点,平台软件包含终端的固件。
根据本发明的另外一个特点,它具有一个应用于宽带环境、包含多个下游数据接收输入端口的终端;一个驻留有可执行计算机程序代码的计算机可读媒体,其中包含平台软件与终端操作系统之间的操作系统抽象接口;以及一个用于执行计算机程序代码的处理器。
操作系统抽象接口的一部分与操作系统不相关,并且操作系统抽象接口可以提供构造以使线程同步,并协调定时且同时提供进程间命名。借助于该操作系统抽象接口,平台软件可以运行于不同的操作系统,并在不同的操作系统中保持功能的相容性。
发明的详细说明本发明涉及一种提供宽带终端分层结构抽象层的方法及装置,该抽象层可以使平台固件与各种不同的操作系统相兼容,并提供宽带环境所必需的操作系统(OS)构造。


图1显示了一种可在其中实施本发明的示例性宽带终端30,这类终端30例如是由位于美国Pennsylvania,Horsham的Motorola公司生产的DCT5000。宽带终端30具有多个输入端口,通过这些端口可以接收报文。如图1所示,上述报文可以通过多种不同的通信路径传输至宽带终端30,例如带内或带外包处理器端口14、以太网(Ethernet)端口10、DOCSIS有线调制解调器端口20、USB端口18、并行端口12、VBI(Vertical Blanking Interval,即垂直消隐区间)端口22、电话调制解调器端口24、串行端口26或IEEE1394(固件)端口16。图1还表明宽带终端30中的平台软件28支持通信协议的分类,以便进行数据接收。所支持的通信协议例如包括DigiCipher II(DC II)、活动图像专家组标准(Motion Picture Experts Group,MPEG II)、有线系统端口数据传输规范(Data Over Cable System Interface Specification,DOCSIS1.1)、以太网、SLIP、USB、NABITZ、IEEE1394以及各种电话调制解调器协议。
机顶终端的功能已经超出了普通的数字电视服务范围,因为它可以通过以太网端口10、并行端口12或USB端口18与PC接口,也可以通过一个端口例如IEEE1394端口16与家用网络设备(例如摄像机)接口,通过这种方式可以实现在宽带终端30上运行许多新应用程序。
图2显示了本发明的操作系统(OS)接口。该操作系统接口具有分层结构,其中各项功能根据其抽象层进行划分。操作系统接口中最低的抽象层为核心相关(操作系统相关)层100,最高的抽象层一般为固件层104,其中用户的应用程序独立于具体的硬件或操作系统环境运行。固件层104应具有充分的通用性,以提供运行于宽带环境的应用程序所需的全部功能。
根据本发明,每一类的操作系统相关层100以一定的方式实施操作系统不相关层102的功能,该方式应适于采用操作系统提供的实际核心呼叫的特定操作系统。特定操作系统软件对象的编译将决定所采用的操作系统相关对象。换言之,在对代码进行编译时,具体操作系统所对应的库就已选定,例如WinCE、VRTX等。另外,核心接口软件的编写最好采用与任何操作系统不相关的通用参数及返回值。
该接口最好采用面向对象的类进行定义,因为这将为由操作系统相关层100抽象得出操作系统不相关层102提供一种便捷的方法。由于低层(操作系统相关层)100必须执行高层(操作系统不相关)102的详细功能,操作系统相关层100将承袭操作系统不相关层102的功能。因此,该接口最好通过面向对象的编程及分析技术包括Java或C++编程语言得以实现。另外,该接口应能够应用于实际上任何操作系统,包括但不限于Windows CE、VRSTX、VXWorks、Linux等操作系统。
本发明的另一个特点是必须使固件104具有兼容性,以便固件104可以运行于各种不同的操作系统,例如Windows CE、VRTXSA、VXWorks、Linux等。尤其是该接口还被定义为向运行于宽带环境之中的平台软件28提供各种关键的功能。这些关键功能包括传统操作系统环境所不能提供的具体构造及支援代码。对上述传统操作系统环境必须进行调整,因为许多操作系统将由有线操作员(MSO)在其特定的宽带环境中进行配置。
本发明的一个优点是提供了多个相对于宽带环境而言独特的构造。由于大量的入站数据同时向宽带终端30传输,因此,要求底层操作系统提供同步功能是很重要的。由于终端30通常由国家级部门进行控制,因此,对于各个不同的当地时基而言,时钟功能是必不可少的。另外,所提供的进程间命名标签应能够使本发明所述的接口适配于基于进程的操作系统以及非基于进程的操作系统。以下将对上述每一种构造进行更加详细的说明。
如图1所示,终端30可以通过端口10、12、14、16、18、20、22、24及26中的一个或多个端口接收数据。难点在于确保所有的线程均已就绪并能按照正确的顺序处理入站数据。例如,如果部分编码基数尚未作好处理上述请求的准备,将会对某个特定的请求产生不良影响。因此,需要使入站数据同步化。相应地,本发明提供了一个同步器对象106,如图3所示,用于确保宽带终端平台软件28的各方面均己作好开始处理连续发送至下游终端30的信息的准备。
在宽带环境中,需要利用同步器对象106来协调那些用以处理传送至用户宽带装置(终端30)的所有下游请求所必需的全部线程,以使其就绪。同时,还需按照特定的顺序处理下游报文组合。同步器对象106可以确保上述处理过程按照正确的顺序进行。
同步器类允许多个线程暂停执行,直至通过同步器的所有线程112到达了一个同步点,这样,就可以在所有线程对象继续运行之前对其进行协调。通常,通过共用一个同步器类的各线程112之间相互依赖以实现其设计功能。上述线程112需明确其所依赖的其它线程112处于良好的状态。这一点在终端30经过一个供电周期之后尤其必要,因为此时所有线程112将重新启动。使这一特性更为重要的是,单个线程112或成组线程112从头端开始处理报文,同时宽带环境的性质决定了多条报文将同时向下游传送。
图4显示了另一个应用于宽带环境的构造,即时钟对象108。时钟对象108将提供在宽带环境中广泛应用的GPS、UTC以及当地时间。通常,这需要对传统操作系统的功能进行扩展。时钟对象108支持当地时间,这一点有利地保证了TVGUIDE On Screen等应用程序可以按照当地时间进行显示。此外,时钟对象108还支持GPS以及UTC时间,因为在国家控制系统中采用上述时基。上述支持使宽带环境可寻址控制器能够向终端30发送以不同状态驻留在不同时区的报文。可寻址控制器将发送激活特定功能的报文,例如在特定的GPS时间启动一项电视服务或在特定时间中止一个程序。对于上述报文,当地时基控制不适用,而GPS及UPC时基则设计为能够在较宽的范围内跨地区使用。下面将对图4所示的类Atime 128进行讨论。
宽带环境操作系统接口所提供的第三个构造为各操作系统构造的进程间命名标签。本发明所述操作系统抽象层100及102具有可运行于基于进程的环境(例如Windows CE)及非基于进程的环境(例如常用的实时操作系统或RTOS)的优点。此处,关键的一点在于进程间构造在性质上是操作系统不相关的,与操作系统抽象层以下的实际操作系统不相关。有些操作系统具有进程,而有些则没有,因此必须确保进程间命名标签同时适用于两种操作环境。
为了实现本发明的上述功能,下文定义了多个操作系统不相关类。线程类112(见图3)用于为机顶固件104的不同功能建立并启动控制线程。必要时,可以在线程处于中止状态时(此时该线程的执行中止)启动线程,并可随后继续执行。一个线程相对于其它线程的优先权可以修改。线程执行下游报文处理以及API呼叫,这通常源于终端30的外围设备与用户之间的互动。类SyncThread 114用于线程的初始化及同步化并指定对象主循环。
命名特定的控制对象(例如,Mutexes 110,如图5所示),使得两个不同进程的两个不同线程可以通过名称取得Mutexes 110。类Mutexes 110可以对线程112的优先权进行转换,以便在低优先级的任务占用了高优先级的任务所需的资源时暂时将低优先级任务的优先权修改为较高的优先权,直至资源被释放。
图6显示了用于通知时间间隔结束的类Timer 116。这种通知构造用于向被时间相关的事件中止的线程112提供叫醒呼叫。图4中的时钟对象类Timer 108为类Timer 116的一部分。类Event 118用于控制事件的设定及清除。在由Interrupt Service Subroutine等程序向线程112发送了一个Event 118时将会用到事件。该特定线程将在接收到Event118时被唤醒并根据该中断的具体情况执行必要的处理。
关键部分类(未示出)用于为代码的关键部分提供保护。该关键部分用于对使用相同存储单元的两个线程112进行协调。任何时候均只能由一个线程对该存储单元进行读写。图6所示的类MultiOrEvent120表明在接收了一个或多个事件时达到同步化。利用类MultiOrEventAll(未示出),在达到同步化时接收的全部事件将被返回至呼叫者。
图7显示了用于各对象之间传输任务间及任务内信息的类Message 122。类Message Queue 124提供了一个报文容器。报文为由一个线程112向另一个线程112传输数据的一种途径。Throttling MessageQueue 126与Message Queue类似,只是Throttling Message Queue用于通知用户队列即将排满(即阻塞状态)。如果在软件设计中提供了在队列溢出时制止输入信息进入队列的方法,则将要使用这一构造。
图4显示了提供时间数据的类Atime 128以及提供基本时钟功能的类Clock 108。类Clock 108用于为高级软件提供日历功能。线程间通信通过Message Queue124、Mutex110及/或Event118实现。
现在我们可以看到本发明提供了一种独特的方法,根据这种方法,机顶固件在实施一次后即可用于宽带环境中的多种操作系统及机顶平台。本发明还进一步提供了一种可以实现操作系统平台及硬件平台范围内分层结构及代码共享的接口,其中包括上面提到的宽带环境所必需的战略性新功能。
应该注意的是,上述示例仅用于说明之目的,而无意于对本发明进行限制。本文参照较佳的具体实施例对本发明进行了说明,文中引用的文字应理解为描述及说明性文字,而非限制性文字。另外,虽然文中参照特定的设备、材料及实施例对本发明进行了说明,但是本发明并不限于此处所披露的具体内容,而应包括从属权利要求范围之内所有功能相当的构造、方法或应用。所属技术领域以及从本发明的说明中受益的人员可以在不脱离本发明的范围及精神的前提下进行大量的改进及修改。
权利要求
1.一种使宽带环境中平台软件与运行于宽带终端的特定操作系统之间得以进行通信的方法,其包括以下步骤提供该平台软件与该操作系统之间的操作系统抽象接口,其包含一个操作系统相关层及一个操作系统不相关层;并且提供该操作系统抽象接口内部构造,用于线程同步、定时协调以及提供进程间命名;其中该操作系统抽象接口可以使所述平台软件运行于不同的操作系统,并在所述不同的操作系统中保持功能的相容性。
2.如权利要求1所述的方法,其中所述操作系统抽象接口包含用于为所述平台软件的不同功能建立并启动控制线程的线程功能,以及一个用于提供所述线程的初始化及同步化的同步器功能。
3.如权利要求2所述的方法,其中所述线程功能可以对至少一个特定线程的优先权相对于其它线程的优先权进行修改,并且其中该线程功能可以通过使至少一个特定线程开始处于中止状态而中止该特定线程的执行,并在随后使该特定线程继续执行。
4.如权利要求2所述的方法,其中所述同步器功能可以使至少一个特定的所述线程暂停执行,直至通过一个同步器的所有线程到达一个同步点。
5.如权利要求2所述的方法,其中所述操作系统抽象接口包含用于对至少一个特定的所述线程的优先权进行转换的互斥功能,以便在与该特定线程相关联的第一个任务的初始优先权比较低、同时占用了与另外一个线程相关联且优先权比较高的第二个任务所需的资源时,将第一个任务的优先权暂时修改为较高的优先权,直至第一个任务将该资源释放为止。
6.如权利要求1所述的方法,其中所述操作系统抽象接口包含用于通知线程一个时间间隔己结束的定时器功能。
7.如权利要求1所述的方法,其中所述操作系统抽象接口包含用于使各对象传输任务间及任务内信息的报文功能。
8.如权利要求1所述的方法,其中所述平台软件包含所述终端的固件。
9.一种用于宽带环境的终端,其包含多个适于接收下游数据的输入端口;一个驻留有可执行计算机程序代码的计算机可读媒体,该计算机程序代码包含平台软件与运行于所述终端上的操作系统之间的操作系统抽象接口;以及一个用于执行所述计算机程序代码的处理器,其中所述操作系统抽象接口的一部分与所述操作系统不相关;所述操作系统抽象接口提供用于线程同步及协调定时并提供进程间命名的构造;并且所述操作系统抽象接口可以使平台软件运行于不同的操作系统,并在不同的操作系统中保持功能的相容性。
10.如权利要求9所述的终端,其中所述操作系统抽象接口包含用于为所述平台软件的各种功能建立并启动控制线程的线程功能,以及用于提供所述线程的初始化及同步化的同步器功能。
11.如权利要求10所述的终端,其中其中所述线程功能可以对至少一个特定线程的优先权相对于其它线程的优先权进行修改,并且其中该线程功能可以通过使至少一个特定线程开始处于中止状态而中止该特定线程的执行,并在随后使该特定线程继续执行。
12.如权利要求11所述的终端,其中所述同步器功能可以使至少一个特定的所述线程暂停执行,直至通过一个同步器的所有线程到达一个同步点。
13.如权利要求10所述的终端,其中所述操作系统抽象接口包含用于对至少一个特定的所述线程的优先权进行转换的互斥功能,以便在与该特定线程相关联的第一个任务的初始优先权比较低、同时占用了与另外一个线程相关联且优先权比较高的第二个任务所需的资源时,将第一个任务的优先权暂时修改为较高的优先权,直至第一个任务将该资源释放为止。
14.如权利要求9所述的终端,其中所述操作系统抽象接口包含用于通知线程一个时间间隔已结束的定时器功能。
15.如权利要求9所述的终端,其中操作系统抽象接口包含用于使各对象传输任务间及任务内信息的报文功能。
16.如权利要求9所述的终端,其中所述平台软件包含所述终端的固件。
17.一种在客户机与运行于终端的特定操作系统之间进行通信的方法,其包含以下步骤向核心接口提出与操作系统不相关的功能性请求,该核心接口用于为各种不同操作系统所提供的预定功能集提供接口;通过所述核心接口接收所述操作系统不相关请求;将所述操作系统不相关请求转换为与所述特定操作系统相关的所述功能请求。
18.如权利要求17所述的方法,其中所述操作系统不相关请求由所述客户机提出。
19.如权利要求17所述的方法,其中所述核心接口包含一个用于接收所述操作系统不相关请求的抽象层以及一个用于实施所述转换步骤的抽象层。
20.如权利要求17所述的方法,其中所述操作系统不相关请求包含线程请求。
21.如权利要求17所述的方法,其中所述操作系统不相关请求包含同步化请求。
22.如权利要求17所述的方法,其中所述操作系统不相关请求包含定时器请求。
23.如权利要求17所述的方法,其中所述操作系统不相关请求包含存储器请求。
24.如权利要求17所述的方法,其中所述操作系统不相关请求包含报文请求。
25.如权利要求17所述的方法,其中所述终端为网络中的用户电视终端。
26.如权利要求17所述的方法,其中所述终端位于宽带通信网络之中。
27.如权利要求17所述的方法,其中由所述客户机向所述核心接口提供的参数以及由所述核心接口向所述客户机返回的返回值与所述各种不同操作系统不相关。
28.用于在客户机与运行于终端的特定操作系统之间进行通信的装置,其包括用于接收操作系统不相关功能性请求的核心接口;其中所述核心接口为各种不同操作系统所提供的预定功能集提供接口,并将所述操作系统不相关请求转换为与所述特定操作系统相关的所述功能请求。
29.如权利要求28所述的装置,其中所述操作系统不相关请求由所述客户机提出。
30.如权利要求28所述的装置,其中所述核心接口包含一个用于接收所述操作系统不相关请求的第一抽象层以及一个用于实施所述转换步骤的第二抽象层。
31.如权利要求28所述的装置,其中所述终端为网络中的用户电视终端。
32.如权利要求28所述的装置,其中所述终端位于宽带通信网络之中。
33.如权利要求28所述的装置,其中由所述客户机向所述核心接口提供的参数以及所述核心接口向所述客户机返回的返回值与所述各种不同操作系统不相关。
全文摘要
一种用于为宽带环境机顶电视终端提供操作系统抽象接口的方法及装置。该接口定义了一个操作系统不相关层(102),用于抽象得出以操作系统不相关的方式实施机顶固件(104)所需的服务程序。本发明提供了几个对于宽带环境而言十分独特的构造,包括同步功能(106)、时钟功能(108)以及进程间命名标签,以使本发明所述的接口同时适配于基于进程的操作系统以及非基于进程的操作系统。
文档编号H04N5/44GK1429363SQ01809411
公开日2003年7月9日 申请日期2001年3月27日 优先权日2000年3月27日
发明者D·塔沃莱蒂, C·德尔索尔多, J·M·伯恩鲍姆, J·T·戴维斯 申请人:通用仪器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1