Method for blocking bus resets in a IEEE-1394 high-performance serial bus
09747186 · 2017-08-29
Inventors
Cpc classification
G06F13/426
PHYSICS
International classification
G06F13/00
PHYSICS
G06F11/34
PHYSICS
Abstract
A method of delaying or blocking new bus resets from propagating while a previous bus initialization (bus reset, tree-id or self-id) is in process during the performance of a IEEE-1394 serial bus. The method provides for more robust Beta only bus operation during high frequency bus resets. The bus resets are caused by noise events, power-up and power-down sequences and other bus reset causing events.
Claims
1. A method for preventing propagation of received bus resets through a Beta node (B) PHY port thereby providing a more robust Beta bus topology operation during high frequency bus resets, the method comprising: blocking a bus reset, when received on the Beta node (B) PHY port, and preventing the received bus reset from propagating through the Beta node (B) PHY port while other Beta node (B) PHY ports are in a bus initialize state; preventing a Beta node (C) PHY port connected to the Beta node (B) PHY port from observing consecutive bus resets while the Beta node (C) PHY port is still in a bus initialize state; and preventing the Beta node (C) PHY port from incrementing a bus reset counter from counting a value greater than three (3) during the bus initialize state.
2. The method of claim 1 wherein the Beta node (B) PHY port receiving the bus reset will respond to the received bus reset with a bus reset.
3. The method of claim 1 wherein the Beta node (B) PHY port will propagate a bus reset when other Beta node (B) PHY ports are not in a bus initialize state.
4. The method of claim 1 wherein the bus initialize state is defined by IEEE-1394: R1, T0, T1, T2, T3, S0, S1, S3 or S4.
5. A method for preventing propagation of received bus resets through a IEEE-1394 Beta node (B) PHY port thereby providing a more robust Beta bus topology during high frequency bus resets, the method comprising: blocking a bus reset, when received on the Beta node (B) PHY port, and preventing the received bus reset from propagating through the Beta node (B) PHY port while other Beta node (B) PHY ports are in a bus initialize state (NOTE: Made this the same as claim 1 but referenced specifically to IEEE-1394-2008); and preventing a IEEE-1394-2008 Beta node (C) PHY port connected to the Beta node (B) PHY port from observing greater than three (3) consecutive bus resets while the Beta node (C) PHY port is still in a bus initialize state.
6. The method of claim 5 wherein the bus initialize state is defined by IEEE-1394: R1, T0, T1, T2, T3, S0, S1, S3 or S4.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The accompanying drawings illustrate complete preferred embodiments in the present invention according to the best modes presently devised for the practical application of the subject method for blocking bus resets, and in which:
(2)
(3)
(4)
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
(5) In
(6) In
(7) In
(8) This behavior was designed into the IEEE-1394-2008 standard to detect a loop between Alpha nodes during bus initialization as described in the IEEE-1394-2008 section “14.7.13 Loop detection during bus initialization”:
(9) Some loop conditions may be detected during bus initialization. They are: a) Configuration timeout (in the T0: Tree ID Start state), which can occur if the node is on a loop and either that loop includes one or more Alpha nodes or the loop is formed as a result of a connection on the bus being resumed. b) Arbitration state timeout, which can occur up to the time when the port enters the S1: Self-ID Grant or S2: Self-ID Receive state if the node is connected to a network of Alpha nodes that are in a loop. c) Repeated resets, which can occur in similar circumstances to condition b with a loop on a network that includes IEEE 1394 nodes that use a shorter arbitration state timeout.”
(10) While in most cases this functionality is desirable. Also, some applications can guarantee either Alpha nodes are not preset, Beta nodes only, or Alpha nodes cannot be connected in a loop. Furthermore, in some environments, it is possible that bus resets can be generated quickly enough to cause a Beta node PHY ports to incorrectly disable a connection between two different nodes for reasons other than a loop between Alpha nodes.
(11) It should be noted that Texas Instruments (TI) TSB41BA3 and TSB81BA3 PHYs do not behave exactly as the IEEE-1394 standard defines. In fact, it appears these PHYs do not clear the resetCount variable until the PHY transitions from the Self-id to normal arbitration state AO. This creates, especially in large topologies, a much larger timing window in which four (4) consecutive bus resets could cause resetCount to be greater than three (3) and cause a port to disconnect.
(12) The method described below provides a programmable implementation that provides both backward compatibility and software/hardware programmable means to enable this new functionality. In addition, to the method described below, other methods may be implemented that provide the same desired results.
(13) The Block Bus Reset Propagation Method determines that if a bus reset signal (portRArb[i]==BUS_RESET) is received while the PHY is currently in the R1, T0, T1, T2, T3, S0, S1, S2, S3 or S4 states (busInitializeActive==TRUE) the PHY won't propagate (repeat_Bus_Reset=FALSE) the bus reset until the other connected port(s) transition to the AO (Arbitration state zero) state. The port receiving the bus reset responds by returning bus reset, return_Bus_Reset[i]=TRUE. This guarantees the PHY receiving the new bus reset will block the propagation of bus reset until the bus reset, tree-id and self-id processes complete. Additionally, the method prohibits the PHY from initiating consecutive bus resets until its ports transition through the Bus Reset, Tree-ID and Self-ID states to the Arbitration zero state.
(14) Also referring to
(15) When one or more PHY's implementing the Block Bus Reset Propagation Method are connected to an IEEE-1394 bus with PHY's allowing legacy loop detect, the probability the resetCount value will exceed there (3) is reduces. Of course the more nodes that implement this method and are directly connected to PHYs with the legacy loop detect logic enabled, the lower the probability a port will be disabled due to resetCount being greater than 3.