Stucture ARCNET_DCB

Description:
Describes the settings of the ARCNET controller such as

Declaration:

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;

Members:

Member(s) Description
b_node_id identifies the own node id. The node id of a node must be unique throughout the whole network.
Note: By passive initialization (b_init_behaviour=eARC_INIT_PASSIVE) is also possible to use an ID from other node. In this case controller intialized as shadow node.
z_ckp1
z_ckp2
z_ckp3
Busspeed clock divider. That is use to set network speed from 156,25Kbit/s to 2,5Mbit/s.
  • z_ckp1=0, z_ckp2=0, z_ckp3=0 - 2,5Mbit/s
  • z_ckp1=1, z_ckp2=0, z_ckp3=0 - 1,25Mbit/s
  • z_ckp1=0, z_ckp2=1, z_ckp3=0 - 625Kbit/s
  • z_ckp1=1, z_ckp2=1, z_ckp3=0 - 312,5Kbit/s
  • z_ckp1=0, z_ckp2=0, z_ckp3=1 - 156,25Kbit/s
The busspeed above 2,5Mbit/s is described by ARCNET_EXTND. These setting are only used for products that based on 20020 and compatible controllers. For product with 90C66 controller, these settings are ignored.
For SMSC ARCNET controllers corresponds to CKP bits in register SETUP1
z_et1
z_et2
z_et3
Define the extended timeout. Typical setting for 2.5Mbps are z_et1=1,z_et2=1 and z_et3=0.
Note: The extended timeout should be set equal in all nodes of the net.

For SMSC ARCNET controllers corresponds to ET1,2 bit in register CONFIG and bit 5 in SETUP1
z_fournaks 20020 and compatibles:
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 is set.
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 Define the controllers behaviour in case of if no token is seen or no activity is detected.
  • eARC_INIT_BREAK - the controller will not join the net and put into reset state, if no ARCNET token was not seen.
  • 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.
  • eARC_INIT_PASSIVE - controller initialized with with inactive transmitter and is not included in token passing. But at the same time it is able to receive the broadcast packets and targeted packets as shadow node.
    Note: The transmitter could be enabled any time with IOCTL_FARC_ARC_TRANSMITTER_CTRL
z_p1mode
z_backplane
Must be set accordingly to the used interface:
  • K(KOAX) - z_p1mode=0, z_backplane=0
  • LWLSM - z_p1mode=1, z_backplane=1
  • LWLSMA - z_p1mode=1, z_backplane=1
  • LWLST - z_p1mode=1, z_backplane=1
  • LWLTOS - z_p1mode=1, z_backplane=1
  • R(RS485) - z_p1mode=1, z_backplane=1
  • RS485AC - z_p1mode=1, z_backplane=1
  • TWP - z_p1mode=0, z_backplane=0
Note: settings are valid only for SOHARD standard products

For SMSC ARCNET controllers corresponds to P1MODE bit in register SETUP1 and BACKPLANE bit in CONFIG register

For more information on the above mentioned settings, refer to the ARCNET-controllers datasheets, that are available from SMSC (www.smsc.com).

Notes:

1) It is strongly not recommended to use ET3 setting as it behaviour was not specified by SMSC.

2) Be aware about consequencies of the forced intialization (b_init_behaviour=eARC_INIT_FORCED). If speed settings of the controller do not match the speed of the network, then controller will fail to detect a token and will repeatedly generate reconfiguration bursts. These permanent reconfiguration bursts will block data transfer in whole network

Requirements:

passive initialization mode (b_init_behaviour=eARC_INIT_PASSIVE) is supported only since SH ARC-USB driver v4.4.

See also:
DeviceIoControl()
ARCNET_EXTND
IOCTL_FARC_INIT
IOCTL_FARC_EXTND_FUNCTIONS
IOCTL_FARC_GET_USEDDCB
IOCTL_FARC_ARC_TRANSMITTER_CTRL

Back to Programming Guide