专利名称:条件访问信息的装置的制作方法
技术领域:
本发明涉及处理来自一个视频信号包的节目组元数据包的一种装置,特别地涉及检测用户为赋权信息条件地访问包有效负载的电路。
从例如美国专利第5,168,356号和美国专利第5,289,276号的文件中得知,以包的形式传输压缩的视频信号、并对各个包提供差错保护/校正的措施是非常有利的。前述专利中的系统传输和处理来自各个传输频道的单个电视节目,尽管是和多个节目组元一起。这些系统利用逆传送处理器提取各个节目的视频信号组元,用来进一步处理以设置用于再现的视频组元。
从例如由英国快捷电视发行的一本关于卫星的书《卫星电视理论和实践大全》(The Satellite Book,A Complete Guide to Satellite TV Theory andPractice,Swift Television Publication,17Pittsfield,Cricklade,WiltsEngland)获知,利用信号加扰技术能把传送电视信号的接收限制在特定的用户上。这种限制依广播者的意愿可以利用周期性地传送不同的加密数据而改变。这种加密数据可由一种智能卡来处理,这种智能卡放置在各个接收机上,以便产生解密或解扰的密匙。解密或解扰密匙只在那些有权重现相应节目内容的接收机的解密或解扰设备中使用。在前面提到的这种类型的数据包传输的视频系统中,加密数据可包含在特定包中,这种特定包可被识别为含有可以被智能卡电路容易访问的数据。
一个大范围的广播系统,如一个面向北美的直播卫星系统,拥有大量的用户。这个数量如此之大以致妨碍在很短时间内改变特定接收机的加密数据。例如,考虑一下,假定运动比赛的门票卖不出去时,一个广播电台被要求屏蔽运动场附近的一个区域,这个信息在赛事发生以前是不提供的。当然在作出屏蔽本地区的决定前,广播电台希望等待到最后可能的一个分钟。本发明提供了一种方法和装置,借助对加密数据分层以提供在短时间内拒绝给予接收节目内容的权利。
本发明是一种分层加密数据的传送或接收的系统和方法。一个接收机实施例包括一个包传输处理器,用来挑选具有有效负载的包,有效负载包括一个条件访问的有效负载的首标和一个用于加密数据的有效负载的保留部分。每个有效负载首标包括以一种方式编码的字节组,该方式允许或不允许各个接收机处理加密数据。一个以一个用户特定条件访问码字预编程的条件访问滤波器检查条件访问首标的各个字节组是否与用户特定条件访问码字相匹配。只有当发生匹配时,处理器才允许处理加密数据。
结合附图描述本发明,其中
图1是复合电视信号包的时间分配的图形表示。
图2是各个信号包的图形表示。
图3是实现本发明的一个接收机的方框图,该接收机用来选择和处理复合成分信号包。
图4是一个条件访问滤波或起始码检测器的方框图。
图5是一个条件访问滤波器操作的流程图。
图6是另一个条件访问滤波器的方框图。
图7是一个示范的存储管理电路的方框图,这个电路可用于图3中的单元17。
图8是显示形成服务通道数据的存储地址的图形表示。
图9是存储地址控制操作的流程图。
图1显示了由一串小方块表示的信号包流,这些方块代表包含众多个不同电视或交互电视节目的组元的信号包。假设这些节目组元采取压缩数据的形式并且象这样的各个图象的视频数据的数量是可变的。这些包的长度是固定的。具有如标注之类字符的包代表单一节目的组元。例如,Vi,Ai,Di代表视频、音频和数据包,并且指定为V1、A1、D1的包代表1号节目的视频、音频和数据组元,V3、A31、A32,D3代表3号节目的视频、第一音频、第二音频和数据组元、数据包Di可以包含例如控制数据以初始化接收机的特定工作,或者它们可以包含执行码,它形成由位于接收机内或者与接收机相关的一个微处理器执行的一个应用。
在该包串的上行内,一个特定节目各个组元成组显示。然而,没有必要把来自同一节目的包组成如整个包串所表示的那样,对各个组元的出现顺序也没有任何特定的顺序要求。
各个包可按包括一个前缀和一个有效负载进行排列,如图2所示。这个例子的前缀包括两个8位的字节,它由五个区域组成,其中四个(P,BB,CF,CS)是1位区域,另一个区域(SCID)是一个12位区域。SCID区域是信号组元识别区。区域CF包含一个标志用来指示包的有效负载是否被加扰,区域CS包含一个标志用来指示两个可供选择的解扰密匙的那一个被用来对加扰包进行解扰。每个包的前缀按包排列的,因此各个区域的位置可以容易地识别出来。
每一个有效负载中包含有一个首标,这个首标包含一个连续数,CC,模数16,和一个针对节目组元的TOGGLE标志位。连续数只是相同节目组元的一串列包的连续标号。TOGGLE标志位是一个1位信号,这个信号改变其逻辑电平来标明在一个MPEG压缩视频组元中一个图象层的起始码的出现。
图3以方框图形式显示一个包括一个逆传输接收处理器单元的数字电视信号接收机的一个部分。信号由天线10检测到,并加到调谐检测器11上,它从接收到的信号中提取出一个特定的频带并以二进制格式提供基带压缩信号。频带由使用者利用惯常的方法通过一个微处理器19来挑选。常规广播数字信号已被差错编码,如采用Reed-Solomon前向差错校正(FEC)编码。然后基带信号被应用到一个FEC解码器12上。FEC解码器12与接收到的视频信号同步并提供如图1所示类型的一个差错校正的信号包流。FEC12可以提供常规间隔的包,或者根据例如存储控制器17的要求提供。在每种情况下,一个包成帧信号或同步信号是由FEC电路提供的,它表示由FEC12传送的各个包信息的时间。
检测到的频带可以包含在包结构中的多个时分多路节目。实际使用时,只有来自单个节目的包才可以传到下一步的电路单元中,在这个例子中,假定使用者不知选择哪个包。这个信息包含在一个节目导引中,它本身就是由通过SCID与节目信号组元相关联数据组成的一个节目,并且可以包括,例如与用户标识有关的信息。对于每个节目来说,节目导引是用于各个节目的音频、视频和数据等组元的SCID的列表。节目导引(图1中的包D4)被指定为一个固定的SCID。当电源加到接收机上时,微处理器19执行程序来将与节目导引相联系的SCID装载入一阵列相同的可编程SCID寄存器13中的一个。来自FEC12的各个被检测到的信号包前缀部分的SCID区域依次地被装载到一个后续SCID寄存器14中。可编程寄存器和接收SCID的寄存器连接到一个比较电路15的各个输入端,并将接收到的SCID与节目导引SCID进行比较。如果一个包的SCID与节目导引SCID相匹配,比较器15使存储控制器17发送那个包到存储器18中一个预定的位置以供微处理器使用。如果接收到的SCID不与节目导引SCID相匹配,对应的包就被简单地抛弃掉。
微处理器等待通过界面20的用户的编程命令。界面20在图中表示为一个计算机键盘,但是它也可能是通常的摇控器,或者是接收机前面板的开关。用户可以请求观看由通道4提供的节目(在模拟电视系统的术语中),微处理器19被编程以对装载在存储器18中的用于通道4节目组元的各个SCID节目导引表进行扫描;并把这些SCID装载到一阵列寄存器13中对应各个可编程寄存器中,这些寄存器13与相应的组元信号处理路径有关。
接受到的含有音频、视频和数据节目组元的包,为了一个所期望的节目,必须最后分别发送到相应音频23、视频22、或辅助数据21、24信号处理器。数据以相对不变的速率被接收,但是信号处理器常要求以脉冲串形式输入数据(例如根据各个解压缩的类型)。图3的示例系统中,首先把各个包发送到共用存储器18中的预定的存储位置上,此后,各个处理器21-24请求处理来自存储器18的组元包。经共用存储器传送组元提供了对所期望的信号数据速率缓冲或限制的方法。
音频、视频和数据包被装载进各个预定的存储器位置上,以使得信号处理器方便地以缓冲方式访问组元数据。为了使各个组元包的有效负载被装载在一个适当的存储器区域,各个SCID比较器应与这些存储器区域相联。这种联系可以在存储器控制器17中硬件实现,或者可以编程实现的。如果是前一种,可编程寄存器组13中特定几个总是分别指派给音频、视频和数据SCID。如果是后一种,音频、视频和数据SCID可以被装载到可编程寄存器组13中的任几个。当各个SCID被装载到可编程寄存器中时,合适的联系将在存储器控制器17中将通过编程实现。
在稳定的状态下,当节目SCID被储存在可编程寄存器组13内后,接收到信号包的SCID与所有可编程SCID寄存器中的SCID比较。如果发现与储存的音频、视频和数据SCID中的任何一个相匹配,那么相应包的有效负载将分别被储存在音频、视频或数据存储区域或数据块内。
各个信号包通过信号解密器16从FEC12传送到存储器控制器17。只有信号的有效负载被加扰,并且包的首标部分没有变化地通过解密器。一个包是否被解扰由包的前缀中的CF标志来决定,这个包如何被解扰(两种可供选择的解扰密匙中的一种)则由CS标志来决定。如果对各个包没有SCID匹配,解密器简单地对通过的任何数据不起作用。
解密器是根据由智能卡装置31提供的解密密匙进行编程的。智能卡对包含在节目导引中的特定包中加密信息响应以产生适当的解密密匙。本实例的系统采用了两级的加密或节目访问,加密控制信息ECM和加密管理信息EMM。节目的加密控制和管理信息常以包形式传输,这些包可由包含在由节目导引组成包流中具体的SCID识别出来。包含在这些包中ECM信息被智能卡用来产生供解密器使用的解密密匙。包含在这些包中的EMM信息被用户指定智能卡使用来确定该用户有权访问的节目内容。在这些包内EMM加密信息可以按地理位置指定、分组指定、或者用户指定。例如,本系统包括了一个调制解调器(未示出),用于从智能卡到节目提供者如卫星广播电台进行帐目信息的通讯。智能卡可以依照,例如,地区码和接收机位置的电话交换码进行编程。EMM可以包括这样的数据,即当它被智能卡处理时,它可以在特定的地区码内对特别的节目赋与或剥夺接收的权利。
节目提供者可以要求有给与某些用户非常短的导引时间的权利,如每观看一次付一次费的节目。直到特别节目被播出时的很短时间之前,可以不提供具体用户的识别信息。在如此短的导引时间内依照用户的情况来对EMM进行编程可能不行。一个进一步的编码层可以通过包含一个在各个包中的EMM和ECM数据的允许/禁止接收指定的条件访问码而即时加入加密信息中,因而基本上允许对某些节目进行瞬时允许或禁止接收。
含有EMM和ECM加密数据的包有效负载包括一个128位的有效负载首标,这128位被排列成特定编码的4个32位的组。每个组均以一个条件访问码编码,并且可以不相同地编码每个条件访问码。为每个用户指定了一个特定的条件访问码。一个匹配滤波器或E码解码器30,被用于检测一个在128位首标内用户特定的位模式,如果发现是匹配的,解码器与存储器控制器17和智能卡31进行通讯使得加密有效负载的剩余部分提供给智能卡(通过存储器18)。如果没有检测到匹配,有效负载就不被特定的接收机接受,如果匹配滤波器30可被编程,条件访问码可以周期性地变化。这些码可以周期性地由智能卡提供,涉及收视者权利的智能卡的操作的更详尽的资料,请读者翻阅《卫星手册—卫星电视理论和实践大全)》的第25节。
匹配过滤器或E码解码器用于执行第二个功能,即检测特定MPEG视频首标。这些首标是32位的起始码(正是加密有效负载的首标被编码成32位的组的理由)。如果视频数据丢失了,一个MPEG视频解码器只能在特别的数据入口点重新起动解压缩视频数据,这些入口点与MPEG起始码相一致。解码器可以用于与存储器控制器17进行通讯以禁止在视频包丢失后视频数据流入存储器,并且只有当下一个MPEG起始码被解码器30检测到后才重新开始把视频有效负载写入存储器。
图4显示了一个检测含条件访问信息或MPEG起始码的包的示例装置(图3的解码器30)。解码器30是否被设置以检测加密有效负载或MPEG起始码是由当前接收的SCID决定。在图4中,假定由解密器16提供的数据是8位字节的和按包排列。也就是说,一个加密有效负载的第一个字节或一个MPEG起始码的第一个字节依照特殊的字节位置例如一个包的有效负载的开始,精确地排列起来,这样以用于检测特定的首标或起始的码字,它们在位流或字节流中的位置是精确已知的。来自解密器16的数据供应给一个8位寄存器250,寄存器250有一个8位并行输出端,该输出端连接到比较器254的各个第一输入连续端,比较器254可以由例如八个一组的双输入“同”门(XNOR)电路构成,这种XNOR电路的各个输出连接端与一个“与”(AND)门和一个锁存器连接,锁存器是一种数据锁存器,用于在每个字节间隔内锁存“与”门的输出。
一个32位MPEG起始码在一个8位寄存器阵列265内以四个字节方式储存。条件访问码以8位字节方式储存在16个8位寄存器251的阵列内。寄存器阵列251和265的装载由微处理器19和/或由智能卡控制。含起始码的寄存器265与一个4出1的多路器266连接,含条件访问码的寄存器与一个16出1的多路器257连接,多路器257和266的输出端口与一个2出1的多路器249连接。多路器249的各个输出连接端与比较器254的各个对应的第二输入端口相连接。(注意多路器249,257和266的输入和输出连接端是8位数据总线),如果在寄存器250的各个输出连接端呈现的各个数值与对应的多路器249的各个输出连接端呈现的输出数值相同,由比较器254电路产生一个“真”信号与该数据字节相对应。
为检测起始码,多路器266由计数器258扫描,与首先出现的来自解密器16的四个有效负载的数据的字节同步,以依次地把四个不同的寄存器256与比较器连接。另外,为了检测条件访问码,多路器257由计数器258扫描,依次地把寄存器265中的不同数据与比较器电路254连接。
比较器电路的输出供应给一个累计和测试电路255。电路255确定是否出现任何一预定数目的字节的匹配情况。如果它们出现,就产生一个用于被检测的特殊的有效负载的其余部分中的加密数据的写使能信号。在本系统中,加密有效负载的首标包含排列为4个32位条件访问码的128位。不同用户的条件访问滤波器30被用于寻找128位的字节不同组合。例如,一个用户装置可以被用于与条件访问码的第一个四字节相匹配。另一个用户装置可以被用于与条件访问码的第二个四字节相匹配,如此等等。在任何一种这些示例情况中,电路255将确定适当四个连续字节的一个匹配是否出现。
一个用户特定条件访问码放置在16个为一阵列的寄存器中可以稍微简化电路结构。由于每个用户有一个四字节的条件访问码,这个码在16个为一套的寄存器中可装载四次。在一个发射机上,对于四个字节的四个组,电台并不需要关心被发射的条件访问码相关的位置。另一个安排是仅采用四个寄存器的单个组来保存用户特定条件访问码,这4个一组的寄存器通过128位的加密有效负载的首标被重复地扫描。
对于每一个功能,传输232个可能的加密码的每一个是不实际的,因为这将会限制其它服务的带宽,同时也将花费大量时间。这种限制可以根据一些逻辑分组方法排列条件访问码或多或少地减轻一些。其中,分组可由各个每四字节条件访问码的三个字节来定义。在这种方法中,在一个组中的所有用户通过设置该组的各个接收机忽略掉四字节条件访问码的一个字节来寻址。这样每一个四字节访问码将代表256个用户。滤波器的设置通过发送第一个四字节位置上的全部零和安排条件访问滤波器检测这个条件来实现。如果这个条件得到满足,条件访问滤波器在电路上被重新构造以检测各个四字节组的仅三个字节的匹配。
提供的第三个方案是允许所有用户的条件访问。这通过对加密有效负载的首标进行编码如全部置零(或全部置1)来实现。因此,条件访问滤波器被安排成还包括一个全部零的检测器(单元261-263)。
数据的各个传送的字节的位与八位“或”门(OR)263的各个终端相连接。只要有一位是逻辑“1”,“或”门(OR)263就产生一个逻辑“1”输出。“或”门263的输出与一个双输入的“或”门262的其中一个的输入连接,“或”门262的输出和另一个输入分别与D型锁存器261的数据输入和Q输出端连接。D型锁存器的时钟输入由定时电路259提供,该定时脉冲与传送来的输入数据字节同步。如果在锁存器被复位之后出现任何数据字节中的任何位为逻辑“1”,锁存器261在它的Q输出上将显示逻辑“1”直到下一个复位脉冲为止。锁存器261的Q输出与一个“非”门连接,当锁存器显示一个1的输出电平时“非”门显示0的输出电平。因此,如果在首标的128位(16字节)通过寄存器250之后,“非”门的输出是高电平,那么这128位是0值。锁存器在每个新的有效负载接收前被复位。响应在加密有效负载的首标通过之后探测到来自“非”门的一个高的输出电平,电路255将产生一个数据的写使能信号。
图5是条件访问滤波器30操作的流程图,这个过程是从相关的SCID的检测开始。一旦适当的SCID被检测到,有效负载被加载到滤波器30{300}。并对首标的第一个四字节与用户特定条件访问码进行比较{302}。如果是匹配的,就产生一个加密数据的写使能{310}。如果是不匹配的,检查第一个四字节是否全0{306}。如果并没有检测到全部为0,首标的第二个四字节与用户特定条件访问码比较{308}。如果是匹配的{312},就产生一个写使能{310}。如果不匹配,第三个四字节与用户特定条件访问码比较{314}。如果是匹配的{316},产生一个写使能{310}。如果不匹配,第四个四字节与用户特定条件访问码比较{317}。如果是匹配的{318},产生一个写使能{310},如果不匹配,检查首标的最后12字节是否全为0{320},如果在最后12字节中检测到全为0,产生一个写使能{310},如果不全为0,就不产生一个写使能,过程就等待下一个包的到来{300}。在另一个方案中,在{320}这一步,系统可以被编程来寻找在首标中所有16字节的所有的0,这样应该认识到还可使用其它一些不是全为0的固定模式,例如全部为1或0和1交替变化的模式。
在步骤{306}中,如果第一个四字节全为0,首标的第二个四字节的三个字节与用户特定条件访问码比较{354}。在图4的装置中,这可以由安排单元255来完成为独特的四字节组寻找三个匹配。如果四个字节的三个是匹配的{326},就产生一个写使能{322},如果不匹配,首标的第三个四字节组的三个与用户特定条件访问码比较{330},如果四个字节中的三个是匹配的{332},产生一个写使能{322},如果不匹配,最后四字节中的三个与用户特定条件访问码比较{336},如果是匹配的,产生一个写使能{322},如果不匹配,检查所有的零条件{320}。
注意到可以采用类似于步骤{324-340}的更高一级的检测,其中各个四字节组中只有二个是匹配的。这个可以通过安排例如第一个八字节全为0或第一个字节全为0来设置。这样,各个对应条件访问码的组变得比较大。
考虑把加密有效负载储存在存储器18中,当接收和检查条件访问码时,系统把有效负载首标写入存储器。如果一个条件访问码被检测到,一个被检测到的写使能简单地允许存储器控制继续写有效负载。相反地,如果条件访问码在有效负载的第一个16字节内没有被检测到,有效负载的剩余部分就不写入存储器,一个条件访问有效负载的存储器地址被重置以重写有效负载的条件访问首标的16字节。
图6是另一个条件访问滤波器,它同时可比较多达32位(4字节),这就允许对起始码的检测而不需要预先知道起始的字节位置,起始码储存在8位寄存器265中。(使用八位寄存器是因为使用了一个8位的微处理器数据总线)。寄存器的输出端口与多路器298的第一组输入连接。用户特定条件访问码储存在第二个寄存器阵列299中,它的各自的输出端口与多路器298的第二组输入连接。多路器298的一组输出与比较器270-273的各自的第一个8位输入端口相连接。寄存器265或299的输出端口是否与比较器连接均由累计和测试电路297对微处理器的响应来控制。
来自解密器16的输入字节与并行或串行寄存器274-277相连接。各个寄存器274-277有分别与比较器270-273的第二个8位输入端口相连接的输出并口。系统被定时以使当前输入信号的四个连续字节装载进寄存器274-277。比较器的输出端与累计和测试电路297通过的“或”门278-281连接起来。“或”门电路的第二个输入端与累计和测试电路297的各个的控制输出连接端相连接。
正如在图4的装置中,图6的装置包括一个全零检测器261-263用来检测在第一个四字节和所有的十六字节中的所有的零。
对于四字节条件访问码的检测,依次的独特的四字节组被装载进寄存器274-277中,并与寄存器299中的用户特定条件访问码对照进行测试。如果所有四个比较器检测到一个匹配,“与”门283产生一个逻辑“1”表示匹配。如果比较器中的任一个没有检测到一匹配,“与”门产生一个逻辑“0”。对于四个输入字节的条件访问码组中的三个的检测,累计和测试电路297把一个逻辑“1”值施加到与“或”门连接的控制线中的一个。这就迫使“或”门的输出是逻辑“1”,有效地迫使来自相关联的比较器的匹配。就四个字节检测来说,对依次的独特的四字节组就完成了条件访问码的检测。
对于起始码的检测,所有“或”门的控制线保持逻辑“0”。输入字节依次地施加到以级联方式连接的寄存器274-277上。与储存寄存器265中的起始码的匹配测试对每套依次的四输入字节进行。
图7显示了如图3所示的存储器控制器17的示范装置。每一个节目组元储存在存储器18的不同的相邻的数据块中。另外其它数据,象微处理器19或智能卡(未示出)产生的数据,也可以储存在存储器18中。
地址通过多路器105施加到存储器18上,输入数据通过多路器99施加到存储器18上。来自存储器管理电路的输出数据通过另一个多路器104提供给信号处理器。由多路器104提供的输出数据可以通过微处理器19、存储器18、或直接地从多路器99得到。节目数据假定具有标准的图形分辨率和质量,并以特别的数据速率出现。另一方面,高清晰度HDTV的电视信号,以显著高数据率出现,它也可以由这个接收机提供。实用上,由FEC提供的所有数据经由多路器99和存储器I/O电路102到达存储器18,除了高速率的HDTV信号可以直接从多路器99到达多路器104。来自于解密器16、智能卡电路、微处理器19和媒介差错码源100的数据提供给多路器99。使用在这里的术语“媒介差错码”意思是指插入数据流中的特别码字,用于限制各个信号处理器(解压缩器)暂停处理过程直到检测到一个预定的码字,如一个起始码,然后根据例如起始码恢复处理过程。
来自节目寻址电路79-97、来自微处理器19、来自智能卡装置31和来自辅助包地址计数器78的存储器地址提供给多路器105。在任何特定的时间间隔内对特定地址的选择是由一个直接存储器访问DMA电路98来控制的。来自比较器15的SCID控制信号和来自各个信号处理器的“所需数据”信号被施加到DMA98,对此响应,对存储器访问的竞争进行仲裁。DMA98与一个服务指针控制器93合作为各个节目的信号组元提供适当的读或写地址。
各种信号组元的存储器数据块的每一个地址由节目组元的四个组或服务指针寄存器83,87,88和92产生。各个存储器数据块的起始指针包含在各个信号组元的寄存器87中,这些存储器数据块是储存各个信号组元用的。起始指针可以是一个固定值,或者它们可以通过微处理器19中的普通的存储器管理方法计算出来。
各个数据块最后一个地址的指针被储存在服务寄存器的阵列88中,每个寄存器对应每个可能的节目组元。与起始地址相似,最终或最后的地址可以是固定值,或者它们也可以是微处理器19提供的计算值。对于起始指针和结束指针使用计算值是更可取的,因为这样提供了具有较小存储器的更通用的系统。
存储器写指针或首指针是通加法器80和服务首寄存器83产生的。对于每一个潜在的节目组元都有一个服务首寄存器。一个写或首指针的值储存在寄存器83内,并且在一个存储器写周期中提供给寻址多路器105。首指针还与加法器80连接,其中首指针每次增加一个单位,增加的指针储存在相应的寄存器83中为下一个写周期所用。寄存器83被服务指针控制器93挑选出来,用于当前服务的相应节目组元。
在这个实例中,假定起始和结束指针都是16位指针。寄存器83提供16位写或首指针。选择16位指针有利于在寄存器87和88中装载开始和结束指针使用16位或8位数据总线。另一方面,存储器18有18位的地址。18位写地址是由两位起始指针的最高有效位和16位首指针连在一起形成的,起始指针的位在组合的18位写地址的最高有效位位置上。起始指针被各个的寄存器87提供给服务指针控制器93。服务指针控制器从储存在寄存器87中的起始指针中分析出起始指针的较高有效位,而且把这些位与16位的首指针数据总线连在一起。这种情形是通过数据总线96表示出来的,数据总线96与从多路器85中出来的首指针数据总线结合一起,在图8中是用黑体箭头表示。
在图8中,上排、中排、下排的盒子分别表示一个起始指针、一个地址和一个首或尾指针的位。数值较大的盒子表示较高有效位置的位。箭头指出从表示的起始指针或首/尾指针的位的位置得出各个地址的位,其中,黑体箭头表示稳定状态的操作。
类似地,存储器读指针或尾指针可由加法器79和服务尾寄存器92产生。对于每个潜在的节目组元有一个服务尾寄存器。一个读或尾指针的值被储存在寄存器92中,并且在一个存储器读周期中提供给寻址多路器105。尾指针也与加法器79连接,其中,尾指针每次增加一个单位,增加的指针储存在合适的寄存器92中为下一个读周期所用。寄存器92由服务指针控制器93挑选,用于当前服务的相应节目组元。
寄存器92提供16位尾指针。18位读地址是通过起始指针的两个最高有效位和尾指针的十六个位连接在一起形成的,起始指针的位处于组合的18位写地址中最高有效位的位置上。服务指针控制器可以从储存在寄存器87中的起始指针中分析出起始指针的较高有效位,并把这些位与16位尾指针数据总线联在一起。这种情形是通过数据总线94表示出来的,数据总线94与从多路器90中出来的尾指针数据总线结合在一起。
数据储存在存储器18中计算出来的地址上。在储存了一个字节的数据后,首指针增加一个单位并与这个节目组元的结束指针比较,如果它们相等,首指针的较高有效位被起始指针的较低的14位所取代,而且对地址的首指针部分的较低的两位位置置0。这在图8中在起始指针和地址之间用虚线的箭头表示出来。这个操作由从服务指针控制器93指向多路器85的首指针数据总线的箭头97表示。可以假定使用起始指针的较低十四位代替首指针的位。对于这一个写周期,用较低的起始指针位取代首指针的位,引起存储器跳过由上面两个起始指针位指定的内存块。因此,排除了将在每个包的开始处的写地址重编程到数据块中唯一的存储器位置。
如果首指针曾经等于尾指针(用来表示从存储器18的什么地方读取数据),一个信号被送到微处理器的中断区,表示一个首尾撞击发生了。进一步地从这个节目频道写入存储器18失效直到微处理器重新使能这个频道。这种情形很少出现,且在正常操作中是不应该发生的。
数据在各个信号处理器的请求下,在由加法器79和寄存器92计算出的地址上,从存储器18中取出。在读取了储存数据的一个字节后,尾指针增加一个单位,并且在服务指针控制器93内这个逻辑通道尾指针和结束指针作比较。如果尾指针与结束指针相等,那么尾指针的较高有效位用起始指针的较低的十四位取代,地址中尾指针部分的较低的两个位置0。这种情形由来自控制器93和指向出自多路器90尾指针数据总线的箭头95表示出来。如果现在尾指针等于首指针,那么各个存储器数据块被定义为空的,没有更多的字节将被送到相联的信号处理器直到从FEC中接收到更多这个节目频道的数据。将起始指针的较低的十四位实际取代各个写或读地址的首或尾指针部分,可以利用适当的多路转换或利用三种状态的互连来实现。
存储器的读或写控制是通过服务指针控制器和直接存储器访问DMA、单元93和94来完成的。DMA被编程用来排定读和写的周期。这种时间表的排定依赖于FEC12是否提供被写入存储器的数据,FEC数据写操作优先以便不丢失进来的信号组元数据。在图7显示的实例装置中,有四种类型的装置可以用来访问存储器。它们是智能卡、FEC12(更精确地是解密器16)、微处理器19和应用设备例如音频和视频处理器。存储器竞争是按下面方法管理的。DMA响应罗列在上面的各种处理单元提出的数据请求,为各个节目组元分配存储器数据块,在95ns的时隙内提供对存储器的访问,在这个时隙内,一个字节的数据从存储器18中读出或写回到存储器18中。有两种主要的访问分配模式,分别定义为“FEC提供数据”或“FEC不提供数据”。对于这些模式的每一种,时隙按如下分配和配给优先权,假定一个最大的FEC数据率为5兆字节/秒,或者说每200ns传送1字节,那么有,FEC提供数据1)FEC数据写,2)应用设备读/微处理器读/写;3)FEC数据写,4)微处理器读/写;并且,对于FEC不提供数据1)智能卡读/写;2)应用设备读/微处理器读/写;3)智能卡读/写;4)微处理器读/写;因为FEC数据写不能被延迟,当提供数据时,FEC(更确切地是解密器)必须保证能在每一个200ns间隔内访问存储器。随后的时隙被应用设备和微处理器共享。当请求的设备没有可用的数据时,就把这个请求的时隙提供给微处理器使用。
控制器93与SCID检测器通讯以确定各个起始、首和结束指针寄存器中的那一个写访问存储器,控制器93与DMA通讯确定各个起始、结束、和尾指针寄存器中的那一个读访问存储器操作。DMA98通过多路器99、104和105控制对相应的地址和数据的挑选。
图9显示了DMA98存储器访问过程的实例流程图。DMA根据SCID的检测判断检测到或没检测到一个接收包{200}。如果一个SCID被检测到,表明有来自解密器16的数据要被写入存储器,来自解密器的一个字节的节目数据被写入缓冲区存储器18中{201}。被写入的存储器数据块由处理器93根据现在的SCID决定。下一个DMA确定节目组元处理器的任何一个,包括智能卡和微处理器,是否请求数据或者读/写{R/W)访问存储器18{202}。如果对DMA没有数据请求,处理过程返回到步骤{200}。如果有数据R/W请求,DMA确定请求的优先级{203}。这个可以通过通常的中断过程,或者通过请求数据的这些节目处理器的一个随机次序的顺序一字节操作来完成。例如,假定一个访问优先级的任意的次序是视频,音频I,音频II,智能卡,和微处理器。也可以假定只有视频,音频II和微处理器正在要求存储器访问。在现在的步骤{203}的操作中,一字节的视频数据将从存储器中读出。在下一个步骤{203}的操作中,一字节的音频II将从存储器中读出,在下一个随后发生的步骤{203}中,一字节的微处理器数据被写入存储器18或从存储器18中读出,如此等等。注意智能卡和微处理器访问的地址分别由智能卡和微处理器提供,但是视频、音频和节目导引的地址从地址指针装置(80-93)中得到。
一旦访问的优先级被建立起来{203},必要的节目处理器处理一字节数据写入存储器18或从存储器18内读出{204}。下一个来自解密器16的一字节数据被写入存储器{205}。完成一个检验{206}以确定微处理器是否请求访问。如果微处理器请求访问,它就处理一字节的数据。如果微处理器没有请求访问,过程跳到步骤{202}来确定是否有节目处理器请求访问。在这种方式中,进入的数据总是被保证每隔一个存储器访问周期的访问,这些交错的存储器访问周期分布在整个节目处理器中。
如果当前未有来自解密器16的数据,也就是说,当前并没有检测到一个SCID,过程{208-216}就跟随其后,第一个智能卡被检查{208}以确定是否请求存储器访问,如果是,给出一个字节的存储器访问{209},否则完成一个检验{210}以确定是否有任何节目处理器请求存储器访问。如果有一个数据的R/W请求,DMA确定{211}请求的优先级。相应的处理器处理一个一字节的存储器读或写访问。如果没有节目处理器请求一个数据的R/W,处理过程跳到步骤{213},在步骤{213}中完成一个测试以确定智能卡是否请求存储器访问。如果是,它处理一个一字节的存储器访问,否则处理过程跳到步骤{200}。
应该认识到,在现在优先考虑的实例中,当处于“FEC不提供数据”的模式时,智能卡被提供一个先于所有其他节目处理器的2比1访问优先权。这个优先级在DMA装置中被编程进一个可编程的状态机中,并且受微处理器控制其变化。正如早已提到的,系统可提供交互服务,微处理器19对交互数据作出响应以执行至少部分地可交互操作。这样,微处理器19将存储器18既作为应用储存又作为工作存储器。在这种情况下,系统操作者可以改变存储器访问优先级以将高频次的存储器访问提供给微处理器19。存储器访问优先级的重编程可作为交互应用命令的一个子集。
当包丢失时,有利地把媒介差错码插入进视频组元信号流,以设置视频信号解压缩器暂停解压缩直到一个特别的信号入口点在数据流中出现。预测在哪个地方和在哪一个视频包内下一个入口点可能出现是不实用的。为了尽快地找出下一个入口点,在检测到一个包丢失之后在第一个视频包的开始就包括一个媒介差错码是有必要的。图7的电路在每一个视频包的开始设置一个媒介差错码,然后如果一个先行的包没有丢失时就在各个包内删除媒介差错码。在来自解密器的视频有效负载到达之前,通过M个写周期存储器18的写入,将媒介差错码插入到第一M个存储器地址位置,这些位置是为当前的视频包有效负载保留的。同时地,多路器99被DMA98控制,把来自源100的媒介差错码施加到存储器18的I/O口上。M简单地是存储器位置的整数,这些位置要用来储存媒介差错码。假定存储器储存8位字节,且媒介差错码是32位,M将等于4。
装载媒介差错码到存储器中的地址由各自的视频组元服务寄存器83通过多路器82和多路器85提供。可以理解,为了装载媒介差错码到不然用于装载视频组元数据的存储器区域位置上,由指针寄存器提供的第一M个地址将简单地是下一M个后续的地址。这个地址通常是由视频首指针产生的。这些相同地址被连接进一个M级延迟单元84中,以便紧接媒介差错码的最后字节之后直接地被储存在存储器18内。首批M个地址在延迟单元84的输出提供。
媒介差错码被装载进存储器的时间与丢失的包的判定同步。包的差错或者丢失的检测由一个差错检测器101来完成,这个检测器对当前包的CC和HD数据响应。
如果检测到一个包丢失了,从下一个或第(M+1)个地址位置开始,当前包的视频组元被储存在存储器18中。这个可以通过设置多路器85继续让来自相应的寄存器83的未延迟的首指针通过来完成。另一方面,如果没有检测到包的丢失,当前包中的视频组元的首批M个字节被储存在上次是存媒介差错码的存储器位置上。
包差错或丢失的检测由响应当前包的CC和HD数据的一个差错检测器101来完成。检测器101检查在当前包内的连续数CC来确定它与前一个包的CC相比是否相差一个单位。另外,检查当前包的TOGGLE位以确定它是否呈现相应视频帧的正常状态。如果CC值是不正确的,TOGGLE位的状态就被检查。根据如果CC以及TOGGLE位的一个或两个是否错误,分别建立差错纠正的第一个或第二个模式。在第二种模式中,对错误的CC和TOGGLE位两者进行初始化,设置系统复位到包含一个图形层首标的一个包。在第一种模式中,只有CC有错,设置系统复位到包含一片层首标的一个包(一片层就是一个帧中的压缩数据的一个子集)。在第一和第二两种模式中,写入存储器的媒介差错码被保持在各自的有效负载中以指示解压缩器实施恢复操作。
已经发现,将SCID检测器、解密器、寻址电路、条件访问滤波器和智能卡接口集成为单一集成电路来构成该系统是很有效的。这样将减小可导致苛刻定时约束的外部线路的数量。
权利要求
1.一种传输包含加密管理和控制数据的条件访问信息的方法,包括下列步骤形成N字节条件访问码;把M个不同的N字节条件访问码连接在一起;挑选所述的N字节条件访问码的一个或一个预定的逻辑状态的特殊的N字节码;形成一个有效负载,它包含a)所述选择的N字节条件访问码中的一个或所述的特殊的N字节码,b)把挑选的码与所述的M个不同的N字节条件访问码连接在一起,和c)把已连接的码和所述的加密管理和控制数据连接在一起;以及形成一个传送包,它含有a)确定包含加密数据的传送包的一个首标,和b)所述的有效负载。
2.如在权利要求1中所述的方法进一步包括提供一个(M+1)乘以N字节的码,在这些码中,所有N字节的R个组的位均在一个预定的逻辑状态(R,M,N均是整数,R与N的乘数小于或等于(M+1)与N的乘数),其中形成一个有效负载的步骤包括a)挑选所述N字节条件访问码中的一个或一个均一逻辑状态的N字节码,b)把挑选的码与所述的M个不同的N字节条件访问码连接在一起,和c)挑选所述的(M+1)乘以N字节码或已连接的码,和d)把最后挑选的码与所述的加密管理和控制数据连接在一起;以及
3.在一个包信号接收机中处理包含在信号包内的加密数据的装置,这些信号包具有一个标记这样的包包含加密数据的一个首标,并且具有一个含有所述加密数据以及一个含有条件访问码的有效负载首标的有效负载,所述装置包括施加所述的包信号的装置(10-12);一个传输处理器(13-15,19),根据所述的包信号来挑选识别为包含加密数据的信号包,并从挑选的包中抽取有效负载;存储器装置(17,18),用于储存接收到抽取出的有效负载数据;一个条件访问滤波器(30),用于根据用户特定条件访问码检查抽取出有效负载的有效负载首标数据,并且一旦用户特定有效负载的检测失败,就禁止在所述的存储器装置中储存所抽取的有效负载数据。
4.如权利要求3所述的装置,进一步包括,一个与所述存储器装置连接的智能卡,用来利用来自各个所述的具有加密数据的有效负载并储存在所述的存储器装置中的加密数据。
5.如权利要求3所述的装置,其中所述的条件访问滤波器包括一个寄存器,用来储存一个N字节的用户特定条件访问码;一些装置,包括一个比较器,用来比较在独特的N字节组中的所述有效负载首标数据和包含在所述的寄存器内的所述N字节用户特定条件访问码,如果所述的用户特定条件访问码与所述的独特的N字节组的任一个匹配,就产生一个使能信号以把所述的加密数据写入所述的存储器装置中。
6.如权利要求3所述的装置,其中所述的条件访问滤波器包括一个寄存器,用来储存一个N字节用户特定条件访问码;一些装置,包括一个比较器,用于a)确定所述的有效负载首标数据的第一批N字节是否包含一个均一逻辑状态的码;b)如果所述的第一批N字节确实包含一个均一逻辑状态的码,将所述的用户特定条件访问码的N-1字节与所述的在独特N字节组中的有效负载首标数据进行比较,如果所述的用户特定条件访问码的N-1字节与所述独特N字节组中的任一组的N-1字节相匹配,就产生一个使能信号以把所述的加密数据写入所述的存储器装置中;c)否则,把所述的在独特的N字节组中的有效负载首标数据与所述的包含在所述寄存器中的N字节用户特定条件访问码进行比较,如果所述的用户特定条件访问码与所述的独特的N字节组的任一个相匹配,就产生一个使能信号以把所述的加密数据写入所述的存储器装置中。
7.如权利要求6所述的装置,进一步包括一个检测器,用来检测在所述的有效负载首标数据中所述的条件访问码的一个预定数量的N字节组是否是同样的逻辑状态,如果是,就产生一个所述的使能信号。
8.如权利要求6所述的装置,进一步包括一个检测器,用来检测在所述的有效负载首标数据中所述的条件访问码的一个预定数量的N字节组是否有全为0值的位,如果是,产生一个所述的使能信号。
9.如权利要求3所述的装置,进一步包括一个检测器,用来检测在所述的有效负载首标数据中所述的条件访问码的所有字节是否是同样的逻辑状态,如果所述有效负载首标数据中所述的条件访问码的所有字节是同样的逻辑状态,就产生一个使能信号以把有效负载的加密数据写入所述的存储器装置中。
10.如权利要求5所述的装置,其中所述的用来储存一个N字节的用户特定条件访问码的寄存器包括N个1字节的寄存器,所述的条件访问滤波器进一步包括一个多路器,它有分别与所述的N个1字节寄存器连接的N个输入端口。计数电路,用来设置所述的多路器对它的输入端口扫描以依次地提供来自所述的N个1字节寄存器的数据给包括一个比较器的所述装置。
11.如权利要求3所述的装置,其中所述的条件访问滤波器可被编程以执行一个双重功能,这个双重功能是以第一种模式检测条件访问码和以第二种模式检测视频组元起始码。
12.如权利要求11所述的装置,其中所述的条件访问滤波器包括;一个寄存器,用来储存一个N字节用户特定条件访问码;一个寄存器,用来储存一个N字节视频组元起始码;一个多路器,用来根据一个控制信号挑选所述的用户特定条件访问码或所述的视频组元起始码中的一个;一些装置,包括一个比较器,与所述的多路器连接,用来对所述的在N字节组中的有效负载首标数据与所述的N字节的用户特定条件访问码或由所述多路器挑选出来的所述的视频组元起始码进行比较,如果所述的用户特定条件访问码与有效负载首标一个N字节组相匹配,就产生一个使能信号以把所述的加密数据写入所述的存储器装置中,或者,如果所述的视频组元起始码与有效负载首标的一个N字节组相匹配,产生一个起始码指示信号。
13.如权利要求12所述的装置,其中所述的包括一个比较器的装置,完成如下功能,在所述的第一种模式中;a)确定所述的有效负载首标数据的第一批N字节是否包含一个均一逻辑状态的码;b)如果所述的第一批N字节确实包含一个均一逻辑状态的码,将所述的用户特定条件访问码的N-1字节与所述的在独特的N字节组中的有效负载首标数据进行比较,如果所述的用户特定条件访问码的N-1字节与所述的独特的N字节组的任何一组的N-1字节相匹配,就产生一个使能信号以把所述的加密数据写入所述的存储器装置中;c)否则,将所述的在独特的N字节组内的有效负载首标数据与包含在所述的寄存器中的N字节用户特定条件访问码进行比较,如果所述的用户特定条件访问码与所述的独特的N字节组的任一组相匹配,就产生一个使能信号以把所述的加密数据写入所述的存储器装置中。
全文摘要
一个接收机中的装置,用于处理传输的加密控制信号,包括一个选择信号包的包传输处理器(13-15,19),这个信号包含有包含一个条件访问有效负载的首标和其余部分是加密数据的有效负载。每个有效负载的首标包括一组字节,这组字节是按照允许或不允许每个接收机处理加密数据的方法编码的。利用一个用户特定条件访问码字预编程的一个条件访问滤波器(30)检查每个条件访问首标的字节组是否与用户的特别的条件访问码字相匹配。只有匹配时,处理器才允许处理(17,18,21-24)加密数据。此后,加密数据被用来产生(31)用于被传送信号解扰部分的解密密匙。
文档编号H04N5/00GK1151233SQ95193702
公开日1997年6月4日 申请日期1995年3月15日 优先权日1994年4月22日
发明者格雷戈里·G·坦莫尔, 迈克尔·S·戴斯, 约翰·W·钱尼, 詹姆斯·E·黑利 申请人:汤姆森消费电子有限公司