Method of generating IEEE 1394 virtual network and controller thereof

Abstract: A method of generating an IEEE 1394 virtual network in which a virtual network is constructed on the IEEE 1394 network and the respective nodes sense the virtual network. The method includes the steps of connecting a virtual network controller for generating a virtual self ID packet including a virtual node ID information required for constructing a virtual network to a predetermined IEEE 1394 network, the respective nodes and the virtual network controller constructing the IEEE 1394 network for determining whether the respective nodes are branches or leaves by performing virtual bus initialization, determining parent ports and child ports with respect to the ports of the respective nodes and a root node by performing a virtual tree identification, and determining the physical node IDs of the respective nodes by sending the prepared virtual self ID packet. A controller for generating the virtual network is also provided. According to the present invention, it is possible to arbitrarily set a node ID on a network. It is also possible to physically sense and operate a virtual network. When different (independently initialised) IEEE 1394 networks are connected by a certain medium, the respective nodes sense that the IEEE 1394 networks are in the same virtual network.

Description: The present invention relates to an IEEE 1394 network, and more particularly, to a method of generating an IEEE 1394 virtual network in which a virtual network is constructed on the IEEE 1394 network and the respective nodes sense the virtual network and a controller for generating the virtual network. US 5 394 556 and "IEEE Standard for a High Performance Serial Bus" XP002071702 1996 each disclose methods for assigning node IDs in arbitrarily assembled collections of nodes linked together in a network. In general, an IEEE 1394 network comprises at least two nodes in which each node has an intrinsic node ID. Here, the IDs of the respective nodes are sequentially determined. Namely, when there are three nodes, the node IDs are determined to be 0, 1, and 2. When there are five nodes, the node IDs are determined to be 0, 1, 2, 3, and 4. Therefore, in order to let an arbitrary node have a desired predetermined node, at least as many nodes as the node IDs are necessary. When different IEEE 1394 networks in which initializations are independently performed are connected to each other by a medium, the respective nodes constructing the networks sense the networks as those having different bus IDs. Namely, when it is necessary to let the nodes sense the different IEEE 1394 networks as those having the same bus IDs, this is not possible. It is an aim of the present invention to provide a method of generating an IEEE 1394 virtual network in which it is possible to install an arbitrary node ID on a network and ideally wherein the respective nodes sense that different (independently initialised) IEEE 1394 networks have been connected by a predetermined medium to form a new single network. It is another aim of the present invention to provide a virtual network controller for controlling the generation of the IEEE 1394 virtual network. According to the present invention there is provided an apparatus and method as set forth in the appended claims. Preferred features of the invention will be apparent from the dependent claims, and the description which follows. According to one aspect of the present invention, there is provided a method for generating an IEEE 1394 network, the method comprising the steps of: connecting a network controller to an IEEE 1394 network and generating a self ID packet; determining whether respective nodes and the network controller constructing the IEEE 1394 network are branches or leaves by performing a bus initialisation; determining parent ports and child ports of the respective nodes and the network controller by performing a tree identification; and determining physical node IDs of the respective nodes and the network controller by sending the generated self ID packet; characterised in that: the network controller is arranged to generate at least one additional self ID packet including node ID information each representing a virtual node; and in the step of determining the physical node ID of the network device, the network controller sends the at least one additional self ID packet to construct within the network controller a virtual network portion of the IEEE 1394 network. According to a second aspect of the present invention there is provided a network controller for generating an IEEE 1394 network including a root node, the network device comprising: a storing portion for storing a self ID packet; a main controller for controlling the point in time at which a bus cycle that is generated during performing a bus initialization, a tree identification, and a self identification starts and ends; a digital portion for generating a parent_notify signal for a bus cycle of the IEEE 1394 network including the root node and state signal for transferring the self ID packet, at the point in time at which the bus cycle of the main controller starts and ends during the bus initialization, the tree identification, and the self identification and encoding the packet data transferred from the main controller; and an analog portion for converting the transfer signal of the digital portion into an analog signal, converting the analog signals received from the respective nodes of the IEEE 1394 network into digital signals, and transmitting the converted signals to the digital portion; characterised in that: the storing portion stores at least one additional self ID packet each representing a virtual node; and the main controller is arranged for reading the additional self ID packet stored in the storing portion during the self identification, and transferring the self ID packet to the respective nodes of the IEEE 1394 network for constructing within the network controller a virtual network portion upon the IEEE 1394 network. For a better understanding of the invention, and to show how embodiments of the same may be carried into effect, reference will now be made, by way of example, to the accompanying diagrammatic drawings in which: Figure 1 is a flowchart showing processes of generating a virtual network in an IEEE 1394 network according to an embodiment of the present invention; Figure 2 shows an IEEE 1394 network having two nodes (node A and node B) ; Figure 3 shows the structure of an IEEE 1394 network having nine nodes; Figure 4 shows an IEEE 1394 virtual network comprised of a virtual network controller so that a node senses the network of Figure 3; Figures. 5 through 8 shows processes of forming a tree identification; Figure 9 shows the result of the tree identification when there are only two nodes; Figure 10 shows a network in which one port is not connected and two other ports are children among three ports of a branch node; Figures 11 through 24 show processes of performing a self ID identification; and Figure 25 is a block diagram showing the structure of a virtual network controller for generating a virtual network which can be sensed by the respective nodes in the IEEE 1394 network including a root node and at least one node according to the present invention. Figure 1 is a flowchart showing processes of generating a virtual network in the IEEE 1394 network according to one embodiment of the present invention, which includes the steps of preparing a self ID packet for a virtual network (100), a virtual bus initialize (110), a virtual tree identify (120), and a virtual self identify (130). The self ID packet for the virtual network includes virtual node ID information required for constructing the virtual network and is supplied by a virtual network controller. In the virtual bus initializing step 110, when the virtual network controller is connected to a predetermined IEEE 1394, the respective nodes constructing the IEEE 1394 network determine whether they are a branch or a leaf. In the virtual tree identifying step 120, parent ports, child ports, and root nodes are determined with respect to the ports of the respective nodes. To be more specific, the controller of the virtual network and the leaf node send a parent_notify signal to the branch node and set the port of the leaf node as the parent port. When the branch node receives the parent_notify signal, the branch node transfers the child_notify signal to the virtual network controller and the leaf node, sets its own port as the child port, and becomes a root node. In the self identifying step 130, the virtual self ID packet is sent and physical node IDs of the respective nodes are determined. To be more specific, as many self ID packets as the virtual node IDs are repeatedly transferred through at least one virtual network controller (VNC) connected to at least one port of the root node. Then, the root node owns a node ID by transferring the self ID packet of its own. This will be explained by taking the generation of the IEEE 1394 network shown in Figure 1. Figure 2 shows an IEEE 1394 network comprised of two nodes (node A and node B). Figure 3 shows the structure of the IEEE 1394 network comprised of nine nodes. Figure 4 shows an IEEE 1394 virtual network comprised of a virtual network controller so that the node senses the virtual network as the network shown in Figure 3. The network shown in Figure 4 is constructed so as to sense the virtual network shown in Figure 3 in the network shown in Figure 2. Then, the network shown in Figure 4 operates like the network shown in Figure 3 in an initialization process. Here, the network shown in Figure 4 need not be completely identical to the network shown in Figure 3. When the network shown in Figure 4 is constructed to have as many nodes as the nodes of the network shown in Figure 3 and the nodes have desired node IDs, the respective nodes sense the network shown in Figure 4 to be identical to the network shown in Figure 3. The process of the respective nodes sensing the network shown in Figure 4 as the network shown in Figure 3 by generating a virtual network shown in Figure 4 in the network shown in Figure 2 will now be described in more detail. Since the network and ID are set in an initialization process, the initialization must be reconstructed. The initialization is performed by three processes such as a bus initialize, a tree identify, and a self identify. Before the initialization is performed it must be determined how the network is constructed. The self-ID packet for constructing the virtual network is provided from the outside or constructed in itself. At this time, when a virtual network is to be constructed in the IEEE 1394 network shown in Figure 2 by receiving already constructed specific IEEE 1394 network information, it is necessary to have a remote node (node B) own a predetermined desired node ID and to sense as many nodes as the nodes of the already constructed network or the network to be virtually constructed be connected in the network to which the remote node belongs. Therefore, as shown in Figure 4, the self-ID packet having a smaller ID value than the ID value (#5) of the node B is sent from the VNC1. The self-ID packet larger than the ID value of the B node is sent from the VNC2. The root node finally sends the self-ID packet of its own and has the last node ID. 1. Bus Initialize In this process, the respective nodes determine whether they are a branch or a leaf. The physical layer chips of the respective nodes of Figure 2 determine whether the respective nodes are a branch or a leaf. The node A is a branch or a leaf. The node B always is a leaf. The state of two ports excluding the port connected to the node B must be 'not connected' so that the node A becomes a leaf. The virtual network controller (a controller for supporting the remote node to sense the virtual network) powers off an analog part so that the PHY (physical layer) chip senses the state of two ports as 'not connected'. 2. Tree Identify The parent port and the child port of the respective nodes are determined. As shown in Figure 4, the port (Port #1) connected to the node B in the PHY chip of the node A always becomes the child port (the node A is always the root node). The remaining two ports are able to become child ports. The two ports can be restricted to the subsequent four cases. port #0 port #1 port #2 description not connected remote node not connected node A is connected to only one node child remote node not connected node ID of node A is the largest and remaining nodes have IDs not more than the ID of the node A not connected remote node child when node B has the smallest ID value and node A has the largest ID value, remaining nodes have IDs between the two IDs child remote node child there are IDs smaller than that of node B and at least two IDs larger than that of node B coexist The processes of performing the tree identify will be described with reference to Figures. 5 through 8. First, as shown in Figure 5, VNC1 and VNC2 prepare a parent_notify signal in order to be a child. As shown in Figure 6, when the leaf nodes VNC1 and VNC2 send the parent_notify signal, the branch node receives the parent_notify signal and the leaf nodes, VNC1 and VNC2 which sent the parent_notify signal set the ports of theirs as parent nodes. As shown in Figure 7, the branch node sends the child_notify signal to the leaf node, the VNC1, and the VNC2, sets the port of its own as a child port, and becomes a root. Finally, as shown in Figure 8, the branch node always becomes a root and operates as a cycle master of the IEEE 1394 bus cycle. Thus, the tree identification is finished. In Figure 9, when there are only two nodes, the state of VNC1 and the VNC2 are to be 'not connected', only one port of the branch node becomes a child, the port of the leaf node becomes a parent. Figure 10 shows a network in which one among three ports of the branch node is 'not connected' and the two ports become child ports. 3. Self Identify The physical IDs of the respective nodes are determined. The node B senses a virtual network when each VNC sends virtual self ID packets to the root node. The processes will be described with reference to Figures. 11 through 24. A case in which all three PHY ports (the port 0, the port 1, and the port 2) of the node A are used will be described. Since the physical chip (PHY chip) of the node A is a root as shown in Figure 11, the PHY chip sends a grant. Here, a grant indicates that the root node is ready to receive self-ID packets from its counter node. The PHY chip of the root node sends the grant to the child port (the port #0) and sends a data_prefix to the remaining child ports (ports #1 and #2). As shown in Figure 12, the VNC1 senses the grant and sends a data_prefix, a self-ID packet, and a data_end. The data_prefix and the self-ID packet are broadcast. As shown in Figure 13, the VNC1 becomes idle if there are more self-ID packets for virtual nodes to send. As shown in Figure 14, the PHY chip of the root node which confirmed the idle state of VNC1 sends a grant again to the VNC1 through the port #0. The VNC1 repeats the processes of Figures. 12 through 14 as many times as the number of desired node IDs. As shown in Figure 15, an ident_done is sent after sending the self-ID packets of the desired nodes #0 through #4. Then, as shown in Figure 16, the PHY chip of the root node responds as a data_prefix and sends an idle to the remaining ports. As shown in Figure 17, the PHY chip of the root node sends a data_prefix to the ports #0 and #2 and a grant to the port #1. As shown in Figure 18, a data_prefix, a self-ID packet, and a data_end are transferred to the root node from the remote node. As shown in Figure 19, when the remote node sends an ident_done, the root node responds by sending data_prefix and sends an idle to the remaining ports. As shown in Figure 20, the PHY chip of the root node receives the idle from the remote node and sends a data_prefix through the ports #0 and #1 and a grant to the VNC2 through the port #2. When the VNC2 receives the grant, the VNC2 performs the processes of Figure 21 and Figure 22, and repeats the processes from Figure 20 to Figure 22 as many times as the number of desired IDs. The VNC2 sends as many data_prefixs, self-ID packets, and data_ends as the required nodes and then, as shown in Figure 23, sends an ident_done to the port #2. As shown in Figure 24, the PHY chip of the root node transfers the final self-ID packet through each port as the root. Then, the PHY chip sends an idle to the child ports. The idle state is maintained by an arbitration reset gap. In order to construct the IEEE 1394 basic network shown in Figure 2 as shown in Figure 4, thus to set the same number of nodes as the network shown in Figure 3 and an arbitrary ID, the tree identification is performed through the processes from Figure 5 to Figure 9 and the processes from Figure 11 to Figure 24 are performed. Then, the node IDs of all the nodes are determined. Finally, the virtual network is completed. In the above network, the node b senses that the same number of nodes are connected as in the network of Figure 3 and has a specific node ID. Figure 25 is a block diagram showing the structure of a virtual network controller for generating a virtual network which can be sensed by the respective nodes in the IEEE 1394 network including the root node according to the present invention and at least one node. The virtual network controller includes a storing portion 20, a main controller 22, digital portions 24 and 28, and analog portions 26 and 30. The storing portion 20 located in the main controller stores as many self ID packets as the number of the virtual node IDs included in the virtual network. The main controller 22 controls timing at which the bus cycle generated when the bus initialization, the tree identification, and the self ID identification, for generating the virtual network, are performed starts and ends. The main controller 22 reads as many self ID packets as virtual nodes stored in the storing portion 20 during the self ID identification from the storing portion 20 and transfers the self ID packets to the respective nodes of the IEEE 1394 network including the root node 32. The digital portions 24 and 28 generate the state required for transferring the parent_notify signal and the self ID packet required for the bus cycle of the IEEE 1394 network including the root node 32 adjusting to the point in time at which the bus cycle of the main controller 22 starts and ends during the bus initialization, the tree identification, and the self ID identification. The packet data transferred from the main controller 22 is encoded. The analog portions 26 and 30 convert the transfer signals of the digital portions 24 and 28 into analog signals, convert the analog signals received from the respective nodes of the IEEE 1394 network into digital signals, and transmit the converted signals to the digital portions 24 and 28. The analog portions 26 and 30 are different from an IEEE 1394-1995 standard only in that Data_Rx, Sppd_Rx, and Strb_Rx functions are missing. Since the initialization is always performed at a minimum speed, a speed check is not necessary. Since the packet information need not be used, the Rx portion of the data and the strobe are not necessary. According to the present invention, it is possible to arbitrarily set a node ID on a network. It is also possible to physically sense and operate a virtual network. When different IEEE 1394 networks (initializations independently occur) are connected by a certain medium, the respective nodes sense the IEEE 1394 networks are in the same network.

Claims: A method for generating an IEEE 1394 network, the method comprising the steps of: connecting a network controller (VNC1, VNC2) to an IEEE 1394 network and generating a self ID packet; determining whether respective nodes and the network controller (VNC1, VNC2) constructing the IEEE 1394 network are branches or leaves by performing a bus initialisation (110); determining parent ports and child ports of the respective nodes and the network controller (VNC1, VNC2) by performing a tree identification (120); and determining physical node IDs of the respective nodes and the network controller (VNC1, VNC2) by sending the generated self ID packet (130); characterised in that : the network controller (VNC1, VNC2) is arranged to generate at least one additional self ID packet including node ID information each representing a virtual node; and in the step of determining the physical node ID of a network device, the network controller (VNC1, VNC2) sends the at least one additional self ID packet to construct within the network controller (VNC1, VNC2) a virtual network portion of the IEEE 1394 network. The method of claim 1, wherein the tree identification step comprises the steps of: setting the port of a leaf node as a parent node by the network controller (VNC1, VNC2) and the leaf node sending a parent_notify signal to a branch node; and the branch node transferring a child_notify signal to the network controller (VNC1, VNC2) and the leaf node, setting the port of its own as a child port, and becoming a root node when the branch node receives the parent_notify signal. The method of claim 1 or 2, wherein the step of determining the physical node ID comprises the step of: repeating and sending as many self ID packets as virtual node IDs through the network controller (VNC1, VNC2) connected to at least one port of a root node; and the root node transferring the self ID packet of its own and retaining a node ID. A network controller for generating an IEEE 1394 network including a root node, the network device comprising: a storing portion (20) for storing a self ID packet; a main controller (22) for controlling the point in time at which a bus cycle that is generated during performing a bus initialization, a tree identification, and a self identification starts and ends; a digital portion (24, 28) for generating a parent_notify signal for a bus cycle of the IEEE 1394 network including the root node and state signal for transferring the self ID packet, at the point in time at which the bus cycle of the main controller starts and ends during the bus initialization, the tree identification, and the self identification and encoding the packet data transferred from the main controller; and an analog portion (26, 30) for converting the transfer signal of the digital portion into an analog signal, converting the analog signals received from the respective nodes of the IEEE 1394 network into digital signals, and transmitting the converted signals to the digital portion; characterised in that : the storing portion (20) is adapted to store at least one additional self ID packet each representing a virtual node; and the main controller (22) is arranged for reading the additional self ID packet stored in the storing portion during the self identification, and transferring the self ID packet to the respective nodes of the IEEE 1394 network for constructing within the network controller a virtual network portion upon the IEEE 1394 network.

Inventors: HAN DONG-IL, LEE KI-WON, SONG JUNG-HO, HAN, DONG-IL, LEE, KI-WON, SONG,JUNG-HO
Applicants: SAMSUNG ELECTRONICS CO LTD, SAMSUNG ELECTRONICS CO., LTD.
Application year: 1999
Main classification: H04L12
IPC codes: H04L12