KR102291573B1 - 이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 방법 및 시스템 - Google Patents

이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 방법 및 시스템 Download PDF

Info

Publication number
KR102291573B1
KR102291573B1 KR1020170175363A KR20170175363A KR102291573B1 KR 102291573 B1 KR102291573 B1 KR 102291573B1 KR 1020170175363 A KR1020170175363 A KR 1020170175363A KR 20170175363 A KR20170175363 A KR 20170175363A KR 102291573 B1 KR102291573 B1 KR 102291573B1
Authority
KR
South Korea
Prior art keywords
time
mcu
network
origin
control mcu
Prior art date
Application number
KR1020170175363A
Other languages
English (en)
Other versions
KR20190074026A (ko
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 KR1020170175363A priority Critical patent/KR102291573B1/ko
Publication of KR20190074026A publication Critical patent/KR20190074026A/ko
Application granted granted Critical
Publication of KR102291573B1 publication Critical patent/KR102291573B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0421Multiprocessor system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17325Synchronisation; Hardware support therefor
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25126Synchronize communication based on internal clock of microprocessor
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25474Synchronize microprocessor with process or I-O

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

본 발명은 이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 방법 및 시스템을 공개한다. 본 발명은 이더캣 기반의 슬레이브 시스템에 포함된 네트워크 MCU와 콘트롤 MCU 간의 동기화를 위해서, 콘트롤 MCU가 네트워크 MCU와 콘트롤 MCU간의 클록 오차율을 계산하고, 오차율을 이용하여 네트워크 MCU의 현재 시간을 예측하여 네트워크 MCU의 현재시간 예측치를 네트워크 MCU로 전송한다. 그러면, 네트워크 MCU에서, 콘트롤 MCU로부터 수신된 예측치와 실제 자신의 현재 시간간의 차이를 계산하여 콘트롤 MCU로 전송하고, 콘트롤 MCU는 네트워크 MCU의 현재 시간 예측치와 실제 현재 시간의 차이에 따라서 자신의 클록 속도를 빠르게 또는 느리게 조정함으로써 네트워크 MCU와 동기화를 수행한다. 이렇게, 이더캣 기반의 슬레이브 시스템 내부의 다수의 MCU간의 동기화를 수행함으로써, 처리 시간 지연을 방지할 수 있어 효율적인 시스템 운영이 가능하다.

Description

이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 방법 및 시스템{Synchronization method and system among multiple MCUs in EtherCAT-based slave system}
본 발명은 마이크로 프로세서 간의 동기화 방법 및 시스템에 관한 것으로서, 보다 구체적으로는 이더캣 기반의 AC 서보 모터와 같은, 이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 방법 및 시스템에 관한 것이다.
고속 다축 가공기와 같이 정밀 고속 제어를 목적으로 하는 시스템에서는 다수의 AC 서보 모터와 스핀들 모터 등의 고속 엑추에이터를 연결하기 위하여 ethernet을 기반으로 하는 산업용 네트워크의 적용이 늘어나고 있다. 특히, EtherCAT은 고속 산업용 응용을 위하여 개발된 ethernet 기반 산업용 네트워크 중 하나로 높은 수준의 동기화 성능을 보유하고 있다.
하지만, 고속 정밀 제어를 목표로 설계된 AC 서보 모터 드라이버는 매우 짧은 주기로 제어 명령을 수행하는데, 네트워크의 처리를 위한 지연 시간이 제어 성능에 영향을 미칠 수 있다. 이러한 문제를 예방하기 위하여, 최근에는 네트워크를 처리하기 위한 MCU와 서보 모터 제어를 수행하기 위한 MCU를 하나의 제어 시스템에 통합하여 설계하는 multi processor 구조가 하나의 대안으로 이용된다.
이러한 종래 기술에 따른 고속 서보 모터 제어기의 경우, 네트워크 성능을 향상시키기 위한 네트워크 MCU와 모터 제어를 담당하는 MCU 사이를 공유 메모리 등으로 연결하여 구성하는데, 네트워크 MCU는 네트워크를 통해 기준 시간과 동기화를 수행하는 경우가 많지만 모터를 제어하는 MCU는 이러한 동기화 기능이 제공되지 않았다.
그러나, 이러한 multi processor 구조에서는 각각의 MCU가 주기 제어를 수행하면서 서로의 연산에 대한 지연으로 인하여 메시지의 처리에 지연이 발생할 수 있으며, 이로 인하여 고속으로 동기화되는 네트워크의 장점을 활용하기 어려운 문제가 발생한다.
따라서, EtherCAT 네트워크에 연결된 서보 모터의 성능을 향상시키기 위해서, 서보 모터에 포함된 네트워크 MCU와 모터 제어용 MCU 사이의 동기화 방법이 요구되는 실정이다.
본 발명이 해결하고자 하는 과제는 이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 방법 및 시스템을 제공하는 것이다.
상술한 과제를 해결하기 위한 본 발명의 바람직한 실시예에 따른 동기화 방법은, 이더캣 기반의 슬레이브 시스템에 포함된 네트워크 MCU와 콘트롤 MCU간 동기화 방법으로서, (a) 상기 콘트롤 MCU가 상기 네트워크 MCU의 두 시점간의 시간차와, 상기 콘트롤 MCU의 두 시점간의 시간차를 이용하여, 상기 콘트롤 MCU와 상기 네트워크 MCU의 클록간 오차율을 계산하는 초기화 단계; (b) 상기 콘트롤 MCU가 일정한 시간 주기로, 상기 오차율을 이용하여 상기 네트워크 MCU의 현재 시간을 예측한 현재 시간 예측치(
Figure 112017126650293-pat00001
)를 상기 네트워크 MCU로 전송하는 단계; (c) 상기 네트워크 MCU가 상기 현재 시간 예측치(
Figure 112017126650293-pat00002
)와 자신의 실제 현재 시간(
Figure 112017126650293-pat00003
)간의 시간차(
Figure 112017126650293-pat00004
)를 계산하여 상기 콘트롤 MCU로 전송하는 단계; 및 (d) 상기 콘트롤 MCU가 상기 시간차(
Figure 112017126650293-pat00005
)를 수신하고, 수신된 시간차(
Figure 112017126650293-pat00006
)에 따라서 상기 콘트롤 MCU 내부의 클록 속도를 조절하여 동기화를 수행하는 단계를 포함한다.
또한, 상기 (a) 단계는, 상기 네트워크 MCU가 자신의 초기 시간(torigin) 및 시작 시간(tstart)을 각각 상기 콘트롤 MCU로 전송하면, 상기 콘트롤 MCU가 상기 초기 시간(torigin) 및 상기 시작 시간(tstart)간의 시간차와, 상기 네트워크 MCU로부터 상기 초기 시간(torigin)을 수신한 시간(Torigin)과 상기 시작 시간(tstart)을 수신한 시간(Tstart)간의 시간차를 이용하여 상기 오차율을 계산할 수 있다.
또한, 상기 (a) 단계는, (a1) 상기 슬레이브 시스템이 초기 기동되면, 상기 네트워크 MCU가 상기 초기 시간(torigin)을 상기 콘트롤 MCU로 전송하는 단계; (a2) 상기 콘트롤 MCU가 상기 초기 시간(torigin)을 저장하고, 상기 초기 시간(torigin)을 수신한 시간을 자신의 초기 시간(Torigin)으로 설정하는 단계; (a3) 사전에 정의된 시간이 경과한 후, 상기 네트워크 MCU가 상기 시작 시간(tstart)을 상기 콘트롤 MCU로 전송하는 단계; (a4) 상기 콘트롤 MCU가 상기 시작 시간(tstart)을 수신하여 저장하고, 상기 시작 시간(tstart)을 수신한 시간을 자신의 시작 시간(Tstart)으로 설정하는 단계; 및 (a5) 상기 콘트롤 MCU가, 상기 네트워크 MCU의 상기 초기 시간(torigin)과 상기 시작 시간(tstart)간의 시간차와, 상기 콘트롤 MCU의 상기 초기 시간(Torigin)과 상기 시작 시간(Tstart)간의 시간차를 이용하여, 상기 콘트롤 MCU와 상기 네트워크 MCU의 클록간 상기 오차율(error rate)을 계산하는 단계;를 포함할 수 있다.
또한, 상기 네트워크 MCU는 주기적으로 네트워크 프로세스(ECAT Process)를 수행하고, 상기 (a3) 단계에서, 상기 네트워크 MCU는 네트워크 프로세스가 종료된 시점부터, 다음 네트워크 프로세스가 시작되는 시점까지의 중간 시점(tinit_delay)에 상기 시작 시간(tstart)을 상기 콘트롤 MCU로 전송할 수 있다.
또한, 상기 오차율(error rate)은, 상기 콘트롤 MCU의 상기 초기 시간(Torigin)과 상기 시작 시간(Tstart)간의 시간차에 대한 상기 네트워크 MCU의 상기 초기 시간(torigin) 및 상기 시작 시간(tstart)간의 시간차의 비율로서 계산될 수 있다.
또한, 상기 (b) 단계는 아래의 수학식에 따라서 상기 네트워크 MCU의 현재 시간을 예측하고,
Figure 112017126650293-pat00007
,
Figure 112017126650293-pat00008
은 상기 네트워크 MCU의 현재 시간 추정치를 나타내고, Tlocal은 상기 콘트롤 MCU의 현재 시간을 나타낸다.
한편, 상술한 과제를 해결하기 위한 본 발명의 바람직한 실시예에 따른 동기화 시스템은, 이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 시스템으로서, 상기 동기화 시스템이 기동되면, 서로 다른 시점의 자신의 초기 시간(torigin)과 시작 시간(tstart)을 콘트롤 MCU로 전송하고, 상기 콘트롤 MCU로부터 일정한 시간 주기로 자신의 현재 시간 예측치(
Figure 112017126650293-pat00009
)를 수신하면 자신의 실제 시간(
Figure 112017126650293-pat00010
)과의 시간차(
Figure 112017126650293-pat00011
)를 계산하여 상기 콘트롤 MCU로 전송하는 네트워크 MCU; 및 상기 네트워크 MCU의 초기 시간(torigin)과 시작 시간(tstart)을 수신하고, 상기 초기 시간(torigin)과 상기 시작 시간(tstart)간의 시간차와, 상기 초기 시간(torigin)과 상기 시작 시간(tstart)을 각각 수신한 시간간의 시간차를 이용하여 상기 네트워크 MCU 와의 클록간 오차율을 계산하고, 일정한 시간 주기로, 상기 오차율을 이용하여 상기 네트워크 MCU의 현재 시간을 예측한 현재 시간 예측치(
Figure 112017126650293-pat00012
)를 상기 네트워크 MCU로 전송하고, 상기 네트워크 MCU로부터 상기 시간차(
Figure 112017126650293-pat00013
)를 수신하고, 수신된 시간차에 따라서 내부의 클록 속도를 조절하여 동기화를 수행하는 상기 콘트롤 MCU를 포함한다.
또한, 상기 네트워크 MCU는, 상기 슬레이브 시스템이 초기 기동되면, 상기 초기 시간(torigin)을 상기 콘트롤 MCU로 전송하고, 사전에 정의된 시간이 경과한 후, 상기 시작 시간(tstart)을 상기 콘트롤 MCU로 전송하며, 상기 콘트롤 MCU는, 상기 초기 시간(torigin)을 저장하고 상기 초기 시간(torigin)을 수신한 시간을 자신의 초기 시간(Torigin)으로 설정하며, 상기 시작 시간(tstart)을 수신하여 저장하고 상기 시작 시간(tstart)을 수신한 시간을 자신의 시작 시간(Tstart)으로 설정하며, 상기 초기 시간(torigin)과 상기 시작 시간(tstart)의 시간차와, 자신의 초기 시간(Torigin)과 시작 시간(Tstart)간의 시간차를 이용하여, 상기 네트워크 MCU와의 클록간 상기 오차율(error rate)을 계산할 수 있다.
또한, 상기 네트워크 MCU는 주기적으로 네트워크 프로세스(ECAT Process)를 수행하고, 네트워크 프로세스가 종료된 시점부터, 다음 네트워크 프로세스가 시작되는 시점까지의 중간 시점(tinit_delay)에 상기 시작 시간(tstart)을 상기 콘트롤 MCU로 전송할 수 있다.
또한, 상기 오차율(error rate)은, 상기 콘트롤 MCU의 상기 초기 시간(Torigin)과 상기 시작 시간(tstart)간의 시간차에 대한 상기 네트워크 MCU의 상기 초기 시간(torigin) 및 상기 시작 시간(tstart)간의 시간차의 비율로서 계산될 수 있다.
또한, 상기 콘트롤 MCU는, 아래의 수학식에 따라서 상기 네트워크 MCU의 현재 시간을 예측하고,
Figure 112017126650293-pat00014
,
Figure 112017126650293-pat00015
은 상기 네트워크 MCU의 현재 시간 추정치를 나타내고, Tlocal은 상기 콘트롤 MCU의 현재 시간을 나타낸다.
본 발명은 이더캣 기반의 슬레이브 시스템에 포함된 네트워크 MCU와 콘트롤 MCU 간의 동기화를 위해서, 콘트롤 MCU가 네트워크 MCU와 콘트롤 MCU간의 클록 오차율을 계산하고, 오차율을 이용하여 네트워크 MCU의 현재 시간을 예측하여 네트워크 MCU의 현재시간 예측치를 네트워크 MCU로 전송한다. 그러면, 네트워크 MCU에서, 콘트롤 MCU로부터 수신된 예측치와 실제 자신의 현재 시간간의 차이를 계산하여 콘트롤 MCU로 전송하고, 콘트롤 MCU는 네트워크 MCU의 현재 시간 예측치와 실제 현재 시간의 차이에 따라서 자신의 클록 속도를 빠르게 또는 느리게 조정함으로써 네트워크 MCU와 동기화를 수행한다. 이렇게, 이더캣 기반의 슬레이브 시스템 내부의 다수의 MCU간의 동기화를 수행함으로써, 처리 시간 지연을 방지할 수 있어 효율적인 시스템 운영이 가능하다.
도 1은 본 발명의 바람직한 실시예에 따른 전체 구성을 도시하는 도면이다.
도 2는 본 발명의 바람직한 실시예에 따른 동기화 방법 중 초기화 과정을 설명하는 타밍도이다.
도 3은 본 발명의 바람직한 실시예에 따른 동기화 방법 중 주기적 동기화 과정을 설명하는 타이밍도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 전체 구성을 도시하는 도면이다.
도 1을 참조하면, 이더캣(EtherCAT) 네트워크는 하나의 마스터 시스템(100)과 복수의 슬레이브 시스템들(200-1~200-N)이 네트워크를 통해서 서로 연결되어 구성되고, 본 발명의 슬레이브 시스템은 서보 모터 시스템으로 구현된다.
또한, 본 발명이 적용되는 슬레이브 시스템은 네트워크 기능을 제어하는 네트워크 MCU(Micro Controller Unit)(210)와 서보 모터 등의 제어를 담당하는 콘트롤 MCU(220)를 포함하여 구성되고, 네트워크 MCU(210)와 콘트롤 MCU(220)는 공유 메모리(230)를 통해서 서로 데이터를 교환할 수 있다.
본 발명의 바람직한 실시예에서, 이더캣 네트워크 MCU(EtherCAT Network MCU)(210)는 마스터 시스템(100)과 통신을 통해서, 이더캣 네트워크의 마스터 시스템(100) 및 다른 슬레이브 시스템들과 동기화되고, 네트워크 통신과 관련된 기능을 제어한다.
콘트롤 MCU(220)는 기본적으로는 콘트롤 MCU(220)가 설치된 슬레이브 시스템의 동작을 제어하고(즉, 본 발명의 슬레이브 시스템이 서보 모터 시스템으로 구현되는 경우에는 서보 모터의 동작을 제어하고), 본 발명과 관련해서는 이더캣 네트워크 MCU(210)와 동기화를 수행한다.
참고로, 이더캣(EtherCAT) 네트워크를 구성하는 마스터 시스템(100)과 복수의 슬레이브 시스템간의 동기화 방법에 대해서는, 분산 클록(distributed-clock) 기능을 이용하는 다수의 방법이 이미 공지되어 있을 뿐만 아니라, 본 출원인의 한국특허 제 10-1771612 호(발명의 명칭: 이더캣 기반의 동기화 오차 보상 시스템 및 그 방법)에도 자세하게 기술되어 있으므로, 구체적인 설명은 생략하고, 본 발명의 이더캣 네트워크 MCU(210)(이하 "네트워크 MCU(210)"라 약칭함)는 마스터 시스템(100) 및 다른 슬레이브 시스템들과 높은 수준으로 동기화되고 있다고 가정한다.
이 때, 네트워크 MCU(210)와 독립적으로 동작하는 서보 모터 제어용 콘트롤 MCU(220)가 네트워크 MCU(210)에 동기화하기 위해서는 내부 클럭의 offset, 클럭 속도 차이, 그리고 drift 오차를 보정할 필요가 있다. 따라서, 본 발명의 바람직한 실시예는 초기화 과정과 주기적 동기화 과정을 통하여 이를 보정한다.
본 발명은 이더캣 네트워크 MCU(210)와 콘트롤 MCU(220) 간의 동기화 방법에 관한 것이므로, 이하에서는 이더캣 네트워크 MCU(210)와 콘트롤 MCU(220)의 일반적인 기능 설명은 생략하고, 도 2 및 도 3을 더 참조하여, 이들 간의 동기화 방법을 상세하게 설명한다.
참고로, 본 발명에서, 네트워크 MCU(210)의 시간을 't', 콘트롤 MCU(220)의 시간을 'T'로 나타낸다.
도 2는 본 발명의 바람직한 실시예에 따른 동기화 방법 중 초기화 과정을 설명하는 타밍도이고, 도 3은 주기적 동기화 과정을 설명하는 타이밍도이다.
먼저, 도 2를 더 참조하면, 네트워크 MCU(210) 및 콘트롤 MCU(220)가 설치된 슬레이브 시스템(서보 모터 시스템)이 초기 기동되면(Boot Up), 네트워크 MCU(210) 및 콘트롤 MCU(220)가 각각 주기적으로 수행하는 제어 사이클 시간을 결정하고, 이들 주기의 최소 공배수를 동기화 주기로 설정하여, 이 동기화 주기마다 네트워크 MCU(210) 및 콘트롤 MCU(220) 간의 동기화를 수행한다. 예컨대, 네트워크 MCU(210)의 프로세싱 주기가 4msec이고, 콘트롤 MCU(220)의 프로세싱 주기가 3msec 인 경우에, 매 12msec마다 네트워크 MCU(210) 및 콘트롤 MCU(220) 간의 동기화가 수행된다.
먼저, 초기화 과정에서, 네트워크 MCU(210)의 네트워크 초기화가 완료되면, 네트워크 MCU(210)는 초기 시간(torigin)을 콘트롤 MCU(220)로 전송하고, 콘트롤 MCU(220)는 네트워크 MCU(210)로부터 수신된 초기 시간(torigin)을 저장하는 한편, 네트워크 MCU(210)의 초기 시간(torigin)을 수신한 시간을 자신의 초기 시간(Torigin)으로 설정한다.
그 후, 네트워크 MCU(210)는 주기적으로 네트워크 제어 프로세스(ECAT Process)를 수행하고, 첫 번째 네트워크 제어 프로세스가 종료된 시점부터, 사전에 정의된 시간(t_init_delay)이 경과하면, 시작 시간(tstart)을 콘트롤 MCU(220)로 전송한다. 이 때, 네트워크 MCU(210)는 네트워크 프로세스가 종료된 시점부터, 다음 네트워크 프로세스가 시작되는 시점까지의 중간 시점(tinit_delay)에 시작 시간(tstart)을 콘트롤 MCU(220)로 전송한다.
본 발명의 바람직한 실시예에서, 네트워크 MCU(210)가 시작 시간(tstart)을 콘트롤 MCU(220)로 전송하는 중간 시간(tinit_delay)은, 네트워크 프로세스(ECAT Process)가 종료된 시점과 다음 네트워크 프로세스(ECAT Process)가 시작되는 시점간의 정확한 중간 시점으로 설정하였고, 다음과 같은 수학식 1로 표현된다.
[수학식 1]
Figure 112017126650293-pat00016
상기 수학식 1에서 tcycle 은 네트워크 MCU(210)가 네트워크 프로세스를 수행하는 주기를 나타내고, tprocess는 네트워크 MCU(210)가 네트워크 프로세스를 수행하는 동안의 시간 기간을 나타낸다.
한편, 콘트롤 MCU(220)는 시작 시간(tstart)을 수신하면, 수신된 시작 시간(tstart)을 저장하고, 시작 시간(tstart)을 수신한 자신의 시작 시간(Tstart)를 설정한다.
그 후, 콘트롤 MCU(220)는 아래의 수학식 2에 따라서 네트워크 MCU(210)와 콘트롤 MCU(220) 클록간의 오차율(error rate)을 계산하고, 콘트롤 MCU(220)의 주기적 제어 프로세스(Control Process)를 시작한다.
[수학식 2]
Figure 112017126650293-pat00017
상기와 같은 과정을 통해서 초기화 과정이 종료되면, 주기적인 동기화 절차를 진행한다.
도 3은 본 발명의 바람직한 실시예에 따른 동기화 방법 중 주기적 동기화 과정을 설명하는 타이밍도이다.
도 3을 참조하여 주기적인 동기화 절차를 설명하면, 상술한 바와 같이, 네트워크 MCU(210)와 콘트롤 MCU(220)의 제어 주기가 다른 경우, 두 MCU 제어 주기의 최소 공배수에 해당하는 시간 마다 주기적 동기화 절차를 수행한다.
주기적 동기화가 시작되면, 먼저 콘트롤 MCU(220)에서는 현재 시간(Tlocal) 및 수학식 2에 따라서 계산된 오차율을 이용하여 네트워크 MCU(210)의 현재 시간을 예측하여 현재 시간 예측치(
Figure 112017126650293-pat00018
)를 생성하고, 현재 시간 예측치를 Ack request와 함께 네트워크 MCU(210)로 전송한다. 본 발명의 바람직한 실시예는 아래의 수학식 3에 따라서 네트워크 MCU(210)의 현재 시간을 예측하였다.
[수학식 3]
Figure 112017126650293-pat00019
네트워크 MCU(210)는 콘트롤 MCU(220)로부터 수신된 현재 시간 예측치(
Figure 112017126650293-pat00020
)와 자신의 클록에 따른 실제 현재 시간(
Figure 112017126650293-pat00021
)간의 차이(
Figure 112017126650293-pat00022
)를 계산하여 Ack Response와 함께 콘트롤 MCU(220)로 전송한다.
콘트롤 MCU(220)는
Figure 112017126650293-pat00023
를 수신하고, 이를 이용하여 내부 클록을 빠르게 조절하거나 느리게 조절하는 방법으로 보정을 수행함으로써, 네트워크 MCU(210)와의 동기화를 수행한다.
그 후, 콘트롤 MCU(220)는 다음 동기화 주기가 도래하면, 다시 네트워크 MCU(210)의 현재 시간을 예측하여 현재 시간 예측치(
Figure 112017126650293-pat00024
)를 생성하여 Ack request와 함께 네트워크 MCU(210)로 전송함으로써 동기화를 다시 수행한다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100 : 마스터 시스템
200-1~200-N : 슬레이브 시스템 1 ~ 슬레이브 시스템 N
210 : 이더캣 MCU
220 : 콘트롤 MCU
230 : 공유 메모리

Claims (11)

  1. 삭제
  2. 이더캣 기반의 슬레이브 시스템에 포함된 네트워크 MCU와 콘트롤 MCU간 동기화 방법으로서,
    (a) 상기 콘트롤 MCU가 상기 네트워크 MCU의 두 시점간의 시간차와, 상기 콘트롤 MCU의 두 시점간의 시간차를 이용하여, 상기 콘트롤 MCU와 상기 네트워크 MCU의 클록간 오차율을 계산하는 초기화 단계;
    (b) 상기 콘트롤 MCU가 일정한 시간 주기로, 상기 오차율을 이용하여 상기 네트워크 MCU의 현재 시간을 예측한 현재 시간 예측치(
    Figure 112021067743891-pat00043
    )를 상기 네트워크 MCU로 전송하는 단계;
    (c) 상기 네트워크 MCU가 상기 현재 시간 예측치(
    Figure 112021067743891-pat00044
    )와 자신의 실제 현재 시간(
    Figure 112021067743891-pat00045
    )간의 시간차(
    Figure 112021067743891-pat00046
    )를 계산하여 상기 콘트롤 MCU로 전송하는 단계; 및
    (d) 상기 콘트롤 MCU가 상기 시간차(
    Figure 112021067743891-pat00047
    )를 수신하고, 수신된 시간차(
    Figure 112021067743891-pat00048
    )에 따라서 상기 콘트롤 MCU 내부의 클록 속도를 조절하여 동기화를 수행하는 단계를 포함하고,
    상기 (a) 단계는
    상기 네트워크 MCU가 자신의 초기 시간(torigin) 및 시작 시간(tstart)을 각각 상기 콘트롤 MCU로 전송하면, 상기 콘트롤 MCU가 상기 초기 시간(torigin) 및 상기 시작 시간(tstart)간의 시간차와, 상기 네트워크 MCU로부터 상기 초기 시간(torigin)을 수신한 시간(Torigin)과 상기 시작 시간(tstart)을 수신한 시간(Tstart)간의 시간차를 이용하여 상기 오차율을 계산하는 것을 특징으로 하는 동기화 방법.
  3. 제 2 항에 있어서, 상기 (a) 단계는
    (a1) 상기 슬레이브 시스템이 초기 기동되면, 상기 네트워크 MCU가 상기 초기 시간(torigin)을 상기 콘트롤 MCU로 전송하는 단계;
    (a2) 상기 콘트롤 MCU가 상기 초기 시간(torigin)을 저장하고, 상기 초기 시간(torigin)을 수신한 시간을 자신의 초기 시간(Torigin)으로 설정하는 단계;
    (a3) 사전에 정의된 시간이 경과한 후, 상기 네트워크 MCU가 상기 시작 시간(tstart)을 상기 콘트롤 MCU로 전송하는 단계;
    (a4) 상기 콘트롤 MCU가 상기 시작 시간(tstart)을 수신하여 저장하고, 상기 시작 시간(tstart)을 수신한 시간을 자신의 시작 시간(Tstart)으로 설정하는 단계; 및
    (a5) 상기 콘트롤 MCU가, 상기 네트워크 MCU의 상기 초기 시간(torigin)과 상기 시작 시간(tstart)간의 시간차와, 상기 콘트롤 MCU의 상기 초기 시간(Torigin)과 상기 시작 시간(Tstart)간의 시간차를 이용하여, 상기 콘트롤 MCU와 상기 네트워크 MCU의 클록간 상기 오차율(error rate)을 계산하는 단계;를 포함하는 것을 특징으로 하는 동기화 방법.
  4. 제 3 항에 있어서,
    상기 네트워크 MCU는 주기적으로 네트워크 프로세스(ECAT Process)를 수행하고,
    상기 (a3) 단계에서, 상기 네트워크 MCU는 네트워크 프로세스가 종료된 시점부터, 다음 네트워크 프로세스가 시작되는 시점까지의 중간 시점(tinit_delay)에 상기 시작 시간(tstart)을 상기 콘트롤 MCU로 전송하는 것을 특징으로 하는 동기화 방법.
  5. 제 2 항에 있어서, 상기 오차율(error rate)은
    상기 콘트롤 MCU의 상기 초기 시간(Torigin)과 상기 시작 시간(Tstart)간의 시간차에 대한 상기 네트워크 MCU의 상기 초기 시간(torigin) 및 상기 시작 시간(tstart)간의 시간차의 비율로서 계산되는 것을 특징으로 하는 동기화 방법.
  6. 제 5 항에 있어서,
    상기 (b) 단계는 아래의 수학식에 따라서 상기 네트워크 MCU의 현재 시간을 예측하고,
    Figure 112017126650293-pat00031

    Figure 112017126650293-pat00032
    은 상기 네트워크 MCU의 현재 시간 추정치를 나타내고, Tlocal은 상기 콘트롤 MCU의 현재 시간을 나타내는 것을 특징으로 하는 동기화 방법.
  7. 삭제
  8. 이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 시스템으로서,
    상기 동기화 시스템이 기동되면, 서로 다른 시점의 자신의 초기 시간(torigin)과 시작 시간(tstart)을 콘트롤 MCU로 전송하고, 상기 콘트롤 MCU로부터 일정한 시간 주기로 자신의 현재 시간 예측치(
    Figure 112021067743891-pat00049
    )를 수신하면 자신의 실제 시간(
    Figure 112021067743891-pat00050
    )과의 시간차(
    Figure 112021067743891-pat00051
    )를 계산하여 상기 콘트롤 MCU로 전송하는 네트워크 MCU; 및
    상기 네트워크 MCU의 초기 시간(torigin)과 시작 시간(tstart)을 수신하고, 상기 초기 시간(torigin)과 상기 시작 시간(tstart)간의 시간차와, 상기 초기 시간(torigin)과 상기 시작 시간(tstart)을 각각 수신한 시간간의 시간차를 이용하여 상기 네트워크 MCU 와의 클록간 오차율을 계산하고, 일정한 시간 주기로, 상기 오차율을 이용하여 상기 네트워크 MCU의 현재 시간을 예측한 현재 시간 예측치(
    Figure 112021067743891-pat00052
    )를 상기 네트워크 MCU로 전송하고, 상기 네트워크 MCU로부터 상기 시간차(
    Figure 112021067743891-pat00053
    )를 수신하고, 수신된 시간차에 따라서 내부의 클록 속도를 조절하여 동기화를 수행하는 상기 콘트롤 MCU를 포함하고,
    상기 네트워크 MCU는, 상기 슬레이브 시스템이 초기 기동되면, 상기 초기 시간(torigin)을 상기 콘트롤 MCU로 전송하고, 사전에 정의된 시간이 경과한 후, 상기 시작 시간(tstart)을 상기 콘트롤 MCU로 전송하며,
    상기 콘트롤 MCU는, 상기 초기 시간(torigin)을 저장하고 상기 초기 시간(torigin)을 수신한 시간을 자신의 초기 시간(Torigin)으로 설정하며, 상기 시작 시간(tstart)을 수신하여 저장하고 상기 시작 시간(tstart)을 수신한 시간을 자신의 시작 시간(Tstart)으로 설정하며, 상기 초기 시간(torigin)과 상기 시작 시간(tstart)의 시간차와, 자신의 초기 시간(Torigin)과 시작 시간(Tstart)간의 시간차를 이용하여, 상기 네트워크 MCU와의 클록간 상기 오차율(error rate)을 계산하는 것을 특징으로 하는 동기화 시스템.
  9. 제 8 항에 있어서,
    상기 네트워크 MCU는 주기적으로 네트워크 프로세스(ECAT Process)를 수행하고, 네트워크 프로세스가 종료된 시점부터, 다음 네트워크 프로세스가 시작되는 시점까지의 중간 시점(tinit_delay)에 상기 시작 시간(tstart)을 상기 콘트롤 MCU로 전송하는 것을 특징으로 하는 동기화 시스템.
  10. 제 8 항에 있어서, 상기 오차율(error rate)은
    상기 콘트롤 MCU의 상기 초기 시간(Torigin)과 상기 시작 시간(tstart)간의 시간차에 대한 상기 네트워크 MCU의 상기 초기 시간(torigin) 및 상기 시작 시간(tstart)간의 시간차의 비율로서 계산되는 것을 특징으로 하는 동기화 시스템.
  11. 제 10 항에 있어서, 상기 콘트롤 MCU는
    아래의 수학식에 따라서 상기 네트워크 MCU의 현재 시간을 예측하고,
    Figure 112017126650293-pat00038

    Figure 112017126650293-pat00039
    은 상기 네트워크 MCU의 현재 시간 추정치를 나타내고, Tlocal은 상기 콘트롤 MCU의 현재 시간을 나타내는 것을 특징으로 하는 동기화 시스템.
KR1020170175363A 2017-12-19 2017-12-19 이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 방법 및 시스템 KR102291573B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170175363A KR102291573B1 (ko) 2017-12-19 2017-12-19 이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170175363A KR102291573B1 (ko) 2017-12-19 2017-12-19 이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20190074026A KR20190074026A (ko) 2019-06-27
KR102291573B1 true KR102291573B1 (ko) 2021-08-18

Family

ID=67057395

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170175363A KR102291573B1 (ko) 2017-12-19 2017-12-19 이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR102291573B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111181681A (zh) * 2020-01-07 2020-05-19 成都卡诺普自动化控制技术有限公司 基于EtherCAT实时以太网的主从站时钟同步方法
CN111738407B (zh) * 2020-05-13 2020-11-27 北京无线电计量测试研究所 一种基于深度学习的钟差预测方法、装置、介质及终端
CN112910593B (zh) * 2021-03-09 2022-06-14 华南理工大学 一种应用于伺服电机驱动器的同步控制系统及方法
KR102589284B1 (ko) * 2021-11-11 2023-10-16 한국전기연구원 고속통신기반의 전력변환장치용 제어장치
CN116560291B (zh) * 2023-07-06 2023-09-29 深圳艾为电气技术有限公司 双mcu架构高压控制器及其速度检测误差调整方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101771612B1 (ko) * 2016-07-12 2017-08-25 한국전기연구원 이더캣 기반의 동기화 오차 보상 시스템 및 그 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090038709A (ko) * 2007-10-16 2009-04-21 주식회사 터보테크 나노제어를 위한 고속디지털네트워크 인터페이스장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101771612B1 (ko) * 2016-07-12 2017-08-25 한국전기연구원 이더캣 기반의 동기화 오차 보상 시스템 및 그 방법

Also Published As

Publication number Publication date
KR20190074026A (ko) 2019-06-27

Similar Documents

Publication Publication Date Title
KR102291573B1 (ko) 이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 방법 및 시스템
EP3016306B1 (en) Method and apparatus for providing in-vehicle network time synchronization using redundant grandmaster
US7898987B2 (en) Method and device for the exchange of data between at least two users connected to a bus system
US8913514B2 (en) Communication control unit and communication control system
KR102148943B1 (ko) 프로그래머블 컨트롤러 시스템, 그 컨트롤러
US7171579B2 (en) Method and device for exchanging data between at least two stations connected via a bus system
EP2378718B1 (en) Method, node and system for controlling version in distributed system
JP6404975B2 (ja) スレーブ、シリアル通信システム、および、シリアル通信システムの通信方法
US20170317812A1 (en) Controller area network synchronization
US20170324675A1 (en) Communication system and communication device
EP2675224B1 (en) System and method for synchronizing wireless devices without sending timestamp data
US20220128977A1 (en) Industrial Device Supporting Multiple Time Synchronization Protocols
US20060176830A1 (en) Communication system, communication circuit and communication method
JP2008306648A (ja) データ中継装置及びデータ中継方法並びに通信ネットワークシステム
KR20170135384A (ko) 이더캣 기반의 분산 시계 동기화를 위한 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체
JP6614403B1 (ja) 通信装置、通信システムおよび同期制御方法
JP4961589B2 (ja) ネットワークシステムおよびスレーブ同期方法
US10341440B2 (en) Method and device for transferring messages in a computer network
JP6400553B2 (ja) ユニット間での同期制御機能を有する数値制御システム
JP5372699B2 (ja) 車載ネットワーク装置
CN111181681A (zh) 基于EtherCAT实时以太网的主从站时钟同步方法
KR101498561B1 (ko) 글로벌 동기화를 위한 tdma 기반의 can 통신시스템 및 방법
KR102064575B1 (ko) 디바이스 간의 시각 동기 정밀도를 향상시키는 방법, 장치, 시스템 및 컴퓨터 프로그램
KR20140014918A (ko) 이더넷 통신 시스템 및 시간 동기화 방법
KR101610220B1 (ko) 멀티 도메인 모션 제어를 위한 소프트웨어 파이프라인 방법, 이를 수행하기 위한 기록 매체 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant