Presentation is loading. Please wait.

Presentation is loading. Please wait.

AT MEGA 128 기초와 응용 I 기본적인 구조.

Similar presentations


Presentation on theme: "AT MEGA 128 기초와 응용 I 기본적인 구조."— Presentation transcript:

1 AT MEGA 128 기초와 응용 I 기본적인 구조

2 AtMEGA128의 구조 개요 MCU보드 ■ MCU 회로 (micro controller Unit)
MCU회로는 AT mega128 MCU, 리셋 회로, 글럭 발생 회로로 구성 되며, 클럭 발생 또 회로에는 16MHz크리스탈을 사용하였다. 또, A,B,C,D,E,F,G포트는 커넥터로 사용자의 개발 보드와 연결 할 수 있도 록 설계되었다 ■ ISP 다운로더 커넥터(In-System Programming) C 컴파일러에 내장된 프로그래머(Programmer)를 통해 MCU보드에 사용자가 작성한 프로그램을 다운로드 할 수 있도록 ISP커넥터이다 ■ 확장 커넥터 ATmega128의 모든 단자를 커넥터로 뽑아 인터페이스 보드 또는 사 용자가 설계하는 확장보드에 연결할 수 있다. ■ 전원 LED, 바이패스 콘덴서 바이패스 콘덴서는 고주파 노이즈를 바이패스 시키기 위하여 부착한 다.

3

4 AtMEGA128의 구조 개요 ATmega128의 블럭도 AVR RISC의 구조

5 AtMEGA128의 구조 개요 위의 오른쪽 그림은 AVR RISC의 내부구조를 보여준다.
고속 액세스가 가능한 32개의 8비트 범용 레지스터는 단일 클럭 사이클의 액세 스 시간을 갖는다. 즉, 한 개의 클럭 사이클 동안 한 개의 ALU동작이 가능하다는 것을 의미 한 클럭 사이클 동안 레지스터 파일에서 두 개의 오퍼랜드가 출력되는 동시에 명 령어는 실행되고 결과는 다시 레지스터 파일에 저장된다. * 오퍼랜드 : 연산의 대상 이 되는 것. A+B라는 연 산에서는 A를 제1오퍼랜 드, B를 제2오퍼랜드라고 한다.

6 AtMEGA128의 구조 개요 32개의 레지스터 중에 6개의 레지스터는 데이터 영역 주소를 지정하기 위한 16비트 간접 주소 포인터 레지스터로 사용할 수 있으며, 이러한 기 능을 갖는 레지스터는 16비트의 X,Y,Z레지스터이다. 이러한 레지스터를 범용 레지스터라 하는데 뒤에 내용가서 보기로 하자 ALU(Arithmetic logic Unit) ALU는 32개의 범용레지스터와 직접 연결이 되어있다. ALU연산은 산술, 논리와 비트 연산의 세 범주로 나누어 진다. ALU연산이 실행되고 난 후에는 연산결과에 따라 MCU의 상태레지스터(SREG)의 비트값 에 영향을 준다.

7 AtMEGA128의 구조 개요 ■ SREG(Status Register) : 상태 레지스터 상태 레지스터는 일반적으로 산술연산 명령어가 실행될 때마다 값이 변 하는 레지스터, 각 비트마다 특정비트가 있다. Bit7-I : 전역 인터럽트 인에이블(Global interrupt Enable) 비트 이 비트는 인터럽트를 인에이블(실행)시키기 위해서 반드시 셋되어야 한다. * 인터럽트 : 실행 중인 프로그램을 일시 중단하고 다른 프로그램을 끼워 넣어 실행시키는 것. Bit6-T : 비트 복사 저장(Bit Copy Storage)비트 이 비트는 비트 복사 저장명령BLD (bit Load)와 BST(Bit Store)의 소스 로서 사용된다.

8 AtMEGA128의 구조 개요 Bit5-H : 하프 캐리 플래그(Half Carry Flag) 비트 이 비트는 산술 연산에서 발생되며, 3비트째에서 4비트째로 자리 올림 이나 자리빌림이 있을 때 셋이 된다. Bit4-S : 부호 비트(sign Bit) Bit3-V : 2의 보수(이진수) 오버플로우 플래그(2’s Complement Overflow Flag) 비트 Bit2-N : 음수 플래그(Negative Flag) 비트 산술 및 논리 연산 후에 음의 결과를 나타낸다. Bit1-Z : 제로 플래그(Zero Flag) 비트 산술 및 논리 연산 후에 결과가 0임을 나타낸다. Bit0-C : 캐리 플래그(Carry Flag) 비트

9 AtMEGA128의 구조 개요 2.4.2 범용 레지스터 범용 레지스터는 데이터 메모리 영역에서 직접 맵핑(mapping)이 가능하 도록 32개의 영역에 대한 데이터 메모리 주소가 할당되어있다. 또 R26~31은 간접주소 지정방식을 위한 주소 포인터로 사용된다. 이 세 개의 간접 주소 레지스터 X,Y,Z,는 아래 그림과 같다. 이 레지스터들은 다 른 주소 지정 방식과 달리 고정 변위,자동증가, 자동감소 기능을 갖고있 다.

10 AtMEGA128의 구조 개요 2.4.3 스택 포인터(SP : Stack pointer) 스택은 임시 데이터, 국소 변수, 인터럽트 또는 서브 루틴을 실행할 때 리턴 주소를 저장하기 위한 영역이며, 스택 포인터는 이러한 스택을 관리 하기 위한 포인터 레지스터이다. * 서브루틴 : 프로그램 가운데 하나 이상의 장소에서 필요할 때마다 되 풀이해서 사용할 수 있는 부분적 프로그램 명령 실행 타이밍 AVR MCU는 외부에 연결된 수정발진기에 의해 발생된 시스템 클럭으로 구동된다. 위 그림은 하버드 아키텍처와 고속 액세스 레지스터 파일 개념에 의해 동작하는 병렬방식의 명령 패치와 명령 실행을 볼 수 있다.

11 AtMEGA128의 구조 개요 메모리에 크게 2가지 종류가 있다. 데이터 메모리
프로그램 메모리 ㄱ. 부트 플래시 섹션 ㄴ. 어플리케이션 플래시 섹션 2.4.5 플래시 프로그램 메모리 Atmega128은 ISP기능을 갖는 플래시 메모리 128K바이트를 내장하고 있고 모든 명령어가 16비트 or 32비트이기 때문에 플래시 메모리는 64Kx16비트로 구성 되어있다. 이 프로그램은 SPI시리얼통신을 이용한 ISP(in-system programming) 기능을 가지고 있으며, 적어도 10,000번의 쓰기 및 삭제가 가능하다. 프로그램 메모리 영역에 정의된 상수를 액세스할 때 Z레지스터가 사용되는 데 128Kx8비트형식으로 액세스 하기 때문에 2개의 64Kx8비트 영역으로 나누 어 액세스하여야 하며, 이를 위해 RAMPZ레지스터의 RAMPZ0비트가 미리 설 정되어야 한다.

12 AtMEGA128의 구조 개요 ■ RAMPZ(RAM Page Z Select Resigter)레지스터 : RAM페이지 선택 레지스터 이 레지스터는 ATmega128의 내부 플래시 프로그램 메모리에서 64KB단 위로 구분되는 2개의 페이지중 어느 것을 사용할지를 정한다. 프로그램 메모리 영역의 상수를 엑세스 할 때는 16비트의 Z레지스터가 사용되어 64KB가지 밖에 지정할 수 없기 때문에 현재 액티브 페이지가 0 인지 1인지를 이 비트로 미리 정해 주어야 한다.


Download ppt "AT MEGA 128 기초와 응용 I 기본적인 구조."

Similar presentations


Ads by Google