420 likes | 740 Views
EE-2623 Mikroprosesor & Antarmuka. Materi 6 Interfacing I/O Team Dosen 2006. Interfacing I/O. Secara umum interface I/O sama dengan interface ke memori, hanya ada sedikit perbedaan dalam hal:
E N D
EE-2623Mikroprosesor & Antarmuka Materi 6 Interfacing I/O Team Dosen 2006
Interfacing I/O • Secara umum interface I/O sama dengan interface ke memori, hanya ada sedikit perbedaan dalam hal: • I/O umumnya hanya mempunyai alamat yang jauh lebih sedikit (dibawah 100) dari memori (kB) saluran alamat yang masuk ke Address Decoder akan lebih banyak • Beberapa prosesor mempunyai peta I/O terpisah dari peta memori (termasuk i8088 dan turunannya)
Peta Memori dan I/O intel 8088 FFFF I/O 64K 0000
Interface Memori 8 IC RAM s / d AD s / d RAM1 RAM8 Latch s / d AD0 AD7 D7
Contoh soal: • Gambarkan address decoder untuk LPT1 (378h) dan LPT2(278h) (/cs) di prosesor i8088 Lakukan dengan bertahap (mulai dari pembuatan tabel sampai pembuatan rangkaian)
Jawaban soal Pemetaan LPT1 dan LPT2 ke ruang alamat i8088 64kB (A0-A15) (LPT1) /cs = /A15./A14./A13./A12./A11./A10.A9.A8./A7.A6.A5.A4.A3./A2./A1./A0.IO (LPT1) /cs = /A15./A14./A13./A12./A11./A10.A9./A8./A7.A6.A5.A4.A3./A2./A1./A0.IO
Address Decoder LPT1 (378h) Controller LPT1 8 D0 – D7
Contoh soal: • Gambarkan address decoder untuk joystick (100h sd 107h) /cs di prosesor i8088 Lakukan dengan bertahap (mulai dari pembuatan tabel sampai pembuatan rangkaian)
Konsep I/O Interfacing • Sebagian besar dari I/O berinterface serial • Dibutuhkan ‘glue chip’ (controller) sebagai perantara antara I/O dan uP uP Controller AD mouse Serial Paralel
Interface I/O Umum • Tidak berbeda jauh dari memori • Menggunakan latch LS373 • Menggunakan tranceiver/buffer, untuk I/O menjadi sangat penting karena kec. I/O << kec. Memori • Alamat dari A0 sd A15 • Menggunakan juga address decoder (biasanya jumlah kaki ke AD (An+1 sd A15; n= 1,2,3) > jumlah kaki ke I/O (A0 sd An)) • Khusus • I/O bisa meminta layanan dari prosesor, sementara memori tidak bisa memerlukan mekanisme permintaan khusus (interupt)
2 Metoda Akses Dasar • Polling • Devais I/O menjadi slave dari prosesor, I/O berkerja hanya atas permintaan prosesor • Mekanisme: prosesor akan menanyakan (polling) ke setiap I/O apakah perlu dilayani (ada data) • Baik untuk jumlah I/O yang sedikit • Selama melakukan polling, prosesor tidak bisa melakukan pekerjaan lain
Interupt • Prosesor terus bekerja sampai ada permintaan (interupt) dari I/O, jika ada permintaan prosesor menunda pekerjaan tersebut untuk melakukan pelayanan atas permintaan • Cocok untuk jumlah I/O yang banyak • Prosesor bisa mengerjakan pekerjaan lain selama tidak ada interupt • Membutuhkan sistem yang lebih rumit (implementasinya lebih sukar, melibatkan hardware dan software)
uP Interupt Alamat + AD 3 uP I/O 1 4 Data Polling interupt 2 Alamat + AD 1 I/O 3 atau 2 Data 2 atau 3
1. Parallel Peripheral Interface i8255 • I8255 merupakan periferal pasangan dari i8088
i8255 • Punya 3-4 alamat (8bit) yang bisa diakses baca dan tulis • 3 port (A,B,C) 8 bit kearah I/O CWR PortC R /WR D7 PortB R /RD PortA R D0 /CS 8 bit A0 A1
Programable • Program = menulis suatu kode ke register control (kendali) • Diprogram 24 bit input 1 00 1 1 0 1 1 (9B) • 24 bit output 1 00 0 0 0 0 0 (80) • MOV AL, 10000000b • MOV DX,303 alamat control register • OUT DX, AL
Mode • Mode 0 • Tanpa handshaking antara PPI dan devais yang terhubung tidak ada negosiasi/persetujuan/tanda (PPI akan menulis/membaca data tanpa devais luar siap) • Pilihan • 24 bit input • 24 bit output • 12 input dan 12(atau 8) output • 12 output dan 12(atau 8) input • 8 bit input dan 16(atau 8) bit output • 8 bit output dan 16(atau 8) bit input
` • Mode 1 Input • Single handshaking • 1. STB • 2. data (devais PPI) • 3. IBF • 4. INTR (memberi tahu uP ada data) • 5. RD • 6. data (ppi uP) uP PPI devais STB IBF RD INTR
Mode 1 Output 1. WR 2. data (uP PPI) 3. OBF 4. data (PPI devais) 5. ACK 6. INTR (memberi tahu uP, PPI siap menerima data) uP PPI devais ACK OBF WR INTR
Mode 0 input atau output saja Mode 1 input atau output sajadengan handshaking Mode 2 input dan output dengan handshaking
Contoh soal • (a) Temukanalamat-alamat port dan control: • (b) Tentukan program CWR, jika • PA =out, • PB=in, • PC0 – PC3 =in, • dan PC4 - PC7=out. • (c) Buat program 8255 untukmendapat data dari port B dankirimkanke port A. Juga data dari port C Low dikirimke CPU. CH
Jawaban • /CS= /(A2.A3.A4.A5.A6./A7) 0111 11XX port A 0111 1100 = 7C port B 0111 1101 = 7D port C 0111 1110 = 7E CWR 0111 1111 = 7F • Program CWR jika PA=out,PB=in,PCL=in,PCH=out CWR = 10000011 (83h) mov DX,xx7F mov AL,1000 0011 out DX,AL • Program (setelah CWR selesai di init CWR= 1001 x001) mov DX,xx7C in AL,DX mov DX,xx7D out DX,AL mov DX,xx7E in AL,DX and AL,OF
BSR (bit set/reset) • Sifat khas dari port C adalah bisa diprogram bit demi bit. Mode BSR bisa membuat setiap bit di PC0 sampai PC7 sebagai ‘0’ atau ‘1’.
Contoh penggunaan • Program PC4 digambar ini untuk menghasilkan sebuah pulsa 50 ms dengan duty cycle 50%.
Jawab: • 8255 diprogram di mode BSR, • bit D7 dari control word harus low. • Membuat PC4 high, control word nya adalah ‘0xxx1001". • Membuat PC4 low , control word nya adalah “0xxx1000". • X adalah "don't care" dan umumnya di set ‘0’. MOV AL.00001001B ;muat byte control (PC4=1) OUT 93H,AL ;set PC4 high, kirim ke CWR CALL DELAY ;waktu delay 0.5 * 50 ms MOV AL,00001 OOOB ;muat byte control (PC4=0) OUT 93,AL ;set PC4 low, kirim ke CWR CALL DELAY ;waktu delay 0.5 * 50 ms
Mode 2: I/O bidirectional dengan handshaking • Untuk mentransfer data baik masuk mapun keluar melalui port yang sama dengan kemampuan handshaking, port A digunakan di mode 2. • Sinyal handshaking untuk port A disediakan dengan memilih bit di port C. • Di mode 2 selain port A, dapat digunakan port B di mode 0 or 1.
Mode 2 and Mode 1 output PC3 PA7-PA0 PC7 PC6 PC4 PC5 PB7-0B1 PC1 PC2 PC0 INTRA OBFA ACKA STBA IBFA OBFB ACKB INTRB Control word 1 1 x x x 1 0 x RD WR
Mode 2 and Mode 1 Input PC3 PA7-PA0 PC7 PC6 PC4 PC5 PB7-0B1 PC1 PC2 PC0 INTRA OBFA ACKA STBA IBFA IBFB STBB INTRB Control word 1 1 x x x 1 1 x RD WR