KR101771612B1 - 이더캣 기반의 동기화 오차 보상 시스템 및 그 방법 - Google Patents

이더캣 기반의 동기화 오차 보상 시스템 및 그 방법 Download PDF

Info

Publication number
KR101771612B1
KR101771612B1 KR1020160088179A KR20160088179A KR101771612B1 KR 101771612 B1 KR101771612 B1 KR 101771612B1 KR 1020160088179 A KR1020160088179 A KR 1020160088179A KR 20160088179 A KR20160088179 A KR 20160088179A KR 101771612 B1 KR101771612 B1 KR 101771612B1
Authority
KR
South Korea
Prior art keywords
time
slave
synchronization error
target
slaves
Prior art date
Application number
KR1020160088179A
Other languages
English (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 KR1020160088179A priority Critical patent/KR101771612B1/ko
Application granted granted Critical
Publication of KR101771612B1 publication Critical patent/KR101771612B1/ko

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0054Detection of the synchronisation error by features other than the received signal transition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals

Landscapes

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

Abstract

본 발명은 이더캣 기반의 동기화 오차 보상 시스템 및 그 방법에 관한 것으로, 구체적으로는 마스터에서 슬레이브 내부의 발진기 주파수 차이에 의한 동기화 오차를 보상함으로써, 이더캣 기반의 네트워크에 연결된 슬레이브들을 보다 정밀하게 동기화할 수 있는 동기화 오차 보상 시스템 및 그 방법에 관한 것이다.
또한, 본 발명은 이더캣에 연결된 복수의 슬레이브 중 참조 슬레이브로부터 참조 시간을 수집하고 참조 슬레이브 이외의 대상 슬레이브로부터 시스템 시간을 수집하는 수집부와, 참조 슬레이브의 참조 시간과 대상 슬레이브들의 시스템 시간을 각각 비교하여 참조 슬레이브와 각 대상 슬레이브 간의 시간 차이에 따른 동기화 오차를 추정하는 오차 추정부 및 대상 슬레이브별 동기화 오차에 따라 대상 슬레이브의 내부 클럭을 각각 조절하여 동기화 오차를 보상하는 오차 보상부를 구비하므로, 대상 슬레이브들의 발진기 주파수 차이로 인해 지속적으로 발생하는 동기화 오차를 줄임으로써, 이더캣 전체의 동기화 성능을 향상시킬 수 있다.

Description

이더캣 기반의 동기화 오차 보상 시스템 및 그 방법{Synchronization error compensating system and method for EtherCAT}
본 발명은 이더캣 기반의 동기화 오차 보상 시스템 및 그 방법에 관한 것으로, 구체적으로는 마스터에서 슬레이브 내부의 발진기 주파수 차이에 의한 동기화 오차를 보상함으로써, 이더캣 기반의 네트워크에 연결된 슬레이브들을 보다 정밀하게 동기화할 수 있는 동기화 오차 보상 시스템 및 그 방법에 관한 것이다.
이더캣(EtherCAT)은 산업용 이더넷의 한 종류로서, 하나의 마스터 장치와 복수의 슬레이브 장치로 이루어지고, 마스터 장치에 첫 번째 슬레이브 장치가 연결되며, 첫 번째 슬레이브 장치에 두 번째 슬레이브 장치가 연결되는 방식으로 N번째 슬레이브 장치까지 순차적으로 연결되는 라인 토폴로지를 포함하여 버스, 트리, 스타 또는 이들의 조합된 형태의 다양한 토폴로지를 지원하는 장점이 있다.
그리고, 이더캣의 마스터 장치는, 복수의 슬레이브 장치에 전송할 메세지를 하나의 통합형 메세지 프레임으로 묶어 전송하므로 매우 높은 전송 대역폭을 실현할 수 있으며, 각각의 슬레이브 장치는 하드웨어 기반의 프레임 릴레이를 통해 다음 차례의 슬레이브 장치로 전달하는 구조를 가지므로 매우 확정적인 메세지 전송 시간을 확보할 수 있다.
또한, 이더캣의 기본 메세지 단위는 데이터그램이며, 마스터 장치가 복수의 데이터그램을 하나의 이더넷 프레임에 통합하여 첫 번째 슬레이브로 전송하면, 첫번째 슬레이브 장치로부터 두 번째 슬레이브 장치로 이더넷 프레임이 다시 전송되는 방식으로 모든 슬레이브 장치에 순차적으로 전달된 후, 마지막의 N번째 슬레이브 장치에서 역순으로 전달되어 마스터 장치로 돌아오게 된다. 이 과정에서, 각각의 슬레이브 장치는 데이터그램에서 필요한 데이터를 읽어오거나 쓰고자 하는 데이터를 복사하게 된다.
또한, 이더캣은 슬레이브 장치들의 정밀한 시간 동기화를 지원하는 분산 클럭(Distributed Clock, DC) 동기화 기능을 제공함으로써, 마이크로 초 이하의 높은 동기화 성능을 구현할 수 있다.
즉, 이더캣은 첫 번째 슬레이브 장치의 시간을 기준으로 하여 모든 슬레이브 장치의 시간을 동기화할 수 있다. 예컨대, 초기 설정 과정에서 마스터 장치는 첫 번째 슬레이브 장치의 시스템 시간인 참조 시간과, 이를 제외한 슬레이브 장치들 각각의 로컬 시간 간의 오프셋 시간을 계산하고, 계산한 오프셋 시간을 각각의 슬레이브 장치로 전송한다. 이를 전송받은 각각의 슬레이브 장치가 로컬 시간과 오프셋 시간을 합하여 시스템 시간을 설정함으로써, 모든 슬레이브 장치들의 시간가 동일하게 동기화될 수 있다.
참고로, 전술한 시스템 시간은 슬레이브 장치들의 시간 동기화를 위한 전역 시간이며, 로컬 시간은 슬레이브 장치 고유의 시간을 뜻하며, 오프셋 시간은 첫 번째 슬레이브 장치의 참조 시간과 로컬 시간 간의 차이를 뜻한다.
보다 구체적으로 살펴보면, 이더캣은 오프셋 시간, 전파 지연 시간 및 시스템 시간 추이를 포함하는 세 가지 파라미터를 이용하여, 모든 슬레이브 장치의 시간을 동기화하게 된다.
전술한 바와 같이, 오프셋 시간은 참조 시간과 로컬 시간 간의 차이를 뜻하는데, 이는, 각 슬레이브 장치의 부팅 시간 차이 등의 요인에 의해 슬레이브 장치들의 로컬 시간의 시작 시점 차이에 의해 나타날 수 있다.
이를 보상하기 위해, 이더캣의 마스터 장치는 모든 슬레이브 장치들이 연결되면, 각각의 로컬 시간을 전송받아 동기화 기준인 첫 번째 슬레이브 장치의 참조 시간과 각 슬레이브 장치의 로컬 시간 간의 차이를 계산하고, 계산한 값을 슬레이브 장치들로 전송한다. 이때, 각각의 슬레이브 장치는 고유의 로컬 시간에 오프셋 시간을 합한 값으로 시스템 시간을 설정할 수 있다.
그리고, 슬레이브 장치들의 오프셋 시간을 보상하는 과정은 초기 설정 구간에 한 번만 이루어지며, 각각의 슬레이브 장치는 마스터로부터 수신한 오프셋 시간을 System_Time_Offset 레지스터에 저장한다.
예컨대, 각각의 슬레이브 장치는 아래의 수학식 1을 이용하여, 시스템 시간(tsystem _ time)을 계산할 수 있다.
[수학식 1]
tsystem _ time = tlocal _ time + toffset
여기서, tsystem _ time은 시스템 시간을 뜻하고, tlocal _ time은 로컬 시간을 뜻하며, toffset은 오프셋 시간을 뜻한다. 전술한, 수학식 1을 이용한 계산 과정은 모든 슬레이브 장치들에서 각각 수행되게 된다.
또한, 전술한 전파 지연 시간은 마스터 장치로부터 각각의 슬레이브 장치까지 메시지 전송에 걸리는 시간을 뜻한다. 이러한, 전파 지연 시간은 네트워크 토폴로지 형태, 슬레이브 장치의 특성 및 위치 등에 따라 달라질 수 있다.
이를 보상하기 위해, 이더캣의 마스터 장치는 모든 슬레이브 장치로 특정 주소의 레지스터에 대한 전역 쓰기 명령을 전송하고, 각각의 슬레이브 장치에서는 해당 명령을 수신한 시간을 고유의 로컬 시간을 기준으로 측정하여 해당 레지스터에 저장하며, 모든 슬레이브 장치를 순환하여 마스터로 되돌아갈 때의 시간도 해당 레지스터에 저장된다.
그리고, 해당 레지스터에 저장된 시간값을 이용하여 마스터 장치는 각 슬레이브 장치 사이의 전파 지연 시간(tprop _ delay)을 계산하고, 그 계산된 값을 각각의 슬레이브 장치로 전송하여 System_Time_Delay 레지스터에 저장한다. 또한, 전파 지연 시간을 보상하는 과정도 초기 설정 구간에 한 번만 이루어지고 있다. 실질적으로, 전술한 전파 지연 시간은 각 슬레이브 장치에서 시스템 시간 추이의 계산 시 적용되게 된다.
마지막으로, 시스템 시간 추이는 슬레이브 장치 내부의 발진기 주파수 차이로 인해 발생한 시간 차이를 뜻한다. 이로 인해, 모든 슬레이브 장치들은 어느 한 시점에 정확하게 동기화하더라도, 소정의 시간이 경과한 이후에는 시간 오차가 발생하게 되는 것이다.
이를 보상하기 위해, 이더캣의 마스터 장치에서 첫 번째 슬레이브 장치의 참조 시간을 다른 슬레이브 장치들로 주기적으로 전송하면, 이를 전송받은 각각의 슬레이브 장치는 참조시간을 기준으로 시스템 시간 추이를 계산하여 그 내부 클럭을 조절하게 된다.
도 1은 첫 번째 슬레이브 장치와 다른 슬레이브 장치 간의 시스템 시간 추이를 나타내는 도면이다.
도 1에서 도시된 바와 같이, 동기화 기준인 첫 번째 슬레이브 장치의 참조 시간(t = trecv _ sys _ time)과 다른 슬레이브 장치의 전파 지연 시간이 반영된 시스템 시간(t')은 서로 동일해야 한다. 여기서, 전술한 전파 지연 시간(tprop _ delay)은 첫 번째 슬레이브 장치와 다른 슬레이브 장치 간의 전파 지연 시간을 뜻한다.
즉, 첫 번째 슬레이브 장치의 참조 시간(t = trecv _ sys _ time), 다른 슬레이브 장치의 로컬 시간(tlocal _ time), 오프셋 시간(toffset) 및 전파 지연 시간(tprop _ delay)에 의해 결정된 시스템 시간(t')은 서로 동일하게 동기화되어야 한다.
그러나, 슬레이브 장치 내부의 발진기 주파수 차이로 인해 참조 시간과의 시간 차이가 발생하게 되므로, 각각의 슬레이브 장치에서는 아래의 수학식 2를 이용하여 시스템 시간 추이(Δt)를 계산한 후 그 내부 클럭을 조절한다.
[수학식 2]
Δt = t' - t = (tlocal _ time + toffset - tprop _ delay) - trecv _ sys _ time
여기서, Δt는 시스템 시간 추이를 뜻하고, t'은 다른 슬레이브 장치의 전파 지연 시간이 반영된 시스템 시간을 뜻하며, t와 trecv _ sys _ time은 첫 번째 슬레이브 장치의 참조 시간을 뜻하며, tlocal _ time은 다른 슬레이브 장치의 로컬 시간을 뜻하며, toffset은 다른 슬레이브 장치의 오프셋 시간을 뜻하며, tprop _ delay는 첫 번째 슬레이브 장치와 다른 슬레이브 장치 간의 전파 지연 시간을 뜻한다.
또한, 각각의 슬레이브 장치는 시스템 시간 추이(Δt)를 계산한 결과에 따라, 시스템 시간 추이(Δt)가 양의 값을 가질 경우 슬레이브 장치의 시스템 시간이 참조 시간보다 빠른 것이므로 슬레이브 장치는 내부 클럭을 감소시키고, 시스템 시간 추이(Δt)가 음의 값을 가질 경우 슬레이브 장치의 시스템 시간이 참조 시간보다 느린 것이므로 내부 클럭을 증가시키게 된다. 또한, 슬레이브 장치의 내부 클럭 변화에 따라 로컬 시간이 증가하거나 감소하여, 슬레이브 장치의 시스템 시간이 참조 시간에 맞게 동기화될 수 있다.
한편, 종래의 이더캣에서 시스템 시간 추이를 보상하는 과정이 각각의 슬레이브 장치에서만 이루어지게 되므로, 마스터에서는 각 슬레이브 장치의 시스템 시간 추이를 정확하게 파악할 수 없는 문제점이 있었다.
그리고, 종래의 이더캣에서는 각각의 슬레이브 장치가 시스템 시간 추이를 계산할 때 오프셋 시간 및 전파 지연 시간은 초기 설정 시 저장한 값으로만 적용하므로, 시스템 시간 추이의 계산값이 정확하게 계산되지 못하고, 이로 인한 동기화 오차가 발생하게 되는 문제점이 있다.
따라서, 종래의 이더캣은 슬레이브 장치들이 직접 시스템 시간 추이를 보상하여 그 내부 클럭을 조절함에도 불구하고, 큰 폭의 클럭 편차가 발생하거나 슬레이브 장치들의 완전하게 동기화되지 못하여 이더캣의 동기화 성능이 낮아지는 문제점이 있었다.
본 발명은 상기와 같은 문제점을 감안하여 안출된 것으로, 이더캣 기반의 네트워크에 연결된 슬레이브들을 보다 정밀하게 동기화할 수 있는 이더캣 기반의 동기화 오차 보상 시스템 및 그 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 슬레이브 내부의 발진기 주파수 차이에 의한 동기화 오차를 보상할 수 있는 이더캣 기반의 동기화 오차 보상 시스템 및 그 방법을 제공하는데 그 목적이 있다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기와 같은 목적을 달성하기 위한 본 발명은 이더캣에 연결된 복수의 슬레이브를 제어 및 동기화하는 마스터에 설치되는 동기화 오차 보상 시스템으로서, 복수의 슬레이브 중 동기화 기준이 되는 첫 번째 슬레이브인 참조 슬레이브로부터 참조 시간을 수집하고, 참조 슬레이브 이외의 대상 슬레이브로부터 시스템 시간을 수집하는 수집부; 상기 수집부로부터 수집된 참조 슬레이브의 참조 시간과 대상 슬레이브들의 시스템 시간을 각각 비교하여, 참조 슬레이브와 각 대상 슬레이브 간의 시간 차이에 따른 동기화 오차를 추정하는 오차 추정부; 및 상기 오차 추정부에서 추정된 대상 슬레이브별 동기화 오차에 따른 신규 오프셋 시간을 각 대상 슬레이브로 전송함으로써, 각각의 대상 슬레이브가 내부 클럭을 조절하여 동기화 오차를 보상하게 하는 오차 보상부;를 포함하는 동기화 오차 보상 시스템을 제공한다.
바람직한 실시예에 있어서, 상기 오차 보상부는 각 대상 슬레이브의 과거 오프셋 시간에서 동기화 오차를 뺀 값을 신규 오프셋 시간으로 계산하여 각 대상 슬레이브로 전송하고, 마스터는 참조 슬레이브의 참조 시간을 주기적으로 대상 슬레이브들로 전송하며, 각각의 대상 슬레이브는 고유의 로컬 시간과 신규 오프셋 시간을 합한 값으로 시스템 시간을 갱신하고, 상기 갱신된 시스템 시간과 참조 슬레이브의 참조 시간 간의 시간 차이만큼 그 내부 클럭을 증감시킨다.
바람직한 실시예에 있어서, 상기 오차 추정부는 참조 슬레이브의 참조 시간과 각 대상 슬레이브의 시스템 시간 간의 시간 차이를 계산한 후, 소정 시간 동안 계산된 복수의 시간 차이의 평균값을 동기화 오차로 추정한다.
바람직한 실시예에 있어서, 상기 오차 추정부는 평균 필터, 이동평균 필터 및 지수가중이동평균 필터 중 어느 하나를 이용하여, 복수의 시간 차이의 평균값을 계산한다.
또한, 본 발명은 이더캣에 연결된 복수의 슬레이브를 제어 및 동기화하는 마스터에 설치되는 동기화 오차 보상 시스템에서 수행되는 동기화 오차 보상 방법으로서, (1) 상기 동기화 오차 보상 시스템이, 복수의 슬레이브 중 동기화 기준이 되는 첫 번째 슬레이브인 참조 슬레이브로부터 참조 시간을 수집하고, 참조 슬레이브 이외의 대상 슬레이브로부터 시스템 시간을 수집하는 단계; (2) 상기 동기화 오차 보상 시스템이, 참조 슬레이브의 참조 시간과 대상 슬레이브들의 시스템 시간을 각각 비교하여 참조 슬레이브와 각 대상 슬레이브 간의 시간 차이에 따른 동기화 오차를 추정하는 단계; 및 (3) 상기 동기화 오차 보상 시스템이, 대상 슬레이브별 동기화 오차에 따른 신규 오프셋 시간을 각 대상 슬레이브로 전송함으로써, 각각의 대상 슬레이브가 내부 클럭을 조절하여 동기화 오차를 보상하게 하는 단계;를 포함하는 동기화 오차 보상 방법을 제공한다.
바람직한 실시예에 있어서, 상기 제 (3)단계에서 동기화 오차 보상 시스템은, 각 대상 슬레이브의 과거 오프셋 시간에서 동기화 오차를 뺀 값을 신규 오프셋 시간으로 계산하여 각 대상 슬레이브로 전송하고, 상기 제 (3)단계에서 마스터는 참조 슬레이브의 참조 시간을 주기적으로 대상 슬레이브들로 전송하며, 상기 제 (3)단계에서 각각의 대상 슬레이브는, 고유의 로컬 시간과 신규 오프셋 시간을 합한 값으로 시스템 시간을 갱신하고, 상기 갱신된 시스템 시간과 참조 슬레이브의 참조 시간 간의 시간 차이만큼 그 내부 클럭을 증감시킨다.
바람직한 실시예에 있어서, 상기 제 (3)단계에서 동기화 오차 보상 시스템은, 참조 슬레이브의 참조 시간과 각 대상 슬레이브의 시스템 시간 간의 시간 차이를 계산한 후 소정 시간 동안 계산된 복수의 시간 차이의 평균값을 동기화 오차로 추정한다.
바람직한 실시예에 있어서, 상기 제 (3)단계에서 동기화 오차 보상 시스템은, 평균 필터, 이동평균 필터 및 지수가중이동평균 필터 중 어느 하나를 이용하여 복수의 시간 차이의 평균값을 계산한다.
전술한 과제해결 수단에 의해 본 발명은 이더캣에 연결된 복수의 슬레이브 중 참조 슬레이브로부터 참조 시간을 수집하고 참조 슬레이브 이외의 대상 슬레이브로부터 시스템 시간을 수집하는 수집부와, 참조 슬레이브의 참조 시간과 대상 슬레이브들의 시스템 시간을 각각 비교하여 참조 슬레이브와 각 대상 슬레이브 간의 시간 차이에 따른 동기화 오차를 추정하는 오차 추정부 및 대상 슬레이브별 동기화 오차에 따라 대상 슬레이브의 내부 클럭을 각각 조절하여 동기화 오차를 보상하는 오차 보상부를 구비하므로, 대상 슬레이브들의 발진기 주파수 차이로 인해 지속적으로 발생하는 동기화 오차를 줄임으로써, 이더캣 전체의 동기화 성능을 향상시키는 효과가 있다.
도 1은 첫 번째 슬레이브 장치와 다른 슬레이브 장치 간의 시스템 시간 추이를 나타내는 도면.
도 2는 본 발명의 일실시예에 따른 동기화 오차 보상 시스템을 설명하기 위한 도면.
도 3은 종래의 분산 클럭 동기화 방식에 따른 슬레이브의 클럭 편차를 나타내는 도면이고, 도 4 내지 도 6은 본 발명의 동기화 오차 보상 시스템에 따른 슬레이브의 클럭 편차를 나타내는 도면.
도 7은 본 발명의 일실시예에 따른 동기화 오차 보상 방법을 설명하기 위한 도면.
하기의 설명에서 본 발명의 특정 상세들이 본 발명의 보다 전반적인 이해를 제공하기 위해 나타나 있는데, 이들 특정 상세들 없이 또한 이들의 변형에 의해서도 본 발명이 용이하게 실시될 수 있다는 것은 이 기술분야에서 통상의 지식을 가진 자에게 자명할 것이다.
먼저, 본 발명의 일실시예에 따른 동기화 오차 보상 시스템 및 그 방법은 하드웨어로 구현될 수도 있으나, 바람직하게는, 하드웨어와 함께 동작하는 소프트웨어로 구현될 수 있다.
여기서, 소프트웨어는 하드디스크 드라이브, SSD, USB메모리 및 SD카드와 같이 공지된 컴퓨터로 읽을 수 있는 저장매체에 저장되어 상기 컴퓨터에서 읽혀짐으로써 상기 컴퓨터가 기능하게 하는 것일 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도 2 내지 도 7을 참조하여 상세히 설명하되, 본 발명에 따른 동작 및 작용을 이해하는데 필요한 부분을 중심으로 설명한다.
도 2는 본 발명의 일실시예에 따른 동기화 오차 보상 시스템을 설명하기 위한 도면이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 동기화 오차 보상 시스템(100)은 수집부(110), 오차 추정부(120) 및 오차 보상부(130)를 포함하여 구성된다.
여기서, 본 발명의 일실시예에 따른 동기화 오차 보상 시스템(100)은 적어도 하나의 마스터(10)와 복수의 슬레이브(20)로 이루어진 이더캣(EtherCAT) 기반의 네트워크에서 구현될 수 있다. 바람직하게, 본 발명의 동기화 오차 보상 시스템(100)은 마스터(10)에 설치되어 동작한다.
또한, 전술한 마스터는 분산 클럭(Distributed Clock, DC) 동기화 기능을 이용하여 이더캣에 연결된 복수의 슬레이브(20)를 제어 및 동기화한다. 예컨대, 마스터(10)와 가장 가까운 첫 번째 슬레이브인 참조 슬레이브(21)의 참조 시간을 기준으로, 참조 슬레이브 이외의 대상 슬레이브들(22, 23)의 시스템 시간을 동기화할 수 있다. 참고로, 전술한 시스템 시간은 이더캣의 분산 클럭 동기화 기능에 의해 관리되는 전역 시간을 뜻하고, 참조 시간은 참조 슬레이브(21)의 시스템 시간을 뜻하며, 오프셋 시간은 로컬 시간과 참조 시간 간의 시간 차이를 뜻한다.
상기 수집부(110)는 참조 슬레이브(21)로부터 참조 시간을 수집하고, 대상 슬레이브들(22, 23)로부터 각각의 시스템 시간을 수집한다. 예컨대, 상기 수집부(110)는 슬레이브(20)의 분산 클럭 동기 이벤트 신호에 맞춰, 참조 슬레이브(21)의 참조 시간과 각 대상 슬레이브(22, 23)의 시스템 시간을 수신하여 소정의 레지스터에 저장하는 방식으로 구현될 수 있다.
바람직하게, 상기 수집부(110)는 참조 슬레이브(21) 및 대상 슬레이브들(22, 23)로부터 참조 시간 및 시스템 시간을 주기적으로 수집하여 저장하며, 그 이외에도 오프셋 시간 및 전파 지연 시간을 더 수집할 수도 있다. 이때, 전술한 전파 지연 시간은 마스터(10)로부터 각각의 슬레이브(20)까지 메시지 전송에 걸린 시간을 뜻한다.
상기 오차 추정부(120)는 대상 슬레이브들(22, 23)에서 발생한 동기화 오차를 추정하는 기능을 수행한다. 예컨대, 상기 오차 추정부는 상기 수집부(110)로부터 수집된 참조 슬레이브(21)의 참조 시간과 대상 슬레이브들(22, 23)의 시스템 시간을 각각 비교함으로써, 참조 슬레이브(21)와 각 대상 슬레이브(22, 23) 간의 시간 차이에 따른 동기화 오차를 추정할 수 있다.
실질적으로, 상기 오차 추정부(120)는 전파 지연 시간을 반영하여 참조 슬레이브(21)의 참조 시간과 각 대상 슬레이브(22, 23)의 시스템 시간 간의 시간 차이를 계산하는 과정을 복수 회 반복하여 수행한다. 즉, 상기 수집부(110)에 의해 매 주기마다 참조 시간과 시스템 시간이 수집될 때마다, 상기 오차 추정부(120)에서 각각의 대상 슬레이브(22, 23) 별로 참조 시간과의 시간 차이를 계산하게 된다.
그리고, 상기 오차 추정부(120)는 소정 시간 동안 계산된 복수의 시간 차이에 대한 평균값을 계산하여 그 평균값을 동기화 오차로 추정한다. 이때, 상기 오차 추정부(120)는 모든 시간 차이에 대하여 평균값을 계산할 수도 있고, 사전에 설정된 시간 또는 개수 만큼의 시간 차이에 대한 평균값을 계산할 수도 있다.
또한, 상기 오차 추정부(120)는 아래의 수학식 3을 이용하여, 참조 슬레이브(21)의 참조 시간과 전파 지연 시간이 반영된 특정 대상 슬레이브(22) 간의 시스템 시간 간의 시간 차이를 계산한다.
[수학식 3]
ts (1) = tlocal _ time (1) + toffset (1) - tprop _ delay (m,1)
ts (2) = tlocal _ time (2) + toffset (2) - tprop _ delay (m,1) - tprop _ delay (1,2)
ts (2) - ts (1) = (tlocal _ time (2) + toffset (2) - tprop _ delay (1,2)) - (tlocal _ time (1) + toffset (1))
ts (2) - ts (1) = (tlocal _ time (2) + toffset (2) - tprop _ delay (1,2)) - tsys _ time (1)
t ≡ ts (2) - ts (1)
여기서, ts (1)은 전파 지연 시간이 반영된 참조 슬레이브(21)의 참조 시간을 뜻하고, tlocal _ time (1)는 참조 슬레이브(21)의 로컬 시간을 뜻하며, toffset (1)는 참조 슬레이브(21)의 오프셋 시간을 뜻하며, tprop _ delay (m,1)는 마스터(10)와 참조 슬레이브(21) 간의 전파 지연 시간을 뜻하며, ts (2)는 전파 지연 시간이 반영된 대상 슬레이브(22)의 시스템 시간을 뜻하며, tlocal _ time (2)는 대상 슬레이브(22)의 로컬 시간을 뜻하며, toffset (2)는 대상 슬레이브(22)의 오프셋 시간을 뜻하며, tprop _ delay (1,2)는 참조 슬레이브(21)와 대상 슬레이브(22) 간의 전파 지연 시간을 뜻한다.
그리고, tsys _ time (1)는 ‘tlocal _ time (1) + toffset (1)’을 뜻하며, t는 최종적으로 계산된 참조 슬레이브(21)와 대상 슬레이브(22) 간의 시간 차이를 뜻한다.
한편, 전술한 수학식 3을 통해 참조 슬레이브(21)와 특정 대상 슬레이브(22) 간의 시간 차이를 계산하는 과정을 예시적으로 나타냈으나, 동일한 방식으로 다른 대상 슬레이브(23)와 참조 슬레이브(21) 간의 시간 차이를 계산할 수도 있다.
또한, 상기 오차 추정부(120)는 전술한 수학식 3을 이용하여, 참조 슬레이브(21)와 대상 슬레이브(22) 간의 시간 차이를 계산하는 과정을 1 내지 k번 반복하여 수행함으로써, t1 내지 tk를 포함하는 복수의 시간 차이를 계산할 수 있다.
한편, 상기 오차 추정부(120)에서는 k개의 시간 차이가 계산되면, 이들에 대한 평균값을 다시 계산하여 각각의 대상 슬레이브(22, 23)에 존재하는 동기화 오차를 추정한다. 이때, 상기 오차 추정부(120)는 평균 필터, 이동평균 필터 및 지수가중이동평균 필터 중 어느 하나를 이용하여 k개의 시간 차이에 대한 평균값을 계산할 수 있다.
예컨대, 상기 오차 추정부(120)는 아래의 수학식 4와 같이, 평균 필터를 적용하여 모든 시간 차이에 대한 평균값을 계산하여 동기화 오차를 추정할 수 있다.
[수학식 4]
Figure 112016067450575-pat00001

여기서, Δtest는 동기화 오차를 뜻하고, t1은 1번째 시간 차이를 뜻하며, t2는 2번째 시간 차이를 뜻하며, tk는 k번째 시간 차이를 뜻한다.
또한, 상기 오차 추정부(120)는 아래의 수학식 5와 같이, 이동평균 필터를 적용하여 k개의 시간 차이 중에서 N개의 시간 차이에 대한 평균값을 계산하여 동기화 오차를 추정할 수도 있다.
[수학식 5]
Figure 112016067450575-pat00002

여기서, Δtest는 동기화 오차를 뜻하고, tk -N+1은 k-N+1번째 시간 차이를 뜻하며, tk -N+2는 k-N+2번째 시간 차이를 뜻하며, N은 이동평균을 설정하는 임의의 수를 뜻하며, tk는 k번째 시간 차이를 뜻한다.
그리고, 상기 오차 추정부(120)는 아래의 수학식 6과 같이, 지수가중이동평균 필터를 적용하여 과거의 시간 차이에는 상대적으로 낮은 가중치를 부여하고 최근의 시간 차이에는 상대적으로 높은 가중치를 부여하는 방식으로 평균값을 계산하여 동기화 오차를 추정할 수도 있다.
[수학식 6]
Figure 112016067450575-pat00003

여기서, Δtest는 동기화 오차를 뜻하고, α는 0에서 1 사이의 특정값을 갖는 가중치를 뜻하며, tk -j는 k-j번째 시간 차이를 뜻하며, t0는 전술한 수학식 6을 통해 가장 최초로 계산된 시간 차이를 뜻한다.
즉, 상기 오차 추정부(120)에서 참조 슬레이브(21)와 대상 슬레이브들(22, 23) 간의 시간 차이에 따른 동기화 오차를 계산함으로써, 전술한 마스터(10)에서 동기화 오차가 존재하는 대상 슬레이브들(22, 23)을 확인할 수 있고, 그 동기화 오차를 보상해줄 수 있게 된다.
상기 오차 보상부(130)는 상기 오차 추정부(120)에서 추정된 대상 슬레이브별 동기화 오차에 따른 신규 오프셋 시간을 계산하여 각각의 대상 슬레이브(22, 23)로 전송하기 위한 것으로, 각각의 대상 슬레이브(22, 23)가 신규 오프셋 시간에 따라 그 내부 클럭을 조절함으로써, 동기화 오차를 보상하게 한다.
이를 위해, 상기 오차 보상부(130)는 각 대상 슬레이브(22, 23)의 과거 오프셋 시간에서 동기화 오차를 뺀 값을 신규 오프셋 시간으로 계산한다. 또한, 상기 오차 보상부(130)에서 계산된 신규 오프셋 시간은 각각의 대상 슬레이브(22, 23)로 전송되어 System_Time_Offset 레지스터에 저장된다.
또한, 상기 오차 보상부(130)는 아래의 수학식 7을 이용하여, 각각의 대상 슬레이브(22, 23)에 적용할 신규 오프셋 시간을 계산할 수 있다.
[수학식 7]
toffset _ new = toffset - Δtest
여기서, toffset _ new는 신규 오프셋 시간을 뜻하고, toffset는 대상 슬레이브(22, 23)의 오프셋 시간을 뜻하며, Δtest는 상기 오차 추정부(120)에서 계산된 동기화 오차를 뜻한다.
참고로, 전술한 오프셋 시간은, 대상 슬레이브들(22, 23)에서 각각의 로컬 시간과 합하여 그 시스템 시간을 결정하고, 참조 슬레이브(21)의 참조 시간과의 시스템 시간 추이(Δt)를 계산하기 위한 용도의 파라미터로 사용되고 있다. 참고로, 참조 슬레이브(21)의 참조 시간은 마스터(10)에 의해 대상 슬레이브들(22, 23)로 주기적으로 전송된다.
즉, 상기 오차 보상부(130)에서 신규 오프셋 시간을 각각의 대상 슬레이브(22, 23)로 전송한 다음에는, 각각의 대상 슬레이브(22, 23)에서 고유의 로컬 시간과 신규 오프셋 시간을 합한 값으로 시스템 시간을 갱신하고, 상기 갱신된 시스템 시간과 참조 슬레이브(21)의 참조 시간 간의 시간 차이, 즉, 시스템 시간 추이(Δt)에 따라서 그 내부 클럭을 증감시키는 과정이 수행되게 된다.
예컨대, 각각의 대상 슬레이브(22, 23)는 시스템 시간 추이(Δt)가 양의 값을 가질 경우 그 시스템 시간이 참조 슬레이브(21)의 참조 시간보다 빠른 것이므로 내부 클럭을 감소시키고, 반대로, 시스템 시간 추이(Δt)가 음의 값을 가질 경우에는 그 시스템 시간이 참조 시간보다 느린 것이므로 내부 클럭을 증가시키게 된다.
이로 인해, 대상 슬레이브들(22, 23)의 내부 클럭이 조절되어 클럭 편차가 감소하고, 참조 슬레이브(21)의 참조 시간과 대상 슬레이브들(22, 23)의 시스템 시간이 더 정확하게 동기화되게 된다.
한편, 상기 오차 보상부(130)에서 각 대상 슬레이브(22, 23)의 오프셋 시간으로 갱신한 다음에는, 상기 수집부(110)에 의해 오프셋 시간, 시스템 시간 및 참조 시간이 다시 수집되고, 상기 오차 추정부(120)에 의해 각 대상 슬레이브(22, 23)의 동기화 오차를 추정하며, 상기 오차 보상부(130)에 의해 동기화 오차가 존재하는 대상 슬레이브들(22, 23)의 오프셋 시간을 다시 갱신하는 과정이 주기적으로 반복되게 된다.
이하에서는, 본 발명의 일실시예에 따른 동기화 오차 보상 시스템(100)을 적용하였을 때의 클럭 편차와, 종래의 분산 클럭 동기화만을 적용하였을 때의 클럭 편차를 비교하였다.
도 3은 종래의 분산 클럭 동기화 방식에 따른 슬레이브의 클럭 편차를 나타내는 도면이고, 도 4는 평균 필터를 적용한 동기화 오차 보상 시스템에 따른 슬레이브의 클럭 편차를 나타내는 도면이며, 도 5는 이동평균 필터를 적용한 동기화 오차 보상 시스템에 따른 슬레이브의 클럭 편차를 나타내는 도면이며, 도 6은 지수가중이동평균 필터를 적용한 동기화 오차 보상 시스템에 따른 슬레이브의 클럭 편차를 나타내는 도면이다.
먼저, 도 3을 참조하면, 종래의 분산 클럭 동기화 방식을 적용하였을 경우에는 슬레이브의 클럭 편차가 크게 발생함을 알 수 있으며, 이로 인해, 슬레이브 간의 동기화가 완전하게 이루어지지 못하고 동기화 성능이 저하될 수 있다. 이러한, 클럭 편차는 슬레이브 내부의 발진기 주파수 차이에 기인하는 것으로, 모든 슬레이브를 정확하게 동기화한 다음에도 지속적으로 발생할 수 있다.
그러나, 도 4에서 도시된 바와 같이, 본 발명의 동기화 오차 보상 시스템에 따른 슬레이브의 클럭 편차는 분산 클럭 동기화 방식만을 적용하였을 때보다 현저하게 감소된 것을 확인할 수 있다. 즉, 슬레이브의 동기화 오차가 보상되어 클럭 편차가 감소하였으며, 이로 인해 동기화 성능이 향상될 수 있다.
또한, 도 5에 도시된 바와 같이, 본 발명의 동기화 오차 보상 시스템의 필터를 이동평균 필터로 변경한 경우에도 슬레이브의 클럭 편차가 크게 감소한 것을 확인할 수 있다. 이때, 이동평균은 10으로 설정되어 있으나 필요에 따라 변경하여 적용할 수 있다.
마지막으로, 도 6에서 도시된 바와 같이, 가중치(α)를 0.25, 0.50 및 0.75로 하여 지수가중이동평균 필터를 적용한 경우에도 슬레이브의 클럭 편차를 크게 감소시킬 수 있다. 즉, 슬레이브의 클럭 편차를 감소시켜서 동기화 성능을 개선할 수 있다.
예컨대, 아래의 표 1은 본 발명의 일실시예에 따른 동기화 오차 보상 시스템에 의한 동기화 성능과, 종래의 분산 클럭 동기화 방식에 의한 동기화 성능을 비교한 표이다.
분산 클럭
동기화

평균 필터
이동평균
필터
지수가중이동평균 필터
α=0.25 α=0.5 α=0.75
평균 156.1809 48.9937 52.9623 15.6891 -96.4121 -37.0330
최대 12878 1747 1049 860 1014 1638
최소 -3362 -3007 -3020 -2997 -3128 -3174
표준 편차 413.8114 287.8808 296.3027 267.7661 286.1424 273.1963
RMS 442.3032 292.0200 300.9987 301.9481 301.9481 275.6948
여기서, 표 1에는 종래의 분산 클럭 동기화 방식에 따른 슬레이브의 클럭 편차와, 본 발명의 일실시예에 따른 동기화 오차 보상 시스템에 평균 필터, 이동평균 필터 및 지수가중이동평균 필터를 각각 적용하였을 때의 슬레이브의 클럭 편차가 나타나 있다. 참고로, 전술한 표 1에서 클럭 편차의 단위는 ㎱이다.
즉, 본 발명의 일실시예에 따른 동기화 오차 보상 시스템에 평균 필터, 이동평균 필터 및 지수가중이동평균 필터 중 어느 필터를 적용하더라도, 종래의 분산 클럭 동기화 방식만을 적용하였을 때보다 현저하게 낮은 클럭 편차를 갖는 것을 확인할 수 있다. 특히, 클럭 최대값이 크게 감소하였으며, 이로 인해 평균값과 표준 편차가 감소한 것을 확인할 수 있다.
도 7은 본 발명의 일실시예에 따른 동기화 오차 보상 방법을 설명하기 위한 도면이다.
도 7을 참조하여, 본 발명의 일실시예에 따른 동기화 오차 보상 시스템에서 수행되는 동기화 오차 보상 방법을 설명한다.
다만, 도 7에 도시된 동기화 오차 보상 방법에서 수행되는 기능은 모두 도 2 내지 도 6을 참조하여 설명한 동기화 오차 보상 시스템에서 수행되므로, 명시적인 설명이 없어도, 도 2 내지 도 6을 참조하여 설명한 모든 기능은 본 발명의 바람직한 실시예에 따른 동기화 오차 보상 방법에서 수행되고, 도 7을 참조하여 설명하는 모든 기능은 본 발명의 바람직한 실시예에 따른 동기화 오차 보상 시스템에서 그대로 수행됨을 주의해야 한다.
먼저, 수집부가 복수의 슬레이브 중 동기화 기준이 되는 첫 번째 슬레이브인 참조 슬레이브로부터 참조 시간을 수집하고, 참조 슬레이브 이외의 대상 슬레이브로부터 시스템 시간을 수집한다(S110).
이때, 상기 수집부는 슬레이브의 분산 클럭 동기 이벤트 신호에 맞춰, 참조 슬레이브 및 대상 슬레이브들의 레지스터에 각각 저장된 참조 시간 및 시스템 시간을 수집하게 된다. 한편, 상기 수집부는 각 대상 슬레이브에서 오프셋 시간 및 전파 지연 시간을 더 수집할 수도 있다.
다음, 오차 추정부가 참조 슬레이브의 참조 시간과 대상 슬레이브들의 시스템 시간을 각각 비교하여, 참조 슬레이브와 각 대상 슬레이브 간의 시간 차이에 따른 동기화 오차를 추정한다(S120).
이때, 상기 오차 추정부는 아래의 수학식 8을 이용하여, 참조 슬레이브의 참조 시간과 대상 슬레이브들의 시스템 시간을 각각 비교하여 그 시간 차이를 계산할 수 있다. 참고로, 상기 오차 추정부는 마스터, 참조 슬레이브 ?? 각 대상 슬레이브 간의 전파 지연 시간을 반영하여 전술한 시간 차이를 계산한다.
[수학식 8]
ts (1) = tlocal _ time (1) + toffset (1) - tprop _ delay (m,1)
ts (2) = tlocal _ time (2) + toffset (2) - tprop _ delay (m,1) - tprop _ delay (1,2)
ts (2) - ts (1) = (tlocal _ time (2) + toffset (2) - tprop _ delay (1,2)) - (tlocal _ time (1) + toffset (1))
ts (2) - ts (1) = (tlocal _ time (2) + toffset (2) - tprop _ delay (1,2)) - tsys _ time (1)
t ≡ ts (2) - ts (1)
여기서, ts (1)은 전파 지연 시간이 반영된 참조 슬레이브의 참조 시간을 뜻하고, tlocal _ time (1)는 참조 슬레이브의 로컬 시간을 뜻하며, toffset (1)는 참조 슬레이브의 오프셋 시간을 뜻하며, tprop_delay(m,1)는 마스터와 참조 슬레이브 간의 전파 지연 시간을 뜻하며, ts (2)는 전파 지연 시간이 반영된 대상 슬레이브의 시스템 시간을 뜻하며, tlocal _ time (2)는 대상 슬레이브의 로컬 시간을 뜻하며, toffset (2)는 대상 슬레이브의 오프셋 시간을 뜻하며, tprop _ delay (1,2)는 참조 슬레이브와 대상 슬레이브 간의 전파 지연 시간을 뜻하며, tsys _ time (1)는 ‘tlocal _ time (1) + toffset(1)’을 뜻하며, t는 최종적으로 계산된 참조 슬레이브와 대상 슬레이브 간의 시간 차이를 뜻한다.
즉, 상기 오차 추정부는 상기 수집부에 의해 참조 시간과 시스템 시간이 소정의 주기마다 수집되면, 각각의 대상 슬레이브의 시스템 시간과 참조 슬레이브의 참조 시간 간의 시간 차이를 계산하는 과정을 반복하여 수행할 수 있다.
그리고, 상기 오차 추정부는 소정 시간 동안 계산된 복수의 시간 차이에 대한 평균값을 계산하여 그 평균값을 동기화 오차로 추정하게 된다. 이때, 평균 필터, 이동평균 필터 및 지수가중이동평균 필터 중 어느 하나를 이용하여 복수의 시간 차이의 평균값을 계산할 수 있다.
일 예로, 상기 오차 추정부는 아래의 수학식 9와 같이, 평균 필터를 적용하여 동기화 오차를 추정할 수 있다.
[수학식 9]
Figure 112016067450575-pat00004

여기서, Δtest는 동기화 오차를 뜻하고, t1은 1번째 시간 차이를 뜻하며, t2는 2번째 시간 차이를 뜻하며, tk는 k번째 시간 차이를 뜻한다. 즉, 상기 오차 보상부는 평균 필터를 이용하여, 모든 시간 차이에 대한 평균값을 계산하여 동기화 오차를 추정할 수 있다.
또한, 상기 오차 추정부는 아래의 수학식 10과 같이, 이동평균 필터를 적용하여 동기화 오차를 추정할 수도 있다.
[수학식 10]
Figure 112016067450575-pat00005

여기서, Δtest는 동기화 오차를 뜻하고, tk -N+1은 k-N+1번째 시간 차이를 뜻하며, tk -N+2는 k-N+2번째 시간 차이를 뜻하며, N은 이동평균을 설정하는 임의의 수를 뜻하며, tk는 k번째 시간 차이를 뜻한다.
즉, 상기 오차 추정부는 이동평균 필터를 이용하여, k개의 시간 차이 중에서 N개의 시간 차이에 대한 평균값을 계산하여 동기화 오차를 추정할 수도 있다.
한편, 상기 오차 추정부는 아래의 수학식 11가 같이, 지수가중이동평균 필터를 적용하여 동기화 오차를 추정할 수도 있다.
[수학식 11]
Figure 112016067450575-pat00006

여기서, Δtest는 동기화 오차를 뜻하고, α는 0에서 1 사이의 특정값을 갖는 가중치를 뜻하며, tk -j는 k-j번째 시간 차이를 뜻하며, t0는 가장 최초로 계산된 시간 차이를 뜻한다.
즉, 상기 오차 추정부는 지수가중이동평균 필터를 이용하여, 과거의 시간 차이에는 상대적으로 낮은 가중치를 부여하고 최근의 시간 차이에는 상대적으로 높은 가중치를 부여하는 방식으로 동기화 오차를 추정할 수도 있다.
그 다음에는, 오차 보상부가 대상 슬레이브별 동기화 오차에 따라 각 대상 슬레이브의 내부 클럭을 각각 조절하여 동기화 오차를 보상한다(S130).
이때, 상기 오차 보상부는 각각의 대상 슬레이브에서 로컬 시간과 합하여 그 시스템 시간을 결정하고, 참조 슬레이브의 참조 시간과의 시스템 시간 추이(Δt)를 계산하기 위한 용도의 파라미터로 사용되는 오프셋 시간을 변경함으로써, 각 대상 슬레이브의 내부 클럭을 조절할 수 있다.
즉, 상기 오차 보상부는 각 대상 슬레이브의 과거 오프셋 시간에서 동기화 오차를 뺀 값을 신규 오프셋 시간으로 계산하여 각 대상 슬레이브로 전송하며, 전술한 신규 오프셋은 아래의 수학식 12를 이용하여 계산할 수 있다.
[수학식 12]
toffset _new = toffset - Δtest
여기서, toffset _ new는 신규 오프셋 시간을 뜻하고, toffset는 대상 슬레이브의 오프셋 시간을 뜻하며, Δtest는 상기 오차 추정부에서 계산된 동기화 오차를 뜻한다.
한편, 상기 오차 추정부에 의해 대상 슬레이브 별로 신규 오프셋 시간이 계산되어 각각의 대상 슬레이브로 전송되면, 각각의 대상 슬레이브는 고유의 로컬 시간과 신규 오프셋 시간을 합한 값으로 시스템 시간을 갱신하고, 상기 갱신된 시스템 시간과 참조 슬레이브의 참조 시간 간의 시간 차이만큼 그 내부 클럭을 증감시킬 수 있다.
따라서, 동기화 오차가 존재하는 대상 슬레이브들의 내부 클럭이 조절되어 클럭 편차가 감소하고, 참조 슬레이브의 참조 시간과 대상 슬레이브들의 시스템 시간이 정밀하게 동기화된다.
한편, 전술한 제 130단계가 완료되면, 상기 수집부에 의해 참조 슬레이브 및 대상 슬레이브들의 참조 시간 및 시스템 시간을 각각 수집하는 제 110단계부터 다시 반복될 수 있다. 또한, 이러한 과정이 주기적으로 반복되면서, 대상 슬레이브들에 존재하는 동기화 오차가 지속적으로 제거할 수 있다.
이상에서는 본 발명의 바람직한 실시예를 예시적으로 설명하였으나, 본 발명의 범위는 이와 같은 특정 실시예에만 한정되는 것은 아니며, 특허청구범위에 기재된 범주 내에서 적절하게 변경 가능한 것이다.
110 : 수집부
120 : 오차 추정부
130 : 오차 보상부

Claims (8)

  1. 이더캣에 연결된 복수의 슬레이브를 제어 및 동기화하는 마스터에 설치되는 동기화 오차 보상 시스템으로서,
    복수의 슬레이브 중 동기화 기준이 되는 첫 번째 슬레이브인 참조 슬레이브로부터 참조 시간과 오프셋 시간을 주기적으로 수집하고, 참조 슬레이브 이외의 대상 슬레이브로부터 시스템 시간과 오프셋 시간을 주기적으로 수집하는 수집부;
    상기 수집부로부터 참조 슬레이브의 참조 시간과 각 대상 슬레이브의 시스템 시간이 수집될 때마다, 참조 시간과 각 시스템 시간 간의 시간 차이를 계산하는 과정을 반복하고, 소정 시간 동안 계산된 복수의 시간 차이에 대한 평균값을 동기화 오차로 추정하는 오차 추정부; 및
    상기 오차 추정부에서 추정된 대상 슬레이브별 동기화 오차에 따른 신규 오프셋 시간을 각 대상 슬레이브로 주기적으로 전송함으로써, 각각의 대상 슬레이브가 내부 클럭을 조절하여 동기화 오차를 보상하게 하는 오차 보상부;를 포함하고,
    상기 오차 추정부는, 평균 필터, 이동평균 필터 및 지수가중이동평균 필터 중 어느 하나를 이용하여 복수의 시간 차이의 평균값을 계산하며,
    상기 오차 보상부는, 상기 수집된 각 대상 슬레이브의 오프셋 시간인 과거 오프셋 시간에서 동기화 오차를 뺀 값을 신규 오프셋 시간으로 계산하여 각 대상 슬레이브로 전송하는 것을 특징으로 하는 동기화 오차 보상 시스템.
  2. 제 1항에 있어서,
    마스터는 참조 슬레이브의 참조 시간을 주기적으로 대상 슬레이브들로 전송하며,
    각각의 대상 슬레이브는 고유의 로컬 시간과 신규 오프셋 시간을 합한 값으로 시스템 시간을 갱신하고, 상기 갱신된 시스템 시간과 참조 슬레이브의 참조 시간 간의 시간 차이만큼 그 내부 클럭을 증감시키는 것을 특징으로 하는 동기화 오차 보상 시스템.
  3. 삭제
  4. 삭제
  5. 이더캣에 연결된 복수의 슬레이브를 제어 및 동기화하는 마스터에 설치되는 동기화 오차 보상 시스템에서 수행되는 동기화 오차 보상 방법으로서,
    (1) 상기 동기화 오차 보상 시스템이, 복수의 슬레이브 중 동기화 기준이 되는 첫 번째 슬레이브인 참조 슬레이브로부터 참조 시간과 오프셋 시간을 주기적으로 수집하고, 참조 슬레이브 이외의 대상 슬레이브로부터 시스템 시간과 오프셋 시간을 주기적으로 수집하는 단계;
    (2) 상기 동기화 오차 보상 시스템이, 참조 슬레이브의 참조 시간과 각 대상 슬레이브의 시스템 시간이 수집될 때마다, 참조 시간과 각 시스템 시간 간의 시간 차이를 계산하는 과정을 반복하고, 소정 시간 동안 계산된 복수의 시간 차이에 대한 평균값을 동기화 오차로 추정하는 단계; 및
    (3) 상기 동기화 오차 보상 시스템이, 대상 슬레이브별 동기화 오차에 따른 신규 오프셋 시간을 각 대상 슬레이브로 주기적으로 전송함으로써, 각각의 대상 슬레이브가 내부 클럭을 조절하여 동기화 오차를 보상하게 하는 단계;를 포함하고,
    상기 제 (2)단계에서 동기화 오차 보상 시스템은, 평균 필터, 이동평균 필터 및 지수가중이동평균 필터 중 어느 하나를 이용하여 복수의 시간 차이의 평균값을 계산하며,
    상기 제 (3)단계에서 동기화 오차 보상 시스템은, 상기 수집된 각 대상 슬레이브의 오프셋 시간인 과거 오프셋 시간에서 동기화 오차를 뺀 값을 신규 오프셋 시간으로 계산하여 각 대상 슬레이브로 전송하는 것을 특징으로 하는 동기화 오차 보상 방법.
  6. 제 5항에 있어서,
    상기 제 (3)단계에서 마스터는 참조 슬레이브의 참조 시간을 주기적으로 대상 슬레이브들로 전송하며,
    상기 제 (3)단계에서 각각의 대상 슬레이브는, 고유의 로컬 시간과 신규 오프셋 시간을 합한 값으로 시스템 시간을 갱신하고, 상기 갱신된 시스템 시간과 참조 슬레이브의 참조 시간 간의 시간 차이만큼 그 내부 클럭을 증감시키는 것을 특징으로 하는 동기화 오차 보상 방법.
  7. 삭제
  8. 삭제
KR1020160088179A 2016-07-12 2016-07-12 이더캣 기반의 동기화 오차 보상 시스템 및 그 방법 KR101771612B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160088179A KR101771612B1 (ko) 2016-07-12 2016-07-12 이더캣 기반의 동기화 오차 보상 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160088179A KR101771612B1 (ko) 2016-07-12 2016-07-12 이더캣 기반의 동기화 오차 보상 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR101771612B1 true KR101771612B1 (ko) 2017-08-25

Family

ID=59761497

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160088179A KR101771612B1 (ko) 2016-07-12 2016-07-12 이더캣 기반의 동기화 오차 보상 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101771612B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190074026A (ko) * 2017-12-19 2019-06-27 한국전기연구원 이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 방법 및 시스템
KR20210026241A (ko) 2019-08-29 2021-03-10 주식회사 효원파워텍 이더캣 네트워크 기반의 외부프로세서 시계 동기화 시스템 및 방법
CN117234993A (zh) * 2023-11-15 2023-12-15 浙江禾川科技股份有限公司 一种参数同步方法、装置、设备及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190074026A (ko) * 2017-12-19 2019-06-27 한국전기연구원 이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 방법 및 시스템
KR102291573B1 (ko) * 2017-12-19 2021-08-18 한국전기연구원 이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 방법 및 시스템
KR20210026241A (ko) 2019-08-29 2021-03-10 주식회사 효원파워텍 이더캣 네트워크 기반의 외부프로세서 시계 동기화 시스템 및 방법
CN117234993A (zh) * 2023-11-15 2023-12-15 浙江禾川科技股份有限公司 一种参数同步方法、装置、设备及存储介质
CN117234993B (zh) * 2023-11-15 2024-02-13 浙江禾川科技股份有限公司 一种参数同步方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN103763055B (zh) 一种精确同步时间的方法
US11082141B2 (en) Wireless apparatus and wireless apparatus processing method
US7340630B2 (en) Multiprocessor system with interactive synchronization of local clocks
KR101771612B1 (ko) 이더캣 기반의 동기화 오차 보상 시스템 및 그 방법
WO2016168063A1 (en) Methods, systems, and computer readable media for synchronizing timing among network interface cards (nics) in a network equipment test device
US9386552B2 (en) Wireless sensor time synchronization
US11444747B2 (en) Measure and improve clock synchronization using combination of transparent and boundary clocks
WO2010025743A1 (en) A method for synchronizing clocks in a communication network
US8949648B2 (en) System and method to overcome wander accumulation to achieve precision clock distribution over large networks
KR20190013077A (ko) 이더캣 네트워크의 마스터와 슬레이브들 간의 동기화 오차 보상을 위한 동기화 오차 보상시스템 및 그 동기화 오차 보상방법
CN108075851B (zh) 用于同步时钟的设备和方法
CN103905135A (zh) 实现时间同步的方法、设备和系统
KR100483262B1 (ko) 비균등 메모리 액세스 시스템용 스위칭 기반 타임 동기화프로토콜
CN105743599B (zh) 一种动态网络高精度传输同步与延迟补偿方法
JP2016046767A (ja) 通信装置及び通信システム
CN103842917A (zh) 时间控制装置、时间控制方法和程序
BR102019026425A2 (pt) Método e sistema para sincronizar um relógio local com um relógio mestre, e, rede de dispositivos distribuídos
CN113711511A (zh) 支持多时间同步协议的工业设备
CN112968748A (zh) 软件同步误差补偿方法、系统、介质及设备
US8897289B2 (en) Node system and supervisory node
JP6880611B2 (ja) 処理装置、システム、処理方法および処理プログラム
US8849937B2 (en) Apparatus and method for time synchronization by automatically controlling sending message count of master
KR20190072745A (ko) 안정적인 네트워크 기반 시간동기화 방법
WO2016177240A1 (zh) 一种实现频率同步的方法和装置
CN115347965A (zh) 带缓存机制的基于改进滑动平均滤波的时间同步优化方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant