MCU Intro DYKIM.ppt [호환 모드]

23
마이크로컨트롤러 공통 입문 마이크로컨트롤러 공통 입문 (김대영:아크마) 1. MPU (3) 2. CPU의 구조(4) 3. MCU (6) 4 일반적인 MCU 마스터 과정 4. 일반적인 MCU 마스터 과정 부록1. ROM,RAM (3) 부록2 Coprocessor MMU 부록2. Coprocessor,MMU 부록3. DMAC, I/O Processor 부록4. Pipelining 부록5. I/O 접속장치 출처 : 마이컴박스(http://www.micombox.com) 2008-02-23 김대영 김대영 부록6. LG 냉장고용 PCB ASM

Transcript of MCU Intro DYKIM.ppt [호환 모드]

Page 1: MCU Intro DYKIM.ppt [호환 모드]

마이크로컨트롤러 공통 입문마이크로컨트롤러 공통 입문(김대영:아크마)

1. MPU (3)

2. CPU의 구조(4)( )

3. MCU (6)

4 일반적인 MCU 마스터 과정4. 일반적인 MCU 마스터 과정

부록1. ROM,RAM (3)

부록2 Coprocessor MMU부록2. Coprocessor,MMU

부록3. DMAC, I/O Processor

부록4. Pipelining

부록5. I/O 접속장치

출처 : 마이컴박스(http://www.micombox.com)2008-02-23 김대영김대영

부록6. LG 냉장고용 PCB ASM

Page 2: MCU Intro DYKIM.ppt [호환 모드]

1. MPU(1/3)

마이크로프로세서란?

Micro Processor UnitMicro Processor Unit

인간의 두뇌 역할 중에서 계산하고 정보를 관리하는 기능이라고 생각하면 쉬움

컴퓨터의 CPU, 연산처리

프로그램 수행에 의해 데이터를 처리(Data processing)를 하는 장치

마이크로프로세서 역사

1971년 I t l사 4bit 마이크로프로세서 4004 개발1971년 Intel사 4bit 마이크로프로세서 4004 개발

이후 여러 회사에서 8bit 마이크로프로세서 개발

Intel : 8008(’72), 8080(’74), 8085(’76)

Motorola : MC6800(’74), MC6805(’76), MC6809(’77)

Zilog : Z80(’76)

이후 8, 16, 32, 64bit 마이크로프로세서 개발이후 , , , 마이 세서 개발

Intel : 80186(’80), 80286(’82), 80386(’85), 80486(’89), Pentium(’93)

Motorola : 68000(’79), 68020(’84), 68040(’89), 68060(’94)

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 2 김대영김대영

Page 3: MCU Intro DYKIM.ppt [호환 모드]

1. MPU(2/3)

명령어 싸이클

Fetch : 명령어를 가져온다

MPU MPU 동작동작싸이클싸이클

Fetch : 명령어를 가져온다.

Decode : 가져온 명령어를 분석한다.

Execution : 분석한 명령어를 실행한다.

버스 싸이클

Memory Access : 메모리 접근

동작동작싸이클싸이클동작동작싸이클싸이클

tmain : 유일하게 있어야 하는 기본 함수이자 프로그램의 시작점(main->tmain)argc : 프로그램 구동시에 넘어오는 파라메터의 수argv : 파라메터가 저장된 포인터배열printf : 콘솔화면에 출력하라는 명령어(stdio h 내장함수)printf : 콘솔화면에 출력하라는 명령어(stdio.h 내장함수)return : 0을 호출자에게 반환한다.

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 3 김대영김대영

Page 4: MCU Intro DYKIM.ppt [호환 모드]

1. MPU(3/3)

프로세서의 워드 길이, 입력 클럭

집적도

MPU MPU 속도속도향상향상 요인요인

집적도

FPU, MMU

외부 데이터의 넓이

메모리 대역폭

프로세서 구조의 발전

파이프라인, 수퍼파이프라인, 수퍼스칼라

처리속도처리속도프로세서의 성능

MPU MPU 처리속도처리속도

FMIPS =

F : 입력 클럭 주파수(싸이클/초)[MHz]

CPI : 명령어 당 싸이클 수(싸이클/명령어)

프로세서의 처리시간

CPIMIPS

프로세서의 처리시간

NI : 실행된 명령어의 수

CCPINItimeprocessor ××=_

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 4

C : 클럭 싸이클 시간(시간/싸이클)

김대영김대영

Page 5: MCU Intro DYKIM.ppt [호환 모드]

2. CPU의 구조(1/4)

레지스터 중심 구조

등의 레지스터 중심Acc, B, R0∼R7 register 등의 레지스터 중심 구조

Intel 8051, 8096, 80196

하버드 구조((Harvard architecture)

처리 속도를 빠르게 하기 위해 주소 및 데이터버스를 프로그램/데이터용으로 구분

주소버스 : 프로그램용 주소버스, 데이터용 주소버스

데이터버스 : 프로그램용 데이터버스 데이터용 데이터버스데이터버스 : 프로그램용 데이터버스, 데이터용 데이터버스

CISC(Complex Instruction Set Computer)

RISC 보다 많은 명령어 집합, 실행 속도 늦음(Intel 8051)

고전적인 CPU 설계고전적인 CPU 설계

명령어 세트가 복잡하고 가변적 길이

다양한 주소 지정 방식

RISC (Reduced Instruction Set Computer)RISC (Reduced Instruction Set Computer)

축소된 명령어 집합, 많은 레지스터, 파이프라인, 실행 속도 향상

간단한 설계

레지스터를 많이 사용하는 명령어 채택

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 5

레지스터를 많이 사용하는 명령어 채택

제어장치가 단순하고 속도가 빠름

김대영김대영

Page 6: MCU Intro DYKIM.ppt [호환 모드]

2. CPU의 구조(2/4)

간단한 load/store 구조

레지스터 간 연산 : 50 %

RISC RISC 특징특징

레지스터 간 연산 : 50 %

load/store : 20 % 이하

단순한 명령어

고정길이, 단순화 된 형식, 주소 지정 방식 간단, ,

단순한 hard wired 제어

명령어 해독 간단

고속의 hard wired 기술

다량의 register set

피연산자 및 프로세서 상태의 저장에 이용

칩 외부의 메모리 액세스 감소

최대 256개 (CISC:32개)최대 256개 (CISC:32개)

Pipelining 및 delayed branch

Pipelining : 명령어를 겹쳐서 동시 실행

Delayed Branch : 분기 해소하기 전에 명령어를 한 개 더 실행

Harvard 구조 :

명령어 버스와 데이터 버스 분리

명령어 인출과 데이터 적재/저장을 중첩

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 6 김대영김대영

Page 7: MCU Intro DYKIM.ppt [호환 모드]

2. CPU의 구조(3/4)

HavardHavard 구조구조

단일의 외부 프로세서버스를 가지고 있는 마이크로프로세서(a)이 세서( )

명령어와 데이터에 대하여 별도의 외부 버스를 가지고 있는 마이크로프로세서(b)

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 7 김대영김대영

Page 8: MCU Intro DYKIM.ppt [호환 모드]

2. CPU의 구조(4/4)

CISC의 RISC화

예 : Intel 80486 Motorola 68040

Hybrid CPU(혼성 CPU)

예 : Intel 80486, Motorola 68040

내부 병렬성

Harvard 구조

Pipeliningp g

1 cycle execution

RISC의 CISC화

On Chip MMU, FPU

Complex instruction

대표적인 CISC와 RISC

CISC Microprocessor

Intel 80386 80486 : PCIntel 80386, 80486 : PC

Motorola 68030, 68040 : McIntosh

RISC Microprocessor

Intel i860 : low cost 3-D workstations

Motorola 88000 Series (88100, 88110) : PC, workstation

MIPS R Series (R3000, R4000) : 가전, 이동통신, 네트워크, 전자제품, 장난감 등

SPARC : Sun Workstation

/

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 8

IBM RISC System/6000 : UNIX Server

김대영김대영

Page 9: MCU Intro DYKIM.ppt [호환 모드]

3. MCU(1/6)

마이크로컨트롤러란?

Microprocessor + I/O function을 One chip으로 구현한 것(One chip microcontroller)Microprocessor + I/O function을 One-chip으로 구현한 것(One-chip microcontroller)

일반적 특징(특징은 옵션의 성격을 띰)

입출력(I/O) 핀이 많고 기타 특수한 기능의 I/O를 가지고 있다.

내부 프로그램/데이터 메모리를 갖고 필요에 따라 외부에 메모리를 추가할 수 있다./

아래와 같은 범용적인 기능을 포함한다.

RS232시리얼통신 기능이 제공된다.

인터럽트를 이용하여 외부 디바이스와 신호를 주고 받을 수 있다.

ADC(Analog Digital Converter)를 내장하여 아날로그 값을 디지털로 변환할 수 있다.

Timer/Counter 기능을 내장하고 PWM기능을 지원하는 경우가 많다.

입출력 인터페이스는 단일 bit로도 사용 가능하다.

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 9

8051 DSP ARMAVR

김대영김대영

Page 10: MCU Intro DYKIM.ppt [호환 모드]

3. MCU(2/6)

MCU MCU 내부구조내부구조블럭도블럭도

External Serial ParallelExternal

ExternalInterrupt

Internal

Serialdevice

Paralleldevice

InterruptControl

Serialinterface

Parallelinterface

Internal

Timer/Counter

CPU Address Data & Control Bus

Control interface interfaceCounter

CPU Address, Data & Control Bus

RAMROM

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 10 김대영김대영

Page 11: MCU Intro DYKIM.ppt [호환 모드]

3. MCU(3/6)

주변장치들을 센싱 및 제어하기 위한 I/O 능력이 강화

/

MCU MCU 사용의사용의장점장점

타이머/카운터, 통신포트 내장 및 인터럽트 처리 능력 보유

Bit 조작 능력이 강화(반대 : PORT)

제품의 소형화 및 경량화

제품의 가격이 저렴(부품비, 제작비, 개발비 및 개발시간 절감)

융통성 및 확장성이 용이(프로그램만 변경)

신뢰성이 향상(부품 수 적어 시스템 단순 고장율 적고 보수편리)신뢰성이 향상(부품 수 적어 시스템 단순, 고장율 적고, 보수편리)

Controller로 동작시키기에 적합

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 11

AVR 모듈 보드 ARM 모듈 보드

김대영김대영

Page 12: MCU Intro DYKIM.ppt [호환 모드]

3. MCU(4/6)

산업 : 모터 제어, 로봇 제어, 프로세스 제어, 수치 제어, 장난감 등

MCUMCU 응용응용

계측 : 의료용 계측기, 오실로스코프 등

가전제품 : 전자레인지, 가스오븐, 전자밥솥, 세탁기 등

군사 : 미사일 제어, Torpedo 제어, 우주선 유도 제어 등

통신 : 휴대폰, 모뎀, 유무선 전화기, 중계기 등

사무기기 : 복사기, 프린터, plotter, 하드디스크 구동장치 등

자동차 : 점화 타이밍 제어 연료 분사 제어 변속기 제어 등자동차 : 점화 타이밍 제어, 연료 분사 제어, 변속기 제어 등

생활 : 전자시계, 계산기, 게임기, 금전등록기, 온도조절기 등

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 12 김대영김대영

Page 13: MCU Intro DYKIM.ppt [호환 모드]

3. MCU(5/6)

1975년 : Texas Instrument 최초로 TMS1000 개발

( )

MCUMCU의의 역사역사

(1971년 Intel 4bit 마이크로프로세서 4004 개발)

1976년 : Intel 8bit M/C 8048(MCS-48) 개발

Motorola 8bit MC6801 개발

1980년 : Intel 8bit M/C 8051(MCS-51) 개발

1982년 : Intel 16bit MCS-96 개발

1988년 : Intel 32bit M/C 80960 개발1988년 : Intel 32bit M/C 80960 개발

1980중반 : Acorn ARM(Advanced RISC Machine)

이후 계속적인 MCU의 발전

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 13 김대영김대영

Page 14: MCU Intro DYKIM.ppt [호환 모드]

3. MCU(6/6)

Motorola : MC6805, MC68HC11, MC68HC16, MC68332

( )

MCUMCU 주요주요제조사제조사

Samsung : KS51, KS88, KS16, KS32, ARM(주로 임베디드용)

Microchip : PIC16/17(RISC, A/D변환기 및 PWM 내장)

Atmel : 8051, AVR(8bit RISC M/C), ARM

Zilog : Super-8

TI : ARM, DSP

INTEL : 8051 80C196 ARMINTEL : 8051, 80C196, ARM

etc.

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 14 김대영김대영

Page 15: MCU Intro DYKIM.ppt [호환 모드]

4. 일반적인 MCU 마스터 과정

목적 MCU의 개발환경

소스 에디터 컴파일러 P 키트 및 모듈보드소스 에디터, 컴파일러, Programmer, 키트 및 모듈보드

목적 MCU의 내부구조(블록) 및 모듈 회로도

레지스터 및 기능별 블럭

I/O포트제어I/O포트제어

LED ON/OFF 제어, LED Shift, 세그먼트 제어, 릴레이 제어

LCD제어

TEXT LCD 제어 그래픽 LCD 제어TEXT LCD 제어, 그래픽 LCD 제어

시리얼통신

RS232통신으로 컴퓨터와 데이터 주고 받기, SPI, I2C

TIMER/COUNTERTIMER/COUNTER

1초 주기/10초 주기 만들기, PWM파형출력, PWM으로 부저 제어, PWM으로 DC모터 제어

ADC

가변저항으로부터 전류측정하여 LCD에 출력, 다양한 센서로부터 데이터 값 받기

미니 프로젝트

목적 MCU을 이용한 작품 설계 및 구현

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 15 김대영김대영

Page 16: MCU Intro DYKIM.ppt [호환 모드]

부록1. ROM,RAM (1/3)

전원이 차단되어도 메모리의 프로그램 또는 데이터가 저장되어 전원이 들어오게 되면

ROM(ROM(읽기만읽기만가능가능, , 비휘발성비휘발성))전원이 차단되어도 메모리의 프로그램 또는 데이터가 저장되어 전원이 들어오게 되면저당된 데이터를 불러올 수 있음

Mask ROM : 공장에서 마스킹되어 프로그램

PROM(Programmable ROM) : 사용자가 프로그램(지우지 못함)PROM(Programmable ROM) : 사용자가 프로그램(지우지 못함)

OTPROM(One Time Programmable ROM) : 한 번만 프로그램

EPROM(Erasable Programmable ROM) :

ROM Writer에 의해 프로그램, 자외선을 쪼여 내용을 지움

EEPROM(Electrically Erasable Programmable ROM) :

전기적으로 지우며, ROM Writer 없이 프로그램

Flash ROM : EEPROM과 같은 기능, EEPROM 보다 적은 TR 사용

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 16 김대영김대영

Page 17: MCU Intro DYKIM.ppt [호환 모드]

부록1. ROM,RAM (2/3)

휘발성 프로그램이나 데이터를 저장하는 데 주로 사용하고 전원공급이 중단되면 데이터 손실

RAM(RAM(읽기읽기//쓰기쓰기가능가능, , 휘발성휘발성))휘발성 프로그램이나 데이터를 저장하는 데 주로 사용하고 전원공급이 중단되면 데이터 손실

프로그램 실행 중 갱신되는 데이타 용으로 사용

SRAM(Static RAM)

Flip Flop에 data를 저장하는 메모리Flip-Flop에 data를 저장하는 메모리

Refresh가 필요 없음, 소규모 고속 메모리 시스템에 사용

DRAM(Dynamic RAM)

하나의 TR와 Capacitor로 구성, 전하의 유무로 data 저장

전원이 공급되어 있어도 짧은 시간 동안만 data 유지,

따라서 이 짧은 시간이 지나기 전에 다시 충전, 이를 Refresh

구조가 간단, 고집적 대용량 메모리 시스템에 사용

Random Access

기억장치의 원하는 주소를 마음대로 읽을 수 있기 때문에 유래

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 17 김대영김대영

Page 18: MCU Intro DYKIM.ppt [호환 모드]

부록1. ROM,RAM (3/3)

23C256 : 23은 Mask ROM C는 CMOS 256은 256K bit(32K byte)

ROM/RAM ROM/RAM 부품부품23C256 : 23은 Mask ROM, C는 CMOS, 256은 256K bit(32K byte)

27C512 : 27은 EPROM, C는 CMOS, 512는 512K bit(64K byte)

28C16 : 28은 EEPROM(Parallel), C는 CMOS, 16은 16K bit

( ) ( )93C46 : 93은 EEPROM(Serial), C는 CMOS, 46은 1K bit(64 ×16)

29C010 : 29는 Flash ROM, C는 CMOS, 010은 1M bit

6264 : 62는 SRAM, 64는 64K bit

681000 : 68은 low power SRAM, 1000은 1M bit

48C32 : 48은 DRAM, C는 CMOS, 32는 32K byte

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 18 김대영김대영

Page 19: MCU Intro DYKIM.ppt [호환 모드]

부록2. Coprocessor,MMU

용도 : 많은 시간이 소요되거나 소프트웨어로 구현해야 하는 일로부터 CPU를 해방

Coprocessor용도 : 많은 시간이 소요되거나 소프트웨어로 구현해야 하는 일로부터 CPU를 해방

예)

FPU (Floating Point Unit)

통신 보조 프로세서

음성 처리 보조 프로세서

그래픽 보조 프로세서

멀티미디어 보조 프로세서

Memory Management Unit

목적 주소 공간을 유연하게 취급할 수 있게 함

MMU

목적 :주소 공간을 유연하게 취급할 수 있게 함.

방법 :

전체 주소 공간을 블록(페이지, 세그먼트)으로 나누어 논리적인 주소를 부여 후, 실행 시간에 물리적 주소로 변환.행

가상주소 및 물리적 주소의 보호 및 관리

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 19 김대영김대영

Page 20: MCU Intro DYKIM.ppt [호환 모드]

부록3. DMAC,I/O Processor

Direct Memory Access Controller

DMACDMACDirect Memory Access Controller

정의 : 외부장치와 주 메모리 간에 CPU의 간섭없이고속데이터 교환을 하는 제어기.

채널 : I/O 장치당 하나의 DMA 채널을 사용

예 : 하드 디스크 드라이브와 메모리 간, CDROM과 메모리 간

참고: PIO (Programmed Input Output)

정의: VLSI 로 만든 복잡한 전용 접속 장치

채널 여러 개의 DMA 채널 소유

I/O ProcessorI/O Processor

채널 : 여러 개의 DMA 채널 소유

특징 : 자신의 명령어를 실행하고 CPU와 독립적으로 동작

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 20 김대영김대영

Page 21: MCU Intro DYKIM.ppt [호환 모드]

부록 4. Pipelining

방법 및 성질

전제 : 명령어 싸이클을 여러 단계로 분할

PipeliningPipelining

전제 : 명령어 싸이클을 여러 단계로 분할

방법 : 파이프라인에 들어온 명령어가 완전 처리되기 전에 새로운 입력을 받아들임

파이프라인이 모두 차면 출력속도는 입력속도가 됨.

n-stage의 파이프라인이 모두 차면, n-개의 명령어 동시실행과 같다.g ,

명령어가 처리되는 속도는 n 배로 빨라짐.

마이크로 프로세서의 성능 향상 기법

시간적 병렬성

CPI=1 : 파이프라인

CPI < 1 : 수퍼파이프라인

공간적 병렬성

CPI < 1 : 수퍼스칼라CPI < 1 : 수퍼스칼라

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 21 김대영김대영

Page 22: MCU Intro DYKIM.ppt [호환 모드]

부록 5. I/O 접속장치

용도 :

외부의 신호(전압 전류)를 디지털로 변환하여 마이크로 프로세서로 전송외부의 신호(전압, 전류)를 디지털로 변환하여 마이크로 프로세서로 전송

마이크로 프로세서의 디지털 신호를 전압, 전류로 변환하여 외부장치로 전송

I/O Port :

의미: 마이크로 프로세서가 외부장치와 통신하는 장치

종류

I/O mapped : input, output같은 특수 명령어 사용(Intel)

Memory mapped : 메모리를 사용하는 명령어로 입출력 동작 수행(Motorola)

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 22 김대영김대영

Page 23: MCU Intro DYKIM.ppt [호환 모드]

부록 6. LG 냉장고용 PCB ASM

퓨즈 정전압 IC

릴레이

브리지

다이오드

릴레이

전해 콘덴서MCU

트랜스

코일

아낌없이 주는 MCU 커뮤니티 - 마이컴박스 23

정류다이오드부저