마이크로컨트롤러
마이크로컨트롤러(microcontroller) 또는 MCU(microcontroller unit)는 마이크로프로세서와 입출력 모듈을 하나의 칩으로 만들어 정해진 기능을 수행하는 컴퓨터를 말한다.[1][2][3]
CPU 코어, 메모리 그리고 프로그램 가능한 입/출력으로 구성되어 있다. NOR 플래시 메모리[1][3], EPROM[2] 그리고 OTP ROM등의 메모리를 가지고 있어 정해진 기능을 수행하도록 프로그래밍 코딩하고 이 기계어 코드를 써 넣는다. 기계어 코드가 실행되기 위한 변수나 데이터 저장을 위해 적은 용량의 SRAM을 가지고 있다. 기타 칩에 따라 EEPROM을 내장하기도 한다.
MCU는 임베디드 애플리케이션을 위해 디자인되었으며 임베디드 시스템에 널리 사용된다. 개인용 컴퓨터가 다양한 요구에 따라 동작하는 일반적인 일에 사용된다면, MCU는 기능을 설정하고 정해진 일을 수행하도록 프로그래밍되어 장치 등에 장착되어 동작한다. 따라서 일반적으로 성능이 PC에 비해 낮고 형상도 다르다. 한 번 프로그래밍하면 코드를 나중에 바꿀 일이 거의 없기 때문에 냉장고, 전자레인지 등의 기기에 사용된다.
역사
편집최초의 마이크로프로세서는 1971년 출시된 4비트 인텔 4004로 인텔 8088 및 그 밖의 기능이 더 많은 마이크로프로세서가 이후 수년에 걸쳐 이용이 가능하게 되었다. 그러나 두 프로세서 모두 작동 시스템을 구현하기 위해 외장 칩이 필요했고, 이는 전체 시스템 비용을 증가시켰다.
스미스소니언 협회는 TI의 엔지니어 게리 분(Gary Boone)과 마이클 코치란(Michael Cochran)을 1971년 최초의 마이크로컨트롤러를 성공적으로 만든 것으로 평가하였다. 이들의 노고의 결과물은 TMS 1000으로, 1974년에 상용화되었다. 읽기 전용 메모리, 읽기/쓰기 메모리, 프로세서, 클럭을 한 칩에 합쳤고 임베디드 시스템에 목표를 두었다.[4]
특징
편집일부 MCU들은 4KHz이하의 낮은 clock rate에서 동작되며 8비트 ADC/DAC를 가지며 매우 저전력(수mW~수uW)에서 동작한다. 대부분의 MCU들은 기본적인 연산기능과 인터럽트 기능을 가지고 있으며 유휴 상태에서는 수nW의 전력밖에 사용하지 않는다. 이러한 특징으로 인해 저용량의 배터리로 오랜 시간 지속되어야 하는 전자기기에 많이 쓰인다. 대표적인 예로 전자 손목시계가 있다.
응용
편집MCU는 자동적으로 제품이나 장치를 컨트롤 하는데 사용된다. 그 예로 오토모바일 엔진 컨트롤 시스템, 체내 주입식 혹은 휴대용 의료기기, 리모콘, 프린터 등의 사무기기, 파워서플라이, 장난감 등이 있다. 마이크로프로세서, 메모리, 입/출력 등의 기능을 하나의 칩 위에 구현한 MCU는 제품을 소형화 하거나 단가를 낮추는데 유용하기에 디지털로 제어되는 제품을 만들 때 산업용으로도 많이 쓰인다. ADC와 DAC를 포함한 경우에는 아날로그 입/출력을 가진 시스템에서도 사용될 수 있다.
제품군
편집다양한 종류의 칩과 여러 회사들이 마이크로컨트롤러를 생산 판매하고 있다. 같은 계열의 제품이라도 적용 시 요구되는 사양이 다양하고, 구현하는 기능도 다양하다. 따라서 같은 제품군이라고 하더라도 다양한 모델이 출시되고 있다.
마이크로컨트롤러 제품군 :
마이크로컨트롤러 구성 요소
편집마이크로컨트롤러는 CPU 코어 뿐만 아니라, 컴퓨터 시스템에 필요한 다양한 기능이 필요하므로 여러 가지 부가적인 입출력 모듈이 필요하다.
마이크로컨트롤러 프로그래밍
편집마이크로컨트롤러로 특정 기능을 구현하기 위한 프로그래밍은 대부분의 전용 개발도구를 사용한다.
많은 마이크로컨트롤러의 개발도구를 제공한다.[9]
- ARM
- Renesas
- ST: STM8, 32비트
- TI: MSP430, TM4Cx
- NXP: S08, S12, ColdFire
- Mircochip AVR: AVR8, AVR32
- Silicon Labs
- Cypress ARM
- Toshiba ARM
78K, 8051, ARM, AVR, AVR32, CR16C, Coldfire, H8, HCS12, M16C, M32C, MSP430, Maxim MAXQ, R32C, R8C, RH850, RL78, RX, S08, SAM8, STM8, SuperH, V850.[10]
ARM 코어 지원: ARM7 / ARM9 / ARM10 / ARM11, Cortex M0 / M0+ / M1 / M3 / M4 / M7 / M23 / M33, Cortex R4 / R5 / R7, Cortex A5 / A7 / A8 / A9 / A15 / A17.
소형소자 C 컴파일러
편집SDCC 배포처[11]
- 인텔 8051과 파생.
- 자일로그 자일로그 Z80과 eZ80과 같은 이진 호환.
- 자일로그 Z180.
- Rabbit 2000과 Rabbit 3000과 같은 이진 파생.
- Rabbit 3000A과 Rabbit 4000과 같은 파생.
- 샤프 LR35902.
- 프리스케일 세미컨덕터 (모토로라) HC08.
- 프리스케일 세미컨덕터 S08.
- ST마이크로일렉트로닉스 STM8.
- 도시바 TLCS-90.
IDE
- MPLAB X IDE
- MPLAB Xpress
- Atmel Studio
컴파일러
- MPLAB XC
- AVR GCC
- ARM GCC
같이 보기
편집각주
편집- ↑ 가 나 다 “아트멜의 ATmega시리즈” (PDF). 2015년 7월 24일에 원본 문서 (PDF)에서 보존된 문서. 2015년 6월 19일에 확인함.
- ↑ 가 나 “인텔 8051” (PDF). 2015년 6월 18일에 원본 문서 (PDF)에서 보존된 문서. 2015년 6월 19일에 확인함.
- ↑ 가 나 다 “텍사스 인스트루먼트, ARM Cortex-M MCUs”. 2015년 6월 17일에 원본 문서에서 보존된 문서. 2015년 6월 19일에 확인함.
- ↑ Augarten, Stan (1983). 《The Most Widely Used Computer on a Chip: The TMS 1000》. 《State of the Art: A Photographic History of the Integrated Circuit》 (New Haven and New York: Ticknor & Fields). ISBN 0-89919-195-9. 2009년 12월 23일에 확인함.
- ↑ “아트멜 8051”. 2013년 10월 15일에 원본 문서에서 보존된 문서. 2015년 6월 19일에 확인함.
- ↑ 실리콘 랩 8051
- ↑ “마이크로칩 PIC”. 2015년 6월 13일에 원본 문서에서 보존된 문서. 2015년 6월 19일에 확인함.
- ↑ 실리콘 랩 ARM Cortex_M시리즈
- ↑ “보관된 사본”. 2019년 4월 30일에 원본 문서에서 보존된 문서. 2019년 4월 30일에 확인함.
- ↑ Embedded Workbench targets; IAR. 보관됨 2015-02-20 - 웨이백 머신
- ↑ “보관된 사본”. 2019년 4월 30일에 원본 문서에서 보존된 문서. 2019년 4월 30일에 확인함.
- ↑ 《SDCC - Small Device C Compiler》. 2013년 1월 17일에 원본 문서에서 보존된 문서. 2013년 1월 20일에 확인함.
외부 링크
편집- (영어) 마이크로컨트롤러 - Curlie