专利名称::基于数据包总线的包头编码方法和设备的制作方法
技术领域:
:本发明是关于诸如通用串行总线(USB)等的任意基于数据包的总线,尤其是关于通过这样的总线进行视频传输。USB支持功能数据并控制USB主机和USB设备,如一套单向或双向管道,之间的数据交换。USB的数据传输在主机软件和USB设备的一个端接点之间进行,主机软件和USB设备端接点之间的这种关联称为管道。一般地,通过一个管道的数据移动独立于其他管道中的数据流。一个给定USB设备可能有很多管道。例如,一个给定USB设备可能有支持把数据传输到USB设备的管道的一个端接点和支持从USB设备输出数据的管道的另一个端接点。USB体系结构包括数据传输的四种基本类型·控制传输用于在连接时间内配置设备,并可用于其他特定的设备,包括控制设备上的其他管道。·大容量数据传输以大量突发的形式产生并被使用,并在传输限制上有很宽的动态回旋余地。·中断数据传输用于带有可被人理解的回声或反馈响应特性的字符或同等物。·同步数据传输以预定传输延迟占用预定USB带宽。(也称为数据流实时传输)。对于任何给定设备配置,一个管道只支持一种上述传输类型。在第一次连接时,控制数据被USB系统软件用于配置设备。其他驱动软件可以选择使用在特定实现方式下的控制传输。数据传输是无损的。大容量数据一般包含诸如用于打印机或扫描仪的大量的数据。大容量数据是有顺序的。通过硬件纠错和硬件上一定程度的重发,在硬件级别上保证可靠的数据交换。大容量数据所占带宽也可以根据其他总线的操作而变化。一个小的限制时延的到设备或来自于设备的传输是指中断数据。这些数据可以由设备在任何时间产生以备传输,并通过USB以不低于设备规定的速率进行传输。中断数据一般包括事件说明、字符或组织成一个或多个字节的同等物。中断数据的一个例子是来自于指示设备的同等物。虽然不需要显式定时,但交互式数据可能得有响应时间界限,这一点USB必须支持。同步数据是连续和实时的产生、传输和使用的。与定时有关的信息隐含在稳定的速率中,同步数据以该速率被接收和传输。为保证其定时,同步数据必须以接收速率被传输。除传输速率之外,同步数据也可能对传输延时敏感。对于同步管道,所需带宽一般基于相关功能的采样特性。所需延时与每个端点提供的缓存有关。同步数据的典型例子是语音。如果语音数据流的传输率得不到保证,由于缓存器或帧的从欠载运行到过载运行,将会发生数据流丢失数据的情况。即使数据通过USB硬件以合适的速率传输,软件引入的传输延迟也会降低实时性需求方面的应用等级,例如,基于电话的音频会议。同步数据的适时传输是以数据流的潜在瞬时损失为代价来保证的。换句话说,电气传输方面的任何错误都不被硬件机制如重发所纠正。实际上,USB的核心误比特率被预期为足够小而不成为问题。USB同步数据流被分配一段特定的USB带宽以保证数据以希望的速率被传输。USB也被设计成具有同步数据传输的最小时延。USB带宽被分配给管道。当一个管道建立后,USB给管道分配带宽。USB设备需要提供一定的数据缓存。一般认为需要更大带宽的USB设备可提供更大的缓存器。USB体系结构的目标是确保引入缓存的硬件延时小于几个毫秒。USB的带宽能力可以被分配给很多不同的数据流。这允许范围很广的设备连接到USB。例如,可以容纳具有从1B+D直到T1的能力的电话设备。进而,可以支持具有很宽的动态范围的不同比特率的设备。USB规程定义了每种传输类型如何接入总线的规则。一个USB管道是设备端点和主机软件之间的联系。管道反映了通过记忆缓存器在主机软件与设备端点之间移动数据的能力。有两种不同的、互相排斥的管道通信模式·流通过管道移动的数据不具有USB定义的结构。·消息通过管道移动的数据具有USB定义的结构。USB不需要解释它通过管道传输的数据内容。即使一个消息管道需要数据具有USB定义的结构,数据的内容并不被USB所解释。另外,管道具有如下属性·接入USB总线和使用带宽的要求。·一种传输类型。·相关的端点特性,诸如指向性和最大数据有效负载等。数据有效负载是指一个总线作业中在数据包的数据域中装载的数据。一些视频摄象机使用大容量传输模式传输图象数据。其他视频摄象机建立多个管道,每个有它自己的接口硬件,用于传输图象数据、控制数据和同步信息。本发明提供了用于在基于数据包的总线上传输图象数据的一种方法和设备。本发明基本上支持一个单一数据包中的多管道,因而只利用一套单一的管道接口硬件。一个数据包内的每个管道有它自己的包头,任何一个特定的数据包可以有0,1,2或更多的包头。当使用两个或更多包头时,第一个包头识别类型和随后的数据块的长度,它的后面是第一个图象相关数据块。至少有一个第二个包头识别类型和随后的第二个数据块的长度。在一个实施例中,总线是通用串行总线,而单一的数据包是一个同步数据传输帧。包头和图象相关数据块从一帧到下一帧的数量可以变化。图象相关数据可以是图象数据本身,或者诸如同步和控制数据等相关数据。本发明的一个优点是它可以省去摄象机内一个大的帧缓存器。相反,伴随在新包头内产生每个新积累的数据部分,数据可以在积累的时候被发送。因而,即使在具有给定数据长度的第一个包头被建立并把数据打包时,如果在打包期间接收到新图象,它也可以在同一个数据包内用一个新包头来发送。本发明的另一个优点是,当通过与图象数据分享一个USB数据包来限制所需的USB总线带宽时,统计信息的收集可以使用户在压缩之前控制摄象机。为了进一步了解本发明的本质和优点,应参考如下带有附图的描述。图1是本发明的视频摄象机的框图。图2是具有多管道的USB总线框图。图3是USB数据包框图。图4是根据本发明的一个USB数据包的数据域的框图。图5是图4的一个包头的包头域的框图。图6是说明接收数据的搬移和分配到根据本发明包头域的存储器的不同部分的框图。图7A和图7B是本发明摄象机系统不同实施例的方框图。图1是支持本发明的一个视频摄象机的方框图。这个系统包括一个透镜10和一个连接到USB20的传感器阵列12。传感器阵列12可以是CMOS传感器、CCD传感器、或其他任何类型的传感器。来自传感器的信号被送到模拟前端40,它包含一个差分放大器或相关双倍采样器(CDS)42,它产生模拟信号送到自动增益控制(AGC)电路44。然后数据被送到模数变换器(ADC)46。在一个实施例中,传感器和模拟前端被集成在一个单一芯片内。数字化信号,不是象从前那样被存储在帧缓存器内,而是被直接送到数字处理电路48。信号首先被送到视频数字信号处理器50,它完成压缩、限幅、定标、数字滤波和其他数据处理功能。从视频DSP50输出的数据送到总线接口54,它包含总线控制器缓存器56和总线控制器58。优先考虑地,总线控制器缓存器56有能力以最大可能速率存储两个USB帧,或2K字节。取决于帧速率、压缩率等等,它一般最大可以变化到10行,或者如果进行了抽样甚至可达15-20行。总线控制器58在线60上产生一个控制信号到定时发生器62。定时发生器62在线64上产生一个时钟信号到传感器芯片12。时钟信号64包括水平和垂直传输脉冲。在一个实施例中,模拟前端40和定时发生器62作为传感器阵列12被集成在同一块半导体基片41上。省去帧缓存器允许这个单一芯片直接连接到数字处理电路。这导致制造出更小、更便宜的视频摄象机。图2说明了一些USB帧70。每个帧有两个管道72和74。每个单独的管道一般需要单独的电路来产生所需的ID,等等。在一些数字摄象机中,这种方法被用于产生两个管道,一个用于数据信息而另一个用于控制信息。相反,其他的数字摄象机将通过USB使用大容量传输方法。图3是USB数据包76的一个框图。数据包开始于同步域78,后面是包ID80。后面是数据域82,然后是CRC码84。如图4所示,本发明在USB数据包的数据域82产生了一个块。它包含包头86和随后的数据88。在图4的实施例中给出了一个额外的包头90,随后的是额外的数据92。这个额外的包头可以指明诸如控制器同步信息等的不同类型的数据。可替代地,它也可以提供额外的图象数据。它的一个例子是在第一个包头已经建立之后,在数据88的传输完成之前,又接收到额外的图象数据。这样做允许一个额外的包头收集更多的数据92并在同一个USB数据包中发送它。图5说明了根据本发明的一个实施例使用的包头域。下面是不同域的简述。SYS域是一个单一比特,它表明数据类型是系统还是数据。系统包头不携带数据。它用于分组数据或携带同步信息。数据包头携带数据到主机。相应的数据处理器取决于TYPE域。ERR域指明是否发生错误。例如,缓存器溢出时,就会指出错误。当发生错误时,数据被丢弃,收集数据的状态机被复位。TYPE域设置如下的信息类型举例来说,当一个命令被发送到摄象机,并希望知道该命令已经被应用于哪个数据时,可以使用T_SYNCHRO域。例如,可能发送一个命令改变传感器的积分时间,了解这是在什么时候发生的是很关键的,这样主机才能知道哪个数据对应于曝光时间更长或更短的传感器。避免这样的改变发生在一帧的中间是尤其重要的。INFO域允许指示帧头和帧尾。它不是用数据域携带指示信息,而是允许把指示信息嵌入到包头。作为一个例子,一些早期的摄象机发送一个空包来指示帧头和帧尾。TYPEid域值是从设备数据类型描述器(如果在类描述器中已经定义)得到的。这是对应数据类型描述器的索引。数据类型描述器描述对应数据流的内容。SYS域指示数据正在发送,定义了如下数据类型统计信息可以产生与图象内容有关的数据。例如,图象可能太亮或太暗。因而,提供了红、蓝、绿累加器来监视这些和对白平衡的校正。统计数据是很重要的,因为它可以在用户控制施加之前、并可以在数据压缩和主机解压之前被收集。下面是统计数据的优选域。图6说明了根据本发明在USB主机一端的数据接收。给出的是两个USB数据包94和96。第一个数据包给出了三个单独的数据域98、100和102,其中的每一个都有自己的包头。同样地,数据包96有数据域104、106、108和110,其中的每一个都有自己的包头。图中也给出了两个存储器或缓存器112和114。举例来说,缓存器112可被用于图象数据,而缓存器114可被用于统计或同步数据。如不同箭头所示,通过读各自相应的包头并确定数据的归属,数据可以被分别分配到缓存器112和114的合适的下一个位置内。这提供了改进的灵活性和同步传输中USB数据包的最充分利用。图7A和7B是根据本发明的两个不同的实施例的方框图。图7A给出了第一种简单的摄象机,它具有一个连接到压缩电路118的传感器116,压缩电路118与USB接口120相连。图7B给出了一个更复杂的实施例,其中,传感器116也被耦合到压缩电路118和USB接口120,但有中间电路。具体地说,有一个彩色处理电路122,随后接统计收集电路124和用户控制电路126。综上所述,本发明通过一个单一的硬件接口允许使用一个同步USB管道来模拟多管道。它不仅可以用于以多个数据块的形式传输帧信息以实现吞吐量的最大化,而且在传感器一侧,在提供其他控制信息的同时,也提供统计信息。本发明可以被扩展到与当前讨论的不同的数据类型。在接收端,具有不同包头的数据如图6所示可以被分接。第一个包头被解码,得到长度信息,然后处理器可以在完成第一个包头解码和把数据分配到合适位置的同时,预览下一个包头。因而实现了高速分接。本发明允许最大化地使用被分配的管道。当需要的时候,可以插入控制信息,它不需要一个单独的、不经常使用的管道,而是占用用于图象帧数据的数据包的一部分。下面是说明本发明传输运行的一个例子<tablesid="table5"num="006"><table>序号值描述备注1SOFUSBSOF20x80010000Header_T_FRAME,帧头30x00000004包头数据(句柄0)40x000x010x02数据</table></tables>本发明的方法和设备有很多优点。首先,举例来说,通过允许包头指示帧头和帧尾来提供视频帧同步。其次,在一个单一同步USB管道内提供数据复用。再次,通过包头内的域进行检错。最后,允许扩展到不同类型的控制信息或数据。正如通过本
技术领域:
内的人可以理解的,本发明可以以不脱离其必要特征的其他特定形式体现。因此前面的描述被认为是示意性的和非严格限定的,本发明的范围通过附加的权利要求来指明。权利要求1.一种通过基于数据包的总线进行图象数据传输的方法,包括随着每个数据包的数据,提供从零到多个包头的可变数量的包头;每个包头标识后面数据块的至少一种类型和长度;每个包头后面是与图象相关的一个数据块;通过上述基于数据包的总线传输每个数据包。2.权利要求1的方法,其中所述的总线是通用串行总线,进一步包括在同步数据传输的一帧中传输每个数据包。3.权利要求2的方法,进一步包括在单一数据包内传输多个管道。4.权利要求1的方法,其中上述数据包中至少有一个包含一个第一包头和第二包头和随后的数据。5.权利要求1的方法,进一步包括积累缓存器内一帧图象的一部分;以及把该帧的该部分打包进上述单一数据包内,而不用等待该帧剩余部分。6.权利要求1的方法,其中每个包头包含指明数据块是图象数据还是同步信息的系统域;指明图象数据类型的类型域;长度域。7.权利要求6的方法,其中包头进一步包含一个指明数据中的错误的错误比特;一个提供与类型相关的数据的信息域。8.权利要求6的方法,其中在所谓类型域指明的可能的图象数据类型包括视频数据;视频帧的统计数据。9.权利要求1的方法,其中具有第一个包头的第一个与图象有关的数据块包含图象帧的一个积累的部分;具有第二个包头的第二个与图象有关的数据块包含上述图象帧的一个额外的部分,该部分是在把上述第一个数据块打包进上述单一数据包的时候积累的。10.权利要求1的方法,其中具有第一个包头的第一个与图象有关的数据块包含图象帧的一个积累的部分;具有第二个包头的第二个与图象有关的数据块包含同步或控制信息。11.权利要求1的方法进一步包括从上述总线接收上述单一数据包;对第一个包头解码;把与上述第一个包头相关的第一个数据块导向至对应于上述第一个包头的存储器的第一个部分;根据第一个包头长度域确定第二个包头的位置;对第二个包头解码;把与上述第二个包头相关的第二个数据块导向至对应于上述第二个包头的存储器的第二个部分。12.用于通过通用串行总线传输图象数据的方法,包括随着至少一个数据包内的数据,提供(a)标识随后的数据块的至少一种类型和长度的第一个包头,(b)第一个与图象相关的数据块,(c)标识随后的数据块的至少一种类型和长度的第二个包头,(d)第二个与图象相关的数据块;积累缓存器内一帧图象的一部分;把该帧该部分打包进上述单一数据包内,而不用等待该帧剩余部分;在同步数据传输的一帧中传输上述单一数据包;其中上述第一和第二个与图象有关的数据块是多管道的;其中,一个变化数量的包头和随后数据在不同的帧中的数据包内传输;其中每个包头包括指明数据块是图象数据还是同步信息的系统域;指明图象数据类型的类型域;长度域;其中在上述类型域指明的可能的图象数据类型包括视频数据;视频帧的统计数据。13.一种通过基于数据包的总线进行图象数据传输的设备,包括用于积累与图象有关的数据的缓存器;耦合到上述缓存器的总线控制器,,用于随着每个数据包内的数据提供从零到多个包头的可变数量的包头;每个包头标识后面数据块的至少一种类型和长度;每个包头后面是与图象相关的一个数据块;上述总线控制器被配置为通过上述基于数据包的总线传输上述单一数据包。14.权利要求13的设备,其中所述的总线是通用串行总线,所述总线控制器在同步数据传输的一帧中传输上述每一个数据包。15.权利要求13的设备,其中所述缓存器具有只存储一个图象帧的一部分的能力,但至少有足够的数据可以填充到上述总线的两个所述数据包。16.权利要求13的设备,其中每个包头包含一个指明数据块是图象数据还是同步信息的系统域;一个指明图象数据类型的类型域;一个长度域。17.权利要求16的设备,其中每个包头进一步包含指明数据中错误的错误比特;提供与类型相关的数据的信息域。18.权利要求16的设备,其中在上述类型域指明的可能的图象数据类型包括视频数据;视频帧的统计数据。19.权利要求13的设备,进一步包含一个图象传感器;一个耦合到上述图象传感器的彩色处理电路;一个耦合到上述彩色处理电路的统计信息收集电路;一个耦合到上述彩色处理电路的用户控制电路;一个输入端耦合到上述彩色处理电路、输出端耦合到上述缓存器的压缩电路。20.一个系统,包括(1)一个基于数据包的总线;(2)一个连接到上述总线的图象捕捉外设,所述外设包括用于积累与图象有关的数据的缓存器;耦合到上述缓存器的总线控制器,用于随着至少一个数据包内的数据提供(a)标识随后的数据块的至少一种类型和长度的第一个包头,(b)来自于上述缓存器的第一个与图象相关的数据块,(c)标识随后的数据块的至少一种类型和长度的第二个包头,(d)第二个与图象相关的数据块;上述总线控制器被配置为通过上述基于数据包的总线传输上述单一数据包;(3)一个耦合到上述总线的主机,所述主机包括一个微处理器;一个存储器;一个用于与上述总线接口的驱动器,所述驱动器包含用于从上述总线接收上述单一数据包的代码;对上述第一个包头解码;把上述第一个数据块导向至对应于上述第一个包头的上述存储器的第一个部分;根据上述第一个包头长度域确定上述第二个包头的位置;对上述第二个包头解码;把上述第二个数据块导向至对应于上述第二个包头的上述存储器的第二个部分。全文摘要本发明提供了用于在基于数据包的总线上传输图象数据的一种方法和设备,本发明基本上支持一个单一数据包中的多管道,因而只利用一套单一的管道接口硬件,一个数据包内的每个管道有它自已的包头,任何一个特定的数据包可以有0,1,2或更多的包头。文档编号H04L12/64GK1285550SQ0011998公开日2001年2月28日申请日期2000年6月30日优先权日1999年6月30日发明者里米·齐默尔曼,塞尔焦·马吉申请人:罗技电子股份有限公司