This document relates to data communication networks, and in particular to techniques for network topology discover by network nodes.
An area network (e.g., a wide area network (WAN) or a local area network (LAN)) is comprised of multiple network nodes. Information can be communicated among the nodes of the network by sending packets of data according to a protocol (e.g., an Ethernet protocol). In a multi-point network or multi-drop network, the multiple network nodes are connected on a shared network link. It is preferable for the network nodes to be able to automatically determine aspects of the topology of the network configuration.
In the drawings, which are not necessarily drawn to scale, like numerals may describe similar components in different views. Like numerals having different letter suffixes may represent different instances of similar components. The drawings illustrate generally, by way of example, but not by way of limitation, various embodiments discussed in the present document.
To reduce the cost of implementing a switched network such as an Ethernet network, a low complexity multi-point or multi-drop network can be implemented using half-duplex devices.
It is desirable for a multi-drop network to perform self-discovery to determine the configuration. Network discovery may include a reference node (e.g., the main node) discovering medium access control (MAC) addresses of the other nodes (e.g., using Dynamic Host Configuration Protocol (DHCP), Link Layer Discovery Protocol (LLDP), Link Layer Topology Discovery (LLTD), and the like). A network node may designate itself as the reference node, or may designate another node as the reference node. Another aspect of the network discovery is measuring the time delay that it takes for a frame to reach a node of the network. This allows the head node to know how much delay will be required to perform a task by another node after the command for the task is sent to the other node. It also provides information on the position of the other node relative to the reference node. Discovery of where a node is on the network can be very useful (e.g., the harness position of an identified node that is a sensor on the bumper of a car. Identification of the harness position identification enables a single skew of end nodes to be maintained, rather than multiple skews that are each identified by the location where they are installed. For example, a car that has 8 identical sensors in all aspects except for some unique identifier (e.g., unique MAC address or unique serialized number sequence of large enough size to never overlap). Any sensor can be installed in any of the 8 positions and its position can be discovered and mapped to the unique identifier. This allows location-based functionality to be implemented using topology discovery information.
The network discovery can include a calibration phase that includes a measurement mode in which a reference node (e.g., a head node or main node) determines and records the time delay in sending a signal to another network node. The position of the other network node relative to the reference node may also be recorded.
The velocity factor or energy travelling over cables is in the range of 60-80 percent of the speed of light. This means that energy travels over one meter of cable in the range of about 4.1 nanoseconds (4.1 nsec) to 5.5 nsec. A measurement resolution of approximately 4 nsec should be used to detect a difference in cable length of 1 meter, and a measurement resolution of approximately 400 picoseconds (400 psec) should be used to detect a difference in cable length of 10 centimeters (10 cm).
At block 210, the reference node sends a measurement pulse to the nominated node. At block 215, the nominated node detects the measurement pulse while in the discovery mode and returns a response pulse to the reference node in response to receiving the measurement pulse.
At block 220, the reference node receives the response pulse and measures the time delay from the sending of the measurement pulse to the receiving of the response pulse. The pulse widths of the measurement pulse and response pulse are less than the time delay from the sending to the receiving. The time delay determined by the reference node provides the reference node with network topology information.
In the example of
At block 410, the reference node 302 transmits a measurement pulse from the PHY layer and counts the number times the pulse is returned over the TX/RX loop 520 for a predetermined time duration (e.g., one millisecond, or 1 msec). This number of loops completed (TD_MR_HEAD) during the measurement time duration is recorded (e.g., stored in memory) by the reference node.
At block 415, the reference node 302 places the nominated node 304 into the discovery mode. The other nodes on the network remain silent. To place the nominated node 304 in discovery mode, the reference node 302 may transmit a command frame to the nominated node 304 to be measured (e.g., using the MAC address of the node) and the other nodes stay silent upon detecting the command frame. In the discovery mode, the nominated node 304 configures its PHY circuitry into a TX/RX loop like the loop for the network node in the example of
At block 420, the nominated node 304 transmits a measurement pulse and counts the number times the pulse is returned by the TX/TX loop for the predetermined time duration. This number of loops completed (TD_MR_FIND) may be stored by the nominated node 304 and returned to the reference node 302. In variations, the nominated node determines its PHY time delay using the loop count and returns a value of the PHY time delay to the reference node. Other methods can be used to determine the PHY time delay of the nominated node.
At block 615, the nominated node transmits one or more measurement pulses on the TX/RX loop. At block 620, the reference detects and counts the number of times a measurement pulse completes the TX/RX loop within specific time duration. At 625, the reference node determines the PHY time delay using the determined loop count. When one or both of the loop counts and the PHY time delays are determined, the TX/RX loops can be removed by the reference node 302 and the nominated node 304, and the network nodes return to transmission over the shared link 306.
Returning to
At block 430, the reference node 302 determines the time delay (tdistance) to the nominated node 304 using the three counts (TD_MR_HEAD, TD_MR_FIND, TD_MR). The time delay (in nanoseconds, or nsec) can be determined as
where DM_DUR is the variable for the predetermined duration time (e.g., 1 msec), TD_MR is the link segment measurement count in that time, TD_MR_HEAD is the reference node PHY measurement count in that time, and TD MR FIND is the nominated node PHY measurement count in that time.
The measurement procedure may be repeated for all other network nodes identified in discovery, such as by looping back to block 410 or looping back to block 415, and reusing the determined TD_MR_HEAD measurement in the time delay calculation for the other network nodes. The time delay tdistance for each network node can be used by the reference node 302 to determine when a task is completed by knowing the transmit time delay involved with sending a frame to another network node and how long it will take that network node to process the frame and complete the task.
In the example of
TDELAY_TXA+TDELAY_BINA+TDELAY_CABLE+TDELAY_BINB+TDELAY_RXB+TDELAY_TXB+TDELAY_BINB+TDELAY_CABLE+TDELAY_RXA+(TCLOCK_DELAY−(TDELAY_RXB+TDELAY_TXB)),
where (TCLOCK_DELAY−(TDELAY_RXB+TDELAY_TXB)) is the time delay due to processing internal to Node B.
The TCLOCK_DELAY comes from assuming that there is a four clock period delay in addition to the delay through the transceiver 310 of Node B. If the node clock is a 25 Mega Hertz (25 MHz) clock, TCLOCK_DELAY (the four clock period delay) is 160 nsec. The BIN delay (TDELAY_BINA or TDELAY_BINB) is a delay for the circuit components between the connector and the integrated circuit (IC) that can change depending on factors of the implementation, such as the application and the IC vendor etc. The delay (TDELAY_BINX) is a generic delay term that covers the delay for all the components of the board interface network circuitry of the node. The BIN delay can be treated in different ways in the calculations. The BIN delay may be assumed to be small enough to be negligible, the BIN delay may be treated as a fixed error in the system, or the BIN delay may be a value given to each node (e.g., a value for each node stored in memory of the node) to be added to the (TDELAY_RXB+TDELAY_TXB) term before being subtracted from 160 nsec in the (160 nsec−(TDELAY_RXB+TDELAY_TXB)) term.
At block 805, the reference node (e.g., Node A in
At block 810, the reference node self-calibrates an internal delay (e.g., a PHY time delay). To self-calibrate, the reference node enters the measurement mode and configures its internal hardware into a TX/RX loop 520 as shown in the example of
As part of the self-calibration, the host device of the reference node 302 sends a pulse into the transmitter (TX) of the transceiver 310 and waits for a receive pulse to be received by the receiver (RX) of the transceiver 310 via the internal TX/RX loop 520. The host device determines how long it takes for the receiver RX to see the pulse. The difference in time between sending the TX pulse and receiving the RX pulse is measured. The internal delay circuitry 512 of the reference node 302 may be adjusted (e.g., by adjusting a delay line of the delay circuitry) accordingly to make this time difference a predetermined time duration. This desired predetermined time duration may be a parameter stored (e.g., in memory) in the reference node 302. In some aspects, the measurement may be taken multiple times and averaged if there is a variation in the measurements.
At block 815, the reference node nominates or indicates a node for measurement. To nominate a node, the reference node may send a command frame that causes the nominated node to enter the discovery mode. The other nodes on the network remain silent. The nominated node 304 self-calibrates its internal delay using the measurement mode performed by the reference node by configuring itself into a TX/RX loop as in the example of
At block 820, the time delay between the reference node 302 and the nominated node 304 is measured after the two nodes are self-calibrated. A measurement pulse is sent from the reference node 302 to the nominated node 304, the reference node 302 receives a response pulse back from the nominated node 304, as in the ping-pong communication described regarding the method example of
The measurement procedure may be repeated for all the nodes with MAC addresses identified in discovery. The time delay for each node can be used by the reference node 302 to determine the position of the nominated nodes relative to the reference node 302 and thereby the reference node 302 determines the network topology. The time delay can also be used by the reference node 302 to determine when a task is completed by another node (e.g., a subordinate node) by knowing how long it will take to send a frame to the other node and how long it will take the other node to process the frame and complete the task. Although the reference node 302 has been described as measuring the time delay any network node may perform the measurements if desired.
The methods described allow for self-discovery of the topology of a multi-drop network by nodes of the network. If the end nodes of the multi-drop network are known and the intermediate nodes of the multi-drop network are already calibrated, then a faster topology discovery may be performed.
The difference in time when Node C would have sent its reply pulse and when Node C receives the reply pulse sent by Node B corresponds to 2× the distance between Node A and Node B. This could be used as a reliability check on the measurement by the reference node on the distance between Node A and Node B. This gives additional accuracy and a redundant measurement which may be useful in functional safety applications. Also, if the time delay between Node A and Node C is TAC, the time delay between Node A and Node B is TAB and the longest time delay is Tlongest, then 2*TAC=2*Tlongest−2*TAB.
The devices, systems and methods described herein allow for network topology discovery to be performed in a digital fashion without the need for accurate measurement pulses with tightly controlled edges. Discovery of the topology of a multi-drop network is provided by a reference node measuring time delay to other nodes in the network. The reference node may measure the internal delay of the nominated nodes. This removes the need for the measured nodes to have an accurate clock reference. This allows lower accuracy clock sources and delay blocks to be used in the nominated nodes compared to networks that use other methods of network topology discovery. This reduces the complexity and cost for time delay calibration. The examples described herein have no clock crystal accuracy requirement and consequently may have a lower bill-of-material (BOM) to implement.
Aspect 1 can include subject matter (such as a network node) including physical layer (PHY) circuitry for connecting the network node to a shared network link of the multi-drop network; and processing circuitry operatively coupled to the PHY circuitry. The processing circuitry is configured to designate a reference node and a nominated node from among the multiple network nodes, configure PHY circuitry of the reference node into a reference node transmit/receive (TX/RX) loop internal to the reference node that includes a PHY transceiver of the reference node, initiate sending a measurement pulse on the reference node TX/RX loop and determine a reference PHY time delay using a count of the reference node TX/RX loops completed during a time duration, configure PHY circuitry of the nominated node PHY circuitry into a nominated node transmit/receive (TX/RX) loop internal to the nominated node that includes a PHY transceiver of the nominated node, initiate sending a measurement pulse on the nominated node TX/RX loop and determine a nominated PHY time delay using a count of the nominated node TX/RX loops completed during a time duration, initiate sending multiple measurement pulses from the reference node to the nominated node via the shared network link, detect response pulses received via the shared network link in response to the measurement pulses, and determine a network topology of the reference node and the nominated node using the response pulses.
In Aspect 2, the subject matter of Aspect 1 optionally includes the processing circuitry of the network node further configured to measure the delay of the nominated node by counting the number of pulses seen during a fixed time interval while the nominated node is looping a pulse.
In Aspect 3, the subject matter of one or both of Aspects 1 and 2 optionally include the PHY circuitry of the reference node and the nominated node including a delay circuit. The processing circuitry of the network node is configured to configure the reference node and nominated node TX/RX loops to include the respective PHY transceiver and delay circuit, determine the PHY time delay of the reference node and the nominated node by initiating sending of PHY delay measurement pulses and detecting a return of the PHY delay measurement pulse by the reference and nominated TX/RX loops, and including the respective PHY time delays in the determined transmit time delay.
In Aspect 4, the subject matter of Aspect 3 optionally includes the processing circuitry of the network node configuring each of the reference node and nominated node TX/RX loops to include the PHY transceiver, the delay circuit, and board interface network (BIN) circuitry that connects the PHY transceiver of the respective node to the shared network link.
In Aspect 5, the subject matter of Aspect 3 optionally includes a delay circuit that adds a time delay to cause the PHY time delay to be longer than a pulse width of the measurement pulse.
In Aspect 6, the subject matter of one or any combination of Aspects 1-5 optionally includes the processing circuitry of the network node configured to determine a value of the PHY time delay of the nominated node; and include the PHY time delay of the nominated node in the determined transmit time delay.
In Aspect 7, the subject matter of one or any combination of Aspects 1-6 optionally includes the PHY circuitry of the reference node and the nominated node including a delay circuit. The processing circuitry of the network node is configured to configure the PHY circuitry into an internal transmit/receive (TX/RX) loop that includes a PHY transceiver and the delay circuit, calculate a PHY time delay, and adjust the delay circuit to set the PHY time delay to a predetermined PHY time delay.
In Aspect 8, the subject matter of one or any combination of Aspects 1-7 optionally includes the processing circuitry of the network node configured to detect another response pulse from a listening node of the network; and determine relative position of the nominated node and listening node to the network node.
Aspect 9 includes subject matter (such as a method of operating a multi-drop network including multiple network nodes connected to a shared network link) or can optionally be combined with one or any combination of Aspects 1-8 to include such subject matter, comprising configuring PHY circuitry of a reference node of the network into a transmit/receive (TX/RX) loop internal to the reference node, determining a PHY time delay of the reference node by sending one or more measurement pulses over the TX/RX loop and counting the number of TX/RX loops completed during a time duration, sending, by the reference node to a nominated node of the network, a command for the nominated node to enter a discovery mode, sending multiple measurement pulses to the nominated node from the reference node, returning response pulses from the nominated node to the reference node in response to the measurement pulses, and determining, by the reference node, a network topology of the reference node and the nominated node using the response pulses.
In Aspect 10, the subject matter of Aspect 9 optionally includes transmitting one or more measurement pulses by the reference node and determining a count of times the pulses are returned by the nominated node during a time duration, and wherein the determining the network topology includes determining a transmit time delay from the reference node to the nominated node using the determined count and the determined PHY time delay.
In Aspect 11, the subject matter of Aspect 10 optionally includes calculating, by the reference node, a time delay of physical layer (PHY) circuitry of the nominated node; and wherein the determining the transmit time includes determining the transmit time delay using the calculated PHY time delay of the nominated node.
In Aspect 12, the subject matter of Aspect 11 optionally includes the nominated node configuring PHY circuitry of the nominated node into a TX/RX loop; and the nominated node transmitting measurement pulses on the TX/RX loop to measure the PHY time delay for the reference node.
In Aspect 13, the subject matter of Aspect 12 optionally includes the reference node detecting and counting the number of TX/RX loops completed within a measurement time.
In Aspect 14, the subject matter of Aspect 12 optionally includes the nominated node counting the number of TX/RX loops completed within a measurement time and sending the count to the reference node.
In Aspect 15, the subject matter of one or any combination of Aspects 12-14 optionally includes the nominated node configuring the PHY circuitry into a TX/RX loop that includes a PHY transceiver, a delay circuit, and a board interface network (BIN) circuitry that connects the PHY transceiver to the shared network link, and wherein the calculated PHY time delay includes a time delay of the PHY transceiver, a time delay of the delay circuit, and a time delay of the BIN circuitry.
In Aspect 16, the subject matter of one or any combination of Aspects 12-15 optionally includes configuring, by the nominated node in response to the command, PHY circuitry of the nominated node into a TX/RX loop that includes the PHY transceiver and a delay circuit; calculating, by the nominated node, a time delay of the delay circuit; and setting, by the nominated node, the time delay of the delay circuit to a predetermined time delay.
In Aspect 17, the subject matter of one or any combination of Aspects 9-16 optionally includes the reference node including, in the TX/RX loop, a PHY transceiver and one or more of a coarse delay circuitry and a board interface network (BIN) circuitry that connects the PHY transceiver to the shared network link.
In Aspect 18, the subject matter of one or any combination of Aspects 9-17 optionally includes the reference node setting the PHY time delay of the reference node to a predetermined PHY time delay.
In Aspect 19, the subject matter of one or any combination of Aspects 9-19 optionally includes detecting the measurement pulse by a listening node of the network; detecting, by the listening node, a response pulse from the nominated node; and calculating, by the listening node, a time delay between the nominated node and the listening node in response to detecting the measurement pulse and the response pulse.
In Aspect 20, the subject matter of Aspect 19 optionally includes determining, by the listening node, relative position of the nominated node and listening node to the reference node.
Aspect 21 includes subject matter (or can optionally be combined with one or any combination of Aspects 1-20 to include such subject matter) such as a computer-readable storage medium containing instructions, which when performed by processing circuitry of a reference network node of a multi-drop network, cause the reference node to perform actions including: configuring PHY circuitry of a reference node of the network into a transmit/receive (TX/RX) loop internal to the reference node; determining a PHY time delay of the reference node by sending one or more measurement pulses over the TX/RX loop and counting the number of TX/RX loops completed during a time duration; sending, by the reference node to a nominated node of the network, a command for the nominated node to enter a discovery mode; sending multiple measurement pulses to the nominated node from the reference node; returning response pulses from the nominated node to the reference node in response to the measurement pulses; and determining, by the reference node, a network topology of the reference node and the nominated node using the response pulses.
In Aspect 22, the subject matter of Aspect 21 optionally includes the computer-readable storage medium further including instructions that cause the reference node to perform actions including: calculating a time delay from sending the measurement pulses to receiving the response pulses; receiving from the nominated node in response to the command, a PHY time delay of the nominated node; and determining a transmit time delay from the reference node to the nominated node using the time delay from sending the measurement pulse to receiving the measurement pulse, the PHY time delay of the reference node, and the PHY time delay of the nominated node.
These non-limiting Aspects can be combined in any permutation or combination. The above detailed description includes references to the accompanying drawings, which form a part of the detailed description. The drawings show, by way of illustration, specific embodiments in which the invention can be practiced. These embodiments are also referred to herein as “examples.” All publications, patents, and patent documents referred to in this document are incorporated by reference herein in their entirety, as though individually incorporated by reference. In the event of inconsistent usages between this document and those documents so incorporated by reference, the usage in the incorporated reference(s) should be considered supplementary to that of this document; for irreconcilable inconsistencies, the usage in this document controls.
In this document, the terms “a” or “an” are used, as is common in patent documents, to include one or more than one, independent of any other instances or usages of “at least one” or “one or more.” In this document, the term “or” is used to refer to a nonexclusive or, such that “A or B” includes “A but not B,” “B but not A,” and “A and B,” unless otherwise indicated.
The above description is intended to be illustrative, and not restrictive. For example, the above-described examples (or one or more aspects thereof) may be used in combination with each other. Other embodiments can be used, such as by one of ordinary skill in the art upon reviewing the above description. The Abstract is provided to comply with 37 C.F.R. § 1.72(b), to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the described aspects. Also, in the above Detailed Description, various features may be grouped together to streamline the disclosure. This should not be interpreted as intending that an unclaimed disclosed feature is essential to any aspect. Rather, inventive subject matter may lie in less than all features of a particular disclosed embodiment.
This application claims the benefit of priority to U.S. Provisional Application Ser. No. 63/170,080, filed Apr. 2, 2021, and U.S. Provisional Application Ser. No. 63/170,093, filed Apr. 2, 2021, which are hereby incorporated by reference herein in their entirety.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2022/058715 | 3/31/2022 | WO |
Number | Date | Country | |
---|---|---|---|
63170080 | Apr 2021 | US | |
63170093 | Apr 2021 | US |