ARCNET_DCB
typedef struct s_ARCNET_DCB {
unsigned char
b_node_id;
unsigned char
z_et_1;
unsigned char
z_et_2;
unsigned char
z_et_3;
unsigned char
z_ckp_1;
unsigned char
z_ckp_2;
unsigned char
z_ckp_3;
unsigned char
z_backplane;
unsigned char
z_p1mode;
unsigned char
z_four_naks;
unsigned char
b_reserved1[2]; // Do NOT use or modify!!
unsigned char
b_init_behaviour;
unsigned char
b_reserved2[3]; // Do NOT use or modify!!
} ARCNET_DCB;
b_node_id:
identifies the own node. The node-id of a node must be unique throughout
the whole net.
z_ckp1, z_ckp2, z_ckp3:
Busspeed is set according to these items (i.e. when using a 20020-compatible
controller, 2.5 Mbps means all items are set to 0). These items are used
only for 20020 and compatibles. In a 90C66-driver, these items are ignored.
z_et1, z_et2, z_et3:
set the extended timeout. The extended timeout should be set equal
in all nodes of the net. Usually z_et1 and z_et2 are set in a 2.5Mbps-Net
to 1. z_et3 should in most cases be 0.
z_fournaks:
if set to 1, the controller tries a maximum of 4 times to send a packet
to another node, that responds with NAK (=“no free buffer to receive packet“).
Otherwise the controller tries a maximum of 128 times, before the EXCNAK-condition
(only 20020 and compatibles) is set.
This behaviour is only valid for the 20020 and compatibles.
In case of a 90C66/90C165 and compatibles, the driver terminates retransmitting
because of NAKs from the receiving station by a worst case timeout (appr.
2.4 sec. if z_fournaks is set, otherwise appr. 2 min !)
b_init_behaviour:
is responsible for the controllers behaviour in case of if no token
is seen or no activity is detected. If b_init_behaviour is set to eARC_INIT_FORCED,
the controller connects to the network, regardless if a token is detected
or not. If the controller does not receive a token, it will repeatedly
generate reconfiguration bursts after reaching the reconfig-timeout, until
another node joins the network.
Note, that in this case the controller can destroy
a running net, if the baudrate of the own node does not match the baudrate
of the net!.
However, in some cases it can be neccessary,
to do the init with eARC_INIT_FORCED, i.e. if the node is the first node
on the net.
If b_init_behaviour is set to eARC_INIT_BREAK, the controller will
not join the net, if no token is seen or if no activity is detected. The
controllers state will be set to the resetstate.
z_p1mode, z_backplane:
should be set to 0, when using coax interface (if using coax with backplane,
the card may be damaged!). Otherwise they should be set accordingly to
the used interface.
The items in the struct ARCNET_DCB correspond with the bits in the controllers registers (except b_init_behaviour). For more information on the above mentioned items, refer to the ARCNET-controllers datasheets, that are available from SMSC (www.smsc.com). You can also order data sheets from SOHARD. It is strongly recommended, that you are familiar with ARCNET and the used ARCNET-controller.