
ISAC-SX
PEB 3086
Description of Functional Blocks
Data Sheet
138
2003-01-30
microcontroller as master. The control of the data transfer between the CPU and the
ISAC-SX is handled via interrupts (ISAC-SX
SX).
There are three different interrupt indications in the ISTAx registers concerned with the
reception of data:
–
RPF
(
R
eceive
P
ool
F
ull) interrupt, indicating that a data block of the selected length
(EXMx.RFBS) can be read from RFIFOx. The message which is currently received
exceeds the block size so further blocks will be received to complete the message.
–
RME
(
R
eceive
M
essage
E
nd) interrupt, indicating that the reception of one message
is completed, i.e. either
a short message is received
(message length
the defined block size (EXMx.RFBS)) or
the last part of a long message is received
(message length
the defined block size (EXMx.RFBS))
and is stored in the RFIFOx.
–
RFO
(
R
eceive
F
rame
O
verflow) interrupt, indicating that a complete frame could not
be stored in RFIFOx and is therefore lost as the RFIFOx is occupied. This occurs if
the host fails to respond quickly enough to RPF/RME interrupts since previous data
was not read by the host.
There are two control commands that are used with the reception of data:
–
RMC
(
R
eceive
M
essage
C
omplete) command, telling the ISAC-SX that a data block
has been read from the RFIFOx and the corresponding FIFO space can be released
for new receive data.
–
RRES
(
R
eceiver
R
eset) command, resetting the HDLC receiver and clearing the
receive FIFO of any data (e.g. used before start of reception). It has to be used after
a change of the message transfer mode. Pending interrupt indications of the receiver
are not cleared by RRES, but have to be cleared by reading these interrupts.
Note: The significant interrupts and commands are underlined as only these are
commonly used during a normal reception sequence.
Host) and commands (Host
ISAC-
The following description of the receive FIFO operation is illustrated in
Figure 72
for a
RFIFOx block size (threshold) of 16 and 32 bytes.
The RFIFOx requests service from the microcontroller by setting a bit in the ISTAx
register, which causes an interrupt (RPF, RME, RFO). The microcontroller then reads
status information (RBCHx,RBCLx), data from the RFIFOx and then may change the
receive FIFO block size (EXMx.RFBS). A block transfer is completed by the
microcontroller via a receive message complete (CMDRx.RMC) command. This causes
the space of the transferred bytes being released for new data and in case the frame was
complete (RME) the reset of the receive byte counter RBC (RBCHx,RBCLx)
1)
.
1)
If RMC is omitted, then no new interrupt can be generated.