Abstract:
An embodiment of the present invention comprises a system that causes a printer carriage to scan from a reference position to a second position. The status of the peripheral is monitored by the host computer with detectors that can sense the position of the carriage when at the reference position and the second position. A count is made of the number of clock pulses that occur during a time the carriage scans from scans reference position to the second position. A lookup table is then used that is indexed by the number of clock pulses. This provides a set of parameters the host computer will need to have available to use the peripheral right.

Description:
This is a continuaton of application Ser. No. 07/788,020 filed Nov. 5, 1991, now abandoned. 
    
    
     BACKGROUND OF THE INVENTION 
     The present invention relates generally to computers that can be interfaced with a range of printers and automatic methods for the host computer to discern the particular model of printer actually connected. 
     Standard interfaces have been very beneficial to most computer systems because they allow various computers and peripherals to be mixed and matched. Very often there are small, and sometimes large, differences between peripherals that a host computer has to know about. The common practice has developed to mount DIP switches on the circuit boards so that a technician can set the switches in a code pattern that the computer can read through a port to be informed about the configuration represented by the code. 
     The problem is such DIP switch solutions require board space, an I/O port, and someone with some technical skill and a code sheet to operate. An ordinary user often has a formidable challenge presented to him or her when changing peripherals requires also that the DIP switch patterns be changed. 
     In the case of printer peripherals, many kinds of specialized printers can be used by a common computing platform. These printers can have different paper feeds, line pitches, and column widths. What is needed is an automatic way for a computer system to determine on its own what model printer is connected to it. Such a solution would eliminate the board real estate, the I/O port(s), and the arcane codes needed for one or more DIP switches. 
     SUMMARY OF THE INVENTION 
     An embodiment of the present invention comprises a system that causes a printer carriage to scan from a home position to a second position. The status of the peripheral is monitored by the host computer with detectors that can sense the position of the carriage when at the home position and the second position. A count is made of the number of clock pulses that occur during a time the carriage scans from scans home position to the second position. A lookup table is then used that is indexed by the number of clock pulses. This provides a set of parameters the host computer will need to have available to use the peripheral right. 
     An advantage of the present invention is that it is possible to determine a printer peripheral&#39;s type based on the number of pulse counts a printer returns for a given operation. The count normally varies by type of printer mechanism, because a different number of printing columns and total number of dots in a print cycle will exist between otherwise identical units. 
     Another advantage of the present invention is that configuration DIP switches can be eliminated. 
    
    
     Other objects and attainments together with a fuller understanding of the invention will become apparent and appreciated by referring to the following description and claims taken in conjunction with the accompanying drawings. 
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a functional block diagram of the present invention; 
     FIG. 2 is a timing chart of the home position signal and timing signal; 
     FIG. 3 is a circuit block diagram of the control unit which performs the printer selection process of the present invention; 
     FIG. 4 is a flow chart which indicates the printer type selection process of the present invention; 
     FIG. 5 is a block diagram of the control unit having the type code reply method in the printer type selection process of the present invention; 
     FIG. 6 is a circuit block diagram of the control unit which executes the process with a type code reply method of the present invention; and 
     FIG. 7 is a flow chart which shows the process with a type code reply method of the present invention. 
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
     An example of a printer embodiment of the present invention is shown in FIG. 1. It comprises a pulse counter 3 which tracks the number of pulses being output from a timing detector 2 after sensing a predefined reference position signal from a home position detector 1. The &#34;home position&#34; defines a starting point for print head movement. A printer type determination unit 4 compares the pulse count obtained to a list of possible printer types and outputs values useful for a printer controller 5. The type of printer shown in FIG. 1 has a simple carriage handling mechanism that may or may not always finish each printing operation by parking its carriage at a reference, or starting position. Any operation that involves movement of the carriage will cause the carriage to move off its reference position and into an active printing area. The carriage then does not return directly to the reference position, but is carried on to an extreme opposite the reference position before returning. This allows a simple belt and one-way motor to drive the carriage around the circuit path described. The length of this circuit and consequently the duration of time the carriage needs to travel the circuit can be unique for each model or type of printer in an otherwise identical family of printers. In some printers, two cycles of the carriage around the circuit will be needed to determine the type of the printer. A first cycle guarantees the carriage parks at the reference point, and the second cycle does the measurement of the duration of a full cycle circuit from reference point to reference point. 
     FIG. 2 shows the timing for an output signal H from home position detector 1 and an output signal from timing detector 2. A signal 21 goes high when a carriage is at the home position &#34;Hn&#34; or &#34;Hn+1&#34;. A signal 22 is clock from the timing detector 2. Pulse counter 3 totalizes the number of pulses of signal 22 that occur between receipt of home position signals &#34;Hn&#34; and &#34;Hn+1&#34;. 
     FIG. 3 is a control unit that can be used to determine the type of printer connected to a host computer based on the count in counter 3. A reed switch 6 is used for a home position detector. A pulse generator 7 that outputs a signal for each revolution of a carriage motor is a simple way to implement the timing detector. A microcomputer system 8 comprising a CPU 9, a ROM 10, and a RAM 11 can either be the host computer to which a printer peripheral is attached or an embedded controller within the peripheral itself. The rest of the printer is represented by a printer mechanism 12. A program is stored as firmware in ROM 10 for later execution by CPU 9 with temporary storage in RAM 11. 
     FIG. 4 represents a flowchart of a firmware program that can be stored in ROM 10. In step 31, microcomputer system 8 operates printer 12. Step 32 loops back and waits longer if a home position signal &#34;Hn&#34; and timing signal &#34;T&#34; are not detected. If a timing signal &#34;T&#34; is detected in step 32, control flows to step 33 to increment a counter equivalent to counter 3 and loops backs to step 32. When home position &#34;Hn+1&#34; is detected (actually a second occurrence of &#34;Hn&#34;) in step 32, the count is complete and the type of printer connected to the host computer can be determined in step 34. A lookup table can be empirically derived for the count values that a range of different printer peripherals (e.g., printer 12) will produce when an operation is initiated in the above fashion. The lookup table then will supply the printer&#39;s parameters that are important for complete utilization of the printer in a system. For example, the number of columns a given printer model has can be stored and related to a count for an attached printer. In step 35, printing is then controllable according to the type of printer peripheral that has been identified as being actually attached. The above routine is preferably executed at boot-up of the host system, in order to eliminate delays during normal printing. The results of the routine are stored in RAM 11. If non-volatile writeable memory is available, it may be advantageous to store the results there, to save having to identify the printer peripheral every time the system is booted up. 
     Alternatively, printers that can be relied on to stop at a predefined position after completing each printing operation can have their type determined in a single scan of the carriage ending at the reference position. The functional block and circuit block diagram of such a setup would be identical to the discussion for FIGS. 1-6. 
     A pulse generator on a motor and reed switch were used for timing detection and home position detection. Other devices are possible and can give acceptable results. The present invention can be applied with success to configurations that use other kinds of detectors. 
     FIG. 5, which is similar to FIG. 1, shows that the type determination unit 4 is further comprised of a lookup table 51 that returns printer parameters in response to a type code derived from the count in pulse counter 3. 
     FIG. 6, which is similar to FIG. 3, has a microcomputer system 52 that includes the function of lookup table 51 and has an interface 54 that couples to a host computer 53. Lookup table 51 is located in host computer 53 and is available to CPU 9 by making a request and receiving an answer over interface 54. 
     In FIG. 7, process steps having the same numbers as in FIG. 4 are used to identify functional blocks that are similar. Step 50 begins a handling routine for embedded microcomputer system 52. A step 70 begins a handling routine for host computer 53. As can be seen, these two routines handshake with each other. After a printer type selection is completed in step 34, the printer type information is stored. CPU 9 will then wait in step 40 for a host request from host computer 53. Step 60 will supply such a request from the host. A step 41 then forwards a type code via interface 54 to be received by step 61. Step 62 determines the number of print columns and therefore the available print area, based on the type code. A step 63 sends back a print data code that comprises printer parameters needed for the particular type of printer attached to system 52 via interface 54 for receipt by step 42. Control of the printer is then adjusted accordingly in step 35. 
     While the invention has been described in conjunction with several specific embodiments, it is evident to those skilled in the art that many further alternatives, modifications and variations will be apparent in light of the forgoing description. Thus, the invention described herein is intended to embrace all such alternatives, modifications, applications and variations as may fall within the spirit and scope of the appended claims.