WO2011074529A1 - Time synchronization system, slave node, time synchronization method, and program for time synchronization - Google Patents
Time synchronization system, slave node, time synchronization method, and program for time synchronization Download PDFInfo
- Publication number
- WO2011074529A1 WO2011074529A1 PCT/JP2010/072358 JP2010072358W WO2011074529A1 WO 2011074529 A1 WO2011074529 A1 WO 2011074529A1 JP 2010072358 W JP2010072358 W JP 2010072358W WO 2011074529 A1 WO2011074529 A1 WO 2011074529A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- time
- delay
- node
- master node
- slave node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
- H04J3/0661—Clock or time synchronisation among packet nodes using timestamps
- H04J3/0667—Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0858—One way delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
Definitions
- the present invention relates to a technique for synchronizing time between nodes that perform communication.
- This application claims priority based on Japanese Patent Application No. 2009-287804 for which it applied on December 18, 2009, and uses the content here.
- time stamp information is exchanged by exchanging messages between master / slave nodes.
- the slave node calculates a time lag (Offset) of the slave node with respect to the master node from the message transmission / reception times at the master and the slave node. Then, the slave node corrects the time of the slave node based on this Offset, and synchronizes the time of the slave node with the master node.
- Offset time lag
- IEEE 1588 assumes that the transmission delay (MS_Delay) from the master node to the slave node is equal to the transmission delay (SM_Delay) from the slave node to the master node in order to obtain Offset.
- MS_Delay transmission delay
- SM_Delay transmission delay
- IEEE 1588 version 2 defines the Transparent Clock (TC) function.
- IEEE 1588 using this TC function is referred to as IEEE 1588v2 w / TC.
- IEEE P1588TM / D1 "Draft Standard for Precision, Clock, Synchronization, Protocol, for Networked Measurement, and Control Systems," June, 2007.
- an object of the present invention is to provide a technique for realizing highly accurate time synchronization with reduced costs.
- the present invention is a time synchronization system that includes a master node and a slave node that communicate with each other, and synchronizes the time at the slave node with the time at the master node, wherein the master node transmits a control message to the slave node.
- a receiver that receives a control message from the slave node, wherein the slave node transmits a control message to the master node, and a receiver that receives the control message from the master node
- a delay measurement unit that measures a delay amount representing a queuing delay received in a communication path by a control message transmitted from the master node to the slave node, and a propagation delay amount between the master node and the slave node Propagation delay measuring unit for measuring the delay and the delay measurement Using the delay amount measured by the propagation delay measurement unit and the propagation delay amount measured by the propagation delay measurement unit, the difference between the time at the slave node and the time at the master node is calculated, and the time at the slave node is A time synchronization system including a time synchronization control unit that synchronizes with a time in a master node is provided.
- the present invention is also a slave node that synchronizes time with a master node that includes a transmission unit that transmits a control message to a slave node and a reception unit that receives a control message from the slave node, A transmission unit that transmits a control message to a node, a reception unit that receives the control message from the master node, and a queuing delay that the control message transmitted from the master node to the slave node receives in a communication path A delay measuring unit for measuring a delay amount, a propagation delay measuring unit for measuring a propagation delay amount between the master node and the slave node, a delay amount measured by the delay measuring unit, and the propagation delay measuring unit And the time at the slave node and the mass It calculates a difference between the time at node provides a slave node and a time synchronization control unit for synchronizing the time at the master node times in the slave node.
- the present invention is also a time synchronization method performed by a time synchronization system that includes a master node and a slave node that communicate with each other, and that synchronizes the time at the slave node with the time at the master node, wherein the master node is connected to the slave node.
- a transmitting step of transmitting a control message a receiving step of the master node receiving a control message from the slave node, a transmitting step of the slave node transmitting a control message to the master node, and the slave node A reception step of receiving the control message from the master node, and a delay in which the slave node measures a delay amount representing a queuing delay received in a communication path by the control message transmitted from the master node to the slave node.
- a propagation delay measuring step in which the slave node measures a propagation delay amount between the master node and the slave node; a delay amount measured by the slave node in the delay measuring step; and the propagation Time synchronization control for calculating the difference between the time at the slave node and the time at the master node using the propagation delay amount measured at the delay measurement step, and synchronizing the time at the slave node with the time at the master node And a time synchronization method comprising the steps.
- the present invention also includes a master node and a slave node that communicate with each other, and corresponds to a first computer corresponding to the master node and a slave node as a time synchronization system that synchronizes the time in the slave node with the time in the master node.
- a time synchronization program for operating a second computer a transmitting step for transmitting a control message to the slave node to the first computer, and a receiving step for receiving a control message from the slave node To the second computer, a transmission step of transmitting a control message to the master node, a reception step of receiving the control message from the master node, and from the master node to the slave node
- a delay measuring step for measuring a delay amount representing a queuing delay received by the control message in the communication path a propagation delay measuring step for measuring a propagation delay amount between the master node and the slave node, and the delay measurement.
- the difference between the time at the slave node and the time at the master node is calculated using the delay amount measured at the step and the propagation delay amount measured at the propagation delay measurement step, and the time at the slave node is calculated.
- a time synchronization program for executing a time synchronization control step for synchronizing with a time in the master node.
- the present invention makes it possible to realize highly accurate time synchronization with reduced costs.
- FIG. 3 is a sequence diagram showing a communication sequence by an IEEE 1588 time synchronization algorithm. It is a figure showing the outline of the time synchronization algorithm of IEEE1588. It is a figure showing the outline of the time synchronization algorithm of IEEE1588v21w / TC.
- 1 is a system configuration diagram of a communication system. It is a functional block diagram showing the functional structure of a master node. It is a functional block diagram showing the functional structure of a slave node. It is a functional block diagram showing the detailed functional structure of a delay measurement part. It is the schematic showing the outline
- FIG. 1 it is a sequence diagram showing a specific example of time synchronization processing by the communication system in the initial mode.
- FIG. 1 is a sequence diagram showing a communication sequence according to the IEEE 1588 time synchronization algorithm.
- the master node 100 and the slave node 200 perform bidirectional communication, and the slave node 200 periodically synchronizes the time with the master node 100.
- the master node 100 periodically transmits a Sync message to the slave node 200 (step S100).
- the master node 100 records the transmission time (hereinafter referred to as “Sync transmission time”) Tm (0) of this Sync message (step S101).
- the master node 100 transmits a Follow_up message to the slave node 200 (step S102).
- the master node 100 stores the Sync transmission time Tm (0) in the Follow_up message.
- the slave node 200 When the slave node 200 receives the Sync message, the reception time of the Sync message (hereinafter referred to as “Sync reception time”) Ts (0) is recorded using this reception process as a trigger (step S103).
- the slave node 200 receives the Follow_up message, extracts and records the Sync transmission time Tm (0) stored in the Follow_up message (step S104).
- the slave node 200 transmits a Delay_Request message to the master node 100 (step S105). Then, the slave node 200 records the transmission time of this Delay_Request message (hereinafter referred to as “Delay transmission time”) Ts (1) (step S106).
- the master node 100 When receiving the Delay_Request message, the master node 100 records the reception time of the Delay_Request message (hereinafter referred to as “Delay reception time”) Tm (1) using this reception process as a trigger (step S107). Next, the master node 100 transmits a Delay_Response message to the slave node 200 (step S108). At this time, the master node 100 stores the Delay reception time Tm (1) in the Delay_Response message.
- Delay reception time the reception time of the Delay_Request message
- the slave node 200 When receiving the Delay_Response message, the slave node 200 extracts and records the Delay reception time Tm (1) stored in the Delay_Response message (step S109). Based on the Sync transmission time Tm (0) and the Sync reception time Ts (0), the slave node 200 calculates the time at the master node 100 (hereinafter referred to as “master time”) and the time at the slave node 200 from the following Expression 1. The difference MS_Diff from (hereinafter referred to as “slave time”) is calculated.
- the slave node 200 obtains a difference between the slave time and the master time from the following formula 2 based on the Delay transmission time Ts (1) and the Delay reception time Tm (1).
- MS_Delay represents a transmission delay from the master node 100 to the slave node 200
- SM_Delay represents a transmission delay from the slave node 200 to the master node 100
- Offset represents a time offset (advance) of the slave node 200 with respect to the master node 100.
- the transmission delays MS_Delay and SM_Delay are composed of a propagation delay between the master node 100 and the slave node 200 and a queuing delay that occurs at a relay node on the network between the master node 100 and the slave node 200.
- the slave node 200 calculates Offset based on Equation 5, and corrects the slave time based on Offset to synchronize the slave time with the master time.
- the above is the time synchronization algorithm defined in IEEE1588.
- FIG. 2A is a diagram showing an outline of the time synchronization algorithm of IEEE1588.
- FIG. 2B is a diagram showing an outline of the IEEE 1588v2 w / TC time synchronization algorithm.
- D1 to D6 in FIGS. 2A and 2B represent queuing delays in transmissions in the directions indicated by arrows in the drawings, which occur in the relay nodes Re1 to Re3, respectively.
- each relay node Re1 to Re3 has a TC function.
- the TC function is a function that measures the stay time in the node of the packet of the control message (IEEE 1588 message), writes the time in a predetermined field of the control packet, and cumulatively adds it.
- the IEEE 1588 message is specifically a Sync message and a Delay_Request message.
- IEEE1588v2 w / TC the stay time at the relay nodes Re1 to Re3 is cumulatively added to the message every time the control packet passes through the relay nodes Re1 to Re3 by the TC function.
- the slave node 200 can accurately obtain the sum of the queuing delays that have occurred in the relay nodes Re1 to Re3 in the transmission from the master node 100 to the slave node 200.
- the master node 100 can accurately obtain the sum of the queuing delays that have occurred in the relay nodes Re1 to Re3 in the transmission from the slave node 200 to the master node 100.
- the total queuing delay and propagation delay in transmission from the master node 100 to the slave node 200 are MS_Q and MS_P, respectively, and the total queuing delay and propagation delay in transmission from the slave node 200 to the master node 100 are SM_Q, respectively.
- SM_P, Equation 1 and Equation 2 described above can be transformed into Equation 6 and Equation 7 below.
- MS_Diff MS_P + MS_Q + Offset ⁇ ⁇ ⁇ Formula 6
- SM_Diff SM_P + SM_Q-Offset ⁇ ⁇ ⁇ Equation 7
- Equation 6 and Equation 7 can be transformed as Equation 8 and Equation 9 below.
- MS_Diff Propagation_Delay + MS_Q + Offset ⁇ ⁇ ⁇ Formula 8
- SM_Diff Propagation_Delay + SM_Q-Offset ⁇ ⁇ ⁇ Equation 9
- Offset ⁇ (MS_Diff-SM_Diff)-(MS_Q-SM_Q) ⁇ / 2 Equation 10
- IEEE1588 (hereinafter also referred to as “Pure IEEE1588”), which is not IEEE1588v2 w / TC, assumes that the sum of the queuing delays occurring at each relay node Re1 to Re3 is equal in both directions. It was. That is, the total queuing delay in transmission from the master node 100 to the slave node 200 (D1 + D2 + D3) and the total queuing delay in transmission from the slave node 200 to the master node 100 (D4 + D5 + D6) was assumed to be equal. However, since they are not actually equal, the error has caused the deterioration of synchronization accuracy.
- IEEE 1588v2 w / TC measures the total queuing delay at each relay node Re1 to Re3 by the TC function implemented on each relay node Re1 to Re3. Then, the slave node 200 accurately acquires the total value (D1 + D2 + D3) of the queuing delay in the transmission from the master node 100 to the slave node 200. Further, the master node 100 accurately acquires the total value (D4 + D5 + D6) of the queuing delay in the transmission from the slave node 200 to the master node 100. With this operation, IEEE 1588v2 w / TC enables highly accurate time synchronization. The above is the time synchronization algorithm defined in IEEE1588v2 w / TC.
- FIG. 3 is a system configuration diagram of the communication system 1.
- the communication system 1 includes a master node 300, slave nodes 400 (400a to 400c), and a packet network PN.
- a master node 300 includes a master node 300, slave nodes 400 (400a to 400c), and a packet network PN.
- slave nodes 400 400a to 400c
- PN packet network
- FIG. 4 is a functional block diagram showing the functional configuration of the master node 300.
- the master node 300 includes a clock generation unit 301, a master clock unit 302, a packet generation unit 303, a packet transmission unit 304, and a packet reception unit 305.
- the master node 300 includes, for example, a CPU (Central Processing Unit) connected via a bus, a memory, an auxiliary storage device, a communication interface, and the like, and is configured as a device including each of the above functional units by executing a time synchronization program. Also good.
- a CPU Central Processing Unit
- the clock generation unit 301 generates a reference clock for the master node 300. Specifically, the clock generation unit 301 determines a time width of 1 second in the master node 300. Note that the clock generation unit 301 may exist outside the master node 300. In this case, the master node 300 is configured to reliably acquire a clock from the clock generation unit 301 installed outside.
- the master clock unit 302 determines the time (master time) of the master node 300 according to the reference clock generated by the clock generation unit 301. Specifically, the master clock unit 302 determines what hours, minutes, and seconds in the master node 300.
- the packet generation unit 303 generates an IEEE 1588 message and sends it to the packet transmission unit 304.
- the IEEE 1588 messages are specifically the above-mentioned Sync message, Follow_up message, and Delay_Response message.
- the packet generation unit 303 periodically transmits a Sync message to the slave node 400 via the packet transmission unit 304, and simultaneously records the Sync transmission time Tm (0) with reference to the master clock unit 302. Further, after transmitting the Sync message, the packet generation unit 303 generates a Follow_up message storing the Sync transmission time Tm (0), and transmits it to the slave node 400 via the packet transmission unit 304.
- the packet generation unit 303 generates a Delay_Response message storing the reception time (Delay reception time) Tm (1) of the Delay_Request message received by the packet reception unit 305, and sends it to the slave node 400 via the packet transmission unit 304. Send.
- the Delay_Response message is a reply to the Delay_Request message transmitted from the slave nodes 400a to 400c. Therefore, the packet generation unit 303 manages the Delay reception time Tm (1) stored in the Delay_Response message for each slave node 400a to 400c that is the source of the Delay_Request message.
- the packet transmission unit 304 transmits the Sync message, Follow_up message, and Delay_Response message received from the packet generation unit 303 to the slave nodes 400a to 400c via the packet network PN. Note that the packet transmission unit 304 broadcasts a Sync message and Follow_up message to the slave nodes 400a to 400c. The packet transmission unit 304 unicasts the Delay_Response message to the slave nodes 400a to 400c that are the transmission sources of the Delay_Request messages.
- the packet receiving unit 305 receives a Delay_Request message sent from the slave nodes 400a to 400c via the packet network PN. Then, the packet receiver 305 transfers the received Delay_Request message to the packet generator 303.
- FIG. 5 is a functional block diagram illustrating a functional configuration of the slave node 400.
- Each of the slave nodes 400a to 400c has the same configuration as that of the slave node 400.
- the slave node 400 includes a packet reception unit 401, a PLL unit 402, a delay measurement unit 403, a slave clock unit 404, a time synchronization control unit 405, and a packet transmission unit 406.
- the slave node 400 may include, for example, a CPU, a memory, an auxiliary storage device, a communication interface, and the like connected by a bus, and may be configured as a device including the above-described functional units by executing a time synchronization program.
- the packet receiving unit 401 receives the Sync message, Follow_up message, and Delay_Request message transmitted from the master node 300 via the packet network PN, and transfers them to the time synchronization control unit 405.
- the packet reception unit 401 transfers only the Sync message to the PLL unit 402 and the delay measurement unit 403.
- the PLL unit 402 includes a phase comparator 407, an LPF 408, a PI controller 409, a VCO 410, and a counter 411.
- a configuration of the PLL unit 402 is merely an example. That is, the PLL unit 402 calculates the difference between the time generated from its own clock and the time received from the master node 300, and any other configuration can adjust its own clock based on the difference. Such a configuration may be adopted.
- the phase comparator 407 calculates a difference signal between the reception time stamp stored in the Sync message packet received from the packet reception unit 401 and the time stamp generated by the counter 411. Then, the phase comparator 407 outputs a differential signal representing the calculation result to the LPF 408.
- the LPF 408 leveles the differential signal output by the phase comparator 407, suppresses jitter and noise, and outputs the result to the PI controller 409.
- the PI controller 409 generates a control signal such that the leveled difference signal finally becomes zero, and outputs the control signal to the VCO 410.
- the VCO 410 generates a clock having a frequency determined by the control signal output from the PI controller 409 and outputs the clock to the counter 411. In addition, the VCO 410 decreases the counter value of the packet counter of the delay measurement unit 403 according to the generated frequency clock.
- the counter 411 generates a time stamp based on the clock generated by the VCO 410 and transfers the time stamp to the phase comparator 407.
- the delay measurement unit 403 includes a packet counter.
- the delay measuring unit 403 calculates the delay amount MS_Q of the incoming Sync message by monitoring the increase / decrease state of the counter value of the packet counter. Then, the delay measurement unit 403 notifies the time synchronization control unit 405 of the calculated delay amount MS_Q. Note that the delay amount MS_Q represents the delay amount of the queuing delay received while the Sync message is transferred from the master node 300 to the slave node 400 as described above.
- FIG. 6 is a functional block diagram illustrating a detailed functional configuration of the delay measurement unit 403.
- the delay measurement unit 403 includes a packet counter 501, a counter maximum value monitor unit 502, an arrival counter value monitor unit 503, and a delay calculation unit 504.
- the counter maximum value monitoring unit 502 and the arrival time counter value monitoring unit 503 monitor the counter value of the packet counter 501 and notify the delay calculation unit 504 of the results to be described later.
- the delay calculation unit 504 calculates the delay amount MS_Q using information notified from the counter maximum value monitor unit 502 and the arrival time counter value monitor unit 503. Then, the delay calculation unit 504 notifies the time synchronization control unit 405 of the calculated delay amount MS_Q.
- the packet counter 501 Each time the packet counter 501 receives a Sync message from the packet receiver 401, the packet counter 501 increases the counter value by a predetermined value. Further, the packet counter 501 decreases the counter value in accordance with the frequency of the clock output from the VCO 410. The reason why the counter value of the packet counter 501 decreases according to the clock frequency of the VCO 410 is that the Sync message packet received by the packet receiving unit 401 is read from the buffer of the received packet according to the clock frequency of the VCO 410.
- the counter maximum value monitor unit 502 detects the maximum value of the counter value of the packet counter 501. Specifically, the counter maximum value monitoring unit 502 detects the maximum value within a monitoring period of a predetermined time (for example, 10 seconds). Hereinafter, the maximum value of the counter in the monitoring period i is expressed as a counter maximum value P (i). When the monitoring period i ends, the counter maximum value monitoring unit 502 notifies the delay calculating unit 504 of the counter maximum value P (i) that is the detection result.
- the arrival time counter value monitoring unit 503 detects the arrival time counter value C (i, n) when the n-th Delay_Request message packet arrives in the monitoring period i.
- the arrival time counter value monitoring unit 503 detects the counter value C (i, n) every time the Delay_Request message packet arrives, and notifies the delay calculation unit 504 of the detection result.
- the delay calculation unit 504 uses the counter value C (i, n) and the counter maximum value P (i) each time the counter value C (i, n) is received from the arrival counter value monitoring unit 503, and the following equation is obtained. 11 is used to calculate the delay amount MS_Q.
- MS_Q P (i-1)-C (i, n) Equation 11
- P (i-1) is the maximum counter value in the previous monitoring period.
- the delay calculation unit 504 notifies the time synchronization control unit 405 of the delay amount MS_Q every time the delay amount MS_Q is calculated.
- FIG. 7 is a schematic diagram showing an outline of the operation of the packet counter 501.
- the vertical axis represents the counter value, and represents a high counter value from the bottom to the top.
- the horizontal axis represents time and progresses from left to right.
- a plurality of broken lines arranged at equal intervals extending in the vertical direction indicate the timing at which a Sync message packet is received when no queuing delay occurs.
- An arrow pointing upward indicates the timing at which a Sync message packet is actually received.
- the packet counter 501 increases the counter value by a fixed value (CV in FIG. 7). Thereafter, since the received packet is periodically read out by the processing unit at the subsequent stage, the counter value decreases at a constant pace.
- the counter value takes the maximum value Cmax.
- the packet counter 501 the total number of bits received matches the total number of bits read periodically according to the clock frequency of the VCO 410.
- the counter value is smaller than Cmax. At this time, the difference between the maximum value Cmax and the counter value is equivalent to the delay amount of the generated queuing delay.
- the slave clock unit 404 determines the time of the slave node 400 (slave time) according to the clock generated by the VCO 410.
- the time synchronization control unit 405 includes transmission / reception time information (Sync transmission time Tm (0), Sync reception time Ts (0), Delay transmission time Ts (1), Delay reception time Tm (1)) of the Sync message and Delay_Request message, Using the delay amount MS_Q, an offset which is a time lag of the slave node 400 with respect to the master node 300 is obtained. Then, the time synchronization control unit 405 corrects the time of the slave clock unit 404 (slave time). Also, the time synchronization control unit 405 generates a Delay_Request message and sends it to the packet transmission unit 406. The packet transmission unit 406 transmits the Delay_Request message received from the time synchronization control unit 405 to the master node 300 via the packet network PN.
- FIG. 8 is a functional block diagram illustrating a detailed functional configuration of the time synchronization control unit 405.
- the time synchronization control unit 405 includes a packet analysis unit 701, a packet generation unit 702, an RTT calculation unit 703, a propagation delay monitor unit 704, an offset calculation unit 705, and a time adjustment unit 706.
- the packet analysis unit 701 receives a Sync message, Follow_up message, and Delay_Response message from the packet reception unit 401.
- the packet analysis unit 701 refers to the slave clock unit 404 and acquires the Sync reception time Ts (0).
- the packet analysis unit 701 notifies the RTT calculation unit 703 and the offset calculation unit 705 of the acquired Sync reception time Ts (0).
- the packet analysis unit 701 when receiving the Follow_up message, extracts the Sync transmission time Tm (0) stored in the Follow_up message. Then, the packet analysis unit 701 notifies the extracted Sync transmission time Tm (0) to the RTT calculation unit 703 and the offset calculation unit 705, and sends a generation trigger for a Delay_Request message to the packet generation unit 702.
- the packet analysis unit 701 extracts the Delay reception time Tm (1) stored in the Delay_Response message and notifies the RTT calculation unit 703 of it.
- the packet generation unit 702 generates a Delay_Request message. Specifically, upon receiving a Delay_Request message generation trigger from the packet analysis unit 701, the packet generation unit 702 generates a Delay_Request message. The packet generation unit 702 transfers the generated Delay_Request message to the packet transmission unit 406 and refers to the slave clock unit 404 to acquire the Delay transmission time Ts (1). Then, the packet generator 702 notifies the RTT calculator 703 of the acquired Delay transmission time Ts (1).
- the RTT calculation unit 703 calculates an RTT value (round trip (delay) time), and notifies the propagation delay monitor unit 704 of the calculated RTT value. Specifically, the RTT calculation unit 703 receives the Sync transmission time Tm (0), the Sync reception time Ts (0), the Delay transmission time Ts (1), and the Delay reception Tm received from the packet analysis unit 701 and the packet generation unit 702. Calculate the RTT value using (1). Note that the RTT calculation unit 703 calculates an RTT value in an initial mode process to be described later.
- the propagation delay monitor unit 704 detects the propagation delay amount P and notifies the offset calculation unit 705 of the detected propagation delay amount P. Specifically, the propagation delay monitor unit 704 transmits the RTT value in each series of IEEE1588 messages (a set of Sync message, Follow_up message, Delay_Request message, and Delay Response message) transmission / reception (message exchange) and the message exchange. The difference from the delay amount MS_Q of the Sync message in is calculated as a propagation delay amount candidate X. The propagation delay monitor unit 704 repeatedly calculates the propagation delay amount candidate X for each message exchange that occurs within a predetermined period.
- the propagation delay monitoring unit 704 determines the half of the minimum value among the propagation delay amount candidates X obtained within a predetermined period as the propagation delay amount P. Note that the propagation delay monitor unit 704 also detects the propagation delay amount P in the initial mode processing described later, similarly to the RTT calculation unit 703 described above.
- the offset calculation unit 705 calculates Offset and notifies the time adjustment unit 706 of the calculated Offset. Specifically, offset calculation section 705 uses Sync transmission time Tm (0), Sync reception time Ts (0) received from packet analysis section 701, and propagation delay amount P received from propagation delay monitoring section 704, Calculate Offset. The offset calculation unit 705 calculates Offset in the normal mode process described later.
- the time adjustment unit 706 adjusts the slave time of the slave clock unit 404 using the offset notified from the offset calculation unit 705. With this processing of the time adjustment unit 706, the slave time of the slave clock unit 404 is synchronized with the master time of the master clock unit 302 of the master node 300.
- the processing of the communication system 1 includes processing in the initial mode and processing in the normal mode.
- the communication system 1 first measures the propagation delay amount P by repeatedly operating for a predetermined period in the initial mode. Thereafter, the communication system 1 repeatedly operates in the normal mode to obtain an offset using the propagation delay amount P and synchronizes the slave time with the master time.
- the communication system 1 performs a master first process by the master node 300, an initial mode slave first process by the slave node 400, a master second process by the master node 300, and an initial mode slave second process by the slave node 400. Run each in this order.
- the communication system 1 performs a master first process by the master node 300, a normal mode slave first process by the slave node 400, a master second process by the master node 300, and a normal mode slave second process by the slave node 400. Run each in this order.
- FIGS. 9 and 11 are flowcharts showing the flow of the master first process and the master second process by the master node 300, respectively.
- 10 and 12 are flowcharts showing the flow of the initial mode slave first process and the initial mode slave second process by the slave node 400, respectively.
- FIGS. 13 and 14 are flowcharts showing the flow of the normal mode slave first process and the normal mode slave second process by the slave node 400, respectively.
- the slave nodes 400a to 400c individually execute the processes shown in FIGS. 10, 12, 13 and 14.
- the master node 300 transmits a Sync message to the slave node 400 (step S201). Specifically, the packet generation unit 303 generates a Sync message, and the packet transmission unit 304 broadcasts the Sync message to the slave nodes 400 (400a to 400c). Next, the master node 300 records the Sync transmission time Tm (0) (step S202). Specifically, the packet generation unit 303 refers to the master clock unit 302 to acquire and hold the Sync transmission time Tm (0). Then, the master node 300 transmits a Follow_up message to the slave node 400 (step S203).
- the packet generation unit 303 generates a Follow_up message storing the Sync transmission time Tm (0), and the packet transmission unit 304 broadcast-transmits the Follow_up message to the slave nodes 400 (400a to 400c).
- the master node 300 periodically and repeatedly executes this master first process.
- the slave node 400 receives a Sync message from the master node 300 (step S301). Specifically, the packet reception unit 401 receives a Sync message from the master node 300 and transfers the received Sync message to the PLL unit 402, the delay measurement unit 403, and the time synchronization control unit 405. In the operation after receiving the Sync message, the processes in steps S302 to S306 and the processes in steps S307 and S308 are executed in parallel.
- the slave node 400 records the Sync reception time Ts (0) (step S302). Specifically, the packet analysis unit 701 of the time synchronization control unit 405 acquires the Sync reception time Ts (0) by referring to the slave clock unit 404 in response to the reception of the Sync message, and notifies the RTT calculation unit 703 of it. To do.
- the slave node 400 receives a Follow_up message from the master node 300 (step S303). Specifically, the packet reception unit 401 receives a Follow_up message from the master node 300 and transfers the received Follow_up message to the time synchronization control unit 405. Next, the slave node 400 records the Sync transmission time Tm (0) (step S304). Specifically, the packet analysis unit 701 of the time synchronization control unit 405 extracts and acquires the Sync transmission time Tm (0) stored in the payload part of the Follow_up message in response to reception of the Follow_up message. Then, the packet analysis unit 701 notifies the RTT calculation unit 703 of the acquired Sync transmission time Tm (0).
- the slave node 400 transmits a Delay_Request message to the master node 300 (step S305).
- the packet analysis unit 701 sends a Delay_Request message generation trigger to the packet generation unit 702.
- the packet generation unit 702 generates a Delay_Request message in response to the generation trigger, and transfers it to the packet transmission unit 406.
- the packet transmission unit 406 transmits a Delay_Request message to the master node 300.
- the slave node 400 records the Delay transmission time Ts (1) (step S306).
- the packet generation unit 702 refers to the slave clock unit 404, acquires the Delay transmission time Ts (1), and notifies the RTT calculation unit 703 of it.
- the slave node 400 measures the delay amount MS_Q (step S307). Specifically, the counter maximum value monitor unit 502 and the arrival time counter value monitor unit 503 of the delay measurement unit 403 monitor the counter value of the packet counter 501, and each time the maximum counter value and each Sync message arrive in a predetermined interval period. Get the counter value. Then, the delay calculation unit 504 of the delay measurement unit 403 calculates the delay amount MS_Q based on both counter values.
- the slave node 400 records the measured delay amount MS_Q (step S308). Specifically, the delay calculation unit 504 notifies the calculated delay amount MS_Q to the propagation delay monitor unit 704 of the time synchronization control unit 405.
- the master node 300 receives a Delay_Request message from the slave node 400 (step S401). Specifically, the packet reception unit 305 receives a Delay_Request message from the slave node 400 and transfers the received Delay_Request message to the packet generation unit 303.
- the master node 300 records the delay reception time Tm (1) (step S402). Specifically, the packet generation unit 303 refers to the master clock unit 302 in response to receiving the Delay_Request message, and acquires the time Tm (1) at the time of receiving the Delay_Request message. Then, the packet generation unit 303 records the Delay reception time Tm (1) of each Delay_Request message in association with the node information of the slave nodes 400a to 400c that is the transmission source of each Delay_Request message.
- the master node 300 transmits a Delay_Response message storing the Delay reception time Tm (1) to each of the slave nodes 400a to 400c (step S403).
- the packet generation unit 303 generates a Delay_Response message storing time information Tm (1) corresponding to each of the slave nodes 400a to 400c, and transfers it to the packet transmission unit 304. Then, the packet transmission unit 304 unicasts each Delay_Response message to the slave nodes 400a to 400c.
- the slave node 400 receives a Delay_Response message from the master node 300 (step S501). Specifically, the packet receiving unit 401 receives a Delay_Response message from the master node 300 and transfers the received Delay_Response message to the time synchronization control unit 405.
- the slave node 400 extracts and records the delay reception time Tm (1) from the received delay_response message (step S502). Specifically, the packet analysis unit 701 of the time synchronization control unit 405 extracts and acquires the Delay reception time Tm (1) stored in the payload part of the Delay_Response message in response to reception of the Delay_Response message. Then, the packet analysis unit 701 notifies the RTT calculation unit 703 of the acquired delay reception time Tm (1).
- the slave node 400 calculates an RTT value (step S503).
- the slave node 400 calculates a propagation delay amount candidate X for each sequence (a series of message exchanges) (step S504).
- the slave node 400 repeatedly executes the calculation of the propagation delay amount candidate X for each message exchange within a predetermined period (step S505).
- the propagation delay monitor unit 704 calculates one propagation delay amount candidate X based on the following Expression 13. Then, the propagation delay monitor unit 704 repeatedly calculates the propagation delay amount candidate X for each message exchange within a predetermined period.
- X RTT-MS_Q Equation 13
- the slave node 400 determines the propagation delay amount P based on the propagation delay amount candidate X calculated within the predetermined period (step S506). Specifically, the propagation delay monitor unit 704 detects the minimum value of the propagation delay amount candidates X calculated within a predetermined period as the round trip propagation delay amount 2P. Then, the propagation delay monitor unit 704 determines the propagation delay amount P by halving the round trip propagation delay amount 2P.
- the reason why the minimum value Xmin of the propagation delay amount candidate X becomes the round trip propagation delay amount 2P is as follows.
- RTT 2P + MS_Q + SM_Q Equation 14
- Expression 14 can be transformed into Expression 15.
- RTT-MS_Q 2P + SM_Q Equation 15
- the propagation delay amount candidate X is equal to 2P + SM_Q.
- the round trip propagation delay amount 2P is a fixed value
- the queuing delay amount SM_Q is a variable value.
- the one-way propagation delay amount P Xmin / 2.
- the propagation delay monitoring unit 704 After calculating the propagation delay amount P, the propagation delay monitoring unit 704 notifies the offset calculation unit 705 of the calculated propagation delay amount P.
- the predetermined period in step S505 is set to be shorter than the time for operating in the initial mode. That is, the process in the initial mode ends after the propagation delay amount P is calculated by the process in step S506 and notified to the offset calculation unit 705 after the elapse of a predetermined period in step S505.
- the slave node 400 receives a Sync message from the master node 300.
- the packet reception unit 401 receives a Sync message from the master node 300 and transfers the received Sync message to the PLL unit 402, the delay measurement unit 403, and the time synchronization control unit 405.
- the processes in steps S602 to S609 and the processes in steps S610 and S611 are executed in parallel.
- the slave node 400 records the Sync reception time Ts (0) (step S602). Specifically, the packet analysis unit 701 of the time synchronization control unit 405 acquires the Sync reception time Ts (0) by referring to the slave clock unit 404 in response to the reception of the Sync message, and notifies the offset calculation unit 705 To do.
- the slave node 400 receives a Follow_up message from the master node 300 (step S603). Specifically, the packet reception unit 401 receives a Follow_up message from the master node 300 and transfers the received Follow_up message to the time synchronization control unit 405. Next, the slave node 400 records the Sync transmission time Tm (0) (step S604). Specifically, the packet analysis unit 701 of the time synchronization control unit 405 extracts and acquires the Sync transmission time Tm (0) stored in the payload part of the Follow_up message in response to reception of the Follow_up message. Then, the packet analysis unit 701 notifies the obtained Sync transmission time Tm (0) to the offset calculation unit 705. Thereafter, the packet analysis unit 701 notifies the packet generation unit 702 of a delay_request message generation trigger.
- the slave node 400 calculates Offset (step S606). Specifically, the offset calculation unit 705 calculates Offset based on Expression 17 below using the transmission delay MS_Diff, the delay amount MS_Q, and the propagation delay amount P. Then, the offset calculation unit 705 notifies the time adjustment unit 706 of the calculated offset.
- the slave node 400 adjusts the slave time based on Offset (step S607). Specifically, the time adjustment unit 706 delays the slave time by Offset when Offset is positive, and advances the slave time by Offset when Offset is negative. By adjusting the slave time, the slave time is synchronized with the master time of the master node 300.
- the slave node 400 transmits a Delay_Request message to the master node 300 (step S608).
- the packet analysis unit 701 sends a Delay_Request message generation trigger to the packet generation unit 702.
- the packet generation unit 702 generates a Delay_Request message according to the generation trigger, and transfers it to the packet transmission unit 406.
- the packet transmission unit 406 transmits a Delay_Request message to the master node 300.
- the slave node 400 records the Delay transmission time Ts (1) (step S609).
- the packet generation unit 702 refers to the slave clock unit 404, acquires the Delay transmission time Ts (1), and notifies the offset calculation unit 705 of it.
- the slave node 400 measures the delay amount MS_Q (step S610). Specifically, the counter maximum value monitor unit 502 and the arrival time counter value monitor unit 503 of the delay measurement unit 403 monitor the counter value of the packet counter 501, and each time the maximum counter value and each Sync message arrive in a predetermined interval period. Get the counter value. Then, the delay calculation unit 504 of the delay measurement unit 403 calculates the delay amount MS_Q based on both counter values.
- the slave node 400 records the measured delay amount MS_Q (step S611). Specifically, the delay calculation unit 504 notifies the calculated delay amount MS_Q to the offset calculation unit 705 of the time synchronization control unit 405. The notified delay amount MS_Q is used in the calculation of Offset in S606.
- the slave node 400 receives a Delay_Response message (step S701). Specifically, the packet reception unit 401 receives a Delay_Response message from the master node 300 and transfers the received Delay_Response message to the time synchronization control unit 405.
- the slave node 400 extracts the delay reception time Tm (1) (step S702). Specifically, the packet analysis unit 701 of the time synchronization control unit 405 extracts and acquires the Delay reception time Tm (1) stored in the payload part of the Delay_Response message. Then, the packet analysis unit 701 notifies the obtained delay reception time Tm (1) to the offset calculation unit 705.
- processing is executed in the order of master first processing, initial mode slave first processing, master second processing, and initial mode slave second processing.
- processing is executed in the order of master first processing, normal mode slave first processing, master second processing, and normal mode slave second processing.
- the normal mode is executed to obtain an offset and adjust the slave time, but the process is completed in step S607 in FIG. That is, since the propagation delay P is calculated in the initial mode, the offset can be calculated only in the Sync reception time Tm (0) and the Sync transmission time Ts (0) in the normal mode. Therefore, in the normal mode, the Offset can be derived by exchanging only one-way Sync messages.
- processing after the Delay_Request message (steps S608 and S609 in FIG. 13, FIGS. 11 and 14) has been described in consideration of consistency with the message exchange of the standard IEEE1588v2 w / TC. There is no need to perform this process.
- 15 to 17 are sequence diagrams showing specific examples of time synchronization processing by the communication system 1 in the initial mode.
- 15 shows message exchange in the first cycle in the initial mode
- FIG. 16 shows message exchange in the second cycle in the initial mode
- FIG. 17 shows message exchange in the third cycle in the initial mode.
- the offset of the slave node 400 with respect to the master node 300 is “3”, and the propagation delay amount P between the master node 300 and the slave node 400 is “3”.
- the delay amount MS_Q of the queuing delay from the master node 300 to the slave node 400 is “2” in FIG. 15, “1” in FIG. 16, and “2” in FIG.
- the delay amount SM_Q of the queuing delay from the slave node 400 to the master node 300 is “2” in FIG. 15, “4” in FIG. 16, and “0” in FIG. 15 to 17, for convenience of explanation, the master time and the slave time are indicated by integer values instead of the notation of hour / minute / second.
- the Sync transmission time Tm (0) in the first master process is “4”.
- the Sync reception time Ts (0) is “12”
- the Delay transmission time Ts (1) is “16”.
- the delay reception time Tm (1) is “18”.
- the delay amount MS_Q of the queuing delay from the master node 300 to the slave node 400 is measured as “2” by the delay measuring unit 403 in the initial mode slave first process.
- the RTT calculation unit 703 uses the above values to calculate the RTT value as follows.
- the propagation delay monitor unit 704 obtains a propagation delay amount candidate X as follows.
- the propagation delay amount candidate X obtained in FIG. 15 is a value in the first cycle of the initial mode, it is obtained as follows when represented as propagation delay amount candidate X (1).
- the Sync transmission time Tm (0) in the first master process is “4”.
- the Sync reception time Ts (0) is “11”
- the Delay transmission time Ts (1) is “15”.
- the delay reception time Tm (1) is “19”.
- the delay amount MS_Q of the queuing delay from the master node 300 to the slave node 400 is measured as “1” by the delay measuring unit 403 in the initial mode slave first process.
- the propagation delay monitor unit 704 obtains a propagation delay amount candidate X as follows.
- the propagation delay amount candidate X obtained in FIG. 16 is a value in the second cycle of the initial mode, it is obtained as follows when represented as propagation delay amount candidate X (2).
- the Sync transmission time Tm (0) in the first master process is “4”.
- the Sync reception time Ts (0) is “12”
- the Delay transmission time Ts (1) is “15”.
- the delay reception time Tm (1) is “15”.
- the delay amount MS_Q of the queuing delay from the master node 300 to the slave node 400 is measured as “2” by the delay measuring unit 403 in the initial mode slave first process.
- the RTT calculation unit 703 uses the above values to calculate the RTT value as follows.
- the propagation delay monitor unit 704 obtains a propagation delay amount candidate X as follows.
- the propagation delay amount candidate X obtained in FIG. 17 is a value in the third cycle of the initial mode, it is obtained as follows when represented as propagation delay amount candidate X (3).
- FIG. 18 is a sequence diagram illustrating a specific example of time synchronization processing by the communication system 1 in the normal mode.
- the offset of the slave node 400 with respect to the master node 300 is “3”
- the propagation delay amount P between the master node 300 and the slave node 400 is “3”, which is the same as in FIGS.
- the delay amount MS_Q of the queuing delay from the master node 300 to the slave node 400 is “2”
- the delay amount SM_Q of the queuing delay from the slave node 400 to the master node 300 is “3”.
- the Sync transmission time Tm (0) in the master first process is “4”.
- the Sync reception time Ts (0) is “12”.
- the delay amount MS_Q of the queuing delay from the master node 300 to the slave node 400 is measured as “2” by the delay measurement unit 403 in the normal mode slave first process.
- 19A and 19B are diagrams illustrating probability distributions of delay amounts measured in the communication system 1.
- a network emulator is connected instead of the packet network PN, a delay amount is added to the Sync message packet periodically transmitted from the master node 300, and the delay measurement unit in the slave node 400 At 403, the amount of delay was measured.
- 19A and 19B show the distribution of the delay amount added by the network emulator and the distribution of the delay amount measured by the slave node 400, respectively.
- the horizontal axis represents the delay amount
- the vertical axis represents the probability.
- the uniform distribution FIG. 19A
- the Poisson distribution FIG.
- the distribution of the measured delay amount substantially coincides with the delay amount distribution added by the network emulator. Therefore, it is clear that the delay measurement unit 403 can correctly measure the delay amount MS_Q. Therefore, it is clear that the offset value is accurately calculated by the time synchronization process by the communication system 1, and the slave time can be accurately synchronized with the master time.
- the delay measurement unit 403 of the slave node 400 measures the delay amount MS_Q of the queuing delay from the master node 300 to the slave node 400 based on the transmission / reception of the Sync message. Further, the propagation delay monitor unit 704 of the slave node 400 measures the propagation delay amount P between the master node 300 and the slave node 400. Then, the offset calculation unit 705 of the slave node 400 calculates Offset using the Sync transmission time Tm (0) and the Sync reception time Ts (0), the delay amount MS_Q, and the propagation delay amount P. This eliminates the error caused by the actual difference in bidirectional queuing delay compared to the case of calculating Offset assuming that the bidirectional queuing delay is equal as in Pure IEEE1588. It becomes possible to realize time synchronization with higher accuracy.
- the delay amount of the queuing delay in each direction can be measured only by the master node 300 and the slave node 400. Therefore, it is not necessary to implement a special function such as the TC function in the relay node in the packet network PN, and it is possible to cope with the existing relay node. In other words, compared to IEEE 1588v2 w / TC, which needs to implement the TC function for the relay node, there is no need to replace the relay node at all, the cost required for the introduction can be suppressed, and the introduction is easy There is. In the communication system 1, in the normal mode, it is possible to realize time synchronization with high accuracy as described above only by transmitting and receiving a Sync message.
- the delay measurement unit 403 may be configured using a packet buffer instead of the packet counter 501.
- the packet buffer When receiving the packet of the Delay_Request message from the packet receiving unit 401, the packet buffer accumulates the received packet in the buffer.
- the packet buffer outputs the accumulated packets according to the frequency determined by the VCO 410.
- FIG. 20 is a diagram illustrating an outline of processing of the delay measurement unit 403 when configured using a packet buffer.
- the vertical axis represents the accumulation amount in the buffer, and represents a high accumulation amount from bottom to top.
- the horizontal axis represents time and progresses from left to right.
- a plurality of broken lines arranged at equal intervals extending in the vertical direction indicate the timing at which a packet of a Delay_Request message is received (timing accumulated in a buffer) when no queuing delay occurs.
- the arrow pointing upward indicates the timing at which the Delay_Request message packet is actually received (the timing at which the packet is actually stored in the buffer).
- the amount of accumulation in the packet buffer is increased by the number of received bits.
- the read timing (accumulation amount is The time width between the timing (decrease timing) and the newly received timing (timing when the accumulation amount increases) is the minimum Tmin.
- the above time width becomes a value larger than Tmin. At this time, the difference between the minimum value Tmin and the time width is equivalent to the delay amount of the generated queuing delay.
- any of the configurations of the delay measurement unit 403 described above is merely an example of a configuration for measuring a delay, and other configurations may be employed as long as the configuration can measure the delay amount MS_Q of the queuing delay. .
- counter value monitoring unit upon arrival 504 ... delay calculation unit, 701 ... packet analysis unit, 702 ... packet Generation unit, 703 ... RTT calculation unit, 70 ... propagation delay monitor (propagation delay measurement unit), 705 ... offset calculation section, 706 ... time adjustment unit
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Environmental & Geological Engineering (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本発明は、通信を行うノード間で時刻の同期を行うための技術に関する。
本願は、2009年12月18日に出願された特願2009-287804号に基づき優先権を主張し、その内容をここに援用する。
The present invention relates to a technique for synchronizing time between nodes that perform communication.
This application claims priority based on Japanese Patent Application No. 2009-287804 for which it applied on December 18, 2009, and uses the content here.
従来、モバイルバックホールやファクトリオートメーション、家庭内AV用LANなどで高精度の時刻同期が求められている。このような背景の元で、時刻同期を行うための技術の標準化が進められている。例えば、パケットネットワークにおいて、マイクロ秒未満の精度で時刻同期を行なうための技術としてIEEE1588がある(非特許文献1参照)。 Conventionally, highly accurate time synchronization is required for mobile backhaul, factory automation, home AV LAN, and the like. Against this background, standardization of technology for performing time synchronization is underway. For example, there is IEEE 1588 as a technique for performing time synchronization with accuracy of less than microseconds in a packet network (see Non-Patent Document 1).
IEEE1588に規定されている技術では、マスタ/スレーブノード間でのメッセージ交換によってタイムスタンプ情報が交換される。スレーブノードは、マスタ及びスレーブノードにおけるメッセージ送受信時刻から、マスタノードに対するスレーブノードの時刻のずれ(Offset)を計算する。そして、スレーブノードは、このOffsetに基づいてスレーブノードの時刻を補正し、スレーブノードの時刻をマスタノードに同期させる。 In the technology specified in IEEE1588, time stamp information is exchanged by exchanging messages between master / slave nodes. The slave node calculates a time lag (Offset) of the slave node with respect to the master node from the message transmission / reception times at the master and the slave node. Then, the slave node corrects the time of the slave node based on this Offset, and synchronizes the time of the slave node with the master node.
IEEE1588では、Offsetを求めるために、マスタノードからスレーブノードへの伝送遅延(MS_Delay)と、スレーブノードからマスタノードへの伝送遅延(SM_Delay)は等しいと仮定する。しかしながら、パケットネットワークでは、ルータ、スイッチ等の中継ノードにおけるキューイング遅延等により、MS_DelayとSM_Delayとは異なる値となる可能性が高い。そのため、MS_DelayとSM_Delayとが等しいという仮定により、Offsetに誤差が生じてしまい、時刻同期精度が劣化してしまっていた。 IEEE 1588 assumes that the transmission delay (MS_Delay) from the master node to the slave node is equal to the transmission delay (SM_Delay) from the slave node to the master node in order to obtain Offset. However, in a packet network, there is a high possibility that MS_Delay and SM_Delay have different values due to queuing delays in relay nodes such as routers and switches. For this reason, the assumption that MS_Delay and SM_Delay are equal causes an error in Offset, which degrades the time synchronization accuracy.
このような問題を解決するために、IEEE1588 version 2において、Transparent Clock(TC)機能が規定されている。なお、以降の説明では、このTC機能を利用したIEEE1588をIEEE1588v2 w/TCと記す。 In order to solve such problems, IEEE 1588 version 2 defines the Transparent Clock (TC) function. In the following description, IEEE 1588 using this TC function is referred to as IEEE 1588v2 w / TC.
しかしながら、IEEE1588v2 w/TCでは、高精度を実現するためにはより多くの中継ノード(究極的には全中継ノード)がTC機能を有する必要がある。一方、既にネットワークに配置されている既存ノードはTC機能を持たないものが大部分を占める。そのため、IEEE1588v2 w/TCを実現するためには、中継ノードの置き換えや機能追加が必要となる。したがって、IEEE1588v2 w/TCの実現は、コストや手間などの観点から非常に困難であるという問題がある。
上記事情に鑑み、本発明は、コストを抑えた高精度の時刻同期を実現する技術を提供することを目的とする。
However, in IEEE1588v2 w / TC, in order to achieve high accuracy, more relay nodes (ultimately all relay nodes) need to have a TC function. On the other hand, most existing nodes already placed in the network do not have the TC function. Therefore, in order to realize IEEE1588v2 w / TC, it is necessary to replace the relay node and add functions. Therefore, there is a problem that the realization of IEEE1588v2 w / TC is very difficult from the viewpoint of cost and labor.
In view of the above circumstances, an object of the present invention is to provide a technique for realizing highly accurate time synchronization with reduced costs.
本発明は、互いに通信するマスタノード及びスレーブノードを備え、スレーブノードにおける時刻をマスタノードにおける時刻に同期させる時刻同期システムであって、前記マスタノードは、前記スレーブノードに対し制御メッセージを送信する送信部と、前記スレーブノードから制御メッセージを受信する受信部と、を備え、前記スレーブノードは、前記マスタノードに対し制御メッセージを送信する送信部と、前記マスタノードから前記制御メッセージを受信する受信部と、前記マスタノードから前記スレーブノードへ送信される制御メッセージが通信経路において受けたキューイング遅延を表す遅延量を計測する遅延計測部と、前記マスタノードと当該スレーブノードとの間の伝播遅延量を計測する伝播遅延計測部と、前記遅延計測部によって計測された遅延量と、前記伝播遅延計測部によって計測された伝播遅延量とを用いて、前記スレーブノードにおける時刻と前記マスタノードにおける時刻との差分を計算し、前記スレーブノードにおける時刻を前記マスタノードにおける時刻に同期させる時刻同期制御部と、を備える時刻同期システムを提供する。 The present invention is a time synchronization system that includes a master node and a slave node that communicate with each other, and synchronizes the time at the slave node with the time at the master node, wherein the master node transmits a control message to the slave node. And a receiver that receives a control message from the slave node, wherein the slave node transmits a control message to the master node, and a receiver that receives the control message from the master node A delay measurement unit that measures a delay amount representing a queuing delay received in a communication path by a control message transmitted from the master node to the slave node, and a propagation delay amount between the master node and the slave node Propagation delay measuring unit for measuring the delay and the delay measurement Using the delay amount measured by the propagation delay measurement unit and the propagation delay amount measured by the propagation delay measurement unit, the difference between the time at the slave node and the time at the master node is calculated, and the time at the slave node is A time synchronization system including a time synchronization control unit that synchronizes with a time in a master node is provided.
本発明はまた、スレーブノードに対し制御メッセージを送信する送信部と、スレーブノードから制御メッセージを受信する受信部と、を備えるマスタノードに対して時刻の同期を行うスレーブノードであって、前記マスタノードに対し制御メッセージを送信する送信部と、前記マスタノードから前記制御メッセージを受信する受信部と、前記マスタノードから前記スレーブノードへ送信される制御メッセージが通信経路において受けたキューイング遅延を表す遅延量を計測する遅延計測部と、前記マスタノードと当該スレーブノードとの間の伝播遅延量を計測する伝播遅延計測部と、前記遅延計測部によって計測された遅延量と、前記伝播遅延計測部によって計測された伝播遅延量とを用いて、前記スレーブノードにおける時刻と前記マスタノードにおける時刻との差分を計算し、前記スレーブノードにおける時刻を前記マスタノードにおける時刻に同期させる時刻同期制御部と、を備えるスレーブノードを提供する。 The present invention is also a slave node that synchronizes time with a master node that includes a transmission unit that transmits a control message to a slave node and a reception unit that receives a control message from the slave node, A transmission unit that transmits a control message to a node, a reception unit that receives the control message from the master node, and a queuing delay that the control message transmitted from the master node to the slave node receives in a communication path A delay measuring unit for measuring a delay amount, a propagation delay measuring unit for measuring a propagation delay amount between the master node and the slave node, a delay amount measured by the delay measuring unit, and the propagation delay measuring unit And the time at the slave node and the mass It calculates a difference between the time at node provides a slave node and a time synchronization control unit for synchronizing the time at the master node times in the slave node.
本発明はまた、互いに通信するマスタノード及びスレーブノードを備え、スレーブノードにおける時刻をマスタノードにおける時刻に同期させる時刻同期システムが行う時刻同期方法であって、前記マスタノードが、前記スレーブノードに対し制御メッセージを送信する送信ステップと、前記マスタノードが、前記スレーブノードから制御メッセージを受信する受信ステップと、前記スレーブノードが、前記マスタノードに対し制御メッセージを送信する送信ステップと、前記スレーブノードが、前記マスタノードから前記制御メッセージを受信する受信ステップと、前記スレーブノードが、前記マスタノードから前記スレーブノードへ送信される制御メッセージが通信経路において受けたキューイング遅延を表す遅延量を計測する遅延計測ステップと、前記スレーブノードが、前記マスタノードと当該スレーブノードとの間の伝播遅延量を計測する伝播遅延計測ステップと、前記スレーブノードが、前記遅延計測ステップによって計測された遅延量と、前記伝播遅延計測ステップによって計測された伝播遅延量とを用いて、前記スレーブノードにおける時刻と前記マスタノードにおける時刻との差分を計算し、前記スレーブノードにおける時刻を前記マスタノードにおける時刻に同期させる時刻同期制御ステップと、を備える時刻同期方法を提供する。 The present invention is also a time synchronization method performed by a time synchronization system that includes a master node and a slave node that communicate with each other, and that synchronizes the time at the slave node with the time at the master node, wherein the master node is connected to the slave node. A transmitting step of transmitting a control message, a receiving step of the master node receiving a control message from the slave node, a transmitting step of the slave node transmitting a control message to the master node, and the slave node A reception step of receiving the control message from the master node, and a delay in which the slave node measures a delay amount representing a queuing delay received in a communication path by the control message transmitted from the master node to the slave node. Total A propagation delay measuring step in which the slave node measures a propagation delay amount between the master node and the slave node; a delay amount measured by the slave node in the delay measuring step; and the propagation Time synchronization control for calculating the difference between the time at the slave node and the time at the master node using the propagation delay amount measured at the delay measurement step, and synchronizing the time at the slave node with the time at the master node And a time synchronization method comprising the steps.
本発明はまた、互いに通信するマスタノード及びスレーブノードを備え、スレーブノードにおける時刻をマスタノードにおける時刻に同期させる時刻同期システムとして、前記マスタノードに相当する第一のコンピュータ及び前記スレーブノードに相当する第二のコンピュータを動作させるための時刻同期用プログラムであって、前記第一のコンピュータに対し、前記スレーブノードに対し制御メッセージを送信する送信ステップと、前記スレーブノードから制御メッセージを受信する受信ステップと、を実行させ、前記第二のコンピュータに対し、前記マスタノードに対し制御メッセージを送信する送信ステップと、前記マスタノードから前記制御メッセージを受信する受信ステップと、前記マスタノードから前記スレーブノードへ送信される制御メッセージが通信経路において受けたキューイング遅延を表す遅延量を計測する遅延計測ステップと、前記マスタノードと当該スレーブノードとの間の伝播遅延量を計測する伝播遅延計測ステップと、前記遅延計測ステップによって計測された遅延量と、前記伝播遅延計測ステップによって計測された伝播遅延量とを用いて、前記スレーブノードにおける時刻と前記マスタノードにおける時刻との差分を計算し、前記スレーブノードにおける時刻を前記マスタノードにおける時刻に同期させる時刻同期制御ステップと、を実行させる時刻同期用プログラムを提供する。 The present invention also includes a master node and a slave node that communicate with each other, and corresponds to a first computer corresponding to the master node and a slave node as a time synchronization system that synchronizes the time in the slave node with the time in the master node. A time synchronization program for operating a second computer, a transmitting step for transmitting a control message to the slave node to the first computer, and a receiving step for receiving a control message from the slave node To the second computer, a transmission step of transmitting a control message to the master node, a reception step of receiving the control message from the master node, and from the master node to the slave node Send A delay measuring step for measuring a delay amount representing a queuing delay received by the control message in the communication path, a propagation delay measuring step for measuring a propagation delay amount between the master node and the slave node, and the delay measurement. The difference between the time at the slave node and the time at the master node is calculated using the delay amount measured at the step and the propagation delay amount measured at the propagation delay measurement step, and the time at the slave node is calculated. There is provided a time synchronization program for executing a time synchronization control step for synchronizing with a time in the master node.
本発明により、コストを抑えた高精度の時刻同期を実現することが可能となる。 The present invention makes it possible to realize highly accurate time synchronization with reduced costs.
[IEEE1588]
まず、IEEE1588の時刻同期アルゴリズムについて説明する。図1は、IEEE1588の時刻同期アルゴリズムによる通信シーケンスを表すシーケンス図である。
図1では、マスタノード100とスレーブノード200とが双方向通信を行っており、スレーブノード200が定期的にマスタノード100に時刻を同期させる。
[IEEE1588]
First, the IEEE 1588 time synchronization algorithm will be described. FIG. 1 is a sequence diagram showing a communication sequence according to the IEEE 1588 time synchronization algorithm.
In FIG. 1, the
マスタノード100は、スレーブノード200に対して、定期的にSyncメッセージを送信する(ステップS100)。
マスタノード100は、このSyncメッセージの送信時刻(以下、「Sync送信時刻」という。)Tm(0)を記録する(ステップS101)。
次に、マスタノード100は、スレーブノード200に対して、Follow_upメッセージを送信する(ステップS102)。このとき、マスタノード100は、Follow_upメッセージの中に、Sync送信時刻Tm(0)を格納する。
The
The
Next, the
スレーブノード200は、Syncメッセージを受信すると、この受信処理をトリガとしてSyncメッセージの受信時刻(以下、「Sync受信時刻」という。)Ts(0)を記録する(ステップS103)。
次に、スレーブノード200はFollow_upメッセージを受信し、Follow_upメッセージ中に格納されるSync送信時刻Tm(0)を抽出し記録する(ステップS104)。
次に、スレーブノード200は、マスタノード100に対して、Delay_Requestメッセージを送信する(ステップS105)。
そして、スレーブノード200は、このDelay_Requestメッセージの送信時刻(以下、「Delay送信時刻」という。)Ts(1)を記録する(ステップS106)。
When the
Next, the
Next, the
Then, the
マスタノード100は、Delay_Requestメッセージを受信すると、この受信処理をトリガとしてDelay_Requestメッセージの受信時刻(以下、「Delay受信時刻」という。)Tm(1)を記録する(ステップS107)。
次に、マスタノード100は、スレーブノード200に対してDelay_Responseメッセージを送信する(ステップS108)。このとき、マスタノード100は、Delay_Responseメッセージの中に、Delay受信時刻Tm(1)を格納する。
When receiving the Delay_Request message, the
Next, the
スレーブノード200は、Delay_Responseメッセージを受信すると、Delay_Responseメッセージ中に格納されるDelay受信時刻Tm(1)を抽出し記録する(ステップS109)。
スレーブノード200は、Sync送信時刻Tm(0)、Sync受信時刻Ts(0)に基づいて、以下の式1から、マスタノード100における時刻(以下、「マスタ時刻」という)とスレーブノード200における時刻(以下、「スレーブ時刻」という)との差分MS_Diffを算出する。
MS_Diff = Ts(0) - Tm(0) = MS_Delay + Offset ・・・式1
When receiving the Delay_Response message, the
Based on the Sync transmission time Tm (0) and the Sync reception time Ts (0), the
MS_Diff = Ts (0)-Tm (0) = MS_Delay + Offset ・ ・ ・
また、スレーブノード200は、Delay送信時刻Ts(1)、Delay受信時刻Tm(1)に基づいて、以下の式2から、スレーブ時刻とマスタ時刻との差分を求める。
SM_Diff = Tm(1) - Ts(1) = SM_Delay - Offset ・・・式2
In addition, the
SM_Diff = Tm (1)-Ts (1) = SM_Delay-Offset ・ ・ ・ Equation 2
ここで、MS_Delayはマスタノード100からスレーブノード200への伝送遅延を表し、SM_Delayはスレーブノード200からマスタノード100への伝送遅延を表し、Offsetはマスタノード100に対するスレーブノード200の時刻オフセット(進み)を表す。
なお、伝送遅延MS_Delay及びSM_Delayは、マスタノード100とスレーブノード200との間の伝播遅延と、マスタノード100とスレーブノード200との間のネットワーク上の中継ノードで生じるキューイング遅延から構成される。
Here, MS_Delay represents a transmission delay from the
The transmission delays MS_Delay and SM_Delay are composed of a propagation delay between the
以上のように、マスタノード100に対するスレーブノード200の時刻のずれであるOffsetに関して、式1及び式2の二つの式が得られる。しかし、この二つの式には、Offsetの他にMS_Delay及びSM_Delayという未知のパラメータが含まれている。したがって、三つの未知のパラメータに対し二つの式しか存在しないため、Offsetを算出することができない。
そのため、IEEE1588では、マスタノード100からスレーブノード200への伝送遅延MS_Delayと、スレーブノード200からマスタノード100への伝送遅延SM_Delayとが等しく、いずれの値もDelayであると仮定して、上記の式1及び式2を以下の式3及び式4に変形する。
As described above, two expressions,
Therefore, in IEEE1588, assuming that the transmission delay MS_Delay from the
MS_Diff = Delay + Offset ・・・式3
SM_Diff = Delay - Offset ・・・式4
式3及び式4の連立方程式を解くことによって、以下の式5が導出される。
Offset = (MS_Diff - SM_Diff) / 2 ・・・式5
MS_Diff = Delay + Offset ・ ・ ・ Equation 3
SM_Diff = Delay-Offset ・ ・ ・
By solving the simultaneous equations of Equation 3 and
Offset = (MS_Diff-SM_Diff) / 2 ... Formula 5
スレーブノード200は、式5に基づいてOffsetを算出し、Offsetに基づいてスレーブ時刻を補正することによって、スレーブ時刻をマスタ時刻に同期させる。以上が、IEEE1588に規定される時刻同期アルゴリズムである。
The
[IEEE1588v2 w/TC]
次に、IEEE1588v2 w/TCの時刻同期アルゴリズムについて説明する。図2Aは、IEEE1588の時刻同期アルゴリズムの概略を表す図である。図2Bは、IEEE1588v2 w/TC の時刻同期アルゴリズムの概略を表す図である。図2A及び図2BのD1~D6は、それぞれ各中継ノードRe1~Re3において発生する、図中矢印方向への伝送におけるキューイング遅延を表す。
[IEEE1588v2 w / TC]
Next, the IEEE 1588v2 w / TC time synchronization algorithm will be described. FIG. 2A is a diagram showing an outline of the time synchronization algorithm of IEEE1588. FIG. 2B is a diagram showing an outline of the IEEE 1588v2 w / TC time synchronization algorithm. D1 to D6 in FIGS. 2A and 2B represent queuing delays in transmissions in the directions indicated by arrows in the drawings, which occur in the relay nodes Re1 to Re3, respectively.
IEEE1588v2 w/TCでは、各中継ノードRe1~Re3はTC機能を備える。TC機能とは、制御メッセージ(IEEE1588メッセージ)のパケットのノード内滞在時間を計測し、その時間を制御パケットの所定のフィールドに記載し、累積加算していく機能である。なお、IEEE1588メッセージとは、具体的にはSyncメッセージ及びDelay_Requestメッセージである。
IEEE1588v2 w/TCでは、TC機能により、制御パケットが中継ノードRe1~Re3を経由するごとに、中継ノードRe1~Re3での滞在時間がメッセージ内に累積加算される。そのため、スレーブノード200は、マスタノード100からスレーブノード200へ向けた伝送における各中継ノードRe1~Re3で生じたキューイング遅延の合計を正確に取得できる。同様に、マスタノード100は、スレーブノード200からマスタノード100へ向けた伝送における各中継ノードRe1~Re3で生じたキューイング遅延の合計を正確に取得できる。
In IEEE1588v2 w / TC, each relay node Re1 to Re3 has a TC function. The TC function is a function that measures the stay time in the node of the packet of the control message (IEEE 1588 message), writes the time in a predetermined field of the control packet, and cumulatively adds it. Note that the IEEE 1588 message is specifically a Sync message and a Delay_Request message.
In IEEE1588v2 w / TC, the stay time at the relay nodes Re1 to Re3 is cumulatively added to the message every time the control packet passes through the relay nodes Re1 to Re3 by the TC function. Therefore, the
マスタノード100からスレーブノード200へ向けた伝送におけるキューイング遅延の合計及び伝播遅延をそれぞれMS_Q、MS_Pとし、スレーブノード200からマスタノード100へ向けた伝送におけるキューイング遅延の合計及び伝播遅延をそれぞれSM_Q、SM_Pとすると、上述した式1及び式2は下記の式6及び式7に変形できる。
MS_Diff = MS_P + MS_Q + Offset ・・・式6
SM_Diff = SM_P + SM_Q - Offset ・・・式7
The total queuing delay and propagation delay in transmission from the
MS_Diff = MS_P + MS_Q + Offset ・ ・ ・
SM_Diff = SM_P + SM_Q-Offset ・ ・ ・ Equation 7
ここで、マスタノード100からスレーブノード200へ向けた伝送とスレーブノード200からマスタノード100へ向けた伝送のメッセージ伝送経路が双方向で等しい場合は、MS_P = SM_P = Propagation_Delayとなる。この場合、式6及び式7は、下記の式8及び式9のように変形できる。
MS_Diff = Propagation_Delay + MS_Q + Offset ・・・式8
SM_Diff = Propagation_Delay + SM_Q - Offset ・・・式9
Here, when the message transmission path of the transmission from the
MS_Diff = Propagation_Delay + MS_Q + Offset ・ ・ ・ Formula 8
SM_Diff = Propagation_Delay + SM_Q-Offset ・ ・ ・
そして、式8及び式9から、Offsetを算出するための式として下記の式10を得ることができる。
Offset = {(MS_Diff - SM_Diff) - (MS_Q - SM_Q)} / 2 ・・・式10
Then, from Expression 8 and
Offset = {(MS_Diff-SM_Diff)-(MS_Q-SM_Q)} / 2
図2Aに示すように、IEEE1588v2 w/TC ではないIEEE1588(以下、「Pure IEEE1588」ともいう。)では、各中継ノードRe1~Re3で生じるキューイング遅延の合計は、双方向で等しいと仮定していた。すなわち、マスタノード100からスレーブノード200への伝送におけるキューイング遅延の合計(D1+D2+D3)と、スレーブノード200からマスタノード100への伝送におけるキューイング遅延の合計(D4+D5+D6)とは等しいと仮定していた。しかしながら、実際には等しくないため、その誤差が同期精度の劣化の要因となっていた。
As shown in FIG. 2A, IEEE1588 (hereinafter also referred to as “Pure IEEE1588”), which is not IEEE1588v2 w / TC, assumes that the sum of the queuing delays occurring at each relay node Re1 to Re3 is equal in both directions. It was. That is, the total queuing delay in transmission from the
これに対して、IEEE1588v2 w/TCでは、各中継ノードRe1~Re3に実装されたTC機能によって各中継ノードRe1~Re3でのキューイング遅延の合計を計測している。そして、スレーブノード200は、マスタノード100からスレーブノード200への伝送におけるキューイング遅延の合計値(D1+D2+D3)を正確に取得する。また、マスタノード100は、スレーブノード200からマスタノード100への伝送におけるキューイング遅延の合計値(D4+D5+D6)を、正確に取得する。このような動作によって、IEEE1588v2 w/TCでは、高精度の時刻同期が可能となる。以上が、IEEE1588v2 w/TCに規定される時刻同期アルゴリズムである。
In contrast, IEEE 1588v2 w / TC measures the total queuing delay at each relay node Re1 to Re3 by the TC function implemented on each relay node Re1 to Re3. Then, the
[システム構成及び機能ブロック]
図3は、通信システム1のシステム構成図である。通信システム1は、マスタノード300、スレーブノード400(400a~400c)、パケットネットワークPNを備える。以下、マスタノード300及びスレーブノード400の構成の詳細についてそれぞれ説明する。
[System configuration and functional blocks]
FIG. 3 is a system configuration diagram of the
〔マスタノード〕
図4は、マスタノード300の機能構成を表す機能ブロック図である。
マスタノード300は、クロック生成部301、マスタクロック部302、パケット生成部303と、パケット送信部304と、パケット受信部305とを備える。マスタノード300は、例えばバスで接続されたCPU(Central Processing Unit)、メモリ、補助記憶装置、通信インタフェース等を備え、時刻同期用プログラムを実行することによって上記各機能部を備える装置として構成されても良い。
[Master node]
FIG. 4 is a functional block diagram showing the functional configuration of the
The
クロック生成部301は、マスタノード300の基準クロックを生成する。具体的には、クロック生成部301は、マスタノード300における1秒の時間幅を決める。なお、クロック生成部301は、マスタノード300の外部に存在しても良い。その場合、マスタノード300は、外部に設置されるクロック生成部301からのクロックを確実に同期して取得するように構成される。
The
マスタクロック部302は、クロック生成部301で生成される基準クロックに従い、マスタノード300の時刻(マスタ時刻)を決定する。具体的には、マスタクロック部302は、マスタノード300において何時何分何秒であるかを決める。
The
パケット生成部303は、IEEE1588のメッセージを生成し、パケット送信部304に送る。IEEE1588のメッセージとは、具体的には、上述のSyncメッセージ、Follow_upメッセージ、Delay_Responseメッセージである。
パケット生成部303は、定期的にパケット送信部304を介してSyncメッセージをスレーブノード400へ送信し、同時にマスタクロック部302を参照してSync送信時刻Tm(0)を記録する。
また、パケット生成部303は、Syncメッセージ送信後に、Sync送信時刻Tm(0)を格納したFollow_upメッセージを生成し、パケット送信部304を介してスレーブノード400へ送信する。
また、パケット生成部303は、パケット受信部305によって受信されるDelay_Requestメッセージの受信時刻(Delay受信時刻)Tm(1)を格納したDelay_Responseメッセージを生成し、パケット送信部304を介してスレーブノード400へ送信する。
The
The
Further, after transmitting the Sync message, the
Further, the
また、Delay_Responseメッセージは、スレーブノード400a~400cから送信されたDelay_Requestメッセージへの返信となる。そのため、パケット生成部303は、Delay_Responseメッセージに格納されるDelay受信時刻Tm(1)をDelay_Requestメッセージの送信元のスレーブノード400a~400c毎に管理する。
Also, the Delay_Response message is a reply to the Delay_Request message transmitted from the
パケット送信部304は、パケット生成部303から受けるSyncメッセージ、Follow_upメッセージ、Delay_Responseメッセージを、パケットネットワークPNを経由してスレーブノード400a~400cに送信する。
なお、パケット送信部304は、Syncメッセージ及びFollow_upメッセージを、スレーブノード400a~400cに対してブロードキャストする。
また、パケット送信部304は、Delay_Responseメッセージを、各Delay_Requestメッセージの送信元のスレーブノード400a~400cに対してユニキャストする。
The
Note that the
The
パケット受信部305は、スレーブノード400a~400cからパケットネットワークPNを経由して送られてくるDelay_Requestメッセージを受信する。そして、パケット受信部305は、受信されたDelay_Requestメッセージを、パケット生成部303に転送する。
The
〔スレーブノード〕
図5は、スレーブノード400の機能構成を表す機能ブロック図である。なお、スレーブノード400a~400cは、いずれもスレーブノード400と同様の構成を備える。
スレーブノード400は、パケット受信部401、PLL部402、遅延計測部403、スレーブクロック部404、時刻同期制御部405、パケット送信部406を備える。
スレーブノード400は、例えばバスで接続されたCPU、メモリ、補助記憶装置、通信インタフェース等を備え、時刻同期用プログラムを実行することによって上記各機能部を備える装置として構成されても良い。
[Slave node]
FIG. 5 is a functional block diagram illustrating a functional configuration of the
The
The
パケット受信部401は、マスタノード300からパケットネットワークPNを経由して送信されてきたSyncメッセージ、Follow_upメッセージ、Delay_Requestメッセージを受信し、時刻同期制御部405に転送する。パケット受信部401は、Syncメッセージに限り、PLL部402及び遅延計測部403にも転送する。
The
PLL部402は、位相比較器407、LPF408、PI制御器409、VCO410、カウンタ411を備える。ただし、PLL部402のこのような構成は一例に過ぎない。すなわち、PLL部402は、自身のクロックから生成する時刻とマスタノード300から受信した時刻との差分を計算し、その差分を元に自身のクロックを調整することができる構成であれば、その他どのような構成であっても良い。
The
位相比較器407は、パケット受信部401から受信したSyncメッセージパケットに格納される受信タイムスタンプと、カウンタ411で生成されるタイムスタンプとの差分信号を計算する。そして、位相比較器407は、その計算結果を表す差分信号をLPF408に出力する。
The
LPF408は、位相比較器407によって出力された差分信号を平準化し、ジッタやノイズを抑圧し、PI制御器409に出力する。
PI制御器409は、平準化された差分信号が最終的にゼロとなるような制御信号を生成し、VCO410に出力する。
The
The
VCO410は、PI制御器409から出力された制御信号によって決定される周波数のクロックを生成し、カウンタ411に出力する。また、VCO410は、生成された周波数のクロックに従い、遅延計測部403のパケットカウンタのカウンタ値を減少させる。
カウンタ411は、VCO410によって生成されたクロックを元にタイムスタンプを生成し、位相比較器407に転送する。
The
The
以上説明したPLL部402の動作により、VCO410によって生成されるスレーブノード400のクロックが、マスタノード300のクロックに同期される。
遅延計測部403は、パケットカウンタを備える。遅延計測部403は、パケットカウンタのカウンタ値の増減状況をモニタすることによって、到着するSyncメッセージの遅延量MS_Qを算出する。そして、遅延計測部403は、算出された遅延量MS_Qを時刻同期制御部405に通知する。
なお、遅延量MS_Qは、上述したようにSyncメッセージがマスタノード300からスレーブノード400まで転送される間に受けたキューイング遅延の遅延量を表す。
With the operation of the
The
Note that the delay amount MS_Q represents the delay amount of the queuing delay received while the Sync message is transferred from the
図6は、遅延計測部403の詳細な機能構成を表す機能ブロック図である。
遅延計測部403は、パケットカウンタ501、カウンタ最大値モニタ部502、到着時カウンタ値モニタ部503、遅延算出部504を備える。
カウンタ最大値モニタ部502及び到着時カウンタ値モニタ部503は、パケットカウンタ501のカウンタ値をモニタし、後述する結果をそれぞれ遅延算出部504に通知する。
遅延算出部504は、カウンタ最大値モニタ部502及び到着時カウンタ値モニタ部503から通知された情報を用いて遅延量MS_Qを算出する。そして、遅延算出部504は、算出された遅延量MS_Qを時刻同期制御部405に通知する。
FIG. 6 is a functional block diagram illustrating a detailed functional configuration of the
The
The counter maximum
The delay calculation unit 504 calculates the delay amount MS_Q using information notified from the counter maximum
パケットカウンタ501は、パケット受信部401からSyncメッセージを受信する毎に、カウンタの値を所定の値分だけ増加させる。また、パケットカウンタ501は、VCO410から出力されるクロックの周波数に従い、カウンタの値を減少させる。
パケットカウンタ501のカウンタ値がVCO410のクロックの周波数に従って減少するのは、パケット受信部401によって受信されたSyncメッセージのパケットが、VCO410のクロックの周波数に従って受信パケットのバッファから読み出されるためである。
Each time the
The reason why the counter value of the
カウンタ最大値モニタ部502は、パケットカウンタ501のカウンタ値の最大値を検出する。具体的には、カウンタ最大値モニタ部502は、予め決められた所定の時間(例えば10秒)のモニタ期間内の最大値を検出する。以下、モニタ期間iにおけるカウンタの最大値を、カウンタ最大値P(i)と表す。
カウンタ最大値モニタ部502は、モニタ期間iが終了すると、検出結果であるカウンタ最大値P(i)を遅延算出部504に通知する。
The counter maximum
When the monitoring period i ends, the counter maximum
到着時カウンタ値モニタ部503は、モニタ期間iにおけるn番目のDelay_Requestメッセージパケットが到着すると、到着時のカウンタ値C(i,n)を検出する。到着時カウンタ値モニタ部503は、Delay_Requestメッセージパケットの到着毎にカウンタ値C(i,n)を検出し、検出結果を遅延算出部504に通知する。
The arrival time counter
遅延算出部504は、到着時カウンタ値モニタ部503からカウンタ値C(i,n)を受ける毎に、カウンタ値C(i,n)及びカウンタ最大値P(i)を用いて、以下の式11に基づき遅延量MS_Qを算出する。
MS_Q = P(i-1) - C(i,n) ・・・式11
ここで、P(i-1)は、前回のモニタ期間でのカウンタ最大値である。
遅延算出部504は、遅延量MS_Qを計算する毎に、時刻同期制御部405に遅延量MS_Qを通知する。
The delay calculation unit 504 uses the counter value C (i, n) and the counter maximum value P (i) each time the counter value C (i, n) is received from the arrival counter
MS_Q = P (i-1)-C (i, n)
Here, P (i-1) is the maximum counter value in the previous monitoring period.
The delay calculation unit 504 notifies the time
図7は、パケットカウンタ501の動作の概略を表す概略図である。
図7において、縦軸はカウンタ値を表し、下から上へ向けて高いカウンタ値を表す。横軸は時間を表し、左から右へ向けて進行する。縦に伸びる等間隔に並んだ複数の破線は、キューイング遅延が発生しない場合にSyncメッセージのパケットが受信されるタイミングを表す。上方向を指す矢印は、Syncメッセージのパケットが実際に受信されたタイミングを表す。
パケットカウンタ501は、Syncメッセージのパケットを受信すると、カウンタ値を固定値分(図7のCV分)上昇させる。その後、受信されたパケットは定期的に後段の処理部によって読み出されるため、カウンタ値は一定のペースで減少する。
縦に伸びる破線と上方向の矢印とが時間軸で一致している場合、すなわちキューイング遅延が発生せずにSyncメッセージのパケットが受信されている場合は、カウンタ値は最大値Cmaxをとる。この場合、パケットカウンタ501では、受信されたビット数の総和と、VCO410のクロックの周波数に従って定期的に読み出されるビット数の総和とが一致する。
一方、キューイング遅延が発生している場合には、カウンタ値はCmaxよりも小さい値となる。このとき、最大値Cmaxとカウンタ値との差分が、発生しているキューイング遅延の遅延量と等価となる。
FIG. 7 is a schematic diagram showing an outline of the operation of the
In FIG. 7, the vertical axis represents the counter value, and represents a high counter value from the bottom to the top. The horizontal axis represents time and progresses from left to right. A plurality of broken lines arranged at equal intervals extending in the vertical direction indicate the timing at which a Sync message packet is received when no queuing delay occurs. An arrow pointing upward indicates the timing at which a Sync message packet is actually received.
When receiving the packet of the Sync message, the
When the vertically extending broken line and the upward arrow coincide with each other on the time axis, that is, when a Sync message packet is received without causing a queuing delay, the counter value takes the maximum value Cmax. In this case, in the
On the other hand, when a queuing delay occurs, the counter value is smaller than Cmax. At this time, the difference between the maximum value Cmax and the counter value is equivalent to the delay amount of the generated queuing delay.
図5に戻ってスレーブノード400の構成の説明を続ける。スレーブクロック部404は、VCO410によって生成されるクロックに従い、スレーブノード400の時刻(スレーブ時刻)を決める。
Referring back to FIG. 5, the description of the configuration of the
時刻同期制御部405は、Syncメッセージ及びDelay_Requestメッセージの送受信時刻情報(Sync送信時刻Tm(0)、Sync受信時刻Ts(0)、Delay送信時刻Ts(1)、Delay受信時刻Tm(1))、遅延量MS_Qを用いて、マスタノード300に対するスレーブノード400の時刻のずれであるOffsetを求める。そして、時刻同期制御部405は、スレーブクロック部404の時刻(スレーブ時刻)を補正する。また、時刻同期制御部405は、Delay_Requestメッセージを生成し、パケット送信部406に送る。
パケット送信部406は、時刻同期制御部405から受信するDelay_Requestメッセージを、パケットネットワークPNを介してマスタノード300に対して送信する。
The time
The
図8は、時刻同期制御部405の詳細な機能構成を表す機能ブロック図である。
時刻同期制御部405は、パケット解析部701、パケット生成部702、RTT計算部703、伝播遅延モニタ部704、オフセット計算部705、時刻調整部706を備える。
パケット解析部701は、パケット受信部401からSyncメッセージ、Follow_upメッセージ、Delay_Responseメッセージを受信する。パケット解析部701は、Syncメッセージを受信すると、スレーブクロック部404を参照し、Sync受信時刻Ts(0)を取得する。
そして、パケット解析部701は、取得されたSync受信時刻Ts(0)をRTT計算部703及びオフセット計算部705に通知する。
FIG. 8 is a functional block diagram illustrating a detailed functional configuration of the time
The time
The
Then, the
また、パケット解析部701は、Follow_upメッセージを受信すると、Follow_upメッセージ内に格納されるSync送信時刻Tm(0)を抽出する。そして、パケット解析部701は、抽出されたSync送信時刻Tm(0)をRTT計算部703及びオフセット計算部705に通知すると共に、パケット生成部702に対しDelay_Requestメッセージの生成トリガを送る。
Further, when receiving the Follow_up message, the
また、パケット解析部701は、Delay_Responseメッセージを受信すると、Delay_Responseメッセージ内に格納されるDelay受信時刻Tm(1)を抽出し、RTT計算部703に通知する。
Further, when receiving the Delay_Response message, the
パケット生成部702は、Delay_Requestメッセージを生成する。具体的には、パケット生成部702は、パケット解析部701からDelay_Requestメッセージの生成トリガを受信すると、Delay_Requestメッセージを生成する。パケット生成部702は、生成されたDelay_Requestメッセージをパケット送信部406に転送すると共に、スレーブクロック部404を参照し、Delay送信時刻Ts(1)を取得する。そして、パケット生成部702は、取得されたDelay送信時刻Ts(1)をRTT計算部703に通知する。
The
RTT計算部703は、RTT値(往復(遅延)時間)を計算し、算出されたRTT値を伝播遅延モニタ部704に通知する。具体的には、RTT計算部703は、パケット解析部701及びパケット生成部702から受信するSync送信時刻Tm(0)、Sync受信時刻Ts(0)、Delay送信時刻Ts(1)、Delay受信Tm(1)を用いてRTT値を計算する。なお、RTT計算部703は、後述する初期モードの処理において、RTT値の計算を行う。
The
伝播遅延モニタ部704は、伝播遅延量Pを検出し、検出された伝播遅延量Pをオフセット計算部705に通知する。具体的には、伝播遅延モニタ部704は、各々の一連のIEEE1588メッセージ(一組の、Syncメッセージ、Follow_upメッセージ、Delay_Requestメッセージ及びDelay Responseメッセージ)の送受信(メッセージ交換)におけるRTT値と、当該メッセージ交換におけるSyncメッセージの遅延量MS_Qとの差分を伝播遅延量候補Xとして算出する。
伝播遅延モニタ部704は、伝播遅延量候補Xの算出を、所定の期間内に発生するメッセージ交換毎に繰り返し実行する。
そして、伝播遅延モニタ部704は、所定の期間内に得られた伝播遅延量候補Xの中で最小の値の1/2を伝播遅延量Pとして決定する。なお、伝播遅延モニタ部704も前述のRTT計算部703と同様に、後述する初期モードの処理において、伝播遅延量Pの検出を行なう。
The propagation
The propagation
Then, the propagation
オフセット計算部705は、Offsetを計算し、算出されたOffsetを時刻調整部706に通知する。具体的には、オフセット計算部705は、パケット解析部701から受けるSync送信時刻Tm(0)、Sync受信時刻Ts(0)と、伝播遅延モニタ部704から受ける伝播遅延量Pとを用いて、Offsetを計算する。なお、オフセット計算部705は、後述する通常モードの処理において、Offsetの計算を行う。
The offset
時刻調整部706は、オフセット計算部705から通知されるOffsetを用いて、スレーブクロック部404のスレーブ時刻を調整する。時刻調整部706のこの処理によって、スレーブクロック部404のスレーブ時刻は、マスタノード300のマスタクロック部302のマスタ時刻に同期する。
The
〔動作〕
次に、通信システム1の各装置の処理の流れについて説明する。
通信システム1の処理には、初期モードにおける処理と通常モードにおける処理がある。通信システム1は、まず初期モードで所定の期間繰り返し動作することによって伝播遅延量Pを計測する。その後、通信システム1は、通常モードで繰り返し動作することによって、伝播遅延量Pを用いてOffsetを求めスレーブ時刻をマスタ時刻に同期させる。
初期モードでは、通信システム1は、マスタノード300によるマスタ第1処理、スレーブノード400による初期モードスレーブ第1処理、マスタノード300によるマスタ第2処理、スレーブノード400による初期モードスレーブ第2処理を、それぞれこの順で実行する。
通常モードでは、通信システム1は、マスタノード300によるマスタ第1処理、スレーブノード400による通常モードスレーブ第1処理、マスタノード300によるマスタ第2処理、スレーブノード400による通常モードスレーブ第2処理を、それぞれこの順で実行する。
[Operation]
Next, the process flow of each device of the
The processing of the
In the initial mode, the
In the normal mode, the
図9及び図11は、それぞれマスタノード300によるマスタ第1処理及びマスタ第2処理の流れを表すフローチャートである。
図10及び図12は、それぞれスレーブノード400による初期モードスレーブ第1処理及び初期モードスレーブ第2処理の流れを表すフローチャートである。
図13及び図14は、それぞれスレーブノード400による通常モードスレーブ第1処理及び通常モードスレーブ第2処理の流れを表すフローチャートである。
スレーブノード400a~400cは、それぞれ個別に図10、図12、図13及び図14に表される処理を実行する。
9 and 11 are flowcharts showing the flow of the master first process and the master second process by the
10 and 12 are flowcharts showing the flow of the initial mode slave first process and the initial mode slave second process by the
FIGS. 13 and 14 are flowcharts showing the flow of the normal mode slave first process and the normal mode slave second process by the
The
まず、図9を参照してマスタノード300によるマスタ第1処理について説明する。
まず、マスタノード300がSyncメッセージをスレーブノード400へ送信する(ステップS201)。具体的には、パケット生成部303がSyncメッセージを生成し、パケット送信部304がSyncメッセージをスレーブノード400(400a~400c)へブロードキャスト送信する。
次に、マスタノード300がSync送信時刻Tm(0)を記録する(ステップS202)。具体的には、パケット生成部303がマスタクロック部302を参照してSync送信時刻Tm(0)を取得し保持する。
そして、マスタノード300がFollow_upメッセージをスレーブノード400へ送信する(ステップS203)。具体的には、パケット生成部303が、Sync送信時刻Tm(0)を格納したFollow_upメッセージを生成し、パケット送信部304がFollow_upメッセージをスレーブノード400(400a~400c)にブロードキャスト送信する。
マスタノード300は、このマスタ第1処理を定期的に繰り返し実行する。
First, the master first process by the
First, the
Next, the
Then, the
The
次に、図10を参照してスレーブノード400による初期モードスレーブ第1処理について説明する。
まず、スレーブノード400はマスタノード300からSyncメッセージを受信する(ステップS301)。具体的には、パケット受信部401は、マスタノード300からSyncメッセージを受信し、受信したSyncメッセージをPLL部402、遅延計測部403、時刻同期制御部405に転送する。
Syncメッセージ受信後の動作は、ステップS302~S306の処理と、ステップS307及びステップS308の処理とが並行して実行される。
Next, the initial mode slave first processing by the
First, the
In the operation after receiving the Sync message, the processes in steps S302 to S306 and the processes in steps S307 and S308 are executed in parallel.
まず、ステップS302~S306の処理について説明する。
まず、スレーブノード400がSync受信時刻Ts(0)を記録する(ステップS302)。具体的には、時刻同期制御部405のパケット解析部701が、Syncメッセージの受信に応じて、スレーブクロック部404を参照してSync受信時刻Ts(0)を取得し、RTT計算部703に通知する。
First, the processing in steps S302 to S306 will be described.
First, the
次に、スレーブノード400がマスタノード300からFollow_upメッセージを受信する(ステップS303)。具体的には、パケット受信部401がマスタノード300からFollow_upメッセージを受信し、受信されたFollow_upメッセージを時刻同期制御部405に転送する。
次に、スレーブノード400がSync送信時刻Tm(0)を記録する(ステップS304)。具体的には、時刻同期制御部405のパケット解析部701が、Follow_upメッセージの受信に応じて、Follow_upメッセージのペイロード部に格納されたSync送信時刻Tm(0)を抽出して取得する。そして、パケット解析部701が、取得されたSync送信時刻Tm(0)をRTT計算部703に通知する。
Next, the
Next, the
次に、スレーブノード400がDelay_Requestメッセージをマスタノード300へ送信する(ステップS305)。具体的には、パケット解析部701がパケット生成部702に対し、Delay_Requestメッセージの生成トリガを送る。これにより、パケット生成部702が生成トリガに応じてDelay_Requestメッセージを生成し、パケット送信部406に転送する。そして、パケット送信部406がマスタノード300に対して、Delay_Requestメッセージを送信する。
このとき、スレーブノード400がDelay送信時刻Ts(1)を記録する(ステップS306)。具体的には、パケット生成部702がスレーブクロック部404を参照して、Delay送信時刻Ts(1)を取得し、RTT計算部703に通知する。
Next, the
At this time, the
次に、ステップS307及びS308の処理について説明する。
まず、スレーブノード400が遅延量MS_Qを計測する(ステップS307)。具体的には、遅延計測部403のカウンタ最大値モニタ部502及び到着時カウンタ値モニタ部503がパケットカウンタ501のカウンタ値をモニタし、それぞれ所定のインターバル期間における最大カウンタ値及び各Syncメッセージ到着時のカウンタ値を取得する。そして、遅延計測部403の遅延算出部504が双方のカウンタ値に基づいて遅延量MS_Qを算出する。
Next, the processing of steps S307 and S308 will be described.
First, the
次に、スレーブノード400が、計測された遅延量MS_Qを記録する(ステップS308)。具体的には、遅延算出部504が、算出された遅延量MS_Qを時刻同期制御部405の伝播遅延モニタ部704に通知する。
Next, the
次に、図11を参照してマスタノード300によるマスタ第2処理について説明する。
まず、マスタノード300がスレーブノード400からDelay_Requestメッセージを受信する(ステップS401)。具体的には、パケット受信部305がスレーブノード400からDelay_Requestメッセージを受信し、受信されたDelay_Requestメッセージをパケット生成部303に転送する。
Next, the master second process by the
First, the
次に、マスタノード300がDelay受信時刻Tm(1)を記録する(ステップS402)。具体的には、パケット生成部303が、Delay_Requestメッセージの受信に応じて、マスタクロック部302を参照してDelay_Requestメッセージ受信時の時刻Tm(1)を取得する。そして、パケット生成部303が、各Delay_Requestメッセージの送信元であるスレーブノード400a~400cのノード情報に対応付けて、各Delay_RequestメッセージのDelay受信時刻Tm(1)を記録する。
Next, the
次に、マスタノード300が、Delay受信時刻Tm(1)が格納されたDelay_Responseメッセージを、各スレーブノード400a~400cに対して送信する(ステップS403)。
具体的には、パケット生成部303が、各スレーブノード400a~400cに対応する時刻情報Tm(1)を格納したDelay_Responseメッセージを生成し、パケット送信部304に転送する。そして、パケット送信部304がスレーブノード400a~400cに対して、各Delay_Responseメッセージをユニキャスト送信する。
Next, the
Specifically, the
次に、図12を参照してスレーブノード400による初期モードスレーブ第2処理について説明する。
まず、スレーブノード400がマスタノード300からDelay_Responseメッセージを受信する(ステップS501)。具体的には、パケット受信部401がマスタノード300からDelay_Responseメッセージを受信し、受信されたDelay_Responseメッセージを時刻同期制御部405に転送する。
Next, the initial mode slave second processing by the
First, the
次に、スレーブノード400が、受信されたDelay_ResponseメッセージからDelay受信時刻Tm(1)を抽出し記録する(ステップS502)。具体的には、時刻同期制御部405のパケット解析部701が、Delay_Responseメッセージの受信に応じて、Delay_Responseメッセージのペイロード部に格納されたDelay受信時刻Tm(1)を抽出し取得する。そして、パケット解析部701が、取得されたDelay受信時刻Tm(1)をRTT計算部703に通知する。
Next, the
次に、スレーブノード400が、RTT値を算出する(ステップS503)。具体的には、RTT計算部703が、パケット解析部701及びパケット生成部702から受信するSync送信時刻Tm(0)、Sync受信時刻Ts(0)、Delay送信時刻Ts(1)、Delay受信時刻Tm(1)を用いて、以下の式12に基づきRTT値を計算する。
RTT = Tm(1) - Tm(0) - (Ts(1) - Ts(0)) ・・・式12
その後、RTT計算部703は、算出されたRTT値を伝播遅延モニタ部704に通知する。
Next, the
RTT = Tm (1)-Tm (0)-(Ts (1)-Ts (0))
Thereafter, the
次に、スレーブノード400が、シーケンス(一連のメッセージ交換)毎に伝播遅延量候補Xを算出する(ステップS504)。
スレーブノード400は、この伝播遅延量候補Xの算出を、所定の期間内のメッセージ交換毎に繰り返し実行する(ステップS505)。具体的には、一回の一連のメッセージ交換において、伝播遅延モニタ部704は、以下の式13に基づき、一つの伝播遅延量候補Xを算出する。そして、伝播遅延モニタ部704は、伝播遅延量候補Xの算出を、所定の期間内のメッセージ交換毎に繰り返し実行する。
X = RTT - MS_Q ・・・式13
Next, the
The
X = RTT-MS_Q Equation 13
所定の期間が経過すると(ステップS505-YES)、スレーブノード400は、所定の期間内に算出された伝播遅延量候補Xに基づいて伝播遅延量Pを決定する(ステップS506)。具体的には、伝播遅延モニタ部704は、所定の期間内に算出された伝播遅延量候補Xの最小値を往復伝播遅延量2Pとして検出する。そして、伝播遅延モニタ部704は、往復伝播遅延量2Pを1/2することによって、伝播遅延量Pを決定する。
When the predetermined period has elapsed (step S505-YES), the
なお、伝播遅延量候補Xの最小値Xminが往復伝播遅延量2Pとなる理由は以下の通りである。
RTT値は、マスタノード300からスレーブノード400への伝送遅延(伝播遅延+キューイング遅延=P + MS_Q)と、スレーブノード400からマスタノード300への伝送遅延(伝播遅延+キューイング遅延=P + SM_Q)の和であるため、式14が成立する。
RTT = 2P + MS_Q + SM_Q ・・・式14
ここで、MS_Qを左辺に移項すると、式14は式15に変形できる。
RTT - MS_Q = 2P + SM_Q ・・・式15
The reason why the minimum value Xmin of the propagation delay amount candidate X becomes the round trip propagation delay amount 2P is as follows.
The RTT value includes a transmission delay from the
RTT = 2P + MS_Q +
Here, when MS_Q is moved to the left side,
RTT-MS_Q = 2P +
式15から明らかなように、伝播遅延量候補Xは、2P + SM_Q と等しい。ここで、往復伝播遅延量2Pは固定値であり、キューイング遅延の遅延量SM_Qは変動値である。遅延量SM_Qはネットワーク状況によりゼロとなることがある。
したがって、上述のように所定の期間内で複数の伝播遅延量候補Xを計測しその最小値(Xmin)を求めると、その値は、遅延量SM_Q =0の場合の伝播遅延量候補Xである可能性が極めて高く、そのように近似することが可能である。そして、SM_Q = 0の場合の伝播遅延量候補Xは、X = 2P であり、片道の伝播遅延量P = Xmin/2 となる。
As is clear from
Therefore, when a plurality of propagation delay amount candidates X are measured within a predetermined period and the minimum value (Xmin) is obtained as described above, the value is the propagation delay amount candidate X when the delay amount SM_Q = 0. The possibility is very high and can be approximated as such. The propagation delay amount candidate X in the case of SM_Q = 0 is X = 2P, and the one-way propagation delay amount P = Xmin / 2.
伝播遅延モニタ部704は、伝播遅延量Pを算出すると、算出された伝播遅延量Pをオフセット計算部705に通知する。
なお、上記のステップS505における所定の期間は、初期モードで動作する時間よりも短く設定される。すなわち、初期モードの処理は、ステップS505の所定の期間経過後に、ステップS506の処理によって伝播遅延量Pが算出されてオフセット計算部705に通知された後に終了する。
After calculating the propagation delay amount P, the propagation
The predetermined period in step S505 is set to be shorter than the time for operating in the initial mode. That is, the process in the initial mode ends after the propagation delay amount P is calculated by the process in step S506 and notified to the offset
次に、図13を参照してスレーブノード400による通常モードスレーブ第1処理について説明する。
まず、スレーブノード400がマスタノード300からSyncメッセージを受信する。具体的には、パケット受信部401は、マスタノード300からSyncメッセージを受信し、受信したSyncメッセージをPLL部402、遅延計測部403、時刻同期制御部405に転送する。Syncメッセージ受信後の動作は、ステップS602~S609の処理と、ステップS610及びステップS611の処理とが並行して実行される。
Next, the normal mode slave first process by the
First, the
まず、ステップS602~S609の処理について説明する。まず、スレーブノード400がSync受信時刻Ts(0)を記録する(ステップS602)。具体的には、時刻同期制御部405のパケット解析部701が、Syncメッセージの受信に応じて、スレーブクロック部404を参照してSync受信時刻Ts(0)を取得し、オフセット計算部705に通知する。
First, the processing of steps S602 to S609 will be described. First, the
次に、スレーブノード400がマスタノード300からFollow_upメッセージを受信する(ステップS603)。具体的には、パケット受信部401がマスタノード300からFollow_upメッセージを受信し、受信されたFollow_upメッセージを時刻同期制御部405に転送する。
次に、スレーブノード400がSync送信時刻Tm(0)を記録する(ステップS604)。具体的には、時刻同期制御部405のパケット解析部701が、Follow_upメッセージの受信に応じて、Follow_upメッセージのペイロード部に格納されたSync送信時刻Tm(0)を抽出して取得する。そして、パケット解析部701が、取得されたSync送信時刻Tm(0)をオフセット計算部705に通知する。その後、パケット解析部701が、パケット生成部702に対しDelay_Requestメッセージの生成トリガを通知する。
Next, the
Next, the
次に、スレーブノード400が伝送遅延MS_Diffを計算する(ステップS605)。具体的には、オフセット計算部705が、Sync送信時刻Tm(0)及びSync受信時刻Ts(0)を用いて、以下の式16に基づいて、マスタノード300とスレーブノード400との間の伝送遅延MS_Diffを計算し保持する。
MS_Diff = Ts(0) - Tm(0) ・・・式16
Next, the
MS_Diff = Ts (0)-Tm (0)
次に、スレーブノード400がOffsetを計算する(ステップS606)。具体的には、オフセット計算部705が、伝送遅延MS_Diffと、遅延量MS_Qと、伝播遅延量Pとを用いて、以下の式17に基づいて、Offsetを計算する。そして、オフセット計算部705が、算出されたOffsetを時刻調整部706に通知する。
Next, the
Offset = MS_Diff - P - MS_Q ・・・式17
式17は、以下のように求められる。
MS_Diffと、遅延量MS_Qと、初期モードスレーブ第2処理で計測された伝播遅延Pとを用いて、以下の式18が成立する。
MS_Diff = P + MS_Q + Offset ・・・式18
そして、式18を変形することによって、上記の式17を求めることができる。
Offset = MS_Diff-P-MS_Q Equation 17
Equation 17 is obtained as follows.
Using MS_Diff, delay amount MS_Q, and propagation delay P measured in the initial mode slave second process, the following Expression 18 is established.
MS_Diff = P + MS_Q + Offset ・ ・ ・ Equation 18
Then, the above equation 17 can be obtained by transforming the equation 18.
次に、スレーブノード400がOffsetに基づいてスレーブ時刻を調整する(ステップS607)。具体的には、時刻調整部706は、Offsetが正の値の場合にはスレーブ時刻をOffset分遅らせ、Offsetが負の値の場合にはスレーブ時刻をOffset分進める。このようなスレーブ時刻の調整により、スレーブ時刻はマスタノード300のマスタ時刻に同期する。
Next, the
次に、スレーブノード400がDelay_Requestメッセージをマスタノード300へ送信する(ステップS608)。具体的には、パケット解析部701がパケット生成部702に対し、Delay_Requestメッセージの生成トリガを送る。パケット生成部702が生成トリガに応じてDelay_Requestメッセージを生成し、パケット送信部406に転送する。そして、パケット送信部406がマスタノード300に対して、Delay_Requestメッセージを送信する。
このとき、スレーブノード400がDelay送信時刻Ts(1)を記録する(ステップS609)。具体的には、パケット生成部702がスレーブクロック部404を参照して、Delay送信時刻Ts(1)を取得し、オフセット計算部705に通知する。
Next, the
At this time, the
次に、ステップS610及びS611の処理について説明する。
まず、スレーブノード400が遅延量MS_Qを計測する(ステップS610)。具体的には、遅延計測部403のカウンタ最大値モニタ部502及び到着時カウンタ値モニタ部503がパケットカウンタ501のカウンタ値をモニタし、それぞれ所定のインターバル期間における最大カウンタ値及び各Syncメッセージ到着時のカウンタ値を取得する。そして、遅延計測部403の遅延算出部504が双方のカウンタ値に基づいて遅延量MS_Qを算出する。
Next, the processing of steps S610 and S611 will be described.
First, the
次に、スレーブノード400が、計測された遅延量MS_Qを記録する(ステップS611)。具体的には、遅延算出部504が、算出された遅延量MS_Qを時刻同期制御部405のオフセット計算部705に通知する。ここで通知された遅延量MS_Qは、S606におけるOffsetの計算に用いられる。
Next, the
次に、図14を参照してスレーブノード400による通常モードスレーブ第2処理について説明する。
まず、スレーブノード400がDelay_Responseメッセージを受信する(ステップS701)。具体的には、パケット受信部401が、マスタノード300からDelay_Responseメッセージを受信し、受信したDelay_Responseメッセージを時刻同期制御部405に転送する。
Next, the normal mode slave second processing by the
First, the
次に、スレーブノード400がDelay受信時刻Tm(1)を抽出する(ステップS702)。
具体的には、時刻同期制御部405のパケット解析部701は、Delay_Responseメッセージのペイロード部に格納されるDelay受信時刻Tm(1)を抽出し、取得する。そして、パケット解析部701は、取得されたDelay受信時刻Tm(1)を、オフセット計算部705に通知する。
Next, the
Specifically, the
以上、各動作について説明した。
初期モードでは、マスタ第1処理、初期モードスレーブ第1処理、マスタ第2処理、初期モードスレーブ第2処理の順で処理が実行される。
通常モードでは、マスタ第1処理、通常モードスレーブ第1処理、マスタ第2処理、通常モードスレーブ第2処理の順で処理が実行される。
The operation has been described above.
In the initial mode, processing is executed in the order of master first processing, initial mode slave first processing, master second processing, and initial mode slave second processing.
In the normal mode, processing is executed in the order of master first processing, normal mode slave first processing, master second processing, and normal mode slave second processing.
通常モードはOffsetを求めスレーブ時刻を調整するために実行されるが、その処理は図13のステップS607で完了する。すなわち、初期モードにおいて伝播遅延Pが算出されているため、通常モードではSync受信時刻Tm(0)及びSync送信時刻Ts(0)のみでOffsetを算出できる。したがって、通常モードでは、SyncメッセージのOne-wayのみのメッセージ交換でOffsetを導出可能である。
上述の通常モードの説明では、標準IEEE1588v2 w/TCのメッセージ交換との整合性を考え、Delay_Requestメッセージ以降の処理(図13のステップS608及びS609、図11、図14)についても記述したが、これらの処理はなくても良い。
The normal mode is executed to obtain an offset and adjust the slave time, but the process is completed in step S607 in FIG. That is, since the propagation delay P is calculated in the initial mode, the offset can be calculated only in the Sync reception time Tm (0) and the Sync transmission time Ts (0) in the normal mode. Therefore, in the normal mode, the Offset can be derived by exchanging only one-way Sync messages.
In the description of the normal mode described above, processing after the Delay_Request message (steps S608 and S609 in FIG. 13, FIGS. 11 and 14) has been described in consideration of consistency with the message exchange of the standard IEEE1588v2 w / TC. There is no need to perform this process.
図15~図17は、初期モードにおける通信システム1による時刻同期処理の具体例を表すシーケンス図である。以下の説明では、初期モードとして3サイクルのメッセージ交換が行われる場合の例について説明する。
すなわち、図15は初期モードにおける1サイクル目のメッセージ交換を表し、図16は初期モードにおける2サイクル目のメッセージ交換を表し、図17は初期モードにおける3サイクル目のメッセージ交換を表す。
15 to 17 are sequence diagrams showing specific examples of time synchronization processing by the
15 shows message exchange in the first cycle in the initial mode, FIG. 16 shows message exchange in the second cycle in the initial mode, and FIG. 17 shows message exchange in the third cycle in the initial mode.
図15~図17では、マスタノード300に対するスレーブノード400のOffsetが“3”、マスタノード300とスレーブノード400との間の伝播遅延量Pが“3”である。
また、マスタノード300からスレーブノード400へのキューイング遅延の遅延量MS_Qは、図15では“2”、図16では“1”、図17では“2”である。
また、スレーブノード400からマスタノード300へのキューイング遅延の遅延量SM_Qは、図15では“2”、図16では“4”、図17では“0”である。
なお、図15~図17では、説明の便宜のため、マスタ時刻及びスレーブ時刻を時/分/秒の表記ではなく、整数値で示す。
15 to 17, the offset of the
Further, the delay amount MS_Q of the queuing delay from the
Further, the delay amount SM_Q of the queuing delay from the
15 to 17, for convenience of explanation, the master time and the slave time are indicated by integer values instead of the notation of hour / minute / second.
図15では、マスタ第1処理においてSync送信時刻Tm(0)は、“4”である。初期モードスレーブ第1処理において、Sync受信時刻Ts(0)は“12”であり、Delay送信時刻Ts(1)は“16”である。マスタ第2処理において、Delay受信時刻Tm(1)は“18”である。
マスタノード300からスレーブノード400へのキューイング遅延の遅延量MS_Qは、初期モードスレーブ第1処理において遅延計測部403によって“2”と計測される。RTT計算部703は、以上の各値を用いて、以下のとおりRTT値を算出する。
RTT = (Tm(1) -Tm(0)) - {(Ts(1) - Ts(0))} = 18 - 4 - (16 - 12) = 14 - 4 = 10
In FIG. 15, the Sync transmission time Tm (0) in the first master process is “4”. In the initial mode slave first process, the Sync reception time Ts (0) is “12”, and the Delay transmission time Ts (1) is “16”. In the second master process, the delay reception time Tm (1) is “18”.
The delay amount MS_Q of the queuing delay from the
RTT = (Tm (1) -Tm (0))-{(Ts (1)-Ts (0))} = 18-4-(16-12) = 14-4 = 10
さらに、伝播遅延モニタ部704は、以下のとおり伝播遅延量候補Xを求める。ここで、図15において求められる伝播遅延量候補Xは初期モードの1サイクル目の値であるため、伝播遅延量候補X(1)と表すと、以下のように求められる。
X(1) = RTT - MS_Q = 10 - 2 = 8
Further, the propagation
X (1) = RTT-MS_Q = 10-2 = 8
図16では、マスタ第1処理においてSync送信時刻Tm(0)は、“4”である。初期モードスレーブ第1処理において、Sync受信時刻Ts(0)は“11”であり、Delay送信時刻Ts(1)は“15”である。マスタ第2処理において、Delay受信時刻Tm(1)は“19”である。
マスタノード300からスレーブノード400へのキューイング遅延の遅延量MS_Qは、初期モードスレーブ第1処理において遅延計測部403によって“1”と計測される。RTT計算部703は、以上の各値を用いて、以下のとおりRTT値を算出する。
RTT = (Tm(1) - Tm(0)) - {(Ts(1) - Ts(0))} = 19 - 4 - (15 - 11) = 15 - 4 = 11
In FIG. 16, the Sync transmission time Tm (0) in the first master process is “4”. In the initial mode slave first process, the Sync reception time Ts (0) is “11”, and the Delay transmission time Ts (1) is “15”. In the second master process, the delay reception time Tm (1) is “19”.
The delay amount MS_Q of the queuing delay from the
RTT = (Tm (1)-Tm (0))-{(Ts (1)-Ts (0))} = 19-4-(15-11) = 15-4 = 11
さらに、伝播遅延モニタ部704は、以下のとおり伝播遅延量候補Xを求める。ここで、図16において求められる伝播遅延量候補Xは初期モードの2サイクル目の値であるため、伝播遅延量候補X(2)と表すと、以下のように求められる。
X(2) = RTT - MS_Q = 11 - 1 = 10
Further, the propagation
X (2) = RTT-MS_Q = 11-1 = 10
図17では、マスタ第1処理においてSync送信時刻Tm(0)は、“4”である。初期モードスレーブ第1処理において、Sync受信時刻Ts(0)は“12”であり、Delay送信時刻Ts(1)は“15”である。マスタ第2処理において、Delay受信時刻Tm(1)は“15”である。
マスタノード300からスレーブノード400へのキューイング遅延の遅延量MS_Qは、初期モードスレーブ第1処理において遅延計測部403によって“2”と計測される。RTT計算部703は、以上の各値を用いて、以下のとおりRTT値を算出する。
RTT = (Tm(1) - Tm(0)) - {(Ts(1) - Ts(0))} = 15 - 4 - (15 - 12) = 11 - 3 = 8
In FIG. 17, the Sync transmission time Tm (0) in the first master process is “4”. In the initial mode slave first process, the Sync reception time Ts (0) is “12”, and the Delay transmission time Ts (1) is “15”. In the second master process, the delay reception time Tm (1) is “15”.
The delay amount MS_Q of the queuing delay from the
RTT = (Tm (1)-Tm (0))-{(Ts (1)-Ts (0))} = 15-4-(15-12) = 11-3 = 8
さらに、伝播遅延モニタ部704は、以下のとおり伝播遅延量候補Xを求める。ここで、図17において求められる伝播遅延量候補Xは初期モードの3サイクル目の値であるため、伝播遅延量候補X(3)と表すと、以下のように求められる。
X(3) = RTT - MS_Q = 8 - 2 = 6
Further, the propagation
X (3) = RTT-MS_Q = 8-2 = 6
以上の3回の初期モードにおける計測によって、X(1)=8、X(2)=10、X(3)=6となり、伝播遅延量候補Xの最小値は“6”となる。前述のように、X = 2P + SM_Qであり、Xが最小値の時は、SM_Q = 0と考えられるため、X = 2Pより、伝播遅延量Pは“3”と求められる。これは、設定している条件の伝播遅延“3”が正しく求められていることを示している。 By the above three measurements in the initial mode, X (1) = 8, X (2) = 10, X (3) = 6, and the minimum value of the propagation delay amount candidate X is “6”. As described above, when X = 2P + SM_Q, and when X is the minimum value, it is considered that SM_Q 考 え = 0. Therefore, from X = 2P, the propagation delay amount P is obtained as “3”. This indicates that the propagation delay “3” of the set condition is correctly obtained.
図18は、通常モードにおける通信システム1による時刻同期処理の具体例を表すシーケンス図である。図18では、マスタノード300に対するスレーブノード400のOffsetが“3”、 マスタノード300とスレーブノード400との間の伝播遅延量Pが“3”であり、図15~図17と同様である。
また、マスタノード300からスレーブノード400へのキューイング遅延の遅延量MS_Qは“2”、スレーブノード400からマスタノード300へのキューイング遅延の遅延量SM_Qは、“3”である。
FIG. 18 is a sequence diagram illustrating a specific example of time synchronization processing by the
Further, the delay amount MS_Q of the queuing delay from the
図18では、マスタ第1処理においてSync送信時刻Tm(0)は、“4”である。通常モードスレーブ第1処理において、Sync受信時刻Ts(0)は“12”である。マスタノード300からスレーブノード400へのキューイング遅延の遅延量MS_Qは、通常モードスレーブ第1処理において遅延計測部403によって“2”と計測される。
In FIG. 18, the Sync transmission time Tm (0) in the master first process is “4”. In the first normal mode slave process, the Sync reception time Ts (0) is “12”. The delay amount MS_Q of the queuing delay from the
オフセット計算部705は、以上の各値を用いて、以下のとおりOffsetを算出する。
Offset = MS_Diff - P - MS_Q
= (12 - 4) - 3 - 2
= 3
The offset
Offset = MS_Diff-P-MS_Q
= (12-4)-3-2
= 3
図18では、設定されているOffsetが“3”であるため、通信システム1の時刻同期処理によって、Syncメッセージのみの送受信からOffsetが正確に求められていることが分かる。
In FIG. 18, since the set offset is “3”, it can be seen that the offset is accurately obtained from the transmission / reception of only the Sync message by the time synchronization processing of the
図19A,19Bは、通信システム1において計測される遅延量の確率分布を表す図である。図19A,19Bにおける実験では、パケットネットワークPNの代わりにネットワークエミュレータを接続し、マスタノード300から定期的に送信されるSyncメッセージのパケットに対して遅延量を付加し、スレーブノード400において遅延計測部403において遅延量を測定した。
図19A,19Bでは、それぞれ、ネットワークエミュレータによって付加した遅延量の分布と、スレーブノード400で計測された遅延量の分布を示している。各図の横軸が遅延量を表し、縦軸が確率を示す。
一様分布(図19A)及びポアソン分布(図19B)のいずれの場合も、計測された遅延量の分布がネットワークエミュレータによって付加された遅延量の分布とほぼ一致している。したがって、遅延計測部403において、遅延量MS_Qが正しく計測できていることが明らかである。そのため、通信システム1による時刻同期処理によって、Offsetの値を正確に算出し、マスタ時刻に対してスレーブ時刻を正確に同期できていることが明らかである。
19A and 19B are diagrams illustrating probability distributions of delay amounts measured in the
19A and 19B show the distribution of the delay amount added by the network emulator and the distribution of the delay amount measured by the
In both cases of the uniform distribution (FIG. 19A) and the Poisson distribution (FIG. 19B), the distribution of the measured delay amount substantially coincides with the delay amount distribution added by the network emulator. Therefore, it is clear that the
上記の通信システム1によれば、スレーブノード400の遅延計測部403が、Syncメッセージの送受信に基づいて、マスタノード300からスレーブノード400へのキューイング遅延の遅延量MS_Qを計測する。
また、スレーブノード400の伝播遅延モニタ部704が、マスタノード300とスレーブノード400との間の伝播遅延量Pを計測する。
そして、スレーブノード400のオフセット計算部705が、Sync送信時刻Tm(0)及びSync受信時刻Ts(0)と、遅延量MS_Qと、伝播遅延量Pとを用いて、Offsetを計算する。
これによって、Pure IEEE1588のように、双方向のキューイング遅延を等しいと仮定してOffsetを算出する場合に比べて、双方向のキューイング遅延の実際の差異によって生じる誤差を除外することができ、より精度の高い時刻同期を実現することが可能となる。
According to the
Further, the propagation
Then, the offset
This eliminates the error caused by the actual difference in bidirectional queuing delay compared to the case of calculating Offset assuming that the bidirectional queuing delay is equal as in Pure IEEE1588. It becomes possible to realize time synchronization with higher accuracy.
また、通信システム1では、各々の方向のキューイング遅延の遅延量を、マスタノード300及びスレーブノード400のみによって計測することができる。そのため、パケットネットワークPNにおける中継ノードにおいてTC機能などの特別な機能を実装する必要がなく、既存の中継ノードで対応することが可能である。
すなわち、中継ノードに対してTC機能を実装する必要があるIEEE1588v2 w/TCに比べて、中継ノードを置き換える必要が全く生じず、導入に要するコストを抑えることができ、導入が容易であるという効果がある。
また、通信システム1では、通常モードにおいて、Syncメッセージの送受信のみによって上記のような精度の高い時刻同期を実現することが可能となる。
Further, in the
In other words, compared to IEEE 1588v2 w / TC, which needs to implement the TC function for the relay node, there is no need to replace the relay node at all, the cost required for the introduction can be suppressed, and the introduction is easy There is.
In the
<変形例>
遅延計測部403は、パケットカウンタ501に代えてパケットバッファを用いて構成されても良い。
パケットバッファは、パケット受信部401からDelay_Requestメッセージのパケットを受信すると、受信されたパケットをバッファに蓄積する。また、パケットバッファは、VCO410で決定される周波数に従って、蓄積しているパケットを出力する。
図20は、パケットバッファを用いて構成された場合の、遅延計測部403の処理の概略を表す図である。
図20において、縦軸はバッファへの蓄積量を表し、下から上へ向けて高い蓄積量を表す。横軸は時間を表し、左から右へ向けて進行する。
縦に伸びる等間隔に並んだ複数の破線は、キューイング遅延が発生しない場合にDelay_Requestメッセージのパケットが受信されるタイミング(バッファに蓄積されるタイミング)を表す。
上方向を指す矢印は、Delay_Requestメッセージのパケットが実際に受信されたタイミング(実際にバッファに蓄積されたタイミング)を表す。
パケットバッファは、Delay_Requestメッセージのパケットが受信されると、受信されたビット数分だけ蓄積量が増加する。縦に伸びる破線と上方向の矢印とが時間軸で一致している場合、すなわちキューイング遅延が発生せずにDelay_Requestメッセージのパケットが受信されている場合は、読み出されたタイミング(蓄積量が減るタイミング)から新たに受信されるタイミング(蓄積量が増えるタイミング)との間の時間幅は最小Tminとなる。一方、キューイング遅延が発生している場合には、上記の時間幅はTminよりも大きい値となる。このとき、最小値Tminと時間幅との差分が、発生しているキューイング遅延の遅延量と等価となる。
<Modification>
The
When receiving the packet of the Delay_Request message from the
FIG. 20 is a diagram illustrating an outline of processing of the
In FIG. 20, the vertical axis represents the accumulation amount in the buffer, and represents a high accumulation amount from bottom to top. The horizontal axis represents time and progresses from left to right.
A plurality of broken lines arranged at equal intervals extending in the vertical direction indicate the timing at which a packet of a Delay_Request message is received (timing accumulated in a buffer) when no queuing delay occurs.
The arrow pointing upward indicates the timing at which the Delay_Request message packet is actually received (the timing at which the packet is actually stored in the buffer).
When a packet of a Delay_Request message is received, the amount of accumulation in the packet buffer is increased by the number of received bits. When the vertically extending broken line and the upward arrow coincide with each other on the time axis, that is, when a Delay_Request message packet is received without causing a queuing delay, the read timing (accumulation amount is The time width between the timing (decrease timing) and the newly received timing (timing when the accumulation amount increases) is the minimum Tmin. On the other hand, when a queuing delay occurs, the above time width becomes a value larger than Tmin. At this time, the difference between the minimum value Tmin and the time width is equivalent to the delay amount of the generated queuing delay.
なお、上述した遅延計測部403のいずれの構成も、遅延を計測するための構成の一例にすぎず、キューイング遅延の遅延量MS_Qを計測できる構成であればその他の構成が採用されても良い。
Note that any of the configurations of the
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。 As described above, the embodiment of the present invention has been described in detail with reference to the drawings. However, the specific configuration is not limited to this embodiment, and includes a design and the like within the scope not departing from the gist of the present invention.
本発明によれば、モバイルバックホールやファクトリオートメーション、家庭内AV用LANなどにおいて、コストを抑えた高精度の時刻同期を実現することが可能となる。 According to the present invention, it is possible to realize highly accurate time synchronization with reduced costs in mobile backhaul, factory automation, home AV LAN, and the like.
300…マスタノード, 301…クロック生成部, 302…マスタクロック部, 303…パケット生成部, 304…パケット送信部(送信部), 305…パケット受信部, 400…スレーブノード, 401…パケット受信部, 402…PLL部, 403…遅延計測部(遅延計測部), 404…スレーブクロック部, 405…時刻同期制御部, 406…パケット送信部(送信部), 407…位相比較器, 408…LPF, 409…PI制御器, 410…VCO, 411…カウンタ, 501…パケットカウンタ, 502…カウンタ最大値モニタ部, 503…到着時カウンタ値モニタ部, 504…遅延算出部, 701…パケット解析部, 702…パケット生成部, 703…RTT計算部, 704…伝播遅延モニタ部(伝播遅延計測部), 705…オフセット計算部, 706…時刻調整部 300 ... Master node, 301 ... Clock generation unit, 302 ... Master clock unit, 303 ... Packet generation unit, 304 ... Packet transmission unit (transmission unit), 305 ... Packet reception unit, 400 ... Slave node, 401 ... Packet reception unit, 402: PLL unit, 403: Delay measurement unit (delay measurement unit), 404 ... Slave clock unit, 405 ... Time synchronization control unit, 406 ... Packet transmission unit (transmission unit), 407 ... Phase comparator, 408 ... LPF, 409 ... PI controller, 410 ... VCO, 411 ... counter, 501 ... packet counter, 502 ... counter maximum value monitoring unit, 503 ... counter value monitoring unit upon arrival, 504 ... delay calculation unit, 701 ... packet analysis unit, 702 ... packet Generation unit, 703 ... RTT calculation unit, 70 ... propagation delay monitor (propagation delay measurement unit), 705 ... offset calculation section, 706 ... time adjustment unit
Claims (8)
前記マスタノードは、
前記スレーブノードに対し制御メッセージを送信する送信部と、
前記スレーブノードから制御メッセージを受信する受信部と、
を備え、
前記スレーブノードは、
前記マスタノードに対し制御メッセージを送信する送信部と、
前記マスタノードから前記制御メッセージを受信する受信部と、
前記マスタノードから前記スレーブノードへ送信される制御メッセージが通信経路において受けたキューイング遅延を表す遅延量を計測する遅延計測部と、
前記マスタノードと当該スレーブノードとの間の伝播遅延量を計測する伝播遅延計測部と、
前記遅延計測部によって計測された遅延量と、前記伝播遅延計測部によって計測された伝播遅延量とを用いて、前記スレーブノードにおける時刻と前記マスタノードにおける時刻との差分を計算し、前記スレーブノードにおける時刻を前記マスタノードにおける時刻に同期させる時刻同期制御部と、
を備えることを特徴とする時刻同期システム。 A time synchronization system that includes a master node and a slave node that communicate with each other, and synchronizes the time at the slave node with the time at the master node,
The master node is
A transmission unit for transmitting a control message to the slave node;
A receiver for receiving a control message from the slave node;
With
The slave node is
A transmitter for transmitting a control message to the master node;
A receiving unit for receiving the control message from the master node;
A delay measuring unit that measures a delay amount representing a queuing delay received in a communication path by a control message transmitted from the master node to the slave node;
A propagation delay measuring unit for measuring a propagation delay amount between the master node and the slave node;
The difference between the time at the slave node and the time at the master node is calculated using the delay amount measured by the delay measurement unit and the propagation delay amount measured by the propagation delay measurement unit, and the slave node A time synchronization controller that synchronizes the time at the master node with the time at the master node;
A time synchronization system comprising:
前記伝播遅延計測部は、所定の期間内に繰り返される前記制御メッセージの送受信における往復の伝送遅延量を検出し、前記往復の伝送遅延量と前記遅延計測部によって計測された遅延量との差分の最小値に基づいて前記伝播遅延量を計測することを特徴とする請求項1に記載の時刻同期システム。 The transmitting unit and the receiving unit of the master node and the transmitting unit and the receiving unit of the slave node each repeatedly transmit and receive the control message,
The propagation delay measurement unit detects a round-trip transmission delay amount in transmission / reception of the control message repeated within a predetermined period, and calculates a difference between the round-trip transmission delay amount and the delay amount measured by the delay measurement unit. The time synchronization system according to claim 1, wherein the propagation delay amount is measured based on a minimum value.
前記マスタノードに対し制御メッセージを送信する送信部と、
前記マスタノードから前記制御メッセージを受信する受信部と、
前記マスタノードから前記スレーブノードへ送信される制御メッセージが通信経路において受けたキューイング遅延を表す遅延量を計測する遅延計測部と、
前記マスタノードと当該スレーブノードとの間の伝播遅延量を計測する伝播遅延計測部と、
前記遅延計測部によって計測された遅延量と、前記伝播遅延計測部によって計測された伝播遅延量とを用いて、前記スレーブノードにおける時刻と前記マスタノードにおける時刻との差分を計算し、前記スレーブノードにおける時刻を前記マスタノードにおける時刻に同期させる時刻同期制御部と、
を備えることを特徴とするスレーブノード。 A slave node that synchronizes time with a master node that includes a transmitter that transmits a control message to a slave node and a receiver that receives a control message from the slave node,
A transmitter for transmitting a control message to the master node;
A receiving unit for receiving the control message from the master node;
A delay measuring unit that measures a delay amount representing a queuing delay received in a communication path by a control message transmitted from the master node to the slave node;
A propagation delay measuring unit for measuring a propagation delay amount between the master node and the slave node;
The difference between the time at the slave node and the time at the master node is calculated using the delay amount measured by the delay measurement unit and the propagation delay amount measured by the propagation delay measurement unit, and the slave node A time synchronization controller that synchronizes the time at the master node with the time at the master node;
A slave node comprising:
前記マスタノードが、前記スレーブノードに対し制御メッセージを送信する送信ステップと、
前記マスタノードが、前記スレーブノードから制御メッセージを受信する受信ステップと、
前記スレーブノードが、前記マスタノードに対し制御メッセージを送信する送信ステップと、
前記スレーブノードが、前記マスタノードから前記制御メッセージを受信する受信ステップと、
前記スレーブノードが、前記マスタノードから前記スレーブノードへ送信される制御メッセージが通信経路において受けたキューイング遅延を表す遅延量を計測する遅延計測ステップと、
前記スレーブノードが、前記マスタノードと当該スレーブノードとの間の伝播遅延量を計測する伝播遅延計測ステップと、
前記スレーブノードが、前記遅延計測ステップによって計測された遅延量と、前記伝播遅延計測ステップによって計測された伝播遅延量とを用いて、前記スレーブノードにおける時刻と前記マスタノードにおける時刻との差分を計算し、前記スレーブノードにおける時刻を前記マスタノードにおける時刻に同期させる時刻同期制御ステップと、
を備えることを特徴とする時刻同期方法。 A time synchronization method comprising a master node and a slave node that communicate with each other, and performed by a time synchronization system that synchronizes the time at the slave node with the time at the master node,
A transmission step in which the master node transmits a control message to the slave node;
A receiving step in which the master node receives a control message from the slave node;
A transmission step in which the slave node transmits a control message to the master node;
A receiving step in which the slave node receives the control message from the master node;
A delay measuring step in which the slave node measures a delay amount representing a queuing delay received in a communication path by a control message transmitted from the master node to the slave node;
A propagation delay measurement step in which the slave node measures a propagation delay amount between the master node and the slave node;
The slave node calculates a difference between the time at the slave node and the time at the master node using the delay amount measured at the delay measurement step and the propagation delay amount measured at the propagation delay measurement step. A time synchronization control step for synchronizing the time at the slave node with the time at the master node;
A time synchronization method comprising:
前記第一のコンピュータに対し、
前記スレーブノードに対し制御メッセージを送信する送信ステップと、
前記スレーブノードから制御メッセージを受信する受信ステップと、
を実行させ、
前記第二のコンピュータに対し、
前記マスタノードに対し制御メッセージを送信する送信ステップと、
前記マスタノードから前記制御メッセージを受信する受信ステップと、
前記マスタノードから前記スレーブノードへ送信される制御メッセージが通信経路において受けたキューイング遅延を表す遅延量を計測する遅延計測ステップと、
前記マスタノードと当該スレーブノードとの間の伝播遅延量を計測する伝播遅延計測ステップと、
前記遅延計測ステップによって計測された遅延量と、前記伝播遅延計測ステップによって計測された伝播遅延量とを用いて、前記スレーブノードにおける時刻と前記マスタノードにおける時刻との差分を計算し、前記スレーブノードにおける時刻を前記マスタノードにおける時刻に同期させる時刻同期制御ステップと、
を実行させることを特徴とする時刻同期用プログラム。 As a time synchronization system that includes a master node and a slave node that communicate with each other and synchronizes the time at the slave node with the time at the master node, a first computer that corresponds to the master node and a second computer that corresponds to the slave node A time synchronization program for operating,
For the first computer,
A transmission step of transmitting a control message to the slave node;
Receiving a control message from the slave node;
And execute
For the second computer,
A transmission step of transmitting a control message to the master node;
Receiving the control message from the master node;
A delay measuring step of measuring a delay amount representing a queuing delay received in a communication path by a control message transmitted from the master node to the slave node;
A propagation delay measuring step for measuring a propagation delay amount between the master node and the slave node;
Using the delay amount measured by the delay measurement step and the propagation delay amount measured by the propagation delay measurement step, the difference between the time at the slave node and the time at the master node is calculated, and the slave node A time synchronization control step of synchronizing the time at the master node with the time at the master node;
The program for time synchronization characterized by performing this.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009-287804 | 2009-12-18 | ||
| JP2009287804 | 2009-12-18 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2011074529A1 true WO2011074529A1 (en) | 2011-06-23 |
Family
ID=44167281
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2010/072358 Ceased WO2011074529A1 (en) | 2009-12-18 | 2010-12-13 | Time synchronization system, slave node, time synchronization method, and program for time synchronization |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2011074529A1 (en) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011135482A (en) * | 2009-12-25 | 2011-07-07 | Nec Corp | Time synchronizing system, master node, slave node, repeater, time synchronizing method, and program for time synchronization |
| WO2012086372A1 (en) * | 2010-12-24 | 2012-06-28 | 日本電気株式会社 | Transmission device, transmission method and computer program |
| JP2014165582A (en) * | 2013-02-22 | 2014-09-08 | Nippon Telegraph & Telephone East Corp | Time synchronization system, time synchronization method, slave node and computer program |
| WO2014146239A1 (en) * | 2013-03-19 | 2014-09-25 | Telefonaktiebolaget L M Ericsson(Publ) | Providing packet synchronization in a virtual private network |
| WO2019173875A1 (en) * | 2018-03-14 | 2019-09-19 | Locata Corporation Pty Ltd | Method and apparatus for synchronising a location network |
| WO2020201950A1 (en) * | 2019-04-01 | 2020-10-08 | Zomojo Pty Ltd | A method and apparatus for network time syncing |
| US20220150854A1 (en) * | 2020-11-11 | 2022-05-12 | Magna Electronics Inc. | Vehicular control system with synchronized communication between control units |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001177570A (en) * | 1999-12-17 | 2001-06-29 | Mitsubishi Electric Corp | Communication network system, slave device, master device, relay device in communication network system, and synchronization control method in communication network system |
| JP2005253033A (en) * | 2004-02-06 | 2005-09-15 | Nippon Telegr & Teleph Corp <Ntt> | Network synchronization device, clock transmission method, and clock transmission packet network |
-
2010
- 2010-12-13 WO PCT/JP2010/072358 patent/WO2011074529A1/en not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001177570A (en) * | 1999-12-17 | 2001-06-29 | Mitsubishi Electric Corp | Communication network system, slave device, master device, relay device in communication network system, and synchronization control method in communication network system |
| JP2005253033A (en) * | 2004-02-06 | 2005-09-15 | Nippon Telegr & Teleph Corp <Ntt> | Network synchronization device, clock transmission method, and clock transmission packet network |
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011135482A (en) * | 2009-12-25 | 2011-07-07 | Nec Corp | Time synchronizing system, master node, slave node, repeater, time synchronizing method, and program for time synchronization |
| WO2012086372A1 (en) * | 2010-12-24 | 2012-06-28 | 日本電気株式会社 | Transmission device, transmission method and computer program |
| JP5459415B2 (en) * | 2010-12-24 | 2014-04-02 | 日本電気株式会社 | Transmission apparatus, transmission method, and computer program |
| US8861668B2 (en) | 2010-12-24 | 2014-10-14 | Nec Corporation | Transmission device, transmission method and computer program |
| JP2014165582A (en) * | 2013-02-22 | 2014-09-08 | Nippon Telegraph & Telephone East Corp | Time synchronization system, time synchronization method, slave node and computer program |
| WO2014146239A1 (en) * | 2013-03-19 | 2014-09-25 | Telefonaktiebolaget L M Ericsson(Publ) | Providing packet synchronization in a virtual private network |
| WO2019173875A1 (en) * | 2018-03-14 | 2019-09-19 | Locata Corporation Pty Ltd | Method and apparatus for synchronising a location network |
| WO2020201950A1 (en) * | 2019-04-01 | 2020-10-08 | Zomojo Pty Ltd | A method and apparatus for network time syncing |
| US11962403B2 (en) | 2019-04-01 | 2024-04-16 | Cisco Technology, Inc. | Method and apparatus for network time syncing |
| US20220150854A1 (en) * | 2020-11-11 | 2022-05-12 | Magna Electronics Inc. | Vehicular control system with synchronized communication between control units |
| US11968639B2 (en) * | 2020-11-11 | 2024-04-23 | Magna Electronics Inc. | Vehicular control system with synchronized communication between control units |
| US12309726B2 (en) | 2020-11-11 | 2025-05-20 | Magna Electronics Inc. | Vehicular control system with synchronized communication between control units |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5515735B2 (en) | Time synchronization system, master node, slave node, relay device, time synchronization method, and time synchronization program | |
| US10979164B2 (en) | Peer-to-peer transparent clocks and methods of estimating skew in peer-to-peer transparent clocks | |
| JP6214008B2 (en) | Method and apparatus for communicating time information between time recognition devices | |
| WO2011074529A1 (en) | Time synchronization system, slave node, time synchronization method, and program for time synchronization | |
| US11018789B2 (en) | End-to-end transparent clocks and methods of estimating skew in end-to-end transparent clocks | |
| CN112217588B (en) | Timestamp jitter compensation method and system | |
| JP2010527193A (en) | Method and network component for synchronizing a clock of a network component to a clock of another network component | |
| CN103929293A (en) | Asymmetric delay time synchronization method and system | |
| CN101447861A (en) | IEEE 1588 time synchronization system and implementation method thereof | |
| CN103201971A (en) | Method for synchronizing master and slave clocks of packet-switched network with aggregated connections between nodes, and associated synchronization devices | |
| JP2014236443A (en) | Communication device, communication system, and communication method | |
| CN113259038A (en) | Time synchronization method, node, device and storage medium | |
| JP2020184710A (en) | Communication control device and communication control method | |
| JP2013017104A (en) | Communication system | |
| CN114157377B (en) | Power distribution terminal real-time clock synchronization method, synchronization system and power distribution terminal | |
| JP6227888B2 (en) | Communication system, synchronization system, and communication method | |
| EP3935764B1 (en) | Network entities and methods for a wireless network system for determining time information | |
| Krummacker et al. | Intra-network clock synchronization for wireless networks: From state of the art systems to an improved solution | |
| CN104243079A (en) | Microsecond clock synchronization method for real-time Ethernet | |
| CN106688207A (en) | Method for determining a propagation time of a telegram in a communication network, and corresponding network components | |
| KR20100048124A (en) | Time synchronization method in bridged local area network | |
| EP3231110A1 (en) | Method and devices for time transfer using end to end transparent clocks | |
| CN101420281A (en) | Be used between network element, transmitting the method and apparatus of time value in a few days | |
| Schüngel et al. | Single message distribution of timing information for time synchronization in converged wired and wireless networks | |
| JP2015117941A (en) | Communication system and time synchronization method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10837555 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 10837555 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: JP |