Interfacing PC
2 PPI 8255
(Programmable Peripheral Interface)
Dalam Bab ini, kita akan membahas komponen yang sering digunakan untuk
perantaramukaan (interfacing), yaitu IC 8255. Perantaramukaan yang dimaksud adalah
perantara mukaan dengan sistem paralel atau yang dikenal sebagai PIO (Paralel Input
Output). Pembahasan dimulai dari deskripsi pin, blok diagram PPI 8255, dan deskripsi
operasionalnya.
15
Interfacing PC
Group A
Port A
8-bit
PA7-PA0
Group A
Port C
Upper 4-bit
PC4-PC7
Group B
Port C
Lower 4-bit
PC3-PA0
Group B
Port C
8-bit
PB7-PB0
Control
Group A
Bus Data
D0-D7
RD
WR
A1
A2
Reset
Buffer
Bus Data
Read/
Write
Control
Logic
Control
Group B
CS
(a)
(b)
Gambar 2.1 Susunan Pin dan Blok Diagram PPI 8255
Chip Select ( CS )
CS harus berlogika rendah untuk mengaktifkan komunikasi antara PPI 8255
dan CPU.
Read ( RD )
RD berfungsi sebagai kontrol operasi pembacaan, jika RD dan CS berlogika
rendah maka CPU akan membaca data dari PPI 8255.
16
Interfacing PC
Write ( WR )
WR berfungsi sebagai kontrol operasi penulisan, jika WR dan CS berlogika
rendah, maka CPU akan mengirimkan data ke PPI 8255.
A0 dan A1
A0 dan A1 merupakan kode seleksi atau sebagai control word (CW) untuk
mengaktifkan port I/O, baik untuk pembacaan maupun penulisan. Dalam
kondisi normal, sinyal ini dihubungkan dengan bua alamat terentah (A0 dan
A1).
RESET
RESET berfungsi mereset operasi PPI 8255, jika RESET berlogika high, maka
register kontrol dan semua port diset ke dalam mode masukan.
Operasi dasar Read/Write dan Control logic disusun dalam Tabel 2.1.
A1
RD
WR
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
X
1
X
X
1
X
X
0
1
X
1
1
1
0
0
17
Interfacing PC
mengandung informasi mode, bit set bit reset, dll yang digunakan untuk inisialisasi PPI
8255.
Masing-masing blok kontrol (Grup A dan Drup B) menerima perintah dari
Read/Write Control Logic dan menerima CW dari bus data internal dan menentukan
perintah untuk masing-masing port yang sesuai.
18
Interfacing PC
D7
D6
D5
D4
D3
D2
D1
D0
Grup B
Port C (lower)
1= input
0 = output
Port B
1= input
0 = output
Mode seleksi
1= mode 1
0 = mode 0
Grup A
Port C (Upper)
1= input
0 = output
Port A
1= input
0 = output
Mode seleksi
00 = mode 0
01 = mode 1
1x = mode 2
Mode set flag
1 = aktif
19
Interfacing PC
Memiliki 2 port 8 bit dan 2 port 4 bit (PA0-PA7, PB0-PB7, PC0-PC3, dan PC4-PC7)
D4
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B
D3
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
D1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Port A
OUPUT
OUPUT
OUPUT
OUPUT
OUPUT
OUPUT
OUPUT
OUPUT
INPUT
INPUT
INPUT
INPUT
INPUT
INPUT
INPUT
INPUT
Grup A
Port C (Upper)
OUPUT
OUPUT
OUPUT
OUPUT
INPUT
INPUT
INPUT
INPUT
OUPUT
OUPUT
OUPUT
OUPUT
INPUT
INPUT
INPUT
INPUT
Port B
OUPUT
OUPUT
INPUT
INPUT
OUPUT
OUPUT
INPUT
INPUT
OUPUT
OUPUT
INPUT
INPUT
OUPUT
OUPUT
INPUT
INPUT
Grup B
Port C (Lower)
OUPUT
INPUT
OUPUT
INPUT
OUPUT
INPUT
OUPUT
INPUT
OUPUT
INPUT
OUPUT
INPUT
OUPUT
INPUT
OUPUT
INPUT
20
Interfacing PC
(a)
(b)
Gambar 2.5 Diagram pewaktuan Input/Output (a) Input (b) Output
2. Mode 1
Mode ini menyediakan data I/O dari/ke port tertentu dengan sinyal kendali
(strobe/handshaking). Dalam Mode 1, port a dan Port B menggunakan port C untuk
menghasilkan/menerima sinyal kendali.
Definisi Mode 1 :
21
Interfacing PC
Definisi Sinyal Kontrol masukan
STB ( masukan Strobe).Jika STB berlogika low, maka me-load data pada latch
masukan.
IBF (Input Buffer Full F/F). Jika IBF berlogika high, maka data diload ke latch
masukan (di-acknoledge). IBF di-set high pada saat STB low dan di-reset pada saat
RD menuju high (tepi naik).
INTR (Interrupt Request). Jika berlogika high, maka keluarannya dapat digunakan
untuk meng-interrupt CPU.INTR dalam kondisi set pada saat STB , IBF, dan RD
high. INTR ter-reset pada saat RD menuju low (tepi akhir) Dengan prosedur ini
piranti masukan yang sedang dilayani CPU, akan di-strobe.
OBF (Ouput Buffer Full F/F). Keluaran OBF menuju low untuk menandai bahwa
CPU menulis data keluaran pada port yang ditentukan. OBF diset oleh masukan
WR tepi naik dan di-rset oleh masukan ACK low.
ACK (Acknowledge Input). Kondisi low menunjukkan bahwa data dari port A atau
port B PPI 8255 telah diterima. Dalam hal ini respon dari periferal
mengindikasikan bahwa telah menerima data keluaran dari CPU.
INTR (Interrupt Request). Kondisi high pada keluaran dapat digunakan untuk
menginterrupt CPU saat keluaran piranti telah menerima data yang dikirimkan oleh
22
Interfacing PC
CPU. INTR diset jika ACK , OBF , dan INTE berlogika high, . INTR direset oleh
tepi akhir (falling edge) sinyal WR .
Kombinasi MODE 1
Port A dan port B dapat didefinisikan sendiri-sendiri sebagai input/ouput dalam
MODE 1 untuk mendukung aplikasi I/O strobe yang luas. Kombinasi ini ditunjukkan
dalam gambar 2.8
23
Interfacing PC
Mempunyai 1 buah bus bidirectional pada port A dan 5 bit kontrol pada port C.
Operasi Keluaran :
OBF (Ouput Buffer Full F/F). Keluaran OBF menuju low untuk menandai bahwa
ACK (Acknowledge Input). Kondisi low pada masukan akan meng-enable keluaran
buffer 3-state pada port A agar mengeluarkan data. Dengan kata lai keluaran buffer
akan berlogika high pada kondisi impedansi tinggi.
INTE 1 (INTE Flip-flop associated with OBF) dikontrol oleh kondisi set/reset bit
PC6.
Operasi keluaran
STB ( masukan Strobe). Jika STB berlogika low, maka me-load data pada latch
masukan.
IBF (Input Buffer Full F/F). Jika IBF berlogika high menandai bahwa data sudah
di-load ke masukan
INTE 2 (INTE Flip-flop associated with IBF) dikontrol oleh kondisi set/reset bit
PC4.
24
Interfacing PC
Proses Strobe bidirectional diperlihatkan dalam Gambar 2.9. Sedangkan timing pembacaan
dan timing penulisan diperlihatkan dalam Gambar 2.10.
(b)
(a)
Gambar 2.10 Proses Tulis dan baca penulisan mode 2
(a) Timing penulisan
(b) Timing pembacaan
Jika ada kombinasi dimana tidak semua port C digunakan sebagai kontrol/status,
25
Interfacing PC
Jika diprogram sebagai masukan, maka semua jalur masukan dapat diakses slama
pembacaan port C normal
Jika diprogram sebagai keluaran, maka bit C upper (PC7-PC4) harus diakses
sendiri-sendiri menggunakan fungsi set/reset bit, sedangkan bit C lower (PC3-PC0)
dapat diakses menggunakan fungsi set/reset bit atau diakses sebagai penulisan
dalam port C
Mode 1
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT
IN
OUT
INTRB
INTRB
Mode 2
Hanya GRUP A
I/O
I/O
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PC0
PC1
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
IN
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
OUT
STB B
OBF B
PC2
IN
OUT
IBFB
ACK B
I/O
PC3
PC4
IN
IN
OUT
OUT
INTRA
INTRA
I/O
INTRA
PC5
PC6
IN
IN
OUT
OUT
IBFA
I/O
I/O
IBFA
ACK A
ACK A
PC7
IN
OUT
I/O
OBF A
OBF A
STB A
STB A