KR102291573B1 - 이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 방법 및 시스템 - Google Patents
이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 방법 및 시스템 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0421—Multiprocessor system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17325—Synchronisation; Hardware support therefor
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25126—Synchronize communication based on internal clock of microprocessor
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25474—Synchronize 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
본 발명은 마이크로 프로세서 간의 동기화 방법 및 시스템에 관한 것으로서, 보다 구체적으로는 이더캣 기반의 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의 현재 시간을 예측한 현재 시간 예측치()를 상기 네트워크 MCU로 전송하는 단계; (c) 상기 네트워크 MCU가 상기 현재 시간 예측치()와 자신의 실제 현재 시간()간의 시간차()를 계산하여 상기 콘트롤 MCU로 전송하는 단계; 및 (d) 상기 콘트롤 MCU가 상기 시간차()를 수신하고, 수신된 시간차()에 따라서 상기 콘트롤 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의 현재 시간을 예측하고, , 은 상기 네트워크 MCU의 현재 시간 추정치를 나타내고, Tlocal은 상기 콘트롤 MCU의 현재 시간을 나타낸다.
한편, 상술한 과제를 해결하기 위한 본 발명의 바람직한 실시예에 따른 동기화 시스템은, 이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 시스템으로서, 상기 동기화 시스템이 기동되면, 서로 다른 시점의 자신의 초기 시간(torigin)과 시작 시간(tstart)을 콘트롤 MCU로 전송하고, 상기 콘트롤 MCU로부터 일정한 시간 주기로 자신의 현재 시간 예측치()를 수신하면 자신의 실제 시간()과의 시간차()를 계산하여 상기 콘트롤 MCU로 전송하는 네트워크 MCU; 및 상기 네트워크 MCU의 초기 시간(torigin)과 시작 시간(tstart)을 수신하고, 상기 초기 시간(torigin)과 상기 시작 시간(tstart)간의 시간차와, 상기 초기 시간(torigin)과 상기 시작 시간(tstart)을 각각 수신한 시간간의 시간차를 이용하여 상기 네트워크 MCU 와의 클록간 오차율을 계산하고, 일정한 시간 주기로, 상기 오차율을 이용하여 상기 네트워크 MCU의 현재 시간을 예측한 현재 시간 예측치()를 상기 네트워크 MCU로 전송하고, 상기 네트워크 MCU로부터 상기 시간차()를 수신하고, 수신된 시간차에 따라서 내부의 클록 속도를 조절하여 동기화를 수행하는 상기 콘트롤 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 간의 동기화를 위해서, 콘트롤 MCU가 네트워크 MCU와 콘트롤 MCU간의 클록 오차율을 계산하고, 오차율을 이용하여 네트워크 MCU의 현재 시간을 예측하여 네트워크 MCU의 현재시간 예측치를 네트워크 MCU로 전송한다. 그러면, 네트워크 MCU에서, 콘트롤 MCU로부터 수신된 예측치와 실제 자신의 현재 시간간의 차이를 계산하여 콘트롤 MCU로 전송하고, 콘트롤 MCU는 네트워크 MCU의 현재 시간 예측치와 실제 현재 시간의 차이에 따라서 자신의 클록 속도를 빠르게 또는 느리게 조정함으로써 네트워크 MCU와 동기화를 수행한다. 이렇게, 이더캣 기반의 슬레이브 시스템 내부의 다수의 MCU간의 동기화를 수행함으로써, 처리 시간 지연을 방지할 수 있어 효율적인 시스템 운영이 가능하다.
도 1은 본 발명의 바람직한 실시예에 따른 전체 구성을 도시하는 도면이다.
도 2는 본 발명의 바람직한 실시예에 따른 동기화 방법 중 초기화 과정을 설명하는 타밍도이다.
도 3은 본 발명의 바람직한 실시예에 따른 동기화 방법 중 주기적 동기화 과정을 설명하는 타이밍도이다.
도 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]
상기 수학식 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]
상기와 같은 과정을 통해서 초기화 과정이 종료되면, 주기적인 동기화 절차를 진행한다.
도 3은 본 발명의 바람직한 실시예에 따른 동기화 방법 중 주기적 동기화 과정을 설명하는 타이밍도이다.
도 3을 참조하여 주기적인 동기화 절차를 설명하면, 상술한 바와 같이, 네트워크 MCU(210)와 콘트롤 MCU(220)의 제어 주기가 다른 경우, 두 MCU 제어 주기의 최소 공배수에 해당하는 시간 마다 주기적 동기화 절차를 수행한다.
주기적 동기화가 시작되면, 먼저 콘트롤 MCU(220)에서는 현재 시간(Tlocal) 및 수학식 2에 따라서 계산된 오차율을 이용하여 네트워크 MCU(210)의 현재 시간을 예측하여 현재 시간 예측치()를 생성하고, 현재 시간 예측치를 Ack request와 함께 네트워크 MCU(210)로 전송한다. 본 발명의 바람직한 실시예는 아래의 수학식 3에 따라서 네트워크 MCU(210)의 현재 시간을 예측하였다.
[수학식 3]
네트워크 MCU(210)는 콘트롤 MCU(220)로부터 수신된 현재 시간 예측치()와 자신의 클록에 따른 실제 현재 시간()간의 차이()를 계산하여 Ack Response와 함께 콘트롤 MCU(220)로 전송한다.
그 후, 콘트롤 MCU(220)는 다음 동기화 주기가 도래하면, 다시 네트워크 MCU(210)의 현재 시간을 예측하여 현재 시간 예측치()를 생성하여 Ack request와 함께 네트워크 MCU(210)로 전송함으로써 동기화를 다시 수행한다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100 : 마스터 시스템
200-1~200-N : 슬레이브 시스템 1 ~ 슬레이브 시스템 N
210 : 이더캣 MCU
220 : 콘트롤 MCU
230 : 공유 메모리
200-1~200-N : 슬레이브 시스템 1 ~ 슬레이브 시스템 N
210 : 이더캣 MCU
220 : 콘트롤 MCU
230 : 공유 메모리
Claims (11)
- 삭제
- 이더캣 기반의 슬레이브 시스템에 포함된 네트워크 MCU와 콘트롤 MCU간 동기화 방법으로서,
(a) 상기 콘트롤 MCU가 상기 네트워크 MCU의 두 시점간의 시간차와, 상기 콘트롤 MCU의 두 시점간의 시간차를 이용하여, 상기 콘트롤 MCU와 상기 네트워크 MCU의 클록간 오차율을 계산하는 초기화 단계;
(b) 상기 콘트롤 MCU가 일정한 시간 주기로, 상기 오차율을 이용하여 상기 네트워크 MCU의 현재 시간을 예측한 현재 시간 예측치()를 상기 네트워크 MCU로 전송하는 단계;
(c) 상기 네트워크 MCU가 상기 현재 시간 예측치()와 자신의 실제 현재 시간()간의 시간차()를 계산하여 상기 콘트롤 MCU로 전송하는 단계; 및
(d) 상기 콘트롤 MCU가 상기 시간차()를 수신하고, 수신된 시간차()에 따라서 상기 콘트롤 MCU 내부의 클록 속도를 조절하여 동기화를 수행하는 단계를 포함하고,
상기 (a) 단계는
상기 네트워크 MCU가 자신의 초기 시간(torigin) 및 시작 시간(tstart)을 각각 상기 콘트롤 MCU로 전송하면, 상기 콘트롤 MCU가 상기 초기 시간(torigin) 및 상기 시작 시간(tstart)간의 시간차와, 상기 네트워크 MCU로부터 상기 초기 시간(torigin)을 수신한 시간(Torigin)과 상기 시작 시간(tstart)을 수신한 시간(Tstart)간의 시간차를 이용하여 상기 오차율을 계산하는 것을 특징으로 하는 동기화 방법. - 제 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)을 계산하는 단계;를 포함하는 것을 특징으로 하는 동기화 방법. - 제 3 항에 있어서,
상기 네트워크 MCU는 주기적으로 네트워크 프로세스(ECAT Process)를 수행하고,
상기 (a3) 단계에서, 상기 네트워크 MCU는 네트워크 프로세스가 종료된 시점부터, 다음 네트워크 프로세스가 시작되는 시점까지의 중간 시점(tinit_delay)에 상기 시작 시간(tstart)을 상기 콘트롤 MCU로 전송하는 것을 특징으로 하는 동기화 방법. - 제 2 항에 있어서, 상기 오차율(error rate)은
상기 콘트롤 MCU의 상기 초기 시간(Torigin)과 상기 시작 시간(Tstart)간의 시간차에 대한 상기 네트워크 MCU의 상기 초기 시간(torigin) 및 상기 시작 시간(tstart)간의 시간차의 비율로서 계산되는 것을 특징으로 하는 동기화 방법. - 삭제
- 이더캣 기반의 슬레이브 시스템에 포함된 복수의 마이크로 프로세서간 동기화 시스템으로서,
상기 동기화 시스템이 기동되면, 서로 다른 시점의 자신의 초기 시간(torigin)과 시작 시간(tstart)을 콘트롤 MCU로 전송하고, 상기 콘트롤 MCU로부터 일정한 시간 주기로 자신의 현재 시간 예측치()를 수신하면 자신의 실제 시간()과의 시간차()를 계산하여 상기 콘트롤 MCU로 전송하는 네트워크 MCU; 및
상기 네트워크 MCU의 초기 시간(torigin)과 시작 시간(tstart)을 수신하고, 상기 초기 시간(torigin)과 상기 시작 시간(tstart)간의 시간차와, 상기 초기 시간(torigin)과 상기 시작 시간(tstart)을 각각 수신한 시간간의 시간차를 이용하여 상기 네트워크 MCU 와의 클록간 오차율을 계산하고, 일정한 시간 주기로, 상기 오차율을 이용하여 상기 네트워크 MCU의 현재 시간을 예측한 현재 시간 예측치()를 상기 네트워크 MCU로 전송하고, 상기 네트워크 MCU로부터 상기 시간차()를 수신하고, 수신된 시간차에 따라서 내부의 클록 속도를 조절하여 동기화를 수행하는 상기 콘트롤 MCU를 포함하고,
상기 네트워크 MCU는, 상기 슬레이브 시스템이 초기 기동되면, 상기 초기 시간(torigin)을 상기 콘트롤 MCU로 전송하고, 사전에 정의된 시간이 경과한 후, 상기 시작 시간(tstart)을 상기 콘트롤 MCU로 전송하며,
상기 콘트롤 MCU는, 상기 초기 시간(torigin)을 저장하고 상기 초기 시간(torigin)을 수신한 시간을 자신의 초기 시간(Torigin)으로 설정하며, 상기 시작 시간(tstart)을 수신하여 저장하고 상기 시작 시간(tstart)을 수신한 시간을 자신의 시작 시간(Tstart)으로 설정하며, 상기 초기 시간(torigin)과 상기 시작 시간(tstart)의 시간차와, 자신의 초기 시간(Torigin)과 시작 시간(Tstart)간의 시간차를 이용하여, 상기 네트워크 MCU와의 클록간 상기 오차율(error rate)을 계산하는 것을 특징으로 하는 동기화 시스템. - 제 8 항에 있어서,
상기 네트워크 MCU는 주기적으로 네트워크 프로세스(ECAT Process)를 수행하고, 네트워크 프로세스가 종료된 시점부터, 다음 네트워크 프로세스가 시작되는 시점까지의 중간 시점(tinit_delay)에 상기 시작 시간(tstart)을 상기 콘트롤 MCU로 전송하는 것을 특징으로 하는 동기화 시스템. - 제 8 항에 있어서, 상기 오차율(error rate)은
상기 콘트롤 MCU의 상기 초기 시간(Torigin)과 상기 시작 시간(tstart)간의 시간차에 대한 상기 네트워크 MCU의 상기 초기 시간(torigin) 및 상기 시작 시간(tstart)간의 시간차의 비율로서 계산되는 것을 특징으로 하는 동기화 시스템.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101771612B1 (ko) * | 2016-07-12 | 2017-08-25 | 한국전기연구원 | 이더캣 기반의 동기화 오차 보상 시스템 및 그 방법 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090038709A (ko) * | 2007-10-16 | 2009-04-21 | 주식회사 터보테크 | 나노제어를 위한 고속디지털네트워크 인터페이스장치 |
-
2017
- 2017-12-19 KR KR1020170175363A patent/KR102291573B1/ko active IP Right Grant
Patent Citations (1)
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 |