HARDWARE
One of the design goals was to make it cheap and
easy to connect a 8032 microprocessor to an ethernet network, while not
incuring the overhead for the microprocessor to check every packet that
is sent over the network. Because of these design rules, I chose to use
a NEx000 card. These are cheap, have onboard memory for packets that are
received, and only generate an interrupt when a packet is required to be
processed by the host. By default, unless promisceous mode is configured,
the microprocessor will only be interrupted during the following conditions:
- Packet is sent to the MAC address of the NIC
- A broadcast packet is received.
A broadcast packet is a packet that all nodes or devices on the network
receive and must examine. An example of a broadcast packet is an ARP (Address
Resolution Request) packet. It is sent to all devices on the network such
that the sending device can locate a computer that is using a particular
IP address. All devices then process this packet. If the IP address contained
within the packet is the same as the IP address of the device, then a response
is returned back to the originating device, otherwise the packet is dropped.
The current version of the code does not put the NIC into "promiscious"
mode. Doing this will increase the overhead of the microprocessor as it
will be retreiving packets continuiously on a busy network and interrupting
the application program.
The requirement for the card to be used with this tutorial are as follows:
- Be National Semiconductor 8390 or compatible chipset
- ISA bus interface (8 or 16 bit)
- Must be able to be used in a NON-PNP (Plug aNd Play) mode
- Be configurable to have its IO address on a page boundary, ie. 0300h
Connecting the card to the computer requires two steps:
- Make the interface board
- Configure the NIC
MAKE THE INTERFACE BOARD
The schmatic to connect the card to the microprocessor is shown to
the right. I used IO Address 0300h for my DLink DE220 ISA network card.
Tie the resistor that connects to the transistors base (T1) to the IRQ line
configured on the ISA card. You could use a jumper bank to select different
IRQ pins for different NICs. The most common IRQ lines are 5 and 10. The
SELX pin connects to an Address Decoder (active low) pin. My address decoder
splits the XDATA address space into 8k blocks. For information on setting
up the card without an address decoder, look at Werner
Cornelius's page. His page shows connection data for various scenarios,
and where I found the information required to connect the card to the microprocessor.
| NOTE: The power consumption of the NIC is high.
It adds around 500mA to the current draw. For testing purposes, I chose
to use a switch mode power supply from a computer. |
CONFIGURE THE NIC
Once the hardware has been produced, the NIC needs to be configured for
the microprocessor. How this is done depends upon the type of NIC that you
have. The card may have jumpers to select the IO adrdess and IRQ settings.
Most cards use an EEPROM to store the settings. In this case, you need to
contact the manufacturer to obtain the software to configure the card.
Put the card into a PC computer, and use the manufacturers software to
configure the card to the settings as per your interface board. If you are
unsure of who the manufacturer of the card is, and you have Windows 95 or
98, use the Add new hardware option in the control panel to locate the NIC
for you. It may be able to tell you who the manufacturer of the card is.
It will also tell you what IO address and IRQ the card is configured for. |
Home |