CN101432629B - 同步数据通信 - Google Patents
同步数据通信 Download PDFInfo
- Publication number
- CN101432629B CN101432629B CN2006800470462A CN200680047046A CN101432629B CN 101432629 B CN101432629 B CN 101432629B CN 2006800470462 A CN2006800470462 A CN 2006800470462A CN 200680047046 A CN200680047046 A CN 200680047046A CN 101432629 B CN101432629 B CN 101432629B
- Authority
- CN
- China
- Prior art keywords
- node
- bag
- field
- data
- packet
- 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
Abstract
提供了包含同步字段和指示对在前的数据包的应答的应答字段。所述数据包也包含指示系统故障的信息的响应字段、头字段以及包含被分配给该数据包的号码的序列号字段。该数据包进一步包含数据字段、包结束字段以及差错校验字段。在一些实施方式中,方法和计算机程序产品被提供,其包括如果在接收到的数据包中的应答字段是否定应答(NAK),则重发多个包,和/或响应该接收到的数据包中所包含的故障信号,而将节点置于安全状态。
Description
本申请要求2005年12月22日提交的编号为60/753,991的美国临时专利申请的利益,其全部内容作为参考合并于此。技术领域
本公开涉及信息系统。背景技术
某些应用对通信具有高带宽要求和严格的同步、时延和可靠性要求。例如,机器人辅助手术需要高带宽实时地传输控制信号和反馈信号。这种应用对同步和时延的要求是严格的,因为在外科医生的移动和机器人的移动之间的延迟理想地应该是越小越好。在这些应用中通信必须是高可靠性的,因为数据传输错误会伤害病人。
在机器人辅助手术中使用的一个传统通讯系统使用数百个路径(例如电线)以把外科医生的控制台连接到机器人手臂。然而,对数百个路径的使用导致对系统的建造和维护麻烦,而且需要可观的空间来布线所有的路径。
传统的通信标准在一些方面提供了可接受的性能但是在其它方面是欠缺的。例如,IEEE-1394接口标准提供了同步、串行、点对点通信。IEEE-1394通道具有保证的带宽,但是只能提供大约125毫秒内的同步。这种性能可能对于某些要求更严格的同步的应用是不够的。发明内容
在一方面,提供了数据包,其包括同步字段和应答字段,该应答字段指示对收到在前数据包的应答。数据包也包括包含指示系统故障的信息的响应字段,头字段以及包含分配给该数据包的号码的顺序号字段。该数据包进一步包括数据字段,包结束字段以及差错校验字段。
特定的实施方式可以包含一个或多于一个下述特征。同步字段、应答字段、响应字段、头字段、顺序号字段和包结束字段的每一个可以是一个字节长。数据字段可以是32字节长。差错校验字段可以是两字节长。包结束字段可以含有对数据字段中的32字节有多少是填充字节的指示。同步字段可以含有预定的移位不变(shift-invariant)值。响应字段可以包含流控制信息,且该流控制信息可以包含多通道的流控制信息。头字段可包含指示该数据包计划使用的通道的通道选择子字段。头字段可包含命令子字段,且该命令子字段可以包含同步命令。
在另一个方面,提供一种方法和计算机程序产品,其包含在第一节点接收来自于第二节点的第一数据包中的应答字段。作为对接收该应答字段的响应,仅在所述第一数据包中的应答字段是否定应答(NAK)的情况下,先前从所述第一节点发送的两个或更多个数据包被重发。如果相反,该应答字段是肯定应答(ACK),则第二数据包从所述第一节点被发送到所述第二节点,并且在开始发送该第二数据包之后所述第一数据包被差错校验。如果在该第一数据包中探测到差错,则在完成该第二数据包的发送之后,NAK基本立刻从所述第一节点发送到所述第二节点。如果没有在该第一数据包中探测到差错,在完成该第二数据包的发送之后,第三数据包基本立刻从所述第一节点发送到所述第二节点。
在再一个方面,提供一种方法和计算机程序产品,其包含在第一节点接收从第二节点发送的第一数据包。该第一数据包包含故障信号。为响应该故障信号,所述第一节点被置于安全状态,并且在所述第一节点上处理该第一数据包的数据字段中所包含的信息之前,包含所述故障信号的第二数据包被从所述第一节点发送到第三节点。特定的实施方式可以包含在所述第一节点处接收从所述第二节点发送的第三数据包,其中该第三数据包不包含该故障信号,并且所述第一节点处于安全状态。所述第一节点被置于可操作状态,并且第四数据包被从所述第一节点发送到所述第三节点,其中该第四数据包不包含该故障信号。
特定的实施例可被执行以实现下面的优点中的一个或多于一个。发送器和接收器可被非常精确地同步(例如到基本在10毫秒之内或更少)。时延可被约束且保持在低水平(例如,基本小于10毫秒)。数据可通过单独的物理路径连接器以低时延被传输。在单一的系统中以不同速度运行的多个通信链路可使用同样的通信协议。该通信协议可以被廉价地在硬件中实施。带宽可被用于数据传输,否则该数据传输可用于等待应答。差错探测和恢复可被同时在流控制信息和应答信息上被执行。故障信息可被迅速地在整个系统传输。处在不同优先级的多个独立数据流可被在整个所述系统传输。
这些普通的和特定的方面可使用方法、装置、系统或任何方法、装置和系统的组合而被实施。
本发明的一个或多于一个实施例的细节将通过附图和下面的描述阐明。本发明的其它的特征、方面和优点从描述、附图和权利要求书中将变得明显。附图说明
图1是系统的框图,该系统包含多个被链路连接的节点。
图2是数据包结构的示意图。
图3是在节点间的包传输的时序图。
图4是差错恢复方案的时序图。
图5是差错恢复方案的时序图。
图6是在节点执行的处理的流程图。
在多个附图中相似的参考数字和命名表示相似的元件。具体实施方式
描述了在两个系统节点之间使用基本连续的全双工串行数据流的链路层。节点可包含,诸如计算机、可编程处理器、现场可编程门阵列(FPGA)或者其它数据处理装置。数据被分成固定长度的包。每个固定长度的包可以含有数据、差错校验信息、流控制信息、诊断信息、故障信息以及重发控制信息。在每个包中的数据可以包括硬件层级数据或部分消息(例如软件消息)。
无论是否有可用于传输的数据,该固定长度的包在两个节点间被持续地传输。当没有可用于传输的数据时,包的数据字段可被“填充”数据所填充,该“填充”数据可在接收节点被丢弃。被发送的包包含对先前被接收的包的应答,发送节点会发送第一包,并且在接收来自接收节点的对该第一包的应答之前发送至少一个后续包。在节点处对包的发送和接收是互锁的,这将在下面进行更详细的阐述。
如图1所示,通过在链路上多路复用数据,来自第一节点110的数据可被发送到多个目标节点,例如,第二节点120、第三节点130和第四节点140。第一节点110和特定的目标节点之间的节点可以路由该数据。第一节点110可以通过第一链路125传输发往第二节点120的数据。第一节点110也可通过第一链路125将发往第三节点130的数据传输到第二节点120,并且第二节点120可以通过第二链路135路由该数据到第三节点130。类似地,第一节点110可以通过第一链路125传输发往第四节点140的数据,并且第二节点120可以通过第三链路145路由该数据到第四节点140。
在一个实施方式中,在被发送的数据中所包含的消息内可以控制对目标节点的指定。在该实施方式中,在发送含有部分消息的包到目标节点之前,第二节点120一般处理从第一节点110发送的消息的至少一部分。如果第二节点120本身是目标节点,该消息无须进一步的传输。
在一些系统中,第一节点110和第三节点130以及第一节点110和第四节点140之间的通信相对于第三节点130和第四节点140之间的通信发生得更频繁。在这样的系统中,第一链路125相对于第二链路135或第三链路145可以是更高速的链路,以对通过第一链路125的更大量的数据提供足够的容量。
节点110、120、130和140可包含一个或多于一个硬件数据缓冲器152-164,该硬件数据缓冲器接收消息且一直保存消息,直到在各自的节点上执行的软件或与各自的节点通信的数据处理装置准备好接收该消息。
如图2所示,一个实施方式的固定长度的包200可包括多个字节201-240。虽然示出的是40字节的包,该固定长度的包可以是其它长度。在示出的实施方式中,控制消息被置于40字节的8个字节中,并且数据被置于剩下的32字节中。第一字节201是同步字段,其可被用于在接收包的节点处保持字节结构。附加的同步字节可被周期性地添加到包上(例如每128字节一个),以补偿节点间的时钟漂移。第二字节202是应答字段,其指示发送包200的节点所接收的上一个包是否被正确地接收(例如包括有效差错校验信息)。第二字节202可被设置为用于指示上一个包被正确地接收的肯定应答(ACK)的一个值(例如0xAC),以及用于指示上一个包没有被正确地接收(否定应答,或NAK)的相反值(例如0x53)。在一个实施方式中,任何异于该肯定应答值的值都可被解释为否定应答。在该实施方式中,如果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信号直到另一个故障发生之前一般不会在包控制信息中传输。
故障信号在其中迅速传播的系统有利的例子是机器人手术系统。这种系统可包含多个持有手术器械或设备(例如:腹腔镜、内窥镜、灯、照相机和吹入器)的机器人手臂。其中的一些可以在病人体内。该机器人手臂一般由外科医生远程地操纵。外科医生操作的控制与控制该机器人手臂的节点之间的通信可以使用本公开中描述的方法、系统和装置。如果在这种系统中发生故障,机器人手臂可被锁定在适当位置,这样病人不会被机器人手臂的非预期的动作所伤害。当系统故障发生并且一个系统故障在节点之间传播时,制动可以被施加在机器人手臂的连接处,并且对运动命令的通信可以被中止,直到该故障被人类操作员或被系统监视单元自动地清除。
被描述的包结构允许在单独通道上或在串行连接上复用的多个通道上发送数据(诸如消息)。特定的消息在哪个通道上被发送由包200中的通道选择子字段来指示。系统软件可以将信息放置在每个通道(例如,使用不同的地址)的不同的硬件缓冲器中,并且系统硬件基于所述消息被放在其内的缓冲器自动将消息分配到通道。多个通道可被分配不同的优先级。在一个实施方式中,当不同优先级的消息在等待被传输时,在高优先级通道上被传输的包含数据的包或包组先于低优先级通道上被传输的包含数据的包或包组被传输。在另一个实施方式中,高优先级通道上被传输的包含数据的包比低优先级通道上被传输的包含数据的包被分配更多的传输槽(slot)。时间苛刻的消息可在高优先级通道上被传输,而相对不重要的消息可在低优先级通道上被传输。一旦被写入缓冲器的数据足够填充包,系统硬件可以自动地传输部分消息。这就是说,当数据可用时,消息传输可被执行而无须等到整个消息被写入到缓冲器。
在第三字节203中的XOFF位控制通道中的数据流。每个节点可以包括多个硬件缓冲器,这些硬件缓冲器接收在多个通道的相应一个通道上的消息。例如,高优先级消息被存储在高优先级缓冲器上,而低优先级消息被存储在低优先级缓冲器上。当发送包200的第一节点置位包200中的XOFF位时,该第一节点指示接收包200的第二节点停止在相应的数据通道上发送数据到第一节点。例如,当第一节点放置来自该数据通道的消息的缓冲器变满时,第一节点的硬件可以自动地置位数据通道的XOFF位。在一个实施方式中,节点何时置位给定通道的XOFF位的阈值被设置为等于节点中相应通道的接收缓冲器的大小(例如512字)减去32个字(4个包)。该32个字的余量范围给予接收节点时间来接收和处理带有误差的余量范围的XOFF信号。其它阈值水平是可能的。当大量(例如12)消息位于接收缓冲器时,第一节点的硬件也可以置位数据通道的XOFF位。一旦从缓冲器移除包或消息,硬件可以自动地清除数据通道的XOFF位。每一个优先级通道可以在节点中具有相应的接收缓冲器。因为XOFF位在每个包中被传输,施加于XOFF位上的差错校验字段防止对XOFF位的破坏。
通信的多个通道可以通过使用上述的通道选择子字段而在链路层可用。例如,可实现硬件通道、高优先级通道、中优先级通道和低优先级通道。消息的长度可变(例如在3字和128字之间),并且可根据消息的长度,在一个或多于一个包中被发送。消息的第一字节可以含有消息的目标节点的地址。系统硬件可以在发送节点处将消息分段为多个包,并且在接收节点处重组消息。如果消息没有填满包的数据部分,则填充数据可被插入到消息部分的剩余部分。消息的发送和接收缓冲器可以在硬件中被实施。例如,节点可包含每个通道(例如,高优先级通道、中优先级通道和低优先级通道)的硬件发送和接收缓冲器。在一个实施方式中,通道的发送和接收缓冲器是最大消息长度的1.5倍。
图3示出使用诸如在图2的上下文中讨论的那些包的两个节点之间的通信的概念性的时序图。包301-304从主节点顺序地发送到次节点。包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图解说明在主节点和次节点之间的两个包“流水线”的例子。包356含有对包301的应答字段。如果该应答字段含有ACK,则主节点发送包303。然而如果包356的应答字段含有NAK,则主节点可以对包301和302进行再成帧(reframe)和重发包301和302。在这个实施方式中,当接收到两个包中的第一包的NAK时,两个包被重发,以便再同步系统。如果没有正确地接收到两个包中的第一包,则可以重发第二包,而无须检查第二包是否在其第一次被传输时被正确地接收。在第一包中的差错是由在两个节点之间的同步丢失而导致的情况下,第二包可能含有差错,所以第二包被先占性地重发。发送NAK的节点也会重发在发送NAK之前它发送的最后两个包。图3被描述为在主节点和次节点之间的两个包流水线,这是因为仅在另一个包被发送之后才接收对给定包的应答字段。在主节点和次节点之间的往返时间等于或稍小于发送一个包所需的时间,这就是说,主节点在它停止发送包301之前开始接收包365。所述往返时间一般取决于链路上的传输延迟和节点处的处理时间。更长的往返时间(绝对时间更长或相对于包持续时间较长)也可被用在系统中,并且导致比两个包更深的流水线。
包在主节点和次节点之间基本连续地传输,不管有无消息被放置在包的数据字段内。如图3所示,包被以互锁的方式传输。固定长度包的互锁传输引起在节点处被接收的包和在此节点处被发送的包之间的固定的相位偏移。在发送先前发送的包之后的预定时间量,节点从远程节点接收含有对先前发送的包的无错接收的应答的包。互锁包的连续传输容许节点之间精确同步的高带宽、低时延的通信。此外,包的连续传输容许系统精确地和基本连续地计算在节点之间的连接的误码率(BER)。
如图4所示,当次节点接收来自于主节点的包411并且判断导致包411中的数据被毁坏的传输错误发生过,该次节点停止发送包,而不是发送下一个包,次节点将NAK和再成帧(reframing)序列456发送到主节点。该再成帧序列456被发送,以重建在主节点和次节点之间的同步,因为包411可能已被毁坏的一个原因是在主节点和次节点之间的同步可能已被削弱或丢失。该再成帧序列可以包括交替同步字段和链路字段,其中该链路字段可以是预定的代码(例如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),并且例如,通过检验包中的CRC值,来检测第一包的差错(步骤640),。如果在第一包中检测到差错,该节点停止发送第二包(步骤645),并且发送NAK和再成帧序列(步骤650)。
如果没有在第一包中检测到差错,该节点判断在第一包中的故障位是否被置位(步骤655)。如果故障位被置位,则该节点被置于故障模式或安全状态(步骤660)。如果故障位没有被置位,或者一旦该节点被置于故障模式,则该节点停止发送第二包(步骤665),并且开始发送第三包(步骤670)。
本发明的实施例和在本说明书中描述的所有功能性的操作可被实施在数字电子电路中,或在计算机软件、固件或硬件中,其包含本说明书中公开的结构和它们的结构等价物,或被实施在它们中一个或多于一个的组合中。本发明的实施例可被实施为一个或多于一个计算机程序产品,即在计算机可读介质上编码的一个或多于一个计算机程序指令模块,用以由数据处理装置执行或用于控制数据处理装置的操作。所述计算机可读介质可以是机器可读的存储设备、机器可读的存储衬底、存储器设备、影响机器可读的传播信号的物质的合成,或者它们中的一个或多于一个的组合。术语“数据处理装置”包含所有用于处理数据的装置、设备和机器,例如包括,可编程处理器、计算机或多处理器或计算机。除了硬件,所述装置还可以包含为所讨论的计算机程序创建执行环境的代码,例如组成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多于一个的组合的代码。被传播信号是人工生成的信号,例如机器生成的电子的、光学的或电磁的信号,该信号被生成以编码要被发送到合适的接收装置的信息。
计算机程序(也被称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译语言或解释性语言)来编写,并且计算机程序可以任何形式来部署,包含作为独立程序或作为模块、组件、子程序或适合在计算环境中使用的其它单元。计算机程序不必对应于文件系统中的文件。程序可被存储在保存其它程序或数据的文件(例如,存储在标记语言文档中的一个或多于一个脚本)的一部分之中,存储在所讨论的程序专用的单独的文件中,或存储在多协调文件(例如,存储一个或多于一个模块、子程序或部分代码的文件)中。计算机程序可被部署,从而在一台计算机上或在位于一个地点或分布在多个地点而被通信网络相互连接的多台计算机上被执行。
在本说明书中描述的处理和逻辑流程可以由执行一个或多于一个计算机程序的一个或多于一个可编程处理器来实现,从而通过操作输入数据和生成输出来实现功能。该处理和逻辑流程也可由专用逻辑电路实现,并且装置也可被实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
适合执行计算机程序的处理器包括,例如,通用微处理器和专用微处理器,以及任何种类的数字计算机的任何一个或多于一个处理器。一般地,处理器会从只读存储器或随机存取存储器或两者中接收指令和数据。计算机的主要元件是执行指令的处理器和用于存储指令和数据的一个或多于一个存储器设备。一般地,计算机也可包括,或可操作地被耦连用以从其中接收数据或发送数据或既接收又发送到其上的、用于存储数据的一个或多于一个海量存储器设备,例如磁盘、磁光盘或光盘。然而,计算机不必具有这种设备。此外,计算机可被嵌入到另外的设备中,例如移动电话、个人数字助理(PDA)、移动音乐播放器、全球定位系统(GPS)接收器,仅试举几例。适合存储计算机程序指令和数据的计算机可读介质包含所有形式的非易失性存储器、介质和存储器设备,例如包括半导体存储器设备,例如EPROM、EEPROM和闪速存储器设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD-ROM和DVD-ROM盘。该处理器和存储器可由专用逻辑电路补充或被合并到专用逻辑电路中。
为提供与用户的交互,本发明的实施例可以在计算机上被实施,该计算机具有显示设备,例如CRT(阴极射线管)或LCD(液晶显示器)监控器,用以给用户显示信息,并且具有用户可以对计算机提供输入的键盘或点击设备,例如鼠标或轨迹球。也可使用其它类型的设备来提供与用户的交互;例如提供给用户的反馈可以是任何形式的传感器反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入可以任何形式接收,包括声学输入、语音输入或触觉输入。
虽然本说明书含有很多细节,它们不应构成对本发明范围的或要求保护的范围的限制,而是对本发明的特定实施例的具体的特性描述。在本说明书中的以不同的(多个)实施例的方式描述的特定的特征也可以在单个的实施例的组合中实施。相反地,以单个的实施例方式描述的各种特征也可以在多个实施例中分别实施,或者在任何合适的子组合中实施。此外,尽管特征可能在前面被描述为特定组合甚至起初这样被要求保护,要求保护的组合中的一个或多于一个特征在一些情况下可从该组合中被去除,且该要求保护的组合可能会是子组合或子组合的变体。
类似地,虽然在附图中以特定的顺序对操作进行描述,但这不应被理解为,要求以示出的特定的顺序或以相继的顺序来执行这种操作,或者要求执行所有图解说明的操作,以实现所需的结果。在特定的状况下,多任务和并行处理可能是有利的。此外,在上述的实施例中的各种系统组件的分隔不应理解为在所有的实施例中都要求这种分隔,其应被理解为描述的程序组件和系统可以一般地在单独的软件产品中被集成到一起或打包为多软件产品。
因此,本发明的特定的实施例已被阐述。其它的实施例在权利要求的范围内。例如,在权利要求中描述的动作可以不同的顺序被执行,并且仍然实现所需结果。上述的方法、系统和装置可以与各种物理的传输机制一起使用,包括光纤(例如,运行在160兆位每秒)、低压差分信号(运行在122兆位每秒),源同步串行和异步底板线。在一个实施方式中,当这些包含有可容错的数据时,被毁坏的包不必被重发。例如,在视频或音频流中偶尔的假信号是可被接受的。在这个实施中仍然可以使用差错检测和再成帧,以允许从帧差错中快速的硬件实现的恢复。
Claims (1)
1.一种数据通信方法,其包括:
在第一节点处接收来自第二节点的第一数据包中的应答字段;
响应对所述应答字段的接收,仅在所述第一数据包中的所述应答字段是否定应答NAK的情况下,重发先前从所述第一节点发送的两个或更多个数据包;以及
响应对所述应答字段的接收,仅在所述应答字段是肯定应答ACK的情况下,
从所述第一节点发送第二数据包到所述第二节点,
在开始发送所述第二数据包之后,校验在所述第一数据包中的差错,
仅在所述第一数据包中检测到差错的情况下,在完成所述第二数据包的发送之后,立刻从所述第一节点发送否定应答NAK到所述第二节点,以及
仅在没有在所述第一数据包中检测到差错的情况下,在完成所述第二数据包的发送之后,立刻从所述第一节点发送第三数据包到所述第二节点。
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,203 US8054752B2 (en) | 2005-12-22 | 2006-06-30 | Synchronous data communication |
US11/479,203 | 2006-06-30 | ||
PCT/US2006/062366 WO2008005054A2 (en) | 2005-12-22 | 2006-12-20 | Synchronous data communication |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101432629A CN101432629A (zh) | 2009-05-13 |
CN101432629B true CN101432629B (zh) | 2013-04-03 |
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 After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800479838A Active CN101366010B (zh) | 2005-12-22 | 2006-12-20 | 多优先级报文接发 |
CN2006800485453A Active CN101346915B (zh) | 2005-12-22 | 2006-12-20 | 同步数据通信 |
Country Status (2)
Country | Link |
---|---|
JP (3) | JP2007174644A (zh) |
CN (3) | CN101432629B (zh) |
Families Citing this family (15)
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 |
EP3030190B1 (en) * | 2013-08-09 | 2024-04-03 | Intuitive Surgical Operations, Inc. | Medical robotic system with remote current controller for controlling a plurality of distally housed motors |
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 | 浙江元亨通信技术股份有限公司 | 调度系统的消息队列处理方法 |
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 |
US11696791B2 (en) | 2018-09-07 | 2023-07-11 | Cilag Gmbh International | Surgical instrument utilizing drive signal to power secondary function |
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 |
US11950860B2 (en) | 2021-03-30 | 2024-04-09 | Cilag Gmbh International | User interface mitigation techniques for modular energy systems |
US11963727B2 (en) | 2021-03-30 | 2024-04-23 | Cilag Gmbh International | Method for system architecture for modular energy system |
CN114872052B (zh) * | 2022-06-06 | 2023-01-06 | 吉林农业科技学院 | 一种远程自动控制智能工厂机械臂的方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1354575A (zh) * | 2000-11-22 | 2002-06-19 | 深圳市中兴通讯股份有限公司 | 一种应用于双网容错系统的通讯方法 |
CN1463097A (zh) * | 2003-05-13 | 2003-12-24 | 武汉汉网高技术有限公司 | 正交频分多址ofdm系统中的随机接入方法 |
CN1669262A (zh) * | 2002-07-31 | 2005-09-14 | 松下电器产业株式会社 | 通信装置和数据的重发控制方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AT405588B (de) * | 1995-06-26 | 1999-09-27 | Ericsson Schrack Aktiengesells | Verfahren zur wiederholung fehlerhaft übertragener daten |
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 |
WO2000013364A1 (en) * | 1998-08-26 | 2000-03-09 | Nokia Networks Oy | Bidirectional arq apparatus and method |
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 |
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 JP JP2006342980A patent/JP2007174666A/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
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1354575A (zh) * | 2000-11-22 | 2002-06-19 | 深圳市中兴通讯股份有限公司 | 一种应用于双网容错系统的通讯方法 |
CN1669262A (zh) * | 2002-07-31 | 2005-09-14 | 松下电器产业株式会社 | 通信装置和数据的重发控制方法 |
CN1463097A (zh) * | 2003-05-13 | 2003-12-24 | 武汉汉网高技术有限公司 | 正交频分多址ofdm系统中的随机接入方法 |
Non-Patent Citations (1)
Title |
---|
JP特开2000-209251A 2000.07.28 |
Also Published As
Publication number | Publication date |
---|---|
CN101346915A (zh) | 2009-01-14 |
CN101346915B (zh) | 2012-07-18 |
CN101366010B (zh) | 2012-09-19 |
JP2007174646A (ja) | 2007-07-05 |
JP2007174644A (ja) | 2007-07-05 |
CN101432629A (zh) | 2009-05-13 |
JP2007174666A (ja) | 2007-07-05 |
CN101366010A (zh) | 2009-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101432629B (zh) | 同步数据通信 | |
KR101279827B1 (ko) | 동기화 데이터 통신 | |
KR101336005B1 (ko) | 동기화 데이터 통신 | |
KR101325022B1 (ko) | 다중 우선순위 메시징 | |
US7746786B2 (en) | Retransmission control method and device | |
JP2010011296A (ja) | 送受信回路、送信回路及び送受信方法 | |
WO2011046056A1 (ja) | パケット通信の伝送制御方法及びパケット通信システム | |
JP2000151623A (ja) | パケット通信システム | |
JP4807828B2 (ja) | ブロードバンド・エンジンのためのエンベロープ・パケット・アーキテクチュア | |
US8522104B2 (en) | Smart aging retry buffer | |
US20130073919A1 (en) | Information processing system, transmitting apparatus, receiving apparatus, and method of processing information | |
JP2001045056A (ja) | 通信システム | |
JPH06252895A (ja) | データ伝送方式 | |
JP2004349783A (ja) | 移動体通信方法及びシステム | |
JP2000244530A (ja) | データ通信装置 | |
JP2003188937A (ja) | 回線エラー保護方式 | |
JPH0784897A (ja) | 機器間のデータ転送に好適な情報処理システム | |
JP2006109312A (ja) | 通信制御装置及び通信制御方法 | |
JPH0831844B2 (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 |