图1表示符合本发明的一个串行通信系统的示范方框图。该系统中表示了通过单信道通信路径50彼此通信的一台外围设备100和一台主机设备200。通常,与连接外围设备的主机上的可用资源相比,诸如控制电路和存储区等的资源在磁盘等计算机外围设备中是非常有限的。为便于理解,本发明使用这一主机-外围设备范例给出。不过,对于本领域的技术人员来说,这里给出的原理可应用于使用一条公共通信路径进行发送和接收的一般通信设备。
单信道通信路径50可以经由一条有线或无线通信媒质或媒质组合。顾名思义,单信道通信路径50限制在任何时刻上只能有一台设备进行发送。多个信号可以经过这条通信路径50同时发送,例如各个独立线路上的时钟和数据信号,但是一次只能来自一台设备。在图1所示系统中,如果设备100、200要在同一段时间内进行发送,那么在该段时间内设备100、200都将不能正确接收对方的发送信息。
图1的示范外围设备100包括一个数据源110和一部从数据源110向主机设备200传送数据111的发射机120。发射机120还要进行发送所要求的任何数据变换,例如从并行到串行格式的变换、到调制形式的变换等等。来自发射机120的变换后数据121作为一个外围发送信号,可通过基座(pad)150(例如一个集成电路的输入/输出基座)进行传送。正如本领域的技术人员显然可以看到的那样,如果通信路径50是要经过无线媒质的,则基座150代表用于实现经由该媒质进行发送的部件(例如RF天线、声波变换器、红外变换器等等)。图1中表示了一个可选的发送禁止信号122,在一个优选实施例中,它用于在从主机200接收信号时隔离发射机120和接收机160。
图1的示范主机设备200包括对应的基座250,它接收与变换后的数据121对应的外围发送信号,并向接收机260提供一个接收信号256。基座250和接收机260把路径50上的外围发送信号变换成与原始数据111对应的数据261。例如,如果路径50是经过要RF发射的,则基座250和接收机260接收原始数据111的RF调制信号,并将其解调,以便构成数据261。数据261被提供给数据270以便进行后续处理,例如由主机设备200上运行的应用程序来处理。示范主机设备200包括一个冲突检测器280,正如以下的进一步讨论所示,它检测通信路径50上的冲突。主机设备200还包括一个可选的发送禁止信号222,在一个优选实施例中,它用于在从外围设备100接收信号时隔离发射机220和接收机260,并根据冲突检测器280的要求隔离发射机220。
同样,示范主机设备200也包括一个数据源210和用于从数据源210向外围设备100传送数据211的发射机220。正如以上对发射机120的讨论,发射机220把数据211变换成适合发送的形式221。来自发射机220的变换后的数据221作为主机发送信号通过基座250传送。因此,示范外围设备100通过基座150接收主机发送信号,并向接收机160提供一个接收信号156。基座150和接收机160把主机发送信号变换成与主机数据211对应的数据161。当外围设备100是一个盘驱动器时,数据处理器170可以只是把来自接收机160的数据161存储到数据源110中,以供以后作为数据111来被访问。
外围设备100包括一个控制器190,主机设备200包括一个控制器290,通过图2的定时图可以最好地理解它们的操作。图2A表示来自主机200的发送信号301、303和来自外围设备100的发送信号401、403通过通信路径50时没有发生冲突。图2B表示来自主机200的发送信号311、313和来自外围设备100的发送信号411、413通过通信路径50时产生冲突399。
图2A的定时图A表示来自主机设备200的两个发送信号310、303,它对应图1的信号节点221。定时图B表示通信路径50上的对应主机发送信号302、304。主机200中的控制器290在通信路径上没有其他发送信号的时刻351开始发送信号301。虽然图中没有标出,发送信号302然后便被外围设备100中的接收机160检测到,并由数据处理器170进行后续处理。在接收来自主机的数据302期间,控制器190禁止发送来自发射机120的信号121。在主机发送信号302的终点352,当通信路径50又重新空闲时,外围设备100中的控制器190允许发射机120发送信号401,这正如对应图1信号节点121的图2A定时图C所示。信号401构成通信路径50上的外围发送信号402。同样,在外围发送信号402终点354之后的时刻355,当通信路径空闲的时候,控制器190允许控制器120发送另一信号403,以作为通信路径50上的外围发送信号404。之后,在通信路径50的另一空闲时刻356,主机200中的控制器290允许发射机220在通信路径50上把发送信号303作为主机发送信号304进行发送。这种处理继续,每台设备100、200都在等待通信路径50上的静寂周期以便开始发送。
如图2A所示,在(1)主机发送信号302结束的时刻352、(2)外围设备100开始发送信号401的时刻362、以及(3)外围信号402在通信路径50上出现的时刻353之间,都存在着一段有限的时间延迟。图中没有标出,但是在外围信号402出现在通信路径50上的时刻和主机设备200的接收机260检测到这一外围信号402的时刻之间也有有限的延迟。在这整段延迟期间,从主机发送信号302结束的时刻到接收机260检测到外围信号402的时刻,主机设备200都不知道外围设备100已开始发送信号401。
图2B所示为一次冲突399,它可能是由于外围100处开始发送信号411与主机200检测到对应的外围发送信号412之间的延迟而导致的。如图2B的定时图F所示,外围设备100在主机发送信号312终点372之后的373开始发送信号411。在时刻374,信号411作为外围发送信号412而出现在通信路径50上。在这段时间内,主机200的控制器290不知道外围设备100开始发送信号411。因此,如图2B的定时图D和E所示,控制器290允许发射机220在时刻376开始发送信号313,该信号在时刻377作为主机发送信号314出现在通信路径上。时刻376、377可能分别出现在时刻373、374之前或之后,图2B中所示为出现在时刻373、374之后。当主机发送信号314和外围发送信号412同时出现在单信道通信路径50上时,就发生了一次冲突399。因为只要发送信号314、412同时出现在单信道通信路径50上,冲突399就会持续,所以如图2B中的斜线所示,信号314和412相互都被对方所破坏。
根据本发明,主机设备200中的冲突检测器280检测到冲突399,作为对其的响应,在为了发送全部所希望的主机发送信号313所需的时段之前,控制器290在时刻378终止发送信号313。对应的主机发送信号314的终止使得通信路径50上的冲突399在时刻379结束。在通信路径50的下一静寂周期内的某个时刻381之后,控制器290允许发射机220重新发送其整个预定持续时间为321的发送信号313,这在图2B中表示为发送信号313’和对应的主机发送信号314’。之后,处理继续进行,如图所示为来自外围设备100的发送信号413和对应的通信路径50上的外围发送信号414。
根据本发明,外围设备100在冲突发生时并不终止发送411。每个外围发送信号都有一个发送预定信号411所需的预定持续时间421。根据本发明,外围设备100一旦开始发送,即使冲突可能会出现在单信道通信路径50上,发送在这整个预定持续时间421内也将不会中断。这种连续发送对那些提供时间相关数据的设备(例如磁盘驱动器、磁带驱动器、CD驱动器、视盘驱动器等等)特别有利。在这类设备中,只有当读取机构移动通过包含数据的媒质区域时,才能访问数据。在这些设备中,通过在传输一旦开始时就确保连续发送,可以直接发送从媒质中读取的数据,从而减少了对设备内数据缓冲区的要求。也就是说,如果在单信道通信路径50空闲时开始从媒质读取数据,媒质上相邻的数据单元可以在读取头移动经过它们时被连续发送,而不用考虑冲突干扰。
假定由主机200和外围100发送信号的分组长度相等,那么无论冲突发生概率多大,这种不中断发送方案还能保证外围设备的传输速率至少是通信路径50带宽减去该方案相关开销之后的二分之一。也就是说,当给定了通信路径带宽和与这种协议相关的开销,就能确定外围传输速率,而不必考虑冲突发生概率。因为传输速率与冲突无关,在根据本发明实现的外围设备中,就不再需要通过单信道通信路径发送信息的一般设备所需要的辅助部件,例如冲突检测器、冲突缓冲区、重传装置等等。
注意在冲突期间399中,主机发送信号314和外围发送信号412都受到彼此的破坏。主机发送信号314在冲突期间399内受到的破坏是无关紧要的,因为该信号还要作为主机发送信号314’而重传。但是,外围发送信号412受到的破坏是永久性的,因为外围设备100并不知道这次冲突,信号412不会重传。根据本发明,每个外围发送信号包括一个前置码和一个数据流,如图2B中的前置码412a和数据流412b所示。前置码412a不包含信息、或包含那些破坏之后可以恢复的信息,而数据流412b包含那些无法恢复的信息(除非重传数据流412b)。例如,对应的发送信号411包含一个由发射机120附加到来自数据源110的数据111上的前置码411a,数据流411b对应于数据411。附加前置码411a可以是一个预定序列、随机序列或诸如包含与外围设备100相关的诊断信息的序列。因为这种诊断信息通常将在其他前置码中重复,冲突导致的这类信息丢失实际并不重要,因而不需要重传信号411。正如以下讨论所述,在本发明的一个优选实施例中,前置码的构成可使其迅速被主机设备200检测到,从而减少所需的前置码长度。
外围前置码周期411a和对应的周期412a的持续时间必须足够长,以确保在数据流412b出现在单信道通信路径50上之前时,主机发送信号314已从单信道通信路径上消失。
图3表示用于确定外围前置码所需持续时间的示范定时图。图3的定时图A、D、E和F分别代表图1信号节点121、256、281和221上的信号。定时图B和C代表通信路径50上的信号,由于信号穿过路径50需要时间,通信路径50任一端点50a、50b上的信号都有时间偏斜。参考图3的定时图A和B,节点121上的发送信号520经过底座延迟501之后,作为外围发送信号521出现在通信路径50上。底座延迟501是与底座传递一个输出相关的延迟。50a处的外围发送信号521作为外围发送信号522经过路径延迟502之后被传递到通信路径50的另一端50b。50b处的外围发送信号522在经过了与在基座250上传递一个输入相关的基座延迟503之后,便到达接收机260和冲突检测器280。
定时图F表示:来自主机设备200发射机220的发送信号550经过一个基座延迟511之后,在通信路径50的主机端50b作为主机发送信号551而出现。图3的例子中,假定主机发送信号550在外围发送信号521之前出现在通信路径50上。当外围发送信号521出现在通信路径50的外围端50a时,就发生一次冲突399a。这一冲突399a被传递到通信路径的主机端50b,如冲突399b所示。冲突399b经过基座延迟503之后被传递到冲突检测器280。延迟时间504a代表冲突检测器280检测冲突399c所需要的时间,延迟时间504b代表控制器290终止发送信号550所需要的时间。因为控制延迟504b通常比冲突检测器280检测冲突所需要的时间504a短得多,我们使用术语单个冲突检测延迟504来同时表示检测冲突和对应的终止发送时间。注意以下讨论的冲突检测延迟504要使用最坏情况来确定,例如当正好在主机200识别到外围设备200在进行发送之前出现发送信号550时。在时刻551终止发送信号550将使得通信路径50主机端50b的冲突399b在一个基座延迟505之后505停止,该基座延迟505等于上述基座延迟511。相应地,如图3定时图B所示,冲突339a在经过从通信路径50的主机端50b到外围端50a的路径延迟506之后停止。
根据本发明,外围发送信号521的前置码521a在通信路径外围端50a处的冲突339a的停止时刻541之前不会结束。所以,发送信号520的前置码520a在冲突339a停止时刻541之前的一个基座延迟507前不会结束。因此,通过使用D(x)来代表与图3中的参考持续时间x(500-507)相关的延迟,则最小外围前置码持续时间500等于:
D(500)=D(501)+D(502)+D(503)+D(504)+D(505)+D(506)-D(507) (1)
D(507)是与基座150上传递输出相关的延迟,并且等于以上提到的基座延迟D(501)。因此,最小外围前置码持续时间为:
D(500)=D(502)+D(503)+D(504)+D(505)+D(506)(2)
在典型的环境中,基座延迟501、503、505基本上相等,路径延迟502和506也是如此。因此,在这种环境下,最小外围前置码持续时间为:
D(500)=2*(底座延迟+路径延迟)+D(504) (3)
在外围设备是一个与主计算机通信的高速数据访问设备的优选环境下,路径延迟一般小于基座延迟501、503、505和检测延迟504。因此,在优选环境中,优选的外围前置码持续时间大约为:
外围前置码持续时间≥2*基座延迟+冲突检测延迟 (4)
冲突检测延迟时间504与用来检测冲突的装置有关。冲突检测技术在本领域内是很常用的。通常,冲突检测通过在设备发射机处于非工作状态时监听通信路径来实现,这种状态可以被来自另一设备的发送信号(例如高阻状态)盖过。图4表示在数据发送期间包括一个高阻状态的一种冲突检测器280示范实现方案,图5表示具有独立于数据状态的一个高阻状态的冲突检测器280示范实现方案。
在图4中,三极管T1和T2连接成传统的集电极开路式下拉三极管。当输入信号221为高电平时,三极管T1导通,把节点251处的电压拉至低电平。当输入信号221为低电平时,三极管T1截止,节点251处的电压取决于三极管T2的状态。如果三极管T2也截止,节点251处的电压将被正电源601拉至高电平。在这个示范实施例中,所有非工作的设备,(即没有进行发送的设备)均被设置成使其输出三极管T1、T2截止。“同”门(exclusive-nor gate)610在三极管T1的输入221和输出251之间进行逻辑电平比较。在正常操作期间,三极管T1实现对输入221的取反;当输入221和输出251相同时,“同”门610在输出端611判定为高逻辑值,表示可能发生冲突。注意当三极管T1改变状态时,由于上述与基座250输出的传送有关的延迟511,“同”门610可能指示发生冲突。冲突测试信号625只在三极管T1不再处于过渡状态时有效。与门620提供冲突信号281,当三极管T1的输入221和输出251相同而且冲突测试信号625有效时,该信号有效。
在图5中,节点251处设置了一个三态缓冲器640,只要控制信号222有效,缓冲器就处于高阻状态。图5中表示了一个活动检测器630,只要在节点256处出现合法输入序列,它就提供一个活动信号631。这种检测器630在本领域内是很常用的,例如,它可用于提示主机或外围设备有数据到达。活动信号631与冲突测试信号625经过一个与门620,只要在冲突测试信号有效时检测到活动,与门就输出一个冲突信号281。在节点251上出现高阻状态之后,冲突测试信号625要经过一段延迟之后才会有效,该延迟与信号251通基座250和活动检测器630的传递有关。
通过使用图4和5的示范冲突检测器,就可以看到冲突检测时间至少与出现一个高阻状态再加上基座延迟的时间一样长。也就是说,在这些示范实施例中,冲突是在输出基座250被置为高阻状态之后的某个时刻被检测到的。
每当节点221进入低电平,图4的示范输出基座250就置为高阻状态。也就是说,高阻状态实际上被包含在数据状态内。如果在发送中使用归零格式,就可以在每个发送周期上保证高阻状态。因此,上述最小冲突检测时间是发送周期加上基座延迟。不过正如本领域的技术人员所熟知的,由于要依赖无源负载把节点251置为高电平状态,图4的示范输出基座250的发送速度有限。如果需要更高速的操作,最好采用以下所述与图5类似的配置。
图5表示了一个把基座250置为高阻状态的显式控制信号222。如上所述,高速电路要求高速变换,这通常要受到低阻设备的制约。在用于高速通信的一个主机设备200的优选实施例中,基座250偶尔被置为高阻状态,从而允许主要进行高速传输。
在本发明的一个优选实施例中,每个主机发送信号都包括一个前置码,例如图2B中所示发射信号311的前置码311a。根据本发明的一个方面,高阻状态在前置码311a的终点出现,其构成可以使得后续数据流311b能以高速发送,而与冲突无关。也就是说,主机一旦开始每次发送中的数据流部分的发送,数据流的发送就将不被中断地持续下去。这个实施例消除了通常由于数据发送期间反复进行冲突检查而导致的速率降低。
参考图6的定时图,可以易于理解用于上述实施例的主机前置码和高阻状态构成。如上所述,外围设备100总是在冲突中胜出,但不会有意造成冲突。也就是说,如果外围设备100正在接收来自主机200的数据,控制器190禁止发射机120在主机发送完成之前发送信号。根据本发明的这个方面,主机前置码720a用于向外围设备100提示数据的来临。传递前置码720a时引入的延迟包括向基座250输出端传递前置码720a的延迟701、经过通信路径50的路径延迟702、传递720a作为到基座150输入的基座延迟703、以及接收机160检测前置码720a所含数据所需的延迟704。在一个优选实施例中,主机前置码720a的起始部分包含那些格式与数据流720b中数据格式相同的数据,以便使用可检测数据流720b中数据的同一电路来检测数据流720a中的数据。如上所述,当外围设备100接收数据时,控制器190禁止120在主机发送完成之前进行发送。
图6中定时图F所示为来自外围设备100的发送信号730,该信号开始的时刻741正好在检测来自主机的接收数据的时刻742之前。根据本发明,如上所述,来自外围设备100的发送一旦开始,它就要持续到完成的时候,并且主机设备200必须退避。根据发明的另一个方面,主机设备200一旦开始了前置码720a之后的数据流720b的发送,发送就要不被中断地继续下去。因此,这个优选实施例中的前置码720a要有足够长的持续时间来检测来自外围设备100发送的信号730,该信号730正好在检测到前置码720a之前的时刻742开始。发送信号730引入了在向基座150的输出端传递时的基座延迟705、通过通信路径50的路径延迟706、通过基座250的基座延迟707、以及主机设备200的冲突检测器280检测被传递的外围发送信号730所需要的延迟时间708。当外围发送信号730在时刻743出现在通信路径的主机端50a时,输出基座250处于高阻状态721,所以外围发送信号730可以被检测到。如图6的定时图A所示,前置码720a在外围发送信号730到达的时刻743之前进入高阻(z)状态721。基座250至少要在冲突测试信号625成为有效以检测发送信号730之前的一个基座延迟期间内被置为高阻状态。
使用上述根据外围前置码延迟所作的定义,最小主机前置码持续时间为:
D(700)=D(701)+D(702)+D(703)+D(704)+D(705)+D(706)+D(707)+D(708) (5)
如上所述,在高速外围设备100与主计算机200通信的环境中,路径延迟D(702)、D(703)一般小于那些互相之间大致相等的基座延迟D(701)、D(703)、D(705)和D(707)。同样如上所述,冲突检测器280中的活动检测器630与用于提示外围设备有数据到达的检测器相类似。也就是说,活动延迟D(708)通常与数据检测延迟D(704)相等。为便于参考,这种延迟时间D(704)、D(708)被称为检测时间。因此,主机外围前置码持续时间被定义为:
主机前置码持续时间≥4*基座延迟+2*检测延迟 (6)
注意在这个实施例中,主机前置码持续时间还等于前面讨论的冲突检测时间,因此前面的等式(4)可以重写为:
外围前置码持续时间≥6*基座延迟+2*检测延迟 (4′)
还要注意活动检测器630通常是一个同步处理过程,由于主机200和外围设备100之间的异步关系,当外围发送信号正好在活动检测周期开始之后到达时,可能还需要附加一个检测延迟持续时间。因此,在一个优选实施例中,等式(4′)表示为:
外围前置码持续时间≥6*基座延迟+3*检测延迟 (4″)
就现有技术而言,常见的典型基座延迟是3纳秒,检测延迟是10纳秒。因此,这种技术中的最小主机和外围前置码持续时间分别是32和48纳秒。对于本领域的技术人员来说,考虑到特定的环境因素,例如路径延迟、温度特性、元件容差等等,显然可以指定更长的持续时间。
发送传递延迟可以定义为发送信号从发射机120、220到分别在对应的接收机260、160中被检测到时所需要的时间。使用这个术语,发送传递延迟等于2个基座延迟加上路径延迟和检测延迟,等式(6)(4″)可以重新表述为:
主机前置码持续时间≥2*发送传递延迟 (7)
外围前置码持续时间≥3*发送传递延迟 (8)
以上只说明了本发明的原理。因此应当懂得本领域的技术人员可以设计各种这里没有明确描述和表示的方案来实施发明原理,它们因而也属于本发明的构思和范围之内。例如,尽管发明特别适合于单信道串行连接,本发明的原理也可应用于构成一个并行连接的若干单信道连接之一。同样,尽管发明是使用一种主机-外围设备范例给出的,但本发明的原理可以应用于共享一条通信路径的其他模式。例如,在一个通信网中,可以设定网络上的每台设备作为图1中的主机设备200或外围设备100进行工作。当网络上的一台设备需要进行基本上不被中断的传输访问(例如提供用于实时播放的视频或音频片段)时,可以设定它作为冲突胜出的外围设备100来进行工作;在其他时候,可以把这个冲突胜出角色分配给其他设备。
发明可以由硬件、软件或两者的组合来实现。例如,冲突检测器280可以是一个周期性地读取通信路径50上的逻辑值、并将其与它正在发送的数据的逻辑值进行比较的程序。图1、4和5中给出的功能划分只是为了进行说明。例如,冲突检测器280可以集成在接收机260、发射机220或基座250中。同样,尽管图4和5所示的示范电路使用了双极型晶体管和场效应管,对于本领域的技术人员来说,显然也可以找到实现所述功能的其他实施例。