4
FN2784.6
September 8, 2015
Functional Description
Interrupts in Microcomputer Systems
Microcomputer system design requires that I/O devices such
as keyboards, displays, sensors and other components
receive servicing in an efficient manner so that large
amounts of the total system tasks can be assumed by the
microcomputer with little or no effect on throughput.
The most common method of servicing such devices is the
Polled approach. This is where the processor must test each
device in sequence and in effect “ask” each one if it needs
servicing. It is easy to see that a large portion of the main
program is looping through this continuous polling cycle and
that such a method would have a serious, detrimental effect
on system throughput, thus, limiting the tasks that could be
assumed by the microcomputer and reducing the cost
effectiveness of using such devices.
Pin Description
SYMBOL TYPE DESCRIPTION
V
CC
I V
CC
: The +5V power supply pin. A 0.1F capacitor between pins 28 and 14 is recommended for decoupling.
GND I GROUND
CS
I CHIP SELECT: A low on this pin enables RD and WR communications between the CPU and the 82C59A. INTA
functions are independent of CS
.
WR I WRITE: A low on this pin when CS is low enables the 82C59A to accept command words from the CPU.
RD
I READ: A low on this pin when CS is low enables the 82C59A to release status onto the data bus for the CPU.
D7 - D0 I/O BIDIRECTIONAL DATA BUS: Control, status, and interrupt-vector information is transferred via this bus.
CAS0 - CAS2 I/O CASCADE LINES: The CAS lines form a private 82C59A bus to control a multiple 82C59A structure. These
pins are outputs for a master 82C59A and inputs for a slave 82C59A.
SP
/EN I/O SLAVE PROGRAM/ENABLE BUFFER: This is a dual function pin. When in the Buffered Mode it can be used
as an output to control buffer transceivers (EN
). When not in the Buffered Mode it is used as an input to
designate a master (SP
= 1) or slave (SP = 0).
INT O INTERRUPT: This pin goes high whenever a valid interrupt request is asserted. It is used to interrupt the CPU,
thus, it is connected to the CPU's interrupt pin.
IR0 - IR7 I INTERRUPT REQUESTS: Asynchronous inputs. An interrupt request is executed by raising an IR input (low to
high), and holding it high until it is acknowledged (Edge Triggered Mode), or just by a high level on an IR input
(Level Triggered Mode). Internal pull-up resistors are implemented on IR0 - 7.
INTA
I INTERRUPT ACKNOWLEDGE: This pin is used to enable 82C59A interrupt-vector data onto the data bus by
a sequence of interrupt acknowledge pulses issued by the CPU.
A0 I ADDRESS LINE: This pin acts in conjunction with the CS
, WR, and RD pins. It is used by the 82C59A to
decipher various Command Words the CPU writes and status the CPU wishes to read. It is typically connected
to the CPU A0 address line (A1 for 80C86/88/286).
ROM
I/O (N)
I/O (2)
I/O (1)RAM
CPU
CPU - DRIVEN
MULTIPLEXER
FIGURE 2. POLLED METHOD
82C59A82C59A
5
FN2784.6
September 8, 2015
A more desirable method would be one that would allow the
microprocessor to be executing its main program and only
stop to service peripheral devices when it is told to do so by
the device itself. In effect, the method would provide an
external asynchronous input that would inform the processor
that it should complete whatever instruction that is currently
being executed and fetch a new routine that will service the
requesting device. Once this servicing is complete, however,
the processor would resume exactly where it left off.
This is the Interrupt-driven method. It is easy to see that
system throughput would drastically increase, and thus,
more tasks could be assumed by the microcomputer to
further enhance its cost effectiveness.
The Programmable Interrupt Controller (PlC) functions as an
overall manager in an Interrupt-Driven system. It accepts
requests from the peripheral equipment, determines which of
the incoming requests is of the highest importance (priority),
ascertains whether the incoming request has a higher
priority value than the level currently being serviced, and
issues an interrupt to the CPU based on this determination.
Each peripheral device or structure usually has a special
program or “routine” that is associated with its specific
functional or operational requirements; this is referred to as a
“service routine”. The PlC, after issuing an interrupt to the
CPU, must somehow input information into the CPU that can
“point” the Program Counter to the service routine
associated with the requesting device. This “pointer” is an
address in a vectoring table and will often be referred to, in
this document, as vectoring data.
82C59A Functional Description
The 82C59A is a device specifically designed for use in real
time, interrupt driven microcomputer systems. It manages
eight levels of requests and has built-in features for
expandability to other 82C59As (up to 64 levels). It is
programmed by system software as an I/O peripheral. A
selection of priority modes is available to the programmer so
that the manner in which the requests are processed by the
82C59A can be configured to match system requirements.
The priority modes can be changed or reconfigured
dynamically at any time during main program operation. This
means that the complete interrupt structure can be defined
as required, based on the total system environment.
ROM
I/O (2)
RAM
CPU
INT
I/O (1)
I/O (N)
PIC
FIGURE 3. INTERRUPT METHOD
IR0
IR1
IR2
CASCADE
BUFFER
COMPARATOR
READ/
WRITE
LOGIC
DATA
BUS
BUFFER
IN
SERVICE
REG
(ISR)
PRIORITY
RESOLVER
INTERRUPT MASK REG
(IMR)
INTERRUPT
REQUEST
REG
(IRR)
CONTROL LOGIC
INTINTA
IR3
IR4
IR5
IR6
IR7
CAS 0
CAS 1
CAS 2
RD
WR
A
0
SP/EN
CS
D
7
- D
0
INTERNAL BUS
FIGURE 4. 82C59A FUNCTIONAL DIAGRAM
82C59A82C59A
6
FN2784.6
September 8, 2015
Interrupt Request Register (IRR) and In-Service Register
(ISR)
The interrupts at the IR input lines are handled by two registers
in cascade, the Interrupt Request Register (lRR) and the In-
Service Register (lSR). The IRR is used to indicate all the
interrupt levels which are requesting service, and the ISR is
used to store all the interrupt levels which are currently being
serviced.
Priority Resolver
This logic block determines the priorities of the bits set in the
lRR. The highest priority is selected and strobed into the
corresponding bit of the lSR during the INTA
sequence.
Interrupt Mask Register (IMR)
The lMR stores the bits which disable the interrupt lines to be
masked. The IMR operates on the output of the IRR.
Masking of a higher priority input will not affect the interrupt
request lines of lower priority.
Interrupt (INT)
This output goes directly to the CPU interrupt input. The
VOH level on this line is designed to be fully compatible with
the 8080, 8085, 8086/88, 80C86/88, 80286, and 80C286
input levels.
Interrupt Acknowledge (INTA
)
INTA
pulses will cause the 82C59A to release vectoring
information onto the data bus. The format of this data
depends on the system mode (PM) of the 82C59A.
Data Bus Buffer
This 3-state, bidirectional 8-bit buffer is used to interface the
82C59A to the System Data Bus. Control words and status
information are transferred through the Data Bus Buffer.
Read/Write Control Logic
The function of this block is to accept output commands from
the CPU. It contains the Initialization Command Word (lCW)
registers and Operation Command Word (OCW) registers
which store the various control formats for device operation.
This function block also allows the status of the 82C59A to
be transferred onto the Data Bus.
Chip Select (CS
)
A LOW on this input enables the 82C59A. No reading or
writing of the device will occur unless the device is selected.
Write (WR
)
A LOW on this input enables the CPU to write control words
(lCWs and OCWs) to the 82C59A.
Read (RD
)
A LOW on this input enables the 82C59A to send the status
of the Interrupt Request Register (lRR), In-Service Register
(lSR), the Interrupt Mask Register (lMR), or the interrupt
level (in the poll mode) onto the Data Bus.
A0
This input signal is used in conjunction with WR
and RD
signals to write commands into the various command
registers, as well as to read the various status registers of
the chip. This line can be tied directly to one of the system
address lines.
The Cascade Buffer/Comparator
This function block stores and compares the IDs of all
82C59As used in the system. The associated three I/O pins
(CAS0 - 2) are outputs when the 82C59A is used as a
master and are inputs when the 82C59A is used as a slave.
As a master, the 82C59A sends the ID of the interrupting
slave device onto the CAS0 - 2 lines. The slave, thus
selected will send its preprogrammed subroutine address
onto the Data Bus during the next one or two consecutive
INTA
pulses. (See section “Cascading the 82C59A”.)
Interrupt Sequence
The powerful features of the 82C59A in a microcomputer
system are its programmability and the interrupt routine
addressing capability. The latter allows direct or indirect
jumping to the specified interrupt routine requested without
any polling of the interrupting devices. The normal sequence
of events during an interrupt depends on the type of CPU
being used.
82C59A82C59A

CP82C59AZ

Mfr. #:
Manufacturer:
Renesas / Intersil
Description:
Interface - Specialized W/ANNEAL PERIPH INT CNTRLR 5V 8MHZ COM
Lifecycle:
New from this manufacturer.
Delivery:
DHL FedEx Ups TNT EMS
Payment:
T/T Paypal Visa MoneyGram Western Union