DS2152
31 of 97
5 STATUS AND INFORMATION REGISTERS
There is a set of nine registers that contain information on the current real-time status of the DS2152:
Status Register 1 (SR1), Status Register 2 (SR2), Receive Information Registers 1 to 3
(RIR1/RIR2/RIR3), and a set of four registers for the on-board HDLC and BOC controller for the FDL.
The specific details on the four registers pertaining to the FDL are covered in Section
12.1, but they
operate the same as the other status registers in the DS2152, described below.
When a particular event has occurred (or is occurring), the appropriate bit in one of these nine registers is
set to 1. All the bits in SR1, SR2, RIR1, RIR2, and RIR3 registers operate in a latched fashion. This
means that if an event or an alarm occurs and a bit is set to 1 in any of the registers, it remains set until the
user reads that bit. The bit is cleared when it is read and it is not set again until the event has occurred
again (or in the case of the RBL, RYEL, LRCL, and RLOS alarms, the bit remains set if the alarm is still
present). The bits in the four FDL status registers that are not latched are listed in Section
12.1.The user will always precede a read of any of the nine registers with a write. The byte written to the
register will inform the DS2152 which bits the user wishes to read and have cleared. The user will write a
byte to one of these registers, with a 1 in the bit positions he or she wishes to read and a 0 in the bit
positions he or she does not wish to obtain the latest information on. When a 1 is written to a bit location,
the read register will be updated with the latest information. When a 0 is written to a bit position, the read
register will not be updated and the previous value will be held. A write to the status and information
registers will be immediately followed by a read of the same register. The read result should be logically
ANDed with the mask byte that was just written, and this value should be written back into the same
register to ensure that bit does indeed clear. This second write step is necessary because the alarms and
events in the status registers occur asynchronously in respect to their access via the parallel port. This
write-read-write scheme allows an external microcontroller or microprocessor to individually poll certain
bits without disturbing the other bits in the register. This operation is key in controlling the DS2152 with
higher-order software languages.
The SR1, SR2, and FDLS registers have the unique ability to initiate a hardware interrupt via the INT
output pin. Each of the alarms and events in the SR1, SR2, and FDLS can be either masked or unmasked
from the interrupt pin via the Interrupt Mask Register 1 (IMR1), Interrupt Mask Register 2 (IMR2), and
FDL Interrupt Mask Register (FIMR) respectively. The FIMR register is covered in Section
12.1.The interrupts caused by alarms in SR1 (namely RYEL, LRCL, RBL, and RLOS) act differently than the
interrupts caused by events in SR1 and SR2 (namely LUP, LDN, LOTC, RSLIP, RMF, TMF, SEC,
RFDL, TFDL, RMTCH, RAF, and RSC) and FIMR. The alarm caused interrupts will force the INT pin
low whenever the alarm changes state (i.e., the alarm goes active or inactive according to the set/clear
criteria in Table 5-2). The INT pin will be allowed to return high (if no other interrupts are present) when the user reads the alarm bit that caused the interrupt to occur even if the alarm is still present.
The event caused interrupts will force the INT pin low when the event occurs. The INT pin will be
allowed to return high (if no other interrupts are present) when the user reads the event bit that caused the
interrupt to occur.