在dvb-ci接口中实现命令与传输流复用的方法

文档序号:7781831阅读:388来源:国知局
在dvb-ci接口中实现命令与传输流复用的方法【专利摘要】本发明公开一种在DVB-CI接口中实现命令与传输流复用的方法,其包括步骤:将DVB-CI接口中命令接口的链路层的自定义分段格式的命令数据按ISO/IEC13818-1标准中传输流数据包格式进行封装,且封装成的命令数据包中同步字节的值与传输流数据包中同步字节的值不相等;DVB-CI接口的数据发送端利用时分复用器将传输流的数据包和命令数据的数据包时分复用传输;DVB-CI接口的数据接收端利用时分解复用器解析接收到的各个数据包,根据数据包的同步字节区分出传输流数据包和命令数据包。本发明通过一个时分复用器处理数据带宽分配,只需提供快速双向通道即可,不仅对传输接口驱动要求简单,还可以选择在多种物理接口来实现DVB-CI接口,并可以根据实际需要调整DVB-CI接口通信的实时性。【专利说明】在DVB-CI接口中实现命令与传输流复用的方法【
技术领域
】[0001]本发明涉及数字电视的机卡之间通信技术,尤其是涉及一种在DVB-CI接口中实现命令与传输流复用的方法。【
背景技术
】[0002]目前,DVB-CI标准是主机和模块之间定义一个接口标准。这个标准实现基于物理PCMCIA接口,在一个物理PCMCIA接口上定义了两个逻辑接口:一个接口(或通道)用于传输流(TransportStream,TS,又称为码流);另一个接口(或通道)用于命令传输(主机和传输模块之间的指令)。如图1所示主机(比如数字电视接收装置)与卡模块(比如,CAM卡)之间采用DVB-CI接口相连,主机发出加扰的码流和命令信息分别通过各自的通道传输至卡模土夹,而卡模块解出加扰传输流和向主机发生响应主机的命令信息也是分别通过各自的通道传输。[0003]一般来说,DVB-CI接口是基于是PCMCIA接口来实现,但是PCMCIA的物理接口上有68管脚,物理上连接复杂。[0004]随着USB2.0的接口普及和传输速度提高,可以通过不同端点实现两个逻辑接口。一个USB端点只能向一个方向传输数据,输出端点是从主机到设备方向,输入端点是从设备到主机方向,端点可被看作一个单向的管道。但是USB2.0物理上是半双工的差分信号传输,两个逻辑接口的四个端点是分时使用一个物理通道,由主机驱动按USB协议分配端口占用时间。命令比码流实时要求更高,但码流实时也是有时间要求,否则音视频不流畅。对USB2.0的主机驱动需要特殊要求。[0005]因此,若能够在USB接口实现DVB-CI接口,则将降低实现DVB-CI接口复杂性和难度。然而,如何实现这一技术难题,成为本领域技术人员目前继续解决的技术难题之一。【
发明内容】[0006]为克服现有技术的缺陷,本发明提出一种在DVB-CI接口中实现命令与传输流复用的方法,以解决目前使用PCMCIA接口来实现DVB-CI接口时存在物理结构复杂的技术问题。[0007]本发明采用如下技术方案实现:一种在DVB-CI接口中实现命令与传输流复用的方法,其包括步骤:将DVB-CI接口中命令接口的链路层的自定义分段格式的命令数据按IS0/IEC13818-1标准中传输流数据包格式进行封装,且封装成的命令数据包中同步字节的值与传输流数据包中同步字节的值不相等;DVB-CI接口的数据发送端利用时分复用器将传输流的数据包和分段格式的命令数据的数据包时分复用传输;DVB-CI接口的数据接收端利用时分解复用器解析接收到的各个数据包,根据数据包的同步字节区分出传输流数据包和分段格式的命令数据包。[0008]其中,所述在DVB-CI接口中实现命令与传输流复用的方法还包括步骤:配置时分复用器的码流间隔包参数,时分复用器按照码流间隔包参数将传输流的数据包和分段格式的命令数据包进行间隔传输。[0009]其中,当码流间隔包参数配置为零时,时分复用器暂时中断传输数据包,将需要传输的分段格式的命令数据包插入至传输流数据包的发送队列中。[0010]其中,所述在DVB-CI接口中实现命令与传输流复用的方法还包括步骤:根据DVB-CI接口通信的实时性要求动态配置时分复用器的码流间隔包参数。[0011]其中,如果数据包中同步字节为0x47,则该数据包为传输流数据包,否则为命令数据包。[0012]其中,DVB-CI接口中链路层的一个命令数据通常情况下被封装成一个命令分段数据,如果一个命令数据长度很长(超过65524字节),将被封装成多个命令分段数据。命令分段数据按标准IS0/IEC13818-1方式封装传输流(TS)包格式。[0013]其中,所述在DVB-CI接口中实现命令与传输流复用的方法还包括步骤:在时分解复用器解析并判断为命令数据包后,校验命令数据包中命令分段数据的正确性,再从命令分段数据中提取出链路层的命令数据。[0014]其中,所述自定义分段格式包括:8bit的table_id;lbit的分块同步指示位置section_syntax_indicator,应置‘1’;16bit的命令块长度command_section_length,表明在command_section_length字段之后此分段的字节数;16bit的分块编号section_number,命令数据第一分段的section_number应该为0x00,它将随命令数据的每一个附加分段而增加1;last_section_number16位字段,表示命令数据的最后一个分段的号码;data_byte数据为链路层命令数据的片段或数据单元;32bit的CRC_32字段,包含在处理完整个命令分段后计算CRC输出为零的CRC的值。[0015]与现有技术相比,本发明具有如下有益效果:本发明按IS0/IEC13818-1标准,把分段格式的命令数据封装成传送流格式,利用时分复用器将分段格式的命令数据和传输流复用后在一个通道进行传输,并通过时分解复用器通过各个数据包中同步字节synC_byte的值来确定传输流与分段格式的命令数据,因此,本发明通过一个时分复用器处理数据带宽分配,只需提供快速双向通道即可,不仅对传输接口驱动要求简单,还可以选择在多种物理接口(比如USB2.0接口、USB3.0接口、IEEE1394等)上实现DVB-CI接口。并且,本发明通过设置时分复用器的码流间隔包参数,就可以实现在一个双向传输通道中对传输流和命令数据的物理带宽进行合理分配,从而可以兼顾传输流和命令数据的实时性。【专利附图】【附图说明】[0016]图1是现有DVB-CI接口的实施例的结构示意图;图2是传输流的数据包的封装结构示意图;图3是DVB-CI接口中命令分段数据结构的示意图;图4是DVB-CI接口中命令数据包分段结构示意图;图5是本发明一个实施例的流程示意图;图6是利用时分复用将传输流与命令进行时分复用的示意图;图7是利用时分解复用区分传输流与命令的示意图;图8是在电视接收终端的DVB-CI接口中实现本发明的结构示意图。【具体实施方式】[0017]为了便于理解,先对IS0/IEC13818-1封装传输流(TS)数据包的封装结构进行描述。如图2所示,每个TS数据包为188字节,分为头部(Header)及有效负载。其中,头部包括:8bit的同步字节sync_byte,sync_byte固定为0x47,表示一个传输包开头;lbit的传输错误标志位transport_error_indicator;lbit的有效负载起始指示位payload_unit_start_indicator;lbit的传送优先级位transport_priority;13bit的PID,PID指出了这个包的有效负载数据的类型;2bit的传送加密控制位transport_scrambling_control;2bit的适应字段控制位adaptation_field_control;4bit的连续计数器continuity_counter;剩下的字节为适应字段adaptation_field。[0018]结合图3和图4所示,DVB-CI接口中命令接口的链路层的自定义分段格式的命令数据被封装成多个命令分段(或数据块),比如图4所示将一个链路层命令的数据块分成四个命令分段数据,各个命令分段数据(或数据块)中sectiorunumber的值分别为0、1、2、3,last_section_number的值为3。[0019]其中,如图3,自定义命令分段数据结构包括:8bit的table_id(命令表ID),其值识别此分段所属的命令表,table_id根据实际需要选取一个值,取值范围为0X4(T0XFE;lbit的分块同步指示位置section_syntax_indicator,应置‘1’;16bit的命令块长度command_section_length,它表明在command_section_length字段之后此分段的字节数,包含CRC;16bit的分块编号section_number,命令链路数据第一分段的section_number应该为0x00,它将随命令数据的每一个附加分段而增加1;last_section_number16位字段,表示链接层中命令数据的最后一个分段的号码;data_byte数据为链路层中命令数据片段或数据单元;32bit的CRC_32,包含在处理完整个命令分段后计算CRC输出为零的CRC的值。[0020]command_section_length字段的长度16位,表不命令分段数据的最长为65535字节。减去其他开销11字节(保留字节,分段编号,最大分段编号,CRC字节),可以封装链路层的数据单元不超65524字节。如果一个命令数据(链路层的数据单元)长度很长(超过65524字节),将被封装成多个命令分段数据。[0021]结合图5所示,本发明一个优选实施例包括如下实现步骤:步骤S1、本发明将DVB-CI接口中命令接口的链路层的分段格式的命令数据按IS0/IEC13818-1标准中传输流数据包格式进行封装,如图3所示。命令分段数据包中同步字节用非0x47值(例如=0x57,0x67,0x77,0x37,0x48或0x49等),便于识别命令信息包;PID的值取值为0x2或其他。[0022]步骤S2、DVB-CI接口的数据发送端,配置时分复用器的码流间隔包参数,利用时分复用器将传输流的数据包和命令数据的数据包按照码流间隔包参数进行间隔传输。[0023]传输流的信息量很大,命令的信息量很小,但是命令的实时性高于传输流。时分复用器有一个码流间隔包参数配置,当码流间隔包参数配置成零时,暂时中断传输数据包,且将需要传输的命令数据包插入至传输流数据包的发送队列中。当码流间隔包参数配置成1时,传输流数据包与命令数据包交替传输。当码流间隔包参数配置成2时,每传输2个传输流数据包,再传输1个命令数据包,循环进行,如图6。当码流间隔包参数的配置值越大,命令数据包传输的需要时间越长,实时性越差。因此,可以根据实际需求配置合理码流间隔包参数。[0024]步骤S3、DVB-CI接口的数据接收端利用时分解复用器根据各个数据包中同步字节sync_byte,区分出传输流数据包和分段格式的命令数据包。[0025]将分段格式的命令数据打包成传输流的数据包格式后,命令数据与传输流数据可以混在一起通过一个通道或接口传输,接收数据包的一方在解析数据包时,只需要检测每个数据包中同步字节sync_byte。如果同步字节sync_byte为0x47,则表明当前数据包为传输流数据包,否则为分段格式的命令数据的数据包。因此,时分解复用器根据各个数据包中同步字节sync_byte,即可准确的分流出传输流数据包和命令数据包,如图7所示。[0026]对于分段格式的命令数据包(一个命令分段信息通常情况下包含一个命令数据包),校验命令分段数据的正确性。然后,从命令分段数据中提取出链路层的命令数据。[0027]如图8所示,在电视接收终端的DVB-CI接口中实现传输流与命令复用后传输。本实施例的电视接收终端采用机卡分离,所谓机卡分离指的是将数字电视终端中的通用部分(硬件)独立出来,做成“机”,而把各地广电运营商的CA(条件接受系统)和EPG(电子节目指南)、中间件、数据广播等诸多增值服务部分做成“卡”。主机从解调模块接收到码流信息由TS流通道传给卡模块,卡模块根据需要对码流解扰后,再通过TS流通道传主机。主机收到解扰后码流,把码流传给解复用模块。主机将命令信息传给卡模块,卡模块处理命令信息,返回相应命令信息。命令信息在DVB-CI1.0标准分成应用层、事务层、传输层、链路层、物理层。链路层之上都是由软件实现,PCMCIA接口的驱动通信之前有一个缓冲区大小(BN)协商过程。缓冲区大小(BN)决定了链路层数据单元LPDU的大小。每个LPDU由2个字节的头、TPDU的块组成,总的大小不超出协商的缓冲区大小。如果缓冲区大小(BN)定义为2048个字节,命令信息的链路层的数据单元LPDU的大小不超过2048字节。命令信息的物理层和码流传输的物理层由PCMCIA接口实现。[0028]先把命令信息的链路层数据和传输流在时分复用器进行复用,然后接口(比如,USB2.0或USB3.0接口)只负责快速传输。[0029]因此,主机与卡模块之间只要传输速度够快的双向通道就满足要求,不关心物理上全双工或半双工。主机与卡模块之间通信的驱动要求很简单,提供一个输入和一个输出就可以。[0030]综上,本发明按IS0/IEC13818-1标准,把命令数据的分段格式封装成传送流(TS)包格式,利用时分复用器将命令数据和传输流复用后在一个通道进行传输,并通过时分解复用器通过各个数据包中同步字节Sync_byte的值来确定传输流与命令数据,因此,本发明通过一个时分复用器处理数据带宽分配,只需提供快速双向通道即可,不仅对传输接口驱动要求简单,还可以选择在多种物理接口(比如USB2.0接口、USB3.0接口、IEEE1394等)上实现DVB-CI接口。并且,本发明通过设置时分复用器的码流间隔包参数,就可以实现在一个双向传输通道中对传输流和命令数据的物理带宽进行合理分配,从而可以兼顾传输流和命令数据的实时性。[0031]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。【权利要求】1.一种在DVB-CI接口中实现命令与传输流复用的方法,其特征在于,包括步骤:将DVB-CI接口中命令接口的链路层的自定义分段格式的命令数据按ISO/IEC13818-1标准中传输流数据包格式进行封装,且封装成的命令数据包中同步字节的值与传输流数据包中同步字节的值不相等;DVB-CI接口的数据发送端利用时分复用器将传输流的数据包和命令数据的数据包时分复用传输;DVB-CI接口的数据接收端利用时分解复用器解析接收到的各个数据包,根据数据包的同步字节区分出传输流数据包和命令数据包。2.根据权利要求1所述在DVB-CI接口中实现命令与传输流复用的方法,其特征在于,还包括步骤:配置时分复用器的码流间隔包参数,时分复用器按照码流间隔包参数将传输流的数据包和命令数据包进行间隔传输。3.根据权利要求2所述在DVB-CI接口中实现命令与传输流复用的方法,其特征在于,当码流间隔包参数配置为零时,时分复用器暂时中断传输数据包,将需要传输的命令数据包插入至传输流数据包的发送队列中。4.根据权利要求1所述在DVB-CI接口中实现命令与传输流复用的方法,其特征在于,还包括步骤:根据DVB-CI接口通信的实时性要求动态配置时分复用器的码流间隔包参数。5.根据权利要求1所述在DVB-CI接口中实现命令与传输流复用的方法,其特征在于,如果数据包中同步字节为0x47,则该数据包为传输流数据包,否则为命令数据包。6.根据权利要求1所述在DVB-CI接口中实现命令与传输流复用的方法,其特征在于,所述自定义分段格式是把命令数据封装成自定义分段格式的数据块。7.根据权利要求1所述在DVB-CI接口中实现命令与传输流复用的方法,其特征在于,DVB-CI接口中命令接口的链路层的自定义分段格式的命令数据通常情况下被封装成一个命令分段数据;如果一个命令数据长度超过65524字节,则将被封装成多个命令分段数据,每个命令分段数据按ISO/IEC13818-1标准中传输流数据包格式进行封装。8.根据权利要求7所述在DVB-CI接口中实现命令与传输流复用的方法,其特征在于,还包括步骤:在时分解复用器解析并判断为命令数据包后,校验命令数据包中命令分段数据的正确性,再从命令分段数据中提取出链路层的命令数据。9.根据权利要求1-8任何一项所述在DVB-CI接口中实现命令与传输流复用的方法,其特征在于,所述自定义分段格式包括:8bit的table_id;lbit的分块同步指示位置section_syntax_indicator,应置‘1’;16bit的命令块长度command_section_length,表明在command_section_length字段之后此分段的字节数;16bit的分块编号section_number,命令数据第一分段的section_number应该为0x00,它将随命令数据的每一个附加分段而增加1;last_section_number16位字段,表示命令数据的最后一个分段的号码;data_byte数据为链路层命令数据的片段或数据单元;32bit的CRC_32字段,包含在处理完整个命令分段后计算CRC输出为零的CRC的值。【文档编号】H04N21/434GK103647981SQ201310720051【公开日】2014年3月19日申请日期:2013年12月24日优先权日:2013年12月24日【发明者】陈金强,徐浩申请人:深圳国微技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1