KR102380091B1 - Method and device for robust time synchronization with median filtering under mobile environments - Google Patents

Method and device for robust time synchronization with median filtering under mobile environments Download PDF

Info

Publication number
KR102380091B1
KR102380091B1 KR1020200108709A KR20200108709A KR102380091B1 KR 102380091 B1 KR102380091 B1 KR 102380091B1 KR 1020200108709 A KR1020200108709 A KR 1020200108709A KR 20200108709 A KR20200108709 A KR 20200108709A KR 102380091 B1 KR102380091 B1 KR 102380091B1
Authority
KR
South Korea
Prior art keywords
node
clock
time
logical
value
Prior art date
Application number
KR1020200108709A
Other languages
Korean (ko)
Other versions
KR20220027617A (en
Inventor
전영
김태준
김태홍
Original Assignee
충북대학교 산학협력단
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 충북대학교 산학협력단 filed Critical 충북대학교 산학협력단
Priority to KR1020200108709A priority Critical patent/KR102380091B1/en
Publication of KR20220027617A publication Critical patent/KR20220027617A/en
Application granted granted Critical
Publication of KR102380091B1 publication Critical patent/KR102380091B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • H04L7/002Arrangements for synchronising receiver with transmitter correction of synchronization errors correction by interpolation
    • H04L7/0025Arrangements for synchronising receiver with transmitter correction of synchronization errors correction by interpolation interpolation of clock signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • H04L7/027Speed or phase control by the received code signals, the signals containing no special synchronisation information extracting the synchronising or clock signal from the received signal spectrum, e.g. by using a resonant or bandpass circuit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W56/00Synchronisation arrangements
    • H04W56/001Synchronization between nodes
    • H04W56/0015Synchronization between nodes one node acting as a reference for the others

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 방법 및 시간 동기화 장치가 개시된다. 본 발명의 일실시예에 따른, 모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 방법은, 네트워크를 구성하는 임의의 노드에서, 주변의 이웃 노드로부터 동기화메시지를 수신하는 단계; 상기 동기화메시지가 수신되는 수신 횟수 Sj가 정해진 n 이상(상기 n은 2 이상의 자연수)일 경우, 상기 이웃 노드와의 Relative hardware clock rate Rij와, 상기 임의의 노드에 대한 Relative logical clock rate li를 계산하는 단계; 및 상기 Relative hardware clock rate Rij와, 상기 Relative logical clock rate li를 적어도 포함하는 연산식에 의해 연산되는 상기 이웃 노드에 대한 로지컬 클럭 중에서, 중간에 위치하는 중위값을 이용하여, 상기 임의의 노드에 대한 시간을 업데이트하여 동기화하는 단계를 포함한다.Disclosed are a time synchronization method and a time synchronization device centered on a median robust to a mobile environment. According to an embodiment of the present invention, a time synchronization method centered on a median robust to a mobile environment includes: receiving a synchronization message from a neighboring node in an arbitrary node constituting a network; When the number of times the synchronization message is received S j is greater than or equal to a predetermined n (where n is a natural number greater than or equal to 2), the relative hardware clock rate R ij with the neighbor node and the relative logical clock rate l i for the arbitrary node calculating ; and a median located in the middle among logical clocks for the neighboring node calculated by an equation including at least the Relative hardware clock rate R ij and the Relative logical clock rate l i , to the arbitrary node and synchronizing by updating the time.

Description

모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 방법 및 시간 동기화 장치{METHOD AND DEVICE FOR ROBUST TIME SYNCHRONIZATION WITH MEDIAN FILTERING UNDER MOBILE ENVIRONMENTS}A time synchronization method and a time synchronization device centered on the median robust to a mobile environment

본 발명은, 기기 사이에 시간을 빠르게 수렴하고, 복수의 노드가 넓게 분산된 환경에서, 고장 노드의 시간을 제외하는 과정을 통해서 동기화하는, 모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 방법 및 시간 동기화 장치를 제공하는 데에 있다.The present invention provides a time synchronization method and time centered on a median robust to a mobile environment, in which time converges quickly between devices and synchronizes through a process of excluding the time of a failed node in an environment in which a plurality of nodes are widely distributed It is to provide a synchronization device.

특히, 본 발명에서는, 이웃 노드들의 Absolute logical clock rate xj(t)와 Logical Clock Li(t)을, GTSP에서의 평균화 과정을 통하여 구하지 않고, 이웃 노드의 값들 중에서 최적의 값을 선택하여 자신의 값에 해당 값을 대입하는 방식으로 구하는, 모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 방법 및 시간 동기화 장치를 제공한다.In particular, in the present invention, the absolute logical clock rate x j (t) and the logical clock L i (t) of the neighboring nodes are not obtained through the averaging process in GTSP, but an optimal value is selected from among the values of the neighboring nodes. Provided are a time synchronization method and a time synchronization device centered on a median that is robust to a mobile environment, obtained by substituting a corresponding value for the value of .

네트워크 내에서는, 노드 간 신뢰성이 있는 통신을 위해, 기기 내부의 시간을 동기화해야 한다. 노드의 시간 동기화는, 기지국이 존재하는 네트워크와, 기지국이 존재하지 않는 네트워크로 나누어 생각할 수 있다.In the network, for reliable communication between nodes, the time inside the device must be synchronized. Time synchronization of nodes can be divided into a network in which a base station exists and a network in which a base station does not exist.

기지국이 존재하는 환경에서 네트워크 내에 있는 모든 노드는, 기지국으로부터 동기화 메시지를 받는다. 이때, 기지국이 네트워크의 넓은 범위를 커버할 수 있기 때문에, 기지국 내에 있는 노드들은, 기지국을 매개로 빠르고 정확하게 동기화될 수 있다.In the environment where the base station exists, all nodes in the network receive a synchronization message from the base station. At this time, since the base station can cover a wide range of the network, nodes in the base station can be quickly and accurately synchronized through the base station.

반면에 기지국이 존재하지 않는 환경에서는, 노드 간 시간 동기화를 위해, 각 노드가 가진 시간을 동기화 메시지에 내장하여 메시지를 교환하는 과정을 통해서 시간을 동기화 해야 한다.On the other hand, in an environment in which a base station does not exist, for time synchronization between nodes, the time of each node must be embedded in a synchronization message to synchronize the time through a message exchange process.

Ad-hoc 네트워크 내에서 동작하는 노드는, 컴퓨팅 시스템을 내장하고 있다. 일반적으로 노드는, 크리스탈 등의 발진기를 통해서 만들어진 클럭으로 동작한다. 발진기를 통해 생성되는 클럭은, '하드웨어 클럭(Hardware Clock)'으로 지칭된다. 하드웨어 클럭은, 처음 제조되었을 때에 설계한 시간으로 동작하지만, 기간이 경과됨에 따라 오차를 포함하게 된다.A node operating in an ad-hoc network has a built-in computing system. In general, a node operates with a clock generated through an oscillator such as a crystal. The clock generated through the oscillator is referred to as a 'hardware clock'. A hardware clock operates at the time it was designed for when it was first manufactured, but it contains errors as the time period elapses.

일반적인 하드웨어 클럭에 관한 수식은, [수학식 1]과 같다.Equation about a general hardware clock is as [Equation 1].

[수학식 1][Equation 1]

Figure 112020090546909-pat00001
Figure 112020090546909-pat00001

여기서, Hi(t)는, 노드 i의 하드웨어 클럭이다. 노드 i는, 고유 번호인 i를 가진 노드이다. t는, 처음 하드웨어를 설계한 하드웨어 클럭의 속도를 기준으로 한 클럭의 변화이다.Here, H i (t) is the hardware clock of node i. A node i is a node having a unique number i. t is the change of the clock based on the speed of the hardware clock for which the hardware was initially designed.

hi는, 하드웨어 클럭이 가진 속도(rate)이다. 하드웨어 클럭의 속도 hi는, 1 근처의 값에서 동작하지만 클럭 제조 과정에서 어느 정도의 오차를 갖는다. 처음 설계한 노드의 클럭의 변화 t는, 시간이 흐르면서 클럭 사이에 오차를 가지게 된다. oi는, 하드웨어가 가진 오프셋이다.h i is the rate of the hardware clock. The speed h i of the hardware clock operates at a value near 1, but has some error in the clock manufacturing process. The change t of the clock of the initially designed node has an error between the clocks as time passes. o i is the offset the hardware has.

Hardware Clock Hi(t)는 확인 가능하지만 하드웨어 클럭의 속도 hi는, 노드 고유의 특성으로, 확인이 불가능하다. 또한, 하드웨어 클럭의 속도 hi와 오프셋 oi를 직접 조작하는 것은, 불가능하다.The Hardware Clock H i (t) can be checked, but the speed of the hardware clock h i is a node-specific characteristic and cannot be checked. Also, it is impossible to directly manipulate the speed h i and the offset o i of the hardware clock.

따라서, 노드 간 클럭을 동기화하기 위해서는, 소프트웨어의 로지컬 클럭(Logical Clock)을 조정해야 한다. 노드 i의 로지컬 클럭(Logical Clock)의 식은, [수학식 2]와 같다.Therefore, in order to synchronize the clocks between nodes, it is necessary to adjust the logical clock of software. The expression of the logical clock of node i is as [Equation 2].

[수학식 2][Equation 2]

Figure 112020090546909-pat00002
Figure 112020090546909-pat00002

여기서, Li(t)는 Logical Clock 이다.Here, L i (t) is the Logical Clock.

li와 βi는, 하드웨어 클럭의 속도 hi와 오프셋 oi를 조정하기 위해서 사용된다. 여기서, li는, 하드웨어 클럭 Hi(t)과 로지컬 클럭 Li(t)의 상대적인 rate 차이를 나타내는 값으로, Relative logical clock rate라고도 한다. 하드웨어 클럭의 속도 hi와 오프셋 oi는, 조정이 불가능하기 때문에, 로지컬 클럭 Li(t)의 조정은, Relative logical clock rate li와 βi를 조절하는 간접적인 방법을 통해 이루어진다.l i and β i are used to adjust the speed hi and the offset o i of the hardware clock. Here, l i is a value indicating the relative rate difference between the hardware clock H i (t) and the logical clock L i (t), and is also called the Relative logical clock rate. Since the hardware clock speed hi and the offset o i are not adjustable, the adjustment of the logical clock L i (t) is made through an indirect method of adjusting the relative logical clock rates l i and β i .

Ad-hoc 네트워크에서 시간을 동기화하기 위한 알고리즘은, 크게 2가지 범주에서 발전해왔다. 즉, 대표적인 알고리즘으로는, Flooding Time Synchronization Protocol(FTSP)와 Gradient Time Synchronization Protocol(GTSP)을 예시할 수 있다.Algorithms for synchronizing time in an ad-hoc network have largely been developed in two categories. That is, as representative algorithms, Flooding Time Synchronization Protocol (FTSP) and Gradient Time Synchronization Protocol (GTSP) may be exemplified.

도 1은 FTSP의 노드 구성 형태를 보여주는 도면이다.1 is a diagram showing a node configuration of an FTSP.

FTSP는, 기지국이 없는 환경에서, 네트워크 내에 있는 노드 중 하나의 노드를 기지국 대신하는 기준 노드로 선정하고, 기준 노드의 시간을 네트워크 내 전체 노드에 전달하여 동기화하는 방법을 사용하고 있다.In FTSP, in an environment without a base station, one node among nodes in the network is selected as a reference node instead of the base station, and the time of the reference node is transmitted to all nodes in the network for synchronization.

FTSP에서는, 네트워크 내에서 하나의 노드를 임의의 방식으로 선정하고, 선정된 노드의 시간을 동기화 메시지에 내장 후 이웃 노드로 전달하며, 전달 받은 이웃 노드가 다시 다른 이웃 노드로 기준 노드의 시간을 전달하여 네트워크 내에 있는 모든 노드가 기준 노드의 시간으로 동기화하는 방식을 사용한다.In FTSP, a node in the network is selected in an arbitrary manner, the time of the selected node is embedded in the synchronization message, and then transmitted to the neighboring node, and the received neighboring node transmits the reference node time to another neighboring node. Therefore, all nodes in the network synchronize with the time of the reference node.

FTSP는, 기준 노드를 사용하여 동기화 함으로써, 빠른 시간에 모든 노드에 대해 동기화를 가능하게 할 수 있다. 하지만 FTSP는, 기준 노드를 중심으로 하여 멀어질수록, 노드 간에 메시지를 송수신하는 과정에서 발생하는 지연이 증가하는 문제가 있다. 또한, FTSP,는 기준 노드의 메시지를 네트워크 끝에 있는 노드까지 전달하기 때문에 노드를 지날 때마다 지연이 축척하는 문제가 있다. 또한, FTSP는, 기준 노드를 기준으로 hop 수가 증가할 때마다 홉 지연이 증가하는 문제가 있다.FTSP can enable synchronization for all nodes in a short time by synchronizing using a reference node. However, the FTSP has a problem in that as the distance from the reference node increases, a delay occurring in the process of transmitting and receiving messages between nodes increases. In addition, since FTSP transmits the message of the reference node to the node at the end of the network, there is a problem of accumulating delay every time it passes through a node. In addition, the FTSP has a problem in that the hop delay increases whenever the number of hops increases with respect to the reference node.

도 2는 GTSP의 노드 구성 형태를 보여주는 도면이다.2 is a diagram showing a node configuration of a GTSP.

GTSP는, 네트워크 내에 있는 모든 노드가 이웃 노드들과 메시지를 교환하고, 수신 받은 시간의 오프셋과 clock rate를 평균으로 컨센서스하는 동기화 방식이다. 네트워크 내에 모든 노드는, 매 라운드마다 이웃 노드로부터 수신 받은 메시지를 테이블에 저장하고, 이웃 노드의 Logical Clock의 속도를 측정하여 평균화하는 과정을 반복해 모든 노드가 하나의 클럭으로 동기화 한다.GTSP is a synchronization method in which all nodes in the network exchange messages with neighboring nodes and agree on the average of the received time offset and clock rate. All nodes in the network store messages received from neighboring nodes in a table every round, and repeat the process of measuring and averaging the speed of the neighboring nodes' Logical Clocks to synchronize them with one clock.

Absolute logical clock rate xi(t)는, [수학식 2]의 Logical Clock Li(t)로부터,

Figure 112020090546909-pat00003
를 유추하여 정의할 수 있다. GTSP에서는, 모든 노드들이 동일한 Absolute logical clock rate xi(t)를 갖도록 [수학식 3]과 같이 서로 평균화하는 과정을 수행한다.Absolute logical clock rate x i (t) is, from Logical Clock L i (t) of [Equation 2],
Figure 112020090546909-pat00003
can be defined by analogy. In GTSP, a process of averaging each other as in [Equation 3] is performed so that all nodes have the same absolute logical clock rate x i (t).

[수학식 3][Equation 3]

Figure 112020090546909-pat00004
Figure 112020090546909-pat00004

여기서, tk는, k번째 라운드에 메시지를 수신 받은 시간을 나타내며, Ni는, 노드 i의 1-hop 이웃 노드들의 집합이다. 하지만, [수학식 3]은, 노드가 읽을 수 없는 하드웨어 클럭의 속도 hi(t) 값을 포함하므로, 실제 구현에서는, 양변을 하드웨어 클럭의 속도 hi(t)로 나눈 형태의 [수학식 4]를 통하여 평균화 과정을 수행하게 된다.Here, t k represents a time at which a message is received in the k-th round, and N i is a set of 1-hop neighboring nodes of node i. However, since [Equation 3] includes the value of the speed h i (t) of the hardware clock that the node cannot read, in actual implementation, [Equation 3] in the form of dividing both sides by the speed h i (t) of the hardware clock 4] to perform the averaging process.

[수학식 4][Equation 4]

Figure 112020090546909-pat00005
Figure 112020090546909-pat00005

여기서

Figure 112020090546909-pat00006
는, [수학식 5]와 같이 표현 가능하다.here
Figure 112020090546909-pat00006
can be expressed as in [Equation 5].

[수학식 5][Equation 5]

Figure 112020090546909-pat00007
Figure 112020090546909-pat00007

즉, GTSP는, 각각의 노드들이 동기화 메시지에 자신의 하드웨어 클럭 Hi(t)와 Relative logical clock rate li(t)를 포함하여 전송하면, 반복된 평균화 과정을 통하여 모든 노드의 Logical clock rate가 공통의 Absolute logical clock rate 로 수렴시켜 동기화하는 방식이다. GTSP는, 오프셋도 거의 동일한 평균화 과정을 거치게 된다.That is, in GTSP, when each node transmits its own hardware clock H i (t) and relative logical clock rate l i (t) in the synchronization message, the logical clock rate of all nodes is determined through the repeated averaging process. It is a method of synchronizing by converging to a common absolute logical clock rate. In GTSP, the offset also undergoes an averaging process that is almost the same.

하지만, GTSP는, 노드가 넓게 분산되어 있는 경우, 시간을 평균화하는 과정에서 수렴되는 속도가 매우 느리다는 문제가 있다. 또한, GTSP는, 네트워크 내에 고장 난 노드가 존재하는 경우, 알고리즘의 계산 과정에서 고장 노드의 시간이 포함되기 때문에 동기화에 악영향을 받는 문제가 있다.However, GTSP has a problem that, when nodes are widely distributed, the speed of convergence in the process of averaging time is very slow. In addition, GTSP has a problem in that when a failed node exists in the network, the synchronization is adversely affected because the time of the failed node is included in the algorithm calculation process.

따라서, 기기 사이에 시간을 빠르게 수렴하고, 복수의 노드가 넓게 분산된 환경에서 고장 노드의 시간을 제외하는 과정을 통해서 동기화하는 방안이 절실히 요구된다.Therefore, there is an urgent need for a method to quickly converge time between devices and synchronize the time of a failed node in an environment in which a plurality of nodes are widely distributed.

본 발명의 실시예는, 기기 사이에 시간을 빠르게 수렴하고, 복수의 노드가 넓게 분산된 환경에서 고장 노드의 시간을 제외하는 과정을 통해서 동기화하는, 모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 방법 및 시간 동기화 장치를 제공하는 것을 해결 과제로 한다.An embodiment of the present invention provides a time synchronization method based on a median robust to a mobile environment, in which time converges quickly between devices and synchronizes through a process of excluding the time of a failed node in an environment in which a plurality of nodes are widely distributed. and to provide a time synchronization device.

또한, 본 발명의 실시예는, 이웃 노드의 relative hardware clock rate를 계산하고 중위값을 활용하여 빠르게 이웃 노드로 전달한 후 동기화하고, F-Median과 칼만 필터를 통해서 동기화를 유지하는 것을 목적으로 한다.In addition, an embodiment of the present invention aims to calculate the relative hardware clock rate of a neighboring node and quickly transmit it to the neighboring node by using the median, then synchronize it, and maintain the synchronization through the F-Median and Kalman filter.

또한, 본 발명은, F-Median을 사용하여, 네트워크 노드 사이의 중위값 편차를 제거할 수 있고, 고장난 노드의 시간정보를 동기화 과정에서 배제하는 것을 목적으로 한다.In addition, an object of the present invention is to remove the median deviation between network nodes by using F-Median, and to exclude time information of a failed node from the synchronization process.

또한, 본 발명은, 시간 동기화가 빠르게 진행되고 토폴로지 변경과 오차의 발생으로 인한 동기화의 성능 하락을 줄이는 것을 목적으로 한다.Another object of the present invention is to speed up time synchronization and reduce performance degradation of synchronization due to topology changes and errors.

본 발명의 일실시예에 따른, 모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 방법은, 네트워크를 구성하는 임의의 노드에서, 주변의 이웃 노드로부터 동기화메시지를 수신하는 단계; 상기 동기화메시지가 수신되는 수신 횟수 Sj가 정해진 n 이상(상기 n은 2 이상의 자연수)일 경우, 상기 이웃 노드와의 Relative hardware clock rate Rij와, 상기 임의의 노드에 대한 Relative logical clock rate li를 계산하는 단계; 및 상기 Relative hardware clock rate Rij와, 상기 Relative logical clock rate li를 적어도 포함하는 연산식에 의해 연산되는 상기 이웃 노드에 대한 로지컬 클럭 중에서, 중간에 위치하는 중위값을 이용하여, 상기 임의의 노드에 대한 시간을 업데이트하여 동기화하는 단계를 포함할 수 있다.According to an embodiment of the present invention, a time synchronization method centered on a median robust to a mobile environment includes: receiving a synchronization message from a neighboring node in an arbitrary node constituting a network; When the number of times the synchronization message is received S j is greater than or equal to a predetermined n (where n is a natural number greater than or equal to 2), the relative hardware clock rate R ij with the neighbor node and the relative logical clock rate l i for the arbitrary node calculating ; and a median located in the middle among logical clocks for the neighboring node calculated by an equation including at least the Relative hardware clock rate R ij and the Relative logical clock rate l i , to the arbitrary node It may include the step of updating the time for synchronization.

또한, 본 발명의 실시예에 따른, 모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 장치는, 네트워크를 구성하는 임의의 노드에서, 주변의 이웃 노드로부터 동기화메시지를 수신하는 수신부; 상기 동기화메시지가 수신되는 수신 횟수 Sj가 정해진 n 이상(상기 n은 2 이상의 자연수)일 경우, 상기 이웃 노드와의 Relative hardware clock rate Rij와, 상기 임의의 노드에 대한 Relative logical clock rate li를 계산하는 계산부; 및 상기 Relative hardware clock rate Rij와, 상기 Relative logical clock rate li를 적어도 포함하는 연산식에 의해 연산되는 상기 이웃 노드에 대한 로지컬 클럭 중에서, 중간에 위치하는 중위값을 이용하여, 상기 임의의 노드에 대한 시간을 업데이트하여 동기화하는 동기화부를 포함하여 구성할 수 있다.In addition, according to an embodiment of the present invention, there is provided a time synchronization device centered on a median robust to a mobile environment, comprising: a receiver configured to receive a synchronization message from a neighboring node in an arbitrary node constituting a network; When the number of times the synchronization message is received S j is greater than or equal to a predetermined n (where n is a natural number greater than or equal to 2), the relative hardware clock rate R ij with the neighbor node and the relative logical clock rate l i for the arbitrary node a calculator that calculates; and a median located in the middle among logical clocks for the neighboring node calculated by an equation including at least the Relative hardware clock rate R ij and the Relative logical clock rate l i , to the arbitrary node It can be configured to include a synchronization unit that synchronizes by updating the time.

본 발명의 일실시예에 따르면, 기기 사이에 시간을 빠르게 수렴하고, 복수의 노드가 넓게 분산된 환경에서 고장 노드의 시간을 제외하는 과정을 통해서 동기화하는, 모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 방법 및 시간 동기화 장치를 제공할 수 있다.According to an embodiment of the present invention, time centered on a median value robust to a mobile environment, which rapidly converges time between devices and synchronizes through a process of excluding the time of a failed node in an environment in which a plurality of nodes are widely distributed A synchronization method and a time synchronization device may be provided.

또한, 본 발명의 일실시예에 따르면, 이웃 노드의 relative hardware clock rate를 계산하고 중위값을 활용하여 빠르게 이웃 노드로 전달한 후 동기화하고, F-Median과 칼만 필터를 통해서 동기화를 유지할 수 있다.In addition, according to an embodiment of the present invention, it is possible to calculate the relative hardware clock rate of a neighboring node and quickly transmit it to the neighboring node by using the median, then synchronize it, and maintain the synchronization through the F-Median and Kalman filter.

또한, 본 발명의 일실시예에 따르면, F-Median을 사용하여, 네트워크 노드 사이의 중위값 편차를 제거할 수 있고, 고장난 노드의 시간정보를 동기화 과정에서 배제할 수 있다.In addition, according to an embodiment of the present invention, by using F-Median, it is possible to remove a median deviation between network nodes and to exclude time information of a failed node from the synchronization process.

또한, 본 발명의 일실시예에 따르면, 시간 동기화가 빠르게 진행되고 토폴로지 변경과 오차의 발생으로 인한 동기화의 성능 하락을 줄일 수 있다.In addition, according to an embodiment of the present invention, time synchronization proceeds quickly, and a decrease in synchronization performance due to a topology change and an error occurrence can be reduced.

도 1은 FTSP의 노드 구성 형태를 보여주는 도면이다.
도 2는 GTSP의 노드 구성 형태를 보여주는 도면이다.
도 3은 본 발명의 일실시예에 따른 모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 장치의 구성을 도시한 블록도이다.
도 4는 본 발명에서 사용하는 패킷의 구성을 설명하기 위한 도이다.
도 5는 본 발명에서 사용하는 테이블의 구성을 설명하기 위한 도이다.
도 6은 Relative hardware clock rate를 구하는 과정의 예시를 보여주는 도이다.
도 7은 Logical clock rate를 구하는 과정의 예시를 보여주는 도이다.
도 8은 모든 노드가 li를 업데이트하고 다시 이웃 노드로 li를 송신하여 모든 테이블의 업데이트를 보여준다.
도 9는 F-Median의 과정을 보여준다.
도 10은 F-Median을 선정하는 알고리즘 설명하기 위한 도이다.
도 11은 칼만 필터를 사용하여 오차를 제거하는 과정을 설명하는 도이다.
도 12는 본 발명의 알고리즘을 설명하기 위한 도면이다.
도 13은 본 발명의 일실시예에 따른, 모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 방법을 도시한 흐름도이다.
1 is a diagram showing a node configuration of an FTSP.
2 is a diagram showing a node configuration of a GTSP.
3 is a block diagram illustrating a configuration of a time synchronization device centered on a median robust to a mobile environment according to an embodiment of the present invention.
4 is a diagram for explaining the configuration of a packet used in the present invention.
5 is a diagram for explaining the configuration of a table used in the present invention.
6 is a diagram showing an example of a process for obtaining a relative hardware clock rate.
7 is a diagram showing an example of a process for obtaining a logical clock rate.
8 shows updates of all tables by all nodes updating l i and sending l i back to neighboring nodes.
9 shows the process of F-Median.
10 is a diagram for explaining an algorithm for selecting an F-Median.
11 is a diagram for explaining a process of removing an error using a Kalman filter.
12 is a diagram for explaining the algorithm of the present invention.
13 is a flowchart illustrating a time synchronization method centered on a median robust to a mobile environment, according to an embodiment of the present invention.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, since various changes may be made to the embodiments, the scope of the patent application is not limited or limited by these embodiments. It should be understood that all modifications, equivalents and substitutes for the embodiments are included in the scope of the rights.

실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used for the purpose of description only, and should not be construed as limiting. The singular expression includes the plural expression unless the context clearly dictates otherwise. In this specification, terms such as "comprise" or "have" are intended to designate that a feature, number, step, operation, component, part, or a combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same components are given the same reference numerals regardless of the reference numerals, and the overlapping description thereof will be omitted. In describing the embodiment, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the embodiment, the detailed description thereof will be omitted.

도 3은 본 발명의 일실시예에 따른 모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 장치의 구성을 도시한 블록도이다.3 is a block diagram illustrating a configuration of a time synchronization device centered on a median robust to a mobile environment according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일실시예에 따른, 모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 장치(이하, '시간 동기화 장치'이라 함)(300)는, 수신부(310), 계산부(320), 및 동기화부(330)를 포함하여 구성할 수 있다.Referring to FIG. 3 , a time synchronization device centered on a median robust to a mobile environment (hereinafter referred to as a 'time synchronization device') 300 according to an embodiment of the present invention includes a receiver 310 and a calculator. 320 , and a synchronization unit 330 may be included.

우선, 수신부(310)는 네트워크를 구성하는 임의의 노드에서, 주변의 이웃 노드로부터 동기화메시지를 수신한다. 즉, 수신부(310)는 GTSP 네트워크 내 노드 사이에서 상호 교환되는 동기화메시지를, 선택된 임의의 노드에서 수신하는 역할을 할 수 있다.First, the receiving unit 310 receives a synchronization message from neighboring nodes in any node constituting the network. That is, the receiving unit 310 may serve to receive a synchronization message exchanged between nodes in the GTSP network from a selected arbitrary node.

실시예에 따라, 수신부(310)는 상기 동기화메시지가 수신되는 횟수를 일정 기간 동안 카운트하여, 상기 임의의 노드에 할당되는 테이블에, 수신 횟수 Sj로서 기록할 수 있다. 즉, 수신부(310)는 주변의 하나의 이웃 노드로부터 지속적으로 동기화메시지를 수신하는 경우, 또는 주변의 다수의 이웃 노드 각각으로부터 동기화메시지를 수신하는 경우 등에 대해, 동기화메시지의 수신 횟수 Sj를 누계하여, 테이블에 갱신 기록할 수 있다.According to an embodiment, the receiving unit 310 may count the number of times the synchronization message is received for a certain period and record it as the number of reception S j in a table allocated to the arbitrary node. That is, the receiver 310 accumulates the number of times of synchronization message reception S j when continuously receiving a synchronization message from one neighboring node or when receiving a synchronization message from each of a plurality of neighboring nodes. Thus, it is possible to update and record the table.

상기 동기화메시지가 수신되는 수신 횟수 Sj가 정해진 n 이상(상기 n은 2 이상의 자연수)일 경우, 계산부(320)는 상기 이웃 노드와의 Relative hardware clock rate Rij와, 상기 임의의 노드에 대한 Relative logical clock rate li를 계산한다. 즉, 계산부(320)는 테이블에 기록된 수신 횟수 Sj가 최소한 2 이상이면, 동기화메시지를 송신한 이웃 노드와 상기 임의의 노드 사이의 상대적 관계를 정의하기 위한 파라메타로서의, Relative hardware clock rate Rij와, Relative logical clock rate li를 연산하는 역할을 할 수 있다.When the number of times the synchronization message is received S j is greater than or equal to a predetermined n (where n is a natural number greater than or equal to 2), the calculator 320 calculates the relative hardware clock rate R ij with the neighbor node, and Calculate the relative logical clock rate l i . That is, if the number of receptions S j recorded in the table is at least 2 or more, the calculator 320 calculates Relative hardware clock rate R as a parameter for defining the relative relationship between the neighbor node that has transmitted the synchronization message and the arbitrary node It can play a role in calculating ij and Relative logical clock rate l i .

상기 Relative hardware clock rate Rij는 상기 임의의 노드와 상기 이웃 노드 사이의 하드웨어 클럭 rate의 비로 정의할 수 있다.The relative hardware clock rate R ij may be defined as a ratio of a hardware clock rate between the arbitrary node and the neighboring node.

상기 Relative logical clock rate li는 상기 임의의 노드에 대한 하드웨어 클럭 Hi(t)과 로지컬 클럭 Li(t)과의 상대적인 rate 차이를 나타내는 값으로 정의할 수 있다.The relative logical clock rate l i may be defined as a value indicating a relative rate difference between the hardware clock H i (t) and the logical clock L i (t) for the arbitrary node.

동기화부(330)는 상기 Relative hardware clock rate Rij와, 상기 Relative logical clock rate li를 적어도 포함하는 연산식에 의해 연산되는 상기 이웃 노드에 대한 로지컬 클럭 중에서, 중간에 위치하는 중위값을 이용하여, 상기 임의의 노드에 대한 시간을 업데이트하여 동기화한다. 즉, 동기화부(330)는 복수의 노드가 넓게 분산된 환경에서, 규정된 연산식을 통해 로지컬 클럭의 중위값을 결정하고, 결정된 중위값으로, 상기 임의의 노드에 대해 시간 업데이트를 하는 역할을 할 수 있다.The synchronization unit 330 uses a median value located in the middle among the logical clocks for the neighboring nodes calculated by an equation including at least the Relative hardware clock rate R ij and the Relative logical clock rate l i , Synchronize by updating the time for the random node. That is, in an environment in which a plurality of nodes are widely distributed, the synchronization unit 330 determines the median value of the logical clock through a prescribed arithmetic expression, and performs a time update for the arbitrary node with the determined median value. there is.

상기 이웃 노드에 대한 로지컬 클럭Lj(t(k+1))에 대한 상기 연산식은, [수학식 9]를 만족할 수 있다.The calculation formula for the logical clock L j (t(k+1)) for the neighboring node may satisfy [Equation 9].

[수학식 9][Equation 9]

Figure 112020090546909-pat00008
Figure 112020090546909-pat00008

여기서, 상기 Lj(tk)는, k번째 라운드에서의 상기 이웃 노드의 로지컬 클럭이고, 상기 Hi(t(k+1)) - Hi(tk)은, 상기 임의의 노드에 관한 하드웨어 클럭의 변화일 수 있다.Here, the L j (t k ) is the logical clock of the neighboring node in the k-th round, and the H i (t (k+1) ) - H i (t k ) is for the arbitrary node It may be a change in the hardware clock.

실시예에 따라, 동기화부(330)는 임계 범위 내에 있는 특정의 로지컬 클럭 중에서 어느 하나를 중위값으로 결정할 수 있다.According to an embodiment, the synchronizer 330 may determine any one of specific logical clocks within a threshold range as a median value.

동기화부(330)는 상기 로지컬 클럭Lj(t(k+1))이 복수로 연산되는 경우, 상기 복수의 로지컬 클럭Lj(t(k+1)) 중, 가운데 값을 기준으로, 선정된 상한 및 하한을 갖는 밴드에 속하는 클럭값들을 추출할 수 있다. 즉, 동기화부(330)는 계산을 통해 복수의 로지컬 클럭이 도출됨에 따라, 도출된 복수의 로지컬 클럭 중에서, 임계 범위인 밴드 내부에 위치하는 클럭값을 선별할 수 있다.When a plurality of the logical clocks L j (t(k+1)) are calculated, the synchronization unit 330 selects the plurality of logical clocks L j (t(k+1)) based on a middle value. It is possible to extract clock values belonging to a band having an upper limit and a lower limit. That is, as a plurality of logical clocks are derived through calculation, the synchronizer 330 may select a clock value located within a band that is a critical range from among the plurality of derived logical clocks.

이후, 동기화부(330)는 상기 추출된 클럭값들 중에서, Absolute logical clock rate 로의 수렴 속도가 가장 빠른 하나의 클럭값을, 상기 중위값으로 결정할 수 있다. Absolute logical clock rate는 추출된 클럭값들이 갖는 규정된 값(예컨대, 평균값 등)에 도달되는 속도를 지칭할 수 있다.Thereafter, the synchronizer 330 may determine, among the extracted clock values, one clock value having the fastest convergence speed to the absolute logical clock rate as the median value. The absolute logical clock rate may refer to a speed at which the extracted clock values reach a prescribed value (eg, an average value, etc.).

즉, 동기화부(330)는 추출된 클럭값 각각에 대한 Absolute logical clock rate를 구한 후, 가장 짧은 수치를 갖는 하나의 클럭값을, 중위값으로 결정할 수 있다.That is, after obtaining an absolute logical clock rate for each of the extracted clock values, the synchronizer 330 may determine one clock value having the shortest value as the median value.

실시예에 따라, 동기화부(330)는 상기 중위값을, 칼만 필터를 사용하여 오차 보정 한 후, 상기 임의의 노드의 시간을 업데이트 및 동기화할 수 있다.According to an embodiment, the synchronization unit 330 may update and synchronize the time of the arbitrary node after error-correcting the median value using a Kalman filter.

칼만 필터(Kalman filter)는 시간 변화, 비정상(nonstationary), 다중 채널 시스템을 포함한 모든 선형 시스템에 적용 가능한 순환 필터일 수 있다. 칼만 필터는 잡음이 섞여 있는 기존의 관측값을 최소 제곱법을 통해 분석함으로써 일정 시간 후의 위치를 예측할 수 있도록 하는 수학적 계산 과정에 활용될 수 있다.The Kalman filter may be a cyclic filter applicable to all linear systems including time-varying, nonstationary, and multi-channel systems. The Kalman filter can be used in the mathematical calculation process to predict the position after a certain time by analyzing the existing observation values mixed with noise through the least squares method.

동기화부(330)는 상기 칼만 필터를 통해서 구한 mk의 값으로, 상기 Relative logical clock rate li와, 상기 이웃 노드에 대한 로지컬 클럭을 업데이트할 수 있다.The synchronizer 330 may update the relative logical clock rate l i and the logical clock for the neighboring node with the value of m k obtained through the Kalman filter.

상기 mk는 k번째 라운드의 입력값으로서, [수학식 11]을 만족하여 연산될 수 있다.The m k is an input value of the k-th round, and may be calculated by satisfying [Equation 11].

[수학식 11][Equation 11]

Figure 112020090546909-pat00009
Figure 112020090546909-pat00009

본 발명의 일실시예에 따르면, 기기 사이에 시간을 빠르게 수렴하고, 복수의 노드가 넓게 분산된 환경에서 고장 노드의 시간을 제외하는 과정을 통해서 동기화하는, 모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 방법 및 시간 동기화 장치를 제공할 수 있다.According to an embodiment of the present invention, time centered on a median value robust to a mobile environment, which rapidly converges time between devices and synchronizes through a process of excluding the time of a failed node in an environment in which a plurality of nodes are widely distributed A synchronization method and a time synchronization device may be provided.

또한, 본 발명의 일실시예에 따르면, 이웃 노드의 relative hardware clock rate를 계산하고 중위값을 활용하여 빠르게 이웃 노드로 전달한 후 동기화하고, F-Median과 칼만 필터를 통해서 동기화를 유지할 수 있다.In addition, according to an embodiment of the present invention, it is possible to calculate the relative hardware clock rate of a neighboring node and quickly transmit it to the neighboring node by using the median, then synchronize it, and maintain the synchronization through the F-Median and Kalman filter.

또한, 본 발명의 일실시예에 따르면, F-Median을 사용하여, 네트워크 노드 사이의 중위값 편차를 제거할 수 있고, 고장난 노드의 시간정보를 동기화 과정에서 배제할 수 있다.In addition, according to an embodiment of the present invention, by using F-Median, it is possible to remove a median deviation between network nodes and to exclude time information of a failed node from the synchronization process.

또한, 본 발명의 일실시예에 따르면, 시간 동기화가 빠르게 진행되고 토폴로지 변경과 오차의 발생으로 인한 동기화의 성능 하락을 줄일 수 있다.In addition, according to an embodiment of the present invention, time synchronization proceeds quickly, and a decrease in synchronization performance due to a topology change and an error occurrence can be reduced.

본 발명의 목적은, 기기 사이에 시간을 빠르게 수렴하고, 복수의 노드가 넓게 분산된 환경에서 고장 노드의 시간을 제외하는 과정을 통해서 동기화하는, 모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 방법 및 장치를 제공하는 데에 있다.An object of the present invention is to quickly converge time between devices and synchronize through a process of excluding the time of a failed node in an environment in which a plurality of nodes are widely distributed, a time synchronization method centered on a median robust to a mobile environment, and to provide the device.

본 발명은 로지컬 클럭의 중위값을 기반으로 하는, 테이블과 패킷의 구성을 포함한다.The present invention includes the structure of a table and a packet based on the median value of the logical clock.

도 4는 본 발명에서 사용하는 패킷의 구성을 설명하기 위한 도이다.4 is a diagram for explaining the configuration of a packet used in the present invention.

도 4는 본 발명에 따른 패킷으로서, Node ID, Hardware Clock Hi(t), Logical Clock Li(t), Relative logical clock rate li(t)를 포함하여 구성된다.4 is a packet according to the present invention, and includes a Node ID, a Hardware Clock H i (t), a Logical Clock L i (t), and a Relative logical clock rate l i (t).

Node ID는, 패킷을 구분하기 위해서 노드 고유의 번호를 사용한다.Node ID uses a unique node number to identify packets.

Hardware Clock Hi(t)는, 송신하는 노드의 하드웨어 클럭의 값을 저장하고, Logical Clock Li(t)는, 송신하는 노드의 로지컬 클럭의 값을 저장한다.Hardware Clock H i (t) stores the value of the hardware clock of the transmitting node, and Logical Clock L i (t) stores the value of the logical clock of the transmitting node.

Relative logical clock rate li(t)는, GTSP와 같이 각각의 노드가 가진 하드웨어 클럭의 속도(rate)를 보정하는 값이다.Relative logical clock rate l i (t) is a value that corrects the rate of the hardware clock of each node like GTSP.

본 발명에서는, 이웃 노드들의 Absolute logical clock rate xj(t)와 Logical Clock Li(t)을, GTSP에서의 평균화 과정을 통하여 구하지 않고, 이웃 노드의 값들 중에서 최적의 값을 선택하여 자신의 값에 해당 값을 대입하는 방식으로 구한다.In the present invention, the absolute logical clock rate x j (t) and the logical clock L i (t) of the neighboring nodes are not obtained through the averaging process in GTSP, but an optimal value is selected among the values of the neighboring nodes and their values are It is obtained by substituting the corresponding value in .

본 발명에서는 노드 i를 기준으로 설명하며 이웃 노드는 노드 j로 사용한다.In the present invention, node i is described as a reference, and a neighboring node is used as node j.

Relative hardware clock rate는 자신과 이웃 노드 사이의 하드웨어 클럭 rate의 비를 나타내며 Rij로 표시하고 [수학식 6]과 같이 구할 수 있다.Relative hardware clock rate represents the ratio of the hardware clock rate between itself and a neighboring node, expressed as R ij , and can be obtained as in [Equation 6].

[수학식 6][Equation 6]

Figure 112020090546909-pat00010
Figure 112020090546909-pat00010

노드 i가 노드 j의 시간정보를 받아드린다고 가정할 때, Relative logical clock rate li와 βi의 값은, [수학식 7]과 같이 표현 가능하나, 본 발명의 실제 업데이트는 이를 바로 적용하지 않고 칼만 필터를 추가로 적용한다.Assuming that node i accepts the time information of node j, the values of Relative logical clock rate l i and β i can be expressed as in [Equation 7], but the actual update of the present invention does not apply it immediately An additional Kalman filter is applied.

[수학식 7][Equation 7]

Figure 112020090546909-pat00011
Figure 112020090546909-pat00011

여기서 xj는 Absolute logical clock rate를 나타낸다.Here, x j represents the absolute logical clock rate.

도 5는 본 발명에서 사용하는 테이블의 구성을 설명하기 위한 도이다.5 is a diagram for explaining the configuration of a table used in the present invention.

도 5에서는 본 발명에 따른 테이블을 도시한다.5 shows a table according to the present invention.

[수학식 7]을 사용하여 구해진 값은, 테이블에 저장된다.A value obtained using [Equation 7] is stored in a table.

테이블에는 이웃 노드의 ID, 노드 i의 Hardware Clock Hi(tk)과 Logical Clock Li(tk), 이웃 노드의 Hardware Clock Hj(tk)과 Logical Clock Lj(tk)과 Relative logical clock rate lj가 저장된다.The table contains the ID of the neighbor node, Hardware Clock H i (t k ) and Logical Clock L i (t k ) of node i, Hardware Clock H j (t k ) and Logical Clock L j (t k ) and Relative of the neighbor node. The logical clock rate l j is stored.

또한, 테이블에는, [수학식 7]을 통해 구해진 Relative hardware clock rate Rij가 저장된다.Also, in the table, the Relative hardware clock rate R ij obtained through [Equation 7] is stored.

또한, 테이블에는, 이웃 노드 j로부터 메시지를 수신한 횟수인 Sj가 저장된다.Also, in the table, S j , which is the number of times a message is received from the neighbor node j, is stored.

이웃 노드의 클럭 속도를 알기 위해서는, 최소 2개의 메시지를 받아야 한다.In order to know the clock speed of a neighbor node, it must receive at least two messages.

따라서, 본 발명에서는 이웃 노드로부터 수신한 횟수에 관한 Sj를 테이블에 저장하는 것이 필요하다. 상기 Sj는, 한 노드 간 송수신 과정에서 발생하는 지연으로 인한 Relative hardware clock rate Rij의 오차를 제거하는데도 사용된다.Therefore, in the present invention, it is necessary to store S j regarding the number of times received from a neighboring node in a table. The S j is also used to remove an error in the relative hardware clock rate R ij due to a delay occurring in the transmission/reception process between one node.

[수학식 8][Equation 8]

Figure 112020090546909-pat00012
Figure 112020090546909-pat00012

여기서 R'ij는 현재 테이블에 저장되어 있는 이웃 노드의 Relative hardware clock rate이다.Here, R' ij is the relative hardware clock rate of the neighbor node stored in the current table.

[수학식 8]은, 적분 필터의 형식으로 Sj가 증가함에 따라 수신 받는 잡음이 제거되는 것을 보여준다. 본 발명에서는 이웃 노드의 주변 온도 변화로 클럭 속도에 영향을 미치는 경우를 반영하기 위해서, Sj의 크기를 5까지만 반영한다.[Equation 8] shows that the received noise is removed as S j increases in the form of an integration filter. In the present invention, in order to reflect the case in which the clock speed is affected by the change of the ambient temperature of the neighboring node, only the magnitude of S j is reflected up to 5.

본 발명에서는, 중위값과 칼만 필터를 활용할 수 있다.In the present invention, the median and the Kalman filter can be utilized.

본 발명은, 이웃 노드들의 시간정보들 중에서 최적의 값을 선택하기 위하여 중위값을 활용한다. 중위값은, 하나의 집단에서 값의 크기로 정렬하였을 때 중간에 위치하는 값을 나타낸다. 일반적으로는, 하나의 집단을 대표하기 위한 값으로 평균값을 사용한다. 하지만, 한 모집단에서 평균에서 많이 벗어난 값인 특이치가 존재하는 경우에는, 이 특이치의 영향을 줄이기 위해서 중위값을 사용한다.The present invention utilizes a median value to select an optimal value from time information of neighboring nodes. The median value indicates a value located in the middle when the values are sorted by size in one group. In general, the average value is used as a value to represent one group. However, if there is an outlier in a population that deviates significantly from the mean, the median is used to reduce the influence of this outlier.

본 발명에서, 네트워크 내에 있는 모든 노드는, 넓게 분산된 환경에서, 이웃 노드들로부터 받은 값들의 중위값을 활용하여 시간을 업데이트하여 동기화한다.In the present invention, all nodes in the network synchronize by updating time using the median of values received from neighboring nodes in a widely distributed environment.

본 발명에서는, 네트워크 내에서 중위값으로 업데이트 된 노드의 시간에서 오차를 제거하고, 해당 시간값을 계속해서 유지하기 위해서 칼만 필터를 사용한다.In the present invention, a Kalman filter is used to remove an error from the time of the node updated to the median value in the network and to continuously maintain the corresponding time value.

칼만 필터는, 시스템 모델을 사용하여 미래를 예측하고, 실제의 값이 측정되면, 예측값과 측정값의 차이를 조정하여 오차를 제거하는 필터이다. 칼만 필터는, 동기화 과정에서 발생하는 오차와 지연을 제거하여, 동기화의 성능을 향상시킨다.The Kalman filter is a filter that predicts the future using a system model and removes an error by adjusting the difference between the predicted value and the measured value when an actual value is measured. The Kalman filter improves synchronization performance by removing errors and delays occurring in the synchronization process.

하지만, 중위값을 기준으로 최적의 시간정보를 선택하는 경우에는, 2가지를 우선적으로 고려해야 한다.However, when selecting the optimal time information based on the median value, two things should be considered first.

첫 번째는, Absolute logical clock rate xj(t)와 Logical Clock Lj(t) 중에서 무엇을 기준으로 중위값을 선택하는가이다.First, the median value is selected based on which of the absolute logical clock rate x j (t) and the logical clock L j (t).

본 발명에서는, Logical Clock Lj(t) 값을 기준으로 중위값을 선택하며, 이를 통해 클럭이 수렴하지 않고 발산할 가능성을 줄여준다.In the present invention, the median value is selected based on the Logical Clock L j (t) value, thereby reducing the possibility that the clocks do not converge and diverge.

두 번째는, 중위값 자체가 여러 값이면, 맨 중간에 위치한 값을 선택하는 것으로, 선택한 값을 그대로 중위값으로 사용하여 클럭을 업데이트하면 문제가 생길 수 있다.Second, if the median value itself is multiple values, a value located in the middle is selected. If the selected value is used as the median value as it is and the clock is updated, a problem may occur.

본 발명에서는, 각 노드의 1-hop 노드들을 기준으로 중위값들을 선택한다. 이 경우에는, 노드의 지리적인 위치에 따라 중위값의 편차가 발생하고, 그 영향으로 값이 계속해서 변하는 진동(oscillation)이 발생할 수 있다.In the present invention, median values are selected based on 1-hop nodes of each node. In this case, a deviation of the median value may occur depending on the geographic location of the node, and oscillation in which the value continuously changes may occur due to the influence.

본 발명은 중위값의 진동 특성을 줄이기 위하여 중위값을 그대로 사용하는 대신에, 중위값을 기준으로 일정 범위 안에서, Absolute logical clock rate 로의 수렴 속도가 가장 빠른 Logical Clock Lj(t) 선택하여 사용한다.In the present invention, instead of using the median as it is in order to reduce the vibration characteristics of the median, the Logical Clock L j (t), which has the fastest convergence rate to the absolute logical clock rate, is selected and used within a certain range based on the median.

본 발명에서는 이를 Fast-Median (F-Median) 기법이라고 명명한다. Fast-median 값은 중위값을 기준으로 미리 정해놓은 threshold를 넘지 않는 범위에서, Absolute logical clock rate 로의 수렴 속도가 가능한 가장 빠른 값을 의미한다. 이를 통해, 본 발명은 특이값(outlier)를 제외함과 동시에 수렴속도를 높일 수 있다.In the present invention, this is called a Fast-Median (F-Median) technique. The fast-median value means the fastest possible value for convergence to the absolute logical clock rate within a range that does not exceed a predetermined threshold based on the median value. Through this, the present invention can increase the convergence speed while excluding outliers.

본 발명에 따른 새로운 알고리즘은 네트워크 내에서 노드 간 시간의 차이를 공통된 값으로 빠르게 수렴시켜 동기화하고, 동기화 범위내로 수렴된 네트워크 내에 있는 기기들의 시간을 유지하는 것을 목표로 한다.The new algorithm according to the present invention aims to synchronize the time difference between nodes within the network by rapidly converging to a common value, and to maintain the time of devices in the network converged within the synchronization range.

본 발명에서 제안한 알고리즘은 Step 1) 내지 Step 5)으로 구성된다.The algorithm proposed in the present invention consists of Step 1) to Step 5).

Step 1)에서는 네트워크 내에서 모든 노드가 이웃 노드와 동기화 메시지를 교환한다.In Step 1), all nodes in the network exchange synchronization messages with neighboring nodes.

동기화 메시지를 수신한 노드는, 이웃 노드의 Hardware Clock Hj(t)과 Logical Clock Lj(t), 그리고 해당 이웃 노드로부터 현재까지 받은 메시지의 수 Sj를 테이블에 저장한다(도 5 참조).The node receiving the synchronization message stores the Hardware Clock H j (t) and Logical Clock L j (t) of the neighboring node, and the number of messages S j received from the neighboring node so far in the table (see FIG. 5 ). .

Step 2)에서는 이웃 노드로부터 최소 2개의 메시지를 받은 노드가, 이웃 노드와의 Relative hardware clock rate Rij 를 계산한 후에 테이블에 저장한다. 이웃 노드의 Relative hardware clock rate Rij 를 계산 과정은 도 6에 예시된다.In Step 2), the node that has received at least two messages from the neighboring node calculates the relative hardware clock rate R ij with the neighboring node and stores it in the table. A process of calculating the relative hardware clock rate R ij of the neighboring node is illustrated in FIG. 6 .

도 6은 Relative hardware clock rate를 구하는 과정의 예시를 보여주는 도이다.6 is a diagram showing an example of a process for obtaining a relative hardware clock rate.

도 6에 도시한 바와 같이, 시간 동기화 장치(300)는 1번 노드와 관련하여, 이웃 노드인 2번 노드, 5번 노드, 7번 노드 각각에 대한, Relative hardware clock rate 'h2(t)/h1(t)', 'h5(t)/h1(t)', 'h7(t)/h1(t)'를 구하여, 1번 노드에 할당되는 테이블에 저장할 수 있다.As shown in FIG. 6 , the time synchronization device 300 has a relative hardware clock rate 'h 2 (t) for each of the neighboring nodes, No. 2, No. 5, and No. 7, with respect to Node 1. /h 1 (t)', 'h 5 (t)/h 1 (t)', and 'h7(t)/h 1 (t)' can be obtained and stored in the table assigned to node 1.

유사하게, 시간 동기화 장치(300)는 2번 노드, 3번 노드, 4번 노드와 관련하여, 이웃 노드에 대한 Relative hardware clock rate를 구하여, 해당 노드 각각에 할당되는 테이블에 저장할 수 있다.Similarly, the time synchronization apparatus 300 may obtain a relative hardware clock rate for a neighboring node with respect to the second node, the third node, and the fourth node, and store it in a table allocated to each of the corresponding nodes.

Step 3)에서는 한 라운드의 종료 시점에, 최소 2개 이상의 메시지를 받은 노드의 정보를 테이블에서 확인하고, 현 시점의 Logical Clock Li(t) 들을 계산한다. Logical Clock값들의 계산 식은, [수학식 9]와 같다.In Step 3), at the end of one round, the information of the node that has received at least two or more messages is checked in the table, and the current Logical Clock L i (t) is calculated. The calculation formula of the Logical Clock values is as [Equation 9].

[수학식 9][Equation 9]

Figure 112020090546909-pat00013
Figure 112020090546909-pat00013

여기서 t(k)는 k번째 라운드의 시작지점의 시간을 나타낸다.Here, t(k) denotes the time of the starting point of the k-th round.

본 발명의 장치는, 여러 Logical Clock 후보값들 중에서 중위값을 계산한다.The apparatus of the present invention calculates a median value among several Logical Clock candidate values.

중위값의 계산은 [수학식 10]을 통해 이루어진다.The median value is calculated through [Equation 10].

[수학식 10][Equation 10]

Figure 112020090546909-pat00014
Figure 112020090546909-pat00014

여기서

Figure 112020090546909-pat00015
는 노드 i의 1-hop 이웃 노드 집합 Ni에서 속한 이웃 노드들에서 중위값을 리턴하는 함수이다.here
Figure 112020090546909-pat00015
is a function that returns the median value among the neighboring nodes belonging to the 1-hop neighbor node set N i of node i.

도 7은 Logical clock rate를 구하는 과정의 예시를 보여주는 도이다.7 is a diagram showing an example of a process for obtaining a logical clock rate.

도 7은 테이블에서 이웃 노드의 Logical Clock을 통한 중위값을 구하는 과정을 나타낸다.7 shows a process of obtaining a median value through a logical clock of a neighboring node in a table.

도 7에 도시한 바와 같이, 시간 동기화 장치(300)는 1번 노드와 관련하여, 상술의 [수학식 9]에 의한, 이웃 노드인 2번 노드, 5번 노드, 7번 노드 각각의 Logical Clock을 계산하고, 그 중에서 중위값으로서, 5번 노드의 Logical Clock을 중위값으로 결정할 수 있다.As shown in FIG. 7 , the time synchronization device 300 has a logical clock of each of the neighboring nodes, No. 2, No. 5, and No. 7, according to [Equation 9] in relation to No. 1 above. , and among them, as the median, the Logical Clock of node 5 can be determined as the median.

유사하게, 시간 동기화 장치(300)는 2번 노드, 3번 노드, 4번 노드와 관련하여, 이웃 노드의 Logical Clock을 계산하고, 그 중에서 중위값을 결정한 후, 할당되는 테이블에 저장할 수 있다.Similarly, the time synchronizer 300 may calculate a logical clock of a neighboring node with respect to the second node, the third node, and the fourth node, determine a median value among them, and store it in an allocated table.

Step 4)에서는 예측되는 Logical Clock의 중위값을 바탕으로 미리 정해진 범위 안에서, Absolute logical clock rate 로의 수렴 속도가, 가장 빠른 F-Median을 선택한 후, 칼만 필터를 사용하여 노드의 드리프트와 오프셋을 계산한다.In Step 4), the F-Median with the fastest convergence rate to the absolute logical clock rate within a predetermined range is selected based on the predicted median of the logical clock, and then the drift and offset of the node are calculated using the Kalman filter.

Step 5)에서는 칼만 필터를 사용하여 네트워크 내에 모든 노드를 동기화하고 유지한다.Step 5) uses the Kalman filter to synchronize and maintain all nodes in the network.

도 8은 모든 노드가 li를 업데이트하고 다시 이웃 노드로 li를 송신하여 모든 테이블의 업데이트를 보여준다.8 shows updates of all tables by all nodes updating l i and sending l i back to neighboring nodes.

네트워크 내에 있는 모든 노드는 이웃 노드의 relative hardware clock rate를 빠르게 계산하고 그 값을 테이블에 저장한다.All nodes in the network quickly calculate the relative hardware clock rate of neighboring nodes and store the value in a table.

도 8에 도시한 바와 같이, 시간 동기화 장치(300)는 1번 노드와 관련하여, 중위값으로 결정된 5번 노드의 relative hardware clock rate 'h1(t)/h5(t)'를 구하여, 테이블에 업데이트하여 저장할 수 있다.As shown in FIG. 8 , the time synchronizer 300 obtains the relative hardware clock rate 'h 1 (t)/h 5 (t)' of the node 5 determined as the median with respect to the node 1, the table You can update it and save it.

유사하게, 시간 동기화 장치(300)는 2번 노드, 3번 노드와 관련하여, 중위값으로 결정된 이웃 노드의 relative hardware clock rate를 구하여, 테이블에 업데이트하여 저장할 수 있다.Similarly, the time synchronizer 300 may obtain a relative hardware clock rate of a neighboring node determined as a median with respect to nodes 2 and 3, update it in a table, and store it.

본 발명은 저장된 시간 정보를 사용하여 노드 간 시간 차이를 빠르게 수렴하고 F-Median과 칼만 필터를 사용하여 동기화를 유지한다.The present invention quickly converges the time difference between nodes using the stored time information and maintains synchronization using F-Median and Kalman filters.

도 9는 F-Median의 과정을 보여준다.9 shows the process of F-Median.

도 9에서 t(n)과 t(n+1) 사이의 검은 점은 이웃 노드에서 수신한 시간 정보이며, 여기서 이어진 점선의 기울기가 Absolute logical clock rate 이다.In FIG. 9, a black dot between t(n) and t(n+1) is time information received from a neighboring node, and the slope of the continuous dotted line is the absolute logical clock rate.

t(n+1) 시점에서 Logical Clock Lj(t(n+1))의 값을 기준으로 정렬하여 중위값을 예측하고, 중위값 기준 일정 범위 안에서, Absolute logical clock rate 로의 수렴 속도가, 가장 큰 값을 F-Median으로 선정하게 된다.The median value is predicted by sorting based on the value of Logical Clock L j (t(n+1)) at time t(n+1), and the convergence rate to the absolute logical clock rate is the largest value within a certain range based on the median value. will be selected as F-Median.

도 9에 도시한 바와 같이, 시간 동기화 장치(300)는, 예컨대 Median Value을 중심으로 Estimated Logical Clock의 offset을 계산하고, ±20 이내 범위 내에 있는 노드를 바운더리로 설정하며, 가장 앞서있는 Node 2를 F-Median으로 설정할 수 있다.As shown in Figure 9, the time synchronization device 300, for example, calculates the offset of the Estimated Logical Clock based on the Median Value, sets a node within the range of ±20 as a boundary, and selects the leading Node 2 It can be set to F-Median.

도 10은 F-Median을 선정하는 알고리즘 설명하기 위한 도이다.10 is a diagram for explaining an algorithm for selecting an F-Median.

도 10에 도시한 바와 같이, 시간 동기화 장치(300)는 상술한 Step 1) 내지 Step 5)에 기초하여, Logical Clock Li(t) 들을 계산하고, 이를 통해 가장 빠른 F-Median을 확정할 수 있다.As shown in FIG. 10, the time synchronizer 300 calculates Logical Clock L i (t) based on Step 1) to Step 5) described above, and can determine the fastest F-Median through this. there is.

칼만 필터는 입력되는 값의 경향성을 추정하여 오차를 보정한다. 도 10에서, F-Median 알고리즘을 통해 선정된 노드는 노드 j* 라고 한다. [수학식 11]를 통해, k번째 라운드의 입력값 mk를 구한다.The Kalman filter corrects the error by estimating the tendency of the input value. In FIG. 10 , a node selected through the F-Median algorithm is referred to as node j * . Through [Equation 11], the input value m k of the k-th round is obtained.

[수학식 11][Equation 11]

Figure 112020090546909-pat00016
Figure 112020090546909-pat00016

Tk와 Dk는 각각 동기화 라운드에서의 선택된 이웃 노드와의 클럭 오프셋과 클럭 드리프트를 나타낸다. 본 발명에서는 F-Median으로 선정된 노드의 시간 정보를 칼만 필터를 사용하여 오차를 제거한다.T k and D k represent the clock offset and clock drift with the selected neighbor node in the synchronization round, respectively. In the present invention, an error is removed from time information of a node selected as F-Median by using a Kalman filter.

도 11은 칼만 필터를 사용하여 오차를 제거하는 과정을 설명하는 도이다.11 is a diagram for explaining a process of removing an error using a Kalman filter.

칼만 필터는 초기에 임의의 두 m0와 P0를 입력값으로 사용한다. 칼만 필터는 두 값을 입력값으로 하여 시간을 업데이트한다.The Kalman filter initially uses two random m 0 and P 0 as inputs. The Kalman filter takes two values as input and updates the time.

[수학식 12][Equation 12]

Figure 112020090546909-pat00017
Figure 112020090546909-pat00017

여기서, A는 칼만 필터의 환경 모델로 Tk와 Dk의 값이 환경 모델을 따라 정해져 변환한다. 따라서, A는 입력되는 값이 환경 모델을 따를 것이라고 가정하여 미래의 값을 예측할 수 있다. Q는 측정된 공분산 잡음이고, B는 잡음 변환 행렬이다. B는 Q를 2X2 행렬로 변환하여 공분산에 더하여 산출한다. 일반적인 B와 Q의 값은 [수학식 13]과 같다.Here, A is an environmental model of the Kalman filter, and the values of T k and D k are determined and converted according to the environmental model. Therefore, A can predict future values by assuming that the input values will follow the environmental model. Q is the measured covariance noise, and B is the noise transformation matrix. B is calculated by transforming Q into a 2X2 matrix and adding it to the covariance. The general values of B and Q are as in [Equation 13].

[수학식 13][Equation 13]

Figure 112020090546909-pat00018
Figure 112020090546909-pat00018

본 발명에서는, 환경 모델을 통해 예측한 값과 실제로 측정된 zk 사이에 비율을 조정하기 위해서 칼만 이득을 구한다.In the present invention, the Kalman gain is obtained to adjust the ratio between the value predicted through the environment model and the actually measured z k .

[수학식 14][Equation 14]

Figure 112020090546909-pat00019
Figure 112020090546909-pat00019

여기서 Uk는 측정값을 변환하는 행렬이다. Tk와 Dk의 값을 하나의 측정값의 형태로 변환한다. Uk의 식은 [수학식 15]와 구한다.Here, U k is a matrix that transforms the measured values. Convert the values of T k and D k into the form of one measured value. The expression of U k is obtained with [Equation 15].

[수학식 15][Equation 15]

Figure 112020090546909-pat00020
Figure 112020090546909-pat00020

R은 공분산에 입력되는 잡음이다. 그 형태는 [수학식 16]과 같다.R is the noise input to the covariance. Its form is as [Equation 16].

[수학식 16][Equation 16]

Figure 112020090546909-pat00021
Figure 112020090546909-pat00021

예측값과 측정값의 비율은 Kk와 Uk를 사용하여 조정한다.The ratio of predicted and measured values is adjusted using K k and U k .

[수학식 17][Equation 17]

Figure 112020090546909-pat00022
Figure 112020090546909-pat00022

칼만 필터를 통해서 구한 mk의 값으로 Logical Clock Li(t(k+1))와 li를 업데이트한다.The Logical Clock L i (t(k+1)) and l i are updated with the value of m k obtained through the Kalman filter.

[수학식 18][Equation 18]

Figure 112020090546909-pat00023
Figure 112020090546909-pat00023

여기서 Tk+1'과 Dk+1'은 칼만 필터를 통해서 업데이트된 값이다. 본 발명에서는 칼만 필터를 매 라운드 마다 적용하여 오차를 제거하여 성능을 강화시킨다.Here, T k+1 ' and D k+1 ' are values updated through the Kalman filter. In the present invention, the Kalman filter is applied every round to remove errors to enhance performance.

도 11에 도시한 바와 같이, 시간 동기화 장치(300)는 칼만 필터를 적용하여, 시간 업데이트("Predict")와 측정값 업데이트("Correct")를 처리할 수 있다.11 , the time synchronization apparatus 300 may process a time update (“Predict”) and a measurement value update (“Correct”) by applying a Kalman filter.

시간 업데이트("Predict")에 있어, 시간 동기화 장치(300)는 모델을 사용하여 초기값을 통해 미래의 값을 예측할 수 있다. 이때, 측정값 예측의 식은 mp = Amk-1이고, 공분산 예측의 식은 Pp = APk-1AT + BQBT 이다.For time update (“Predict”), the time synchronizer 300 may use a model to predict a future value through an initial value. In this case, the equation of the measured value prediction is m p = Am k-1 , and the equation of the covariance prediction is P p = AP k-1 A T + BQB T.

측정값 업데이트("Correct")에 있어, 시간 동기화 장치(300)는 칼만 이득을 구하여 실제 측정된 값과 예측값을 조정한다. 칼만 이득 계산의 식은 KK = PPHK(HKPPHK + R)-1 이고, 측정값 업데이트의 식은 mK = mP + KK(zK - HKmP) 이며, 공분산 업데이트는 PK = (I - KKHK)PP 이다.In the measurement value update (“Correct”), the time synchronizer 300 obtains a Kalman gain and adjusts the actual measured value and the predicted value. The equation for Kalman gain calculation is K K = P P H K (H K P P H K + R) -1 , the equation for measurement update is m K = m P + K K (z K - H K m P ), The covariance update is P K = (I - K K H K )P P .

A는 칼만 필터 환경 모델이며, 환경의 모델을 통한 입력값 예측에 사용될 수 있다.A is a Kalman filter environment model, which can be used to predict input values through the environment model.

mk, Pk는 K라운드에서 입력 받은 측정값과 측정값의 공분산일 수 있다.m k , P k may be the covariance of the measured value inputted in the K round and the measured value.

mP, PP는 측정값과 측정값의 공분산 예측값일 수 있다.m P , P P may be a measured value and a predicted value of covariance of the measured value.

KK은 칼만 이득으로, 실제 측정값과 예측값을 조정한다.K K is the Kalman gain, which adjusts the actual measured and predicted values.

HK는 측정값 변환 행렬로, 센서값과 비교가능한 형태로 변환한다.H K is a measurement value transformation matrix, which is converted into a form comparable to a sensor value.

zK는 측정값으로, 실제 외부로부터 측정된 값이다.z K is a measured value, which is actually a value measured from the outside.

B는 잡음 변환 행렬로, 잡음을 공분산의 원소로 변환한다.B is the noise transformation matrix, which transforms noise into elements of covariance.

Q는 측정된 공분산의 잡음이다.Q is the noise of the measured covariance.

도 12는 본 발명의 알고리즘을 설명하기 위한 도면이다.12 is a diagram for explaining the algorithm of the present invention.

단계 1211에서, 시간 동기화 장치(300)는 메시지를 브로드캐스트 한다.In step 1211, the time synchronization device 300 broadcasts a message.

단계 1212에서, 시간 동기화 장치(300)는 이웃 노드의 메시지를 테이블에 저장할 수 있다.In operation 1212 , the time synchronization device 300 may store the message of the neighbor node in a table.

단계 1213에서, 시간 동기화 장치(300)는 이웃 노드의 메시지가 2개 이상인가를 판단한다.In step 1213, the time synchronization device 300 determines whether there are two or more messages from the neighboring node.

이웃 노드의 메시지가 2개 이상이면(단계 1213의 Yes 방향), 단계 1214에서, 시간 동기화 장치(300)는 Relative Skew를 계산할 수 있다.If there are two or more messages from the neighbor node (Yes direction of step 1213 ), in step 1214 , the time synchronizer 300 may calculate a relative skew.

이웃 노드의 메시지가 2개 이상이 아니거나(단계 1213의 No 방향), 단계 1214의 수행 후, 단계 1215에서, 시간 동기화 장치(300)는 라운드가 종료인가를 판단한다.If there are not two or more messages from neighboring nodes (No direction in step 1213), or after performing step 1214, in step 1215, the time synchronization device 300 determines whether the round is over.

라운드가 종료가 아니라면(단계 1215의 No 방향), 단계 1216에서, 시간 동기화 장치(300)는 메시지를 수신하였는가를 판단한다.If the round is not over (No direction in step 1215), in step 1216, the time synchronization device 300 determines whether a message has been received.

메시지가 수신되면(단계 1216에서 Yes 방향), 시간 동기화 장치(300)는 단계 1212로 리턴한다.When the message is received (direction Yes in step 1216 ), the time synchronizer 300 returns to step 1212 .

메시지가 수신되지 않으면(단계 1216에서 No 방향), 단계 1217에서, 시간 동기화 장치(300)는 메시지 수신을 대기한다.If the message is not received (No direction in step 1216), in step 1217, the time synchronizer 300 waits for message reception.

라운드가 종료라면(단계 1215의 Yes 방향), 단계 1218에서, 시간 동기화 장치(300)는 Relative Skew의 중위값을 소프트웨어 속도에 저장한다.If the round is over (in the Yes direction of step 1215), then at step 1218, the time synchronizer 300 stores the median of the relative skew in the software speed.

단계 1219에서, 시간 동기화 장치(300)는 동기화 라운드에서 이웃 노드의 클럭을 추정한다.In step 1219, the time synchronization device 300 estimates the clock of the neighboring node in the synchronization round.

단계 1220에서, 시간 동기화 장치(300)는 이웃 노드의 중위값을 계산한다.In step 1220 , the time synchronization device 300 calculates a median value of a neighboring node.

단계 1221에서, 시간 동기화 장치(300)는 F-Median 계산 후 칼만 필터를 실행한다.In step 1221 , the time synchronization device 300 executes the Kalman filter after calculating the F-Median.

단계 1222에서, 시간 동기화 장치(300)는 동기화를 완료한다.In step 1222, the time synchronization device 300 completes the synchronization.

본 발명에 의해서는, F-Median 방식을 통해서 칼만 필터를 사용하게 되면, 중위값 사이에 편차가 제거되고, 메시지를 전달하는 과정에서 발생하는 오차와 지연을 제거할 수 있다.According to the present invention, when the Kalman filter is used through the F-Median method, the deviation between the median values is removed, and the error and delay occurring in the process of transmitting the message can be eliminated.

또한, 본 발명에 의해서는, 네트워크 내에서 고장난 노드가 발생하더라도 나머지 노드가 시간을 동기화 하는 과정에서 이를 제거하여 동기화를 유지할 수 있다.In addition, according to the present invention, even if a failed node occurs in the network, it is possible to maintain synchronization by removing it in the process of synchronizing the time of the remaining nodes.

또한, 본 발명에 의해서는, 노드의 이동으로 인하여 토폴로지의 변경이 발생해도 성능의 하락이 크게 발생하지 않는다.In addition, according to the present invention, even if a topology change occurs due to the movement of a node, a significant decrease in performance does not occur.

이하, 도 13에서는 본 발명의 실시예들에 따른 모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 장치(300)의 작업 흐름을 상세히 설명한다.Hereinafter, a work flow of the time synchronization apparatus 300 centered on a median robust to a mobile environment according to embodiments of the present invention will be described in detail with reference to FIG. 13 .

본 실시예에 따른 모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 방법은 시간 동기화 장치(300)에 의해 수행될 수 있다.The time synchronization method centered on the median robust to the mobile environment according to the present embodiment may be performed by the time synchronization apparatus 300 .

도 13은 본 발명의 일실시예에 따른, 모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 방법을 도시한 흐름도이다.13 is a flowchart illustrating a time synchronization method centered on a median robust to a mobile environment, according to an embodiment of the present invention.

우선, 시간 동기화 장치(300)는 네트워크를 구성하는 임의의 노드에서, 주변의 이웃 노드로부터 동기화메시지를 수신한다(1310). 단계(1310)는 GTSP 네트워크 내 노드 사이에서 상호 교환되는 동기화메시지를, 선택된 임의의 노드에서 수신하는 과정일 수 있다.First, the time synchronization device 300 receives a synchronization message from a neighboring node in any node constituting the network ( 1310 ). Step 1310 may be a process in which a selected random node receives a synchronization message exchanged between nodes in the GTSP network.

실시예에 따라, 시간 동기화 장치(300)는 상기 동기화메시지가 수신되는 횟수를 일정 기간 동안 카운트하여, 상기 임의의 노드에 할당되는 테이블에, 수신 횟수 Sj로서 기록할 수 있다. 즉, 시간 동기화 장치(300)는 주변의 하나의 이웃 노드로부터 지속적으로 동기화메시지를 수신하는 경우, 또는 주변의 다수의 이웃 노드 각각으로부터 동기화메시지를 수신하는 경우 등에 대해, 동기화메시지의 수신 횟수 Sj를 누계하여, 테이블에 갱신 기록할 수 있다.According to an embodiment, the time synchronization apparatus 300 may count the number of times the synchronization message is received for a certain period and record it in the table allocated to the arbitrary node as the number of reception S j . That is, when the time synchronization device 300 continuously receives a synchronization message from one neighboring node, or when receiving a synchronization message from each of a plurality of neighboring nodes, the number of times the synchronization message is received S j By accumulating , it can be updated and recorded in the table.

상기 동기화메시지가 수신되는 수신 횟수 Sj가 정해진 n 이상(상기 n은 2 이상의 자연수)일 경우, 시간 동기화 장치(300)는 상기 이웃 노드와의 Relative hardware clock rate Rij와, 상기 임의의 노드에 대한 Relative logical clock rate li를 계산한다(1320). 단계(1320)는 테이블에 기록된 수신 횟수 Sj가 최소한 2 이상이면, 동기화메시지를 송신한 이웃 노드와 상기 임의의 노드 사이의 상대적 관계를 정의하기 위한 파라메타로서의, Relative hardware clock rate Rij와, Relative logical clock rate li를 연산하는 과정일 수 있다.When the number of reception times S j at which the synchronization message is received is greater than or equal to a predetermined n (where n is a natural number greater than or equal to 2), the time synchronization device 300 sets the Relative hardware clock rate R ij with the neighbor node and the arbitrary node. Calculate the relative logical clock rate l i for (1320). In step 1320, if the number of receptions recorded in the table S j is at least 2 or more, Relative hardware clock rate R ij as a parameter for defining the relative relationship between the neighbor node that has transmitted the synchronization message and the arbitrary node, It may be a process of calculating the relative logical clock rate l i .

상기 Relative hardware clock rate Rij는 상기 임의의 노드와 상기 이웃 노드 사이의 하드웨어 클럭 rate의 비로 정의할 수 있다.The relative hardware clock rate R ij may be defined as a ratio of a hardware clock rate between the arbitrary node and the neighboring node.

상기 Relative logical clock rate li는 상기 임의의 노드에 대한 하드웨어 클럭 Hi(t)과 로지컬 클럭 Li(t)과의 상대적인 rate 차이를 나타내는 값으로 정의할 수 있다.The relative logical clock rate l i may be defined as a value indicating a relative rate difference between the hardware clock H i (t) and the logical clock L i (t) for the arbitrary node.

또한, 시간 동기화 장치(300)는 상기 Relative hardware clock rate Rij와, 상기 Relative logical clock rate li를 적어도 포함하는 연산식에 의해 연산되는 상기 이웃 노드에 대한 로지컬 클럭 중에서, 중간에 위치하는 중위값을 이용하여, 상기 임의의 노드에 대한 시간을 업데이트하여 동기화한다(1330). 단계(1330)는 복수의 노드가 넓게 분산된 환경에서, 규정된 연산식을 통해 로지컬 클럭의 중위값을 결정하고, 결정된 중위값으로, 상기 임의의 노드에 대해 시간 업데이트를 하는 과정일 수 있다.In addition, the time synchronization device 300 selects a median value located in the middle among the logical clocks for the neighboring nodes calculated by an arithmetic expression including at least the Relative hardware clock rate R ij and the Relative logical clock rate l i By using, the time for the arbitrary node is updated and synchronized (1330). Step 1330 may be a process of determining a median value of a logical clock through a prescribed arithmetic expression in an environment in which a plurality of nodes are widely distributed, and time updating the arbitrary node with the determined median value.

상기 이웃 노드에 대한 로지컬 클럭Lj(t(k+1))에 대한 상기 연산식은, [수학식 9]를 만족할 수 있다.The calculation formula for the logical clock L j (t(k+1)) for the neighboring node may satisfy [Equation 9].

[수학식 9][Equation 9]

Figure 112020090546909-pat00024
Figure 112020090546909-pat00024

여기서, 상기 Lj(tk)는, k번째 라운드에서의 상기 이웃 노드의 로지컬 클럭이고, 상기 Hi(t(k+1)) - Hi(tk)은, 상기 임의의 노드에 관한 하드웨어 클럭의 변화일 수 있다.Here, the L j (t k ) is the logical clock of the neighboring node in the k-th round, and the H i (t (k+1) ) - H i (t k ) is for the arbitrary node It may be a change in the hardware clock.

실시예에 따라, 시간 동기화 장치(300)는 임계 범위 내에 있는 특정의 로지컬 클럭 중에서 어느 하나를 중위값으로 결정할 수 있다.According to an embodiment, the time synchronization apparatus 300 may determine any one of specific logical clocks within a threshold range as a median value.

시간 동기화 장치(300)는 상기 로지컬 클럭Lj(t(k+1))이 복수로 연산되는 경우, 상기 복수의 로지컬 클럭Lj(t(k+1)) 중, 가운데 값을 기준으로, 선정된 상한 및 하한을 갖는 밴드에 속하는 클럭값들을 추출할 수 있다. 즉, 시간 동기화 장치(300)는 계산을 통해 복수의 로지컬 클럭이 도출됨에 따라, 도출된 복수의 로지컬 클럭 중에서, 임계 범위인 밴드 내부에 위치하는 클럭값을 선별할 수 있다.When a plurality of the logical clocks L j (t(k+1)) are calculated, the time synchronization device 300 is based on a middle value among the plurality of logical clocks L j (t(k+1)), Clock values belonging to a band having a selected upper limit and lower limit may be extracted. That is, as a plurality of logical clocks are derived through calculation, the time synchronizer 300 may select a clock value located within a band that is a critical range from among the plurality of derived logical clocks.

이후, 시간 동기화 장치(300)는 상기 추출된 클럭값들 중에서, Absolute logical clock rate 로의 수렴 속도가 가장 빠른 하나의 클럭값을, 상기 중위값으로 결정할 수 있다. Absolute logical clock rate는 추출된 클럭값들이 갖는 규정된 값(예컨대, 평균값 등)에 도달되는 속도를 지칭할 수 있다.Thereafter, the time synchronizer 300 may determine, among the extracted clock values, one clock value having the fastest convergence speed to the absolute logical clock rate as the median value. The absolute logical clock rate may refer to a speed at which the extracted clock values reach a prescribed value (eg, an average value, etc.).

즉, 시간 동기화 장치(300)는 추출된 클럭값 각각에 대한 Absolute logical clock rate를 구한 후, 가장 짧은 수치를 갖는 하나의 클럭값을, 중위값으로 결정할 수 있다.That is, after obtaining the absolute logical clock rate for each of the extracted clock values, the time synchronizer 300 may determine one clock value having the shortest value as the median value.

실시예에 따라, 시간 동기화 장치(300)는 상기 중위값을, 칼만 필터를 사용하여 오차 보정 한 후, 상기 임의의 노드의 시간을 업데이트 및 동기화할 수 있다.According to an embodiment, the time synchronization apparatus 300 may update and synchronize the time of the arbitrary node after error-correcting the median value using a Kalman filter.

칼만 필터(Kalman filter)는 시간 변화, 비정상(nonstationary), 다중 채널 시스템을 포함한 모든 선형 시스템에 적용 가능한 순환 필터일 수 있다. 칼만 필터는 잡음이 섞여 있는 기존의 관측값을 최소 제곱법을 통해 분석함으로써 일정 시간 후의 위치를 예측할 수 있도록 하는 수학적 계산 과정에 활용될 수 있다.The Kalman filter may be a cyclic filter applicable to all linear systems including time-varying, nonstationary, and multi-channel systems. The Kalman filter can be used in the mathematical calculation process to predict the position after a certain time by analyzing the existing observation values mixed with noise through the least squares method.

시간 동기화 장치(300)는 상기 칼만 필터를 통해서 구한 mk의 값으로, 상기 Relative logical clock rate li와, 상기 이웃 노드에 대한 로지컬 클럭을 업데이트할 수 있다.The time synchronizer 300 may update the relative logical clock rate l i and the logical clock for the neighboring node with the value of m k obtained through the Kalman filter.

상기 mk는 k번째 라운드의 입력값으로서, [수학식 11]을 만족하여 연산될 수 있다.The m k is an input value of the k-th round, and may be calculated by satisfying [Equation 11].

[수학식 11][Equation 11]

Figure 112020090546909-pat00025
Figure 112020090546909-pat00025

본 발명의 일실시예에 따르면, 기기 사이에 시간을 빠르게 수렴하고, 복수의 노드가 넓게 분산된 환경에서 고장 노드의 시간을 제외하는 과정을 통해서 동기화하는, 모바일 환경에 강인한 중위값을 중심으로 한 시간 동기화 방법 및 시간 동기화 장치를 제공할 수 있다.According to an embodiment of the present invention, time centered on a median value robust to a mobile environment, which rapidly converges time between devices and synchronizes it through a process of excluding the time of a failed node in an environment in which a plurality of nodes are widely distributed A synchronization method and a time synchronization device may be provided.

또한, 본 발명의 일실시예에 따르면, 이웃 노드의 relative hardware clock rate를 계산하고 중위값을 활용하여 빠르게 이웃 노드로 전달한 후 동기화하고, F-Median과 칼만 필터를 통해서 동기화를 유지할 수 있다.In addition, according to an embodiment of the present invention, it is possible to calculate the relative hardware clock rate of a neighboring node and quickly transmit it to the neighboring node by using the median, then synchronize it, and maintain the synchronization through the F-Median and Kalman filter.

또한, 본 발명의 일실시예에 따르면, F-Median을 사용하여, 네트워크 노드 사이의 중위값 편차를 제거할 수 있고, 고장난 노드의 시간정보를 동기화 과정에서 배제할 수 있다.In addition, according to an embodiment of the present invention, by using F-Median, it is possible to remove the median deviation between network nodes and to exclude time information of the failed node from the synchronization process.

또한, 본 발명의 일실시예에 따르면, 시간 동기화가 빠르게 진행되고 토폴로지 변경과 오차의 발생으로 인한 동기화의 성능 하락을 줄일 수 있다.In addition, according to an embodiment of the present invention, time synchronization proceeds quickly, and a decrease in synchronization performance due to a topology change and an error occurrence can be reduced.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or apparatus, to be interpreted by or to provide instructions or data to the processing device. , or may be permanently or temporarily embody in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited drawings, those skilled in the art may apply various technical modifications and variations based on the above. For example, the described techniques are performed in an order different from the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

300 : 시간 동기화 장치
310 : 수신부
320 : 계산부
330 : 동기화부
300: time synchronizer
310: receiver
320: calculator
330: synchronization unit

Claims (11)

네트워크를 구성하는 임의의 노드에서, 주변의 이웃 노드로부터 동기화메시지를 수신하는 단계;
상기 동기화메시지가 수신되는 수신 횟수 Sj가 정해진 n 이상(상기 n은 2 이상의 자연수)일 경우,
상기 이웃 노드와의 Relative hardware clock rate Rij와, 상기 임의의 노드에 대한 Relative logical clock rate li를 계산하는 단계;
상기 Relative hardware clock rate Rij와, 상기 Relative logical clock rate li를 적어도 포함하는 연산식에 의해 연산되는 상기 이웃 노드에 대한 복수의 로지컬 클럭 Lj(t(k+1)) 중, 가운데 값을 기준으로, 선정된 상한 및 하한을 갖는 밴드에 속하는 클럭값들을 추출하는 단계; 및
상기 추출된 클럭값들 중에서, Absolute logical clock rate 로의 수렴 속도가 가장 빠른 하나의 클럭값인 Logical Clock Lj(t)을 이용하여, 상기 임의의 노드에 대한 시간을 업데이트하여 동기화하는 단계
를 포함하는 시간 동기화 방법.
receiving, at any node constituting the network, a synchronization message from a neighboring node;
When the number of times the synchronization message is received S j is greater than or equal to n (where n is a natural number greater than or equal to 2),
calculating a relative hardware clock rate R ij with the neighbor node and a relative logical clock rate l i for the arbitrary node;
Among the plurality of logical clocks L j (t(k+1)) for the neighbor node calculated by an equation including at least the Relative hardware clock rate R ij and the Relative logical clock rate l i , the middle value extracting clock values belonging to a band having a predetermined upper limit and lower limit as a reference; and
Among the extracted clock values, using Logical Clock L j (t), which is one clock value having the fastest convergence speed to the absolute logical clock rate, updating and synchronizing the time for the arbitrary node
A time synchronization method comprising
제1항에 있어서,
상기 이웃 노드에 대한 로지컬 클럭 Lj(t(k+1))에 대한 상기 연산식은,
[수학식 9]
Figure 112021134204719-pat00043
를 만족하는,
-상기 Lj(tk)는, k번째 라운드에서의 상기 이웃 노드의 로지컬 클럭이고, 상기 Hi(t(k+1)) - Hi(tk)은, 상기 임의의 노드에 관한 하드웨어 클럭의 변화임-
시간 동기화 방법.
According to claim 1,
The formula for the logical clock L j (t(k+1)) for the neighboring node is,
[Equation 9]
Figure 112021134204719-pat00043
to satisfy
- The L j (t k ) is the logical clock of the neighboring node in the kth round, and the H i (t (k+1) ) - H i (t k ) is the hardware for the arbitrary node It is a change of clock-
How to synchronize time.
삭제delete 제1항에 있어서,
칼만 필터를 사용하여 상기 Logical Clock Lj(t)에 대해 오차 보정 한 후, 상기 임의의 노드의 시간을 업데이트 및 동기화하는 단계
를 더 포함하는 시간 동기화 방법.
According to claim 1,
After error correction for the Logical Clock L j (t) using a Kalman filter, updating and synchronizing the time of the random node
A time synchronization method further comprising a.
제4항에 있어서,
상기 칼만 필터를 통해서 구한 mk의 값으로, 상기 Relative logical clock rate li와, 상기 이웃 노드에 대한 로지컬 클럭을 업데이트하는 단계
-k번째 라운드의 입력값인 상기 mk는, [수학식 11]
Figure 112021134204719-pat00044
을 만족하여 연산됨-
를 더 포함하는 시간 동기화 방법.
5. The method of claim 4,
Updating the Relative logical clock rate l i and the logical clock for the neighboring node with the value of m k obtained through the Kalman filter
The m k , which is the input value of the -k-th round, is [Equation 11]
Figure 112021134204719-pat00044
Calculated by satisfying
A time synchronization method further comprising a.
네트워크를 구성하는 임의의 노드에서, 주변의 이웃 노드로부터 동기화메시지를 수신하는 수신부;
상기 동기화메시지가 수신되는 수신 횟수 Sj가 정해진 n 이상(상기 n은 2 이상의 자연수)일 경우,
상기 이웃 노드와의 Relative hardware clock rate Rij와, 상기 임의의 노드에 대한 Relative logical clock rate li를 계산하는 계산부; 및
상기 Relative hardware clock rate Rij와, 상기 Relative logical clock rate li를 적어도 포함하는 연산식에 의해 연산되는 상기 이웃 노드에 대한 복수의 로지컬 클럭 Lj(t(k+1)) 중, 가운데 값을 기준으로, 선정된 상한 및 하한을 갖는 밴드에 속하는 클럭값들을 추출하고, 상기 추출된 클럭값들 중에서, Absolute logical clock rate 로의 수렴 속도가 가장 빠른 하나의 클럭값인 Logical Clock Lj(t)을 이용하여, 상기 임의의 노드에 대한 시간을 업데이트하여 동기화하는 동기화부
를 포함하는 시간 동기화 장치.
a receiver for receiving a synchronization message from a neighboring node in any node constituting the network;
When the number of times the synchronization message is received S j is greater than or equal to n (where n is a natural number greater than or equal to 2),
a calculation unit for calculating a relative hardware clock rate R ij with the neighbor node and a relative logical clock rate l i for the arbitrary node; and
Among the plurality of logical clocks L j (t(k+1)) for the neighbor node calculated by an equation including at least the Relative hardware clock rate R ij and the Relative logical clock rate l i , the middle value As a reference, the clock values belonging to the band having the selected upper and lower limits are extracted, and among the extracted clock values, Logical Clock L j (t), which is one clock value with the fastest convergence speed to the absolute logical clock rate, is selected. A synchronization unit that updates and synchronizes the time for the arbitrary node using
A time synchronizer comprising a.
제6항에 있어서,
상기 이웃 노드에 대한 로지컬 클럭 Lj(t(k+1))에 대한 상기 연산식은,
[수학식 9]
Figure 112021134204719-pat00045
를 만족하는,
-상기 Lj(tk)는, k번째 라운드에서의 상기 이웃 노드의 로지컬 클럭이고, 상기 Hi(t(k+1)) - Hi(tk)은, 상기 임의의 노드에 관한 하드웨어 클럭의 변화임-
시간 동기화 장치.
7. The method of claim 6,
The formula for the logical clock L j (t(k+1)) for the neighboring node is,
[Equation 9]
Figure 112021134204719-pat00045
to satisfy
- The L j (t k ) is the logical clock of the neighboring node in the kth round, and the H i (t (k+1) ) - H i (t k ) is the hardware for the arbitrary node It is a change of clock-
time synchronizer.
삭제delete 제6항에 있어서,
상기 동기화부는,
칼만 필터를 사용하여 상기 Logical Clock Lj(t)에 대해 오차 보정 한 후, 상기 임의의 노드의 시간을 업데이트 및 동기화하는,
시간 동기화 장치.
7. The method of claim 6,
The synchronization unit,
After error correction for the Logical Clock L j (t) using a Kalman filter, updating and synchronizing the time of the random node,
time synchronizer.
제9항에 있어서,
상기 동기화부는,
상기 칼만 필터를 통해서 구한 mk의 값으로, 상기 Relative logical clock rate li와, 상기 이웃 노드에 대한 로지컬 클럭을 업데이트하는,
-k번째 라운드의 입력값인 상기 mk는 [수학식 11]
Figure 112021134204719-pat00046
을 만족하여 연산됨-
시간 동기화 장치.
10. The method of claim 9,
The synchronization unit,
Updating the Relative logical clock rate l i and the logical clock for the neighboring node with the value of m k obtained through the Kalman filter,
The input value of the -k-th round, m k , is [Equation 11]
Figure 112021134204719-pat00046
Calculated by satisfying
time synchronizer.
제1항, 제2항, 제4항, 제5항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.A computer-readable recording medium recording a program for executing the method of any one of claims 1, 2, 4, and 5.
KR1020200108709A 2020-08-27 2020-08-27 Method and device for robust time synchronization with median filtering under mobile environments KR102380091B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200108709A KR102380091B1 (en) 2020-08-27 2020-08-27 Method and device for robust time synchronization with median filtering under mobile environments

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200108709A KR102380091B1 (en) 2020-08-27 2020-08-27 Method and device for robust time synchronization with median filtering under mobile environments

Publications (2)

Publication Number Publication Date
KR20220027617A KR20220027617A (en) 2022-03-08
KR102380091B1 true KR102380091B1 (en) 2022-03-29

Family

ID=80812498

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200108709A KR102380091B1 (en) 2020-08-27 2020-08-27 Method and device for robust time synchronization with median filtering under mobile environments

Country Status (1)

Country Link
KR (1) KR102380091B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115513A1 (en) 2001-08-24 2003-06-19 David Harriman Error forwarding in an enhanced general input/output architecture and related methods
US20070230269A1 (en) 2004-09-16 2007-10-04 Vanderbilt University Acoustic source localization system and applications of the same
US20120244807A1 (en) 2009-08-31 2012-09-27 Masahiro Kuroda Short-distance wireless communication system and method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101280437B1 (en) * 2007-01-04 2013-06-28 엘지전자 주식회사 Mobile Communication Terminal and Method for Data Synchronization
KR100963650B1 (en) * 2008-02-28 2010-06-15 부산대학교 산학협력단 A high precision time synchronization system and method using wireless networks
US10200824B2 (en) * 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115513A1 (en) 2001-08-24 2003-06-19 David Harriman Error forwarding in an enhanced general input/output architecture and related methods
US20070230269A1 (en) 2004-09-16 2007-10-04 Vanderbilt University Acoustic source localization system and applications of the same
US20120244807A1 (en) 2009-08-31 2012-09-27 Masahiro Kuroda Short-distance wireless communication system and method

Also Published As

Publication number Publication date
KR20220027617A (en) 2022-03-08

Similar Documents

Publication Publication Date Title
US7876791B2 (en) Synchronizing apparatus and method in packet network
US8416812B2 (en) Network timing synchronization systems
KR101275548B1 (en) Node in a Wireless System and Method for Time and Frequency Synchronizing Nodes in a Wireless System
US10142088B2 (en) Network clock skew estimation and calibration
JP2017513285A (en) Clock drift compensation in time-synchronized channel hopping networks
EP2342850A1 (en) A method for synchronizing clocks in a communication network
US20140362960A1 (en) Receiver, method of calculating time difference, and program
KR102067479B1 (en) Method and apparatus for correcting reference time for distributed time synchronization
JPWO2009048094A1 (en) Wireless communication system, synchronization method between base stations, and base station
JP2019507554A (en) Method for frequency correction of oscillator of sensor node of wireless sensor network
Zhang et al. Locating nodes in mobile sensor networks more accurately and faster
JP4137859B2 (en) Apparatus and method for estimating speed of mobile terminal in mobile communication system
KR102380091B1 (en) Method and device for robust time synchronization with median filtering under mobile environments
US10849086B2 (en) Compensating for oscillator drift in wireless mesh networks
KR101408433B1 (en) Guard time control method through propagation delay estimation and time synchronization acquisition
JP6010802B2 (en) Time synchronization system, time synchronization method, slave node, and computer program
CN106797247B (en) For promoting the method and network node of the Timing Synchronization in network
JP2024508195A (en) Methods, devices, and systems for controlling state parameters by communication devices
Liu et al. Fusion of state estimates over long-haul sensor networks under random delay and loss
CN117099055A (en) Method, apparatus and system for configuring a communication link used to exchange data related to a cooperative control algorithm
CN105071890A (en) Self-adaptive clock synchronization method with high robustness
JP6085864B2 (en) Time synchronization system, time synchronization method, slave node, and computer program
CN117394971A (en) Long-time air interface clock synchronization method based on channel state information
US10433197B2 (en) Compensating for oscillator drift in wireless mesh networks
JP7440801B2 (en) Phase difference distribution estimation method and phase difference distribution estimation device

Legal Events

Date Code Title Description
GRNT Written decision to grant