|
Claims  |
|
|
What is claimed is:
1. A network communication device having plural different connectors, each
connectable to a network, said device being capable of automatically
selecting one of said different connectors for network communication,
comprising:
a selector responsive to a selection signal which selects one of the plural
different connectors in accordance with the selection signal;
a plurality of detectors, each detector associated with a corresponding
connector, and each of which detects whether the corresponding connector
is connected to the network before the network communication device
effects network communication over the corresponding connector;
a processor which executes a selection process by outputting a selection
signal so as to select, in turn, each of the plural different connectors
starting with a first connector, maintaining a state of the selection
signal in a case where the detector associated with the selected connector
indicates connection to the network, cycling to a next connector in a case
where the detector does not indicate connection to the network, and
repeating the selection process in a case where said processor has cycled
through all of said plural different connectors until it is determined
that one of the plural connectors is connected to the network.
2. A network communication device according to claim 1, wherein the
processor effects network communication over a selected connector after
the processor determines which connector is connected to the network.
3. A network communication device according to claim 1, wherein said plural
different connectors comprise at least an RJ-45 connector capable of
accepting a 10Base-T connection and a BNC connector capable of accepting a
10Base-2 connection.
4. A network communication device according to claim 3, wherein said
plurality of different detectors comprise at least a first detector for
detecting whether the RJ-45 connector is connected to the network and a
second detector for detecting whether the BNC connector is connected to
the network.
5. A network communication device according to claim 4, wherein said first
detector detects whether there is an electrical current at the RJ-45
connector.
6. A network communication device according to claim 5, further comprising
a first detection register which is set to a first state in a case where
said first detector detects an electrical current at the RJ-45 connector
and to a second state in a case where said first detector does not detect
an electrical current at the RJ-45 connector.
7. A network communication device according to claim 4, wherein said second
detector detects whether the BNC connector is improperly terminated.
8. A network communication device according to claim 7, further comprising
a second detection register which is set to a first state in a case where
said second detector detects that the BNC connector is not improperly
terminated and to a second state in a case where said second detector
detects that the BNC connector is improperly terminated.
9. A network communication device according to claim 4, further comprising:
a first detection register which is set to a first state in a case where
said first detector detects that the RJ-45 connector is connected to the
network and to a second state in a case where said first detector detects
that the RJ-45 connector is not connected to the network; and
a second detection register which is set to a first state in a case where
said second detector detects that the BNC connector is connected to the
network and to a second state in a case where said second detector detects
that the BNC connector is not connected to the network.
10. A network communication device according to claim 9, wherein said
processor executes the selection process by outputting a selection signal
so as to select the RJ-45 connector, reading said first detection
register, maintaining the state of the selection signal in a case where
said first detection register is in the first state, outputting a
selection signal so as to select the BNC connector in a case where said
first detection register is in the second state, reading said second
detection register, maintaining the state of the selection signal in a
case where said second detection register is in the first state and
repeating the selection process in a case where the second detection
register is in the second state.
11. A network communication device according to claim 10, wherein network
communications are transferred between said processor and the selected
connector.
12. A method for automatically selecting which connector among plural
different connectors on a network communication device is connected to a
network, comprising the steps of:
outputting a selection signal so as to select, in turn, each of the plural
different connectors starting with a first connector;
detecting whether each of the plural different connectors is connected to
the network using plural detectors, each of the plural detectors
corresponding to a respective one of the plural different connectors and
detecting whether the respective one of the plural different connectors is
connected to the network before the network communication device effects
network communication over the respective one of the plural different
connectors;
maintaining the state of the selection signal in a case where the detecting
step determines that the selected connector is connected to the network;
cycling to a next connector in a case where the detecting step determines
that the selected connector is not connected to the network; and
repeating said outputting, detecting, maintaining and cycling steps in a
case where said cycling step has cycled through all of said plural
different connectors until it is determined that one of the plural
connectors is connected to the network.
13. A method according to claim 11, further comprising the step of
effecting network communication over a selected connector after it is
determined which connector is connected to the network.
14. A method according to claim 12, wherein said plural different
connectors comprise at least an RJ-45 connector capable of accepting a
10Base-T connection and a BNC connector capable of accepting a 10Base-2
connection.
15. A method according to claim 14, further comprising the steps of:
determining whether the RJ-45 connector is connected to the network by
determining whether there is an electrical current at the RJ-45 connector;
and
determining whether the BNC connector is connected to the network by
determining whether the BNC connector is improperly terminated.
16. A method according to claim 15, further comprising the steps of:
setting a first detection register to a first state in a case where the
RJ-45 connector is connected to the network and to a second state in a
case where said first detector detects that the RJ-45 connector is not
connected to the network; and
setting a second detection register to a first state in a case where said
second detector detects that the BNC connector is connected to the network
and to a second state in a case where said second detector detects that
the BNC connector is not connected to the network.
17. A method according to claim 16, further comprising the step of:
transferring network communications between the selected connector and a
processor on the network communication device.
18. A network communication device having at least first and second
connectors, each connectable to a network, comprising:
a network controller connected to the first and second connectors and
including a selector responsive to a selection signal for selecting
between said first and second connectors, said network controller being
connected to a bus, and transferring network communications between said
bus and the selected one of said first and second connectors, said network
controller also including a first detector for detecting whether said
first connector is electrically connected to the network, a second
detector for detecting whether the second connector is connected to the
network and for outputting a jabber bit indicative of an improper
connection of the second connector, the first and second detectors
detecting connections of the first and second connectors, respectively,
before the network communication device effects network communication over
the first and second connectors, and a first register readable through the
bus and in which said network controller stores the jabber bit output by
said second detector;
a second register readable through the bus for storing a good-link bit
indicative of said first detector detecting that the first connector is
electrically connected to the network;
a control register writable through the bus for outputting a selection
signal in accordance with a select bit stored therein; and
a processor, connected to the bus, which sends and receives network
communication over the bus, and which executes a selection process by (1)
writing a select bit through the bus to the control register so as to
cause output of a selection signal which selects the first connector, (2)
reading the good-link bit through the bus from the second register, (3)
maintaining the state of the selection bit in the case where the good-link
bit indicates electrical connection to the network, (4) writing a select
bit through the bus to the control register so as to cause output of a
selection signal which selects the second connector in a case where the
good-link bit does not indicate electrical connection to the network, (5)
reading the jabber bit through the bus from the first register, (6)
maintaining the state of the select bit in a case where the jabber bit
does not indicate improper electrical termination of the second connector,
and (7) repeating the selection process in a case where the jabber bit
indicates improper electrical termination of the second connector and the
good-link bit does not indicate good electrical connection, the repeating
step repeating the selection process until it is determined that one of
the connectors is connected to the network.
19. A network communication device according to claim 1, wherein the
processor effects network communication over a selected connector after
the processor determines which connector is connected to the network.
20. A network communication device according to claim 18, wherein said
first connector is an RJ-45 connector capable of accepting a 10Base-T
connection and said second connector is a BNC connector capable of
accepting a 10Base-2 connection.
21. A network communication device according to claim 20, wherein said
processor, in executing the selection process, reads the good-link bit
through the bus from the second register a predetermined plurality of
times so as to cause a delay, and maintains the state of the selection bit
in a case where the good-link bit indicates electrical connection to the
network after any of the plurality of reads. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION
FIELD OF THE INVENTION
The present invention concerns a network communication device which has
multiple network connectors, and which can automatically detect which
connector is connected to the network. More particularly, the present
invention concerns a network communication device which senses which of
multiple connectors is connected to the network, and transfers network
communications to and from the network through that connector.
INCORPORATION BY REFERENCE
U.S. Pat. Serial No. 5,611,046, entitled "Method And Apparatus For
Interfacing A Peripheral To A Local Area Network", is hereby incorporated
by reference.
DESCRIPTION OF THE RELATED ART
Network communication devices generally provide several different types of
physical connections for connecting network cables to a LAN. For example,
a BNC connector may be provided for connection to a 10Base-2 coaxial
cable, while an RJ-45 connector may be provided for connection to 10Base-T
unshielded twisted pair (UTP) wire. Other physical connections, such as an
IBM data connector for a shielded twisted pair (STP) wire or an ST fiber
optic connector for a fiber optic cable, are also possible.
Typically, when a network communication device is connected to a LAN
through one of its several connectors, an individual establishing or
changing the connection with the LAN must not only insert the cable in the
proper connector, but must also physically change the position of a hard
switch, or "jumper", so that data is routed to and from the proper
connector.
Due to human error, however, it is possible for the individual to forget to
change the jumper, or to put the jumper in an improper state with respect
to the connection that has been established. If the jumper is in the wrong
state, of course, the network communication device will be unable to
communicate with the network, since it will be sending data to, and
attempting to retrieve data from, an open connector. A user trying to use
the device would then telephone a service person, who would come to the
location, spend time isolating the problem, and finally change the jumper
to its proper state. This results in an unacceptable waste of time,
manpower and computer resources.
SUMMARY OF THE INVENTION
The present invention overcomes these difficulties by providing a network
communication device which automatically senses which connector has been
connected to the LAN, and then routes data to and from that connector.
In one aspect of the present invention, a network communication device
having plural different connectors, each connectable to a network,
includes a selector, responsive to a selection signal, which selects one
of the plural connectors in accordance with the selection signal. A
plurality of detectors, each associated with a corresponding connector,
detect whether the corresponding connector is connected to the network. A
processor executes a selection process by outputting a selection signal so
as to select, in turn, each of the plural connectors, starting with a
first connector, maintaining the state of the selection signal in a case
where the detector associated with the selected connector indicates
connection to the network, cycling to a next connector in a case where the
detector does not indicate connection to the network, and repeating the
selection process in a case where the processor has cycled through all of
the connectors.
In a preferred embodiment of the present invention, an RJ-45 connector and
a BNC connector are coupled to a network controller. The network
controller includes a selector, responsive to a selection signal, which
selects between the two connectors, so that network communications can be
transferred between the selected connector and a processor. The network
controller includes a first detector which detects whether the RJ-45
connector is electrically connected to the network, and a register, which
the processor can read, which stores a "jabber" bit which indicates that
the BNC connector is improperly terminated. A second register, which the
processor can also read, stores a "good-link" bit which indicates that the
first detector has detected that the RJ-45 connector is electrically
connected to the network. A control register, to which the processor can
write, stores a select bit. The control register outputs the selection
signal in accordance with the select bit stored therein.
The processor executes a selection process by 1) writing a select bit to
the control register so as to cause output of a selection signal which
selects the RJ-45 connector, 2) reading the good-link bit from the second
register, 3) maintaining the state of the selection bit when the good-link
bit indicates electrical connection to the network, 4) writing a select
bit to the control register so as to cause output of a selection signal
which selects the BNC connector when the good-link bit does not indicate
electrical connection to the network, 5) reading the jabber bit from the
first register, 6) maintaining the state of the select bit when the jabber
bit does not indicate improper electrical termination of the second
connector, and 7) repeating the selection process when the jabber bit
indicates improper electrical termination of the second connector.
This brief summary has been provided so that the nature of the invention
may be understood quickly. A more complete understanding of the invention
can be obtained by reference to the following detailed description of the
preferred embodiment thereof in connection with the attached drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a diagram of a local area network and wide area network to which
a network board is coupled.
FIG. 2 is a cut-away perspective view of the network board fitted into a
Canon LBP 1260 laser printer.
FIG. 3 is a block diagram showing the network board coupled between a
printer and a local area network.
FIG. 4 is a diagram showing the physical layout of components on the
network board.
FIG. 5 is a drawing of a face plate for the network board.
FIG. 6 is a functional block diagram of the network board.
FIG. 7 is a diagram showing examples of several software modules that may
be stored in the flash EPROM.
FIG. 8 is a block diagram of an arrangement used to determine which
connector is connected to the network.
FIG. 9 is a flowchart showing how to detect which connector is connected to
the network.
FIG. 10 is a flow chart showing the operation of a PRETASK software module.
FIGS. 11(a) through 11(d) are diagrams showing possible relationships of
various network software modules.
FIG. 12 is a block diagram showing a PC connected to a Ethernet local area
network and a Token-ring local area network.
FIG. 13 is a diagram showing contents of a network information file block
used for storing configuration information.
FIG. 14 is a flowchart showing reprogramming of flash EPROM.
FIG. 15 is a block diagram of a memory arbitration device.
FIG. 16 is a block diagram of one preferred construction of a shared memory
arbiter in the arbitration device.
FIG. 17 is a diagram showing the timing of signals provided to the
arbitration device.
FIG. 18 is a diagram showing the configuration of shared memory.
FIG. 19 is a flowchart showing the operations involved in writing into
shared memory.
FIG. 20 is a flowchart showing operations involved in reading from shared
memory.
FIGS. 21(a) through 21(c) show various alternatives for configuring shared
memory.
FIG. 22 is a block diagram of a serial port.
FIGS. 23(a) and 24(a) are flowcharts showing operations involved in
receiving and sending serial communications over the serial port.
FIGS. 23(b) and 24(b) are diagrams showing the timing of signals in the
serial receive and send modes.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
In its most preferred form, the present invention is embodied in a network
board (or "NEB") which provides hardware, software and firmware solutions
for making a network peripheral, such as a printer, an intelligent,
interactive network member, capable not only of receiving and processing
data from the network, but also of transmitting to the network significant
amounts of data about the peripheral such as detailed status information,
operational parameters and the like. It is also possible to use the
invention in other networked peripherals such as scanning, facsimile,
copier, image processing and other such peripherals. Integration of such
hardware, software and firmware with the peripheral eliminates the need to
dedicate a personal computer to act as a peripheral server.
›Network Architecture!
FIG. 1 is a diagram showing the present invention incorporated into a
NEtwork Board (NEB) 101 coupled to a printer 102 having an open
architecture. NEB 101 is coupled to local area network (LAN) 100 through a
LAN interface, for example, an Ethernet interface 10Base-2 with a Coax
connector or 10Base-T with an RJ-45 connector.
Plural personal computers (PCs), such as PCs 103 and 104, are also
connected to LAN 100, and under control of the network operating system
these PCs are able to communicate with NEB 101. One of the PCs, such as PC
103, may be designated for use as the network administrator. A PC may have
a printer connected to it, such as printer 105 connected to PC 104.
Also connected to LAN 100 is file server 106 which manages access to files
stored on a large capacity (e.g., 10 gigabyte) network disk 107. A print
server 108 provides print services to printers 109 and 110 connected to
it, as well as to remote printers such as printer 105. Other unshown
peripherals may also be connected to LAN 100.
In more detail, the network depicted in FIG. 1 may utilize any network
software such as Novell or UNIX software in order to effect communication
among the various network members. The present embodiments will be
described with respect to a LAN utilizing Novell NetWare.RTM. software,
although any network software could be used. A detailed description of
this software package may be found in "NetWare.RTM. User's Guide" and
"NetWare.RTM. Supervisor's Guide", published by M&T Books, copyrighted
1990, incorporated herein by reference. See also the "NetWare.RTM. Printer
Server" by Novell, March 1991 edition, Novell Part No. 100-000892-001.
Briefly, file server 106 acts as a file manager, receiving, storing,
queuing, caching, and transmitting files of data between LAN members. For
example, data files created respectively at PCs 103 and 104 may be routed
to file server 106 which may order those data files and then transfer the
ordered data files to printer 109 upon command from print server 108.
PCs 103 and 104 may each comprise a standard PC capable of generating data
files, transmitting them onto LAN 100, receiving files from LAN 100, and
displaying and/or processing such files. However, while personal computer
equipment is illustrated in FIG. 1, other computer equipment may also be
included, as appropriate to the network software being executed. For
example, UNIX workstations may be included in the network when UNIX
software is used, and those workstations may be used in conjunction with
the illustrated PC's under appropriate circumstances.
Typically, a LAN such as LAN 100 services a fairly localized group of users
such as a group of users on one floor or contiguous floors in a building.
As users become more remote from one another, for example, in different
buildings or different states, a wide area network (WAN) may be created
which is essentially a collection of several LANs all connected by high
speed digital lines, such as high speed integrated services digital
network (ISDN) telephone lines. Thus, as shown in FIG. 1, LANs 100, 110
and 120 are connected to form a WAN via modulator/demodulator
(MODEM)/transponder 130 and backbone 140, which is simply an electrical
connection between several buses. Each LAN includes its own PCs, and each
ordinarily includes its own file server and print server, although that is
not necessarily the case.
Thus, as shown in FIG. 1, LAN 110 includes PCs 111 and 112, file server
113, network disk 114, print server 115 and printers 116 and 117. LAN 120,
on the other hand, includes only PCs 121 and 122. Via WAN connections,
equipment in any of LANs 100, 110 and 120 can access the capabilities of
equipment in any other of the LANs.
PC 104 may be embedded with an RPRINTER software program, and as such may
exert limited control over network peripherals. The RPRINTER program is an
MS-DOS terminate-and-stay-resident ("TSR") program which allows users to
share printer 105 connected to PC 104 while at the same time allowing PC
104 to execute other non-print applications. RPRINTER is a relatively
unintelligent program that does not have the ability to search printer
queues for work. RPRINTER gets its work from print server 108 running
elsewhere in the network. Because it communicates with the attached
printer over the printer's parallel port, PC 104 running RPRINTER is able
to obtain only limited status information from printer 105 and to return
that status information to print server 108 over LAN 100. From a control
standpoint, RPRINTER allows stopping of a print job (when, for example,
the printer is out of paper or off-line) and little more. Some printers
include RPRINTER features by offering internal or external circuit boards
that provide the same limited features of the RPRINTER TSR program running
in a personal computer.
Print server 108 is capable of exercising more significant control over LAN
peripherals but requires a dedicated PC which cannot be used for any other
task. Print server 108, which may itself be a PC, has the ability to
service multiple user-defined print queues, perform dynamic search queue
modification, and provide defined notification procedures for exception
(failure) conditions and status and control capabilities, and can control
both local printers 109 and 110 (that is, printers physically connected to
print server 108) and remote printers. Local printers 109 and 110 can be
connected to either serial or parallel ports, and the remote printers,
such as printer 105, are printers running elsewhere in the system which
print server 108 controls through RPRINTER software.
Print server 108 can control many local or remote printers and can request
print information from many file server queues. However, there are several
drawbacks to relying on print server 108 to control network printing
services. A first drawback is that multiple printer streams must all be
funnelled through a single network node. This can become a bottleneck. A
second drawback is that for the most efficient operation, the printers
should be connected to the print server locally, like printers 109 and
110. This can be an inconvenience for users since it requires the printers
to be clustered around print server 108 and also requires users to travel
to those clustered printers. A third drawback is that if the controlled
printers are remote, as in the case of printer 105 which is serviced by
RPRINTER, then print data must make several trips, first from file server
106 to print server 108, and then from print server 108 to the printer
running RPRINTER. This is inefficient.
A fourth drawback is the limited amount of printer status and control
information offered through print server 108. It has already been stated
that RPRINTER does not allow for much more than rudimentary status
information such as "out of paper" and "off line". Print server 108 does
not offer more than this because it was designed with consideration of the
limitations of the personal computer parallel port.
›The Network Board!
Installation of NEB 101 into printer 102 provides many advantages over the
network peripheral control entities discussed above, in that it allows
printer 102 to become an intelligent, interactive network member.
As shown in FIG. 2, NEB 101 is preferably housed in an internal expansion
I/O slot of printer 102, which in a preferred embodiment of the present
invention is a Canon LBP 1260 laser printer. This makes NEB 101 an
embedded network node having the processing and data storage features
described below.
The architecture of NEB 101 provides an advantage in that it has unique
support features for administration and management of large, multi-area
WAN networks. These support features could include, for example, printer
control and status monitoring from a remote location on the network (such
as from the network administrator's office), automatic management of
printer configuration after each print job to provide a guaranteed initial
environment for a next user, and printer logs or usage statistics
accessible across the network for characterizing printer workload and
scheduling toner cartridge replacement.
An important parameter in the NEB design is the ability to access the
printer control state from NEB 101 through a bi-directional interface,
here a shared memory, although other bi-directional interfaces such as
SCSI interfaces are also possible. This allows printer console information
to be exported to NEB 101 or to an external network node so as to allow
programming of many useful support functions. Blocks of print image data
and control information are assembled by a microprocessor on board NEB
101, they are written into the shared memory, and they are then read by
printer 102. Likewise, printer status information is transferred from
printer 102 to the shared memory, from where it is read by the NEB
microprocessor.
FIG. 2 is a cut-away perspective view showing installation of NEB 101 into
printer 102. As seen in FIG. 2, NEB 101, which is constructed from a
printed circuit board 101a on which is mounted face plate 101b which
allows for network connections, is connected via connector 170 to printer
interface card 150. As described below, printer interface card 150
directly controls the print engine in printer 102. Print data and printer
status commands are fed to printer interface card 150 from NEB 101 via
connector 170, and printer status information is obtained from card 150
also via connector 170. NEB 101 communicates this information onto LAN 100
via the network connectors on face plate 101b. At the same time, printer
102 can also receive print data from conventional serial port 102a and
parallel port 102b.
FIG. 3 is a block diagram depicting electrical connection of NEB 101 to
printer 102. NEB 101 is directly connected to LAN 100 via a LAN interface,
and to printer 102 via printer interface card 150. In a preferred
embodiment of the invention, the printer interface card 150 is a Peerless
LBP-860/1260-External Standard I/O Board Interface, available from
Peerless Systems Corp., the details of which can be found in the Peerless
Standard I/O Interface Design Specification, revision 2.07a, Peerless
Systems Corp., May 10, 1994. The board includes an Intel 80960KB-20
microprocessor 151. Although it is a 32-bit machine, microprocessor 151
accesses data to and from NEB 101 are in 2 byte wide (16-bit) transfers
via a shared memory 200 arranged on NEB 101. Microprocessor 151 also
communicates with print engine 160 which actually drives the printing
mechanism.
›NEB Physical Layout!
FIG. 4 shows the dimensions of a preferred embodiment of NEB 101 and the
physical layout of the major components thereof. The NEB card is 3.93
inches by 5.60 inches. NEB 101 includes a printer interface card connector
170 (which in the case of the Peerless printer interface card is an 80-pin
connector) that couples to the printer interface card and face plate 300
having connectors 301 and 302 that allow connection to LAN 100. The face
plate also includes 4 status light emitting diodes (LEDs) 303-306.
Arranged on the NEB card are transceiver 171, crystal oscillator 172,
microprocessor 173, arbiter control logic 400, flash erasable programmable
read only memory (EPROM) 174, dynamic random access memory (DRAM) 175,
first static random access memory (SRAM) 200, second SRAM 176, network and
NEB control logic 500, and serial port connector 600. Each of these
components will be discussed in greater detail below.
FIG. 5 depicts a more detailed view of face plate 300, the dimensions of
which are 4.56 inches by 1.28 inches. As stated above, NEB 101 couples to
LAN 100 through connectors 301 and 302. Preferably, connector 301 is an
RJ-45 connector capable of accepting a 10Base-T connection, while
connector 302 may be a simple coax connector capable of accepting a
10Base-2 connection. Status LED 303 is lit when NEB 101 is transmitting
data over LAN 100, and status LED 304 is lit when NEB 101 is receiving
data from LAN 100. Status LED 305 is lit when RJ-45 connector 301 is
connected to LAN 100, while status LED 306 is lit during self-test
diagnostics of NEB 101. Mounting holes 307 accept crews for fixing NEB 101
to printer 102.
›NEB Architecture!
The architecture of NEB 101 is shown in FIG. 6. Power for all circuits is
supplied to NEB 101 from a +5V power source 177. +5V power is also
provided to power converters 178 and 179. Power converter 178 provides -9V
power to transceiver 171, while power converter 179 provides +12V power to
flash EPROM 174 for "flashing" (i.e., reprogramming of the EPROM).
Network and NEB control logic 500 is preferably a single 144-pin
application specific integrated circuit (ASIC) that includes a network
controller 510 and NEB control logic 520. Network controller 510 is an NCR
macro-cell compatible with National DP83902A "ST-NIC" Ethernet controller,
the details of which can be found in National Semiconductor's Local Area
Networks Databook, National Semiconductor p/n 400055, National
Semiconductor, 1993. Network controller 510 is designed to interface with
CSMA/CA-type (carrier sense multiple access with collision detection)
local area networks.
Network controller 510 connects with RJ-45 connector 301 directly and with
coaxial connector 302 through transceiver 171, which is preferably a
National Semiconductor DP8392 coaxial transceiver interface, the details
of which can also be found in National's Local Area Networks Databook.
Network controller 510 is also coupled to an 8KB SRAM 176 that is used as
an input/output packet buffer for Ethernet data. This memory should
preferably have an access time of about 70 ns or less.
NEB control logic 520 provides an interface between network controller 510,
microprocessor 173, and memory devices EPROM 174 and DRAM 175. NEB control
logic 520 also interfaces with non-volatile random access memory (NVRAM)
180, which is a 256 byte serial electrically erasable/programmable memory
used for initialization data storage during power cycling of printer 102
which houses NEB 101. Network and printer configuration parameters are
written into NVRAM 180 when the printer is first installed onto the
network to allow NEB software to recover the installation parameters after
printer power has been cycled off and on.
NEB control logic 520 also couples with serial port connector 600, which
comprises a receive data pin 601 and a transmit data pin 602 that can
respectively receive and transmit serial data streams for debugging
purposes. NEB control logic 520 senses data present at the receive data
line and samples the serial bits at regular intervals, in a manner that
will be discussed in greater detail below.
The central controller of NEB 101 is microprocessor 173, preferably an
Intel 80C188EA-20 8-bit processor, the details of which can be found in
the 80C186EA/80188EA User's Manual, Intel p/n 270950-001, Intel Corp. This
processor is an 8-bit processor with direct memory access (DMA),
interrupts, timers, and a DRAM refresh control. Other microprocessors,
such as an AMD 80C188-20 8-bit microprocessor, might alternatively be
used. 256 KB flash EPROM 174 and 512 KB DRAM 175 are coupled to
microprocessor 173 via NEB control logic 520, while 32 KB SRAM 200 (which
is shared with printer interface card 150) is coupled with microprocessor
173 via arbiter control logic 400. A 40 MHz, 50 ppm crystal oscillator 172
provides the microprocessor with a clock signal that is wholly separate
from and asynchronous with the clock signal provided to microprocessor 151
on printer interface card 150.
Microprocessor 173 executes instructions in flash EPROM 174, which stores
control firmware and printing application software. After power-on
self-test (POST), code is selectively moved to the higher performance 512
KB DRAM 175, which should preferably have an access time of about 80 ns,
for actual execution. Flash EPROM 174 can be reprogrammed, or "flashed",
from LAN 100, as discussed below.
FIG. 7 illustrates several examples of blocks of code, or modules, that are
stored in flash EPROM 174. The XPL module provides a standardized
interface between printer 102 and NEB 101. MLID (Multi Link Interface
Driver) is a piece of Novell code (Media Support Module, or MSM) linked
together with a piece of customized code (Hardware Support Module, or HSM)
that is the lowest level of network connection, while LSL (Link Support
Layer) is a piece of Novell code that acts as a multiplexer between the
low level MLID and the several protocol stacks above it, CNETX is
customized code that turns local DOS-like function calls into network
function calls, providing file functions like OPEN, READ, WRITE and CLOSE.
The PRETASK module is responsible for identifying what frame types are
associated with the various possible protocol stacks, as described below.
Because NEB 101 supports multiple protocol stacks, this module exists as
long as NEB 101 is running.
Novell's IPX/SPX protocol stack is contained in flash EPROM 174, and is
supported by SAP, or Service Advertising Protocol. SAP is a Novell concept
that allows devices to register themselves into the file server's bindery,
which lists active and inactive network entities. Because print servers
are a special kind of bindery item, SAP registers NEB 101 via CPSOCKET,
and if NEB 101 is configured as a print server, SAP also registers the
print server with the NetWare bindery.
CPRINTSERVER is a custom implementation of a Novell print server
application. This module provides self-generated print banners, user
notification of completion and exception status, and transmission of print
data and status commands to the print engine. This differs from the Novell
print server in that CPRINTSERVER is dedicated to driving the local
printer (i.e., printer 102 in which NEB 101 is housed) and cannot drive
any remote RPRINTERs. This program owns the print data channel for the
duration of a print job. RPRINTER is a custom implementation of a Novell
RPRINTER print application. This module is a slave application that is
sent data by a Novell print server application elsewhere on LAN 100.
The TCP/IP protocol stack has User Datagram Protocol (UDP), Reverse Address
Resolution Protocol (RARP) and BootP support within. INTERRUPT is the
interrupt handler for the TCP/IP task, while TIMERTICK is the timer tick
for UNIX TCP/IP network tasks. LPRINTSERVER is the TCP/IP print server
application, and also owns the print data channel for the duration of a
print job.
The CPSOCKET program runs for all protocol stacks. The program responds to
requests for connection, requests for data download, or requests for
services from remote utilities, and provides status and control to other
tasks via interprocess communication. Because CPSOCKET typically owns the
status and control channel between NEB 101 and printer 102, it is the only
task that has the ability to obtain printer status via the status channel.
CPSOCKET is responsible for the network connection and packet contents
between the Novell-oriented status and control utilities (CPNET), or
between the UNIX-oriented status and control utilities (cpnet).
MONITOR is a customized multi-tasking monitor which performs task creation,
task destruction and microprocessor dispatch. MONITOR also has memory
management sub-modules MEMGET and MEMFREE. RESIDENT is a block of routines
that provides generic services such as NVRAM read and write, FLASH code,
ROM based debugger, hardware timer tick and other basic features. POST is
a power-on self-test module that checks the integrity of NEB hardware and
software at power-up.
Flash EPROM 174 also stores a Network Identification File ("NIF") block
which stores board-invariant information such as the Media Access Control
("MAC") address, which is unique for every network board, hardware
configuration, board revision number and the like, as well as changeable
information such as software version number. The information in the NIF
block is used to ensure that flash EPROM 174 is not reprogrammed with an
incompatible image. The NIF block is discussed in greater detail below in
connection with FIG. 13.
All communication between NEB 101 and printer interface card 150 is
executed via 32 KB shared SRAM 200. Arbiter control logic 400, preferably
a single 100-pin ASIC, arbitrates between the two byte wide memory
accesses of printer interface microprocessor 151 and the single byte wide
memory accesses of NEB microprocessor 173, each of which is completely
independent of the other.
Generally speaking, the 8-bit data bus of microprocessor 173 on board NEB
101 communicates with bus control logic 410, while the 32-bit data bus of
microprocessor 151 o | | |