KR20190080625A - 이중화 보드에서 마스터/슬레이브 설정방법 및 그 보드 - Google Patents

이중화 보드에서 마스터/슬레이브 설정방법 및 그 보드 Download PDF

Info

Publication number
KR20190080625A
KR20190080625A KR1020170183191A KR20170183191A KR20190080625A KR 20190080625 A KR20190080625 A KR 20190080625A KR 1020170183191 A KR1020170183191 A KR 1020170183191A KR 20170183191 A KR20170183191 A KR 20170183191A KR 20190080625 A KR20190080625 A KR 20190080625A
Authority
KR
South Korea
Prior art keywords
board
clocks
boards
master
slave
Prior art date
Application number
KR1020170183191A
Other languages
English (en)
Other versions
KR102104967B1 (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 KR1020170183191A priority Critical patent/KR102104967B1/ko
Priority to PCT/KR2018/016396 priority patent/WO2019132430A1/ko
Priority to US16/957,315 priority patent/US20200348716A1/en
Publication of KR20190080625A publication Critical patent/KR20190080625A/ko
Application granted granted Critical
Publication of KR102104967B1 publication Critical patent/KR102104967B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Hardware Redundancy (AREA)

Abstract

본 발명은 이중화 보드의 초기 부팅시 마스터/슬레이브 보드를 설정하기 위한 방법 및 그 보드에 관한 것이다.
본 발명의 실시 예에 따른 이중화 보드에서 마스터/슬레이브 설정방법은, 이중화로 구성된 제1 및 제2 보드에 초기 부팅에 의한 전원이 동시에 입력되는 입력단계; 상기 전원이 입력되면 상기 제1,2보드는 클럭을 각각 발생하는 발생단계; 상기 제1,2보드가 상기 발생된 클럭의 개수를 각각 카운트하는 카운트단계; 상기 발생된 클럭마다 상기 제1,2보드는 각각 자신의 카운트된 클럭 개수를 상대보드로 전송하고 상대보드로부터 상기 상대보드에서 카운트된 클럭 개수를 수신하는 송수신단계; 상기 제1,2보드는 상기 클럭마다 각각 송수신된 두 클럭 개수를 비교하여 자신의 클럭 개수가 더 크면 자신을 마스터 보드로 설정하고 더 작으면 슬레이브 보드로 설정하는 설정단계를 포함한다.

Description

이중화 보드에서 마스터/슬레이브 설정방법 및 그 보드{Duplicated board setting method and the board thereof}
본 발명은 이중화 보드 설정방법에 관한 것으로서, 특히 초기 부팅시 이중화 보드 중 마스터/슬레이브 보드를 설정하기 위한 방법 및 그 보드에 관한 것이다.
통상적으로 중요한 설비를 제어하는 제어기의 경우 갑작스런 고장 발생에도 끊김없는 제어가 이루어지도록 이중화로 구현된다. 최근에는 제어기 내에서 연산보드, 제어보드 등 중요한 기능들을 수행하는 보드도 이중화로 구현하는 사례가 증가하고 있다.
한국 공개특허공보 제2000-0055954호 및 한국 등록특허공보 제0320149호에는 이중화 보드에서 마스터 보드가 동작중 고장발생시 슬레이브 보드가 통신을 통하여 고장을 감지하여 자신이 마스터로 절체되어 마스터 보드로서 운영되도록 하는 기술에 대해 개시하고 있다.
하지만 이러한 선행문헌은 이중화 보드의 동작중에 마스터/슬레이브 보드의 절체에 관한 기술로서 이중화 보드의 초기 부팅시 마스터와 슬레이브 보드를 설정하는 기술에 대해 제시하는 것이 아니다.
또한 종래에 이중화 보드의 초기 부팅시 마스터 보드와 슬레이브 보드를 설정하기 위해 이중화 보드 간에 상대보드의 레지스터 값을 읽어들여서 마스터로 동작할지를 판단하거나 외부의 딥스위치(dip switch)의 정보를 읽어서 마스터/슬레이브를 결정하도록 한다.
이러한 종래기술에서는 상대보드의 정보를 서로 간에 읽어들여야 하므로 마스터/슬레이브 결정에 일정한 시간이 필요하고, 또한 딥스위치의 동작시 작업자의 설정 오류가 발생할 수 있으며 딥스위치의 정보를 읽는데도 일정시간이 소요된다는 문제점이 있다. 이러한 시간의 소요는 빠른 제어를 필요로 하는 보드에서 동작의 시간지연으로 이어진다는 문제점으로 나타난다.
한국 공개특허공보 제2000-0055954호 한국 등록특허공보 제0320149호
본 발명은 상기한 종래기술의 문제점을 해결하기 위해 제안된 것으로서, 이중화로 구현된 보드를 초기부팅시 내부에 저장되는 정보를 이용하여 마스터/슬레이브 보드를 설정하도록 하는 이중화 보드의 마스터/슬레이브 설정방법 및 그 보드를 제공하는데 그 목적이 있다.
또한, 본 발명은 이중화 보드에서 간단한 통신을 통해 마스터/슬레이브 보드를 빠르게 설정할 수 있는 이중화 보드의 마스터/슬레이브 설정방법 및 그 보드를 제공하는데 다른 목적이 있다.
본 발명의 실시 예에 따른 이중화 보드에서 마스터/슬레이브 설정방법은, 이중화로 구성된 제1 및 제2 보드에 초기 부팅에 의한 전원이 동시에 입력되는 입력단계; 상기 전원이 입력되면 상기 제1,2보드는 클럭을 각각 발생하는 발생단계; 상기 제1,2보드가 상기 발생된 클럭의 개수를 각각 카운트하는 카운트단계; 상기 발생된 클럭마다 상기 제1,2보드는 각각 자신의 카운트된 클럭 개수를 상대보드로 전송하고 상대보드로부터 상기 상대보드에서 카운트된 클럭 개수를 수신하는 송수신단계; 상기 제1,2보드는 상기 클럭마다 각각 송수신된 두 클럭 개수를 비교하여 자신의 클럭 개수가 더 크면 자신을 마스터 보드로 설정하고 더 작으면 슬레이브 보드로 설정하는 설정단계를 포함한다.
본 발명에서, 상기 설정단계의 비교결과 상기 송수신된 두 클럭 개수가 기설정된 시간 동안 동일하면 상기 제1,2보드에서 각각 난수를 발생시키는 단계; 상기 제1,2보드는 각각 발생된 자신의 난수를 상대보드로 전송하고 상기 상대보드로부터 상기 상대보드에서 발생된 난수를 수신하는 단계; 상기 제1,2보드는 각각 송수신된 두 난수를 비교하여 각각 자신을 마스터 보드 또는 슬레이브 보드로 설정한다.
본 발명에서, 상기 제1,2보드는 자신이 발생한 난수가 상기 상대보드의 난수보다 더 크면 자신을 마스터 보드로 설정하고 더 작으면 자신을 슬레이브 보드로 설정한다.
본 발명에서, 상기 제1,2보드는 자신이 발생한 난수가 상기 상대보드의 난수보다 더 작으면 자신을 마스터 보드로 설정하고 더 크면 자신을 슬레이브 보드로 설정한다.
본 발명에서, 상기 클럭 개수는 1과 0으로 구성된 디지털 값을 갖고 상기 통신부는 상기 클럭 개수의 디지털 값을 순차적으로 송수신시 상기 상대보드와 교대로 1비트씩 번갈아가면서 송수신한다.
이때, 상기 두 클럭 개수의 디지털 값 송수신시, 상기 제1,2보드는 하기 조건에 따라 마스터 보드 및 슬레이브 보드를 설정한다.
1) A=B=1 또는 A=B=0이면 마스트/슬레이브 보드 설정 보류
2) A=1, B=0이면 제1보드를 마스터 보드로, 제2보드를 슬레이브 보드로 설정
3) A=0, B=1이면 제1보드를 슬레이브 보드로, 제2보드를 마스터 보드로 설정
(이때, A는 제1보드에서 제2보드로 송신한 1비트의 디지털 값이고, B는 제1보드에서 제2보드로부터 수신한 1비트의 디지털 값)
본 발명에서, 상기 제어부는 상기 A=B=1 또는 A=B=0인 경우 클럭 개수의 디지털 값 중 다음 1비트의 디지털 값을 상기 통신부를 통해 서로 송수신하도록 하여 상기 조건에 따라 마스터 보드 및 슬레이브 보드를 설정한다.
또한, 본 발명의 실시 예에 따른 이중화 보드 각각은, 이중화로 구성된 보드에 있어서, 초기 부팅에 의한 전원이 입력되면 클럭을 발생하는 클럭발생부; 상기 클럭발생부에서 발생되는 클럭의 개수를 카운트하는 클럭카운트부; 상기 발생된 클럭마다 상기 카운트된 자신의 클럭 개수를 상대보드로 송신하고 상기 상대보드로부터 상기 상대보드의 클럭 개수를 수신하는 통신부; 상기 통신부를 통해 상기 클럭마다 송수신된 두 클럭 개수 중 더 큰 클럭 개수의 보드를 마스터 보드로 설정하는 제어부를 포함한다.
본 발명에서, 상기 통신부는 상기 클럭발생부에서 발생되는 클럭마다 자신의 클럭 개수를 상기 상대보드로 송신한다.
본 발명에서, 상기 보드는 난수를 발생시키는 난수발생부를 더 포함하고, 상기 송수신된 두 클럭 개수가 기설정된 시간 동안 동일하면 상기 난수발생부에서 난수를 발생시키고, 상기 통신부는 상기 발생된 난수를 상기 상대보드로 송신하고 상기 상대보드로부터 난수를 수신하며 상기 제어부는 상기 송수신된 두 난수를 비교하여 마스터/슬레이브 보드를 설정한다.
본 발명에서, 상기 제어부는 상기 두 난수의 비교결과 더 큰 난수를 발생시킨 보드를 마스터 보드로 설정한다.
본 발명에서, 상기 클럭 개수는 1과 0으로 구성된 디지털 값을 갖고 상기 통신부는 상기 클럭 개수의 디지털 값을 순차적으로 송수신시 상기 상대보드와 교대로 1비트씩 번갈아가면서 송수신한다.
본 발명에서, 상기 두 클럭 개수의 디지털 값을 송수신시, 상기 제어부는 하기 조건에 따라 마스터 및 슬레이브 보드를 설정한다.
1) A=B=1 또는 A=B=0이면 마스트/슬레이브 보드 설정 보류
2) A=1, B=0이면 제1보드를 마스터 보드로, 제2보드를 슬레이브 보드로 설정
3) A=0, B=1이면 제1보드를 슬레이브 보드로, 제2보드를 마스터 보드로 설정
(이때, A는 제1보드에서 제2보드로 송신한 1비트의 디지털 값이고, B는 제1보드에서 제2보드로부터 수신한 1비트의 디지털 값)
본 발명에서, 상기 제어부는 상기 A=B=1 또는 A=B=0인 경우 클럭 개수의 디지털 값 중 다음 1비트의 디지털 값을 상기 통신부를 통해 서로 송수신하도록 하여 상기 조건에 따라 마스터 보드 및 슬레이브 보드를 설정한다.
본 발명에 의하면 제어기 내의 이중화 보드에서 각각 카운트되는 클럭을 이용하여 마스터/슬레이브 보드를 설정하므로 간단하고 빠른 설정이 가능하다.
또한, 본 발명에 의하면 이중화 보드에 동일한 소프트웨어를 탑재하고 추가적인 구성없이 마스터/슬레이브 보드를 설정할 수 있으므로 제품의 생산성이 높아지고 오작동 가능성이 낮아진다.
도 1은 본 발명의 실시 예에 따른 이중화 보드가 적용된 장치의 예시도이다.
도 2는 본 발명의 실시 예에 따른 이중화 보드의 구성도이다.
도 3은 본 발명의 실시 예에 따른 보드 간 클럭 개수의 디지털 값의 전송과정을 설명하는 예시도이다.
도 4는 본 발명의 실시 예에 따른 이중화 보드의 마스터/슬레이브 설정방법을 나타낸 흐름도이다.
이하, 본 발명의 실시 예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명의 실시 예를 설명함에 있어, 관련된 공지구성 또는 기능에 대한 구체적인 설명이 본 발명의 실시 예에 대한 이해를 방해한다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 실시 예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
도 1은 본 발명의 실시 예에 따른 이중화 보드가 적용된 장치의 예시도이다. 도 1을 참조하면 본 발명의 실시 예에 따른 이중화 보드(20)가 적용된 장치(10)는 이중화로 구성된 제1보드(21) 및 제2보드(22)를 포함하여 구성된다. 제1보드(21) 및 제2보드(20)는 이중화로 구성되므로 서로 동일한 구성(하드웨어) 및 동일한 기능(소프트웨어 및 프로그램)으로 구성된다. 이러한 장치(10)는 다양하게 구성될 수 있다. 예컨대 설비나 장치 등을 제어하는 제어장치가 될 수 있다.
또한, 본 발명의 실시 예에서 제1보드(21) 및 제2보드(22)는 일반적인 제어기 내에 구비되는 보드(board)로서, 예컨대 연산보드, 제어보드 등과 같이 각종 기능을 수행하는 보드를 통칭한다. 뿐만아니라 본 발명에서 이러한 보드(21,22)는 제어기 또는 제어모듈 등의 장치를 포함하는 개념으로 사용된다.
나아가, 본 발명의 실시 예에서는 일례로 2개의 보드(21,22)로 이중화된 보드를 도시하고 있으나, 본 발명은 이러한 실시 예에 한정되지 않고 2개 이상의 보드들로 다중화로 구성될 수도 있다. 즉, 본 발명에 따른 마스터/슬레이브 보드의 설정방법은 다중화 보드에도 동일하게 적용될 수 있다. 이에 본 발명에서는 설명의 편의상 일례로 이중화된 보드에 대하여 설명하도록 한다.
도 2는 본 발명의 실시 예에 따른 이중화 보드의 구성도이다. 상기한 바와 같이 이중화된 보드(21,22)는 각각 동일한 구성 및 기능을 가지므로, 이하에서는 제1보드(21)에 대해서만 설명하기로 한다.
본 발명의 실시 예에서 제1보드(21)는 클럭발생부(211), 클럭카운트부(212), 통신부(213), 제어부(214)를 포함하여 구성된다. 선택적으로 다른 실시 예에서 난수발생부(215)를 더 포함할 수도 있다.
클럭발생부(211)는 보드(21)의 초기 부팅에 의한 전원이 입력되면 기설정된 클럭을 주기적으로 발생한다. 여기서 전원은 보드(21)의 전원이 꺼진 상태, 구체적으로 해당 보드(21)를 포함하는 장치가 꺼진 상태에서 장치를 부팅할 때 전원공급장치(예:SMPS)로부터 공급되는 기동전압이 될 수 있다. 이와 같이 장치를 부팅하기 위해 전원을 공급하면 보드(21)로도 전원이 공급된다. 이와 같이 전원이 보드(21)에 공급되면 클럭발생부(211)에서 즉시 기설정된 주기로 클럭을 연속적으로 발생시키는 것이다.
클럭카운트부(212)는 클럭발생부(211)에서 주기적으로 발생되는 클럭의 개수를 계속 카운트하여 내부의 메모리에 저장한다. 이러한 클럭 개수는 클럭이 발생한 횟수로서 바람직하게는 1과 0으로 이루어진 디지털 값으로 카운트 및 저장된다. 예컨대 1회는 1(1비트), 2회는 10(2비트), 3회는 11(3비트), 4회는 100(3비트)과 같이 n비트의 데이터 값으로 카운트될 수 있다. 다른 예로서 이러한 비트 수는 N비트로 고정될 수도 있다. 예를 들어 8비트로 구성되는 경우에는 1회는 00000001, 2회는 00000010, 3회는 00000011, 4회는 00000100의 데이터 값으로 구성될 수도 있다.
통신부(213)는 발생되는 클럭마다 상기와 같이 카운트된 자신의 클럭 개수를 상대보드로 송신하고, 상대보드로부터 상대보드의 클럭 개수를 수신한다. 즉, 제1보드(21)는 매 클럭마다 자신이 카운트한 클럭 개수를 제2보드(22)로 전송하고, 반대로 제2보드(22)로부터 제2보드(22)에서 카운트한 클럭 개수를 수신하도록 한다. 이러한 클럭 개수의 송수신은 제2보드에도 동일하게 적용된다. 즉, 제2보드(22)는 매 클럭마다 자신이 카운트한 클럭 개수를 제1보드(21)로 전송하고, 반대로 제1보드(21)로부터 제1보드(21)에서 카운트한 클럭 개수를 수신하도록 하는 것이다. 바람직하게는 현재 클럭에서 카운트한 클럭 개수는 다음 클럭에서 서로 송수신한다,
이때, 제1,2보드(21,22)에서의 클럭 개수의 디지털 값을 서로 간에 송수신하는 경우 통신부(213)는 상대보드와 교대로 1비트씩 번갈아가면서 송수신한다. 예컨대 제1,2보드(21,22) 모두 5개의 클릭 개수, 즉 디지털 값으로는 1001를 서로 송수신한다고 가정하면 제1보드(21)가 1을 전송하고 제2보드(22)가 1을 전송하며, 이후에 제1보드(21)가 다음 디지털 값인 0을 전송하고 제2보드(22)는 이에 자신의 두 번째 디지털 값인 0을 전송하는 것이다. 이와 같이 순차적으로 서로 번갈아가며 교대로 1비트의 디지털 값을 각각 전송하게 된다.
통신부(213)는 제1,2보드(21,22) 간에 연결된 차동통신선(30)을 통해 디지털 값을 전송한다. 이러한 차동통신선(30)은 제1보드(21)와 제2보드(22)가 서로 교대로 순차적으로 디지털 값을 1비트씩 전송하도록 지원한다.
제어부(214)는 통신부(213)를 통해 매 클럭마다 송수신된 두 클럭 개수를 비교하여 마스터/슬레이브 보드를 설정하는데, 그 비교결과 두 클럭 개수 중 더 큰 클럭 개수의 보드를 마스터 보드로 설정하고 더 작은 클럭 개수의 보드를 슬레이브 보드로 설정하도록 한다. 이러한 마스터/슬레이브 보드의 설정은 이중화된 제1,2보드(21,22) 중에서 매 클럭마다 클럭의 개수가 더 큰 보드를 마스터 보드로 설정하는 것이다.
상기한 바와 같이 이중화된 두 보드(21,22)는 실질적으로 동일한 보드이다. 즉, 동일한 구성 및 기능을 가지며 실질적으로 동일하게 동작하는 같은 보드이다. 하지만 이와 같이 두 보드(21,22)가 동일하다고 하더라도 오랜 기간 사용하게 되면 두 보드(21,22)의 성능이 조금씩 달라질 수 있다. 이때, 본 발명에서는 두 개의 제1,2보드(21,22)에 동시에 전원이 인가된 후 각각 클럭의 횟수를 카운트하여 매 클럭마다 서로의 클럭 횟수를 확인함으로써 더 빨리, 더 많이 카운트된 보드를 마스터 보드로 설정하는 것이다.
여기서, 제어부(214)는 두 클럭 개수의 디지털 값을 비교하여 마스터/슬레이브 보드를 설정할 때 다음과 같은 조건에 따라 설정하도록 한다. 설명의 편의상 제1보드(21)에서 제2보드(22)로 송신한 1비트의 디지털 값을 A라고 하고 제1보드(21)에서 제2보드(22)로부터 수신한 1비트의 디지털 값을 B라고 할 때, A와 B의 관계가 A=B=1이거나 또는 A=B=0인 경우에는 마스터/슬레이브 보드의 설정을 일시적으로 보류하고, A=1 및 B=0이면 제1보드(21)를 마스터 보드로 설정하며, A=0 및 B=1이면 제1보드(21)를 슬레이브 보드로 설정한다. 이때, 제1보드가 마스터 보드로 설정되면 제2보드는 슬레이브 보드로 설정되고, 반대로 제1보드가 슬레이브 보드로 설정되면 제2보드가 마스터 보드로 설정된다.
이는 제1 및 제2 보드(21,22)는 각각 자신의 클럭 개수와 상대보드의 클럭 개수를 독립적으로 각각 비교하므로 자신의 클럭 개수가 상대보드의 클럭 개수가 더 크면 자신이 마스터 보드로 설정하고, 이 경우 상대보드는 자신의 클럭 개수가 더 작기 때문에 자신은 슬레이브 보드로 설정하는 것이다.
만약, 상기 예에서 A=B=1이거나 또는 A=B=0인 경우 제어부(214)는 마스터/슬레이브 보드의 설정을 일시 보류하게 되는데, 이 경우에는 클럭 개수의 디지털 값 중 다음 1비트의 디지털 값을 위와 동일하게 통신부(213)를 통해 서로 송수신하도록 하여 상기 조건에 따라 역시 동일한 방법으로 마스터 보드 및 슬레이브 보드를 설정하도록 한다. 이는 두 보드(21,22) 중 매 클럭마다 어느 하나의 클럭 개수가 더 클 때까지 디지털 값에 대해 순차적으로 진행된다.
도 3은 본 발명의 실시 예에 따른 보드 간 클럭 개수의 디지털 값의 전송과정을 설명하는 예시도이다. 도 3를 참조하면 일례로 제1보드(21)에서 카운트된 클럭 개수의 디지털 값을 101이라 하고 제2보드(22)에서 카운트된 클럭 개수의 디지털 값을 100이라 가정한다.
먼저 (a)와 같이 제1보드(21)는 자신의 디지털 값인 101에서 첫 번째 비트인 1을 제2보드(22)로 차동통신선(30)의 제1통신선(31)으로 전송하면 제2보드(22)는 자신의 디지털 값인 100에서 첫 번째 비트인 1을 제1보드(21)로 제2통신선(32)으로 전송한다. 이에 제1,2보드(21,22)의 각 제어부는 자신의 디지털 값인 1과 상대보드의 디지털 값인 1이 같으므로 마스터 보드의 설정을 보류한다.
그러면 (b)와 같이 제1보드(21)는 다음 두 번째 비트인 0을, 제2보드(22)도 다음 두 번째의 비트인 0을 서로 송수신한다. 이에 각 제어부는 역시 송수신된 두 디지털 값이 같으므로 마스터 보드의 설정을 보류한다.
그러면 다시 (c)와 같이 다음 비트인 세 번째를 서로 송수신한다. 이때 제1보드(21)는 1을 송신하고 제2비트(22)는 0을 송신한다. 그러면 제1보드(21)의 제어부는 자신의 디지털 값은 1이고 상대보드인 제2보드(22)의 디지털 값은 0이므로 자신이 마스터 보드로 설정된다. 이때 제2보드(22)의 제어부는 자신의 디지털 값이 0인데 상대보드인 제1보드(21)의 디지털 값이 1이므로 자신은 슬레이브 보드로 설정하는 것이다.
이러한 과정에서 알 수 있듯이 제1,2보드(21,22)는 각각 자신이 카운트한 클럭 개수의 디지털 값을 서로 1비트씩 교대로 교환하되, 서로 다른 디지털 값이 나올 때까지 반복되며, 서로 다른 디지털 값이 나오면 그 결과에 따라 상기와 같이 마스터/슬레이브 보드가 결정되는 것이다.
난수발생부(215)는 난수를 발생시키도록 한다. 이러한 난수발생부(215)는 난수발생 프로그램을 통해 발생시키도록 할 수 있다. 이때, 제1,2보드(21,22)는 서로 동일한 난수발생 프로그램을 탑재한 난수발생부(215)를 각각 포함한다.
이는 상기와 같이 매 클럭마다 두 보드(21,22)의 클럭 개수가 계속해서 서로 동일하게 된다면 마스터 보드를 설정할 수 없어 보드의 기능을 수행할 수 없게 되는 문제점이 발생한다. 이를 방지하기 위해 두 클럭의 개수가 기설정된 시간 동안 계속 이어진다면 난수발생부(215)는 기설정된 프로그램을 통해 난수를 발생시킨다.
이와 같이 발생된 난수는 통신부(213)에 의해 상대보드로 송신되고, 또한 상대보드로부터 상대보드에서 발생된 난수가 수신된다.
이에, 제어부(214)는 송수신된 두 난수, 즉 자신이 발생한 난수와 상대보드에서 수신된 난수를 서로 비교하고, 그 비교결과에 따라 자신을 마스터 보드 또는 슬레이브 보드로 설정하도록 한다. 이는 일례에서는 제1,2보드(21,22)에서 각각 자신이 발생한 난수가 상대보드의 난수보다 더 크면 자신을 마스터 보드로 설정하고 더 작으면 자신을 슬레이브 보드로 설정할 수도 있고, 다른 예에서는 반대로 자신이 발생한 난수가 상대보드의 난수보다 더 작으면 자신을 마스터 보드로 설정하고 더 크면 자신을 슬레이브 보드로 설정할 수 있다. 즉, 난수의 비교에 따라 더 큰 난수의 보드를 마스터로 할지, 더 작은 난수의 보드를 마스터로 할지는 미리 설정해두는 것이 바람직하다.
도 4는 본 발명의 실시 예에 따른 이중화 보드의 마스터/슬레이브 설정방법을 나타낸 흐름도이다. 도 4를 참조하면 본 발명에 따른 이중화 보드의 마스터/슬레이브 설정방법에서는 이중화로 구성된 제1보드(21) 및 제2보드(22)에 초기 부팅에 의한 전원이 동시에 입력된다(S101). 전원이 입력되면 제1,2보드(21,22)는 클럭을 각각 발생시킨다(S103). 이에 제1,2보드(21,22)는 각각 상기 발생된 클럭의 개수를 카운트한다(S105).
이후, 매 클럭마다 제1,2보드(21,22)는 각각 자신의 카운트된 클럭 개수를 서로 송수신한다(S107). 즉, 제1,2보드(21,22)는 차동통신선(30)을 이용하여 각각 자신의 카운트된 클럭 개수를 상대보드로 전송하고 상대보드로부터 상기 상대보드에서 카운트된 클럭 개수를 수신한다.
이어, 제1,2보드(21,22)는 매 클럭마다 각각 송수신된 두 클럭 개수를 비교한다(S109). 이러한 비교에서 자신의 클럭 개수가 상대보드의 클럭 개수보다 더 크면(S111) 자신을 마스터 보드로 설정하고(S113), 반대로 더 작으면(S115) 슬레이브 보드로 설정한다(S117).
만약, 상기 비교(S109)에서 두 클럭 개수가 동일하면(S119), S105 단계로 진행하여 다음 주기에 생성된 클럭의 개수를 카운트하여 S119 단계까지 반복해서 진행된다. 이러한 경우에도 역시 두 클럭 개수가 동일하면(S119), 계속해서 이러한 과정들은 기설정된 시간이 경과할 때(S121)까지 반복된다.
이러한 과정의 반복 수행 중에 기설정된 시간이 경과하면(S121), 제1,2보드에서 각각 난수를 발생시킨다(S123). 이러한 난수발생은 내부에 설치된 난수발생부(215)에 의해 각각 수행된다.
이어, 제1,2보드(21,22)는 각각 발생된 자신의 난수를 차동통신선(30)을 통해 서로 송수신한다(S125). 즉, 제1,2보드(21,22)는 자신의 난수를 상대보드로 전송하고 상대보드로부터 상대보드의 난수를 수신한다.
이에, 제1,2보드(21,22)는 각각 송수신된 두 난수를 비교하여(S127), 자신의 난수가 상대보드의 난수보다 크면(S129), 자신을 마스터 보드로 설정하고(S131), 작으면(S133) 슬레이브 보드로 설정한다(S135).
이때, 다른 실시 예에서 자신의 난수가 상대보드의 난수보다 작으면 자신을 마스터 보드로 설정하고 크면 자신을 슬레이브 보드로 설정할 수도 있다. 또한 가능성이 매우 낮지만 두 난수가 서로 동일한 경우에는 제1,2보드(21,22) 중 어느 하나를 임의로 마스터 보드로 설정하도록 할 수도 있다.
이상에서 설명한 바와 같이 본 발명에서는 동일한 구성 및 기능을 갖는 이중화 보드에서 각각 클럭의 개수를 카운트하여 더 빠른 클럭이 카운트되는 보드를 마스터 보드로 설정하고 상대보드를 슬레이브 보드로 설정하도록 한다. 이러한 방법에서는 보드 간의 통신으로 통해 간단한 방법으로 빠르게 마스터 보드를 설정할 수 있다는 장점이 있다.
이상에서, 본 발명의 실시 예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시 예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재할 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10 : 제어장치 20 : 이중화 보드
21 : 제1보드 22 : 제2보드
30 : 차동통신선 31 : 제1통신선
32 : 제2통신선 211 : 클럭발생부
212 : 클럭카운트부 213 : 통신부
214 : 제어부 215 : 난수발생부

Claims (14)

  1. 이중화로 구성된 보드에 있어서,
    초기 부팅에 의한 전원이 입력되면 클럭을 발생하는 클럭발생부;
    상기 클럭발생부에서 발생되는 클럭의 개수를 카운트하는 클럭카운트부;
    상기 발생된 클럭마다 상기 카운트된 자신의 클럭 개수를 상대보드로 송신하고 상기 상대보드로부터 상기 상대보드의 클럭 개수를 수신하는 통신부;
    상기 통신부를 통해 상기 클럭마다 송수신된 두 클럭 개수 중 더 큰 클럭 개수의 보드를 마스터 보드로 설정하는 제어부를 포함하는 것을 특징으로 하는 보드.
  2. 제1항에 있어서, 상기 통신부는 상기 클럭발생부에서 발생되는 클럭마다 자신의 클럭 개수를 상기 상대보드로 송신하는 것을 특징으로 하는 보드.
  3. 제1항에 있어서, 난수를 발생시키는 난수발생부를 더 포함하고, 상기 송수신된 두 클럭 개수가 기설정된 시간 동안 동일하면 상기 난수발생부에서 난수를 발생시키고, 상기 통신부는 상기 발생된 난수를 상기 상대보드로 송신하고 상기 상대보드로부터 난수를 수신하며 상기 제어부는 상기 송수신된 두 난수를 비교하여 마스터/슬레이브 보드를 설정하는 것을 특징으로 하는 보드.
  4. 제3항에 있어서, 상기 제어부는 상기 두 난수의 비교결과 더 큰 난수를 발생시킨 보드를 마스터 보드로 설정하는 것을 특징으로 하는 보드.
  5. 제1항에 있어서, 상기 클럭 개수는 1과 0으로 구성된 디지털 값을 갖고 상기 통신부는 상기 클럭 개수의 디지털 값을 송수신시 상기 상대보드와 교대로 1비트씩 번갈아가면서 송수신하는 것을 특징으로 하는 보드.
  6. 제5항에 있어서, 상기 두 클럭 개수의 디지털 값을 송수신시, 상기 제어부는 하기 조건에 따라 마스터 및 슬레이브 보드를 설정하는 것을 특징으로 하는 보드.
    A=B=1 또는 A=B=0이면 마스터/슬레이브 보드 설정 보류
    A=1, B=0이면 자신의 보드를 마스터 보드로 설정
    A=0, B=1이면 자신의 보드를 슬레이브 보드로 설정
    (이때, A는 상기 상대보드로 송신한 1비트의 디지털 값이고, B는 상기 상대보드로부터 수신한 1비트의 디지털 값)
  7. 제6항에 있어서, 상기 제어부는 상기 A=B=1 또는 A=B=0인 경우 클럭 개수의 디지털 값 중 다음 1비트의 디지털 값을 상기 통신부를 통해 서로 송수신하도록 하여 상기 조건에 따라 마스터 보드 및 슬레이브 보드를 설정하는 것을 특징으로 하는 보드.
  8. 이중화로 구성된 제1 및 제2 보드에 초기 부팅에 의한 전원이 동시에 입력되는 입력단계;
    상기 전원이 입력되면 상기 제1,2보드는 클럭을 각각 발생하는 발생단계;
    상기 제1,2보드가 상기 발생된 클럭의 개수를 각각 카운트하는 카운트단계;
    상기 발생된 클럭마다 상기 제1,2보드는 각각 자신의 카운트된 클럭 개수를 상대보드로 전송하고 상대보드로부터 상기 상대보드에서 카운트된 클럭 개수를 수신하는 송수신단계;
    상기 제1,2보드는 상기 클럭마다 각각 송수신된 두 클럭 개수를 비교하여 자신의 클럭 개수가 더 크면 자신을 마스터 보드로 설정하고 더 작으면 슬레이브 보드로 설정하는 설정단계를 포함하는 이중화 보드의 마스터/슬레이브 설정방법.
  9. 제8항에 있어서, 상기 설정단계의 비교결과 상기 송수신된 두 클럭 개수가 기설정된 시간 동안 동일하면 상기 제1,2보드에서 각각 난수를 발생시키는 단계;
    상기 제1,2보드는 각각 발생된 자신의 난수를 상대보드로 전송하고 상기 상대보드로부터 상기 상대보드에서 발생된 난수를 수신하는 단계;
    상기 제1,2보드는 각각 송수신된 두 난수를 비교하여 각각 자신을 마스터 보드 또는 슬레이브 보드로 설정하는 이중화 보드의 마스터/슬레이브 설정방법.
  10. 제9항에 있어서, 상기 제1,2보드는 자신이 발생한 난수가 상기 상대보드의 난수보다 더 크면 자신을 마스터 보드로 설정하고 더 작으면 자신을 슬레이브 보드로 설정하는 이중화 보드의 마스터/슬레이브 설정방법.
  11. 제9항에 있어서, 상기 제1,2보드는 자신이 발생한 난수가 상기 상대보드의 난수보다 더 작으면 자신을 마스터 보드로 설정하고 더 크면 자신을 슬레이브 보드로 설정하는 이중화 보드의 마스터/슬레이브 설정방법.
  12. 제8항에 있어서, 상기 클럭 개수는 1과 0으로 구성된 디지털 값을 갖고 상기 통신부는 상기 클럭 개수의 디지털 값을 순차적으로 송수신시 상기 상대보드와 교대로 1비트씩 번갈아가면서 송수신하는 이중화 보드의 마스터/슬레이브 설정방법.
  13. 제12항에 있어서, 상기 두 클럭 개수의 디지털 값 송수신시, 상기 제1,2보드는 하기 조건에 따라 마스터 보드 및 슬레이브 보드를 설정하는 이중화 보드의 마스터/슬레이브 설정방법.
    A=B=1 또는 A=B=0이면 마스트/슬레이브 보드 설정 보류
    A=1, B=0이면 제1보드를 마스터 보드로, 제2보드를 슬레이브 보드로 설정
    A=0, B=1이면 제1보드를 슬레이브 보드로, 제2보드를 마스터 보드로 설정
    (이때, A는 제1보드에서 제2보드로 송신한 1비트의 디지털 값이고, B는 제1보드에서 제2보드로부터 수신한 1비트의 디지털 값)
  14. 제13항에 있어서, 상기 제어부는 상기 A=B=1 또는 A=B=0인 경우 클럭 개수의 디지털 값 중 다음 1비트의 디지털 값을 상기 통신부를 통해 서로 송수신하도록 하여 상기 조건에 따라 마스터 보드 및 슬레이브 보드를 설정하는 이중화 보드의 마스터/슬레이브 설정방법.
KR1020170183191A 2017-12-28 2017-12-28 이중화 보드에서 마스터/슬레이브 설정방법 및 그 보드 KR102104967B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170183191A KR102104967B1 (ko) 2017-12-28 2017-12-28 이중화 보드에서 마스터/슬레이브 설정방법 및 그 보드
PCT/KR2018/016396 WO2019132430A1 (ko) 2017-12-28 2018-12-20 이중화 보드에서 마스터/슬레이브 설정방법 및 그 보드
US16/957,315 US20200348716A1 (en) 2017-12-28 2018-12-20 Method for configuring master/slave in double board, and board thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170183191A KR102104967B1 (ko) 2017-12-28 2017-12-28 이중화 보드에서 마스터/슬레이브 설정방법 및 그 보드

Publications (2)

Publication Number Publication Date
KR20190080625A true KR20190080625A (ko) 2019-07-08
KR102104967B1 KR102104967B1 (ko) 2020-05-29

Family

ID=67067657

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170183191A KR102104967B1 (ko) 2017-12-28 2017-12-28 이중화 보드에서 마스터/슬레이브 설정방법 및 그 보드

Country Status (3)

Country Link
US (1) US20200348716A1 (ko)
KR (1) KR102104967B1 (ko)
WO (1) WO2019132430A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102135772B1 (ko) * 2018-10-31 2020-07-20 효성중공업 주식회사 이중화 보드 및 이중화 보드의 마스터/슬레이브 설정방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000055954A (ko) 1999-02-11 2000-09-15 김영환 이중화 보드용 마스터/슬레이버 선택 회로
WO2001015389A1 (fr) * 1999-08-20 2001-03-01 Fujitsu Limited Procede de reglage d'horloge, dispositif de communication utilisant ce procede et systeme de communication
KR100320149B1 (ko) 2000-03-07 2002-01-10 서평원 이중화 보드에서 와치독 인터럽트를 이용한 마스터 권한설정 장치 및 방법
KR100498553B1 (ko) * 1999-08-24 2005-07-01 엘에스산전 주식회사 보드 이중화 구현 회로 및 방법
JP2010128207A (ja) * 2008-11-27 2010-06-10 Kyocera Mita Corp 分散制御装置及び画像形成装置
JP2013197972A (ja) * 2012-03-21 2013-09-30 Nec Access Technica Ltd 通信装置、通信方法、及び、プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4677614A (en) * 1983-02-15 1987-06-30 Emc Controls, Inc. Data communication system and method and communication controller and method therefor, having a data/clock synchronizer and method
JP4949816B2 (ja) * 2006-12-01 2012-06-13 ルネサスエレクトロニクス株式会社 双方向通信回路、双方向通信システム及び双方向通信回路の通信方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000055954A (ko) 1999-02-11 2000-09-15 김영환 이중화 보드용 마스터/슬레이버 선택 회로
WO2001015389A1 (fr) * 1999-08-20 2001-03-01 Fujitsu Limited Procede de reglage d'horloge, dispositif de communication utilisant ce procede et systeme de communication
KR100498553B1 (ko) * 1999-08-24 2005-07-01 엘에스산전 주식회사 보드 이중화 구현 회로 및 방법
KR100320149B1 (ko) 2000-03-07 2002-01-10 서평원 이중화 보드에서 와치독 인터럽트를 이용한 마스터 권한설정 장치 및 방법
JP2010128207A (ja) * 2008-11-27 2010-06-10 Kyocera Mita Corp 分散制御装置及び画像形成装置
JP2013197972A (ja) * 2012-03-21 2013-09-30 Nec Access Technica Ltd 通信装置、通信方法、及び、プログラム

Also Published As

Publication number Publication date
US20200348716A1 (en) 2020-11-05
KR102104967B1 (ko) 2020-05-29
WO2019132430A1 (ko) 2019-07-04

Similar Documents

Publication Publication Date Title
CN110967969B (zh) 高可用性工业自动化系统及通过该系统传送信息的方法
US9319237B2 (en) Method and device for controlling a bus system and a corresponding bus system
CN110785327B (zh) 车辆控制装置
US9921890B2 (en) Event generation management for an industrial controller
US9601173B2 (en) Semiconductor system
KR20090099534A (ko) 통신 시스템 시동 방법, 통신 매체와 이에 접속된 복수의 가입자를 갖는 통신 시스템 및 이러한 통신 시스템의 가입자
KR100778114B1 (ko) 통신에러를 개선하기 위한 통신방법 및 그 통신방법이적용된 전자장치
KR20190080625A (ko) 이중화 보드에서 마스터/슬레이브 설정방법 및 그 보드
JP5051583B2 (ja) データ処理ネットワークを同期化するシステムおよび方法
US20130262610A1 (en) Communication system and method for configuring programmable hardware
US8578077B2 (en) Group master communication system and method for serially transmitting data in automation systems
KR20190080626A (ko) 이중화 보드에서 마스터/슬레이브 설정방법 및 그 보드
CN102938699A (zh) 均衡供电方法及装置
CN110679118B (zh) 处理过程数据
KR20200048933A (ko) 이중화 보드를 구비한 제어기 시스템 및 그 이중화 보드의 마스터/슬레이브 설정방법
US7114017B2 (en) Programmable peripheral switch
CN216649703U (zh) 一种多类复杂信号快速切换的干扰信号源模块
KR102135772B1 (ko) 이중화 보드 및 이중화 보드의 마스터/슬레이브 설정방법
JP5604799B2 (ja) フォールトトレラントコンピュータ
US20210297283A1 (en) Master slave communication system capable of reducing manufacturing cost, electronic device, control method for master slave communication system, and control method for electronic device
JP2016152585A (ja) 制御装置
JP2007082077A (ja) データ伝送システム、端末機、伝送方向自動設定装置、伝送方向自動設定方法及びプログラム
JP2021180448A (ja) マスタスレーブ通信システム、電子デバイス、およびこれらの制御方法
KR101665443B1 (ko) 비동기 디지털 회로에서의 상태 피드백 교정 제어 시스템 및 그 방법
KR101499516B1 (ko) 복수의 제어기 리프로그래밍 방법 및 그 장치

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant