Abstract
This paper presents a technique to implement embedded systems using interrupts of the one-chip microcontroller with many peripherals based on a multiple finite state machines model. The multiple finite state machine model utilizes the structure of FSMD used for hardware design and the features of flow control by interrupts. The main finite state machine corresponds to the main program and the sub-state machines corresponds to the interrupt subroutines. Therefore, interrupts from the peripherals can be processed immediately in the sub-state machines. The request and reply variables are used to interface between the finite state machines. Additional operating system is not necessary for the context switching between the main state machine and the sub-state machine, because the flow-control caused by interrupt can be replaced with the switching. An embedded system modeled on multiple finite state machine with ASM charts can be easily implemented by the conversion of ASM charts into C-language programs. This implementation technique can be easily adopted to the hardware oriented embedded systems because of the detail description of the model and the fast response to the interrupt events in the sub-state machine.
본 논문은 많은 주변장치와 인터페이스 되는 단일칩 마이크로컨트롤러로 구현되는 임베디드시스템을 인터럽트를 사용하여 다중 유한상태기계로 모델링하고 구현하는 방법을 제시한다. 다중 상태기계 모델은 하드웨어설계에 사용되는 FSMD 구조와 인터럽트에 의한 흐름제어 특징을 이용한다. 주 프로그램은 주상태기계에 대응하고, 부상태기계는 인터럽트 서비스루틴에 대응한다. 따라서 주변장치에서 발생하는 인터럽트는 부상태기계에서 신속히 처리될 수 있다. 유한상태기계 사이의 인터페이스는 요청과 응답 변수를 사용한다. 주상태기계와 부상태기계 사이의 콘텍스트 스위칭은 인터럽트에 의한 하드웨어 흐름제어로 대치될 수 있어 별도의 운영체제가 필요하지 않다. ASM 차트를 사용하여 다중 유한상태기계로 모델링된 임베디드시스템은 C언어 프로그램으로 변환시켜 쉽게 구현될 수 있다. 이 구현 방법은 모델링이 구체적고 부상태기계에서 인터럽트에 신속히 반응할 수 있어 하드웨어가 많이 사용되는 내장형시스템에 쉽게 적용될 수 있다.