12.2 HARDWARE INTERRUPTS

 


 1. Pendahuluan [kembali]

Pada sistem komputer, prosesor tidak hanya berinteraksi dengan instruksi dari perangkat lunak, tetapi juga harus mampu merespons sinyal dari perangkat keras eksternal. Respons cepat terhadap perangkat keras inilah yang difasilitasi oleh hardware interrupts. Pada keluarga mikropresesor Intel, hardware interrupt menjadi mekanisme penting agar prosesor dapat segera menangani peristiwa yang terjadi di luar CPU, misalnya penekanan tombol keyboard, sinyal timer, atau permintaan I/O dari perangkat eksternal. Tanpa hardware interrupt, prosesor harus melakukan polling secara terus-menerus yang sangat tidak efisien. Oleh karena itu, hardware interrupt dirancang agar sistem lebih responsif, hemat waktu, serta mampu mengatur prioritas berbagai perangkat melalui pengendali khusus seperti Programmable Interrupt Controller (PIC 8259A).

 2. Tujuan [kembali]

  • Menjelaskan konsep dasar hardware interrupt pada mikropresesor Intel.

  • Menguraikan peran pin INTR (Interrupt Request) dan NMI (Non-Maskable Interrupt) dalam mekanisme interrupt.

  • Memahami cara kerja sinyal INTA (Interrupt Acknowledge) sebagai pengakuan permintaan interrupt.

  • Memberikan gambaran bagaimana perangkat keras eksternal, seperti keyboard melalui 82C55, menggunakan hardware interrupt untuk berkomunikasi dengan prosesor.

 3. Alat dan Bahan [kembali]

a. Gerbang OR


         OR adalah suatu gerbang yang bertujuan untuk menghasilkan logika output berlogika 0. Apabila semua inputnya berlogika 0 dan sebaliknya output berlogika 1 apabila salah satu, sebagian, atau seluruhnya berlogika 1.

         Konfigurasi :
         Spesifikasi :
         Tegangan Suplai : 5 hingga 7V
         Tegangan Input : 5 hingga 7V
         Kisaran suhu pengoperasian : -55 sampai 125 derajat celcius
         Tersedia dalam paket SOIC 14-pin


b. Flip Flop (74LS73)

   IC 74LS73 adalah dual JK flip-flop tipe negatif-edge triggered dengan clear (reset) asynchronous aktif rendah. Artinya:

  • IC ini berisi 2 buah JK flip-flop.
  • Output flip-flop akan berubah hanya saat tepi turun (falling edge) dari sinyal clock.
  • Ketika J = K = 1, maka flip-flop akan toggle (berubah ke keadaan berlawanan).
  • Pin Clear dapat digunakan untuk mengatur ulang output ke 0 tanpa menunggu clock.

    Fungsi utama: digunakan untuk menyimpan 1 bit data, membentuk counter, register, pembagi frekuensi, dll.

    Flip Flop

    c. Gerbang NOT

           Gerbang NOT atau disebut rangkaian inventer (pembalik). Tugas rangkaian NOT (pembalik) ialah memberikan suatu keluaran yang berbanding terbalik dengan masukan. 





    d. Gerbang AND

           AND adalah suatu gerbang yang bertujuan untuk menghasilkan logika output berlogika 0 apabila salah satu, sebagian atau semua inputnya berlogika 0 dan sebaliknya output berlogika 1 apabila semua inputnya berlogika 1. Adapun simbol beberapa tipe gerbang AND seperti gambar :


            IC 7411 berisi tiga gerbang AND dengan tiga input dari keluarga Transistor Transistor Logic
            Konfiugurasi pin:
                - Vcc : Kaki 14
                - GND : Kaki 7
                - Input : Kaki 1, 2, 3, 4, 5, 9,10,11 dan 13
                - Output : Kaki 6, 8,  dan 12

     4. Dasar Teori [kembali]

    Mikroprosesor memiliki dua masukan interupsi perangkat keras: non-maskable interrupt (NMI) dan interrupt request (INTR).

    • Setiap kali masukan NMI diaktifkan, akan terjadi interupsi tipe 2, karena NMI didekodekan secara internal.

    • Masukan INTR harus didekodekan secara eksternal untuk memilih vektor. Vektor interupsi apa pun dapat dipilih untuk pin INTR, tetapi biasanya digunakan nomor interupsi antara 20H hingga FFH. Intel telah memesan interupsi 00H sampai 1FH untuk keperluan internal dan ekspansi di masa depan.

    Selain itu, terdapat sinyal khusus berupa pin interupsi pada mikroprosesor, tetapi sifatnya output, yang digunakan sebagai respons terhadap masukan INTR untuk mengirimkan nomor tipe vektor ke jalur data D7–D0. Gambar 12–5 menunjukkan tiga koneksi interupsi pengguna pada mikroprosesor.

    NMI merupakan input edge-triggered yang meminta interupsi pada transisi positif (0 ke 1). Setelah transisi positif, pin NMI harus tetap pada logika 1 sampai dikenali oleh mikroprosesor. Sebelum transisi positif ini dapat dikenali, pin NMI harus berada pada logika 0 setidaknya selama dua periode clock.

    Masukan NMI sering digunakan untuk mendeteksi error paritas dan kesalahan sistem besar, seperti kegagalan daya (power failure). Kegagalan daya mudah dideteksi dengan memantau jalur listrik AC dan menyebabkan interupsi NMI ketika listrik AC terputus. Sebagai respons, mikroprosesor menyimpan semua isi register internal ke memori cadangan berbaterai atau EEPROM. Gambar 12–6 menunjukkan rangkaian deteksi kegagalan daya yang memberikan logika 1 ke input NMI saat daya AC terputus.


    Dalam rangkaian ini, optical isolator digunakan untuk memberikan isolasi dari jalur listrik AC. Output dari isolator dibentuk oleh Schmitt-trigger inverter yang menghasilkan pulsa 60 Hz untuk masukan trigger pada 74LS122 retriggerable monostable multivibrator. Nilai R dan C dipilih sehingga 74LS122 memiliki lebar pulsa aktif 33 ms atau setara dengan 2 periode input AC. Karena 74LS122 bersifat retriggerable, selama daya AC masih tersedia, output Q tetap pada logika 1 dan pada logika 0.

    Jika daya AC gagal, 74LS122 tidak lagi menerima pulsa trigger dari 74ALS14, sehingga Q berubah ke logika 0 dan menjadi logika 1, yang kemudian memicu interupsi mikroprosesor melalui pin NMI. Prosedur layanan interupsi (tidak ditampilkan di sini) akan menyimpan semua isi register internal dan data lain ke memori yang ditenagai baterai. Sistem ini mengasumsikan bahwa catu daya sistem memiliki kapasitor filter yang cukup besar untuk menyediakan energi minimal 75 ms setelah listrik AC padam.


    Gambar 12–7 menunjukkan rangkaian yang memasok daya ke memori setelah daya DC gagal. Dalam rangkaian tersebut, dioda digunakan untuk mengalihkan tegangan dari catu daya DC ke baterai. Dioda yang digunakan adalah dioda silikon standar, karena suplai daya untuk memori dinaikkan dari +5.0 V menjadi +5.7 V. Sebuah resistor dipakai untuk melakukan trickle charge ke baterai, yang bisa berupa NiCAD, lithium, atau gel cell.

    Saat daya DC gagal, baterai memberikan tegangan yang lebih rendah ke pin VCC pada perangkat memori. Sebagian besar perangkat memori dapat mempertahankan data meskipun VCC serendah 1.5 V, sehingga tegangan baterai tidak harus +5.0 V. Pin ditarik ke VCC selama listrik padam, sehingga tidak ada data yang akan ditulis ke memori.

    INTR AND INTA

    Masukan interupsi INTR bersifat level-sensitive, sehingga harus tetap berada pada logika 1 sampai dikenali oleh mikroprosesor. Sinyal ini diaktifkan oleh peristiwa eksternal dan akan dihapus di dalam prosedur layanan interupsi, kemudian secara otomatis diaktifkan kembali oleh instruksi IRET (atau IRETD di protected mode dan IRETQ di 64-bit mode). Mikroprosesor merespons INTR dengan menghasilkan pulsa untuk memasukkan nomor tipe vektor interupsi ke jalur data D7–D0. Sistem menghasilkan dua pulsa untuk memastikan nomor vektor diterima dengan benar. Sebuah rangkaian sederhana dapat digunakan untuk memberikan nomor vektor, misalnya FFH, sebagai respons terhadap sinyal INTR.

    Resistor digunakan untuk menarik jalur data (D0–D7) ke logika tinggi sehingga mikroprosesor otomatis membaca vektor FFH saat INTR aktif, cara termurah untuk mengimplementasikan INTR. Alternatifnya, three-state buffer (74ALS244) dapat digunakan untuk memasukkan nomor vektor seperti 80H, yang dapat diubah dengan DIP switch. Jika diperlukan masukan edge-triggered, INTR bisa dikonversi menggunakan D-type flip-flop, dengan clock sebagai masukan edge-triggered dan clear untuk menghapus permintaan interupsi. Sinyal RESET awal memastikan tidak ada interupsi saat sistem baru dinyalakan.

    The 82C55 Keyboard Interrupt


    Contoh keyboard pada Bab 11 menjelaskan cara kerja masukan INTR dan interrupt. Gambar 12–12 memperlihatkan hubungan 82C55 dengan mikroprosesor dan keyboard, serta penggunaan buffer 74ALS244 untuk memberikan nomor vektor interrupt 40H saat terjadi interrupt dari keyboard.

    82C55 didekode pada alamat I/O 0500H, 0502H, 0504H, dan 0506H dengan PLD. Perangkat ini dioperasikan dalam mode 1 (strobed input mode), sehingga setiap kali tombol ditekan, keluaran INTR (PC3) menjadi logika 1 dan meminta interrupt ke mikroprosesor. Sinyal ini tetap aktif sampai data ASCII dibaca dari port A. Dengan kata lain, setiap tombol yang ditekan akan menghasilkan permintaan interrupt tipe 40H.

    Sinyal dari keyboard membuat data tersimpan di port A sekaligus mengaktifkan INTR. Program contoh (12–5) menunjukkan prosedur layanan interrupt untuk keyboard. Penting untuk menyimpan semua register yang dipakai sebelum digunakan dalam interrupt. Pada inisialisasi, FIFO diatur agar pointer sama, pin INTR diaktifkan lewat bit INTE dalam 82C55, dan mode operasi diprogram.

    Prosedur ini singkat karena mikroprosesor sudah mengetahui bahwa data keyboard tersedia saat prosedur dipanggil. Data dari keyboard dibaca lalu disimpan ke dalam FIFO (first-in, first-out) buffer atau antrian. Sebagian besar antarmuka keyboard memiliki FIFO dengan kedalaman minimal 16 byte. Pada contoh ini, FIFO berukuran 256 byte, yang lebih dari cukup untuk sebuah antarmuka keyboard. Perhatikan bagaimana instruksi INC BYTE PTR CX:INP digunakan untuk menambah nilai penunjuk input (input pointer) sebesar 1 dan memastikan bahwa alamatnya selalu menunjuk ke data di dalam antrian.

    Prosedur ini pertama-tama memeriksa apakah FIFO penuh. Kondisi penuh ditandai ketika penunjuk input (INP) berada satu byte di bawah penunjuk output (OUTP). Jika FIFO penuh, maka interrupt akan dinonaktifkan dengan perintah bit set/reset pada 82C55, lalu dilakukan return from interrupt. Jika FIFO tidak penuh, data dari port A akan dimasukkan, kemudian penunjuk input dinaikkan sebelum kembali dari interrupt.

    Contoh 12–6 menunjukkan prosedur untuk mengambil data dari FIFO. Prosedur ini pertama-tama memeriksa apakah FIFO kosong dengan cara membandingkan dua pointer. Jika kedua pointer sama, berarti FIFO kosong, sehingga perangkat lunak akan berhenti di loop EMPTY yang terus-menerus menguji pointer.

    Loop EMPTY ini akan terputus jika ada interrupt dari keyboard, yang menyimpan data ke dalam FIFO sehingga kondisi tidak lagi kosong. Setelah itu, prosedur mengembalikan data karakter yang disimpan di register AH.


     5. Percobaan [kembali]

        a) Prosedur[kembali]

        b) Rangkaian Simulasi dan Prinsip Kerja [kembali]

        c) Video Simulasi [kembali]


    6. Download File [kembali]









    Tidak ada komentar:

    Posting Komentar

                                                BAHAN PRESENTASI UNTUK MATA KULIAH  ELEKTRONIKA 2024   Nama : Muhammad Fadhil Dwi Kesuma NIM : 2...