10장 주변장치 (PIO) Slide 1 (of 28)
“주변장치 (PIO)”에 대해 알아보겠습니다. 학습개요 이번 시간에는... “주변장치 (PIO)”에 대해 알아보겠습니다. 학 습 목 표 이장에서는 주변장치 중에서 병렬 입출력 장치(PIO)의 동작과정에 대하여 공부한다. 학 습 목 차 주변장치 PIO(Parallel I/O) 8255 SIMPLE INPUT/OUTPUT DEVICE LCD(Liquid Crystal Display) Optical isolator Slide 2 (of 28)
주변장치 주변장치의 종류 1) PIPO(Parallel In Parallel Out) 병렬로 입력하여 병렬로 출력하는 장치로서, PIO 8255, Buffer 등이 있다 PIPO INPUT OUTPUT 2) PISO(Parallel In Serial Out) 병렬로 입력하여 직렬로 출력하는 장치로서, Shift register, 직렬통신 장치 등 PISO INPUT OUTPUT 3) SISO(Serial In Serial Out) 직렬로 입력하여 직렬로 출력하는 장치로서, 직렬통신 장치의 모뎀 등 SISO INPUT OUTPUT 4) SIPO(Serial In Parallel Out) SIPO INPUT OUTPUT 직렬로 입력하여 병렬로 출력하는 장치로서, 직렬통신 장치나, Shift register 등 Slide 3 (of 28) INT program
① 입력장치 interface (buffer) ② 출력장치 interface(latch) 주변장치 주변장치의 인터페이스 법칙 5) 입출력 장치 interface 법칙 ① 입력장치 interface (buffer) ② 출력장치 interface(latch) 입력 port 출력 port 입력 장치 Latch I/O port CPU CPU I/O port 출력 장치 I/O Select circuit I/O Select circuit 입력 port는 buffer 기능을 한다. 출력 port는 latch 기능을 한다. Slide 4 (of 28)
주변장치 I/O Interface를 위한 CPU 제어 신호 CPU Address bus(A0-A7) PORT I/O /IORQ Device Address bus(A0-A7) /IORQ /RD /WR Data bus(D0-D7) /IORD /IOWR PORT /RD /WR /CE I/O 번지 영역 decoder I/O 인터페이스를 설계하기 위한 제어 신호 /IORQ (입출력 요구신호) /RD (읽기 신호) /WR (쓰기 신호) /IORD (입출력 장치에서 읽기 신호) /IORW (입출력 장치에 쓰기 신호) /CE (입출력 장치 번호 선택 신호) Slide 5 (of 28)
I/O interface bus system 주변장치 I/O Interfacing bus system I/O interface bus system I/O device #1 Address Microprocessor System Data I/O device #2 Control I/O device #3 I/O interface 신호 (1) Address : memory A0-A15 I/O A0-A7 (2) Data : D0-D7 (3) Control : ① MEMR ② MEMW ③ IOR ④ IOW Slide 6 (of 28)
(1) 4바이트 단위 I/O 영역 분할을 Decoder로 설계하는 방법 주변장치 I/O Port map (1) 4바이트 단위 I/O 영역 분할을 Decoder로 설계하는 방법 A7 A6 A5 A4 A3 A2 A1 A0 영역 x 000H 1 01FH DECODER 선택 DECODER 입력 I/O device address I/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 DECODER를 이용한 4바이트 단위 분할 Slide 7 (of 28)
(2) 8바이트 단위 I/O 영역 분할을 Decoder로 설계하는 방법 주변장치 I/O Port map (2) 8바이트 단위 I/O 영역 분할을 Decoder로 설계하는 방법 A7 A6 A5 A4 A3 A2 A1 A0 영역 x 000H 1 3FH DECODER 선택 DECODER 입력 I/O device address 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 . DECODER를 이용한 8바이트 단위 분할 Slide 8 (of 28)
(1) Comparator 를 이용한 I/O Port map 주변장치 Comparator 를 이용한 I/O Port map 설계 (1) Comparator 를 이용한 I/O Port map ex) 주변장치를 특정한 한 개 번지에 인터페이스 할 때에 비교기를 사용하여 I/O address를 05H 번지 로 설계할 경우 8비트 comparator 74688을 사용하면 아래와 같다. Port select A0 A1 A2 A3 A4 A5 A6 A7 Port read active 0 Port write active 0 1 /IOR /IOW 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) Group A Control Port A (8) Power Port C high (4) Data bus Data Bus Buffer Port C low (4) /RD /WR A1 A0 RESET Control Logic Group B Control Port B (8) /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 READ WRITE 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)
PIO(Parallel I/O) 8255 8255 SPEC(Programmable Peripheral Interface) 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시키기 위한 신호 Slide 13 (of 28)
PIO(Parallel I/O) 8255 8255 BASIC OPERATION A1 A0 /RD /WR /CS 1 PORT A DATABUS PORT B DATABUS PORT C DATABUS PORT A DATABUS PORT B DATABUS PORT C DATABUS CONTROL DATABUS 3 State A1,A0는 PORT를 선택해 주고 /RD와 /WR에 의해 Port를 입출력 해 준다. /RD와 /WR은 Input, Output명령어에 의해 자동적으로 처리된다. Slide 14 (of 28)
PIO(Parallel I/O) 8255 8255 CONTROL REGISTER(3번지) D7 D6 D5 D4 D3 D2 D1 PORT C(LOW) 1 : INPUT 0 : OUTPUT MODE SET FLAG 1 : ACTIVE PORT B 1 : INPUT 0 : OUTPUT MODE SELECT 0 : MODE 0 1 : MODE 1 PORT C(UP) 1 : INPUT 0 : OUTPUT PORT A 1 : INPUT 0 : OUTPUT MODE SELECT 00 : MODE 0 01 : MODE 1 1X : MODE 2 Slide 15 (of 28)
PIO(Parallel I/O) 8255 8255 설계 회로 8255 회로 Slide 16 (of 28)
PIO(Parallel I/O) 8255 8255 설계 회로 8255 I/O interface Slide 17 (of 28)
PIO(Parallel I/O) 8255 8255 설계 회로 입력 실험 회로 Slide 18 (of 28)
PIO(Parallel I/O) 8255 8255 설계 회로 출력 실험 회로 Slide 19 (of 28)
Latch를 이용한 contact bounce 해결 SIMPLE INPUT/OUTPUT DEVICE Switch Bounce Contact Bounce 해결책 ① Latch를 이용하여 Bounce 해결 ② S/W적으로 delay를 주어서 해결 Latch를 이용한 contact bounce 해결 Slide 20 (of 28)
SIMPLE INPUT/OUTPUT DEVICE Switch 적분기를 이용한 Key 회로 Vcc RC time constant curve KEY INPUT 0.8V 0V t Active region Slide 21 (of 28)
x SIMPLE INPUT/OUTPUT DEVICE LED(Lighting Emitting Diode) DISPLAYS 7- segment A B F G C D E Cathode type Anode type 7- segment On-Off 5V 5V current current R1 R1 100 100 x LED LED on off D1 2 D1 1 1 2 1 1 7407 7407 Slide 22 (of 28)
SIMPLE INPUT/OUTPUT DEVICE LED(Lighting Emitting Diode) DISPLAYS 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 FCH 60H DAH 2 F2H 3 66H 4 B6H 5 BEH 6 E0H 7 FEH 8 F6H 9 EEH A 3EH 9CH C 7AH 7EH E 8EH F Slide 23 (of 28)
Ring Counter or DECODER SIMPLE INPUT/OUTPUT DEVICE LED(Lighting Emitting Diode) DISPLAYS 7-segment display circuit(port 88,89번지를 이용할 경우) Display data memory 7-segment 0100H 0101H 0102H 0103H PORT (88) 0 0 0 1 PORT 89 CPU Display Ring Counter or DECODER Timer Circuit 최소 10mS 마다 한번씩 INT 를 걸어서 Display Slide 24 (of 28)
LCD(Liquid Crystal Display) Glass Liquid crystal Segment electron Backplane electron Mirrored surface Slide 25 (of 28)
Instruction Register(IR) LCD(Liquid Crystal Display) LCD MODULE 구조 TYPE ① GRAPHIC TYPE ② CHARACTER TYPT LCD DD RAM CG RAM Instruction Register(IR) D7 D6 D5 D4 D3 D2 D1 D0 Data Register(DR) I/O b u f e r D0-D7 Data bus +5V RS R/W’ VL GND 4 5 2 7-14 3 1 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 기능 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)
(1) LCD write cycle (CPU에서 LCD로 Write) 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 0: Instruction 1 : data Z80 CPU A0 /WR DATA RS E 08H DATA 09H R/W Instruction Register Data Register DECODER 08-0F Slide 28 (of 28)