Microcomputer System Design

Slides:



Advertisements
Similar presentations
Embedded System 2009 년 11 월 16 일 Embedded Computer1 ● Hardware 와 Software 가 조합되어 특정한 복적을 수행하는 시스템 ● 특정한 기능을 수행하도록 Micro Processor 와 I/O Device 를 내장하며,
Advertisements

컴퓨터 계측 및 실습 개 요 영남대학교 기계공학부. PC 의 기본장치 PC 의 작동구조.
Family 의 개요 의 외부 Pin 기능과 내부 기능 Memory 구조 Timing 2 장 8051 의 구조.
컴퓨터의 구조 2006년 2학기 컴퓨터의 개념 및 실습.
Embedded System Hardware와 software가 조합되어 특정한 목적을 수행하는 시스템
마이크로 컨트롤러 Microcontroller.
마이크로프로세서설계 - 3 ATmega128 마이크로컨트롤러의 특징 LED 실습 1
AVR 실습.
인터럽트 종류 인터럽트 요구시 I/O장치 인식 방법
제 2장 컴퓨터 구조.
ATMega128 I/O Ports KyungHee Univ..
6장 마이크로프로세서 메모리 및 입출력장치 인터페이스.
마이크로프로세서 메모리 및 입출력장치 인터페이스
마이크로프로세서(Microprocessor,µP)
UNIT 15 Timer & Watch Dog 로봇 SW 교육원 조용수.
제어기술 소개 목표 : 제어기의 종류, 제어 방식 등을 살펴본다. 주요내용 제어기의 종류 제어방식 : 시퀀스, 피드백, 등.
10장 주변장치 (PIO) Slide 1 (of 28).
2 AVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128.
3장 MPU 내부구조 Slide 1 (of 28).
임베디드 하드웨어 Lecture #6.
DSP와 TMS320F28X의 이해
ATmega128 CH 1 Atmega 128 Board CodeVision.
DSP와 TMS320F28x의 이해.
Introduce to ATmega128 & Codevision
컴퓨터 구조.
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
AT MEGA 128 기초와 응용 I 기본적인 구조.
제10강 중앙처리장치 1.
6 중앙처리장치의 조직과 기능 IT CookBook, 컴퓨터 구조와 원리 2.0.
DK-128 ADC 실습 아이티즌 기술연구소
8086 프로세서의 구조 및 동작 방식 시스템 프로그래밍 - Lecture #2 신라대학교 컴퓨터공학과 시스템 프로그래밍.
부트로더와 Self Programming
제 3 장 Memory - SRAM.
ATmega128의 구조 및 TOOL의 이해 Robotics_LAB 발표자 : 유 홍 선.
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소 김태성 연구원
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
타이머카운터 사용법 휴먼네트웍스 기술연구소
제 2장 컴퓨터동작의 기본 개념.
PSW : PROGRAM STATUS WORD
ATmega128 FND 실습 휴먼네트웍스 기술연구소
DK-128 FND 실습 아이티즌 기술연구소 김태성 연구원
아날로그 VS 디지탈 -. Analog Vs Digital -. 디지털 논리에 대하여 -. 메모리에 대하여
Microprocessor I/O Port & CLCD Noh Jin-Seok.
Computer System Architecture
디지털회로설계 (15주차) 17. 시프트 레지스터와 카운터 18. 멀티바이브레이터 * RAM & ROM.
디 지 털 공 학 한국폴리텍V대학.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
8051 IO-PORT 정보통신•컴퓨터 공학부 송명규
DK-128 FND 실습 아이티즌 기술연구소
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
논리회로 설계 및 실험 5주차.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
13장 CTC and DMA Slide 1 (of 10).
UNIT 25 SPI 로봇 SW 교육원 조용수.
Lecture #6 제5장 기억장치 (1).
ATmega128의 특징 아이티즌 기술연구소
AVR - Chapter 3 황 지 연.
작동 원리 Keypad 박민호.
DK-128 직렬통신 실습 아이티즌 기술연구소
AT MEGA 128 기초와 응용 I 기본적인 구조.
Ⅰ 전자기초 Ⅱ 디지털 논리회로 Ⅲ C언어 기초 Ⅳ AVR 마이크로 컨트롤러 Ⅴ 마이크로 컨트롤러 개발환경
UNIT 25 SPI 로봇 SW 교육원 조용수.
ARM Development Suite v1.2
논리회로 설계 및 실험 4주차.
임베디드 하드웨어 Lecture #6.
Lecture 7 7-Segment LED controller using u-controller
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
Presentation transcript:

Microcomputer System Design 2015년 2학기 강원대학교 전자공학과 남 시 병

Computer System Design & Interface Microprocessor & embedded 관련 교과목 교육과정 학기 관련교과목 내용 2-1 Digital 공학 논리회로, 레지스터, 카운터 등 2-2 Microprocessor 8bit Microprocessor 기초 3-1 실습 및 설계 VHDL(디지털 시스템 설계) Atmega128 interface 3-2 Interface Computer System Design & Interface Embedded system 4-1 Embedded System 4-2 Embedded System 응용

Introduction to microcomputer system 목차 Introduction to microcomputer system Microcomputer system design using Atmega128 Memory interface & Data read write LCD interface 5. LED interface I/O port 6. Key Board interface 7. ADC interface Embedded System Linux & Beaglebone Beaglebone GPIO Beaglebone LCD Beaglebone Sattic IP Beaglebone ADC Beaglebone WebCam Beaglebone Project

Introduction to microcomputer system 차이점 Microprocessor & Microcontroller system & One chip microprocessor CPU IO PORT Interface Driver I/O device Microcomputer system Address bus Data bus Conrrol bus Memory CPU I/O address Interface Driver I/O device

메모리 인터페이스 설계 1) 설계 순서 (1) Memory 영역 분석 (2) Memory device 결정 1) 설계 순서 (1) Memory 영역 분석 (2) Memory device 결정 (3) Memory Map 구성 (4) Address table 구성 (5) 회로설계 ex1) EPROM 2716을 4000H - 47FFH번지에 설계하여라 (1) Address 영역 4000-47FF (2) EPROM 2716 address( A0 - A10) (3) Memory map FFFFH 47FFH 4000H 0000H ROM 영역

(4) Address table (5) 회로설계 영 역 Chip select ROM address 고유 영역(A0-A10) A 15 14 13 12 11 10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 영 역 1 4000H ROM 47FFH Chip select ROM address 고유 영역(A0-A10) (5) 회로설계

Memory address 고유 영역(A0-A10) ex4) 아래 Memory map에 의해 ROM과 RAM을 설계하시오 Address 영역 ROM : 0000H – 07FFH RAM : 2000H- 27FFH (2) ROM 2716 SRAM MC6116 address( A0 – A10) (3) Memory map FFFFH 27FFH 2000H 07FFH 0000H RAM ROM (4) Address table A 15 14 13 12 11 10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 영 역 0000H ROM 07FFH 1 2000H RAM 27FFH Chip select Memory address 고유 영역(A0-A10)

(5) 회로설계 CPU D0 - D7 A15 A14 A13 A12 A11 A0-A10 Address bus(A0 – A10 ) /OE /OE /RD /WR ROM (2716) RAM (6116) /MREQ /IORQ /WE /CE /CE D0 - D7 D0 - D7 D0 - D7 D0 - D7 Data bus (D0- D7) 1 A15 A15 A14 A14 A13 A13 A12 A12 A11 A11 0000H 2000H

Decoder를 이용한 Memory 영역설계 74138 3*8 Decoder truth table A B C D0 D1 D2 D3 D4 D5 D6 D7 1 74138 3*8 Decoder A D0 B D1 C D2 D3 D4 G1 D5 G2 D6 G3 D7 G1=1,G2=0,G3=0일때 74138이 Active가 된다

Memory address 고유 영역(A0-A10) Decoder를 이용한 Map 설정 Address table A 15 14 13 12 11 10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 영 역 0000H 07FFH 1 0800H 0FFFH 74138 Decoder 입력 Chip En Memory address 고유 영역(A0-A10) Map 영역 분할

Memory address 고유 영역(A0-A10) ex) 아래 Memory map에 의해 ROM을 설계하시오 Address 영역 ROM : 0000H – 07FFH ROM : 0800H – 0FFFH ROM : 1000H – 17FFH (2) ROM 2716 address( A0 – A10) (3) Memory map FFFFH 17FFH 1000H 0FFFH 0800H 07FFH 0000H ROM_3 ROM_2 ROM_1 Address table A 15 14 13 12 11 10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 영 역 0000H 07FFH 1 0800H 0FFFH 1000H 17FFH 74138 Decoder Chip En Memory address 고유 영역(A0-A10)

(5) 회로설계

Intel 계열(8085) microprocessor X1 X2 RESET OUT SOD SID TRAP RST7.5 RST6.5 RST5.5 INTR /INTA HOLD HLDA RESET IN READY IO/M S1 /RD /WR ALE INTEL 8085 8bit microprocessor Address data bus AD0 -AD7 AD0-AD7 address bus A8-A15 A8-A15 그림 2-12. 8085 CPU

Demultiplexed address interface Intel 계열 CPU는 하위 주소버스는 데이터 버스와 동일한 버스를 사용하도록 설계되어 있다. 따라서 외부 에서 주소와 데이터버스를 분리 시켜주는 회로가 필요하다. 이 방법을 demultiplexed address interface 가고 한다. LATCH AD0-AD7 A0-A7 ALE Address bus Data bus A0-A15 D0-D7 A8-A15 A8-A15 CPU에서 먼저 address 신호를 출력한 다음 ALE( Address Latch Enable)에 의하여 address를 래치 한다. 이때 address bus 는 A0-A7을 구성하고 A8-A15을 합성하면 A0-A15까 된다. 데이터 신호는 address 신호다음에 ALE가 “Low” 일 때에 출력된다.

{ Demultiplexed address interface data AD0-AD7 ALE D0-D7 Address A0-A7 A0-A7 Address A8-A15 A8-A15 A0-A15 { ① AD0-AD7(하위 8비트 버스)에 주소 신호(A0-A7)를 출력한다 ② ALE신호가 “high”로 되면서 래치회로에서 A0-A7을 래치한다. ③ ALE신호를 “low”로 전환하고 D0-D7 를 출력한다.

8085 Demultiplexed address bus 방식 회로

ATmega 128 CPU Pinout AD0-AD7 PORTA ALE: PORTG.2 A8-A15 PORTC /RD: PORTG.1 /WR: PORTG.0

Address Latch Requirements : Demultiplexed addressing method

Input Output Device interface Micro-computer system CPU Interface 회로 I/O device Bus Bus Buffer, 기타 Interface 회로 Input Device : Key Board, Mouse,Tablet, AD converter 등 Output Device : CRT display, 7segment, LCD, Printer, Plotter, DA converter 등 I/O device : Memory, Magnetic tape, HDD,FDD

주소에 의한 I/O device(Input Output Device) interface 방식 (1)Memory Mapped I/O방식 (2) I/O Mapped I/O(Isolated Mapped I/O방식 Main memory Main memory FFFF FFFF I/O memory I/O address FF I/O address 00 0000 0000 Main memory 내부에 I/O address 영역을 두는 방식 회로가 간단하다 Main memory 영역 감소 Main memory 영역과 I/O address영역을 분리 시켜서 설계된 방식 회로가 복잡하다 main memory 영역을 모두 사용 가능

ATmega 128 CPU module configuration

ATmega 128 CPU Pin out

ATmega 128 Microcomputer system

Features • High-performance, Low-power AVR® 8-bit Microcontroller • Advanced RISC Architecture – 133 Powerful Instructions – Most Single Clock Cycle Execution – 32 x 8 General Purpose Working Registers + Peripheral Control Registers – Fully Static Operation – Up to 16 MIPS Throughput at 16 MHz – On-chip 2-cycle Multiplier • Nonvolatile Program and Data Memories – 128K Bytes of In-System Reprogrammable Flash Endurance: 10,000 Write/Erase Cycles – Optional Boot Code Section with Independent Lock Bits In-System Programming by On-chip Boot Program True Read-While-Write Operation – 4K Bytes EEPROM Endurance: 100,000 Write/Erase Cycles – 4K Bytes Internal SRAM – Up to 64K Bytes Optional External Memory Space – Programming Lock for Software Security – SPI Interface for In-System Programming • JTAG (IEEE std. 1149.1 Compliant) Interface – Boundary-scan Capabilities According to the JTAG Standard – Extensive On-chip Debug Support – Programming of Flash, EEPROM, Fuses and Lock Bits through the JTAG Interface

• Peripheral Features – Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes – Two Expanded 16-bit Timer/Counters with Separate Prescaler, Compare Mode and Capture Mode – Real Time Counter with Separate Oscillator – Two 8-bit PWM Channels – 6 PWM Channels with Programmable Resolution from 2 to 16 Bits – Output Compare Modulator – 8-channel, 10-bit ADC 8 Single-ended Channels 7 Differential Channels 2 Differential Channels with Programmable Gain at 1x, 10x, or 200x – Byte-oriented Two-wire Serial Interface – Dual Programmable Serial USARTs – Master/Slave SPI Serial Interface – Programmable Watchdog Timer with On-chip Oscillator – On-chip Analog Comparator • Special Microcontroller Features – Power-on Reset and Programmable Brown-out Detection – Internal Calibrated RC Oscillator – External and Internal Interrupt Sources – Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, Standby, and Extended Standby – Software Selectable Clock Frequency – ATmega103 Compatibility Mode Selected by a Fuse – Global Pull-up Disable

• I/O and Packages – 53 Programmable I/O Lines – 64-lead TQFP and 64-pad MLF • Operating Voltages – 2.7 - 5.5V for ATmega128L – 4.5 - 5.5V for ATmega128 • Speed Grades – 0 - 8 MHz for ATmega128L – 0 - 16 MHz for ATmega128

ATmega 128 microcomputer design Memory & IO design Bus system address bus : 16bit data bus :8bit control bus System bus Address Bus Data Bus Conltrol Bus External Memory ATmega128 Address bus Address bus Data bus Data bus Control bus Control bus I/O Address bus Data bus Control bus

AVR ATmega128 Memories On-System Reprogrammable Flash Program Memory 내부에 128KB의 플래시 메모리 ATmega128는 8비트 마이크로컨트롤러이지만, 프로그램 메모리는 16비트 구조로 되어 있음. 64K×16 비트의 용량을 가짐. 모든 명령은 16bit 또는 32 bit 구조로 각 명령은 프로그램 메모리에서 1~2개의 번지를 차지함. 프로그램 메모리는 부트 프로그램 영역과 응용 프로그램 영역으로 구성됨. SPI 통신 방식을 이용한 ISP 기능을 가지고 있어서 사용자가 작성한 프로그램을 쉽게 쓰기가 가능함. JTAG 에뮬레이터, 병렬 프로그래밍을 이용한 프로그램 쓰기도 가능 16bit

SRAM Data Memory 레지스터 파일 0x0000-0x001F I/O 레지스터 I/O 레지스터는 SRAM과 달리 ATmega128에 내장된 I/O 소자들을 직접 제어하는데 사용 주소 0x0020- 0x005F의 영역을 사용하는 I/O 레지스터와 주소 0x0060-0x00FF의 영역을 사용하는 확장 I/O 레지스터로 구성 내부 SRAM 내부 데이터 메모리인 SRAM은 0x0100-0x10FF 영역으로 4K 바이트 내부 SRAM은 프로그램에서 각종 사용자 변수를 저장하기 위해 사용되며, 스택 영역으로 사용 외부 SRAM 내부 SRAM의 용량이 부족할 경우, 외부에 0x1100 번지부터 0xFFFF번지까지 약 60K 바이트의 SRAM을 쓰기/읽기가 가능한 메모리 최대 64K(0x0000-0xFFFF) 바이트의 용량

사용가능 영역

MCU Control Register – MCUCR • Bit 7 – SRE: External SRAM/XMEM Enable 외부 데이터 메모리 영역의 액세스를 가능하기 위해 사용 1로 세트되어 있으면 외부 데이터 메모리 영역의 액세스를 위한 신호가 외부로 출력되고, 0으로 설정되면, 이 신호들은 기본 기능인 병렬 I/O 포트로 동작 • Bit 6 – SRW10: Wait-state Select Bit 외부 데이터 메모리 영역을 액세스할 때 웨이트 사이클의 수를 지정 External Memory Control Register A –XMCRA 메모리 영역을 분할하거나 웨이트 사이클을 설정하는데 사용하는 레지스터 RL0∼SRL2 비트와 SRW00, SRW01, SRW10 등의 6 비트는 메모리 확장에 사용

SRL2∼SRL0 (Wait State Sector Limit) 비트 메모리를 2개의 섹터로 구분하는 기능을 담당 SRW11와 SRW10 비트 (Wait-state Select Bits for Upper Sector) MCUCR의 SRW10 비트와 XMCUCR의 SRW11 비트를 조합하여 외부 데이터 메모리의 상위 섹터에 해당하는 영역의 웨이트 사이클을 설정 SRW01과 SRW00 비트 (Wait-state Select Bits for Lower Sector) 외부 데이터 메모리의 하위 섹터에 해당하는 영역의 웨이트 사이클을 설정

Atmega128: External SRAM 64K Interface External SRAM : 64Kbyte Wait cycle : 2cycle

MCUCR XMCRA SRE SRW10 SE SM1 SM0 SM2 IVSEL IVCE 1 SRE: External SRAM/XMEM Enable XMCRA - SRL2 SRL1 SRL0 SRW01 SRW00 SRW11 1 Upper memory block ; 0x1100~0xFFFF Wait: 2cycle

Status Register Bit 7 (I) : Global Interrupt Enable Bit 6 (T) : 비트 복사 저장 (Bit Copy Storage) Bit 5 (H) : 보조 캐리 플래그 (Half Carry Flag) Bit 4 (S) : Sign Bit  Bit 3 (V) : 2의 보수 오버플로우 비트 (two's complement overflow bit) Bit 2 (N) : Negative Flag Bit 1 (Z) : Zero Flag Bit 0 (C) : Carry Flag

General Purpose Register File AVR의 고성능 RISC 명령을 수행하는데 최적화 되어 있는 레지스터 1 바이트 크기로 32개의 범용 레지스터로 구성 연산의 대상이 누산기가 아닌 이들 32개의 범용 레지스터들을 사용하여 연산을 할 수 있어서 연산의 속도가 빠름 레지스터간의 연산은 보통 1 사이클 명령으로 이루어짐

Stack Pointer 스택 : 마이크로컨트롤러 응용에서 서브루틴이나 인터럽트 발생시에 복귀되는 주소를 임시로 기억하기 위해서 사용되거나 일반 프로그램에서 지역 변수 또는 임시 데이터를 저장하는 용도로 사용되는 LIFO(Last In First Out) 구조의 메모리 스택 포인터(stack pointer) : 항상 데이터의 상단(top of stack)을 가리키는 16비트 레지스터로서 SP라고 표시되는데, 이는 데이터 저장이 가능한 스택의 번지를 의미 스택의 동작 : 푸싱, 팝핑 동작 스택은 SRAM 영역내에 존재, SP 레지스터의 초기값은 적어도 0x60 번지 이상의 값으로 설정

Instruction Execution Timing 단일 클럭 사이클 동안에 두 개의 레지스터에서 데이터를 인출해 오고, 이에 대한 산술연산을 실행함 그 결과를 목적 레지스터에서 다시 저장하는 모든 과정을 단일 명령어 사이클에서 수행이 가능함.

External Memory Control Register B –XMCRB 버스 키퍼 기능을 설정 외부 데이터 메모리 어드레스의 상위 바이트 중에서 어디까지 어드레스 기능으로 사용할 것인지 설정 • Bit 7– XMBK: External Memory Bus-keeper Enable 1로 설정함으로써 AD7∼AD0 신호선은 버스 키퍼 기능이 허가 버스 키퍼 기능이 설정되면 외부 데이터 메모리의 AD7∼AD0 버스의 신호가 3-스테이트로 되어야 하는 동안에 이를 이전의 출력값을 유지하도록 하여 전력 소모를 줄이는데 기여함 . • Bit 2..0 – XMM2, XMM1, XMM0: External Memory High Mask 포트 C와 주소 버스의 상위 바이트가 어느 부분까지 주소 버스 신호로 사용될 지를 설정하는 기능

2개의 섹터로 구분 가능한 최대 60KByte의 외부 메모리 각 섹터에는 각각 독립적으로 웨이트 사이클을 설정 가능. 속도가 비교적 빠른 SRAM의 경우 : 웨이트를 부가하지 않고 제어 가능. 상대적으로 동작 속도가 느린 I/O 소자의 경우  적절한 웨이트 사이클을 부여하여 제어의 유연성 을 확보하기 위함. 외부 메모리를 SRL2∼SRL0 비트를 사용하여 개의 섹터로 구분 하위 섹터는 SRW01 ∼ SRW00 비트를 사용하여 사이클 부여. 상위 섹터는 SRW11 ∼ SRW10 비트를 사용하여 사이클 부여. Address Map with 32 KB External Memory

address 영역 Access time 0xFFFF 0x8000 SDRAM 빠름 0x7FFF 0x1100 I/O 영역 느림 0x10FF 0x0000 System 영역