KR101275640B1 - 다수의 버스를 이용하는 논리연산 제어장치 - Google Patents

다수의 버스를 이용하는 논리연산 제어장치 Download PDF

Info

Publication number
KR101275640B1
KR101275640B1 KR1020110131343A KR20110131343A KR101275640B1 KR 101275640 B1 KR101275640 B1 KR 101275640B1 KR 1020110131343 A KR1020110131343 A KR 1020110131343A KR 20110131343 A KR20110131343 A KR 20110131343A KR 101275640 B1 KR101275640 B1 KR 101275640B1
Authority
KR
South Korea
Prior art keywords
bus
controller
module
event
main
Prior art date
Application number
KR1020110131343A
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 KR1020110131343A priority Critical patent/KR101275640B1/ko
Priority to PCT/KR2012/003163 priority patent/WO2013085121A1/ko
Application granted granted Critical
Publication of KR101275640B1 publication Critical patent/KR101275640B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

논리연산 제어장치가 제공된다. 본 논리연산 제어장치는 메인 제어부 및 적어도 하나의 I/O 모듈의 통신 경로가 되고 메인 제어부에 의해 통신이 제어되는 제1 버스 및 메인 제어부 및 적어도 하나의 I/O 모듈의 통신 경로가 되고 적어도 하나의 I/O 모듈에 의해 제어되는 제2 버스를 포함하여, 논리연산 제어장치에 특화된 고성능의 버스 기술을 제공할 수 있게 된다.

Description

다수의 버스를 이용하는 논리연산 제어장치{Programmable logic controller using multiple buses}
본 발명은 논리연산 제어장치에 관한 것으로, 더욱 상세하게는, 다수의 버스를 이용하는 논리연산 제어장치에 관한 것이다.
논리연산제어장치의 구성을 위한 입출력시스템버스는 일반적으로 백플레인(Backplane) 버스 구조가 사용된다. 백플레인 버스의 구현을 위하여 검증된 시스템 버스 표준인 VME64, CPCL, VXI 등을 사용할 수 있다. 하지만, 표준버스는 다양한 시스템의 호환성을 위하여 복잡한 구조를 가지고 있으며, 논리연산 제어장치라는 특정 분야에 최적화 되어있지 않다.
논리연사 제어장치의 시스템 버스를 구현하기 위하여 VME64와 같은 표준을 사용하는 경우도 있지만, 앞에서 언급한 문제점 때문에 산업계에서는 대부분은 논리연산 제어장치에 특화된 버스를 직접 설계하여 사용하는 것이 보편적이다. 업체에서 직접 설계된 버스구조는 외부에 공개하지 않음으로, 각 업체의 버스 성능을 객관적으로 평가하기 힘들뿐만 아니라, 새로운 논리연산 제어장치를 개발할 때, 기술을 참조하거나, 사용하는데 어려움이 많다.
독자적인 논리연산제어장치를 개발하고자 할 경우에는 직접 버스구조를 설계하고 동작에 대한 안정성을 검증해야 하기 때문에, 개발기간이나 신뢰성 측면에서 어려움이 발생한다.
이에 따라, 논리연산 제어장치에 특화된 고성능의 버스 기술을 개발하기 위한 방안의 모색이 요청된다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 메인 제어부 및 적어도 하나의 I/O 모듈의 통신 경로가 되고 메인 제어부에 의해 통신이 제어되는 제1 버스 및 메인 제어부 및 적어도 하나의 I/O 모듈의 통신 경로가 되고 적어도 하나의 I/O 모듈에 의해 제어되는 제2 버스를 포함하는 논리연산 제어장치를 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, 논리연산 제어장치는, 논리 연산을 수행하는 메인 제어부; 데이터를 입출력하는 적어도 하나의 I/O 모듈; 상기 메인 제어부 및 상기 적어도 하나의 I/O 모듈의 통신 경로가 되고, 상기 메인 제어부에 의해 통신이 제어되는 제1 버스; 상기 메인 제어부 및 상기 적어도 하나의 I/O 모듈의 통신 경로가 되고, 상기 적어도 하나의 I/O 모듈에 의해 제어되는 제2 버스;를 포함한다 .
그리고, 상기 적어도 하나의 I/O 모듈 각각을 상기 제1 버스 및 상기 제2 버스와 연결하고, 상기 적어도 하나의 I/O 모듈 각각과 상기 제1 버스 간의 통신 및 상기 적어도 하나의 I/O 모듈 각각과 상기 제2 버스 간의 통신을 제어하는 적어도 하나의 I/O 버스 컨트롤러;를 더 포함할 수도 있다.
또한, 상기 I/O 버스 컨트롤러 각각은, 데이터를 상기 I/O 모듈의 프로토콜에 맞게 변형하여 송수신하는 입출력 인터페이스부; 상기 제1버스 또는 상기 제2버스를 통해 송수신되는 데이터를 인코딩 및 디코딩하는 버스 제어부; 상기 I/O 모듈에 이벤트가 발생된 경우, 입출력 이벤트를 생성하는 이벤트 생성부; 및 상기 버스 제어부 및 상기 이벤트 생성부에서 송수신되는 데이터를 버스 프로토콜에 맞게 변형하여 송수신하는 버스 인터페이스부;를 포함한다.
그리고, 상기 이벤트 생성부는, 상기 제2 버스를 통해 상기 생성된 입출력 이벤트를 상기 메인 버스 제어부로 전송할 수도 있다.
또한, 상기 메인 제어부를 상기 제1 버스 및 상기 제2 버스와 연결하고, 상기 메인 제어부와 상기 제1 버스 간의 통신 및 상기 메인 제어부와 상기 제2 버스 간의 통신을 제어하는 메인 버스 컨트롤러;를 더 포함할 수도 있다.
그리고, 상기 메인 버스 컨트롤러는, 데이터를 상기 메인 제어부의 프로토콜에 맞게 변형하여 송수신하는 메인 인터페이스부; 상기 제1 버스 또는 상기 제2 버스를 통해 송수신되는 데이터를 인코딩 및 디코딩하는 버스 제어부; 상기 I/O 버스 컨트롤러로부터 수신된 입출력 이벤트를 우선순위에 따라 정렬하여 상기 메인 제어부로 전송하는 이벤트 핸들러; 및 상기 버스 제어부 및 상기 입출력 이벤트 핸들러에서 송수신되는 데이터를 버스 프로토콜에 맞게 변형하여 송수신하는 버스 인터페이스부;를 포함할 수도 있다.
또한, 상기 입출력 이벤트 핸들러는, 상기 제2 버스를 통해 상기 I/O 버스 제어부로부터 상기 입출력 이벤트를 수신할 수도 있다.
그리고, 상기 적어도 하나의 I/O 모듈는, 우선순위 정보가 포함된 토큰(Token)을 이용하여 상기 제2 버스를 통한 상기 메인 제어부와의 통신 여부를 결정할 수도 있다.
본 발명의 다양한 실시예에 따르면, 메인 제어부 및 적어도 하나의 I/O 모듈의 통신 경로가 되고 메인 제어부에 의해 통신이 제어되는 제1 버스 및 메인 제어부 및 적어도 하나의 I/O 모듈의 통신 경로가 되고 적어도 하나의 I/O 모듈에 의해 제어되는 제2 버스를 포함하는 논리연산 제어장치를 제공할 수 있게 되어, 논리연산 제어장치에 특화된 고성능의 버스 기술을 제공할 수 있게 된다.
도 1은 본 발명의 일 실시예에 따른, 논리연산 제어장치의 구성을 도시한 블럭도,
도 2는 본 발명의 일 실시예에 따른, 메인 버스 컨트롤러 및 I/O 버스 컨트롤러의 구성을 도시한 도면,
도 3은 본 발명의 일 실시예에 따른, 이벤트 버스의 통신 방식을 도시한 도면이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른, 논리연산 제어장치(100)의 구성을 도시한 블럭도이다. 도 1에 도시된 바와 같이, 논리연산 제어장치(100)는 메인 제어부(110), 메인 버스 컨트롤러(115), 제1 I/O 모듈(120), 제1 I/O 버스 컨트롤러(125), 제2 I/O 모듈(130), 제2 I/O 버스 컨트롤러(135), 제3 I/O 모듈(140), 제3 I/O 버스 컨트롤러(145), 데이터 버스(150) 및 이벤트 버스(160)를 포함한다.
메인 제어부(110)는 논리 연산을 수행한다. 또한, 제어부(110)는 논리연산 제어장치(100)의 전반적인 동작을 제어하며, 입력된 이벤트를 우선순위별로 처리한다.
메인 버스 컨트롤러(115)는 메인 제어부(110)를 데이터 버스(150) 및 이벤트 버스(160)와 연결하고, 메인 제어부(110)와 데이터 버스(150) 간의 통신 및 메인 제어부(110)와 이벤트 버스(160) 간의 통신을 제어한다. 구체적으로, 메인 버스 컨트롤러(115)는 메인 제어부(110)가 데이터 버스(150)를 통해 I/O 모듈들(120, 130, 140)로 명령 패킷 및 데이터 요청 패킷을 전송하도록 제어한다. 그리고, 메인 버스 컨트롤러(115)는 메인 제어부(110)가 이벤트 버스(160)를 통해 I/O 모듈들(120, 130, 140)로부터 입출력 이벤트를 수신하도록 제어한다.
제1 I/O 모듈(120), 제2 I/O 모듈(130), 및 제3 I/O 모듈(140)는 각각 연결된 외부 장치들과 데이터를 입출력한다.
제1 I/O 버스 컨트롤러(125), 제2 I/O 버스 컨트롤러(135) 및 제3 I/O 버스 컨트롤러(145)는 I/O 모듈 각각(120,130,140)을 데이터 버스(150) 및 이벤트 버스(160)와 연결하고, I/O 모듈 각각(120,130,140)과 데이터 버스(150) 간의 통신 및 I/O 모듈 각각(120,130,140)과 이벤트 버스(160) 간의 통신을 제어한다. 구체적으로, 제1 I/O 버스 컨트롤러(125), 제2 I/O 버스 컨트롤러(135) 및 제3 I/O 버스 컨트롤러(145)는 I/O 모듈 각각(120,130,140)이 데이터 버스(150)를 통해 메인 제어부(110)로부터 명령 패킷 및 데이터 요청 패킷을 수신하도록 제어한다. 그리고, 제1 I/O 버스 컨트롤러(125), 제2 I/O 버스 컨트롤러(135) 및 제3 I/O 버스 컨트롤러(145)는 이벤트 버스(160)를 통해 I/O 모듈들(120, 130, 140)이 메인 제어부(110)로 입출력 이벤트를 전송하도록 제어한다.
데이터 버스(150)는 메인 제어부(110) 및 I/O 모듈 각각(120,130,140)의 통신 경로가 되고, 메인 제어부(110)에 의해 통신이 제어된다. 데이터 버스(150)는 메인 제어부(110) 및 I/O 모듈 각각(120,130,140)이 연결된다.
구체적으로, 데이터 버스(150)는 통신 방식이 동기식 방식이며, 마스터/슬레이브 구조로 되어있다. 이때, 논리연산 제어장치(100)의 메인 제어부(110)가 네트워크의 마스터가 되며, 그 외의 I/O 모듈들(120,130,140)이 슬레이브가 된다. 동기신호는 마스터에 의하여 생성되며, 동기신호를 제외한 다른 버스 컨트롤 신호는 존재하지 않는다. 데이터 버스(150)는 메인 제어부(110) 및 I/O 모듈들(120,130,140)을 포함하는 모든 모듈이 24비트 병렬 버스를 공유하여 사용하지만, 마스터만이 통신을 시작하기 때문에 특별한 충돌방지 메커니즘은 필요하지 않다. 슬레이브는 항상 마스터로부터 송신된 패킷을 대기한다. 마스터인 메인 제어부(110)로부터 전송되는 패킷은 크게 두 가지가 있는데, 명령 패킷과 데이터 요청 패킷이다. 명령 패킷은 마스터가 슬레이브에게 컨트롤 명령을 보내는 것으로 리셋명령, 채널 설정명령, 입출력 채널의 신호 출력 등이 있다. 데이터 요청 패킷은 마스터가 슬레이브의 현재 레지스터 상태 및 입출력 채널의 수신신호를 읽기위한 데이터 요청 패킷이다. 데이터 버스(150)에서는 어떠한 상황에서도 슬레이브가 능동적으로 데이터 버스를 점령할 수 없으며, 필요에 따라 마스터는 슬레이브에서 전송하고자 하는 데이터가 있는지 주기적으로 폴링(Polling)한다. 이와 같이, 데이터 버스(150)는 메인 제어부(110)에 의해 제어되는 것을 확인할 수 있다.
이벤트 버스(160)는 메인 제어부(110) 및 I/O 모듈들(120,130,140)의 통신 경로가 되고, I/O 모듈들(120,130,140)에 의해 제어된다. 이벤트 버스(160)는 메인 제어부(110) 및 I/O 모듈 각각(120,130,140)이 연결된다. 이벤트 버스(160)는 발생된 입출력 이벤트의 우선순위에 따라 I/O 모듈들(120,130,140) 중 버스를 점유하는 I/O 모듈가 결정된다. 따라서, 이벤트 버스(160)는 일정 주기마다 I/O 모듈들(120,130,140) 중 어느 하나가 점유하게 된다.
구체적으로, 이벤트 버스(160)는 데이터 버스(150)와 마찬가지로 동기식 24비트 병렬버스이며 마스터/슬레이브 구조로 되어있다. 이때, 논리연산 제어장치(100)의 메인 제어부(110)가 네트워크의 마스터가 되며, 그 외의 I/O 모듈들(120,130,140)이 슬레이브가 된다. 동기신호는 마스터에 의하여 발생된다. 이벤트 버스(160)는 슬레이브가 능동적으로 버스를 점유할 수 있다. 즉, 이벤트 버스(160)는 슬레이브인 I/O 모듈들(120,130,140)이 점유할 수 있다. 다수의 슬레이브인 I/O 모듈들(120,130,140)이 동시에 이벤트 버스(160)에 연결되어 있기 때문에, 슬레이브가 동시에 버스를 점유하게 되면 데이터의 충돌이 발생할 수 있다. 이러한 문제점을 해결하기 위하여 이벤트 버스(160)의 통신에는 토큰(Token)방식이 이용된다. 토큰은 입출력 이벤트의 우선순위 정보가 포함되어 있다. 그리고, 슬레이브인 I/O 모듈들(120,130,140)은 우선순위 정보가 포함된 토큰(Token)을 이용하여 이벤트 버스(160)를 통한 메인 제어부(110)와의 통신 여부를 결정하게 된다. 토큰은 데이지 체인 버스를 통하여 전달된다. 여기에서, 데이지 체인 버스는 토큰을 전달하기 위한 이벤트 버스(160) 내의 논리적 버스이다. 데이지 체인 버스는 메인 제어부(110) → 제1 I/O 모듈(120) → 제2 I/O 모듈(130) → 제3 I/O 모듈(140) →메인 제어부(110)의 순서로 순환 형태로 토큰을 전송하는 경로이다. 슬레이브는 이벤트 버스(160)를 사용하기 위해서 데이지 체인을 통하여 들어오는 토큰을 항상 모니터링 하여야 한다.
데이지 체인은 이벤트 버스(160)를 통해 슬레이브가 이벤트 버스를 점령하기 위한 토큰이 전달되는 경로를 나타낸다. 데이지 체인은 총 4개의 버스라인을 가지고 있으며, 동기신호를 전달하기 위한 Sync 라인과 현재 버스가 사용 중임을 나타내는 Busy 시그널 라인, 직렬 데이터를 보내기 위한 데이터 라인, 마지막으로 마스터와 직접 연결되는 또 다른 데이터 라인이 있다. 토큰의 생성 및 이용방식은 추후 상세히 설명한다.
도 2는 본 발명의 일 실시예에 따른, 메인 버스 컨트롤러(115) 및 제1 I/O 버스 컨트롤러(125)의 구성을 도시한 도면이다. 제2 I/O 버스 컨트롤러(135) 및 제3 I/O 버스 컨트롤러(145)는 제1 I/O 버스 컨트롤러(125)와 구성이 동일하므로, 이하에서는 제1 I/O 버스 컨트롤러(125)의 구성에 대해서만 설명한다.
도 2에 도시된 바와 같이, 메인 버스 컨트롤러(115)는 메인 인터페이스부(210), 버스 제어부(220), 이벤트 핸들러(230), 및 버스 인터페이스부(240)를 포함한다.
메인 인터페이스부(210)는 데이터를 메인 제어부(110)의 프로토콜에 맞게 변형하여 송수신한다. 즉, 메인 인터페이스부(210)는 버스 제어부(220)에서 송수신 되는 데이터를 메인 제어부(110)의 프로토콜에 맞게 변형한 후에, 변형된 데이터를 메인 제어부(110)로 송수신하게 된다.
버스 제어부(220)는 데이터 버스(150) 또는 이벤트 버스(160)를 통해 송수신되는 데이터를 인코딩 및 디코딩한다. 구체적으로, 버스 제어부(220)는 메인 제어부(110)에 입력하기 위한 데이터 패킷을 패킷 디코딩하고, 데이터 버스(150) 또는 이벤트 버스(160)로 출력하고자 하는 데이터를 패킷 인코딩하여 출력하게 된다.
이벤트 핸들러(230)는 이벤트 버스(160)를 통해 I/O 버스 컨트롤러(125)로부터 수신된 입출력 이벤트를 우선순위에 따라 정렬하여 메인 제어부(110)로 전송한다. 구체적으로, 이벤트 핸들러(230)는 이벤트 버스(160)를 통해 I/O 버스 컨트롤러(125)로부터 입출력 이벤트를 수신한다. 그리고, 이벤트 핸들러(230)는 수신된 입출력 이벤트를 기설정된 입출력 이벤트별 우선순위에 따라 정렬하여 메인 제어부(110)로 전송한다.
버스 인터페이스부(240)는 버스 제어부(220) 및 입출력 이벤트 핸들러(230)에서 송수신되는 데이터를 버스 프로토콜에 맞게 변형하여 송수신한다. 즉, 버스 인터페이스부(240)는 버스 제어부(220) 및 입출력 이벤트 핸들러(230)에서 송수신되는 데이터를 데이터 버스(150) 및 이벤트 버스(160)의 프로토콜에 맞게 변형한 후에, 변형된 데이터를 데이터 버스(150) 및 이벤트 버스(160)로 송수신하게 된다.
이와 같은 구조의 메인 버스 컨트롤러(115)는 메인 제어부(110)가 이벤트 버스(160)를 통해 I/O 모듈들(120, 130, 140)로부터 입출력 이벤트를 수신하도록 제어할 수 있게 된다.
또한, 도 2에 도시된 바와 같이, 제1 I/O 버스 컨트롤러(125)는 입출력 인터페이스부(250), 버스 제어부(260), 이벤트 생성부(270), 및 버스 인터페이스부(280)를 포함한다.
입출력 인터페이스부(250)는 데이터를 제1 I/O 모듈(120)의 프로토콜에 맞게 변형하여 송수신한다. 즉, 입출력 인터페이스부(250)는 버스 제어부(260)에서 송수신 되는 데이터를 제1 I/O 모듈(120)의 프로토콜에 맞게 변형한 후에, 변형된 데이터를 제1 I/O 모듈(120)로 송수신하게 된다.
버스 제어부(260)는 데이터 버스(150) 또는 이벤트 버스(160)를 통해 송수신되는 데이터를 인코딩 및 디코딩한다. 구체적으로, 버스 제어부(260)는 제1 I/O 모듈(120)에 입력하기 위한 데이터 패킷을 패킷 디코딩하고, 데이터 버스(150) 또는 이벤트 버스(160)로 출력하고자 하는 데이터를 패킷 인코딩하여 출력하게 된다.
이벤트 생성부(270)는 제1 I/O 모듈(120)에 이벤트가 발생된 경우, 입출력 이벤트를 생성하게 된다. 입출력 이벤트는 제1 I/O 모듈(120)의 내부 또는 입력 신호 등에서 발생되는 이벤트를 나타내며, 예를 들어 입력 에러 이벤트 또는 고장 이벤트 등이 될 수 있다. 또한, 이벤트 생성부(270)는 생성된 입출력 이벤트의 우선순위가 다른 이벤트들에 비하여 최상위인 경우에 입출력 이벤트를 이벤트 버스(160)를 통해 메인 버스 컨트롤러(115)로 전송하게 된다.
버스 인터페이스부(280)는 버스 제어부(260) 및 이벤트 생성부(270)에서 송수신되는 데이터를 버스 프로토콜에 맞게 변형하여 송수신한다. 즉, 버스 인터페이스부(280)는 버스 제어부(260) 및 이벤트 생성부(270)에서 송수신되는 데이터를 데이터 버스(150) 및 이벤트 버스(160)의 프로토콜에 맞게 변형한 후에, 변형된 데이터를 데이터 버스(150) 및 이벤트 버스(160)로 송수신하게 된다.
이와 같은 구조의 제1 I/O 버스 컨트롤러(125)는 제1 I/O 모듈(120)에서 발생된 입출력 이벤트가 우선순위에 따라 이벤트 버스(160)를 통해 메인 제어부(110)로 전송되도록 제어할 수 있게 된다.
이하에서는, 도 3을 참고하여, 이벤트 버스(160)를 통해 입출력 이벤트가 전송되는 과정에 대해 설명한다. 도 3은 본 발명의 일 실시예에 따른, 이벤트 버스(160)의 통신 방식을 도시한 도면이다.
도 3에서 점선은 이벤트 버스(160)를 나타내고, 실선 화살표는 데이지 체인(300)을 나타낸다. 토큰(310, 320)은 이벤트 버스(160)를 통해 데이지 체인의 순서에 따라 전송된다.
최초에 논리연산 제어장치(100)가 구동되면, 도 3에 도시된 바와 같이, 마스터인 메인 제어부(110)는 스타트 패킷(Start packet) 형태의 토큰을 생성하고, 메인 버스 컨트롤러(115)는 데이지 체인(300)을 따라 가장 가까운 슬레이브로 스타트 패킷을 포함하는 토큰을 전송한다. 스타트 패킷은 8비트 스타트 비트와 모듈 아이디를 포함한다.
제일 가까이 연결된 슬레이브(S1)인 제1 I/O 모듈(120)의 제1 I/O 버스 컨트롤러(125)는 토큰을 수신한 후 메인 버스 컨트롤러(115)로 ACK신호를 보낸다.
제1 I/O 버스 컨트롤러(125)는 수신한 토큰의 스타트 패킷의 뒷부분에 자신의 패킷인 슬레이브 패킷(S1)을 덧붙인다. 슬레이브 패킷(S1)은 스타트를 나타내는 8비트, 모듈 아이디, 모듈과 연결된 외부 장치를 나타내는 정보(FUNC), 그리고 마지막으로 보낼 입출력 이벤트 데이터가 있음을 우선순위별로 나타내는 8비트 비트마스크(Bit mask)를 포함한다.
비트마스크는 이벤트 버스(160)를 통해 전송되는 패킷을 8개의 우선순위로 구분하여 표시한다. 각 I/O 버스 컨트롤러(125,135,145)에서 토큰 패킷에 자신의 정보를 추가하는 내용 중에 비트 마스크는 자신이 보낼 패킷이 존재함을 나타낸다. 비트 마스크의 최상위비트는 제일 높은 우선순위 패킷을 의미하며 마지막 비트는 제일 낮은 우선순위의 패킷을 의미한다. 여기에서, 패킷은 입출력 이벤트가 될 수도 있으며, 이외에 다른 패킷이 될 수도 있다. 예를 들어, 비트 마스크의 값이 '01000100'이면, 전송할 패킷이 우선순위가 2인 패킷과 우선순위가 6인 패킷으로 2개가 있다는 것을 나타낸다. 이와 같이, 비트 마스크는 우선순위별 전송 대기중인 패킷이 존재함을 나타낸다.
이후에, 제1 I/O 버스 컨트롤러(125)는 토큰에 슬레이브 패킷(S1)을 덧붙인 후에, 데이지 체인을 따라 제2 I/O 버스 컨트롤러(135)로 토큰을 전송한다. 그 후에, 제2 I/O 버스 컨트롤러(135)와 제3 I/O 버스 컨트롤러(145)도 순차적으로 자신의 슬레이브 패킷(S2, S3)을 토큰에 덧붙이게 된다. 제3 I/O 버스 컨트롤러(145)는 ACK신호를 수신할 수 없기 때문에, 자신이 마지막임을 알 수 있게 되며, 완성된 토큰(320)을 다시 이벤트 버스(160)의 데이지 체인을 따라 메인 버스 컨트롤러로 전달한다.
이 후에, 토큰(320)은 데이지 체인을 따라 계속적으로 '메인 버스 컨트롤러(115) → 제1 I/O 버스 컨트롤러(125) → 제2 I/O 버스 컨트롤러(135) → 제3 I/O 버스 컨트롤러(145) → 메인 버스 컨트롤러(115)'의 순서로 순환 전달된다. 그리고, 각 I/O 버스 컨트롤러(125, 135, 145)는 메인 제어부(110)로 전송하고자 하는 입출력 이벤트가 발생된 경우, 토큰(320)의 비트 마스크에 해당 우선순위영역의 비트마스크 값을 "1"로 기록한다. 그리고, 각 I/O 버스 컨트롤러(125, 135, 145)는 토큰(320)을 수신하게 되면, 비트마스크를 서로 비교하여 다른 모듈이 자신의 입출력 이벤트보다 우선순위가 높은지 여부를 판단한다. 만약, 자신의 입출력 이벤트의 우선순위가 가장 높은 경우, 해당 I/O 버스 컨트롤러는 이벤트 버스(160)를 점유하여 해당 입출력 이벤트를 이벤트 버스(160)를 통해 메인 버스 컨트롤부(115)로 전송한다. 그리고, 해당 I/O 버스 컨트롤러는 해당 비트 마스크를 '0'으로 클리어하고, 토큰(320)을 데이지 체인을 따라 다음 I/O 버스 컨트롤러로 전송한다.
반면, 자신의 입출력 이벤트의 우선순위가 가장 높은 것이 아닌 경우, 해당 I/O 버스 컨트롤러는 데이지 체인을 따라 다음 I/O 버스 컨트롤러로 토큰(320)을 전송한다.
예를 들어, 제1 I/O 버스 컨트롤러(125)의 비트 마스크는 '00100000'이고, 제2 I/O 버스 컨트롤러(135)의 비트 마스크는 '10000010'이고, 제3 I/O 버스 컨트롤러(115)의 비트 마스크는 '00000001'인 경우를 가정한다.
그러면, 최초 데이지 체인을 순환할 때, 제2 I/O 버스 컨트롤러(135)의 비트 마스크가 우선순위가 가장 높으므로, 제2 I/O 버스 컨트롤러(135)가 우선순위 1에 해당되는 입출력 이벤트를 메인 버스 컨트롤러(115)로 전송한다.
1번의 데이지 체인 순환이 종료되면, 제1 I/O 버스 컨트롤러(125)의 비트 마스크는 '00100000'이고, 제2 I/O 버스 컨트롤러(135)의 비트 마스크는 '00000010'이고, 제3 I/O 버스 컨트롤러(115)의 비트 마스크는 '00000001'가 된다. 2번째 데이지 체인 순환시에는 제1 I/O 버스 컨트롤러(125)가 먼저 우선순위가 3인 입출력 이벤트를 메인 버스 컨트롤러(115)로 전송하고, 그다음 제2 I/O 버스 컨트롤러(135)가 우선순위가 7인 입출력 이벤트를 메인 버스 컨트롤러(115)로 전송하며, 마지막으로 제3 I/O 버스 컨트롤러(145)가 우선순위가 8인 입출력 이벤트를 메인 버스 컨트롤러(115)로 전송하게 된다.
따라서, 상기의 가정의 경우, 2번은 데이지 체인 순환을 통해 모든 입출력 이벤트의 전송이 완료되게 된다.
이와 같이, 토큰(320)의 비트 마스크에 표시된 우선순위를 기반으로 하여, 이벤트 버스(160)는 통신이 제어되게 된다. 또한, 토큰(320)은 I/O 버스 컨트롤러들을 하나씩 거쳐감으로써, 다수의 I/O 버스 컨트롤러들이 충돌없이 이벤트 버스(160)를 이용하여 통신할 수 있게 된다.
본 실시예에서는, I/O 모듈가 3개인 것으로 설명하였으나 이는 설명의 편의를 위한 것이며, I/O 모듈의 개수는 적어도 1개 이상이 될 수 있음은 물론이다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 논리연산 제어장치 110 : 메인 제어부
120 : 제1 I/O 모듈 130 : 제2 I/O 모듈
140 : 제3 I/O 모듈

Claims (8)

  1. 논리 연산을 수행하는 메인 제어부;
    데이터를 입출력하는 적어도 하나의 I/O 모듈;
    상기 메인 제어부 및 상기 적어도 하나의 I/O 모듈의 통신 경로가 되고, 상기 메인 제어부에 의해 통신이 제어되는 제1 버스; 및
    상기 메인 제어부 및 상기 적어도 하나의 I/O 모듈의 통신 경로가 되고, 상기 적어도 하나의 I/O 모듈에 의해 제어되는 제2 버스;를 포함하고,
    상기 적어도 하나의 I/O 모듈은,
    우선순위 정보가 포함된 토큰(Token)을 이용하여 상기 제2 버스를 통한 상기 메인 제어부와의 통신 여부를 결정하는 것을 특징으로 하는 논리연산 제어장치.
  2. 제1항에 있어서,
    상기 적어도 하나의 I/O 모듈 각각을 상기 제1 버스 및 상기 제2 버스와 연결하고, 상기 적어도 하나의 I/O 모듈 각각과 상기 제1 버스 간의 통신 및 상기 적어도 하나의 I/O 모듈 각각과 상기 제2 버스 간의 통신을 제어하는 적어도 하나의 I/O 버스 컨트롤러;를 더 포함하는 것을 특징으로 하는 논리연산 제어장치.
  3. 제2항에 있어서,
    상기 I/O 버스 컨트롤러 각각은,
    데이터를 상기 I/O 모듈의 프로토콜에 맞게 변형하여 송수신하는 입출력 인터페이스부;
    상기 제1버스 또는 상기 제2버스를 통해 송수신되는 데이터를 인코딩 및 디코딩하는 버스 제어부;
    상기 I/O 모듈에 이벤트가 발생된 경우, 입출력 이벤트를 생성하는 이벤트 생성부; 및
    상기 버스 제어부 및 상기 이벤트 생성부에서 송수신되는 데이터를 버스 프로토콜에 맞게 변형하여 송수신하는 버스 인터페이스부;를 포함하는 것을 특징으로 하는 논리연산 제어장치.
  4. 제3항에 있어서,
    상기 이벤트 생성부는,
    상기 제2 버스를 통해 상기 생성된 입출력 이벤트를 상기 버스 제어부로 전송하는 것을 특징으로 하는 논리연산 제어장치.
  5. 제1항에 있어서,
    상기 메인 제어부를 상기 제1 버스 및 상기 제2 버스와 연결하고, 상기 메인 제어부와 상기 제1 버스 간의 통신 및 상기 메인 제어부와 상기 제2 버스 간의 통신을 제어하는 메인 버스 컨트롤러;를 더 포함하는 것을 특징으로 하는 논리연산 제어장치.
  6. 제5항에 있어서,
    상기 메인 버스 컨트롤러는,
    데이터를 상기 메인 제어부의 프로토콜에 맞게 변형하여 송수신하는 메인 인터페이스부;
    상기 제1 버스 또는 상기 제2 버스를 통해 송수신되는 데이터를 인코딩 및 디코딩하는 버스 제어부;
    상기 I/O 버스 컨트롤러로부터 수신된 입출력 이벤트를 우선순위에 따라 정렬하여 상기 메인 제어부로 전송하는 이벤트 핸들러; 및
    상기 버스 제어부 및 상기 이벤트 핸들러에서 송수신되는 데이터를 버스 프로토콜에 맞게 변형하여 송수신하는 버스 인터페이스부;를 포함하는 것을 특징으로 하는 논리연산 제어장치.
  7. 제6항에 있어서,
    상기 이벤트 핸들러는,
    상기 제2 버스를 통해 상기 I/O 버스 제어부로부터 상기 입출력 이벤트를 수신하는 것을 특징으로 하는 논리연산 제어장치.
  8. 삭제
KR1020110131343A 2011-12-08 2011-12-08 다수의 버스를 이용하는 논리연산 제어장치 KR101275640B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110131343A KR101275640B1 (ko) 2011-12-08 2011-12-08 다수의 버스를 이용하는 논리연산 제어장치
PCT/KR2012/003163 WO2013085121A1 (ko) 2011-12-08 2012-04-25 다수의 버스를 이용하는 논리연산 제어장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110131343A KR101275640B1 (ko) 2011-12-08 2011-12-08 다수의 버스를 이용하는 논리연산 제어장치

Publications (1)

Publication Number Publication Date
KR101275640B1 true KR101275640B1 (ko) 2013-06-17

Family

ID=48574455

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110131343A KR101275640B1 (ko) 2011-12-08 2011-12-08 다수의 버스를 이용하는 논리연산 제어장치

Country Status (2)

Country Link
KR (1) KR101275640B1 (ko)
WO (1) WO2013085121A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116760659B (zh) * 2023-08-11 2023-11-14 浙江国利信安科技有限公司 可编程逻辑控制器及其数据通信方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010049508A (ja) * 2008-08-22 2010-03-04 Koyo Electronics Ind Co Ltd 複数バスの選択方式およびこの方式を備えたプログラマブルコントローラ

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0830577A (ja) * 1994-07-15 1996-02-02 Mitsubishi Electric Corp Simdプロセッサ
JPH08204740A (ja) * 1995-01-20 1996-08-09 Nec Corp データ伝送方法およびデータ伝送装置
KR0179868B1 (ko) * 1996-02-26 1999-05-15 이종수 프로그래머블 로직 콘트롤러의 모듈간 데이타 송수신장치 및 방법
KR100451374B1 (ko) * 2002-06-08 2004-10-06 엘지산전 주식회사 병렬 버스를 사용하는 백플레인의 통신 고속화 장치 및신뢰성 향상 방법
JP4836811B2 (ja) * 2007-01-26 2011-12-14 株式会社東芝 パフォーマンスモニタ装置および情報処理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010049508A (ja) * 2008-08-22 2010-03-04 Koyo Electronics Ind Co Ltd 複数バスの選択方式およびこの方式を備えたプログラマブルコントローラ

Also Published As

Publication number Publication date
WO2013085121A1 (ko) 2013-06-13

Similar Documents

Publication Publication Date Title
CN107707447B (zh) 一种基于EtherCAT的从站***及控制方法
JPH02156750A (ja) 多重アクセス制御方法および該方法を実施する多重アクセス制御システム
US20130179622A1 (en) System and method for transmitting and receiving data using an industrial expansion bus
TWI605696B (zh) 具有經實體傳輸路徑作邏輯式多頻道通訊作用以在晶片間作串聯式資料傳輸的通訊裝置
JP2012064021A (ja) 通信システム、マスター装置、及びスレーブ装置、並びに通信方法
CN112269749B (zh) I2c通信***
JP6629361B2 (ja) プログラマブルロジックコントローラ
JP2014021887A (ja) Ioユニットと通信を行う数値制御装置
KR101179431B1 (ko) 이더캣 네트워크 시스템 및 이의 운용 방법
KR101275640B1 (ko) 다수의 버스를 이용하는 논리연산 제어장치
US6675245B1 (en) Apparatus and method for providing round-robin arbitration
US20230161719A1 (en) Processing of process data
JP6271113B1 (ja) 時刻同期スレーブ装置及び通信制御方法
US11489697B2 (en) Transmission of data on a local bus
US8427955B2 (en) Method and apparatus for transferring data
WO2023128479A1 (ko) 메모리 제어 시스템 및 메모리 제어 기능을 갖는 디스플레이 디바이스
KR102589284B1 (ko) 고속통신기반의 전력변환장치용 제어장치
US11184194B2 (en) Distributed processing of process data
CN220210465U (zh) 一种多电机传动***的内部通信装置及***
Dheere Universal computer interfaces
JP2010204932A (ja) Plcシステム
WO2009136731A2 (ko) 클럭 발생 방법, 확인자 부여 방법 및 데이터 입수 방법
JP2019004400A (ja) アドレス設定装置およびシステム
JP2014067328A (ja) 2線式シリアルバス装置及びその制御方法
JPH10254821A (ja) データ転送装置およびデータ転送方法

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
FPAY Annual fee payment

Payment date: 20151224

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170608

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180710

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190611

Year of fee payment: 7