Pertemuan 10
DASAR ANTAR MUKA I/O
TEKNIK PENGALAMATAN I/O Terdapat dua metode dasar untuk mengalamati I/O, yaitu : I/O Terisolasi (Isolated I/O) Prosesor memisahkan antara ruang alamat untuk memori dengan ruang alamat untuk I/O (Gambar 10-1). Ruang alamat I/O yang terpisah dari memori ini yang disebut dengan port 2. I/O Terpeta Memori (Memory mapped I/O) Prosesor mengambil sebagian alamat memori untuk digunakan sebagai ruang alamat untuk I/O (Gambar 10-2)
Memori FFFFFh
I/O
FFFFh 64Kx8bit 1Mx8bit
0000h
00000h
Gambar 10-1. I/O Terisolasi
Memori + I/O FFFFFh
I/O FFFFh 64Kx8bit
I/O
00000h Gambar 10-2. I/O Terpeta Memori
0000h
K e l e b I h a n I/O Terisolasi : User dapat memaksimalkan penggunaan memori, karena tidak ada segmen memori yang digunakan untuk ruang I/O
K e k u r a n g a n I/O Terisolasi : Prosesor harus menyediakan instruksi yang terpisah antara memori dan I/O. Pada metode ini, transfer data antara I/O dengan prosesor harus diakses oleh instruksi IN, INS, OUT dan OUTS. Selain itu sinyal kontrol terpisah harus disediakan bagi ruang I/O (M/#IO dan W/#R)
K e l e b I h a n I/O Terpeta Memori : Setiap instruksi transfer memori dapat digunakan untuk mengakses piranti I/O Sinyal kendali (#IORC) dan (#IOWC) tidak memiliki fungsi di dalam sistem I/O dan dapat mengurangi jumlah sirkuit yang diperlukan untuk melakukan dekode. K e k u r a n g a n I/O Terpeta Memori : Sebagian dari memori sistem digunakan untuk ruang I/O, sehingga penggunaan memori untuk aplikasi akan berkurang.
INSTRUKSI I/O Instruksi yang digunakan untuk memindahkan data antara I/O dengan register (AL, AX atau EAX) adalah IN dan OUT (untuk data string : INS dan OUTS). Data string dari I/O akan dipindahkan ke memori (bukan ke register) Alamat I/O (nomor port) dapat berbentuk 8 bit (fixed address atau alamat tetap) atau 16 bit (variable address atau alamat tidak tetap). Alamat I/O 8 bit selalu disimpan dalam opcode p8 (dari 00H sampai FFH), sedangkan alamat I/O 16 bit selalu disimpan dalam register DX (dari 0000H sampai FFFFH). Alamat memori ditempatkan pada lokasi ES:DI untuk instruksi INS, sedangkan untuk instruksi OUTS penempatan alamat di DS:SI.
Programmable Peripheral Interface (PPI) 8255 PPI 8255 merupakan komponen antarmuka berbiaya rendah yang sangat populer dalam banyak aplikasi.
Spesifikasi PPI 8255 : Terkemas dalam dual in line package 40 pin serta kompatible dengan semua TTL dan prosesor Intel Mempunyai 24 pin I/O dapat diprogram dalam dua kelompok 12 pin (24 bit programmable I/O), Gambar 10-3 Dapat dioperasikan dalam tiga mode yang terpisah, yaitu mode 0, mode 1 dan mode 2 Memiliki tiga buah register kendali dan tiga port terpisah yang dapat dialamati,
D7-D0 #IORC #IOWC
Gambar 10-3 Pin out PPI 8255
34 33 32 31 30 29 28 27
D0 D1 D2 D3 D4 D5 D6 D7
PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7
5 36 9 8 35 6
#RD #WR A0 A1 RESET #CS
PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7
4 3 2 1 40 39 38 37 18 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10
PORT A
PORT B
PORT C
Gambar 10-4. Blok Diagram PPI 8255
Fungsi PIN 8255 1. #CS Chip Select Input low akan mengaktifkan IC sehingga dapat dipakai komunikasi data antara 8255 dengan prosesor 2. #RD Read Inpur low akan membuat IC dapat mengambil data dari perangkat luar. 3. #WR Write Input low akan membuat IC dapat mengirim data ke perangkat luar 4. A0 dan A1 Digunakan untuk memilih port yang akan digunakan (Tabel 10-1)
Tabel 10-1. Tabel kebenaran PPI 8255 A1 A0 #RD #WR #CS 0 0 1 0 0 1 1 X 1 X
0 1 0 0 1 0 1 X 1 X
0 0 0 1 1 1 1 X 1 X
1 1 1 0 0 0 0 X 1 1
0 0 0 0 0 0 0 1 0 0
Keterangan Port A → data bus Port B → data bus Port C → data bus Data bus → Port A Data bus → Port B Data bus → Port C Data bus → Control Data bus → tri state Ilegal condition Data bus → tri state
5. RESET Input high pada RESET digunakan untuk menghapus semua isi register dan isi semua port, serta men-set IC berada dalam keadaan mode input 7. D0-D7 merupakan hubungan data ke prosesor 8. PA0-PA7, PB0-PB7 dan PC0-PC7 Merupakan hubungan port A, B dan C dengan perangkat luar
PENGOPERASIAN
PPI
8255
Mode operasi yang ada pada 82C55 ada tiga yaitu: Operasi Mode 0, Basic Input Output Pada mode ini seluruh port berfungsi sebagai masukan ter-buffer atau keluaran ter-latch tergantung perintah pada control word-nya (Gambar 10-5) Operasi Mode 1, Strobe Input Output Mode ini mirip dengan mode 1 hanya saja port C tidak digunakan sebagai input/output melainkan sebagai pengontrol. Misal grup A sebagai input maka PC5 sebagai IBF (Input Buffer Full), PC4 sebagai #STB (Strobe) dan PC3 sbg #INTR (Interrupt Request). Sedangkan bila grup B juga sebagai masukan maka PC0 sebagai INTR, PC1 sebagai IBF dan PC2 sebagai #STB (Gambar 10-6).
#RD/#WR
Port A
8 bit I/O
D0-D7
PPI 8255 Port C
4 bit i/O 4 bit I/O
A0,A1
Port B
8 bit I/O
Gambar 10-5 Diagram Blok Mode 0
#RD/#WR
Port A
D0-D7
PPI 8255 Port C
8 bit Control bidirectional or I/O
Control or I/O
A0,A1
Port B
8 bit I/O
Gambar 10-6 Diagram Blok Mode 1
Operasi Mode 2, Bidierctional Pada mode 2 hanya port A yang dipakai sebagai instrumen masukan & keluaran dua arah (bi-directional) sedangkan port B tidak dipakai (Gambar 10-7) Untuk mode ini, fungsi pin-pin pada port C adalah sebagai berikut PC7 sebagai #OBF (Output Buffer Full), PC6 sebagai #ACK (Acknowledge), PC5 sebagai IBF PC4 sebagai #STB dan PC3 sebagai INTR, sedangkan PC2-PC0 sebagai I/O dwi arah tambahan.
#RD/#WR
D0-D7
A0,A1
Port A
PPI 8255 Port C
Port B
8 bit I/O
Controller I/O
8 bit I/O
Gambar 10-7 Diagram Blok Mode 2
The End