하드웨어 설계에 관련한 공개 강좌를 게재하는 공간입니다.
운영진에 의해 강좌글은 편집되며, 공익을 위한 게시글은 '하드웨어 강좌'란으로 이동될 수 있습니다.
판매자 | 아크마 | 판매 납포인트 | 무료 | 평점 | 1.8점 / 총 5명 참여 |
---|
제1장. 마이크로컨트롤러
1. 마이크로컨트롤러
1.1 마이크로컨트롤러 란?
ㅇ CPU(Central Processing Unit, 중앙처리장치) = 마이크로프로세서(microprocessor)
- CPU는 혼자만으로는 별 쓸모가 없음
ㅇ 마이크로컴퓨터(microcomputer)
- 마이크로프로세서(CPU), ROM(Read Only Memory), RAM(Random Access Memory), I/O(Input/Output) 장치로 구성된 작은 규모의 컴퓨터 시스템
그림1. 마이크로컴퓨터
- 마이크로컴퓨터는 일반컴퓨터와 본질적으로 기능은 같으나 구성이 간단하고, 한번 에 처리할 수 있는 데이터 폭이 작고, 처리속도가 늦음
ㅇ 단일 보드 마이크로컴퓨터(One board microcomputer)
- 마이크로컴퓨터의 부품을 한 장의 기판 위에 배치
ㅇ 단일 칩 마이크로컴퓨터(Single chip microcomputer)
- 단일 보드 마이크로컴퓨터에 들어가는 모든 부품들을 하나의 반도체 칩에 집적
ㅇ 마이크로컨트롤러(microcontroller)
- 마이크로컴퓨터는 용도에 따라 분류
․ 연산 및 데이터 처리를 목적으로 하는 연산용
․ 기계의 제어를 목적으로 하는 제어용 → 마이크로컨트롤러(microcontroller)
- 마이크로컨트롤러(microcontroller)
․ 주변장치들을 센싱 및 제어하기 위한 I/O의 능력이 강화
․ 타이머/카운터, 통신포트 내장 및 interrupt 처리 능력 보유
․ bit 조작 능력이 강화
1.2 마이크로컨트롤러 발달과정
ㅇ 마이크로프로세서
- 1971년 intel사 세계 최초로 4비트 마이크로프로세서 4004 개발
- 이후 여러회사에서 8비트 마이크로프로세서 개발
․ intel 8008(1972), 8080(1974), 8085(1976)
․ 모토롤라 MC6800(1974), MC6805(1976), MC6809(1979)
․ 자이로그 Z-80(1976) 등
- 1978년 이후 16비트, 32비트, 64비트까지 발전
ㅇ 마이크로컨트롤러
- 1975년 Texas Instrument사 최초의 마이크로컨트롤러 TMS1000 개발
- 1976년 intel사 8비트 마이크로컨트롤러 8048(MCS-48), 1980년 8051(MCS-51),
이후 16비트 MCS-96(1982), 32비트 80960(1988) 개발
* 8051은 가장 많이 사용, 개발 및 응용 프로그램과 개발장비가 보편화
- 모토롤라 MC6801, MC6805, MC68HC11, 68HC16, MC68332
- 삼성 4비트 KS51(1982), KS56(1988), KS57(1989), 8비트 KS88(1991),
16비트 KS16(1993), 32비트 KS32(1995)
1.3 마이크로컨트롤러의 특징
ㅇ 제품의 소형화 및 경량화
ㅇ 제품의 가격이 저렴 - 부품비, 제작비, 개발비 및 개발시간 절감
ㅇ 융통성 및 확장성이 용이 - 개별 논리회로는 기능 변경이나 확장에는 부품의 추가 및 배선의 변경이 필요, 그러나 마이크로컨트롤러는 프로그램만 변경
ㅇ 신뢰성이 향상 - 부품수가 적어서 시스템 구성이 단순, 고장률이 적고, 보수 편리
1.4 마이크로컨트롤러의 응용
ㅇ 간단한 가전기기에서 복잡한 산업용에 이르기까지 응용분야가 방대
- 산업 : 모터제어, 로봇 제어, 프로세스 제어, 수치 제어, 장난감 등
- 계측 : 의료용 계측기, 오실로스코프 등
- 가전제품 : 비디오 레코더, 레이저 디스크, 비디오 게임기 등
- 유도 : 미사일 제어, Torpedo 제어, 지능형 무기, 우주선 유도 제어 등
- 데이터 처리 : plotter, 복사기, 하드디스크 구동장치, 테이프 구동장치, 프린터 등
- 통신 : 모뎀, 지능형 line card 제어 등
- 자동차 : 점화 타이밍 제어, 연료 분사 제어, 변속기 제어, ABS 제어 등
ㅇ CPU 용량에 따른 응용
- 4비트 : 전자렌지, 전기밥솥, 가스오븐, 세탁기, 음향기기, 자동차용 오디오 등
- 8, 16비트 ; 단말기, 계측기기, 고급 탁상계산기, 재고관리기, 감시장치 등
2. 전문용어
2.1 중앙처리장치(CPU)
ㅇ CPU는 컴퓨터 시스템의 두뇌와 같은 것으로 시스템내의 모든 행동에 대한 관리 및 데이터에 대한 처리 실행
ㅇ 단순한 2가지 동작 인출과 실행을 연속적으로 반복(2진 코드의 집합을 이용하여 명령을 해독하고 실행)
그림2. 중앙처리장치(CPU)
ㅇ CPU의 구성 요소
- 프로그램 카운터(PC) : 다음에 실행될 명령이 저장된 기억장소의 주소를 보유
- 명령 레지스터(IR) : 실행될 명령의 2진 코드를 받는 저장장치
- 명령 디코드(Decode) : 명령에 따른 실행할 동작을 결정
- 제어장치(CU) : 실행을 위해 필요한 행동을 결정
- 레지스터(Acc, B, R0~R7 register) : 정보를 임시 저장하는 저장장치
- 산술연산장치(ALU) : 정보에 대한 연산을 수행
2.2 반도체 기억장치
ㅇ RAM(Random Access Memory)
- 읽기, 쓰기가 가능, 휘발성
ㅇ ROM(Read Only Memory)
- 읽기만 가능, 비휘발성
- EPROM(Erasable Programmable ROM) : ROM writer에 의해 프로그램 저장,
자외선을 쪼여 내용을 지움
- EEPROM(Electrically EPROM) : 전기적으로 지우며, 롬라이터 없이 프로그램
- Flash memory : EEPROM과 같은 기능, EEPROM 보다 적은 트랜지스터 사용
ㅇ 메모리 종류
- 62256, 68512, 681000 : 62, 68은 RAM,
뒤 세자리는 용량 즉 256은 256Kbit(32Kbyte), 521Kbit, 1000Kbit(1Mbit)
- 27C256, 27C512, 27C010, 27C040, 28C16, 28C64, 29C010, 29C040 :
27은 EPROM, 28은 EEPROM, 29는 Flash 메모리
2.3 버스
ㅇ 주소 버스(Address Bus)
- 주소를 지정하기 위한 신호선, CPU가 일방적으로 출력하는 단방향 버스
- n개의 주소 line = 2n개의 위치를 접근
ㅇ 데이터 버스(Data Bus)
- 데이터를 주고받는데 사용하는 신호선, 양방향 버스
- 데이터의 접근 속도는 데이터 버스의 폭에 의해 결정
(4비트 CPU, 8비트 CPU, 16비트 CPU 등)
ㅇ 제어 버스(Control Bus)
- 제어용 신호선, 단방향 버스
- 제어신호는 CLOCK, READ, WRITE의 3가지 사용
2.4 입출력장치
ㅇ 입력장치(Input)
- 열, 빛, 압력, 동작 등의 자극 → 전류/전압 → 마이크로컨트롤러
ㅇ 출력장치(output)
- 전압/전류 → 램프, 모터, 스피커, 계전기 작동 등
3. 프로그램
ㅇ CPU에게 무엇을 할 것인가를 말해주는데 사용되는 일련의 명령
ㅇ 프로그램
- C 언어 : 컴파일러(Compiler)에 의해 2진 형태의 기계어 생성
- 어셈블리어(Assembly language) : 어셈블러(Assembler)에 의해 2진 형태로 변환
4. 명령어 수행 과정