4-Level FSK Modem Data Pump
Page 38 of 50
MX929B PRELIMINARY INFORMATION
START
( IRQ line goes low )
Value of µC variable 'STATE' on entry to IRQ routine
and corresponding MX929B's actions:
0 : Frame Sync has been recognized
and Station ID block received,
read out data and load RHB task.
1 : Header block has been received,
read out data and load RILB task.
Read Status Register
2 : Intermediate block has been received,
read out data and load RILB task.
No
RETURN
( Not MX929B IRQ )
IRQ bit = 1 ?
Yes
3 : Last block has been received,
read out data and finish.
No
No
BFREE bit = 1 ?
Yes
E
E
DIBOVF bit = 0 ?
Yes
No
'STATE' = 2 ?
Yes
No
CRCERR bit = 0 ?
Read 12 Intermediate Block
bytes from the Data Buffer
then write a RILB task to
the Command Register
E
Yes
Read 3 Station ID bytes
from the Data Buffer
Yes
'STATE' = 0 ?
No
then write a RHB task to
the Command Register
Decrement µC variable
'IBLOCKS'
Read 10 Header block bytes
from the Data Buffer then
write a RILB task to the
Command Register
Yes
'STATE' = 1 ?
No
Set µC variable 'IBLOCKS'
to the number of Intermediate
Blocks to be received
Yes
Read 8 Last Block data bytes
'STATE' = 3 ?
No
from the Data Buffer.
No
'IBLOCKS' = 0 ?
E
Yes
Increment µC variable
'STATE'
Set µC variable 'STATE' to 3
Set µC variable 'STATE' to 9
RETURN
( Error )
RETURN
RETURN
Figure 22: Rx Interrupt Service routine
Note: This routine assumes that the number of Intermediate blocks in the Frame is contained within the
Header Block Data.
©2001 MX-COM, INC.
www.mxcom.com Tel: 800 638 5577 336 744 5050 Fax: 336 744 5054
Doc. # 20480171.003
4800 Bethania Station Road, Winston-Salem, NC 27105-1201 USA
All trademarks and service marks are held by their respective companies.