English
Language : 

COM20051I Datasheet, PDF (60/74 Pages) SMSC Corporation – Integrated Microcontroller and ARCNET (ANSI 878.1) Interface
USING ARCNET DIAGNOSTICS TO OPTIMIZE YOUR SYSTEM
EXcessive Negative ACKnowledgement (EXNACK) Loops
Under certain conditions (node failure for example), a particular node's receiver may not become available. This will
result in a NACK to FBE response each time the transmitter attempts to transmit a message. This can continue
endlessly without CPU intervention and degrade network performance. In order to handle such failures, the
COM20051I incorporates an EXNACK interrupt that will signal the CPU that it has made a specified number of Free
Buffer requests which have not been acknowledged. The limit is specified by the 4NACKS bit of the Setup register of
the ARCNET core. The default value is 128 re-tries but can be reduced to four by setting the 4NACKS bit. Once the
limit is reached, an interrupt is generated by the ARCNET core. Note that FBEs will be issued until the CPU takes
appropriate action by either aborting the transmission or continuing to retry.
The EXNACK (EXcessive Negative ACKnowledge) Interrupt handler is a simple procedure. For most applications,
the Interrupt handler will abort the transmission by issuing a Disable Transmitter command. A Clear Flags command
must be issued to release the interrupt and clear the EXNACK flag. Note that housekeeping should be done to
signify to external procedures that the transmission was aborted and is still not pending. Figure 22 shows a typical
flowchart of a EXNACK ISR.
Generating Network Maps
Most applications will require a table of existing nodes to be stored somewhere in the system for system
administration and maintainence (it is usually the master node). The DUPID, TENTID, and New Next ID features are
used to generate the Network
Map. The map is generated by synchronizing the node to the token rotation time using the DUPID feature. Whenever
a node is part of the network the DUPID bit will set when the node's receiver detects its own transmit activity in
response to receipt of the token. Reading the Diagnostic Status register resets the DUPID bit. Resetting the bit and
polling until the DUPID is set will synchronize the node the token rotation time. At this time a node ID value is
programmed into the TENTID register. Wait for the Token or the Recon bits to be set and clear Tent-ID bit. Then
wait again for the Tent-ID bit to be set during one token rotation time. This process should continure until all node ID
values have been accounted for. There is one case in which the TENTID does not function. The TENTID detector
cannot detect the node ID to which the node is passing the token. This is because the ARCNET core operates in a
half-duplex mode thus blocking the recevier while it is transmitting the token. After compiling a node ID table using
the TENTID feature, the Next ID register can be read to find out the missing ID value.
In order to keep the map updated, the New Next ID feature can be used to indicate changes in the network. The New
Next ID feature will interrupt the processor any time the Next ID register is updated. This occurs whenever a node
drops (causing a mini-recon) or when a node joins the network (causing a full recon). Whenever the Next ID interrupt
is generated, a message should be sent to the Master node identifying a change in the network. The Master node
can then update the network map accordingly.
Network Mapping While Off-Line
The previous mapping algorithm described a fast method of building a network map while on-line (being an active
part of the network). Often it is desirable to build a map while off-line. A similar algorithm is used, but instead of using
the TENTID feature the DUPID feature is used and the new node IDs are programmed into the node ID register.
Since the node is not an active part of the network, there is no reliable method of initially timing the token rotation. In
order to find an existing ID to time the rotation, an 840ms timer is used. At the end of the 840ms, the DUPID is
checked. If it is set then the node ID value exists and can be used as a fake ID (remember the node is not on the
network). That first ID value remains in the node ID register and the above algorithm is used to determine the
remainder of the ID values.
SMSC DS – COM20051I
Page 60
Rev. 03/27/2000