Tuesday, April 04, 2006

Peripheral cards associated with EISA and MCA are normally self configuring.
The major problem arises with cards for the ISA bus (found in the majority of AT type computers and clones). This is because the cards are configured by the user (using either jumpers or a software program).
Users make mistakes, and often configure cards so that they conflict with other cards already present in this system. This causes intermittent or immediate non-operation of the computer system.
For instance, a networking card that is allocated the same resources as a serial communications program may function perfectly, except when the user is logged into the network and then tries to use the serial port, at which time the machine will crash.
Resources Used By Peripheral CardsWe have already mentioned that resources used by ISA peripheral cards must not be shared (two cards cannot use the same). So what are the resources used by peripheral cards? Essentially, there are FOUR resources which are user configurable for peripheral cards. Some cards may only use one (a port location(s)), others may require all four.
The FOUR resources are
Input/Output Port AddressIn the PC, the port numbers used by peripheral cards range from 200h to 3FFh. The I/O port address is used by the PC to communicate with the peripheral card (issue commands, read responses, and perform data transfer).
Interrupt Request LineThe interrupt request line is used by the card to signal the processor that the card requires the processors attention. ISA peripherals cannot share the same interrupt request line, and IRQ2 in AT/2386/486 computers should not be used (there are others which must also not be used). IRQ2 to IRQ15 appear on the ISA bus.
Direct Memory Request LineThe DMA request line is used to transfer data between the peripheral card and the computers memory at high speed. DMA channel 0 cannot be used, as it is reserved for system use.
Buffer Memory AddressSome peripheral cards prefer to use memory space rather than an I/O port address to transfer data to the processor. This memory space occupied by the peripheral card appears in the main system memory RAM area available to the processor (usually between C0000h to EFFFFh). Care must be taken to ensure this space is not being used for other purposes (like shadow RAM, EMS for windows, VBGA BIOS).
This space is also sometimes used by a remote boot Eprom, which is used for diskless workstations which download the operating system from the server at boot time.
So How Do Peripheral Cards Work?Peripheral cards require a software driver to function. This software driver provides the interface between the card and the operating system, making the services provided by the card available to the user.
The software driver is normally configured to match the resource settings of the card. This is done by a configuration utility, and stored either in the executable file, or a separate file (like .ini or .cfg).
It is obviously important for the configuration settings in the software driver to match those configured on the peripheral card.
The resources used by the card are either set by jumpers (or slide switches). New cards can also be configured using a software program, rather than by manually setting jumpers on the card. Where cards are software configurable, the cards retain their configuration when the power is turned off.
The software driver provides the follow functions
initialization routine
interrupt service routine
procedures to transmit and receive data
procedures for status, configuration and control
The basic operation looks something like,
card receives data
card generates interrupt by asserting interrupt request line
processor responds to interrupt request and jumps to service routine
service routine instructs processor to read data from port location
interrupt service routine releases processor to continue previous work
The major problem is assigning values of these resources which are already being used by either the system or another peripheral card. It is therefore handy to know what the resources are which are used by common peripheral devices. The following tables identify these.
Small networks are often called Local Area Networks [LAN]. A LAN is a network allowing easy access to other computers or peripherals. The typical characteristics of a LAN are,
physically limited (< 2km)
high bandwidth (> 1mbps)
inexpensive cable media (coax or twisted pair)
data and hardware sharing between users
owned by the user

BASIC NETWORK COMPONENTSThere are a number of components which are used to build networks. An understanding of these is essential in order to support networks. This is a discussion on some of the elements which make up a network [LAN].
Network Adapter CardsA network adapter card plugs into the workstation, providing the connection to the network. Adapter cards come from many different manufacturers, and support a wide variety of cable media and bus types [ISA, MCA, EISA, PCI, PCMCIA]. For an explanation about various bus types, click here.
New cards are software configurable, using a software program to configure the resources used by the card. Other cards are PNP [plug and Play], which automatically configure their resources when installed in the computer, simplifying installation. With an operating system like Windows 95, auto-detection of new hardware makes network connections simple and quick.
On power-up, the computer detects the new network card, assigns the correct resources to it, and then installs the networking software required for connection to the network. All the user need do is assign the network details like computer name.
For Ethernet or 10BaseT cards, each card is identified by a twelve digit hexadecimal number. This number uniquely identifies the computer. These network card numbers are used in the Medium Access [MAC] Layer to identify the destination for the data. When talking to another computer, the data you send to that computer is prefixed with the number of the card you are sending the data to.
This allows intermediate devices in the network to decide in which direction the data should go, in order to transport the data to its correct destination.
A typical adapter card looks like,