用于支持多流格式的网络接口卡及其方法

文档序号:7617588阅读:142来源:国知局
专利名称:用于支持多流格式的网络接口卡及其方法
技术领域
与本发明一致的装置和方法涉及网络接口卡,尤其涉及用于支持多流格式的网络接口卡。
背景技术
随数字技术的广泛传播和发展,用户可以使用各种数字设备。例如,多种数字音频或视频设备(下面称为“AV设备”),诸如DVD播放器、有线机顶盒、数字录像机(DVCR)、数字电视(DTV)和个人计算机(PC)可以连接到一个网络。这些AV设备可以通过各种网络接口(网络I/F)和作为设备间通信语言的协议来传输和/或接收诸如MPEG2传输流的AV流。
近来,一些消费者电子公司已经组成数字家庭工作组(DHWG),以便保证AV设备之间的灵活性并激活家庭网络市场。DHWG的目标是通过使用现有标准化技术而不是采用新的国际标准化技术,使得在市场上尽块出现数字家用设备。为此,必须需要支持设备间网络通信的功能。
为了实现这样的设备间的网络通信,必须定义用于通过网络传输和/或接收数据的通信协议,并且必须在每个设备上安装用于支持通信协议的网络接口卡。
按照惯例,如图1所示,仅在设备的主I/F之间经由第一路径传输和/或接收网络协议(IP)分组,并且仅在设备的流I/F之间经由第二路径传输和/或接收诸如MPEG2传输流(MPEG2-TS)的非IP分组。这里,主I/F表示用于将网络I/F卡100连接到与主中央处理器单元(CPU)链接的通信总线上的接口。例如,主I/F将网络I/F卡连接到外部设备互连(PCI)总线或工业标准结构(ISA)总线上。此外,流I/F表示用于提供未转换为IP分组的原始AV流,或用于与用来接收和再现原始AV流的AV解码器/编码器连接的接口。
如上所述,根据现有技术,仅可以在主I/F之间或仅在流I/F之间传输和/或接收数据,所以现有技术无法适用于各种设备。例如,服务器单元通过使用IP分组传送AV流,但是客户机不能接收IP分组。在这种情况下,客户机需要采用高级CPU或额外的硬件以便处理IP分组。结果,设备的价格可能升高。

发明内容
本发明提供用于支持多流格式的网络接口卡及其方法,通过各种接口它可以输出通过使用各种协议传送的实时数据。
本发明提供用于支持多流格式的网络接口卡及其方法,它可以在一个设备中的主I/F和流I/F之间传输/接收实时数据。
根据本发明一个方面,提供一种网络接口卡,包括连接到与主CPU链接的通信总线的主接口;连接到AV解码器/编码器的流接口;连接到网络的网络接口;和数据传输模块,包括标记产生单元,用于生成记录AV流的时间信息的标记并将标记添加到通过流I/F输入的AV流中,汇聚器,用于汇聚其中产生了标记信息的预定量的AV流,以便形成一个分组,和头附加单元,用于产生包含关于要传送的分组类型和分组传输方向的信息的、预定的头并将预定的头添加到分组。
为了将AV流转换为IP分组,数据传输模块还包括UDP头附加单元,用于将UDP头附加到分组,和IP头附加单元,用于将IP头附加到添加了UDP头的分组中,以便将分组提供到头附加单元。
通过使用子网访问协议(SNAP)头的类型字段可以标记分组的类型,并且通过使用逻辑链路控制(LLC)头的目的服务访问点(DSAP)字段和源服务访问点(SSAP)字段标记分组的传输方向。
传输方向可以分为主接口的方向和流接口的方向。
可以将标记记录为使用由时钟产生单元提供的预定时钟的计数值。
根据本发明的一方面,提供一种网络接口卡,包括连接到与主CPU链接的通信总线的主接口;连接到AV解码器/编码器的流接口;连接到网络的网络接口;和数据接收模块,包括分析器,用于读取预定的头以便确定输入分组的类型和传输方向,头移除单元,用于从输入分组中移除预定的头,标记记录单元,用于如果移除预定头的分组没有标记则每单位字节产生时间戳(time stamp)并将时间戳附加到分组,和标记移除单元,用于通过在对应于时间戳的时间上接收移除了预定头的分组,来移除接收到的分组中存在的标记,以便产生AV流并用于通过流接口输出所产生的AV流。
当输入分组的类型是IP分组时为了处理输入分组,数据接收模块还包括IP头移除单元,用于从分组中移除IP头;和UDP头移除单元,用于从移除了IP分组头的分组中移除UDP头,以便将分组提供到标记记录单元。
当输入分组的类型是IP分组时为了处理输入分组,数据接收模块还包括IP头移除单元,用于从分组中移除IP头,UDP头移除单元,用于从移除了IP分组头的分组中移除UDP头,和RTP头移除单元,用于从移除UDP头的分组中移除RTP头,以便将分组提供到标记记录单元。
通过使用对应于将要标记的分组的预定量字节数的时间值可以产生时间戳,这是通过根据本地时钟计算输入比特率得出的。
为了产生时间戳,如果移除了预定头的分组具有参考时钟信息,通过检测参考时钟信息并统一分配关于包含在参考时钟内的数据的时间,可以在标记内产生标记的时间信息。
可以计算根据RTP时间戳输入的参考时钟的比特率,并将其表示为标记的时间戳参考时钟,从而产生每个标记,其中RTP时间戳由RTP头移除单元传送并包含在RTP头中。
根据本发明的一个方面,提供一种在网络接口卡中的数据传输方法,数据传输方法包括(a)产生记录时间信息的标记并将标记附加到输入到流I/F的AV流中;(b)通过汇聚产生标记信息的、预定量的AV流形成一个分组;(c)当将AV流转换为IP分组并同时传送时,将UDP头和IP头附加到分组中;(d)产生包含关于要传输的分组的类型和分组的传输方向的信息的预定头并将预定的头添加到分组中;和(e)通过将MAC头添加到其中已添加了预定头的分组来形成媒体访问控制(MAC)帧,并将MAC帧传送到网络。
根据本发明一个方面,提供在网络接口卡中的数据传输方法数据接收方法包括(a)产生记录时间信息的标记并将标记附加到输入到流I/F的AV流中;(b)通过汇聚其中产生标记信息的、预定量的AV流形成一个分组;(c)当将AV流转换为IP分组并传送时,将UDP头和IP头附加到分组;(d)产生包含关于要传输的分组的类型和分组的传输方向的预定头并将预定的头添加到分组中;和(e)通过上行链路回送路径输出添加了预定头的分组。
根据本发明一个方面,提供在网络接口卡中的数据接收方法,数据接收方法包括(a)读取预定的头并确定输入分组的类型和输入分组的传输方向;(b)从输入分组中移除预定的头;(c)如果分组的传输方向与主I/F的方向相同,通过主I/F输出其中移除了预定头的分组;(d)如果移除了预定头的分组没有标记,则在每预定字节单位产生时间戳并将时间戳添加到分组中;(e)通过在对应于时间戳的时间上接收移除了头的分组来产生AV流并移除接收到的分组中存在的标记,并且通过流I/F输出所产生的AV流。
数据接收方法还可以包括如果分组的传输方向与流I/F的方向相同并且分组中存在IP头,则从移除了预定头的分组中移除IP头和UDP头。


通过结合附图对本发明的优选实施例进行详细描述,本发明的上述目的和优点将会变得更加清楚,其中图1显示现有网络I/F卡的数据传输/接收方向;图2显示根据本发明示例性实施例的网络I/F卡的数据传输/接收方向;图3是显示根据本发明示例性实施例的网络I/F卡的外观的视图;图4是显示根据本发明示例性实施例的AV设备的内部结构的示意图;图5是显示根据本发明另一示例性实施例的AV设备的内部结构的示意图;图6A是显示在图2所示的第六路径中的数据流的视图;图6B是显示在图2所示的第三路径中的数据流的视图;图6C是显示在图2所示的第四路径中的数据流的视图;图6D是显示在图2所示的第二路径中的数据流的视图;图6E是显示在图2所示的第五和第六路径中的数据流的视图;图7是显示根据本发明示例性实施例的网络I/F卡的数据传输模块的结构的方框图;图8是显示在目的设备中使用由源设备记录的时间信息的过程的视图;图9是显示根据本发明示例性实施例的网络I/F卡的数据接收模块的结构的方框图;图10是显示RTP头格式的结构的视图;图11是显示UDP头格式的结构的视图;图12是显示IP头格式的结构的视图;图13是显示TAG分组格式的结构的视图;
图14是显示汇聚的分组的格式的结构的视图;图15是显示包含AV流的IP分组的格式的结构的视图;图16A和16B是显示其中LLC头和SNAP头附加到IP分组的格式的结构的视图;图17是显示LLC头和SNAP头格式的结构的视图;图18是显示MAC帧格式的结构的视图;图19是表示网络I/F卡的数据传输模块的操作的流程图;及图20是表示网络I/F卡的数据接收模块的操作的流程图。
具体实施例方式
下面将结合附图详细描述本发明的示例性实施例。
通过结合附图从示例性实施例的详细描述中,本领域技术人员将了解本发明的优点和特性,以及实现它们的方法。然而,本发明的范围不限于在说明书中公开的示例性实施例,并且可以以各种类型实现本发明。给出描述的示例性实施例仅用于完全公开本发明并帮助那些本领域技术人员完全理解本发明的范围,并且仅仅由权利要求的范围定义本发明。此外,在说明书和附图中使用相同的附图标记指示相同的元素。
图2是显示根据本发明的网络I/F卡100提供的数据输入/输出方向的视图。与现有网络I/F卡相似,网络I/F卡100经由第一路径1和第二路径2可以支持接口间的AV流输入/输出,同时支持不同方向的数据输入/输出。
详细地讲,当从一个设备的主I/F输入的数据通过第四路径4被输出到另一个AV设备的流I/F时,当从一个AV设备的流I/F输入的数据通过第三路径3被输出到另一个AV设备的主I/F时,当从一个AV设备的主I/F输入的数据通过第六路径6(即下行链路回送)被输出到AV设备的流I/F时,并且当从一个AV设备的流I/F输入的数据通过第五路径5(即上行链路回送)被输出到AV设备的主I/F时,网络I/F卡100支持数据输入/输出。
图3是显示根据本发明示例性实施例的网络I/F卡100的外观的视图。卡100包括网络I/F103,用于提供将卡100连接到网络的接口;主I/F102,用于提供将卡100连接到诸如PCI总线、ISA总线之类的通信总线20的接口,其中该总线链接CPU30和外部卡;和流I/F101,用于提供将卡100连接到AV解码器/编码器10的接口。
这里,AV解码器/编码器10包括AV解码器,用于接收诸如通过网络I/F卡100的流I/F输入的MPEG2-TS之类的AV流,并且通过对AV流解码将AV流显示为音频和视频信号;或AV编码器,用于再现AV流以便将AV流提供到网络I/F卡100。即,AV解码器/编码器10根据AV流类型解压缩AV流,以便将AV流恢复为原始的音频或视频数据。此外,AV解码器/编码器10根据原始音频或视频数据通过诸如MPEG的预定的压缩方法来产生AV流。
本领域技术人员公知的是AV解码器/编码器10可以实现为一个芯片结构或具有上述功能的、分离的单元。
如上所述,根据本发明的网络I/F卡100可以允许在各种服务器/客户机环境中使用AV设备。例如,AV设备(服务器)接收由AV编码器10产生的MPEG2-TS,通过网络I/F卡100内的处理而不需要主CPU 30的帮助来产生IP分组,并且将产生的IP分组传送到AV设备(客户机)。
类似地,AV设备(客户机)在网络I/F中处理传来的IP分组而不需要主CPU 30的帮助,并且将IP分组恢复为MPEG2-TS,从而立即将恢复的MPEG2-TS传送到AV解码器10。
图4是显示根据本发明示例性实施例的AV设备100的内部结构的示意图。网络I/F卡100通过主I/F连接到诸如PCI总线或ISA总线之类的通信总线。此外,AV设备10的CPU30连接到通信总线,以便与网络I/F卡100通信。此外,主CPU30可以,通过额外的总线(未示出)连接到诸如被安装用来装载将要运行的数据、程序等的RAM之类的易失性存储器40,并且可以通过额外的总线(未示出)连接到诸如用于存储程序、数据等的ROM、硬盘、CD-ROM之类的非易失性存储器50,这样主CPU 30可以处理加载的程序。
非易失性存储器50可以存储以MPEG2-TS格式存储的AV流和程序,该程序可以通过将AV流改变为分组来产生实时传输协议(RTP)分组、用户数据报协议(UDP)分组或因特网协议(IP)分组。此外,非易失性存储器50可以存储通过从接收的IP分组中移除IP分组的头来产生AV流的程序。由主CPU30处理上述所有程序。
同时,网络IF卡100可以通过流I/F立即连接到AV解码器/编码器10,以便立即将AV流输出到AV解码器/编码器10或立即从AV解码器/编码器10接收AV流。
与图4所示的AV解码器/编码器10不同,图5是显示AV设备10安装在AV设备100之外的示意图。例如,如果AV设备100是PC,可以将DVD播放器连接到PC的外面。如上所述,可以在AV设备100的内部或外部放置用于将AV流解码为原始AV数据或将原始AV数据编码为AV流的单元。
图6A是显示在图2所示的第六路径中的数据流的视图。这里,因为第一路径和第二路径等同于现有技术中的路径,因此将省略关于第一路径和第二路径的描述。第三路径用于通过一个AV设备中的路由①和③将数据传送到网络,或通过另一个AV设备的路由④和⑦将数据传输到主CPU。此外,第四路径用于通过一个AV设备的路由⑥和③数据传送到网络,或通过另一个AV设备的路由④和②将数据传输到AV解码器/编码器。
此外,第五路径(上行链路回送)用于通过一个AV设备的路由①、⑤和⑦将数据传输到AV设备的主CPU。最后,第六路径(下行链路回送)用于通过一个AV设备的路由⑥、⑤和②将数据传输到AV设备的AV解码器/编码器。
在图6B到6F中显示了使用这些不同路径的例子。图6B是显示在第三路径中实现的数据流的例子的视图。这里,通过使用诸如实时流协议和超文本传输协议之类的因特网协议族(IPs)的分组来实现服务器和客户机之间的控制。此外,数据作为AV流输入到流I/F,通过服务器的网络I/F卡100以便转换为IP分组,然后输出到客户机的主I/F。
图6C是显示在第四路径中实现的数据流的例子的视图。这里,通过使用诸如RTSP和HTTP之类的IPs分组来实现服务器和客户机之间的控制。此外,以通过主I/F输入的IP分组的形式传送数据,然后在客户机中的网络I/F卡100中移除所传送的数据的IP头、UDP头和RTP头,以便输出到客户机的流I/F。
图6D是显示在第二路径中实现的数据流的例子的视图。这里通过使用诸如RTSP和HTTP之类的IPs分组来实现服务器和客户机之间的控制。此外,以非IP数据的形式将数据输入到服务器的流I/F并将其传送到客户机。然后,所传送的非IP数据输出到客户机的流I/F。
图6E是显示在第五路径(上行链路回送)和第六路径(下行链路回送)中实现的数据流的例子的视图。在一个AV设备(服务器或客户机)中,在网络I/F卡100中将作为通过流I/F输入的非IP数据的AV流改变为IP分组并将其输出到主CPU 30(上行链路回送)。此外,在一个AV设备中,在网络I/F卡100中通过头移除过程将通过主I/F输入的IP分组改变为AV流(非IP数据),并传送到流I/F。如上所述,可以将采用网络I/F卡100的回送的示例性实施例主要用于PVR应用中。
图7是显示图6A所示的数据传输模块130的结构的视图。
标记产生单元131产生用于记录AV流的时间信息的标记信息,并且将标记信息添加到通过流I/F从AV编码器10输入的AV流。通过时钟产生单元(未示出)提供的27MHz的时钟将时间信息记录为计数值。然而,如果用户需要,可以在标记中记录‘NULL’值。本领域技术人员通常知道具有‘NULL’值的标记的AV流与不具有标记的AV流相似。
以下,将参照图8描述当由源设备记录在标记中的时间信息被传送到目的设备时,在目的设备中使用标记信息的过程。无论何时MPEG2-TS输入到数据传输设备的流I/F,标记产生单元131将内部时钟的时间计数值记录为标记信息。详细地讲,将计数值‘t1’、‘t2’和‘t3’分别记录到第一份组、第二分组和第三分组的标记中。
然而,当通过网络传送分组时,可以不间断地传送分组。目的设备以上述方式接收分组,恢复原始时间间隔,然后通过流I/F将MPEG2-TS传送到AV解码器10。假设在计数值‘t4’通过流I/F输出第一分组,在等待第一标记和第二标记之间的时间间隔后输出第二分组,即当达到计数值‘t5’时输出第二分组。此外,等待第二标记和第三标记之间的时间间隔后输出第三分组,即当达到计数值‘t6’时输出第三分组。
如上所述,根据源设备的原始时间间隔通过流I/F输出AV流,以便可以在AV解码器10中及时地解码AV流。如果不使用该标记,则因为当在AV解码器10中再现音频或视频信号时再现的音频或视频信号不匹配实际再现速率,可能出现问题。然而,根据设备的特性可以不在标记中记录时间信息。
同时,根据编码方法可以提供几种AV流。例如,使用与诸如MPEG、MPEG2、MPEG4和H.264之类的编码方法匹配的AV流格式。在下面的本发明示例性实施例描述中,将MPEG-TS作为AV流的例子描述。
在图13中显示了具有由标记产生单元131附加在其上的标记的格式。
汇聚器133汇聚从复用器132传送的、预定量的数据,以便形成一个分组。此时,传送的数据可以具有一个附加在其上的标记或没有标记。在图14中显示了通过使用由汇聚器133汇聚的预定量的数据形成的分组的格式。
当汇聚的数据支持RTP协议时,RTP头附加单元139将图10所示的RTP头插入汇聚的数据中。如果汇聚的数据不支持RTP协议,绕过RTP头附加单元139。这里,根据RTP协议规则RTP头的每个字段具有含义。图10是详细显示RTP头格式的结构的视图。RTP头包括版本号(V)字段、填充(P)字段、扩展(X)字段、标记信息(M)字段、负载类型(PT)字段、序列号字段、RTP时间戳字段、同步源标识符(SSRC ID)字段和贡献(contributing)源标识符(CRSC)字段。
当移除RTP头时,通过RTP时间戳实现控制处理时间的过程。此外,可以控制或产生实时视频信号或语音信号。
UDP头附加单元140将图11所示的UDP头附加到由RTP头附加单元139传送的数据中,或者附加到通过旁路路径从汇聚器133立即传送的数据中。根据UDP头的定义每个UDP头具有含义。UDP提供连接应答服务和简单的头格式。如图11所示,UDP头包括16比特的源端口号字段、16比特的目的端口号字段、表示数据长度的16比特的UDP长度字段和用于确保UDP分组的可靠性的UDP校验和字段。由于UDP具有如上所述的简单格式,降低了开销并且简化了控制。
如上所述,UDP被设计成使得可以按照最小的开销传输/接收数据。为此,UDP仅具有关于四个字段的简单信息,并且不包括类似TCP那样的关于标识分组序列的字段的信息。因此,因为网络I/F100具有低于主CPU 30的处理能力,虽然主CPU基本上都处理TCP/IP分组和UDP/IP分组,根据本发明的网络I/F100仅处理UDP/IP分组,其中可以以相对简单的方式处理UDP/IP分组。
IP头附加单元141将图12所示的IP头添加到从UDP附加单元140传送的数据上。根据IP头的定义IP头的每个字段具有含义。图12是详细显示IP头格式的结构的视图。
IP头包括表示诸如IPv4和IPv6之类的版本的字段、表示IP头长度的头长度字段、包含优先级信息的服务类型(TOS)字段、分组长度字段、分组标识符字段、作为关于IP层中数据分段的控制信息的标记(flag)字段、表示分段数据的位置的分段偏移字段、表示直到数据被破坏的时间信息的存活时间(TTL)字段、表示在上层使用的诸如TCP、UDP等协议的上层协议字段、用于检查IP头的错误的头校验字段、用于记录源设备的IP地址的源IP地址字段和用于记录目的设备的IP地址的目的IP地址字段。
这里,源IP地址等于由主CPU在IP分组中写入的源IP地址。此外,目的IP地址字段可以具有单播地址、组播地址或广播地址。
复用器134选择多个输入之一。这里,输入包括从汇聚器133传送的数据(见图14)和从IP头附加单元141传送的数据(见图15)。在本应用中,“IP_H”、“UDP_H”和“RTP_H”分别指的是IP头、UDP头和RTP头。这里,如果不支持RTP协议可以省略RTP_H。
如图17所示,LS头附加单元135根据IEEE 802.2标准附加逻辑链路控制(LLC)头和SNAP头。两个头具有8字节的长度。此外,合并的LLC和SNAP头称为“LS头”。
根据本发明,根据诸如IP分组和非IP分组之类的、要传送的数据类型并根据诸如主I/F方向和流I/F方向之类的、目的设备的最终传送方向提供四种情况。
首先,当以主I/F方向传送IP分组时,根据在RFC 1042(征求意见文件1042)标准中定义的内容确定LS头的每个字段值。因此,与通过现有技术的IP分组传输相同,包括“DSAP/SSAP/cntl/Org/类型”字段的LS头可以具有“AA/AA/03/000000/0800”值。这里,“AA/AA”意味着IP分组必须输出到数据接收设备的主I/F,并且“0800”指的是多种分组的IP分组。
其次,当以流I/F方向传送IP分组时,必须将DSAP/SSAP字段的值定义为新值来替代“AA/AA”。例如,LS头“CC/CC/03/000000/0800”表示以流I/F方向传送IP分组同时保持关于现有因特网协议族的互通性。这里,当将LS头附加到IP分组时,合并的分组具有图16A所示的格式。
第三,当要传送的数据包括非IP分组,并且以主I/F方向传送非IP分组时,将LS头标记为例如“AA/AA/03/000001/f000”,使得非IP分组可以保持关于现有因特网协议族的互通性。这里,“f000”表示传送非IP分组。
最后,当必须以流I/F方向传送非IP分组时,当以流I/F方向传送非IP分组时,将LS头标记为“CC/CC/03/000000/f000”。这里,当将LS头附加到非IP分组时,合并的分组具有图16B所示的格式。
在这些情况下,可以没有问题地传送IP分组。然而,当在AV设备之间传送非IP分组时,由于不存在IP地址,仅通过MAC地址(见图18)确定目的设备。这里,假定AV设备预先知道他们的合作设备的MAC地址。
然而,如果用户要求,可以绕过LS头附加单元135。换句话说,可以省略LLC头(LLC_H)和SNAP头(SNAP_H)。在其中省略LLC头和SNAP头的旁路(bypass)模式中,由于很难知道当前传送的分组是IP分组还是非IP分组,很难通过为每个分组指定流I/F或主I/F来传送每个分组,因此,在旁路模式中,根据用户的意图仅能以流I/F方向或仅能以主I/F方向传送由目的设备接收的分组。
缓冲器136暂时存储从LS头附加单元135或复用器134输入到其上的数据。输入暂时存储在缓冲器136的数据作为在MAC模块137中产生的MAC帧的负载数据。此外,根据物理层的特性和通过主I/F和流I/F输入的数据的比特率确定缓冲器136的大小。此外,存储在缓冲器136中的分组具有图16A或16B所示的格式。
MAC模块137控制在MAC层中产生MAC帧所需的操作。这里,如图18所示,通过合并MAC头和通过使用具有图16A和16B所示的格式的数据形成的负载来形成MAC帧。MAC头包括用于记录接收MAC帧的设备的MAC地址的目的MAC地址字段、用于记录传送MAC帧的设备的MAC地址的源MAC地址字段。
PHY模块138控制PHY层的操作。PHY模块138将MAC帧的数字数据转换为模拟信号,并且通过网络或诸如LAN电缆、空气等传输媒介将模拟信号传送到另一个设备。虽然在本发明中将MAC层和PHY层定义为它们是根据IEEE 802.3标准的有线以太网形成的,但是本发明不限制MAC层和PHY层的范围。即,根据本发明另一个实施例,可以采用根据IEEE 802.11x标准的MAC层和PHY层。
同时,当AV设备200传送由主CPU 30处理的IP分组时,缓冲器142暂时存储通过主I/F传送的IP分组,然后将IP分组提供到MAC模块137。接下来,通过MAC模块137和PHY模块138将IP分组传输到网络。
根据本发明的、具有数据传输模块130和数据接收模块160的AV设备200可以通过AV设备的流I/F以MPEG2-TS的形式输出通过AV设备的主I/F输入的IP分组。此外,AV设备200可以通过AC设备的主I/F以IP的形式输出通过AV设备的流I/F输入的MPEG2-TS。如上所述,根据本发明,在AV设备200的主I/F和流I/F之间转换数据以及传输转换的数据的操作称为“回送”。
首先,关于从主I/F到流I/F的回送(以下简单称为“下行链路回送”),通过主I/F输入并存储在缓冲器142中的IP分组不输入到MAC模块137中,而是通过回送输入到数据接收模块160的LS分析器164中。接下来,在通过预定的块(block)后通过流I/F将IP分组作为MPEG-TS输出。这里,将参照显示数据接收模块160的操作的图9描述通过预定块的IP分组的传输。
接下来,关于从流I/F到主I/F的回送(以下称为“上行链路回送”),通过流I/F输入的MPEG2-TS通过数据传送单元130的块,然后按上述方式输入到缓冲器136。输入到缓冲器136的数据可以通过回送输入到数据接收模块160的LS分析器164,然后可以通过缓冲器175,以便通过主I/F以IP分组的形式传送到主CPU30。
图9是表示数据接收模块160的方框图;PHY模块166恢复包含在通过网络I/F从另一设备传送的模拟信号中的IP分组或非IP分组。此外,MAC模块165从分组中移除MAC头。
如果移除了MAC头的分组具有LLC头和SNAP头,则LC分析器164读取LLC头和SNAP头,以便确定分组是IP分组还是非IP分组以及分组将传送到主I/F还是流I/F。如果LLC头的DSAP/SSAP字段具有“AA/AA”值,则分组将传送到主I/F。如果LLC头的DSAP/SSAP字段具有“CC/CC”值,则分组将传送到流I/F。此外,如果SNAP头的类型字段具有“0800”值,则该分组是IP分组。如果SNAP头的类型字段具有“f000”值,则该分组是非IP分组。
如上所述,通过调节每个分组的类型字段的值可以确定将分组传输到主I/F还是流I/F。如果不存在LLC头和SNAP头,则分组可以传输到预先指定的位置。在这种情况下,基本上将分组传输到主I/F。
此外,LS分析器164可以通过回送从包括LS分析器164的数据传输模块130以及从MAC模块165接收传输数据。
详细地讲,当执行回送时,LS分析器164从数据传输模块130的缓冲器136接收传输数据,以便分析LLC头和SNAP头(DSAP/SSAP的值是“AA/AA”还是“CC/CC”)。作为分析的结果,LS分析器164找出传输数据是否必须传送到主I/F(上行链路回送)或流I/F(下行链路回送)。
如上所述,LS分析器164不必了解传送的数据是通过回送路径接收的还是通过网络从另一个设备接收的。即,根据传输的数据的传送方向,LS分析器足可以以主I/F的方向或流I/F的方向传送数据。
LS头移除单元163从LS分析器164传送的数据中移除LLC头和SNAP头,然后如果除去移除LLC头和SNAP头后在数据中存在IP头,则向IP头移除单元173发送移除了LLC头和SNAP头的数据。如果不存在IP头,LS头移除单元163确定没有LLC和SNAP头的数据中存在的标记是否具有“NULL”值。作为确定的结果,如果标记不具有“NULL”值,则立即将数据存储在缓冲器162中,这是因为已经记录了标记,即时间戳。如果标记具有“NULL”值,则通过复用器170将数据传送到标记记录单元169。
IP头移除单元173读取从LS头移除单元163传送的数据,即,读取IP分组的IP头以便检查目的IP地址是否是包含IP头移除单元173的设备的IP地址。如果目的IP地址是设备的IP地址,则IP头移除单元173从数据中移除IP头。
UDP头移除单元172从移除IP头的数据(下面简单称为“IP负载”)中读取数据的UDP头,以便检查目的端口是否是UDP头移除单元172的端口。如果目的端口是UDP头移除单元172的端口,UDP头移除单元172从IP负载中移除UDP头。此外,UDP头移除单元172确定移除了UDP头的数据(下面称为“UDP负载”)中是否存在RTP头。如果UDP负载中存在RTP头,则将UDP负载发送到RTP头移除单元171。在UDP负载中不存在RTP头的情况下,如果存在于UDP负载中的标记是“NULL”值,则通过复用器170将UDP负载传送到标记记录单元169。如果存在于UDP负载中的标记没有“NULL”值,则通过复用器168将UDP负载传送到缓冲器162。
RTP头移除单元171从UDP负载中移除特定大小的RTP头,并且通过复用器170将移除了RTP头的数据传送到标记记录单元169。此时,RTP头的RTP时间戳(见图10)被传送到标记记录单元169。
错误检查单元174从IP头移除单元173、UDP头移除单元172和RTP头移除单元接收错误信息,以便检查在IP头移除单元173、UDP头移除单元172和RTP头移除单元中是否存在错误。如果IP头移除单元173、UDP头移除单元172和RTP头移除单元包含错误,错误检查单元174可以移除对应于错误的数据,或者无视错误传送数据。这些错误信息包括序列号、UDP校验和和IP头校验和。
标记记录单元169按预定字节单位将所需的标记附加到具有“NULL”标记的数据中。例如,在MPEG2-TS的情况中,标记记录单元169每188字节单位将所需的标记附加到MPEG2-TS中。这里可以使用各种算法来产生标记。在本发明示例性实施例中,将描述作为例子的三种算法。
首先,通过根据本地时钟计算输入比特率来计算对应于将要标记的分组的字节的时间值,以便使用用于标记的时间值。例如,如果要标记的分组的字节是188字节,则通过根据本地时钟将输入比特率转换为27MHz的时钟并每188字节单位添加增加值来在每188字节单位产生标记。
其次,如果接收的数据具有参考时钟信息,则通过检测参考时钟信息并且统一分配关于包含在参考时钟周期中的数据的时间,来产生标记的时间信息。
第三,可以使用包含在RTP头中的、从RTP头移除单元171传送的RTP时间戳(参照图10)。在这种情况下,计算根据RTP时间戳的参考时钟输入的比特率,并且将其表示为标记的时间戳参考时钟,从而产生标记。可以由用户或通过默认值自动选择这些算法。
然后,通过复用器168将具有由标记记录单元169记录的标记的数据传送并存储到缓冲器162中。
时间戳比较单元167具有随着时间戳比较单元接收本地时钟而增长的计数值,并且在初始阶段可以使用从外部设备提供的时间戳值初始化该计数值。此外,该计数值与存储在缓冲器162中的标记值比较并在计数值等于标记值的时间点发送到标记移除单元161。
标记移除单元161从存储在缓冲器的数据中移除标记并输出移除了标记的数据,其中该数据是对应于流I/F的输出形式的MPEG2-TS。
在本申请中,图7和9中显示的部件意味着诸如FPGA或ASIC之类的软件或硬件,并且执行预定的功能。然而部件不限于软件或硬件。可以形成部件以使得部件存储在可寻址的记录介质中。此外,可以形成部件使得执行一个或多个处理的方式。例如,部件包括软件部件、面向对象软件部件、类部件、任务部件、处理、功能、属性、过程、子程序、程序代码片断、驱动器、固件、微代码、电路、数据、数据库、数据格式、表、阵列和变量。此外,可以通过相互合并部件以少量部件,或者通过分割部件以大量部件实现以上部件提供的功能。
图19是表示网络I/F卡100的数据传输模块130的操作的流程图。
首先,在操作S9将AV流输入到流I/F。在操作S10,标记产生单元131将用于记录AV流的时间信息的标记的信息添加到AV流中。标记信息具有使用时钟或“NULL”的计数值。
在操作S11,汇聚器133汇聚预定量的AV流数据,以便形成一个分组。此外在操作S12,汇聚器133确定以IP分组的形式还是以非IP分组的形式传送分组。如果确定以非IP分组的形式传送分组,则执行操作S17。
在以IP分组的形式传送分组的情况中,如果采用RTP(在操作S13为“是”),在操作S14,则通过RTP头附加单元139将RTP头附加到分组。然后,在操作S15,通过UDP头附加单元149将UDP头附加到具有RTP头的分组。接下来,在操作S16,通过IP头附加单元141将IP头附加到具有UDP头和RTP头的分组。
然后,如果采用LS头(在操作S17为“是”),在操作S18,通过LS头附加单元135将LLS头和SNAP头附加到IP分组。然后在操作S19确定是否执行上行链路回送。如果不采用LS头(在操作S17为“否”),则执行在操作S19。
如果执行上行链路回送(在操作S19为“是”),在操作S22,根据流程图将在操作S11形成的数据、在操作S16形成的数据或在操作S18形成的数据输入到数据接收模块160的LS分析器164。这里,数据输入到LS分析器164之后执行的过程与图20所示的操作S32后执行的过程相同。
如果不执行上行链路回送(在操作S19为“否”),在操作S20,通过MAC模块137形成MAC帧,并且在操作S21,通过PHY模块138将形成的MAC帧传送到网络。
图20是表示网络I/F卡100的数据接收模块160的操作的流程图。
首先,数据接收模块160的操作始于在操作S30从网络接收数据的过程,或者从在操作S29通过回送从数据传输模块130接收数据的过程开始。如果数据接收模块160的操作始于操作S29,则立即执行操作S31。
如果数据接收模块160的操作始于操作S30,在操作S31,通过MAC模块165移除MAC头。然后,如果LS头不存在(在操作S32为“否”),则在操作S46,没有MAC头的数据输出到主I/F。
如果LS头存在(在操作S32为“是”),则在操作S33,LS分析器164读取LS头,然后LS头移除单元163移除LS头。在读取LS头后,如果以流I/F方向传输数据(在操作S34为“否”),则执行操作S46。
在读取LS头后,如果以主I/F方向传输数据(在操作S34为“是”),则在操作S35确定存在IP头。如果IP头不存在(在操作S35为“否”),则在操作S36确定标记的值是“NULL”。如果标记值是“NULL”,由于必须产生并记录新的标记,所以执行操作S41。然而如果标记值不是“NULL”,由于已经存在时间戳,所以执行操作S42。
作为操作S35的确定的结果,如果存在IP头(在操作S35为“是”),在操作S37,错误检查单元174检查IP分组的错误。如果没有错误,则在操作S37从IP分组移除IP头。此外,错误检查单元174检查没有IP头的数据的错误。如果在没有IP头的数据中没有错误,在操作S38,则从没有IP头的数据移除UDP头。
此外,在操作S39,确定在没有UDP头的数据中是否存在RTP头。如果RTP头存在(在操作S39为“是”),则在操作S40,在读取RTP头后从在没有UDP头的数据中移除RTP头。此外在操作S41,标记记录单元169记录预定的时间戳。如果RTP头不存在(在操作S39为“否”),立即执行操作S41。
此外,在操作S42,读取由标记记录单元169记录的时间戳值或原始记录在标记中的时间戳值,然后将其与本地时钟的时间相比较。如果时间戳值等于时间(在操作S43为“是”),则在操作S44移除时间戳,即标记,并且在操作S45将没有标记的AV流输出到流I/F。
如上所述,根据本发明,IP网络设备可以更有效地连接到非IP网络设备,并且特别地,通过允许网络I/F卡支持各种协议和接口可以更简单并经济地实现根据DHWG的家庭数字设备。
此外,根据本发明,通过处理IP分组和AV流而不使用网络I/F中额外的主CPU,可以有效地使用设备的系统资源。
尽管已参照本发明的确定优选实例表示和描述了本发明,但本领域内的技术人员将理解的是,可在不背离由所附权利要求书限定的本发明宗旨和范围的前提下对本发明进行各种形式和细节上的修改。
权利要求
一种网络接口卡包括连接到与主CPU链接的通信总线的主接口;连接到音频或视频(AV)解码器/编码器的流接口;连接到网络的网络接口;和数据传输模块,包括标记产生单元,用于生成记录AV流的时间信息的标记并将标记添加到通过流接口输入的AV流中,汇聚器,用于汇聚其中产生了标记信息的、预定量的AV流,以便形成一个分组,和头附加单元,用于产生包括关于要传送的分组类型和分组传输方向的信息的、预定的头并将该预定的头添加到分组。
2.如权利要求1所述的网络接口卡,其中为了将AV流转换为IP分组,数据传输模块还包括用户数据报协议(UDP)头附加单元,用于将UDP头附加到分组,和IP头附加单元,用于将IP头附加到添加了UDP头的分组中,并将附加了IP头的分组提供到头附加单元。
3.如权利要求1所述的网络接口卡,其中通过使用子网访问协议(SNAP)头的类型字段可以标记分组的类型,并且通过使用逻辑链路控制(LLC)头的目的服务访问点(DSAP)字段和源服务访问点(SSAP)字段标记分组的传输方向。
4.如权利要求1所述的网络接口卡,其中传输方向可以分为主接口的方向和流接口的方向。
5.如权利要求1所述的网络接口卡,其中可以将标记记录为使用由时钟产生单元提供的预定时钟的计数值。
6.一种网络接口卡包括连接到与主CPU链接的通信总线的主接口;连接到音频或视频(AV)解码器/编码器的流接口;连接到网络的网络接口;和数据接收模块,包括分析器,用于读取预定的头以便确定输入分组的类型和传输方向,头移除单元,用于从输入分组中移除预定的头,标记记录单元,用于如果移除预定头的分组没有标记则每预定数量字节产生时间戳并将时间戳附加到分组,和标记移除单元,用于通过在对应于时间戳的时间上接收移除了预定头的分组来移除分组中存在的标记,以便产生AV流并用于通过流接口输出所产生的AV流。
7.如权利要求6所述的网络接口卡,其中如果输入分组的类型是IP分组,为了处理输入分组,数据接收模块还包括IP头移除单元,用于从分组中移除IP头,和用户数据报协议(UDP)头移除单元,用于从移除了IP分组头的分组中移除UDP头,以便将分组提供到标记记录单元。
8.如权利要求6所述的网络接口卡,其中当输入分组的类型是因特网协议(IP)分组时为了处理输入分组,数据接收模块还包括IP头移除单元,用于从分组中移除IP头,用户数据报协议(UDP)头移除单元,用于从移除了IP分组头的分组中移除UDP头,和实时传输协议(RTP)头移除单元,用于从移除了UDP头的分组中移除RTP头,以便将分组提供到标记记录单元。
9.如权利要求6所述的网络接口卡,其中通过使用对应于将要标记的分组的预定量的字节数的时间值可以产生时间戳,这是通过根据本地时钟计算输入比特率得出的。
10.如权利要求6所述的网络接口卡,其中为了产生时间戳,如果没有预定头的分组具有关于参考时钟的信息,通过检测参考时钟并统一分配关于包含在参考时钟内的数据的时间,在标记内产生时间信息。
11.如权利要求8所述的网络接口卡,其中可以计算根据RTP时间戳输入的参考时钟的比特率,并将其表示为标记的时间戳参考时钟,从而产生每个标记,其中RTP时间戳由RTP头移除单元传送并包含在RTP头中。
12.一种在网卡接口中的数据传输方法,数据传输方法包括(a)产生记录时间信息的标记并将标记附加到输入到流接口的音频或视频(AV)流中;(b)从产生标记信息的、预定量的AV流中形成一个分组;(c)当将AV流转换为IP分组并同时传送时,将用户数据报协议(UDP)头和因特网协议(IP)头附加到分组;(d)产生包含关于要传输的分组的类型和分组的传输方向的信息的预定头并将预定的头添加到分组中;以及(e)通过将MAC头添加到其中已添加了预定头的分组来形成媒体访问控制(MAC)帧,并将MAC帧传送到网络上。
13.一种在网卡接口中的数据传输方法,数据传输方法包括(a)产生记录时间信息的标记并将标记附加到输入到流接口的音频或视频(AV)流中;(b)通过汇聚其中产生标记信息的、预定单位的AV流形成一个分组;(c)当将AV流转换为IP分组并传送时,将用户数据报协议(UDP)头和因特网协议(IP)头附加到分组;(d)产生指示要传输的分组的类型和分组的传输方向的预定头并将预定的头添加到分组中;以及(e)通过上行链路回送路径输出添加了预定头的分组。
14.一种在网络接口卡中的数据接收方法,该接收方法包括(a)读取预定的头并确定输入分组的类型和输入分组的传输方向;(b)从输入分组中移除预定的头;(c)如果分组的传输方向与主接口的方向相同,则通过主接口输出其中移除了预定头的分组;(d)如果移除预定头的分组没有标记,则在每预定数量字节产生时间戳并将时间戳添加到分组中;以及(e)通过在对应于时间戳的时间上接收移除了头的分组来产生音频或视频(AV)流,并移除该分组中存在的标记,并且通过流接口输出该AV流。
15.如权利要求14所述的数据接收方法,还包括如果分组的传输方向与流接口的方向相同并且分组中存在IP头,则从移除了预定头的分组中移除IP头和UDP头。
全文摘要
提供网络接口卡及其方法来支持多流格式。网络接口卡包括连接到与主CPU链接的通信总线的主接口;连接到AV解码器/编码器的流接口;和连接到包括数据传输模块的网络的网络接口,其中数据传输模块包括标记产生单元,用于生成记录AV流的时间信息的标记并将标记添加到通过流I/F输入的AV流中;汇聚器,用于汇聚其中产生了标记信息的预定量的AV流,以便形成一个分组,和头附加单元,用于产生包括关于要传送的分组类型和分组传输方向的信息的、预定的头并将预定的头添加到分组。
文档编号H04L12/28GK1694406SQ200510066740
公开日2005年11月9日 申请日期2005年4月30日 优先权日2004年5月4日
发明者安哲弘 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1