Anda di halaman 1dari 7

c cc







c 

  

Mikroprosesor 8086, 80186, 80286, DAN 80386SX berbeda dari 8088/80188 dalam tiga hal; (1) memiliki
bus data selebar 16 bit, menggantikan 8 bit pada 8088, (2) pin IO/ dari 8088 digantikan oleh suatu pin
M/IO, dan (3) terdapat sinyal kontrol baru yang disebut bus high enable (BHE). Bit alamat A0 atau BLE
juga digunakan secara lain. (karena bagian ini berdasarkan atas materi yang diberikan dalam Bagian 10-3
maka sangat penting bagi Anda untuk membaca bagian sebelumnya terlebih dahulu). Beberapa
perbedaan lainnya adalah antara 8086/80186 dan 80286/80386SX. 80286/80386SX berisi suatu bus
alamat 24-bit (A23-A0), selain bus alamat 20-bit (A19-A0) pada 8086/80186. Mikroprosesor 8086/80186
berisi sinyal M/IO, sementara sistem 80286 dan mikroprosesor 80386SX berisi sinyal-sinyal MRDC dan
MWTC, selain RD dan WR.

 

Lebar bus data 8086, 80186, 80286, DAN 80386SX adalah dua kali lebar bus 8088/80188. Bus data yang
lebih lebar ini hadir dengan permasalahan khusus yang belum pernah terjadi sebelumnya.

Mikroprosesor 8086, 80186, 80286, DAN 80386SX harus mampu menulis data ke lokasi 16-bit mana pun
ʹ atau suatu lokasi 8-bit. Artinya, bus data 16-bit harus dibagi ke dalam dua bagian (bank) terpisah, yaitu
selebar delapan bit sehingga mikroprosesor bisa menulisinya, baik sebagian (8-bit) atau kedua bagian
(16-bit). Gambar 10-27 menggambarkan dua bank memori. Satu bank (bank rendah) memegang semua
lokasi memori berangka genap, dan bank lainnya (bank tinggi) memegang semua lokasi memori
berangka ganjil.

Mikroprosesor 8086, 80186, 80286, DAN 80386SX memakai sinyal BHE (bank tinggi) dan bit alamat A0
atau BLE (Bus Low Enable) untuk memilih satu atau kedua bank memori yang dipakai untuk transfer data.
Tabel 10-3 melukiskan level logika pada kedua pin atau bank yang terpilih.

Pemilihan bank dilaksanakan dalam dua cara; (1) mengembangkan sebuah sinyal tulis terpisah untuk
memilih suatu penulisan ke setiap bank memori, atau (2) mengenakan decoder terpisah untuk setiap
bank. Perbandingan yang cermat menunjukkan, teknik pertama merupakan pendekatan termurah
dalam antarmuka memori ke mikroprosesor 8086, 80186, 80286, DAN 80386SX.

Dekoder Bank Terpisah. Pemakaian decoder bank terpisah adalah cara yang paling tidak efektif untuk
mendekode alamat memori ke mikroprosesor 8086, 80186, 80286, DAN 80386SX. Cara ini terkadang
ditempuh meskipun alasannya memang sulit dipahami dalam sebagian kasus. Salah satu alasan mungkin
berkaitan dengan penghematan energi karena hanya bank terpilih yang difungsikan. Ini tidak selalu
terjadi dengan sinyal-sinyal baca dan tulis bank yang dibicarakan nanti.

Gambar 10-28 menggambarkan dua dekode 74LS138 yang dipakai untuk memilih komponen memori
RAM 64K bagi mikroprosesor 80386SX (alamat 24 bit). Di sini, decoder U2 menghubungkan pin BLE (A0)
dengan G2A, dan dekode U3 menghubungkan sinyal masukan BHE ke G2A yang ada. Karena decoder
tidak akan aktif hingga semua masukan enable aktif, decoder U2 hanya aktif untuk suatu operasi 16 bit
atau 8 bit dari bank rendah. Decoder U3 hanya aktif untuk suatu operasi 16 bit atau 8 bit dari bank tinggi.

Kedua decoder ini dan 16 RAM 64K byte yang mereka kontrol mewakili suatu rentang 1M dari sistem
memori 80386SX. Dekoder U1 memfungsikan U2 dan U3 untuk rentang alamat memori 000000H ʹ
0FFFFH.

Perhatikan dalam gambar 10-28 bahwa pin alamat A0 tidak terkoneksi ke memori karena memang tidak
ada dalam mikroprosesor 80386SX. Juga perhatikan bahwa kedudukan bit bus alamat A1 dihubungkan
ke masukan alamat memori A0, kemudian A2 terkoneksi ke A1, dan seterusnya. Alasannya adalah A0
dari 8086/80186 (atau BLE dari 80286/80386SX) sudah terkoneksi ke decoder U2 dan tidak perlu
dikoneksikan lagi ke memori. Jika A0 atau BLE dipasang ke pin alamat A0 dari memori, tiap lokasi
memori lainnya dalam setiap bank memori akan terpakai. Ini berarti bahwa setengah dari memori
terbuang jika A0 atau BLE dihubungkan ke A0.

Stroble Tulis Bank Terpisah. Cara paling efektif untuk menangani pemilihan bank adalah
mengembangkan suatu stroble tulis terpisah untuk setiap bank memori. Teknik ini hanya membutuhkan
satu decoder untuk memilih memori selebar 16 bit, yang kerap menghemat biaya dan memperkecil
jumlah komponen dalam suatu sistem.

MIKROPROSESOR INTEL: ARSITEKTUR, PEMROGAMAN DAN ANTARMUKA

Untuk suatu instruksi I/O. nomor port variabel 16 bit (DX) muncul di atas hubungan alamat A15-A0.
Artinya, 256 alamat port I/O awal (00H-FFH) dapat diakses oleh instruksi I/O tetap dan variabel, tetapi
suatu alamat I/O dari 0100H-FFFFH hanya diakses dari alamat I/O di dekode sehingga memperkecil
jumlah rangkaian yang dibutuhkan untuk pengkodean. Dalam suatu komputer PC, 16 bit bus alamat
didekode dengan lokasi 0000H-03XXH, di mana alamat I/O dipakai untuk I/O dalam PC bus ISA (Industri
Standart Architecture).

Instrusk INS dan OUTS mengalami suatu piranti I/O dengan menggunakan register DX, tetapi tidak
mentransfer data antara akumulator dan piranti I/O sebagaimana IN dan OUT. Selain itu, instruksi ini
mentransfer data antara memori dan piranti I/O. Alamat memori ditempatkan di ES:DI untuk instruksi
INS, dan DS:DI untuk instruksi OUTS. Sebagaimana instruksi string lainnya, isi pointer akan di-increment
atau di-decrement, seperti juga dinyatakan oleh keadaan flag arah (direction flag-DF). Baik INS dan OUTS
bisa didahului dengan REP, dan mengizinkan lebih dari satu byte, word, tau doubleword untuk transfer
I/O dan memori.

I/O Terisolasi dan Memory-Mapped

Terdapat dua metode berbeda dalam antarmuka I/O ke mikroprosesor. I/O terisolasi (isolated I/O) dan
I/O memori mapped. Dalam skema I/O memory-mapped, suatu instruksi yang mengacu memori bisa
melaksanakan transfer. Baik I/O terisolasi maupun memori ʹmapped tetap digunakan sehingga
keduanya akan dibicarakan di sini.
I/O Terisolasi. Teknik transfer I/O yang paling umum dipakai dalam sistem berbasis mikroprosesor Intel
adalah I/O yang paling umum dipakai dalam sistem berbasis mikroprosesor Intel adalah I/O terisolasi.
Istilah terisolasi menjelaskan bagaimana lokasi I/O diisolasi dari sistem memori dalam suatu ruang
alamat I/O terpisah. (Gambar 11-1 menggambarkan ruang alamat terisolasi memori-mapped untuk
suatu mikroprosesor intel 80X86 atau Pentium-pentium 4). Alamat untuk piranti I/O terisolasi, disebut
port, berada terpisah dari memori. Karena kondisi port yang terpisah, pengguna bisa memperluas
memori hingga batas maksimalnya tanpa memanfaatkan ruang memori untuk piranti I/O. Kelemahan
I/O terisolasi adalah transfer data antara I/O dan mikroprosesor harus diakses dengan instrusksi IN, INS,
OUT dan OUTS. Sinyal-sinyal kontrol terpisah untuk ruang I/O dibuat (memakai M/IO dan W/R), yang
mengindikasikan suatu operasi pembacaan I/O (IORC) atau penulisan I/O (IOWC). Sinyal-sinyal ini
mengindikasikan suatu alamat port I/O, yang muncul pada bus alamat, digunakan untuk memilih piranti
I/O. Dalam komputer personal, port I/O terisolasi digunakan untuk mengendalikan piranti peripheral.
Alamat port 8 bit digunakan untuk mengakses piranti yang berlokasi di atas papan sistem, seperti
pewaktu dan antarmuka keyboard, sementara port 16 bit digunakan untuk mengakses port-port serial
dan paralel seperti sistem video dan disk drive.

I/O Memory-Mapped. Berbeda dengan I/O terisolasi. I/O memory mapped tidak menggunakan instruksi
IN, INS, OUT, atau OUTS. Sebagai gantinya, digunakan sembarang instruksi untuk mentransfer data
antara mikroprosesor dan memori. Peranti I/O memory- mapped diperlakukan sebagai suatu lokasi
memori dalam peta memori. Kelebihan utama I/O memory-mapped adalah adanya instruksi transfer
memori yang bisa digunakan untuk mengakses peranti I/O. Kekurangannya adalah bagian dari sistem
memori digunakan sebagai peta I/O sehingga akan memperkecil jumlah memori yang tersedia untuk
aplikasi. Namun, masih terkandung manfaat lain yaitu tidak berfungsinya sinyal IORC dan IOWC dalam
sistem I/O memory-mapped sehingga dapat memperkecil jumlah rangkaian yang dibutuhkan untuk
pendekodean.
Peta I/O Komputer Personal

Komputer personal memanfaatkan sebagian peta I/O untuk fungsi terdedikasi. Gambar 11- 2
menunjukkan peta I/O untuk PC. Catat bahwa ruang I/O antara port 0000H dan 03FFH biasanya
dicadangkan untuk sistem komputer dan bus ISA. Port I/O yang berlokasi pada 0400HͶFFFFH pada
umumnya tersedia untuk pemakai aplikasi, penggunaan mainboard, dan bus PCI. Catat bahwa
koprosesor aritmatika 80287 memakai alamat I/O OOF8HͶOOFFH untuk berkomunikasi. Untuk alasan
mi, Intel mencadangkan port I/O OOFOHͶOOFFH. Mikroprosesor 80386ͶPentium 4 memakai port I/O
800000F8-800000FFH untuk komunikasi koprosesor mereka. Port I/O yang berlokasi antara 0000H dan
OOFFH diakses melalui instruksi port I/O tetap; port yang berlokasi di atas OOFFH diakses melalui
instruksi port I/O variabel.

c !"  " # $    

Dasar peranti masukan adalah kumpulan penyangga three-state. Dasar peranti keluaran adalah
sekumpulan latch data. Istilah IN mengacu pada pemindahan data dan peranti I/O ke mikroprosesor,
dan istilah OUT mengacu pada pemindahan data keluar dan mikroprosesor menuju peranti I/O.

c !"  "   . Penyangga three-state digunakan untuk membangun port masukan 8-bit
yang terlukis dalam Gambar 11-3. Data TTL eksternal (toggle switch sederhana dalam contoh ini)
dikoneksikan ke masukan penyangga. Keluaran penyangga dikoneksikan ke bus data Koneksi bus data
tergantung pada versi mikroprosesor. Sebagai contoh, 8088 mempunyai koneksi bus data D7ͶD0,
80486 mempunyai D31ͶD0, dan Pentium-Pentium 4 mempunyai D63ͶD0. Rangkaian pada Gambar 11-
3 membolehkan mikroprosesor untuk membaca isi dan 8 switch yang terkoneksi ke sembarang bagian 8-
bit dan bus data ketika sinyal pilih SEL menjadi berlogika 0. Jadi, ketika instruksi IN dijalankan, isi switch
disalin ke dalam register AL.

Ketika mikroprosesor menjalankan suatu instruksi IN, alamat port I/O didekode untuk menghasilkan
logika 0 pada SEL. Suatu 0 yang diletakkan pada keluaran masukan kontrol ( IG dan 2G) dan penyangga
74ALS244 menyebabkan koneksi masukan data (A) terkoneksi ke koneksi keluaran data (Y). Ketika suatu
logika I diletakkan di atas keluaran kontrol masukan dan penyangga 74ALS244, peranti memasuki mode
impedansi tinggi three-state yang secara efektif memutus switch dan bus data.

Rangkaian masukan dasar mi tidak opsional dan harus muncul kapan pun data masukan diantarmuka ke
mikroprosesor. Terkadang, ia muncul sebagai suatu bagian diskret dan rangkaian, sebagaimana
ditunjukkan dalam Gambar 11-3; terkadang, ia dibentuk dalam suatu peranti I/O yang dapat diprogram.

Data 16-bit atau 32-bit juga dapat diantarmuka ke macam-macam versi mikroprosesor, tetapi tidak
seumum pada penggunaan data 8-bit. Untuk mengantarmuka 16 bit data, rangkaian dalam Gambar 11-3
digandakan untuk memasukkan duo penyangga 74ALS244
yang menghubungkan 16-bit data masukan ke 16-bit bus data. Untuk mengantarmuka data 32 bit,
rangkaian diperluas 4 kali.

c !" $    . Antarmuka keluaran dasar menerima data dan rnikroprosesor dan biasanya
harus menahannya untuk beberapa peranti eksternal. Latch atau flip-flop, seperti penyangga yang
terdapat dalam peranti masukan, seringkali dibangun dalam peranti I/O.

Gambar 11-4 menunjukkan bagaimana delapan light-emitting diode (LED) sederhana terkoneksi ke
mikroprosesor melalui suatu kumpulan delapan latch data. Latch menyimpan keluaran angka oleh
mikroprosesor dan bus data sehingga LED dapat dinyalakan dengan suatu angka biner 8-bit. Latch
dibutuhkan untuk menahan data karena ketika mikroprosesor menjalankan suatu instruksi OUT, data
hanya berada pada bus data selama kurang dan 1,0 ʅs. Tanpa latch, Anda tidak akan pernah melihat LED
menyala.

Ketika instruksi OUT dijalankan, data dan AL, AX, atau EAX ditransfer ke latch melalui bus data. Di sini,
masukan D dan suatu latch oktal 74ALS374 terkoneksi ke bus data untuk menangkap data keluaran, dan
keluaran Q dan latch dihubungkan ke LED. Ketika suatu keluaran Q berlogika 0, LED menyala. Setiap kali
instruksi OUT dijalankan, sinyal SEL ke latch menjadi aktif, menangkap data keluaran ke latch dan suatu
bagian 8-bit bus data. Data ditahan hingga instruksi OUT berikutnya dijalankan. Jadi, ketika instruksi
keluaran dieksekusi dalam rangkaian ini, data register AL muncul pada LED.

Handshaking

Banyak peranti I/O menerima atau menus informasi jauh lebih lambat dari pada mikroprosesor. Metode
lain dan kontrol I/O, disebut handshaking atau polling, mensinkronkan peranti I/O dengan
mikroprosesor. Contoh peranti yang membutuhkan handshaking adalah suatu printer paralel yang
mencetak 100 karakter per detik (CPS). Di sini menjadi jelas bahwa mikroprosesor bisa mengirim lebih
dan 100 CPS ke printer sehingga perlu dikembangkan suatu cara untuk memperlambat mikroprosesor
agar sesuai dengan kecepatan printer.

Gambar 11-5 menampilkan hubungan masukan dan keluaran umum yang terdapat pada suatu printer.
Di sini, data ditransfer melalui suatu serial koneksi data, (D7ͶDO). BUSY mengindikasikan bahwa printer
dalam kondisi sibuk dan STB adalah suatu pulsa clock yang dipakai untuk mengirim ke dalam printer
dalam pencetakan.

Data ASCII yang akan dicetak oleh printer diletakkan pada D7ͶDO, dan suatu pulsa digunakan dalam
hubungan STB. Sinyal strobe mengirim atau melakukan clock data ke dalam printer sehingga bisa dicetak.
Saat menerima data, printer meletakkan logika 1 pada pin BUSY, mengindikasikan bahwa printer sibuk
mencetak data. Perangkat lunak mikroprosesor menyelidiki atau mengetes pin BUSY untuk mengetahui
apakah printer sedang sibuk. Ketika printer sibuk, mikroprosesor menunggu; ketika tidak sibuk,
mikroprosesor mengirim karakter ASCII lain ke printer. Proses interogasi printer ini disebut handshaking
atau polling. Contoh 11-1 menggambarkan suatu prosedur sederhana yang menguji flag BUSY printer
dan kemudian mengirim data ke printer ketika tidak sibuk. Prosedur PRINT mencetak isi berkode ASCII
dan BL hanya ketika flag BUSY berlogika 0, mengindikasikan bahwa printer tidak sibuk. Prosedur ini
dipanggil setiap saat suatu karakter akan dicetak.

   c !"  %"  

Bagian tertentu antarmuka membutuhkan beberapa pengetahuan tentang elektronika. Bagian


pengenalan antarmuka menguji beberapa fakta tentang antarmuka elektronika. Sebelum suatu
rangkaian peranti dapat diantarmuka ke mikroprosesor, karakteristik terminal dan mikroprosesor dan
komponen antarmuka yang berhubungan harus diketahui. (Diperkenalkan pada awal Bab 9.)

&$  " . Peranti masukan adalah TTL dan bersifat kompatibel sehingga bisa terkoneksi ke
mikroprosesor dan komponen antarmukanya, atau mereka berbasis switch. Sebagian peranti berbasis
switch adalah terbuka atau terkoneksi. Ini bukan level TTL-level TTL merupakan suatu logika 0 (0,0 V Ͷ
0,8 V) atau logika 1 (2,0 V Ͷ 5,0 V). Agar suatu peranti berbasis switch bisa digunakan sebagai suatu
peranti masukan kompatibel TTL, beberapa syarat harus terpenuhi. Gambar 11-6 menunjukkan suatu
toggle switch sederhana yang dikoneksikan dengan tepat untuk digunakan sebagai suatu peranti
masukan. Perhatikan bahwa suatu resistor pull-up digunakan untuk meyakinkan bahwa ketika switch
terbuka, sinyal keluaran menjadi berlogika 1; ketika switch tertutup, ia terkoneksi ke ground,
menimbulkan suatu level logika 0. Nilai pull-up resistor adalah tidak kritis Ͷ ia hanya menjamin bahwa
sinyal berada pada suatu logika 1. Rentang standar nilai resistor pull-up biasanya antara 1K 2 hingga 10K
12.

Kontak switch mekanis secara fisik memantul (bounce) ketika tertutup, yang bisa menimbulkan masalah
ketika switch digunakan sebagai sinyal clock untuk rangkaian digital. Sebagai antisipasi masalah
pemantulan, satu dan dua rangkaian yang terlukis dalam Gambar I 17 dapat dikonstruksi. Rangkaian
pertarna (a) adalah suatu pembatas pantulan klasik; yang kedua (b) adalah suatu versi lebih praktis dan
rangkaian yang sama. Karena versi pertama lebih mahal untuk dibuat pada praktiknya, yang kedua akan
dipakai karena tidak membutuhkan resistor pull-up dan hanya dua inverter selain dua gate NAND.

Anda mungkin telah mengamati bahwa kedua rangkaian dalam Gambar 11-7 adalah flip-flop asinkron.
Rangkaian (b) berfungsi dengan cara berikut. Anggaplah switch saat ini berada pada kedudukan Q. Jika ia
bergerak menuju Q, tetapi belum menyentuhnya, keluaran Q dan rangkaian adalah logika 0. Keadaan
berlogika 0 akan diingat inverter. Keluaran dari inverter B terkoneksi ke masukan dan inverter A. Karena
keluaran dan inverter B berlogika 0, keluaran dan inverter A akan berlogika 1. Keluaran logika 1 dan
inventer A menjaga keluaran logika 0 dan inverter B. Flip-flop tetap berada dalam keadaan ini hingga
kotak switch bergerak pertama kali menyentuh hubungan Q. Segera setelah masukan Q dan switch
berlogika 0, ia mengubah keadaan flip-flop. Jika kotak memantul dari masukan Q flip-flop akan
mengingatnya dan tidak ada perubahan yang terjadi sehingga mengurangi pemantulan.
&$ $  . Peranti keluaran lebih bervariasi daripada peranti masukan, tetapi banyak yang
diantarmuka dalam cara seragam. Sebelum suatu peranti keluaran dapat diantarmuka, kita harus
mengetahui apakah tegangan dan arus berasal dan mikroprosesor, atau komponen antarmuka TTL.
Tegangan bersifat kompatibel TTL dari elemen antarmuka mikroprosesor. (Logika 0 = 0,0 V hingga 0,4 V;
logika 1=2,4 V hingga 5,0 V.) Arus untuk mikroprosesor dan banyak komponen antarmuka
mikroprosesor adalah lebih kecil dari standar komponen TTL. (Logika 0 = 0,0 hingga 2,0 mA; logika 1 =
0,0 hingga 400 ʅA)

Sekali arus keluaran diketahui, kita bisa mengantarmuka peranti ke salah satu satu keluaran. Gambar 11-
8 menunjukkan bagaimana mengantarmuka suatu LED sederhana ke pin peralatan mikroprosesor.
Perhatikan bahwa suatu pengarah transistor digunakan dalam Gambar 11-8 (a). dan demikian juga
dengan inverter TTL dalam Gambar 11-8(b). TTL inverter (versi standar) memberikan arus hingga 16 mA
pada level logika 0, lebih dan cukup untuk menjalankan suatu LED standar. Suatu LED standar
membutuhkan arus bisa maju 10 mA untuk menyala. Dalam kedua rangkaian, kita mengasumsikan
bahwa penurunan tegangan yang melewati LED adalah sekitar 2,0 V. Datasheet untuk suatu LED
menyatakan bahwa penurunan tegangan nominal adalah 1,65 V, tetapi kita tahu berdasarkan
pengalaman bahwa penurunan tegangan berada di antara 1,5 V dan 20 V. mi berarti nilai resistor
pembatas arus adalah 3,0 V/10 mA atau 300 ɏ. Karena 300 ɏ bukan nilai standar resistor, kita memilih
untuk menggunakan resistor 330 ɏ.

Dalam rangkaian Gambar 11-8(a), kita memilih memakai suatu transistor switching sebagai pengganti
penyangga TTL. 2N2222 adalah suatu transistor switching umum yang mempunyai suatu penambahan
minimum 100. Dalam rangkaian ini, arus kolektor adalah 10 mA sehingga arus basis adalah 1/100 arus
kolektor, yaitu 0,1 mA. Untuk menetapkan nilai resistor pembatas arus basis, kita memakai ants 0,1 mA
dan penurunan tegangan 1,7 V. Sinyal masukan TTL mempunyai nilai minimum 2,4 V dan penurunan
tegangan melalui persimpangan emitor-basis adalah 0,7 V. Selisihnya sebesar 1,7 V, yang berupa
penurunan tegangan melewati resistor. Nilai resistor adalah 1.7V/0.1mA atau 17K ɏ. Karena 17K ɏ bukan
nilai standar, kita memakai resistor 1 8K 2.

Misalnya kita memerlukan antarmuka suatu motor DC 12 V ke mikroprosesor dan arus motor adalah 1 A.
Jelas, kita tidak dapat memakai inverter TTL untuk keduanya karena sinyal 12 V akan membakar inverter
dan jumlah arus jauh melebihi arus maksimum inverter 16 mA. Kita tidak bisa memakai transistor
2N2222 juga karena jumlah arus maksimum adalah 250 mA hingga 500 mA, tergantung pada tipe paket.
Oleh karena itu, solusinya adalah memakai pasangan Darlington.

Gambar 11-9 menggambarkan motor yang terkoneksi ke pasangan Darlington. Pasangan Darlington
mempunyai penambahan arus minimum 7000 dan arus maksimum 4 A. Nilai resistor bias dihitung
seperti yang digunakan dalam pengarah LED. Arus yang melalui resistor adalah I A/7000, atau sekitar 0,
143 mA. Penurunan tegangan melewati resistor adalah sebesar 0,9 V karena kita mempunyai dua
penurunan dioda, bukan hanya satu. Nilai resistor bias adalah O.9V/0.143 mA atau 6,2.9 K2. Nilai standar 6,2
Kɏ digunakan dalam rangkaian. Suhu