AVR(ATmega128) 학습 및 조사 자료 #2
본 자료는 4페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
해당 자료는 4페이지 까지만 미리보기를 제공합니다.
4페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

-목차

Part 1. ATmega128 뭘까?
- ATmega128의 외형
- 단어의 의미 설명

Part 2. ATmega128의 내부구성
-CPU
-메모리

Part 3. 마치며

본문내용

로 이용하고, 프로그램 메모리는 16bit 단위로 데이터를 주고받도록 수정한 것입니다. 프로그램 메모리의 단위를 1워드에 16bit로 바꾼 것이죠.
이 같은 수정으로, 2번에 걸쳐 전송되었던 프로그램 데이터가, 1번에 전송될 수 있게 되었습니다. 8bit 마이크로 콘트롤러 체제를 유지하면서, 연산의 처리속도는 몇 배나 빠른 cpu를 만드는 것이 하바드 구조를 이용하면서 가능해진 것입니다.
둘 째로, 데이터와 명령어를 동시에 주고 받을 수 있다는 것입니다.
기존의 폰노이만 방식에서는 프로그램 메모리와, 데이터 메모리에 접근하는 버스선이 같았기 때문에, 한 쪽에 접근하면 다른 한 쪽에는 신호를 주고 받을 수가 없었습니다.
하바드 방식에서는 프로그램 메모리와 데이터 메모리에 접근하는 버스선을 서로 달리 규정짓고 있기에, 양 쪽으로부터 동시에 데이터를 주고 받는게 가능한 것이죠.
위와 같은 연유 때문에, 하버드구조에서는 현재 수행하고 있는 명령어가 끝남과 동시에 다음 명령어를 수행할 수 있습니다. 폰이노만 방식에 비해, 보다 빠른 연산처리속도를 가질 수 있는 원인은 이에 있습니다.
<그림-4> 폰노이만 구조
<그림-5> 하버드 구조
위의 그림은, 폰노이만 구조와 하버드 구조를 이해하기 쉽도록, 직장에 빗대어 표현한 것입니다. 폰노이만 구조와 하버드 구조를 그림에 완전히 적용시킬려면, 약간의 전재조건이 필요하지만, 이해를 돕는다는 목적으로 제작한 만큼, 그림에 대한 설명은 생략하겠습니다.
그림을 보고, 폰노이만과 하버드 구조를 그림에 적용시키기 위한, 전재조건을 직접 생각해 보셨으면 좋겠습니다.
-메모리
이번 단은, 메모리에서 중요하다고 생각되는 부분을 첨부하고, 그에 대해 짤막하게 첨부글을 다는 형식으로 작성하였습니다. 일일이 학습한 내용을 이야기 하자면 그 양이 너무 방대하고, 한 부분만 콕 찍어 이야기 하기에는, 아직 어느 부분이 중요한지 감이 잘 오지 않아서입니다.
ATmega128의 프로그램과 데이터 메모리의 특징부터, 일부 레지스터의 속성에 대해 살펴보
는 시간을 가져보겠습니다.
프로그램 메모리
ATmega128에서는 플래쉬 메모리가 사용된다.
64K 16 (128kbyte)의 저장 공간을 가진다..
1워드는 16bit로 구성된다.
프로그램 데이터를 저장하는데 사용된다.
<그림-6> 프로그램 메모리
<그림-6>을 보면 알 수 있듯이, 프로그램 메모리는 크게 BOOT와 APPLICATION 섹션으로 나눠집니다. BOOT 섹션에는, 제일 처음 마이크로 콘트롤러가 구동되었을 때, 수행될 명령이 저장되고, APPLICATION 섹션에는 그 외의 명령들이 저장되도록 구성되어 있습니다.
데이터 메모리
ATmega128에서는 SRAM이 사용된다.
4k 8 (4kbyte)의 저장 공간을 가진다.
1워드는 8bit로 구성되어 있다.
해당 영역에 데이터를 저장하는 역할을 수행한다.
<그림-7>을 보면 알 수 있듯이, 데이터 메모리
는 정말 많은 영역으로 구분 됩니다.
이 중에서 Internal SRAM에 해당되는 부분이 사
용자가 정의한 임의의 변수가 저장되는 부분이고
, 나머지는 모두 저장 공간마다 특정 값을 저장 하도록 명시되어 있습니다.
<그림-7>에서 External SRAM이라고 적힌 영 역은 추가적으로 SRAM을 달았을 때만 할당됩니
다. 외부에 추가적으로 SRAM을 달지 않았을 경
우, $1000번지까지만, 데이터를 저장할 수 있습 니다.
범용 레지스터
<그림-7>에서 32 Registers 라고 적힌 것이 바
로 범용 레지스터입니다. 데이터 메모리에 일부 할당된 저장 공간인 것이죠.
범용 레지스터는 프로그램 수행 중에 생성되는
각종 데이터를 일시적으로 저장하는 역할을 수
행합니다.
<그림-7> 데이터 메모리
<그림-8> 범용 레지스터
<그림-9> 상태 레지스터
상태 레지스터
범용 레지스터와 마찬가지로, SRAM에 할당된 1byte의 저장 공간입니다.
상태레지스터의 각 비트는, 최근에 실행된 연산의 결과를 저장하는 역할을 합니다.
C (CARRY 플래그) = 연산 후 캐리가 발생하였는가? 참: 1, 거짓: 0
Z (ZERO 플래그) = 연산 후 결과값이 ‘0’인가? 참:1, 거짓: 0
N (NEGATIVE 플래그) = 연산 후 결과값이 음수인가? 참:1, 거짓: 0
V (OVERFLOW 플래그) = 연산 후 Overflow가 발생하였는가? 참:1, 거짓: 0
S (SIGN 비트) = N V 의 연산 결과가 1인가? 참:1, 거짓: 0
H (HALF CARRY 플래그) = 산술연산에서 3번째 비트로부터 올림수가 발생하였는가? 참:1, 거짓:0
T (BIT COPY STORAGE) = BLD와 BST 명령에 사용
I = 모든 인터럽트를 허용하는가? 예:1, 아니요:0
<그림-10> 스택 포인터
스택 포인터
인터럽트나 서브루틴 콜이 발생할시, 수행하던 연산을 멈추고, 요청된 일을 수행하게 됩니다. 요청된 일을 끝마친 뒤에는, 다시 하던 일을 해야겠지요.
여기서 스택 포인터가 어디까지 일을 했었다고 알려주는 역할을 합니다.
인터럽트 등이 발생되기 전에, 마지막으로 연산하던 데이터의 주소지를 저장하고 있는 것이
죠. 이를 복귀주소를 저장하고 있다고 표현합니다.
Part 3. 마치며
이번 프로젝트를 진행함으로써, 마이크로 콘트롤러라는 친구와 많이 친해졌다는 생각이 듭니
다. 마이크로 콘트롤러가 무엇인지도 몰랐었는데, AVR이 어쩌니, 8051이 어쩌니를 논하고 있으니 말입니다. 배운다는 것이, 그러한가 봅니다.
인터넷 상으로 자료를 조사하다가, 개인이 AVR을 이용하여 만든 작품들을 감상할 기회가 있 었습니다. 네 발로 기어다니는 로봇에서, MP3, 오실로스코프, 라인 트레이서 등 정말 다양하더 군요. 실용성은 없더라도, 만든이의 개성을 담은 각가지 기기들은, 정말 멋져 보였습니다.
저도 곧 만들 수 있겠죠?!
타인의 작품을 보면서, 배우고 배워서, 저만의 작품을 만들 날을 생각해 보았습니다.
어릴 적 천재 과학자들만 만들 줄 안다고 생각했던 로봇을, 훗날 제가 직접 만들 수 있다는 생각을 하니, 이상한 기분입니다.

키워드

  • 가격2,000
  • 페이지수12페이지
  • 등록일2007.12.19
  • 저작시기2007.10
  • 파일형식한글(hwp)
  • 자료번호#443467
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니