28
10 장 장장장장 (PIO) Slide 1 (of 28)

10 장 주변장치 (PIO)

  • Upload
    fabian

  • View
    181

  • Download
    0

Embed Size (px)

DESCRIPTION

10 장 주변장치 (PIO). 학습개요. 이번 시간에는 ... “ 주변장치 (PIO) ” 에 대해 알아보겠습니다. 학 습 목 표. 이장에서는 주변장치 중에서 병렬 입출력 장치 (PIO) 의 동작과정에 대하여 공부한다. 학 습 목 차. 주변장치 PIO(Parallel I/O) 8255 SIMPLE INPUT/OUTPUT DEVICE LCD(Liquid Crystal Display) Optical isolator. PIPO. OUTPUT. INPUT. PISO. OUTPUT. INPUT. - PowerPoint PPT Presentation

Citation preview

Page 1: 10 장 주변장치  (PIO)

10 장

주변장치 (PIO)

Slide 1 (of 28)

Page 2: 10 장 주변장치  (PIO)

이장에서는 주변장치 중에서 병렬 입출력 장치 (PIO) 의

동작과정에 대하여 공부한다 .

이번 시간에는 ...

“ 주변장치 (PIO)” 에 대해 알아보겠습니다 .

학습개요학습개요

학 습 목 표학 습 목 표학 습 목 표학 습 목 표

• 주변장치• PIO(Parallel I/O) 8255• SIMPLE INPUT/OUTPUT DEVICE• LCD(Liquid Crystal Display)• Optical isolator

학 습 목 차학 습 목 차학 습 목 차학 습 목 차

Slide 2 (of 28)

Page 3: 10 장 주변장치  (PIO)

주변장치

주변장치의 종류

INT program

1) PIPO(Parallel In Parallel Out)

병렬로 입력하여 병렬로 출력하는 장치로서 , PIO 8255, Buffer 등이 있다

2) PISO(Parallel In Serial Out)

병렬로 입력하여 직렬로 출력하는 장치로서 , Shift register, 직렬통신 장치 등

3) SISO(Serial In Serial Out)

직렬로 입력하여 직렬로 출력하는 장치로서 , 직렬통신 장치의 모뎀 등

4) SIPO(Serial In Parallel Out)

직렬로 입력하여 병렬로 출력하는 장치로서 , 직렬통신 장치나 , Shift register 등

PIPOINPUT OUTPUT

PISOINPUT OUTPUT

SISOINPUT OUTPUT

SIPOINPUT OUTPUT

Slide 3 (of 28)

Page 4: 10 장 주변장치  (PIO)

5) 입출력 장치 interface 법칙

입력장치 Latch I/O

portCPU

I/OSelectcircuit

CPUI/Oport

출력장치

I/OSelectcircuit

① 입력장치 interface (buffer) ② 출력장치 interface(latch)

입력 port 출력 port

• 입력 port 는 buffer 기능을 한다 . • 출력 port 는 latch 기능을 한다 .

주변장치

주변장치의 인터페이스 법칙

Slide 4 (of 28)

Page 5: 10 장 주변장치  (PIO)

주변장치

I/O Interface 를 위한 CPU 제어 신호

CPU

I/ODevice

Address bus(A0-A7) CPU/IORQ/RD/WR

Data bus(D0-D7)

U31D

74LS32

12

1311

U31C

74LS32

9

108

/IORD

/IOWR

PORT

/RD /WR /CE

I/O 번지 영역decoder

I/O 인터페이스를 설계하기 위한 제어 신호/IORQ ( 입출력 요구신호 )/RD ( 읽기 신호 )/WR ( 쓰기 신호 )/IORD ( 입출력 장치에서 읽기 신호 )/IORW ( 입출력 장치에 쓰기 신호 )/CE ( 입출력 장치 번호 선택 신호 )

Slide 5 (of 28)

Page 6: 10 장 주변장치  (PIO)

I/O device #1Address

Data

ControlI/O device #2

I/O device #3

MicroprocessorSystem

(1) Address : memory A0-A15 I/O A0-A7(2) Data : D0-D7(3) Control : ① MEMR ② MEMW ③ IOR ④ IOW

• I/O interface 신호

주변장치

I/O Interfacing bus system

• I/O interface bus system

Slide 6 (of 28)

Page 7: 10 장 주변장치  (PIO)

주변장치

I/O Port map

(1) 4 바이트 단위 I/O 영역 분할을 Decoder 로 설계하는 방법

A7 A6 A5 A4 A3 A2 A1 A0 영역

0 0 0 0 0 0 x x 000H

0 0 0 1 1 1 x x 01FH

DECODER 입력DECODER 선택

7410

12

1312

/IOR

A2

A6

+5V

A7

A5

A3

U4

74LS138

123

645

15141312111097

ABC

G1G2AG2B

Y0Y1Y2Y3Y4Y5Y6Y7

U6A

7408

1

23

/IOW

A4I/O #1 00H-03H

I/O #2 04H-07H

I/O #3 08H-0BH

I/O #4 0CH-0FH

I/O #5 10H-13H

I/O #6 14H-17H

I/O #7 18H-1BH

I/O #8 1CH-1FH

I/O device address

• DECODER 를 이용한 4 바이트 단위 분할

Slide 7 (of 28)

Page 8: 10 장 주변장치  (PIO)

주변장치

I/O Port map

(2) 8 바이트 단위 I/O 영역 분할을 Decoder 로 설계하는 방법

A7 A6 A5 A4 A3 A2 A1 A0 영역

0 0 0 0 0 x x x 000H

0 0 0 1 1 x x x 3FH

DECODER 입력DECODER 선택

. DECODER 를 이용한 8 바이트 단위 분할

I/O #1 00H-07H

I/O #2 08H-0FH

I/O #3 10H-17H

I/O #4 18H-1FH

I/O #5 20H-27H

I/O #6 28H-2FH

I/O #7 30H-37H

I/O #8 38H-3FH/IOR

A3

A6

+5V

A7

A4

U4

74LS138

123

645

15141312111097

ABC

G1G2AG2B

Y0Y1Y2Y3Y4Y5Y6Y7

U6A

7408

1

23

/IOW

A5

I/O device address

Slide 8 (of 28)

Page 9: 10 장 주변장치  (PIO)

주변장치

Comparator 를 이용한 I/O Port map 설계

ex) 주변장치를 특정한 한 개 번지에 인터페이스 할 때에 비교기를 사용하여 I/O address 를 05H 번지 로 설계할 경우 8 비트 comparator 74688 을 사용하면 아래와 같다 .

(1) Comparator 를 이용한 I/O Port map

U?

74LS688

2468

11131517

3579

12141618

1

19P0P1P2P3P4P5P6P7

Q0Q1Q2Q3Q4Q5Q6Q7

G

P=QA0A1A2A3A4A5A6A7+5V

10100000

1

23

/IOR

/IOW

Port read active 01 2

1

23

1 2Port write active 0

Port select

Slide 9 (of 28)

Page 10: 10 장 주변장치  (PIO)

PIO(Parallel I/O) 8255

8255 SPEC(Programmable Peripheral Interface)

•40-pin Dual In Line•Completely TTL Compatible•3 개 I/O Port•Programmable PIO

Slide 10 (of 28)

Page 11: 10 장 주변장치  (PIO)

PIO(Parallel I/O) 8255

8255 Inner SPEC(Programmable Peripheral Interface)

GroupA

Control

Port A(8)

Port Chigh(4)

Port Clow(4)

Port B(8)

DataBus

Buffer

GroupB

ControlControl Logic

/RD /WR

A1 A0

RESET

Power

Data bus

/CS

Slide 11 (of 28)

Page 12: 10 장 주변장치  (PIO)

PIO(Parallel I/O) 8255

8255 SPEC(Programmable Peripheral Interface)

POTR A

Port C(H)

PORT B

Port C(L)

CONTROL

DATA BUFFER

READWRITE

CONTROL LOGIC

/RD

/WR

A1

A0

RESET

/CS

DATA I/O PA0-PA7

I/O PC4-PC7

I/OPC0-PC3

I/OPB0-PB7

• PA0 PA7, PB0 PB7, PC0 PC7∼ ∼ ∼ : 입출력 포트 A 포트 (PA0 PA7)∼ B 포트 (PB0 PB7)∼ C 포트의 상위 4Bit (C4 C7)∼  C 포트의 하위 4Bit (C0 C3)∼

Slide 12 (of 28)

Page 13: 10 장 주변장치  (PIO)

• A0, A1 : 포트들과 프로그래밍을 위한 번지 지정

00 PORT A

01 PORT B

10 PORT C

11 Control Word

• D0 ~ D7 : CPU 와 데이터 및 명령을 주고 받기 위한 데이터 버스

•RESET : 내부 기능들을 초기 상태로 돌림 컨트롤 레지스터 클리어 포트는 입력 모드로 설정 리셋 상태 유지

• RD : 8255A 에서 데이터를 읽기 위한 제어 신호

• WR : 8255A 로 데이터 및 명령을 쓰기 위한 제어 신호

• CS : Chip 을 Enable 시키기 위한 신호

PIO(Parallel I/O) 8255

8255 SPEC(Programmable Peripheral Interface)

Slide 13 (of 28)

Page 14: 10 장 주변장치  (PIO)

PIO(Parallel I/O) 8255

8255 BASIC OPERATION

• A1,A0 는 PORT 를 선택해 주고

• /RD 와 /WR 에 의해 Port 를 입출력 해 준다 .

• /RD 와 /WR 은 Input, Output 명령어에 의해 자동적으로 처리된다 .

A1 A0 /RD /WR /CS OPERATION

00100110

01001010

00011110

11100001

00000001

PORT A DATABUSPORT B DATABUSPORT C DATABUSPORT A DATABUSPORT B DATABUSPORT C DATABUS

CONTROL DATABUS3 State

Slide 14 (of 28)

Page 15: 10 장 주변장치  (PIO)

PIO(Parallel I/O) 8255

8255 CONTROL REGISTER(3 번지 )

D7 D6 D5 D4 D3 D2 D1 D0PORT C(LOW)1 : INPUT0 : OUTPUT

PORT B1 : INPUT0 : OUTPUT

MODE SELECT0 : MODE 01 : MODE 1

PORT C(UP)1 : INPUT0 : OUTPUT

PORT A1 : INPUT0 : OUTPUT

MODE SELECT00 : MODE 001 : MODE 11X : MODE 2

MODE SET FLAG1 : ACTIVE

Slide 15 (of 28)

Page 16: 10 장 주변장치  (PIO)

8255 회로

ÁÖº¯ÀåÄ¡ I/O address ¿µ¿ª

U?

8255

3433323130292827

536

98

356

432140393837

1819202122232425

1415161713121110

D0D1D2D3D4D5D6D7

RDWRA0A1RESETCS

PA0PA1PA2PA3PA4PA5PA6PA7

PB0PB1PB2PB3PB4PB5PB6PB7

PC0PC1PC2PC3PC4PC5PC6PC7

U?

Z80-CPU

303132333435363738394012345

1415128791013

27

19202221

28

18

24

1617

26

2523

6

A0A1A2A3A4A5A6A7A8A9

A10A11A12A13A14A15

D0D1D2D3D4D5D6D7

M1

MREQIORQWRRD

REFSH

HALT

WAIT

INTNMI

RESET

BUSRQBUSAK

CLK

U?A

7432

1

23

ADDRESS BUS A0 - A15

PIO(Parallel I/O) 8255

8255 설계 회로

Slide 16 (of 28)

Page 17: 10 장 주변장치  (PIO)

PA7

+12V

PB2

PC7

PB5

U34

8255

3433323130292827

432140393837

1819202122232425

1415161713121110

536

98

35

6

D0D1D2D3D4D5D6D7

PA0PA1PA2PA3PA4PA5PA6PA7

PB0PB1PB2PB3PB4PB5PB6PB7

PC0PC1PC2PC3PC4PC5PC6PC7

RDWR

A0A1

RESET

CS

D7

PB6

PC4

RESET

PC6

D3

PB3

D4

PB1

PA4

ADDR.DATA BUS

A0

PIO ¹øÁö00H-03H

PB4

PA5

VCC

PB7

PA1

PA5

PB5

PB6

/IOWR

D6PC4PC5

PA7

PB0

PA2

PB7

A1

PB4

D0

PB3PB0

PB2PB1

PC5

PA0PA3

PC1

D5PC3

C26470uF

PA0

VCC

D1

PC1

/EXT

PA4

PC0

PA6

PC3

PC6PC7

/IORD

PA6

CON1

30P

13579

11131517192123252729

24681012141618202224262830

CONTROL BUS

PA1

PC2

D2

PA3

-12V

PA2

PC0

PC2

8255 I/O interface

PIO(Parallel I/O) 8255

8255 설계 회로

Slide 17 (of 28)

Page 18: 10 장 주변장치  (PIO)

A0

/IORD

PC2

A1PB2

/EXT

PB5

SW1

1 2 3 4 5 6 7 8

16 15 14 13 12 11 10 9

CONTROL BUS

PB3

U34

8255

3433323130292827

432140393837

1819202122232425

1415161713121110

536

98

35

6

D0D1D2D3D4D5D6D7

PA0PA1PA2PA3PA4PA5PA6PA7

PB0PB1PB2PB3PB4PB5PB6PB7

PC0PC1PC2PC3PC4PC5PC6PC7

RDWR

A0A1

RESET

CS

PA5D5

ADDR.DATA BUS

D7

D4

PC5PC6

PC4

C26470uF

PA3

PA1PA0

D1PA2

PB7

PA6

PC1

PB6

PC0

D6

PB0

PIO ¹øÁö00H-03H

PB4

VCC +5V

PC3

PC7

PA4

PB1

PA7

R1

R-PACK

116

215

314

413

512

611

710

89

D3D2

RESET

D0

/IOWR

입력 실험 회로

PIO(Parallel I/O) 8255

8255 설계 회로

Slide 18 (of 28)

Page 19: 10 장 주변장치  (PIO)

PC5

PA6

CONTROL BUS

D4D3

/EXT

PB3

D6

PA4

C26470uF

D2

VCC_ARROW

PA2

PA5

D0

PC1

PA1

PC6

PB4

PB2

PC3

PC0

U34

8255

3433323130292827

432140393837

1819202122232425

1415161713121110

536

98

35

6

D0D1D2D3D4D5D6D7

PA0PA1PA2PA3PA4PA5PA6PA7

PB0PB1PB2PB3PB4PB5PB6PB7

PC0PC1PC2PC3PC4PC5PC6PC7

RDWR

A0A1

RESET

CS PB7

D7

PIO ¹øÁö00H-03H

PB1

/IORD

D5

PA0D1

RESET

A0

/IOWR

A1

PC7

PA3

PA7

PC2

PB6

PB0

ADDR.DATA BUS

PC4

PB5

출력 실험 회로

PIO(Parallel I/O) 8255

8255 설계 회로

Slide 19 (of 28)

Page 20: 10 장 주변장치  (PIO)

Contact Bounce 해결책

① Latch 를 이용하여 Bounce 해결 ② S/W 적으로 delay 를 주어서 해결

+5V

1

23

74LS00

1

23

R

1K

R

1K

S?

SW SPDT A

/A◈ Latch 를 이용한 contact bounce 해결

SIMPLE INPUT/OUTPUT DEVICE

Switch

SW

Bounce

Slide 20 (of 28)

Page 21: 10 장 주변장치  (PIO)

VCC

KEY INPUT

SW1

C70.1uf

R1210k

◈ 적분기를 이용한 Key 회로

Vcc

0V

KEY INPUT

0.8V

RC time constant curve

Active region

t0

SIMPLE INPUT/OUTPUT DEVICE

Switch

Slide 21 (of 28)

Page 22: 10 장 주변장치  (PIO)

A

BF

G

CD

E

Cathode type Anode type

A B C D E F G

+5V

A B C D E F G

◈ 7- segment

◈ 7- segment On-Off

SIMPLE INPUT/OUTPUT DEVICE

LED(Lighting Emitting Diode) DISPLAYS

current

00

onD1

LED

5V

R1100

7407

1 2

current

10

offD1

LED

5V

R1100

7407

1

2

1

x

Slide 22 (of 28)

Page 23: 10 장 주변장치  (PIO)

◈ Segment display characters data (SEC-Z80 에서 )

D7 D6 D5 D4 D3 D2 D1 D0 data digit

a b c d e f g point

1 1 1 1 1 1 0 0 FCH 0

0 1 1 0 0 0 0 0 60H 1

1 1 0 1 1 0 1 0 DAH 2

1 1 1 1 0 0 1 0 F2H 3

0 1 1 0 0 1 1 0 66H 4

1 0 1 1 0 1 1 0 B6H 5

1 0 1 1 1 1 1 0 BEH 6

1 1 1 0 0 0 0 0 E0H 7

1 1 1 1 1 1 1 0 FEH 8

1 1 1 1 0 1 1 0 F6H 9

1 1 1 0 1 1 1 0 EEH A

0 0 1 1 1 1 1 0 3EH b

1 0 0 1 1 1 0 0 9CH C

0 1 1 1 1 0 1 0 7AH d

1 0 0 1 1 1 1 0 7EH E

1 0 0 0 1 1 1 0 8EH F

SIMPLE INPUT/OUTPUT DEVICE

LED(Lighting Emitting Diode) DISPLAYS

Slide 23 (of 28)

Page 24: 10 장 주변장치  (PIO)

SIMPLE INPUT/OUTPUT DEVICE

LED(Lighting Emitting Diode) DISPLAYS

◈ 7-segment display circuit(port 88,89 번지를 이용할 경우 )

0100H0101H0102H0103H

Display data memory

PORT (88)

PORT 89

Ring Counter or DECODER

7-segment

CPU Display

Timer Circuit

최소 10mS 마다 한번씩 INT 를 걸어서 Display

0 0 0 1

Slide 24 (of 28)

Page 25: 10 장 주변장치  (PIO)

Glass

Liquid crystal Segment electron

Backplane electron

Mirrored surface

16x2Line LCD

U?

LCD_16x2

12

3

456

789

1011121314

GNDVCC

V0

RSR/WE

D0D1D2D3D4D5D6D7

◈ LCD 구조

LCD(Liquid Crystal Display)

LCD 구조

Slide 25 (of 28)

Page 26: 10 장 주변장치  (PIO)

LCD(Liquid Crystal Display)

LCD MODULE 구조

• TYPE ① GRAPHIC TYPE

② CHARACTER TYPT

LCD

DD RAMCG RAM

Instruction Register(IR)D7 D6 D5 D4 D3 D2 D1 D0

Data Register(DR)D7 D6 D5 D4 D3 D2 D1 D0

I/Obuffer

D0-D7Data bus

+5VRS

R/W’

VL

GND

45

2

7-14

31

E 6

Character type LCD 구조

• 5x8 dot, 5x10 dot display• 80x8 bit display RAM(maximum 80 character display• 240 pont, 9,920bit character generator ROM(5x8:240, 5x10:32)• 64x8 bit character generator RAM(8 character pont(5x8), 4 character pont(5x10)

Slide 26 (of 28)

Page 27: 10 장 주변장치  (PIO)

LCD(Liquid Crystal Display)

LCD PIN 기능

16x2Line LCD

U?

LCD_16x2

12

3

456

789

1011121314

GNDVCC

V0

RSR/WE

D0D1D2D3D4D5D6D7

Pin Pin name 기능

1 Vdd GND

2 Vcc 5V

3 Vo LCD 구동전압 ( 휘도조정 )

4 RS Register select : CPU 에서 LCD 로 보내는 신호가 DATA 인가 혹은 CONTROL 신호인가를 제어 . H(1) : data input(DR select), L(0) : Instruction input (IR select)

5 R/W L : CPU 에서 LCD 로 Data Write, H : LCD 에서 CPU 로 Data Read

6 E Read Write Enable 신호 H : Enable, L : Disable

7-14 D0-D7 Data Bus

Slide 27 (of 28)

Page 28: 10 장 주변장치  (PIO)

LCD(Liquid Crystal Display)

LCD interface Control Pin (2)

(1) LCD write cycle (CPU 에서 LCD 로 Write)

Address (A0)RS(address)

R/W

E

Valid Data

140nS

LCD 가 Display

D0-D7

(2) LCD interface

DECODER08-0F

Z80 CPU A0

/WR

DATA

0: Instruction 1 : dataRS

E 08H

DATA 09H

R/W

InstructionRegister

DataRegister

2

31

Slide 28 (of 28)