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
10 장
주변장치 (PIO)
Slide 1 (of 28)
이장에서는 주변장치 중에서 병렬 입출력 장치 (PIO) 의
동작과정에 대하여 공부한다 .
이번 시간에는 ...
“ 주변장치 (PIO)” 에 대해 알아보겠습니다 .
학습개요학습개요
학 습 목 표학 습 목 표학 습 목 표학 습 목 표
• 주변장치• PIO(Parallel I/O) 8255• SIMPLE INPUT/OUTPUT DEVICE• LCD(Liquid Crystal Display)• Optical isolator
학 습 목 차학 습 목 차학 습 목 차학 습 목 차
Slide 2 (of 28)
주변장치
주변장치의 종류
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)
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)
주변장치
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)
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)
주변장치
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)
주변장치
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)
주변장치
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)
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)
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)
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)
• 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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
◈ 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)
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)
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)
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)
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)
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)