마이크로프로세서이중화를통한실시간 … · 레지스터...
TRANSCRIPT
工學碩士學位 請求論文
마이크로프로세서 이중화를 통한 실시간
연속 제어 시스템
A Real Time Continuous Control System
using Duplex Microprocessors
년 월2011 2
仁荷大學校 工學大學院
( )電子工學科 情報工學專攻
鄭 明 燾
工學碩士學位 請求論文
마이크로프로세서 이중화를 통한 실시간
연속 제어 시스템
A Real Time Continuous Control System
using Duplex Microprocessors
년 월2011 2
指導敎授 崔 相 昉
이 을 으로 함論文 工學碩士學位 論文 提出
仁荷大學校 工學大學院
( )電子工學科 情報工學專攻
鄭 明 燾
이 을 의 으로 함論文 鄭明燾 碩士學位論文 提出
년 월2011 2
主審
副審
委員
- i -
요 약
마이크로프로세서 는 년 트랜지스터의 발명으로부터 반(Microprocessor) 1947
도체 역사가 시작한 이래로 눈부신 발전을 거듭한 결과 오늘날 현대사회에서
없어서는 안 될 중요한 반도체 제품으로 자리 매김 하고 있다 이처럼 각 산업
분야에서 강력한 성능과 엄청난 집적도로 마이크로프로세서는 발전을 거듭하고
있으나 불행하게도 원인을 알 수 없는 환경 즉 외부에서 강한 전기적 노이즈를
받거나 정전기 등에 의해 마이크로프로세서는 오동작을 하고 있고 이런 문제들
을 해결하기 위해 지금까지도 리셋 및 이중화 기술을 통해 부분적으로 해결하
고 있는 실정이다 그러나 리셋은 시스템을 중간에 중단해야 하므로 이로 인한
경제적 손실 및 납기 지연 또는 신체적 안전성에 심각한 문제를 일으킬수 있게
된다 이중화 기술 또한 이중화에 따른 시스템의 비용 상승과 이중화로 전환하
기 위한 절체 시간 때문에 연속제어에 문제가 있었다 이에 본 연구에서는 이중
화를 하기 위해서 필연적으로 발생되는 리셋에 의한 재가동 때문에 발생하는
문제 등을 기술적으로 해결하고 별도의 절체 시간이 필요 없이 연속제어가 가
능한 이중화 시스템을 제안 하였다
마이컴의 오동작을 해결하기 위한 기술 중에서 현재 널리 사용되고 있는 마
이컴의 리셋의 종류와 이에 따른 기술들을 연구 하였고 마이컴의 오동작을 해
결하기 위한 출원된 특허기술에 대한 동향을 연구 하였다 또한 마이컴 이중화
에 대한 관련 학문들을 연구논문들을 통해 살펴보았다 그러나 이런 기술들은
어느 특정한 한정된 분야에서만 개선 효과가 있을 뿐 각 분야에서 다양하게 적
용할 수 있는 근본적인 해결책이 되지 못하였다
이에 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 연구를 통ldquo rdquo
하여 시스템 외부에 강한 전기적 노이즈나 정전기 등에 의해 마이크로프로세서
가 불특정하게 오동작이 발생되었을 때 별도의 절체시간이 필요 없이 이중화된
마이크로프로세서에서 오동작이 발생된 시점으로부터 잔여 작업에 대해 즉시
위임받아 연속작업이 가능하도록 구성 하였고 이를 실험을 통하여 증명 하였다
본 실험에서는 개를 일정한 시간동안 점등되면서 오른쪽으로 연속으로LED 4
하도록 하다가 임의의 시간에 제어중인 마이크로프로세서의 전원을 인Shfting
위적으로 하여 마이크로프로세서의 동작을 정지하게 하였다 제어중인 마이Off
- ii -
크로프로세서가 정지되는 순간 즉 절체 시간이 필요 없이 이중화 되어 대기중
인 여분의 마이크로프로세서에서 동작 정지된 순간부터 즉시 작업을 위임받아
잔여 작업을 수행하도록 하였다 이에 가 동일한 시간 간격으로 되다가 LED ON
마이크로프로세서 전원이 되어도 의 점등 쉬프트는 시간의 지연 없이Off LED
일정하게 구동되는 것을 실험 결과를 통하여 증명하였다
이에 본 논문에서 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스ldquo
템 을 통하여 마이크로프로세서의 오동작 장애 해결에 대한 강력한 대안으로rdquo
모든 제어 시스템에서 쉽게 적용할 수 있으며 특히 구현 비용이 상승되지 않고
이중화로 인한 제품의 크기가 커지지 않은 상태로 적용할 수 있으므로 다양한
적용이 가능한 기술이 될 것으로 기대 된다
- iii -
목 차
요 약 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot i
목 차 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot ii
서 론1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 1
고장허용 시스템의 제어방법2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
리셋 로직21 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
리셋의 전기적 특성22 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 4
전원 투입 리셋23 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 5
외부 리셋24 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
저전압 검출 리셋25 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
재덱 리셋27 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 8
워치독 리셋28 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 9
마이컴 오동작 방지 장치3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
31 비정상적인 출력을 차단하는 장치 및 그 방법 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
마이컴 리셋 장치32 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 16
고가용성 구현을 위한 이중화 시스템4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 19
분산 제어시스템 이중화 구성방안에 대한 검토41 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 19
동적 이중화 시스템42 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 21
네트워크상에서 프로세서 이중화 시스템43 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 23
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 25
시스템 알고리즘 순서도51 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 25
시스템 구조52 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
전원부53 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
클럭 발생부54 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
- iv -
마이컴 부55 A middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 29
마이컴 감지부56 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
출력 선택부57 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 34
시스템 가동용 프로그램58 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 35
실험 결과 및 분석6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 44
결론7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 46
참고 문헌 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 48
- v -
그림 목차
그림 의 리셋 로직 회로2-1 ATMEGA128 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
그림 전원투입리셋 타이밍도2-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
그림 외부리셋 회로도2-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
그림 외부리셋 타이밍도2-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
그림 저전압 검출 리셋 타이밍도2-5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
그림 워치독 타이머의 레지스터 구성도2-6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 9
그림 워치독 타이머의 타이밍도2-7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 10
그림 워치독 타이머를 하기 위한 프로그램2-8 Off middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 12
그림 워치독 타이머를 하기 위한 프로그램2-9 On middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 12
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
그림 리셋 감지부3-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 14
그림 지연부3-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 14
그림 버퍼부3-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 15
그림 마이컴 구성도3-5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 17
그림 이중화된 전송시스템 모델링4-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 21
그림 프로세서 이중화 시스템구조의 블록도4-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 23
그림 시스템 알고리즘 순서도5-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
그림 마이컴 이중화 블록도5-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
그림 전원부 회로도5-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
그림 클럭 발생부5-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
그림 마이컴 부5-5 A middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 29
그림 마이컴 감시부 회로도5-6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
그림 정상 마이컴에서 출력하는 파형5-7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
- vi -
그림 위치가 전위된 펄스 파형5-8 GND middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 31
그림 펄스 파형이 적분된 파형5-9 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 32
그림 출력 선택부 회로도5-10 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 34
그림 프로그램 용어선언5-11 1( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 36
그림 프로그램 상수 및 포트 정의5-12 2( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 36
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 37
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 37
그림 프로그램 타이머 초기화5-15 5( 0 ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 38
그림 프로그램 출력 포트 초기화5-16 6( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 38
그림 프로그램 하드웨어 초기화5-17 7( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 39
그림 프로그램 래치 딜레이5-18 8( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 40
그림 프로그램 순차 점등출력5-19 9(LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 42
그림 프로그램 타이머5-20 10( 0 ISR) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 43
그림 프로그램 메인 프로그램5-21 11( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 43
그림 마이컴의 정상유무를 위한 출력파형6-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 44
그림 출력 파형6-2 LED ONOFF SHIFT middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 45
- vii -
표 목차
표 레지스터2-1 MCUSCR middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 4
표 리셋의 전기적 특성2-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 5
표 의 의 용도2-3 JTAG TAP middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 8
표 워치독 타이머 에 따른2-4 WDP PRESCALER middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 11
표 3-1 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
표 3-2 특허출원 정보 마이컴 리셋장치( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 16
표 플립플롭 진리표5-1 S-R middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 32
표 출력 선택부 출력상태5-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 35
- 1 -
서 론1
마이크로프로세서 또는 마이컴 은 하나의(Microprocessor) (MicroComputer)
칩 내에 기억 연산 제어장치 등을 구비하고 기존의 범용 컴퓨터의 기능(Chip)
을 수행할 수 있도록 만들어진 다목적 프로그램이 가능한 대용량 논리회로로
일종의 중앙처리 장치이다 즉 컴퓨터의 산술논리 연산기 레지스터 프로 (ALU)
그램 카운터 명령 디코더 제어회로 등의 연산 장치와 제어 장치를 개의 작은 1
실리콘 칩에 모아놓은 처리장치를 말한다
반도체 역사는 년 트랜지스터의 발명으로 시작되어 그로부터 반도체 기1947
술의 눈부신 발전에 힘입어 마이크로프로세서도 성능과 가격과 크기 분야에서
년동안 상상을 초월하는 눈부신 발전을 거듭하고 있다 그러나 마40 이컴의 눈
부신 발전에도 불구하고 현재까지 해결하지 못하는 원초적인 문제가 있는데 그
것은 원인을 알 수 없고 예측이 불가능한 상태에서의 마이컴의 오동작이나 정
상적인 동작이 갑자기 불특정 부위에서 이유 없이 멈춰버리는 것이다 수많은
연구자들이 첨단장비를 동원하여 그 원인을 찾아보았으나 현재까지 근본적인
해결을 하지 못하고 그저 강력한 외부 노이즈 및 환경 등을 원인으로 추론하는
단계에서 진일보 하지 못하고 있다 마이컴의 오동작은 우리 실생활에서 커다란
불편과 또는 심각한 안전의 위협을 초래하고 있지만 현재 까지는 근본적인 문
제해결이 없는 상태에서 간접적 대책으로 대응하고 있는 실정이다 그 예로 최
근 사회적으로 상당한 이슈가 되어 관심이 고조되고 있는 것이 바로 자동차의
급발진 사고와 의료기기 등의 오작동으로 인한 환자들의 사망사고 등이 그 예
가 될 것이다
마이컴이 오동작이나 이상동작을 하였을 때 간접적 대책으로 전원을 하Off
여 리셋하기 위해 사용자에 의해 강제적으로 마이컴 외부의 회로와 스위치RC
를 이용하여 리셋을 시키거나 또는 마이컴 내부의 워치독을 이용하여 프로그램
적으로 워치독 을 실행하는 방법 또는 마이컴 외부에 워치독을 별(Watch Dog)
도로 설치하는 방법 즉 플립플롭 를 조합하여 구성하거나 리셋 전용 IC IC
을 사용하는 것과 같이 대부분 마이컴을 리셋 하는 방법으로 한정되고PST580
있다 이런 기술들은 마이컴의 오동작을 근본적으로 해결을 하지 못하고 다만
리셋을 통한 재부팅 수준에 머므르고 있다 또한 상기 방법들은 마이컴에 이상
- 2 -
동작이 발생하면 마이컴 자체를 리셋 시키므로 처음부터 다시 실행해야 하는
문제점을 안고 있다 즉 중요한 작업을 실행하는 제어기들이 현재까지 진행된
상태를 무시하고 처음단계로 되돌아가야 한다면 경제적 손실은 제외 하더라도
사용자의 생명의 안전까지도 위협하는 심각히 상황을 초래하기도 한다
이런 근본적 문제해결에는 우선적으로 마이컴 제조 관련 연구자 들이 근본적
으로 해결해야 하지만 본 연구에서는 간접적 대책의 일환 이지만 이에 대한 실
질적이고 실용적인 방안을 제시 하였다 그 방법은 마이컴을 이중화 하여 마이
컴이 연산과 실행과정에서 원인모를 이유 때문에 제어 불능 상태에 이르면 이
중화 된 여분의 대기된 마이컴이 곧바로 문제가 발생된 시점으로부터 문제를
일으킨 마이컴의 잔여 작업들을 수행하고 문제를 일으킨 마이컴은 작업이 이관
된 이중화한 마이컴으로부터 적정한 시점에 리셋을 하여 다시 이중화하여 마이
컴의 추가적인 이상동작을 대비하여 상호 보완적으로 대기시키는 방법을 제안
하였다 특히 이모든 것들이 실시간으로 통제하여 제어하는 것이 본 시스템의
특징이라 할 수 있다
본 논문에서는 다음과 같이 구성 되어 있다 장에서는 고장허용 시스템의 2
제어 방법에 대해 가장 보편적인 리셋 기술에 대해 소개한다 장에서는 특허 3
출원기술에 의한 마이컴 오동작 방지 장치에 대해 설명 하였다 장에서는 고 4
가가용성 구현을 위한 이중화 시스템에 대해 설명하였고 기존의 시스템 이중화
에 대한 다양한 기법에 대해 설명하였다 장에서는 본 연구에서 제안한 마이 5 ldquo
컴 이중화를 통한 실시간 연속 제어 시스템 에 대해 설계를 기초로 한 단계별rdquo
설명을 하였다 장에서는 본 연구에서 제안한 마이컴 이중화를 통한 실시간 6 ldquo
연속 제어 시스템 의 실험 결과 및 분석을 평가 하였고 마지막으로 본 논문의rdquo
결론을 맺는다
- 3 -
고장허용 시스템의 제어방법2
리셋 로직21
일반적인 마이컴의 리셋에 관련된 내부 회로는 그림 과 같으며 각각의 세2-1
부 설명은 다음과 같다
그림 의 리셋 로직 회로2-1 ATMEGA128
Figure 2-1 Reset Logic Circuit of ATMEGA128
리셋 입력이 액티브 되면 리셋 동작이 시작되며 병렬 포트가 즉시 디폴IO
트 값으로 출력된다 리셋 입력이 해제 되더라도 마이컴의 동작이 시작되기 까
- 4 -
지 전원전압 가 규정치에 도달하는 시간을 확보하기 위해 워치독 오실레이Vcc
터에 의한 시간지연이 주어지며 여기에 시스템 클록의 안정된 발진을 위하여
기동시간 만큼 시간 지연이 추가로 연장된다 이러한 내부 리셋(Start-up Time)
신호의 지연시간 은 모두 내부의 시간지연 카운터에 의하여 만들어 지며Tout
각 발진모드에 따른 시간지연 값은 퓨즈비트의 및 에 의하여SUT1~0 CKSEL0
선택된다 일반적인 마이컴의 시스템 리셋 소스는 파워온리셋 (Powr-on Reset)
외부리셋 워치독 리셋 부라운 리셋(External Reset) (Watchdog Reset)
재덱 와 같이 종이 있다 시스템에서 어떤(Brown-out Reset) (JTAG Reset) 5
원인에 의해 마이컴이 리셋 되었는지 알아보기 위해서는 SPECIAL FUNTION
레지스터 의 상태를 점검해보면 알수 있다 즉 레지스ldquoMCUCSRrdquo ldquoMCUCSRrdquo
터는 마이컴의 제어와 상태를 나타내는 레지스터로 리셋이 발생하면 해당하는
비트가 로 설정 되므로 어떤 유형의 리셋이 발생 했는지 필요에 따라 외부ldquo1rdquo
에서 검사할 수 있는 레지스터이다 각 비트별 레지스터의 용도는 표 MCUSCR
과 같다 비트 는 파워온리셋 플레그 로 사2-1 0 PORF (Power-on Reset Flag)
용되며 비트 는 외부리셋 플레그 로 사용된다 1 EXTRF (External Reset Flag) 2
비트 는 부라운 리셋 플레그 로 사용하고 비BORF (Brown-out Reset Flag) 3
트 는 워치독 플레그 로 사용한다 비트WDRF (Watchdog Reset Flag) 4 JTRF
는 재댁 플레그 로 사용된다(JTAG Reset Flag)
표 레지스터2-1 MCUSCR
Table 2-1 MCUSCR Register
리셋의 전기적 특성22
는 파워온 리셋에서 상승 임계전압이며 대표값은 이며 하강 임계전Vpot 14V
압은 이다 은 리셋의 임계전압이며 최소값은 이고 최대값은13V Vrst 02Vcc
이다 는 리셋에 필요한 최소펄스폭이며 이때 최소값은 이085Vcc Trst 15us
Bit 7 6 5 4 3 2 1 0
Name JTG - - JTRF WDRF BORF EXTRF PORF
- 5 -
다 는 부라운 리셋 임계전압으로 레벨이 일 경우 대표값은 이 Vbot BOD 1 26V
며 레벨이 일 경우는 대표값이 이다 는 부라운 리셋의 최소전BOD 0 40V Tbod
압이 걸리는 시간을 나타내며 레벨이 일 경우와 인 경우 모두의 대표값BOD 1 0
은 이다 는 부라운 리셋의 감지시 히스테리시스를 나타내며 값은20us Vhyst
이다 표 는 리셋관련 전기적 특성을 나타낸다100mV 2-2
표 리셋의 전기적 특성2-2
Table 2-2 Electrical Character of Reset
전원 투입 리셋23
전원이 인가되면 곧바로 마이컴을 리셋 시키고 전원전압이 에 도달하면 Vpot
시간지연 카운터의 동작에 따라 전원전압이 의 이상으로 된 이후에도 일정Vpot
한 시간동안 리셋을 유지한다 이후 정상적으로 작동하다가 인가전압 Vcc(5V)
가 전원투입 리셋의 임계값 보다 이하일(Power-on Reset Threshold (Vpot))
때 마이컴 내부에 위치한 리셋회로가 작동한다 인 경우에는 초기 ATMEGA128
에 전원이 에 도달하면 전원투입 리셋이 작동되고 정상적으로 작동되다14V
가 전원전압이 이하로 내려가도 전원투입 리셋이 작동된다 그림 는 리13V 2-2
셋핀을 에 접속한 상태에서 시작한 경우의 타이밍 도이다Vcc
- 6 -
그림 전원투입리셋 타이밍도 리셋핀을 에 접속한 상태2-2 ( Vcc )
Figure 2-2 Timing Diagram of Power on Reset
외부 리셋24
그림 은 외부리셋 회로도이며 외부에 스위치를 장착하여 사용자에 의해2-3
스위치를 누르게 되면 마이컴의 단자는 평소 로 되어 있다가Reset High(5V)
가 되고 최소 펄스폭 이상의 이 지속될 때 리셋이 작동하LOW (15us) Low Level
게 된다 이때 전해콘덴서는 전원투입 후 리셋단자에 일정시간 지연 후 작동하
기 위한 지연용 콘덴서이다
그림 외부리셋 회로도2-3
Figure 2-3 External Reset Circuit
외부리셋의 타이밍도는 그림 와 같으며 번 단자의 에2-4 20 PIN RESET 50ns
이상의 이 지속되어 입력되면 리셋이 발생한다 즉Low Level Active Low 5V
일때 되고 일때 되어 리셋 된다Disable GND Enable
SW1
RESET
R110Ω
VCC_5V
C110uF
RESET
- 7 -
그림 외부리셋 타이밍도2-4
Figure 2-4 Timing Diagram of External Reset
저전압 검출 리셋25 (Brown-Out Reset)
마이컴에 인가되는 인가전압 가 순간적으로 전압 이하Vcc(5V) Brown-out
또는 로 내려가서 이상 지속되면 마이컴의 오동작을 방지하기 위(26V 4V) 2us
해 마이컴을 리셋하게 되고 마이컴에 따라 전압은BOD(Brown-Out Detection)
별도로 설정하도록 되어 있다 마이컴 메이커에 따라 LVD(Low Voltage
라고도 한다 또한 전압 스파이크에 의한 오동작을 방지하기 위해 전압Detect)
검출에 히스테리시스를 적용하도록 되어 있다 즉 전압이 감소할때에는 Vbot-
이하로 될 때 리셋이 작동되고 전압이 증가 할때에는= Vbot - Vhyst 2
이상으로 될 때 리셋이 해제 된다 그림 는 저Vbot+= Vbot + Vhyst 2 2-5
전압 검출 리셋의 타이밍도 이다
그림 저전압 검출 리셋 타이밍도2-5
Figure 2-5 Timing Diagram of Brown out Detection
- 8 -
재덱 리셋26 (JTAG Reset)
은 논리 복잡도가 높고 복잡한 기능을 수행JTAG(Joint Test Action Group)
하는 과 같은 부품들을 시험하는 것이 너무 복잡하여 좀 더 체계적으로ASIC
시험을 할 수 있도록 해보자는 취지로 와 같은 데이터 전boundary scan test
송 포맷으로 컴퓨터와 반도체 소자를 연결하여 온칩 디버깅 불휘발성 메모리의
프로그래밍 테스트 등을 수행하는 인터페이스 기술로써 현재는 PCB IEEE
로 국제 표준 규약으로 되어 있다 이는 내부를 몇개의Standard 11491 ASIC
블록으로 나누고 각 블록의 경계에 직렬로 시험용 신호 패턴을 입력하고 블록
을 작동시킨 후 신호를 출력하여 검사하는 방법을 사용하여 내부 블록 ASIC
기능 시험을 수행 하여 부품의 양부를 판정하기 위한 표준 규약이다 은 JTAG
이며 은 레지스터 형식을 가지Boundary-Scan Cell Boundary-Scan Cell Shift
며 각 의 상태를 읽고 쓰는 것은 입출력 방식을 이용한다 은 Cell Serial JTAG
의 코어가 들어있는 의 외부 단자중 단자를CPU CPLD TAP(Test Access Port)
사용하고 그 단자들의 용도는 표 과 같다 은 사용자가 시스템2-3 JTAG Reset
의 하드웨어적 디버깅을 으로 시행할 때 필요에 따라 레지스터를JTAG Reset
설정하여 발생시킬 수 있다
표 의 의 용도2-3 JTAG TAP
Table 2-3 Usage of JTAG TAP
TDI Test Data In
TDO Test Data Out
TMS Test Mode Select
TCK Test Clock
TRST Test Reset
- 9 -
워치독 리셋28 (Watchdog Reset)
워치독 타이머에서 지정된 주기 이상의 시간이 경과 되었을때 사용되는 리셋
으로 지정된 주기가 완료되기 전에 소프트웨어 명령으로 그 값을 클리어 시켜
주지 않으면 마이컴을 리셋시켜 궁국적으로 시스템이 정상적으로 동작하고 있
는지 감시하고 오동작을 방지하여 마이컴의 신뢰성을 향상시키는 기술이다
을 기준하여 상의 워치독 타이머의 레지스터 구성도는AVR128 DATA SHEET
그림 와 같다2-6
그림 워치독 타이머의 레지스터 구성도2-6
Figure 2-6 Configuration of Watchdog Timer Register
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
마이크로프로세서 이중화를 통한 실시간
연속 제어 시스템
A Real Time Continuous Control System
using Duplex Microprocessors
년 월2011 2
指導敎授 崔 相 昉
이 을 으로 함論文 工學碩士學位 論文 提出
仁荷大學校 工學大學院
( )電子工學科 情報工學專攻
鄭 明 燾
이 을 의 으로 함論文 鄭明燾 碩士學位論文 提出
년 월2011 2
主審
副審
委員
- i -
요 약
마이크로프로세서 는 년 트랜지스터의 발명으로부터 반(Microprocessor) 1947
도체 역사가 시작한 이래로 눈부신 발전을 거듭한 결과 오늘날 현대사회에서
없어서는 안 될 중요한 반도체 제품으로 자리 매김 하고 있다 이처럼 각 산업
분야에서 강력한 성능과 엄청난 집적도로 마이크로프로세서는 발전을 거듭하고
있으나 불행하게도 원인을 알 수 없는 환경 즉 외부에서 강한 전기적 노이즈를
받거나 정전기 등에 의해 마이크로프로세서는 오동작을 하고 있고 이런 문제들
을 해결하기 위해 지금까지도 리셋 및 이중화 기술을 통해 부분적으로 해결하
고 있는 실정이다 그러나 리셋은 시스템을 중간에 중단해야 하므로 이로 인한
경제적 손실 및 납기 지연 또는 신체적 안전성에 심각한 문제를 일으킬수 있게
된다 이중화 기술 또한 이중화에 따른 시스템의 비용 상승과 이중화로 전환하
기 위한 절체 시간 때문에 연속제어에 문제가 있었다 이에 본 연구에서는 이중
화를 하기 위해서 필연적으로 발생되는 리셋에 의한 재가동 때문에 발생하는
문제 등을 기술적으로 해결하고 별도의 절체 시간이 필요 없이 연속제어가 가
능한 이중화 시스템을 제안 하였다
마이컴의 오동작을 해결하기 위한 기술 중에서 현재 널리 사용되고 있는 마
이컴의 리셋의 종류와 이에 따른 기술들을 연구 하였고 마이컴의 오동작을 해
결하기 위한 출원된 특허기술에 대한 동향을 연구 하였다 또한 마이컴 이중화
에 대한 관련 학문들을 연구논문들을 통해 살펴보았다 그러나 이런 기술들은
어느 특정한 한정된 분야에서만 개선 효과가 있을 뿐 각 분야에서 다양하게 적
용할 수 있는 근본적인 해결책이 되지 못하였다
이에 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 연구를 통ldquo rdquo
하여 시스템 외부에 강한 전기적 노이즈나 정전기 등에 의해 마이크로프로세서
가 불특정하게 오동작이 발생되었을 때 별도의 절체시간이 필요 없이 이중화된
마이크로프로세서에서 오동작이 발생된 시점으로부터 잔여 작업에 대해 즉시
위임받아 연속작업이 가능하도록 구성 하였고 이를 실험을 통하여 증명 하였다
본 실험에서는 개를 일정한 시간동안 점등되면서 오른쪽으로 연속으로LED 4
하도록 하다가 임의의 시간에 제어중인 마이크로프로세서의 전원을 인Shfting
위적으로 하여 마이크로프로세서의 동작을 정지하게 하였다 제어중인 마이Off
- ii -
크로프로세서가 정지되는 순간 즉 절체 시간이 필요 없이 이중화 되어 대기중
인 여분의 마이크로프로세서에서 동작 정지된 순간부터 즉시 작업을 위임받아
잔여 작업을 수행하도록 하였다 이에 가 동일한 시간 간격으로 되다가 LED ON
마이크로프로세서 전원이 되어도 의 점등 쉬프트는 시간의 지연 없이Off LED
일정하게 구동되는 것을 실험 결과를 통하여 증명하였다
이에 본 논문에서 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스ldquo
템 을 통하여 마이크로프로세서의 오동작 장애 해결에 대한 강력한 대안으로rdquo
모든 제어 시스템에서 쉽게 적용할 수 있으며 특히 구현 비용이 상승되지 않고
이중화로 인한 제품의 크기가 커지지 않은 상태로 적용할 수 있으므로 다양한
적용이 가능한 기술이 될 것으로 기대 된다
- iii -
목 차
요 약 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot i
목 차 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot ii
서 론1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 1
고장허용 시스템의 제어방법2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
리셋 로직21 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
리셋의 전기적 특성22 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 4
전원 투입 리셋23 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 5
외부 리셋24 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
저전압 검출 리셋25 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
재덱 리셋27 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 8
워치독 리셋28 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 9
마이컴 오동작 방지 장치3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
31 비정상적인 출력을 차단하는 장치 및 그 방법 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
마이컴 리셋 장치32 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 16
고가용성 구현을 위한 이중화 시스템4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 19
분산 제어시스템 이중화 구성방안에 대한 검토41 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 19
동적 이중화 시스템42 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 21
네트워크상에서 프로세서 이중화 시스템43 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 23
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 25
시스템 알고리즘 순서도51 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 25
시스템 구조52 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
전원부53 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
클럭 발생부54 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
- iv -
마이컴 부55 A middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 29
마이컴 감지부56 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
출력 선택부57 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 34
시스템 가동용 프로그램58 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 35
실험 결과 및 분석6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 44
결론7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 46
참고 문헌 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 48
- v -
그림 목차
그림 의 리셋 로직 회로2-1 ATMEGA128 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
그림 전원투입리셋 타이밍도2-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
그림 외부리셋 회로도2-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
그림 외부리셋 타이밍도2-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
그림 저전압 검출 리셋 타이밍도2-5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
그림 워치독 타이머의 레지스터 구성도2-6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 9
그림 워치독 타이머의 타이밍도2-7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 10
그림 워치독 타이머를 하기 위한 프로그램2-8 Off middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 12
그림 워치독 타이머를 하기 위한 프로그램2-9 On middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 12
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
그림 리셋 감지부3-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 14
그림 지연부3-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 14
그림 버퍼부3-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 15
그림 마이컴 구성도3-5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 17
그림 이중화된 전송시스템 모델링4-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 21
그림 프로세서 이중화 시스템구조의 블록도4-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 23
그림 시스템 알고리즘 순서도5-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
그림 마이컴 이중화 블록도5-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
그림 전원부 회로도5-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
그림 클럭 발생부5-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
그림 마이컴 부5-5 A middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 29
그림 마이컴 감시부 회로도5-6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
그림 정상 마이컴에서 출력하는 파형5-7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
- vi -
그림 위치가 전위된 펄스 파형5-8 GND middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 31
그림 펄스 파형이 적분된 파형5-9 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 32
그림 출력 선택부 회로도5-10 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 34
그림 프로그램 용어선언5-11 1( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 36
그림 프로그램 상수 및 포트 정의5-12 2( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 36
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 37
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 37
그림 프로그램 타이머 초기화5-15 5( 0 ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 38
그림 프로그램 출력 포트 초기화5-16 6( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 38
그림 프로그램 하드웨어 초기화5-17 7( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 39
그림 프로그램 래치 딜레이5-18 8( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 40
그림 프로그램 순차 점등출력5-19 9(LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 42
그림 프로그램 타이머5-20 10( 0 ISR) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 43
그림 프로그램 메인 프로그램5-21 11( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 43
그림 마이컴의 정상유무를 위한 출력파형6-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 44
그림 출력 파형6-2 LED ONOFF SHIFT middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 45
- vii -
표 목차
표 레지스터2-1 MCUSCR middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 4
표 리셋의 전기적 특성2-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 5
표 의 의 용도2-3 JTAG TAP middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 8
표 워치독 타이머 에 따른2-4 WDP PRESCALER middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 11
표 3-1 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
표 3-2 특허출원 정보 마이컴 리셋장치( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 16
표 플립플롭 진리표5-1 S-R middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 32
표 출력 선택부 출력상태5-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 35
- 1 -
서 론1
마이크로프로세서 또는 마이컴 은 하나의(Microprocessor) (MicroComputer)
칩 내에 기억 연산 제어장치 등을 구비하고 기존의 범용 컴퓨터의 기능(Chip)
을 수행할 수 있도록 만들어진 다목적 프로그램이 가능한 대용량 논리회로로
일종의 중앙처리 장치이다 즉 컴퓨터의 산술논리 연산기 레지스터 프로 (ALU)
그램 카운터 명령 디코더 제어회로 등의 연산 장치와 제어 장치를 개의 작은 1
실리콘 칩에 모아놓은 처리장치를 말한다
반도체 역사는 년 트랜지스터의 발명으로 시작되어 그로부터 반도체 기1947
술의 눈부신 발전에 힘입어 마이크로프로세서도 성능과 가격과 크기 분야에서
년동안 상상을 초월하는 눈부신 발전을 거듭하고 있다 그러나 마40 이컴의 눈
부신 발전에도 불구하고 현재까지 해결하지 못하는 원초적인 문제가 있는데 그
것은 원인을 알 수 없고 예측이 불가능한 상태에서의 마이컴의 오동작이나 정
상적인 동작이 갑자기 불특정 부위에서 이유 없이 멈춰버리는 것이다 수많은
연구자들이 첨단장비를 동원하여 그 원인을 찾아보았으나 현재까지 근본적인
해결을 하지 못하고 그저 강력한 외부 노이즈 및 환경 등을 원인으로 추론하는
단계에서 진일보 하지 못하고 있다 마이컴의 오동작은 우리 실생활에서 커다란
불편과 또는 심각한 안전의 위협을 초래하고 있지만 현재 까지는 근본적인 문
제해결이 없는 상태에서 간접적 대책으로 대응하고 있는 실정이다 그 예로 최
근 사회적으로 상당한 이슈가 되어 관심이 고조되고 있는 것이 바로 자동차의
급발진 사고와 의료기기 등의 오작동으로 인한 환자들의 사망사고 등이 그 예
가 될 것이다
마이컴이 오동작이나 이상동작을 하였을 때 간접적 대책으로 전원을 하Off
여 리셋하기 위해 사용자에 의해 강제적으로 마이컴 외부의 회로와 스위치RC
를 이용하여 리셋을 시키거나 또는 마이컴 내부의 워치독을 이용하여 프로그램
적으로 워치독 을 실행하는 방법 또는 마이컴 외부에 워치독을 별(Watch Dog)
도로 설치하는 방법 즉 플립플롭 를 조합하여 구성하거나 리셋 전용 IC IC
을 사용하는 것과 같이 대부분 마이컴을 리셋 하는 방법으로 한정되고PST580
있다 이런 기술들은 마이컴의 오동작을 근본적으로 해결을 하지 못하고 다만
리셋을 통한 재부팅 수준에 머므르고 있다 또한 상기 방법들은 마이컴에 이상
- 2 -
동작이 발생하면 마이컴 자체를 리셋 시키므로 처음부터 다시 실행해야 하는
문제점을 안고 있다 즉 중요한 작업을 실행하는 제어기들이 현재까지 진행된
상태를 무시하고 처음단계로 되돌아가야 한다면 경제적 손실은 제외 하더라도
사용자의 생명의 안전까지도 위협하는 심각히 상황을 초래하기도 한다
이런 근본적 문제해결에는 우선적으로 마이컴 제조 관련 연구자 들이 근본적
으로 해결해야 하지만 본 연구에서는 간접적 대책의 일환 이지만 이에 대한 실
질적이고 실용적인 방안을 제시 하였다 그 방법은 마이컴을 이중화 하여 마이
컴이 연산과 실행과정에서 원인모를 이유 때문에 제어 불능 상태에 이르면 이
중화 된 여분의 대기된 마이컴이 곧바로 문제가 발생된 시점으로부터 문제를
일으킨 마이컴의 잔여 작업들을 수행하고 문제를 일으킨 마이컴은 작업이 이관
된 이중화한 마이컴으로부터 적정한 시점에 리셋을 하여 다시 이중화하여 마이
컴의 추가적인 이상동작을 대비하여 상호 보완적으로 대기시키는 방법을 제안
하였다 특히 이모든 것들이 실시간으로 통제하여 제어하는 것이 본 시스템의
특징이라 할 수 있다
본 논문에서는 다음과 같이 구성 되어 있다 장에서는 고장허용 시스템의 2
제어 방법에 대해 가장 보편적인 리셋 기술에 대해 소개한다 장에서는 특허 3
출원기술에 의한 마이컴 오동작 방지 장치에 대해 설명 하였다 장에서는 고 4
가가용성 구현을 위한 이중화 시스템에 대해 설명하였고 기존의 시스템 이중화
에 대한 다양한 기법에 대해 설명하였다 장에서는 본 연구에서 제안한 마이 5 ldquo
컴 이중화를 통한 실시간 연속 제어 시스템 에 대해 설계를 기초로 한 단계별rdquo
설명을 하였다 장에서는 본 연구에서 제안한 마이컴 이중화를 통한 실시간 6 ldquo
연속 제어 시스템 의 실험 결과 및 분석을 평가 하였고 마지막으로 본 논문의rdquo
결론을 맺는다
- 3 -
고장허용 시스템의 제어방법2
리셋 로직21
일반적인 마이컴의 리셋에 관련된 내부 회로는 그림 과 같으며 각각의 세2-1
부 설명은 다음과 같다
그림 의 리셋 로직 회로2-1 ATMEGA128
Figure 2-1 Reset Logic Circuit of ATMEGA128
리셋 입력이 액티브 되면 리셋 동작이 시작되며 병렬 포트가 즉시 디폴IO
트 값으로 출력된다 리셋 입력이 해제 되더라도 마이컴의 동작이 시작되기 까
- 4 -
지 전원전압 가 규정치에 도달하는 시간을 확보하기 위해 워치독 오실레이Vcc
터에 의한 시간지연이 주어지며 여기에 시스템 클록의 안정된 발진을 위하여
기동시간 만큼 시간 지연이 추가로 연장된다 이러한 내부 리셋(Start-up Time)
신호의 지연시간 은 모두 내부의 시간지연 카운터에 의하여 만들어 지며Tout
각 발진모드에 따른 시간지연 값은 퓨즈비트의 및 에 의하여SUT1~0 CKSEL0
선택된다 일반적인 마이컴의 시스템 리셋 소스는 파워온리셋 (Powr-on Reset)
외부리셋 워치독 리셋 부라운 리셋(External Reset) (Watchdog Reset)
재덱 와 같이 종이 있다 시스템에서 어떤(Brown-out Reset) (JTAG Reset) 5
원인에 의해 마이컴이 리셋 되었는지 알아보기 위해서는 SPECIAL FUNTION
레지스터 의 상태를 점검해보면 알수 있다 즉 레지스ldquoMCUCSRrdquo ldquoMCUCSRrdquo
터는 마이컴의 제어와 상태를 나타내는 레지스터로 리셋이 발생하면 해당하는
비트가 로 설정 되므로 어떤 유형의 리셋이 발생 했는지 필요에 따라 외부ldquo1rdquo
에서 검사할 수 있는 레지스터이다 각 비트별 레지스터의 용도는 표 MCUSCR
과 같다 비트 는 파워온리셋 플레그 로 사2-1 0 PORF (Power-on Reset Flag)
용되며 비트 는 외부리셋 플레그 로 사용된다 1 EXTRF (External Reset Flag) 2
비트 는 부라운 리셋 플레그 로 사용하고 비BORF (Brown-out Reset Flag) 3
트 는 워치독 플레그 로 사용한다 비트WDRF (Watchdog Reset Flag) 4 JTRF
는 재댁 플레그 로 사용된다(JTAG Reset Flag)
표 레지스터2-1 MCUSCR
Table 2-1 MCUSCR Register
리셋의 전기적 특성22
는 파워온 리셋에서 상승 임계전압이며 대표값은 이며 하강 임계전Vpot 14V
압은 이다 은 리셋의 임계전압이며 최소값은 이고 최대값은13V Vrst 02Vcc
이다 는 리셋에 필요한 최소펄스폭이며 이때 최소값은 이085Vcc Trst 15us
Bit 7 6 5 4 3 2 1 0
Name JTG - - JTRF WDRF BORF EXTRF PORF
- 5 -
다 는 부라운 리셋 임계전압으로 레벨이 일 경우 대표값은 이 Vbot BOD 1 26V
며 레벨이 일 경우는 대표값이 이다 는 부라운 리셋의 최소전BOD 0 40V Tbod
압이 걸리는 시간을 나타내며 레벨이 일 경우와 인 경우 모두의 대표값BOD 1 0
은 이다 는 부라운 리셋의 감지시 히스테리시스를 나타내며 값은20us Vhyst
이다 표 는 리셋관련 전기적 특성을 나타낸다100mV 2-2
표 리셋의 전기적 특성2-2
Table 2-2 Electrical Character of Reset
전원 투입 리셋23
전원이 인가되면 곧바로 마이컴을 리셋 시키고 전원전압이 에 도달하면 Vpot
시간지연 카운터의 동작에 따라 전원전압이 의 이상으로 된 이후에도 일정Vpot
한 시간동안 리셋을 유지한다 이후 정상적으로 작동하다가 인가전압 Vcc(5V)
가 전원투입 리셋의 임계값 보다 이하일(Power-on Reset Threshold (Vpot))
때 마이컴 내부에 위치한 리셋회로가 작동한다 인 경우에는 초기 ATMEGA128
에 전원이 에 도달하면 전원투입 리셋이 작동되고 정상적으로 작동되다14V
가 전원전압이 이하로 내려가도 전원투입 리셋이 작동된다 그림 는 리13V 2-2
셋핀을 에 접속한 상태에서 시작한 경우의 타이밍 도이다Vcc
- 6 -
그림 전원투입리셋 타이밍도 리셋핀을 에 접속한 상태2-2 ( Vcc )
Figure 2-2 Timing Diagram of Power on Reset
외부 리셋24
그림 은 외부리셋 회로도이며 외부에 스위치를 장착하여 사용자에 의해2-3
스위치를 누르게 되면 마이컴의 단자는 평소 로 되어 있다가Reset High(5V)
가 되고 최소 펄스폭 이상의 이 지속될 때 리셋이 작동하LOW (15us) Low Level
게 된다 이때 전해콘덴서는 전원투입 후 리셋단자에 일정시간 지연 후 작동하
기 위한 지연용 콘덴서이다
그림 외부리셋 회로도2-3
Figure 2-3 External Reset Circuit
외부리셋의 타이밍도는 그림 와 같으며 번 단자의 에2-4 20 PIN RESET 50ns
이상의 이 지속되어 입력되면 리셋이 발생한다 즉Low Level Active Low 5V
일때 되고 일때 되어 리셋 된다Disable GND Enable
SW1
RESET
R110Ω
VCC_5V
C110uF
RESET
- 7 -
그림 외부리셋 타이밍도2-4
Figure 2-4 Timing Diagram of External Reset
저전압 검출 리셋25 (Brown-Out Reset)
마이컴에 인가되는 인가전압 가 순간적으로 전압 이하Vcc(5V) Brown-out
또는 로 내려가서 이상 지속되면 마이컴의 오동작을 방지하기 위(26V 4V) 2us
해 마이컴을 리셋하게 되고 마이컴에 따라 전압은BOD(Brown-Out Detection)
별도로 설정하도록 되어 있다 마이컴 메이커에 따라 LVD(Low Voltage
라고도 한다 또한 전압 스파이크에 의한 오동작을 방지하기 위해 전압Detect)
검출에 히스테리시스를 적용하도록 되어 있다 즉 전압이 감소할때에는 Vbot-
이하로 될 때 리셋이 작동되고 전압이 증가 할때에는= Vbot - Vhyst 2
이상으로 될 때 리셋이 해제 된다 그림 는 저Vbot+= Vbot + Vhyst 2 2-5
전압 검출 리셋의 타이밍도 이다
그림 저전압 검출 리셋 타이밍도2-5
Figure 2-5 Timing Diagram of Brown out Detection
- 8 -
재덱 리셋26 (JTAG Reset)
은 논리 복잡도가 높고 복잡한 기능을 수행JTAG(Joint Test Action Group)
하는 과 같은 부품들을 시험하는 것이 너무 복잡하여 좀 더 체계적으로ASIC
시험을 할 수 있도록 해보자는 취지로 와 같은 데이터 전boundary scan test
송 포맷으로 컴퓨터와 반도체 소자를 연결하여 온칩 디버깅 불휘발성 메모리의
프로그래밍 테스트 등을 수행하는 인터페이스 기술로써 현재는 PCB IEEE
로 국제 표준 규약으로 되어 있다 이는 내부를 몇개의Standard 11491 ASIC
블록으로 나누고 각 블록의 경계에 직렬로 시험용 신호 패턴을 입력하고 블록
을 작동시킨 후 신호를 출력하여 검사하는 방법을 사용하여 내부 블록 ASIC
기능 시험을 수행 하여 부품의 양부를 판정하기 위한 표준 규약이다 은 JTAG
이며 은 레지스터 형식을 가지Boundary-Scan Cell Boundary-Scan Cell Shift
며 각 의 상태를 읽고 쓰는 것은 입출력 방식을 이용한다 은 Cell Serial JTAG
의 코어가 들어있는 의 외부 단자중 단자를CPU CPLD TAP(Test Access Port)
사용하고 그 단자들의 용도는 표 과 같다 은 사용자가 시스템2-3 JTAG Reset
의 하드웨어적 디버깅을 으로 시행할 때 필요에 따라 레지스터를JTAG Reset
설정하여 발생시킬 수 있다
표 의 의 용도2-3 JTAG TAP
Table 2-3 Usage of JTAG TAP
TDI Test Data In
TDO Test Data Out
TMS Test Mode Select
TCK Test Clock
TRST Test Reset
- 9 -
워치독 리셋28 (Watchdog Reset)
워치독 타이머에서 지정된 주기 이상의 시간이 경과 되었을때 사용되는 리셋
으로 지정된 주기가 완료되기 전에 소프트웨어 명령으로 그 값을 클리어 시켜
주지 않으면 마이컴을 리셋시켜 궁국적으로 시스템이 정상적으로 동작하고 있
는지 감시하고 오동작을 방지하여 마이컴의 신뢰성을 향상시키는 기술이다
을 기준하여 상의 워치독 타이머의 레지스터 구성도는AVR128 DATA SHEET
그림 와 같다2-6
그림 워치독 타이머의 레지스터 구성도2-6
Figure 2-6 Configuration of Watchdog Timer Register
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
이 을 의 으로 함論文 鄭明燾 碩士學位論文 提出
년 월2011 2
主審
副審
委員
- i -
요 약
마이크로프로세서 는 년 트랜지스터의 발명으로부터 반(Microprocessor) 1947
도체 역사가 시작한 이래로 눈부신 발전을 거듭한 결과 오늘날 현대사회에서
없어서는 안 될 중요한 반도체 제품으로 자리 매김 하고 있다 이처럼 각 산업
분야에서 강력한 성능과 엄청난 집적도로 마이크로프로세서는 발전을 거듭하고
있으나 불행하게도 원인을 알 수 없는 환경 즉 외부에서 강한 전기적 노이즈를
받거나 정전기 등에 의해 마이크로프로세서는 오동작을 하고 있고 이런 문제들
을 해결하기 위해 지금까지도 리셋 및 이중화 기술을 통해 부분적으로 해결하
고 있는 실정이다 그러나 리셋은 시스템을 중간에 중단해야 하므로 이로 인한
경제적 손실 및 납기 지연 또는 신체적 안전성에 심각한 문제를 일으킬수 있게
된다 이중화 기술 또한 이중화에 따른 시스템의 비용 상승과 이중화로 전환하
기 위한 절체 시간 때문에 연속제어에 문제가 있었다 이에 본 연구에서는 이중
화를 하기 위해서 필연적으로 발생되는 리셋에 의한 재가동 때문에 발생하는
문제 등을 기술적으로 해결하고 별도의 절체 시간이 필요 없이 연속제어가 가
능한 이중화 시스템을 제안 하였다
마이컴의 오동작을 해결하기 위한 기술 중에서 현재 널리 사용되고 있는 마
이컴의 리셋의 종류와 이에 따른 기술들을 연구 하였고 마이컴의 오동작을 해
결하기 위한 출원된 특허기술에 대한 동향을 연구 하였다 또한 마이컴 이중화
에 대한 관련 학문들을 연구논문들을 통해 살펴보았다 그러나 이런 기술들은
어느 특정한 한정된 분야에서만 개선 효과가 있을 뿐 각 분야에서 다양하게 적
용할 수 있는 근본적인 해결책이 되지 못하였다
이에 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 연구를 통ldquo rdquo
하여 시스템 외부에 강한 전기적 노이즈나 정전기 등에 의해 마이크로프로세서
가 불특정하게 오동작이 발생되었을 때 별도의 절체시간이 필요 없이 이중화된
마이크로프로세서에서 오동작이 발생된 시점으로부터 잔여 작업에 대해 즉시
위임받아 연속작업이 가능하도록 구성 하였고 이를 실험을 통하여 증명 하였다
본 실험에서는 개를 일정한 시간동안 점등되면서 오른쪽으로 연속으로LED 4
하도록 하다가 임의의 시간에 제어중인 마이크로프로세서의 전원을 인Shfting
위적으로 하여 마이크로프로세서의 동작을 정지하게 하였다 제어중인 마이Off
- ii -
크로프로세서가 정지되는 순간 즉 절체 시간이 필요 없이 이중화 되어 대기중
인 여분의 마이크로프로세서에서 동작 정지된 순간부터 즉시 작업을 위임받아
잔여 작업을 수행하도록 하였다 이에 가 동일한 시간 간격으로 되다가 LED ON
마이크로프로세서 전원이 되어도 의 점등 쉬프트는 시간의 지연 없이Off LED
일정하게 구동되는 것을 실험 결과를 통하여 증명하였다
이에 본 논문에서 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스ldquo
템 을 통하여 마이크로프로세서의 오동작 장애 해결에 대한 강력한 대안으로rdquo
모든 제어 시스템에서 쉽게 적용할 수 있으며 특히 구현 비용이 상승되지 않고
이중화로 인한 제품의 크기가 커지지 않은 상태로 적용할 수 있으므로 다양한
적용이 가능한 기술이 될 것으로 기대 된다
- iii -
목 차
요 약 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot i
목 차 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot ii
서 론1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 1
고장허용 시스템의 제어방법2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
리셋 로직21 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
리셋의 전기적 특성22 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 4
전원 투입 리셋23 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 5
외부 리셋24 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
저전압 검출 리셋25 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
재덱 리셋27 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 8
워치독 리셋28 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 9
마이컴 오동작 방지 장치3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
31 비정상적인 출력을 차단하는 장치 및 그 방법 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
마이컴 리셋 장치32 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 16
고가용성 구현을 위한 이중화 시스템4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 19
분산 제어시스템 이중화 구성방안에 대한 검토41 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 19
동적 이중화 시스템42 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 21
네트워크상에서 프로세서 이중화 시스템43 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 23
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 25
시스템 알고리즘 순서도51 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 25
시스템 구조52 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
전원부53 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
클럭 발생부54 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
- iv -
마이컴 부55 A middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 29
마이컴 감지부56 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
출력 선택부57 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 34
시스템 가동용 프로그램58 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 35
실험 결과 및 분석6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 44
결론7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 46
참고 문헌 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 48
- v -
그림 목차
그림 의 리셋 로직 회로2-1 ATMEGA128 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
그림 전원투입리셋 타이밍도2-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
그림 외부리셋 회로도2-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
그림 외부리셋 타이밍도2-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
그림 저전압 검출 리셋 타이밍도2-5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
그림 워치독 타이머의 레지스터 구성도2-6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 9
그림 워치독 타이머의 타이밍도2-7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 10
그림 워치독 타이머를 하기 위한 프로그램2-8 Off middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 12
그림 워치독 타이머를 하기 위한 프로그램2-9 On middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 12
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
그림 리셋 감지부3-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 14
그림 지연부3-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 14
그림 버퍼부3-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 15
그림 마이컴 구성도3-5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 17
그림 이중화된 전송시스템 모델링4-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 21
그림 프로세서 이중화 시스템구조의 블록도4-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 23
그림 시스템 알고리즘 순서도5-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
그림 마이컴 이중화 블록도5-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
그림 전원부 회로도5-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
그림 클럭 발생부5-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
그림 마이컴 부5-5 A middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 29
그림 마이컴 감시부 회로도5-6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
그림 정상 마이컴에서 출력하는 파형5-7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
- vi -
그림 위치가 전위된 펄스 파형5-8 GND middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 31
그림 펄스 파형이 적분된 파형5-9 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 32
그림 출력 선택부 회로도5-10 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 34
그림 프로그램 용어선언5-11 1( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 36
그림 프로그램 상수 및 포트 정의5-12 2( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 36
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 37
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 37
그림 프로그램 타이머 초기화5-15 5( 0 ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 38
그림 프로그램 출력 포트 초기화5-16 6( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 38
그림 프로그램 하드웨어 초기화5-17 7( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 39
그림 프로그램 래치 딜레이5-18 8( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 40
그림 프로그램 순차 점등출력5-19 9(LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 42
그림 프로그램 타이머5-20 10( 0 ISR) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 43
그림 프로그램 메인 프로그램5-21 11( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 43
그림 마이컴의 정상유무를 위한 출력파형6-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 44
그림 출력 파형6-2 LED ONOFF SHIFT middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 45
- vii -
표 목차
표 레지스터2-1 MCUSCR middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 4
표 리셋의 전기적 특성2-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 5
표 의 의 용도2-3 JTAG TAP middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 8
표 워치독 타이머 에 따른2-4 WDP PRESCALER middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 11
표 3-1 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
표 3-2 특허출원 정보 마이컴 리셋장치( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 16
표 플립플롭 진리표5-1 S-R middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 32
표 출력 선택부 출력상태5-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 35
- 1 -
서 론1
마이크로프로세서 또는 마이컴 은 하나의(Microprocessor) (MicroComputer)
칩 내에 기억 연산 제어장치 등을 구비하고 기존의 범용 컴퓨터의 기능(Chip)
을 수행할 수 있도록 만들어진 다목적 프로그램이 가능한 대용량 논리회로로
일종의 중앙처리 장치이다 즉 컴퓨터의 산술논리 연산기 레지스터 프로 (ALU)
그램 카운터 명령 디코더 제어회로 등의 연산 장치와 제어 장치를 개의 작은 1
실리콘 칩에 모아놓은 처리장치를 말한다
반도체 역사는 년 트랜지스터의 발명으로 시작되어 그로부터 반도체 기1947
술의 눈부신 발전에 힘입어 마이크로프로세서도 성능과 가격과 크기 분야에서
년동안 상상을 초월하는 눈부신 발전을 거듭하고 있다 그러나 마40 이컴의 눈
부신 발전에도 불구하고 현재까지 해결하지 못하는 원초적인 문제가 있는데 그
것은 원인을 알 수 없고 예측이 불가능한 상태에서의 마이컴의 오동작이나 정
상적인 동작이 갑자기 불특정 부위에서 이유 없이 멈춰버리는 것이다 수많은
연구자들이 첨단장비를 동원하여 그 원인을 찾아보았으나 현재까지 근본적인
해결을 하지 못하고 그저 강력한 외부 노이즈 및 환경 등을 원인으로 추론하는
단계에서 진일보 하지 못하고 있다 마이컴의 오동작은 우리 실생활에서 커다란
불편과 또는 심각한 안전의 위협을 초래하고 있지만 현재 까지는 근본적인 문
제해결이 없는 상태에서 간접적 대책으로 대응하고 있는 실정이다 그 예로 최
근 사회적으로 상당한 이슈가 되어 관심이 고조되고 있는 것이 바로 자동차의
급발진 사고와 의료기기 등의 오작동으로 인한 환자들의 사망사고 등이 그 예
가 될 것이다
마이컴이 오동작이나 이상동작을 하였을 때 간접적 대책으로 전원을 하Off
여 리셋하기 위해 사용자에 의해 강제적으로 마이컴 외부의 회로와 스위치RC
를 이용하여 리셋을 시키거나 또는 마이컴 내부의 워치독을 이용하여 프로그램
적으로 워치독 을 실행하는 방법 또는 마이컴 외부에 워치독을 별(Watch Dog)
도로 설치하는 방법 즉 플립플롭 를 조합하여 구성하거나 리셋 전용 IC IC
을 사용하는 것과 같이 대부분 마이컴을 리셋 하는 방법으로 한정되고PST580
있다 이런 기술들은 마이컴의 오동작을 근본적으로 해결을 하지 못하고 다만
리셋을 통한 재부팅 수준에 머므르고 있다 또한 상기 방법들은 마이컴에 이상
- 2 -
동작이 발생하면 마이컴 자체를 리셋 시키므로 처음부터 다시 실행해야 하는
문제점을 안고 있다 즉 중요한 작업을 실행하는 제어기들이 현재까지 진행된
상태를 무시하고 처음단계로 되돌아가야 한다면 경제적 손실은 제외 하더라도
사용자의 생명의 안전까지도 위협하는 심각히 상황을 초래하기도 한다
이런 근본적 문제해결에는 우선적으로 마이컴 제조 관련 연구자 들이 근본적
으로 해결해야 하지만 본 연구에서는 간접적 대책의 일환 이지만 이에 대한 실
질적이고 실용적인 방안을 제시 하였다 그 방법은 마이컴을 이중화 하여 마이
컴이 연산과 실행과정에서 원인모를 이유 때문에 제어 불능 상태에 이르면 이
중화 된 여분의 대기된 마이컴이 곧바로 문제가 발생된 시점으로부터 문제를
일으킨 마이컴의 잔여 작업들을 수행하고 문제를 일으킨 마이컴은 작업이 이관
된 이중화한 마이컴으로부터 적정한 시점에 리셋을 하여 다시 이중화하여 마이
컴의 추가적인 이상동작을 대비하여 상호 보완적으로 대기시키는 방법을 제안
하였다 특히 이모든 것들이 실시간으로 통제하여 제어하는 것이 본 시스템의
특징이라 할 수 있다
본 논문에서는 다음과 같이 구성 되어 있다 장에서는 고장허용 시스템의 2
제어 방법에 대해 가장 보편적인 리셋 기술에 대해 소개한다 장에서는 특허 3
출원기술에 의한 마이컴 오동작 방지 장치에 대해 설명 하였다 장에서는 고 4
가가용성 구현을 위한 이중화 시스템에 대해 설명하였고 기존의 시스템 이중화
에 대한 다양한 기법에 대해 설명하였다 장에서는 본 연구에서 제안한 마이 5 ldquo
컴 이중화를 통한 실시간 연속 제어 시스템 에 대해 설계를 기초로 한 단계별rdquo
설명을 하였다 장에서는 본 연구에서 제안한 마이컴 이중화를 통한 실시간 6 ldquo
연속 제어 시스템 의 실험 결과 및 분석을 평가 하였고 마지막으로 본 논문의rdquo
결론을 맺는다
- 3 -
고장허용 시스템의 제어방법2
리셋 로직21
일반적인 마이컴의 리셋에 관련된 내부 회로는 그림 과 같으며 각각의 세2-1
부 설명은 다음과 같다
그림 의 리셋 로직 회로2-1 ATMEGA128
Figure 2-1 Reset Logic Circuit of ATMEGA128
리셋 입력이 액티브 되면 리셋 동작이 시작되며 병렬 포트가 즉시 디폴IO
트 값으로 출력된다 리셋 입력이 해제 되더라도 마이컴의 동작이 시작되기 까
- 4 -
지 전원전압 가 규정치에 도달하는 시간을 확보하기 위해 워치독 오실레이Vcc
터에 의한 시간지연이 주어지며 여기에 시스템 클록의 안정된 발진을 위하여
기동시간 만큼 시간 지연이 추가로 연장된다 이러한 내부 리셋(Start-up Time)
신호의 지연시간 은 모두 내부의 시간지연 카운터에 의하여 만들어 지며Tout
각 발진모드에 따른 시간지연 값은 퓨즈비트의 및 에 의하여SUT1~0 CKSEL0
선택된다 일반적인 마이컴의 시스템 리셋 소스는 파워온리셋 (Powr-on Reset)
외부리셋 워치독 리셋 부라운 리셋(External Reset) (Watchdog Reset)
재덱 와 같이 종이 있다 시스템에서 어떤(Brown-out Reset) (JTAG Reset) 5
원인에 의해 마이컴이 리셋 되었는지 알아보기 위해서는 SPECIAL FUNTION
레지스터 의 상태를 점검해보면 알수 있다 즉 레지스ldquoMCUCSRrdquo ldquoMCUCSRrdquo
터는 마이컴의 제어와 상태를 나타내는 레지스터로 리셋이 발생하면 해당하는
비트가 로 설정 되므로 어떤 유형의 리셋이 발생 했는지 필요에 따라 외부ldquo1rdquo
에서 검사할 수 있는 레지스터이다 각 비트별 레지스터의 용도는 표 MCUSCR
과 같다 비트 는 파워온리셋 플레그 로 사2-1 0 PORF (Power-on Reset Flag)
용되며 비트 는 외부리셋 플레그 로 사용된다 1 EXTRF (External Reset Flag) 2
비트 는 부라운 리셋 플레그 로 사용하고 비BORF (Brown-out Reset Flag) 3
트 는 워치독 플레그 로 사용한다 비트WDRF (Watchdog Reset Flag) 4 JTRF
는 재댁 플레그 로 사용된다(JTAG Reset Flag)
표 레지스터2-1 MCUSCR
Table 2-1 MCUSCR Register
리셋의 전기적 특성22
는 파워온 리셋에서 상승 임계전압이며 대표값은 이며 하강 임계전Vpot 14V
압은 이다 은 리셋의 임계전압이며 최소값은 이고 최대값은13V Vrst 02Vcc
이다 는 리셋에 필요한 최소펄스폭이며 이때 최소값은 이085Vcc Trst 15us
Bit 7 6 5 4 3 2 1 0
Name JTG - - JTRF WDRF BORF EXTRF PORF
- 5 -
다 는 부라운 리셋 임계전압으로 레벨이 일 경우 대표값은 이 Vbot BOD 1 26V
며 레벨이 일 경우는 대표값이 이다 는 부라운 리셋의 최소전BOD 0 40V Tbod
압이 걸리는 시간을 나타내며 레벨이 일 경우와 인 경우 모두의 대표값BOD 1 0
은 이다 는 부라운 리셋의 감지시 히스테리시스를 나타내며 값은20us Vhyst
이다 표 는 리셋관련 전기적 특성을 나타낸다100mV 2-2
표 리셋의 전기적 특성2-2
Table 2-2 Electrical Character of Reset
전원 투입 리셋23
전원이 인가되면 곧바로 마이컴을 리셋 시키고 전원전압이 에 도달하면 Vpot
시간지연 카운터의 동작에 따라 전원전압이 의 이상으로 된 이후에도 일정Vpot
한 시간동안 리셋을 유지한다 이후 정상적으로 작동하다가 인가전압 Vcc(5V)
가 전원투입 리셋의 임계값 보다 이하일(Power-on Reset Threshold (Vpot))
때 마이컴 내부에 위치한 리셋회로가 작동한다 인 경우에는 초기 ATMEGA128
에 전원이 에 도달하면 전원투입 리셋이 작동되고 정상적으로 작동되다14V
가 전원전압이 이하로 내려가도 전원투입 리셋이 작동된다 그림 는 리13V 2-2
셋핀을 에 접속한 상태에서 시작한 경우의 타이밍 도이다Vcc
- 6 -
그림 전원투입리셋 타이밍도 리셋핀을 에 접속한 상태2-2 ( Vcc )
Figure 2-2 Timing Diagram of Power on Reset
외부 리셋24
그림 은 외부리셋 회로도이며 외부에 스위치를 장착하여 사용자에 의해2-3
스위치를 누르게 되면 마이컴의 단자는 평소 로 되어 있다가Reset High(5V)
가 되고 최소 펄스폭 이상의 이 지속될 때 리셋이 작동하LOW (15us) Low Level
게 된다 이때 전해콘덴서는 전원투입 후 리셋단자에 일정시간 지연 후 작동하
기 위한 지연용 콘덴서이다
그림 외부리셋 회로도2-3
Figure 2-3 External Reset Circuit
외부리셋의 타이밍도는 그림 와 같으며 번 단자의 에2-4 20 PIN RESET 50ns
이상의 이 지속되어 입력되면 리셋이 발생한다 즉Low Level Active Low 5V
일때 되고 일때 되어 리셋 된다Disable GND Enable
SW1
RESET
R110Ω
VCC_5V
C110uF
RESET
- 7 -
그림 외부리셋 타이밍도2-4
Figure 2-4 Timing Diagram of External Reset
저전압 검출 리셋25 (Brown-Out Reset)
마이컴에 인가되는 인가전압 가 순간적으로 전압 이하Vcc(5V) Brown-out
또는 로 내려가서 이상 지속되면 마이컴의 오동작을 방지하기 위(26V 4V) 2us
해 마이컴을 리셋하게 되고 마이컴에 따라 전압은BOD(Brown-Out Detection)
별도로 설정하도록 되어 있다 마이컴 메이커에 따라 LVD(Low Voltage
라고도 한다 또한 전압 스파이크에 의한 오동작을 방지하기 위해 전압Detect)
검출에 히스테리시스를 적용하도록 되어 있다 즉 전압이 감소할때에는 Vbot-
이하로 될 때 리셋이 작동되고 전압이 증가 할때에는= Vbot - Vhyst 2
이상으로 될 때 리셋이 해제 된다 그림 는 저Vbot+= Vbot + Vhyst 2 2-5
전압 검출 리셋의 타이밍도 이다
그림 저전압 검출 리셋 타이밍도2-5
Figure 2-5 Timing Diagram of Brown out Detection
- 8 -
재덱 리셋26 (JTAG Reset)
은 논리 복잡도가 높고 복잡한 기능을 수행JTAG(Joint Test Action Group)
하는 과 같은 부품들을 시험하는 것이 너무 복잡하여 좀 더 체계적으로ASIC
시험을 할 수 있도록 해보자는 취지로 와 같은 데이터 전boundary scan test
송 포맷으로 컴퓨터와 반도체 소자를 연결하여 온칩 디버깅 불휘발성 메모리의
프로그래밍 테스트 등을 수행하는 인터페이스 기술로써 현재는 PCB IEEE
로 국제 표준 규약으로 되어 있다 이는 내부를 몇개의Standard 11491 ASIC
블록으로 나누고 각 블록의 경계에 직렬로 시험용 신호 패턴을 입력하고 블록
을 작동시킨 후 신호를 출력하여 검사하는 방법을 사용하여 내부 블록 ASIC
기능 시험을 수행 하여 부품의 양부를 판정하기 위한 표준 규약이다 은 JTAG
이며 은 레지스터 형식을 가지Boundary-Scan Cell Boundary-Scan Cell Shift
며 각 의 상태를 읽고 쓰는 것은 입출력 방식을 이용한다 은 Cell Serial JTAG
의 코어가 들어있는 의 외부 단자중 단자를CPU CPLD TAP(Test Access Port)
사용하고 그 단자들의 용도는 표 과 같다 은 사용자가 시스템2-3 JTAG Reset
의 하드웨어적 디버깅을 으로 시행할 때 필요에 따라 레지스터를JTAG Reset
설정하여 발생시킬 수 있다
표 의 의 용도2-3 JTAG TAP
Table 2-3 Usage of JTAG TAP
TDI Test Data In
TDO Test Data Out
TMS Test Mode Select
TCK Test Clock
TRST Test Reset
- 9 -
워치독 리셋28 (Watchdog Reset)
워치독 타이머에서 지정된 주기 이상의 시간이 경과 되었을때 사용되는 리셋
으로 지정된 주기가 완료되기 전에 소프트웨어 명령으로 그 값을 클리어 시켜
주지 않으면 마이컴을 리셋시켜 궁국적으로 시스템이 정상적으로 동작하고 있
는지 감시하고 오동작을 방지하여 마이컴의 신뢰성을 향상시키는 기술이다
을 기준하여 상의 워치독 타이머의 레지스터 구성도는AVR128 DATA SHEET
그림 와 같다2-6
그림 워치독 타이머의 레지스터 구성도2-6
Figure 2-6 Configuration of Watchdog Timer Register
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- i -
요 약
마이크로프로세서 는 년 트랜지스터의 발명으로부터 반(Microprocessor) 1947
도체 역사가 시작한 이래로 눈부신 발전을 거듭한 결과 오늘날 현대사회에서
없어서는 안 될 중요한 반도체 제품으로 자리 매김 하고 있다 이처럼 각 산업
분야에서 강력한 성능과 엄청난 집적도로 마이크로프로세서는 발전을 거듭하고
있으나 불행하게도 원인을 알 수 없는 환경 즉 외부에서 강한 전기적 노이즈를
받거나 정전기 등에 의해 마이크로프로세서는 오동작을 하고 있고 이런 문제들
을 해결하기 위해 지금까지도 리셋 및 이중화 기술을 통해 부분적으로 해결하
고 있는 실정이다 그러나 리셋은 시스템을 중간에 중단해야 하므로 이로 인한
경제적 손실 및 납기 지연 또는 신체적 안전성에 심각한 문제를 일으킬수 있게
된다 이중화 기술 또한 이중화에 따른 시스템의 비용 상승과 이중화로 전환하
기 위한 절체 시간 때문에 연속제어에 문제가 있었다 이에 본 연구에서는 이중
화를 하기 위해서 필연적으로 발생되는 리셋에 의한 재가동 때문에 발생하는
문제 등을 기술적으로 해결하고 별도의 절체 시간이 필요 없이 연속제어가 가
능한 이중화 시스템을 제안 하였다
마이컴의 오동작을 해결하기 위한 기술 중에서 현재 널리 사용되고 있는 마
이컴의 리셋의 종류와 이에 따른 기술들을 연구 하였고 마이컴의 오동작을 해
결하기 위한 출원된 특허기술에 대한 동향을 연구 하였다 또한 마이컴 이중화
에 대한 관련 학문들을 연구논문들을 통해 살펴보았다 그러나 이런 기술들은
어느 특정한 한정된 분야에서만 개선 효과가 있을 뿐 각 분야에서 다양하게 적
용할 수 있는 근본적인 해결책이 되지 못하였다
이에 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 연구를 통ldquo rdquo
하여 시스템 외부에 강한 전기적 노이즈나 정전기 등에 의해 마이크로프로세서
가 불특정하게 오동작이 발생되었을 때 별도의 절체시간이 필요 없이 이중화된
마이크로프로세서에서 오동작이 발생된 시점으로부터 잔여 작업에 대해 즉시
위임받아 연속작업이 가능하도록 구성 하였고 이를 실험을 통하여 증명 하였다
본 실험에서는 개를 일정한 시간동안 점등되면서 오른쪽으로 연속으로LED 4
하도록 하다가 임의의 시간에 제어중인 마이크로프로세서의 전원을 인Shfting
위적으로 하여 마이크로프로세서의 동작을 정지하게 하였다 제어중인 마이Off
- ii -
크로프로세서가 정지되는 순간 즉 절체 시간이 필요 없이 이중화 되어 대기중
인 여분의 마이크로프로세서에서 동작 정지된 순간부터 즉시 작업을 위임받아
잔여 작업을 수행하도록 하였다 이에 가 동일한 시간 간격으로 되다가 LED ON
마이크로프로세서 전원이 되어도 의 점등 쉬프트는 시간의 지연 없이Off LED
일정하게 구동되는 것을 실험 결과를 통하여 증명하였다
이에 본 논문에서 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스ldquo
템 을 통하여 마이크로프로세서의 오동작 장애 해결에 대한 강력한 대안으로rdquo
모든 제어 시스템에서 쉽게 적용할 수 있으며 특히 구현 비용이 상승되지 않고
이중화로 인한 제품의 크기가 커지지 않은 상태로 적용할 수 있으므로 다양한
적용이 가능한 기술이 될 것으로 기대 된다
- iii -
목 차
요 약 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot i
목 차 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot ii
서 론1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 1
고장허용 시스템의 제어방법2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
리셋 로직21 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
리셋의 전기적 특성22 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 4
전원 투입 리셋23 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 5
외부 리셋24 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
저전압 검출 리셋25 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
재덱 리셋27 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 8
워치독 리셋28 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 9
마이컴 오동작 방지 장치3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
31 비정상적인 출력을 차단하는 장치 및 그 방법 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
마이컴 리셋 장치32 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 16
고가용성 구현을 위한 이중화 시스템4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 19
분산 제어시스템 이중화 구성방안에 대한 검토41 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 19
동적 이중화 시스템42 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 21
네트워크상에서 프로세서 이중화 시스템43 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 23
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 25
시스템 알고리즘 순서도51 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 25
시스템 구조52 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
전원부53 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
클럭 발생부54 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
- iv -
마이컴 부55 A middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 29
마이컴 감지부56 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
출력 선택부57 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 34
시스템 가동용 프로그램58 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 35
실험 결과 및 분석6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 44
결론7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 46
참고 문헌 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 48
- v -
그림 목차
그림 의 리셋 로직 회로2-1 ATMEGA128 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
그림 전원투입리셋 타이밍도2-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
그림 외부리셋 회로도2-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
그림 외부리셋 타이밍도2-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
그림 저전압 검출 리셋 타이밍도2-5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
그림 워치독 타이머의 레지스터 구성도2-6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 9
그림 워치독 타이머의 타이밍도2-7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 10
그림 워치독 타이머를 하기 위한 프로그램2-8 Off middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 12
그림 워치독 타이머를 하기 위한 프로그램2-9 On middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 12
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
그림 리셋 감지부3-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 14
그림 지연부3-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 14
그림 버퍼부3-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 15
그림 마이컴 구성도3-5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 17
그림 이중화된 전송시스템 모델링4-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 21
그림 프로세서 이중화 시스템구조의 블록도4-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 23
그림 시스템 알고리즘 순서도5-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
그림 마이컴 이중화 블록도5-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
그림 전원부 회로도5-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
그림 클럭 발생부5-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
그림 마이컴 부5-5 A middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 29
그림 마이컴 감시부 회로도5-6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
그림 정상 마이컴에서 출력하는 파형5-7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
- vi -
그림 위치가 전위된 펄스 파형5-8 GND middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 31
그림 펄스 파형이 적분된 파형5-9 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 32
그림 출력 선택부 회로도5-10 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 34
그림 프로그램 용어선언5-11 1( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 36
그림 프로그램 상수 및 포트 정의5-12 2( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 36
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 37
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 37
그림 프로그램 타이머 초기화5-15 5( 0 ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 38
그림 프로그램 출력 포트 초기화5-16 6( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 38
그림 프로그램 하드웨어 초기화5-17 7( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 39
그림 프로그램 래치 딜레이5-18 8( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 40
그림 프로그램 순차 점등출력5-19 9(LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 42
그림 프로그램 타이머5-20 10( 0 ISR) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 43
그림 프로그램 메인 프로그램5-21 11( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 43
그림 마이컴의 정상유무를 위한 출력파형6-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 44
그림 출력 파형6-2 LED ONOFF SHIFT middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 45
- vii -
표 목차
표 레지스터2-1 MCUSCR middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 4
표 리셋의 전기적 특성2-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 5
표 의 의 용도2-3 JTAG TAP middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 8
표 워치독 타이머 에 따른2-4 WDP PRESCALER middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 11
표 3-1 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
표 3-2 특허출원 정보 마이컴 리셋장치( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 16
표 플립플롭 진리표5-1 S-R middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 32
표 출력 선택부 출력상태5-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 35
- 1 -
서 론1
마이크로프로세서 또는 마이컴 은 하나의(Microprocessor) (MicroComputer)
칩 내에 기억 연산 제어장치 등을 구비하고 기존의 범용 컴퓨터의 기능(Chip)
을 수행할 수 있도록 만들어진 다목적 프로그램이 가능한 대용량 논리회로로
일종의 중앙처리 장치이다 즉 컴퓨터의 산술논리 연산기 레지스터 프로 (ALU)
그램 카운터 명령 디코더 제어회로 등의 연산 장치와 제어 장치를 개의 작은 1
실리콘 칩에 모아놓은 처리장치를 말한다
반도체 역사는 년 트랜지스터의 발명으로 시작되어 그로부터 반도체 기1947
술의 눈부신 발전에 힘입어 마이크로프로세서도 성능과 가격과 크기 분야에서
년동안 상상을 초월하는 눈부신 발전을 거듭하고 있다 그러나 마40 이컴의 눈
부신 발전에도 불구하고 현재까지 해결하지 못하는 원초적인 문제가 있는데 그
것은 원인을 알 수 없고 예측이 불가능한 상태에서의 마이컴의 오동작이나 정
상적인 동작이 갑자기 불특정 부위에서 이유 없이 멈춰버리는 것이다 수많은
연구자들이 첨단장비를 동원하여 그 원인을 찾아보았으나 현재까지 근본적인
해결을 하지 못하고 그저 강력한 외부 노이즈 및 환경 등을 원인으로 추론하는
단계에서 진일보 하지 못하고 있다 마이컴의 오동작은 우리 실생활에서 커다란
불편과 또는 심각한 안전의 위협을 초래하고 있지만 현재 까지는 근본적인 문
제해결이 없는 상태에서 간접적 대책으로 대응하고 있는 실정이다 그 예로 최
근 사회적으로 상당한 이슈가 되어 관심이 고조되고 있는 것이 바로 자동차의
급발진 사고와 의료기기 등의 오작동으로 인한 환자들의 사망사고 등이 그 예
가 될 것이다
마이컴이 오동작이나 이상동작을 하였을 때 간접적 대책으로 전원을 하Off
여 리셋하기 위해 사용자에 의해 강제적으로 마이컴 외부의 회로와 스위치RC
를 이용하여 리셋을 시키거나 또는 마이컴 내부의 워치독을 이용하여 프로그램
적으로 워치독 을 실행하는 방법 또는 마이컴 외부에 워치독을 별(Watch Dog)
도로 설치하는 방법 즉 플립플롭 를 조합하여 구성하거나 리셋 전용 IC IC
을 사용하는 것과 같이 대부분 마이컴을 리셋 하는 방법으로 한정되고PST580
있다 이런 기술들은 마이컴의 오동작을 근본적으로 해결을 하지 못하고 다만
리셋을 통한 재부팅 수준에 머므르고 있다 또한 상기 방법들은 마이컴에 이상
- 2 -
동작이 발생하면 마이컴 자체를 리셋 시키므로 처음부터 다시 실행해야 하는
문제점을 안고 있다 즉 중요한 작업을 실행하는 제어기들이 현재까지 진행된
상태를 무시하고 처음단계로 되돌아가야 한다면 경제적 손실은 제외 하더라도
사용자의 생명의 안전까지도 위협하는 심각히 상황을 초래하기도 한다
이런 근본적 문제해결에는 우선적으로 마이컴 제조 관련 연구자 들이 근본적
으로 해결해야 하지만 본 연구에서는 간접적 대책의 일환 이지만 이에 대한 실
질적이고 실용적인 방안을 제시 하였다 그 방법은 마이컴을 이중화 하여 마이
컴이 연산과 실행과정에서 원인모를 이유 때문에 제어 불능 상태에 이르면 이
중화 된 여분의 대기된 마이컴이 곧바로 문제가 발생된 시점으로부터 문제를
일으킨 마이컴의 잔여 작업들을 수행하고 문제를 일으킨 마이컴은 작업이 이관
된 이중화한 마이컴으로부터 적정한 시점에 리셋을 하여 다시 이중화하여 마이
컴의 추가적인 이상동작을 대비하여 상호 보완적으로 대기시키는 방법을 제안
하였다 특히 이모든 것들이 실시간으로 통제하여 제어하는 것이 본 시스템의
특징이라 할 수 있다
본 논문에서는 다음과 같이 구성 되어 있다 장에서는 고장허용 시스템의 2
제어 방법에 대해 가장 보편적인 리셋 기술에 대해 소개한다 장에서는 특허 3
출원기술에 의한 마이컴 오동작 방지 장치에 대해 설명 하였다 장에서는 고 4
가가용성 구현을 위한 이중화 시스템에 대해 설명하였고 기존의 시스템 이중화
에 대한 다양한 기법에 대해 설명하였다 장에서는 본 연구에서 제안한 마이 5 ldquo
컴 이중화를 통한 실시간 연속 제어 시스템 에 대해 설계를 기초로 한 단계별rdquo
설명을 하였다 장에서는 본 연구에서 제안한 마이컴 이중화를 통한 실시간 6 ldquo
연속 제어 시스템 의 실험 결과 및 분석을 평가 하였고 마지막으로 본 논문의rdquo
결론을 맺는다
- 3 -
고장허용 시스템의 제어방법2
리셋 로직21
일반적인 마이컴의 리셋에 관련된 내부 회로는 그림 과 같으며 각각의 세2-1
부 설명은 다음과 같다
그림 의 리셋 로직 회로2-1 ATMEGA128
Figure 2-1 Reset Logic Circuit of ATMEGA128
리셋 입력이 액티브 되면 리셋 동작이 시작되며 병렬 포트가 즉시 디폴IO
트 값으로 출력된다 리셋 입력이 해제 되더라도 마이컴의 동작이 시작되기 까
- 4 -
지 전원전압 가 규정치에 도달하는 시간을 확보하기 위해 워치독 오실레이Vcc
터에 의한 시간지연이 주어지며 여기에 시스템 클록의 안정된 발진을 위하여
기동시간 만큼 시간 지연이 추가로 연장된다 이러한 내부 리셋(Start-up Time)
신호의 지연시간 은 모두 내부의 시간지연 카운터에 의하여 만들어 지며Tout
각 발진모드에 따른 시간지연 값은 퓨즈비트의 및 에 의하여SUT1~0 CKSEL0
선택된다 일반적인 마이컴의 시스템 리셋 소스는 파워온리셋 (Powr-on Reset)
외부리셋 워치독 리셋 부라운 리셋(External Reset) (Watchdog Reset)
재덱 와 같이 종이 있다 시스템에서 어떤(Brown-out Reset) (JTAG Reset) 5
원인에 의해 마이컴이 리셋 되었는지 알아보기 위해서는 SPECIAL FUNTION
레지스터 의 상태를 점검해보면 알수 있다 즉 레지스ldquoMCUCSRrdquo ldquoMCUCSRrdquo
터는 마이컴의 제어와 상태를 나타내는 레지스터로 리셋이 발생하면 해당하는
비트가 로 설정 되므로 어떤 유형의 리셋이 발생 했는지 필요에 따라 외부ldquo1rdquo
에서 검사할 수 있는 레지스터이다 각 비트별 레지스터의 용도는 표 MCUSCR
과 같다 비트 는 파워온리셋 플레그 로 사2-1 0 PORF (Power-on Reset Flag)
용되며 비트 는 외부리셋 플레그 로 사용된다 1 EXTRF (External Reset Flag) 2
비트 는 부라운 리셋 플레그 로 사용하고 비BORF (Brown-out Reset Flag) 3
트 는 워치독 플레그 로 사용한다 비트WDRF (Watchdog Reset Flag) 4 JTRF
는 재댁 플레그 로 사용된다(JTAG Reset Flag)
표 레지스터2-1 MCUSCR
Table 2-1 MCUSCR Register
리셋의 전기적 특성22
는 파워온 리셋에서 상승 임계전압이며 대표값은 이며 하강 임계전Vpot 14V
압은 이다 은 리셋의 임계전압이며 최소값은 이고 최대값은13V Vrst 02Vcc
이다 는 리셋에 필요한 최소펄스폭이며 이때 최소값은 이085Vcc Trst 15us
Bit 7 6 5 4 3 2 1 0
Name JTG - - JTRF WDRF BORF EXTRF PORF
- 5 -
다 는 부라운 리셋 임계전압으로 레벨이 일 경우 대표값은 이 Vbot BOD 1 26V
며 레벨이 일 경우는 대표값이 이다 는 부라운 리셋의 최소전BOD 0 40V Tbod
압이 걸리는 시간을 나타내며 레벨이 일 경우와 인 경우 모두의 대표값BOD 1 0
은 이다 는 부라운 리셋의 감지시 히스테리시스를 나타내며 값은20us Vhyst
이다 표 는 리셋관련 전기적 특성을 나타낸다100mV 2-2
표 리셋의 전기적 특성2-2
Table 2-2 Electrical Character of Reset
전원 투입 리셋23
전원이 인가되면 곧바로 마이컴을 리셋 시키고 전원전압이 에 도달하면 Vpot
시간지연 카운터의 동작에 따라 전원전압이 의 이상으로 된 이후에도 일정Vpot
한 시간동안 리셋을 유지한다 이후 정상적으로 작동하다가 인가전압 Vcc(5V)
가 전원투입 리셋의 임계값 보다 이하일(Power-on Reset Threshold (Vpot))
때 마이컴 내부에 위치한 리셋회로가 작동한다 인 경우에는 초기 ATMEGA128
에 전원이 에 도달하면 전원투입 리셋이 작동되고 정상적으로 작동되다14V
가 전원전압이 이하로 내려가도 전원투입 리셋이 작동된다 그림 는 리13V 2-2
셋핀을 에 접속한 상태에서 시작한 경우의 타이밍 도이다Vcc
- 6 -
그림 전원투입리셋 타이밍도 리셋핀을 에 접속한 상태2-2 ( Vcc )
Figure 2-2 Timing Diagram of Power on Reset
외부 리셋24
그림 은 외부리셋 회로도이며 외부에 스위치를 장착하여 사용자에 의해2-3
스위치를 누르게 되면 마이컴의 단자는 평소 로 되어 있다가Reset High(5V)
가 되고 최소 펄스폭 이상의 이 지속될 때 리셋이 작동하LOW (15us) Low Level
게 된다 이때 전해콘덴서는 전원투입 후 리셋단자에 일정시간 지연 후 작동하
기 위한 지연용 콘덴서이다
그림 외부리셋 회로도2-3
Figure 2-3 External Reset Circuit
외부리셋의 타이밍도는 그림 와 같으며 번 단자의 에2-4 20 PIN RESET 50ns
이상의 이 지속되어 입력되면 리셋이 발생한다 즉Low Level Active Low 5V
일때 되고 일때 되어 리셋 된다Disable GND Enable
SW1
RESET
R110Ω
VCC_5V
C110uF
RESET
- 7 -
그림 외부리셋 타이밍도2-4
Figure 2-4 Timing Diagram of External Reset
저전압 검출 리셋25 (Brown-Out Reset)
마이컴에 인가되는 인가전압 가 순간적으로 전압 이하Vcc(5V) Brown-out
또는 로 내려가서 이상 지속되면 마이컴의 오동작을 방지하기 위(26V 4V) 2us
해 마이컴을 리셋하게 되고 마이컴에 따라 전압은BOD(Brown-Out Detection)
별도로 설정하도록 되어 있다 마이컴 메이커에 따라 LVD(Low Voltage
라고도 한다 또한 전압 스파이크에 의한 오동작을 방지하기 위해 전압Detect)
검출에 히스테리시스를 적용하도록 되어 있다 즉 전압이 감소할때에는 Vbot-
이하로 될 때 리셋이 작동되고 전압이 증가 할때에는= Vbot - Vhyst 2
이상으로 될 때 리셋이 해제 된다 그림 는 저Vbot+= Vbot + Vhyst 2 2-5
전압 검출 리셋의 타이밍도 이다
그림 저전압 검출 리셋 타이밍도2-5
Figure 2-5 Timing Diagram of Brown out Detection
- 8 -
재덱 리셋26 (JTAG Reset)
은 논리 복잡도가 높고 복잡한 기능을 수행JTAG(Joint Test Action Group)
하는 과 같은 부품들을 시험하는 것이 너무 복잡하여 좀 더 체계적으로ASIC
시험을 할 수 있도록 해보자는 취지로 와 같은 데이터 전boundary scan test
송 포맷으로 컴퓨터와 반도체 소자를 연결하여 온칩 디버깅 불휘발성 메모리의
프로그래밍 테스트 등을 수행하는 인터페이스 기술로써 현재는 PCB IEEE
로 국제 표준 규약으로 되어 있다 이는 내부를 몇개의Standard 11491 ASIC
블록으로 나누고 각 블록의 경계에 직렬로 시험용 신호 패턴을 입력하고 블록
을 작동시킨 후 신호를 출력하여 검사하는 방법을 사용하여 내부 블록 ASIC
기능 시험을 수행 하여 부품의 양부를 판정하기 위한 표준 규약이다 은 JTAG
이며 은 레지스터 형식을 가지Boundary-Scan Cell Boundary-Scan Cell Shift
며 각 의 상태를 읽고 쓰는 것은 입출력 방식을 이용한다 은 Cell Serial JTAG
의 코어가 들어있는 의 외부 단자중 단자를CPU CPLD TAP(Test Access Port)
사용하고 그 단자들의 용도는 표 과 같다 은 사용자가 시스템2-3 JTAG Reset
의 하드웨어적 디버깅을 으로 시행할 때 필요에 따라 레지스터를JTAG Reset
설정하여 발생시킬 수 있다
표 의 의 용도2-3 JTAG TAP
Table 2-3 Usage of JTAG TAP
TDI Test Data In
TDO Test Data Out
TMS Test Mode Select
TCK Test Clock
TRST Test Reset
- 9 -
워치독 리셋28 (Watchdog Reset)
워치독 타이머에서 지정된 주기 이상의 시간이 경과 되었을때 사용되는 리셋
으로 지정된 주기가 완료되기 전에 소프트웨어 명령으로 그 값을 클리어 시켜
주지 않으면 마이컴을 리셋시켜 궁국적으로 시스템이 정상적으로 동작하고 있
는지 감시하고 오동작을 방지하여 마이컴의 신뢰성을 향상시키는 기술이다
을 기준하여 상의 워치독 타이머의 레지스터 구성도는AVR128 DATA SHEET
그림 와 같다2-6
그림 워치독 타이머의 레지스터 구성도2-6
Figure 2-6 Configuration of Watchdog Timer Register
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- ii -
크로프로세서가 정지되는 순간 즉 절체 시간이 필요 없이 이중화 되어 대기중
인 여분의 마이크로프로세서에서 동작 정지된 순간부터 즉시 작업을 위임받아
잔여 작업을 수행하도록 하였다 이에 가 동일한 시간 간격으로 되다가 LED ON
마이크로프로세서 전원이 되어도 의 점등 쉬프트는 시간의 지연 없이Off LED
일정하게 구동되는 것을 실험 결과를 통하여 증명하였다
이에 본 논문에서 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스ldquo
템 을 통하여 마이크로프로세서의 오동작 장애 해결에 대한 강력한 대안으로rdquo
모든 제어 시스템에서 쉽게 적용할 수 있으며 특히 구현 비용이 상승되지 않고
이중화로 인한 제품의 크기가 커지지 않은 상태로 적용할 수 있으므로 다양한
적용이 가능한 기술이 될 것으로 기대 된다
- iii -
목 차
요 약 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot i
목 차 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot ii
서 론1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 1
고장허용 시스템의 제어방법2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
리셋 로직21 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
리셋의 전기적 특성22 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 4
전원 투입 리셋23 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 5
외부 리셋24 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
저전압 검출 리셋25 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
재덱 리셋27 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 8
워치독 리셋28 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 9
마이컴 오동작 방지 장치3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
31 비정상적인 출력을 차단하는 장치 및 그 방법 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
마이컴 리셋 장치32 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 16
고가용성 구현을 위한 이중화 시스템4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 19
분산 제어시스템 이중화 구성방안에 대한 검토41 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 19
동적 이중화 시스템42 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 21
네트워크상에서 프로세서 이중화 시스템43 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 23
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 25
시스템 알고리즘 순서도51 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 25
시스템 구조52 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
전원부53 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
클럭 발생부54 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
- iv -
마이컴 부55 A middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 29
마이컴 감지부56 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
출력 선택부57 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 34
시스템 가동용 프로그램58 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 35
실험 결과 및 분석6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 44
결론7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 46
참고 문헌 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 48
- v -
그림 목차
그림 의 리셋 로직 회로2-1 ATMEGA128 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
그림 전원투입리셋 타이밍도2-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
그림 외부리셋 회로도2-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
그림 외부리셋 타이밍도2-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
그림 저전압 검출 리셋 타이밍도2-5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
그림 워치독 타이머의 레지스터 구성도2-6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 9
그림 워치독 타이머의 타이밍도2-7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 10
그림 워치독 타이머를 하기 위한 프로그램2-8 Off middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 12
그림 워치독 타이머를 하기 위한 프로그램2-9 On middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 12
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
그림 리셋 감지부3-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 14
그림 지연부3-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 14
그림 버퍼부3-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 15
그림 마이컴 구성도3-5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 17
그림 이중화된 전송시스템 모델링4-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 21
그림 프로세서 이중화 시스템구조의 블록도4-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 23
그림 시스템 알고리즘 순서도5-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
그림 마이컴 이중화 블록도5-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
그림 전원부 회로도5-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
그림 클럭 발생부5-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
그림 마이컴 부5-5 A middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 29
그림 마이컴 감시부 회로도5-6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
그림 정상 마이컴에서 출력하는 파형5-7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
- vi -
그림 위치가 전위된 펄스 파형5-8 GND middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 31
그림 펄스 파형이 적분된 파형5-9 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 32
그림 출력 선택부 회로도5-10 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 34
그림 프로그램 용어선언5-11 1( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 36
그림 프로그램 상수 및 포트 정의5-12 2( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 36
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 37
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 37
그림 프로그램 타이머 초기화5-15 5( 0 ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 38
그림 프로그램 출력 포트 초기화5-16 6( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 38
그림 프로그램 하드웨어 초기화5-17 7( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 39
그림 프로그램 래치 딜레이5-18 8( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 40
그림 프로그램 순차 점등출력5-19 9(LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 42
그림 프로그램 타이머5-20 10( 0 ISR) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 43
그림 프로그램 메인 프로그램5-21 11( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 43
그림 마이컴의 정상유무를 위한 출력파형6-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 44
그림 출력 파형6-2 LED ONOFF SHIFT middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 45
- vii -
표 목차
표 레지스터2-1 MCUSCR middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 4
표 리셋의 전기적 특성2-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 5
표 의 의 용도2-3 JTAG TAP middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 8
표 워치독 타이머 에 따른2-4 WDP PRESCALER middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 11
표 3-1 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
표 3-2 특허출원 정보 마이컴 리셋장치( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 16
표 플립플롭 진리표5-1 S-R middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 32
표 출력 선택부 출력상태5-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 35
- 1 -
서 론1
마이크로프로세서 또는 마이컴 은 하나의(Microprocessor) (MicroComputer)
칩 내에 기억 연산 제어장치 등을 구비하고 기존의 범용 컴퓨터의 기능(Chip)
을 수행할 수 있도록 만들어진 다목적 프로그램이 가능한 대용량 논리회로로
일종의 중앙처리 장치이다 즉 컴퓨터의 산술논리 연산기 레지스터 프로 (ALU)
그램 카운터 명령 디코더 제어회로 등의 연산 장치와 제어 장치를 개의 작은 1
실리콘 칩에 모아놓은 처리장치를 말한다
반도체 역사는 년 트랜지스터의 발명으로 시작되어 그로부터 반도체 기1947
술의 눈부신 발전에 힘입어 마이크로프로세서도 성능과 가격과 크기 분야에서
년동안 상상을 초월하는 눈부신 발전을 거듭하고 있다 그러나 마40 이컴의 눈
부신 발전에도 불구하고 현재까지 해결하지 못하는 원초적인 문제가 있는데 그
것은 원인을 알 수 없고 예측이 불가능한 상태에서의 마이컴의 오동작이나 정
상적인 동작이 갑자기 불특정 부위에서 이유 없이 멈춰버리는 것이다 수많은
연구자들이 첨단장비를 동원하여 그 원인을 찾아보았으나 현재까지 근본적인
해결을 하지 못하고 그저 강력한 외부 노이즈 및 환경 등을 원인으로 추론하는
단계에서 진일보 하지 못하고 있다 마이컴의 오동작은 우리 실생활에서 커다란
불편과 또는 심각한 안전의 위협을 초래하고 있지만 현재 까지는 근본적인 문
제해결이 없는 상태에서 간접적 대책으로 대응하고 있는 실정이다 그 예로 최
근 사회적으로 상당한 이슈가 되어 관심이 고조되고 있는 것이 바로 자동차의
급발진 사고와 의료기기 등의 오작동으로 인한 환자들의 사망사고 등이 그 예
가 될 것이다
마이컴이 오동작이나 이상동작을 하였을 때 간접적 대책으로 전원을 하Off
여 리셋하기 위해 사용자에 의해 강제적으로 마이컴 외부의 회로와 스위치RC
를 이용하여 리셋을 시키거나 또는 마이컴 내부의 워치독을 이용하여 프로그램
적으로 워치독 을 실행하는 방법 또는 마이컴 외부에 워치독을 별(Watch Dog)
도로 설치하는 방법 즉 플립플롭 를 조합하여 구성하거나 리셋 전용 IC IC
을 사용하는 것과 같이 대부분 마이컴을 리셋 하는 방법으로 한정되고PST580
있다 이런 기술들은 마이컴의 오동작을 근본적으로 해결을 하지 못하고 다만
리셋을 통한 재부팅 수준에 머므르고 있다 또한 상기 방법들은 마이컴에 이상
- 2 -
동작이 발생하면 마이컴 자체를 리셋 시키므로 처음부터 다시 실행해야 하는
문제점을 안고 있다 즉 중요한 작업을 실행하는 제어기들이 현재까지 진행된
상태를 무시하고 처음단계로 되돌아가야 한다면 경제적 손실은 제외 하더라도
사용자의 생명의 안전까지도 위협하는 심각히 상황을 초래하기도 한다
이런 근본적 문제해결에는 우선적으로 마이컴 제조 관련 연구자 들이 근본적
으로 해결해야 하지만 본 연구에서는 간접적 대책의 일환 이지만 이에 대한 실
질적이고 실용적인 방안을 제시 하였다 그 방법은 마이컴을 이중화 하여 마이
컴이 연산과 실행과정에서 원인모를 이유 때문에 제어 불능 상태에 이르면 이
중화 된 여분의 대기된 마이컴이 곧바로 문제가 발생된 시점으로부터 문제를
일으킨 마이컴의 잔여 작업들을 수행하고 문제를 일으킨 마이컴은 작업이 이관
된 이중화한 마이컴으로부터 적정한 시점에 리셋을 하여 다시 이중화하여 마이
컴의 추가적인 이상동작을 대비하여 상호 보완적으로 대기시키는 방법을 제안
하였다 특히 이모든 것들이 실시간으로 통제하여 제어하는 것이 본 시스템의
특징이라 할 수 있다
본 논문에서는 다음과 같이 구성 되어 있다 장에서는 고장허용 시스템의 2
제어 방법에 대해 가장 보편적인 리셋 기술에 대해 소개한다 장에서는 특허 3
출원기술에 의한 마이컴 오동작 방지 장치에 대해 설명 하였다 장에서는 고 4
가가용성 구현을 위한 이중화 시스템에 대해 설명하였고 기존의 시스템 이중화
에 대한 다양한 기법에 대해 설명하였다 장에서는 본 연구에서 제안한 마이 5 ldquo
컴 이중화를 통한 실시간 연속 제어 시스템 에 대해 설계를 기초로 한 단계별rdquo
설명을 하였다 장에서는 본 연구에서 제안한 마이컴 이중화를 통한 실시간 6 ldquo
연속 제어 시스템 의 실험 결과 및 분석을 평가 하였고 마지막으로 본 논문의rdquo
결론을 맺는다
- 3 -
고장허용 시스템의 제어방법2
리셋 로직21
일반적인 마이컴의 리셋에 관련된 내부 회로는 그림 과 같으며 각각의 세2-1
부 설명은 다음과 같다
그림 의 리셋 로직 회로2-1 ATMEGA128
Figure 2-1 Reset Logic Circuit of ATMEGA128
리셋 입력이 액티브 되면 리셋 동작이 시작되며 병렬 포트가 즉시 디폴IO
트 값으로 출력된다 리셋 입력이 해제 되더라도 마이컴의 동작이 시작되기 까
- 4 -
지 전원전압 가 규정치에 도달하는 시간을 확보하기 위해 워치독 오실레이Vcc
터에 의한 시간지연이 주어지며 여기에 시스템 클록의 안정된 발진을 위하여
기동시간 만큼 시간 지연이 추가로 연장된다 이러한 내부 리셋(Start-up Time)
신호의 지연시간 은 모두 내부의 시간지연 카운터에 의하여 만들어 지며Tout
각 발진모드에 따른 시간지연 값은 퓨즈비트의 및 에 의하여SUT1~0 CKSEL0
선택된다 일반적인 마이컴의 시스템 리셋 소스는 파워온리셋 (Powr-on Reset)
외부리셋 워치독 리셋 부라운 리셋(External Reset) (Watchdog Reset)
재덱 와 같이 종이 있다 시스템에서 어떤(Brown-out Reset) (JTAG Reset) 5
원인에 의해 마이컴이 리셋 되었는지 알아보기 위해서는 SPECIAL FUNTION
레지스터 의 상태를 점검해보면 알수 있다 즉 레지스ldquoMCUCSRrdquo ldquoMCUCSRrdquo
터는 마이컴의 제어와 상태를 나타내는 레지스터로 리셋이 발생하면 해당하는
비트가 로 설정 되므로 어떤 유형의 리셋이 발생 했는지 필요에 따라 외부ldquo1rdquo
에서 검사할 수 있는 레지스터이다 각 비트별 레지스터의 용도는 표 MCUSCR
과 같다 비트 는 파워온리셋 플레그 로 사2-1 0 PORF (Power-on Reset Flag)
용되며 비트 는 외부리셋 플레그 로 사용된다 1 EXTRF (External Reset Flag) 2
비트 는 부라운 리셋 플레그 로 사용하고 비BORF (Brown-out Reset Flag) 3
트 는 워치독 플레그 로 사용한다 비트WDRF (Watchdog Reset Flag) 4 JTRF
는 재댁 플레그 로 사용된다(JTAG Reset Flag)
표 레지스터2-1 MCUSCR
Table 2-1 MCUSCR Register
리셋의 전기적 특성22
는 파워온 리셋에서 상승 임계전압이며 대표값은 이며 하강 임계전Vpot 14V
압은 이다 은 리셋의 임계전압이며 최소값은 이고 최대값은13V Vrst 02Vcc
이다 는 리셋에 필요한 최소펄스폭이며 이때 최소값은 이085Vcc Trst 15us
Bit 7 6 5 4 3 2 1 0
Name JTG - - JTRF WDRF BORF EXTRF PORF
- 5 -
다 는 부라운 리셋 임계전압으로 레벨이 일 경우 대표값은 이 Vbot BOD 1 26V
며 레벨이 일 경우는 대표값이 이다 는 부라운 리셋의 최소전BOD 0 40V Tbod
압이 걸리는 시간을 나타내며 레벨이 일 경우와 인 경우 모두의 대표값BOD 1 0
은 이다 는 부라운 리셋의 감지시 히스테리시스를 나타내며 값은20us Vhyst
이다 표 는 리셋관련 전기적 특성을 나타낸다100mV 2-2
표 리셋의 전기적 특성2-2
Table 2-2 Electrical Character of Reset
전원 투입 리셋23
전원이 인가되면 곧바로 마이컴을 리셋 시키고 전원전압이 에 도달하면 Vpot
시간지연 카운터의 동작에 따라 전원전압이 의 이상으로 된 이후에도 일정Vpot
한 시간동안 리셋을 유지한다 이후 정상적으로 작동하다가 인가전압 Vcc(5V)
가 전원투입 리셋의 임계값 보다 이하일(Power-on Reset Threshold (Vpot))
때 마이컴 내부에 위치한 리셋회로가 작동한다 인 경우에는 초기 ATMEGA128
에 전원이 에 도달하면 전원투입 리셋이 작동되고 정상적으로 작동되다14V
가 전원전압이 이하로 내려가도 전원투입 리셋이 작동된다 그림 는 리13V 2-2
셋핀을 에 접속한 상태에서 시작한 경우의 타이밍 도이다Vcc
- 6 -
그림 전원투입리셋 타이밍도 리셋핀을 에 접속한 상태2-2 ( Vcc )
Figure 2-2 Timing Diagram of Power on Reset
외부 리셋24
그림 은 외부리셋 회로도이며 외부에 스위치를 장착하여 사용자에 의해2-3
스위치를 누르게 되면 마이컴의 단자는 평소 로 되어 있다가Reset High(5V)
가 되고 최소 펄스폭 이상의 이 지속될 때 리셋이 작동하LOW (15us) Low Level
게 된다 이때 전해콘덴서는 전원투입 후 리셋단자에 일정시간 지연 후 작동하
기 위한 지연용 콘덴서이다
그림 외부리셋 회로도2-3
Figure 2-3 External Reset Circuit
외부리셋의 타이밍도는 그림 와 같으며 번 단자의 에2-4 20 PIN RESET 50ns
이상의 이 지속되어 입력되면 리셋이 발생한다 즉Low Level Active Low 5V
일때 되고 일때 되어 리셋 된다Disable GND Enable
SW1
RESET
R110Ω
VCC_5V
C110uF
RESET
- 7 -
그림 외부리셋 타이밍도2-4
Figure 2-4 Timing Diagram of External Reset
저전압 검출 리셋25 (Brown-Out Reset)
마이컴에 인가되는 인가전압 가 순간적으로 전압 이하Vcc(5V) Brown-out
또는 로 내려가서 이상 지속되면 마이컴의 오동작을 방지하기 위(26V 4V) 2us
해 마이컴을 리셋하게 되고 마이컴에 따라 전압은BOD(Brown-Out Detection)
별도로 설정하도록 되어 있다 마이컴 메이커에 따라 LVD(Low Voltage
라고도 한다 또한 전압 스파이크에 의한 오동작을 방지하기 위해 전압Detect)
검출에 히스테리시스를 적용하도록 되어 있다 즉 전압이 감소할때에는 Vbot-
이하로 될 때 리셋이 작동되고 전압이 증가 할때에는= Vbot - Vhyst 2
이상으로 될 때 리셋이 해제 된다 그림 는 저Vbot+= Vbot + Vhyst 2 2-5
전압 검출 리셋의 타이밍도 이다
그림 저전압 검출 리셋 타이밍도2-5
Figure 2-5 Timing Diagram of Brown out Detection
- 8 -
재덱 리셋26 (JTAG Reset)
은 논리 복잡도가 높고 복잡한 기능을 수행JTAG(Joint Test Action Group)
하는 과 같은 부품들을 시험하는 것이 너무 복잡하여 좀 더 체계적으로ASIC
시험을 할 수 있도록 해보자는 취지로 와 같은 데이터 전boundary scan test
송 포맷으로 컴퓨터와 반도체 소자를 연결하여 온칩 디버깅 불휘발성 메모리의
프로그래밍 테스트 등을 수행하는 인터페이스 기술로써 현재는 PCB IEEE
로 국제 표준 규약으로 되어 있다 이는 내부를 몇개의Standard 11491 ASIC
블록으로 나누고 각 블록의 경계에 직렬로 시험용 신호 패턴을 입력하고 블록
을 작동시킨 후 신호를 출력하여 검사하는 방법을 사용하여 내부 블록 ASIC
기능 시험을 수행 하여 부품의 양부를 판정하기 위한 표준 규약이다 은 JTAG
이며 은 레지스터 형식을 가지Boundary-Scan Cell Boundary-Scan Cell Shift
며 각 의 상태를 읽고 쓰는 것은 입출력 방식을 이용한다 은 Cell Serial JTAG
의 코어가 들어있는 의 외부 단자중 단자를CPU CPLD TAP(Test Access Port)
사용하고 그 단자들의 용도는 표 과 같다 은 사용자가 시스템2-3 JTAG Reset
의 하드웨어적 디버깅을 으로 시행할 때 필요에 따라 레지스터를JTAG Reset
설정하여 발생시킬 수 있다
표 의 의 용도2-3 JTAG TAP
Table 2-3 Usage of JTAG TAP
TDI Test Data In
TDO Test Data Out
TMS Test Mode Select
TCK Test Clock
TRST Test Reset
- 9 -
워치독 리셋28 (Watchdog Reset)
워치독 타이머에서 지정된 주기 이상의 시간이 경과 되었을때 사용되는 리셋
으로 지정된 주기가 완료되기 전에 소프트웨어 명령으로 그 값을 클리어 시켜
주지 않으면 마이컴을 리셋시켜 궁국적으로 시스템이 정상적으로 동작하고 있
는지 감시하고 오동작을 방지하여 마이컴의 신뢰성을 향상시키는 기술이다
을 기준하여 상의 워치독 타이머의 레지스터 구성도는AVR128 DATA SHEET
그림 와 같다2-6
그림 워치독 타이머의 레지스터 구성도2-6
Figure 2-6 Configuration of Watchdog Timer Register
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- iii -
목 차
요 약 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot i
목 차 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot ii
서 론1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 1
고장허용 시스템의 제어방법2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
리셋 로직21 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
리셋의 전기적 특성22 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 4
전원 투입 리셋23 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 5
외부 리셋24 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
저전압 검출 리셋25 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
재덱 리셋27 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 8
워치독 리셋28 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 9
마이컴 오동작 방지 장치3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
31 비정상적인 출력을 차단하는 장치 및 그 방법 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
마이컴 리셋 장치32 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 16
고가용성 구현을 위한 이중화 시스템4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 19
분산 제어시스템 이중화 구성방안에 대한 검토41 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 19
동적 이중화 시스템42 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 21
네트워크상에서 프로세서 이중화 시스템43 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 23
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 25
시스템 알고리즘 순서도51 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 25
시스템 구조52 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
전원부53 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
클럭 발생부54 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
- iv -
마이컴 부55 A middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 29
마이컴 감지부56 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
출력 선택부57 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 34
시스템 가동용 프로그램58 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 35
실험 결과 및 분석6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 44
결론7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 46
참고 문헌 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 48
- v -
그림 목차
그림 의 리셋 로직 회로2-1 ATMEGA128 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
그림 전원투입리셋 타이밍도2-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
그림 외부리셋 회로도2-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
그림 외부리셋 타이밍도2-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
그림 저전압 검출 리셋 타이밍도2-5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
그림 워치독 타이머의 레지스터 구성도2-6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 9
그림 워치독 타이머의 타이밍도2-7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 10
그림 워치독 타이머를 하기 위한 프로그램2-8 Off middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 12
그림 워치독 타이머를 하기 위한 프로그램2-9 On middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 12
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
그림 리셋 감지부3-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 14
그림 지연부3-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 14
그림 버퍼부3-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 15
그림 마이컴 구성도3-5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 17
그림 이중화된 전송시스템 모델링4-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 21
그림 프로세서 이중화 시스템구조의 블록도4-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 23
그림 시스템 알고리즘 순서도5-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
그림 마이컴 이중화 블록도5-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
그림 전원부 회로도5-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
그림 클럭 발생부5-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
그림 마이컴 부5-5 A middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 29
그림 마이컴 감시부 회로도5-6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
그림 정상 마이컴에서 출력하는 파형5-7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
- vi -
그림 위치가 전위된 펄스 파형5-8 GND middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 31
그림 펄스 파형이 적분된 파형5-9 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 32
그림 출력 선택부 회로도5-10 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 34
그림 프로그램 용어선언5-11 1( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 36
그림 프로그램 상수 및 포트 정의5-12 2( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 36
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 37
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 37
그림 프로그램 타이머 초기화5-15 5( 0 ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 38
그림 프로그램 출력 포트 초기화5-16 6( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 38
그림 프로그램 하드웨어 초기화5-17 7( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 39
그림 프로그램 래치 딜레이5-18 8( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 40
그림 프로그램 순차 점등출력5-19 9(LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 42
그림 프로그램 타이머5-20 10( 0 ISR) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 43
그림 프로그램 메인 프로그램5-21 11( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 43
그림 마이컴의 정상유무를 위한 출력파형6-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 44
그림 출력 파형6-2 LED ONOFF SHIFT middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 45
- vii -
표 목차
표 레지스터2-1 MCUSCR middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 4
표 리셋의 전기적 특성2-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 5
표 의 의 용도2-3 JTAG TAP middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 8
표 워치독 타이머 에 따른2-4 WDP PRESCALER middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 11
표 3-1 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
표 3-2 특허출원 정보 마이컴 리셋장치( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 16
표 플립플롭 진리표5-1 S-R middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 32
표 출력 선택부 출력상태5-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 35
- 1 -
서 론1
마이크로프로세서 또는 마이컴 은 하나의(Microprocessor) (MicroComputer)
칩 내에 기억 연산 제어장치 등을 구비하고 기존의 범용 컴퓨터의 기능(Chip)
을 수행할 수 있도록 만들어진 다목적 프로그램이 가능한 대용량 논리회로로
일종의 중앙처리 장치이다 즉 컴퓨터의 산술논리 연산기 레지스터 프로 (ALU)
그램 카운터 명령 디코더 제어회로 등의 연산 장치와 제어 장치를 개의 작은 1
실리콘 칩에 모아놓은 처리장치를 말한다
반도체 역사는 년 트랜지스터의 발명으로 시작되어 그로부터 반도체 기1947
술의 눈부신 발전에 힘입어 마이크로프로세서도 성능과 가격과 크기 분야에서
년동안 상상을 초월하는 눈부신 발전을 거듭하고 있다 그러나 마40 이컴의 눈
부신 발전에도 불구하고 현재까지 해결하지 못하는 원초적인 문제가 있는데 그
것은 원인을 알 수 없고 예측이 불가능한 상태에서의 마이컴의 오동작이나 정
상적인 동작이 갑자기 불특정 부위에서 이유 없이 멈춰버리는 것이다 수많은
연구자들이 첨단장비를 동원하여 그 원인을 찾아보았으나 현재까지 근본적인
해결을 하지 못하고 그저 강력한 외부 노이즈 및 환경 등을 원인으로 추론하는
단계에서 진일보 하지 못하고 있다 마이컴의 오동작은 우리 실생활에서 커다란
불편과 또는 심각한 안전의 위협을 초래하고 있지만 현재 까지는 근본적인 문
제해결이 없는 상태에서 간접적 대책으로 대응하고 있는 실정이다 그 예로 최
근 사회적으로 상당한 이슈가 되어 관심이 고조되고 있는 것이 바로 자동차의
급발진 사고와 의료기기 등의 오작동으로 인한 환자들의 사망사고 등이 그 예
가 될 것이다
마이컴이 오동작이나 이상동작을 하였을 때 간접적 대책으로 전원을 하Off
여 리셋하기 위해 사용자에 의해 강제적으로 마이컴 외부의 회로와 스위치RC
를 이용하여 리셋을 시키거나 또는 마이컴 내부의 워치독을 이용하여 프로그램
적으로 워치독 을 실행하는 방법 또는 마이컴 외부에 워치독을 별(Watch Dog)
도로 설치하는 방법 즉 플립플롭 를 조합하여 구성하거나 리셋 전용 IC IC
을 사용하는 것과 같이 대부분 마이컴을 리셋 하는 방법으로 한정되고PST580
있다 이런 기술들은 마이컴의 오동작을 근본적으로 해결을 하지 못하고 다만
리셋을 통한 재부팅 수준에 머므르고 있다 또한 상기 방법들은 마이컴에 이상
- 2 -
동작이 발생하면 마이컴 자체를 리셋 시키므로 처음부터 다시 실행해야 하는
문제점을 안고 있다 즉 중요한 작업을 실행하는 제어기들이 현재까지 진행된
상태를 무시하고 처음단계로 되돌아가야 한다면 경제적 손실은 제외 하더라도
사용자의 생명의 안전까지도 위협하는 심각히 상황을 초래하기도 한다
이런 근본적 문제해결에는 우선적으로 마이컴 제조 관련 연구자 들이 근본적
으로 해결해야 하지만 본 연구에서는 간접적 대책의 일환 이지만 이에 대한 실
질적이고 실용적인 방안을 제시 하였다 그 방법은 마이컴을 이중화 하여 마이
컴이 연산과 실행과정에서 원인모를 이유 때문에 제어 불능 상태에 이르면 이
중화 된 여분의 대기된 마이컴이 곧바로 문제가 발생된 시점으로부터 문제를
일으킨 마이컴의 잔여 작업들을 수행하고 문제를 일으킨 마이컴은 작업이 이관
된 이중화한 마이컴으로부터 적정한 시점에 리셋을 하여 다시 이중화하여 마이
컴의 추가적인 이상동작을 대비하여 상호 보완적으로 대기시키는 방법을 제안
하였다 특히 이모든 것들이 실시간으로 통제하여 제어하는 것이 본 시스템의
특징이라 할 수 있다
본 논문에서는 다음과 같이 구성 되어 있다 장에서는 고장허용 시스템의 2
제어 방법에 대해 가장 보편적인 리셋 기술에 대해 소개한다 장에서는 특허 3
출원기술에 의한 마이컴 오동작 방지 장치에 대해 설명 하였다 장에서는 고 4
가가용성 구현을 위한 이중화 시스템에 대해 설명하였고 기존의 시스템 이중화
에 대한 다양한 기법에 대해 설명하였다 장에서는 본 연구에서 제안한 마이 5 ldquo
컴 이중화를 통한 실시간 연속 제어 시스템 에 대해 설계를 기초로 한 단계별rdquo
설명을 하였다 장에서는 본 연구에서 제안한 마이컴 이중화를 통한 실시간 6 ldquo
연속 제어 시스템 의 실험 결과 및 분석을 평가 하였고 마지막으로 본 논문의rdquo
결론을 맺는다
- 3 -
고장허용 시스템의 제어방법2
리셋 로직21
일반적인 마이컴의 리셋에 관련된 내부 회로는 그림 과 같으며 각각의 세2-1
부 설명은 다음과 같다
그림 의 리셋 로직 회로2-1 ATMEGA128
Figure 2-1 Reset Logic Circuit of ATMEGA128
리셋 입력이 액티브 되면 리셋 동작이 시작되며 병렬 포트가 즉시 디폴IO
트 값으로 출력된다 리셋 입력이 해제 되더라도 마이컴의 동작이 시작되기 까
- 4 -
지 전원전압 가 규정치에 도달하는 시간을 확보하기 위해 워치독 오실레이Vcc
터에 의한 시간지연이 주어지며 여기에 시스템 클록의 안정된 발진을 위하여
기동시간 만큼 시간 지연이 추가로 연장된다 이러한 내부 리셋(Start-up Time)
신호의 지연시간 은 모두 내부의 시간지연 카운터에 의하여 만들어 지며Tout
각 발진모드에 따른 시간지연 값은 퓨즈비트의 및 에 의하여SUT1~0 CKSEL0
선택된다 일반적인 마이컴의 시스템 리셋 소스는 파워온리셋 (Powr-on Reset)
외부리셋 워치독 리셋 부라운 리셋(External Reset) (Watchdog Reset)
재덱 와 같이 종이 있다 시스템에서 어떤(Brown-out Reset) (JTAG Reset) 5
원인에 의해 마이컴이 리셋 되었는지 알아보기 위해서는 SPECIAL FUNTION
레지스터 의 상태를 점검해보면 알수 있다 즉 레지스ldquoMCUCSRrdquo ldquoMCUCSRrdquo
터는 마이컴의 제어와 상태를 나타내는 레지스터로 리셋이 발생하면 해당하는
비트가 로 설정 되므로 어떤 유형의 리셋이 발생 했는지 필요에 따라 외부ldquo1rdquo
에서 검사할 수 있는 레지스터이다 각 비트별 레지스터의 용도는 표 MCUSCR
과 같다 비트 는 파워온리셋 플레그 로 사2-1 0 PORF (Power-on Reset Flag)
용되며 비트 는 외부리셋 플레그 로 사용된다 1 EXTRF (External Reset Flag) 2
비트 는 부라운 리셋 플레그 로 사용하고 비BORF (Brown-out Reset Flag) 3
트 는 워치독 플레그 로 사용한다 비트WDRF (Watchdog Reset Flag) 4 JTRF
는 재댁 플레그 로 사용된다(JTAG Reset Flag)
표 레지스터2-1 MCUSCR
Table 2-1 MCUSCR Register
리셋의 전기적 특성22
는 파워온 리셋에서 상승 임계전압이며 대표값은 이며 하강 임계전Vpot 14V
압은 이다 은 리셋의 임계전압이며 최소값은 이고 최대값은13V Vrst 02Vcc
이다 는 리셋에 필요한 최소펄스폭이며 이때 최소값은 이085Vcc Trst 15us
Bit 7 6 5 4 3 2 1 0
Name JTG - - JTRF WDRF BORF EXTRF PORF
- 5 -
다 는 부라운 리셋 임계전압으로 레벨이 일 경우 대표값은 이 Vbot BOD 1 26V
며 레벨이 일 경우는 대표값이 이다 는 부라운 리셋의 최소전BOD 0 40V Tbod
압이 걸리는 시간을 나타내며 레벨이 일 경우와 인 경우 모두의 대표값BOD 1 0
은 이다 는 부라운 리셋의 감지시 히스테리시스를 나타내며 값은20us Vhyst
이다 표 는 리셋관련 전기적 특성을 나타낸다100mV 2-2
표 리셋의 전기적 특성2-2
Table 2-2 Electrical Character of Reset
전원 투입 리셋23
전원이 인가되면 곧바로 마이컴을 리셋 시키고 전원전압이 에 도달하면 Vpot
시간지연 카운터의 동작에 따라 전원전압이 의 이상으로 된 이후에도 일정Vpot
한 시간동안 리셋을 유지한다 이후 정상적으로 작동하다가 인가전압 Vcc(5V)
가 전원투입 리셋의 임계값 보다 이하일(Power-on Reset Threshold (Vpot))
때 마이컴 내부에 위치한 리셋회로가 작동한다 인 경우에는 초기 ATMEGA128
에 전원이 에 도달하면 전원투입 리셋이 작동되고 정상적으로 작동되다14V
가 전원전압이 이하로 내려가도 전원투입 리셋이 작동된다 그림 는 리13V 2-2
셋핀을 에 접속한 상태에서 시작한 경우의 타이밍 도이다Vcc
- 6 -
그림 전원투입리셋 타이밍도 리셋핀을 에 접속한 상태2-2 ( Vcc )
Figure 2-2 Timing Diagram of Power on Reset
외부 리셋24
그림 은 외부리셋 회로도이며 외부에 스위치를 장착하여 사용자에 의해2-3
스위치를 누르게 되면 마이컴의 단자는 평소 로 되어 있다가Reset High(5V)
가 되고 최소 펄스폭 이상의 이 지속될 때 리셋이 작동하LOW (15us) Low Level
게 된다 이때 전해콘덴서는 전원투입 후 리셋단자에 일정시간 지연 후 작동하
기 위한 지연용 콘덴서이다
그림 외부리셋 회로도2-3
Figure 2-3 External Reset Circuit
외부리셋의 타이밍도는 그림 와 같으며 번 단자의 에2-4 20 PIN RESET 50ns
이상의 이 지속되어 입력되면 리셋이 발생한다 즉Low Level Active Low 5V
일때 되고 일때 되어 리셋 된다Disable GND Enable
SW1
RESET
R110Ω
VCC_5V
C110uF
RESET
- 7 -
그림 외부리셋 타이밍도2-4
Figure 2-4 Timing Diagram of External Reset
저전압 검출 리셋25 (Brown-Out Reset)
마이컴에 인가되는 인가전압 가 순간적으로 전압 이하Vcc(5V) Brown-out
또는 로 내려가서 이상 지속되면 마이컴의 오동작을 방지하기 위(26V 4V) 2us
해 마이컴을 리셋하게 되고 마이컴에 따라 전압은BOD(Brown-Out Detection)
별도로 설정하도록 되어 있다 마이컴 메이커에 따라 LVD(Low Voltage
라고도 한다 또한 전압 스파이크에 의한 오동작을 방지하기 위해 전압Detect)
검출에 히스테리시스를 적용하도록 되어 있다 즉 전압이 감소할때에는 Vbot-
이하로 될 때 리셋이 작동되고 전압이 증가 할때에는= Vbot - Vhyst 2
이상으로 될 때 리셋이 해제 된다 그림 는 저Vbot+= Vbot + Vhyst 2 2-5
전압 검출 리셋의 타이밍도 이다
그림 저전압 검출 리셋 타이밍도2-5
Figure 2-5 Timing Diagram of Brown out Detection
- 8 -
재덱 리셋26 (JTAG Reset)
은 논리 복잡도가 높고 복잡한 기능을 수행JTAG(Joint Test Action Group)
하는 과 같은 부품들을 시험하는 것이 너무 복잡하여 좀 더 체계적으로ASIC
시험을 할 수 있도록 해보자는 취지로 와 같은 데이터 전boundary scan test
송 포맷으로 컴퓨터와 반도체 소자를 연결하여 온칩 디버깅 불휘발성 메모리의
프로그래밍 테스트 등을 수행하는 인터페이스 기술로써 현재는 PCB IEEE
로 국제 표준 규약으로 되어 있다 이는 내부를 몇개의Standard 11491 ASIC
블록으로 나누고 각 블록의 경계에 직렬로 시험용 신호 패턴을 입력하고 블록
을 작동시킨 후 신호를 출력하여 검사하는 방법을 사용하여 내부 블록 ASIC
기능 시험을 수행 하여 부품의 양부를 판정하기 위한 표준 규약이다 은 JTAG
이며 은 레지스터 형식을 가지Boundary-Scan Cell Boundary-Scan Cell Shift
며 각 의 상태를 읽고 쓰는 것은 입출력 방식을 이용한다 은 Cell Serial JTAG
의 코어가 들어있는 의 외부 단자중 단자를CPU CPLD TAP(Test Access Port)
사용하고 그 단자들의 용도는 표 과 같다 은 사용자가 시스템2-3 JTAG Reset
의 하드웨어적 디버깅을 으로 시행할 때 필요에 따라 레지스터를JTAG Reset
설정하여 발생시킬 수 있다
표 의 의 용도2-3 JTAG TAP
Table 2-3 Usage of JTAG TAP
TDI Test Data In
TDO Test Data Out
TMS Test Mode Select
TCK Test Clock
TRST Test Reset
- 9 -
워치독 리셋28 (Watchdog Reset)
워치독 타이머에서 지정된 주기 이상의 시간이 경과 되었을때 사용되는 리셋
으로 지정된 주기가 완료되기 전에 소프트웨어 명령으로 그 값을 클리어 시켜
주지 않으면 마이컴을 리셋시켜 궁국적으로 시스템이 정상적으로 동작하고 있
는지 감시하고 오동작을 방지하여 마이컴의 신뢰성을 향상시키는 기술이다
을 기준하여 상의 워치독 타이머의 레지스터 구성도는AVR128 DATA SHEET
그림 와 같다2-6
그림 워치독 타이머의 레지스터 구성도2-6
Figure 2-6 Configuration of Watchdog Timer Register
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- iv -
마이컴 부55 A middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 29
마이컴 감지부56 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
출력 선택부57 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 34
시스템 가동용 프로그램58 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 35
실험 결과 및 분석6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 44
결론7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 46
참고 문헌 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 48
- v -
그림 목차
그림 의 리셋 로직 회로2-1 ATMEGA128 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
그림 전원투입리셋 타이밍도2-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
그림 외부리셋 회로도2-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
그림 외부리셋 타이밍도2-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
그림 저전압 검출 리셋 타이밍도2-5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
그림 워치독 타이머의 레지스터 구성도2-6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 9
그림 워치독 타이머의 타이밍도2-7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 10
그림 워치독 타이머를 하기 위한 프로그램2-8 Off middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 12
그림 워치독 타이머를 하기 위한 프로그램2-9 On middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 12
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
그림 리셋 감지부3-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 14
그림 지연부3-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 14
그림 버퍼부3-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 15
그림 마이컴 구성도3-5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 17
그림 이중화된 전송시스템 모델링4-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 21
그림 프로세서 이중화 시스템구조의 블록도4-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 23
그림 시스템 알고리즘 순서도5-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
그림 마이컴 이중화 블록도5-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
그림 전원부 회로도5-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
그림 클럭 발생부5-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
그림 마이컴 부5-5 A middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 29
그림 마이컴 감시부 회로도5-6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
그림 정상 마이컴에서 출력하는 파형5-7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
- vi -
그림 위치가 전위된 펄스 파형5-8 GND middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 31
그림 펄스 파형이 적분된 파형5-9 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 32
그림 출력 선택부 회로도5-10 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 34
그림 프로그램 용어선언5-11 1( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 36
그림 프로그램 상수 및 포트 정의5-12 2( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 36
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 37
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 37
그림 프로그램 타이머 초기화5-15 5( 0 ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 38
그림 프로그램 출력 포트 초기화5-16 6( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 38
그림 프로그램 하드웨어 초기화5-17 7( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 39
그림 프로그램 래치 딜레이5-18 8( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 40
그림 프로그램 순차 점등출력5-19 9(LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 42
그림 프로그램 타이머5-20 10( 0 ISR) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 43
그림 프로그램 메인 프로그램5-21 11( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 43
그림 마이컴의 정상유무를 위한 출력파형6-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 44
그림 출력 파형6-2 LED ONOFF SHIFT middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 45
- vii -
표 목차
표 레지스터2-1 MCUSCR middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 4
표 리셋의 전기적 특성2-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 5
표 의 의 용도2-3 JTAG TAP middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 8
표 워치독 타이머 에 따른2-4 WDP PRESCALER middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 11
표 3-1 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
표 3-2 특허출원 정보 마이컴 리셋장치( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 16
표 플립플롭 진리표5-1 S-R middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 32
표 출력 선택부 출력상태5-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 35
- 1 -
서 론1
마이크로프로세서 또는 마이컴 은 하나의(Microprocessor) (MicroComputer)
칩 내에 기억 연산 제어장치 등을 구비하고 기존의 범용 컴퓨터의 기능(Chip)
을 수행할 수 있도록 만들어진 다목적 프로그램이 가능한 대용량 논리회로로
일종의 중앙처리 장치이다 즉 컴퓨터의 산술논리 연산기 레지스터 프로 (ALU)
그램 카운터 명령 디코더 제어회로 등의 연산 장치와 제어 장치를 개의 작은 1
실리콘 칩에 모아놓은 처리장치를 말한다
반도체 역사는 년 트랜지스터의 발명으로 시작되어 그로부터 반도체 기1947
술의 눈부신 발전에 힘입어 마이크로프로세서도 성능과 가격과 크기 분야에서
년동안 상상을 초월하는 눈부신 발전을 거듭하고 있다 그러나 마40 이컴의 눈
부신 발전에도 불구하고 현재까지 해결하지 못하는 원초적인 문제가 있는데 그
것은 원인을 알 수 없고 예측이 불가능한 상태에서의 마이컴의 오동작이나 정
상적인 동작이 갑자기 불특정 부위에서 이유 없이 멈춰버리는 것이다 수많은
연구자들이 첨단장비를 동원하여 그 원인을 찾아보았으나 현재까지 근본적인
해결을 하지 못하고 그저 강력한 외부 노이즈 및 환경 등을 원인으로 추론하는
단계에서 진일보 하지 못하고 있다 마이컴의 오동작은 우리 실생활에서 커다란
불편과 또는 심각한 안전의 위협을 초래하고 있지만 현재 까지는 근본적인 문
제해결이 없는 상태에서 간접적 대책으로 대응하고 있는 실정이다 그 예로 최
근 사회적으로 상당한 이슈가 되어 관심이 고조되고 있는 것이 바로 자동차의
급발진 사고와 의료기기 등의 오작동으로 인한 환자들의 사망사고 등이 그 예
가 될 것이다
마이컴이 오동작이나 이상동작을 하였을 때 간접적 대책으로 전원을 하Off
여 리셋하기 위해 사용자에 의해 강제적으로 마이컴 외부의 회로와 스위치RC
를 이용하여 리셋을 시키거나 또는 마이컴 내부의 워치독을 이용하여 프로그램
적으로 워치독 을 실행하는 방법 또는 마이컴 외부에 워치독을 별(Watch Dog)
도로 설치하는 방법 즉 플립플롭 를 조합하여 구성하거나 리셋 전용 IC IC
을 사용하는 것과 같이 대부분 마이컴을 리셋 하는 방법으로 한정되고PST580
있다 이런 기술들은 마이컴의 오동작을 근본적으로 해결을 하지 못하고 다만
리셋을 통한 재부팅 수준에 머므르고 있다 또한 상기 방법들은 마이컴에 이상
- 2 -
동작이 발생하면 마이컴 자체를 리셋 시키므로 처음부터 다시 실행해야 하는
문제점을 안고 있다 즉 중요한 작업을 실행하는 제어기들이 현재까지 진행된
상태를 무시하고 처음단계로 되돌아가야 한다면 경제적 손실은 제외 하더라도
사용자의 생명의 안전까지도 위협하는 심각히 상황을 초래하기도 한다
이런 근본적 문제해결에는 우선적으로 마이컴 제조 관련 연구자 들이 근본적
으로 해결해야 하지만 본 연구에서는 간접적 대책의 일환 이지만 이에 대한 실
질적이고 실용적인 방안을 제시 하였다 그 방법은 마이컴을 이중화 하여 마이
컴이 연산과 실행과정에서 원인모를 이유 때문에 제어 불능 상태에 이르면 이
중화 된 여분의 대기된 마이컴이 곧바로 문제가 발생된 시점으로부터 문제를
일으킨 마이컴의 잔여 작업들을 수행하고 문제를 일으킨 마이컴은 작업이 이관
된 이중화한 마이컴으로부터 적정한 시점에 리셋을 하여 다시 이중화하여 마이
컴의 추가적인 이상동작을 대비하여 상호 보완적으로 대기시키는 방법을 제안
하였다 특히 이모든 것들이 실시간으로 통제하여 제어하는 것이 본 시스템의
특징이라 할 수 있다
본 논문에서는 다음과 같이 구성 되어 있다 장에서는 고장허용 시스템의 2
제어 방법에 대해 가장 보편적인 리셋 기술에 대해 소개한다 장에서는 특허 3
출원기술에 의한 마이컴 오동작 방지 장치에 대해 설명 하였다 장에서는 고 4
가가용성 구현을 위한 이중화 시스템에 대해 설명하였고 기존의 시스템 이중화
에 대한 다양한 기법에 대해 설명하였다 장에서는 본 연구에서 제안한 마이 5 ldquo
컴 이중화를 통한 실시간 연속 제어 시스템 에 대해 설계를 기초로 한 단계별rdquo
설명을 하였다 장에서는 본 연구에서 제안한 마이컴 이중화를 통한 실시간 6 ldquo
연속 제어 시스템 의 실험 결과 및 분석을 평가 하였고 마지막으로 본 논문의rdquo
결론을 맺는다
- 3 -
고장허용 시스템의 제어방법2
리셋 로직21
일반적인 마이컴의 리셋에 관련된 내부 회로는 그림 과 같으며 각각의 세2-1
부 설명은 다음과 같다
그림 의 리셋 로직 회로2-1 ATMEGA128
Figure 2-1 Reset Logic Circuit of ATMEGA128
리셋 입력이 액티브 되면 리셋 동작이 시작되며 병렬 포트가 즉시 디폴IO
트 값으로 출력된다 리셋 입력이 해제 되더라도 마이컴의 동작이 시작되기 까
- 4 -
지 전원전압 가 규정치에 도달하는 시간을 확보하기 위해 워치독 오실레이Vcc
터에 의한 시간지연이 주어지며 여기에 시스템 클록의 안정된 발진을 위하여
기동시간 만큼 시간 지연이 추가로 연장된다 이러한 내부 리셋(Start-up Time)
신호의 지연시간 은 모두 내부의 시간지연 카운터에 의하여 만들어 지며Tout
각 발진모드에 따른 시간지연 값은 퓨즈비트의 및 에 의하여SUT1~0 CKSEL0
선택된다 일반적인 마이컴의 시스템 리셋 소스는 파워온리셋 (Powr-on Reset)
외부리셋 워치독 리셋 부라운 리셋(External Reset) (Watchdog Reset)
재덱 와 같이 종이 있다 시스템에서 어떤(Brown-out Reset) (JTAG Reset) 5
원인에 의해 마이컴이 리셋 되었는지 알아보기 위해서는 SPECIAL FUNTION
레지스터 의 상태를 점검해보면 알수 있다 즉 레지스ldquoMCUCSRrdquo ldquoMCUCSRrdquo
터는 마이컴의 제어와 상태를 나타내는 레지스터로 리셋이 발생하면 해당하는
비트가 로 설정 되므로 어떤 유형의 리셋이 발생 했는지 필요에 따라 외부ldquo1rdquo
에서 검사할 수 있는 레지스터이다 각 비트별 레지스터의 용도는 표 MCUSCR
과 같다 비트 는 파워온리셋 플레그 로 사2-1 0 PORF (Power-on Reset Flag)
용되며 비트 는 외부리셋 플레그 로 사용된다 1 EXTRF (External Reset Flag) 2
비트 는 부라운 리셋 플레그 로 사용하고 비BORF (Brown-out Reset Flag) 3
트 는 워치독 플레그 로 사용한다 비트WDRF (Watchdog Reset Flag) 4 JTRF
는 재댁 플레그 로 사용된다(JTAG Reset Flag)
표 레지스터2-1 MCUSCR
Table 2-1 MCUSCR Register
리셋의 전기적 특성22
는 파워온 리셋에서 상승 임계전압이며 대표값은 이며 하강 임계전Vpot 14V
압은 이다 은 리셋의 임계전압이며 최소값은 이고 최대값은13V Vrst 02Vcc
이다 는 리셋에 필요한 최소펄스폭이며 이때 최소값은 이085Vcc Trst 15us
Bit 7 6 5 4 3 2 1 0
Name JTG - - JTRF WDRF BORF EXTRF PORF
- 5 -
다 는 부라운 리셋 임계전압으로 레벨이 일 경우 대표값은 이 Vbot BOD 1 26V
며 레벨이 일 경우는 대표값이 이다 는 부라운 리셋의 최소전BOD 0 40V Tbod
압이 걸리는 시간을 나타내며 레벨이 일 경우와 인 경우 모두의 대표값BOD 1 0
은 이다 는 부라운 리셋의 감지시 히스테리시스를 나타내며 값은20us Vhyst
이다 표 는 리셋관련 전기적 특성을 나타낸다100mV 2-2
표 리셋의 전기적 특성2-2
Table 2-2 Electrical Character of Reset
전원 투입 리셋23
전원이 인가되면 곧바로 마이컴을 리셋 시키고 전원전압이 에 도달하면 Vpot
시간지연 카운터의 동작에 따라 전원전압이 의 이상으로 된 이후에도 일정Vpot
한 시간동안 리셋을 유지한다 이후 정상적으로 작동하다가 인가전압 Vcc(5V)
가 전원투입 리셋의 임계값 보다 이하일(Power-on Reset Threshold (Vpot))
때 마이컴 내부에 위치한 리셋회로가 작동한다 인 경우에는 초기 ATMEGA128
에 전원이 에 도달하면 전원투입 리셋이 작동되고 정상적으로 작동되다14V
가 전원전압이 이하로 내려가도 전원투입 리셋이 작동된다 그림 는 리13V 2-2
셋핀을 에 접속한 상태에서 시작한 경우의 타이밍 도이다Vcc
- 6 -
그림 전원투입리셋 타이밍도 리셋핀을 에 접속한 상태2-2 ( Vcc )
Figure 2-2 Timing Diagram of Power on Reset
외부 리셋24
그림 은 외부리셋 회로도이며 외부에 스위치를 장착하여 사용자에 의해2-3
스위치를 누르게 되면 마이컴의 단자는 평소 로 되어 있다가Reset High(5V)
가 되고 최소 펄스폭 이상의 이 지속될 때 리셋이 작동하LOW (15us) Low Level
게 된다 이때 전해콘덴서는 전원투입 후 리셋단자에 일정시간 지연 후 작동하
기 위한 지연용 콘덴서이다
그림 외부리셋 회로도2-3
Figure 2-3 External Reset Circuit
외부리셋의 타이밍도는 그림 와 같으며 번 단자의 에2-4 20 PIN RESET 50ns
이상의 이 지속되어 입력되면 리셋이 발생한다 즉Low Level Active Low 5V
일때 되고 일때 되어 리셋 된다Disable GND Enable
SW1
RESET
R110Ω
VCC_5V
C110uF
RESET
- 7 -
그림 외부리셋 타이밍도2-4
Figure 2-4 Timing Diagram of External Reset
저전압 검출 리셋25 (Brown-Out Reset)
마이컴에 인가되는 인가전압 가 순간적으로 전압 이하Vcc(5V) Brown-out
또는 로 내려가서 이상 지속되면 마이컴의 오동작을 방지하기 위(26V 4V) 2us
해 마이컴을 리셋하게 되고 마이컴에 따라 전압은BOD(Brown-Out Detection)
별도로 설정하도록 되어 있다 마이컴 메이커에 따라 LVD(Low Voltage
라고도 한다 또한 전압 스파이크에 의한 오동작을 방지하기 위해 전압Detect)
검출에 히스테리시스를 적용하도록 되어 있다 즉 전압이 감소할때에는 Vbot-
이하로 될 때 리셋이 작동되고 전압이 증가 할때에는= Vbot - Vhyst 2
이상으로 될 때 리셋이 해제 된다 그림 는 저Vbot+= Vbot + Vhyst 2 2-5
전압 검출 리셋의 타이밍도 이다
그림 저전압 검출 리셋 타이밍도2-5
Figure 2-5 Timing Diagram of Brown out Detection
- 8 -
재덱 리셋26 (JTAG Reset)
은 논리 복잡도가 높고 복잡한 기능을 수행JTAG(Joint Test Action Group)
하는 과 같은 부품들을 시험하는 것이 너무 복잡하여 좀 더 체계적으로ASIC
시험을 할 수 있도록 해보자는 취지로 와 같은 데이터 전boundary scan test
송 포맷으로 컴퓨터와 반도체 소자를 연결하여 온칩 디버깅 불휘발성 메모리의
프로그래밍 테스트 등을 수행하는 인터페이스 기술로써 현재는 PCB IEEE
로 국제 표준 규약으로 되어 있다 이는 내부를 몇개의Standard 11491 ASIC
블록으로 나누고 각 블록의 경계에 직렬로 시험용 신호 패턴을 입력하고 블록
을 작동시킨 후 신호를 출력하여 검사하는 방법을 사용하여 내부 블록 ASIC
기능 시험을 수행 하여 부품의 양부를 판정하기 위한 표준 규약이다 은 JTAG
이며 은 레지스터 형식을 가지Boundary-Scan Cell Boundary-Scan Cell Shift
며 각 의 상태를 읽고 쓰는 것은 입출력 방식을 이용한다 은 Cell Serial JTAG
의 코어가 들어있는 의 외부 단자중 단자를CPU CPLD TAP(Test Access Port)
사용하고 그 단자들의 용도는 표 과 같다 은 사용자가 시스템2-3 JTAG Reset
의 하드웨어적 디버깅을 으로 시행할 때 필요에 따라 레지스터를JTAG Reset
설정하여 발생시킬 수 있다
표 의 의 용도2-3 JTAG TAP
Table 2-3 Usage of JTAG TAP
TDI Test Data In
TDO Test Data Out
TMS Test Mode Select
TCK Test Clock
TRST Test Reset
- 9 -
워치독 리셋28 (Watchdog Reset)
워치독 타이머에서 지정된 주기 이상의 시간이 경과 되었을때 사용되는 리셋
으로 지정된 주기가 완료되기 전에 소프트웨어 명령으로 그 값을 클리어 시켜
주지 않으면 마이컴을 리셋시켜 궁국적으로 시스템이 정상적으로 동작하고 있
는지 감시하고 오동작을 방지하여 마이컴의 신뢰성을 향상시키는 기술이다
을 기준하여 상의 워치독 타이머의 레지스터 구성도는AVR128 DATA SHEET
그림 와 같다2-6
그림 워치독 타이머의 레지스터 구성도2-6
Figure 2-6 Configuration of Watchdog Timer Register
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- v -
그림 목차
그림 의 리셋 로직 회로2-1 ATMEGA128 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 3
그림 전원투입리셋 타이밍도2-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
그림 외부리셋 회로도2-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 6
그림 외부리셋 타이밍도2-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
그림 저전압 검출 리셋 타이밍도2-5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 7
그림 워치독 타이머의 레지스터 구성도2-6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 9
그림 워치독 타이머의 타이밍도2-7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 10
그림 워치독 타이머를 하기 위한 프로그램2-8 Off middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 12
그림 워치독 타이머를 하기 위한 프로그램2-9 On middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 12
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
그림 리셋 감지부3-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 14
그림 지연부3-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 14
그림 버퍼부3-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 15
그림 마이컴 구성도3-5 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 17
그림 이중화된 전송시스템 모델링4-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 21
그림 프로세서 이중화 시스템구조의 블록도4-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 23
그림 시스템 알고리즘 순서도5-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
그림 마이컴 이중화 블록도5-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 26
그림 전원부 회로도5-3 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
그림 클럭 발생부5-4 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 28
그림 마이컴 부5-5 A middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 29
그림 마이컴 감시부 회로도5-6 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
그림 정상 마이컴에서 출력하는 파형5-7 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 30
- vi -
그림 위치가 전위된 펄스 파형5-8 GND middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 31
그림 펄스 파형이 적분된 파형5-9 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 32
그림 출력 선택부 회로도5-10 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 34
그림 프로그램 용어선언5-11 1( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 36
그림 프로그램 상수 및 포트 정의5-12 2( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 36
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 37
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 37
그림 프로그램 타이머 초기화5-15 5( 0 ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 38
그림 프로그램 출력 포트 초기화5-16 6( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 38
그림 프로그램 하드웨어 초기화5-17 7( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 39
그림 프로그램 래치 딜레이5-18 8( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 40
그림 프로그램 순차 점등출력5-19 9(LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 42
그림 프로그램 타이머5-20 10( 0 ISR) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 43
그림 프로그램 메인 프로그램5-21 11( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 43
그림 마이컴의 정상유무를 위한 출력파형6-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 44
그림 출력 파형6-2 LED ONOFF SHIFT middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 45
- vii -
표 목차
표 레지스터2-1 MCUSCR middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 4
표 리셋의 전기적 특성2-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 5
표 의 의 용도2-3 JTAG TAP middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 8
표 워치독 타이머 에 따른2-4 WDP PRESCALER middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 11
표 3-1 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
표 3-2 특허출원 정보 마이컴 리셋장치( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 16
표 플립플롭 진리표5-1 S-R middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 32
표 출력 선택부 출력상태5-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 35
- 1 -
서 론1
마이크로프로세서 또는 마이컴 은 하나의(Microprocessor) (MicroComputer)
칩 내에 기억 연산 제어장치 등을 구비하고 기존의 범용 컴퓨터의 기능(Chip)
을 수행할 수 있도록 만들어진 다목적 프로그램이 가능한 대용량 논리회로로
일종의 중앙처리 장치이다 즉 컴퓨터의 산술논리 연산기 레지스터 프로 (ALU)
그램 카운터 명령 디코더 제어회로 등의 연산 장치와 제어 장치를 개의 작은 1
실리콘 칩에 모아놓은 처리장치를 말한다
반도체 역사는 년 트랜지스터의 발명으로 시작되어 그로부터 반도체 기1947
술의 눈부신 발전에 힘입어 마이크로프로세서도 성능과 가격과 크기 분야에서
년동안 상상을 초월하는 눈부신 발전을 거듭하고 있다 그러나 마40 이컴의 눈
부신 발전에도 불구하고 현재까지 해결하지 못하는 원초적인 문제가 있는데 그
것은 원인을 알 수 없고 예측이 불가능한 상태에서의 마이컴의 오동작이나 정
상적인 동작이 갑자기 불특정 부위에서 이유 없이 멈춰버리는 것이다 수많은
연구자들이 첨단장비를 동원하여 그 원인을 찾아보았으나 현재까지 근본적인
해결을 하지 못하고 그저 강력한 외부 노이즈 및 환경 등을 원인으로 추론하는
단계에서 진일보 하지 못하고 있다 마이컴의 오동작은 우리 실생활에서 커다란
불편과 또는 심각한 안전의 위협을 초래하고 있지만 현재 까지는 근본적인 문
제해결이 없는 상태에서 간접적 대책으로 대응하고 있는 실정이다 그 예로 최
근 사회적으로 상당한 이슈가 되어 관심이 고조되고 있는 것이 바로 자동차의
급발진 사고와 의료기기 등의 오작동으로 인한 환자들의 사망사고 등이 그 예
가 될 것이다
마이컴이 오동작이나 이상동작을 하였을 때 간접적 대책으로 전원을 하Off
여 리셋하기 위해 사용자에 의해 강제적으로 마이컴 외부의 회로와 스위치RC
를 이용하여 리셋을 시키거나 또는 마이컴 내부의 워치독을 이용하여 프로그램
적으로 워치독 을 실행하는 방법 또는 마이컴 외부에 워치독을 별(Watch Dog)
도로 설치하는 방법 즉 플립플롭 를 조합하여 구성하거나 리셋 전용 IC IC
을 사용하는 것과 같이 대부분 마이컴을 리셋 하는 방법으로 한정되고PST580
있다 이런 기술들은 마이컴의 오동작을 근본적으로 해결을 하지 못하고 다만
리셋을 통한 재부팅 수준에 머므르고 있다 또한 상기 방법들은 마이컴에 이상
- 2 -
동작이 발생하면 마이컴 자체를 리셋 시키므로 처음부터 다시 실행해야 하는
문제점을 안고 있다 즉 중요한 작업을 실행하는 제어기들이 현재까지 진행된
상태를 무시하고 처음단계로 되돌아가야 한다면 경제적 손실은 제외 하더라도
사용자의 생명의 안전까지도 위협하는 심각히 상황을 초래하기도 한다
이런 근본적 문제해결에는 우선적으로 마이컴 제조 관련 연구자 들이 근본적
으로 해결해야 하지만 본 연구에서는 간접적 대책의 일환 이지만 이에 대한 실
질적이고 실용적인 방안을 제시 하였다 그 방법은 마이컴을 이중화 하여 마이
컴이 연산과 실행과정에서 원인모를 이유 때문에 제어 불능 상태에 이르면 이
중화 된 여분의 대기된 마이컴이 곧바로 문제가 발생된 시점으로부터 문제를
일으킨 마이컴의 잔여 작업들을 수행하고 문제를 일으킨 마이컴은 작업이 이관
된 이중화한 마이컴으로부터 적정한 시점에 리셋을 하여 다시 이중화하여 마이
컴의 추가적인 이상동작을 대비하여 상호 보완적으로 대기시키는 방법을 제안
하였다 특히 이모든 것들이 실시간으로 통제하여 제어하는 것이 본 시스템의
특징이라 할 수 있다
본 논문에서는 다음과 같이 구성 되어 있다 장에서는 고장허용 시스템의 2
제어 방법에 대해 가장 보편적인 리셋 기술에 대해 소개한다 장에서는 특허 3
출원기술에 의한 마이컴 오동작 방지 장치에 대해 설명 하였다 장에서는 고 4
가가용성 구현을 위한 이중화 시스템에 대해 설명하였고 기존의 시스템 이중화
에 대한 다양한 기법에 대해 설명하였다 장에서는 본 연구에서 제안한 마이 5 ldquo
컴 이중화를 통한 실시간 연속 제어 시스템 에 대해 설계를 기초로 한 단계별rdquo
설명을 하였다 장에서는 본 연구에서 제안한 마이컴 이중화를 통한 실시간 6 ldquo
연속 제어 시스템 의 실험 결과 및 분석을 평가 하였고 마지막으로 본 논문의rdquo
결론을 맺는다
- 3 -
고장허용 시스템의 제어방법2
리셋 로직21
일반적인 마이컴의 리셋에 관련된 내부 회로는 그림 과 같으며 각각의 세2-1
부 설명은 다음과 같다
그림 의 리셋 로직 회로2-1 ATMEGA128
Figure 2-1 Reset Logic Circuit of ATMEGA128
리셋 입력이 액티브 되면 리셋 동작이 시작되며 병렬 포트가 즉시 디폴IO
트 값으로 출력된다 리셋 입력이 해제 되더라도 마이컴의 동작이 시작되기 까
- 4 -
지 전원전압 가 규정치에 도달하는 시간을 확보하기 위해 워치독 오실레이Vcc
터에 의한 시간지연이 주어지며 여기에 시스템 클록의 안정된 발진을 위하여
기동시간 만큼 시간 지연이 추가로 연장된다 이러한 내부 리셋(Start-up Time)
신호의 지연시간 은 모두 내부의 시간지연 카운터에 의하여 만들어 지며Tout
각 발진모드에 따른 시간지연 값은 퓨즈비트의 및 에 의하여SUT1~0 CKSEL0
선택된다 일반적인 마이컴의 시스템 리셋 소스는 파워온리셋 (Powr-on Reset)
외부리셋 워치독 리셋 부라운 리셋(External Reset) (Watchdog Reset)
재덱 와 같이 종이 있다 시스템에서 어떤(Brown-out Reset) (JTAG Reset) 5
원인에 의해 마이컴이 리셋 되었는지 알아보기 위해서는 SPECIAL FUNTION
레지스터 의 상태를 점검해보면 알수 있다 즉 레지스ldquoMCUCSRrdquo ldquoMCUCSRrdquo
터는 마이컴의 제어와 상태를 나타내는 레지스터로 리셋이 발생하면 해당하는
비트가 로 설정 되므로 어떤 유형의 리셋이 발생 했는지 필요에 따라 외부ldquo1rdquo
에서 검사할 수 있는 레지스터이다 각 비트별 레지스터의 용도는 표 MCUSCR
과 같다 비트 는 파워온리셋 플레그 로 사2-1 0 PORF (Power-on Reset Flag)
용되며 비트 는 외부리셋 플레그 로 사용된다 1 EXTRF (External Reset Flag) 2
비트 는 부라운 리셋 플레그 로 사용하고 비BORF (Brown-out Reset Flag) 3
트 는 워치독 플레그 로 사용한다 비트WDRF (Watchdog Reset Flag) 4 JTRF
는 재댁 플레그 로 사용된다(JTAG Reset Flag)
표 레지스터2-1 MCUSCR
Table 2-1 MCUSCR Register
리셋의 전기적 특성22
는 파워온 리셋에서 상승 임계전압이며 대표값은 이며 하강 임계전Vpot 14V
압은 이다 은 리셋의 임계전압이며 최소값은 이고 최대값은13V Vrst 02Vcc
이다 는 리셋에 필요한 최소펄스폭이며 이때 최소값은 이085Vcc Trst 15us
Bit 7 6 5 4 3 2 1 0
Name JTG - - JTRF WDRF BORF EXTRF PORF
- 5 -
다 는 부라운 리셋 임계전압으로 레벨이 일 경우 대표값은 이 Vbot BOD 1 26V
며 레벨이 일 경우는 대표값이 이다 는 부라운 리셋의 최소전BOD 0 40V Tbod
압이 걸리는 시간을 나타내며 레벨이 일 경우와 인 경우 모두의 대표값BOD 1 0
은 이다 는 부라운 리셋의 감지시 히스테리시스를 나타내며 값은20us Vhyst
이다 표 는 리셋관련 전기적 특성을 나타낸다100mV 2-2
표 리셋의 전기적 특성2-2
Table 2-2 Electrical Character of Reset
전원 투입 리셋23
전원이 인가되면 곧바로 마이컴을 리셋 시키고 전원전압이 에 도달하면 Vpot
시간지연 카운터의 동작에 따라 전원전압이 의 이상으로 된 이후에도 일정Vpot
한 시간동안 리셋을 유지한다 이후 정상적으로 작동하다가 인가전압 Vcc(5V)
가 전원투입 리셋의 임계값 보다 이하일(Power-on Reset Threshold (Vpot))
때 마이컴 내부에 위치한 리셋회로가 작동한다 인 경우에는 초기 ATMEGA128
에 전원이 에 도달하면 전원투입 리셋이 작동되고 정상적으로 작동되다14V
가 전원전압이 이하로 내려가도 전원투입 리셋이 작동된다 그림 는 리13V 2-2
셋핀을 에 접속한 상태에서 시작한 경우의 타이밍 도이다Vcc
- 6 -
그림 전원투입리셋 타이밍도 리셋핀을 에 접속한 상태2-2 ( Vcc )
Figure 2-2 Timing Diagram of Power on Reset
외부 리셋24
그림 은 외부리셋 회로도이며 외부에 스위치를 장착하여 사용자에 의해2-3
스위치를 누르게 되면 마이컴의 단자는 평소 로 되어 있다가Reset High(5V)
가 되고 최소 펄스폭 이상의 이 지속될 때 리셋이 작동하LOW (15us) Low Level
게 된다 이때 전해콘덴서는 전원투입 후 리셋단자에 일정시간 지연 후 작동하
기 위한 지연용 콘덴서이다
그림 외부리셋 회로도2-3
Figure 2-3 External Reset Circuit
외부리셋의 타이밍도는 그림 와 같으며 번 단자의 에2-4 20 PIN RESET 50ns
이상의 이 지속되어 입력되면 리셋이 발생한다 즉Low Level Active Low 5V
일때 되고 일때 되어 리셋 된다Disable GND Enable
SW1
RESET
R110Ω
VCC_5V
C110uF
RESET
- 7 -
그림 외부리셋 타이밍도2-4
Figure 2-4 Timing Diagram of External Reset
저전압 검출 리셋25 (Brown-Out Reset)
마이컴에 인가되는 인가전압 가 순간적으로 전압 이하Vcc(5V) Brown-out
또는 로 내려가서 이상 지속되면 마이컴의 오동작을 방지하기 위(26V 4V) 2us
해 마이컴을 리셋하게 되고 마이컴에 따라 전압은BOD(Brown-Out Detection)
별도로 설정하도록 되어 있다 마이컴 메이커에 따라 LVD(Low Voltage
라고도 한다 또한 전압 스파이크에 의한 오동작을 방지하기 위해 전압Detect)
검출에 히스테리시스를 적용하도록 되어 있다 즉 전압이 감소할때에는 Vbot-
이하로 될 때 리셋이 작동되고 전압이 증가 할때에는= Vbot - Vhyst 2
이상으로 될 때 리셋이 해제 된다 그림 는 저Vbot+= Vbot + Vhyst 2 2-5
전압 검출 리셋의 타이밍도 이다
그림 저전압 검출 리셋 타이밍도2-5
Figure 2-5 Timing Diagram of Brown out Detection
- 8 -
재덱 리셋26 (JTAG Reset)
은 논리 복잡도가 높고 복잡한 기능을 수행JTAG(Joint Test Action Group)
하는 과 같은 부품들을 시험하는 것이 너무 복잡하여 좀 더 체계적으로ASIC
시험을 할 수 있도록 해보자는 취지로 와 같은 데이터 전boundary scan test
송 포맷으로 컴퓨터와 반도체 소자를 연결하여 온칩 디버깅 불휘발성 메모리의
프로그래밍 테스트 등을 수행하는 인터페이스 기술로써 현재는 PCB IEEE
로 국제 표준 규약으로 되어 있다 이는 내부를 몇개의Standard 11491 ASIC
블록으로 나누고 각 블록의 경계에 직렬로 시험용 신호 패턴을 입력하고 블록
을 작동시킨 후 신호를 출력하여 검사하는 방법을 사용하여 내부 블록 ASIC
기능 시험을 수행 하여 부품의 양부를 판정하기 위한 표준 규약이다 은 JTAG
이며 은 레지스터 형식을 가지Boundary-Scan Cell Boundary-Scan Cell Shift
며 각 의 상태를 읽고 쓰는 것은 입출력 방식을 이용한다 은 Cell Serial JTAG
의 코어가 들어있는 의 외부 단자중 단자를CPU CPLD TAP(Test Access Port)
사용하고 그 단자들의 용도는 표 과 같다 은 사용자가 시스템2-3 JTAG Reset
의 하드웨어적 디버깅을 으로 시행할 때 필요에 따라 레지스터를JTAG Reset
설정하여 발생시킬 수 있다
표 의 의 용도2-3 JTAG TAP
Table 2-3 Usage of JTAG TAP
TDI Test Data In
TDO Test Data Out
TMS Test Mode Select
TCK Test Clock
TRST Test Reset
- 9 -
워치독 리셋28 (Watchdog Reset)
워치독 타이머에서 지정된 주기 이상의 시간이 경과 되었을때 사용되는 리셋
으로 지정된 주기가 완료되기 전에 소프트웨어 명령으로 그 값을 클리어 시켜
주지 않으면 마이컴을 리셋시켜 궁국적으로 시스템이 정상적으로 동작하고 있
는지 감시하고 오동작을 방지하여 마이컴의 신뢰성을 향상시키는 기술이다
을 기준하여 상의 워치독 타이머의 레지스터 구성도는AVR128 DATA SHEET
그림 와 같다2-6
그림 워치독 타이머의 레지스터 구성도2-6
Figure 2-6 Configuration of Watchdog Timer Register
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- vi -
그림 위치가 전위된 펄스 파형5-8 GND middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 31
그림 펄스 파형이 적분된 파형5-9 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 32
그림 출력 선택부 회로도5-10 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 34
그림 프로그램 용어선언5-11 1( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 36
그림 프로그램 상수 및 포트 정의5-12 2( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 36
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 37
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 37
그림 프로그램 타이머 초기화5-15 5( 0 ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 38
그림 프로그램 출력 포트 초기화5-16 6( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 38
그림 프로그램 하드웨어 초기화5-17 7( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 39
그림 프로그램 래치 딜레이5-18 8( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 40
그림 프로그램 순차 점등출력5-19 9(LED ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 42
그림 프로그램 타이머5-20 10( 0 ISR) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 43
그림 프로그램 메인 프로그램5-21 11( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 43
그림 마이컴의 정상유무를 위한 출력파형6-1 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 44
그림 출력 파형6-2 LED ONOFF SHIFT middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 45
- vii -
표 목차
표 레지스터2-1 MCUSCR middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 4
표 리셋의 전기적 특성2-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 5
표 의 의 용도2-3 JTAG TAP middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 8
표 워치독 타이머 에 따른2-4 WDP PRESCALER middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 11
표 3-1 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
표 3-2 특허출원 정보 마이컴 리셋장치( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 16
표 플립플롭 진리표5-1 S-R middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 32
표 출력 선택부 출력상태5-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 35
- 1 -
서 론1
마이크로프로세서 또는 마이컴 은 하나의(Microprocessor) (MicroComputer)
칩 내에 기억 연산 제어장치 등을 구비하고 기존의 범용 컴퓨터의 기능(Chip)
을 수행할 수 있도록 만들어진 다목적 프로그램이 가능한 대용량 논리회로로
일종의 중앙처리 장치이다 즉 컴퓨터의 산술논리 연산기 레지스터 프로 (ALU)
그램 카운터 명령 디코더 제어회로 등의 연산 장치와 제어 장치를 개의 작은 1
실리콘 칩에 모아놓은 처리장치를 말한다
반도체 역사는 년 트랜지스터의 발명으로 시작되어 그로부터 반도체 기1947
술의 눈부신 발전에 힘입어 마이크로프로세서도 성능과 가격과 크기 분야에서
년동안 상상을 초월하는 눈부신 발전을 거듭하고 있다 그러나 마40 이컴의 눈
부신 발전에도 불구하고 현재까지 해결하지 못하는 원초적인 문제가 있는데 그
것은 원인을 알 수 없고 예측이 불가능한 상태에서의 마이컴의 오동작이나 정
상적인 동작이 갑자기 불특정 부위에서 이유 없이 멈춰버리는 것이다 수많은
연구자들이 첨단장비를 동원하여 그 원인을 찾아보았으나 현재까지 근본적인
해결을 하지 못하고 그저 강력한 외부 노이즈 및 환경 등을 원인으로 추론하는
단계에서 진일보 하지 못하고 있다 마이컴의 오동작은 우리 실생활에서 커다란
불편과 또는 심각한 안전의 위협을 초래하고 있지만 현재 까지는 근본적인 문
제해결이 없는 상태에서 간접적 대책으로 대응하고 있는 실정이다 그 예로 최
근 사회적으로 상당한 이슈가 되어 관심이 고조되고 있는 것이 바로 자동차의
급발진 사고와 의료기기 등의 오작동으로 인한 환자들의 사망사고 등이 그 예
가 될 것이다
마이컴이 오동작이나 이상동작을 하였을 때 간접적 대책으로 전원을 하Off
여 리셋하기 위해 사용자에 의해 강제적으로 마이컴 외부의 회로와 스위치RC
를 이용하여 리셋을 시키거나 또는 마이컴 내부의 워치독을 이용하여 프로그램
적으로 워치독 을 실행하는 방법 또는 마이컴 외부에 워치독을 별(Watch Dog)
도로 설치하는 방법 즉 플립플롭 를 조합하여 구성하거나 리셋 전용 IC IC
을 사용하는 것과 같이 대부분 마이컴을 리셋 하는 방법으로 한정되고PST580
있다 이런 기술들은 마이컴의 오동작을 근본적으로 해결을 하지 못하고 다만
리셋을 통한 재부팅 수준에 머므르고 있다 또한 상기 방법들은 마이컴에 이상
- 2 -
동작이 발생하면 마이컴 자체를 리셋 시키므로 처음부터 다시 실행해야 하는
문제점을 안고 있다 즉 중요한 작업을 실행하는 제어기들이 현재까지 진행된
상태를 무시하고 처음단계로 되돌아가야 한다면 경제적 손실은 제외 하더라도
사용자의 생명의 안전까지도 위협하는 심각히 상황을 초래하기도 한다
이런 근본적 문제해결에는 우선적으로 마이컴 제조 관련 연구자 들이 근본적
으로 해결해야 하지만 본 연구에서는 간접적 대책의 일환 이지만 이에 대한 실
질적이고 실용적인 방안을 제시 하였다 그 방법은 마이컴을 이중화 하여 마이
컴이 연산과 실행과정에서 원인모를 이유 때문에 제어 불능 상태에 이르면 이
중화 된 여분의 대기된 마이컴이 곧바로 문제가 발생된 시점으로부터 문제를
일으킨 마이컴의 잔여 작업들을 수행하고 문제를 일으킨 마이컴은 작업이 이관
된 이중화한 마이컴으로부터 적정한 시점에 리셋을 하여 다시 이중화하여 마이
컴의 추가적인 이상동작을 대비하여 상호 보완적으로 대기시키는 방법을 제안
하였다 특히 이모든 것들이 실시간으로 통제하여 제어하는 것이 본 시스템의
특징이라 할 수 있다
본 논문에서는 다음과 같이 구성 되어 있다 장에서는 고장허용 시스템의 2
제어 방법에 대해 가장 보편적인 리셋 기술에 대해 소개한다 장에서는 특허 3
출원기술에 의한 마이컴 오동작 방지 장치에 대해 설명 하였다 장에서는 고 4
가가용성 구현을 위한 이중화 시스템에 대해 설명하였고 기존의 시스템 이중화
에 대한 다양한 기법에 대해 설명하였다 장에서는 본 연구에서 제안한 마이 5 ldquo
컴 이중화를 통한 실시간 연속 제어 시스템 에 대해 설계를 기초로 한 단계별rdquo
설명을 하였다 장에서는 본 연구에서 제안한 마이컴 이중화를 통한 실시간 6 ldquo
연속 제어 시스템 의 실험 결과 및 분석을 평가 하였고 마지막으로 본 논문의rdquo
결론을 맺는다
- 3 -
고장허용 시스템의 제어방법2
리셋 로직21
일반적인 마이컴의 리셋에 관련된 내부 회로는 그림 과 같으며 각각의 세2-1
부 설명은 다음과 같다
그림 의 리셋 로직 회로2-1 ATMEGA128
Figure 2-1 Reset Logic Circuit of ATMEGA128
리셋 입력이 액티브 되면 리셋 동작이 시작되며 병렬 포트가 즉시 디폴IO
트 값으로 출력된다 리셋 입력이 해제 되더라도 마이컴의 동작이 시작되기 까
- 4 -
지 전원전압 가 규정치에 도달하는 시간을 확보하기 위해 워치독 오실레이Vcc
터에 의한 시간지연이 주어지며 여기에 시스템 클록의 안정된 발진을 위하여
기동시간 만큼 시간 지연이 추가로 연장된다 이러한 내부 리셋(Start-up Time)
신호의 지연시간 은 모두 내부의 시간지연 카운터에 의하여 만들어 지며Tout
각 발진모드에 따른 시간지연 값은 퓨즈비트의 및 에 의하여SUT1~0 CKSEL0
선택된다 일반적인 마이컴의 시스템 리셋 소스는 파워온리셋 (Powr-on Reset)
외부리셋 워치독 리셋 부라운 리셋(External Reset) (Watchdog Reset)
재덱 와 같이 종이 있다 시스템에서 어떤(Brown-out Reset) (JTAG Reset) 5
원인에 의해 마이컴이 리셋 되었는지 알아보기 위해서는 SPECIAL FUNTION
레지스터 의 상태를 점검해보면 알수 있다 즉 레지스ldquoMCUCSRrdquo ldquoMCUCSRrdquo
터는 마이컴의 제어와 상태를 나타내는 레지스터로 리셋이 발생하면 해당하는
비트가 로 설정 되므로 어떤 유형의 리셋이 발생 했는지 필요에 따라 외부ldquo1rdquo
에서 검사할 수 있는 레지스터이다 각 비트별 레지스터의 용도는 표 MCUSCR
과 같다 비트 는 파워온리셋 플레그 로 사2-1 0 PORF (Power-on Reset Flag)
용되며 비트 는 외부리셋 플레그 로 사용된다 1 EXTRF (External Reset Flag) 2
비트 는 부라운 리셋 플레그 로 사용하고 비BORF (Brown-out Reset Flag) 3
트 는 워치독 플레그 로 사용한다 비트WDRF (Watchdog Reset Flag) 4 JTRF
는 재댁 플레그 로 사용된다(JTAG Reset Flag)
표 레지스터2-1 MCUSCR
Table 2-1 MCUSCR Register
리셋의 전기적 특성22
는 파워온 리셋에서 상승 임계전압이며 대표값은 이며 하강 임계전Vpot 14V
압은 이다 은 리셋의 임계전압이며 최소값은 이고 최대값은13V Vrst 02Vcc
이다 는 리셋에 필요한 최소펄스폭이며 이때 최소값은 이085Vcc Trst 15us
Bit 7 6 5 4 3 2 1 0
Name JTG - - JTRF WDRF BORF EXTRF PORF
- 5 -
다 는 부라운 리셋 임계전압으로 레벨이 일 경우 대표값은 이 Vbot BOD 1 26V
며 레벨이 일 경우는 대표값이 이다 는 부라운 리셋의 최소전BOD 0 40V Tbod
압이 걸리는 시간을 나타내며 레벨이 일 경우와 인 경우 모두의 대표값BOD 1 0
은 이다 는 부라운 리셋의 감지시 히스테리시스를 나타내며 값은20us Vhyst
이다 표 는 리셋관련 전기적 특성을 나타낸다100mV 2-2
표 리셋의 전기적 특성2-2
Table 2-2 Electrical Character of Reset
전원 투입 리셋23
전원이 인가되면 곧바로 마이컴을 리셋 시키고 전원전압이 에 도달하면 Vpot
시간지연 카운터의 동작에 따라 전원전압이 의 이상으로 된 이후에도 일정Vpot
한 시간동안 리셋을 유지한다 이후 정상적으로 작동하다가 인가전압 Vcc(5V)
가 전원투입 리셋의 임계값 보다 이하일(Power-on Reset Threshold (Vpot))
때 마이컴 내부에 위치한 리셋회로가 작동한다 인 경우에는 초기 ATMEGA128
에 전원이 에 도달하면 전원투입 리셋이 작동되고 정상적으로 작동되다14V
가 전원전압이 이하로 내려가도 전원투입 리셋이 작동된다 그림 는 리13V 2-2
셋핀을 에 접속한 상태에서 시작한 경우의 타이밍 도이다Vcc
- 6 -
그림 전원투입리셋 타이밍도 리셋핀을 에 접속한 상태2-2 ( Vcc )
Figure 2-2 Timing Diagram of Power on Reset
외부 리셋24
그림 은 외부리셋 회로도이며 외부에 스위치를 장착하여 사용자에 의해2-3
스위치를 누르게 되면 마이컴의 단자는 평소 로 되어 있다가Reset High(5V)
가 되고 최소 펄스폭 이상의 이 지속될 때 리셋이 작동하LOW (15us) Low Level
게 된다 이때 전해콘덴서는 전원투입 후 리셋단자에 일정시간 지연 후 작동하
기 위한 지연용 콘덴서이다
그림 외부리셋 회로도2-3
Figure 2-3 External Reset Circuit
외부리셋의 타이밍도는 그림 와 같으며 번 단자의 에2-4 20 PIN RESET 50ns
이상의 이 지속되어 입력되면 리셋이 발생한다 즉Low Level Active Low 5V
일때 되고 일때 되어 리셋 된다Disable GND Enable
SW1
RESET
R110Ω
VCC_5V
C110uF
RESET
- 7 -
그림 외부리셋 타이밍도2-4
Figure 2-4 Timing Diagram of External Reset
저전압 검출 리셋25 (Brown-Out Reset)
마이컴에 인가되는 인가전압 가 순간적으로 전압 이하Vcc(5V) Brown-out
또는 로 내려가서 이상 지속되면 마이컴의 오동작을 방지하기 위(26V 4V) 2us
해 마이컴을 리셋하게 되고 마이컴에 따라 전압은BOD(Brown-Out Detection)
별도로 설정하도록 되어 있다 마이컴 메이커에 따라 LVD(Low Voltage
라고도 한다 또한 전압 스파이크에 의한 오동작을 방지하기 위해 전압Detect)
검출에 히스테리시스를 적용하도록 되어 있다 즉 전압이 감소할때에는 Vbot-
이하로 될 때 리셋이 작동되고 전압이 증가 할때에는= Vbot - Vhyst 2
이상으로 될 때 리셋이 해제 된다 그림 는 저Vbot+= Vbot + Vhyst 2 2-5
전압 검출 리셋의 타이밍도 이다
그림 저전압 검출 리셋 타이밍도2-5
Figure 2-5 Timing Diagram of Brown out Detection
- 8 -
재덱 리셋26 (JTAG Reset)
은 논리 복잡도가 높고 복잡한 기능을 수행JTAG(Joint Test Action Group)
하는 과 같은 부품들을 시험하는 것이 너무 복잡하여 좀 더 체계적으로ASIC
시험을 할 수 있도록 해보자는 취지로 와 같은 데이터 전boundary scan test
송 포맷으로 컴퓨터와 반도체 소자를 연결하여 온칩 디버깅 불휘발성 메모리의
프로그래밍 테스트 등을 수행하는 인터페이스 기술로써 현재는 PCB IEEE
로 국제 표준 규약으로 되어 있다 이는 내부를 몇개의Standard 11491 ASIC
블록으로 나누고 각 블록의 경계에 직렬로 시험용 신호 패턴을 입력하고 블록
을 작동시킨 후 신호를 출력하여 검사하는 방법을 사용하여 내부 블록 ASIC
기능 시험을 수행 하여 부품의 양부를 판정하기 위한 표준 규약이다 은 JTAG
이며 은 레지스터 형식을 가지Boundary-Scan Cell Boundary-Scan Cell Shift
며 각 의 상태를 읽고 쓰는 것은 입출력 방식을 이용한다 은 Cell Serial JTAG
의 코어가 들어있는 의 외부 단자중 단자를CPU CPLD TAP(Test Access Port)
사용하고 그 단자들의 용도는 표 과 같다 은 사용자가 시스템2-3 JTAG Reset
의 하드웨어적 디버깅을 으로 시행할 때 필요에 따라 레지스터를JTAG Reset
설정하여 발생시킬 수 있다
표 의 의 용도2-3 JTAG TAP
Table 2-3 Usage of JTAG TAP
TDI Test Data In
TDO Test Data Out
TMS Test Mode Select
TCK Test Clock
TRST Test Reset
- 9 -
워치독 리셋28 (Watchdog Reset)
워치독 타이머에서 지정된 주기 이상의 시간이 경과 되었을때 사용되는 리셋
으로 지정된 주기가 완료되기 전에 소프트웨어 명령으로 그 값을 클리어 시켜
주지 않으면 마이컴을 리셋시켜 궁국적으로 시스템이 정상적으로 동작하고 있
는지 감시하고 오동작을 방지하여 마이컴의 신뢰성을 향상시키는 기술이다
을 기준하여 상의 워치독 타이머의 레지스터 구성도는AVR128 DATA SHEET
그림 와 같다2-6
그림 워치독 타이머의 레지스터 구성도2-6
Figure 2-6 Configuration of Watchdog Timer Register
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- vii -
표 목차
표 레지스터2-1 MCUSCR middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 4
표 리셋의 전기적 특성2-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 5
표 의 의 용도2-3 JTAG TAP middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 8
표 워치독 타이머 에 따른2-4 WDP PRESCALER middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 11
표 3-1 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 13
표 3-2 특허출원 정보 마이컴 리셋장치( ) middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 16
표 플립플롭 진리표5-1 S-R middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 32
표 출력 선택부 출력상태5-2 middotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddotmiddot 35
- 1 -
서 론1
마이크로프로세서 또는 마이컴 은 하나의(Microprocessor) (MicroComputer)
칩 내에 기억 연산 제어장치 등을 구비하고 기존의 범용 컴퓨터의 기능(Chip)
을 수행할 수 있도록 만들어진 다목적 프로그램이 가능한 대용량 논리회로로
일종의 중앙처리 장치이다 즉 컴퓨터의 산술논리 연산기 레지스터 프로 (ALU)
그램 카운터 명령 디코더 제어회로 등의 연산 장치와 제어 장치를 개의 작은 1
실리콘 칩에 모아놓은 처리장치를 말한다
반도체 역사는 년 트랜지스터의 발명으로 시작되어 그로부터 반도체 기1947
술의 눈부신 발전에 힘입어 마이크로프로세서도 성능과 가격과 크기 분야에서
년동안 상상을 초월하는 눈부신 발전을 거듭하고 있다 그러나 마40 이컴의 눈
부신 발전에도 불구하고 현재까지 해결하지 못하는 원초적인 문제가 있는데 그
것은 원인을 알 수 없고 예측이 불가능한 상태에서의 마이컴의 오동작이나 정
상적인 동작이 갑자기 불특정 부위에서 이유 없이 멈춰버리는 것이다 수많은
연구자들이 첨단장비를 동원하여 그 원인을 찾아보았으나 현재까지 근본적인
해결을 하지 못하고 그저 강력한 외부 노이즈 및 환경 등을 원인으로 추론하는
단계에서 진일보 하지 못하고 있다 마이컴의 오동작은 우리 실생활에서 커다란
불편과 또는 심각한 안전의 위협을 초래하고 있지만 현재 까지는 근본적인 문
제해결이 없는 상태에서 간접적 대책으로 대응하고 있는 실정이다 그 예로 최
근 사회적으로 상당한 이슈가 되어 관심이 고조되고 있는 것이 바로 자동차의
급발진 사고와 의료기기 등의 오작동으로 인한 환자들의 사망사고 등이 그 예
가 될 것이다
마이컴이 오동작이나 이상동작을 하였을 때 간접적 대책으로 전원을 하Off
여 리셋하기 위해 사용자에 의해 강제적으로 마이컴 외부의 회로와 스위치RC
를 이용하여 리셋을 시키거나 또는 마이컴 내부의 워치독을 이용하여 프로그램
적으로 워치독 을 실행하는 방법 또는 마이컴 외부에 워치독을 별(Watch Dog)
도로 설치하는 방법 즉 플립플롭 를 조합하여 구성하거나 리셋 전용 IC IC
을 사용하는 것과 같이 대부분 마이컴을 리셋 하는 방법으로 한정되고PST580
있다 이런 기술들은 마이컴의 오동작을 근본적으로 해결을 하지 못하고 다만
리셋을 통한 재부팅 수준에 머므르고 있다 또한 상기 방법들은 마이컴에 이상
- 2 -
동작이 발생하면 마이컴 자체를 리셋 시키므로 처음부터 다시 실행해야 하는
문제점을 안고 있다 즉 중요한 작업을 실행하는 제어기들이 현재까지 진행된
상태를 무시하고 처음단계로 되돌아가야 한다면 경제적 손실은 제외 하더라도
사용자의 생명의 안전까지도 위협하는 심각히 상황을 초래하기도 한다
이런 근본적 문제해결에는 우선적으로 마이컴 제조 관련 연구자 들이 근본적
으로 해결해야 하지만 본 연구에서는 간접적 대책의 일환 이지만 이에 대한 실
질적이고 실용적인 방안을 제시 하였다 그 방법은 마이컴을 이중화 하여 마이
컴이 연산과 실행과정에서 원인모를 이유 때문에 제어 불능 상태에 이르면 이
중화 된 여분의 대기된 마이컴이 곧바로 문제가 발생된 시점으로부터 문제를
일으킨 마이컴의 잔여 작업들을 수행하고 문제를 일으킨 마이컴은 작업이 이관
된 이중화한 마이컴으로부터 적정한 시점에 리셋을 하여 다시 이중화하여 마이
컴의 추가적인 이상동작을 대비하여 상호 보완적으로 대기시키는 방법을 제안
하였다 특히 이모든 것들이 실시간으로 통제하여 제어하는 것이 본 시스템의
특징이라 할 수 있다
본 논문에서는 다음과 같이 구성 되어 있다 장에서는 고장허용 시스템의 2
제어 방법에 대해 가장 보편적인 리셋 기술에 대해 소개한다 장에서는 특허 3
출원기술에 의한 마이컴 오동작 방지 장치에 대해 설명 하였다 장에서는 고 4
가가용성 구현을 위한 이중화 시스템에 대해 설명하였고 기존의 시스템 이중화
에 대한 다양한 기법에 대해 설명하였다 장에서는 본 연구에서 제안한 마이 5 ldquo
컴 이중화를 통한 실시간 연속 제어 시스템 에 대해 설계를 기초로 한 단계별rdquo
설명을 하였다 장에서는 본 연구에서 제안한 마이컴 이중화를 통한 실시간 6 ldquo
연속 제어 시스템 의 실험 결과 및 분석을 평가 하였고 마지막으로 본 논문의rdquo
결론을 맺는다
- 3 -
고장허용 시스템의 제어방법2
리셋 로직21
일반적인 마이컴의 리셋에 관련된 내부 회로는 그림 과 같으며 각각의 세2-1
부 설명은 다음과 같다
그림 의 리셋 로직 회로2-1 ATMEGA128
Figure 2-1 Reset Logic Circuit of ATMEGA128
리셋 입력이 액티브 되면 리셋 동작이 시작되며 병렬 포트가 즉시 디폴IO
트 값으로 출력된다 리셋 입력이 해제 되더라도 마이컴의 동작이 시작되기 까
- 4 -
지 전원전압 가 규정치에 도달하는 시간을 확보하기 위해 워치독 오실레이Vcc
터에 의한 시간지연이 주어지며 여기에 시스템 클록의 안정된 발진을 위하여
기동시간 만큼 시간 지연이 추가로 연장된다 이러한 내부 리셋(Start-up Time)
신호의 지연시간 은 모두 내부의 시간지연 카운터에 의하여 만들어 지며Tout
각 발진모드에 따른 시간지연 값은 퓨즈비트의 및 에 의하여SUT1~0 CKSEL0
선택된다 일반적인 마이컴의 시스템 리셋 소스는 파워온리셋 (Powr-on Reset)
외부리셋 워치독 리셋 부라운 리셋(External Reset) (Watchdog Reset)
재덱 와 같이 종이 있다 시스템에서 어떤(Brown-out Reset) (JTAG Reset) 5
원인에 의해 마이컴이 리셋 되었는지 알아보기 위해서는 SPECIAL FUNTION
레지스터 의 상태를 점검해보면 알수 있다 즉 레지스ldquoMCUCSRrdquo ldquoMCUCSRrdquo
터는 마이컴의 제어와 상태를 나타내는 레지스터로 리셋이 발생하면 해당하는
비트가 로 설정 되므로 어떤 유형의 리셋이 발생 했는지 필요에 따라 외부ldquo1rdquo
에서 검사할 수 있는 레지스터이다 각 비트별 레지스터의 용도는 표 MCUSCR
과 같다 비트 는 파워온리셋 플레그 로 사2-1 0 PORF (Power-on Reset Flag)
용되며 비트 는 외부리셋 플레그 로 사용된다 1 EXTRF (External Reset Flag) 2
비트 는 부라운 리셋 플레그 로 사용하고 비BORF (Brown-out Reset Flag) 3
트 는 워치독 플레그 로 사용한다 비트WDRF (Watchdog Reset Flag) 4 JTRF
는 재댁 플레그 로 사용된다(JTAG Reset Flag)
표 레지스터2-1 MCUSCR
Table 2-1 MCUSCR Register
리셋의 전기적 특성22
는 파워온 리셋에서 상승 임계전압이며 대표값은 이며 하강 임계전Vpot 14V
압은 이다 은 리셋의 임계전압이며 최소값은 이고 최대값은13V Vrst 02Vcc
이다 는 리셋에 필요한 최소펄스폭이며 이때 최소값은 이085Vcc Trst 15us
Bit 7 6 5 4 3 2 1 0
Name JTG - - JTRF WDRF BORF EXTRF PORF
- 5 -
다 는 부라운 리셋 임계전압으로 레벨이 일 경우 대표값은 이 Vbot BOD 1 26V
며 레벨이 일 경우는 대표값이 이다 는 부라운 리셋의 최소전BOD 0 40V Tbod
압이 걸리는 시간을 나타내며 레벨이 일 경우와 인 경우 모두의 대표값BOD 1 0
은 이다 는 부라운 리셋의 감지시 히스테리시스를 나타내며 값은20us Vhyst
이다 표 는 리셋관련 전기적 특성을 나타낸다100mV 2-2
표 리셋의 전기적 특성2-2
Table 2-2 Electrical Character of Reset
전원 투입 리셋23
전원이 인가되면 곧바로 마이컴을 리셋 시키고 전원전압이 에 도달하면 Vpot
시간지연 카운터의 동작에 따라 전원전압이 의 이상으로 된 이후에도 일정Vpot
한 시간동안 리셋을 유지한다 이후 정상적으로 작동하다가 인가전압 Vcc(5V)
가 전원투입 리셋의 임계값 보다 이하일(Power-on Reset Threshold (Vpot))
때 마이컴 내부에 위치한 리셋회로가 작동한다 인 경우에는 초기 ATMEGA128
에 전원이 에 도달하면 전원투입 리셋이 작동되고 정상적으로 작동되다14V
가 전원전압이 이하로 내려가도 전원투입 리셋이 작동된다 그림 는 리13V 2-2
셋핀을 에 접속한 상태에서 시작한 경우의 타이밍 도이다Vcc
- 6 -
그림 전원투입리셋 타이밍도 리셋핀을 에 접속한 상태2-2 ( Vcc )
Figure 2-2 Timing Diagram of Power on Reset
외부 리셋24
그림 은 외부리셋 회로도이며 외부에 스위치를 장착하여 사용자에 의해2-3
스위치를 누르게 되면 마이컴의 단자는 평소 로 되어 있다가Reset High(5V)
가 되고 최소 펄스폭 이상의 이 지속될 때 리셋이 작동하LOW (15us) Low Level
게 된다 이때 전해콘덴서는 전원투입 후 리셋단자에 일정시간 지연 후 작동하
기 위한 지연용 콘덴서이다
그림 외부리셋 회로도2-3
Figure 2-3 External Reset Circuit
외부리셋의 타이밍도는 그림 와 같으며 번 단자의 에2-4 20 PIN RESET 50ns
이상의 이 지속되어 입력되면 리셋이 발생한다 즉Low Level Active Low 5V
일때 되고 일때 되어 리셋 된다Disable GND Enable
SW1
RESET
R110Ω
VCC_5V
C110uF
RESET
- 7 -
그림 외부리셋 타이밍도2-4
Figure 2-4 Timing Diagram of External Reset
저전압 검출 리셋25 (Brown-Out Reset)
마이컴에 인가되는 인가전압 가 순간적으로 전압 이하Vcc(5V) Brown-out
또는 로 내려가서 이상 지속되면 마이컴의 오동작을 방지하기 위(26V 4V) 2us
해 마이컴을 리셋하게 되고 마이컴에 따라 전압은BOD(Brown-Out Detection)
별도로 설정하도록 되어 있다 마이컴 메이커에 따라 LVD(Low Voltage
라고도 한다 또한 전압 스파이크에 의한 오동작을 방지하기 위해 전압Detect)
검출에 히스테리시스를 적용하도록 되어 있다 즉 전압이 감소할때에는 Vbot-
이하로 될 때 리셋이 작동되고 전압이 증가 할때에는= Vbot - Vhyst 2
이상으로 될 때 리셋이 해제 된다 그림 는 저Vbot+= Vbot + Vhyst 2 2-5
전압 검출 리셋의 타이밍도 이다
그림 저전압 검출 리셋 타이밍도2-5
Figure 2-5 Timing Diagram of Brown out Detection
- 8 -
재덱 리셋26 (JTAG Reset)
은 논리 복잡도가 높고 복잡한 기능을 수행JTAG(Joint Test Action Group)
하는 과 같은 부품들을 시험하는 것이 너무 복잡하여 좀 더 체계적으로ASIC
시험을 할 수 있도록 해보자는 취지로 와 같은 데이터 전boundary scan test
송 포맷으로 컴퓨터와 반도체 소자를 연결하여 온칩 디버깅 불휘발성 메모리의
프로그래밍 테스트 등을 수행하는 인터페이스 기술로써 현재는 PCB IEEE
로 국제 표준 규약으로 되어 있다 이는 내부를 몇개의Standard 11491 ASIC
블록으로 나누고 각 블록의 경계에 직렬로 시험용 신호 패턴을 입력하고 블록
을 작동시킨 후 신호를 출력하여 검사하는 방법을 사용하여 내부 블록 ASIC
기능 시험을 수행 하여 부품의 양부를 판정하기 위한 표준 규약이다 은 JTAG
이며 은 레지스터 형식을 가지Boundary-Scan Cell Boundary-Scan Cell Shift
며 각 의 상태를 읽고 쓰는 것은 입출력 방식을 이용한다 은 Cell Serial JTAG
의 코어가 들어있는 의 외부 단자중 단자를CPU CPLD TAP(Test Access Port)
사용하고 그 단자들의 용도는 표 과 같다 은 사용자가 시스템2-3 JTAG Reset
의 하드웨어적 디버깅을 으로 시행할 때 필요에 따라 레지스터를JTAG Reset
설정하여 발생시킬 수 있다
표 의 의 용도2-3 JTAG TAP
Table 2-3 Usage of JTAG TAP
TDI Test Data In
TDO Test Data Out
TMS Test Mode Select
TCK Test Clock
TRST Test Reset
- 9 -
워치독 리셋28 (Watchdog Reset)
워치독 타이머에서 지정된 주기 이상의 시간이 경과 되었을때 사용되는 리셋
으로 지정된 주기가 완료되기 전에 소프트웨어 명령으로 그 값을 클리어 시켜
주지 않으면 마이컴을 리셋시켜 궁국적으로 시스템이 정상적으로 동작하고 있
는지 감시하고 오동작을 방지하여 마이컴의 신뢰성을 향상시키는 기술이다
을 기준하여 상의 워치독 타이머의 레지스터 구성도는AVR128 DATA SHEET
그림 와 같다2-6
그림 워치독 타이머의 레지스터 구성도2-6
Figure 2-6 Configuration of Watchdog Timer Register
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 1 -
서 론1
마이크로프로세서 또는 마이컴 은 하나의(Microprocessor) (MicroComputer)
칩 내에 기억 연산 제어장치 등을 구비하고 기존의 범용 컴퓨터의 기능(Chip)
을 수행할 수 있도록 만들어진 다목적 프로그램이 가능한 대용량 논리회로로
일종의 중앙처리 장치이다 즉 컴퓨터의 산술논리 연산기 레지스터 프로 (ALU)
그램 카운터 명령 디코더 제어회로 등의 연산 장치와 제어 장치를 개의 작은 1
실리콘 칩에 모아놓은 처리장치를 말한다
반도체 역사는 년 트랜지스터의 발명으로 시작되어 그로부터 반도체 기1947
술의 눈부신 발전에 힘입어 마이크로프로세서도 성능과 가격과 크기 분야에서
년동안 상상을 초월하는 눈부신 발전을 거듭하고 있다 그러나 마40 이컴의 눈
부신 발전에도 불구하고 현재까지 해결하지 못하는 원초적인 문제가 있는데 그
것은 원인을 알 수 없고 예측이 불가능한 상태에서의 마이컴의 오동작이나 정
상적인 동작이 갑자기 불특정 부위에서 이유 없이 멈춰버리는 것이다 수많은
연구자들이 첨단장비를 동원하여 그 원인을 찾아보았으나 현재까지 근본적인
해결을 하지 못하고 그저 강력한 외부 노이즈 및 환경 등을 원인으로 추론하는
단계에서 진일보 하지 못하고 있다 마이컴의 오동작은 우리 실생활에서 커다란
불편과 또는 심각한 안전의 위협을 초래하고 있지만 현재 까지는 근본적인 문
제해결이 없는 상태에서 간접적 대책으로 대응하고 있는 실정이다 그 예로 최
근 사회적으로 상당한 이슈가 되어 관심이 고조되고 있는 것이 바로 자동차의
급발진 사고와 의료기기 등의 오작동으로 인한 환자들의 사망사고 등이 그 예
가 될 것이다
마이컴이 오동작이나 이상동작을 하였을 때 간접적 대책으로 전원을 하Off
여 리셋하기 위해 사용자에 의해 강제적으로 마이컴 외부의 회로와 스위치RC
를 이용하여 리셋을 시키거나 또는 마이컴 내부의 워치독을 이용하여 프로그램
적으로 워치독 을 실행하는 방법 또는 마이컴 외부에 워치독을 별(Watch Dog)
도로 설치하는 방법 즉 플립플롭 를 조합하여 구성하거나 리셋 전용 IC IC
을 사용하는 것과 같이 대부분 마이컴을 리셋 하는 방법으로 한정되고PST580
있다 이런 기술들은 마이컴의 오동작을 근본적으로 해결을 하지 못하고 다만
리셋을 통한 재부팅 수준에 머므르고 있다 또한 상기 방법들은 마이컴에 이상
- 2 -
동작이 발생하면 마이컴 자체를 리셋 시키므로 처음부터 다시 실행해야 하는
문제점을 안고 있다 즉 중요한 작업을 실행하는 제어기들이 현재까지 진행된
상태를 무시하고 처음단계로 되돌아가야 한다면 경제적 손실은 제외 하더라도
사용자의 생명의 안전까지도 위협하는 심각히 상황을 초래하기도 한다
이런 근본적 문제해결에는 우선적으로 마이컴 제조 관련 연구자 들이 근본적
으로 해결해야 하지만 본 연구에서는 간접적 대책의 일환 이지만 이에 대한 실
질적이고 실용적인 방안을 제시 하였다 그 방법은 마이컴을 이중화 하여 마이
컴이 연산과 실행과정에서 원인모를 이유 때문에 제어 불능 상태에 이르면 이
중화 된 여분의 대기된 마이컴이 곧바로 문제가 발생된 시점으로부터 문제를
일으킨 마이컴의 잔여 작업들을 수행하고 문제를 일으킨 마이컴은 작업이 이관
된 이중화한 마이컴으로부터 적정한 시점에 리셋을 하여 다시 이중화하여 마이
컴의 추가적인 이상동작을 대비하여 상호 보완적으로 대기시키는 방법을 제안
하였다 특히 이모든 것들이 실시간으로 통제하여 제어하는 것이 본 시스템의
특징이라 할 수 있다
본 논문에서는 다음과 같이 구성 되어 있다 장에서는 고장허용 시스템의 2
제어 방법에 대해 가장 보편적인 리셋 기술에 대해 소개한다 장에서는 특허 3
출원기술에 의한 마이컴 오동작 방지 장치에 대해 설명 하였다 장에서는 고 4
가가용성 구현을 위한 이중화 시스템에 대해 설명하였고 기존의 시스템 이중화
에 대한 다양한 기법에 대해 설명하였다 장에서는 본 연구에서 제안한 마이 5 ldquo
컴 이중화를 통한 실시간 연속 제어 시스템 에 대해 설계를 기초로 한 단계별rdquo
설명을 하였다 장에서는 본 연구에서 제안한 마이컴 이중화를 통한 실시간 6 ldquo
연속 제어 시스템 의 실험 결과 및 분석을 평가 하였고 마지막으로 본 논문의rdquo
결론을 맺는다
- 3 -
고장허용 시스템의 제어방법2
리셋 로직21
일반적인 마이컴의 리셋에 관련된 내부 회로는 그림 과 같으며 각각의 세2-1
부 설명은 다음과 같다
그림 의 리셋 로직 회로2-1 ATMEGA128
Figure 2-1 Reset Logic Circuit of ATMEGA128
리셋 입력이 액티브 되면 리셋 동작이 시작되며 병렬 포트가 즉시 디폴IO
트 값으로 출력된다 리셋 입력이 해제 되더라도 마이컴의 동작이 시작되기 까
- 4 -
지 전원전압 가 규정치에 도달하는 시간을 확보하기 위해 워치독 오실레이Vcc
터에 의한 시간지연이 주어지며 여기에 시스템 클록의 안정된 발진을 위하여
기동시간 만큼 시간 지연이 추가로 연장된다 이러한 내부 리셋(Start-up Time)
신호의 지연시간 은 모두 내부의 시간지연 카운터에 의하여 만들어 지며Tout
각 발진모드에 따른 시간지연 값은 퓨즈비트의 및 에 의하여SUT1~0 CKSEL0
선택된다 일반적인 마이컴의 시스템 리셋 소스는 파워온리셋 (Powr-on Reset)
외부리셋 워치독 리셋 부라운 리셋(External Reset) (Watchdog Reset)
재덱 와 같이 종이 있다 시스템에서 어떤(Brown-out Reset) (JTAG Reset) 5
원인에 의해 마이컴이 리셋 되었는지 알아보기 위해서는 SPECIAL FUNTION
레지스터 의 상태를 점검해보면 알수 있다 즉 레지스ldquoMCUCSRrdquo ldquoMCUCSRrdquo
터는 마이컴의 제어와 상태를 나타내는 레지스터로 리셋이 발생하면 해당하는
비트가 로 설정 되므로 어떤 유형의 리셋이 발생 했는지 필요에 따라 외부ldquo1rdquo
에서 검사할 수 있는 레지스터이다 각 비트별 레지스터의 용도는 표 MCUSCR
과 같다 비트 는 파워온리셋 플레그 로 사2-1 0 PORF (Power-on Reset Flag)
용되며 비트 는 외부리셋 플레그 로 사용된다 1 EXTRF (External Reset Flag) 2
비트 는 부라운 리셋 플레그 로 사용하고 비BORF (Brown-out Reset Flag) 3
트 는 워치독 플레그 로 사용한다 비트WDRF (Watchdog Reset Flag) 4 JTRF
는 재댁 플레그 로 사용된다(JTAG Reset Flag)
표 레지스터2-1 MCUSCR
Table 2-1 MCUSCR Register
리셋의 전기적 특성22
는 파워온 리셋에서 상승 임계전압이며 대표값은 이며 하강 임계전Vpot 14V
압은 이다 은 리셋의 임계전압이며 최소값은 이고 최대값은13V Vrst 02Vcc
이다 는 리셋에 필요한 최소펄스폭이며 이때 최소값은 이085Vcc Trst 15us
Bit 7 6 5 4 3 2 1 0
Name JTG - - JTRF WDRF BORF EXTRF PORF
- 5 -
다 는 부라운 리셋 임계전압으로 레벨이 일 경우 대표값은 이 Vbot BOD 1 26V
며 레벨이 일 경우는 대표값이 이다 는 부라운 리셋의 최소전BOD 0 40V Tbod
압이 걸리는 시간을 나타내며 레벨이 일 경우와 인 경우 모두의 대표값BOD 1 0
은 이다 는 부라운 리셋의 감지시 히스테리시스를 나타내며 값은20us Vhyst
이다 표 는 리셋관련 전기적 특성을 나타낸다100mV 2-2
표 리셋의 전기적 특성2-2
Table 2-2 Electrical Character of Reset
전원 투입 리셋23
전원이 인가되면 곧바로 마이컴을 리셋 시키고 전원전압이 에 도달하면 Vpot
시간지연 카운터의 동작에 따라 전원전압이 의 이상으로 된 이후에도 일정Vpot
한 시간동안 리셋을 유지한다 이후 정상적으로 작동하다가 인가전압 Vcc(5V)
가 전원투입 리셋의 임계값 보다 이하일(Power-on Reset Threshold (Vpot))
때 마이컴 내부에 위치한 리셋회로가 작동한다 인 경우에는 초기 ATMEGA128
에 전원이 에 도달하면 전원투입 리셋이 작동되고 정상적으로 작동되다14V
가 전원전압이 이하로 내려가도 전원투입 리셋이 작동된다 그림 는 리13V 2-2
셋핀을 에 접속한 상태에서 시작한 경우의 타이밍 도이다Vcc
- 6 -
그림 전원투입리셋 타이밍도 리셋핀을 에 접속한 상태2-2 ( Vcc )
Figure 2-2 Timing Diagram of Power on Reset
외부 리셋24
그림 은 외부리셋 회로도이며 외부에 스위치를 장착하여 사용자에 의해2-3
스위치를 누르게 되면 마이컴의 단자는 평소 로 되어 있다가Reset High(5V)
가 되고 최소 펄스폭 이상의 이 지속될 때 리셋이 작동하LOW (15us) Low Level
게 된다 이때 전해콘덴서는 전원투입 후 리셋단자에 일정시간 지연 후 작동하
기 위한 지연용 콘덴서이다
그림 외부리셋 회로도2-3
Figure 2-3 External Reset Circuit
외부리셋의 타이밍도는 그림 와 같으며 번 단자의 에2-4 20 PIN RESET 50ns
이상의 이 지속되어 입력되면 리셋이 발생한다 즉Low Level Active Low 5V
일때 되고 일때 되어 리셋 된다Disable GND Enable
SW1
RESET
R110Ω
VCC_5V
C110uF
RESET
- 7 -
그림 외부리셋 타이밍도2-4
Figure 2-4 Timing Diagram of External Reset
저전압 검출 리셋25 (Brown-Out Reset)
마이컴에 인가되는 인가전압 가 순간적으로 전압 이하Vcc(5V) Brown-out
또는 로 내려가서 이상 지속되면 마이컴의 오동작을 방지하기 위(26V 4V) 2us
해 마이컴을 리셋하게 되고 마이컴에 따라 전압은BOD(Brown-Out Detection)
별도로 설정하도록 되어 있다 마이컴 메이커에 따라 LVD(Low Voltage
라고도 한다 또한 전압 스파이크에 의한 오동작을 방지하기 위해 전압Detect)
검출에 히스테리시스를 적용하도록 되어 있다 즉 전압이 감소할때에는 Vbot-
이하로 될 때 리셋이 작동되고 전압이 증가 할때에는= Vbot - Vhyst 2
이상으로 될 때 리셋이 해제 된다 그림 는 저Vbot+= Vbot + Vhyst 2 2-5
전압 검출 리셋의 타이밍도 이다
그림 저전압 검출 리셋 타이밍도2-5
Figure 2-5 Timing Diagram of Brown out Detection
- 8 -
재덱 리셋26 (JTAG Reset)
은 논리 복잡도가 높고 복잡한 기능을 수행JTAG(Joint Test Action Group)
하는 과 같은 부품들을 시험하는 것이 너무 복잡하여 좀 더 체계적으로ASIC
시험을 할 수 있도록 해보자는 취지로 와 같은 데이터 전boundary scan test
송 포맷으로 컴퓨터와 반도체 소자를 연결하여 온칩 디버깅 불휘발성 메모리의
프로그래밍 테스트 등을 수행하는 인터페이스 기술로써 현재는 PCB IEEE
로 국제 표준 규약으로 되어 있다 이는 내부를 몇개의Standard 11491 ASIC
블록으로 나누고 각 블록의 경계에 직렬로 시험용 신호 패턴을 입력하고 블록
을 작동시킨 후 신호를 출력하여 검사하는 방법을 사용하여 내부 블록 ASIC
기능 시험을 수행 하여 부품의 양부를 판정하기 위한 표준 규약이다 은 JTAG
이며 은 레지스터 형식을 가지Boundary-Scan Cell Boundary-Scan Cell Shift
며 각 의 상태를 읽고 쓰는 것은 입출력 방식을 이용한다 은 Cell Serial JTAG
의 코어가 들어있는 의 외부 단자중 단자를CPU CPLD TAP(Test Access Port)
사용하고 그 단자들의 용도는 표 과 같다 은 사용자가 시스템2-3 JTAG Reset
의 하드웨어적 디버깅을 으로 시행할 때 필요에 따라 레지스터를JTAG Reset
설정하여 발생시킬 수 있다
표 의 의 용도2-3 JTAG TAP
Table 2-3 Usage of JTAG TAP
TDI Test Data In
TDO Test Data Out
TMS Test Mode Select
TCK Test Clock
TRST Test Reset
- 9 -
워치독 리셋28 (Watchdog Reset)
워치독 타이머에서 지정된 주기 이상의 시간이 경과 되었을때 사용되는 리셋
으로 지정된 주기가 완료되기 전에 소프트웨어 명령으로 그 값을 클리어 시켜
주지 않으면 마이컴을 리셋시켜 궁국적으로 시스템이 정상적으로 동작하고 있
는지 감시하고 오동작을 방지하여 마이컴의 신뢰성을 향상시키는 기술이다
을 기준하여 상의 워치독 타이머의 레지스터 구성도는AVR128 DATA SHEET
그림 와 같다2-6
그림 워치독 타이머의 레지스터 구성도2-6
Figure 2-6 Configuration of Watchdog Timer Register
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 2 -
동작이 발생하면 마이컴 자체를 리셋 시키므로 처음부터 다시 실행해야 하는
문제점을 안고 있다 즉 중요한 작업을 실행하는 제어기들이 현재까지 진행된
상태를 무시하고 처음단계로 되돌아가야 한다면 경제적 손실은 제외 하더라도
사용자의 생명의 안전까지도 위협하는 심각히 상황을 초래하기도 한다
이런 근본적 문제해결에는 우선적으로 마이컴 제조 관련 연구자 들이 근본적
으로 해결해야 하지만 본 연구에서는 간접적 대책의 일환 이지만 이에 대한 실
질적이고 실용적인 방안을 제시 하였다 그 방법은 마이컴을 이중화 하여 마이
컴이 연산과 실행과정에서 원인모를 이유 때문에 제어 불능 상태에 이르면 이
중화 된 여분의 대기된 마이컴이 곧바로 문제가 발생된 시점으로부터 문제를
일으킨 마이컴의 잔여 작업들을 수행하고 문제를 일으킨 마이컴은 작업이 이관
된 이중화한 마이컴으로부터 적정한 시점에 리셋을 하여 다시 이중화하여 마이
컴의 추가적인 이상동작을 대비하여 상호 보완적으로 대기시키는 방법을 제안
하였다 특히 이모든 것들이 실시간으로 통제하여 제어하는 것이 본 시스템의
특징이라 할 수 있다
본 논문에서는 다음과 같이 구성 되어 있다 장에서는 고장허용 시스템의 2
제어 방법에 대해 가장 보편적인 리셋 기술에 대해 소개한다 장에서는 특허 3
출원기술에 의한 마이컴 오동작 방지 장치에 대해 설명 하였다 장에서는 고 4
가가용성 구현을 위한 이중화 시스템에 대해 설명하였고 기존의 시스템 이중화
에 대한 다양한 기법에 대해 설명하였다 장에서는 본 연구에서 제안한 마이 5 ldquo
컴 이중화를 통한 실시간 연속 제어 시스템 에 대해 설계를 기초로 한 단계별rdquo
설명을 하였다 장에서는 본 연구에서 제안한 마이컴 이중화를 통한 실시간 6 ldquo
연속 제어 시스템 의 실험 결과 및 분석을 평가 하였고 마지막으로 본 논문의rdquo
결론을 맺는다
- 3 -
고장허용 시스템의 제어방법2
리셋 로직21
일반적인 마이컴의 리셋에 관련된 내부 회로는 그림 과 같으며 각각의 세2-1
부 설명은 다음과 같다
그림 의 리셋 로직 회로2-1 ATMEGA128
Figure 2-1 Reset Logic Circuit of ATMEGA128
리셋 입력이 액티브 되면 리셋 동작이 시작되며 병렬 포트가 즉시 디폴IO
트 값으로 출력된다 리셋 입력이 해제 되더라도 마이컴의 동작이 시작되기 까
- 4 -
지 전원전압 가 규정치에 도달하는 시간을 확보하기 위해 워치독 오실레이Vcc
터에 의한 시간지연이 주어지며 여기에 시스템 클록의 안정된 발진을 위하여
기동시간 만큼 시간 지연이 추가로 연장된다 이러한 내부 리셋(Start-up Time)
신호의 지연시간 은 모두 내부의 시간지연 카운터에 의하여 만들어 지며Tout
각 발진모드에 따른 시간지연 값은 퓨즈비트의 및 에 의하여SUT1~0 CKSEL0
선택된다 일반적인 마이컴의 시스템 리셋 소스는 파워온리셋 (Powr-on Reset)
외부리셋 워치독 리셋 부라운 리셋(External Reset) (Watchdog Reset)
재덱 와 같이 종이 있다 시스템에서 어떤(Brown-out Reset) (JTAG Reset) 5
원인에 의해 마이컴이 리셋 되었는지 알아보기 위해서는 SPECIAL FUNTION
레지스터 의 상태를 점검해보면 알수 있다 즉 레지스ldquoMCUCSRrdquo ldquoMCUCSRrdquo
터는 마이컴의 제어와 상태를 나타내는 레지스터로 리셋이 발생하면 해당하는
비트가 로 설정 되므로 어떤 유형의 리셋이 발생 했는지 필요에 따라 외부ldquo1rdquo
에서 검사할 수 있는 레지스터이다 각 비트별 레지스터의 용도는 표 MCUSCR
과 같다 비트 는 파워온리셋 플레그 로 사2-1 0 PORF (Power-on Reset Flag)
용되며 비트 는 외부리셋 플레그 로 사용된다 1 EXTRF (External Reset Flag) 2
비트 는 부라운 리셋 플레그 로 사용하고 비BORF (Brown-out Reset Flag) 3
트 는 워치독 플레그 로 사용한다 비트WDRF (Watchdog Reset Flag) 4 JTRF
는 재댁 플레그 로 사용된다(JTAG Reset Flag)
표 레지스터2-1 MCUSCR
Table 2-1 MCUSCR Register
리셋의 전기적 특성22
는 파워온 리셋에서 상승 임계전압이며 대표값은 이며 하강 임계전Vpot 14V
압은 이다 은 리셋의 임계전압이며 최소값은 이고 최대값은13V Vrst 02Vcc
이다 는 리셋에 필요한 최소펄스폭이며 이때 최소값은 이085Vcc Trst 15us
Bit 7 6 5 4 3 2 1 0
Name JTG - - JTRF WDRF BORF EXTRF PORF
- 5 -
다 는 부라운 리셋 임계전압으로 레벨이 일 경우 대표값은 이 Vbot BOD 1 26V
며 레벨이 일 경우는 대표값이 이다 는 부라운 리셋의 최소전BOD 0 40V Tbod
압이 걸리는 시간을 나타내며 레벨이 일 경우와 인 경우 모두의 대표값BOD 1 0
은 이다 는 부라운 리셋의 감지시 히스테리시스를 나타내며 값은20us Vhyst
이다 표 는 리셋관련 전기적 특성을 나타낸다100mV 2-2
표 리셋의 전기적 특성2-2
Table 2-2 Electrical Character of Reset
전원 투입 리셋23
전원이 인가되면 곧바로 마이컴을 리셋 시키고 전원전압이 에 도달하면 Vpot
시간지연 카운터의 동작에 따라 전원전압이 의 이상으로 된 이후에도 일정Vpot
한 시간동안 리셋을 유지한다 이후 정상적으로 작동하다가 인가전압 Vcc(5V)
가 전원투입 리셋의 임계값 보다 이하일(Power-on Reset Threshold (Vpot))
때 마이컴 내부에 위치한 리셋회로가 작동한다 인 경우에는 초기 ATMEGA128
에 전원이 에 도달하면 전원투입 리셋이 작동되고 정상적으로 작동되다14V
가 전원전압이 이하로 내려가도 전원투입 리셋이 작동된다 그림 는 리13V 2-2
셋핀을 에 접속한 상태에서 시작한 경우의 타이밍 도이다Vcc
- 6 -
그림 전원투입리셋 타이밍도 리셋핀을 에 접속한 상태2-2 ( Vcc )
Figure 2-2 Timing Diagram of Power on Reset
외부 리셋24
그림 은 외부리셋 회로도이며 외부에 스위치를 장착하여 사용자에 의해2-3
스위치를 누르게 되면 마이컴의 단자는 평소 로 되어 있다가Reset High(5V)
가 되고 최소 펄스폭 이상의 이 지속될 때 리셋이 작동하LOW (15us) Low Level
게 된다 이때 전해콘덴서는 전원투입 후 리셋단자에 일정시간 지연 후 작동하
기 위한 지연용 콘덴서이다
그림 외부리셋 회로도2-3
Figure 2-3 External Reset Circuit
외부리셋의 타이밍도는 그림 와 같으며 번 단자의 에2-4 20 PIN RESET 50ns
이상의 이 지속되어 입력되면 리셋이 발생한다 즉Low Level Active Low 5V
일때 되고 일때 되어 리셋 된다Disable GND Enable
SW1
RESET
R110Ω
VCC_5V
C110uF
RESET
- 7 -
그림 외부리셋 타이밍도2-4
Figure 2-4 Timing Diagram of External Reset
저전압 검출 리셋25 (Brown-Out Reset)
마이컴에 인가되는 인가전압 가 순간적으로 전압 이하Vcc(5V) Brown-out
또는 로 내려가서 이상 지속되면 마이컴의 오동작을 방지하기 위(26V 4V) 2us
해 마이컴을 리셋하게 되고 마이컴에 따라 전압은BOD(Brown-Out Detection)
별도로 설정하도록 되어 있다 마이컴 메이커에 따라 LVD(Low Voltage
라고도 한다 또한 전압 스파이크에 의한 오동작을 방지하기 위해 전압Detect)
검출에 히스테리시스를 적용하도록 되어 있다 즉 전압이 감소할때에는 Vbot-
이하로 될 때 리셋이 작동되고 전압이 증가 할때에는= Vbot - Vhyst 2
이상으로 될 때 리셋이 해제 된다 그림 는 저Vbot+= Vbot + Vhyst 2 2-5
전압 검출 리셋의 타이밍도 이다
그림 저전압 검출 리셋 타이밍도2-5
Figure 2-5 Timing Diagram of Brown out Detection
- 8 -
재덱 리셋26 (JTAG Reset)
은 논리 복잡도가 높고 복잡한 기능을 수행JTAG(Joint Test Action Group)
하는 과 같은 부품들을 시험하는 것이 너무 복잡하여 좀 더 체계적으로ASIC
시험을 할 수 있도록 해보자는 취지로 와 같은 데이터 전boundary scan test
송 포맷으로 컴퓨터와 반도체 소자를 연결하여 온칩 디버깅 불휘발성 메모리의
프로그래밍 테스트 등을 수행하는 인터페이스 기술로써 현재는 PCB IEEE
로 국제 표준 규약으로 되어 있다 이는 내부를 몇개의Standard 11491 ASIC
블록으로 나누고 각 블록의 경계에 직렬로 시험용 신호 패턴을 입력하고 블록
을 작동시킨 후 신호를 출력하여 검사하는 방법을 사용하여 내부 블록 ASIC
기능 시험을 수행 하여 부품의 양부를 판정하기 위한 표준 규약이다 은 JTAG
이며 은 레지스터 형식을 가지Boundary-Scan Cell Boundary-Scan Cell Shift
며 각 의 상태를 읽고 쓰는 것은 입출력 방식을 이용한다 은 Cell Serial JTAG
의 코어가 들어있는 의 외부 단자중 단자를CPU CPLD TAP(Test Access Port)
사용하고 그 단자들의 용도는 표 과 같다 은 사용자가 시스템2-3 JTAG Reset
의 하드웨어적 디버깅을 으로 시행할 때 필요에 따라 레지스터를JTAG Reset
설정하여 발생시킬 수 있다
표 의 의 용도2-3 JTAG TAP
Table 2-3 Usage of JTAG TAP
TDI Test Data In
TDO Test Data Out
TMS Test Mode Select
TCK Test Clock
TRST Test Reset
- 9 -
워치독 리셋28 (Watchdog Reset)
워치독 타이머에서 지정된 주기 이상의 시간이 경과 되었을때 사용되는 리셋
으로 지정된 주기가 완료되기 전에 소프트웨어 명령으로 그 값을 클리어 시켜
주지 않으면 마이컴을 리셋시켜 궁국적으로 시스템이 정상적으로 동작하고 있
는지 감시하고 오동작을 방지하여 마이컴의 신뢰성을 향상시키는 기술이다
을 기준하여 상의 워치독 타이머의 레지스터 구성도는AVR128 DATA SHEET
그림 와 같다2-6
그림 워치독 타이머의 레지스터 구성도2-6
Figure 2-6 Configuration of Watchdog Timer Register
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 3 -
고장허용 시스템의 제어방법2
리셋 로직21
일반적인 마이컴의 리셋에 관련된 내부 회로는 그림 과 같으며 각각의 세2-1
부 설명은 다음과 같다
그림 의 리셋 로직 회로2-1 ATMEGA128
Figure 2-1 Reset Logic Circuit of ATMEGA128
리셋 입력이 액티브 되면 리셋 동작이 시작되며 병렬 포트가 즉시 디폴IO
트 값으로 출력된다 리셋 입력이 해제 되더라도 마이컴의 동작이 시작되기 까
- 4 -
지 전원전압 가 규정치에 도달하는 시간을 확보하기 위해 워치독 오실레이Vcc
터에 의한 시간지연이 주어지며 여기에 시스템 클록의 안정된 발진을 위하여
기동시간 만큼 시간 지연이 추가로 연장된다 이러한 내부 리셋(Start-up Time)
신호의 지연시간 은 모두 내부의 시간지연 카운터에 의하여 만들어 지며Tout
각 발진모드에 따른 시간지연 값은 퓨즈비트의 및 에 의하여SUT1~0 CKSEL0
선택된다 일반적인 마이컴의 시스템 리셋 소스는 파워온리셋 (Powr-on Reset)
외부리셋 워치독 리셋 부라운 리셋(External Reset) (Watchdog Reset)
재덱 와 같이 종이 있다 시스템에서 어떤(Brown-out Reset) (JTAG Reset) 5
원인에 의해 마이컴이 리셋 되었는지 알아보기 위해서는 SPECIAL FUNTION
레지스터 의 상태를 점검해보면 알수 있다 즉 레지스ldquoMCUCSRrdquo ldquoMCUCSRrdquo
터는 마이컴의 제어와 상태를 나타내는 레지스터로 리셋이 발생하면 해당하는
비트가 로 설정 되므로 어떤 유형의 리셋이 발생 했는지 필요에 따라 외부ldquo1rdquo
에서 검사할 수 있는 레지스터이다 각 비트별 레지스터의 용도는 표 MCUSCR
과 같다 비트 는 파워온리셋 플레그 로 사2-1 0 PORF (Power-on Reset Flag)
용되며 비트 는 외부리셋 플레그 로 사용된다 1 EXTRF (External Reset Flag) 2
비트 는 부라운 리셋 플레그 로 사용하고 비BORF (Brown-out Reset Flag) 3
트 는 워치독 플레그 로 사용한다 비트WDRF (Watchdog Reset Flag) 4 JTRF
는 재댁 플레그 로 사용된다(JTAG Reset Flag)
표 레지스터2-1 MCUSCR
Table 2-1 MCUSCR Register
리셋의 전기적 특성22
는 파워온 리셋에서 상승 임계전압이며 대표값은 이며 하강 임계전Vpot 14V
압은 이다 은 리셋의 임계전압이며 최소값은 이고 최대값은13V Vrst 02Vcc
이다 는 리셋에 필요한 최소펄스폭이며 이때 최소값은 이085Vcc Trst 15us
Bit 7 6 5 4 3 2 1 0
Name JTG - - JTRF WDRF BORF EXTRF PORF
- 5 -
다 는 부라운 리셋 임계전압으로 레벨이 일 경우 대표값은 이 Vbot BOD 1 26V
며 레벨이 일 경우는 대표값이 이다 는 부라운 리셋의 최소전BOD 0 40V Tbod
압이 걸리는 시간을 나타내며 레벨이 일 경우와 인 경우 모두의 대표값BOD 1 0
은 이다 는 부라운 리셋의 감지시 히스테리시스를 나타내며 값은20us Vhyst
이다 표 는 리셋관련 전기적 특성을 나타낸다100mV 2-2
표 리셋의 전기적 특성2-2
Table 2-2 Electrical Character of Reset
전원 투입 리셋23
전원이 인가되면 곧바로 마이컴을 리셋 시키고 전원전압이 에 도달하면 Vpot
시간지연 카운터의 동작에 따라 전원전압이 의 이상으로 된 이후에도 일정Vpot
한 시간동안 리셋을 유지한다 이후 정상적으로 작동하다가 인가전압 Vcc(5V)
가 전원투입 리셋의 임계값 보다 이하일(Power-on Reset Threshold (Vpot))
때 마이컴 내부에 위치한 리셋회로가 작동한다 인 경우에는 초기 ATMEGA128
에 전원이 에 도달하면 전원투입 리셋이 작동되고 정상적으로 작동되다14V
가 전원전압이 이하로 내려가도 전원투입 리셋이 작동된다 그림 는 리13V 2-2
셋핀을 에 접속한 상태에서 시작한 경우의 타이밍 도이다Vcc
- 6 -
그림 전원투입리셋 타이밍도 리셋핀을 에 접속한 상태2-2 ( Vcc )
Figure 2-2 Timing Diagram of Power on Reset
외부 리셋24
그림 은 외부리셋 회로도이며 외부에 스위치를 장착하여 사용자에 의해2-3
스위치를 누르게 되면 마이컴의 단자는 평소 로 되어 있다가Reset High(5V)
가 되고 최소 펄스폭 이상의 이 지속될 때 리셋이 작동하LOW (15us) Low Level
게 된다 이때 전해콘덴서는 전원투입 후 리셋단자에 일정시간 지연 후 작동하
기 위한 지연용 콘덴서이다
그림 외부리셋 회로도2-3
Figure 2-3 External Reset Circuit
외부리셋의 타이밍도는 그림 와 같으며 번 단자의 에2-4 20 PIN RESET 50ns
이상의 이 지속되어 입력되면 리셋이 발생한다 즉Low Level Active Low 5V
일때 되고 일때 되어 리셋 된다Disable GND Enable
SW1
RESET
R110Ω
VCC_5V
C110uF
RESET
- 7 -
그림 외부리셋 타이밍도2-4
Figure 2-4 Timing Diagram of External Reset
저전압 검출 리셋25 (Brown-Out Reset)
마이컴에 인가되는 인가전압 가 순간적으로 전압 이하Vcc(5V) Brown-out
또는 로 내려가서 이상 지속되면 마이컴의 오동작을 방지하기 위(26V 4V) 2us
해 마이컴을 리셋하게 되고 마이컴에 따라 전압은BOD(Brown-Out Detection)
별도로 설정하도록 되어 있다 마이컴 메이커에 따라 LVD(Low Voltage
라고도 한다 또한 전압 스파이크에 의한 오동작을 방지하기 위해 전압Detect)
검출에 히스테리시스를 적용하도록 되어 있다 즉 전압이 감소할때에는 Vbot-
이하로 될 때 리셋이 작동되고 전압이 증가 할때에는= Vbot - Vhyst 2
이상으로 될 때 리셋이 해제 된다 그림 는 저Vbot+= Vbot + Vhyst 2 2-5
전압 검출 리셋의 타이밍도 이다
그림 저전압 검출 리셋 타이밍도2-5
Figure 2-5 Timing Diagram of Brown out Detection
- 8 -
재덱 리셋26 (JTAG Reset)
은 논리 복잡도가 높고 복잡한 기능을 수행JTAG(Joint Test Action Group)
하는 과 같은 부품들을 시험하는 것이 너무 복잡하여 좀 더 체계적으로ASIC
시험을 할 수 있도록 해보자는 취지로 와 같은 데이터 전boundary scan test
송 포맷으로 컴퓨터와 반도체 소자를 연결하여 온칩 디버깅 불휘발성 메모리의
프로그래밍 테스트 등을 수행하는 인터페이스 기술로써 현재는 PCB IEEE
로 국제 표준 규약으로 되어 있다 이는 내부를 몇개의Standard 11491 ASIC
블록으로 나누고 각 블록의 경계에 직렬로 시험용 신호 패턴을 입력하고 블록
을 작동시킨 후 신호를 출력하여 검사하는 방법을 사용하여 내부 블록 ASIC
기능 시험을 수행 하여 부품의 양부를 판정하기 위한 표준 규약이다 은 JTAG
이며 은 레지스터 형식을 가지Boundary-Scan Cell Boundary-Scan Cell Shift
며 각 의 상태를 읽고 쓰는 것은 입출력 방식을 이용한다 은 Cell Serial JTAG
의 코어가 들어있는 의 외부 단자중 단자를CPU CPLD TAP(Test Access Port)
사용하고 그 단자들의 용도는 표 과 같다 은 사용자가 시스템2-3 JTAG Reset
의 하드웨어적 디버깅을 으로 시행할 때 필요에 따라 레지스터를JTAG Reset
설정하여 발생시킬 수 있다
표 의 의 용도2-3 JTAG TAP
Table 2-3 Usage of JTAG TAP
TDI Test Data In
TDO Test Data Out
TMS Test Mode Select
TCK Test Clock
TRST Test Reset
- 9 -
워치독 리셋28 (Watchdog Reset)
워치독 타이머에서 지정된 주기 이상의 시간이 경과 되었을때 사용되는 리셋
으로 지정된 주기가 완료되기 전에 소프트웨어 명령으로 그 값을 클리어 시켜
주지 않으면 마이컴을 리셋시켜 궁국적으로 시스템이 정상적으로 동작하고 있
는지 감시하고 오동작을 방지하여 마이컴의 신뢰성을 향상시키는 기술이다
을 기준하여 상의 워치독 타이머의 레지스터 구성도는AVR128 DATA SHEET
그림 와 같다2-6
그림 워치독 타이머의 레지스터 구성도2-6
Figure 2-6 Configuration of Watchdog Timer Register
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 4 -
지 전원전압 가 규정치에 도달하는 시간을 확보하기 위해 워치독 오실레이Vcc
터에 의한 시간지연이 주어지며 여기에 시스템 클록의 안정된 발진을 위하여
기동시간 만큼 시간 지연이 추가로 연장된다 이러한 내부 리셋(Start-up Time)
신호의 지연시간 은 모두 내부의 시간지연 카운터에 의하여 만들어 지며Tout
각 발진모드에 따른 시간지연 값은 퓨즈비트의 및 에 의하여SUT1~0 CKSEL0
선택된다 일반적인 마이컴의 시스템 리셋 소스는 파워온리셋 (Powr-on Reset)
외부리셋 워치독 리셋 부라운 리셋(External Reset) (Watchdog Reset)
재덱 와 같이 종이 있다 시스템에서 어떤(Brown-out Reset) (JTAG Reset) 5
원인에 의해 마이컴이 리셋 되었는지 알아보기 위해서는 SPECIAL FUNTION
레지스터 의 상태를 점검해보면 알수 있다 즉 레지스ldquoMCUCSRrdquo ldquoMCUCSRrdquo
터는 마이컴의 제어와 상태를 나타내는 레지스터로 리셋이 발생하면 해당하는
비트가 로 설정 되므로 어떤 유형의 리셋이 발생 했는지 필요에 따라 외부ldquo1rdquo
에서 검사할 수 있는 레지스터이다 각 비트별 레지스터의 용도는 표 MCUSCR
과 같다 비트 는 파워온리셋 플레그 로 사2-1 0 PORF (Power-on Reset Flag)
용되며 비트 는 외부리셋 플레그 로 사용된다 1 EXTRF (External Reset Flag) 2
비트 는 부라운 리셋 플레그 로 사용하고 비BORF (Brown-out Reset Flag) 3
트 는 워치독 플레그 로 사용한다 비트WDRF (Watchdog Reset Flag) 4 JTRF
는 재댁 플레그 로 사용된다(JTAG Reset Flag)
표 레지스터2-1 MCUSCR
Table 2-1 MCUSCR Register
리셋의 전기적 특성22
는 파워온 리셋에서 상승 임계전압이며 대표값은 이며 하강 임계전Vpot 14V
압은 이다 은 리셋의 임계전압이며 최소값은 이고 최대값은13V Vrst 02Vcc
이다 는 리셋에 필요한 최소펄스폭이며 이때 최소값은 이085Vcc Trst 15us
Bit 7 6 5 4 3 2 1 0
Name JTG - - JTRF WDRF BORF EXTRF PORF
- 5 -
다 는 부라운 리셋 임계전압으로 레벨이 일 경우 대표값은 이 Vbot BOD 1 26V
며 레벨이 일 경우는 대표값이 이다 는 부라운 리셋의 최소전BOD 0 40V Tbod
압이 걸리는 시간을 나타내며 레벨이 일 경우와 인 경우 모두의 대표값BOD 1 0
은 이다 는 부라운 리셋의 감지시 히스테리시스를 나타내며 값은20us Vhyst
이다 표 는 리셋관련 전기적 특성을 나타낸다100mV 2-2
표 리셋의 전기적 특성2-2
Table 2-2 Electrical Character of Reset
전원 투입 리셋23
전원이 인가되면 곧바로 마이컴을 리셋 시키고 전원전압이 에 도달하면 Vpot
시간지연 카운터의 동작에 따라 전원전압이 의 이상으로 된 이후에도 일정Vpot
한 시간동안 리셋을 유지한다 이후 정상적으로 작동하다가 인가전압 Vcc(5V)
가 전원투입 리셋의 임계값 보다 이하일(Power-on Reset Threshold (Vpot))
때 마이컴 내부에 위치한 리셋회로가 작동한다 인 경우에는 초기 ATMEGA128
에 전원이 에 도달하면 전원투입 리셋이 작동되고 정상적으로 작동되다14V
가 전원전압이 이하로 내려가도 전원투입 리셋이 작동된다 그림 는 리13V 2-2
셋핀을 에 접속한 상태에서 시작한 경우의 타이밍 도이다Vcc
- 6 -
그림 전원투입리셋 타이밍도 리셋핀을 에 접속한 상태2-2 ( Vcc )
Figure 2-2 Timing Diagram of Power on Reset
외부 리셋24
그림 은 외부리셋 회로도이며 외부에 스위치를 장착하여 사용자에 의해2-3
스위치를 누르게 되면 마이컴의 단자는 평소 로 되어 있다가Reset High(5V)
가 되고 최소 펄스폭 이상의 이 지속될 때 리셋이 작동하LOW (15us) Low Level
게 된다 이때 전해콘덴서는 전원투입 후 리셋단자에 일정시간 지연 후 작동하
기 위한 지연용 콘덴서이다
그림 외부리셋 회로도2-3
Figure 2-3 External Reset Circuit
외부리셋의 타이밍도는 그림 와 같으며 번 단자의 에2-4 20 PIN RESET 50ns
이상의 이 지속되어 입력되면 리셋이 발생한다 즉Low Level Active Low 5V
일때 되고 일때 되어 리셋 된다Disable GND Enable
SW1
RESET
R110Ω
VCC_5V
C110uF
RESET
- 7 -
그림 외부리셋 타이밍도2-4
Figure 2-4 Timing Diagram of External Reset
저전압 검출 리셋25 (Brown-Out Reset)
마이컴에 인가되는 인가전압 가 순간적으로 전압 이하Vcc(5V) Brown-out
또는 로 내려가서 이상 지속되면 마이컴의 오동작을 방지하기 위(26V 4V) 2us
해 마이컴을 리셋하게 되고 마이컴에 따라 전압은BOD(Brown-Out Detection)
별도로 설정하도록 되어 있다 마이컴 메이커에 따라 LVD(Low Voltage
라고도 한다 또한 전압 스파이크에 의한 오동작을 방지하기 위해 전압Detect)
검출에 히스테리시스를 적용하도록 되어 있다 즉 전압이 감소할때에는 Vbot-
이하로 될 때 리셋이 작동되고 전압이 증가 할때에는= Vbot - Vhyst 2
이상으로 될 때 리셋이 해제 된다 그림 는 저Vbot+= Vbot + Vhyst 2 2-5
전압 검출 리셋의 타이밍도 이다
그림 저전압 검출 리셋 타이밍도2-5
Figure 2-5 Timing Diagram of Brown out Detection
- 8 -
재덱 리셋26 (JTAG Reset)
은 논리 복잡도가 높고 복잡한 기능을 수행JTAG(Joint Test Action Group)
하는 과 같은 부품들을 시험하는 것이 너무 복잡하여 좀 더 체계적으로ASIC
시험을 할 수 있도록 해보자는 취지로 와 같은 데이터 전boundary scan test
송 포맷으로 컴퓨터와 반도체 소자를 연결하여 온칩 디버깅 불휘발성 메모리의
프로그래밍 테스트 등을 수행하는 인터페이스 기술로써 현재는 PCB IEEE
로 국제 표준 규약으로 되어 있다 이는 내부를 몇개의Standard 11491 ASIC
블록으로 나누고 각 블록의 경계에 직렬로 시험용 신호 패턴을 입력하고 블록
을 작동시킨 후 신호를 출력하여 검사하는 방법을 사용하여 내부 블록 ASIC
기능 시험을 수행 하여 부품의 양부를 판정하기 위한 표준 규약이다 은 JTAG
이며 은 레지스터 형식을 가지Boundary-Scan Cell Boundary-Scan Cell Shift
며 각 의 상태를 읽고 쓰는 것은 입출력 방식을 이용한다 은 Cell Serial JTAG
의 코어가 들어있는 의 외부 단자중 단자를CPU CPLD TAP(Test Access Port)
사용하고 그 단자들의 용도는 표 과 같다 은 사용자가 시스템2-3 JTAG Reset
의 하드웨어적 디버깅을 으로 시행할 때 필요에 따라 레지스터를JTAG Reset
설정하여 발생시킬 수 있다
표 의 의 용도2-3 JTAG TAP
Table 2-3 Usage of JTAG TAP
TDI Test Data In
TDO Test Data Out
TMS Test Mode Select
TCK Test Clock
TRST Test Reset
- 9 -
워치독 리셋28 (Watchdog Reset)
워치독 타이머에서 지정된 주기 이상의 시간이 경과 되었을때 사용되는 리셋
으로 지정된 주기가 완료되기 전에 소프트웨어 명령으로 그 값을 클리어 시켜
주지 않으면 마이컴을 리셋시켜 궁국적으로 시스템이 정상적으로 동작하고 있
는지 감시하고 오동작을 방지하여 마이컴의 신뢰성을 향상시키는 기술이다
을 기준하여 상의 워치독 타이머의 레지스터 구성도는AVR128 DATA SHEET
그림 와 같다2-6
그림 워치독 타이머의 레지스터 구성도2-6
Figure 2-6 Configuration of Watchdog Timer Register
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 5 -
다 는 부라운 리셋 임계전압으로 레벨이 일 경우 대표값은 이 Vbot BOD 1 26V
며 레벨이 일 경우는 대표값이 이다 는 부라운 리셋의 최소전BOD 0 40V Tbod
압이 걸리는 시간을 나타내며 레벨이 일 경우와 인 경우 모두의 대표값BOD 1 0
은 이다 는 부라운 리셋의 감지시 히스테리시스를 나타내며 값은20us Vhyst
이다 표 는 리셋관련 전기적 특성을 나타낸다100mV 2-2
표 리셋의 전기적 특성2-2
Table 2-2 Electrical Character of Reset
전원 투입 리셋23
전원이 인가되면 곧바로 마이컴을 리셋 시키고 전원전압이 에 도달하면 Vpot
시간지연 카운터의 동작에 따라 전원전압이 의 이상으로 된 이후에도 일정Vpot
한 시간동안 리셋을 유지한다 이후 정상적으로 작동하다가 인가전압 Vcc(5V)
가 전원투입 리셋의 임계값 보다 이하일(Power-on Reset Threshold (Vpot))
때 마이컴 내부에 위치한 리셋회로가 작동한다 인 경우에는 초기 ATMEGA128
에 전원이 에 도달하면 전원투입 리셋이 작동되고 정상적으로 작동되다14V
가 전원전압이 이하로 내려가도 전원투입 리셋이 작동된다 그림 는 리13V 2-2
셋핀을 에 접속한 상태에서 시작한 경우의 타이밍 도이다Vcc
- 6 -
그림 전원투입리셋 타이밍도 리셋핀을 에 접속한 상태2-2 ( Vcc )
Figure 2-2 Timing Diagram of Power on Reset
외부 리셋24
그림 은 외부리셋 회로도이며 외부에 스위치를 장착하여 사용자에 의해2-3
스위치를 누르게 되면 마이컴의 단자는 평소 로 되어 있다가Reset High(5V)
가 되고 최소 펄스폭 이상의 이 지속될 때 리셋이 작동하LOW (15us) Low Level
게 된다 이때 전해콘덴서는 전원투입 후 리셋단자에 일정시간 지연 후 작동하
기 위한 지연용 콘덴서이다
그림 외부리셋 회로도2-3
Figure 2-3 External Reset Circuit
외부리셋의 타이밍도는 그림 와 같으며 번 단자의 에2-4 20 PIN RESET 50ns
이상의 이 지속되어 입력되면 리셋이 발생한다 즉Low Level Active Low 5V
일때 되고 일때 되어 리셋 된다Disable GND Enable
SW1
RESET
R110Ω
VCC_5V
C110uF
RESET
- 7 -
그림 외부리셋 타이밍도2-4
Figure 2-4 Timing Diagram of External Reset
저전압 검출 리셋25 (Brown-Out Reset)
마이컴에 인가되는 인가전압 가 순간적으로 전압 이하Vcc(5V) Brown-out
또는 로 내려가서 이상 지속되면 마이컴의 오동작을 방지하기 위(26V 4V) 2us
해 마이컴을 리셋하게 되고 마이컴에 따라 전압은BOD(Brown-Out Detection)
별도로 설정하도록 되어 있다 마이컴 메이커에 따라 LVD(Low Voltage
라고도 한다 또한 전압 스파이크에 의한 오동작을 방지하기 위해 전압Detect)
검출에 히스테리시스를 적용하도록 되어 있다 즉 전압이 감소할때에는 Vbot-
이하로 될 때 리셋이 작동되고 전압이 증가 할때에는= Vbot - Vhyst 2
이상으로 될 때 리셋이 해제 된다 그림 는 저Vbot+= Vbot + Vhyst 2 2-5
전압 검출 리셋의 타이밍도 이다
그림 저전압 검출 리셋 타이밍도2-5
Figure 2-5 Timing Diagram of Brown out Detection
- 8 -
재덱 리셋26 (JTAG Reset)
은 논리 복잡도가 높고 복잡한 기능을 수행JTAG(Joint Test Action Group)
하는 과 같은 부품들을 시험하는 것이 너무 복잡하여 좀 더 체계적으로ASIC
시험을 할 수 있도록 해보자는 취지로 와 같은 데이터 전boundary scan test
송 포맷으로 컴퓨터와 반도체 소자를 연결하여 온칩 디버깅 불휘발성 메모리의
프로그래밍 테스트 등을 수행하는 인터페이스 기술로써 현재는 PCB IEEE
로 국제 표준 규약으로 되어 있다 이는 내부를 몇개의Standard 11491 ASIC
블록으로 나누고 각 블록의 경계에 직렬로 시험용 신호 패턴을 입력하고 블록
을 작동시킨 후 신호를 출력하여 검사하는 방법을 사용하여 내부 블록 ASIC
기능 시험을 수행 하여 부품의 양부를 판정하기 위한 표준 규약이다 은 JTAG
이며 은 레지스터 형식을 가지Boundary-Scan Cell Boundary-Scan Cell Shift
며 각 의 상태를 읽고 쓰는 것은 입출력 방식을 이용한다 은 Cell Serial JTAG
의 코어가 들어있는 의 외부 단자중 단자를CPU CPLD TAP(Test Access Port)
사용하고 그 단자들의 용도는 표 과 같다 은 사용자가 시스템2-3 JTAG Reset
의 하드웨어적 디버깅을 으로 시행할 때 필요에 따라 레지스터를JTAG Reset
설정하여 발생시킬 수 있다
표 의 의 용도2-3 JTAG TAP
Table 2-3 Usage of JTAG TAP
TDI Test Data In
TDO Test Data Out
TMS Test Mode Select
TCK Test Clock
TRST Test Reset
- 9 -
워치독 리셋28 (Watchdog Reset)
워치독 타이머에서 지정된 주기 이상의 시간이 경과 되었을때 사용되는 리셋
으로 지정된 주기가 완료되기 전에 소프트웨어 명령으로 그 값을 클리어 시켜
주지 않으면 마이컴을 리셋시켜 궁국적으로 시스템이 정상적으로 동작하고 있
는지 감시하고 오동작을 방지하여 마이컴의 신뢰성을 향상시키는 기술이다
을 기준하여 상의 워치독 타이머의 레지스터 구성도는AVR128 DATA SHEET
그림 와 같다2-6
그림 워치독 타이머의 레지스터 구성도2-6
Figure 2-6 Configuration of Watchdog Timer Register
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 6 -
그림 전원투입리셋 타이밍도 리셋핀을 에 접속한 상태2-2 ( Vcc )
Figure 2-2 Timing Diagram of Power on Reset
외부 리셋24
그림 은 외부리셋 회로도이며 외부에 스위치를 장착하여 사용자에 의해2-3
스위치를 누르게 되면 마이컴의 단자는 평소 로 되어 있다가Reset High(5V)
가 되고 최소 펄스폭 이상의 이 지속될 때 리셋이 작동하LOW (15us) Low Level
게 된다 이때 전해콘덴서는 전원투입 후 리셋단자에 일정시간 지연 후 작동하
기 위한 지연용 콘덴서이다
그림 외부리셋 회로도2-3
Figure 2-3 External Reset Circuit
외부리셋의 타이밍도는 그림 와 같으며 번 단자의 에2-4 20 PIN RESET 50ns
이상의 이 지속되어 입력되면 리셋이 발생한다 즉Low Level Active Low 5V
일때 되고 일때 되어 리셋 된다Disable GND Enable
SW1
RESET
R110Ω
VCC_5V
C110uF
RESET
- 7 -
그림 외부리셋 타이밍도2-4
Figure 2-4 Timing Diagram of External Reset
저전압 검출 리셋25 (Brown-Out Reset)
마이컴에 인가되는 인가전압 가 순간적으로 전압 이하Vcc(5V) Brown-out
또는 로 내려가서 이상 지속되면 마이컴의 오동작을 방지하기 위(26V 4V) 2us
해 마이컴을 리셋하게 되고 마이컴에 따라 전압은BOD(Brown-Out Detection)
별도로 설정하도록 되어 있다 마이컴 메이커에 따라 LVD(Low Voltage
라고도 한다 또한 전압 스파이크에 의한 오동작을 방지하기 위해 전압Detect)
검출에 히스테리시스를 적용하도록 되어 있다 즉 전압이 감소할때에는 Vbot-
이하로 될 때 리셋이 작동되고 전압이 증가 할때에는= Vbot - Vhyst 2
이상으로 될 때 리셋이 해제 된다 그림 는 저Vbot+= Vbot + Vhyst 2 2-5
전압 검출 리셋의 타이밍도 이다
그림 저전압 검출 리셋 타이밍도2-5
Figure 2-5 Timing Diagram of Brown out Detection
- 8 -
재덱 리셋26 (JTAG Reset)
은 논리 복잡도가 높고 복잡한 기능을 수행JTAG(Joint Test Action Group)
하는 과 같은 부품들을 시험하는 것이 너무 복잡하여 좀 더 체계적으로ASIC
시험을 할 수 있도록 해보자는 취지로 와 같은 데이터 전boundary scan test
송 포맷으로 컴퓨터와 반도체 소자를 연결하여 온칩 디버깅 불휘발성 메모리의
프로그래밍 테스트 등을 수행하는 인터페이스 기술로써 현재는 PCB IEEE
로 국제 표준 규약으로 되어 있다 이는 내부를 몇개의Standard 11491 ASIC
블록으로 나누고 각 블록의 경계에 직렬로 시험용 신호 패턴을 입력하고 블록
을 작동시킨 후 신호를 출력하여 검사하는 방법을 사용하여 내부 블록 ASIC
기능 시험을 수행 하여 부품의 양부를 판정하기 위한 표준 규약이다 은 JTAG
이며 은 레지스터 형식을 가지Boundary-Scan Cell Boundary-Scan Cell Shift
며 각 의 상태를 읽고 쓰는 것은 입출력 방식을 이용한다 은 Cell Serial JTAG
의 코어가 들어있는 의 외부 단자중 단자를CPU CPLD TAP(Test Access Port)
사용하고 그 단자들의 용도는 표 과 같다 은 사용자가 시스템2-3 JTAG Reset
의 하드웨어적 디버깅을 으로 시행할 때 필요에 따라 레지스터를JTAG Reset
설정하여 발생시킬 수 있다
표 의 의 용도2-3 JTAG TAP
Table 2-3 Usage of JTAG TAP
TDI Test Data In
TDO Test Data Out
TMS Test Mode Select
TCK Test Clock
TRST Test Reset
- 9 -
워치독 리셋28 (Watchdog Reset)
워치독 타이머에서 지정된 주기 이상의 시간이 경과 되었을때 사용되는 리셋
으로 지정된 주기가 완료되기 전에 소프트웨어 명령으로 그 값을 클리어 시켜
주지 않으면 마이컴을 리셋시켜 궁국적으로 시스템이 정상적으로 동작하고 있
는지 감시하고 오동작을 방지하여 마이컴의 신뢰성을 향상시키는 기술이다
을 기준하여 상의 워치독 타이머의 레지스터 구성도는AVR128 DATA SHEET
그림 와 같다2-6
그림 워치독 타이머의 레지스터 구성도2-6
Figure 2-6 Configuration of Watchdog Timer Register
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 7 -
그림 외부리셋 타이밍도2-4
Figure 2-4 Timing Diagram of External Reset
저전압 검출 리셋25 (Brown-Out Reset)
마이컴에 인가되는 인가전압 가 순간적으로 전압 이하Vcc(5V) Brown-out
또는 로 내려가서 이상 지속되면 마이컴의 오동작을 방지하기 위(26V 4V) 2us
해 마이컴을 리셋하게 되고 마이컴에 따라 전압은BOD(Brown-Out Detection)
별도로 설정하도록 되어 있다 마이컴 메이커에 따라 LVD(Low Voltage
라고도 한다 또한 전압 스파이크에 의한 오동작을 방지하기 위해 전압Detect)
검출에 히스테리시스를 적용하도록 되어 있다 즉 전압이 감소할때에는 Vbot-
이하로 될 때 리셋이 작동되고 전압이 증가 할때에는= Vbot - Vhyst 2
이상으로 될 때 리셋이 해제 된다 그림 는 저Vbot+= Vbot + Vhyst 2 2-5
전압 검출 리셋의 타이밍도 이다
그림 저전압 검출 리셋 타이밍도2-5
Figure 2-5 Timing Diagram of Brown out Detection
- 8 -
재덱 리셋26 (JTAG Reset)
은 논리 복잡도가 높고 복잡한 기능을 수행JTAG(Joint Test Action Group)
하는 과 같은 부품들을 시험하는 것이 너무 복잡하여 좀 더 체계적으로ASIC
시험을 할 수 있도록 해보자는 취지로 와 같은 데이터 전boundary scan test
송 포맷으로 컴퓨터와 반도체 소자를 연결하여 온칩 디버깅 불휘발성 메모리의
프로그래밍 테스트 등을 수행하는 인터페이스 기술로써 현재는 PCB IEEE
로 국제 표준 규약으로 되어 있다 이는 내부를 몇개의Standard 11491 ASIC
블록으로 나누고 각 블록의 경계에 직렬로 시험용 신호 패턴을 입력하고 블록
을 작동시킨 후 신호를 출력하여 검사하는 방법을 사용하여 내부 블록 ASIC
기능 시험을 수행 하여 부품의 양부를 판정하기 위한 표준 규약이다 은 JTAG
이며 은 레지스터 형식을 가지Boundary-Scan Cell Boundary-Scan Cell Shift
며 각 의 상태를 읽고 쓰는 것은 입출력 방식을 이용한다 은 Cell Serial JTAG
의 코어가 들어있는 의 외부 단자중 단자를CPU CPLD TAP(Test Access Port)
사용하고 그 단자들의 용도는 표 과 같다 은 사용자가 시스템2-3 JTAG Reset
의 하드웨어적 디버깅을 으로 시행할 때 필요에 따라 레지스터를JTAG Reset
설정하여 발생시킬 수 있다
표 의 의 용도2-3 JTAG TAP
Table 2-3 Usage of JTAG TAP
TDI Test Data In
TDO Test Data Out
TMS Test Mode Select
TCK Test Clock
TRST Test Reset
- 9 -
워치독 리셋28 (Watchdog Reset)
워치독 타이머에서 지정된 주기 이상의 시간이 경과 되었을때 사용되는 리셋
으로 지정된 주기가 완료되기 전에 소프트웨어 명령으로 그 값을 클리어 시켜
주지 않으면 마이컴을 리셋시켜 궁국적으로 시스템이 정상적으로 동작하고 있
는지 감시하고 오동작을 방지하여 마이컴의 신뢰성을 향상시키는 기술이다
을 기준하여 상의 워치독 타이머의 레지스터 구성도는AVR128 DATA SHEET
그림 와 같다2-6
그림 워치독 타이머의 레지스터 구성도2-6
Figure 2-6 Configuration of Watchdog Timer Register
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 8 -
재덱 리셋26 (JTAG Reset)
은 논리 복잡도가 높고 복잡한 기능을 수행JTAG(Joint Test Action Group)
하는 과 같은 부품들을 시험하는 것이 너무 복잡하여 좀 더 체계적으로ASIC
시험을 할 수 있도록 해보자는 취지로 와 같은 데이터 전boundary scan test
송 포맷으로 컴퓨터와 반도체 소자를 연결하여 온칩 디버깅 불휘발성 메모리의
프로그래밍 테스트 등을 수행하는 인터페이스 기술로써 현재는 PCB IEEE
로 국제 표준 규약으로 되어 있다 이는 내부를 몇개의Standard 11491 ASIC
블록으로 나누고 각 블록의 경계에 직렬로 시험용 신호 패턴을 입력하고 블록
을 작동시킨 후 신호를 출력하여 검사하는 방법을 사용하여 내부 블록 ASIC
기능 시험을 수행 하여 부품의 양부를 판정하기 위한 표준 규약이다 은 JTAG
이며 은 레지스터 형식을 가지Boundary-Scan Cell Boundary-Scan Cell Shift
며 각 의 상태를 읽고 쓰는 것은 입출력 방식을 이용한다 은 Cell Serial JTAG
의 코어가 들어있는 의 외부 단자중 단자를CPU CPLD TAP(Test Access Port)
사용하고 그 단자들의 용도는 표 과 같다 은 사용자가 시스템2-3 JTAG Reset
의 하드웨어적 디버깅을 으로 시행할 때 필요에 따라 레지스터를JTAG Reset
설정하여 발생시킬 수 있다
표 의 의 용도2-3 JTAG TAP
Table 2-3 Usage of JTAG TAP
TDI Test Data In
TDO Test Data Out
TMS Test Mode Select
TCK Test Clock
TRST Test Reset
- 9 -
워치독 리셋28 (Watchdog Reset)
워치독 타이머에서 지정된 주기 이상의 시간이 경과 되었을때 사용되는 리셋
으로 지정된 주기가 완료되기 전에 소프트웨어 명령으로 그 값을 클리어 시켜
주지 않으면 마이컴을 리셋시켜 궁국적으로 시스템이 정상적으로 동작하고 있
는지 감시하고 오동작을 방지하여 마이컴의 신뢰성을 향상시키는 기술이다
을 기준하여 상의 워치독 타이머의 레지스터 구성도는AVR128 DATA SHEET
그림 와 같다2-6
그림 워치독 타이머의 레지스터 구성도2-6
Figure 2-6 Configuration of Watchdog Timer Register
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 9 -
워치독 리셋28 (Watchdog Reset)
워치독 타이머에서 지정된 주기 이상의 시간이 경과 되었을때 사용되는 리셋
으로 지정된 주기가 완료되기 전에 소프트웨어 명령으로 그 값을 클리어 시켜
주지 않으면 마이컴을 리셋시켜 궁국적으로 시스템이 정상적으로 동작하고 있
는지 감시하고 오동작을 방지하여 마이컴의 신뢰성을 향상시키는 기술이다
을 기준하여 상의 워치독 타이머의 레지스터 구성도는AVR128 DATA SHEET
그림 와 같다2-6
그림 워치독 타이머의 레지스터 구성도2-6
Figure 2-6 Configuration of Watchdog Timer Register
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 10 -
위의 리셋 신호에 의하여 에 리셋회로가 동작하게 되면 즉각 프로그램AVR
메모리의 번지로 점프하여 리셋 벡터를 실행한다 따라서 번지에는$000 $000
통상의 점프 명령어인 코드가 자리를 잡고 있다 워치독 변경 는 워RJMP Bit 4
치독 타이머의 프리스케일러의 값을 변경하거나 워치독 기능을 사용하지 않도
록 설정한다는 의미이며 비트가 로 되어 있을때 이 비트는 로 설정될수WDE 1 1
있다 가 로 설정되어 있다가 이 지나면 자동으로 는 WDCE Bit 1 4 Cycle WDCE
으로 된다 워치독 허용 은 워치독 기능의 사용 여부를 결정한다0 Bit 3 WDE
비트가 이면 워치독 타이머는 동작하지 않는다 단 비트가 로 설정이0 WDCE 1
되어야만 비트를 으로 변경할수 있다 워치독 타이머WDE 0 PRESCALER Bit
비트들의 선택에 따른 워치독 타이머의 설정비율과 이에 대2~0 PRESCALER
한 오버플로우 발생시간을 표 에 표시하였다 에는 의 오실2-1 ATMEG128 1Mhz
레이터가 내장되어 있으며 사용자에 의해 가지로 클럭주기를 변경할수 있도 8
록 가 구성되어 있다 워치독 타이머는 워치독 리셋 명령인PRESCALER WDR
명령을 실행하거나 마이컴 리셋이 발생하는 경우에 리셋이 된다 즉 워치독 타
이머에서 오버플로우가 발생하면 클럭 주기의 내부리셋 신호가 발생 하여 마1
이컴을 리셋 시킨다 워치독 타이머의 타이밍도는 그림 과 같으며 워치독이 2-7
발생하여 되면 에 의해 리셋이 된다TIME OUT 1Clock Cycle
그림 워치독 타이머의 타이밍도2-7
Figure 2-7 Timing Diagram of Watchdog Timer
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 11 -
워치독 타이머 에 따른 는 표 과 같으며 에 까WDP PRESCALER 2-4 WDP0~W 2
지의 비트를 조합하여 사용자가 분주 주기를 설정할수 있으며 설정값은 가Vcc
일때에는 에서 까지 가지 단계로 설정할수 있고 가 일3V 148msec 19s 8 Vcc 5V
때에는 에서 까지 설정할 수 있다14msec 18s
표 워치독 타이머 에 따른2-4 WDP PRESCALER
Table 2-4 PRESCALER of Watchdog Timer WDP
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음Off 2-8
과 같다 초기에 워치독 타이머 의 선언을 하고 Off 지원 라이브러리 내에 있는
글러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 내에있는 MCRSFR
레지스터의 와 의 비트를 로 하고 인터럽트 허용 함수를WDTCSR WDCE WDE 1
호출한다
WDP2 WDP1 WDP0Number of WDT
Oscillator Cycles
Typical Time-out
at Vcc=30V
Typical Time-out
at Vcc=50V
0 0 0 16K(16384) 148ms 140ms
0 0 1 32K(32768) 296ms 281ms
0 1 0 65K(65536) 591ms 562ms
0 1 1 128K(131072) 012s 011s
1 0 0 256K(262144) 024s 022s
1 0 1 512K(524288) 047s 045s
1 1 0 1024K(1048576) 095s 09s
1 1 1 2048K(2097152) 19s 18s
1
2
3
4
5
6
void WDT_off(void)
__disable_interrupt()
__watchdog_reset()
MCUSR amp= ~(1ltltWDRF)
WDTCSR |= (1ltltWDCE) | (1ltltWDE)
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 12 -
그림 워치독 타이머를 하기 위한 프로그램2-8 Off
Figure 2-8 Watchdog Timer Off Program
워치독 타이머를 하기 위한 프로그램은 그림 과 같으며 세부설명은 다음ON 2-9
과 같다 초기에 워치독타이머의 선언을 하고 ON 지원 라이브러리 내에 있는 글
러벌 인터럽트 금지 함수와 워치독 리셋함수를 호출하고 의 비트 WDTCR WDCE
와 비트를 연산한 값과 와 와 를 연산하여 을 셋WDE OR WDE WDP2 WDP0 WDTCR
트하면 분주기의 값이 로 되어 워치독 타이머는 마다 무조건 클리어 되005s 005s
므로 마이컴이 정상 상태 일때는 워치독 타이머에 의한 리셋은 작동되지 않는다
그림 워치독 타이머를 하기 위한 프로그램2-9 On
Figure 2-8 Watchdog Timer ON Program
7
8
9
WDTCSR = 0x00
__enable_interrupt()
1
2
3
4
5
6
7
8
void WDT_on(void)
__disable_interrupt()
__watchdog_reset()
WDTCR |= (1ltltWDCE) | (1ltltWDE)
WDTCR = (1ltltWDE) | (1ltltWDP2) | (1ltltWDP0)
__enable_interrupt()
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 13 -
마이컴 오동작 방지 장치3
비정상적인 출력을 차단하는 장치 및 그 방법31
비정상적인 출력을 차단하는 장치 및 그 방법에 대한 특허출원 정보는 표 과3-1
같다
표 특허출원 정보 비정상적인 출력을 차단하는 장치 및 그 방법3-1 ( )
Table 3-1 Information of Patent
마이컴이 리셋되거나 또는 시스템에 인가되는 전원전압이 비정상적인 범위에
있는 경우에 마이컴이 재부팅 되어 정상동작을 시행하기 전까지 출력신호를 일
정시간동안 차단하여 궁극적으로 시스템의 오동작을 방지하기 위해 고안된 장
치이며 그림 은 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도 이3-1
다
그림 마이컴 부팅시 비정상적인 출력을 차단하는 장치 구성도3-1
Figure 3-1 Device Structure for Blocking Abnormal output
while Booting on Micom
출원번호 10-2008-0131362
출원일자 년 월 일2008 12 22
출원인 서울통신기술 주식회사
특허상태 공개
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 14 -
상기 구성도와 같이 마이컴부 리셋감지부 지연부 버퍼부 등으로 구성되어 있
으며 상세 설명은 아래와 같다
리셋 감지부(1)
그림 리셋 감지부3-2
Figure 3-2 Reset Detection Circuit
마이컴에서 리셋 되면서 발생된 리셋신호 와 전원전압이 불안정 하여 발LOW
생되는 의 신호중 어느 한쪽이라도 발생되면 리셋 감지부 는 평상시Vcc LOW IC
출력을 로 유지하고 있다가 출력을 하여 신호를LOW HIGH ACTIVE HIGH
부로 출력한다Delay
지연부(2)
그림 지연부3-3
Figure 3-3 Reset Signal Delay Circuit
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 15 -
평상시 리셋신호가 인가 되기 전에는 리셋신호 입력단이 로 되어 있어서LOW
콘덴서에 충전된 전압은 다이오드 을 통해 방전되므로 트랜지스터는 상D1 OFF
태가 되어 평상시 출력허용 신호는 를 출력하게 되어 로 유지하게 된Vcc HIGH
다 이때 리셋신호가 로 되면 제 저항을 경유하여 콘덴서 에 충전되면 HIGH 1 220
서 충전된 전압은 제 저항과 제 저항값에 의해 분배된다 분배된 전압이 트랜2 3
지스터 작동전압 이상이 되면 트랜지스터가 작동되어 출력허용 신호는(06V)
가 되어 부에 인가된다 이때 충전시간은 이므로LOW BUFFER t(S) = R X C
트랜지스터 시점을 저항과 콘덴서의 시정수 값으로 계산하여 적용하면 된ON
다
버퍼부(3)
그림 버퍼부3-4
Ficure 3-4 Signal Buffer
마이컴이 리셋 되거나 전원전압이 불안정하여 발생한 리셋 신호가 부를Dealy
거쳐서 상태로 부에 전달되면 마이컴에서 부가장치로 출LOW ACTIVE Buffer
력되기 위해 부에서 대기중인 를 출력하게 된다 이로써 마이컴BUFFER DATA
의 리셋이나 전원전압의 불안정으로 인하여 발생할수 있는 초기 오동작을 방지
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 16 -
하기 위한 고안이다
고찰결과(4)
본 고안은 단지 마이컴이 리셋 되거나 전원전압이 불안정하여 작동 초기에
발생할수 있는 오동작은 일정부분 개선할 수는 있으나 마이컴이 리셋될 때 리
셋 신호를 출력해야만 본 고안 장치가 제 기능을 할 수 있으나 마이컴이 리셋
되는 시점에서 항상 리셋 신호를 출력할수 있는 것은 확실히 확보할 수가 없다
또한 초기 를 시켜서 오동작을 방지할수 있다고 하더라도 리셋이DATA Dealy
되어 현재까지 진행되었던 작업의 초기화와 리셋과정에서 발생할 수 있는 안정
상의 문제들은 해결할 수가 없기 때문에 본 고안은 본질적으로 문제 해결의 한
계를 포함하고 있는 것이다
마이컴 리셋 장치32
마이컴 리셋장치에 대한 특허출원 정보는 표 와 같다3-2
표 특허출원 정보 마이컴 리셋장치3-2 ( )
Table 3-2 Information of Patent
다수의 마이컴을 사용하여 각각의 마이컴에서 정상동작 유무를 감시하다가 특
정의 마이컴에서 에러가 발생하면 정상적인 마이컴으로 하여금 에러를 발생시
킨 마이컴을 리셋 시켜 시스템의 안정성을 확보하기 위한 고안이다 그림 는 3-5
다수의 마이컴으로 에러가 발생된 마이컴을 리셋 시키는 마이컴 구성도이다
구성도와 같이 레귤레이터 에서는 외부 전원을 공급받아 미리 설정된 전원을
각각의 제어부와 마이컴에 공급하고 마이컴의 오동작시 리셋신호를 발생시켜
에러가 발생된 마이컴을 리셋 시키게 된다 에러가 발생된 마이컴이 정상적인
마이컴에 의해 발견되면 정상적인 마이컴은 에러가 발생된 마이컴을 리셋하기
출원번호 10-2005-0133096
출원일자 년 월 일2005 12 29
출원인 지멘스 오토모티브 주식회사
특허상태 등록
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 17 -
위해 리셋 신호를 리셋 제어부로 보내고 리셋 제어부는 해당 마이컴을 리셋하
게 된다 즉 제 마이컴에서 에러가 발생하였다고 한다면 정상적인 제 마이컴에 1 2
서 제 마이컴에서 에러가 발생한 것을 감지한 후 제 리셋 제어부로 리셋 신호1 1
를 보내게 된다 제 리셋 제어부는 에러가 발생한 제 마이컴을 리셋하도록 고 1 1
안되어 있다 이때 에러발생의 유무를 판단하기 위해서는 각각의 마이컴에서는
상호 통신을 통하여 상대 마이컴을 감시하도록 되어 있다
그림 마이컴 구성도3-5
Figure 3-5 Configuration of Micom
본 고안은 장에서 언급한 것과 같이 즉 전원 투입 리셋2 (Power-on Reset)
외부 리셋(External Reset) Brown-Out Reset JTAG Reset Watchdog
외에 사용자가 미리 설정된 출력의 유형 등을 확정하여 마이컴의 에러Reset
유무를 판단한 후 해당 마이컴을 리셋 하여 정상적인 마이컴은 계속적으로 임
무를 수행 할 수 있도록 고안되었으나 에러가 발생된 마이컴의 임무 수행은 에
러가 발생된 시점에서 종료될 수밖에 없는 한계성을 여전히 벗어나지 못하고
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 18 -
있다 물론 정상적인 마이컴에서 그 임무를 위임받아 수행할 수는 있지만 위임
받는 순간은 어느 정도 지연 시간이 필요하게 되므로 지연이 없어야 하는 특수
한 작업 수행에는 동일한 문제점이 있다 즉 정상적인 마이컴에서 에러가 발생
한 마이컴의 잔여 임무를 위임받아 수행하기 위해서는 정상적인 마이컴에서 수
행중인 임무를 모두 마치거나 또는 대기를 시켜야 하는 문제가 있게 된다 또한
각각의 마이컴의 오동작 등을 감시하기 위해 서로 통신을 통해서 감시해야 하
므로 이에 따른 프로그램 부하가 발생되고 실제적인 작업임무가 지연되는 문제
점을 추가적으로 갖게 된다
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 19 -
고가용성 구현을 위한 이중화 시스템4
분산 제어시스템 이중화 구성방안에 대한 검토41
분산제어시스템 는 발전소와 같이 대규모DCS(Distributed Control System)
이고 프로세스가 복잡한 구조를 갖는 산업공정의 제어시스템으로 널리 보급되
어 왔으며 공정제어에 있어 가장 중요한 요인은 시스템의 신뢰성이다 분산제어
시스템의 기본 는 전원공급설비 제어Architecture Station IO Station
으로 구성되며 전체 시스템의 신뢰성 확보를 위해서는Communication System
전원 제어 통신 설비는 이중화 구조로 설계가 요구된다
파워 서플라이 시스템(1)
시스템에 따라 사용전압의 크기 및 종류가 다르고 전원공급 방식이 상이하기
때문에 제어시스템 선정시 전원공급설비의 구비 기능 및 신뢰도에 대한 검토가
필요하며 가장 일반적인 이중화 구성 방안은 전원장치를 이중화 하고 입력 전
원은 서로 다른 의 전원을 공급받아 입력전원 또는 전원장치중의 한대가Source
고장이 나도 제어 시스템에 별다른 영향이 없이 전원공급을 계속 유지하도록
해야 한다
콘트롤 프로세서(2)
제어모듈의 안정된 동작을 위해서 필수적으로 을 구성Redundancy System
해야 하며 통상적으로 구조는 의 동작 형태에 따Redundacy Backup Processor
라 와 구조로 구분할 수 있다 구조는Hot-Stanby Cold-Stanby Hot-Stanby
동작중인 에서 발생시 가Active Processor Fault Backup Processor
의 중단 없이 수행해 나가는 방식이고 구조는 주기적으Processing Cold-Stanby
로 의 와 를 해야 한다 종래의 분산제어Active Processor Data Status Update
시스템은 구조를 사용하였으며 신호 감지 및 의Cold-Stanby Fault Processor
절체를 위해 별도의 모듈이 필요 하였는데 이 모듈의 고장시Fault Detection
의 작동 자체가 불가능 하다는 단점이 있었다Backup Processor
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 20 -
멀티 펑션 프로세서(3)
설비의 제어모듈인 의 구조는INFI-90 MFP(Multi Function Processor) 1
에 의해 구성되며 이 선로는 방식에 의해 데이터를Mbaud Serial Link RS422
통신하고 기능이 있어 가DMA(Direct Memory Access) Backup MFP Hot-
동작을 하면서 의 이상시 이내에 절체 되어Stanby Active MFP 10[msec]
의 모든 기능을 대체할수 있다Active MFP
커뮤니케이션 네트웍(4)
분산제어 시스템은 의 여러 지역에 분산되어 있는 제어개소를 각각 제Plant
어하면서도 전체의 를 동일한 으로 통합제어 하고자Plant Real Time System
하므로 통신 기능에 있어 여러 의 통신 를 상호 유기적으로Level Network
없이 고속으로 를 전송하는 것이 중요하다 통신 네트워크를 분류해Error Data
보면 라 하는 와 과의 통신을 위한Data Highway Node Bus IO System Field
그리고 간의 통신을 위한 으로 구분할수 있다Bus Operator Station Network
통신 네트워크의 이중화 구성 설계에 있어 신뢰성을 향상 시키기 위해서는 네
트워크 이중화시 로 구성해야 하고 통신 가Dual Port Processor Port Optical
되어 있어 통신 매체에 고장이 발생 되더라도 네트워크 전체의 통신Isolation
에는 문제가 없는 구조이어야 한다
고찰 결과(5)
상기와 같이 시스템에서의 각각의 구성장치((1) Power Supply System (2)
Control Processor (3) Multi-Function Processor (4) Communication
에 대한 이중화를 통하여 각각의 에서 가 발생하였을Network) Processor Error
때 이중화 된 시스템이 제어 및 작동을 위임받아 수행함으로써 시스템의 가용
성 를 향상 시키기 위한 소극적 대응으로 되어 있다 즉HA (High Availability)
각각의 에서 근원적 를 해결하지 못하고 단지 가 발생한Processor Error Error
후에 피해를 최소화 하기 위한 방법에 한정되고 있다 때문에 이중화로 인한 시
스템의 비용 상승과 유지비용등이 지속적으로 유발 되는 문제점이 있다 때문에
근원적으로 시스템에서 가 발생되지 않토록 시스템 내부에서 방지책Error Error
이 강구되어야 한다
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 21 -
동적 이중화 시스템42
동일한 기능과 성능을 갖는 두 시스템 가 하나의 전체 시스템을 구성하는AB
이중화 구조의 시스템 중에서 동일한 입력에 대하여 시스템의 한쪽이 동작11
상태에서 신호를 출력하는 동안 다른 한쪽이 대기 상태에서 신(Active) (Stanby)
호를 출력하지 않는 시스템을 가리켜 동적 이중화 시스템이라(Active or Hot)
한다 그림 은 이중화된 전송 시스템의 모델링한 블록도 이다 4-1
그림 이중화된 전송시스템 모델링4-1
Figure 4-1 Dual Transmission System Modeling
고장율과 신뢰도(1)
상기의 시스템의 신뢰도는 수식 와 같이 시스템의 동작( 1) Rc(t) = exp(- ct)ƛ또는 대기 상태에서의 고장율 에 의존한다 또한 전체(c=Active) (c=Stanby) ( c) ƛ
시스템의 신뢰도는 수식 이다( 2) Rt(t)=2exp(- t)-exp(-2 t) ƛ ƛ
제어시간에 의한 전송데이터 손실(2)
이중화 제어에 있어서 시스템 고장상태의 검출시점에서부터 이중화 절체 신
호가 전송시스템의 출력버퍼를 단속하는 시점까지의 시간이 전체 소요시간 Tc
이며 각 단계별로 세분하면 다음과 같다
고장상태 검출시간Tm = [sec]
고장상태 인식시간Tp = [sec]
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 22 -
이중화 절체 시간Tr = [sec]
전체 이중화 제어시간Tc = [sec]
즉 이다 따라서 이중화 절체시간은 이중화 제어 Tc = Tm + Tp + Tr [sec]
시스템이 절체명령 신호를 수신한 후 활성 비활성 신호를 출력하고 그 신호가
피제어 시스템의 출력버퍼에 단속 신호로서 입력되기 까지 걸리는 시간이다 결
과적으로 전체 전송 시스템에서 보면 이러한 이중화 제어시간 동안에는 시스템
의 출력이 선택되지 못함으로 인하여 결국 전체 시스템의 고장으로 간주되어
이중화 제어 요구 시간 안에는 채널부의 전송 데이터가 송출되지 못하고 손실
된다 만일 이중화 제어 시스템을 선조치 후보고의 논리에 맞춘다면 과 Tm Tp
시간을 파격적으로 줄일수 있지만 이중화 제어관련 총 처리시간은 이중화 절체
시간에 영향이 있다
복합 제어 방식의 이중화법(3)
이중화 절체 소요시간 감축을 위해서는 이중화 제어 시스템의 중앙처리장치
의 동작 주파수가 높고 메모리의 엑세스 시간이 짧은 소자의 사용과 이중화 제
어 시스템을 감지부 와 절체부 로 분리하는 것이 필요하고(Monitor) (Switching)
선조치 후보고 논리를 기반으로 피제어 시스템의 상태를 감지하는 버퍼에 대z
한 읽기 주기 를 짧게 하는 프로그램이 필요하다 또한 고장에 대(Read Period)
비한 이중화 절체 방식의 이중화이다 이는 운용시간 과 시스템 고 20000[hrs]
장율 에 대하여 일반적 이중화는 수식 에 따nms = loc = = 120000 (1)ƛ ƛ ƛ라 인 반면에 제안된 복합 제어 방식의 이중화의 신뢰도는 수식 에R1=037 (2)
따라 계산하면 이므로 로서 개선된다R2=060 R2gtR1gt
고찰 결과(4)
제안된 복합제어 방식의 이중화가 다소 신뢰도가 개선되었다고는 하지만 다
음과 같은 조건이 전제되어야 하므로 실제 현실적으로 적용하기엔 무리가 있게
된다 즉 관리시스템과 이중화 제어 시스템이 통계적으로 고장율이 인 시 (1) 0
스템이다 두 피제어 시스템 는 통계적으로 완전히 동일한 고장율을 갖 (2) AB
는다 초기상태는 모두 정상상태를 갖는 두 피제어 시스템으로서 한쪽은 동 (3)
작상태 다른 한쪽은 대기상태를 유지한다 두 피제에시스템이 동시에 고장날 (4)
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 23 -
확률 는 거의 에 가깝다 절체시간 가 에 가깝고 불안한 동작이 없(Pf) 0 (5) t 0 ∆
는 완전한 절체이다 결과적으로 이또한 각각의 시스템에서 가 발생할 것 Error
을 기초로하여 에 대한 손실을 개선한것에 대한 한계는 있다Error
네트워크상에서 프로세서 이중화 시스템43
최근 사용되고 있는 대부분의 교환기들은 기법인 결Warm standby sharing
함 감내구조를 갖는 이유는 기법의 교환기들은 데이터Hot standby sharing
무손실 등 많은 장점이 있음에도 불구하고 동기화의 복잡성으로 인하여 실시간
교환 시스템으로의 구현시에 이론적인 성능을 얻기 어렵기 때문이다 따라서 이
중화 구조를 갖는 RNC(Radio Network Controller)에서 확장된 Warm standby
결함 감내 구조를 위한 프로세서 이중화 시스템에 대해 살펴본다 그림sharing
은 프로세서 이중화 시스템 구조의 블록도 이다4-2
그림 프로세서 이중화 시스템구조의 블록도4-2
Figure 4-2 Block Diagram of Dual Processor System
그림 에서와 같이 이중화를 위해 와 로 구분하고4-2 Active side Standby side
상호 신뢰성 있는 제어 신호를 전송하기 위해 이중화 는path 100base T
으로 구축되어 있다 이중화 지원 모듈Ethernet DSM(Duplication Support
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 24 -
은 이중화 블록의 전체적인 상태를 가지고 있으며 이를 이용하여 다른Module)
을 하고 상위 프로세서와 통신을 담당한다 동기화 모듈Module Control
은 와 사이의 상태 동SM(Synchronization Module) Active side Standby side
기를 맞추기 위해 동기화 모듈Active ASM(Active Synchronization Module)
과 동기화 모듈 로 구성 되어Standby SSM(Standby Synchronization Module)
있으며 와 는 서로 다르게 동작한다 장애처리 모듈Active side Standby side
은 오류를 감지하여 적절한 조치를 취하는 것으FHM(Fault Handling Module)
로 상대보드의 치명적인 오류와 자기 보드에서의 자원의 상태 변화를 감지하여
적절한 조치를 취하게 된다 복구 모듈 은 RM(Recovery Module) Active side
의 오류를 감지한 후 였던 보드에서 수행되는 모듈로 이전Standby side Active
가 수행되었던 곳까지를 한다 이전의 에서side follow up Active side Data
이 완전히 수행되지 않은 경우 새로이 가 된 는 현재backup Active side
되어 있는 를 바탕으로 절체된 순간 이전까지 를backup Data Input message
처리하여 절체 되기 전의 가 수행했던 상태를 복구하며 의Active IPC message
손실을 방지한다 이로써 각 프로세스가 메시지 단위로 동작하면서 갱신된 데이
터를 에 전달하는 기반 이중화 방식을 기본으로 기존의Standby side Task
구조가 갖는 데이터 손실 및 거짓 데이터의 확산 문제를 해결 함으로Standby
써 성능향상을 도모 하였다 본 연구에서는 의 손실을 방지할 목적의 개선 Data
안을 도출한 것으로 의 손실은 개선할 수는 있으나 의 실용적인 의미Data Data
즉 필요한 시점에 정확하게 도달되어야 하는 중요한 용도에는 부합하지 않는
장치이다 따라서 가 지연되므로 발생할수 있는 다양한 문제에 대해서는 Data
대응하지 못하는 한계가 있으므로 지연이 없는 상태에서의 손실을 방지하Data
는 장치의 구현이 필요하다
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 25 -
마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템5
본 장에서는 본 논문에서 제안한 마이크로프로세서 이중화를 통한 실시간ldquo
연속 제어 시스템 에 대해 설명한다 장에서는 마이컴의 비정상 동작에 대해rdquo 2
리셋을 통한 해결책을 살펴 봤고 장에서는 특허기술을 통한 마이컴의 비정상 3
동작 개선을 살펴보았다 또한 장에서는 연구 논문을 통한 마이컴의 비정상 4
동작 개선을 고찰 하였지만 이 모든 기술들은 어느 특정한 상태에서만 개선 효
과를 기대 할 수 있고 또한 모든 제어시스템에서 의 발생을 전제로 하ERROR
였기에 가 발생한 근원을 해결하기 보다는 처리에 역점을 둔 기ERROR ERROR
술이다 따라서 본 장에서는 원인을 알수 없는 이유로 마이컴이 정상동작을 하
지 않아도 가 발생한 시스템에서 별도의 절체하는 시간이 필요없고 실ERROR
시간으로 연속 제어를 할 수 있는 마이크로프로세서 이중화를 설계하고자 한다
시스템 알고리즘 순서도51
본 논문에서 제안하고자 하는 마이크로프로세서 이중화를 통한 실시간 연속
제어 시스템의 알고리즘은 그림 과 같다 먼저 시작과 함께 전원이 투입되면5-1
마이컴 와 마이컴 의 동기를 맞추기 위해 동일한 클럭을 각각의 마이컴에 입A B
력을 하고 시스템이 가동할 준비가 되었으면 시스템이 가동시 외부 입력정보를
기반으로 각각의 마이컴은 동일한 프로그램에 따라 연산 및 데이터 처리를 하
여 데이터를 출력한다 그러나 마이컴 의 상태가 정상이라면 우선 마이컴 의 A A
데이터를 출력하고 마이컴 가 비정상 상태이면 마이컴 의 데이터를 출력하게A B
되는 알고리즘이다
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 26 -
그림 시스템 알고리즘 순서도5-1
Figure 5-1 Flow Chart of System Algorithm
시스템 구조52
그림 는 마이컴 이중화를 위한 블록도 이며 세부 설명은 아래와 같다5-2
그림 마이컴 이중화 블록도5-2
Figure 5-2 Block Diagram of Dual Micom System
본 시스템은 마이컴 나 마이컴 가 항상 동일한 클럭에 맞추어 동작하는A B
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 27 -
것이 특징이다 즉 마이컴 나 마이컴 는 항상 동일한 시간에 동일한 작업을 A B
수행하게 고안되었다 때문에 각각의 마이컴은 연산 또는 저장 입력 출력 등
모든 작업순서 등이 동일한 시간에 실행하고 있는 것이다 세부적으로 설명하면
개의 전원부에서 각각의 마이컴에 를 공급함은 물론이며 외부에 개1 POWER 1
의 발생부로부터 각각의 마이컴에 공급되도록 하였다 특별히 각각의 마이CLK
컴에서 필요로 하는 외부 도 부에서 동일한 정보들을 각각DATA INPUT DATA
의 마이컴에 공급하도록 되어 있다 이에 따라 전원부 CLK INPUT DATA
등 각각의 마이컴에 입력되는 외부 입력 가 동일한 상태에서 각각의 마DATA
이컴은 동일한 프로그램에 의해 작업을 실행하고 있다 또한 각각의 마이컴에서
입력된 를 기초로 하여 각각의 마이컴에서 연산과 가공된 는 동일DATA DATA
한 시간을 유지하면서 동일한 를 외부로 출력하여 각각의 에 저DATA BUFFER
장 된다 또한 각각의 마이컴은 자신이 정상상태임을 마이컴 감시부에 알려 주
기 위해 일정한 파형을 출력하게 된다 이 파형 또한 동일한 시간을 유지하면서
동일한 파형을 출력하게 되는데 본 파형을 마이컴 감시부에서 정상상태 여부를
판단하고 있다가 특정한 마이컴에서 문제가 발생하여 파형이 지연되거나 왜곡
된 파형이 마이컴 감시부로 입력되면 마이컴 감시부는 즉시 비정상상태의 마이
컴 쪽의 출력부를 닫고 정상상태의 마이컴 쪽의 출력부를 하여 궁극적으OPEN
로 외부로 출력되는 는 항상 정상적인 가 연속적으로 출력 될 수DATA DATA
있도록 고안된 시스템이다 즉 마이컴 감시부에서 각각의 마이컴의 상태를 감
시한 결과 모두 정상적이라면 임의로 한쪽의 출력부만 하고 본 시스템에OPEN (
서는 우선 마이컴 의 출력부를 한다 반대편은 한 상태로 동작한A OPEN ) CLOSE
다 물론 본 시스템에서 각각의 마이컴 모두가 비정상적인 동작을 한다면 실시
간 연속적인 제어는 사실상 불가능 하지만 마이컴 모두가 동시에 고장이 발생
할 확률은 매우 희박하기 때문에 마이컴 모두가 동시에 고장 나는 경우는 제외
하기로 한다 만일 두개의 마이컴이 동시에 고장이 발생하는 경우도 고려해야
한다면 마이컴의 수를 증가 시키면 더욱이 다수의 마이컴이 동시에 고장이 발
생할 경우는 매우 희박하게 된다 또한 마이컴의 수가 증가하여도 본 시스템의
기본적인 동작이나 구조는 변경되는 것이 아니므로 마이컴 증가에 따른 특별한
추가적인 조치를 할 필요는 없다
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 28 -
전원부53
전원부는 외부 전원을 을 사용하여 전DC9V(500mA) Regulator 7805 +5V
원을 만들었다 그림 은 본 시스템에서 사용할 전원전압을 만드는 전원부 회 5-3
로도이며 본 전원은 마이컴 및 마이컴 에 동시에 공급한다A B
그림 전원부 회로도5-3
Figure 5-3 Power Circuit
클럭 발생부54
발생부는 마이컴 와 마이컴 가 동기되도록 외부에 개의 발생기로CLK A B 1 CLK
부터 를 전송한다 본 시스템에서는 를 발진하도록 하였다 그림CLK 4MHz 5-4
는 발생부 회로도이다CLOCK
그림 클럭 발생부5-4
Figure 5-4 Clock Generation Circuit
C9
104
+C8
470uF16V
LED17
GREEN
+5VR27
330R
U5
7805TO220
IN1
OUT3
GN
D2
+
C10200uF10V
J3
CON2
12DC9V(500mA)
C3104
+5V
to A마마마
to B마마마
X1
OSC-4MHZ
VCC4
OUT3
GND2
NC1
L1
100R(Ferrite Beads)
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 29 -
마이컴 부55 A
R14
47K
R15
47K
BC1104
DATA_INPUT_A
R9
47K
DATA_INPUT_BDATA_INPUT_CDATA_INPUT_D
to A 마마마 마마마
SW1
to Reset
R10
47K
RESET_A
R8 47K
C4 104
D1IN4148
+5V
C1 104
to CLK발발마
R12
47K
U1
ATMEGA48
PD31
PD42
GN
D3
VC
C4
GN
D5
VC
C6
PB6(OSC1)7
PB7(XTAL2OSC2)8
PD59
PD610
PD711
PB012PB113
PB214
PB3MOSI15PB4MISO16PB5SCK17
AV
CC
18ADC6
19
AR
EF
20G
ND
21ADC7
22
PC023
PC124
PC225
PC3(ADC3)26
PC427
PC5(ADC5)28
PC6(RESET)29
PD0(RXD)30
PD1(TXD)31
PD232
BC2104
+5V
BC3104
R13
47K
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
그림 마이컴 부5-5 A
Figure 5-5 Micom A Circuit
마이컴 부는 그림 와 같으며 발생부로부터 의 발진주파수가A 5-5 CLOCK 4MHz
로 입력되고 전원부로부터 는 번 번 번 로 인가된PB6 PORT Vcc5V 4 6 18 PORT
다 출력단 는 를 에 출력하기 위 PD0PD1PD2PD3 DATA BUFFER 74HC574
해 직렬로 연결되어 있다 특히 마이컴이 정상 상태임을 마이컴 감시부로 신호
를 보내기 위해 를 통해서 해당 출력 파형을 출력하게 된다 또한PB0 PORT
외부리셋을 위해 에는 단자를 구성하였다PC6 Low Active Reset PC0~PC3
는 실제 시스템에서 사용될 입력신호용 이며 본 시스템에서는PORT PORT LED
구동을 위한 시스템이므로 입력 는 사용하지 않았다 물론 마이컴 부도PORT B
마이컴 부와 같이 동일한 조건으로 병렬구조로 구성되어 있다A
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 30 -
마이컴 감지부56
마이컴 와 마이컴 는 자신들의 마이컴이 정상적인 상태임을 확인하기 위해A B
로 일정한 펄스 파형을 출력하고 출력된 파형은 마이컴 감시부에PB0 PORT
구성된 에서 입력받아 마이컴의 정상 여부를 실시간으로AND GATE CD4081
감시하고 있다 그림 은 마이컴 감시부의 회로도이며 그림 은 각각의 마 5-6 5-7
이컴에서 정상시 출력하는 파형이다
그림 마이컴 감시부 회로도5-6
Figure 5-6 Micom Monitoring Circuit
그림 정상 마이컴에서 출력하는 파형5-7
Figure 5-7 Wave Form of Steady State Micom
C1
R1
40815
64
14
7
D1
R2
R3
to A 마마마 마마마
C2
40111
23
14
7
+
C4
Q2
Q3A3 1
2
to B 마마마 마마마
R4
+
C5
to MICOM A Reset
VCC 56V
40811
23
14
7
C3
R5
40815
64
14
7
D2
R6
R7
C6
40111
23
14
7
+
C7
Q4
Q5A3 1
2R8
+
C8
VCC 56V
to MICOM B Reset
40811
23
14
7
VCCVCC
VCC VCC
VCC
VCC
to A PB0마마마
to B PB0마마마
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 31 -
마이컴에서 정상시 출력하는 파형을 를 통과하면 마이컴에서 출력AND GATE
하는 파형이 왜곡되거나 불안정하는 것을 보정하여 명확한 펄스로 만들기 위해
을 사용하였다 를 통과한 분명한 출력파형은AND GATE CD4081 AND GATE
회로에 의해 충방전을 하면서 위치가 전위되어 펄스파형의 중심으로 이RC GND
동하게 되어 파형은 를 교번하게 됨을 그림 에서 확인할수 있다+- 5-8
그림 위치가 전위된 펄스 파형5-8 GND
Figure 5-8 Wave Form of GND Offset
가 전위된 파형은 다시 의 를 거치면서 명확한 파형으GND CD4081 AND GATE
로 재 교정되어 출력하게 된다 재 교정되어 출력된 파형은 다이오드 과 저 (D1)
항 을 통하여 콘덴서 에 충전되면서 펄스 파형이 적분되어 출력된 전형(R1) (C2)
적인 파형은 그림 와 같다 저항 는 콘덴서 에 충전된 전원을 방DC 5-9 (R2) (C2)
전하기 위한 저항이다
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 32 -
그림 펄스 파형이 적분된 파형5-9
Figure 5-9 Integration of Wave Form
적분된 파형은 진 전압레벨로 하여금 로 되어 플립플롭의DC 2 High S-R SET
와 단자에 입력된다 플립플롭은 토글 스위치와 전기적으로 등가 회로를RESET
이루며 두개의 출력을 가지며 출력이 일때 출력은 이다 플Q High -Q Low S-R
립플롭의 진리표는 표 과 같다5-1
표 플립플롭 진리표5-1 S-R
Table 5-1 Truth Table of S-R FF
플립플롭의 진리표에서 알수 있듯이 입력 모두가 일때에는 출력이S-R High
가 되고 입력의 어느 한쪽이 바뀌게 되면 출력은 상호 보수화NC(no change)
되어 변하게 되어 출력이 동시에 나 로 유지될수 없게 된다 즉 가High Low Q
이면 반드시 는 가 되고 가 이면 는 가 된다 단 진리High -Q Low Q Low -Q High
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 33 -
표상에서 입력 모두가 가 될 때에는 출력 모두가 로 되지만 이는 현실Low High
적으로 이루어 질수 없기 때문에 부정으로 처리한다 즉 두 입력신호가 시간적
으로 동시에 정확하게 상태로 입력될 수 없기 때문이다 이처럼 마이컴Low A
나 마이컴 에서 출력된 파형이 플립플롭에 도달하면 어느 한쪽은 가B S-R High
되고 반대편은 가 되어 출력은 상태가 된다 따라서 편의상 마이컴Low Latch A
라인 쪽을 로 유지하기 위해서는 마이컴 라인쪽 보다 마이컴 라인 입력High B A
부위를 시간적으로 먼저 로 입력할 필요가 있다 마이컴 라인쪽을 우선High A
로 입력하기 위해서는 저항 와 콘덴서 의 시정수가 저항 과 콘덴High (R2) (C2) (R7)
서 의 시정수에 비해 작으면 입력은 가 되고 출력은(C6) Low High High Low
가 된다 마이컴 라인쪽이 가 되면 마이컴 에서 출력되는 를 최종 A High A Data
출력하게 되어 마이컴에 이상이 발생하기 전 까지는 마이컴 가 시스템을 운영A
하게 된다 마이컴 에서 비정상 상태가 되면 마이컴 에서 출력하는 파형이 변 A A
형될 것이며 변형된 파형은 다음과 같이 가지 경우가 된다 즉 로 연속3 1)Low
유지한다 로 연속 유지한다 주기적인 파형의 주파수가 변경된다 만 2)High 3)
일 마이컴의 출력 파형이 나 로 계속 유지 될 경우에는 충방전 소자Low High
인 콘덴서 과 저항 에 의해 플립플롭에 도달하는 신호는 가 되기 때(C1) (R1) Low
문에 플립플롭의 출력 신호는 바뀌게 된다 또한 주기적인 파형의 숫자가 변경
되면 적분소자 저항 와 콘덴서 에 의해 순간적으로 에서 로 변(R3) (C2) High Low
화 되어 플립플롭의 출력 신호는 바뀌게 된다 평상시에는 전압이 저항 Vcc (R4)
를 통하여 형 트랜지스터 의 베이스에 인가되기 때문에 트랜지스터NPN Q3 Q3
는 되어 마이컴 리셋 출력 단자에는 가 인가 되고 있다 동시에 콘덴ON A Vcc
서 는 서서히 충전되어 마이컴 리셋 출력 단자를 을 하여 안정시(C5) A Soft up
킨다 마이컴 측 플립플롭 출력단이 가 되면 콘덴서 가 충전되면서 A High (C4)
트랜지스터 는 된다 따라서 마이컴 측 플립플롭 출력단이PNP (Q2) OFF A High
가 되면 마이컴 리셋 출력단은 동시에 로 되어 마이컴 는 정상적으로A High A
동작한다 반대로 마이컴 에서 이상현상이 발생하면 마이컴 에서 출력 파형 A A
이 왜곡되어 결과적으로 플립플롭 출력단이 가 되고 이 때문에 마이컴 는Low A
리셋되고 즉시 시스템의 동작은 이중화로 대기중인 마이컴 에게 이관된다 마B
이컴 측의 플립플롭 출력단이 가 되면 마이컴 측의 플립플롭 출력단이A Low B
가 되고 이 신호로 버퍼에 대기중인 는 디지털 스위치의 개폐로 정High DATA
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 34 -
상적인 마이컴을 선택하여 출력하게 된다
출력 선택부57
그림 출력 선택부 회로도5-10
Figure 5-10 Output Selection Circuit
그림 는 출력 선택부의 회로도이며 출력 선택부는 마이컴 감시부로부터5-10
정상유무를 실시간으로 하여 마이컴 나 마이컴 에서 정상 상태와 비정CHECK A B
상 상태에 따라 정상상태의 마이컴을 선택하여 정상상태의 를 출력하기DATA
위해 를 이용하여 각각의 에서 출력되는 를ANALOG SW 4066 BUFFER DATA
선택하도록 하였다 마이컴 감시부에 구성되어 있는 플립플롭 출력단이 상호 보
+5V
+5V
to B 마마마 마마마
U7
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U3
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
to A 마마마 마마마
+5V
+C6
100uF10V
R16 330R
R17 330R
R18 330R
R19 330R
LED9 GREEN
LED11 GREEN
LED10 GREEN
LED12 GREEN
U6
BU4066BC
VEE7
VDD14
IOA1 OIA2 IOB4 OIB3 IOC8 OIC9 IOD
11 OID10
CTRLA13CTRLB5CTRLC6CTRLD12
U2
74HC574
OE1
CLK11
Q119
Q218
Q317
Q416
Q515
Q614
Q713
Q812
D12
D23
D34
D45
D56
D67
D78
D89
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 35 -
수적으로 출력을 하고 있기 때문에 즉 마이컴 측이 이면 마이컴 측은A High B
가 되고 마이컴 측이 가 되면 마이컴 측은 가 되기 때문에Low B High A Low
의 단자는 어느 한쪽 즉 마이컴 나 마이컴 를ANALOG SW 4066 561213 A B
선택하도록 되어 있다 표 은 마이컴의 상태에 따라 출력 선택부에서 선택되 5-2
는 마이컴을 나타낸다 표 와 같이 평상시에는 마이컴 를 출력하다가 마이컴 5-2 A
가 고장일 경우에는 마이컴 를 출력하게 된다 이때 마이컴 와 마이컴 가A B A B
동시에 고장날 확률은 매우 희박하기 때문에 본 시스템에서는 부정하는 것으로
한다 만일 마이컴 나 가 고장이 발생하여 이중화 되어 대기중인 마이컴이 잔 A B
여 임무를 위임받아 연속적으로 작업을 수행하고 작업의 특성에 따라 리셋이
가능한 여분의 시간이 확보되는 시점에서 고장난 마이컴을 리셋시킨후 이중화
를 위해 대기하게 된다
표 출력 선택부 출력상태5-2
Table 5-2 Output Selection Condition
시스템 가동용 프로그램58
시스템 가동용 프로그램은 아래와 같이 언어로 작성하였으며 실시간 연속C
제어를 실험하기 위해 개를 사용하여 초씩 형식으로 가LED4 05 ONOFF LED
켜지면서 오른쪽 으로 이동하게 하였다 이때 인위적으로 마이컴 고장SHIFT
을 유발시키기 위해 마이컴에 공급되는 전원을 차단시키는 스위치를 하여OFF
도 연속적으로 가 되는지를 확인하기 위한 프로그램 이다LED SHIFT
순번 마이컴A 마이컴B 출력
1 정상 정상 마이컴 출력A
2 정상 비정상 마이컴 출력A
3 비정상 정상 마이컴 출력B
4 비정상 비정상 정지 부정( )
1 include ltinavrhgt
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 36 -
그림 프로그램 용어 선언5-11 1( )
Figure 5-11 Program Part1 (Define Terms)
프로그램 은 시스템 가동을 위한 용어 선언부 이다 표준라이브러리를 호출하1
고 부호없는 를 라고 정의하고 부호 없는 를 라고 정의8Bit byte 16bit word
하고 은 로 는 으로 참은 로 거짓은 으로 정의한다 ON 1 OFF 0 1 0
그림 프로그램 상수 및 포트정의5-12 2( )
Figure 5-12 Program Part2 (Define Constants and Ports)
프로그램 는 상수 및 포트 정의이며 타이머 의 주기는 로 정의하고2 0 200us
는 로 정의하고 클럭 포트는 로하고T0_CNT 1ms LATCH PB2 LATCH
포트는 으로 하고 시스템 포트는 로 하고 은 에ENABLE PB1 PB0 LED0 PD0
2
3
4
5
6
7
typedef unsigned char byte
typedef unsigned int word
define ON 1
define OFF 0
define TRUE 1
define FALSE 0
1
2
3
4
5
6
7
8
9
define TIMER0_VA 255-200
define T0_CNT 5-1
define LATCH_CLK_PORT PB2
define LATCH_ENA_PORT PB1
define SYS_PORT PB0
define LED_0 PD0
define LED_1 PD1
define LED_2 PD2
define LED_3 PD3
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 37 -
할당하고 할당하고 할당하고 로 정의한다 LED1 PD1 LED2 PD2 LED3 PD3
그림 프로그램 래치 출력 포트 및 모니터링 펄스 정의5-13 3( LED )
Figure 5-13 Program Part3
(Define LatchampLED Output Port and Monitoring Pulse)
프로그램 은 래치 출력 포트 및 모니터링 펄스 정의이다 래치 클럭 발생3 LED
및 래치 출력 정의이며 의 모든 출력을 으로 또는 개별ENABLE LED 0
를 정의하고 마이컴의 정상유무를 파악하기 위한 모니터링용 펄스 출ONOFF
력포트의 상승과 하강에 대한 정의이며 시간 정의이다 LED ON
그림 프로그램 타이머 순차점등 및 출력버퍼 변수정의5-14 4( 0LED )
Figure 5-14 Program Part4 (Declaration of Variables)
1
2
3
4
딜레이 카운터byte us200_counter 200usec
순차 점등 딜레이 카운터word led_delay_timer LED
순차 점등 프레그byte led_step_flag LED
시스템 펄스 용 플레그byte system_pulse_toggle_flag TOGGLE
1
2
3
4
5
6
7
8
9
10
11
12
define LATCH_CLK_UP PORTB |= (1 ltlt LATCH_CLK_PORT)
define LATCH_CLK_DN PORTB amp= ~(1 ltlt LATCH_CLK_PORT)
define LATCH_ENABLE PORTB amp= ~(1 ltlt LATCH_ENA_PORT)
define LATCH_DISABLE PORTB |= (1 ltlt LATCH_ENA_PORT)
define LED_ALL_OFF PORTD amp= ~(0x0f)
define LED_0_ON PORTD |= (1 ltlt LED_0)
define LED_1_ON PORTD |= (1 ltlt LED_1)
define LED_2_ON PORTD |= (1 ltlt LED_2)
define LED_3_ON PORTD |= (1 ltlt LED_3)
define SYSTEM_PULSE_UP PORTB |= (1 ltlt SYS_PORT)
define SYSTEM_PULSE_DOWN PORTB amp= ~(1 ltlt SYS_PORT)
define DELAY_500MS 500
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 38 -
프로그램 는 타이머 을 로 정의하고 순차점등용 딜레이 카운터를4 0 200us LED
정의하고 들의 순차 점등 플레그를 정의하고 시스템 펄스 용 플 LED ONOFF
레그를 정의한다
그림 프로그램 타이머 초기화5-15 5( 0 )
Figure 5-15 Program Part5 (Timer0 Initialization)
프로그램 는 타이머 를 초기화 하는 프로그램이다 클럭 분주비 로 하여 주기5 0 8
는 으로 설정하고 타이머 인터럽트 플레그 초기화 및 을 시킨200us 0 ENABLE
다
그림 프로그램 출력 포트 초기화5-16 6( )
Figure 5-16 Program Part6 (Output Port Initialization)
1
2
3
4
5
6
7
void Timer0_initial()
TCCR0 = 0x2
TCNT0 = TIMER0_VA
TIMSK |= (1 ltlt TOIE0)
TIFR amp= (1 ltlt TOV0)
1
2
3
4
5
6
7
8
9
void PORT_initial()
DDRB = 0x07
DDRC = 0x00
DDRD = 0x0f
PORTB = 0x00
PORTC = 0x00
PORTD = 0x00
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 39 -
프로그램 은 출력 포트 초기화 이다 래치포트 및 모니터링 펄스는 포트 에 할6 B
당되고 속성은 출력으로 초기화 한다 데이터 입력은 포트 에 할당되고 속성은 C
입력으로 초기화 한다 는 포트 에 할당되고 속성은 출력으로 초기화 한 LED D
다
그림 프로그램 하드웨어 초기화5-17 7( )
Figure 5-17 Program Part7 (Hardware Initialization)
프로그램 은 하드웨어 초기화이다 모든 초기화 프로그램을 한 프로그램으로7
호출하고 관련 변수들을 초기화 하는 프로그램이다 타이머 및 포트 초기화 프
로그램을 차례로 호출하고 래치버퍼를 을 하고 카운터 변수를ENABLE 1ms
대입하고 순차점등 용 변수들을 초기화 하고 마이컴 이상유무를 위한 모 LED
니터링 펄스 출력용 변수를 초기화 한다ONOFF
1
2
3
4
5
6
7
8
9
10
void HW_initial()
Timer0_initial()
PORT_initial()
LATCH_ENABLE
us200_counter = T0_CNT
led_step_flag = 0
led_delay_timer = 0
system_pulse_toggle_flag = 0
1
2
3
4
5
6
void clk_delay(byte dt)
while(dt)
asm(nop)
--dt
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 40 -
그림 프로그램 래치 딜레이5-18 8( )
Figure 5-18 Program Part8 (Latch Delay)
프로그램 은 래치 딜레이 프로그램이다 래치버퍼를 래치하기 위한 펄스 출력8
딜레이며 시간은 약 이다 1us
7
8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void Proc_led_output()
if(led_delay_timer)
return
led_delay_timer = DELAY_500MS
switch(led_step_flag)
case 0
LED_0_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 1
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 2
LED_1_ON
LATCH_CLK_UP
clk_delay(3)
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 41 -
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
LATCH_CLK_DN
break
case 3
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 4
LED_2_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 5
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 6
LED_3_ON
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
case 7
LED_ALL_OFF
LATCH_CLK_UP
clk_delay(3)
LATCH_CLK_DN
break
++led_step_flag
if(led_step_flag gt 7)
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 42 -
그림 프로그램 순차 점등출력5-19 9(LED )
Figure 5-19 Program Part9 (LED Sequential OnOff Output)
프로그램 는 순차 점등출력용 프로그램이다 타이머 인터럽트에 따라9 LED 0
마다 회씩 실행을 하며 매 실행시 순차적으로 를 한다 실05s 1 LED ONOFF
행시 모든 는 초기화 시키며 순차점등용 플레그를 판단하여 해당 를LED LED
한다 시에는 래치 클럭을 발생하여 래피 버퍼에 래치를 시ON LED ONOFF
킨다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
pragma vector = TIMER0_OVF_vect
__interrupt void timer0__overflow_handler(void)
TCNT0 = TIMER0_VA
if(us200_counter)
--us200_counter
return
us200_counter = T0_CNT
if(led_delay_timer) --led_delay_timer
if(system_pulse_toggle_flag)
SYSTEM_PULSE_UP
system_pulse_toggle_flag = 0
else
SYSTEM_PULSE_DOWN
system_pulse_toggle_flag = 1
62
63
64
led_step_flag = 0
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 43 -
그림 프로그램 타이머5-20 10( 0 ISR)
Figure 5-20 Program Part10 (Timer0 ISR)
프로그램 은 타이머 의 인터럽트 서비스 루틴이다 인터럽트 주기는 이10 0 200us
며 주기를 만들기 위한 카운터를 운영하며 순차 점등용 딜레이 카 1ms LED
운터 및 마이컴 정상유무 감시용 펄스 출력을 실행한다
그림 프로그램 메인 프로그램5-21 11( )
Figure 5-21 Program Part11 (Main Program)
프로그램 은 메인프로그램이다 마이컴이 시작과 함께 초기에 리셋이 되면11
처음실행되는 프로그램으로 하드웨어 초기화를 하고 글로벌 인터럽트 플레그
를 을 한다 순차 점등 및 워치독 타이머 리셋을 무한반복 실행한ENABLE LED
다
22
1
2
3
4
5
6
7
8
9
10
int main(void)
HW_initial()
__enable_interrupt()
while(1)
__watchdog_reset()
Proc_led_output()
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 44 -
실험 결과 및 분석6
그림 은 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서 마6-1 ldquo rdquo
이컴의 정상유무 상태를 판단하기 위해 각각의 마이컴에서 출력하는 출력 파형
이다 파형은 이다 는 마이컴 의 출력파형이며 는 마이컴 2ms(500Hz) D3 B D2 A
의 출력파형이다 은 마이컴 에 인가되는 이고 는 마이컴 에 인 D1 B Vcc5V D0 A
가되는 이다 임의 시점에서 마이컴 에 인가되는 를 차단하면 마이Vcc5V A Vcc
컴 에서 출력되는 파형이 정지됨을 그림에서 확인할수 있다A
그림 마이컴의 정상유무를 판단하기 위한 출력파형6-1
Figure 6-1 Wave Form of Checking Micom Condition
그림 는 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템 에서6-2 ldquo rdquo
까지 개를 초씩 시켜 오른쪽으로 한 출력 파형이D0~D3 LED4 05 ONOFF Shift
다 상단 파형은 마이컴 로 인가되는 전원이다 임의로 마이컴 에 인가되는 T A A
전원을 시켜서 마이컴 동작을 정지 시켜도 의 출력 파형은 정상적으로Off LED
동작하는 것을 확인할 수 있다 는 의 상태를 나타내며 시 D0~D3 LED ONOFF
간축은 단위로 됨을 확인할수 있다 상단 파형은 마이컴 에 인가05sec Shift T A
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 45 -
되는 전원을 임의로 차단시켜서 마이컴 를 정지시켜도 이중화된 마이컴 에서A B
작업을 위임받아 출력은 왜곡 없이 정상적으로 출력함을 확인할LED ONOFF
수 있다
그림 출력 파형6-2 LED ONOFF SHIFT
Figure 6-2 Wave Form of LED ONOFF Shift
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 46 -
결론7
지금까지 마이컴의 비정상 동작에 대해 리셋을 통한 방법과 특허기술을 통한
마이컴의 비정상 동작 개선 방법과 연구 논문을 통한 마이컴의 비정상 동작 개
선 방법 등을 살펴보았다 그러나 이러한 기술들은 어느 특정한 부분의 개선은
가능하나 궁극적으로 마이컴을 리셋 시키는 과정에서 시스템의 재가동으로 인
한 문제들을 완벽하게 해결하지 못하였고 시스템의 재가동시 발생하는 문제들
을 해결하기 위해 이중화를 사용하였으나 이 또한 비용이 상승하고 시스템의
크기를 슬림화 하는데 상당한 문제가 발생하여 개선이 절실하게 요구되어 왔다
이에 본 문제점을 개선할 목적으로 제안된 마이컴 이중화를 통한 실시간 연속ldquo
제어 시스템 은 단순화 한 시스템 내부에 있는 마이컴을 이중화 하여 원인을rdquo
알수 없는 이유로 마이컴이 정상 동작을 하지 않을 경우 이중화된 마이컴이 잔
여 작업 임무를 실시간으로 위임 받아 결국 마이컴에 문제가 발생하여도 출력
은 실시간으로 정상출력을 할수 있도록 고안 되었다
이를 실험적으로 증명하기 위해 개를 순차적으로 점등하면서 왼쪽으로LED 4
하게 한 상태에서 마이컴 의 전원을 임의의 시점에서 하여 마이컴 의Shift A Off A
가동을 임의로 정지시켰다 이때 이중화 되어 대기중인 마이컴 가 실시간으로 B
작업을 위임받아 출력함에 따라 마이컴 의 전원을 하여도 는 중간에 꺼A Off LED
짐이나 이상동작이 없이 순차적으로 점등하면서 왼쪽으로 한 상태에서 정Shift
상적으로 출력됨을 확인하였다 종래에는 마이컴이나 시스템의 이중화 과정에서
필연적으로 절체시간이 필요하였으나 본 연구에서 제안한 시스템은 별도의 절
체시간이나 지연이 없이 실시간으로 이중화 처리로 제어함을 증명 하였다
이에 본 연구를 통해 제안된 마이컴 이중화를 통한 실시간 연속 제어 시스ldquo
템 은 자동차의 급발진 사고 예방이나 히터등의 가열로 인한 화재 발생 방지등rdquo
과 같이 인체에 유해를 가할 수 있는 모든 시스템 제어에 유용하게 적용 될 수
있을 것으로 판단된다 특히 마이컴만을 이중화 하였기 때문에 제품의 크기를
최소화 할수 있어서 모든 가전제품에 적용할 수 있을 것으로 판단되며 제작비
용 또한 마이컴 비용만 상승되므로 비용 상승을 최소화 할 수 있을 것으로 판
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 47 -
단된다 향후에는 본 시스템을 또는 환경에서 테스트를 실시하여 본 EMI EMC
시스템의 안정성을 확인할 예정이며 특히 낙뢰 및 정전기 또는 내 테스트Surge
를 실시하여 실제로 외부의 전기적 또는 열적 상태에서 마이컴을 직접적Noise
으로 오동작 시켜서 본 시스템이 정상적으로 가동되는지를 실험적으로 추가 연
구를 실시할 예정이다
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-
- 48 -
참고 문헌
[1] ATMEGA128V Data sheet
httpwwwatmelcomdynresourcesprod_documentsdoc2467pdf
윤덕용 정복[2] ldquoAVR ATmega128 rdquo pp 101~118 2009
[3] THOMAS L FLOYD ELECTRONIC DEVICES pp 869~877 2001
김성일 외 디지털논리회로실험[4] 3 ldquo rdquo pp 171~174 1996
홍안의 외 디지틀논리와 시스템설계[5] 1 ldquo rdquo pp 145~154 1995
조병철 특허출원 비정상적인 출력을 차단하는 장치[6] ldquo 10-2008-0131362
및 그 방법rdquo 2008
서우종 특허출원 마이컴 리셋장치[7] ldquo 10-2005-0133096 rdquo 2005
김웅석 외 분산제어시스템 이중화 구성방안에 대한 검토 대한전기학회[8] 1 ldquo rdquo
하계학술대회 논문집 pp 865~867 1999
박승창 외 망관리 시스템에 접속되는 동적 이중화 제어 시스템의 성능[9] 2 ldquo
개선 전자공학회논문지 제 권 판 제 호 대한전기학회rdquo 33 A 4 pp 577~583
1996
구중두 네트워크상에서 프로세서 이중화 시스템의 구현 한국산학기술[10] ldquo rdquo
학회 춘계 학술발표 논문집 pp 334~335 2010
- 1 서 론
- 2 고장허용 시스템의 제어방법
-
- 21 리셋 로직
- 22 리셋의 전기적 특성
- 23 전원 투입 리셋
- 24 외부 리셋
- 25 저전압 검출 리셋
- 26 재덱 리셋
- 27 워치독 리셋
-
- 3 마이컴 오동작 방지 장치
-
- 31 비정상적인 출력을 차단하는 장치 및 그 방법
- 32 마이컴 리셋 장치
-
- 4 고가용성 구현을 위한 이중화 시스템
-
- 41 분산 제어시스템 이중화 구성방안에 대한 검토
- 42 동적 이중화 시스템
- 43 네트워크상에서 프로세서 이중화 시스템
-
- 5 마이크로프로세서 이중화를 통한 실시간 연속 제어 시스템
-
- 51 시스템 알고리즘 순서도
- 52 시스템 구조
- 53 전원부
- 54 클럭 발생부
- 55 마이컴A부
- 56 마이컴 감지부
- 57 출력 선택부
- 58 시스템 가동용 프로그램
-
- 6 실험 결과 및 분석
- 7 결론
- 참고 문헌
-