1. AVR의 구조와 결선

2013. 7. 19. 13:18스마트콘트롤러/AVR

* 폰 노이만 구조와 하버드 구조


1. 폰노이만 구조(Von Neumann Architecture)

폰 노이만 구조는 존 폰 노이만이 고안한 내장 메모리 순차처리 방식이다. 데이터 메모리와 프로그램 메모리가 구분되어 있지 않고 하나의 버스를 가지고 있는 구조를 말한다.

폰 노이만 구조는 컴퓨터의 구조를 컨트롤 유닛과 ALU, 메모리의 세 가지로 나누어 설계한 것을 말한다.

대부분의 CPU는 폰 노이만 구조에 따라 설계 되었다.

하지만 명령어와 데이터 전송을 모두 하나의 시스템 버스로 처리하므로 병목현상이 발생하게 된다.(Von Neumann Bottleneck)



2. 하버드 구조 (Harvard Architecture)

이 말은 하버드 마크 I(Harvard Mark I) 라는 릴레이 컴퓨터로부터 나온 것으로 이 머신은 명령을 천공 테이프에 메모리해 데이터를 릴레이의 ON/OFF 상태로 메모리했다. 이러한 초기의 머신에서는 메모리 영역이 지극히 작았기 때문에 CPU 내부에 모든 메모리 영역이 포함되어 있어 명령 메모리 영역을 데이터로서 취급할 수가 없었다(프로그래밍은 완전히 오프 라인의 작업이며, 프로그램의 내용을 컴퓨터 자신이 참조하거나 갱신하거나 하는 것에 있어 이득이 없었다.).

폰 노이만 구조에서는 CPU는 메모리로부터 명령을 읽고, 메모리로부터 데이터를 읽고 쓰기도 한다. 명령과 데이터는 같은 신호 버스와 메모리를 사용하기 때문에 이러한 액세스하는 경우 동시에 발생할 수가 없다. 하버드 아키텍처의 컴퓨터에서는 명령을 메모리로부터 읽는 것과 데이터를 메모리로부터 읽는 것을 동시에 할 수 있다. 하버드 아키텍처의 컴퓨터는 명령의 처리를 끝내자마자 다음의 명령을 읽어들일 수 있기 때문에 보다 더 빠른 속도를 낼 수 있다고 말할 수 있다. 그렇지만 이러한 처리 속도를 높이려면 보다 많은 전기 회로가 필요하다.


하버드 구조는 명령어 버스와 데이터버스를 분리한 것으로 AVR을 비롯한 고성능 RISC 마이크로 프로세서와 DSP들은 이 방식을 채택하고 있다.

버스를 두종류로 나눈데다 명령 캐시와 데이터 캐시를 별도로 사용하므로 제작 비용이 증가하는 단점이 있다.

AVR의 메모리는 하버드 구조에 따라 프로그램 메모리(Flash Memory)와 데이터 메모리(SRAM)으로 나누어져 있다.




* AVR ATmega2560 의 특징

1. 프로그램 메모리와 데이터 메모리를 엑세스하기 위한 버스를 독립적으로 사용하는 하버드 구조 채택.

2. 파이프라이닝을 기반으로 하는 RISC 구조.

3. 32개의 범용 레지스터(General Purpose Register)를 가지는 레지스터 중심형 구조 (⇔누산기 중심형 구조)

4. 내장 플래시 메모리에 직렬 통신 방식의 ISP(In-System Programming)기능을 이용하여 쉽게 프로그램 다운로드 가능.

5. 4KB의 EEPROM을 내장하고 있어서 데이터 백업이 가능.

6. 8KB의 SRAM 내장.

7. 타이머/카운터 6개, PWM, ADC, 워치독 타이머, USART, BOD(Brown Out Detector) 등 매우 다양한 I/O 기능 보유.


* Self Program Memory - 펌웨어 업데이트 가능여부

* 인터럽트의 갯수 - ARM보다 적음

* 워치독 - 주기적으로 CPU의 상태를 체크하여 응답이 없으면 자동 리셋해주는 장치

* Brown Out Detector - 입력 전압이 기준전압보다 낮을 경우 일부 장치만 작동하여 시스템이 불안정해지는 경향이 있는데

이런 상태를 Brown Out이라고 하며 이 상태를 감지해서 작동을 차단해주는 장치를 말한다.

* 내장 발진기 - 오실레이터. 작동 클럭을 증폭해주고, 일정하게 유지해주는 기능을 한다.



* ATmega2560의 범용 레지스터

 - ATmega1280/2560은 32개의 8bit 레지스터 R0 ~ R31을 내장하고 있다. 

 이 중 마지막 6개인 R26~R31은 두 개씩 합쳐져서 3개의 16bit레지스터 x, y, z 레지스터로 쓰일 수도 있다.




ATmega1280/2560의 메모리 구조

 - ATmega1280/2560은 하버드 구조를 채택하고 잇기 때문에 크게 프로그램 메모리(플래쉬 메모리)와 

데이터 메모리(SRAM)로 나뉜다.


1) 프로그램 메모리

프로그램 메모리는 각 번지가 16비트 구조로 되어 있어서 128KB*16비트 = 256KB의 용량을 갖는다.

이 플래쉬 메모리에는 SPI 직렬통신을 이용한 ISP(In-System Programming)기능을 가지고 있어서 쉽게 다운로드 가능.


2) 데이터 메모리.....

는 내일합니다 ㅋㅋ


* ATmega 실습

1. 확장보드(AB-E2560)에 ATmega 장착

아래 사진과 같이 장착해준다.

Motorola|MB860|Not defined|Center-weighted average|1/15sec|F/2.8|0.00 EV|4.3mm|ISO-250|Flash did not fire|2013:05:29 17:03:03


Motorola|MB860|Not defined|Center-weighted average|1/15sec|F/2.8|0.00 EV|4.3mm|ISO-250|Flash did not fire|2013:05:29 17:03:03

VCC와 GND는 알아서 맘에 드는 핀에 꽂아주고 LCD의 데이터버스는 PC0~PC7에 해당하는 53~60번 핀에,

LCD의 EN RW RS핀과 PD5~PD7에 연결해준다.


*전원 연결시 주의사항


Motorola|MB860|Not defined|Center-weighted average|1/15sec|F/2.8|0.00 EV|4.3mm|ISO-100|Flash did not fire|2013:05:29 17:28:08


AB-M2560보드에 어댑터를 연결하여 전원을 공급하고 거기서부터 전원을 ATMEGA가 장착된 보드에

공급해줘야하는데 꼭! 5V로 전원을 연결해줘야한다.



Motorola|MB860|Not defined|Center-weighted average|1/15sec|F/2.8|0.00 EV|4.3mm|ISO-250|Flash did not fire|2013:05:29 17:03:03

꼭! 5V를 확인합시다~



'스마트콘트롤러 > AVR' 카테고리의 다른 글

2. ARM_LCD에 한글 띄우기  (0) 2013.07.19
0.AVR 초기설정  (0) 2013.07.19
[ATmega 2560]LED 깜빡이기  (0) 2013.05.29