마이크로프로세서이중화를통한실시간 … · 레지스터...

58
學碩士學位 請求論마크로프로세서 중화를 통한 실시간 연속 제어 시스템 A Real Time Continuous Control System using Duplex Microprocessors. 2011 2 仁荷校工學院 ( ) 電子情報學專學碩士學位 請求論

Upload: others

Post on 25-Oct-2019

2 views

Category:

Documents


0 download

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 결론
                  • 참고 문헌