티스토리 뷰
인터럽트 소스
인터럽트(interrupt)란 앞에서 언급한 바와 같이, 외부 또는 내부로부터의 긴급 서비스 요청에 의하여 CPU가 현재 실행중인 일을 잠시 중단하고 그 요청에 합당한 서비스를 해주는 기법입니다. ATmega128의 외부핀 중에는 INTO(pin no.25)이라는 외부 인터럽트 핀이 있어서 여기에 외부장치로부터의 긴급 서비스 요청선이 연결됩니다. 예컨대 ATmega128을 화재경보기로 사용하는 경우 핀 INTO(PD0)에는 화재감지기가 연결되어 있어서 화재가 나면 이를 감지하고 핀 INT0의 논리 레벨을 +5V에서 OV로 바꿉니다. 구체적인 예로서 화재감지기로 바이메탈 (bi-matal)을 쓰는 경우를 봅시다. 바이메탈은 열팽창 계수가 서로 다른 두 장의 금속판[황동 (cu, zn 합금)과 인바르(Ni, FE 합금)]을 붙여 놓은 것으로, 화재가 나서 온도가 오르면 한 쪽(황등)의 열팽창이 다른쪽 보다 커서 구부러지기 때문에 금속판이 어스선에 접촉됩니다. 그러므로 금속판은 OV로 되고, 이것이 INT0에 연결되어 있으므로 INTO 핀이 +5V에서 OV로 바뀝니다. 이것이 바로 외부로부터의 긴급 서비스 요청입니다. 또 내부의 타이머에서 설정시간이 지난다든가 USART에서 수신이 완료된다든가 해주셔도 이 또한 인터럽트 발생 요건이 되는데, 이것이 내부로부터의 긴급 서비스 ATmegal28의 CPU는 모든 명령의 마지막 요청입니다. 사이클에서 인터럽트 요청여부를 체크함으로써 이 요청의 유무를 알아내고, 이 요청을 받은 CPU는 현재 실행중인 명령 또는 그 다음의 프로그램으로 되돌아가서 중단된 요청에 합당한 서비스를 본래 마친 후, 일정의 처리 순서에 따라 처리합니다. 중단 지점에서부터 명령 프로그램을 다시 실행합니다. 이것 인터럽트는 인터럼트 3대 요소만 이해하면 된다고 할 정도로 이들이 중요합니다. 인터럽트 요소의 3대 요소는 인터럽트 소스와 인터럽트 벡터와 인터럽트 우선순위입니다. 인터럽트 소스는 누가 인터럽트를 요청할 수 있는지의 문제이고, 인터럽트 우선순위는 동시에 2개 이상의 인터럽트가 요청되는 경우 정해주느냐의 문제입니다.
'정보통신 및 로봇제어시스템' 카테고리의 다른 글
인터럽트 우선순위 (0) | 2021.07.14 |
---|---|
인터럽트 발생 조건 (0) | 2021.07.09 |
I/O포트의 기능 (0) | 2021.07.05 |
하드웨어 롤에 대해 알아보기 (0) | 2021.07.03 |
마이크로컨트롤러 개발지원툴 (0) | 2021.07.01 |