ARC Control FAQs

The BIOS or the OS will assign the PCI20 one level-triggered interrupt and 16 bytes of I/O space. The system will also assign a 128-byte block of memory and an extra 128-byte block of I/O space — both for the purpose of controlling the PCI20. These 128-byte spaces are not used for ARCNET operations. In some systems Device Manager will report these 128-byte spaces, but they must not be altered nor accessed by the user.

The COM20020 registers occupy the first 8 bytes of the 16-bit I/O space. The registers of the COM20020 are defined in this document.

The bytes at offset 8 and offset 9 are identical, each containing the value of our onboard dipswitch.

Example: If the PCI20 is assigned an I/O base address of 0x1000, the COM20020 configuration register would be located at 0x1006 and our dipswitch could be read at either 0x1008 or 0x1009.

For further help, look at the sample "C" language source code for accessing the COM20020. It is downloadable from here.

All of our cards need 16 consecutive addresses available.

To use PacketView with the PCM20, copy all of the files form the PacketView disk onto one directory. In that directory create a DOS batch file with the following two lines:

com20020 /A:26 /p:300 /h:7
pv

Where the number following /A: indicates the desired PCM20 node ID. The number following /p: indicates the I/O base address of the PCM20. The number following the /h: indicates the interrupt used by the PCM20.

The PCM20 I/O base address and interrupt can be found in the Windows Device Manager.

(Start->Settings->Control Panel->System->Device Manager->PCM20->PCM20->Resources).

You can add a shortcut to this batch file on your Windows desktop.

The power supply of this computer provides -12 V, +12 V, +5 V, and +3.2 V — but not -5 V. Standard Contemporary Controls ARCNET cards require -5 V, but a version of this card is available which does not require -5 V. For ARCNET functionality in this computer, request a -12 V card instead of the standard -5 V card.

Though the boards are made with the same COM20020 chip they use different drivers. If you had a special driver written for the PCX20, you would need to talk to the designer to see if changes are required. Please note for the PCI20 you would need a PCI slot, not the traditional ISA slot like the PCX20.

If ARNET is old then Ethernet is ancient. Both ARCNET and Ethernet were developed in the 1970s and both have evolved since then. The basic opeation of Ethernet has not changed form the 10 Mbps version. It has simply been scaled to 100 Mbps and 1000 Mbps. The same has happened to ARCNET although in a much less dramatic fashion. Its basic operation is unchanged in the 5 and 10 Mbps versions. However, newer ARNET controller chips (200XX family) have many enhanced software features over the original design yet can still communicate with the first ARCNET chip made. That is not true with Ethernet's evolution. However, both technologies have proven their worth as evidenced by their longevity.

In order to make the same calculations at different data rates you need to know the equations of the timers used to implement the ARCNET lnk layer protocol. The timer equations are discussed in The Extension article (Summer 1999, Volume 1 Issue 2). This article is available at here.

In a raw ARCNET frame no system code is sent in the frame. A system code identifies the higher layer protocol that will act upon the frame similar in operation to the Ethertype used in Ethernet frames. The ANSI/ATA 878.1 standard requires a one byte system code to be included in the frame. System code assignements are uniquely assigned and managed by the ARCNET Trade Association and are used to identify important protocol informatoin such as the IP protocol (D4, hex). Simpler systems that will remain private networks may elect not to support the system code and instead opt for raw frames.

No, they are not. At one time the only available ARCNET controller chip was the COM90C26 from either SMSC, UMC, Silcom or NCR, however, NCR corporation also made versions with enhanced features. The NCR90C98, NCR90C126 and NCR90C198 would still communcicate with other ARCNET chips but they had enhanced software features. SMSC produced the COM90C65 and COM90C66 which had a better interface to the ISA bus but remained code compatible with the COM90C26. Their COM200XX, which has a microcontroller bus interface, is not code compatile with the COM90C26/65/66 but has several new features and the capability of driving EIA-485 networks. All these chicps have a default mode that will allow the devices to all share the same token-passing network but they may require a different software driver in order to ooperate. Therefore, it is important to know which ARCNET controller chip is being used so that the proper software driver can be found.

Raw ARCNET packets may be exchanged by computers running Windows Millennium (ME). For information about Contemporary Controls' Null Stack drivers which perform this function, read Technical Note 2 here.

For those who want to use a protocol stack for ARCNET communications, Contemporary Controls has an NDIS driver — but it supports only TCP/IP. Although not available online, it may be obtained by submitting a request to: techsupport@ccontrols.com

The COM20020 registers on the PCI20 are arranged the same as on our PCX20 and PCM20 products. The PCI20 utilizes one memory space and two I/O spaces. The memory space is for the PCI configuration registers. This is usually filled in by the BIOS or operating system and should not be modified directly by the driver. The large I/O space (larger than 16 bytes) is another PCI configuration space. The 16-byte I/O space contains the eight COM20020 registers starting at the base address of this I/O space. The node ID dipswitch is located at the base address +8 and again at base address +9.

Another issue is the interrupts. PCI devices utilize shareable level-triggered interrupts. The PCX20 uses an edge-triggered interrupt that is non-shareable. This difference may require a PCI20 driver to be modified if originally written for a PCX20.

We do provide some drivers for our PCI20 products. To access them, click here.

A 345-kB PDF document of relevant information is available here.

The PC/104 specification outlines key locations for connector positions B10 and C19 (see Appendix B of the PC/104 specification version 2.3). This requires that these connector pins be removed and their corresponding sockets be blocked. It would be ideal if everyone followed the specification because it prevents mis-alignment when plugging modules together however, as you have probably discovered, not everyone does. The plugs that we install can be removed by pulling them out of the connector socket. Usually something sharp like a pin or an Exacto knife can be used for this task. The missing pins are electrically isolated (no connect) from the module so the brak in continuity of the PC/104 connector bus is of no consequence.

Our PC10420, PCI20, PCI20U and PCX20 ARCNET interface adapters work under QNX 4.x. The driver to use is "net.arc20". This driver is included with QNX 4.x and information about using it is available at: www.qnx.com/developers/docs/qnx_4.25_docs/qnx4/utils/n/netarc20.htm

A special ARCNET driver was written to support certain Corman ARCNET cards under QNX 2.x, but these cards are no longer supported by Corman.

To date, no ARCNET driver has been written for versions of QNX later than 4.x.