Elektronika Digital · PDF fileInterupt Vektor •Setiap interupt memiliki nomor yang unik...

Post on 31-Jan-2018

252 views 0 download

Transcript of Elektronika Digital · PDF fileInterupt Vektor •Setiap interupt memiliki nomor yang unik...

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)

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

Elektronika Digital Nov 2005 9

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 : 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

A0 D7 D6 D5 D4 D3 D2 D1 D0

0 A7 A6 A5 1 LTIM ADI SNGL IC4

ICW2:

• Nomor tipe interupsi, misalkan. ICW2 diberi nomor tipe 8h

maka IRQ0 = 8h dan lalu IRQ1=9h dan seterusnya.

• A0 =1, alamat ICW2.

• D7 – D0 : diisi data tipe interupsi IRQ0.

A0 D7 D6 D5 D4 D3 D2 D1 D0

1 T7 T6 T5 T4 T3 T2 T1 T0

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.