WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Automatic detection of network hardware connection    
United States Patent5701411   
Link to this pagehttp://www.wikipatents.com/5701411.html
Inventor(s)Tran; Duc (Long Beach, CA); Wadsworth; Robert D. (Costa Mesa, CA); Ip; Tony K. (Trabuco Canyon, CA); Russell; William C. (Laguna Hills, CA)
AbstractA network communication device has plural different connectors, each connectable to a network, and is capable of automatically selecting between the different connectors for network communication. A selector responsive to a selection signal selects one of the plural connectors, and a plurality of detectors, each associated with a corresponding connector, detects whether its 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 different 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 the 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 connectors.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Inventor     Tran; Duc (Long Beach, CA); Wadsworth; Robert D. (Costa Mesa, CA); Ip; Tony K. (Trabuco Canyon, CA); Russell; William C. (Laguna Hills, CA)
Owner/Assignee     Canon Information Systems, Inc. (Costa Mesa, CA)
Patent assignment
All assignments
Publication Date     December 23, 1997
Application Number     08/336,662
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     November 4, 1994
US Classification     709/250 710/8
Int'l Classification     G06F 011/20
Examiner     Harvey; Jack B.
Assistant Examiner     Myers; Paul R.
Attorney/Law Firm     Fitzpatrick, Cella, Harper & Scinto
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/828 395/824 395/835 395/200.02 395/200.2 395/821 395/200.1 370/13 370/10
Patent Tags     automatic detection network hardware connection
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5513370
Paul
709/249
Apr,1996

[0 after 0 votes]
5444856
Bowers
709/221
Aug,1995

[0 after 0 votes]
5410535
Yang
713/1
Apr,1995

[0 after 0 votes]
5406260
Cummings
340/568.2
Apr,1995

[0 after 0 votes]
5319785
Thaller
710/15
Jun,1994

[0 after 0 votes]
5142269
Mueller
340/568.2
Aug,1992

[0 after 0 votes]
3990024
Hou
333/33
Nov,1976

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


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.
 Description Submit all comments and votes
 


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