In one embodiment, a system comprises a plurality of nodes and an ieee 1394 bus. Each of the plurality of nodes comprises at least one ieee 1394 interface for communicating over the ieee 1394 bus. The plurality of nodes communicates over the ieee 1394 bus in accordance with a rooted, half-binary tree topology. In another embodiment, a node comprises an ieee 1394 interface to communicate over an ieee 1394 bus. The node encapsulates logical data packets into ieee 1394 data packets and maps a traffic class associated with each logical data packet to an ieee 1394 class of service for the ieee 1394 data packet into which that logical data packet is encapsulated.
|
15. A node comprising:
an ieee 1394 interface to communicate over an ieee 1394 bus;
wherein the node encapsulates network-layer data packets within ieee 1394 data packets and maps a traffic class identified in a header of each network-layer data packet to an ieee 1394 class of service for the ieee 1394 data packet into which that network-layer data packet is encapsulated.
18. A method comprising:
receiving ieee 1394 data packets at a node from at least one ieee 1394 bus, the node having an ieee 1394 interface to couple the node to the ieee 1394 bus;
encapsulating, at the node, network-layer data packets within ieee 1394 data packets; and
mapping, at the node, a traffic class identified in a header of each network-layer data packet to an ieee 1394 class of service for the ieee 1394data packet into which that network-layer data packet is encapsulated.
21. Apparatus comprising a storage medium tangibly embodying program instructions, the program instructions comprising instructions operable to cause a programmable processor to:
receive ieee 1394 data packets from at least one ieee 1394 bus;
encapsulate network-layer data packets within ieee 1394 data packets; and
map a traffic class identified in a header of each network-layer data packet to an ieee 1394 class of service for the ieee 1394 data packet into which that network-layer data packet is encapsulated.
1. A system comprising:
a plurality of nodes; and
an ieee 1394 bus;
wherein each of the plurality of nodes comprises at least one ieee 1394 interface for communicating over the ieee 1394 bus; and
wherein the plurality of nodes communicates over the ieee 1394 bus in accordance with a rooted, half-binary tree topology;
wherein the rooted, half-binary tree topology comprises a root node that has at most two child nodes, wherein each of the plurality of nodes other than the root node has one parent node and at most one child node; and
wherein the root node is pre-assigned, whereby a root election algorithm need not be performed in order to determine which of the plurality of nodes is the root node for the rooted, half-binary tree topology.
9. A first node comprising:
an ieee 1394 interface to communicate over an ieee 1394 bus with a plurality of other nodes; and
wherein the ieee 1394 interface is configured so that the first node communicates over the ieee 1394 bus using a rooted, half-binary tree topology in which the first node and the plurality of nodes are logically arranged;
wherein the rooted, half-binary tree topology comprises a root node that has at most two child nodes, wherein each of the plurality of nodes other than the root node has one parent node and at most one child node; and
wherein the root node is pre-assigned, whereby a root election algorithm need not be performed in order to determine which of the first node and the other plurality of nodes is the root node for the rooted, half-binary tree topology.
2. The system of
4. The system of
5. The system of
6. The system of
8. The system of
10. The first node of
11. The first node of
12. The first node of
13. The first node of
16. The node of
17. The node of
20. The method of
22. The apparatus of
|
This application claims the benefit of U.S. Provisional Application No. 60/623,704, filed on Oct. 29, 2004, which is incorporated herein by reference in its entirety.
This application is related to U.S. patent application Ser. No. 11/260,332, with a title “IEEE 1394 GATEWAY FOR FAULT-TOLERANT COMMUNICATION”, filed on even date herewith, which is incorporated herein by reference in its entirety.
The Institute of Electrical and Electronics Engineers (IEEE) has promulgated a family of standards for high performance serial buses (also referred to here as “IEEE 1394”). The IEEE 1394 family of standards includes IEEE Std. 1394-1995, the IEEE Std. 1394a-2000 amendment (also referred to here as “IEEE 1394a”), and the IEEE Std. 1394b-2002 amendment (also referred to here as “IEEE 1394b”). However, typical networks that implement such IEEE 1394 standards may not be suitable for some applications that require a high degree of fault tolerance and/or deterministic communication (for example, in systems that control and/or monitor vehicles such as aerospace vehicles).
In one embodiment, a system comprises a plurality of nodes and an IEEE 1394 bus. Each of the plurality of nodes comprises at least one IEEE 1394 interface for communicating over the IEEE 1394 bus. The plurality of nodes communicates over the IEEE 1394 bus in accordance with a rooted, half-binary tree topology.
In another embodiment, a first node comprises an IEEE 1394 interface to communicate over an IEEE 1394 bus with a plurality of other nodes. The IEEE 1394 interface is configured so that the first node communicates over the IEEE 1394 bus using a rooted, half-binary tree topology in which the first node and the plurality of nodes are logically arranged.
In another embodiment, a node comprises an IEEE 1394 interface to communicate over an IEEE 1394 bus. The node encapsulates logical data packets into IEEE 1394 data packets and maps a traffic class associated with each logical data packet to an IEEE 1394 class of service for the IEEE 1394 data packet into which that logical data packet is encapsulated.
In another embodiment, a method comprises receiving IEEE 1394 data packets from at least one IEEE 1394 bus, encapsulating logical data packets into IEEE 1394 data packets, and mapping a traffic class associated with each logical data packet to an IEEE 1394 class of service for the IEEE 1394 data packet into which that logical data packet is encapsulated.
In another embodiment, an apparatus comprises a storage medium tangibly embodies program instructions. The program instructions comprise instructions operable to cause a programmable processor to receive IEEE 1394 data packets from at least one IEEE 1394 bus, encapsulate logical data packets into IEEE 1394 data packets, and map a traffic class associated with each logical data packet to an IEEE 1394 class of service for the IEEE 1394 data packet into which that logical data packet is encapsulated.
The details of various embodiments of the claimed invention are set forth in the accompanying drawings and the description below. Other features and advantages will become apparent from the description, the drawings, and the claims.
Like reference numbers and designations in the various drawings indicate like elements.
The various nodes of the network 100 communicate using IEEE 1394 bi-directional communication links 104 that support one or more of the IEEE 1394 family of standards (also referred to here as “IEEE 1394 links”). For example, in one implementation of such an embodiment, each of the links 104 supports the IEEE 1394b standard. The network 100 has a rooted half-binary topology in which the topology of the network 100 is pre-configured, in which the relationship among the various nodes 102 is pre-configured. That is, one of the plurality of nodes 102 is pre-selected as a “root” node 102 while the other nodes 102 are “child” nodes. The root node has no “parent” node and at most two child nodes. Each node 102 that is pre-selected as child node has one parent node and at most one child node. A child node that does not, itself, have a child node is also referred to here as a “leaf” node. In the particular embodiment shown in
In such an embodiment, the various protocols and layers defined in the IEEE 1394 family of standards are used to facilitate configuration, control, and/or communication over the network 100 of
In the embodiment shown in
The gateway node 200, in the embodiment shown in
The gateway node 200 comprises multiple subnet interfaces. In the particular embodiment shown in
Each IEEE 1394 subnet interface 206 also comprises an IEEE 1394 link layer 210 that implements packet delivery services for both the asynchronous and isochronous protocols specified in the IEEE 1394 family of standards. For asynchronous protocols, each IEEE 1394 link layer 210 performs packet delivery service between a respective IEEE 1394 physical layer 208 and a respective IEEE 1394 transaction layer 212 (described below). For isochronous protocols, each IEEE 1394 link layer 210 performs packet delivery service directly between a respective IEEE 1394 physical layer 208 and the software 216 (described below) executing on the gateway node 200. Each IEEE 1394 link layer 210 provides isochronous channel cycle control for a respective IEEE 1394 bus 202. Also, Galvanic isolation is usually implemented between a respective IEEE 1394 physical layer 208 and a respective IEEE 1394 link layer 210.
Each IEEE 1394 subnet interface 206 also comprises an IEEE 1394 transaction layer 212 that is used for asynchronous communications over a respective IEEE 1394 bus 202. The IEEE 1394 transaction layer 212 carries out read, write, and lock commands used in the asynchronous protocol as defined in the IEEE 1394 family of standards.
Each IEEE 1394 subnet interface 206 further comprises an IEEE 1394 bus manager 214 that provides overall configuration control of a respective IEEE 1394 bus 202 (including, for example, by optimizing arbitration timing, guaranteeing adequate electrical power for all devices in the bus, determining which device will be the cycle master, assigning isochronous channel ID, and error notifying). In one implementation of such an embodiment, the functionality of the IEEE 1394 bus manager 214 is based on the IEEE 1212 CSR architecture (as specified in the IEEE Std 1212-2001 IEEE Standard for a Control and Status Registers (CSR) Architecture for Microcomputer Buses).
In implementations of the such an embodiment, one or more of the various components of the IEEE 1394 subnet interfaces 202 do not share any hardware (that is, are physically portioned). In one such implementation, at least the IEEE 1394 physical layers 208 for the IEEE 1394 subnet interfaces 202 do not share any hardware. In another implementation, each component of each IEEE 1394 subnet interface 202 shown in
In one implementation of such an embodiment, the IEEE 1394 physical layers 308 the IEEE 1394 subnet interfaces 202 do not share any hardware (that is, the IEEE 1394 physical layers 308 are physically partitioned).
The ETHERNET subnet interface 207 comprises appropriate functionality to implement the ETHERNET communication protocols supported by the ETHERNET subnet interface 207 and communicate over the ETHERNET bus 203. The ETHERNET subnet interface 207 includes, in one implantation, appropriate IEEE 802.3 link layer, media access control layer, and physical layer devices (not shown in
The gateway node 200, in the embodiment shown in
The software 216 comprises a driver for each of the multiple subnet interfaces supported by the gateway node 200. In the particular embodiment shown in
The software 216 comprises common network layer functionality 222 (also referred to here as “layer 3” functionality 222) that interacts with all of the subnet interfaces of the gateway node 200 (that is, the IEEE 1394 subnet interfaces 206 and the ETHERNET subnet interface 207). The common network layer functionality 222 is responsible for transferring variable length data sequences from a source to a destination via one or more IEEE 1394 buses 202 and/or ETHERNET bus 203 while maintaining the quality of service (QoS) requested by higher-level layers of the software 216. The common network layer functionality 222 also performs network routing, flow control, segmentation/desegmentation, and error control functions. The common network layer functionality 222 maps each node on each of the IEEE 1394 buses 202 and the ETHERNET bus 203 of the gateway node 200 to a logical address. In one implementation, the common network layer functionality 222 maintains an appropriate data structure that associates each IEEE 1394 bus identifier known to the gateway node 200 to a respective Internet Protocol version 6 (IPV6) address and uses IPV6 processing to implement network layer functionality (for example, to perform routing and QoS processing). Also, in such an implementation, IPV6 packets are encapsulated in IEEE 1394 packets for communication over the buses 202. In this way, such encapsulated IEEE 1394 packets can be forwarded among the various IEEE 1394 buses 202 and the ETHERNET bus 203.
In one implementation of the embodiment shown in
The common network layer functionality 222 facilities deterministic communication over the IEEE 1394 buses 202 by, among other things, providing control over the layer-3 forwarding performed by the common network layer functionality 222. In one embodiment, a “traffic forwarding rate” parameter is used to regulate layer-3 forwarding performed by the common network layer functionality 222. In one implementation of such an embodiment, the traffic forwarding rate parameter is a determined based on the topology (or other attributes) of the network in which the gateway node 200 is used and/or on the particular applications for which the network is used. In such an implementation, the traffic forwarding rate parameter is determined when such a network is deployed.
The common network layer functionality 222 also manages buffers 226 that are used for buffering data that is communicated over the buses 202 of the gateway node 200. In the particular embodiment shown in
In the particular embodiment shown in
One embodiment of an IEEE 1394 network that makes use of a gateway node 200 shown in
In the particular embodiment shown in
In the particular embodiment shown in
In other embodiments, the gateway node 200 does not implement space partitioning, time partitioning, or both.
The gateway node 200 can act as a different type of node (for example, from a network topology standpoint) for each of the subnet interfaces 206. For example, where the one or more of the IEEE 1394 buses 202 are implemented using a rooted half-binary topology, the gateway node 200 may be, for example, a root node for one or more of the IEEE 1394 buses 202 and a child node or leaf node (that is, a non-root node) for one or more of the other IEEE 1394 buses 202. One implementation of such a network is illustrated in
Also, in such an embodiment, each IPV6 traffic class that is mapped to the IEEE 1394b asynchronous class of service is also mapped to a particular IEEE 1394b asynchronous packet priority. Such mapping is also referred to here as a “TC-to-priority” mapping. One example of a TC-to-priority mapping is illustrated in
By performing the TC-to-COS mapping and the TC-to-priority mapping when encapsulating an IPV6 data packet for transmission on an IEEE 1394b network, the IEEE 1394b processing performed by each of the nodes of an IEEE 1394b network should deliver a type of service similar to the IPV6 traffic class originally specified in the IPV6 data packet requested by the upper layer functionality. In one implementation of such an embodiment implemented using the gateway node 200 of
One bus 402 (also referred to here as “bus A” and shown in
Another bus 402 (also referred to here as “bus B” and shown in
Another bus 402 (also referred to here as “bus C” and shown in
Another bus 402 (also referred to here as “bus D” and shown in
Another bus 402 (also referred to here as “bus E” and shown in
Another bus 402 (also referred to here as “bus F” and shown in
Another bus 402 (also referred to here as “bus G” and shown in
Another bus 402 (also referred to here as “bus H” and shown in
Deterministic communication is implemented in the IEEE 1394 network 400 of
Each type of data that is transmitted in the IEEE 1394b network 400 is pre-assigned a particular IPV6 traffic class. Each IPV6 traffic class used in the network 400 is mapped to a particular IEEE 1394b class of service and each IPV6 traffic class that is mapped to an asynchronous IEEE 1394b class of service is also mapped to a particular IEEE 1394b priority value. The TC-to-COS mappings are assigned so that time-critical data (such as flight-critical data) is pre-assigned to an isochronous IEEE 1394b class of service. Also, in such an embodiment, isochronous IEEE 1394b service bandwidth and time slots are pre-assigned to the various types of time-critical data based on knowledge of the network 400 and the various applications performed by the nodes of the network 400. This pre-assignment (also referred to here as “pre-scheduling”) eliminates the need to perform the IEEE 1394b bandwidth and time-slot contention algorithms to resolve bandwidth and time-slot contentions that otherwise would occur, thereby avoiding the unpredictable time and delays needed for such algorithms to complete.
In such an embodiment, the use of gateway nodes of the type described above in connection with
Although a particular embodiment of an IEEE 1394b network is described here in connection with
A number of embodiments of the invention defined by the following claims have been described. Nevertheless, it will be understood that various modifications to the described embodiments may be made without departing from the spirit and scope of the claimed invention. Accordingly, other embodiments are within the scope of the following claims.
Bai, Haowei, Pavan, Allalaghatta, Thomas, Vicraj T., VanVoorst, Brian
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
6272114, | Feb 14 1997 | Canon Kabushiki Kaisha | Data processing apparatus/method and electronic apparatus with such apparatus/method |
6618361, | Jul 04 1998 | SAMSUNG ELECTRONICS CO , LTD | Method of resetting bus for network connected by IEEE 1394 bus |
6633575, | Apr 07 1999 | Nokia Corporation | Method and apparatus for avoiding packet reordering in multiple-class, multiple-priority networks using a queue |
6693912, | Jun 04 1999 | Oki Electric Industry Co., Ltd. | Network interconnecting apparatus and active quality-of-service mapping method |
6751221, | Oct 04 1996 | Kabushiki Kaisha Toshiba | Data transmitting node and network inter-connection node suitable for home network environment |
6772267, | Feb 18 2000 | SMSC HOLDINGS S A R L | Multi-portal bridge for providing network connectivity |
6775245, | Oct 27 1998 | Seiko Epson Corporation | Data transfer control device and electronic equipment |
6807148, | Sep 03 1999 | Rockwell Collins; Rockwell Collins, Inc | Demand data distribution system |
6820150, | Apr 11 2001 | Microsoft Technology Licensing, LLC | Method and apparatus for providing quality-of-service delivery facilities over a bus |
6996112, | Aug 31 1999 | Canon Kabushiki Kaisha | Information communication system, information communication method, information signal processing device and information signal processing method, and storage medium |
7020076, | Oct 26 1999 | California Institute of Technology | Fault-tolerant communication channel structures |
7133407, | Jan 25 2000 | Fujitsu Limited | Data communications system |
20020035623, | |||
20020061025, | |||
20030018757, | |||
20050030902, | |||
20060002314, | |||
20060153228, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Oct 26 2005 | BAI, HAOWEI | Honeywell International Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 017153 | /0281 | |
Oct 26 2005 | PAVAN, ALLALAGHATTA | Honeywell International Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 017153 | /0281 | |
Oct 26 2005 | VAN VOORST, BRIAN | Honeywell International Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 017153 | /0281 | |
Oct 26 2005 | THOMAS, VICRAJ T | Honeywell International Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 017153 | /0281 | |
Oct 27 2005 | Honeywell International Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Mar 13 2015 | REM: Maintenance Fee Reminder Mailed. |
Aug 02 2015 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Aug 02 2014 | 4 years fee payment window open |
Feb 02 2015 | 6 months grace period start (w surcharge) |
Aug 02 2015 | patent expiry (for year 4) |
Aug 02 2017 | 2 years to revive unintentionally abandoned end. (for year 4) |
Aug 02 2018 | 8 years fee payment window open |
Feb 02 2019 | 6 months grace period start (w surcharge) |
Aug 02 2019 | patent expiry (for year 8) |
Aug 02 2021 | 2 years to revive unintentionally abandoned end. (for year 8) |
Aug 02 2022 | 12 years fee payment window open |
Feb 02 2023 | 6 months grace period start (w surcharge) |
Aug 02 2023 | patent expiry (for year 12) |
Aug 02 2025 | 2 years to revive unintentionally abandoned end. (for year 12) |