저는 오늘부터 제가 판매하고 기술지원도 하고 있는 ‘Nuvoton’사의
1T 고속 8051호환 MCU인 N76E003이라는 제품을 깊이있게 연재하며 소개하기 위해서
그 근간을 이루고 있는 인텔사의 MCS-51 (이하 8051)에 대해서 먼저 소개해 드리려고 합니다.
지금부터 약 25년전인 1994년 대학원시절 여름,
방학이었고 학과 후배들을 대상으로 8051특강을 했었습니다.
당시 꽤 유명했던 차영배 선생님이 개발한 8051 트레이닝 키트와
강의내용이 담겨있던 교재를 사용하여 가르치기 위해서
약 2주간 수업준비 하느라 정말 고생했던 기억이 있습니다.
이 책은 최근까지 발행된 교재의 모습이며 당시 자료는 찾지 못했습니다.
학교를 나와 취직을 하고 나서도 8051또는 그 호환 MCU를 사용하여 많은 개발을 하였습니다.
근무했던 직장의 DVD사업에서 가장 많이 사용했던 대만의 Mediatek사의
DVD용 SoC인 MT1379나 1389시리즈도 User Interface는
모두 이 8051 MCU를 통해서 이루어지고 있었습니다..
요즘은 32비트의 위용을 자랑하는 Arm Cortex-M0, M4등의 고급스런 MCU가 많이 나오고 있으며 가격 또한 8051부럽지 않게 가격대 성능비 좋은 제품으로 나오고 있습니다.
하지만 그 사용의 편의성과 core의 대중성으로 인해
아직도 간단한 제어용 활용에서는 8051만큼 유용하게 사용되는 MCU도 드뭅니다.
사진은 인텔사의 8051 MCU
Intel의 MCS51(8051)
인텔 MCS-51 (일반적으로 8051)은 1980년 인텔에서 개발 한 CPU core와 PROM과 SRAM,
그리고 IO port, Timer, 시리얼 통신장치들이 임베디드 되어있는
새로운 개념의 단일 칩 마이크로 컨트롤러 (MCU) 시리즈였습니다.
인텔의 오리지널 8051은 NMOS공정으로 제작되었으나
후에 CMOS 공정으로 바꾸어 저전력의 배터리 전원 기기에 적용시킬 수 있었습니다.
특별히 CMOS공정의 제품은 "C"를 붙여 80C51과 같이 표기하였습니다.
이 제품군은 1996년에 향상된 8비트 MCS-151 및 8/16/32 비트 MCS-251 패밀리의
호환 마이크로 컨트롤러로 계속이어집니다.
현재 인텔은 더 이상 MCS-51, MCS-151 및 MCS-251 제품군을 제조하지는 않지만
마이크로컨트롤러(MCU)는 다양한 시스템에 적용되어야 하기 때문에,
8051계열이 발전하면서 부가 하드웨어가 다양한 방식으로 변경 및 추가되어
여러 형태와 모델의 칩들이 여러 제조사에서 만들어 졌습니다.
1980년에서 1990년초까지 모뎀이나 타자기, 게임기등에 광범위하게 이용되었으며 지금도
Atmel, Infineon Technologies, Maxim Integrated Products, NXP, Winbond(현재 Nuvoton), ST Microelectronics, Silicon Laboratories, Texas Instruments, Cypress Semiconductor등
좀 만든다고 하는 반도체 회사에서는 모두 다기능의 8051 호환제품을 생산하고 있습니다.
경우에 따라 ADC, SPI 등의 하드웨어 모듈 등이 존재하는 8051 계열 칩도 있고
이와 더불어 메모리도 EPROM 대신 플래시 방식으로 바뀌어 쉽게 사용되고 있으며,
EEPROM도 추가하는 경우도 있습니다.
그리고 보통 12T 이상의 동작으로 이루어 지는 instruction처리 동작이
1T만에 이루어 지는 고속의 제품군도 등장하기도 하였습니다.
일부 파생 상품에는 디지털 신호 프로세서(DSP)나 FPGA (Field-Programmable Gate Array)
또는 ASIC (Application-Specific Integrated Circuit) 설계에 사용하기 위해
MCS-51 파생 제품을 IP 코어로 제공하기도 합니다.
기본적인 8051제품의 특징은 다음과 같이 나열되어 있습니다.
32개의 입출력 라인으로 4개의 8bit 포트(포트 0, 1, 2, 3)
2개의 16비트 타이머/카운터 (겸용)
5개의 인터럽트
2레벨의 인터럽트 우선 순위
4kbyte 의 ROM (OTP 또는 EPROM)
128 x 8 bit 의 RAM
풀 듀플렉스의 직렬 데이터 통신용 포트 내장
불 대수(boolean) 연산 능력
비트 단위의 어드레싱이 가능한 램
외부에 64kbyte의 프로그램 메모리와 데이터 메모리 확장 가능
111개의 명령어(60개는 싱글 사이클 동작)
위의 기능 외에 MCS51로 분류되는 다른 칩들은 다양한 부가기능을 가지고 있었습니다.
프로그램 보호를 위한 PROM의 보안 기능이나 이 PROM대신 내부 PROM으로 플래시 메모리를 사용하여 프로그램을 손쉽게 할 수 있습니다.
이와 같이 요즘은 흔하지만 당시로서는 작은 제품에 CPU를 넣을 수 있는
그런 획기적인 기능으로 충만한 그런 멋진 제품이었습니다.
개발에 사용되는 컴파일러와 도구
컴파일러 및 IDE(Integrated Development Environments)는 여러회사에 만들어 판매하고 있습니다.
그 중 대표적으로 많이 사용하는 개발도구는
KEIL사의 8051 개발도구(Keil C51 Development Tools)입니다.
이 제품은 8051계열의 다양한 MCU을 거의 모두 지원하고 있어서
세계에서 가장 대중적으로 많이 사용되고 있습니다.
그 외 사용의 편리함 때문에 IAR의 개발도구 (IAR Embedded Workbench for 8051)도 많이 사용하고 있습니다.
기타 C 컴파일러인 SDCC (Small Device C Compiler)는 오픈소스제품 특성으로 인해 8051 뿐만 아니라 다양한 CPU도 지원합니다.
특히 SDCC와 이클립스의 연동으로 IDE을 구성할 수도 있습니다.
이클립스의 CDT에 eclipseSDCC 플러그인 설치를 통해 SDCC 컴파일러를 사용할 수 있습니다.
지금까지 간단하게 8051에 대한 소개와 개발환경에 대해 어리버리 알아봤습니다.
다음편에는 N76E003에 대해 알아보겠습니다.
N76E003(2편) - Nuvoton사의 1T 고속 8051 제품 (0) | 2019.05.09 |
---|---|
TonTouch 시리즈 TTP223이 적용된 터치모듈 (0) | 2019.05.08 |
조명제어 분야의 새로운 기술인 DALI 프로토콜 (0) | 2019.04.05 |
Nuvoton사의 HMI(Human Machine Interface) emWin 솔루션에 대한 소개 (2) | 2019.03.26 |
NuMaker-PFM-NUC472 IoT 개발 보드 소개 (0) | 2019.02.19 |