访问控制系统的制作方法

文档序号:6412730阅读:193来源:国知局
专利名称:访问控制系统的制作方法
技术领域
本发明涉及到一种访问控制系统,具体地说,本发明涉及到一种通过程序对一计算机系统的至少一个组件进行访问的方法,更具体地说,本发明涉及到对广播数字信号的接收机/译码器中所使用的计算机系统的至少一个组件进行访问的方法。
由于主要用于广播电视信号、特别(但不排他地)是用于卫星电视系统的数字传输系统的出现,因而使得也能将这种系统用于各种其它目的。其中之一就是提供与最终用户的交互。
实现上述目的的一种方式是在接收电视信号的接收机/译码器中运行一应用程序。该应用程序的代码可永久地存储在所述接收机/译码器中。但是,这会有一定的局限性。最佳的是,所述接收机/译码器应能下载用于所需应用程序的代码。通过这种方式,可提供更多的多样性,并且,可在不影响用户的情况下按需更新应用程序。
由各个广播节目提供者来生成接收机/译码器所执行的应用程序。一般地说,所述接收机/译码器具有诸如串行接口和并行接口之类用于与外部设备相连的多个接口。由接收机/译码器的生产商来提供用于这些接口的设备驱动程序。就多个应用程序来源和多个接收机/译码器生产来源而言,重要的是一个应用程序在各个接收机/译码器中按同样的方式起作用,并且,每个接收机/译码器均能按相同的适当方式执行各应用程序。
因此,在第一个方面中,本发明提供了一种通过程序对一计算机系统的至少一个组件进行访问的方法,所述方法包括下列步骤将与各个相应组件有关的逻辑设备存储在上述系统中,所述各逻辑设备具有相应的设备标识;将一程序标识赋给上述程序;以及从上述程序中将一包括上述程序标识和各逻辑设备的设备标识的信号输出给一位于所述程序与各逻辑设备之间的共用接口,以便通过上述接口形成前述程序与各逻辑设备之间的通信信道。
利用上述方法,可在与程序和硬件来源无关的情况下在前述计算机系统中的各个程序与接收机/译码器的“硬件”之间提供一共用接口。
所述信号还包括一命令,它能使所述程序接收一输出自相应逻辑设备的消息,该消息指示与所述逻辑设备相关的组件的状态变化。
因此,可提醒一程序注意在所述组件之一处出现的“意外事件”,例如用计算机系统的串行接口来接收一消息或将一智能卡(smartcard)插进计算机系统的智能卡读卡器。
可将上述消息暂时存储在上述计算机系统的排队装置中,以便以后传给所说的程序。换句话说,所述程序通知逻辑设备不必立即向程序提供消息。
最佳的是,所述排队装置包括多个队列,每个队列均具有相应的优先级,该优先级指示将消息从上述排队装置传给所述程序的次序,并且,所述信号还包括将前述消息暂时存储于其中的队列的优先级。
因此,所述程序可指定“紧迫性”,按着该“紧迫性”,通过指明排队装置处理消息的优先级而由所述排队装置来处理消息。
在第二个方面中,本发明提供了一种利用上述方法通过多个程序对一计算机系统的至少一个组件进行访问的方法,各个程序通过前述接口来访问所述的组件。
因此,本发明提供了一种共用接口,它用于程序与一个或多个逻辑设备之间的通信,并用于一个逻辑设备与一个或多个程序之间的通信。
本发明的第三个方面提供了一种在程序与计算机系统组件之间传送数据的方法,该方法包括下列步骤利用上述方法通过程序对所述组件进行访问;以及随后从上述程序中将一包括上述程序标识和逻辑设备的设备标识的信号输出给一共用接口,将一个指令一组件通过与之相关的逻辑设备来进行操作的命令、要由所述逻辑设备输入给前述组件的数据的地址、以及用于由上述组件输出给上述逻辑设备的数据的地址输出给前述共用接口。
在第四个方面中,本发明提供了一种在程序与计算机系统组件之间传送数据的方法,该方法包括下列步骤利用上述方法通过程序对所述组件进行访问;以及随后从上述程序中将一包括上述程序标识和逻辑设备的设备标识的信号输出给一共用接口,将一个指令一组件通过与之相关的逻辑设备来进行操作的命令、在传给所述程序之前其中暂时存储有一消息的队列的优先级、要由所述逻辑设备输入给前述组件的数据的地址、以及用于由上述组件输出给上述逻辑设备的数据的地址输出给前述共用接口,所说的消息是从相应的逻辑设备中输出并用来指示与所述逻辑设备相关的组件的状态变化。
所以,一旦提供了所述程序与计算机组件之间的访问,就可用如此形成的通信路由来提供用于将数据从前述程序传送给一组件的路由,反之亦然。
可通过一组件将前述程序和/或各个逻辑设备输入给上述计算机系统。这就能够方便地下载和“更新”所述计算机系统中的程序和逻辑设备。
最佳的是,所述各个组件均包括MPEG流调谐器、串行接口、并行接口、调制解调器和智能卡读卡器中的至少一个。
在第五个方面中,本发明提供了一种用于通过程序对计算机系统的至少一个组件进行访问的设备,将与各相应组件相关的逻辑设备存储在上述计算机系统内,所述各逻辑设备具有相应的设备标识,前述本发明所提供的设备包括用于将一程序标识赋给所述程序的装置;以及用于根据输出自前述程序并包括上述程序标识和各逻辑设备的设备标识的信号来形成所述程序与各逻辑设备之间的通信信道的装置。
所述本发明的设备还包括用于使所述程序接收一输出自相应逻辑设备的消息的装置,所述消息指示与所述逻辑设备相关的组件的状态变化。
最佳的是,所述计算机系统还包括排队装置,它用于暂时存储由前述逻辑设备输出的消息以便以后传给所说的程序。上述排队装置可包括多个队列,每个队列均具有相应的优先级,该优先级指示将消息从上述排队装置传给所述程序的次序。
所述计算机系统还包括这样的装置,它用于将由前述逻辑设备输入给所述组件的数据以及由所述组件输出给前述逻辑设备的数据存储至所说的共用接口。
最佳的是,所述各个逻辑设备通过设备驱动程序与相应的相关组件相连。
在第六个方面中,本发明提供了一用于接收广播节目信号的接收机/译码器,它包括如前所述的本发明的设备。
最佳的是,所述接收机/译码器还包括用于接收压缩的MPEG信号的装置、用于对接收到的信号进行译码以提供电视信号的装置、以及用于将所述电视信号提供给电视机的装置。
以下参照附图以纯粹举例的方式说明本发明的最佳特征,在附图中

图1示出了本发明最佳实施例的数字电视系统的整体结构;图2示出了上述数字电视系统的交互系统的结构;图3示出了下载至交互式接收机/译码器的存储器中的模块内的文件的结构;图4示出了上述交互式接收机/译码器的存储器容积的结构;图5是上述接收机/译码器的接口的概略图;图6示出了上述接收机/译码器中的软件的结构;以及图7示出了一设备管理器、多个客户机与多个设备之间的连接关系的一个实例。
图1示出了一数字电视系统1000的概貌。本发明包括一通常的数字电视系统2000,它使用周知的MPEG-2压缩系统来传送压缩后的数字信号。具体地说,广播中心内的MPEG-2压缩器2002接收数字信号流(一般是视频信号流)。压缩器2002通过链路2006与一多路复接器和扰码器2004相连。多路复接器2004接收多个其它输入信号、汇集一个或多个传输流并将压缩后的数字信号通过链路2010传给广播中心的发射器2008,所说的链路当然可以呈包括电信链路在内的多种形式。发射器2008通过上行链路2012将电磁信号传给卫星收发器2014,在该收发器中,对所述电磁信号作电处理并通过理论上的下行链路2016将其广播给地面接收机2018,所述地面接收机通常呈最终用户所拥有或租借的抛物面天线的形式。将接收机2018所接收的信号传给最终用户所拥有或租借的并与最终用户的电视机2022相连的集成接收机/译码器2020。接收机/译码器2020将压缩后的MPEG-2信号译码成用于电视机2022的电视信号。
条件接入系统3000与多路复接器2004和接收机/译码器2020相连并部分地位于广播中心内、部分地位于所述译码器内。条件接入系统3000能使得最终用户接入来自一个或多个广播提供者的数字电视广播。可将能对涉及到商业节目(也就是说,广播提供者所出售的一种或多种电视节目)的消息进行解密的智能卡(smart card)插进接收机/译码器2020。最终用户可利用译码器2020和智能卡以预订模式或每次观看付费模式购买商业节目。
交互系统4000也与多路复接器2004和接收机/译码器2020相连并且也部分地位于广播中心内、部分地位于所述译码器内,而且能使得最终用户通过调制解调的反向信道(modemmed back channel)4002与多种应用程序相交互工作。
图2示出了本发明的数字电视系统1000的交互电视系统4000的总体结构。
例如,交互系统4000使得最终用户一经要求就能通过电视机根据屏幕目录来购买物品、查询本地新闻和天气形势图并玩游戏。
交互系统4000在总体上包括四个主要部件一位于广播中心(或其它地方)的创作工具4004,它能使广播提供者创建、开发、调试和测试应用程序;一位于广播中心的应用程序和数据服务器4006,它与创作工具4004相连并用于使广播提供者准备、鉴别和格式化传给多路复接器和扰码器2004的应用程序及数据以便插进要加以广播给最终用户的MPEG-2传输流(一般是插进该传输流的专用部)中;一虚拟机,该虚拟机包括运行时间引擎(RTE)的4008,它是安装在最终用户所拥有或租借的接收机/译码器2020内的可执行代码,该代码可使最终用户接收、鉴别应用程序并对应用程序进行解压缩且将该应用程序装载进接收机/译码器2020的工作存储器2024内以便执行。引擎4008还可运行常驻的通用应用程序。引擎4008与硬件及操作系统无关。
一调制解调的反向信道4002,它位于接收机/译码器2020与应用程序和数据服务器4006之间,以便在最终用户请求时使指令服务器4006的信号将数据和应用程序插进MPEG-2传输流内。
所述交互电视系统利用“应用程序”来进行操作,所述应用程序对接收机/译码器和包含在其中的各个设备的功能进行控制。在引擎4008内,将应用程序表示为“资源文件”。“模块”是一组资源文件和数据。可能需要用若干个模块来组成一个应用程序。接收机/译码器的“存储器容积”是用于模块的存储空间。一个“接口”用于下载模块。可将模块从MPEG-2传输流中下载进接收机/译码器2020。
以下详细说明上述部件。
就本说明书而言,一个应用程序是一段计算机代码,它用于对最好是接收机/译码器2020的高层功能进行控制。例如,当最终用户将遥控器对准电视机2022的屏幕上所看到的按钮对象并按下确认键时,就运行与该按钮相关的指令序列。
交互性应用程序提供了菜单并在最终用户请求时执行命令且提供与应用程序的目的有关的数据。应用程序可以是常驻应用程序,也就是说,它们存储在接收机/译码器2020的ROM(或FLASH或其它非易失性存储器)中,或者可将应用程序广播并下载进接收机/译码器2020的RAM或FLASH存储器中。
应用程序的实例有·初始化应用程序(Initiating Application)。接收机/译码器2020配备有一常驻初始化应用程序,它是自适应的模块集合(以下将更详细地对这个术语进行界定),从而使接收机/译码器2020能在MPEG-2环境中立即运行。初始化应用程序提供了核心特征,如果必要的话,广播提供者可对该特征进行修改。初始化应用程序还提供了常驻应用程序与下载应用程序之间的接口。
·启动应用程序(Startup Application)。启动应用程序可使任何应用程序无论是下载的应用程序还是常驻的应用程序均能在接收机/译码器2020上运行。这种应用程序可用作在进行服务时为启动应用程序而执行的引导程序。将启动应用程序下载至RAM,因此,可很容易地更新该应用程序。可将启动应用程序配置成能在下载之后立即选择并运行各信道中可用的交互应用程序或者在预装之后选择并运行各信道中可用的交互应用程序。就预装而言,将所述交互应用程序装进存储器2024并在需要时用启动应用程序来加以启动。
·节目指南(Program Guide)。节目指南是这样一种交互应用程序,它提出了所有有关节目的信息。例如,节目指南可以提供如一数字电视集合的各信道中所提供的一周电视节目的信息。最终用户可通过按下遥控器2026上的按键来访问一附加屏幕,该附加屏幕叠加在电视机2022的屏幕上所显示出的事件上。所述附加屏幕是一浏览器,它给出了与数字电视集合的当前和下一个节目事件有关的信息。最终用户通过按下遥控器2026上的另一个按键可以访问这样一种应用程序,它能显示出与一周的节目事件有关的信息列表。最终用户还可按简单和定制的标准来对节目事件进行检索和排序。最终用户也可以直接访问选定的频道。
·每次观看付费(Pay Per View)应用程序。每次观看付费应用程序是一种可在数字电视集合的各PPV频道上连同条件访问系统3000使用的交互服务。最终用户可用TV指南或频道浏览器来访问该应用程序。此外,一旦在PPV频道上检测到PPV事件,每次观看付费应用程序就会自动开始。最终用户可用子智能卡3020或通过通信服务器3022(用调制解调器、电话和DTMF码、MINITEL或类似系统)来购买当前的节目事件。每次观看付费应用程序可常驻接收机/译码器2020的ROM或者可下载进译码器2020的RAM内。
·PC下载(PC download)应用程序。在请求时,最终用户可用PC下载应用程序来下载计算机软件。
·杂志浏览器应用程序。杂志浏览器应用程序包括根据最终用户通过屏幕按钮的导航来周期性地以视频方式广播图像。
·小测验(Quiz)应用程序。小测验应用程序最好与广播小测验节目相同步。例如,在电视2022的屏幕上显示出多选题,最终用户可用遥控器2026选择一个答案。小测验应用程序可将回答是否正确通知给用户并能对用户计分。
·电视购物(Teleshopping)应用程序。在电视购物应用程序的一个实施中,将出售的物品价格传给接收机/译码器2020并显示在电视2022上。用户可用遥控器选择要购买的具体物品。可按着将借方记入业已插进接收机/译码器2020的一个读卡器4036中的信用卡帐户的指令,将物品的订单通过调制解调的反向信道4002传送给电视购物应用程序和数据服务器4006或者传送给一电话号码已被下载至了接收机/译码器的独立销售系统。
·电视银行业务(Telebanking)应用程序。在电视银行应用程序业务的一个实例中,用户将银行卡插进接收机/译码器2020的一个读卡器中。接收机/译码器2020用存储在银行卡中或存储在接收机/译码器中的电话号码拨叫该用户的银行,然后,电视银行业务应用程序提供可用遥控器2026来选择的多个功能以便例如通过电话线下载帐户清单、在帐户之间传递资金、请求支票簿等。
·互联网浏览器(Internet Browser)应用程序。在互联网浏览器应用程序的一个实例中,用遥控器2026输入来自用户的诸如请求观看具有特定URL的网页的指令,并用调制解调的反向信道4002将这些指令传送给应用程序和数据服务器4006。然后,将适当的网页包括在来自广播中心的传输流中、用接收机/译码器2020通过上行链路2012、收发器2014和下行链路2016来接收该网页、并将该网页显示在电视2022上。
将应用程序存储在接收机/译码器2020的存储器存储单元内并将应用程序表示为资源文件。所述资源文件包括图形对象描述单元文件、变量块单元文件、指令序列文件、应用程序文件以及数据文件。
所述图形对象描述单元文件对屏幕即应用程序的人—机接口进行描述。所述变量块单元文件对应用程序所处理的数据结构进行描述。所述指令序列文件对应用程序的处理操作进行描述。所述应用程序文件提供了应用程序的入口点。
按这种方式构成的应用程序可使用诸如图标库文件、图像文件、字体文件、颜色表文件和ASCII文本文件之类的数据文件。一个交互式应用程序还可通过输入和/输出来获得联机数据。
引擎4008仅将它在给定时间需要的资源文件装进存储器。从图形对象描述单元文件、指令序列文件和应用程序文件中读出这些资源文件,在调用用于装载模块的过程之后将变量块单元文件存储在存储器中并加锁,直至专门调用了用于卸载模块的过程。
参照图3,诸如电视购物模块之类的模块4010是一组资源文件和数据,它包括单个的应用程序文件4012;不确定数量的图形对象描述单元文件4014;不确定数量的变量块单元文件4016;不确定数量的指令序列文件4018;以及在适当的情况下还包括诸如图标库文件、图像文件、字体文件、颜色表文件和ASCII文本文件之类的数据文件4020。
在MPEG数据流中,各个模块均包括一组MPEG表。每个MPEG表均可格式化为多个数据部。在MPEG数据流中,每个数据部均具有多达4千字节的“大小”。就通过串行端口和并行端口进行数据传输而言,例如,可将模块类似地分解成表和数据部,数据部的大小随传输用媒体而变。
按数据包的形式在MPEG数据流中传送模块,所述数据包在例如视频数据流、音频数据统和电视文本数据流等相应类型的数据流中一般为188字节。每个数据包的前面均是一个13位的数据包标识(PID),在MPEG数据流中传输的各个数据包均有一个PID。节目映射表(PMT表)包含有不同数据流的列表并根据相应的PID限定了各数据流的内容。PID可提示一个设备在数据流中存在有应用程序,用PMT来标识PID。
模块4010的思想以及下载小段代码的思想能很容易地改进应用程序。这就能将应用程序作为常驻软件或广播软件下载至接收机/译码器2020的永久FLASH存储器中,从而能仅在最终用户需要时将应用程序下载至译码器2020的RAM中。
存储器容积(Volume)是用于模块4010的存储空间。这些存储空间位于接收机/译码器2020的存储器2024内。参照图4,存储器2024一般可分成RAM容积4022、FLASH容积4024和ROM容积4026。所述存储器还被分成与前述将模块下载至接收机/译码器2020内的各种接口相关联的存储器容积,例如,可分成MPEG容积,它用于存储下载自MPFG位流的模块;以及,串行容积,它用于存储经由串行接口接收到的模块。
RAM容积4022又分成固件所专用的存储区、用于引擎4008和缓冲区的工作空间。应用程序或引擎本身可通过一设备管理器来访问FLASH和其它非易失性存储器。
每个容积均包含有模块4010的列表,各个模块4010均包含有文件4012、4014、4016、4018、4020的列表。可以有两个同名但位于不同模块中的文件。例如,应用程序的一个版本一般存储在ROM容积4026中,而后来的版本则下载至FLASH容积4020中,以便用存储在FLASH容积4024中容积来替换存储在ROM容积中的版本。可将文件的内容压缩成LZW格式,但是,由于文件的解压缩会花费一段时间,故可按解压缩后的格式来接收文件的内容。
接收机/译码器2020的物理接口用于下载数据。参照图5,接收机/译码器2020例如包含有六个下载用装置MPEG流调谐器4020、串行接口4030、并行接口4032、调制解调器4034以及两个读卡器4036。
就多个应用程序来源和多个接收机/译码器2020制造来源而言,重要的是,一个应用程序在各接收机/译码器中按相同的起作用,并且,各接收机/译码器应该按相同的适当方式执行各个应用程序。参照图6,接收机/译码器2020包括一运行时间引擎4008,它在微处理器和通用应用程序编程接口4054的控制下运行。所述微处理器和通用应用程序编程接口安装在各接收机/译码器2020内,因此,从应用程序的角度来看,所有的接收机/译码器2020都是一样的。
图6示出了用于运行应用程序4056的接收机/译码器2020的结构。虚拟机4007执行应用程序4056,所述应用程序包括与该虚拟机直接相连的应用程序4050′或例如从MPEG数据流中下载至接收机/译码器2020的应用程序4056″。运行时间引擎4008还可显示图形和文本、调用用于服务的设备、接收“事件”并使用用于特定计算的库4058的函数。
参照图6,就一应用程序而言,可将译码器2020的一个功能是“被看作是”一个设备4060。所以,接收机/译码器2020具有任何应用程序都看不到的功能。
与虚拟机4007相通信的显示功能可将文本和图形显示给最终用户,并将最终用户的动作提供给虚拟机4007。文本与图形叠加在电视机2022的显示器上,用户可通过键盘与应用程序4056相交互。术语“键盘”包括遥控器2026。
运行时间引擎4008是安装在接收机/译码器2020的虚拟机4007中的可执行代码并且包括一用于解释和运行应用程序的虚拟机。引擎4008适用于包括单任务操作系统(如MS-DOS)在内的任何操作系统,。
引擎4008包括一进程排序器(它可接收诸如按下按键之类的多种事件以执行多种动作)并包含有自己的调度程序以管理来自不同硬件接口的事件队列。引擎4008还对图形和文本的显示进行管理。
引掣4008包括一代码装载程序以便将应用程序4056″装载和下载至译码器的存储器2024。只将必要的代码装进RAM容积4022或FLASH存储器容积4024,以便确保能最佳地使用。一鉴别装置检验下载的数据,以防止对应用程序4056进行任何修改或执行任何未知的应用程序。
引擎4008还包括一解压缩器。由于为节约空间以及从MPEG-2传输流中进行快速下载或通过内置式接收机/译码器模式进行快速下载而对应用程序代码(一和中间代码)进行了压缩,故必须在将上述代码装进RAM之前对该代码进行解压缩。
虚拟机4007还包括一中间代码解释程序,以解释前述应用程序代码,所述中间代码解释程序用进程排序器去更新各个变量的值并确定状态变化;以及,还包括一检错程序。
参照图6,就一个应用程序而言,可将译码器2020的功能“看作是”一设备4060。所以,接收机/译码器2020具有任何应用程序都看不到的功能。
设备4060包括一逻辑设备,它对应于硬件4066的一个组件4062或物理接口4064。这种设备称为“低层设备”4068。设备4068的输出可与至少一个设备驱动程序4070相连,以便将设备4068输出的逻辑信号转换成驱动例如一硬件接口4064所需的信号。另外,设备4068本身可驱动接收机/译码器2020的组件或接口,也就是说,该设备的输出可直接与硬件4066相连。
以下说明低层设备4068的实例。
LCARD设备可使一程序与包含在一智能卡读卡器4036中的智能卡相通信,RCARD设备可使一程序与包含在另一智能卡读卡器4036中的智能卡相通信。例如,这些设备可使一程序去读取智能卡的状态、读取智能卡的历史并将一输入消息传送给智能卡。上述设备还能通知程序将卡插进读卡器、从读卡器中取出卡并在程序未请求的情求下重置卡。LCARD和RCARD设备是用于运行智能卡的协议所专用的。一般使用ISO7816协议。
SCTV设备使一程序去检验和配置通向电视机2022的嵌接式(scart)出口。例如,该设备使一程序去请求有关上述嵌接式出口的声音特征的信息、对该声音执行“MUTE”(静噪)并动态地对RGB进行编程。
TUNER(调谐器)设备使一程序去使用调谐器4028。例如,该设备使一程序从调谐器的最小频率或当前频率开始进行扫描、读取调谐器参数并对调谐器进行编程。
SERIAL(串行)设备使一程序通过串行线路与机器进行通信,PARALLE(并行)设备使一程序通过一并行线路与机器进行通信。例如,上述设备使一程序通过相应的线路发送一消息并通知一程序通过该线路接收一消息。
MODEM(调制解调器)设备使所述接收机译码器通过支持V23的内部半双工调制解调器与数据服务相通信。MODEM设备请求拨叫一号码、将消息传送给数据服务器并断开调制解调器的连接、发出接收一消息的信号、发出进行检错的信号以及发出丢失或检测载体的信号。
在远距离位置运行的远距离设备除了必须要限定端口和协议之外可以是任何的本地设备。
除“低层设备”以外,接收机/译码器2020还可以包括“高层设备”4027,它们可控制接收机/译码器2020的操作。
以下说明高层设备的实例。
MLOAD设备使一应用程序装载来自MPEG位流的与硬件和软件过滤标准相对应的MPEG数据部、完整的MPEG表或一组MPEG数据部。例如,该设备可使一程序仅下载一组MPEG数据部中应用程序任何一次所需要的那些数据部。
FDLOAD设备自动地对通过串行和/或并行端口的文件下载进行管理。该设备可在程序需要时发出开始和结束通过串行和/或并行端口进行文件下载的信号。该设备可向程序请求索引表,所述索引表包括要下载的文件的PID以及该文件的解密PIDECM。程序装载上述索引表并将其传送给所述设备,而该设备则随后请求将文件下载至程序。所述程序从索引表中抽出用于文件的PID和PIDECM并请求进行多路解调以便能完全下载所说的文件。在任何时候程序都可调用“fload_offline”以指令FDLOAD设备停止管理串行和/或并行端口。
用唯一标识“device_id”来标识设备4060。例如,用“LCARD_DEVICE_ID”标识LCARD设备,用“RCARD_DEVICE_ID”标识RCARD设备。
在创建新设备4060时,可通过从广播中心下载相关的应用程序4056″来将该设备安装在现有的接收机/译码器2020内。
用应用程序4056在接收机/译码器2020内进行下载,所述应用程序检查硬件和软件的版本,如果正确的话,就装载代表该新设备4046的软件模块并要求库4058中的一个过程去将新设备的代码安装进(FLASH存储器内的)固件。这就能在不影响其余软件的情况下灵活且可靠地将新功能安装进接收机/译码器2020。
设备管理器4074是应用程序4056和与接收机/译码器2020特定功能有关的设备4060之间的共用接口。通过使用这种共同接口,可用有限数量的过程使存储在运行时间引擎4008的“库”中的允许访问设备4060及与该设备有关的“事件”的过程标准化。设备管理器4074控制对设备4060的访问、声明接收到一意外事件并管理共享的存储器。
有18个过程,它们可访问设备管理器4070、访问设备4060本身或者进行存储器管理。
Device_Open_Channel() 打开通向管理器的信道Device_Close_Channel()关闭通向管理器的信道Device_Open_Device() 打开通向设备的信道Device_Close_Device() 关闭通向设备的信道Device_Event()意外事件管理Device_Call() 同步访问一设备Device_Io() 异步访问一设备Device_Info() 有关一设备的信息Set_Buffer_outline() 限定用于缓冲区的存储器分区Get_Buffer_outline() 读取当前缓冲区的分区Pool_Info() 提供有关当前缓冲区分区的信息Device_Alloc_Buffer() 分配内存Device_Free_Buffer() 释放内存Device_Lock_Buffer() 锁住内存Device_Info_Free_Buffer() 给出释放的缓冲区数量Device_Info_Alloc_Buffer()列出分配后的缓冲区Device_Buffer_Size() 给出分配后的缓冲区大小参照图7,在使用任何设备4060的服务之前,必须将程序(诸如一应用程序脚本)说明为“客户”4076,也就是说,说明为对设备4060或设备管理器4074的逻辑访问方法。所述管理器给客户4076一个在对设备进行访问时都要涉及到的客户号。
设备4060可以有若干个客户4076,根据设备4060的类型来指定用于各设备4060的客户4076的数量。
用过程Device_Open_Channel()4078将客户4076传给设备管理器4068,而设备管理器则用上述过程将客户号赋给客户4076。设备管理器4074输出一“client_id”和“error_code”,所述“client_id”包括变量的地址,所述变量含有分配后的客户号(不应有两个客户有相同的客户号),而所述“error_code”则包括error_code“0”或error_code“e_client_max”,error_code“0”指示业已成功地完成了上述过程,error_code“e_client_max”指示业已达到了设备管理器所能管理的客户的最大数量,客户的最大数量一般为256。
所分配的第一个客户号是0,每次用过程Device_Open_Channel进行调用时都增加1直至达到值255。这一点与从客户列表中删去任何一个客户都无关。在分配了客户号255并且进行了后续的Device_Open_Channel调用时,就输出错误码“e_client_max”以指示客户列表“满”,或者将可用的最小客户号即已从客户列表中删除的一个客户的客户号分配给客户。
为了说明设备4060的客户4076,客户使用过程Device_Open_Device() 4080,以传送其client_id和device_id。如果已成功地完成该过程,设备管理器就输出一错误消息“0”,如果客户不存在,设备管理器就输出“e_client_inconnu”,如果设备不存在,设备管理器就输出“e_periph_inconnu”,如果已向设备说明了设备,设备管理器就输出“e_client_max”或“w_deja_vu”。
可用过程Device_Close_Device()从用于设备4060的列表中删除客户4076。将client_id和device_id输入给设备管理器,如果已成功地完成该过程,设备管理器就输出error_code“0”,如果对设备管理器来说客户是未知的,设备管理器就输出error_code“w_client_inconnu”,如果对设备管理器来说设备是未知的,设备管理器就输出error_code“w_periph_inconnu”。
可用过程Device_Close_Channel() 从用于设备管理器4074的列表中删除客户4076。将client_id输入给设备管理器,如果已成功地完成该过程,设备管理器就输出error_code“0”,如果对设备管理器来说客户是未知的,设备管理器就输出error_code“w_client_inconnu”。这一过程从设备管理器4074的列表以及各设备4060的列表中删除客户,所删除的客户是设备4060的客户,也就是说,如果应用程序未这样做,Device_Close_Channel()过程就为所删除的那个客户是其客户的各个设备调用该Device_Call_Device()过程。然后可用Device_Open_Channel()过程将用前述过程释放的客户号分配给新的客户。
过程“Device_Info()”将有关设备4060的信息提供给客户4076。将client_id和device_id输入给设备管理器4074,该设备管理器会将有关上述设备的信息一般是设备的版本、用于该设备的最大客户数、以及实际使用该设备的客户数连同error_code返回给客户,所述error_code指示业已完成了上述过程或者对设备管理器4074来说客户或设备是未知的。
过程“Device_Event()”是用于管理“意外事件”即出现了特定情况或意外的方式。Device_Event()过程能使一客户明确来自一设备的意外事件的接收机。
将称为“事件”的用于应用程序的消息放进引擎4008的例如五个队列中的一个。这些队列中的每一个队列对应于优先级0至4(4=最大优先级,0=最小优先级)。
在从上述队列中抽出消息以传给一应用程序时,引擎4008就搜索包含有一事件的具有最高优先级的队列。从所述队列中删除该事件并用该事件启动预定的进程排序器。
所有的“外部”事件,不管是用键盘输入给显示函数的事件还是经接口接收的事件,均在被引擎4008处理之前传送经过一事件接口。但是,一般由内部设备产生的任何内部事件均不经过所说的事件接口而是直接传给引擎4008。
对各个过程来说,最后一个调用参数是要用设备管理器所设置的变量的地址,它指示设备管理器是如何对命令进行处理的。
将一意外事件发送给客户的原因取决于设备4060。例如,就设备LCARD DEVICE而言,意外事件包括
将卡从读卡器中撤出;将卡插进读卡器;或者客户对卡进行重置。
用相应的唯一事件代码(分别是“ev_lcard_extract”、“ev_lcard_insert”和“ev_card_reset”)来表示上述各个事件。
为了接收意外事件,客户必需将自身说明为希望用过程“device_event”来接收的各事件的接收机。将以下参数输入给设备管理器client_id;device_id;称为“get_event”的命令,它能发送一意外事件;事件代码;以及事件优先级,它在0至4之间。
若干个设备可按相同或不同优先级接收相同的意外事。在这种情况下,按特定的次序(按优先级和客户号)将事件发送给各个客户。
例如,客户2按优先级2将自身说明为是来自LCARD设备的事件ev_lcard_extract的接收机。客户3按优先级2将自身说明为是上述事件的接收机,客户1按优先级4将自身说明为是上述事件的接收机,客户4按优先级3将自身说明为是上述事件的接收机。如果将卡撤出读卡器,就会出现下述事件序列将传给客户1的事件ev_lcard_extract放在运行时间引擎4008的对应于优先级4的队列内;将传给客户4的上述事件放在运行时间引擎4008的对应于优先级3的队列内;将传给客户2的上述事件放在运行时间引擎4008的对应于优先级2的队列内;将传给客户3的上述事件放在运行时间引擎4008的对应于优先级2的队列内。
就某些设备而言,缓冲区可能会与意外事件有关。在这种情况下,该设备可通过设备管理器4068来分配这种缓冲区。
在应用程序编程语言中,一个过程可访问与事件有关的参数event_code;
clent_id;evt_paraml(一般具有4字节的大小);以及evt_param2(一般具有2字节的大小)。
evt_param参数的精确含义取决于设备以及传送事件的原因。缓冲区与意外事件的关联取决于设备。如果存在着关联,evt_paraml就对应于相关缓冲区的数据区地址。如果不存在缓冲区,仍会发送事件但将evt_paraml设置为“0”。
如果设备具有与意外事件相关联的缓冲区,从设备列表或从设备管理器列表中删去客户会导致释放缓冲区,除非是应用程序用过程“Device_Lock_Buffer”“锁住”的缓冲区。
evt_param2表示业已成功地完成了所说的过程并且设备已获得了结果。
客户可用代替命令“get_event”的命令“ret_event”来停止接收任何的意外事件。
设备管理器4074可使客户4076按两种方式即“同步访问”或“异步访问”对设备4060进行访问。
使用过程“Device_Call”的同步访问是一种访问设备专有功能的方法,该方法不包括将来自设备的响应放到运行时间引擎4008的队列内;所说的响应可以立即获得。一般地说,在配置接收机/译码器2020的硬件接口时使用上述过程。
客户可利用上述过程通过设备管理器将下列参数输入给设备client_id;device_id;“call_cmde”,它包括要由设备执行的操作类型。例如,就允许程序通过串行链路与机器进行通信的SERIAL设备而言,命令“seral_setup”可形成串行链路的配置;“em_adr”,它包括输入数据的存储单元的地址;“rec_adr”,它包括设备必须将输出数据写至的存储单元的地址。
一旦完成了客户所请求的操作,设备就输出“call_report”,它包括一运行情况报告。call_report一般包括可发给客户的预定数量的报告中的一个。设备管理器4074将error_code发给客户4076,error_code一般包括下列内容之一e_client_inconnu;e_periph_inconnu;“e_cmde_inconnu”,它将命令是未知的通知给客户;“e_report_periph”,它是设备专有的错误;以及“0”,它指示已成功地完成了所说的过程。
在接收到error_code“0”时,所述设备仅将输出数据写至参数“rec_adr”所标识的存储单元的地址。
Device_call会阻止所有的其它应用程序直至所述设备完成了运行。
使用过程“Device_Io”的异步访问是一种访问设备专有功能的方法,该方法包括等待一个响应。例如,就SERIAL设备而言,命令“seral_send”通过串行线路发送消息。在成功地传送了所有数据之后(在搜索了任何预置的“超时”参数之前),所述设备向程序发报告。在可获得这一报告时,就将事件放进引擎4008的队列中,以通知事件到达。
客户可利用上述过程通过设备管理器将下列参数输入给设备client_id;device_id;“io_cmde”,它包括要由设备执行的操作类型;与上述操作结束有关的事件代码;与事件有关的事件优先级;em_adr,以及;rec_adr。
一旦完成了客户所请求的操作,设备就输出“io_report”,它包括一运行情况报告。
io_report一般包括可发给客户的预定数量的报告中的一个、以及与事件有关的两个报告(“e_not_periph”和“0”,“e_not_periph”指示客户还不能使用所请求的信息,“0”指示可以使用所请求的信息))中的一个。
一旦接收到报告“0”,设备管理器就将error_code发给客户4076,error_code一船包括下列内容之一
e_client_inconnu;e_periph_inconnu;e_cmde_inconnu;“e_cmde_inconnue”,它指示事件代码是未知的;“e_priorite_inconnue”,它指示优先级是未知的;e_report_periph;0。
应该认识到,以上完全是以举例的方式来说明本发明的,在本发明的范围内可对细节进行改进。
可独立地或以任何适当的组合形式来提供本说明书以及(在适当情况下)权利要求和附图中公开的各个特征。
在上述最佳实施例中,用计算机软件实现了本发明的某些特征。但是,对专家来说当然是很清楚,均可用硬件来实现这些特征中的任何一个。此外,应该认识到,可用电或类似的信号来实现用硬件、计算机软件或类似手段所实现的功能。
交叉引用了我们的共同未决的各个申请,所有这些申请都有相同的提交日期,这些申请题为“信号产生与广播”(代理人文档号PC/ASB/19707),“供加密广播信号的接收机使用的智能卡和接收机”(代理人文档号PC/ASB/19708),“广播和接收系统以及其条件接入系统(代理人文档号PC/ASB/19710),“从发射机通过接收机/译码器下载计算机文件到计算机”(代理人文档号PC/ASB/19711),“电视节目和其它数据的传送和接收”(代理人文档号PC/ASB/19712),“下载数据”(代理人文档号PC/ASB/19713),“计算机存储器组织”(代理人文档号PC/ASB/19714),“电视或无线电控制系统的开发”(代理人文档号PC/ASB/19715),“从所发送的数据流中提取数据段(代理人文档号PC/ASB/19716),“访问控制系统”(代理人文档号PC/ASB/19717),“数据处理系统”(代理人文档号PC/ASB/19718),“广播和接收系统及其接收机/译码器和遥控器”(代理人文档号PC/ASB/19720)。本文引用了这些文件的内容。上述申请文件清单包括了本申请。
权利要求
1.一种通过程序对一计算机系统的至少一个组件进行访问的方法,所述方法包括下列步骤将与各个相应组件有关的逻辑设备存储在上述系统中,所述各逻辑设备具有相应的设备标识;将一程序标识赋给上述程序;以及从上述程序中将一包括上述程序标识和各逻辑设备的设备标识的信号输出给一位于所述程序与各逻辑设备之间的共用接口,以通过上述接口形成前述程序与各逻辑设备的通信信道。
2.如权利要求1的方法,其特征在于,所述信号还包括一命令,它能使所述程序接收一输出自相应逻辑设备的消息,该消息指示与所述逻辑设备相关的组件的状态变化。
3.如权利要求2的方法,其特征在于,可将上述消息暂时存储在上述计算机系统的排队装置中,以便以后传给所说的程序。
4.如权利要求3的方法,其特征在于,所述排队装置包括多个队列,每个队列均具有相应的优先级,该优先级指示将消息从上述排队装置传给所述程序的次序,并且,所述信号还包括将前述消息暂时存储于其中的队列的优先级。
5.一种用上述任何一个权利要求的方法通过多个程序对一计算机系统的至少一个组件进行访问的方法,各个程序通过前述接口来访问所述的组件。
6.一种在程序与计算机系统组件之间传送数据的方法,该方法包括下列步骤用上述权利要求1的方法通过程序对所述组件进行访问;以及随后从上述程序中将一包括上述程序标识和逻辑设备的设备标识的信号输出给一共用接口,将指令一组件通过与之相关的逻辑设备来进行操作的命令、要由所述逻辑设备输入给前述组件的数据的地址、以及用于由上述组件输出给上述逻辑设备的数据的地址输出给前述共用接口。
7.一种在程序与计算机系统组件之间传送数据的方法,该方法包括下列步骤用上述权利要求4的方法通过程序对所述组件进行访问;以及随后从上述程序中将一包括上述程序标识和逻辑设备的设备标识的信号输出给一共用接口,将指令一组件通过与之相关的逻辑设备来进行操作的命令、在传给所述程序之前其中暂时存储有一消息的队列的优先级、要由所述逻辑设备输入给前述组件的数据的地址以及用于由上述组件输出给上述逻辑设备的数据的地址输出给前述共用接口,所说的消息是从相应逻辑设备中输出的并指示与所述逻辑设备相关的组件的状态变化。
8.如前述任何一个权利要求的方法,其特征在于,可通过一组件将前述程序和/或各个逻辑设备输入给上述计算机系统。
9.如前述任何一个权利要求的方法,其特征在于,所述各个组件均包括MPEG流调谐器、串行接口、并行接口、调制解调器和智能卡读卡器中的至少一个。
10.一种基本上如前所述的通过程序对计算机系统的至少一个组件进行访问的方法、或在程序与计算机系统组件之间传送数据的方法。
11.一种用于通过程序对计算机系统的至少一个组件进行访问的设备,与各相应组件相关的逻辑设备存储在上述系统内,所述各逻辑设备具有相应的设备标识,前述设备包括用于将一程序标识赋给所述程序的装置;以及用于根据输出自前述程序并包括上述程序标识和各逻辑设备的设备标识的信号来形成所述程序与各逻辑设备之间的通信信道的装置。
12.如权利要求11的设备,其特征在于,所述设备还包括用于使所述程序接收一输出自相应逻辑设备的消息的装置,所述消息指示与所述逻辑设备相关的组件的状态变化。
13.如权利要求11的设备,其特征在于,所述计算机系统还包括排队装置,它用于暂时存储由前述逻辑设备输出的消息以便以后传给所说的程序。
14.如权利要求11的设备,其特征在于,上述排队装置可包括多个队列,每个队列均具有相应的优先级,该优先级指示将消息从上述排队装置传给所述程序的次序。
15.如权利要求11至14的设备,其特征在于,所述计算机系统还包括这样的装置,它用于将由前述逻辑设备输入给所述组件的数据以及由所述组件输出给前述逻辑设备的数据存储至所说的共用接口。
16.如权利要求11至15的设备,其特征在于,所述各个逻辑组件通过设备驱动程序与相应的相关组件相连。
17.一种用于接收广播节目信号的接收机/译码器,它包括如权利要求11至16的设备。
18.如权利要求17的接收机/译码器,其特征在于,所述接收机/译码器还包括用于接收压缩的MPEG信号的装置、用于对接收到的信号进行译码以提供电视信号的装置、以及用于将所述电视信号提供给电视机的装置。
19.基本上如本文参照附图所述的设备或接收机/译码器。
全文摘要
提供了一种访问控制系统以及一种通过程序对计算机系统的至少一个组件进行访问的方法。所述方法包括下列步骤:将与各个相应组件有关的逻辑设备存储在上述系统中,所述各逻辑设备具有相应的设备标识;将一程序标识赋给上述程序;以及,从上述程序中将一包括上述程序标识和各逻辑设备的设备标识的信号输出给一位于所述程序与各逻辑设备之间的共用接口,以通过上述接口形成前述程序与各逻辑设备的通信信道。
文档编号G06F11/08GK1260056SQ97182171
公开日2000年7月12日 申请日期1997年4月25日 优先权日1997年3月21日
发明者J-C·萨尔法蒂, J·梅里克, C·德克莱克 申请人:卡纳尔股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1