• 검색 결과가 없습니다.

마이크로프로세서응용 마이크로프로세서응용

N/A
N/A
Protected

Academic year: 2022

Share "마이크로프로세서응용 마이크로프로세서응용"

Copied!
28
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

마이크로프로세서응용 마이크로프로세서응용

Si l Chi Mi P

Single Chip Micro Processors :

MicroController ( ATmega128 )

5

(2)

Outline

2

AVR 개요

AT 128 특징

ATmega128 특징

ATmega128 내부구조

ATmega128 명령어 실행

ATmega128 메모리와 주변장치

ATmega128 메모리와 주변장치

ISP( In System Programming)

(3)

Overview on AVR

3

AVR Family

(4)

Overview on AVR (2)

8 비트 AVR 패밀리 소자 (요약)

4

8 비트 megaAVR 패밀리 소자 (요약)

8비트 tinyAVR 패밀리 소자(요약)

(5)

Atmega128 의 주요 특징 g 특징

8bit microcontroller with RISC architecture

133 Instructions

32x8 General purpose working registers

16 MIPS performance at 16 MHz operation clock

In Chip Multiplier that requires 2 clock cycle

In Chip Multiplier that requires 2 clock cycle

NV Program and Data memories

128K b t i t lf bl Fl h (10 000 it bl )

128K bytes in-system self programmable Flash (10,000 rewritable )

4K bytes internal SRAM

4K bytes EEPROM

Up to 64K bytes extendable Memory Space

In system programming using SPI Interface

(6)

Atmega128 의 주요 특징 (2) g 특징

Peripheral Features

Two 8 bit timer/counter and two16 bit timer/counter

Realtime Timer/Counter

6 PWM Channel

2 Full duplex programmable UART

2 Full duplex programmable UART

10 bit ADC/ Analog comparator,

52 bidirectional and individually addressible I/O lines

Port A, Port B, port C, Port D, Port E, Port F, Port G

(7)

Atmega128의 Block Diagram g g

(8)

Atmega128의 Pinout g

(9)

Atmega128 CPU core 의 구조 g

메모리

메모리

플래시 프로그램 메모리

데이터 메모리(SRAM)데이터 메 리(SRAM)

EEPROM

프로그램 카운터(PC)

프로그램 카운터(PC)

명령어 레지스터(IR)

명령어 디코더명령어 디 더

범용 레지스터

기타 주변장치

[ ATmega128의 내부 구조 ]

(10)

Atmega128 의 메모리 공간 g 공간

P & D t M i

PROGRAM MEMORY DATA MEMORY DATA MEMORY

Program & Data Memories

$FFFF

(Non Volatile) (SRAM) (EEPROM)

Flash MEM $FFF

내부 SRAM (4K Bytes)

$10FF

(64K x 16 bit )

$05F

$0FF

$060

I/O registers

$100

내부 EEPROM (4K Bytes) 외부 I/O registers

(160 개)

$000 $000

$01F$020

$000

범용 register (R0~R31)

/O g (64 개)

Note that PM is 2 Bytes, and DM is 1 Byte.

(11)

Program Memory & Program Counter g y g

11

Flash Program Memory

프로그램 저장

비 휘발성 (Non-Volatile) 메모리

전원이 없어도 저장된 데이터는 변경되지 않음

64K word ( 128 Kbytes ) 크기

64K word ( 128 Kbytes ) 크기

다운로더 장치로 다운로드

부트 프로그램부 : 부팅에 필요한 기본정보

응용 램부 워 단위의 명령어 성된

응용 프로그램부 : 워드 단위의 명령어로 구성된 프로그램

프로그램 카운터 (PC)

플래시 프로그램 메모리 공간을 가리킴

명령어를 차례로 인출하면서 응용프로그램 실행 [ 플래시 프로그램 메모리 맵 ]

(12)

Instruction Register & Decoder, SP g

12

명령어 레지스터 (IR)

프로그램 카운터가 지칭한 곳에서 명령어 레지스터로 명령어 인출

명령어에는 명령코드 오퍼랜드 연산 결과 저장 위치 필드를 가짐

명령어에는 명령코드, 오퍼랜드, 연산 결과 저장 위치 필드를 가짐

명령어 디코더

명령어 레지스터의 명령 코드를 디코딩하여 제어신호 생성

ALU 는 명령코드에 해당되는 연산 동작을 수행하게 함

제어 신호는 연산 대상이 되는 오퍼랜드가 ALU 에 전달되게 함

제어 신호는 연산 결과를 저장할 수 있게 함

스택 포인터 (SP)

스택 포인터 (SP)

스택은 임시 데이터, 로컬 변수, 호출된 함수의 복귀주소 등을 저장

스택 포인터는 스택의 TOP 을 저장하는 특수 레지스터

스택에 데이터가 저장되면 스택 공간은 커짐

(13)

범용 레지스터 범용

General Purpose Registers

Data Register

Register R0 ~ R25

데이터를 저장하는 레지스터

메모리 주소 0x00~0x19 에 해당

주소 레지스터

레지스터 R26 R31

레지스터 R26 ~ R31

레지스터 간접 주소방식을 위한 레지스터

[ 범용 레지스터 파일 ]

메모리 주소 0x1A ~ 0x1F 에 해당

(14)

Data Register Usage g g

14

데이터 레지스터 사용사례

변수 x 를 데이터 레지스터 r24 로 활용한 사례

(15)

Address Register Usage g g

15

주소 레지스터 X, Y, Z

데이터 메모리에 대한 주소를 가짐

두개의 레지스터를 묶어 16 비트로 활용

주로 레지스터 Z 활용 사례

주로 레지스터 Z 활용 사례

메모리 0x100 위치에 데이터 0xAB 를 저장

Z 레지스터에 메모리 주소 0x100 을 넣음(r31 <= 0x01, r30<=0x00)

r24 에 0xAB 를 넣음

st Z+, r24 동작으로 메모리 주소 Z 위치에 r24 값을 기록, 동작 후 Z , 동작 메 리 주 위치에 값을 기록, 동작 후 값은 1 증가

(16)

상태 레지스터 (Status Register)

상 g

16

가장 최근에 실행된 산술 연산의 결과정보 저장

이 결과에 따라 다음에 실행되는 프로그램의 흐름을 제어

인터럽트가 발생했을 때

상태 레지스터를 하드웨어가 자동으로 저장 복귀해 주지 않음

소프트웨어적으로 저장 복귀 동작을 수행해야 함

소프트웨어적으로 저장, 복귀 동작을 수행해야 함.

(17)

상태 레지스터 비트 설명

상 설명

17

(18)

Addressing Modes g

Register Direct Addressing I/O Direct Addressing Absolute Addressing

Register Indirect Addressing ( with Post Increment or Pre Decrement )

R I d Add h ff

Register Indirect Addressing with offset

Register Indirect Addressing of Code Memory ( LPM instruction)

(19)

Addressing Modes g

단일 레지스터 직접 어드레싱 :

오퍼랜드는 레지스터 Rd 에 있는 내용 General Registers

OP d

15 4 0

0

COM R0 ; One’s complement d

NEG R1 ; Two’s complement; p INC R2 ; R2=R2+1

DEC R3 ; R3=R3-1

TST R4 ; R4 and R4 and set Z or N CLR R5 ; Clear register($00) 31

SER R6 ; Set register ($FF) LSL R7 ; Logical Shift left ROR R8 ; Rotate Right

ASL R9 ; Arithmetic Shift Right

(20)

Addressing Modes g

두개 레지스터 직접 어드레싱 :

오퍼랜드는 레지스터 Rr 과 Rd 에 있는 내용, 결과는 Rd 에 저장

General Registers

OP d

15 9 5 4 0

0

r

ADD R0,R1 ; R0 = R0+R1 d

SUB R2,R3 ; R2=R2-R3

r

, ;

AND R4,R5 ; R4=R4 and R5 OR R6,R7 ; R4=R6 or R7 XOR R8,R9 ; R8 = R8 xor R9 CP R10,R11 ; R10-R11, compare 31

MOV R12,R13 ; R12=R13

(21)

Addressing Modes g

I/O 직접 어드레싱 :

오퍼랜드는 레지스터 Rr 과 Rd 에 있는 내용, 결과는 Rd 에 저장

15 10 6 5 0

0

I/O Registers

OP n P

IN R0 PORTA ; R0 = PA P

IN R0,PORTA ; R0 PA OUT PORTB,R1; PB = R1

63

(22)

Addressing Modes g

데이터 직접 어드레싱 :

16 비트 데이터 어드레스는 직접 주소를, Rr/Rd 는 목적지/출발지의 레지 스터를 가리킨다.

15 4 0

$0000

Data Space

OP r/d 16 address

LDS R0,$0123 ; R0 = ($0123) STS $0123,R1 ; ($0123)=R1

$0123

$10FF

(23)

Addressing Modes g

데이터 간접 어드레싱

오퍼랜드의 어드레스는 X, Y, 혹은 Z 레지스터의 내용이다

D t S

15 4 0

$0000

Data Space

X,Y, or Z register

$0123

; register initialization example

LDI ZH, high($0123) ;, g ( ) ; $0 3

LDI ZL, low($0123) ;

LD R0, X ; R0 = (X)

$10FF

LD R1, Y ; R1 = (Y) LD R2, Z ; R2 = (Z) ST X, R3 ; (X)=R3 ST Y, R4 ; (Y)=R4 ST Z, R5 ; (Z)=R5

(24)

Addressing Modes g

데이터 간접 + 후증가 (post increment) 어드레싱

오퍼랜드의 어드레스는 X, Y, 혹은 Z 레지스터의 내용이다. 실행 후에 X,Y, 혹은 Z 의

레지스터는 증가한다. Data Space

15 4 0

$0000

X,Y, or Z register

$0123

; register initialization example LDI ZH, high($0123) ;

LDI ZL low($0123) 1

LDI ZL, low($0123) ;

LD R0, X+ ; R0 = (X), X=X+1 LD R1 Y+ ; R1 = (Y) Y=Y+1

1

$10FF

LD R1, Y+ ; R1 = (Y), Y=Y+1 LD R2, Z+ ; R2 = (Z), Z =Z+1 ST X+, R3 ; (X)=R3, X=X+1 ST X+, R3 ; (X) R3, X X+1 ST Y+, R4 ; (Y)=R4, Y=Y+1 ST Z+, R5 ; (Z)=R5, Z=Z+1

(25)

Addressing Modes g

데이터 간접 + 선감소 (pre-decrement) 어드레싱

X,Y, 혹은 Z 의 레지스터는 실행 전에 감소한다.

오퍼랜드의 어드레스는 X, Y, 혹은 Z 레지스터의 감소된 내용이다. Data Space

15 4 0

$0000

X,Y, or Z register

$0123

; register initialization example LDI ZH, high($0123) ;

LDI ZL, low($0123) ; -1

LDI ZL, low($0123) ;

LD R0, -X ; X=X-1, R0 = (X) LD R1, -Y ; Y=Y-1, R1 = (Y)

$10FF

, ; , ( )

LD R2, -Z ; Z =Z-1, R2 = (Z) ST -X, R3 ; X=X-1, (X)=R3 ST -Y, R4 ; Y=Y-1, (Y)=R4 ST -Z, R5 ; Z=Z-1, (Z)=R5

(26)

Addressing Modes g

데이터 간접 + 변위(displacement) 어드레싱

오퍼랜드의 어드레스는 명령어의 6 비트의 내용과 Y, 혹은 Z 레지스터의 합쳐진 결

과값이다. Data Space

15 4 0

$0000

Data Space

Y or Z register $0123 Y, or Z register

$0125

; register initialization example LDI ZH hi h($0123)

$02

LDI ZH, high($0123) ; LDI ZL, low($0123) ;

LDD R1 Y+2 ; R1 = (Y+2)

OP a

15 10 6 5 0

n

$10FF

LDD R1, Y+2 ; R1 = (Y+2) LDD R2, Z+2 ; R2 = (Z+2) STD Y+2 R4 ; (Y+2)=R4 STD Y+2, R4 ; (Y+2)=R4 STD Z+2, R5 ; (Z+2)=R5

(27)

Addressing Modes g

코드 메모리 어드레싱

LPM 명령 사용 [ 프로그램 메모리의 한 바이트 내용을 레지스터에 로드한다]. 상수 바이트 어드레싱은 Z 레지스터에 의하여 결정된다.

Z 레지스터의 0 번째 비트는 워드 중에 바이트를 결정짓는다.

15 0 $000

Program memory Space Z register

Z register

$0 23

i i i i li i l $0123

; register initialization example LDI ZH, high($0123*2) ; LDI ZL, low($0123*2) ;

$7FF

LPM ; R0 = (Z) LPM R1, Z ; R1 = (Z) LPM R2 Z+ ; R2 = (Z) LPM R2, Z+ ; R2 = (Z), Z=Z+1

(28)

수고하셨습니다

28

참조

관련 문서

따라서 마이크로컴퓨터를 구성하기 위해서는 마이크로프로세서 외부에 메모리와 입출력장치를 장 착하여야 한다.... 그림 2.2는 기억장치로 사용되고

 CPU 내에 데이터가 담겨 있는 메모리 주소를 임시 저장하는 장소.  CPU 내에 데이터가 담겨 있는 메모리 주소를

보고서의 내용을 사용 또는 인용할 경우에는 출처를 명시하시기 바랍니다.. 집필자

이 보고서 내용을 대외적으로 공개하거나 발표할 때에는 반드시 한국 과학창의재단과 사전에 상의하여야 합니다... STEAM

6μSv 를 나타내었다.직, 간접디지털 파노라마장치 모두,여자에 해당하는 전신판톰 사용 한 두부계산 유효선량이 남자에 해당하는 두부판톰 사용 유효선량보다 높았다.두

빛 방사 허용기준을 초과한 자에 대한 개선명령, 사용중지 또는 사용제한

붙임 STEAM 프로그램 초3 동물의 한 살이

- 학생활동 중심의 프로그램이 되기 위해서 이론적 내용을 학습하는 내용보다는 학 생들이 직접 체험하고 경험해봄으로서 습득할 수 있는 프로그램 구성이 절실함