SISTEM RANGKAIAN BERBASIS MIKROPROSESOR
Dalam perencanaan suatu sistem rangkaian elektronik, langkah teknis
yang dilakukan pertama biasanya adalah menggambarkan seluruh sistem dalam blok
diagram. Dari blok diagram, dapat diketahui bagaimana prinsip kerja umum dan
hubungan antara subblok yang satu dengan yang lain dalam membentuk sistem kerja
yang terpadu. Blok diagram merupakan mediapenerjemahan pertama tentang bagamana
memelajari kelakuan sistem.
Rangkaian kontrol elektronik - dengan memberikan penekanan pada kata
kontrol memunyai arti yang lebih aplikatif, bahwa rangkaian itu digunakan
sebagai alat untuk sistem pengontrol. Fenomena sistem control dalam pengertian
keteknikan bermakna suatu sistem yang memunyai peranti input dan peranti
output. Peranti input berfungsi sebagai peranti penerima data-data dari sistem
yang dikontrol, sedangkan peranti output berfungsi sebagai pemberi aksi kepada
sistem yang dikontrol.
Merencanakan suatu peralatan kontrol elektronik yang berbasis mikroprosesor
memerlukan pemahaman yang cukup tentang aspek-aspek sistem yang optimal.
Pengertian optimal menghendaki bahwa aspek andal, efektif dan efisien harus
dipenuhi. Aspek terakhir biasanya adalah penggunaan biaya yang hemat. Orientasi
disain dapat dicapai dengan dua cara, yaitu orientasi subyek dan orientasi
objek. Maksudnya, orientasi subyek berangkat dari peranti kontrol yang telah
ada atau dimiliki sebelumnya. User tinggal merancang sistem interface dari
peranti kontrol, misalnya mikro komputer, ke sistem yang akan dikontrol,
sedangkan orientasi objek berangkat dari objek yang akan dikontrol.
Penerjemahan peranti kontrol, atau bentuk rangkaian kontrol apa yang
dikehendaki, dibangun dengan pendekatan fungsi dalam pengontrolan yang telah
didefinisikan. Secara teoritis, dalam kompetisi pemakaian peralatan kontrol di
industri, cara disain dengan beromentasi objektah yang lebih diterima karena
dipastikan bahwa untuk kebutuhan kontrol yang sama, produk kontrol yang
berorientasi objek lebih murah selain juga lebih kompak dalam penginstalan.
LINGKUP
PERANCANGAN SISTEM MINIMUM
Kemampuan pengalamatan memori maksimum secara langsung adalah
sebesar (64 Kilo x 8 bit) atau sebesar 64 Kilo Byte (64KB), dapat diterangkan
dengan pemetaan memori seperti Gambar Pengalamatan untuk sistem CPU 8-bit umumnya
memiliki 16 bit alamat, demikian juga Z80, yang dalam gambar tampak sebagai
jumlah digit dari formasi biner mulai posisi MSB hingga LSB. Sebagai
pengetahuan, jumlah memori 64KB ini dikenal sebagai segmen dalam keluarga
prosesor Intel. Sejak tipe 8-bit hingga versi 32-bit keluaran terakhir, pihak
Intel masih mempertahankan struktur ini dalam disain program-program berbasis
prosesomya.
Pemetaan
memori pengalamatan langsung
Kemampuan maksimal memori CPU Z80 adalah (65536 x 8-bit) atau 64
Kilobyte. Pada dasarnya, pemanfaatan lokasi memori sebanyak ini dapat dicapai
dengan menggunakan RAM saja, EPROM saja atau keduanya dengan pengaturan peta
memori yang tertentu. Namun dalam kenyataannya, suatu permasalahan teknik kontrol
yang diselesaikan dengan rangkaian elektronik berbasis mikroprosesor selalu
menggunakan baik EPROM maupun RAM dalam satu sistem rangkaian. Bagaimanapun
juga, pemrograman yang dianjurkan menggunakan semaksimal mungkin fasilitas- fasilitas
instruksi bahasa Assembly, terutama teknik panggilan (subroutine) dan teknik
push dan pop.
RANGKAIAN CLOCK
Syarat utama
agar CPU dapat bekerja adalah tersedianya rangkaian clock yang memadai.
Frekuensi kerja rangkaian clock tidak boleh melebihi kemampuan maksimal
frekuensi kerja CPU.
Alternatif
rangkatan clock generator untuk CPU 280
Untuk sistem rangkaian berbasis CPU Z80, selain dapat digunakan rangkaian
clock seperti gambar di atas, terdapat pula rangkaian clock yang telah terintegrasi.
Chip kristal yang berbentuk mirip IC ini umumnya berkaki 4 buah. Di dalamnya,
telah menyatu peranti-peranti analog pendukung rangkaian. Dengan menghubungkan
langsung dua buah kaki di antaranya ke Ground danVcc, output kristal ini dapat
dihubungkan langsung ke pin clock CPU.
CPU BUS
BUFFER (RANGKAIAN PENYANGGA BUS CPU)
Bila CPU dihubungkan ke berbagai macam peripheral dengan jumlah yang
relatif banyak, bus-bus CPU bekerja cukup berat. Ia harus dapat menyokong data
atau logika ke memori atau peripheral dengan tegangan yang memenuhi syarat.
Maksudnya, meskipun bus-bus CPU terhubung ke berbagai macam komponen memori
atau peripheral, CPU harus tetap dapat memberikan logika yang valid. Secara
teori, hubungan sebuah titik output dari suatu rangkaian digital ke banyak
titik input rangkaian digital yang lain, dengan analisis digital dapat saja
benar. Namun, perancangan rangkaian perlu mempertimbangkan 'fan-in' dan
'fan-out'.
Ilustrasi
pemasangan rangkaian buffer pada CPU
Untuk sistem
rangkaian berbasis mikroprosesor yang berorientasi pada CMOS, rangkaian buffer
ini jarang sekali digunakan karena IC CMOS memiliki keistimewaan pada arus
kemudi input yang sangat kecil sekitar 2-10 miu ampere untuk tiap gate dan arus
output gate sampai 5mA sehingga fungsi fan out menjadi jaugh lebih besar
dibanding tipe TTL. Namun apabila menggunakan CPU tipe Z80 atau Z80A (bukan
tipe CMOS) maka dianjurkan untuk menggunakan rangkaian buffer untuk
meningkatkan fungsi fan-in dan fan-outnya.
RANGKAIAN AUTO RESET POWER ON
Dalam sistem
rangkaian berbasis mikroprosesor yang diaplikasikan sebagai alat kontrol,
sering dibutuhkan suatu kondisi yang mensyaratkan rangkaian untuk dapat
langsung bekerja (running) begitu tegangan Vee diberikan. Dalam hal ini,
rangkaian CPU Z80 perlu diberi waktu beberapa mikrodetik sebelum instruksi di
alamat 0000H mulai dilaksanakan, untuk memastikan bahwa semua bagian rangkaian
sudah mencapai 'steady state' atau kondisi stabil saat CPU mulai bekerja.
Untuk memenuhi
kebutuhan ini perlu digunakan suatu rangkaian yang disebut sebagai 'Auto Reset
Power ON. Begitu switch Power di-ON-kan, pin RESET dibuat aktif sampai beberapa
mikrodetik, tergantung nilai parameter- parameter rangkaian delay (penunda).
Kemudian secara otomatis RESET menjadi nonaktif. Penentuan nilai parameter
delay (R dan C) tergantung pada tipe-tipe IC keseluruhan yang digunakan dalam
rangkaian. Terutama bagi IC Peripheral yang memiliki fungsi RESET. Seluruh
peripheral pendukung harus dalam keadaan yang stabil pada saat CPU mulai
bekerja mengeksekusi instruksi pertama.
Perlu diingat bahwa
tidak semua peripheral yang dapat dirangkai dengan CPU Z80 memiliki
kompatibilitas penuh dengan 280 ini, terutama dalam hal pewaktuan (timing).
Gambar tersebut
merupakan contoh rangkaian auto reset power on untuk CPU Z80 yang dilengkapi
dengan push button untuk manual reset. untuk model rangkaian reset yang paling
ringkas dapat digunakan rangkaian push button seperti gambar diabwah ini.
INTERFACING Z80 KE IC MEMORY
Di muka, telah
diterangkan bahwa EPROM yang populer dan memungkin-kan untuk digunakan dalam
sistem minimum 280 adalah tipe 2708, 2716, 2732, 2764, 27128 dan 27256, baik
dalam kelas CMOS maupun non-CMOS. Tipe EPROM di atas 27256, misalnya 27512 dan
27C1001, tidak sesuai untuk digunakan pada sistem berbasis Z80 karena kapasitas
memorinya di atas 64KB. Untuk tipe antara lain adalah 6116, 6264 dan 62256.
Dalam memilih IC memory ini, dianjurkan untuk mem-per-timbangkan kemungkinan
penggunaan memori dari program yang mungkin diaplikasikan dalam sistem, di mana
program ini disimpan di EPROM, dan mempertimbangkan pula peng- gunaan struktur
stack dan area data yang bisa terjadi (direncanakan untuk dihasilkan) selama
program yang berada di dalam EPROM dijalankan (running).
Jadi, pemilihan
suatu EPROM atau RAM tidak didasarkan hanya pada bagaimana membuat sistem
rangkaian memon selengkap mungkin, tetapi juga berapa besar memori yang
sebenarnya kita butuhkan untuk menyelesai- kan permasalahan kontrol elektronik
itu. Dalam perancangan atau pemilihan alamat kerja masing-masing IC memory,
perlu juga dipertimbang-kan dengan teliti cara
pemisahan
alamat-alamat kerja untuk penggunaan lebih dari sebuah EPROM dengan tipe yang
sama. Bagaimana merancang rangkaian pemisah atau rangkaian dekoder menggunakan
IC dekoder yang seefisien mungkin, atau bahkan tanpa menggunakan bantuan IC
dekoder, melainkan cukup memanfaatkan jalur-jalur alamat yang ada pada address
bus. Uraian-uraian berikut ini akan menerangkannya.
Pertama, perhatikan
pemetaan memori dari masing-masing EPROM: 2708, 2716, 2732, 2764, 27128 dan
27256 pada Gambar 5.9, kemudian RAM: 6116, 6264 dan 62256. Masing-masing peta
memori digambarkan mulai alamat 0000H untuk menunjukkan bahwa kapasitas memori
yang dimiliki setara dengan jangkauan pengalamatan yang mungkin dilakukan.
EPROM 2708 memiliki
jalur alamat sebanyak 10 buah yang terdiri dari A9 sampai A0. Kapasitas
memorinya adalah 8 Kilo bit (Kb) atau 1 Kilo Byte (KB). Dalam hubungan
rangkaian ke sistem minimum, A9 sampai A0 ini dapat dihubungkan langsung ke A9
sampai A0 pada address bus Z80, sedangkan A15 sampai A10 dari address bus
digunakan untuk membentuk address decoding dari EPROM guna menentukan daerah
alamat tempat EPROM ini akan dioperasikan.
EPROM 2716 memiliki
kapasitas dua kali lebih besar dari 2708, yaitu16 Kb atau 2 KB, memiliki jalur
alamat A10 sampai A0. Ini menunjukkanbahwa penambahan satu jalur di posisi MSB,
yaitu A10, akan menambahkapasitas muatan memorinya hingga dua kali lipat.
EPROM 2732 memiliki
kapasitas 32 Kb atau 4KB, dua kali lipat dari 2716, karena jalur alamatnya All
hingga AO EPROM 2764 memunyai kapasitas 64 Kb atau 8 KB, dua kali lipat dari
2732, karena jalur alamatnya terdiri dari A12 hingga AO. EPROM 27128 memiliki
kemampuan 128 Kb atau 16 KB karena jalur alamatnya A13 hingga A0. Terakhir,
EPROM 27256, memunyai kapasitas memori 256 Kb atau 32 KB karena jalur alamatnya
adalah A14 hingga A0,
Semakin besar
kapasitas memorinya, semakin banyak pula jalur alamatnya, dan secara relatif
semakin mudah pula perancangan rangkaian pemisah alamat atau rangkaian dekoder
yang dibutuhkan. Bila kita gunakan EPROM 27256 dan RAM 62256 maka kita tidak
perlu memasang rangkaian dekoder khusus (misalnya IC dekoder 74HC138) untuk
memisahkan alamat kerja kedua IC memory tersebut. Cukup dengan memanfaatkan A15
pada CPU 280, dihubungkan ke cs (Chip Select) masing-masing IC memory
dengan cara tertentu sehingga kedua IC tersebut akan bekerja pada alamat-
alamat yang terpisah. 32KB yang pertama (dari alamat 0000H sampai 7FFFH)
digunakan oleh EPROM 27256, sedangkan 32KB yang kedua (alamat dari 8000H sampai
FFFFH) digunakan oleh RAM 62256.
MANIPULASI KONTROL READ/WRITE UNTUK MEMORY DAN PERANTI I/O
Pada EPROM, selam
memilik cs (Chip Select), ia juga memiliki jalur kontrol of (Output Enable)
yang aktif pada logika '0' juga or im juga harus diaktifkan oleh CPU agar data
EPROM dapat dibaca. Adapun pada RAM, selain terdapat CS (atau CE) dan OF, juga
terdapat we (Write Enable), yang berguna untuk kontrol penulisan data ke RAM.
Proses pembacaan
data yang dilakukan oleh CPU Z80 tidak saja berlaku bagi memori, tetapi juga
bagi peralatan Input Port Berdasarkan diagram pewaktuan (timing) read/write
memory dan 1/O read/write dapat dilihat bahwa pengaktifan instruksi yang
menyebabkan CPU menghubungi memori (EPROM maupun RAM) akan mengaktifkan MREQ,
dan RD atau WR, sedangkan 10RQ (Input/Output Request) tidak aktif. Sebaliknya,
untuk proses membaca data yang berasal dari Input Port, dengan mengeksekusi
instruksi IN [misalnya: in a,(81h)], maka yang aktif adalah 1ORO dan RD, tetapi
MREQ tidak demikian.
Perbedaan aktif dan
nonaktif dari MREQ dan IORQ inilah yang dijadi- kan acuan tindak lanjut
pembuatan rangkaian penghasil sinyal aktif yang spesial untuk memori atau
spesial untuk rangkaian Input Port. Lihat Gambar 5.11. MREQ di-OR-kan dengan RD
menjadi MEMRD (Memory Read) dan dapat digunakan untuk menghubungi RAM ataupun
ROM MREQ digabung dengan WR melalui operasi OR menghasilkan sinyal aktif MEMWR
(Memory Write) dan digunakan khusus untuk menulis data ke RAM. Untuk VO, JORO
di-OR-kan dengan RD menjadi 1ORD (Input Read) dan berfungsi untuk mengaktifkan
pembacaan data dari Input Port, sedangkan bila di- gabung dengan WR, sinyal
aktif yang dihasilkan adalah 10WR (Output Write) yang berguna untuk penulisan
data ke Output Port.
INTERFACING CPU Z80 KE
PERANTI I/O
Pada dasarnya,
menghubungkan bus dari CPU Z80 ke rangkaian Input atau Output Port identik
dengan cara menghubungkan CPU ke memori. Perlu diperhatikan bahwa instruksi
yang dapat digunakan untuk menghubungi Input/Output Port, yaitu instruksi IN
dan OUT, hanya dapat dikenakan pada alamat-alamat dari 0000H sampai 00FFH atau
00H sampai FFH atau hanya pada alamat 8-bit yang Low-Order.
Jika dinyatakan
dalam lebar jalur alamat maka hanya perlu mem- perhatikan A7 sampai A0 untuk
konfigurasi logika yang mungkin '0' atau '1'. Adapun A15 sampai A8 harus selalu
'0'. Hal ini berpengaruh langsung ter- hadap bentuk rangkaian dekoder yang
dibutuhkan untuk memisahkan alamat kerja Input/Output Port. A15 sampai A8 dapat
langsung diabaikan, tanpa menghubungkannya ke rangkaian I/O Port, dan cukup
memperhatikan A7 sampai A0.
Membangun peranti
Input/Output dengan menggunakan seluruh IC TTL akan jumlah komponen yang
relatif banyak. Dalam aplikasi banyak hal, perancang lebih suka menggunakan IC
khusus yang dapat dihubungkan dengan berbagai CPU sebagai Parallel Input/Output
Port. Salah satunya adalah Programmable Peripheral Interface (PPI) 8255. Selain
itu juga terdapat Z80PIO yang khusus dalam lingkung perancangan sistem berbasis
CPU Z80.
PROGRAMABLE PERIPHERAL
INTERFACE (PPI) 8255
PPI 8255 adalah
suatu peranti paralel input/output dalam satu chip serbaguna yang fungsi
input/outputnya dapat diprogram. Awalnya, PPI 8255 dibuat oleh Intel untuk
digunakan bersama dengan mikroprosesor buatan Intel. Namun, karena komponen ini
berbasis standard bus dan tata cara perangkaiannya relatif mudah maka
kebanyakan tipe mikroprosesor lain juga dapat me-manfaatkannya.
PPI 8255 memunyai 24
pin I/O yang terdiri dari 3 port, yaitu Port A (8 pin), Port B (8 pin) dan Port
C (8 pin). Port A dan Port C pada PC7 sampai PC4 tergabung dalam Grup Kontrol
A, sedangkan Port B dan Port C dari PC3 sampai PCO tergabung dalam Grup Kontrol
B. 8255 ini dapat dioperasikan dalam 3 mode, yaitu Mode 0, Model dan Mode 2.
Deskripsi tentang fungsi pin 8255 adalah sebagai berikut:
PA7-PAO : Terminal I/O Port A
PB7-PB0 :
Terminal I/O Port B
PC7-PC0 :
Terminal I/O Port C.
CS : Chip Select (input, active low)
Bila
CS diset '0' maka PPI sedang dihubungi CPU
RD : Read (input, active low).
Bila RD diset '0', artinya CPU sedang membaca data dari 8255.
WR : Write (input, active low).
WR
diset '0' menunjukkan bahwa CPU sedang menulis data ke 8255
A0 & AI : Port Select 0 dan Port Select 1
(input).
Kombinasi A0 dan Al digunakan untuk memilih port mana
yang bekerja.
+5V & GND : Terminal Tegangan Supply & Ground.