CN1179280C - 通信***及其方法,发送装置及其方法 - Google Patents
通信***及其方法,发送装置及其方法 Download PDFInfo
- Publication number
- CN1179280C CN1179280C CNB991032837A CN99103283A CN1179280C CN 1179280 C CN1179280 C CN 1179280C CN B991032837 A CNB991032837 A CN B991032837A CN 99103283 A CN99103283 A CN 99103283A CN 1179280 C CN1179280 C CN 1179280C
- Authority
- CN
- China
- Prior art keywords
- data
- packet
- dispensing device
- source node
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
- H04L49/9052—Buffering arrangements including multiple buffers, e.g. buffer pools with buffers of different sizes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40117—Interconnection of audio or video/imaging devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40123—Interconnection of computers and peripherals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/13—Flow control; Congestion control in a LAN segment, e.g. ring or bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/35—Network arrangements, protocols or services for addressing or naming involving non-standard use of addresses for implementing network functionalities, e.g. coding subscription information within the address or functional addressing, i.e. assigning an address to a function
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/611—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
- H04L2012/6486—Signalling Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/604—Address structures or formats
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/323—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the physical layer [OSI layer 1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/324—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Communication Control (AREA)
- Small-Scale Networks (AREA)
- Information Transfer Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种通信***和通信协议,其中源节点与一个或多个目的节点逻辑相连接,和用于识别逻辑连接关系的连接ID被用于控制各个节点之间的数据通信。本发明还公开了一种有效的通信***和通信协议,其中可以设置在发送第i(i是一个可选择的整数)数据的时间和发送第(i+1)数据的时间之间的最佳的时间间隔。本发明还公开了一种通信***和通信协议,其中当第i个数据未被正常接收时,仅对一个预定时间禁止进行重试,以防止在一个慢接收处理的目的节点和一个快发送处理的源节点之间发生不必要的重试。
Description
技术领域
本发明涉及数据通信***、数据通信方法、数据通信设备和数字接口,更具体地涉及一种网络和可应用于此网络的通信协议,在此网络中信息数据(包括图像数据)和命令数据进行混合以便以高速执行通信。
背景技术
在个人计算机(下面称为PC)的***设备中硬盘和打印机至今已得到广泛应用,这些***设备通过专用的输入/输出接口、SCSI(小计算机***接口)或其他通用数字接口连到PC。
另一方面,近年来,数字照相机、数字摄像机和其他AV(音频/视频)设备作为***设备已获得公众注意。AV设备也通过专用接口连到PC。
图1是表示由PC与AV设备构成的常规通信***的图。
在图1中,数字101表示AV设备或数字照相机,102表示PC,并且103表示打印机。
数字照相机101包括:其中压缩和记录照片图象的存储器104;用于扩展和解码记录在存储器104中的压缩图象数据的解码单元105;图象处理单元106;D/A变换器107;包括EVF的显示器108;和用于连接数字照相机101与PC102的专用数字I/O单元109。
PC102包括:用于连接PC102与数字照相机101的专用数字I/O单元110;包括键盘、鼠标等的操作单元111;用于扩展和解码压缩的图象数据的解码单元112;显示器113;硬盘114;RAM或另一个存储器115;MPU116;PCI总线117;和用于连接PC102与打印机103的SCSI接口118。
打印机103包括:用于连接打印机103与PC102的SCSI接口119;存储器120;打印头121;用于控制打印机103操作的打印机控制器112;和驱动器123。
在常规通信***中,由于数字照相机101数字接口或数字I/O单元109不与打印机103的数字接口或SCSI接口110兼容,所以它们不能直接互连。例如,静止图象需要必须经PC从数字照相机101传送给打印机103。
而且,在常规专用接口或SCSI接口中,当处理诸如由AV设备保持的静止图象或移动图象的大量数据时,引起许多问题,例如数据传送率低,用于并行通信的通信电缆粗,仅有少量类型的可连接的***设备,连接***受到限制并且不能执行实时数据传送。
解决这些问题的称为下一代高速性能数字接口之一的是IEEE(电气与电子工程师协会)1394_1995标准。
遵循IEEE1394_1995标准(下面称为1394标准)的数字接口具有以下特性。
(1)数据传送率高;
(2)支持实时数据传送***(即,等时传送***)和异步传送***;
(3)能构造具有高自由度的连接结构(拓扑);和
(4)支持即插即用功能和热线插/拔功能。
在IEEE1394_1995标准中,虽然定义连接器、两个基本数据传送***等的物理电结构但不定义什么数据格式根据什么通信协议发送/接收什么类型的数据。
而且,在IEEE1394_1995标准的等时传送***中,由于不定义对发送数据包的响应,所以不保证一定接收到每个等时数据包。因此,在多个连续数据要安全进行传送时,或在一个文件数据分段为多个数据以便安全进行传送时,不能使用等时传送***。
而且,在IEEE1394_1995标准的等时传送***中,即使在传送频带中有空余,通信总线也限制为64。因此,在小的传送频带中执行大量通信时,不能使用等时传送***。
另外,在IEEE1394_1995标准中,如果为响应节点电源的接通/断开、节点的连接/断开等而出现总线复位,必须中断数据传送。然而,在IEEE1394_1995标准中,当数据传送由于总线复位或传输时的差错而被中断时,不能知道丢失数据的什么内容。而且,为了返回曾中断的传送,需要执行非常复杂的通信程序。
这里,总线复位表示自动执行新拓扑结构的识别和分配给每个节点的地址(节点ID)设置的功能。因此,能在IEEE1394_1995标准中提供即插即用功能和热线插/拔功能。
而且,在遵循IEEE1394_1995标准的通信***中,还未具体地提出一种通信协议,用于分段为一个或多个分段数据并连续传送不要求具有实时特性但要求具有可靠性的相对大量的目标数据(例如,静止图象数据、图形数据、文本数据、文件数据、程序数据等)。
而且,在遵循IEEE1394_1995标准的通信***中,还未具体地提出一种通信协议,用于利用其中异步广播数据的通信***在多个设备之间实现数据通信。
发明内容
本发明的一个目的是解决上述问题。
本发明的另一个目的是提供一种技术,在数据通信***、数据通信方法、数据通信设备和数字接口中能连续和可靠地传送不要求实时特性的目标数据。
本发明的第三目的是提供一种技术,在数据通信***、数据通信方法、数据通信设备和数字接口中能最优化连续传送的数据之间的时间间隔,并能容易地、可靠地和有效地阻止一系列数据传送中不必要的中断。
本发明的第四目的是提供一种技术,在数据通信***、数据通信方法、数据通信设备和数字接口中能以这样一种方式实现有效的数据通信,以致能容易地和可靠地阻止不必要发生的重试。
本发明提供一种通信***,包括:发送装置,用于发送数据包;以及接收装置,用于接收从发送装置所发送的数据包;其中,所述发送装置适合于接收包括接收装置的接收能力的接收能力信息,并根据所述接收能力信息确定等待时间;以及其中,所述等待时间是用于等待与发送装置所发送的数据包相应的响应数据包的时间。
本发明提供一种在通信***中使用的方法,所述通信***包括用于发送数据包的发送装置、以及用于接收从发送装置所发送的数据包的接收装置,所述方法包括:接收步骤,用于接收包括接收装置的接收能力的接收能力信息;以及确定步骤,用于根据所述接收能力信息确定等待时间;其中,所述等待时间是用于等待与发送装置所发送的数据包相应的响应数据包的时间。
本发明提供一种用于发送数据包的发送装置,所述装置包括:接收部件,用于接收包括一个接收装置的接收能力的接收能力信息;以及确定部件,用于根据所述接收能力信息确定等待时间;其中,所述等待时间是用于等待与发送装置所发送的数据包相应的响应数据包的时间。
本发明提供一种在用于发送数据包的发送装置中使用的方法,所述方法包括:接收步骤,用于接收包括接收装置的接收能力的接收能力信息;以及确定步骤,用于根据所述接收能力信息确定等待时间;其中,所述等待时间是用于等待与发送装置所发送的数据包相应的响应数据包的时间。
作为如此目的的优选实施例,本发明公开一种数据通信***,包括:源节点,用于至少执行一次异步通信以便传送包括一个或多个分段的数据;一个或多个目的的节点,用于接收从源节点传送的数据;和控制器,用于设置源节点与一个或多个目的节点之间逻辑连接关系,其中源节点或控制器之中至少一个控制用于执行异步通信的定时。
作为另一个优选实施例,本发明公开一种数据通信***,包括:源节点,用于至少执行一个广播通信以便根据逻辑连接关系传送包括一个或多个分段的数据;和一个或多个目的节点,用于根据逻辑连接关系接收从源节点传送的数据,其中源节点控制用于执行广播通信的定时。
作为另一个优选实施例,本发明公开一种数据通信方法,包括以下步骤:在源节点与一个或多个目的节点之间设置逻辑连接关系;至少执行一个异步通信以便传送包括一个或多个分段的数据给一个或多个目的节点;控制用于执行异步通信的定时;和使用逻辑连接关系来接收利用异步通信传送的数据。
作为另一个优选实施例,本发明公开一种数据通信方法,包括以下步骤:至少执行一次广播通信以便根据逻辑连接关系传送包括一个或多个分段的数据给一个或多个目的节点;控制执行广播通信的定时;和根据逻辑连接关系接收从源节点传送的数据。
作为另一个优选实施例,本发明公开一种数据通信方法,包括以下步骤:将包括一个或多个分段的数据分成为多个通信数据包;和根据利用一个或多个目的节点设置的逻辑连接关系顺序传送通信数据包,在预定时间过去之后异步传送通信数据包。
作为另一个优选实施例,本发明公开一种数据通信方法,包括以下步骤:根据利用源节点设置的逻辑连接关系接收顺序从源节点传送的通信数据包,在预定时间过去之后异步传送通信数据包;和将包含在通信数据包中的数据写入其他设备公用的存储器空间中。
作为另一个优选实施例,本发明公开一种数据通信方法,包括以下步骤:设置源节点与一个或多个目的节点之间的逻辑连接关系;将用于识别逻辑连接关系的连接ID通知源节点与一个或多个目的节点;和在源节点中设置根据逻辑连接关系顺序传送的通信数据包的时间间隔。
作为另一个优选实施例,本发明公开一种数据通信设备,包括:用于将包括一个或多个分段的数据分为多个通信数据包的单元;和用于根据利用一个或多个目的节点设置的逻辑连接关系顺序传送通信数据包的单元,其中在预定时间过去之后异步传送通信数据包。
作为另一个优选实施例,本发明公开一种数据通信设备,包括:用于根据利用源节点设置的逻辑连接关系接收顺序从源节点传送的通信数据包的单元;用于将包含在通信数据包中的数据写入其他设备公用的存储器空间中的单元,其中在预定时间过去之后异步传送通信数据包。
作为另一个优选实施例,本发明公开一种数据通信设备,包括:用于在源节点与一个或多个目的节点之间设置逻辑连接关系关用于在源节点中设置根据逻辑连接关系顺序传送的通信数据包的时间间隔的单元;和用于将识别逻辑连接关系的连接ID通知源节点和一个或多个目的节点的单元。
作为另一个优选实施例,本发明公开一种数字接口,包括:用于将包括一个或多个分段的数据分为多个通信数据包的单元;和用于根据利用一个或多个目的节点设置的逻辑连接关系顺序传送通信数据包的单元,其中在预定时间过去之后异步通信数据包。
作为另一个优选实施例,本发明公开一种数字接口,包括:用于根据利用源节点设置的逻辑连接关系接收顺序从源节点传送的通信数据包的单元;和用于将包含在通信数据包中的数据写入其他设备公用的存储器空间中的单元,其中在预定的时间过去之后异步传送通信数据包。
作为另一个优选实施例,本发明公开一种数字接口,包括:用于在源节点与一个或多个目的节点之间设置根据逻辑连接关系并用于在源节点中设置根据逻辑连接关系顺序传送的通信数据包的时间间隔的单元;和用于将用于识别逻辑连接关系的连接ID通知源节点与一个或多个目的节点的单元。
附图说明
本发明的其他节点及其优点从下面实施例的详细描述中将变得更加明显。
图1是常规***的示例图;
图2是表示此实施例的通信***示例的方框图;
图3是表示此实施例的通信协议基本结构的示意图;
图4A、4B与4C是表示第一实施例的通信协议的基本通信程序的顺序图;
图5是表示第一实施例的异步广播数据包结构的图;
图6A与6B是表示每个节点地址空间的示例图;
图7是表示目标数据传送模型的示例图;
图8是表示此实施例的1394接口结构的示例图;
图9是表示在第一实施例中定义的响应周期的顺序图;
图10是表示在第二实施例中定义的单阶段重试操作示例的状态转换图;
图11是表示在第二实施例中定义的双阶段重试操作示例的状态转换图;
图12是表示第二实施例的通信协议的基本通信程序的顺序图;
图13是表示第二实施例的异步广播数据包的图;
图14是表示第二实施例中定义的确认数据包结构的图;
图15是表示设置此实施例的最小重试周期操作的图;
图16是表示此实施例的重试码类型的图;
图17是表示此实施例的确认码类型的图。
具体实施方式
现在,下面将结合附图详细描述本发明的优选实施例。
图2是表示此实施例中数据通信***结构示例的图。如图2所示,此实施例的数据通信***由计算机10、数字摄像机28和打印机60构成。
首先将描述计算机10的结构,数字10表示用于控制计算机10操作的微处理器单元(MPU),数字14表示具有符合IEEE1394_1995标准的功能和有关在此实施例中定义的通信协议功能的1394接口,数字16表示由键盘、鼠标等构成的操作单元。数字18表用于解码压缩/编码的数字数据(运动图象数据、静止图象数据、音频数据等)数字20表示由CRT显示器、液晶板或另一显示装置构成的显示器,数字22表示用于记录种种数字数据(运动图象数据、静止图象数据、音频数据、图形数据、文本数据、程序数据等)的硬盘(HD),数字24表示内部存储器,数字26表示用于互连计算机10中的处理单元的PCI总线或内部总线。
下面将描述数字摄像机(下面称为DVCR)28的结构。数字10表示用于将目标的光图象变换为电信号的图象拾取单元(OPT),数字32表示模数(A/D)变换器,数字34表示用于将数字化的运动图象或静止图象变换为预定格式的数字图象数据的视频处理单元,数字36表示具有解码压缩/编码的数字数据(运动图象数据、静止图象数据、音频数据等)的功能和高效率编码数字图象数据的功能(例如,数据类似在MPEG或DV***中正交变换为预定图象单位、量化并利用可变长度进行编码)的压缩/扩展单元,数字38表示用于临时存储高效编码的数字图象数据的存储器,数字40表示用于临时存储未进行高效编码的数字图象数据的存储器,数字42表示数据选择器,数字44表示具有符合IEEE1394_1995标准的功能和有关在此实施例中定义的通信协议的功能的1394接口,数字46、48表示用于控制存储器38与40的写入与读出的存储控制单元,数字50表示用于控制具有微处理器的DVCR28操作的***控制器,数字52表示包括摇控器、操作面板等的操作单元,数字54表示电子取景器(EVF),数字56表示D/A变换器,数字58表示装有磁带、磁盘、磁光盘或另一记录介质的用于记录/再生各种数字数据(运动图象数据、静止图象数据、音频数据等)的记录器/再生器。
下面将描述打印机60的结构,打印机60包括:1394接口62,具有符合IEEE1394_1995标准的功能和有关在此实施例中定义的通信协议的功能;数据选择器64;操作单元66,由操作按钮、接触板等构成的操作单元66;打印机控制器68,用于控制打印机60的操作;解码器70;内部存储器72;图象处理单元74,用于处理通过1394接口接收的静止图象数据、文本数据、图形数据等;驱动器76;和打印头78。
如图2所示,用于每个通信设备(下面称为节点),计算机10、DVCR28和打印机60通过1394接口14、44、62互连(包括1394接口的网络将在下面称为1394串行总线)。在每个节点中,能发送/接收各种目标数据(例如,运动图象数据、静止图象数据、音频数据、图形数据、文本数据、程序数据等),并且能通过定义预定的通信协议利用命令数据实现远程操作。在此实施例中,定义使用异步传送***的通信协议。
接下来将结合图2描述构成此实施例的通信***的节点操作。
首先,将描述构成计算机10的处理单元的功能和操作。
在此实施例中,计算机用作控制DVCR28与打印机60之间图象数据的发送/接收的控制器或用于远程操作DVCR28与打印机60的控制器。
MPU12执行记录在硬盘22中的软件并将各种数据移到内部存储器24。而且,MPU12执行用于调整通过内部总线26连接的处理单元的操作。
1394接口14能接收传送到1394串行总线上的图象数据,并且也能发送记录在硬盘22与内部存储器24中的图象数据到1394串行总线上。而且,1394接口14能发送用于远程操作1394串行总线上其他节点的命令数据。还有,1394接口14也具有将通过1394串行总线传送的信号传送给其他节点的功能。
用户通过操作单元16选择所需的软件并使MPU12运行记录在硬盘22中的软件。这里,有关软件的信息利用显示器20显示给用户。解码器18根据此软件解码在1394串行总线上接收的图象数据,所解码的图象数据利用显示器20显示给用户。
下面将描述构成DVCR28的处理单元的功能和操作。
在此实施例中,例如,DVCR28用作图象传送装置(源节点),用于根据此实施例的通信协议执行图象数据的异步传送。
图象拾取单元30将目标的光图象变换为由亮度信号Y与色差信号C构成的电信号,并将此电信号提供给A/D变换器32,A/D变换器数字化此电信号。
视频处理单元34对数字化的亮度信号与色差信号进行预定的图象处理,并多路复用这些信号。压缩/扩展单元36压缩数数字化的亮度信号与色差信号的数据量。这里,压缩/扩展单元36使用独立的压缩处理电路来并行处理亮度信号与色差信号。可选择地,此单元可使用公用压缩处理电路来时分处理信号。
而且,为了阻止传输路径中的差错,压缩/扩展单元36对压缩的图象数据进行置乱处理。从而,连续的码差错(即,突发差错)能变换为易于进行修复或内插的分立差错(即,随机差错)。这里,当均匀由于屏幕中的粗图象而引起的信息量偏差时,最好在压缩处理之前执行比处理,这便于利用可变运行长度或另一长度的编码。
在压缩/扩展单元36中,数据识别信息ID加到压缩的图象数据上以便恢复置乱。压缩/扩展单元36给压缩的图象数据加上纠错码ECC以便在记录/再生时减少差错。
在压缩/扩展单元36中压缩的图象数据提供给存储器38和记录器/再生器58。记录器/再生器58将具有加上的ID与ECC的压缩图象数据记录到磁带或者另一存储介质中。这里,压缩的图象数据记录到不同于或与音频数据的区域无关的记录区域中。
另一方面,D/A变换从视频处理单元34提供给D/A变换器56的图象数据。EVF54表示从D/A变换器56提供的模拟图象信号。而且,在视频处理单元34中处理的图象数据也提供给存储器40。这里,未压缩的图象数据存储在存储器40中。
数据选择器42根据用户指令选择存储器38或40,并提供压缩的图象数据或未压缩的图象数据给1394接口44。而且,数据选择器42将从1394接口44提供的图象数据传送给存储器38或40。
1394接口44根据下述的此实施例的通信协议执行压缩的图象数据或未压缩的图象数据的异步传送。而且,1304接口44通过1394串行总线接收用于控制DVCR28的控制命令,所接收的控制命令通过数据选择器42提供给***控制器50,1394接口44返回对控制命令的响应。
现在将描述构成打印机60的每个处理单元的功能与操作。
在此实施例中,打印机60例如用作图象接收装置(目的节点),用于接收和打印根据此实施例的通信协议异步传送的图象数据。
1394接口62接收通过1394串行总线异步传送的图象数据或控制命令。而且,1394接口62发送对控制命令的响应。
所接收的图象数据通过数据选择器64提供给解码器70,解码器70解码图象数据并发送结果给图象处理单元74,图象处理单元74暂时将解码的图象数据存储到存储器72。
而且,图象处理单元74将暂时存储在存储器72中的图象数据变换为要打印的数据,并将此数据提供给打印头78,打印头78在打印机控制器68的控制下进行打印。
另一方面,所接收的控制命令通过数据选择器64发送给打印机控制器68,打印机控制器68根据此控制数据执行有关打印的各种控制,例如,控制由驱动器76馈送的纸张、打印头78的位置等。
下面将结合图8详细描述此实施例的1394接口14、44、62的结构。
1394接口在功能上由多个层构成。在图8中,1394接口通过符合IEEE1394_1995标准的通信电缆801连到另一节点的1394接口。而且,1394接口至少有一个通信端口802,并且每个通信端口802连到包括在硬件中的物理层803。
在图8中,硬件由物理层803和链路层804组成,物理层803执行与其他节点的物理电接口、总线复位的检测和处理、输入/输出信号的编码解码、总线使用权的调解等。而且,链路层804执行通信数据包的生成、各种通信数据包的发送/接口、循环定时器的控制等。还有,链路层804提供如下所述的异步广播数据包的生成与发送/接收的功能。
而且,在图8中,固件包括事务处理层803和串行总线管理801,事务处理层805控制异步传送***并提供各种事务处理(读、写、锁定)。而且,事务处理层805提供如下所述的异步广播事务处理的功能。串行总线管理806提供用于控制自身节点和用于管理自身节点的连接状态、自身节点的ID信息以及基于下述的IEEE1212 CSR标准的串行总线网络的源的功能。
图8所示的硬件与固件基本上构成1394接口,并且利用IEEE1394_1995标准定义基本结构。
而且,包含在软件中的应用层807随使用的应用软件而变化,并控制如何传送和传送什么目标数据。
下述的实施例的通信协议扩展构成1394接口的硬件与固件的功能,并给软件提供新的传送程序。
接下来将结合图3描述在此实施例中定义的通信协议的基本结构。
图3表示控制器300、源节点302、n个(n≥1)目的节点304、源节点的子单元306和目标308,诸如静止图象数据、图形数据、文本数据、文件数据、程序数据等。
在目的节点304内提供的第一存储空间310利用预定的目的偏移(destination_offset #0)来表示。第一连接312表示源节点302与目的节点304之间的逻辑连接关系(即,连接)。这里,目的偏移表示在n个目的节点304的公用存储空间中表示的地址。
在目的节点314内提供的第n个存储空间314利用预定的目的偏移(destination_offset #n)来表示。第n个连接316表示源节点302与目的节点304之间的逻辑连接关系(即,连接)。
在此实施例中,每个节点利用符合IEEE1212 CSR(控制与状态寄存结构)标准(或ISO/IEC 13213:1994标准)的64比特的地址空间控制第一存储空间310至第n个存储空间314、IEEE1212 CSR标准定义串行总线的控制、管理或地址分配。
图6A与6B是每个节点的地址空间的示意图。图6A表示由64比特的地址表示的逻辑存储空间。而且,图6B表示图6A所示的地址空间的一部分,例如其中方位16比特形成FFFF16的地址空间。图6B所示的一部分存储空间用作图3所示的第一存储空间310至第n个存储空间314,利用表示此地址的低位48比特的目的偏移定义每一个存储空间310至314。
在图6B中,例如,00000000000016至0000000003FF16是预留区域,并且实际写入目标数据308的区域是表示低位48比特的FFFFF000040016的区域。
在图3中,源节点302具有根据下述的通信协议传送目标数据308的功能,而目的节点304具有接收从源节点302中传送的目标数据308的功能。而且,控制器300根据下述的通信协议在源节点302与至少一个目的节点304之间建立逻辑连接关系(即,连接)并控制此连接。
这里,控制器300、源节点302和目的节点304可以单独起作用。而且,控制器300和源节点302可以在同一节点中起作用。在这种情况中,在控制器300与源节点302或目的节点304之间没有必须的事务处理,这简化了通信程序。
在此实施例中,将描述控制器300、源节点302和目的节点304分别在独立节点中起作用的情况。例如,具有1394接口14的计算机10用作控制器300。而且,具有1394接口44的DVCR28用作源节点302,而具有1394接口62打印机用作目的节点304上。
在此实施例中,如图3所示,至少能在源节点302与至少一个目的节点304之间设置一个连接。当有传送某个目标数据的请求时,由至少一个控制器300根据下述的通信协议设置的这些连接。
在此实施例中,能设置可在一个连接中使用的一个或多个目的偏移,可由控制器300或源节点302预先设置或可变地设置目的偏移值。另外,根据下述的通信协议设置连接与目的偏移的关系。
当在一个连接中设置多个目的偏移时,利用一个连接能同时实现多个数据通信模式。例如,通过分配不同的目的偏移给数据通信模式能利用一个连接同时实现一对一、一对N、N对N数据通信。
另外,在此实施例中,作为控制器300的计算机10可以作为目的节点304来操作。在这种情况中,在一个源节点302与两个目的节点304之间设置连接,并传送目标数据308。
而且,在此实施例中,已描述计算机10用作控制器300的情况,但计算机10不必一定作为控制器300起作用。DVCR28或打印机60可以作为控制器300来操作。
第一实施例
下面将描述在第一实施例中定义的通信协议的基本传送程序。
图4A、4C是表示所执行的直至传送一个目标数据的程序的顺序图。图4B表示在一个目标数据传送期间出现总线复位或传输差错时的传送程序的顺序图。
在此实施例的通信协议中,在由控制器300设置上述连接之后,至少一个异步广播事务处理传送一个目标数据。详细的异步广播事务处理的通信程序将结合图4进行描述。另外,将结合图5描述在异步广播事务处理中使用的数据包(下面称为异步广播数据包)。
下面将结合图4A、C描述基于此实施例的通信协议的基本传送程序。这里,图4A是表示利用一个连接中的一个目的节点304执行数据通信的情况的顺序图。而且,图4C是表示利用一个连接中的三个目的节点304执行数据通信的情况的顺序图。
控制器300设置用于识别源节点302与至少一个目的节点304之间逻辑连接关系(连接)的连接ID。随后,控制器300将连接ID通知每个节点,并设置一个连接(图4A、4C的401、402)。
在通知连接ID之后,控制器300命令源节点302开始目标数据308的传送(图4A、4C的403)。
在收到事务处理命令之后,源节点302与至少一个目的节点304进行商定以便执行异步广播事务处理(图表A、4C的404、405)的初始化。
在完成初始化设置之后,源节点302执行异步广播事务处理以便连接广播由一个或多个分段数据(图4A、4C的406至409)构成的目标数据308。
这里,将结合图7描述此实施例中的目标数据的传送模型。在图7中,目标数据例如是数据大小为128千字节的静止图象数据。
源节点302根据在初始化设置中识别的每个目的节点304的接收能力例如将目标数据308分段为500个分段数据块(一个分段数据块对应256字节)。这里,由源节点302根据每个目的节点304的内部缓冲器的大小不同地设置一个分段数据的大小。图7表示保证内部缓冲器具有与目标数据308大小相同的大小的情况。
而且,源节点302利用至少一个异步广播事务处理传送一个或多个分段数据。在图7中,利用一个异步广播事务处理传送一个分段数据。
在所有分段数据传送之后,源节点302完成与至少一个目的节点304(图4A、4C的410、411)的数据通信。
接下来将结合图4A、4C具体描述控制器300的操作。
控制器300进行商定以便在源节点302与用户选择的至少一个目的节点304之间设置连接。随后,控制器300执行用于设置节点(图4A、4C的401、402)间连接的数据包(下面称为连接设置数据包)的异步传送。
在这种情况中,每个目的节点304将自身允许的间隔时间(图9所示的数据传送延迟)通知控制器300,控制器300动态地根据每个目的节点304的间隔时间确定每个异步广播事务处理中源节点302处于等候的最佳时间周期(图9所示的响应周期)。例如,确定每个目的节点304的间隔时间的最大值,此时间周期与连接设置数据包一起通知给源节点302。
另外,此时间周期设置为长于间隔时间。而且,间隔时间随目的节点304的接收能力和性能动态变化。因此,在接收能力和性能高时缩短间隔时间,而在接收能力和性能低时加长此间隔时间。
表示源节点302与目的节点304之间连接的连接ID存储在连接设置数据包的有效负载中,每个节点利用连接ID识别其设置连接。另外,由控制器300根据已设置给源节点302的连接ID和已设置给每个目的节点304的连接ID设置此连接。
随后,控制器300将传输命令数据包(事务处理命令数据包)异步传送至源节点302(图4A、4C的403)。
在收到传输命令数据包之后,源节点302执行利用从控制器300中通知的连接ID设置的初始化以便执行异步广播事务处理(图4A、4C的404_409)。通过异步广播事务处理,源节点302能顺序地传送由一个或多个分段数据构成的目标数据308。
另外,在此实施例的通信协议中,控制器300提供控制连接/断开的功能。因此,在设置连接之后,利用源节点302与目的节点304之间的商定传送目标数据308。
在完成一系列异步广播事务处理之后,源节点302广播表示分段结束的异步广播数据包(下面称为分段结束数据包)(图4A、4C的410)。
在从源节点302中接收的分段结束数据包之后,释放此连接以完成数据传送(图4A、4C的411)。
这里,由于广播分段结束数据包,所以甚至在目的节点304中也能检测此数据包的内容。因此,代替控制器300,目的节点304可以从源节点302中释放连接。
接下来将结合图4A、4C具体描述源节点302的操作。
已从控制器300收到连接设置数据包与事务处理命令数据包的源节点302发送异步广播数据包(下面称为发送请求数据包)给请求数据传送的每个目的节点304(图4A、4C的404)。
这里,发送请求数据包表示用于在执行目标数据308的异步广播事务处理之前获得必要的初始信息的请求数据包。由控制器300指示的连接ID写入此数据包中。
目的节点304广播表示对应发送请求数据包(图4A、4C的405)的响应的异步广播数据包(下面称为确认响应数据包)。这里,与发送请求数据包中的ID相同的连接ID存储在确认响应数据包中。因此,源节点302能通过确认接收数据包的连接ID识别传送确认响应数据包的连接。
这里,能保证每个目的节点304的内部缓冲器的大小和用于表示预定存储空间的偏移地址存储在确认请求数据包中。在收到确认请求数据包之后,源节点302设置用于表示目的节点304的公用存储空间的目的偏移,并开始异步广播事务处理。这里,利用包含在每个目的节点304的确认请求数据包中的偏移地址来设置目的偏移。
另外,在此实施例中,在异步广播事务处理中使用的目的偏移利用包含在确认请求数据包中的偏移地址来设置,这不是限制性的。例如,控制器300可以具有控制每个连接使用的目的偏移的功能,以便与连接ID一起设置目的偏移。在这种情况中,从控制器300中将对应每个连接的目的偏移通知给源节点302。
而且,每个目的节点304可以直接利用确认请求数据包将间隔时间通知源节点。在这种情况中,替代控制器300,源节点302动态确定每个异步广播事务处理中源节点302处于等候状态的最佳时间周期。
随后,源节点302在由目的偏移(图4A、4C的406)表示的存储空间中写入第一异步广播数据包,分段数据的连接ID和顺序号存储在此数据包中。
在发送第一异步广播数据包之后,源节点302等待来自目的节点304的响应数据包。目的节点304以异步广播数据包的格式发送其中存储连接ID与顺序号的响应数据包。在收到响应数据包之后,源节点302增加顺序号,并传送包括下一个分段数据(图4A、4C的407)的异步广播数据包。
源节点302重复此程序以便顺序执行异步广播事务处理(图4A、4C的408、409)。等待来自目的节点304的响应的时间周期利用间隔时间来确定。此时间周期在此实施例中称为响应周期。
例如,甚至在第i个分段数据的异步广播事务处理之后响应周期过去之后,不能接收响应数据包。在这种情况中,源节点302重发与第i个分段数据相同的异步广播数据包。
而且,当从请求重发的目的节点304中传送响应数据包时,源节点302能再次广播所表示的顺序号的数据。
在执行所有目标数据308的异步广播数据包事务处理之后,源节点302广播分段结束数据包,并完成数据传送(图4A、4C的410、411)。
这里,如上所述,源节点302在需要时将目标数据308分段为一个或多个分段数据。在每个分段数据的异步广播事务处理中,生成上述的响应数据包。通过执行异步广播事务处理一次传送一个分段数据。目的节点304具有利用缓冲器大小表示的缓冲器容量。
另外,在此实施例中,必须在一个分段数据的异步广播事务处理中发出响应数据包,这不是限制性的。在目的节点304的数据缓冲器填装多个连续分段数据之后,目的节点304可以发送响应数据包。在此结构中,由于能减少由目的节点304执行的响应操作频率,所以能简化目的节点304的结构,并能增加处理速率。
接下来将结合图4A、4C详细描述目的节点304的操作。
已从控制器300中收到连接设置数据包的目的节点304等等来自源节点302(图4A、4C的404)的发送请求数据包。
已收到发送请求数据包的目的节点304确认此数据包中写入的连接ID和从控制器中通知的连接ID,并确定此数据包是否从源节点302中传送。
在从源节点302收到发送请求数据包之后,每个目的节点304广播连接ID能保证的内部缓冲器的大小和其中写入表示预定存储空间的偏移地址的确认响应数据包(图4A、4C的405)。另外,每个目的节点304可以利用发送请求数据包将间隔时间直接通知源节点302。
在从源节点302中传送的异步广播数据包写入此存储空间之后,目的节点304确认此数据包的连接ID。当包含在数据包中的连接ID与目的节点304自身的连接ID一致时,广播其中存储连接ID与顺序号的响应数据包(图4A、4C的406_409)。在这种情况中,包含在接收的数据包中的分段数据存储在内部缓冲器中。这儿,当包含在接收的数据包中的连接ID不同于其连接ID时,目的节点304抛弃此接收的数据包。
而且,当目的节点304检测到接收的数据包的顺序号不一致时,可以发出响应数据包以请求重发。在这种情况中,目的节点304表示重发请求的顺序号,并将顺序此号通过源节点302。
当完成所有的异步广播事务处理时,从源节点302中广播分段结束数据包。在收到此数据包后,目的节点304完成数据传送处理(图4A、4C的410)。
在收到分段结束数据包之后,目的节点304广播表示正常接收分段结束数据包的响应数据包(图4A、4C的411)。
如上所述,本实施例的通信***能解决常规通信***的不便。而且,甚至在不要求实时特性的数据传送中,能易于高速传送此数据。
而且,在此实施例中,在源节点302与每个目的节点304之间执行传送目标数据的处理而不由控制器300进行控制。因此,能提供其中减少控制器300的负载和不要求复杂通信程序的简单通信协议。
另外,在此实施例中,目的节点304保证给每个异步广播事务处理发送一个响应。因此,能提供一种通信协议,在此协议中能可靠传送不要求实时特性的数据。
为了实现更可靠的数据传送,当由于出现总线复位或任何传输差错而中断数据传送时,需要立即恢复数据传送而不丢弃任何数据。下面将结合图4B描述此实施例的通信协议中定义的恢复程序。
例如,当收到具有顺序i的异步广播数据之后出现总线复位时,每个节点中断传送处理,并根据在IEEE1394_1995标准中定义的程序执行总线初始化、连接结构的识别、节点ID的设置等(图B的420、421)。
在完成总线重构之后,每个目的节点304广播其中存储连接ID和顺序号i的重发请求数据包(图4B的422)。
当能恢复异步广播事务处理时,源节点302确认接收的重发请求数据包的连接ID以便广播其中存储连接ID的确认响应数据包(图4B的423)。
随后,源节点302顺序广播由接收的重发请求数据包所请求的并在此顺序号后面的分段数据,即以顺序号i+1开始的顺序数据(图B的424)。
在上述程序中,即使中断数据传送,控制器300,源节点302和目的节点304也能容易地和可靠地恢复后面的数据传送而不考虑每个节点ID。
而且,如上所述,在此实施例中,甚至在中断数据传送时,能有效地简化控制器300的控制程序。
接下来将结合图5描述在此实施例中定义的异步广播数据包的结构。例如,异步广播数据包是具有单位为1四字节(Quadlet)的数据包(4字节=32比特)。
首先,将描述数据包标题521的结构。
在图5中,字段501(16比特)表示目的ID和目的(即,目的节点304)的节点ID。在此实施例的通信协议中,为了实现目标数据308的异步广播事务处理,此字段的值设置为广播ID(即,FFFF16)。
字段502(6比特)表示事务处理标号(t1)字段或每个事务处理特有的标记。
字段503(2比特)表示再试(rt)码,并指示此数据包是否进行再试。
字段504(4比特)表示事务处理码(tcode),这表示数据包格式或要执行的事务处理类型。在此实施例中此字段值设置为例如000
1 2以请求将此数据包的数据块522写入由目的偏移字段507所表示的存储空间中的处理(即,写事务处理)。
字段505(4比特)表示优先级(Pri)并表示优先级的顺序。在此实施例中,此字段值设置为00002。
字段506(16比特)表示源ID或发送侧的节点ID(即,源节点302)。
字段507(48比特)表示目的偏移,并共同表示每个目的节点304的地址空间的低位48比特。这里,对于目的偏移,可以在所有连接中设置相同值,或在连接中可以设置不同值。然而,当设置不同值时,能有效地并行处理来自多个连接的异步广播数据包。
字段508(16比特)表示数据长度,并表示以字节为单位的下述的数据字段长度。
字段509(16比特)表示扩展的tcodc。在此实施例中,此字段值设置为000016。
字段510(32比特)表示标题CRC,在此字段中存储字段501_509的检错码。
接下来将描述数据块522的结构。在此实施例中,数据块522由标题信息523和数据字段524构成。
用于识别节点间逻辑连接关系的连接ID等存储在标题信息523中。
而且,数据字段524具有可变长度,在此字段中存储分段数字。这里,当存储在数据字段524中的分段数据不是多个四字节时,不满足四字节的部分填为零。
字段511(16比特)表示连接ID,并存储此实施例的连接ID。此实施例的1394接口根据存储在此字段中连接ID识别源节点302与至少一个目的节点304之间的连接设置。在此实施例中,能建立216个节点的连接。因此,能设置多个连接,直至每个连接使用的通信频率总量达到传输路径的容量。
字段512(8比特)表示协议类型,并表示基于标题信息523的通信程序(即,通信协议类型)。当表示此实施例的通信协议时,此字段值例如为0116
字段513(8比特)表示控制标志,并设置用于控制通信程序的预定控制数据和此实施例的通信协议的预定控制数据。在此实施例中,此字段的最高位例如设置为重发请求标志。因此,当此字段的最高位具有值为1时,表示生成基于此实施例的通信协议的重发请求。
字段514(16比特)表示顺序号,并设置连续值(即,顺序号)给基于特定连接ID(利用字段511表示的连接ID)传送的数据包。目的节点304能利用顺序号监视顺序进行异步广播事务处理的分段数据的连续性。当出现不一样时,目的节点304能根据顺序号请求重发。
字段515(16比特)表示重新确认号。在此实施例中,此字段仅在重发请求标志具有值为1时才有意义。例如,当重发请求标志值为1时,在此字段中设置请求重发的数据包的顺序号。
字段516(16比特)表示缓冲器大小,在此字段中设置目的的节点304的缓冲器大小。
字段517(48比特)表示偏移地址,在此字段中存储目的节点304的地址空间的低位48比特。因此,表示图3所示的第一存储空间310至第n个存储空间314之中的任何一个存储空间。
字段518(32比特)指示目的间隔,该间隔时间被存储在该字段中。利用该字段,每个目的节点304将该间隔时间通知源节点302和控制器300。
字段519(32比特)指示数据CRC,并且用于字段511到518(包括标题信息523和数据字段524)的差错检测码以与标题CRC相同的方式进行存储。
接下来将参照图9详细描述第一实施例的通信协议。
在图9中,具体地详细描述执行第i(i是一个选择的整数)个异步广播事务处理与执行第(i+1)个异步广播事务处理之间的时间间隔。因此,在图9中,为了简化描述,表示出一个源节点302与一个目的节点304之间的传送,但是即使设置多于一个目的节点304的情况也可以执行相同的处理。
图9表示目的节点304的内部缓冲器252;用于处理内部缓冲器252的数据的下一级电路254;第i异步广播数据包256;对应于第i异步广播数据包的响应数据包258;第(i+1)异步广播数据包260;对应于第(i+1)异步广播数据包的响应数据包262;响应周期267;目的节点304内部的数据移动266(从内部缓冲器252到下一级电路254);和在目的节点304内部的数据移动的延迟时间268。
当第i异步广播事务处理开始时,第i异步广播数据包256被从源节点302进行传送。目的节点304暂时将包括在该数据包中的数据段经由预定存储器空间存入内部缓冲器252,和然后该数据段传送到下一级电路254。
当完成该数据段的传送时,目的节点304准备指示完成的响应数据包258,和传送该数据包到源节点302。在这种情况下,在随着目的节点304内部的数据传送266的响应数据包258的传送中,产生取决于目的节点304性能的延迟时间268。
目的节点304的所期望的延迟时间268被作为从控制器300到源节点302的时间间隔事先进行通知。源节点302基于该时间间隔确定响应周期264。在这个时间期间,源节点302等待来自目的节点304的响应数据包,并不执行下一步异步广播事务处理。这里,响应周期264通常设置得比该时间间隔长。
对于第(i+1)异步广播事务处理,处理是按照与第i异步广播事务处理相同的程序执行的。此后,因为每个异步广播事务处理都按相同的方式进行,所以所有异步广播事务数据包被安全地传送,而不必重发。
在上述的结构中,在设置连接的时刻,第一实施例的控制器300(或源节点302)可以按照每个目的节点304的接收能力和性能动态地设置最佳响应周期。例如,当目的节点304的接收能力和性能高时,该周期设置得短,而当它们低时,该周期被设置得长。
因此,即使每个目的节点304的性能不是非常高,源节点302可以安全地执行每个异步广播事务处理,而不必频繁地产生重发处理。再有,网络中的传送效率可以防止被降低。此外,因为目的节点304不要求高速度、高性能接收能力,所以为了实现目的节点304的功能所需要的成本可以降低。
第二实施例
下面将参照图10到16描述第二实施例的通信协议。在该第二实施例中,将具体地详细描述防止不必要的重试的程序。当第I个数据不能被正常接收时,仅对一个预定的时间禁止重试。
图10是表示在该实施例所限定的设置有单一相位重试功能的源节点302重试程序的状态变换图。
响应于来自其节点控制器的(图10的1001)事务处理控制请求复位初始化,源节点302从另外的状态转换为OSR0状态。在这种状态下,源节点302进行准备发送一个预定的数据包到每个目的节点304。因此,在这种状态下,当指示来自目的节点304的非ack_busy_A、ack_busy_X的确认码的一个响应数据包被接收时,源节点302可以传送下一个数据包,和不需要执行重试(图10的1006)。
在OSRO状态下,当源节点302接收到指示ack_busy_A、ack_busy_B或ack_busy_X的响应数据包时,源节点302识别该目的节点304为忙。在这种情况下,源节点302从OSR0改变到OSR1状态,和执行重试(图10的1002)。
在OSR1状态下,当存在着待处理的未决重试时,在传送另外的选择数据包之前源节点302处理该重试。在这种情况下,源节点302指定重试码为retry_X以便执行重试。
在OSR1状态下,当源节点302未超过一个重试限制和该未决重试数据包未被放置在重试队列中时,源节点302再次重复重试(图10的1007)。这里,重试队列意味着各个重试数据包的一个队列。
另外,在OSR1状态下,在源节点302中设置最小重试周期。源节点302保持在OSR1状态,而不执行重试,直至该最小重试周期过去(图10的1008)。
在OSR1状态下,当重试限制未被超过和该重试数据包被放置在重试队列中时,源节点302从OSR1状态转变到OSR0状态(图10的1005)。
再有,在OSR1状态下,当响应数据包指示非ack_busy_A、ack_busy_B或ack_busy_X的证实码时,判断为重试已经被处理,源节点302从OSR1状态转变到OSR0状态(图10的1003)。
另外,在OSR1状态下,当源节点302执行某个数据包的重试直至重试限制超过时,则判断为该重试已经失败,和源节点302从OSR1状态转变到OSR0状态(图10的1004)。
图11是表示在该实施例中限定的源节点302的设置有双相位重试功能的重试程序的状态变换图。此外,支持双相位重试功能的源节点302也支持单相位重试功能。
为响应来自其节点控制器的事务处理控制请求以便初始化或复位,源节点302从另外的状态变化到ODR0状态(图11的1101)。在这种状态下,源节点302准备发送一个预定的数据包到每个目的节点304。源节点302设置重试码为retry_1,并处于备用状态。
在ODR0状态下,当从每个目的节点304接收到非ack_busy_A、ack_busy_B或ack_busy_X的响应数据包时,源节点302可以传送下包,并且不需要执行重试(图11的1107)。
在ODR0状态下,当从某个目的节点304接收到ack_busy_A、ack_busy_B或ack_busy_X的响应数据包时,源节点302判断该目的节点304是一个支持双相位重试功能的节点并且正忙。在这种情况下,源节点302按照双相位重试功能执行重试。
当接收到指示ack_busy_A的响应数据包时,源节点执行重试相位A,和从ODR0状态改变到ODR1状态(图11的1102)。另外,当接收到指示ack_busy_B的响应数据包时,源节点执行重试相位状态B,和从ODR0状态改变到ODR2状态(图11的1108)。
再有,在ODR0状态中,当从某个目的节点304接收到ack_busy_X的响应数据包时,源节点302判断该目的节点304是一个支持单相位重试功能的节点并且正忙。在这种情况下,源节点302按照单相位重试功能执行重试。当接收到指示ack_busy_X的响应数据包时,源节点302从ODR0状态改变到ODR3状态(图11的1113)。
在ODR1状态下,源节点302执行重试相位A,并具有待解决的未决重试。在这种情况下,在源节点302中设置最小重试周期。源节点302保持在ODR1状态,而不执行重试直至该最小重试周期过去(图11的1106)。
在ODR1状态下,源节点302设置重试码为retry_A和执行重试。在这种情况下,当来自目的节点304的响应数据包指示ack_busy_A,和4个适当间隔的超时周期没有过去时,源节点302再次重复重试(图11的1105)。这里,适当间隔的超时周期意味着设置在异步传输是可能的周期中的一个周期,该周期给予使用该网络的节点一个适当接入权。
再有,在ODR1状态下,当接收到包括非ack_busy_A与ack_busy_B的证实码的响应重试码时,则判断为该重试已经被处理,和源节点302从ODR1状态改变到ODR0状态(图11的1103)。
另外,在ODR1状态下,当4个适当间隔的超时周期过去时,则判断为重试已经失败,和源节点302从ODR1状态改变到ODR0状态(图11的1104)。
在ODR2状态下,源节点302执行重试相位B,并具有待解决的未决重试。在这种情况下,在源节点302中设置最小重试周期。源节点302保持在ODR2状态,而不执行重试直至最小重试周期过去(图11的1112)。
在ODR2状态下,源节点302设置重试码为retry_B,和执行重试。在这种情况下,当来自目的节点304的响应数据包指示ack_busy_B和4个适当间隔的超时周期没有过去时,源节点302再次重复重试(图11的1111)。
另外,在ODR2状态下,当接收到包括非ack_busy_A与ack_busy_B的证实码的响应重试码时,则判断为重试已经被处理,和源节点302从ODR2状态变化到ODR0状态(图11的1109)。
再有,在ODR2状态下,当4个适当间隔的超时周期过去时,则判断为个重试失败,和源节点302从ODR2状态变化到ODR0状态(图11的1110)。
在ODR3状态下,源节点302执行单相位重试,并具有一个待解决的未决重试。在这种情况下,在源节点302中设置最小重试周期。源节点302保持在ODR3状态,而不执行重试直至最小重试周期过去(图11的1117)。
在ODR3状态下,源节点302设置重试码为retry_X,并执行重试。在这种情况下,当来自目的节点304的响应数据包指示ack_busy_X并且没有超过重试限制时,源节点302再次重复重试(图11的1116)。
另外,在ODR3状态下,当接收到包括非ack_busy_X的证实码的响应重试码时,则判断为重试已经被处理,和源节点302从ODR3状态变化到ODR0状态(图11的1114)。
再有,在ODR3状态下,当重试的计数已经超过时,则判断为重试已经失败,和源节点302从ODR3状态变化到ODR0状态(图11的1115)。
如上所述,由于该结构具有预定的重试周期,该实施例的源节点302可以保证更安全的通信。另外,即使总线被阻塞,则目的节点304的忙状态也可以被防止经常地出现,和可以防止死锁。
接下来将参照图12描述基于第二实施例的通信协议的传送程序。此外,第二实施例的通信协议基本上是按照与第一实施例的通信协议相同的方式进行处理的。因此,用于执行与图4相同的处理的程序利用相同的代码来表示,和其详细的描述予以省略。此外,在图12中,为了简化描述,表示出一个源节点302和一个目的节点304之间的传送,但是相同的处理可以发生在设置多于一个的目的节点304的情况下。
控制器300为了识别源节点302和至少一个目的节点304之间的逻辑连接关系设置连接ID。进而,控制器300将连接ID通知每个节点,和设置一个连接(图12的401、402)。
在通知连接ID后,控制器300命令源节点302开始传送目标数据308(图12的403)。
在接收到传送命令后,源节点302与至少一个目的节点304进行协商以便设置初始异步广播事务处理(图12的404、405)。
在完成初始化后,源节点302执行异步广播事务处理,以便连续地广播由一个或多个数据段构成的目标数据308(图12的406至409)。
这里,源节点302按照与第一实施例相同的方式通过执行至少一次异步广播事务处理来传送一个或多个数据段。目标数据308被进行分段,例如分为如图7所示的多个段,和利用一次异步广播事务处理传送一个数据段。
在所有的数据段被传送后,源节点302完成与一个或多个目的节点304的数据通信(图12的410、411)。
接下来将参照图12详细描述控制器300的操作。
控制器300进行协商,以便设置由用户选择的源节点302和至少一个目的节点304之间的连接。接下来,控制器300执行用于设置各个节点之间连接的数据包的异步传送(下文称为连接设置数据包)(图12的401、402)。
这里,控制器300具有一种控制由每个连接所用的目的偏移(destinationoffset)的功能。控制器300利用一个从目的节点304通知的偏移地址,以便设置用于指定每个目的节点304的公用存储空间的目的偏移。另外一种方案,对应于某个连接的目的偏移在预定的程序中被设置。在这种设置后,目的偏移被从控制器300通知到源节点302。
指示源节点302和目的节点304之间连接的连接ID被存储在连接设置数据包的有效负荷中。每个节点通过连接ID识别设置到自己的一个连接。此外,由控制器300基于已经设置给源节点302的连接ID和已经设置给每个目的节点304的连接ID来设置此连接ID。
接下来,控制器300执行到源节点302的事务处理命令数据包的异步传送(图12的403)。
当接收到事务处理命令数据包时,源节点302利用从控制器300通知的连接ID执行初始化,以便执行异步广播事务处理(图12的404到409)。通过异步广播事务处理,源节点302连续地传送由一个或多个数据段构成的目标数据308。
此外,在该实施例的通信协议中,控制器300提供一种控制连接/断开的功能。因此,在连接被设置后,目标数据308通过源节点302与目的节点304之间的协商进行传送。
在一系列异步广播事务处理完成后,源节点302广播指示一个段结束的异步事务处理数据包(下文称为段结束数据包)(图12的410)。
在从源节点302接收到段结束数据包后,控制器300释放该连接,完成该数据传送(图12的411)。
这里,因为段结束数据包被广播,该数据包的内容可以从目的节点304中检测到。因此,替代控制器300,目的节点304自己也可以释放与源节点302的连接。
接下来将参照图12详细描述源节点302的操作。
已从控制器300中接收到连接设置数据包和事务处理命令数据包的源节点302发送异步广播数据包(下文称为发送请求数据包)到请求数据传送的每个目的节点304(图12的404)。
这里,发送请求数据包意味着用于在执行目标数据308的异步广播事务处理之前获得需要的初始信息的请求数据包。由控制器300指定的连接ID被写入该数据包。
目的节点304广播指示对应于发送请求数据包的响应的异步广播数据包(下文称为接收响应数据包)(图12的405)。这里,与在发送请求数据包中的连接ID相同的连接ID被存储在接受响应数据包中。因此,通过证实接收的数据包的连接ID,源节点302可以识别经由哪个连接传送接收响应数据包。
这里,每个目的节点304可以被保持在其中的内部缓冲器大小被存储在接受响应数据包中。在接收到接受响应数据包后,源节点302设置用于指定目的节点304公用存储空间的目的偏移,和开始异步广播事务处理。这里,由控制器300通知该目的偏移。
接下来,源节点302在由目的偏移指示的存储空间中写入第一异步广播事务处理(图12的406)。该数据段的连接ID和顺序号被存储在该数据包中。
在发送第一异步广播数据包后,源节点302等待来自每个目的节点304的证实数据包(图12的1201)。来自每个目的节点304的证实数据包是按图13所示构成的。这里,当目的节点304忙时,源节点302执行两种类型的重试,以便保证更为安全的数据传送,同时可以防止死锁。
接收到证实数据包后,源节点302递增顺序号,和传送包括下一个数据段的异步广播数据包(图12的407)。
源节点302重复该程序,连续地执行异步广播事务处理(图12的408、409)。预先确定等待来自目的节点304的证实数据包期间的最大时间周期。该时间周期被称为响应周期。该响应周期是按照第一实施例相同的方式进行设置的。即使该响应周期过去后,第i数据段的异步广播事务处理后,证实数据包不被返回。在这种情况下,源节点302重发与该数据段相同的数据。
另外,当响应数据包被从要求重发的目的节点304中进行传送时,源节点302可以再次广播指定的顺序号的数据。
在所有的目标数据308的异步广播数据包事务处理被执行后,源节点302广播段结束数据包,和完成数据传送(图12的410、411)。
这里,如上所述,源节点302按需要将目的数据308分为一个或多个数据段。在每个数据段的异步广播事务处理中,产生上述的响应数据包。通过执行一次异步广播事务处理,传送一个数据段。目的节点304具有由缓冲器大小指示的缓冲器容量。
此外,在该实施例中,在不受限制的一个数据段的异步广播事务处理中,证实数据包必须被发送出去。在目的节点304的内部缓冲器利用多个连续的数据段进行填充后,目的节点304可以发送证实数据包。在这种结构中,因为由目的节点304执行的响应操作的频度可以被降低,所以目的节点304的结构可以被简化,和可以增强处理的速率。
接下来参照图12详细地描述目的节点304的操作。
已从控制器300接收到连接设置数据包的目的节点304等待来自源节点302的发送请求数据包(图12的404)。
已接收发送请求数据包的目的节点304确认写在该数据包中的连接ID和从控制器通知的连接ID,确定是否该数据包是从源节点302传送的。
在从源节点302接收到发送请求数据包后,每个目的节点304广播连接ID,和接收其中写入内部缓冲器的安全规模的接受响应数据包(图12的405)。
在从源节点302传送的异步广播数据包事务处理被写入存储空间后,目的节点304确认该数据包的连接ID。当包含在该数据包中的连接ID与目的节点304本身的连接ID相一致时,广播一个证实数据包(图12的406到409)。在这种情况下,包含在接收的数据包中的数据段被存储在内部缓冲器中。这里,当包含在接收的数据包中的连接ID与它的连接ID不同时,目的节点304丢弃该接收的数据包。
再有,当目的节点304检测到该接收的数据包的顺序号不符时,则该数据包可以被发出以请求重发。在这种情况下,目的节点304对该重发请求指定顺序号,和将该顺序号通知源节点302。
当所有异步广播事务处理完成时,从源节点302广播段结束数据包。当接收到该数据包时,目的节点304完成数据传送处理(图12的410)。
在接收到段结束数据包后,目的节点304广播指示段结束数据包被正常接收到的数据包(图12的411)。
如上所述,该实施例的通信***可以解决常规通信***的不方便。另外,即使在不请求实时特性的数据传送中,该数据也可以容易地进行高速传送。
再有,在该实施例中,在控制器300设置连接后。传送目标数据的处理在源节点302和目的节点304之间被执行,而不受控制器300的控制。因此,这样可以提供一种简单的通信协议,在这种协议中降低了控制器300的负荷和不需要复杂的通信程序。
此外,在该实施例中,目的节点304保证发出一个响应到每个异步广播事务处理。因此,这样可以提供一种通信协议,在该协议中不要求实时特性的数据可以被安全地进行传送。
为了实现更安全的数据传送,当数据传送由于发生总线复位或由于任何传输差错而被中断时,该数据传送需要被立即恢复而不丢掉任何数据。下面将参照图4B描述在该实施例的通信协议中所限定的恢复程序。
例如,当在接收到具有顺序号i的异步广播数据包后发生总线复位,每个节点断开传送处理并按照在IEEE 1394_1995中限定的程序执行总线初始化、识别连接结构、设置节点ID等等(图4B的420、421)。
在总线重新构成完成后,每个目的节点304广播一个存储有连接ID和顺序号i的重发请求数据包(图4B的422)。
当异步广播事务处理可以被恢复时,源节点302确认接收的重发请求数据包的连接ID,广播其中存储连接ID的证实响应数据包(图4B的423)。
接下来,源节点302连续地广播由接收的重发请求数据包所请求的顺序号后的数据段,即以i+1顺序号开始的数据段(图4B的424)。
在上述的程序中,即使数据传送被中断,控制器300、目的节点304和源节点302可以容易和安全地继续后续的数据传送而不用考虑每个节点的ID。
另外,如上所述,在该实施例中,即使数据传送被中断,控制器300的控制程序可以被有效地简化。
下面将参照图13描述在第二实施例中限定的异步广播数据包的结构。此外在图13中,具有与第一实施例的异步广播数据包相同的功能的字段被利用与图5相同的码来表示。
首先,将对数据包标题521的结构进行描述。
在图13中,字段501(16比特)表示目的ID,一个目的(即,目的节点304)的节点ID被指示出。在该实施例的通信协议中,为了实现目标数据308的异步广播事务处理,该字段的值被设置为广播ID(即,FFFF16)。
字段502(6比特)指示一个事务处理标号(t1)字段,或者每个事务处理有关的特殊标记。
字段503(2比特)指示一个重试码,和指定该数据包是否进行重试。
字段504(4比特)指示事务处理码(tcode),该码指定一个数据包的格式或者一个待执行的事务处理类型。在该实施例中,该字段的一个值例如设置为00012,以便请求将该数据包的数据块522写入由目的偏移字段507指示的存储器空间中的处理(即写事务处理)。
字段505(4比特)指示优先级(pri),和指定优先级的次序。在该实施例中,该字段的值被设置为00002。
字段506(16比特)指示源节点ID,或者发送侧(即,源节点302)的节点ID。
字段507(48比特)指示目的偏移,并共同表示每个目的节点304的地址空间的低位48比特。这里,对于目的偏移,在所有的连接中可以设置为相同的值,或者在各个连接中设置为不同的值。但是,当设置为不同的值时,来自多个连接的异步广播数据包可以被并行地进行有效的处理。
字段508(16比特)指示数据长度,和按字节为单位来表示下述的数据字段长度。
字段509(16比特)指示扩展tcode。在该实施例中,该字段的值被设置为000016。
字段510(32比特)指示标题CRC,其中存储用于字段501到509的差错检测码。
下面将描述数据块522的结构。在该实施例中,数据块522是由标题信息1301和数据字段524构成的。
用于识别各个节点之间的逻辑连接关系的连接ID等被存储在标题信息1301中。
另外,数据字段524具有可变的长度,在其中存储着数据段。这里,当存储在数据字段524中的数据段不是4字节的倍数时,不满足4字节的部分被以0填充。
字段511(16比特)指示连接ID,和存储该实施例的ID。该实施例的1394接口基于存储在该字段中的连接ID识别源节点302和至少一个目的节点304之间的连接设置。在该实施例中,可以建立216×节点数个连接。因此,多个连接可以被设置,直至由每个连接所用的通信频带的总量达到传输路径量。
字段512(8比特)指示协议类型,和指示基于标题信息1301的通信程序(即通信协议类型)。当该实施例的通信协议被指示时,该字段的值是例如0116。
字段513(8比特)指示控制标志,和设置用于控制该实施例的通信协议的通信程序等的预定的控制数据。在该实施例中,该字段的最高有效位被设置为例如一个重发请求标志。因此,当该字段的最高有效位具有1值时,则表示基于该实施例的通信协议的重发请求被产生。
字段514(16比特)指示顺序号,和一个连续的值(即顺序号)被设置给基于所规定的ID(由字段511指定的连接ID)所传送的数据包。目的节点304可以利用顺序号监视连续进行异步广播事务处理的数据段的连续性。当出现不相等时,目的节点304可以基于顺序号请求重发。
字段515(16比特)指示重新确认号。在该实施例中,仅当重发请求标志具有1值时,该字段才有意义。例如,当重发请求标志的值是1时,请求重发的数据包的顺序号被设置在该字段中。
字段516(16比特)指示缓冲器大小。目的节点304的内部缓冲器的大小被设置在该字段中。
字段1302(16比特)指示保留,并保留用于将来扩展的规范。
字段519(32比特)指示数据CRC,和按照与标题CRC相同的方式存储用于字段511到518(包括标题信息1301和数据字段524)的差错检测码。
下面将描述确认数据包的结构。表示在图13的利用异步广播数据包接收数据段的目的节点304利用表示在图14的确认数据包返回一个响应。
在图14中,字段1401(4比特)是其中存储ack_code(确认码)的字段。上述的ack_busy_A、ack_busy_B、ack_busy_X或其它的码利用该字段传送到源节点302。
字段1402(4比特)是其中存储ack_parity(确认奇偶性)的字段。确认数据包的奇偶检验码被存储在该字段中。例如,在第二实施例中,确认码的值1的补码被存储。该字段用于字段1401的差错检测。
下一字段1403(8比特)是其中存储min_retry_period(最小重试周期)的字段。表示在图10、11中的最小重试周期的值存储在该字段中,例如以毫秒为单位。例如,当该字段的值是0116时,已接收确认数据包的源节点302设置最小重试周期为1ms,和在该时间期间不执行重试。此外,可以设置在字段1403中的时间单位不限制为1ms,和另外的时间单位也可以利用。
这里,每个目的节点304可以按照它的接收能力和负载状态变地设置将被存储在字段1403中的一个最佳值。例如,每个目的节点304监视它的负载状态,当负载大时,设置最小重试周期为大值;当负载小时,设置为小值。
对于节点负载状态,可以使用在一个节点上所执行的重试数量、发送到该节点的数据包的数量、节点缓冲器的占用状态、节点的连接数量和其它各种指示器。此外,用于检测节点负载状态的指示器是不受限制的,只要该节点的负载状态可以被检测到就可以。
此外,在该实施例中,将被存储在字段1403中的值可以被提供以一个特定的意义。例如,标准(缺省)值被设置为0016和由该值指示的最小重试周期可以被设置为100ms。另外,由标准(缺省)值所表示的最小重试周期不限于100ms,另外的值也可以进行设置。再有,例如,所谓立即重试也可以被指示,其中只要尽可能0016被设置为执行重试的标准(缺省)值。
图15是表示设置最小重试周期的操作。图15A表示一个操作流程,其中数据包被在执行异步广播事务处理的源节点302与对该事务处理返回图14所示的确认数据包的目的节点304之间进行发送/接收。另外,图15B是表示目的节点304随时间的负载状态变化的图。在图15B中,目的节点304的负载状态被表示在水平方向,而时间的过去被表示在垂直方向。
在图15中,在时间t1,当源节点302执行第一异步广播事务处理(写请求#1)时,目的节点304的负载是相对小的L1和忙(图15的1501)。在这种情况下,例如,目的节点304设置min_retry_period的值为3216,和返回ack_busy_X的确认数据包(图15的1502)。
源节点302从确认数据包的min_retry_period的值中设置最小重试周期为50ms(图15的1503)。在最小重试周期期间,源节点302不执行重试,和至少在50ms后执行重试(图15的1504,重试#1)。在图15中,该重试成功,和写事务处理完成(图15的1505)。
接下来,在时间t2,当源节点302执行第二异步广播事务处理(写请求#2)时,目的节点304的负载是相对大的L2和忙(图15的1506)。例如,目的节点304设置min_retry_period的值为B416,和返回ack_busy_X的确认数据包(图15的1506)。
源节点302从确认数据包的min_retry_period的值中设置最小重试周期为180ms(图15的1507)。在最小重试周期期间,源节点302不执行重试,和至少在180ms后执行重试(图15的1508,重试#2)。
在该实施例的上述操作中,因为发送确认数据包的目的节点动态地设置最小重试周期,因此可以提供一种保证更为安全的数据通信的通信***和通信协议。此外,即使总线被拥塞,也可以防止频繁地出现忙状态,和还可以防止发生死锁。另外,在上述的操作中,在该实施例中,因为最小重试周期可以动态地进行设置,通信资源可以被正确地分配,和通信效率可以增强,同时通信路径不会被源节点占用来执行重试。
再有,在上述操作中,即使当在快速发送的源节点和慢速接收的目的节点之间执行传送时,源节点可以防止频繁地执行重试,和目的节点的接收缓冲器可以不断地防止溢出。
此外,在图15中,为了简化描述,仅表示出一个源节点302和一个目的节点304之间的传送,但是当提供多于一个的目的节点304时,相同的处理也可以执行。在这种情况下,基于从每个目的节点304传送的确认数据包,源节点302确定一个最佳最小重试周期。
如上所述,在该实施例中,可以在类似IEEE 1394_1995的总线型网络中构成不取决于物理模式的逻辑连接关系。
另外,按照该实施例,在符合IEEE 1394_1995标准的通信***中,可以提供一种完全新颖的通信协议,该协议对要求非实时特性但要求可靠性的相当大量的目标数据(例如,静止图象数据、图形数据、文本数据、程序数据等等)分段成一段或多段数据,和连续地进行传送。
另外,按照该实施例,在符合IEEE 1394_1995标准的通信***中,可以提供一种完全新颖的通信协议,该协议仅利用一个通信***异步地广播数据就可以实现多个设备之间的数据通信。
此外,在该实施例中,多个连续的数据可以被安全地进行传送,而不需要利用IEEE 1394_1995标准的等时传送***。另外,一个目标数据被分段为多个数据,和可以被安全地传送。
再有,在该实施例中,因为多个设备之间的通信是受一个连接控制的,所以多个通信可以同时地被执行,而不需要利用多个通信频段。
另外,在该实施例中,当数据传送由于总线复位或者传输差错被中断时,***可以知道哪段数据丢失,和传送可以被恢复,而不需要启用一种复杂的通信程序。
其它的实施例
在上面实施例中描述的通信协议和实现该通信协议的各种需要的处理操作可以利用软件来实现。
例如,给构成该实施例的通信***的设备控制器(例如,图2的MPU 12、***控制器50、打印机控制器68)提供存储实现上述实施例的功能的程序代码的存储介质。接下来,该控制器读出存储在存储介质中的程序代码,控制通信***或设备的操作,以便按照程序代码实现实施例的功能。因此,上述实施例可以被实现。
另外,其中存储了实现上述实施例的功能的程序代码的存储介质提供给安装在每个设备中的1394接口14、44、62,和用于控制1394接口14、44、62的操作的控制器(即,图8的串行总线管理806)按照存储在存储介质中的程序代码控制处理操作以实现实施例的功能。
在这种情况下,从存储介质中读出的程序代码实现实施例的功能,而该程序代码和用于馈送程序代码到控制器的装置(例如,存储介质本身)构成本发明。
可以利用其中存储了程序代码的存储介质,例如,软盘、硬盘、光盘、磁光盘、CD_ROM、磁带、非易失性存储卡、ROM等等。
另外,不言而喻,本发明还包括从存储介质读出的程序代码与工作在控制器中的OS(操作***)、各种应用软件等等一起共同实现实施例的功能的情况。
本发明还包括在程序代码从存储介质读出后被存储到安装在连接到控制器上的功能扩展单元上的存储器中的情况,该提供在功能扩展单元上的控制器按照存储在该存储器的程序代码执行部分或者整个实际处理以实现实施例功能。
本发明可能在不脱离其基本特征的精神和实质的情况下,按其他具体的形式进行实施。
例如,第一实施例的通信协议可以与第二实施例进行组合。因此,可以确定第i和第(i+1)异步广播事务处理之间的最佳时间间隔。此外,即使第i异步广播事务处理没有被正常地接收,对于一个预定的时间可以禁止重试。
再有,在各个实施例中,已经描述了通信协议可应用到符合IEEE1394_1995标准的网络,但是本发明并不仅限于此。实施例的通信协议可以被应用到类似于IEEE 1394_1995标准的总线型网络或虚拟地构成总线型网络的网络。
因此,上述的各个实施例仅仅是在所有方面的例子,而并不是对本发明的限制。
本发明的范围是由后附的权利要求书予以限定的,和不受说明书的具体描述的限制。再有,属于权利要求的等同物的所有修改和改变都被视为落入本发明的范围内。
Claims (20)
1.一种通信***,包括:
发送装置,用于发送数据包;以及
接收装置,用于接收从发送装置所发送的数据包;
其中,所述发送装置适合于接收包括接收装置的接收能力的接收能力信息,并根据所述接收能力信息确定等待时间;以及
其中,所述等待时间是用于等待与发送装置所发送的数据包相应的响应数据包的时间。
2.根据权利要求1所述的通信***,其中,如果在等待时间内发送装置接收到所述响应数据包,则发送装置发送下一个数据包。
3.根据权利要求1所述的通信***,其中,如果在等待时间内发送装置没有收到所述响应数据包,则发送装置重试发送所述数据包。
4.根据权利要求1至3任一所述的通信***,其中,在发送装置发送第一个数据包之前,发送装置确定等待时间。
5.根据权利要求1至3任一所述的通信***,其中,发送装置与接收装置使用符合IEEE 1394-1995标准的通信部件进行通信。
6.一种在通信***中使用的方法,所述通信***包括用于发送数据包的发送装置、以及用于接收从发送装置所发送的数据包的接收装置,所述方法包括:
接收步骤,用于接收包括接收装置的接收能力的接收能力信息;以及
确定步骤,用于根据所述接收能力信息确定等待时间;
其中,所述等待时间是用于等待与发送装置所发送的数据包相应的响应数据包的时间。
7.根据权利要求6所述的方法,其中,如果在等待时间内发送装置接收到所述响应数据包,则发送装置发送下一个数据包。
8.根据权利要求6所述的方法,其中,如果在等待时间内发送装置没有收到所述响应数据包,则发送装置重试发送所述数据包。
9.根据权利要求6至8任一所述的方法,其中,在发送装置发送第一个数据包之前,确定步骤确定等待时间。
10.根据权利要求6至8任一所述的方法,其中,发送装置与接收装置使用符合IEEE 1394-1995标准的通信部件进行通信。
11.一种用于发送数据包的发送装置,所述装置包括:
接收部件,用于接收包括一个接收装置的接收能力的接收能力信息;以及
确定部件,用于根据所述接收能力信息确定等待时间;
其中,所述等待时间是用于等待与发送装置所发送的数据包相应的响应数据包的时间。
12.根据权利要求11所述的发送装置,其中,如果在等待时间内发送装置接收到所述响应数据包,则发送装置发送下一个数据包。
13.根据权利要求11所述的发送装置,其中,如果在等待时间内发送装置没有收到所述响应数据包,则发送装置重试发送所述数据包。
14.根据权利要求11至13任一所述的发送装置,其中,在发送装置发送第一个数据包之前,确定部件确定等待时间。
15.根据权利要求11至13任一所述的发送装置,其中,发送装置与接收装置使用符合IEEE 1394-1995标准的通信部件进行通信。
16.一种在用于发送数据包的发送装置中使用的方法,所述方法包括:
接收步骤,用于接收包括接收装置的接收能力的接收能力信息;以及
确定步骤,用于根据所述接收能力信息确定等待时间;
其中,所述等待时间是用于等待与发送装置所发送的数据包相应的响应数据包的时间。
17.根据权利要求16所述的方法,其中,如果在等待时间内发送装置接收到所述响应数据包,则发送装置发送下一个数据包。
18.根据权利要求16所述的方法,其中,如果在等待时间内发送装置没有收到所述响应数据包,则发送装置重试发送所述数据包。
19.根据权利要求16至18任一所述的方法,其中,在发送装置发送第一个数据包之前,确定步骤确定等待时间。
20.根据权利要求16至18任一所述的方法,其中,发送装置与接收装置使用符合IEEE 1394-1995标准的通信部件进行通信。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4265698 | 1998-02-24 | ||
JP042656/1998 | 1998-02-24 | ||
JP042656/98 | 1998-02-24 | ||
JP10097917A JPH11298509A (ja) | 1998-04-09 | 1998-04-09 | データ通信システム、データ通信方法、データ通信装置及び記憶媒体 |
JP097917/98 | 1998-04-09 | ||
JP097917/1998 | 1998-04-09 | ||
JP112355/98 | 1998-04-22 | ||
JP112355/1998 | 1998-04-22 | ||
JP11235598A JP4065466B2 (ja) | 1998-04-22 | 1998-04-22 | データ通信システム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1235303A CN1235303A (zh) | 1999-11-17 |
CN1179280C true CN1179280C (zh) | 2004-12-08 |
Family
ID=27291299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB991032837A Expired - Fee Related CN1179280C (zh) | 1998-02-24 | 1999-02-24 | 通信***及其方法,发送装置及其方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6690648B2 (zh) |
EP (1) | EP0938218B1 (zh) |
KR (1) | KR100311706B1 (zh) |
CN (1) | CN1179280C (zh) |
DE (1) | DE69941313D1 (zh) |
MY (1) | MY128864A (zh) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4181688B2 (ja) | 1998-04-09 | 2008-11-19 | キヤノン株式会社 | データ通信システム及びデータ通信装置 |
JP3460579B2 (ja) * | 1998-05-21 | 2003-10-27 | 松下電器産業株式会社 | データ転送方法 |
US7068674B1 (en) * | 1999-08-23 | 2006-06-27 | Lg Electronics Inc. | Method of controlling connection between nodes in digital interface |
JP4192372B2 (ja) | 1999-12-03 | 2008-12-10 | ソニー株式会社 | 印刷装置、印刷制御装置、印刷システム及び印刷方法 |
JP2001186162A (ja) * | 1999-12-24 | 2001-07-06 | Toshiba Corp | Av機器ネットワークシステム |
JP4281201B2 (ja) | 2000-03-06 | 2009-06-17 | ソニー株式会社 | 制御装置、及び制御方法 |
JP2001251375A (ja) * | 2000-03-06 | 2001-09-14 | Sony Corp | 伝送方法、伝送システム、入力装置、出力装置及び伝送制御装置 |
JP3400772B2 (ja) * | 2000-04-25 | 2003-04-28 | 松下電器産業株式会社 | パケット送受信処理装置 |
FR2822005B1 (fr) * | 2001-03-12 | 2003-06-13 | Canon Kk | Transmission de transaction asynchrone a duree de vie limitee |
US6990111B2 (en) * | 2001-05-31 | 2006-01-24 | Agilent Technologies, Inc. | Adaptive path discovery process for routing data packets in a multinode network |
US6931564B2 (en) * | 2001-07-13 | 2005-08-16 | International Business Machines Corporation | Failure isolation in a distributed processing system employing relative location information |
US7032082B1 (en) | 2001-08-31 | 2006-04-18 | Juniper Networks, Inc. | Centralized memory allocation with write pointer drift correction |
DE10161509A1 (de) * | 2001-12-14 | 2003-07-03 | Siemens Ag | Verfahren und Anordnung zum Transport von Datenpaketen eines Datenstroms |
US7191375B2 (en) * | 2001-12-28 | 2007-03-13 | Intel Corporation | Method and apparatus for signaling an error condition to an agent not expecting a completion |
US7184399B2 (en) * | 2001-12-28 | 2007-02-27 | Intel Corporation | Method for handling completion packets with a non-successful completion status |
US7581026B2 (en) * | 2001-12-28 | 2009-08-25 | Intel Corporation | Communicating transaction types between agents in a computer system using packet headers including format and type fields |
US7099318B2 (en) | 2001-12-28 | 2006-08-29 | Intel Corporation | Communicating message request transaction types between agents in a computer system using multiple message groups |
US7225286B2 (en) * | 2002-06-24 | 2007-05-29 | Koninklijke Philips Electronics N.V. | Method to measure transmission delay between 1394 bridges |
JP3800158B2 (ja) * | 2002-09-27 | 2006-07-26 | ブラザー工業株式会社 | データ送信システム、端末装置、及びプログラム |
US7733783B2 (en) * | 2002-12-03 | 2010-06-08 | Cedar Point Communications, Inc. | Ethernet network availability |
JP4497941B2 (ja) | 2003-01-31 | 2010-07-07 | キヤノン株式会社 | 画像供給デバイス及び記録システム及びその制御方法 |
JP3606465B2 (ja) * | 2003-01-31 | 2005-01-05 | キヤノン株式会社 | 画像供給デバイスと記録装置及び記録システムとその制御方法 |
JP4343714B2 (ja) | 2003-01-31 | 2009-10-14 | キヤノン株式会社 | 通信装置及びその通信制御方法 |
US7289141B2 (en) * | 2003-01-31 | 2007-10-30 | Canon Kabushiki Kaisha | Image supply device, recording apparatus, recording system, and control method therefor |
JP4143501B2 (ja) * | 2003-08-22 | 2008-09-03 | キヤノン株式会社 | 画像供給装置と、当該画像供給装置と記録装置とを含む記録システムとその通信制御方法 |
JP2005176233A (ja) * | 2003-12-15 | 2005-06-30 | Canon Inc | 通信装置及び通信システム |
US7636313B2 (en) * | 2003-12-23 | 2009-12-22 | Microsoft Corporation | Use of internal buffer to reduce acknowledgement related delays in acknowledgement-based reliable communication protocols |
JP4971660B2 (ja) * | 2005-03-31 | 2012-07-11 | キヤノン株式会社 | 画像処理装置、画像処理方法、コンピュータプログラム、記憶媒体 |
JP4804307B2 (ja) * | 2006-10-27 | 2011-11-02 | 富士通テン株式会社 | ゲートウェイ装置及び転送制御方法 |
US7747563B2 (en) * | 2006-12-11 | 2010-06-29 | Breakaway Technologies, Inc. | System and method of data movement between a data source and a destination |
US9170970B2 (en) * | 2007-01-15 | 2015-10-27 | Lantiq Beteiligungs-GmbH & Co. KG | Detector to search for control data |
JP2009260541A (ja) * | 2008-04-15 | 2009-11-05 | Sony Corp | 送信装置および方法、受信装置および方法、プログラム、並びに、送受信システムおよび方法 |
CN101795304A (zh) * | 2010-03-12 | 2010-08-04 | 中国电力科学研究院 | 一种数字化变电站内加速IPv6地址空间搜索的方法 |
US20120320909A1 (en) * | 2011-06-16 | 2012-12-20 | Ziegler Michael L | Sending request messages over designated communications channels |
JP5811073B2 (ja) | 2012-11-07 | 2015-11-11 | 株式会社デンソー | 電子制御装置 |
JP5586738B2 (ja) * | 2013-05-23 | 2014-09-10 | 株式会社エヌ・ティ・ティ・データ | 金融アプリケーションサーバ、携帯通帳記帳システム、入金処理方法及び金融アプリケーションプログラム |
JP5931816B2 (ja) * | 2013-08-22 | 2016-06-08 | 株式会社東芝 | ストレージ装置 |
CN104486247A (zh) * | 2014-12-16 | 2015-04-01 | 北京东土科技股份有限公司 | 一种基于串口服务器的数据传输方法及装置 |
EP3570499B1 (de) * | 2018-05-15 | 2021-04-07 | Siemens Aktiengesellschaft | Verfahren zur funktional sicheren verbindungsidentifizierung |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3572768B2 (ja) * | 1995-08-12 | 2004-10-06 | ソニー株式会社 | データ通信方法 |
JP3271493B2 (ja) * | 1995-09-26 | 2002-04-02 | ヤマハ株式会社 | ネットワークおよびデータ伝送方法 |
JPH09275402A (ja) | 1996-04-04 | 1997-10-21 | Sony Corp | 通信制御システムおよび通信制御装置並びにデータ送受信装置および通信制御方法 |
EP0804008B1 (en) | 1996-04-26 | 2006-11-15 | Texas Instruments Incorporated | Apparatus for data packet transfer control |
JPH10229410A (ja) | 1997-02-14 | 1998-08-25 | Canon Inc | データ処理装置、電子機器および通信システム |
JP3862349B2 (ja) * | 1997-04-04 | 2006-12-27 | キヤノン株式会社 | 情報処理システム、画像処理システムおよびそれらの方法、並びに、情報処理装置およびコンピュータ可読メモリ |
US6219697B1 (en) * | 1997-05-02 | 2001-04-17 | 3Com Corporation | Method and apparatus for operating the internet protocol over a high-speed serial bus |
US5938752C1 (en) * | 1997-05-20 | 2002-02-05 | Microsoft Corp | System and method for encapsulating legacy data transport protocols for ieee 1394 serial bus |
US6237106B1 (en) | 1997-11-06 | 2001-05-22 | Canon Kabushiki Kaisha | Communication apparatus and method, and program in computer readable medium |
-
1999
- 1999-02-19 US US09/252,924 patent/US6690648B2/en not_active Expired - Lifetime
- 1999-02-23 EP EP99301297A patent/EP0938218B1/en not_active Expired - Lifetime
- 1999-02-23 DE DE69941313T patent/DE69941313D1/de not_active Expired - Lifetime
- 1999-02-23 KR KR1019990005988A patent/KR100311706B1/ko not_active IP Right Cessation
- 1999-02-24 MY MYPI99000651A patent/MY128864A/en unknown
- 1999-02-24 CN CNB991032837A patent/CN1179280C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR100311706B1 (ko) | 2001-11-02 |
US20030156093A1 (en) | 2003-08-21 |
CN1235303A (zh) | 1999-11-17 |
EP0938218B1 (en) | 2009-08-26 |
MY128864A (en) | 2007-02-28 |
EP0938218A2 (en) | 1999-08-25 |
DE69941313D1 (de) | 2009-10-08 |
US6690648B2 (en) | 2004-02-10 |
KR19990072861A (ko) | 1999-09-27 |
EP0938218A3 (en) | 2001-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1179280C (zh) | 通信***及其方法,发送装置及其方法 | |
CN1148041C (zh) | 网络控制***及其控制器、目标及消费器 | |
CN1184787C (zh) | 数据通信***,数据通信方法和数据通信装置 | |
CN1179277C (zh) | 通信控制方法和装置及通信*** | |
CN1302654C (zh) | 记录***及其控制方法 | |
CN1238790C (zh) | 接收并存储广播内容、响应用户请求使内容成为可利用状态的接收终端装置 | |
CN1287763A (zh) | 网络控制*** | |
CN1144441C (zh) | 移动通信***中按照无线电链路协议发送可变长度数据的装置和方法 | |
CN1221122C (zh) | 因特网传真机和控制用该传真机的因特网传真通信的方法 | |
CN1201242C (zh) | 数据传送控制装置和电子装置 | |
CN1252646C (zh) | 图像处理方法和图像处理装置 | |
CN1174471A (zh) | 打印机***及其动作控制方法 | |
CN1604562A (zh) | 通信控制器、主机端控制器、通信设备、通信***和方法 | |
CN101068300A (zh) | 图像形成装置及应用程序执行方法 | |
CN1738219A (zh) | 发送接收装置、数据传送***、发送接收方法及程序 | |
CN1933387A (zh) | 接收装置、电子设备、通信方法、通信程序以及记录介质 | |
CN1204810A (zh) | 遥控方法、服务器及记录介质 | |
CN1968251A (zh) | 数据通信装置 | |
CN1707457A (zh) | 数据传输方法和数据传输装置 | |
CN1638321A (zh) | 发送设备和方法、接收设备和方法、存储介质以及程序 | |
CN1301471C (zh) | 数据通信***及其方法 | |
CN1890624A (zh) | 电子装置及其控制方法、主机装置及其控制方法 | |
CN1132395C (zh) | 数据通信***和数据通信方法 | |
CN1184786C (zh) | 数据通信***、方法、装置和数字接口 | |
CN1777864A (zh) | 图像输出***及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20041208 Termination date: 20160224 |