一种基于时间基准的ci接口数据传输方法

文档序号:7621040阅读:195来源:国知局
专利名称:一种基于时间基准的ci接口数据传输方法
技术领域
本发明涉及数字电视系统,特别是涉及一种基于时间基准的CI接口数据传输方法。
背景技术
目前,多采用简单的消息机制来实现系统各模块之间的数据通讯。采用CI(Common Interface,公共接口)技术后,数字电视接收主机和外部解扰模块需要通过一个CI协议栈完成命令接口上的消息的传递,同时外部解扰模块的处理速度和机制可能和主机端有所差别。
CI接口是一种为了实现机卡分离技术所定义的传输接口和协议,包括命令接口和TS(Transport Stream,传输流)流接口,其中命令接口尤为复杂,是一种基于协议栈的程序结构。在机卡分离系统中,采用数字电视接收主机和外部解扰模块彼此独立,通过CI接口传递数据进行工作。主机将未解扰的TS流通过TS接口传递到解扰模块,同时数字电视接收主机和解扰模块通过命令接口进行通讯,交换解扰信息,解扰模块把解扰后的TS流通过TS接口传回主机。其中关键信息之一是由主机提供的CA(Conditional Access,条件接收)PMT(Program Map Table,节目映射表)信息,该信息由主机的SI(ServiceInformation,业务信息)信息处理程序模块从PAT(Program Association Table,节目关联表)中提取,并通过CI协议栈发送到命令接口。解扰模块在收到CAPMT信息后才可以实时分析和提取出码流中的ECM信息(Entitlement ControlMessage,授权控制信息),进而结合EMM(Entitlement Management Message,授权管理信息)信息得出对应当前节目、当前时间的解扰控制字。由于解扰控制字是不断变化的,保证ECM信息的实时性是保证解扰过程稳定的重要环节。根据协议,主机必须在PMT信息发生变化(包括版本变化、用户节目选择变化等情况)时,及时发出更新后的CA PMT信息,对时效性要求较高。当用户连续切换节目,或PMT信息由于某些原因连续发生变化,解扰模块端若连续收到主机端的信息,由于两者的处理速度和消息处理机制的差异,容易导致信息的冗余和接收错误。一般可以采用设置多个状态标志位和状态机结构的方法使最终发送的数据是最新的,减少冗余,同时在数据发出后严格控制后面数据发送的间隔,保证解扰模块的数据处理时间。但是这样程序实现比较复杂。

发明内容
本发明所要解决的技术问题在于提供基于时间基准的CI接口数据传输方法,用于解决现有消息机制时效性较低、可靠性不高及程序结构实现较为复杂等问题。
为了实现上述目的,本发明提供了一种基于时间基准的CI接口数据传输方法,适用于数字电视系统,所述数字电视系统包括数字电视接收主机、解扰模块,所述数字电视接收主机与所述解扰模块通过一CI接口建立通信,其特征在于,所述数字电视接收主机接收一含有时间基准的消息数据,并从该消息数据中提取所述时间基准;通过比较所述时间基准与所述数字电视接收主机当前的时间基准比较变量,并根据所述数字电视接收主机的当前数据处理状态标志位,从而通过所述CI接口有效控制所述数字电视接收主机与所述解扰模块之间的数据传输。
所述的基于时间基准的CI接口数据传输方法,其中,所述时间基准通过一时间基准获取函数获得,其中所述时间基准获取函数为所述数字电视接收主机具有时间计数器功能的底层函数。
所述的基于时间基准的CI接口数据传输方法,其中,所述数据处理状态标志位包括空闲、数据处理中。
所述的基于时间基准的CI接口数据传输方法,其中,进一步包括步骤41、若所述时间基准小于所述时间基准比较变量,则当前处理的消息数据比所述消息数据的版本更新,不处理所述消息数据,等待接收消息数据;步骤42、若所述时间基准大于所述时间基准比较变量,则所述消息数据比当前处理消息数据的版本更新,所述时间基准比较变量更新为所述时间基准。
所述的基于时间基准的CI接口数据传输方法,其中,所述步骤42中,当所述数据处理状态标志位为空闲时,进一步包括一对所述消息数据进行提取和协议层逐层打包生成数据包的步骤。
所述的基于时间基准的CI接口数据传输方法,其中,在所述对消息数据进行提取和协议层逐层打包生成数据包的步骤中,所述数据处理状态标志位设置为数据处理中。
所述的基于时间基准的CI接口数据传输方法,其中,若所述数字电视接收主机又接收到新的消息数据,则进一步包括一比较所述新的消息数据中的时间基准与所述时间基准比较变量的步骤。
所述的基于时间基准的CI接口数据传输方法,其中,若所述新的消息数据中的时间基准大于所述时间基准比较变量,则消息数据已经更新,清空当前消息数据;若所述新的消息数据中的时间基准小于所述时间基准比较变量,则没有新的消息数据更新,并准备发送所述数据包至所述解扰模块。
所述的基于时间基准的CI接口数据传输方法,其中,所述时间基准比较变量更新为所述新的消息数据中的时间基准。
所述的基于时间基准的CI接口数据传输方法,其中,在发送所述数据包至所述解扰模块之前,进一步包括一比较当前时间基准与上一次数据包发送时的时间基准的步骤,其中所述当前时间基准为所述数据包准备发送时的时间基准,其通过调用所述时间基准获取函数得到。
所述的基于时间基准的CI接口数据传输方法,其中,若所述当前时间基准与上一次数据包发送时的时间基准的差值满足一设定的发送时间间隔,则通过所述CI接口发送数据包至所述解扰模块,且所述上一次数据包发送时的时间基准更新为所述当前时间基准;若所述当前时间基准与上一次数据包发送时的时间基准的差值不满足该设定的发送时间间隔,则进行延时发送数据包。
所述的基于时间基准的CI接口数据传输方法,其中,所述延时的时间通过对时间基准进行运算获得。
本发明提供的基于时间基准的方式,可以有效解决数字电视接收主机端和解扰模块端通过命令接口传递消息的时效性问题;减少软件结构的复杂程度;采用消息时间基准方法,还可以很方便的根据解扰模块和主机处理数据的速度差异,进行延时发送,减少信息冗余和提高可靠性。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。


图1为现有技术中的消息传递流程图;图2为本发明的消息传递流程图。
具体实施例方式
现有的消息传递机制在消息处理程序模块中,不能有效通过消息里的数据来判断消息的时效性。在连续收到某个同类消息时无法简单快速的做出响应,容易造成数据的冗余。一般在收到各个模块发来的消息后,只能通过消息标识来识别同一通道的消息类别,对于同一类别信息的实时性只能通过采用设置多个状态标志位和状态机结构来减少数据冗余。
在基于CI接口的机卡分离数据传输中,主机端向解扰模块端的数据传递也多采用消息来发送。由于主机端和解扰模块端处理速度上的差异,需要考虑到主机端由于用户操作或其他原因,连续的向解扰模块端发送数据,解扰模块端由于处理能力的限制,可能不能及时处理数据,导致数据冗余。一般可以采用设置多个状态标志位和状态机结构的方法使最终发送的数据是最新的,减少冗余,同时在数据发出后严格控制后面数据发送的时间间隔,保证解扰模块的数据处理时间。但是这样程序实现又比较复杂。
作为一种数据传输方法,本发明提出的基于时间基准的方式是在消息传递机制的基础上,增加一个与系统时间相关的时间基准,本发明基于时间基准的消息处理机制可以有效解决上述问题。
本发明的主要内容是时间基准可以根据一个基于系统时间的函数获得,且时间基准可以精确到毫秒级别。在消息产生时,调用该基于系统时间的函数,获得一个与时间相关的时间基准,直接将该时间基准插入到消息中和消息一起发送;在消息接收时,消息接收函数从消息中提取该时间基准,因该时间基准是与时间相关联的,将其与接收到的上一个消息的时间基准比较,可以方便、容易判断消息数据的时效性。
处理数据之前,将时间基准保存为新的基准比较量。若在处理数据期间又收到了新的消息,通过消息的时间基准和该基准比较量的比较,可以得知数据是否又发生了更新。如果时间基准大于该基准比较量,说明在数据未发出前已经发生了更新,于是丢掉旧数据,开始处理新的数据并发送。
针对解扰模块处理速度上和主机端的差异,根据时间基准方便的实现控制数据发送时间间隔的功能。在通过CI命令接口发出一段数据后,记下当时的时间基准,在下一个数据包待发送时,比较当前时间基准和上一次数据包发送的时间基准之差;如果满足一设定的值,表示时间间隔满足要求可以发送数据包;如果不满足该设定的值,表示需要延时,延时的具体时间可由时间基准的某种运算来获得。
图1所示为现有技术中的消息传递流程图;当用户快速的连续切换节目频道,主机中负责收集当前节目信息的程序模块会连续发送相关的CA PMT信息。这些信息通过协议栈的层层打包,才能顺利发送到解扰模块端,在上一个信息还未处理完就又收到新的更新了的信息,原则上在收到更新数据后应该立刻丢弃上一个老版本信息,马上处理新的信息,但是由于消息中没有简单判断消息时效性的数据,必须通过复杂状态标志位的判断和设置才能完成这一操作。
该流程图包括如下步骤步骤101,数字电视接收主机在接收数据收到一个消息数据时,读取一次状态位,判断当前是否有数据还未发出,若当前没有数据还未发出,则进行步骤102,若当前有数据还未发出,则进行步骤105;步骤102,若当前状态标志位处于“空闲”,则设置发送状态标志位为“数据处理中”;步骤103,将收到的消息数据导入缓存进行数据处理,并进行数据打包;步骤104,上述收到的消息在数据处理过程中,设置周期性的读取当前状态标志位,并比较状态标志位,若当前状态标志位处于“空闲”,则执行步骤109;若数据已经更新,则执行步骤107;步骤105,若有新的消息到来,根据当前状态标志位获知有数据还未处理完毕,则设置发送状态标志位为“数据更新”状态;步骤106,保存数据,等待发送,并转入步骤108;步骤107,调用一个丢弃当前数据并清空缓存的函数清空当前数据初始化到上一状态,并设置发送状态标志位为“空闲”;步骤108,比较状态标志位,判断当前状态是否处于“空闲”状态;若处于“空闲”状态,则执行步骤103;若不处于“空闲”状态,又有新的消息到来,这时读取状态位得知有数据还未处理完,设置发送状态标志位为“数据更新”,并执行步骤106;步骤109,通过CI接口发送数据包至解扰模块;步骤110,在数据包发送之后,设置发送状态标志位为“空闲”;步骤111,为了保证对数据包的发送时间间隔要求,强制延时一段时间再进行数据包的发送。
上述过程中,如果连续发生了数据更新,其过程将比所述过程更为复杂些。
上述通过状态标志位的反复读取和设置来达到数据时效性控制的方法存在的缺点效率较低、代码较复杂、可靠性不高;强制延时容易造成数据冗余;不能及时返回消息接收状态。
图2所示为本发明的消息传递流程图;本发明采用基于时间基准的数据传输处理方法使得程序的复杂度得到大幅度改善。在消息中插入一个消息生成时的时间基准值,接收时直接通过这个时间基准进行比较判断,快速准确的保证消息的时效性。
时间基准可以理解为一个与系统时间相关的数值,其值可以精确到毫秒级或更小。在CI接口数据传输的应用中,时间基准是通过调用一个获取函数来得到的。该获取函数的具体实现是在基于VxWorks实时操作系统中,底层函数可以提供一个系统时间计数器的功能,通过对该系统时间计数器的实时读取就可以得到一个与当前系统时间相关的值,再经过一些便于应用的数据变化,将该计数值转变为本发明需要的时间基准。
在基于不同的硬件系统和操作系统的情况下,可以用不同的方式来获得时间基准。基于ARM并采用VxWorks实时操作系统的程序中,该获取函数是通过从ARM的一个寄存器中读取相关计数器值来获取时间基准的。以下是基于ARM1022E处理器和VxWorks实时操作系统的具体程序和说明。
在ARM中有Timer Value寄存器,其功能是“当前消耗时间计数器”。
首先需要设置好Timer Control寄存器,使计数器进入工作状态;通过读取这个Timer Value 32位寄存器可以得到一个数值(记为clk_count);nsec=(clk_count*1000000000)/SYS_TIMER_CLK;
时间基准(精确到毫秒级)=nsec/1000000;其中SYS_TIMER_CLK为系统时钟频率,为固定数值,其因具体硬件和软件环境而不同。
通过上面所述,实际上时间基准的获取依赖一个系统时间计数机制。通过和时钟频率的相关运算,可以得到一个只与时间有关的数值;再对这个数值进行与精确级别相关的运算,就能得到满足要求的时间基准值。
时间基准的获取函数实现方式是多样的,不同的硬件和软件环境下,获取方式也是不同的。既可以通过硬件寄存器提供计数机制,也可以用纯软件的方式来提供计数机制。可视具体的应用需要和开发环境确定时间基准的获取函数的实现方式。
该流程图包括如下步骤步骤201,接收消息数据,并提取消息数据中的时间基准;步骤202,将该时间基准与当前的“时间基准比较变量”相比较若小于该当前的“时间基准比较变量”,则说明消息已经过期,当前处理的数据比发送来的数据版本更新,于是回到接收消息状态,不对收到的数据进行处理;若大于该当前的“时间基准比较变量”,则表示收到了新的数据;步骤203,将消息中的时间基准赋值给该当前的“时间基准比较变量”,作为当前所处理消息的比较基准;步骤204,读取数据处理状态标志位若为“数据处理中”状态,则转回至程序初始位置,等待状态空闲后进行处理;若为“空闲”,则对数据进行提取和协议层逐层打包,并把状态标志位设置为“数据处理中”。
步骤205,在数据处理过程中,若有新的数据发送过来,将消息中的时间基准赋值给该“时间基准比较变量”,并保持数据准备进行处理;在数据打包结束之后,完成发送数据包到解扰模块的待发准备工作之前,进行一次比较时间基准若发现数据已经更新,则执行步骤210,若没有新的数据更新,则执行步骤206;在上述数据处理过程中,根据数据处理量判断是否需要可以插入一些时间基准的比较;步骤206,完成发送数据包到解扰模块的待发准备工作;步骤207,在完成数据包发送准备工作之后,在数据包发送至解扰模块之前,进行一次时间基准比较;该比较在发送时调用时间基准获取函数,获得本次消息准备发送时的当前时间基准A,将该当前时间基准A和上一次数据包发送时保存的时间基准B进行比较若A-B值满足一设定的发送时间间隔,则执行步骤208,并将A赋值给B;若不满足该设定的发送时间间隔,则进行延时,返回至步骤206;步骤208,通过CI接口发送数据包到解扰模块;步骤209,记录新的实际发送的时间基准,用于下次时间基准的比较;步骤210,若发现数据已经更新,则调用一个丢弃当前数据并清空缓存的函数清空当前数据,并返回至程序初始位置,开始处理保持中的更新数据。
适用本发明解决的问题具有如下特征数据处理需要的时间和步骤较为复杂,而且需要在不同模块间传递消息和数据;需要及时对收到的数据进行识别判断,并需根据时效性进行处理;有可能连续收到更新数据的消息,容易发生数据冗余。
此外,用户切换节目,从用户交互程序模块发送到数字电视系统的节目管理模块,再发送到频道控制模块,该过程再返回至用户交互程序模块,这时就可以方便的通过消息的时间基准值来判断收到的响应是否和发送时匹配。
因为时间基准在消息发送时产生,并一直随着消息的传递而传递。如果消息在传递过程中发生了异常,导致数据丢失或其他异常动作,这个消息有可能就被丢弃了,后面的消息继续传送;如果同一类消息发送了几次,那么就可以通过响应中的时间基准判断是否是预期消息返回的响应。
综上所述,采用基于时间基准的数据传输机制大大简化了程序流程;与系统时间相关联的时间基准可以精确到毫秒级或更高级别;利用系统时间计数器可方便得到某一个动作发生时的时间基准;该时间基准不仅能在CI接口消息的处理上使用而使程序简化,提高程序可靠性,而且可以应用到许多对实时性要求高,且容易产生数据冗余的地方。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种基于时间基准的CI接口数据传输方法,适用于数字电视系统,所述数字电视系统包括数字电视接收主机、解扰模块,所述数字电视接收主机与所述解扰模块通过一CI接口建立通信,其特征在于,所述数字电视接收主机接收一含有时间基准的消息数据,并从该消息数据中提取所述时间基准;通过比较所述时间基准与所述数字电视接收主机当前的时间基准比较变量,并根据所述数字电视接收主机的当前数据处理状态标志位,从而通过所述CI接口有效控制所述数字电视接收主机与所述解扰模块之间的数据传输。
2.根据权利要求1所述的基于时间基准的CI接口数据传输方法,其特征在于,所述时间基准通过一时间基准获取函数获得,其中所述时间基准获取函数为所述数字电视接收主机具有时间计数器功能的底层函数。
3.根据权利要求2所述的基于时间基准的CI接口数据传输方法,其特征在于,所述数据处理状态标志位包括空闲、数据处理中。
4.根据权利要求3所述的基于时间基准的CI接口数据传输方法,其特征在于,进一步包括步骤41、若所述时间基准小于所述时间基准比较变量,则当前处理的消息数据比所述消息数据的版本更新,不处理所述消息数据,等待接收消息数据;步骤42、若所述时间基准大于所述时间基准比较变量,则所述消息数据比当前处理消息数据的版本更新,所述时间基准比较变量更新为所述时间基准。
5.根据权利要求4所述的基于时间基准的CI接口数据传输方法,其特征在于,所述步骤42中,当所述数据处理状态标志位为空闲时,进一步包括一对所述消息数据进行提取和协议层逐层打包生成数据包的步骤。
6.根据权利要求5所述的基于时间基准的CI接口数据传输方法,其特征在于,在所述对消息数据进行提取和协议层逐层打包生成数据包的步骤中,所述数据处理状态标志位设置为数据处理中。
7.根据权利要求6所述的基于时间基准的CI接口数据传输方法,其特征在于,若所述数字电视接收主机又接收到新的消息数据,则进一步包括一比较所述新的消息数据中的时间基准与所述时间基准比较变量的步骤。
8.根据权利要求7所述的基于时间基准的CI接口数据传输方法,其特征在于,若所述新的消息数据中的时间基准大于所述时间基准比较变量,则消息数据已经更新,清空当前消息数据;若所述新的消息数据中的时间基准小于所述时间基准比较变量,则没有新的消息数据更新,并准备发送所述数据包至所述解扰模块。
9.根据权利要求8所述的基于时间基准的CI接口数据传输方法,其特征在于,所述时间基准比较变量更新为所述新的消息数据中的时间基准。
10.根据权利要求9所述的基于时间基准的CI接口数据传输方法,其特征在于,在发送所述数据包至所述解扰模块之前,进一步包括一比较当前时间基准与上一次数据包发送时的时间基准的步骤,其中所述当前时间基准为所述数据包准备发送时的时间基准,其通过调用所述时间基准获取函数得到。
11.根据权利要求10所述的基于时间基准的CI接口数据传输方法,其特征在于,若所述当前时间基准与上一次数据包发送时的时间基准的差值满足一设定的发送时间间隔,则通过所述CI接口发送数据包至所述解扰模块,且所述上一次数据包发送时的时间基准更新为所述当前时间基准;若所述当前时间基准与上一次数据包发送时的时间基准的差值不满足该设定的发送时间间隔,则进行延时发送数据包。
12.根据权利要求11所述的基于时间基准的CI接口数据传输方法,其特征在于,所述延时的时间通过对时间基准进行运算获得。
全文摘要
本发明公开了一种基于时间基准的CI接口数据传输方法,适用于数字电视系统,包括数字电视接收主机、解扰模块,数字电视接收主机与解扰模块通过CI接口建立通信,其中,数字电视接收主机接收含有时间基准的消息数据,并从该消息数据中提取时间基准;通过比较时间基准与数字电视接收主机当前的时间基准比较变量,并根据数字电视接收主机的当前数据处理状态标志位,从而通过CI接口有效控制数字电视接收主机与解扰模块之间的数据传输。本发明解决了主机端和解扰模块端通过命令接口传递消息的时效性问题;减少了软件结构的复杂程度;还可以根据解扰模块和主机处理数据的速度差异,进行延时发送,减少信息冗余和提高可靠性。
文档编号H04L12/28GK1913622SQ20051008621
公开日2007年2月14日 申请日期2005年8月8日 优先权日2005年8月8日
发明者吴宏涛 申请人:乐金电子(中国)研究开发中心有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1