ISA CARD
Tujuan:
1. Mampu menjelaskan cara kerja port input/output
non-programmable
2. Mampu menjelaskan cara kerja PPI 8255 dalam
mode 0, 1, 2 dan set/reset
3. Mampu memprogram PPI dengan bahasa C
4. Mampu membuat aplikasi PPI 8255 dalam mode 0
5. Memahami konfigurasi slot ISA
6. Mampu merancang rangkaian ISA card PPI 8255
DISAIN
PORT INPUT OUTPUT
NON-PROGRAMMABLE
A19
Aplikasi Output dengan LED
A18
: LED 8x
A0
D7
D6
D5
D4
Assembly:
D3
D2 mov al, 55
uP8088 D1
Minimum D0 out dx, al
Mode
IOR
IOW
?
outportb(alamat_port,0x55)
Fungsi logika
D7 A0 B0
D6 A1 B1
D5
?
A2 B2
D4 A3 B3
D3 A4 B4
D2 A5
74LS245 B5
uP8088 D1 A6 B6
Minimum D0 A7 B7
Mode
E DIR 5V
IOR
IOW
A A A A A A A A A A A A A A A A IOW
outportb(0xf000,0x55)
1111119876543210
543210
Gambar-2 Port Output
Membuat Port Output sederhana
Analisis Port Output Gambar-2:
• Asumsi Bebannya 8 LED
• Kehilangan data ketika mengerjakan
instruksinya berikutnya (LED OFF)
Solusi:
• Gunakan dekoder alamat dan chip
yang tidak hanya merespon saat
dikirim instruksi out, tetapi akan
menahan data yang dituliskan ke
output.
OCTAL D-TYPE TRANSPARENT LATCHES
74LS373
Peggunaan 74LS373 dan Dekoder alamat
A19
A18
: LED 8x
A0
D7 D0 Q0
D6
D5
D1
D2 Q2
Q1 74LS373
D4 D3 Q3 berfungsi
D3 D4 Q4
D2 D5
74LS373 Q5 sebagai
8088 D1
“LATCH”
D6 Q6
Minimum D0 D7 Q7
Mode
LE OE
IOR
IOW
outportb(0xf000,0x50)
A A A A A A A A A A A A A A A A IOW
1111119876543210
543210
Gambar-3 Port Output
Operasi Input dengan Saklar
• gunakan 8 saklar push-on
• gunakan chip dan dekoder alamat, saklar
akan dibaca saat perintah in dengan
alamat tertentu (asumsikan alamatnya
adalah F000H)
• bagaimana mengantarmukakan switch ke
komputer ?
• Bagaimana cara mengetahui saklar itu
ditekan ? (polling atau interupsi)
• faktor lain yang menggangu ? Dan cara
mengeliminasinya ?
Pemakaian 74LS245 dan dekoder alamat untuk
port input
A19 5V
A18
:
A0
D7 A0 B0
D6 A1 B1
D5 A2 B2
D4 A3 B3
D3 A4 B4
D2 A5
74LS245 B5
8088 D1 A6 B6
Minimum D0 A7 B7
Mode
E DIR
IOR
IOW
din=inportb(0xf000)
A A A A A A A A A A A A A A A A IOR
1111119876543210
543210
Input/output alamatnya sama ?
DISAIN
PORT INPUT OUTPUT
PROGRAMMABLE
PA3 1 40 PA4
PA2 2 39 PA5
PA1 3 38 PA6
PA0 4 37 PA7
RD 5 36 WR
CS 6 35 RESET
GND 7 34 D0
A1 8 33 D1
A0 9 32 D2
PC7 10 31 D3
8255
PC6 11 30 D4
PC5 12 29 D5
PC4 13 28 D6
PC0 14 27 D7
PC1 15 26 VCC
PC2 16 25 PB7
Konfigurasi Pin PPI 8255
PC3 17 24 PB6
PB0 18 23 PB5
PB1 19 22 PB4
PB2 20 21 PB3
Diagram Blok PPI 8255
+5V
GND
GRUP A GRUP A PA0-PA7
CONTROL PORT A
(8)
GRUP A
PORT C PC4-PC7
DATA ATAS
D7-D0 BUS (4)
BUFFER
DATA BUS
BUS DATA
INTERNAL GRUP B
2 ARAH PC0-PC3
8 BIT PORT C
BAWAH
(4)
RD
WR READ PB0-PB7
GRUP B
WRITE GRUP B
A1 PORT B
CONTROL CONTROL
(8)
A0 LOGIK
RESET
CS
Fungsi Pin (1)
• Buffer data bus 8 bit dua-arah yang tri state digunakan
sebagai interface antara PPI-8255 dengan bus data
sistem mikrokomputer. Data dikirim atau diterima oleh
buffer, baik pada saat CPU mengeksekusi intruksi input
maupun output.
• Control Word (CW) dan informasi status juga ditransfer
melalui buffer bus data ini.
• (CS) Chip Select. Jika pin input ini berlogika rendah
maka memungkinkan komunikasi antara PPI 8255 dan
CPU.
• (RD) Read. Logika rendah pada pin ini memungkinkan
PPI 8255 mengirimkan data atau informasi status ke
CPU via data bus. Intinya, memungkinkan CPU
”membaca” dari PPI 8255 ini.
Fungsi Pin (2)
• (WR) Write. Nilai logika rendah pada pin ini
memungkinkan CPU menulis data atau control word ke
PPI 8255.
• (A0 dan A1) Port select 0 dan Port select 1. Pin input ini ,
dalam hubungannya dengan input RD dan WR akan
mengontrol pemilihan register yang akan digunakan
secara aktif, atau register control word sebagaimana
tampak pada tabel 1. Port select umumnya dihubungkan
dengan LSB dan bus alamat (A0 dan A1).
• RESET, Nilai logika tinggi di pin input ini akan
menginilisasi register control ke 9B (Hex) dan semua
port (A,B,C) diset ke mode input.
• “Bus Hold” akan menahan input port I/O pada logika “1”
dengan arus maksimum 0.4 mA.
Operasi Dasar PPI 8255 (Tabel 1)
A1 A0 RD WR CS Operasi
0 0 0 1 0 Port A→data Bus
0 1 0 1 0 Port B→data Bus
1 0 0 1 0 Port C→data Bus
0 0 1 0 0 Data Bus →Port A
0 1 1 0 0 Data Bus →Port B
1 0 1 0 0 Data Bus →Port C
1 1 1 0 0 Data Bus →Control
X X X X 1 Data Bus →3-state
1 1 0 1 0 Kondisi Ilegal
X X 1 1 0 Data Bus →3-state
Mode Operasi PPI 8255
PPI 8255, dapat beroperasi pada 3 mode, yaitu :
• Mode 0 : Dalam mode ini, ke-24 line tersebut dikelompokkan atas 2
grup 8 line (port A dan port B) dan 2 grup 4 line (port C). Tiap grup
dapat diprogram untuk operasi dasar I/P atau O/P dimana setiap
port O/P di-latch sedangkan I/P port tidak di-latch, tetapi bekerja
sebagai 3-state I/P buffer.
• Mode 1 : PPI dalam mode ini, memakai 2 buah port 8 bit (port A dan
portB) sebagai unidirectional I/P atau O/P port. Tiap port
mentransfer data ketika ada strobe atau handshaking signal. Port C
digunakan oleh Port A dan Port B untuk membangkitkan atau
menerima signal handshaking tersebut. Data di latch baik untuk I/P
atau O/P pada port A dan port B.
• Mode 2 : (port A) digunakan sebagai bidirectional I/O port. Seperti
dalam mode 1, signal strobes atau handshaking juga digunakan
untuk mengontrol aliran data ke dan dari CPU, dan digunakan lima
bit.
PPI 8255 Control Word
D7 D6 D5 D4 D3 D2 D1 D0
1
GROUP B
Port C (lower)
1 = input
0 = output
Port B
1 = input
0 = output
Mode Selection
0 = mode 0
1 = mode 1
GROUP A
Port C (upper)
1 = input
0 = output
Port A
1 = input
0 = output
Mode selection
00 = mode 0
01 = mode1
1X = mode 2
P
POLLING
Polling dan Interupsi (1/2)
Instruksi
Permintaan
Interupsi
P
Interupsi
82C55: Mode 0, Scan Display
82C55: Mode 1 Strobed Input
• ~STB : Transisi 1 ke 0, input strobe memuatkan data
ke port latch.
• IBF : berlogik 1 menunjukkan data telah masuk di
port latch.
• INTR : sinyal akan tinggi saat IBF berlogik 1, yang
dapat digunakan untuk menginterupsi CPU.
• INTE : bit ini di set melalui instruksi apabila ingin INT-
nya aktif, yaitu melalui: PC4 (port A) or PC2 (port B)
bits.
• PC7,PC6 : Pin 7 dan 6 port C merupakan pin I/O
fungsi serba guna.
82C55: Mode 1 Strobed Input
6 SIMM 2 DIMM
5 PCI slots Pentium CPU
slots slots
Identifikasi slot ISA, PCI, & AGP
ISA slot
ISA (1/3)
• Industry Standard Architecture
– Pengucapan “eye-es-eh”
• Sejarah
– Dikenalkan oleh IBM PC (1981) sebagai 8 bit slot
ekspansi
• Kerja pada 8.3 MHz dengan kecepatan transfer 7.9
Mbytes/s
– Versi 16-bit diperkenalkanpada IBM PC/AT
• Kerja pada 15.9 MHz dengan kecepatan transfer 15.9
Mbytes/s (?)
• Dikenal dengan nama “AT bus”
– Sekarang (1988), semua slot ISA adalah16 bit
• Konfigurasi
– Parallel, multi-drop
ISA (2/3)
• Digunakan untuk…
– Beberapa peripheral (sound cards, disk drives,
dll.)
• PnP ISA
– Tahun 1993, Intel dan Microsoft memperkenalkan
“PnP ISA”, untuk plug-and-play ISA
– Terkonfigurasi secara otomatis dengan sistem
operasinya
• Form factor
– Large connector in two segments
– Smaller segment is the 8-bit interface (36 signals)
– Larger segment is for the 16-bit expansion (62
signals)
– 8-bit cards only use the smaller segment
ISA (3/3)
• Advancements
– EISA
• Extended ISA
• Dirancang oleh 9 kompetitor IBM (AST, Compaq, Epson,
HP, NEC, Olivetti, Tandy, WYSE, Zenith)
• Untuk menyaingi IBM’s MCA
• Perangkat kera EISA compatible dengan ISA
– MCA
• Micro Channel Architecture
• Diperkenalkan oleh IBM tahun 1987 sebagai pengganti
bus AT/ISA
– EISA dan MCA ternyata tidak sukses
ISA Bus expansion slot
• Only 16-bit
(even 32-bit or
higher data
bus)
• Speed dibatasi
sampai 8MHz
Fungsi Pin ISA (1/2)
• -IOW
I/O Write menginstruksikan ke piranti I/O terpilih supaya
mengambil datanya dari data bus.
Mendisain ISA CARD
A0
A1
SLOT ISA
RD PPI-8255
WR
ResetDRV
CS
Dekoder
A2-A9
Alamat
Contoh I/O
• Port A
– 8 bit DIP switch
• Port C-Lower
– 4 bit LED
• Peta Alamat
– Port A : 300H
– Port B : 301H
– Port C : 302H
– Control Reg. 303H
Program bahasa C untuk Port I/O
Aplikasi PPI dalam mode 0
Tugas 1:
Buat rangkaian dekoder alamat untuk gambar PPI antar muka DIP
switch dan LED
Tugas 2:
Buat program dengan Bahasa C untuk mengontrol 8 buah led yang
terhubung ke port_A. Setiap LED ON bergantian selama 1 detik.
Gambarkan pula perangkat kerasnya
Tugas 3:
Tulis program untuk menampilkan nomor absen Saudara untuk
gambar antarmuka SSG pada 2 digit terbawah.
Tugas 4:
Disain perangkat keras dan program untuk mengontrol ADC 8 bit 1
kanal dan 4 digit seven segment, alamat dasar PPI adalah 308H
(dengan Bahasa C)
Antarmuka 8 LED
#include<stdio.h>
#include<stdlib.h>
#include<dos.h> /* instruksi inportb dan outportb */
#include<conio.h>
#define PORT_DATA 0x300 //Alamat port A
#define PORT_CONTROL 0x303 //Alamat port B
#define CW 0x80 //Control word semua port sebagai output
main ()
{
int d_led, i;
d_led = 0x01;
outprtb(PORT_CONTROL,CW); //Inisialisasi
for (i = 0; i <= 7;i++)
{
outportb(PORT_DATA,d_led); //kirimkan data ke port A
delay (1000);
d_led = d_led << 1; //geser kiri 1 bit
}
}
Antarmuka 8 LED
#include<stdio.h>
#include<stdlib.h>
#include<dos.h> /* instruksi inportb dan outportb */
#include<conio.h>
#define PORT_DATA 0x300
#define PORT_CONTROL 0x303
main ()
{
int i;
static int data [4] = {0x81, 0x42, 0x24, 0x18};
Outportb(PORT_CONTROL,0X80);
for (i = 0; i <= 3;i++)
{
printf(“Data = %x \n”,data[i]); //simulasi output
outportb(PORT_DATA,data[i]);
delay (1000);
}
}