通过数据总线管理接收数据的方法及装置的制作方法

文档序号:7591991阅读:231来源:国知局
专利名称:通过数据总线管理接收数据的方法及装置的制作方法
技术领域
本发明涉及通过数据总线管理接收数据的方法。在接收同步数据包时,特别适宜使用这种方法。本发明进一步涉及实现这种方法的装置。这种装置可以是连接数据总线的总线接口的一部分。
现有技术本发明是基于通过独立权利要求1的一般类型的数据总线管理接收数据的方法。长期以来,相当长时间以来,在流行的多媒体的促进下,消费电子(HIFI、视频、音频)和个人计算的产品部门已经进行了合并,并实际上由两个领域的许多制造商所推动。两个产品部门的合并意味着涉及不同产品部门的设备之间的数据交换或一个产品部门内的设备之间的数据交换变得越来越重要。从有关这个主题的标准化的努力来看是很明显的,标准化早已经超前制定出来。具体地说,所谓IEEE 1394串行总线早已经提供了国际标准,并广泛地由两个产品组织接受为终端之间的数据交换总线。上述标准的准确名称是用于高性能串行总线的IEEE标准,(IEEE)STD 1394-1995,IEEE纽约,1996年8月。
在此所要描述的发明涉及上述总线系统内的所谓同步数据传输。在这个系统中,同步指的是被发送的数据规则地出现在数据源上,数据也在每一次以大约相同的尺寸出现。这些数据源的例子是摄像机或便携式摄像机、如CD播放器或DAT记录器、及DVD播放器或视频电话设备的音频设备。发展的国际标准特别适合于同步数据传输的应用。这个标准的准确名称是IEC国际标准61883消费音频/视频设备数字接口,1998年第一版。这个标准的第一部分描述了一般的数据包格式、数据总线管理、音频视频数据的连接管理。同样,定义了控制指令的一般传输规则。
经常的应用涉及MPEG2-编码的视频或音频数据的传输。如已经提到的一样,数据通过总线以数据包传输。在这种情况中,下面的结构具有上面提到的标准IEC 61883在数据源中产生的数据被分成为所谓的具有确定尺寸的数据源数据包。例如,对于MPEG2视频数据传输,规定数据源数据包的标准包括相同尺寸的8个数据包。在这种情况中,可以对数据包尺寸进行编程。它可以在1到256个四字节组之间,其中,四字节组对应4个数据比特的组合。根据这个标准,数据源数据包可被组合在单个总线数据包中被发送。在这种情况下,已接收到数据的设备不出现寻址问题,因为它总明白对每个新接收到的总线数据包而言,完整地被接收的数据源数据包已经到达。
然而,上述标准肯定允许另外的模式,其中少于8个数据块能在总线数据包中被发送。用具体术语说,即有可能发送所谓的伪数据包,即根本不含任何数据块的所谓数据包。然而,在总线数据包中数据块有0和8之间的更多可能的数目是被允许的。现在本发明就涉及这种更一般的传输模式的具体实现。

发明内容
在实现一般的传输模式时发生下列问题。如果偶尔出现总线数据包包含少于8个有用数据的数据块的情形,完整的数据源数据包就不再能在总线数据包发送。因此,数据源数据包的数据块也跟随在下一个总线数据包中。如果8个数据块再一次在下一个总线数据包中被发送,那么,两个数据源之间的数据块边界就不再和总线数据包的末尾同步,而是处于总线数据包中的某处。接收设备中的存储器管理单元就必须搜索这个边界,因为它得提供数据数据包在专用寄存器中何处开始和结束的信息。这一点是必要的,以便它在逐一接收源数据包以后能使数据有用于应用过程。因此,有必要寻找一个解决办法,涉及的问题是在接收设备中如何确定分段传送来的数据源数据包的开头和结尾。
本发明用一种方法达到这个目的,即进行数据块的模-n计数,并在各自的模-n计数的下一个时间间隔的开始,发出新数据源数据包开始的信号。对于传输MPEG-2源数据的特殊情况,即在每一种情况中,数据源数据包包含8个数据块,相应地进行模一8计数。换句话说,计数间隔在计数器读数为0时开始,在计数器读数为7时结束。往后,下一个计数间隔再跟随而来,从计数器读数0开始。
借助于所附从属权利要求中表明的方法的改进。按照IEEE 1394标准,因为每个总线数据包必须经受CRC检验,所以缓冲存储相继的总线数据包的校验结果是适宜的。只有当所有包含数据源数据包的数据块的总线数据包能无障碍地经受CRC校验,才能保证数据没有错误。万一有障碍,CRC错误信号则被输出。整个数据源数据包则不能输送至应用过程。
借助于每个总线数据包中的参考计数器读数以校验被传送的数据的完整性,可按下面的方法来实现对已接收的数据块进行比较计数,每当接收到伴有参考计数器读数的特定数据块时,对参考计数器读数和比较计数的结果两者进行比较,万一不符合则输出错误信号。IEC 61883标准规定对第一个随后的数据块有效的DBC参考值,进入每个总线数据包。通过对已接收的数据块的计数,以及其结果与接收到的参考值相比较,就能容易地确定是否例如一个完全的总线数据包来接收到。用这种手段,错误监控再次得到改善。
下面的手段(它们能规定达到本发明相应目的的途径)对于执行根据本发明方法的装置是有利的。装置首先包括存储单元,所接收到的数据依次被写入其中。其次,提供有存储器管理装置,它特别规定了读入和读出处理的地址。然后是极其重要的模-n计数器,用它来把接收到的数据块加起来,并在模-n计数器开始新的计数间隔时产生数据源数据包开始信号。数据源数据包开始信号被转送至存储器管理装置,然后存储器管理装置给专用寄存器一个相应的条目。这些手段被规定在权利要求5中。
用于根据本发明的装置的其他有利手段也包含在附后的权利要求6-8中。


本发明的示范实施例用图来说明,并在下面做更详细的解释。图中图1表示一般传输模式中的多个相继总线数据包的结构;
图2表示本发明装置的方块图;实施例图1表示一个被发送的总线数据包序列范例。第一个被发送的总线数据包在图1的顶部予以说明,最后一个被发送的总线数据包在图1的底部相应地予以说明。用于同步数据传输的总线数据包,其精细结构用上面所述的IEC 61883标准来规定。所以,为公开本发明,也特意参照了这个标准。
在图1中,参考数字10表示总线数据包的报头。它包括与同步数据数据包的数据字段(精确地说是大量的字节)有关的细节,以及进一步的信息,但这一点在下面不需要做更详细的讨论。总线数据包的报头10后跟一数据字段。后者在涉及所示的第一总线数据包的区域11至15上扩展。在总线数据包的末尾,还有一个其中存储CRC校验字的区域16。一个称作CIP的报头总是被提供在总线数据包的数据字段的开始。CIP是“共用同步数据包”的缩写。CIP报头包含一系列描述同步数据传输的信息项。因此,例如数据源的识别码SID就包含在这里。另外,它规定总线数据包中后继数据块的尺寸。同样,细目FN(分段数)也包含在这里,它规定数据源数据包划分为数据块的数目。如已经描述过的,在MPEE 2视频数据的情况下,每个数据源数据包总是8个数据块。一个更细的细目QPC(四字节组填充计数)涉及到要在数据源数据包末尾附加上多少个填充的四字节组,以保证数据数据包被划分为相同长度的数据块。另外,一个信息项SPH(源数据包报头)被提供,它规定数据源数据包的报头是不是也同样在总线数据包中被提供。另外DBC(数据块计数器)值也被提供。这个值规定总线数据包中哪个数据块是第一数据块。因此,所有数据块是独立地顺序编号的。这个值实际上构成一个参考计数器读数,可以容易地使用这个计数器读数检查总线数据包是否未被收到。为此,已接收到的数据块全部在接收站被相加。每当接收到一个新的总线数据包,包含在其中的DBC值就与计数的比较值进行比较,只有当两个值一致,才表示所有数据块全部被接收,并且没有总线的数据包被丢失。CIP报头中进一步的信息项包括FMT条目(格式ID)。这个条目可用来表示总线数据包中不包含任何数据,是一个所谓的伪数据包的信号。FDF条目(格式依赖字段)也可被确定,提及这一点仅仅是为了叙述的完整性,还有一个SYT条目,它包含总线数据包的时间规范。然后,第一数据源数据包SPO的数据块在相继的区域12、13、14和15跟随。数据块是单个顺序地由DB0至DB3进行编号。数据区域11中的条目0,是要指示这个第一总线数据包的DBC值被设置为0值,它与这个总线数据包的第一数据块有数字0是同义的。当然,这也必须考虑用于比较计数。因此,比较计数从0开始。下一总线数据包包含总计8个数据块。它们驻留在数据字段12至15和17至20。数据源数据包SPO的数据块DB4至DB7附加地包含在这个第二总线数据包中。然后,跟随的是数据源数据包SP1的数据块DB0至DB3,在数据字段11中的细目4指示同步数据传输的第4个数据块可在这个总线数据包中找到。在第三总线数据包中,附加地跟随在数据字段12、13、14、15、17、18中的,是第二数据源未完的数据块DB4至DB7,以及下一个数据源数据包SP2的前两个数据块。因此,这个总线数据包包含的总计六个数据块。在数据字段11中的细目12再一次对应于这个总线数据包的DBC值。这意味着首先跟随在这个总线数据包中数据块是同步传输的第12个数据块。在第四总线数据包中,附加地跟随的是数据源数据包SP2的剩余数据块,即DB2至DB7。在这个总线数据包的数据字段11中的DBC值相应地为18。
第一数据源数据包SP0的数据块与第二数据源数据包SP1的数据块之间的边界位于第二总线数据包的中间。第二总线数据包SP1的数据块与第三总线数据包SP2的数据块之间的边界位于第三总线数据包的最后第三。这些边界必须被确定,为的是在存储器管理单元专用寄存器中能够决定相应的地址条目。
本发明提供一个能够确定数据源数据包边界的解决办法。下面参考图2,对这个解决办法详细说明。图2表示一些与本发明相关的部件。这些部件是IEEE 1394总线接口的数据链路层电路的部件。参考数字30指明为接收和缓存数据所提供的存储器单元。它可以是大存储器单元的部分,正是为了这个目的,在大存储器中简单地配置一个专门区域。被接收的数据通过总线37进入存储器单元30。数据被缓存在存储器单元30,直到它们被转送至应用单元。在这种情况下,数据同样通过总线37输出至应用单元,这在图2中未做专门说明。下列单元也访问存储器单元30CRC校验单元32,模一8计数器33,DB计数器34,数据计数器35,和估算逻辑单元36。所有这些单元通过内部总线38互相连接,并且它们同样都与存储器单元30相连接。存储器管理单元31又是另一个独立的单元。所述的存储器管理单元通过内部总线38同样可访问存储器单元30。因此,存储器管理单元也可用作内部总线38的总线主机,也可将内部总线分配给单个连接的单元。通过单独的总线39,存储器管理单元与存储器单元30相连接。再有,总线40与存储器管理单元相连接,通过这条总线控制,与外部应用单元进行数据交换。一些单独的控制线附加地从估算单元36引到存储器管理单元31。这些线中首先是线41,数据源数据包开始信号SP_SP通过这条线被发送,第二条线是42,错误信号DBC_ERR通过它被输出,第三条线是43,CRC错误信号CRC_ERR通过它被输出。
为了找到数据源数据包的边界,所述装置操作如下各个数据块(它们总归是具有恒定的长度)在模-8计数器31中被计数。如果这个计数器以计数器读数0开始计数,则它将在数据源数据包SP0最后的数据块DB7达到最高值(参考图1),并且在最后的数据块DB7被完全地写到存储器之后,再一次从0开始。然后将数据源数据包开始信号SP_ST输出至存储器管理单元31,而后存储器管理单元将新数据的现时有效地址传送给相应的专用寄存器,用作下一数据数据包的开始。由于数据全都具有相同的长度,所以不需要提供一个专用的将数据源数据包最后数据块的结束地址输入到这里的寄存器。
因为模-8计数器再次将计数器读数设置为0,而后继续计数,所以,它将在数据源数据包SP1的数据块DB7已经写入之后,正好达到计数器读数7。因此,通过估算单元36,数据源数据包开始信号被转送到存储器管理单元31,并且使后者将存储器地址存储到另一个专用寄存器。计数再次从0开始,并且在数据源数据包SP2的数据块DB7接收之后,将重新产生数据源数据包开始信号SP_ST。
但是,为了确保实际所产生的数据源数据包开始信号导致在专用寄存器中传送对应地址,在这个示范实施例中,先决条件是错误信号不是同时在线42,43上出现。这是因为接收的数据已经被检测为包含错误,它们就不再被允许传输到应用单元了。每个被接收的总线数据包在CRC校验单元32中进行无错误的校验。由于处于数据字段16中的每个总线数据包末尾的CRC校验字只涉及本总线数据包的全部数据,所以,数据源数据包无错误的事实只能这样来确定即各个总线数据包的CRC校验结果被收集,并且在每次产生数据数据包开始信号时进行联合地估算。如果一起被考虑的总线数据包的CRC校验字之一,指示一个错误时,则错误信号CRC_ERR通过线43输出。例如,在第一数据源数据包SP0的数据块DB7接收之后,在产生数据源数据包开始信号之后,第一已接收的总线数据包和第二已接收的总线数据包的两个CRC校验结果,必须指示无错误,以便通过线43输出无错误信号。如已说明过的,各个总线数据包的CRC校验在CRC校验单元32中完成。然后,各个校验结果的收集在估算单元36中完成。当涉及数据源数据包的校验结果之一指示一个错误时,错误指示信号CRC_ERR同样也是在估算单元中产生。
DB计数器34对全部已接收的数据块进行相加。依照IEC 61883标准,这个计数器是8位计数器。如果所有总线数据包被正确地接收,在第一,第二和第三数据数据包接收之后,这个计数器将分别具有计数器读数4,12和18。这些值其实也被输入总线数据包2,3,4的数据字般作为参考值。然而,万一计数器不是数据字段11分别规定的计数器读数时,估算单元36将产生已叙述过的错误信号DBC_ERR。
数据计数器35操作如下它以字节为单元对数据进行计数。在IEC61883标准中,数据块的长度以四字节组为单元来规定。数据块长度可被编程;所有数值正好在1和256个四字节组之间是可能的。所规定的值被包含在CIP报头CIPH中。这个值在估算逻辑单元36中被估算,然后利用。数据计数器35则用这样的方法来设置当数据块达到末端值时,所述数据计数器产生一个数据块计数器脉冲,并且将它输出至数据计数器34。
所说的示范实施例的各种改编和更改是可能的,对所说的为外部部件用的各种内部总线和总线的结构,可作各种不同的选择。所解释的装置的一些部件也可用软件实现。本发明不局限于所说的IEEE 1394。它也能用于其它布线总线系统或无线总线系统。
权利要求
1.一种通过总线管理接收的数据的方法,数据在长度可变的总线数据包中被发送,数据被划分为有确定长度的数据块(DB0-DB7),数据块(DB0-DB7)的确定号码n的组合形成数据源数据包(SP0-SP2),数据源数据包(SP0-SP2)在被许可的数据块的结构内逐段地传输,其特征在于进行数据块(DB0-DB7)的模-n计数,以便确定数据源数据包边界,在下一个计数间隔开始时,新的数据源数据包(SP1-SP2)的开始向存储器管理设备(31)发出信号。
2.根据权利要求1所述的方法,其特征在于每个总线数据包经受CRC校验,校验结果被缓冲存储,以便能确定在两个或更多的总线数据包中被发送的数据源数据包(SP0-SP2)是否已经无任何错误地被发送。
3.根据权利要求1或2所述的方法,其特征在于,在每个总线数据包中发送参考计数器读数,以便检验被发送数据的完整性,其中,对已接收的数据块(DB0-DB7)进行比较计数,当接收到与参考计数器读数有关的数据块时,比较计数的结果与参考计数器读数比较,万一不符合,输出一个错误信号(DBC-ERR)。
4.根据前述权利要求之一所述的方法,其特征在于,数据源数据包(SP0-SP2)的数据块(DB0-DB7)的确定号码n对应8,模-n计数对应模-8计数。
5.一种根据前述权利要求之一实现发明方法的装置,包括按顺序写入接收的数据的存储单元(30)和存储器管理单元(31),其特征在于提供了模-n计数器(33),该计数器计数接收的数据块(DB0-DB7),并在下一个计数间隔开始时输出数据源数据包开始信号(SP_ST)。
6.根据权利要求5所述的装置,其特征在于还包括CRC校验单元(32),接收的总线数据包中的数据通过校验单元校验有无错误,如果数据源数据包开始信号(SP_ST)已被识别,多个相继总线数据包的校验结果就被缓冲存储并被组合,其中,如果被组合的校验结果之一含有被识别的错误,CRC校验单元(32)就输出错误信号(CRC_ERR)。
7.根据权利要求5或6所述的装置,其特征在于还包括数据块参考计数器(34),它对接收到的数据块(DB0-DB7)进行比较计数,其中,提供有比较装置,它比较数据块参考计数器(34)的计数器读数和接收到的总线数据包的参考计数器读数,万一不符合时,输出错误信号(DBC_ERR)。
8.根据前述权利要求之一所述的装置,其特征在于还包括数据计数器(35),通过它,数据被以字节为单元进行计数,如果已被计数的数据号码与被确定属于一个数据块(DB0_DB7)的数据一样多,它就输出数据块计数信号。
9.根据前述权利要求之一所述的装置,其特征在于数据总线根据IEEE 1294标准设计,装置在这个数据总线的接口中是数据链接层模块的一部分。
全文摘要
通过IEEE1394总线的同步数据数据包的传输格式被规定在IEC61883标准中。在这种情况下,有可能使用一种操作模式,其中,在总线数据包中传送的总是相同数目的数据块(DB0-DB7)。这样,存储器管理极为简单,数据源数据包的边界也容易确定。但是,IEC61883标准也留有缺口,即可能借助于总线数据包,在同步数据传输范围内进行可变数目的数据块(DB0-DB7)传输。然而在这种情况下,相继地确定数据源数据包的边界是一个问题,本发明提出一个解决方法,从成本的角度看是令人满意的,涉及到如何能容易地使数据源数据包边界再现。它在本质上以数据块(DB0-DB7)的模-n计数为基础。
文档编号H04L13/08GK1342288SQ00804539
公开日2002年3月27日 申请日期2000年3月13日 优先权日1999年3月25日
发明者西格弗里德·施魏德勒, 蒂莫西·海威, 克劳斯·格特克 申请人:汤姆森许可贸易公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1