CN101346915B - 同步数据通信 - Google Patents
同步数据通信 Download PDFInfo
- Publication number
- CN101346915B CN101346915B CN2006800485453A CN200680048545A CN101346915B CN 101346915 B CN101346915 B CN 101346915B CN 2006800485453 A CN2006800485453 A CN 2006800485453A CN 200680048545 A CN200680048545 A CN 200680048545A CN 101346915 B CN101346915 B CN 101346915B
- Authority
- CN
- China
- Prior art keywords
- packet
- node
- section point
- reception
- grouping
- 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.)
- Active
Links
Images
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
- Small-Scale Networks (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
公开了在第一节点和第二节点之间同步传播数据分组的方法、装置和计算机程序产品。数据分组从所述第一节点被传送而不等待所述第二节点的接收确认。给定数据分组的接收确认随后在所述第一节点被接收。所述确认在传送所述给定数据分组后的预定时间内被基本接收。所述确认指示所述第二节点接收到未被破坏的所述给定数据分组。
Description
本申请要求于2005年12月22日提交的美国临时专利申请序号60/753,991的权益,该申请的全部内容通过引用并入本文。
技术领域
本公开涉及信息系统。
背景技术
某些应用具有高带宽需求和严格的同步性、时延和对通信的可靠性需求。例如,机器人辅助的外科手术要求高带宽以实时传送控制和反馈信号。这种应用的同步性和时延需求是严格的,因为理想情况下外科医生的动作和机器人的动作之间存在的时延(latency)应当尽可能短。在这些应用中,由于数据传送误差可能会伤害患者所以通信必须是高度可靠的。
用于机器人辅助的外科手术的一种传统通信系统使用几百条通道(例如,电线)将外科医生的控制台连接到机器臂。但是,上百条通道的使用不便于系统的安装和维护并且需要充足的空间来规划所有通道的路线。
传统的通信标准提供的性能在一些领域是可以接受的,但在其它领域是不足的。例如,IEEE-1394接口标准提供同步的、串行的、点对点的通信。IEEE-1394信道具有保证的带宽但只能提供大约125微秒内的同步。这样的性能对于需要较严格同步的某些应用来说可能是不足的。
发明内容
一方面,提供了一种方法与计算机程序产品,其包括将第一数据分组从第一节点向第二节点传送。第一数据分组包括数据字段,该数据字段包括第一节点的未填充数据。传送第一数据分组后,将第二数据分组从第一节点向第二节点传送。第二数据分组的传送在已经从第二节点接收到与第一数据分组对应的任何确认信息之前开始。从第二节点传送的第三数据分组在第一节点被接收。该第三数据分组包括指示第一数据分组是否被第二节点正确接收的确认信息。第一数据分组的传送和第三数据分组的接收是互锁(interlock)的,使得第三数据分组在传送第一数据分组后的预定时间内被基本接收。
特定实现可包括一个或多个以下特征。无论第一节点是否具有待置于第二数据分组的数据字段中的未填充数据,第二数据分组都会被传送。第一数据分组、第二数据分组、第三数据分组每个可包括各自的流程控制信息。第一数据分组和第二数据分组中的流程控制信息与第一节点有关,而第三数据分组中的流程控制信息与第二节点有关。流程控制信息可包括用于多个信道的单独的流程控制信息。第一数据分组可包括指示未填充数据正在多个信道的哪个信道上传送的头信息。第一数据分组和第二数据分组每个可包括第一节点的故障状态指示。第三数据分组可包括第二节点的故障状态指示。第一数据分组、第二数据分组和第三数据分组可具有相同的长度。
第四数据分组可在第一节点被接收。第四数据分组从第二节点被传送并包括指示第二数据分组是否被第二节点正确接收的确认信息。第二数据分组的传送和第四数据分组的接收可被互锁使得第四数据分组在第二数据分组的传送后的预定时间内被基本接收。在第三数据分组被接收之前,第五数据分组可在第一节点被接收。第五数据分组在第三数据分组之前从第二节点被传送,并且第五数据分组不包括指示特定数据分组是否被第二节点正确接收的确认信息。
另一方面,提供的方法和计算机程序产品包括在第一节点和第二节点之间同步传播数据分组。数据分组从第一节点被传送而不等待第二节点接收的确认。第二节点接收到给定数据分组的确认随后在第一节点被接收。该确认在传送给定数据分组后的预定时间内被基本接收指示第二节点接收给定数据分组未被破坏(uncorrupt)。在特定实现中,如果在具体数据分组传送后的预定时间内基本未接收到具体数据分组的接收确认,则可重发具体数据分组。
又另一方面,提供的方法包括将第一数据分组从第一节点向第二节点传送。第一数据分组包括第一数据字段,该数据字段包括第一节点的未填充数据。第一数据分组在第二节点被接收,并且接收第一分组需要有限的时间。在第一数据分组的接收开始后、但在第一数据分组的接收结束前开始第二数据分组从第一节点向第二节点的传送。第二数据分组在第一节点被接收,并且接收第二数据分组需要有限的时间。在第一数据分组的传送结束后、第二数据分组的接收开始后、且在第二数据分组的接收结束前开始第三数据分组从第一节点向第二节点的传送。第三数据分组的传送在已经从第二节点接收到与第一数据分组对应的任何确认信息之前开始。第三数据分组在第二节点被接收,并且接收第三数据分组需要有限的时间。在第二数据分组的传送结束后、第三数据分组的接收开始后、并且在第三数据分组的接收结束前开始第四数据分组从第二节点向第一节点的传送。第四数据分组的传送在已经从第一节点接收到与第二数据分组对应的任何确认信息之前开始。第四数据分组包括指示第一数据分组是否被第二节点正确接收的确认信息。第一数据分组的传送和第四数据分组的传送是互锁的,使得第四数据分组在第一数据分组的传送后的预定时间内被基本传送。第四分组在第一节点被接收,并且指示第一数据分组是否被正确接收的确认信息在第一节点被处理。如果第一数据分组未在第二节点被正确接收,则第一节点将重传第一数据分组。
特定实施例可被实施为实现一个或多个以下优点。发送器和接收器可以很精确的被同步(例如,基本在10毫秒或更少的时间内)。可对时延进行限制并保持低时延(例如,基本少于10毫秒)。数据可以以低时延通过单物理通道连接器进行传送。同一通信协议可用于单个系统中以不同速度运行的多个通信链路。通信协议可以以低廉的价格在硬件中实现。带宽可用于数据传送,否则其将用于等待确认。可同时对流程控制信息和确认信息执行误差检测与恢复。故障信息可快速在系统内传送。不同优先等级的多个独立数据流可在系统内传送。
可利用方法、装置、系统或方法、装置和系统的组合来实现这些通用且具体的方面。
本发明的一个或多个实施例的细节将在以下的附图和说明书中叙述。根据说明书、附图和权利要求书,本发明的其它特征、方面和优点将是显而易见的。
附图说明
图1是系统的方块图,该系统包括通过链路连接的多个节点。
图2是数据分组的结构图。
图3是节点之间分组传送的时序图。
图4是误差恢复情形的时序图。
图5是误差恢复情形的时序图。
图6是在节点上执行的过程的流程图。
各附图中相同的标号和标记指代相同的元件。
具体实施方式
链路层被描绘成使用两个系统节点之间基本连续的全双工串行数据流。节点可包括例如计算机、可编程处理器、现场可编程门阵列(FPGA)或其它数据处理装置。数据被分成长度固定的分组。每个长度固定的分组可包括数据、误差校验信息、流程控制信息、诊断信息、故障信息和重发控制信息。每个分组中的数据可包括硬件级数据或部分消息(例如软件消息)。
无论数据是否可用于传送,长度固定的分组都在两节点间持续传送。当没有数据可用于传送时,分组的数据字段可使用“填充(filler)”数据进行填充,该数据将在接收节点处被丢弃。传送的分组包括以前接收的分组的确认,而传送节点将传送第一分组并在接收来自接收节点的第一分组的确认之前开始传送至少一个随后的分组。节点处分组的传送和接收被互锁,这将在下面更详细地描述。
如图1所示,通过在一条链路上对数据进行多路传输可将来自第一节点110的数据向多个目标节点-例如,第二节点120、第三节点130和第四节点140-传送。第一节点110和特定目标节点之间的节点可路由数据。第一节点110可通过第一链路125为第二节点120传送数据。第一节点110还可为第三节点130通过第一链路125将数据向第二节点120传送,而第二节点120可通过第二链路135将数据路由到第三节点130。同样,第一节点110可通过第一链路125为第四节点140传送数据,而第二节点120可通过第三链路145将数据路由到第四节点140。
在一种实现中,可对消息中目标节点的标记进行处理,该消息包含在被传送的数据中。在此实现中,在向目标节点发送包括部分消息的分组之前,第二节点120通常处理从第一节点110发送的消息的至少一部分。如果第二节点120本身是目的节点,则消息不需要被进一步传送。
在一些系统中,第一节点110和第三节点130和第四节点140之间的通信比第三节点130和第四节点140之间的通信更为频繁地发生。在这种系统中,相对于第二链路135或第三链路145,第一链路125可以是更为高速的链路以为经过第一链路125传递的更大量的数据提供足够的容量。
节点110、120、130和140可包括一个或多个硬件数据缓冲区152-164,其接收消息并在软件准备接收消息之前保持消息,该软件在各个节点上或在与各个节点通信的数据处理装置上执行。
如图2所示,一种实现的长度固定的分组200可包括多个字节201-240。当显示40个字节的分组时,该长度固定的分组可以是其它长度。在所示的实现中,控制信息被放置在40个字节的8个字节中,而数据被置于其余的32个字节中。第一字节201是同步字段,其用于在接收分组的节点处保持字节帧同步(framing)。可以定期的向分组添加附加的同步字节(例如,每128个分组添加一次)以补偿节点之间的时钟漂移。第二字节202是确认字段,其指示由传送分组200的节点接收的最后分组是否被正确接收(例如,包含的有效的误差校验信息)。第二字节202可被设置为一个值(例如,0xAC)以指示最后分组被正确接收的确认(ACK),第二字节202也可设置为相反值(例如,0x53)以指示最后的分组未被正确接收(未确认,或NAK)的。在一种实现中,除了确认值之外的任何值可解释为未确认。在此实现中,如果NAK值是ACK值的反,则需要使用8比特的误差将传送的NAK转换成ACK。
第三字节203是包括多个控制位的响应字段,诸如指示系统处于诊断测试模式的测试-模式位和用于多个消息信道(例如,低-优先级、中-优先级和高-优先级信道)的每个消息信道的XOFF位。这些控制位还可包括重发位,当其被设置时指示分组200是较早分组的重发。一个或多个控制位还可以是故障位,其指示系统中已出现误差。
第四字节204是头字段。该头字段可包括多个子字段,诸如信道-选择子字段和命令子字段。信道-选择子字段用来指示分组200中的数据正在哪个优先级信道上传送。命令子字段可包括刷新缓冲区并重启消息流的指令。命令子字段可包括请求通过硬件信道发送特定数据的指令或识别这种数据的代码。命令子字段还可用来同步系统。例如,在同步周期开始时,可发送包括同步命令的分组,从而使系统内的子系统能保持同步(例如,10毫秒内)。第五字节205是序列号字段,其包括可被接收节点用来检测传送误差的序列号。第六字节206到第37字节237属于拥有32字节数据的数据字段,诸如消息或消息的一部分。
第38字节238是分组结束字段,其可指定数据字段中的多少字节对应一个消息及多少字节是填充字节。分组结束字段还可包括消息结束指示位,当数据字段中的字节结束一个消息时该消息结束指示位被设置。消息结束指示位可在接收节点触发中断。第39字节239和第40字节240是误差校验字段的一部分,在一种实现中其可包括16位(循环冗余校验码)CRC值(例如,使用国际电报电话咨询委员会(CCITT)16位CRC算法计算)。当节点接收分组时,该节点可使用误差校验字段确定发送或接收分组时是否出现误差。
分组200的结构允许用于指示节点处故障的故障反应逻辑(FRL)信号以多种方式传播。例如,FRL信号可以包含在分组控制信息(例如,分组200的响应字段的控制位中)和/或消息中进行传送。在分组控制信息中直接传送FRL信号允许故障信息很迅速地在系统范围内传送并以很低的等级被处理。系统范围的故障信号可在没有软件干涉的情况下进行传播,并且当接收到故障信号时故障反应硬件可使系统处于安全状态。一旦引起故障的问题已经解决(例如,通过操作人员的介入),故障信号可被清除且系统会返回到工作状态。当故障信号被清除时,指示故障的FRL信号通常不会在分组控制信息中被传送直至另一故障发生。
故障信号的快速传播是有益的系统示例是机器人外科手术系统。这样的系统可包括多个机器臂,其持有外科手术器械或设备(例如,腹腔镜、内窥镜、光源、照相机和吹药器),其中的一些设备可在患者体内。机器臂通常由外科医生远程操作。外科医生操作的控件和控制机器臂的节点之间的通信可使用当前公开中描述的方法、系统和装置。如果此系统中发生故障,则可将机器臂锁定在适当位置使得患者不会被机器臂的无意识运动所伤害。当系统故障发生且系统故障在节点间传播时,可以在机器臂的结合处应用制动装置并暂停运动命令的传送直到故障被操作人员清除或被系统监视单元自动清除。
描述的分组结构允许诸如消息等数据在单个信道上或多条信道上发送,所述多条信道在一个串行连接(serial connection)上被多路复用。发送特定消息的信道由分组200中的信道选择子字段指示。系统软件可将消息置于每个信道的不同硬件缓冲区中(例如,使用不同地址),并且系统硬件基于消息被放置的缓冲区自动将消息分配给信道。多条信道可被分配不同的优先等级。在一种实现中,当不同优先级的消息等待被传送时,在高优先级信道上传送的包含数据的一个分组或一组分组先于在低优先级信道上传送的包含数据的一个分组或一组分组被传送。在另一种实现中,在高优先级信道上传送的包含数据的分组被分配的传输时隙大于在低优先级信道上传送的包含数据的分组被分配的传输时隙。具有严格时间要求(time-critical)的消息可在高优先级信道上传送,而相对不重要的消息可在低优先级信道上传送。一旦足够的数据被写入缓冲区以填充分组,系统硬件就可自动传送一部分消息。也就是说,当数据变成可用时就可执行消息传送而不需要等到整个消息写入缓冲区中。
第三字节203中的XOFF位控制信道中的数据流。每个节点可包括多个硬件缓冲区,这些缓冲区接收在多个信道的各个信道上传送的消息。例如,高优先级消息被存储在高优先级的缓冲区中而低优先级消息被存储在低优先级的缓冲区中。当传送分组200的第一节点设置分组200中的XOFF位时,第一节点命令接收分组200的第二节点停止向第一节点通过各个数据信道传送数据。例如,当第一节点将来自该数据信道的消息放入到的缓冲区充满时,第一节点的硬件可自动为数据信道设置XOFF位。在一种实现中,节点为给定信道设置XOFF位的阈值被设置成等于节点中各个信道的接收缓冲区的大小(例如,512字)减去32个字(4个分组)。32字的余量(margin)为接收节点提供了使用余量接收并作用于XOFF信号的时间以消除误差。其它阈值等级是可能的。当大量(例如,12个)消息处于接收缓冲区时,第一节点的硬件也可以为数据信道设置XOFF位。一旦分组或消息从缓冲区中移除,硬件可自动为数据信道清除XOFF位。每个优先级信道在节点中可具有各自的接收缓冲区。由于XOFF位在每个分组中传送,所以误差校验字段适用XOFF位并预防(guard against)XOFF位的破坏。
使用上述的信道-选择子字段可在链路层中获得多条通信信道。例如,可实现硬件信道和高-优先级、中-优先级和低-优先级信道。消息的长度可变(例如,在3字到128字之间)并且依据消息的长度消息可以一个或多个分组传送。消息的第一字节可包括消息的目标节点的地址。系统硬件可在发送节点处将消息分成多个分组并在接收节点处重组(defragment)消息。如果消息未填充分组的数据部分,则填充数据可插入到数据部分的剩余部分。消息的传送和接收缓冲区可在硬件中实现。例如,节点可包括每个信道的硬件传送和接收缓冲区(例如,高-优先级、中-优先级、和低-优先级信道)。在一种实现中,信道的传送和接收缓冲区是最大消息大小的1.5倍。
图3利用诸如图2的上下文中讨论的那些分组示出了两个节点之间进行通信的概念时序图。分组301-304从主(primary)节点被顺序向次节点传送。分组311-314在次节点被接收并对应于分组301-304,但是如果出现传送误差,则分组311-314可能成为各个分组301-304的受破坏形式。由于分组沿着链路的有限传播时间,分组311-314的接收相对于分组301-304的传送在时间上被延迟。在图3所示的示例中,分组的传播时间小于分组的持续时间(主节点传送分组需要的时间)。
次节点传送分组355-358给主节点。延迟后分组365-368在主节点被接收并对应于分组355-358。分组356包括适用于分组301的确认字段。如果分组311(对应于分组301)在次节点被正确接收,则分组356包括分组301的ACK。如果分组311未被正确接收,则分组356包括NAK。分组357包括对应于分组302的确认字段。类似地,分组303包括指示分组365是否在主节点被正确接收的确认字段,而分组304包括分组366的确认字段。
在一种实现中,直到接收到来自主节点的第一确认字段次节点才开始传送分组。例如,直到次节点接收到分组311中的确认字段,次节点才开始传送分组355。为方便主节点和次节点之间的初始同步,在主节点传送分组301之前两个节点可以向彼此传送几个顺序同步字节。
图3图解说明主节点和次节点之间存在两分组的“管道(pipeline)”的情形。分组356包括分组301的确认字段。如果该确认字段包括ACK,则主节点传送分组303。但是,如果分组356的确认字段包括NAK,则主节点会重构(reframe)并重传分组301和302。在此实现中,当两个分组的第一分组的NAK被接收时,两分组被重传以重新同步系统。如果两分组的第一分组未被正确接收,第二分组会被重传而不检测第二分组在第一次发送时是否被正确接收。在第一分组中的误差是由两节点之间失去同步引起的情形下,第二分组将可能包含误差,所以第二分组被优先重传。传送NAK的节点还将重传在传送NAK之前传送的最后的两分组。图3被描述为在主节点和次节点具有两分组管道,原因是只有已经传送另一分组后才会接收给定分组的确认字段。主节点和次节点间的往返时间等于或稍小于传送一个分组所需的时间-也就是说,主节点将在其完成分组301的传送之前开始接收分组365。往返时间通常取决于链路上的传播延迟和在节点的处理时间。更长的往返时间(绝对时间更长或相对于分组持续时间更长)也可用在系统中并且可能导致比两分组更深的管道。
无论是否存在置于分组的数据字段中的消息,分组在主节点和次节点间的传送基本上都是连续的。如图3所示,分组以互锁的方式进行传送。长度固定的分组的互锁传送造成节点处接收的分组和该节点传送的分组间固定的相位偏移。在之前已传送的分组传送后的预定时间内,该节点从远程节点接收分组,该分组包含无误差接收之前已传送的分组的确认。互锁分组的连续传送允许节点之间进行具有精确同步性的高带宽、低等待时间通信。此外,分组的连续传送允许系统准确且基本连续地计算节点之间连接的误码率(BER)。
如图4所示,当次节点接收来自主节点的分组411并确定出现传送误差导致分组411中的数据被破坏时,次节点结束分组的传送并向主节点传送NAK和重构序列456而不是传送下一分组。由于分组411可能已经受到破坏的一个原因是主节点和次节点间的同步已被减少或消失,所以重构序列456被传送以在主节点和次节点间重新建立同步。重构序列可包括交替的同步字段和链路字段,其中链路字段可以是预定的代码诸如0xA3。在一种实现中,四个链路字节必须在节点被认为重构之前被接收。主节点接收NAK和重构序列466并传送重构序列403。在主节点已经传送重构序列403后,主节点重发接收NAK之前传送的最后分组。在N-分组管道的情形下,最后的N个分组被重发。一旦次节点接收到第一已重传的分组414中的ACK,次节点也开始重传分组。
如图5所示,当主节点接收来自次节点的分组565并确定出现传送误差导致分组565中的数据被破坏时,主节点向次节点发送NAK与重构序列503。次节点接收NAK与重构序列513并发送重构序列557。在主节点已经传送NAK与重构序列503之后,主节点重发在接收被破坏的分组之前被传送的最后分组。一旦次节点接收到第一已重传分组514中的ACK,次节点也开始重传分组。
误差计数器可以记录节点中出现的硬件传送误差的次数。当计数器达到阈值时会产生中断。在一种实现中,误差计数器可由节点中的软件读取,并且该软件可设置中断阈值。误差检测和校正可在该系统中以很低的级别处理,而运行在所述链路层的顶端的软件层不需要执行附加的误差检测和校正。
图6图解说明在一种实现中在节点处执行的过程600。该节点开始接收第一分组(步骤610)并接收第一分组中的确认字段(步骤615)。该节点确定确认字段是ACK还是NAK(步骤620)。如果确认字段是NAK,则节点传送重构序列(步骤625)并重传已接收的NAK对应的分组连同该分组后传送的任何分组(步骤630)。如果确认字段是ACK,则节点开始传送第二分组(步骤635)并检查第一分组是否有误差(步骤640),例如,通过验证分组中的CRC值。如果在第一分组中检测到误差,则节点结束传送第二分组(步骤645)并传送NAK与重构序列(步骤650)。
如果在第一分组中没有检测到误差,则节点确定第一分组中是否设置了故障位(步骤655)。如果故障位被设置,则节点被置于故障模式或安全状态(步骤660)。如果故障位未被设置,或一旦节点被置于故障模式中,则该节点结束传送第二分组(步骤665)并开始传送第三分组(步骤670)。
本说明书中描述的本发明的实施例和所有功能性操作都可以在数字电子电路或计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构上的等价物,或它们当中一个或多个的组合。本发明的实施例可实现为一个或多个计算机程序产品,即编码在计算机可读介质上的计算机程序指令的一个或多个模块,其可由数据处理装置执行或控制数据处理装置的运行。计算机可读介质可以是机器可读存储设备、机器可读存储衬底、存储设备、影响机器可读传播信号的材料的合成物或它们当中一种或多种的组合。术语“数据处理装置”包括用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件外,该装置可包括为讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或一个或多个以上程序组合的代码。传播的信号是人工产生的信号,例如机器产生的电、光或电磁信号,此信号的产生是为了编码要传送给适当的接收器装置的信息。
计算机程序(也称为程序、软件、软件应用程序、脚本或代码)可以任何形式的编程语言进行编写,包括编译的或解释的语言,并且它可以任何形式进行部署(deploy),包括作为单机程序或作为模块、元件、子程序或适于在计算环境中使用的其它单元。计算机程序未必对应文件系统中的文件。程序可以存储在保存其它程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、专门用于讨论的程序的单个文件中或多个协同的文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可部署为在一台或多台计算机上执行,这些计算机位于一个地点或分布在多个地点并通过通信网络互连。
此说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器完成,这些处理器通过操作输入数据并产生输出来执行一个或多个计算机程序以实现各功能。这些过程和逻辑流程还可以被专用逻辑电路执行,并且装置还可以被实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适于执行计算机程序的处理器包括,例如,通用和专用微处理器及任意类型数字计算机的任意一个或多个处理器。通常,处理器将接收来自只读存储器或随机存取存储器或两者的指令和数据。计算机的必要元件是执行指令的处理器和存储指令及数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,或者计算机也可操作地耦连以接收来自一个或多个用于存储数据的大容量存储设备的数据或向其传输数据或其两者,大容量存储设备如磁盘、磁-光盘或光盘。但是,计算机不是必须具有这种设备。而且,计算机可嵌入在另一设备中,仅举这几例,例如移动电话、个人数字助理(PDA)、移动音频播放器、全球定位系统(GPS)接收器。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,诸如可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)和闪存设备;磁盘,诸如内部硬盘或可移动磁盘;磁-光盘;和光盘只读存储器(CD-ROM)和数字化视频光盘只读存储器(DVD-ROM)盘。处理器和存储器可通过专用逻辑电路进行补充或并入专用逻辑电路中。
为了提供与用户的相互作用,本发明的实施例可在计算机上实现,该计算机具有向用户显示信息的显示设备,例如CRT(阴极射线管)或LCD(液晶显示器)监视器和键盘及定位设备,例如鼠标或跟踪球,通过该设备用户可以向计算机提供输入。其它类型的设备也可用来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入可以以任何形式被接收,包括声输入、语音输入或触觉输入。
尽管本说明书包括许多细节,但是这些细节不应当解释为对本发明的范围的限制或对可能受保护范围的限制,而应当认为是针对本发明特定实施例的特征的描述。在本说明书中单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独实现或以任何适当的子组合(subcombination)实现。而且,尽管特征可如上文所述被描述为在某些组合中甚至在最初要求的组合中起作用,但是在一些情形下要求的组合的一个或多个特征可从组合中脱离(excise),并且所要求的组合可针对子组合或子组合的变体。
类似地,尽管附图中以特定顺序描述了各操作,但是这不应当被理解为要求这种操作以所示的特定顺序或顺序次序执行、或要求执行所有图解说明的操作以达到预期的结果。在某些情形下,多任务和并行处理可能是有利的。而且,不应当将以上所述的实施例中的各种系统元件的分离理解为在所有实施例中要求这种分离,并且应当认为所述的程序元件和系统通常可一起集成在单个软件产品中或打包到多个软件产品中。
至此已经描述了本发明的特定实施例。其它实施例在所附权利要求书的范围内。例如,权利要求书中叙述的动作可以不同顺序执行并且仍旧达到预期的结果。上述方法、系统和装置可与各种物理传输装置一起使用,这些物理传输装置包括光纤(例如,以160Mb/sec的速度运行)、低压差分信号传输(例如,以122Mb/sec的速度运行)、源串行同步、异步背板线。在一种实现中,当分组包含可容忍误差的数据时,不需要重传破坏分组。例如,视频或音频流中偶然的小故障是可以接受的。此实现中仍旧可使用误差检测与重构以实现由硬件执行快速地从重构误差中的恢复。
Claims (9)
1.一种同步数据通信的方法,其包括:
将第一数据分组从第一节点向第二节点传送,所述第一数据分组包括第一数据字段,该第一数据字段包括来自所述第一节点的未填充数据;
在所述第二节点接收所述第一数据分组,该第一分组的接收需要有限的时间;
在所述第一数据分组的接收开始后、但在所述第一数据分组的接收结束前开始从所述第二节点向所述第一节点传送第二数据分组;
在所述第一节点接收所述第二数据分组,所述第二数据分组的接收需要有限的时间;
在所述第一数据分组的传送结束后、所述第二数据分组的接收开始后、且在所述第二数据分组的接收结束前开始从所述第一节点向所述第二节点传送第三数据分组,所述第三数据分组的传送在已经从所述第二节点接收到对应于所述第一数据分组的任何确认信息之前开始;
在所述第二节点接收所述第三数据分组,所述第三数据分组的接收需要有限的时间;
在所述第二数据分组的传送结束后、所述第三数据分组的接收开始后、并且在所述第三数据分组的接收结束前开始从所述第二节点向所述第一节点传送第四数据分组,所述第四数据分组的传送在已经从所述第一节点接收到对应于所述第二数据分组的任何确认信息之前开始,所述第四数据分组包括指示所述第一数据分组是否被所述第二节点正确接收的确认信息,其中所述第一数据分组的传送和所述第四数据分组的传送是互锁的,使得所述第四数据分组在所述第一数据分组传送后的预定时间内被基本传送;
在所述第一节点接收该第四分组;及
在所述第一节点处理指示所述第一数据分组是否被正确接收的所述确认信息,如果所述第一数据分组在所述第二节点未被正确接收,则所述第一节点将重传所述第一数据分组。
2.根据权利要求1所述的同步数据通信的方法,其中:
无论所述第一节点是否具有待置于所述第三数据分组的第二数据字段的任何未填充数据,所述第三数据分组都被传送。
3.根据权利要求1所述的同步数据通信的方法,其中:
所述第一数据分组、第二数据分组和第三数据分组每个包括各自的流程控制信息,所述第一数据分组和第三数据分组中的所述流程控制信息与所述第一节点有关,而所述第二数据分组中的所述流程控制信息与所述第二节点有关。
4.根据权利要求3所述的同步数据通信的方法,其中:
所述流程控制信息包括用于多个信道的单独的流程控制信息。
5.根据权利要求1所述的同步数据通信的方法,其中:
所述第一数据分组包括指示所述未填充数据在多个信道的哪个信道上传送的头信息。
6.根据权利要求1所述的同步数据通信的方法,其中:
所述第一数据分组和第三数据分组每个包括所述第一节点的故障状态指示;并且
所述第二数据分组包括所述第二节点的故障状态指示。
7.根据权利要求1所述的同步数据通信的方法,其中:
所述第一数据分组、第二数据分组和第三数据分组具有相同的长度。
8.根据权利要求1所述的同步数据通信的方法,其进一步包括:
在所述第四数据分组被接收之前在所述第一节点接收第五数据分组,所述第五数据分组在所述第四数据分组之前已经从所述第二节点被传送,所述第五数据分组不包括指示特定数据分组是否被所述第二节点正确接收的确认信息。
9.根据权利要求1所述的同步数据通信的方法,进一步包括在所述第一节点和所述第二节点之间同步传播数据分组,其中:
同步传播包括如果在传送具体数据分组后的预定时间内基本未接收到所述具体数据分组的接收确认,则重发所述具体数据分组。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US75399105P | 2005-12-22 | 2005-12-22 | |
US60/753,991 | 2005-12-22 | ||
US11/479,160 US7756036B2 (en) | 2005-12-22 | 2006-06-30 | Synchronous data communication |
US11/479,160 | 2006-06-30 | ||
PCT/US2006/062372 WO2007133292A2 (en) | 2005-12-22 | 2006-12-20 | Synchronous data commnication |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101346915A CN101346915A (zh) | 2009-01-14 |
CN101346915B true CN101346915B (zh) | 2012-07-18 |
Family
ID=38300539
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800470462A Active CN101432629B (zh) | 2005-12-22 | 2006-12-20 | 同步数据通信 |
CN2006800479838A Active CN101366010B (zh) | 2005-12-22 | 2006-12-20 | 多优先级报文接发 |
CN2006800485453A Active CN101346915B (zh) | 2005-12-22 | 2006-12-20 | 同步数据通信 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800470462A Active CN101432629B (zh) | 2005-12-22 | 2006-12-20 | 同步数据通信 |
CN2006800479838A Active CN101366010B (zh) | 2005-12-22 | 2006-12-20 | 多优先级报文接发 |
Country Status (2)
Country | Link |
---|---|
JP (3) | JP2007174644A (zh) |
CN (3) | CN101432629B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2590148T3 (es) | 2012-03-02 | 2016-11-18 | Lsis Co., Ltd. | Dispositivo de comunicación y procedimiento de comunicación |
CN105431103B (zh) * | 2013-08-09 | 2018-08-17 | 直观外科手术操作公司 | 具有用于控制容纳在远侧的多个马达的远程电流控制器的医疗机器人系统 |
US10616080B2 (en) * | 2014-11-26 | 2020-04-07 | Fanuc America Corporation | System for diagnosis of robot state |
CN104951373B (zh) * | 2015-05-28 | 2018-11-27 | 浙江元亨通信技术股份有限公司 | 调度系统的消息队列处理方法 |
JP6980689B2 (ja) * | 2016-03-31 | 2021-12-15 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | 撮像システム及び撮像システムの複数のノード間における通信のための通信プラットフォーム |
CN106095717B (zh) * | 2016-06-27 | 2019-09-17 | 哈尔滨明快机电科技有限公司 | 一种动态延迟补偿方法及装置 |
CN106502950B (zh) * | 2016-09-30 | 2019-10-01 | 株洲太昌电子信息技术股份有限公司 | 一种通过串口传输文件的方法及系统 |
US10237885B2 (en) * | 2017-05-01 | 2019-03-19 | Bae Systems Information And Electronic Systems Integration Inc. | Multiple access wireless network with low latency subnet |
US10728912B2 (en) * | 2017-09-15 | 2020-07-28 | Qualcomm Incorporated | System and method of modes for data transmission |
US10624707B2 (en) * | 2017-09-18 | 2020-04-21 | Verb Surgical Inc. | Robotic surgical system and method for communicating synchronous and asynchronous information to and from nodes of a robotic arm |
US10892995B2 (en) * | 2017-12-28 | 2021-01-12 | Ethicon Llc | Surgical network determination of prioritization of communication, interaction, or processing based on system or device needs |
US11923084B2 (en) | 2018-09-07 | 2024-03-05 | Cilag Gmbh International | First and second communication protocol arrangement for driving primary and secondary devices through a single port |
US20200078117A1 (en) | 2018-09-07 | 2020-03-12 | Ethicon Llc | Energy module for drivig multiple energy modalities through a port |
US11318618B2 (en) | 2019-04-05 | 2022-05-03 | Verb Surgical Inc. | Robotic surgical system and method for handling real-time and non-real-time traffic |
US11980411B2 (en) | 2021-03-30 | 2024-05-14 | Cilag Gmbh International | Header for modular energy system |
US11963727B2 (en) | 2021-03-30 | 2024-04-23 | Cilag Gmbh International | Method for system architecture for modular energy system |
US11950860B2 (en) | 2021-03-30 | 2024-04-09 | Cilag Gmbh International | User interface mitigation techniques for modular energy systems |
US11978554B2 (en) | 2021-03-30 | 2024-05-07 | Cilag Gmbh International | Radio frequency identification token for wireless surgical instruments |
CN114872052B (zh) * | 2022-06-06 | 2023-01-06 | 吉林农业科技学院 | 一种远程自动控制智能工厂机械臂的方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1193432A (zh) * | 1995-06-26 | 1998-09-16 | 艾利森奥地利公司 | 错传数据的重发方法 |
CN1277767A (zh) * | 1998-08-26 | 2000-12-20 | 诺基亚网络有限公司 | 双向arq设备和方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182120B1 (en) * | 1997-09-30 | 2001-01-30 | International Business Machines Corporation | Method and system for scheduling queued messages based on queue delay and queue priority |
CN1134135C (zh) * | 2000-11-22 | 2004-01-07 | 深圳市中兴通讯股份有限公司 | 一种应用于双网容错系统的通讯方法 |
CN100479418C (zh) * | 2001-03-27 | 2009-04-15 | 信息产业部武汉邮电科学研究院 | 物理层与网络层设备之间的数据传输装置和方法 |
US6728599B2 (en) * | 2001-09-07 | 2004-04-27 | Computer Motion, Inc. | Modularity system for computer assisted surgery |
JP3471785B1 (ja) * | 2002-07-31 | 2003-12-02 | 松下電器産業株式会社 | 通信装置及びデータの再送制御方法 |
CN1249942C (zh) * | 2003-05-13 | 2006-04-05 | 武汉汉网高技术有限公司 | 正交频分复用系统中的随机接入方法 |
CN100484136C (zh) * | 2003-10-27 | 2009-04-29 | 英特尔公司 | 网络协议引擎 |
-
2006
- 2006-12-11 JP JP2006333845A patent/JP2007174644A/ja not_active Withdrawn
- 2006-12-15 JP JP2006337855A patent/JP2007174646A/ja not_active Withdrawn
- 2006-12-20 CN CN2006800470462A patent/CN101432629B/zh active Active
- 2006-12-20 CN CN2006800479838A patent/CN101366010B/zh active Active
- 2006-12-20 CN CN2006800485453A patent/CN101346915B/zh active Active
- 2006-12-20 JP JP2006342980A patent/JP2007174666A/ja not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1193432A (zh) * | 1995-06-26 | 1998-09-16 | 艾利森奥地利公司 | 错传数据的重发方法 |
CN1277767A (zh) * | 1998-08-26 | 2000-12-20 | 诺基亚网络有限公司 | 双向arq设备和方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2007174646A (ja) | 2007-07-05 |
CN101346915A (zh) | 2009-01-14 |
JP2007174666A (ja) | 2007-07-05 |
CN101432629A (zh) | 2009-05-13 |
CN101366010A (zh) | 2009-02-11 |
JP2007174644A (ja) | 2007-07-05 |
CN101432629B (zh) | 2013-04-03 |
CN101366010B (zh) | 2012-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101346915B (zh) | 同步数据通信 | |
KR101279827B1 (ko) | 동기화 데이터 통신 | |
US8054752B2 (en) | Synchronous data communication | |
KR101325022B1 (ko) | 다중 우선순위 메시징 | |
EP0055404B1 (en) | Method and system for data communication | |
US20050071527A1 (en) | Data mirroring system | |
WO2000072487A1 (en) | Quality of service in reliable datagram | |
JP5256855B2 (ja) | データ転送装置、データ転送方制御方法 | |
JPH09284261A (ja) | 自動再送制御方法 | |
US20150271239A1 (en) | Trace protocol efficiency | |
US20130073919A1 (en) | Information processing system, transmitting apparatus, receiving apparatus, and method of processing information | |
US5592621A (en) | System for inserting first transmission token into data stream appended to second transmission token to facilitate full duplex communication between central controller and other controllers | |
US20120243622A1 (en) | Method and apparatus for improving the error rate of a serial/de-serial backplane connection | |
WO2023132367A1 (ja) | 通信装置、通信システム及び通信方法 | |
JP2009104391A (ja) | メモリ二重化システム及び情報処理装置 | |
JP2005159483A (ja) | 二重化通信装置 | |
JP2003188937A (ja) | 回線エラー保護方式 | |
JPH0784897A (ja) | 機器間のデータ転送に好適な情報処理システム | |
JP2008205797A (ja) | データ通信装置およびデータ通信システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: INTUITIVE SURGICAL OPERATING COMPANY Free format text: FORMER OWNER: INTUITIVE SURGICAL INC. Effective date: 20101214 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20101214 Address after: American California Applicant after: Intuitive Surgical Operating Company Address before: American California Applicant before: Intuitive Surgical Inc. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |