ELEKTRONIKA DIGITAL PIC 8259
Pendahuluan Ada 2 cara melayani sinyal trigger dari piranti luar: Interupsi Polling Interupsi: subrutin dijalankan jika ada trigger dari luar piranti Polling: μp menanyakan pada piranti-piranti luar, secara bergilir, apakah ada tugas.
Interupsi Pengertian: Sinyal yang digunakan untuk meminta perhatian CPU Jenis Interupt berdasarkan sumbernya Software: (contoh Int 65h) Digunakan untuk melayani kondisi tertentu pada software yang sedang berjalan. Hardware: Digunakan untuk melayani trigger/interupsi dari luar.
Interupt Vektor Setiap interupt memiliki nomor yang unik yang disebut dengan interupt vector Setiap interupt vektor memiliki entri pada interrupt vector table. interrupt vector table table yang mengandung segment:offset addresses yang menunjukkan rutin yang menangani masing2 interupt Rutin ini disebut interrupt handler atau interrupt service routines (ISR) 1024 bytes dari memory (addresses 00000 003FF) merupakan interupt vektor table Masing-masing 256 vectors membutuhkan 4 byte 2 segment, 2 offset
Mekanisme interupsi pada x86 Perangkat membangkitkan sinyal interupt Perangkat memberikan nomor interupt vektor pada data bus Prosesor menghentikan aktivitasnya (jika IF=1) dan menjalankan ISR sesuai dengan Interupt vektor yang ada pada data bus Saat menjalankan ISR, sinyal INTA dikirimkan
Interupt Vektor pada x86 INT (Hex) IRQ Common Uses 00-01 Exception Handlers - 02 Non-Maskable IRQ Non-Maskable IRQ (Parity Errors) 03-07 Exception Handlers - 08 Hardware IRQ0 System Timer 09 Hardware IRQ1 Keyboard 0A Hardware IRQ2 Redirected 0B Hardware IRQ3 Serial Comms. COM2/COM4 0C Hardware IRQ4 Serial Comms. COM1/COM3 0D Hardware IRQ5 Reserved/Sound Card 0E Hardware IRQ6 Floppy Disk Controller 0F Hardware IRQ7 Parallel Comms. 10-6F Software Interrupts - 70 Hardware IRQ8 Real Time Clock 71 Hardware IRQ9 Redirected IRQ2 72 Hardware IRQ10 Reserved 73 Hardware IRQ11 Reserved 74 Hardware IRQ12 PS/2 Mouse 75 Hardware IRQ13 Math's Co-Processor 76 Hardware IRQ14 Hard Disk Drive 77 Hardware IRQ15 Reserved 78 - FF Software Interrupts -
Interupt Proses interupsi bisa menjadi komplex
PIC 8259 PIC mampu menerima input interupt HW PIC 8259 mempunyai 8 masukan interupsi yaitu IRQ0 sampai dengan IRQ7 Fungsi PIC 8259 : Untuk menerima dan mengatur interupsi yang muncul dan mengarahkannya pada sistem penerima interupt. Mempercepat respon sistem (fungsi interupt)
Elektronika Digital Nov 2005 9 Fungsi pin-pin PIC 8259: D7 D0 : data bus RD : Proses pembacaan, Aktif low WR : Proses penulisan, aktif low A0 : Pengalamatan 0 : Address 20h 1 : Address 21h CS : chip select CAS0-CAS2: perluasan PIC
Blok Diagram PIC 8259
Interupsi pada x86 Umumnya komputer saat ini memiliki 15 interupt Komputer moderen saat ini sudah mengintegrasikan IC 8259 ke dalam southbridge mainboard komputer. PIC 8259 bisa di cascade dan slave master sehingga dapat memberikan input interupt sebanyak 64 buah
PIC Bertingkat (Cascade)
PIC 8259 mempunyai 4 register: Interrupt Request Register (IRR): 8-bit data internal yang setiap bitnya mewakili masing-masing IRQ#. Priority Resolver (PR): Menentukan prioritas bagi setiap bit IRQ yang ada. In Service Register (ISR): Menyimpan data IRQ# yang sedang dilayani permintaannya. Interrupt Mask Register (IMR): Menyimpan data IRQ# yang di-mask (non-aktif) dan unmask (aktif)
Inisialisasi Initialization Control Word (ICW): menyiapkan piranti agar dapat menerima satu interrupt atau lebih.
Inisialisasi
ICW1 A0 D7 D6 D5 D4 D3 D2 D1 D0 0 A7 A6 A5 1 LTIM ADI SNGL IC4 A0 : alamat internal tujuan pengiriman ICW1 D7-D5: untuk sistem µp 8085 D4 : harus diberi logika 1 D3 = 0 : melayani permintaan interrupt jika IRQ# berubah dari 0 ke 1. D2 = 0: karena tidak dipakai di µp 8088 D1 : 0 : bila beroperai dalam perluasan D1 = 1 : karena µp 8088 perlu ICW4
ICW2: Nomor tipe interupsi, misalkan. ICW2 diberi nomor tipe 8h maka IRQ0 = 8h dan lalu IRQ1=9h dan seterusnya. A0 D7 D6 D5 D4 D3 D2 D1 D0 1 T7 T6 T5 T4 T3 T2 T1 T0 A0 =1, alamat ICW2. D7 D0 : diisi data tipe interupsi IRQ0.
Inisialisasi ICW1, ICW2
ICW3 & ICW4 ICW3: Mode kaskade, kalau PIC dalam operasi single, ICW3 ini tidak digunakan. ICW4 A0 D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 0 SFNM BUF M/S AEOI μpm
ICW3, ICW4
OCW OCW (Operation Command Word) Untuk memasking dan prioritas IRQ ~CS A0 OCW 0 0 OCW2, OCW3 0 1 OCW1 1 X 8259 tidak digunakan
OCW1, OCW2
OCW3
KONTROLER INTERUPSI DAPAT DIPROGRAM 8259A Berfungsi untuk menambah delapan interrupt yang prioritasnya dienkode dan divektorkan pada mikroprosesor. Pin-pin pada PIC 8259A : D7 D0 : hubungan data bidireksional IR7 IR0 : input permintaan interrupt (interrupt request) ~WR : input write ~RD : input read INT : output interrupt ~INTA : Interrupt Acknowledge A0 : input alamat A0 ~CS : chip select SP/~EN : Slave program / enable buffer CAS2-CAS0 : jalur cascade
Menghubungkan satu 8259A
Cascading 8259A
Contoh Pemrograman 8259A PIC 8259A yang dihubungkan ke programmable communications controller 16550. Kedua alat ini diantarmukakan ke bus data mikroprosesor 8088.