环总线数据传送系统的制作方法

文档序号:7570888阅读:205来源:国知局
专利名称:环总线数据传送系统的制作方法
技术领域
本发明涉及数据总线系统,特别涉及对互连用户电子设备有用的环总线传送系统。诸如数字视频信号处理系统之类的系统以高数据速率处理数据,且需要相应的高带宽总线系统来作数据通信。例如,MPEG格式的数字视频数据限定数据速率在4~8M比特每秒。基于分组数据的总线系统可以提供足够的带宽。当然,用于实现分组系统的硬件和软件会比较昂贵,使得对于用户电子设备来说不太实际。此外,分组总线要求额外的“开销”,比如分组处理延迟影响了用于MPEG数据传送所需要的高数据速率的提供。同时,视频信号处理系统中的MPEG解码器也要求数据以相对固定的速率到达(即,具有相对固定的传输延迟)。换句话说,数据抖动必须相对低。诸如分组系统的总线系统为MPEG解码器正常操作,在分组之间数据传输延迟上会有太多的变化。
以相对低花费的硬件和软件构造的高数据速率转送总线,不需要高的数据开销,且具有相对固定的传输延迟,它对于互连用户电子设备,尤其是视频信号处理设备是较理想的。
依据本发明的原理,数据传输总线系统包括了多个由环总线相连的节点。该环总线在连续的总线周期内传送数据,每总线周期包括了多个总线字。在总线周期中的一个总线字是总线周期同步字,而其余的部分是数据字。多个数据字被分配给多个数据信道。
发明的原理以BeeBUS(BBUS)的形式实施,它是一种高数据速率总线系统,可以用来转送数字视频数据。BBUS系统是一个时分复用(TDM)总线,具有88Mbit/sec的总容量。BBUS被设计来在总线上从源节点到目的节点透明地转送数据。BBUS的工作方式是在环上从一个节点到另一个节点顺序地发送九比特字。通过发送88个九比特字的总线周期在节点间保持同步,上述每个总线周期的开头是总线周期同步字。由于BBUS系统可能会加到被称为CEBUS的先前技术的用户电子总线上,BBUS系统包括了CEBUS-兼容控制信道。总线周期同步字的一位承载了用于CEBUS-兼容控制信道的数据。BBUS被设计为承载八个数据信道,它们可以组合成组来提供信道数量和信道容量的任意组合所必须的容量,而只要信道的总数目是八或少于八,总的指定容量是88Mbs或更小。
包括在BBUS系统中的CEBUS-兼容控制总线具有不包括传输仲裁的消息结构。每个设备具有预分配的容量在10kbs以上的控制信道时隙。每个设备具有同时接收从31个其它设备发来的消息的信道容量。但可以看到接收设备一次只能处理一条消息。所以仲裁的工作将由接收设备完成,而不是发送设备。接收设备将处理round robin形式的消息,一次一条消息。因为消息长度约为32字节,所有的控制信道消息将以该固定长度发送,且所有的消息将以同样的控制周期时隙开始。该时隙是基本的操作系统同步。每32个控制设备时隙×32个消息时隙发生一次,约8ms。如下文所述。因此控制信道消息可以每8ms被发送一次。(十六个设备到设备的消息可以同时发送。)相应的,CEBUS控制消息是约25ms。
在附图中

图1是依据本发明原理的数据总线系统的框图;图2描述了沿环发送的图1中表述节点的数据格式图;图3是用于在环结构中互连节点的现有技术装置的框图;图4是实施本发明的环结构中互连节点的方法的框图;图5是用输入和输出电缆连接节点所需的电路框图;图6是依据本发明的数据总线系统的操作流程图。
图1是依据本发明原理的数据总线系统的框图。五个节点,节点A,节点B,节点C,节点D,和节点E通过环结构互连,如图1所示。数据以图2中所示的格式在环中从一个节点转送到下一个节点。在图2中,数据字由一系列图上部的长方框表示。系统中的基本数据字包含九比特。八个比特(一个字节)是有效负载,而一个比特用于链路级控制。总线周期中有88个九比特的数据字在传送。每个九比特字比特速率时钟为100MHZ(即10ns周期),为90ns长。这样,系统中基本的总线周期是7,920ns,或88次计算九个10ns的时钟周期。每7,920ns由总线周期控制器发送一个同步字。这样,每7,920ns或10,984,848字节每秒提供87个数据字的有效负载。因此最大的BBUS数据速率是87,878,787.88Mbit/sec。数据流中的数据字被在8个信道中分配。每个数据信道每隔90ns×8信道=.720μs接收一个时隙并发送一个字。所以数据信道是协议独立信道,并具有固定的延迟,且每11MBS容量抖动小于1μs。
参看图2,总线周期的第一个九比特数据字是一个同步字(SYNC)。后面接着是信道1(CH1)运载数据的数据字。然后接下来是为信道2到信道8(CH2到CH8)运载数据的数据字。对总线周期中其余的87个时隙,每个信道的数据字周期是重复的。
如下文中将详细描述的那样,同步字中的一位被分配给CEBUS-兼容控制信道。所以控制总线具有略高于126kbit/sec的最大数据速率。控制信道的吞吐量略高于10kbits,与CEBUS正好相同,因为CEBUS CSMA-CD仲裁方法被CEBUS上设备用来判断对总线的访问。
BBUS基本的物理和电气的连接是菊花链环,每个设备或装置具有一个输入和输出。图3是用于环结构中互连节点的现有技术装置的框图。图3中每个节点包含一个输入连接器,在每个节点的左下方表示以及一个输出连接器,在每个节点的右下方表示。第一条电缆连接在节点A输出连接器和节点B输入连接器之间。以同样的方法,电缆连接在节点B的输出连接器和节点C(图中没有表示)的输入连接器之间,一般地,从一个节点的输出连接器到下一个节点的输入连接器。图3中所示的最后一个节点是节点E。为形成环,电缆从节点E的输出连接器连接到节点A的输入连接器。
为了避免在菊花链中需要的将最后一个节点与第一个节点连接起来的最后的链路,返回路径中的数据可以与前向的路径时分复用。或者在每条电缆中包含一组用于反向路径的线路。后面一种方法较优选,因为时分复用前向和反向路径将可用容量减少了一半。
图4是实施本发明的环结构中互连节点的方法的框图。图4中每条电缆包含了从一个节点到下一个节点前向路径所必需的线路,以及用于从最后一个节点的输出连接器到第一个节点输入连接器的反向路径所必需的线路。当反向路径线路被包含在电缆中,如图4所示,所示的实施方案中的BBUS电缆需要8条线路,每个方向4条。此外,还包含了地/罩,一个管脚表示电缆被连接在该端口上。该管脚被线路连接在地/罩上。
图5是一个节点中用输入和输出电缆连接节点所需的电路框图。图5中,输入连接器20接收从前一个节点来的电缆。该电缆在插头10处终止,且接收构成从前一个节点到该节点的前向路径的线路和构成从最后一个节点到第一个节点的反向路径的线路。此外,如上文所述,插头的一个管脚被连到参考(地)电位的源上。在输入连接器20,从前向路径来的数据和时钟线被连到第一个开关电路30的第一个输入端。第一个开关电路30的一个输出端被连到输入串-并移位寄存器40的一个输入端,而该输入寄存器40的一个输出端被连到节点(未表示出)中的应用电路上,电路结构已知。
该节点的应用电路(未表示出)也被连到输出并-串移位寄存器50的输入端。输出寄存器50的一个输出端被连到第二个开关电路60的第一个输入端,并连到输出连接器70的一个输入端。输出连接器70接收从下一个节点来的电缆。该电缆终止于插头90。该插头90也包含构成到下一个节点前向路径的线路,以及构成从最后一个节点到第一个节点的反向路径的线路。输出寄存器50的一个输出端通过输出连接器70和插头90,被连到前向路径上。
反向路径线路被接到插头90,并被送到输出接头70。从反向路径而来的输入线路被连到第一个开关30的第二个输入端,以及第二个开关60的第二个输入端。第二个开关60的一个输出端被连到输入连接器20处的反向路径使用的输出端。第二个开关60的输出端通过输入连接器20和插头10,随后被连到反向路径上。
输入连接器20和输出连接器70也有一条线路连接到逻辑电路80上。被连到插头10上的接地的线路上的输入连接器上的管脚,以及被连到插头90上的接地线的输出连接器70上的管脚被连到逻辑电路80上。该线路分别在输入连接器20和输出连接器70中被拉高,而被插头10或90中的接地端拉低。逻辑电路80的各个控制输出端被连到第一和第二开关30和60的相应的输入端。
在操作中,当电缆被插入输入连接器20或输出连接器70,逻辑电路80将通过对应于该输入连接器的输入端的地电位来检测这一情况。这被用来将输入信号从适当的连接器(20或70)引导到输入寄存器,且将输出寄存器50选路到适当的连接器20或50。例如,菊花链路中的第一个节点将没有电缆连接在其输入连接器20上,但将有一条电缆连接在它的输出连接器70上。逻辑电路80检测到这种装置。它使得第一开关30将从插头90的反向路径来的输入线路连到输入寄存器40。输出寄存器50在输出连接器70被连到前向路径。这第一个设备也被指定为总线主设备。
同样,菊花链路中的最后一个设备将具有与其输入连接器20相连的电缆,但没有与其输出连接器70相连的电缆。逻辑电路80检测这一装置。它使得第一个开关30在输入连接器20处将从前向路径来的线路连到输入寄存器40上。它还使得第二个开关60将输出寄存器50在输入连接器20处连到反向线路上。在菊花链路中间的设备,具有与输入连接器20和输出连接器70都相连的电缆。逻辑电路80检测该装置。它使得第一个开关30在输入连接器20处将从前向路径来的线路连到输入寄存器40上。输出寄存器50在输出连接器70被连到前向路径的线路上。它还使得第二个开关60将输出接头70处的从反向路径来的线路连到输入连接器20处的反向路径的线路上。没有对反向路径线路作处理连接,且它们通过该装置简单地连接。这种结构减少了为确定端口连接性而对节点的操作进行软件控制的需求。
如果系统设计不需要电缆中的屏蔽,就可以使用RJ45连接器。在这种情况下,连接器中电缆的有无将由通过在输入线路的读出时钟和在输出线路上的电流测量来判断。在该实施方案中,该读出电路将被连接到输入连接器20和逻辑电路80之间,以及输出连接器70和逻辑电路80之间,并将基于读出的结果,提供逻辑信号到逻辑电路来表示总线连接的有无。RJ45连接器的使用允许相对便宜的电缆和印刷电路板(PCB)连接器,在用户电子系统中,这会是较理想的。
BBUS中的控制信道协议类似CEBUS中使用的。消息结构和编码与CEBUS使用的完全相同。结果是每25ms有一条消息。控制信道将在下文中详细描述。
BBUS同步以下面的方式描述。通过串行链路连接的菊花链路存在的一个问题是,一个节点必须启动一个初始化进程以使所有的节点同步操作,并处理其它初始化操作,比如节点编号。如果一个节点可以变成环通信的无争议的主节点,该过程就可以非常简化。通过将总线主设备定义为与输入连接器20没有直接连接电缆的节点来实现,这可以如上文所述那样判断。总线主设备将开始以下操作(下文将作详细描述)1)字同步2)周期同步3)节点编号4)延迟补偿BBUS中数据字的格式如下。节点到节点的通信是通过从节点到节点9比特字的位串行传送来实现,如上文所述。该字被读入节点输入移位寄存器40,传到输出移位寄存器50,(如图5中虚线表示)并被发送到下一个节点。
该字的一位,例如最高的位是链路级控制位。该控制位定义的一个例子是1=同步信息0=有效负载例如,参看图2。在每个总线周期的开始,由粗框表示的同步字(SYNC)被插入数据流中,它包含九个比特,如数据流下面逐位扩展表示。最高位,由逐位扩展图中的粗框表示,是逻辑“1”。另一方面,该九比特数据字承载了该周期中第二个信道1字,具有最高位,也由粗框表示,是逻辑“0”,如数据流下面逐位扩展表示。
参看上文,菊花链路环总线的初始化由字同步开始。在系统加电以后,字同步是通过主节点在其输出连接器70发送同步码(下文将详细描述)来实现。主节点接着检测在其输入连接器20处收到的数据,等待字同步码的返回,方法是检测输入寄存器40(在优选实施方案中是一个19位寄存器),直到字同步码被检测到。下文的描述是建立在字同步码是单个九比特字的假设上。当然,字同步码可以是两个或多个码字的序列。当字同步码被检测出,字同步就实现了。
由于处理和电缆相关延迟,在所述的节点环中的延迟可能是一个九比特字的非整数倍。为了对非整数倍的字时域延迟进行调整,输入移位寄存器40可以包含一定数目的位数,大于保存一个数据字所需要的位数。例如,输入移位寄存器40的一个优选实施方案就包含19位。为确定延迟,输入寄存器40中的数据以整数倍的字时间被检测。19位移位寄存器中的九比特同步字的位置表示它与一个整数字时间的相对延迟。该延迟被用来调整后续字的时序。对相邻节点,除了主节点,时钟是随数据的,因此时钟延迟与数据延迟相同,所以对于节点来讲就没有时域的延迟。由于主节点有参考时钟,通过整个环的延迟就表现在主节点上了。除了每个节点的整数字延迟,延迟的范围被电缆长度限制在小于一个字。每个非主节点的19比特输入移位寄存器40可以根据需要被用来提供额外的字延迟,具体方式将在下文作详细描述。
每个节点中的时间信号如下提供。每个节点有两个时钟。从输入连接器20到输入移位寄存器40的输入数据按紧临前面节点的选通脉冲产生的时钟被移位,该数据在输入连接器20处(或主节点的输出连接器70处)被接收到。每个节点还具有它自己的内部晶体时钟,它被用来驱动它的输出移位寄存器50和它的内部逻辑。这样,有可能内部时钟比输入时钟快或慢一个小的数量,而它必须被校正。输入时钟快于内部时钟的情况下,通过允许输入字在输入移位寄存器40中移位额外的位数来消减额外的输入时钟周期。内部时钟快于输入时钟的情况下,当输入数据被移入输入移位寄存器40时,由内部时钟定义的数据输入时间周期被扩展一个额外的时钟周期。上述过程具有减慢环速度至最低节点内部时钟速度的累积效应。
每个节点内的总线周期计数器在输入周期的终点周期同步字(下文将阐述)被读入节点时,通过复位所有的周期计数器实现同步。这样,每个节点经过与前一个节点相同的状态,延迟一个被接收的字时间加上电缆传播延迟。每个节点的时间状态,除了主节点,通过接收周期同步字校正延迟来同步。例如,如果总的电缆长被限制在10米,那么经过电缆的总的延迟对于100MHZ时钟来说是50ns或5个时钟周期的数量级。这样,少于一个字被保存在电缆中。当包含返回路径时,电缆长度可以大大地加长,设计电缆驱动器时,增加的长度必须被考虑进去。同样,每个节点有潜在的附加的小于一个时钟周期的延迟。
上文描述且在图2中显示的基本总线周期是88个九比特字,或88×9=792个持续的时钟周期。信道计数器可以被设计,这样如果任何数据信道需要大于1Mbs的容量,基本信道数据计数器内的额外时隙可以被以一种能够最小化抖动的方式分配。为了实现这点,当多个节点使用任意大小数据信道时,容量分配任务是由应用层完成的,应用层有为每个数据信道分配时隙的任务。
另一种减少应用开销的方法是预分配8个主要信道,每个信道为11Mbs容量,以此来保证抖动小于1μs/信道,如图2所示。这8个主要信道可以被简单地分配,信道计数器将被设计为将这8个主要信道分布在88个信道时隙中,也在图2中显示。8个时隙中的每个在确定抖动方面都是相互独立的,并可以由每个节点独立地分配(但只有一个节点可以使用8个信道中的每一个)。控制信道独立地指定,且具有8μs的抖动。
考虑到节点同步和节点寻址,必须提供某些特性。这些特性包括字同步和总线周期同步(上文中都有描述),消息同步,节点寻址和数据时隙中没有数据的标识(下文中都有描述)。为此,一些特殊的同步和寻址字被提供且通过在九比特数据字中用逻辑“1”作为最高位来标识。在本实施方案中,系统被限定在小于32个节点。这样,一个字节中只有五位(如,一个字节的3到7位具有被指定为0到7)需要标识目的节点地址。源节点地址的标识是通过时隙来隐含说明的,虽然如果需要,信息可以在另外的字节中发送。一个字节的其余3位(例如,第0到2位)被用于标识8个特殊的同步和寻址码,它们定义不同的函数,如表1所示。
表1表1中的第一行显示了一个码00H(即,十六进制的00)特定的同步字,它被用于表示在特定的时隙中没有数据出现。该码是需要的,因为时隙总是存在于数据流中,而目的接收节点将查看指定信道的每个时隙。该字允许源节点识别对于某个特定时隙不可用的数据。
表1中的第二行显示了一个字同步码,如上所述。在该码中第0至2位等于111。
表1中的第三行显示了一个用于表明目的地址的寻址码字。当CEBUS协议被用来在节点间建立通信信道时,该码不被需要。在该情况下,目的地址已经被编码在控制信道消息中,如工业标准EIA IS-60中所叙述。此外,节点地址码0被留作广播消息。主节点是节点1。因此系统中只允许有31个物理节点。当消息被广播时,发送者假设它可以被所有的节点接收到。没有确认,所以是否被接收是不确定的。
表1中的第四行显示了一个总线周期同步字,如图2中所示。在总线周期同步字中,第0至2位等于110。总线周期同步字的最低位承载了一个用于控制信道的位,且由表1中的X来表示,表示‘随意’条件。当模88信道计数器=0,控制信道具有一个时隙。如果主节点中的节点计数器和消息长度计数器等于0,主节点发送周期同步码。当总线周期同步字被接收,如果节点失步,每个节点可以复位自己的计数器。如果总线周期同步字没有在合理的时间内被检测到,节点可以假设总线被破坏了。
在一个实施方案中,控制信道可以被指定来完成给节点命名的工作。该情况下,不需要对节点指定名字或编号。不过,在一个优选实施方案中,主节点提供节点编号,作为初始化过程的一个部分。如上文所述,字同步完成之后,主节点发送表1中第五行所示的命名命令,即第0至2位等于100,且节点地址位(3至7位)置为00001。节点地址位中的数字表示发送节点-该例子中的主节点的节点地址。每个接收命名指令的节点,增加由节点地址位表示的数字,用该数字作为它的节点地址,并将命名指令和它自己的在节点地址位中的节点地址发送给下一个节点。当主节点接收到在环中完成循环的命名指令后,便停止该指令的循环。如果一个节点具有两个字时长的延迟(下文将详细阐述),节点将它收到的由命名字的节点地址位表示的数字增加2。如此,每个节点的节点地址与该节点的延迟时隙相匹配。
表1的第六行表示链路层源分配请求字。一个链路层源请求通过将位0至2设为001,可以代替控制信道消息被发送。第4至7位的每位表示两个相邻的数据信道,如第七位表示22Mbs总容量的时隙0和1;第六位表示时隙2和3,等等。可以看到,链路层资源分配请求字被用于简单的节点,该节点没有能力使用控制信道。当这种节点需要接入总线信道中时,它用位4至7中表示的对应于某个所需信道对的一位向总线发送一个源分配请求,代替目的消息地址字。当后序的节点接收到源分配请求,如果它与请求没有冲突,就将请求不加改动地传给下一个节点。如果该节点正在使用被请求的源,它将对应与被使用的被请求信道的位置为0,并将修改过的字送往下一个节点。源节点必须将请求从环上消除。没有其它的合理规则或更进一步的仲裁。如果请求返回而没有信道被置0,发出请求的节点便使用该信道。如果信道不可用,请求的信道尝试四对信道中的另一条。如果没有信道可用,该过程停止。该过程可以在一个长的随机延迟之后继续。这种请求数据信道使用的方法可以用在打算长期使用信道的节点,以及没有控制信道容量的简单节点。
表1的第七行显示了一个环延迟调整字,其中第0至2位等于011。通常,每个节点必须移去它放在环上的消息。为了这样做它必须知道在环上以整数字时长表示的延迟的长度。这必须在初始化过程中由主节点确定。主节点假设延迟至少是系统中节点的数目。主节点计算命名指令返回所需要的时钟周期的数目(上文有阐述)。该计数接着回到字周期(九个时钟周期)的下一个整数,并被称为环延迟。如上文所述,除了主节点的每个节点通过接收字同步字,为来自上一个节点的电缆长度及时被校正。这样,虽然相邻的节点间(除主节点)延迟可能超过一个字长,对接收节点来讲,延迟表现为0。所以,通常除主节点外,每个节点增加一个字时间的延迟。主节点获悉环回的总延迟,并将该延迟调整为八个字时间的倍数,除非环中连接了少于四个节点。如果少于四个节点连接在环中,上述延迟被调整为四个字长的倍数,系统被配置为具有四个22MBS的信道。通过使用环延迟调整字,环延迟被增加,直到总的环延迟为正确。
表1的最后一行显示了有效负载数据字。在有效负载数据字中,最高位是逻辑‘0’,其余八位承载将从一个节点发送往另一个节点的数据。
在初始化过程当中,节点并不从环上(除了说明之外)移走数据,除了主节点。总线周期同步指令标识了初始化过程的结束。总线周期同步指令之后,每个节点移走它的发送的字的模8(或模4)数。另一种情况是模4实现,其中每个节点必须知道它是在延迟4的环中或只有开始的四个时隙可以被使用。后一种实现起来相对容易可操作,因为在只有四个节点的时候,对信道容量的需求通常不是很大。
在作总线时隙分配的时候,必须考虑环延迟。也就是总线时隙应该是总环延迟和复用频率的模。一种方法是固定环延迟的模数。如果是主节点的话,每个节点必须具有容量在它的输入移位寄存器40中插入最多两个九比特字的延迟。该延迟也可以被用来调整环延迟。这样,每个节点可以被配置成引入一个或两个字的延迟。对于只有两个或三个节点的环来说,环就可以因此被调整为具有四个字的延迟。在所有其它的情况下,环可被调整为具有8字时长模数的延迟。在每种情况下,环延迟调整如下文产生。
主节点测量经过环的总的字延迟之后,如果它不是一个模8(或4),环延迟调整字就被主节点发送用来增加延迟。第一个接收该字且还没有增加它的延迟(即它的延迟仍旧是一个字)的节点,调整它自己从输入移位寄存器40的第二个九比特中接收输入字,而不从第一个九比特中接收。通过这种方式,节点将一个额外的字延迟引入环,且具有了两个字的延迟。该节点接着将该字从总线上移下。该过程一直重复,直到字延迟的正确数目被加到环中,且字延迟是模8(或模4)。熟悉本技术的人员还将注意到环电缆长度应该被限定在约18米,以避免电缆本身增加大于一个字的延迟。通过这种系统,加入8信道的复用约束相对容易。基本的系统(见图2)是9比特字的8个时隙的11个周期。每88个时隙,有一个时隙被用于同步字,该同步字包含了控制信道位。
BBUS系统包括了一个CEBUS兼容控制信道。如工业标准IS-60中所述,CEBUS控制信道为最大带宽提供每秒10Kbit。通过在总线上使用高级或低级状态,仲裁对控制信道的访问被判优,很象有线或仲裁控制信道。如上文所述并在图2中表示,BBUS系统包括了7.920μs的总线周期,且每个总线周期发送一个总线周期同步字。控制信道仲裁信息和数据被置于周期同步字的控制信道位中。该物理层允许最大数据比特速率等于总线周期同步字速率。至于对应于已知数据链路层,网络层和应用层的协议以及CEBUS系统层管理可以被用来完成控制信道模式。依赖子层的CEBUS介质也可以被用来编解码数据。
在下文的论述中,比特值1和0被用来表示控制信道中高或低状态信号。例如,当该域被设为逻辑‘1’信号,是高状态信号,而默认的低状态信号是逻辑‘0’信号。在实际情况下,这种对应关系可以是相反的。
具有仲裁和控制信道接入方法的冲突检测(CSMA-CD)的CEBUS载波侦听多址接入可以被用来判断哪个节点可以访问控制信道。CEBUS的操作中,在一些点必须判断是否开始访问控制信道的仲裁。有许多不同的已知技术用于判断何时开始仲裁。例如,只要有一个节点需要访问控制信道,就能开始仲裁。或者只要多个节点同时需要访问控制信道,就可以开始仲裁。如果仲裁是必要的,它可以通过监视控制信道的情况,以某种已知的方式被触发,当总线保持静止超过某预定义的时间段,就触发仲裁。
当仲裁被触发,一个八比特的前置码被每个需要访问控制信道的节点计算。在一个优选实施方案中,该前置码在每个节点以随机数被产生,并且对每次仲裁是不同的。这将使得公平地授予对访问的许可。或者,每个节点可以被预分配一个表示每个节点相应优先级的前置码。该前置码被用来判断对控制信道的访问。成功地被判为允许访问控制信道的节点被允许完成对它的消息的发送,而所有其它的节点在进行对控制信道仲裁之前,必须等待下一个可用的时间段(如上文所述)。前置码和消息被编码成高低状态变化的序列发送。一个符号由周期同步字的控制位中的状态来表示,或由连续周期同步字控制位中的一系列状态来表示。符号的值通过时间的量来传递,直到下一个状态转移。有四种基本的符号逻辑‘0’,逻辑‘1’,域尾(EOF)和包尾(EOP)。其它的符号,如前置码域尾和符号域尾也可能有,不过在下面作为例子描述的系统中没有用到。一个总线周期(7.920μs)等于一个单元符号时间(UST)。
符号编码如下1 UST=12 UST=0
3 UST=EOF4 SUT=EOP任何承载符号(1,0,EOF,EOP)的信息可以用高或低状态信号来表示,或一系列连续的高或低状态信号来表示。例如,逻辑‘1’信号由单个的高状态信号‘1’或单个的低状态信号‘0’来表示。逻辑‘0’信号由两个连续的高状态信号‘11’或两个连续的低状态信号‘00’表示,等等。所以前置码中的比特‘0101’可用控制信道信号001001来表示,即两个连续的低状态信号,表示逻辑‘0’信号,后接单个的高状态信号,表示逻辑‘1’信号,后面再接两个连续的高状态信号,表示逻辑‘0’信号,后接单个的高状态信号,表示逻辑‘1’信号。用相似的方法,前置码中同样的比特位(即,例如‘0101’)可用控制信道信号110110来表示。状态转移之间的时间差决定符号值。
通过判断控制信道非活动时间条件是否符合来开始仲裁。在控制信道非活动阶段,低状态信号被置于周期同步字中。下面定义某些相关用语。“控制位区域”(CBF)指周期同步字中包含CEBUS控制信道信息的位。一个“控制信道周期”在节点第一次在CBF中置高状态时开始,在“包结束”符号(上文中定义)被赢得仲裁的节点发送或周期超时时结束。“写节点”是在第一个控制信道周期中将高状态置于CBF中的第一个节点。这开始控制信道仲裁周期“竞争节点”指位于环中写节点之后的竞争控制信道的所有节点。“后节点”指位于环中写节点之前的竞争控制信道,并在下一个总线同步周期中开始仲裁的所有节点。
再次参考图1,假设节点A是总线的主节点,并假设节点C是“写节点”。节点D和E可以是在同一总线周期的竞争节点。节点A和B也可以是竞争节点,但被称作“后节点”,因为它们在后续的总线同步周期中开始仲裁。一旦某个节点开始控制总线周期,主节点A从节点E接收CBF。否则,它将CBF置为低状态,0。
判优规则如下第一,一个节点可以竞争对CEBUS控制信道的访问,只要它符合IS60所有的控制信道非活动时间要求。这些时间要求应该从CBF中最后一个可见的高状态开始。
第二,如果该节点接收具有高状态的CBF,从一个节点的CBF输出必须有高状态。特殊情况在下文中会有所阐述。不竞争访问控制信道的节点将CBF不加任何改变地传给下一个节点。
第三,如果节点在控制信道上放入一个具有低状态的CBF,且在下一个总线周期同步字中收回一个具有高状态的CBF,该节点退出对控制信道的竞争。
第四,如果一个节点(仍旧)正在竞争控制信道,且下一个CBF输出(基于编码的随机前置码)的状态是高状态,该节点应该将CBF置为高状态,即使它接收到的是高状态。
第五,第一个成功地完成它的编码前置码和“域尾”符号发送的节点赢得控制信道的仲裁。
改变CBF的规则如下第一,在控制信道非活动时间要求符合之后,第一个在总线周期过程中确定高状态信号的节点是写节点。
第二,除了写节点,CBF值不能从高状态改变。
第三,所有的竞争节点可以将CBF从低状态变为高状态。
第四,对写节点的指定可以被任何将CBF从低状态改变为高状态的节点继承。也就是,如果一个节点开始不是写节点,且该节点接收一个低状态CBF,但根据它的编码前置码,将它改为高状态,该节点就变为写节点。
第五,如果节点接收一个CBF不是它在上一个总线周期中在控制信道上确定的那个,先前被指定为写节点的上述节点就失去其写节点状态。此外,该节点退出对控制信道访问的竞争。
所述的操作通过参考图6中所示流程图的仲裁操作,可以更好地理解。图6中,仲裁在步骤600处开始,步骤605判断一个节点是否参与对访问控制信道的竞争,例如,该节点是否有控制消息要发送。对于不竞争控制信道访问的节点,步骤605之后是步骤660和665,将每个收到的CBF状态不加任何变化地传递过去,直到仲裁的中止。当仲裁完成(步骤665的结果为“是”),步骤665之后是步骤635,仲裁结束,以及步骤640,竞争访问的节点赢得判优,可访问控制信道。
对于竞争控制信道访问的节点,步骤605之后是步骤610,在此生成一个前置码。A参与竞争控制信道的访问,且接收一个表现为低状态的CBF的节点成为一个写节点,且在步骤615通过将CBF置为高状态开始发送它的前置码。在步骤620,下一个CBF被接收到。步骤620之后是步骤625,此处判断当接收到的CBF是高状态时,前一个CBF是否为低状态。如果是这样,(步骤625的结果“是”),另一个节点已经将CBF改变为高状态,即另一个节点已经成为写节点。这样,步骤625之后是步骤660,该处上述节点停止对控制信道访问的竞争,且如上文所述,不改变后续CBF的值,即将CBF的值传递过该节点。步骤625的结果是“否”表示当前节点继续是“写”节点,导致步骤625之后执行步骤630。步骤630判断先前的CBF状态是否是前置码的最后状态并与接收到的CBF在同一个状态。步骤630的结果是“是”则表示该节点成功地完成了它的前置码的发送,因此赢得了仲裁。步骤630结果是“是”,则后面接着步骤635,结束判优,和步骤640,赢得节点对控制信道的访问。步骤630的结果是“否”,则表示所有的前置位都没有被发送,并执行步骤650。在步骤650,节点对下一个CBF状态的处理取决于下一个前置码状态以及上文设定的改变CBF状态的规则。步骤650之后接着步骤620,该处接收下一个CBF。
作为对仲裁操作的进一步解释,下文对一个仲裁周期中的前三个总线同步周期进行阐述。在第一个用于仲裁的总线周期,例如,意味着对于要求的时间段,没有控制信道的活动,主节点将总线周期同步字中的控制位域(CBF)设置为低状态信号‘0’。任何需要控制信道访问的节点开始通过将CBF改为高状态1来发送它在CBF中的编码前置码,而该节点成为写节点。后续的不参与对控制信道访问竞争的节点(称为非竞争节点)获悉接收到CBF的高状态1,并将它不加改变地传递给下一个节点。非竞争节点在它们可以参与控制信道竞争之前,必须等到下一次控制信道非活动时间被符合。在该仲裁周期中,从该点开始,非竞争节点将发往它们的CBF不加改变地传递给下一个节点。先于写节点的任何节点在仲裁周期的第一个总线周期中将不会看到CBF中的高状态1。该节点的操作将在下文作更详细的阐述。
在两个或更多个节点竞争控制信道访问的情况下,通过将CBF置为高状态,第一个节点将开始发送它的编码前置码。以下面的方式来表示CBF=(周期#)=状态。该例子中,是仲裁周期的周期1,值是高状态信号,用1表示,所以CBF(1)=1。第一个将CBF设为1的节点知道它自己为写节点,因为它接收到CBF(1)=0。所有的后续仲裁节点将成为竞争节点,并将开始以同样的方式发送它的编码前置码,方式是不加改变地传递CBF(1)=1。CBF值不会从高状态发生改变,直到它完成循环(即,直到它被写节点接收到)。如上文所述,在CC周期,所有的非竞争节点接收到CBF时将它传递,不再竞争对控制信道的访问。
在仲裁周期的第二个总线周期,主节点检测到它已接收到CBF(1)=1,并在下一个总线周期同步字中设CBF(2)=1。在主节点和写节点之间可能有节点要求控制信道访问,但在先前的总线周期中没有获得CBF(1)=1。这样的节点被称为后节点。它也将通过传递数值CBF(2)=1来发送它的编码前置码。不过它是与先前的写节点竞争。数值CBF(2)=1经过环传播,直到它到达写节点。写节点可以将CBF(2)的状态改为CBF(2)=0,或继续CBF(2)=1,这取决于它的编码前置码的下一个状态。如果写节点编码前置码中的下一个状态是高状态,则写节点置CBF(2)=1。另一方面,如果编码前置码的下一个状态是低状态,则写节点置CBF(2)=0。后续节点类似地继续准备发送它们自己的编码前置码。上文所述的规则控制着后续的节点是否可以改变CBF(2)的状态。
如果写节点维持CBF(2)为高状态,即CBF(2)=1,那么,如上文规则中设定的那样,每个后续的竞争节点判断它的编码前置码的下一个状态。如果编码前置码的下一个状态是高状态,则该节点传递CBF(2)=1,并保持对控制信道访问的竞争。如果下一个状态是低状态,则该节点传递CBF(2)=1,但退出对控制信道访问的竞争。在仲裁周期中从该时间起,该节点不加变化地将CBF传递给下一个节点。
如果写节点将CBF(2)的状态改为低状态即CBF(2)=0,则后续的节点可以在这一变化之后用高状态1来改变它,设CBF(2)=1。如果后续节点的编码前置码的下一个状态是高状态1,则该节点发送CBF(2)=1。当这种情况发生,该节点继承了写节点的地位。如果后续节点的编码前置码的下一个状态是低状态,则该节点传递CBF(2)=0,并保持对控制信道访问的竞争。
在仲裁周期的第三个总线周期中,主节点接收到CBF(2)=0,并设CBF(3)=0,或接收到CBF(2)=1,设CBF(3)=1。一个后节点以上文中所描述用于竞争节点的类似方式判断它的编码前置码的下一个状态,并可设CBF(3)=0或CBF(3)=1,或退出对控制信道访问的竞争,所有的都是依据上文描述的规则。对于所有的后节点都是这样。
在某些点,写节点接收CBF(3)。如果写节点在前面设CBF(2)=1,则它必须接收回CBF(3)=1。写节点接着在它的编码前置码中将CBF(3)设到下一个状态,如仲裁周期的控制信道周期二(上文描述)中所作的那样。如果写节点在前面设CBF(2)=0,且它接收CBF(3)=0,则该写节点仍旧是写节点,它仍旧在对控制信道访问的竞争中,并能将CBF(3)的值改变为它的编码前置码的下一个状态。如果写节点在前面设CBF(2)=0,但它接收CBF(3)=1,则该节点不再是写节点,它不在对控制信道访问的竞争中。在仲裁周期中从该点起,该节点不加变化地将CBF传递给下一个节点。
对后续的总线周期,上述操作还继续。每个保持在对控制信道访问的竞争中的节点或者是将CBF设为它的编码前置码中的下一个状态,或者从对控制信道访问的竞争中退出。在前置码被发送之后,每个节点仍旧在企图发送一个域尾符号的状态的竞争中,如上文所述,域尾符号是三个连续的高或低状态信号。第一个成功地发送并接收它的编码前置码和域尾符号的节点便赢得了仲裁,并可以开始在总线周期同步字的CBF中发送它的消息。
概括上文,在前置码之后和域符号之后,仍旧是被指定为写节点的节点成功地被判为有权访问的节点。写节点的地位可以由任何将CBF从低状态改变为高状态的节点所继承。当写节点收回的CBF与它放到控制信道上去的不同,则写节点的地位就丧失了。
下文中将举五个控制位域值的例子。每个例子在一张表中描述。每个节点由表中的一列表示。表的第二行显示为参与控制信道访问竞争的节点随机产生的前置码。表中第三行显示依据上文规则对前置码的编码。如上文所述,用于对前置码编码的第一个状态是高状态。其余的行显示了当CBF被每个节点在连续的总线周期中处理的各状态。第四行是第0周期,且表示仲裁周期开始前控制信道非活动的最后一个周期。
例1在例1中,节点A是主节点,节点D开始仲裁周期,节点B是一个后节点,与节点D竞争对控制信道的访问。主节点,节点A在仲裁周期之前的时间段中保持CBF中的低状态0,如周期0中和总线周期1的第一个部分所示。在总线周期1,节点D通过将CBF中的一个高状态定为它的编码前置码的第一个状态,开始仲裁周期。节点E和节点A不是竞争节点,将该信号传递给总线周期2中的节点B。节点B是一个后节点,将高状态传递给节点C。节点C也不是竞争节点,将高状态传递回节点D。当节点D在周期2接收回CBF(2),将它改变为CBF(2)=0,表示它的编码前置码中的下一个状态。CBF在周期3被节点E和节点A传递到节点B。节点B在周期3接收到一个0,但将它改为1,和它的编码前置码的下一个状态相同。节点B现在成为写节点。1被节点C传给节点D。节点D在周期2发送了一个0,但在周期3接收到1。因此节点3从对控制信道访问的竞争中退出。除节点B外所有的节点现在都成为被动,将不作任何改动地把接收到的CBF传递给下一个节点。同样,节点B成功地发送并接收它的随后是域尾符号的编码前置码,获得对控制信道的访问。
例2在例2中,节点D通过设CBF(1)=1为它的编码前置码的第一个状态来开始仲裁周期,且是写节点。节点E是竞争节点,并传递从节点D接收的CBF(1)=1。节点A,B和C是非竞争节点,并将不作任何改动地把接收到的CBF值传递给下一个节点。在周期2,节点D从节点C接收CBF(2)=1,并将其改为CBF(2)=0,作为它的编码前置码中的下一个状态。节点E在周期2接收CBF(2)=0。不过,节点E的编码前置码中下一个状态是1。因此,节点E设CBF(2)=1,并成为写节点。在周期2,节点D设CBF(2)=0,但在周期3,节点D接收到CBF(3)=1。节点D因此知道它已经失去了仲裁,并从对控制信道访问的竞争中退出。在这点上,所有的节点,除了节点E都在对控制信道访问的竞争之外,且将不作任何改动地把接收到的CBF值传递给下一个节点。节点E最终发送它的完整的编码前置码以及随后的域尾符号,获得对控制信道的访问权。
例3在例3中,节点D通过在周期1设CBF(1)=1来开始仲裁周期。节点E是竞争节点,并将CBF(1)=1传递给节点A。节点A,B和C是非竞争节点,并将不作任何改动地把接收到的CBF值传递给下一个节点。在周期2,节点D接收CBF(2)=1。节点D的编码前置码中的下一个状态为0,所以节点D设CBF(2)=0。节点E接收CBF(2)=0。节点E的前置码中下一个状态也是0,因此,节点E保持在对控制信道访问的竞争中,并设CBF(2)=0。在周期3情况相同。在周期4,节点D接收到CBF(4)=0,它的前置码中下一个状态是1,所以节点D设CBF(4)=1。节点E从节点D接收CBF(4)=1。如同周期1中的情况,它的前置码的下一个状态是1,因此节点E保持竞争,并设CBF(4)=1。在周期5,节点D接收CBF(5)=1。节点D的前置码中的下一个状态为1,所以节点D设CBF(5)=1。节点E接收CBF(5)=1。不过,它的编码前置码中的下一个状态为0。因此节点E从对控制信道访问的竞争中退出,在仲裁周期的剩余时间内,不作任何改动地把接收到的CBF传递给节点A。最终节点D成功地发送随后是域尾符号的它的编码前置码,获得对控制信道的访问权。
例4在例4中,两个随机产生的前置码是相同的。节点D通过在周期1设CBF(1)=1来开始仲裁周期。节点E是竞争节点并接收CBF(1)=1。它也设CBF(1)=1。节点A,B和C是非竞争节点,并将不作任何改动地把接收到的CBF传递给下一个节点。在周期2,节点D接收CBF(2)=1。节点D的编码前置码中的下一个状态为0,所以节点D设CBF(2)=0。节点E接收CBF(2)=0。节点E的前置码中下一个状态也是0,因此,节点E保持在对控制信道访问的竞争中,并设CBF(2)=0。由于编码前置码是唯一的,所以上述情况将一直继续到周期9。在周期10,节点D设CBF(10)=1,作为域尾符号的第一个状态,如上文所述。以前面九个周期中类似的方式,节点E也发送域尾符号,并设CBF(10)=1。这种情况继续到周期13。在周期13,节点D接收回域尾符号的最后一个状态,并获得对控制信道的访问权。消息的第一位是否是逻辑‘1’(可以作为信号0发送),或者是逻辑‘0’(可以作为两个连续的1发送),第一个被置于控制信道的状态是0。节点E接收CBF(13)=0,但它已经发送CBF(12)=1。因此,它从竞争中退出,节点D获得对控制信道的访问权。
例5除了节点B是一个后节点之外,例5类似于例4。节点B和节点D的前置码是相同的。节点D通过在周期1设CBF(1)=1来开始仲裁周期。节点A,C和E是非竞争节点,并将不作任何改动地把接收到的CBF值传递给下一个节点。如同例4,节点B和节点D的编码前置码是相同的,且各自保持在对控制信道访问的竞争中,直到周期10。在周期10,节点D开始发送域尾符号。在周期11,节点B也开始发送域尾符号。两个节点再次保持在对控制信道访问的竞争中,直到周期12。在周期13,节点B接收CBF(13)=1,这表示对它编码前置码和随后域尾符号的成功发送。节点B因此获得对控制信道的访问权。如例4,节点B通过设CBF(13)=0,开始发送它的消息。节点D接收CBF(13)=0,并从对控制信道访问的竞争中退出。
权利要求
1.一个数据传输总线系统,包括多个节点;一条环总线,将多个节点互连到一起;其中环总线连续地发送总线周期,每个总线周期包括多个总线字,其中之一是总线周期同步字,其余的是数据字,其中多个数据字被分配在多个数据信道上。
2.权利要求1的总线系统,其中多个节点中的每个都包括了输入和输出连接器;且环总线包括了一些电缆,每条电缆包括一条前向数据路径和一条反向数据路径,以及在电缆的每个端头有一个插头,环总线中,一个节点的输入连接器和前一个节点的输出连接器之间,以及该节点的输出连接器和下一个节点的输入连接器之间有相应的电缆。
3.权利要求2的总线系统,其中每个节点中输入和输出连接器各自包括了前向路径终端和反向路径终端;且每个节点进一步包括一个输入和输出寄存器;一个检测器,用于确定何时插头插入输入和输出连接器;一个开关,用于当检测器检测到有插头插入输出连接器,而没有插头插入输入连接器,将输出连接器中的反向路径端连到输入寄存器,以及将输出寄存器连到输出连接器中的前向路径端,也用于当检测器检测到有插头插入输入连接器,而没有插头插入输出连接器时,将输入连接器中的前向路径端连到输入寄存器,以及将输出寄存器连到输入连接器中的反向路径端,也用于当检测器检测到有插头插入输入和输出连接器时,将输入连接器中的前向路径端连到输入寄存器,以及将输出寄存器连到输出连接器中的前向路径端,以及将输出连接器中的反向路径端连到输入连接器中的反向路径端。
4.权利要求2的总线系统,进一步包括了,只有与输出连接器相连的电缆的总线系统中的第一个节点,以及只有与其输入连接器相连的电缆的总线系统中的最后一个节点。
5.权利要求4的总线系统,其中总线系统中的第一个节点被指定为主节点,并执行总线系统的初始化。
6.权利要求5的总线系统,其中主节点在总线系统的初始化过程中,通过沿环总线发送一个命名指令,向每个其它的节点分配彼此不同的标识号,该命名指令具有一个标识域;其中主节点被分配一个标识号1,且发送具有识别域为1的命名指令;每个接收到命名指令的节点将识别域递增,将增加后的识别域分配给自己作为识别号,并将命名指令发送给识别域中带有其自身识别号的下一个节点。
7.权利要求5的总线系统,其中每个节点包括一个输入寄存器,该寄存器有足够的位数来包含至少两个数据字,该节点能够将从它的输入连接器来的字选路到它的输出连接器,并有一个或两个字的延迟,而最初将字从其输入连接器选路到其输出连接器并有一个字的延迟;主节点调整沿环总线的字延迟,使它成为预定义字数的模,方法是沿环发送连续的环延迟指令,每个接收到环延迟指令的节点响应该指令,以两个字的延迟将字从它的输入连接器选路到输出连接器,并将环延迟指令从总线上移去。
8.权利要求7的总线系统,其中如果环上有少于4个的节点,主节点调整沿环总线的字延迟为模4,且如果环上有多于三个节点,主节点调整沿环总线的字延迟为模8。
9.权利要求5的总线系统,其中每个节点包括一个节点时钟;且主节点执行对多个节点内字时钟的同步,方法是沿环总线对多个节点发送字同步指令。
10.权利要求9的总线系统,其中主节点包括一个输入寄存器,该寄存器包含至少足够保持两个字的位数,且对沿环总线的非整数字延迟进行补偿,它检测它的输入寄存器中哪些位包含了一个字时长的字同步指令,并用它的输入寄存器中的那个位置来从总线上接收字。
11.权利要求1的总线系统,进一步包括了控制信道,其中控制信道的一位被承载在每个总线周期同步字中。
12.权利要求1的总线系统,其中每个总线字包括了一个同步位和一些数据位。
13.权利要求12的总线系统,其中多个数据位中的位数是8位。
14.权利要求12的总线系统,其中数据字具有设为逻辑‘0’的同步位,以及同步位设为逻辑‘1’的指令和同步字。
15.权利要求1的总线系统,其中每个总线周期中的多个总线字是88个字。
16.权利要求1的总线系统,其中环总线发送一个固定数目的数据信道,且多个数据字被分在连续的组里,每个组包含一些数据字,数目等于数据信道的固定数目,而每个组里的数据字分别被分配到不同的数据信道中。
17.权利要求16的总线系统,其中数据信道的固定数目是8个数据信道。
全文摘要
本文公开了一种数据传输总线系统,该系统包括了多个由环总线相连的节点。该环总线在连续的总线周期内传送数据,每个总线周期包括了多个总线字。在总线周期中的一个总线字是总线周期同步字,而其余的部分是数据字。多个数据字被分配给多个数据信道。
文档编号H04J3/06GK1191645SQ96195740
公开日1998年8月26日 申请日期1996年5月24日 优先权日1995年5月24日
发明者小B·W·贝耶尔斯 申请人:汤姆森消费电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1