EP0226388A2 - Print wire fire control mechanism for a wire matrix printer - Google Patents
Print wire fire control mechanism for a wire matrix printer Download PDFInfo
- Publication number
- EP0226388A2 EP0226388A2 EP86309407A EP86309407A EP0226388A2 EP 0226388 A2 EP0226388 A2 EP 0226388A2 EP 86309407 A EP86309407 A EP 86309407A EP 86309407 A EP86309407 A EP 86309407A EP 0226388 A2 EP0226388 A2 EP 0226388A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- printhead
- wire
- dot
- print wire
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B41—PRINTING; LINING MACHINES; TYPEWRITERS; STAMPS
- B41J—TYPEWRITERS; SELECTIVE PRINTING MECHANISMS, i.e. MECHANISMS PRINTING OTHERWISE THAN FROM A FORME; CORRECTION OF TYPOGRAPHICAL ERRORS
- B41J2/00—Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed
- B41J2/22—Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by selective application of impact or pressure on a printing material or impression-transfer material
- B41J2/23—Typewriters or selective printing mechanisms characterised by the printing or marking process for which they are designed characterised by selective application of impact or pressure on a printing material or impression-transfer material using print wires
- B41J2/30—Control circuits for actuators
Definitions
- This invention relates to mechanisms for controlling the firing of print wires in the moving printhead of a wire matrix printer.
- a wire matrix printer employs a set of print wires which are located in a printhead which is mounted on a carriage which moves the printhead back and forth across a platen on which rests the paper on which the characters and images are to be printed.
- a printing ribbon is located between the printing end of the printhead and the paper.
- An individual actuator coil is provided for each print wire. Energising of an actuator coil by an electrical pulse fires the associated print wire. In particular, this causes the print wire to move forward rapidly and drive the printing ribbon against the paper to print a dot on the paper.
- Each of the various alphabetical, numerical and other printed characters is formed by printing a pattern of dots which creates the shape of the character on the paper.
- emitter pulses or "emitter signals” and the mechanism which produces them is sometimes referred to as an “emitter mechanism”.
- emitter unit will be used as a unit of distance measurement. In this case, one emitter unit represents the distance the printhead will move between the generation of the leading edge of one emitter signal and the generation of the leading edge of the next emitter signal. It represents the physical distance corresponding to the spacing between the beginnings of two successive emitter signals. The value of an emitter unit is a fixed constant for any given printer and is usually relatively small, typically of the order of a few thousandths of an inch.
- a linear emitter mechanism includes a stationary linear element which is attached to the printer frame and which extends the length of the platen.
- the linear element has uniformly spaced indicia on it which are sensed by a detector element which is carried on the printhead carriage.
- a rotary emitter mechanism includes a rotary encoder type device having a movable element which is coupled to the drive system for the printhead carriage so that it will rotate as the printhead moves across the platen. Rotation of the movable element generates emitter signals. In either case, linear or rotary, a new emitter signal is produced each time the printhead moves a fixed incremental distance across the paper.
- print wire fire control systems have been heretofore used to indicate when the print wires should be fired.
- the most common technique for generating the print wire fire timing is simply to fire the appropriate print wires whenever an emitter pulse occurs.
- a time delay is added following the occurrence of the emitter pulses when moving in one of the directions to enable dots produced with the printhead moving in opposite directions to align vertically with one another.
- a more sophisticated technique that has been proposed is to use timing circuitry to generate pseudo-emitter pulses (usually two or three) between the leading edges of the actual emitter pulses. This provides more instants at which print wires may be fired and thereby provides somewhat better resolution.
- a problem with these known and proposed methods is that the character fonts or character styles which can be printed must be compatible with the emitter pulse spacing. This limits the choices for various font parameters such as dot density, characters per inch, and the like.
- a finite time of the order of a few hundred microseconds, is required to get the print wire moving and to move it the necessary distance to strike the ribbon against the paper. This causes a problem because the printhead is also moving across the paper while the print wire is in flight. Thus, by the time the print wire strikes the paper, the print wire is no longer in the same position across the paper as it was when the firing of the print wire was commenced.
- the printhead may have moved anywhere from two or three or more emitter positions while the print wire was in flight. If not taken into account properly, this flight time factor can cause the different printed dots to be unevenly spaced relative to what is desired.
- a common method of handling the print wire flight time is to print only when the printhead is moving at a known constant speed. In this case, the effect of the print wire flight time is the same for all of the printed dots. Consequently, there is no distortion or unevenness in the printed text or image. Also, for the case of bidirectional printing where some characters are printed with the printhead moving from left to right and other characters are printed with the printhead moving from right to left, proper alignment for the two directions can be maintained by adding a fixed time delay when printing in one of the two directions.
- the object of the present invention is to provide a wire matrix printer having an improved print wire fire control system.
- the present invention relates to a wire matrix printer of the type comprising a printhead including a plurality of print wires for printing dots, means for moving the printhead across a print receiving medium, means for detecting the position of each print wire relative to the print receiving medium as the printhead moves across the print receiving medium, means for establishing a plurality of target positions on the print receiving medium in each of which a dot is to be printed, firing means for selectively firing each print wire so that it causes a dot to be printed on the print receiving medium, and a print wire fire control mechanism for controlling the operation of the firing means so that each selected print wire prints a dot in a predetermined target position on the print receiving medium.
- a printer according to the invention is characterised in that the print wire fire control mechanism comprises means for calculating the flight time distance through which the printhead will move during the time interval between the time each selected print wire is fired and the time the selected print wire will cause a dot to be printed, and control means for firing each selected print wire when the distance between the selected print wire and a predetermined target position is substantially equal to the flight time distance.
- the fire control mechanism ensures that each dot is printed accurately in the required position for different printhead movement speeds.
- FIG. 1 there is shown in a simplified manner a wire matrix printer with its outer cover removed.
- This printer includes a base plate 20 and a pair of side frames 21 and 22 secured thereto.
- An elongated platen bar or platen 23 extends between the side frames 21 and 22 and the extremities of the platen 23 are secured to the side frames 21 and 22 respectively.
- a printhead 24 is mounted on a printhead carriage 25 which, in turn, is slidably mounted on a pair of carriage support shafts 26 and 27.
- the support shafts 26 and 27 run parallel to the platen 23 and the extremities of the support shafts 26 and 27 are secured to the side frames 21 and 22 respectively.
- the printhead carriage 25 is moved back and forth along the support shafts 26 and 27 by a motor, pulley and belt mechanism.
- a reversible electric motor 28 is mounted on a bracket plate 29 which is, in turn, secured to the exterior of the side frame 22.
- a first pulley 30 is mounted on the shaft 31 of the motor 28.
- a second pulley 32 is mounted on the exterior side of the other side frame 21 by means of a bracket 33.
- a closed loop belt 34 is strung between and mounted on the two pulleys 30 and 32.
- Belt 34 passes through windows 35 and 36 cut through the side frames 21 and 22, respectively.
- Belt 34 is attached to the underside of the printhead carriage 25 by means of screws 37 and 38.
- the printhead drive motor 28 is not a stepper motor. It is an ordinary direct-current motor and its rotor and shaft are caused to rotate whenever direct current is fed through its motor windings.
- the direction of rotation (clockwise or counterclockwise) is determined by the direction of the current flow through the motor windings.
- the speed of rotation is determined by the average value of the current flow through the motor windings.
- a print receiving medium 40 is positioned over the platen 23 on the side facing the printhead 24.
- This print receiving medium 40 is the medium on which the characters and images are to be printed.
- it will be assumed to be paper material of a desired length.
- Other examples of a print receiving medium include multi-part forms, envelopes, foils for visual projectors and the like.
- An inked printing ribbon 41 is located intermediate the printhead 24 and the print receiving paper 40. Ribbon 41 is supplied from a ribbon cartridge (not shown) and means (not shown) are provided for moving it past the printhead 24 to enable use of all the ribbon in the cartridge.
- Energising the printhead motor 28 with electric current produces movement of the belt 34 which, in turn, moves the printhead carriage 25 along the carriage support shafts 26 and 27.
- the direction of current flow is reversed and the carriage 25 moves back along the support shafts 26 and 27 in the opposite direction.
- the carriage 25, and hence the printhead 24 is caused to move back and forth across the printer.
- the printing end of printhead 24 is in alignment with the platen 23 and moves back and forth across the length of the platen 23. There is a small spacing gap between the printing end of the printhead and the platen, this gap being sufficient to accommodate the ribbon 41 and the paper 40 with a little room to spare.
- the individual print wires in the printhead 24 are fired to produce patterns of dots on the paper 40. More precisely, when a print wire is fired, it lunges forward toward the platen 23 and the end of the print wire drives the inked ribbon 41 against the paper 40 with a quick striking action to produce a dot of ink on the paper 40. After hitting the ribbon and paper, the print wire bounces back towards its rest position in the printhead. A return spring associated with the print wire completes its return to its rest position. By firing the different print wires at the proper times as the printhead 24 moves across the paper 40, the desired alphabetical characters, numerical characters and other characters (e.g., punctuation, dollar sign, etc.) are produced on the paper 40.
- the desired alphabetical characters, numerical characters and other characters e.g., punctuation, dollar sign, etc.
- the paper 40 is advanced by a paper feed mechanism (not shown) to bring a fresh portion of paper into position on the platen 23.
- the next line of characters is then printed on this fresh portion of paper.
- the paper 40 is stationary while a line of characters is being printed and is moved or advanced the appropriate distance after the completion of one line of printing and before the commencement of the next line of printing.
- one line of characters may be printed while the printhead 24 is moved across the paper from left to right and the next line of characters may be printed while the printhead 24 is moving in the opposite direction, namely, from right to left across the paper.
- This type of printing requires the use of a data storage mechanism for storing the dot data for a complete line of characters so that such data can be supplied to the printhead 24 in a reverse manner when the printing is being done in the reverse direction, namely, from right to left. This is usually accomplished with the use of modern high-speed microcomputer circuitry.
- the wire matrix printer of Fig. 1 is not limited to the function of printing text type characters. It can also be used to print graphical and pictorial type images on the paper 40. All that is required is to fire the appropriate print wires at the appropriate times to cause the resulting dot patterns to create the desired images. In this case, where an image extends over several print lines, the accurate placement of the dots becomes very critical. If the image dots on one print line are not properly placed relative to the image dots on the other print lines, the resulting image will be distorted.
- a print wire fire control method and mechanism in accordance with the present invention are based on the usage of uniquely defined targets. These targets are not dependent on and are not limited to the fixed points defined by the emitter signals produced by the position marking mechanism associated with the printhead. These targets and the manner in which they are manipulated provide the key to the sophistication of a method and mechanism in accordance with the present invention and also indicate its inherent simplicity.
- Fig. 2 shows a printhead 42 which moves horizontally from left to right along a print line 43.
- Printhead 42 includes a print wire 44, the axis of which extends perpendicular to the plane of the paper. Only the end of the print wire is shown in Fig. 2.
- the print wire 44 moves toward the paper at right angles to the plane of the paper.
- Print wire 44 can, if desired, print dots at dot option positions 45 and 46.
- a dot option, or simply "option" is a position at which a dot can be printed if the particular character or other image being formed calls for a dot at that position.
- the position values are measured along the length of the platen 23 and the print line 43 with one end of the platen, usually the left-hand end, being taken as the starting or reference position for measurement purposes. It will be assumed herein that the position measurements are made relative to the left-hand end of the platen 23 and that the numerical position values increase from left to right across the platen 23.
- the head position is the actual position of the printhead along the platen 23. More precisely, it is the position of the print wire 44 and not the printhead 42 which is of interest, but for simplicity of explanation, the terms "head position" and "printhead position” will be used when what is really meant is the "print wire position". In this regard, what is meant by print wire position is the position of the geometrical centre point of the end of the print wire.
- the fire position is the position at which the print wire should be fired in order for the end of the print wire to strike the paper at the target position.
- the target position is the position of the next dot option to be encountered by the print wire being considered. More precisely, the target position is the geometrical centre point of the next dot option.
- the target distance (TD) is the distance from the head (wire) position to the target position.
- the fire distance (FD) is the distance from the head (wire) position to the fire position when the printhead is on the upstream side of the fire position.
- the flight time distance (FTD) is the distance from the fire position to the target position. This flight time distance is the distance the printhead will move during the time interval between the time the print wire is fired and the time the print wire will strike the paper, or, in other words, the time interval during which the print wire is in flight from the printhead to the paper.
- the flight time is a constant for any given printhead construction and any given gap distance or separation distance between the printhead and the paper being printed on. This flight time is typically somewhere in the range of 350 to 400 microseconds, with a flight time of 370 microseconds being a representative value.
- the flight time distance is not a constant value. It is dependent upon and varies with the speed or velocity of movement of the printhead along the print line. The greater the speed of the printhead, the greater is the flight time distance and vice versa.
- the fire distance is also speed dependent since it represents the difference between the target distance and the speed dependent flight time distance. As the flight time distance increases, the fire distance decreases and vice versa.
- a new target position is established and used.
- This new or next target position is the position of the next dot option 46.
- a new fire position is also determined, this new fire position being intermediate the two dot options 45 and 46. This process of establishing a new target position and a new fire position is repeated when the printhead 42 reaches the second dot option 46 and each subsequent dot option in any given segment of printing.
- the first dot option in any given segment of printing can be located at any desired position along the print line 43.
- the position of this first dot option is not dependent on or limited to the fixed points defined by the position marking emitter signals.
- the distance between successive dot options is a fixed value which is called the "pel".
- This pel value is also not dependent upon the fixed points defined by the emitter signals.
- the pel value does not have to be a whole number multiple of the emitter signal spacing.
- Neither the first dot option nor any of the subsequent dot options in any given segment of printing need be located at the fixed points defined by the emitter signals. They may be, but they need not be.
- the various position and distance values used herein are expressed in whole and fractional emitter units. In the embodiment described herein this is accomplished by expressing these values in emitter subunits where each subunit is equal to 1/24th of an emitter unit.
- FIG. 3 there is shown the primary features of a wire fire control mechanism constructed in accordance with a first embodiment of the invention.
- this Fig. 3 embodiment will be referred to as a "relative position” embodiment because the position of the printhead relative to the target position (target distance) is used to determine the firing of the print wire.
- This embodiment includes means for tracking the target distance, namely, the distance between the print wire position and the position at which a dot is to be printed on the print receiving medium which, for sake of example, is assumed to be paper.
- tracking is meant measuring or monitoring this distance on a continuous basis as the printhead moves across the print receiving paper.
- This means for tracking the target distance includes a subtraction mechanism 47 for subtracting a head position signal (HP) from a target position (TP) signal to provide a target distance signal (TD) when the printhead is moving from left to right.
- a subtraction mechanism 47 for subtracting a head position signal (HP) from a target position (TP) signal to provide a target distance signal (TD) when the printhead is moving from left to right.
- HP head position signal
- TP target position
- TD target distance signal
- the target distance always has a positive value. Accordingly, when the printhead is moving in the opposite direction, namely, from right to left, the subtraction process is reversed so that the lower-valued target position is subtracted from the higher-valued head position.
- the target distance is a positive value representing the difference between the head and target positions.
- both the target position and the head position are supplied to the subtraction mechanism 47 in the form of plural-bit binary data signals and the subtraction operation is performed by the arithmetic and logic unit (ALU) in a microprocessor.
- the target distance is also in the form of a plural-bit binary data signal.
- the target position signal specifies the next dot option at which a dot may be printed on the paper. This signal is provided by the system logic based on the parameters specified by the user. Initially, it represents the position of the first dot option in a given segment of printing. When the first dot option position is reached by the printhead, the target position′s value is updated by the pel value to provide the target position for the next dot option.
- the head position signal is provided by an emitter mechanism associated with the printhead drive system.
- this emitter mechanism includes a bi-directional (up-down) counter for counting the position marking pulses generated by the emitter mechanism. This counter counts in the upward direction when the printhead is moving from left to right and counts in the downward direction when the printhead is moving in the opposite direction from right to left.
- the head position signal represents the actual position of the printhead at any given instant.
- the embodiment of Fig. 3 further includes means for determining the flight time distance, namely the distance the printhead will move during the time interval between the time instant the print wire is fired and the time instant the print wire will strike the print receiving paper.
- This flight time distance determining means includes a divider mechanism 48 for dividing a flight time value (FT) by an emitter time value (ET) to produce the flight time distance value (FTD).
- FT flight time value
- ET emitter time value
- FTD flight time distance value
- all three of these values namely, the flight time value (FT), the emitter time value (ET) and the flight time distance (FTD) are in the form of plural-bit binary data signals and the dividing operation is performed by the arithmetic and logic unit of a microprocessor.
- the flight time is the time required for the print wire to move from its at rest position to its paper striking position. It is expressed in microseconds with a value of 370 microseconds being representative. For any given printhead construction over any short term time interval, the flight time is a constant value. It may change slightly over a long period of time as the printhead undergoes continued wear and tear. It may also change slightly when the printer is used in other than a normal operating environment. In either case, the flight time value can be modified to reflect the change. For present purposes, the flight time value will be assumed to be a constant.
- the emitter time represents a measurement of the speed of movement of the printhead from left to right or right to left, as the case may be, across the paper being printed on.
- the emitter time represents the time required for the printhead to move from one emitter marking point to the next emitter marking point.
- the emitter signals represent fixed increments of movement of the printhead across the paper and the emitter time is the time required for the printhead to make one of these fixed increments of movement.
- the emitter time is the inverse or reciprocal of the printhead speed. The faster the printhead speed, the smaller is the emitter time. Conversely, the slower the printhead speed, the larger is the emitter time.
- the emitter time is also measured in microseconds.
- the divider mechanism 48 divides the flight time by the emitter time to produce the flight time distance signal.
- the flight time represents microseconds, while the emitter time represents microseconds per unit distance.
- the unit distance is called an "emitter unit”.
- the flight time distance is expressed herein as the number of emitter units and fractions thereof the printhead will move while the print wire is in flight to the paper. This flight time distance varies as a direct function of the printhead speed. The faster the printhead speed, the greater is the flight time distance and vice versa.
- the Fig. 3 embodiment also includes means for firing the print wire when the target distance becomes substantially equal to the flight time distance.
- This means for firing the print wire is represented by a comparison mechanism 49 which compares the target distance signal (TD) with the flight time distance signal (FTD) and produces a print wire fire signal at its output when the two input signals become of equal value.
- the comparison mechanism 49 may include, for example, a subtraction mechanism 50 and a zero detection mechanism 51. When the difference between the two input signal values become zero, the zero detector 51 produces a print wire fire output pulse. If a dot is to be printed at the dot option in question, then this print wire fire pulse causes current to be supplied to the actuator coil for a particular print wire and this wire is fired to produce an ink dot on the print receiving paper 40.
- the subtraction operation of the mechanism 50 is performed by the arithmetic and logic unit (ALU) in a microprocessor and the zero detection function is performed by the ALU condition testing circuitry which is normally used to detect the occurrence of a zero value output from the ALU.
- ALU arithmetic and logic unit
- the Fig. 3 embodiment is called a relative position embodiment because the target distance produced by the subtraction mechanism 47 represents the position of the printhead relative to the target.
- a print wire fire control mechanism constructed in accordance with the present invention.
- this embodiment is referred to as an "absolute position" embodiment because the absolute position of the printhead is used to determine the firing of the print wire.
- This embodiment includes a divider mechanism 52 which is responsive to the flight time signal (FT) and to the emitter time signal (ET) for producing the flight time distance signal (FTD). This is the same as before.
- This embodiment also includes a subtraction mechanism 53 which is responsive to the target position (TP) signal and the flight time distance signal (FTD) for producing a fire position signal.
- a comparison mechanism 54 is used to compare the absolute head position signal (HP) with the fire position signal (FP). The comparison mechanism 54 produces a print wire fire output pulse when the position of the moving printhead becomes equal to the fire position.
- the target position signal (TP) is updated to reflect the next target position when the printhead reaches the current target position.
- the emitter time is monitored on a continuous basis so that the flight time distance signal (FTD) at any given instant is the correct value for the printhead speed at that instant.
- all signals shown in Fig. 4 except the print wire fire output of the comparison mechanism 54, take the form of plural-bit binary data signals.
- the divide, subtract and compare operations of Fig. 4 are preferably performed by the arithmetic and logic unit of a microprocessor.
- FIG. 5 there is shown an end view of the printing end of the printhead 24 of Fig. 1.
- This is the end of the printhead which faces and is closest to the platen 23 and, hence, the paper 40 of Fig. 1.
- the surface of this printing end is maintained in a plane parallel to the printing surface of the platen 23 and is spaced apart a short distance from the platen 23.
- This particular printhead includes two sets of print wires, identified as "Set 1" and "Set 2". Compared to the diameters of the print wires, these two sets are spaced apart a relatively large distance along a horizontal axis x.
- the vertical axis is represented by reference letter y.
- the horizontal axis x extends parallel to the longitudinal axis of the platen 23.
- the vertical y axis extends in the direction the paper is fed when it is advanced from one portion to be printed to the next.
- the ends of the print wires in Set 1 are identified by reference numerals 1-9, while the ends of the print wires in Set 2 are identified by reference numerals 10-18.
- Each set of print wires has first and second groups of print wires which are spaced apart a relatively small horizontal distance.
- the print wires in the first group in Set 1 are numbered 1, 3, 5, 7 and 9. There are five print wires in this first group.
- the print wires in the second group of Set 1 are numbered 2, 4, 6 and 8. There are four wires in this second group.
- the print wires in the first group of Set 2 are numbered 10, 12, 14, 16 and 18. There are five print wires in this first group.
- the print wires in the second group of Set 2 are numbered 11, 13, 15 and 17. There are four print wires in this second group.
- the ends of the print wires in any given group are in vertical alignment with one another, that is, they are disposed along an axis that runs parallel to the y axis.
- the vertical locations of the ends of the print wires in each second group are staggered relative to the ends of the print wires in their respective first group.
- the centre point of wire 2 is vertically positioned intermediate the centre points of wires 1 and 3, etc.
- the centre point of each wire in the second group is vertically positioned midway between the centre points of the two neighbouring wires in the first group.
- wire 10 is not in horizontal alignment with wire 1
- wire 11 is not in horizontal alignment with wire 2, etc.
- the centre points of the wires in Set 2 are vertically displaced relative to the centre points of the wires in Set 1 so that they are located midway between the centre points of the Set 1 wires (see Fig. 9).
- a representative value for the diameter of each print wire is 11 ⁇ 10 ⁇ 3in (2.794 ⁇ 10 ⁇ 4m).
- a representative value for the horizontal distance between like groups in the two sets is 0.3in (7.64 ⁇ 10 ⁇ 3m).
- the spacing between the vertical axis for the second group of wires in Set 1 and the vertical axis for the second group of wires in Set 2 is 0.3in (7.64 ⁇ 10 ⁇ 3m).
- the spacing or distance between the vertical axes of the first and second groups in the same set is one sixtieth (1/60) of an inch.
- the corresponding decimal value is approximately 0.017in (4.318 ⁇ 10 ⁇ 4m).
- the basic unit of distance measurement used throughout this application is the "emitter unit".
- the value of the emitter unit was chosen to be one three-hundredths (1/300) of an inch. This is approximately 0.003in (7.64 ⁇ 10 ⁇ 5m).
- Another way of looking at it is that one inch (2.54 ⁇ 10 ⁇ 2m) of movement by the printhead across the print line causes the emitter mechanism associated therewith to produce 300 emitter pulses.
- This representative value of 300 emitter pulses per inch (2.54 ⁇ 10 ⁇ 2m) is the assumed value that will be used throughout the remainder of the description portion of this specification. In this case, the horizontal spacing between corresponding groups in the two print wire sets is 90 emitters, while the horizontal spacing between the two groups of wires in the same set is 5 emitters.
- a print wire fire control method in accordance with the present invention enables the construction of a wire matrix printer which is capable of printing a wide variety of different character fonts.
- the different character fonts have different dot densities for the printed characters.
- different character pitches or characters per inch can be provided.
- Figs. 6 and 7 show examples of the letter E printed in two different character fonts using the printhead of Fig. 5.
- the reference numerals for the individual dots in Figs. 6 and 7 indicate which print wires of the Fig. 5 printhead are used to print the dots.
- the character font for Fig. 6 is called a "data processing" or DP quality font.
- the dot density is relatively low and this font can be printed at a higher speed of movement of the printhead across the printed page.
- the character font for Fig. 7 is called a "near letter quality" or NLQ font.
- the dot density in both the vertical and horizontal directions has been doubled relative to Fig. 6 and the improved quality of the printed character is apparent.
- the printhead is moved at a slower speed when printing the Fig. 7 font.
- FIG. 6 Another difference between the fonts of Fig. 6 and 7 is the manner in which the Fig. 5 printhead is used. This difference is indicated in Figs. 8 and 9.
- the printhead of Fig. 5 is rotated slightly to bring the print wires in Set 2 into horizontal alignment with the corresponding print wires in Set 1.
- wire 10 is brought into horizontal alignment with wire 1
- wire 11 is brought into horizontal alignment with wire 2, etc.
- the angle of rotation required to accomplish this is approximately 1.3 degrees.
- this horizontal alignment of the two sets of print wires enables, for example, wires 1 and 10 both to participate in printing the dots across the top leg of the letter E.
- the two sets of print wires are equivalent to two identical but spaced apart print heads. This enables a doubling of the printhead movement speed relative to what can be accomplished with a single set of print wires.
- Fig. 9 shows the printhead angular orientation for printing the near letter quality font of Fig. 7.
- the Fig. 9 orientation is also used for printing graphic images.
- the print wires of the second set are vertically staggered relative to the print wires of the first set.
- the centre point of print wire 10 is vertically positioned midway between the centre points of print wires 1 and 2. This vertical staggering of the print wires in the two sets enables the vertical dot density to be doubled without having to move or shift the paper in a vertical direction.
- the print wire configuration of Fig. 5 and the character font examples of Figs. 6 and 7 illustrate the complexities that can be accommodated by print wire fire control mechanisms constructed in accordance with the present invention.
- a print wire fire timing method in accordance with the present invention provides the added flexibility needed to accommodate complex timing requirements.
- the items in the MODE column denote different print qualities.
- the DP mode is the data processing mode and represents the lowest quality in this particular example. It is the one represented in Fig. 6.
- the NLQ mode is the near letter quality mode and represents the highest quality in this particular example. It is the one represented in Fig. 7 wherein the dot density is doubled in both the horizontal and vertical directions.
- the TEXT quality mode is an intermediate mode wherein the dot density is doubled only in the horizontal direction. In this text quality mode, the printhead is oriented as shown in Fig. 8 and the printhead speed is reduced to one half the speed used for the DP mode.
- the CPI column shows different pitch or characters per inch values. Pitches of 10, 12 and 15 characters per inch are provided for each of the three quality modes.
- the option distance is shown in both inches and emitter units.
- the option distance is the distance between successive dot option positions.
- One emitter unit is equal to one three-hundredths (1/300) of an inch (7.64 ⁇ 10 ⁇ 5m).
- the speed column gives the speed of movement of the printhead as it moves across the page. The speed values given are in inches per second (IPS).
- the " ⁇ SEC PER OPTION” column gives the time in microseconds required for the printhead to move from one dot option position to the next.
- the “ ⁇ SEC PER EMITTER” column gives the time in microseconds between the occurrence of the leading edges of successive emitter pulses. These values are the emitter time (ET) values previously mentioned. They are inversely proportional to the printhead speed.
- the FTD column shows the flight time distance values for an assumed print wire flight time of 370 microseconds. This flight time distance is expressed in emitter units. For the case of DP mode with 10 characters per inch, for example, the printhead will move a distance of 4.44 emitter units while the print wire is in flight from the printhead to the paper. As previously mentioned, the flight time distance is dependent upon the speed of movement of the printhead.
- the foregoing table is a representative example of some of the character fonts that can be accommodated by a print wire fire control mechanism constructed in accordance with the present invention.
- a schematic block diagram showing the primary features of a complete digital controller 55 for a wire matrix printer. Included in this controller 55 is a representative embodiment of a print wire fire control mechanism constructed in accordance with the present invention.
- the controller 55 includes an image data processing portion 56 and a printhead control portion 57.
- the image data processing portion 56 receives the higher level image information from a host computer or host data processing equipment to which the printer is connected and converts it into the elemental dot data which is used to control the firing of the print wires in the printhead.
- the image data processing portion 56 includes host interface circuits 58 which are connected by way of a multiconductor cable 59 to the host computer.
- the host interface circuits 58 are, in turn, coupled to a multiconductor image processor bus 60 which interconnects various data processing elements in the image processing section 56.
- These data processing elements include an image microprocessor 61, a direct memory access (DMA) unit 62, a read/write random access memory (RAM) unit 63 and a read only memory (ROM) unit 64.
- DMA direct memory access
- RAM read/write random access memory
- ROM read only memory
- the image microprocessor 61 may be, for example, an Intel-80188 high integration 8-bit microprocessor currently manufactured by the Intel Corporation of Santa Clara, California. As such, it includes an arithmetic and logic unit (ALU), various general purpose registers, various control registers, an interrupt controller, a bus interface unit, several programmable timers, and the like.
- the ROM unit 64 includes the microcode which controls the operation of the image microprocessor 61. It also includes the print wire image patterns for several different character fonts.
- the RAM unit 63 is subdivided or partitioned into various working areas and buffer areas which are used during different phases of the image data processing operations.
- RAM 63 includes, for example, an incoming data buffer area for receiving the high level information from the host computer. It also includes an output buffer area for temporarily holding the print wire image data which tells the print wires when to print and when not to print. It also includes various working areas which are used for creating composite images, for holding the results of intermediate data processing operations, for assembling various data and control elements into unique print task groupings, and the like.
- the DMA unit 62 is used for automatically extracting the print wire image data from the output buffer in RAM 63 and supplying it to the printhead control portion 57 without having to interrupt the image microprocessor 61.
- the DMA unit is actually included as part of the microprocessor chip.
- the DMA unit is shown separately herein because other types of microprocessors may be used which do not include it on the microprocessor chip.
- the host computer sends over a command which tells the image processing section the particular character font which is to be used.
- the microprocessor 61 thereafter uploads a copy of the selected font from the ROM 64 into an active font table portion of the RAM 63.
- the host computer commences to send over code point signals which identify the characters to be printed.
- Each code point signal is a one byte character code which identifies a particular character to be printed.
- the microprocessor 61 extracts the appropriate print wire image dot data from the active font table in RAM 63 and puts it into the output buffer area of RAM 63. This dot data is thereafter transferred in an option position by option position manner to the printhead control section 57 as needed. This transfer is accomplished by means of the DMA unit 62.
- the print wire image data for an alternative character font may instead be sent over cable 59 from the host computer to enable the printing of characters in an alternative font style.
- Graphical image information as opposed to text type character information, may also be supplied by the host computer to the image data processing section 56.
- the printhead control section 57 includes a printhead microprocessor 65 for controlling the movement of the printhead across the paper and for controlling the firing times for the print wires.
- This printhead microprocessor 65 may take the form of, for example, an Intel 8031 8-bit microprocessor currently manufactured by Intel Corporation of Santa Clara, California. As such, it includes an arithmetic and logic unit (ALU), various general purpose and special purpose registers, a programmable input/out (I/O) unit and two programmable 16-bit timers.
- a read only memory (ROM) unit 66 which contains the microcode which causes the microprocessor 65 to perform the various control functions.
- the microprocessor 65 and ROM 66 are each coupled to a common multiconductor printhead processor bus 67. This bus 67 is also coupled to interface circuits 68 which are coupled to the image processor bus 60.
- Interface circuits 68 are used to transfer plural-bit (e.g., 8-bit) command signals from the image microprocessor 61 to the printhead microprocessor 65 and to transfer plural-bit (e.g., 8-bit) status signals from the printhead microprocessor 65 to the image microprocessor 61.
- Interface circuits 68 include a plural-stage command register into which a command byte can be loaded by the image microprocessor 61 and from which the same command byte can be read by the printhead microprocessor 65.
- Interface circuits 68 also include a plural-stage status register into which can be loaded a status byte from the printhead microprocessor 65 and from which can be read the same status byte by the image microprocessor 61.
- Appropriate latch circuits are included for providing a status pending interrupt to the image microprocessor 61 and a command pending interrupt to the printhead microprocessor 65.
- the command bytes supplied to the printhead microprocessor 65 are of two general types. One type tells the printhead microprocessor 65 what to do. The other type supplies to the printhead microprocessor 65 various operating parameters such as printhead speed, dot option spacing, and the starting and stopping positions for a particular segment of printing.
- One function of the printhead microprocessor 65 is to control the direction and speed of movement of the printhead 24 of Fig. 1. This is accomplished by controlling the speed and direction of rotation of the printhead motor 28 which, via the drive belt 34, causes movement of the printhead carriage 25 across the print receiving paper 40. Coupled to the shaft 31 of the printhead motor 28 are the rotary elements of a pair of emitter mechanisms A and B shown in Fig. 10. Each of the emitter mechanisms A and B is a rotary encoder which generates pulses at regular intervals as its rotary element rotates. These encoders may be, for example, of the optical type.
- the output pulses produced by the emitter mechanisms A and B are shown in Fig. 11. These pulses are sometimes referred to herein as emitter signals.
- the signal sequence from emitter B is identical to the signal sequence from emitter A except that it is shifted in phase by a factor of 90 degrees relative to the signal sequence from emitter A.
- One of these sequences of emitter signals is sufficient for determining printhead position and speed.
- the use of the second sequence of emitter signals enables a determination of the direction of movement of the printhead.
- the construction of the drive system for the printhead carriage 25 and the spacing of the signal producing elements in each emitter mechanism are such that the duration of each complete emitter signal cycle corresponds to a printhead movement distance of one three-hundredths (1/300) of an inch.
- the printhead 24 must move a horizontal distance of 1/300 of an inch across the paper in order to produce one complete emitter cycle.
- This emitter signal distance (1/300 inch) (7.64 ⁇ 10 ⁇ 5m) is used herein as the basic unit of distance measurement.
- One of the functions of the printhead microprocessor 65 is to monitor the printhead speed by measuring the time duration of each complete emitter signal cycle. If the measured speed does not agree with the desired speed established by a speed parameter value obtained from the image microprocessor 61, then an appropriate signal is supplied to motor control circuits 69 for adjusting the speed of the printhead motor. Motor control circuits 69 supply control signals to motor drive circuits 70 which control the direction and magnitude of the current flow through the windings of the printhead motor 28. If the actual printhead speed does not agree with the desired printhead speed, then the speed determining control signal supplied to the motor control circuits 69 is adjusted to decrease the amount of disagreement between the actual and desired speeds.
- a second primary function of the printhead microprocessor 65 is to control the generation of print wire fire timing pulses which determine the permitted firing times for the print wires. More particularly, a plurality of print wire fire latches 71 are provided for receiving the image dot data from the image processing section 56. For the moment, it will be assumed that there is one print wire fire latch for each print wire. Since, as shown in Fig. 5, there are eighteen print wires, this means that there will be eighteen individual print wire fire latches. Each latch contains either a binary one value or a binary zero value, depending upon whether or not its associated print wire is to print a dot at the next occurring dot option position.
- This dot option data is loaded into the print wire fire latches 71 from the output buffer section in the RAM 63 by way of the image processor bus 60 which is connected to the data input of the print wire fire latches 71.
- the loading of the data is controlled by a decoder 72.
- each actuator comprises a pivoted lever arm and a solenoid or coil which is positioned to cause movement of the lever arm.
- One end of the lever arm is positioned against the back end of the print wire and the other end of the lever arm is positioned over the coil. This other end of the lever arm is composed of ferromagnetic material.
- a return spring is provided for returning the print wire to its rest position when the current is removed from the coil. In use, the current is removed shortly before the print wire strikes the paper so that when the print wire strikes the paper it can bounce back towards its rest position.
- the outputs of the print wire fire latches 71 are normally disabled so that none of the print wire actuators are energised.
- the outputs of the print wire fire latches 71 are periodically enabled by timing pulses generated by print wire fire timers 75. When a timing pulse or wire fire pulse enables the output of a particular print wire fire latch, such latch will cause activation of its associated print wire actuator if and only if the data value stored in the latch is a binary one value. If a binary zero value is stored in the latch, then its associated print wire actuator will not be activated.
- a print wire fire pulse from timers 75 determines a point in time at which a print wire is capable of being fired. Whether or not it is actually fired at this point in time is determined by the dot image data value residing in its print wire fire latch.
- the enabling of the latch output by a firing pulse from timers 75 causes a pulse which is coincident in time with the fire pulse from the timers 75 to be supplied to the associated actuator drive circuit.
- the associated actuator drive circuit supplies energising current to the associated print wire actuator for the duration of this pulse.
- the supplying of new dot image data to the print wire fire latches 71 is controlled by a DMA request circuit 76.
- request signals are supplied by the request circuit 76 to the DMA unit 62 to cause the DMA unit to access new data from the output buffer portion of RAM 63 and to supply appropriate address signals to decoder 72 to causes such data to be loaded into the latches 71.
- This is a continuing process as the printhead moves across the paper. New data is supplied to the print wire fire latches 71 for each new dot option position encountered by the printhead.
- the print wire fire latches 71 include data latches 78, 79, 80 and 81. For reasons that will be explained hereinafter, two data latches are provided for each of the 18 print wires. Thus, there are a total of 36 data latches.
- First multistage data latch means are provided for receiving the image dot data for these 10 print wires.
- This latch means is represented by data latches 78 and 79.
- Data latches 78 include 10 individual latch circuits, one for each of the 10 print wires in the two first groups. The outputs of these 10 latches are simultaneously activated or enabled by a 10A print wire fire timing pulse supplied thereto from print wire fire timers 75 by way of conductor 82.
- Data latches 79 also comprise 10 individual latch circuits, there being a separate one for each of the 10 different print wires in the two first groups.
- the outputs of the 10 latch circuits in data latches 79 are simultaneously activated or enabled by a 10B print wire fire timing pulse supplied by way of conductor 83.
- the use of two sets (10A and 10B) of data latches 78 and 79 provide two individual latch circuits (A and B) for each of the 10 print wires, one such latch circuit (A) being provided by the latch set 78 and the other such latch circuit (B) being provided by the latch set 79.
- the outputs of the corresponding latch circuits in the two sets are coupled together by means of a corresponding one of a set of OR circuits 84.
- the output of each of the different OR circuits 84 drives a different one of the print wires.
- the output of the first latch circuit in set 78 and the output of the first latch circuit in set 79 are coupled to the two inputs of the first OR circuit 84a.
- the output of this OR circuit 84a is, in turn, connected to the actuator drive circuit for print wire 1.
- the provision of two latch circuits for each print wire solves a timing problem which is encountered when the printhead is moving at one of the higher speeds.
- One of the latch sets 78 and 79 is used for enabling the printing of dots at odd numbered dot option positions, while the other of sets 78 and 79 is used for enabling the printing of dots at the intervening even numbered dot option positions.
- the control means for accomplishing this is provided by the use of separate sets of print wire fire timers, one set being designated as the 10A set and the other set being designated as the 10B set.
- the corresponding latch sets are also designated as 10A and 10B respectively.
- the "10" denotes that they are for the 10 first group print wires.
- a similar procedure is followed for the second group of print wires in both Set 1 and Set 2.
- one or more of second group print wires 2, 4, 6 and 8 can be fired simultaneously with one or more of second group print wires 11, 13, 15 and 17.
- This is accomplished by means of additional multistage data latch means represented by latch sets 80 and 81, each of which services both second groups of print wires.
- These second wire groups are four-wire groups, giving a total of eight print wires for the two second groups as a whole.
- data latches 80 include eight individual latch circuits which are individually coupled to different ones of the eight print wires which make up the two second groups.
- the outputs of the eight data latches 80 are simultaneously activated or enabled by an 8A print wire fire timing pulse obtained from print wire fire timers 75 via conductor 85.
- the second latch circuit for each print wire is provided by one of the eight individual latch circuits in data latches 81.
- the outputs of the latch circuits 81 are simultaneously enabled by an 8B print wire fire timing pulse supplied via conductor 86.
- the corresponding outputs of latch set 80 and latch set 81 are OR′ed together by corresponding ones of OR circuits 87.
- the outputs of the first latch circuit in set 80 and the first latch circuit in set 81 are connected to the two inputs of the first OR circuit 87a.
- the output of OR circuit 87a is connected to the actuator drive circuit for print wire 2.
- Data latch sets 80 and 81 are designated as the 8A and 8B sets.
- the "8" denotes that the latch set controls eight print wires.
- One of the 8A and 8B sets enables the printing of dots at odd numbered dot option positions, while the other of the 8A and 8B sets enables printing of dots at the intervening even numbered dot option positions.
- the control means for the 8A and 8B latch sets are represented by the 8A and 8B print wire fire timer circuits supplying the 8A and 8B timing pulses via the conductors 85 and 86, respectively.
- Data latch sets 78-81 can be implemented by using, for example, type LS173 and type LS374 plural-bit integrated circuit latch circuit modules currently manufactured by Texas Instruments Inc. of Dallas, Texas. Both types provide controllable output buffers for enabling and disabling the latch output lines. These are tristate type buffers which place the latch output lines in a tristate or high impedance condition when the outputs are disabled.
- Image dot data is loaded into the data latches 78-81 via the image processor bus 60.
- This bus 60 includes an 8-line data bus portion 88 and a 19-line address bus portion. Three of these address lines are represented by an address bus portion 89 and are connected to the input of decoder 72. The outputs of the decoder 72 are used to control the loading of data into different ones of the data latches 78-81. The data lines in bus portion 88 are connected to the data inputs of the latches 78-81.
- the load 10A-1 output signal of decoder 72 is used to load the first eight bits of data into the 10A data latches 78, while a load 10A-2 signal from decoder 72 is used to load the remaining two bits into the 10A data latches 78.
- two different accesses of the output buffer portion of RAM 63 are required to load the ten data bits into the 10A latches 78.
- the first access of the RAM 63 output buffer places eight data bits on the 8-line data bus 88 and the accompanying address supplied to the decoder 72 activates the load 10A-1 output of the decoder.
- the remaining two data bits are placed on the data bus 88 and are loaded into the remaining two 10A data latch circuits by the load 10A-2 output of the decoder 72.
- the 8A and 8B data latch sets 80 and 81 each require only one access of the RAM 63 output buffer.
- the load 8A and load 8B signals from decoder 72 respectively control the loading of data from the RAM output buffer into the 8A and 8B latch sets 80 and 81.
- Accessing of data from the RAM 63 output buffer is controlled by the DMA unit 62 shown in Fig. 10.
- the DMA unit 62 supplies a source address to the RAM 63 to tell it the address of the data to be placed on the bus 60.
- the DMA unit 62 supplies a destination address to the decoder 72 to identify the data latches into which the data on the bus 60 is to be loaded.
- the print wire fire timers 75 of Fig. 10 include four sets of timers as shown in Fig. 12.
- a first set comprises a 10A delay timer 90 connected to a 10A one-shot timer 91.
- the delay timer 90 provides a needed (and variable) time delay at the end of which it triggers the one-shot timer 91 to cause it to produce a print wire fire timing pulse of fixed duration.
- This 10A timing pulse is supplied to the output control terminal of the 10A data latches 78 and their outputs are enabled for the duration of this timing pulse. When not enabled, the outputs of the data latches are in a high impedance state. In this high impedance state, the latch outputs neither load nor drive the signal lines to which they are connected.
- the second set of print wire fire timers comprises a 10B delay timer 92 which is connected and drives to a 10B one-shot timer 93. The latter supplies the print wire fire timing pulse to the 10B data latches 79 via conductor 83.
- the third set of print wire fire timers comprises an 8A delay timer 94 which drives an 8A one-shot timer 95.
- the one-shot timer 95 produces the print wire fire timing pulse which is supplied by way of conductor 85 to the 8A data latches 80.
- the fourth set of print wire fire timers comprises an 8B delay timer 96 which drives an 8B one-shot timer 97. Timer 97 produces the print wire fire timing pulse which is supplied by way of conductor 86 to the 8B data latches 81.
- each of the latch circuits in each of the data latch sets 78-81 produces a high impedance output condition whenever no timing pulse is being supplied to its latch set by the associated one-shot timer.
- the logic value (high or low logic level) stored in the latch circuit is supplied to and appears on the signal line connected to the output of the latch circuit.
- Each of the timers 90-97 may be implemented by using, for example, Intel 8254 Programmable Interval Timer integrated circuit modules, such modules currently being manufactured by Intel Corporation of Santa Clara, California. Each 8254 module contains three independent 16-bit timers. Thus, a total of three 8254 modules are needed to implement the eight timers 90-97.
- Each 8254 timer includes a 16-bit presettable down counter. Each 8254 timer also includes eight data bit input terminals for enabling a desired plural-bit numerical value to be loaded into its down counter in a parallel manner for purposes of presetting such down counter to a desired count value.
- Each 8254 timer further includes a clock input terminal, a gate input terminal and a signal output terminal.
- the clock input terminal is for receiving clock pulses which are counted by the down counter.
- the gate input terminal is for receiving a control signal for enabling and disabling the counting action in the down counter.
- the signal output terminal supplies an internally-generated output signal when the count in the down counter reaches a value of zero.
- the clock pulses for each of timers 90-97 are generated by a high-frequency clock generator circuit 98, such clock pulses being supplied by way of output line 99 to the clock input terminal of each of the timers 90-97.
- the clock frequency may be, for example, one megahertz, in which case the clock pulses occur at a rate of one pulse per microsecond.
- Each of the one-shot timers 91, 93, 95 and 97 is preloaded with a constant value representing the desired duration of each print wire fire pulse.
- a representative value of 270 microseconds will be assumed herein for this print wire fire pulse duration.
- This 270 microsecond value is preloaded into each of the one-shot timers by way of its 8-bit data input terminals which are connected to the data bus lines of the printhead microprocessor 67. For simplicity of illustration, these connections to the bus 67 are not shown.
- This preloading of the one-shot timers is accomplished by the printhead microprocessor 65 as part of the controller initialisation procedures which are performed each time the printer is turned on for use.
- an output pulse from its associated delay timer is supplied to gate input terminal of each one-shot timer (e.g., 91) and causes each one-shot timer (e.g., 91) to commence counting down the 270 microsecond value.
- the one-shot timer e.g., 91
- a 270 microsecond output pulse is produced by each one-shot timer each time an input pulse is received from its associated delay timer.
- Each of the delay timers 90, 92, 94 and 96 periodically receives a plural-bit binary time delay value from the printhead microprocessor 65 via bus 67.
- This time delay value will be different for different printhead speeds, different dot densities, etc.
- These time delay values are loaded in a parallel manner into the down counters in each delay timer for purposes of presetting each down counter to a desired time delay value.
- the loading of a new time delay value into a down counter causes the down counter to start a down counting operation therein.
- the delay timer produces an output pulse which is supplied via its output terminal to the input of the associated one-shot timer.
- the time delay value loaded into the delay timer thus determines the time delay applied to the starting of the print wire fire pulse produced by the one-shot timer. This time delay will vary from time to time to reflect changes in printhead speed, dot density and print starting position.
- Fig. 13 is a timing diagram for the print wire fire pulses produced by the various one-shot timers 91, 93, 95 and 97.
- each of the one-shot timers produces a train of print wire fire pulses.
- Each print wire fire pulse in each train is of the same time duration, which time duration is determined by the count value which is preset into the one-shot timers. This count value is chosen to provide the optimum duration driving pulse for the particular print wire actuator construction being used.
- This print wire fire pulse duration should be of sufficient length to bring the print wire armature into firm engagement with the actuator coil pole piece.
- a representative value for the print wire fire pulse duration is 270 microseconds.
- the timing diagram of Fig. 13 is for the case of the 18-wire printhead of Fig. 5 when operating in a DP quality mode with a pitch of 10 characters per inch.
- the distance between successive dot option positions is assumed to be 0.01 inches.
- the speed of movement of the printhead is assumed to be 40 inches per second.
- the print wire flight time is assumed to be 370 microseconds.
- the duration of each print wire fire pulse is assumed to be 270 microseconds. For an option distance of 0.01 inches and a speed of 40 inches per second, it takes the printhead a time interval of 250 microseconds to move from one option to the next.
- the reference point for position measuring purposes is defined to be the centre point of print wire 1.
- printhead position is meant the position of the centre point of print wire 1.
- Fig. 13 illustrates the timing problem that is encountered when operating at 40 inches per second with a print wire fire pulse duration of 270 microseconds.
- the time difference between successive dot option positions is 250 microseconds. This is less than the duration of the print wire fire pulse.
- the firing of the print wires for a second option position is required to be commenced before completion of the print wire fire pulses for the preceding option position.
- This problem is solved herein by using two print wire fire data latches for each print wire.
- print wires that were not fired at one option position can be fired at the next succeeding option position.
- the print head is moving at a high speed such as 40 inches per second, the same print wire cannot and is not allowed to try to print at two successive option positions.
- Print wires that were not fired at the first option position can, however, be fired at the second option position, provided separate data latches are provided to receive the dot data for the second option position.
- the two pulse trains are identical except that the pulses thereof are shifted in time relative to one another.
- the two pulse trains are offset by one-half of a cycle which, in the present case, is equal to 250 microseconds.
- the 10A pulses are individually identified as A1, A2, A3, etc.
- the 10B pulses are individually identified as B1, B2, B3, etc. If a print wire is fired by the A1 pulse, it will produce a dot on the paper at point A1 on the dot time scale. This occurs 370 microseconds after the beginning of the A1 wire fire pulse. If a print wire is fired by the B1 pulse, it will produce a dot at the B1 point on the dot time scale.
- the remaining 10A and 10B pulses are likewise capable of producing dots 370 microseconds after their leading edges.
- the 10A and 10B pulses take turns in causing dots to be printed on the paper.
- the 10A pulses can, for example, cause dots to be printed at the odd numbered dot options while the 10B pulses can, for example, cause dots to be printed at the even numbered dot options.
- none, one, some or all of the print wires in the 10-wire group can be fired. Those not fired at any given dot option position can be fired at the next succeeding option position if desired, even though the print wire fire pulse for the first option is not yet completed.
- each 8A and 8B timing pulse has a duration of 270 microseconds.
- the pulses in the 8B train are offset or shifted by a factor of one-half the time period for the 8A pulses.
- time period is meant the time period from the leading edge of one 8A pulse to the leading edge of the next 8A pulse. This time period is 500 microseconds for both the 8A and 8B pulse trains.
- the 8A and 8B pulse trains are shifted relative to the 10A and 10B pulse trains in order to take into account the horizontal spacing or separation distance between the group 1 and group 2 wires in each set, this spacing being the same for both sets.
- this five-wire group to four-wire group spacing is one-sixtieth (1/60) of an inch (4.318 ⁇ 10 ⁇ 4m), which is equal to five emitter units.
- the leading edge of each 8A pulse is delayed by a factor of five emitter units relative to the leading edge of the corresponding 10A pulse and the leading edge of each 8B pulse is delayed by a factor of five emitter units relative to the leading edge of the corresponding 10B pulse.
- the reason why the print wires in the second five-wire group can be fired at the same time as the print wires in the first five-wire group is that the option-to-option spacings which can be printed by the printer were selected relative to the horizontal spacing between the five-wire groups so that the group-to-group spacing is always a whole number multiple of the option-to-option spacing.
- the second five-wire group is at a different but proper option position.
- the option position printed by the second five-wire group is exactly 30 options removed from the option position printed by the first five-wire group.
- the dot data supplied to the latch circuits for the second five-wire group is dot data that is to be printed 30 options later than the dot data that is supplied to the latch circuits for the first five-wire group.
- the image microprocessor 61 knows the particular number of options corresponding to the wire group to wire group spacing and places the dot data in the RAM 63 output buffer so that dot data for the different option positions is transferred to the respective ones of the two five-wire latch groups being loaded at any given moment.
- This circuit 76 includes a set of four latches 100-103 which individually provide an indication as to when the corresponding one of data latch sets 78-81 needs new image dot data.
- Request latches 100-103 are for data latch sets 78-81, respectively.
- Each of the request latches 100-103 is placed in a "Clear” state upon completion of the loading of its corresponding data latch set with new data.
- the Clear state produces a binary zero level at the latch circuit output.
- each of the data latch sets 78-81 is activated by a print wire fire timing pulse (fire 10A, fire 10B, etc.)
- its corresponding one of the request latches 100-103 is placed in a "Set” condition.
- This Set condition produces a binary one level on the latch circuit output line.
- the outputs of all four of the request latches 100-103 are connected to an OR circuit 104, the output line 105 of which is the request line which runs to the DMA unit 62.
- This request line 105 is at a binary one level if any of the latches 100-103 is in a Set condition.
- a binary one level on request line 105 causes the DMA unit 62 to commence supplying new dot data to the print wire fire data latch sets 78-81. This new data is supplied to the different latch sets 78-81 one at a time in a rotating manner so long as the DMA request line 105 remains at a binary one level.
- each data latch set receives new data, its corresponding one of request latches 100-103 is returned to the Clear condition.
- all of the data latch sets have received new data, all of the request latches 100-103 are in a Clear condition and the DMA request line 105 goes to a binary zero level. This zero level signifies the absence of a DMA request.
- the fire pulses which set the request latches 100-103 are respectively obtained from the one-shot timers 91,95,93 and 97 shown in Fig. 12.
- the load and clear signals which clear the request latches 100-103 are obtained from the decoder 72 of Fig. 12.
- this setting action is accomplished by the trailing edges of the print wire fire pulses supplied to their Set input lines. Consequently, new dot data is not supplied to a data latch set before it has finished with the existing dot data.
- that data latch set is reloaded with new image dot data.
- the data latch sets 78-81 are continually being reloaded with new dot data as the printhead 24 moves across the paper being printed on.
- Fig. 15 there is shown a schematic block diagram of the logic executed by the printhead microprocessor 65 for the print wire fire timers 90-97 shown in Fig. 12. What the printhead microprocessor 65 does is to supply to and to load into each of delay timers 90, 92, 94, 96 a plural-bit delay time signal at the appropriate time instant such that the delay timer will count off the specified delay time value and at the end of this delay time will trigger its associated one-shot timer to produce its print wire fire timing pulse.
- the image microprocessor 61 (Fig. 10) sends various operating parameter data to the printhead microprocessor 65.
- This operating parameter data is sent in the form of commands via the interface circuits 68.
- these operating parameter values are loaded into appropriate registers in the printhead microprocessor 65 for subsequent use.
- a first command which is sent to the printhead microprocessor 65 shortly after the printer is turned on is a "Calibrate Head Position" command.
- This command causes calibration of a bidirectional (up-down) multistage binary counter 106 located in the printhead microprocessor 65 and shown in Fig. 15.
- This command causes the printhead carriage 25 to be moved to the extreme left-hand side of the printer so as to place it against the left-hand side frame 21.
- a position reference value is loaded into the up-down counter 106 via the printhead processor bus 67, this position reference value being obtained from ROM 66.
- the up-down counter 106 keeps track of the position of the printhead 24 across the length of the platen 23 by counting the emitter pulses produced by emitter A (Fig. 10) and appearing on line 107.
- the count in counter 106 is increased one count for each emitter pulse.
- the count in counter 106 is decreased by one count for each emitter pulse.
- the count in counter 106 at any given instant represents the actual position of the printhead 24 at that instant. More precisely, it represents the position of the centre point of print wire 1 in the printhead 24.
- This position value is expressed in terms of emitter units wherein each emitter unit is equal to one three-hundredths (1/300) of an inch.
- Counter 106 provides a continuous indication of the actual position of the printhead 24 and hence of the print wires contained therein.
- Another initial parameter command sent to the microprocessor 65 is a "Set Flight Time” command.
- the parameter value portion of this command represents the print wire flight time, expressed in microseconds, for the particular printhead and print wire actuator construction being used. Unless otherwise indicated, this flight time value will be assumed to be 370 microseconds.
- This flight time value is loaded into a flight time register 108 in the printhead microprocessor 65, such register being shown in Fig. 15. Since this flight time value remains substantially constant for any given usage of the printer, its value is normally loaded into the flight time register 108 only once during each usage of the printer.
- Another parameter command which is sent to the printhead microprocessor 65 is a "Set Print Speed" command.
- the parameter value included with this command is the desired speed of movement of the printhead 24 across the paper being printed on. At any given moment, the actual printhead speed may differ from this desired speed. Consequently, the print wire fire control mechanism being described herein continuously monitors and makes use of the actual speed, as opposed to the desired speed.
- a new Set Print Speed command is set to the printhead microprocessor 65 whenever a change in the desired speed is needed. This printhead speed parameter is used in connection with the motor control circuits 69.
- Another parameter command sent to the printhead microprocessor 65 by the image microprocessor 61 is a "Set Print Density" command.
- the data value associated with this command represents the distance between consecutive dot option positions.
- This dot spacing value or, more accurately, option spacing value is loaded into a dot spacing register 109 contained in the printhead microprocessor 65. This is done before the commencement of any segment of printing having a different dot density as compared with the preceding segment of printing.
- the dot spacing (DS) value loaded into the register 109 includes both whole and fractional emitter unit components. This is accomplished by expressing the dot spacing value in terms of emitter subunits, there being 24 subunits per emitter unit in the present embodiment. Thus, dot spacing is not limited to whole number multiples of the emitter distance value. It may, but need not be, a whole number of emitter units. For the example shown in Fig. 16, where the dot spacing is 3.0 emitter units, the dot spacing value loaded into register 109 is "72", this value being obtained by multiplying 3.0 times 24.
- Another parameter command which is sent from the image microprocessor 61 to the printhead microprocessor 65 is a "Print" command.
- This command is sent prior to each segment of printing on every line of printing.
- Each print command contains two parameter values, namely, the start target position and the stop target position for the segment of printing in question.
- the segment of printing specified for a start command may cover anywhere from the entire length of a line of printing to only a small portion of the total length of a print line.
- This print command is the command which initiates the printing of a segment of material. Receipt of this command by the printhead microprocessor 65 causes the printhead 24 to print from the start target position to the stop target position at the currently active printhead speed value.
- the printhead microprocessor 65 determines the direction of travel for the printhead 24 by comparing the start position with the stop position and setting a print head direction control bit accordingly.
- the start target position in the print command is expressed in whole and fractional emitter units.
- one data field in the command contains a value representing the whole number of emitter units for the start target position.
- Another data field contains a value representing the number of 1/24th emitter subunits for the start target position.
- the starting point of a segment of printing is not limited to one of the fixed points defined by the positive-going edges of the emitter signals.
- the printhead microprocessor 65 calculates a modified version of the whole number start target position value supplied by the print command and loads this modified version into a first target register 110 shown in Fig. 15.
- This modified start target is five emitter units ahead of the actual whole number start target value. This is done to enable a proper start-up of the control mechanism shown in Fig. 15. For the case where the printhead is moving from left to right across the printed page, a value of five emitter units is subtracted from the whole emitter start position component, and the result is loaded into the first target register 110. This enables an activation signal to be developed by the Fig. 15 control mechanism when the printhead 24 is approximately five emitter units to the left of the first dot position at which printing is to be allowed.
- the modified first target position value is obtained by adding a value of five emitter units to the start target position whole number component specified by the print command. This enables the activation signal to be produced approximately five emitter units to the right of the actual first target position for the case of right to left movement.
- the printhead position values in up-down counter 106 are, of course, decreasing for this right to left movement.
- the activation signal is produced by a binary signal comparison mechanism 111 which receives the binary coded position signals from the up-down counter 106 and the first target register 110. During movement of the printhead, the position value in counter 106 is continually changing. When this printhead position value in counter 106 becomes equal to the first target position value in register 110, the comparison mechanism 111 produces the activation signal at its output.
- the embodiment being described includes a target distance determining mechanism which is activated by the activation signal for thereafter continuously calculating the distance remaining to the next target position.
- This mechanism makes use of an initial setting value which is loaded into an initial set register 112 after receipt of the print command but before commencement of its execution.
- This value is expressed in 1/24th emitter subunits. Its numerical value is equal to 120 ⁇ F.
- the "F” portion is the 1/24th emitter sub unit start target fractional value supplied by the print command.
- This F component when not equal to zero, causes the starting point for the printing to fall between two of the fixed points defined by the positive-going edges of the emitter signals. If the printhead is moving from left to right, this F value is added to the 120 value and the result is loaded into the initial set register 112. If, on the other hand, the printhead is moving from right to left, the F value is subtracted from the 120 value and the result is loaded into register 112.
- the print wire fire control mechanism embodiment of Fig. 15 includes a speed sensing mechanism 113 for continuously monitoring or measuring the speed of movement of the printhead 24 as it is moved across the paper being printed upon.
- This speed sensing mechanism 113 includes an up counter 114, an emitter time (ET) register 115 and a delay element 116. The purpose is to measure the time duration of each emitter signal cycle. This is accomplished by using the up counter 114 to count the number of one microsecond clock pulses which are produced by clock 98 (Fig. 12) during the occurrence of each emitter signal cycle. To this end, the emitter signals from emitter A are supplied via line 107 and by way of delay element 116 to the reset terminal of the up counter 114.
- each emitter signal is effective to reset the up counter 114.
- the up counter 114 counts the number of clock pulses until the occurrence of the positive-going edge of the next emitter signal. This next positive-going edge is used to load the emitter time register 115 with the count value then appearing in the up counter 114.
- the delay element 116 provides a very small time delay and is used to delay the resetting of the up counter 114 until after the loading of its number value into the register 115 has been completed.
- the number value loaded into the emitter time register 115 represents the time duration in microseconds of one complete emitter signal cycle.
- this number value is called the emitter time (ET). It is a speed dependent signal and is, in fact, inversely proportional to the speed of movement of the printhead. For sake of simplicity, this ET signal may be sometimes referred to herein as a speed signal.
- the print wire fire control mechanism also includes means for sensing movement of the printhead 24 and providing movement signals representing movement of the printhead across the print receiving paper.
- This movement sensing means includes the emitter A (Fig. 10) which produces the emitter signals and the signal supply line 107 which supplies these signals to the printhead microprocessor 65. As indicated in Fig. 15, this emitter signal supply line 107 is coupled to the various counter mechanisms in the Fig. 15 control mechanism.
- the term "emitter" associated with this supply line 107 means the emitter signals produced by emitter A. These emitter signals are printhead movement signals and are sometimes referred to as such herein.
- the print wire fire control mechanism embodiment of Fig. 15 includes an initial target determining mechanism 117 responsive to the first target position signal and the printhead movement (emitter) signals for producing an activation signal.
- This mechanism includes the up-down counter 106 and the first target register 110 previously considered.
- This initial target determining mechanism 117 also includes the comparison mechanism 111 for comparing the whole emitter unit component of the first target signal in register 110 with the printhead position signal provided by counter 106.
- This mechanism produces an activation signal on output line 118 of compare mechanism 111 when the printhead position signal becomes equal to the whole number component of the first target signal.
- the comparison mechanism 111 may include, for example, a subtraction mechanism for producing a signal representing the difference between the first target position signal from register 110 and the printhead position signal from counter 106. It may also includes a zero detection mechanism for detecting when this difference becomes zero and thereupon producing the activation signal. The occurrence of this activation signal signifies that the printhead 24 is approximately five emitter units removed from the first dot option position at
- the printer is operating in the DP mode with a pitch of 10 characters per inch.
- the printhead speed is assumed to be 40 inches per second
- the option distance between successive dot options is assumed to be 3.0 emitter units
- the print wire flight time is assumed to be 370 microseconds.
- This flight time value gives a flight time distance (FTD) of 4.4 emitter units, which is the value shown in Fig. 16 (the distance between the fire point and the hit point).
- the horizontal scale in Fig. 16 is in terms of distance and not time.
- the activation signal produced by the compare mechanism 111 occurs during emitter cycle C.
- the print wire fire control mechanism of Fig. 15 further includes a flight time distance (FTD) mechanism which is responsive to the printhead movement (emitter) signals for producing a flight time distance signal representing the distance the printhead will move during the time interval the print wire is in flight from the printhead to the paper.
- This mechanism includes the speed sensing mechanism 113 previously considered, which mechanism produces the emitter time (ET) signal.
- It further includes the flight time register 108, a divider mechanism 117a, a multiplier mechanism 118a and a flight time distance (FTD) register 119.
- the divider mechanism 117a divides the flight time value (FT) by the emitter time value (ET) to produce the flight time distance (FTD) signal.
- This FTD signal is expressed in whole and fractional emitter units.
- this flight time distance is 4.4 emitter units.
- the multiplier mechanism 118a multiplies this FTD value by 24 to convert it to a 1/24th emitter subunit value. In the assumed example, this value is 106 emitter subunits. This value of 106 is placed in the FTD register 119.
- a separate mechanism is not provided for performing the multiplying by 24 function represented by the multiplier mechanism 118a. Instead, the multiplying by 24 function is accomplished in the divider mechanism 117a by proper scaling of the divider output signal.
- the print wire fire control mechanism embodiment of Fig. 15 also includes a target distance determining mechanism 120 for providing a continuously updated target distance signal (TD) representing the distance to the next dot option position to be encountered by the printhead 24.
- This target distance determining mechanism 120 includes the dot spacing register 109 and the initial set register 112 previously considered. It also includes a multistage OR mechanism 121, a target distance (TD) register 122, a subtraction mechanism 123, an adding mechanism 124, and a signal gating mechanism 125. Initially, the initial set value in register 112 is loaded into the target distance register 122. This is done shortly after receipt of the print command by the printhead microprocessor 65 and well before the activation signal is produced by the compare mechanism 111.
- TD target distance signal
- the F factor representing the fractional part of the start position value in the print command is assumed to be zero.
- a value of 120 is initially loaded into the target distance register 22.
- This value in register 122 remains unchanged until the occurrence of the activation signal.
- This initial value in target distance register 122 represents the distance from the activation point to the first dot option position.
- a value of 120 corresponds to five whole emitter units.
- the occurrence of an activation signal at the output of compare mechanism 111 serves to place a latch mechanism 126 in a set condition.
- This set condition causes the latch 126 to supply an enabling signal to the control input of the gate mechanism 125 for enabling it to pass signals from its signal input to its signal output.
- the latch 126 was in its reset condition and the gate 125 was disabled. Latch 126 remains in its set condition for the duration of the segment of printing to be performed. It is thereafter returned to its reset condition when the printhead reaches the stop target position or shortly thereafter.
- the gate 125 When the gate 125 is enabled, it passes emitter signals appearing on line 107 to the control (DO) input of the subtraction mechanism 123. Each time a new emitter signal appears on the line 107, it causes the subtraction mechanism 123 to subtract a value of 24 from the current target distance value in register 122. In particular, the subtraction mechanism 123 takes the current value in register 122 and subtracts 24 from it and then loads the result back into the register 122 via the OR mechanism 121. In this manner, each emitter pulse occurring while the gate 125 is enabled serves to decrement the target distance value in register 122 by a factor of 24, which factor corresponds to one whole emitter unit. In this manner, the target distance in register 122 is continually updated as the printhead moves along the print line.
- This updating or decrementing of the target distance register 122 continues until a load and start pulse is produced for one of the delay timers 90, 92, 94, and 96.
- the value in the target distance register 122 is increased by a factor which is equal to the dot spacing value expressed in 1/24th emitter subunits. This is accomplished by the adding mechanism 124 which takes the current target distance value from the register 122, adds the dot spacing value in register 109 to it, and supplies the result back to the target distance register 122 via the OR mechanism 121.
- the value in register 109 is equal to 72 emitter subunits, which corresponds to three whole emitter units.
- the Fig. 15 embodiment also includes a fire distance determining mechanism 127 for continually determining the distance remaining to the print wire fire point for the next dot option.
- This mechanism 127 includes a subtraction mechanism 128 for subtracting the flight time distance (FTD) value from the target distance (TD) value to produce at its output the desired fire distance (FD) value.
- FTD flight time distance
- FD desired fire distance
- This fire distance (FD) value is loaded into a fire distance register 129 which is part of the mechanism 127.
- This fire distance value in register 129 is expressed in terms of the 1/24th emitter subunits.
- the fire distance value in register 129 is supplied to a first input of a fire distance (FD) comparison mechanism 130.
- a constant value of 24 is supplied to the other input of the FD comparison mechanism 130.
- the comparison mechanism 130 produces an output pulse during each emitter cycle for which the fire distance value in register 129 is less than 24. This signifies that the current printhead position is less than one emitter unit away from the next print wire fire point.
- FD compare pulses are blocked by a gating mechanism 131 and have no effect on the remainder of the units in Fig. 15. If, on the other hand, the activation signal has occurred (latch 126 in set condition), then gate 131 passes the FD compare pulses to a switch mechanism 132 which, in turn, passes the FD compare pulse to two of the delay timers 90, 92, 94, and 96 for purposes of loading and starting same. Switch 132 provides a single-pole double-throw switching function.
- a flip-flop mechanism 136 causes the switch 132 to switch back and forth between its two output lines so that alternate FD compare pulses are supplied to alternate pairs of the delay timers 90, 92, 94, and 96.
- the flip-flop 136 is initially placed in its set condition by the activation signal produced by the position comparing mechanism 111. This set condition causes switch 132 to connect its input line 133 to its output line 134 to enable the first FD compare pulse to be supplied to the load and start inputs of the 10A and 8A delay timers 90 and 94. Thereafter, the flip-flop 136 is toggled back and forth between its set and reset conditions by the FD compare pulses. These FD compare pulses are supplied to the toggle input of flip-flop 136 by way of a delay element 137. The magnitude of the time delay provided by delay element 137 is selected so that the toggling caused by any given FD compare pulse occurs after that FD compare pulse has loaded and started the delay timers to which it is supplied.
- the next FD compare pulse to be supplied to the opposite set of delay timers.
- the FD compare pulses are alternately supplied to the two different sets of delay timers.
- the first, third, fifth, etc., FD compare pulses passed by the gate 131 are supplied to the 10A and 8A delay timers.
- the second, fourth, sixth, etc., FD compare pulses passed by the gate 131 are supplied to the 10B and 8B delay timers.
- an FD compare pulse When an FD compare pulse is passed by the gate 131, it is also supplied to the execution control terminal (DO) of the adding mechanism 124 in the target distance determining portion 120. Each such pulse causes the adding mechanism 124 to increment the value in the target distance register 122 by the dot spacing value obtained from register 109. In the Fig. 16 example, this dot spacing value is 72.
- An FD compare pulse is produced when the printhead is less than one emitter unit away from a print wire fire point. It is necessary to use the fire distance (FD) value which is present in the fire distance register 129 at the occurrence of this FD compare pulse to cause the generation of the desired print wire fire pulse at the print wire fire point.
- This fire distance value is a fractional part of an emitter unit. This fractional distance value is converted to an equivalent time value and this equivalent time value is loaded into, for example, the 10A delay timer 90. Delay timer 90 then counts off this equivalent time delay interval and, at the end of such interval, produces the desired print wire fire pulse by triggering the 10A one-shot timer 91.
- a similar procedure is followed for the 10B delay timer 92. A modified version of this procedure is followed for the 8A and 8B delay timers 94 and 96.
- the fractional emitter fire distance (FD) value in register 129 is multiplied by the emitter time ET in a multiply mechanism 138. This converts the distance value into an equivalent time value.
- the emitter time ET is expressed in terms of microseconds per emitter unit.
- multiplying this emitter time value by the fractional emitter unit fire distance gives the time value represented by the fractional emitter unit fire distance.
- This time value is, however, too large because the numerical value in the fire distance register 129 is in 1/24th emitter subunits.
- this divide by 24 action is obtained by proper scaling in the multiply mechanism 138, in which case a separate divide by 24 mechanism is not required.
- the signal on output line 140 is the time equivalent, expressed in microseconds, of the fractional emitter unit fire distance (FD) value in register 129.
- This time equivalent value is modified by a subtraction mechanism 141 to compensate for the time delay caused by the performance of the various mathematical and comparison operations shown in Fig. 15.
- the time equivalent value on the line 140 represents the value needed at the leading edge of the emitter pulse for the emitter cycle in which the value is determined. Several microseconds are, however, required to do the calculations to obtain this value and to load it into the appropriate 10A or 10B delay timer.
- the subtraction mechanism 141 compensates for this by subtracting from the calculated time equivalent value a factor N which represents in microseconds the time required to do the calculations and to load the equivalent time value into the appropriate delay timer. In effect, the calculating and loading time delay is treated as part of the needed fire distance delay and only the remaining part of the fire distance delay is loaded into the 10A or 10B delay timer.
- the procedure for the 8A and 8B delay timers 94 and 96 is a modified version of the foregoing procedure.
- an offset time value is added to the delay time at the output of subtraction mechanism 141 to help compensate for the fact that the print wires in the four-wire groups are physically offset from the print wires in the five-wire groups, it being remembered that the print wires in the four-wire groups are serviced by the 8A and 8B delay timers.
- Part of the offset is compensated for by the image microprocessor 61 (Fig. 10) by its selection of the dot data which is supplied to the 8A and 8B print wire fire data latches (Fig. 12).
- the remainder of the offset compensation is provided by a multiply mechanism 142 and an adding mechanism 143.
- the factor M supplied to the multiply mechanism 142 represents the desired offset in whole and fractional emitter units. This is multiplied by the emitter time ET to convert the offset distance M to an equivalent offset time value expressed in microseconds. This offset time is then added by the adder 143 to the delay time which was used for the 10A and 10B timers to produce the delay time to be used by the 8A and 8B delay timers 94 and 96.
- the offset distance M is chosen to have a value of 1.0 emitter units. This provides part of the offset compensation, with the remainder of the offset compensation being provided by the proper selection of the dot data loaded into the 8A and 8B print wire fire latches.
- the distance compensation factor M will have a value of zero. This occurs where the dot spacing is such that the five-wire to four-wire offset is a whole number of dot spacings or options. In this case, all of the compensation is provided by the selection of the proper dot data to be placed in the 8A and 8B print wire fire latches. For this M equals zero case, no five-wire to four-wire offset time is added to the previously calculated delay time appearing at the output of subtraction mechanism 141.
- the various mathematical operations and comparison operations shown in Fig. 15 are controlled by timing pulses developed by a decoder 144 which decodes the count value in the up counter 114 to produce on separate timing pulse output lines respective ones of a sequence of timing pulses T1, T2, T3, etc.
- the T1 pulse is produced by a first count in counter 114, the T2 pulse by second count in counter 114, the T3 pulse by a third count in counter 114, etc.
- the T1 timing pulse is supplied to the divider mechanism 117a to cause a performance of the dividing operation therein.
- the T2 timing pulse causes the performance of the comparing operation in the compare mechanism 111.
- the T3 through T8 timing pulses cause the performance of the functions provided by the respective ones of the subtract mechanism 128, the multiply mechanism 138, the subtract mechanism 141, the multiply mechanism 142, the add mechanism 143, and the FD compare mechanism 130. These timing pulses control the sequence in which the different operations are performed.
- the use of the T1, T2, T3, etc., timing pulses is not needed.
- the sequencing of the different operations is automatically performed by the sequencing of the microcode which controls the microprocessor.
- Fig. 16 shows an example of the operation of the Fig. 15 wire fire control mechanism for the DP mode of operation with a character density of 10 characters per inch and a printhead movement speed of 40 inches per second.
- the dot option spacing is 3.0 emitter units and the number of options per inch is 100.
- the print wire flight time is assumed to be 370 microseconds.
- the printhead is assumed to be moving from left to right across the paper being printed on.
- the fractional start target component F is assumed to have a value of zero for the Fig. 16 example. This is indicated by the fact that the centre point for the first dot option coincides with the leading edge of an emitter pulse cycle.
- the value loaded into the initial set register 112 is a value of 120 emitter subunits.
- the value loaded into the dot spacing register 109 is 72 emitter subunits.
- the flight time distance in the FTD register has a value of 106 emitter subunits. This FTD value remains constant so long as the printhead speed remains constant at the 40 inches per second value.
- the emitter pulses occur at the leading edges or beginnings of the emitter cycles.
- Emitter cycles A and B in Fig. 16 occur before the occurrence of the activation signal.
- the value in the target distance register 122 remains constant at 120, this being the value loaded from the initial set register 112.
- gates 125 and 131 are disabled.
- the subtract mechanism 128, however, is active to calculate the fire distance (FD) value during the T3 timing pulse interval in each cycle. This produces a fire distance (FD) value of 14 emitter subunits in the fire distance register 129.
- the activation signal is produced during the T2 timing pulse interval of emitter cycle C by the compare mechanism 111. This sets the latch 126 to enable the gates 125 and 131. This occurs too late to allow passage of the emitter pulse occurring at the beginning of emitter cycle C. Thus, the subtract mechanism 123 does not operate during emitter cycle C. Thus, there is no immediate change in the target distance value in register 122. It remains at 120.
- the fire distance value of 14 in the fire distance register 129 does play a role during emitter cycle C.
- the FD comparison mechanism 130 sees this value of 14 and produces an FD compare pulse.
- This FD compare pulse is supplied to the adder 124 to increment the value in target distance register 122 by a factor of 72.
- This same FD compare pulse is also supplied by way of switch 132 to load and start the 10A delay timer 90 with a delay time value corresponding to the 14 emitter subunit fire distance value less the calculation delay compensation factor deducted by subtractor 141.
- the 10A delay timer 90 counts down this delay time value and, at the end of such delay time, triggers the 10A one-shot timer 91 to produce the 10A print wire fire pulse to commence the movement of any 10A print wires which are to produce dots at the first 10A option position.
- the flight time distance (FTD) for these print wires is indicated in Fig. 16. It has a value of 4.4 emitter units. This flight time distance terminates when the fired print wires strike the paper which, as indicated in Fig. 16, occurs at the first 10A option position.
- the emitter pulse supplied to gate 125 causes subtractor 123 to subtract a count of 24 from the target distance register 122.
- the resulting count in register 122 is now 168.
- the 106 FTD value is subtracted from this 168 value to produce a fire distance value of 62 in the fire distance register 129. This value is not less than 24, hence the FD comparison mechanism 130 does not produce an FD compare pulse.
- a similar set of events occurs during the subsequent emitter cycle E.
- the target distance value in register 122 is decreased by a factor of 24 to cause a corresponding decrease by a factor of 24 in the fire distance value in register 129.
- the result has a value of 38, which is still too big to produce an FD compare pulse.
- Emitter cycle F is different. It starts off the same by reducing the value in target distance register 122 by a factor of 24. This causes the value in fire distance register 129 to be likewise reduced by a factor of 24. This results in a fire distance value of 14, which, in turn, causes the FD comparator 130 to produce an FD compare pulse.
- This FD compare pulse is supplied by way of the switch 132, but this time it goes to the 10B delay timer 92 to load and start the timing action therein.
- the 10B one-shot timer 93 is triggered to produce the 10B print wire fire pulse. This 10B print wire fire pulse commences during emitter cycle F because the fire distance value of 14 emitter subunits is less than one emitter unit after the beginning of emitter cycle F.
- the FD compare pulse produced during emitter cycle F is also supplied to the adder 124 to increase the count in target distance register 122 by a factor of 72. This occurs after the subtraction of the count of 24 because the FD compare pulse is produced by the T8 timing pulse which occurs after the emitter pulse which activated the subtractor 123. This emitter pulse, in effect, occurs at a T0 timing pulse time.
- the foregoing operations are repetitive in nature and are repeated over and over again until the printhead reaches the stop target position specified in the print command. At that point, the activate latch 126 is reset to provide the inactive condition.
- the print wire fire control mechanism then awaits the arrival of the next print command from the image microprocessor 61. In some cases where a series of print commands are issued for the same line of printing, the execution of the next print command may occur so quickly after completion of the printing for the preceding print command such that the printhead may not come to a complete standstill during the very brief interval between the executions of the two print commands.
- the various mathematical operations (add, subtract, multiply and divide) and the comparison operations shown in Fig. 15 are performed by the arithmetic and logic unit in the printhead microprocessor 65.
- the various registers are general purpose registers located in the printhead microprocessor 65.
- the various counters and timers may be implemented in either hardware or software form, or some combination of the two.
- the movements of the various signals from one point to another are controlled by the microcode associated with the printhead microprocessor 65, which microcode is resident in the ROM unit 66 shown in Fig. 10.
- the print wire fire control mechanism described above automatically and efficiently enables printing to be accomplished over a relatively large range of printhead movement speeds. This enables the highest possible printhead speed to be provided for each of various different dot densities.
- the mechanism also enables printing to be performed when the movement of the printhead is either accelerating or decelerating. It is not required to print only when the printhead is moving at a constant speed.
- the mechanism further enables dots to be printed at positions which are not dependent on or limited to the fixed points defined by the emitter signals. This enables a greater range of different character fonts to be provided. All of the foregoing is accomplished with a relatively high degree of placement accuracy.
Landscapes
- Dot-Matrix Printers And Others (AREA)
- Printers Or Recording Devices Using Electromagnetic And Radiation Means (AREA)
- Projection-Type Copiers In General (AREA)
- Transforming Electric Information Into Light Information (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
a printhead (42) including a plurality of print wires (44) for printing dots,
means for moving the printhead across a print receiving medium,
means for detecting the position of each print wire relative to the print receiving medium as the printhead moves across the print receiving medium,
means for establishing a plurality of target positions (45, 46) on the print receiving medium in each of which a dot is to be printed,
firing means for selectively firing each print wire so that it causes a dot to be printed on the print receiving medium, and
a print wire fire control mechanism for controlling the operation of the firing means so that each selected print wire prints a dot in a predetermined target position on the print receiving medium.
means for calculating the flight time distance (FTD) through which the printhead will move during the time interval between the time each selected print wire is fired and the time the selected print wire will cause a dot to be printed, and
control means for firing each selected print wire when the distance between the selected print wire and a predetermined target position (TD) is substantially equal to the flight time distance (FTD).
Description
- This invention relates to mechanisms for controlling the firing of print wires in the moving printhead of a wire matrix printer.
- A wire matrix printer employs a set of print wires which are located in a printhead which is mounted on a carriage which moves the printhead back and forth across a platen on which rests the paper on which the characters and images are to be printed. A printing ribbon is located between the printing end of the printhead and the paper. An individual actuator coil is provided for each print wire. Energising of an actuator coil by an electrical pulse fires the associated print wire. In particular, this causes the print wire to move forward rapidly and drive the printing ribbon against the paper to print a dot on the paper. Each of the various alphabetical, numerical and other printed characters is formed by printing a pattern of dots which creates the shape of the character on the paper.
- In order to form the printed characters on the paper, it is necessary to correlate the firings of the print wires with the location or position of the printhead along its path of travel as it moves across the paper. This is accomplished by providing a mechanism which generates a series of position marker pulses as the printhead moves across the paper. A position marker pulse is generated each time the printhead moves a fixed incremental distance. The position of the printhead can be continuously monitored by counting these marker pulses.
- These position marker pulses are sometimes referred to as "emitter pulses" or "emitter signals" and the mechanism which produces them is sometimes referred to as an "emitter mechanism". This "emitter" terminology will be used in the present specification and claims. Also, the term "emitter unit" will be used as a unit of distance measurement. In this case, one emitter unit represents the distance the printhead will move between the generation of the leading edge of one emitter signal and the generation of the leading edge of the next emitter signal. It represents the physical distance corresponding to the spacing between the beginnings of two successive emitter signals. The value of an emitter unit is a fixed constant for any given printer and is usually relatively small, typically of the order of a few thousandths of an inch.
- There are two primary types of emitter mechanism, namely a linear emitter mechanism and a rotary emitter mechanism. A linear emitter mechanism includes a stationary linear element which is attached to the printer frame and which extends the length of the platen. The linear element has uniformly spaced indicia on it which are sensed by a detector element which is carried on the printhead carriage. A rotary emitter mechanism, on the other hand, includes a rotary encoder type device having a movable element which is coupled to the drive system for the printhead carriage so that it will rotate as the printhead moves across the platen. Rotation of the movable element generates emitter signals. In either case, linear or rotary, a new emitter signal is produced each time the printhead moves a fixed incremental distance across the paper.
- Various forms of print wire fire control systems have been heretofore used to indicate when the print wires should be fired. The most common technique for generating the print wire fire timing is simply to fire the appropriate print wires whenever an emitter pulse occurs. In the case of bidirectional printing, a time delay is added following the occurrence of the emitter pulses when moving in one of the directions to enable dots produced with the printhead moving in opposite directions to align vertically with one another. A more sophisticated technique that has been proposed is to use timing circuitry to generate pseudo-emitter pulses (usually two or three) between the leading edges of the actual emitter pulses. This provides more instants at which print wires may be fired and thereby provides somewhat better resolution. A problem with these known and proposed methods is that the character fonts or character styles which can be printed must be compatible with the emitter pulse spacing. This limits the choices for various font parameters such as dot density, characters per inch, and the like.
- Another factor that needs to be taken into account in a wire matrix printer is the flight time of the print wire. A finite time, of the order of a few hundred microseconds, is required to get the print wire moving and to move it the necessary distance to strike the ribbon against the paper. This causes a problem because the printhead is also moving across the paper while the print wire is in flight. Thus, by the time the print wire strikes the paper, the print wire is no longer in the same position across the paper as it was when the firing of the print wire was commenced. The printhead may have moved anywhere from two or three or more emitter positions while the print wire was in flight. If not taken into account properly, this flight time factor can cause the different printed dots to be unevenly spaced relative to what is desired.
- A common method of handling the print wire flight time is to print only when the printhead is moving at a known constant speed. In this case, the effect of the print wire flight time is the same for all of the printed dots. Consequently, there is no distortion or unevenness in the printed text or image. Also, for the case of bidirectional printing where some characters are printed with the printhead moving from left to right and other characters are printed with the printhead moving from right to left, proper alignment for the two directions can be maintained by adding a fixed time delay when printing in one of the two directions.
- It is desirable to be able to print at a variety of different constant speeds. For one thing, this enables different character fonts each to be printed at its own maximum printhead speed, such maximum speed being a function of the dot density. It is also desirable to be able to print at non-constant printhead speeds. In other words, it is desirable to be able to print while the printhead is accelerating or decelerating. For one thing, this enables a reduction of the overall width of the printing apparatus because the side areas of the printer need not be wide enough to enable the printhead to get up to a constant speed before entering the printing region. For another thing, it enables the changing of printhead speeds and hence character fonts in the middle of a line of printing.
- Accurate dot placement cannot be obtained at different speeds or when the printhead is accelerating or decelerating unless a mechanism is provided for compensating for the print wire flight time and for changing the amount of compensation as a function of printhead speed. This is because the distance the printhead moves while the print wire is in flight is a function of the speed of the printhead. This distance will be different for different printhead speeds. As far as is known, no generally acceptable mechanism has been heretofore proposed for providing accurate dot placement for a relatively wide range of printhead speeds.
- Accurate dot placement is of critical importance when doing multi colour printing or when printing graphic images. For multi colour printing, intermediate colours are obtained by overprinting the same dot positions with different colours during different passes of the printhead. When printing graphic images, different portions of an overall image may appear on different print lines, thus requiring good vertical alignment from print line to print line.
- The object of the present invention is to provide a wire matrix printer having an improved print wire fire control system.
- The present invention relates to a wire matrix printer of the type comprising
a printhead including a plurality of print wires for printing dots,
means for moving the printhead across a print receiving medium,
means for detecting the position of each print wire relative to the print receiving medium as the printhead moves across the print receiving medium,
means for establishing a plurality of target positions on the print receiving medium in each of which a dot is to be printed,
firing means for selectively firing each print wire so that it causes a dot to be printed on the print receiving medium, and
a print wire fire control mechanism for controlling the operation of the firing means so that each selected print wire prints a dot in a predetermined target position on the print receiving medium. - A printer according to the invention is characterised in that the print wire fire control mechanism comprises
means for calculating the flight time distance through which the printhead will move during the time interval between the time each selected print wire is fired and the time the selected print wire will cause a dot to be printed, and
control means for firing each selected print wire when the distance between the selected print wire and a predetermined target position is substantially equal to the flight time distance. - By utilising the flight time distance to control the firing of each print wire, the fire control mechanism ensures that each dot is printed accurately in the required position for different printhead movement speeds.
- In order that the invention may be more readily understood, an embodiment will now be described with reference to the accompanying drawings, in which:
- Fig. 1 is a side view, in simplified form, of the major components of a wire matrix printer in which a print wire fire control mechanism in according with the present invention may be used,
- Fig. 2 is a diagram used in explaining the operation of a print wire fire control mechanism in accordance with the present invention,
- Fig. 3 is a functional block diagram of a first embodiment of a print wire fire control mechanism in accordance with the present invention;
- Fig. 4 is a functional block diagram of a second embodiment of a print wire fire control mechanism in accordance with the present invention,
- Fig. 5 is a elevational view of the end of a printhead used in the printer of Figure 1 which is nearest to the platen of the printer,
- Figs. 6 and 7 show the same alphabetical character printed in two different character fonts,
- Figs. 8 and 9 show different rotational positions for the printhead of Fig. 5,
- Fig. 10 is a schematic block diagram of a digital controller for a wire matrix printer including a print wire fire control mechanism in accordance with the present invention,
- Fig. 11 is a timing diagram illustrating the emitter signals generated in the controller of Fig. 10,
- Fig. 12 shows in greater detail the construction of the print wire fire timers and the print wire fire latches of the controller of Fig. 10,
- Fig. 13 is a timing diagram used in explaining the operation of the circuits in Fig. 12,
- Fig. 14 shows in greater detail the construction of the DMA request circuit of the controller of Fig. 10,
- Figs. 15A and 15B when placed together as illustrated in Fig. 15 form a schematic block diagram of the logic executed by the printhead microprocessor of Fig. 10 for the print wire fire timers shown in Fig. 12, and
- Fig. 16 is a distance diagram used in explaining the operation of the Figs. 15A and 15B logic.
- Referring to Fig. 1, there is shown in a simplified manner a wire matrix printer with its outer cover removed. This printer includes a
base plate 20 and a pair of side frames 21 and 22 secured thereto. An elongated platen bar orplaten 23 extends between the side frames 21 and 22 and the extremities of theplaten 23 are secured to the side frames 21 and 22 respectively. Aprinthead 24 is mounted on aprinthead carriage 25 which, in turn, is slidably mounted on a pair ofcarriage support shafts 26 and 27. Thesupport shafts 26 and 27 run parallel to theplaten 23 and the extremities of thesupport shafts 26 and 27 are secured to the side frames 21 and 22 respectively. Theprinthead carriage 25 is moved back and forth along thesupport shafts 26 and 27 by a motor, pulley and belt mechanism. In particular, a reversibleelectric motor 28 is mounted on abracket plate 29 which is, in turn, secured to the exterior of theside frame 22. Afirst pulley 30 is mounted on theshaft 31 of themotor 28. Asecond pulley 32 is mounted on the exterior side of the other side frame 21 by means of abracket 33. Aclosed loop belt 34 is strung between and mounted on the twopulleys Belt 34 passes throughwindows Belt 34 is attached to the underside of theprinthead carriage 25 by means ofscrews 37 and 38. - It should be carefully noted that the
printhead drive motor 28 is not a stepper motor. It is an ordinary direct-current motor and its rotor and shaft are caused to rotate whenever direct current is fed through its motor windings. The direction of rotation (clockwise or counterclockwise) is determined by the direction of the current flow through the motor windings. The speed of rotation is determined by the average value of the current flow through the motor windings. - In use, a
print receiving medium 40 is positioned over theplaten 23 on the side facing theprinthead 24. Thisprint receiving medium 40 is the medium on which the characters and images are to be printed. For sake of example, it will be assumed to be paper material of a desired length. Other examples of a print receiving medium include multi-part forms, envelopes, foils for visual projectors and the like. An inkedprinting ribbon 41, only a short segment of which is shown in Fig. 1, is located intermediate theprinthead 24 and theprint receiving paper 40.Ribbon 41 is supplied from a ribbon cartridge (not shown) and means (not shown) are provided for moving it past theprinthead 24 to enable use of all the ribbon in the cartridge. - Energising the
printhead motor 28 with electric current produces movement of thebelt 34 which, in turn, moves theprinthead carriage 25 along thecarriage support shafts 26 and 27. When thecarriage 25 reaches one side of the printer, the direction of current flow is reversed and thecarriage 25 moves back along thesupport shafts 26 and 27 in the opposite direction. In this manner, thecarriage 25, and hence theprinthead 24, is caused to move back and forth across the printer. The printing end ofprinthead 24 is in alignment with theplaten 23 and moves back and forth across the length of theplaten 23. There is a small spacing gap between the printing end of the printhead and the platen, this gap being sufficient to accommodate theribbon 41 and thepaper 40 with a little room to spare. - As the
printhead 24 moves across theplaten 23 and, hence, across theprint receiving paper 40 resting on theplaten 23, the individual print wires in theprinthead 24 are fired to produce patterns of dots on thepaper 40. More precisely, when a print wire is fired, it lunges forward toward theplaten 23 and the end of the print wire drives the inkedribbon 41 against thepaper 40 with a quick striking action to produce a dot of ink on thepaper 40. After hitting the ribbon and paper, the print wire bounces back towards its rest position in the printhead. A return spring associated with the print wire completes its return to its rest position. By firing the different print wires at the proper times as theprinthead 24 moves across thepaper 40, the desired alphabetical characters, numerical characters and other characters (e.g., punctuation, dollar sign, etc.) are produced on thepaper 40. - After one line of characters has been printed on the
paper 40, thepaper 40 is advanced by a paper feed mechanism (not shown) to bring a fresh portion of paper into position on theplaten 23. The next line of characters is then printed on this fresh portion of paper. Thepaper 40 is stationary while a line of characters is being printed and is moved or advanced the appropriate distance after the completion of one line of printing and before the commencement of the next line of printing. - In a bidirectional printer, one line of characters may be printed while the
printhead 24 is moved across the paper from left to right and the next line of characters may be printed while theprinthead 24 is moving in the opposite direction, namely, from right to left across the paper. This type of printing requires the use of a data storage mechanism for storing the dot data for a complete line of characters so that such data can be supplied to theprinthead 24 in a reverse manner when the printing is being done in the reverse direction, namely, from right to left. This is usually accomplished with the use of modern high-speed microcomputer circuitry. - In passing, it should be noted that the wire matrix printer of Fig. 1 is not limited to the function of printing text type characters. It can also be used to print graphical and pictorial type images on the
paper 40. All that is required is to fire the appropriate print wires at the appropriate times to cause the resulting dot patterns to create the desired images. In this case, where an image extends over several print lines, the accurate placement of the dots becomes very critical. If the image dots on one print line are not properly placed relative to the image dots on the other print lines, the resulting image will be distorted. - A print wire fire control method and mechanism in accordance with the present invention are based on the usage of uniquely defined targets. These targets are not dependent on and are not limited to the fixed points defined by the emitter signals produced by the position marking mechanism associated with the printhead. These targets and the manner in which they are manipulated provide the key to the sophistication of a method and mechanism in accordance with the present invention and also indicate its inherent simplicity.
- The diagram of Fig. 2 will be used to explain the basic concepts and to define the terms used in describing same. Fig. 2 shows a
printhead 42 which moves horizontally from left to right along aprint line 43.Printhead 42 includes aprint wire 44, the axis of which extends perpendicular to the plane of the paper. Only the end of the print wire is shown in Fig. 2. When fired, theprint wire 44 moves toward the paper at right angles to the plane of the paper.Print wire 44 can, if desired, print dots at dot option positions 45 and 46. A dot option, or simply "option", is a position at which a dot can be printed if the particular character or other image being formed calls for a dot at that position. If the image being formed does not have a dot at that position, then the print wire is not fired and that option is left unprinted. The distance between successive dot options is called a "pel". This pel value will be different for different character fonts having different dot densities. - Three positions are of interest relative to the movement of the
printhead 42. These are the head position (HP), the fire position (FP) and the target position (TP). The position values are measured along the length of theplaten 23 and theprint line 43 with one end of the platen, usually the left-hand end, being taken as the starting or reference position for measurement purposes. It will be assumed herein that the position measurements are made relative to the left-hand end of theplaten 23 and that the numerical position values increase from left to right across theplaten 23. - The head position is the actual position of the printhead along the
platen 23. More precisely, it is the position of theprint wire 44 and not theprinthead 42 which is of interest, but for simplicity of explanation, the terms "head position" and "printhead position" will be used when what is really meant is the "print wire position". In this regard, what is meant by print wire position is the position of the geometrical centre point of the end of the print wire. - The fire position is the position at which the print wire should be fired in order for the end of the print wire to strike the paper at the target position. The target position is the position of the next dot option to be encountered by the print wire being considered. More precisely, the target position is the geometrical centre point of the next dot option.
- The target distance (TD) is the distance from the head (wire) position to the target position. The fire distance (FD) is the distance from the head (wire) position to the fire position when the printhead is on the upstream side of the fire position. The flight time distance (FTD) is the distance from the fire position to the target position. This flight time distance is the distance the printhead will move during the time interval between the time the print wire is fired and the time the print wire will strike the paper, or, in other words, the time interval during which the print wire is in flight from the printhead to the paper.
- The flight time is a constant for any given printhead construction and any given gap distance or separation distance between the printhead and the paper being printed on. This flight time is typically somewhere in the range of 350 to 400 microseconds, with a flight time of 370 microseconds being a representative value.
- The flight time distance, on the other hand, is not a constant value. It is dependent upon and varies with the speed or velocity of movement of the printhead along the print line. The greater the speed of the printhead, the greater is the flight time distance and vice versa. The fire distance is also speed dependent since it represents the difference between the target distance and the speed dependent flight time distance. As the flight time distance increases, the fire distance decreases and vice versa.
- When the
printhead 42 reaches the first target position, namely, the position of thefirst dot option 45, a new target position is established and used. This new or next target position is the position of thenext dot option 46. A new fire position is also determined, this new fire position being intermediate the twodot options printhead 42 reaches thesecond dot option 46 and each subsequent dot option in any given segment of printing. - The first dot option in any given segment of printing can be located at any desired position along the
print line 43. The position of this first dot option is not dependent on or limited to the fixed points defined by the position marking emitter signals. For any given character font and, hence, any given dot option density, the distance between successive dot options is a fixed value which is called the "pel". This pel value is also not dependent upon the fixed points defined by the emitter signals. The pel value does not have to be a whole number multiple of the emitter signal spacing. Neither the first dot option nor any of the subsequent dot options in any given segment of printing need be located at the fixed points defined by the emitter signals. They may be, but they need not be. The various position and distance values used herein are expressed in whole and fractional emitter units. In the embodiment described herein this is accomplished by expressing these values in emitter subunits where each subunit is equal to 1/24th of an emitter unit. - Referring to Fig. 3, there is shown the primary features of a wire fire control mechanism constructed in accordance with a first embodiment of the invention. For convenience, this Fig. 3 embodiment will be referred to as a "relative position" embodiment because the position of the printhead relative to the target position (target distance) is used to determine the firing of the print wire. This embodiment includes means for tracking the target distance, namely, the distance between the print wire position and the position at which a dot is to be printed on the print receiving medium which, for sake of example, is assumed to be paper. By "tracking" is meant measuring or monitoring this distance on a continuous basis as the printhead moves across the print receiving paper. This means for tracking the target distance includes a
subtraction mechanism 47 for subtracting a head position signal (HP) from a target position (TP) signal to provide a target distance signal (TD) when the printhead is moving from left to right. This is for the present embodiment wherein the position numbering system starts at the left side of the printer and the position values increase from left to right across the printer platen. In such case, the target position will have a higher numerical value than the head position. This left-to-right numbering convention will be used throughout the remainder of this description. - For calculation purposes, it is desired that the target distance always has a positive value. Accordingly, when the printhead is moving in the opposite direction, namely, from right to left, the subtraction process is reversed so that the lower-valued target position is subtracted from the higher-valued head position. In other words, as used in this description, the target distance is a positive value representing the difference between the head and target positions.
- In the preferred implementation, both the target position and the head position are supplied to the
subtraction mechanism 47 in the form of plural-bit binary data signals and the subtraction operation is performed by the arithmetic and logic unit (ALU) in a microprocessor. In this case, the target distance is also in the form of a plural-bit binary data signal. - The target position signal specifies the next dot option at which a dot may be printed on the paper. This signal is provided by the system logic based on the parameters specified by the user. Initially, it represents the position of the first dot option in a given segment of printing. When the first dot option position is reached by the printhead, the target position′s value is updated by the pel value to provide the target position for the next dot option.
- The head position signal is provided by an emitter mechanism associated with the printhead drive system. Typically this emitter mechanism includes a bi-directional (up-down) counter for counting the position marking pulses generated by the emitter mechanism. This counter counts in the upward direction when the printhead is moving from left to right and counts in the downward direction when the printhead is moving in the opposite direction from right to left. Thus, the head position signal represents the actual position of the printhead at any given instant.
- The embodiment of Fig. 3 further includes means for determining the flight time distance, namely the distance the printhead will move during the time interval between the time instant the print wire is fired and the time instant the print wire will strike the print receiving paper. This flight time distance determining means includes a
divider mechanism 48 for dividing a flight time value (FT) by an emitter time value (ET) to produce the flight time distance value (FTD). In the preferred implementation, all three of these values, namely, the flight time value (FT), the emitter time value (ET) and the flight time distance (FTD) are in the form of plural-bit binary data signals and the dividing operation is performed by the arithmetic and logic unit of a microprocessor. - The flight time (FT) is the time required for the print wire to move from its at rest position to its paper striking position. It is expressed in microseconds with a value of 370 microseconds being representative. For any given printhead construction over any short term time interval, the flight time is a constant value. It may change slightly over a long period of time as the printhead undergoes continued wear and tear. It may also change slightly when the printer is used in other than a normal operating environment. In either case, the flight time value can be modified to reflect the change. For present purposes, the flight time value will be assumed to be a constant.
- The emitter time (ET), on the other hand, represents a measurement of the speed of movement of the printhead from left to right or right to left, as the case may be, across the paper being printed on. The emitter time represents the time required for the printhead to move from one emitter marking point to the next emitter marking point. In other words, the emitter signals represent fixed increments of movement of the printhead across the paper and the emitter time is the time required for the printhead to make one of these fixed increments of movement. Thus, the emitter time is the inverse or reciprocal of the printhead speed. The faster the printhead speed, the smaller is the emitter time. Conversely, the slower the printhead speed, the larger is the emitter time.
- In the present embodiment, the emitter time is also measured in microseconds. The
divider mechanism 48 divides the flight time by the emitter time to produce the flight time distance signal. The flight time represents microseconds, while the emitter time represents microseconds per unit distance. Thus dividing the one by the other yields the number of unit distances and fractions thereof represented by the flight time. In this application, the unit distance is called an "emitter unit". Thus, the flight time distance is expressed herein as the number of emitter units and fractions thereof the printhead will move while the print wire is in flight to the paper. This flight time distance varies as a direct function of the printhead speed. The faster the printhead speed, the greater is the flight time distance and vice versa. - An observation of interest is that if the printhead is moving very slowly, then the flight time distance becomes very small and may perhaps be ignored. For the range of speeds covered by the present invention, this flight time distance is not negligible and needs to be taken into account.
- The Fig. 3 embodiment also includes means for firing the print wire when the target distance becomes substantially equal to the flight time distance. This means for firing the print wire is represented by a
comparison mechanism 49 which compares the target distance signal (TD) with the flight time distance signal (FTD) and produces a print wire fire signal at its output when the two input signals become of equal value. Thecomparison mechanism 49 may include, for example, asubtraction mechanism 50 and a zerodetection mechanism 51. When the difference between the two input signal values become zero, the zerodetector 51 produces a print wire fire output pulse. If a dot is to be printed at the dot option in question, then this print wire fire pulse causes current to be supplied to the actuator coil for a particular print wire and this wire is fired to produce an ink dot on theprint receiving paper 40. - In the preferred implementation, the subtraction operation of the
mechanism 50 is performed by the arithmetic and logic unit (ALU) in a microprocessor and the zero detection function is performed by the ALU condition testing circuitry which is normally used to detect the occurrence of a zero value output from the ALU. - The Fig. 3 embodiment is called a relative position embodiment because the target distance produced by the
subtraction mechanism 47 represents the position of the printhead relative to the target. - Referring now to Fig. 4, there is shown the principal features of a different embodiment of a print wire fire control mechanism constructed in accordance with the present invention. For convenience, this embodiment is referred to as an "absolute position" embodiment because the absolute position of the printhead is used to determine the firing of the print wire. This embodiment includes a
divider mechanism 52 which is responsive to the flight time signal (FT) and to the emitter time signal (ET) for producing the flight time distance signal (FTD). This is the same as before. This embodiment also includes asubtraction mechanism 53 which is responsive to the target position (TP) signal and the flight time distance signal (FTD) for producing a fire position signal. A comparison mechanism 54 is used to compare the absolute head position signal (HP) with the fire position signal (FP). The comparison mechanism 54 produces a print wire fire output pulse when the position of the moving printhead becomes equal to the fire position. - The target position signal (TP) is updated to reflect the next target position when the printhead reaches the current target position. The emitter time is monitored on a continuous basis so that the flight time distance signal (FTD) at any given instant is the correct value for the printhead speed at that instant.
- In the preferred implementation, all signals shown in Fig. 4, except the print wire fire output of the comparison mechanism 54, take the form of plural-bit binary data signals. The divide, subtract and compare operations of Fig. 4 are preferably performed by the arithmetic and logic unit of a microprocessor.
- Referring to Fig. 5, there is shown an end view of the printing end of the
printhead 24 of Fig. 1. This is the end of the printhead which faces and is closest to theplaten 23 and, hence, thepaper 40 of Fig. 1. The surface of this printing end is maintained in a plane parallel to the printing surface of theplaten 23 and is spaced apart a short distance from theplaten 23. This particular printhead includes two sets of print wires, identified as "Set 1" and "Set 2". Compared to the diameters of the print wires, these two sets are spaced apart a relatively large distance along a horizontal axis x. The vertical axis is represented by reference letter y. The horizontal axis x extends parallel to the longitudinal axis of theplaten 23. The vertical y axis extends in the direction the paper is fed when it is advanced from one portion to be printed to the next. - The ends of the print wires in
Set 1 are identified by reference numerals 1-9, while the ends of the print wires inSet 2 are identified by reference numerals 10-18. When a print wire in the view of Fig. 5 is fired, it moves outwardly toward the reader in a direction which is perpendicular to the plane of the paper in Fig. 5. - Each set of print wires has first and second groups of print wires which are spaced apart a relatively small horizontal distance. The print wires in the first group in
Set 1 are numbered 1, 3, 5, 7 and 9. There are five print wires in this first group. The print wires in the second group ofSet 1 are numbered 2, 4, 6 and 8. There are four wires in this second group. The print wires in the first group ofSet 2 are numbered 10, 12, 14, 16 and 18. There are five print wires in this first group. The print wires in the second group ofSet 2 are numbered 11, 13, 15 and 17. There are four print wires in this second group. - The ends of the print wires in any given group are in vertical alignment with one another, that is, they are disposed along an axis that runs parallel to the y axis. The vertical locations of the ends of the print wires in each second group are staggered relative to the ends of the print wires in their respective first group. Thus, the centre point of
wire 2 is vertically positioned intermediate the centre points ofwires Set 2, the centre point of each wire in the second group is vertically positioned midway between the centre points of the two neighbouring wires in the first group. Also, as will be better seen from a later figure,wire 10 is not in horizontal alignment withwire 1,wire 11 is not in horizontal alignment withwire 2, etc. The centre points of the wires inSet 2 are vertically displaced relative to the centre points of the wires inSet 1 so that they are located midway between the centre points of theSet 1 wires (see Fig. 9). - Some representative dimensions will now be given with the clear understanding that they are by way of example only. Thus, a representative value for the diameter of each print wire is 11 × 10⁻³in (2.794 × 10⁻⁴m). A representative value for the horizontal distance between like groups in the two sets is 0.3in (7.64 × 10⁻³m). In other words, the spacing between the vertical axis for the second group of wires in
Set 1 and the vertical axis for the second group of wires inSet 2 is 0.3in (7.64 × 10⁻³m). The spacing or distance between the vertical axes of the first and second groups in the same set is one sixtieth (1/60) of an inch. The corresponding decimal value is approximately 0.017in (4.318 × 10⁻⁴m). - The basic unit of distance measurement used throughout this application is the "emitter unit". In a representative implementation of this invention, the value of the emitter unit was chosen to be one three-hundredths (1/300) of an inch. This is approximately 0.003in (7.64 × 10⁻⁵m). Another way of looking at it is that one inch (2.54 × 10⁻²m) of movement by the printhead across the print line causes the emitter mechanism associated therewith to produce 300 emitter pulses. This representative value of 300 emitter pulses per inch (2.54 × 10⁻²m) is the assumed value that will be used throughout the remainder of the description portion of this specification. In this case, the horizontal spacing between corresponding groups in the two print wire sets is 90 emitters, while the horizontal spacing between the two groups of wires in the same set is 5 emitters.
- A print wire fire control method in accordance with the present invention enables the construction of a wire matrix printer which is capable of printing a wide variety of different character fonts. Typically, the different character fonts have different dot densities for the printed characters. Also for any given character font, different character pitches or characters per inch can be provided.
- Figs. 6 and 7 show examples of the letter E printed in two different character fonts using the printhead of Fig. 5. The reference numerals for the individual dots in Figs. 6 and 7 indicate which print wires of the Fig. 5 printhead are used to print the dots. The character font for Fig. 6 is called a "data processing" or DP quality font. The dot density is relatively low and this font can be printed at a higher speed of movement of the printhead across the printed page. The character font for Fig. 7 is called a "near letter quality" or NLQ font. The dot density in both the vertical and horizontal directions has been doubled relative to Fig. 6 and the improved quality of the printed character is apparent. The printhead is moved at a slower speed when printing the Fig. 7 font.
- Another difference between the fonts of Fig. 6 and 7 is the manner in which the Fig. 5 printhead is used. This difference is indicated in Figs. 8 and 9. To print the character font of Fig. 6, the printhead of Fig. 5 is rotated slightly to bring the print wires in
Set 2 into horizontal alignment with the corresponding print wires inSet 1. Thus,wire 10 is brought into horizontal alignment withwire 1,wire 11 is brought into horizontal alignment withwire 2, etc. The angle of rotation required to accomplish this is approximately 1.3 degrees. With reference to Fig. 6, this horizontal alignment of the two sets of print wires enables, for example,wires - Fig. 9 shows the printhead angular orientation for printing the near letter quality font of Fig. 7. The Fig. 9 orientation is also used for printing graphic images. In the Fig. 9 case, the print wires of the second set are vertically staggered relative to the print wires of the first set. Thus, for example, the centre point of
print wire 10 is vertically positioned midway between the centre points ofprint wires - The print wire configuration of Fig. 5 and the character font examples of Figs. 6 and 7 illustrate the complexities that can be accommodated by print wire fire control mechanisms constructed in accordance with the present invention. A print wire fire timing method in accordance with the present invention provides the added flexibility needed to accommodate complex timing requirements.
- In general, different character fonts have different dot density requirements. Different dot densities have different upper limits for the speed of movement of the printhead across the paper. Since the usual objective is to print characters as rapidly as possible, this means that different printhead speeds should be used for the different dot densities. A method in accordance with the present invention is particularly well suited for use with a variety of different printhead speeds.
- The following table shows the optimum printhead speeds and other operating parameters for a representative group of character fonts. These operating parameters can be accommodated by a method in accordance with the present invention. For sake of example, they will be assumed to be representative of the parameters used by the detailed embodiment of a mechanism in accordance with the invention to be described herein.
- The items in the MODE column denote different print qualities. The DP mode is the data processing mode and represents the lowest quality in this particular example. It is the one represented in Fig. 6. The NLQ mode is the near letter quality mode and represents the highest quality in this particular example. It is the one represented in Fig. 7 wherein the dot density is doubled in both the horizontal and vertical directions. The TEXT quality mode is an intermediate mode wherein the dot density is doubled only in the horizontal direction. In this text quality mode, the printhead is oriented as shown in Fig. 8 and the printhead speed is reduced to one half the speed used for the DP mode.
- The CPI column shows different pitch or characters per inch values. Pitches of 10, 12 and 15 characters per inch are provided for each of the three quality modes.
- The option distance is shown in both inches and emitter units. The option distance is the distance between successive dot option positions. One emitter unit is equal to one three-hundredths (1/300) of an inch (7.64 × 10⁻⁵m). The speed column gives the speed of movement of the printhead as it moves across the page. The speed values given are in inches per second (IPS).
- The "µSEC PER OPTION" column gives the time in microseconds required for the printhead to move from one dot option position to the next. The "µSEC PER EMITTER" column gives the time in microseconds between the occurrence of the leading edges of successive emitter pulses. These values are the emitter time (ET) values previously mentioned. They are inversely proportional to the printhead speed.
- The FTD column shows the flight time distance values for an assumed print wire flight time of 370 microseconds. This flight time distance is expressed in emitter units. For the case of DP mode with 10 characters per inch, for example, the printhead will move a distance of 4.44 emitter units while the print wire is in flight from the printhead to the paper. As previously mentioned, the flight time distance is dependent upon the speed of movement of the printhead.
- The foregoing table is a representative example of some of the character fonts that can be accommodated by a print wire fire control mechanism constructed in accordance with the present invention.
- Referring now to Fig. 10, there is shown a schematic block diagram showing the primary features of a complete
digital controller 55 for a wire matrix printer. Included in thiscontroller 55 is a representative embodiment of a print wire fire control mechanism constructed in accordance with the present invention. Thecontroller 55 includes an imagedata processing portion 56 and aprinthead control portion 57. - The image
data processing portion 56 receives the higher level image information from a host computer or host data processing equipment to which the printer is connected and converts it into the elemental dot data which is used to control the firing of the print wires in the printhead. The imagedata processing portion 56 includeshost interface circuits 58 which are connected by way of a multiconductor cable 59 to the host computer. Thehost interface circuits 58 are, in turn, coupled to a multiconductorimage processor bus 60 which interconnects various data processing elements in theimage processing section 56. These data processing elements include animage microprocessor 61, a direct memory access (DMA)unit 62, a read/write random access memory (RAM)unit 63 and a read only memory (ROM)unit 64. - The
image microprocessor 61 may be, for example, an Intel-80188 high integration 8-bit microprocessor currently manufactured by the Intel Corporation of Santa Clara, California. As such, it includes an arithmetic and logic unit (ALU), various general purpose registers, various control registers, an interrupt controller, a bus interface unit, several programmable timers, and the like. TheROM unit 64 includes the microcode which controls the operation of theimage microprocessor 61. It also includes the print wire image patterns for several different character fonts. - The
RAM unit 63 is subdivided or partitioned into various working areas and buffer areas which are used during different phases of the image data processing operations.RAM 63 includes, for example, an incoming data buffer area for receiving the high level information from the host computer. It also includes an output buffer area for temporarily holding the print wire image data which tells the print wires when to print and when not to print. It also includes various working areas which are used for creating composite images, for holding the results of intermediate data processing operations, for assembling various data and control elements into unique print task groupings, and the like. - The
DMA unit 62 is used for automatically extracting the print wire image data from the output buffer inRAM 63 and supplying it to theprinthead control portion 57 without having to interrupt theimage microprocessor 61. For the case of an Intel 80188 microprocessor, the DMA unit is actually included as part of the microprocessor chip. The DMA unit is shown separately herein because other types of microprocessors may be used which do not include it on the microprocessor chip. - As an example of one of the various modes of operation of the image
data processing section 56, it is assumed that it is desired to print text material using one of the predefined character fonts which is built into theROM 64. In this case, the host computer sends over a command which tells the image processing section the particular character font which is to be used. Themicroprocessor 61 thereafter uploads a copy of the selected font from theROM 64 into an active font table portion of theRAM 63. Thereafter, the host computer commences to send over code point signals which identify the characters to be printed. Each code point signal is a one byte character code which identifies a particular character to be printed. In response to these code point signals, themicroprocessor 61 extracts the appropriate print wire image dot data from the active font table inRAM 63 and puts it into the output buffer area ofRAM 63. This dot data is thereafter transferred in an option position by option position manner to theprinthead control section 57 as needed. This transfer is accomplished by means of theDMA unit 62. - It is not always necessary to use the preselected character fonts which are built into the
ROM 64. The print wire image data for an alternative character font may instead be sent over cable 59 from the host computer to enable the printing of characters in an alternative font style. Graphical image information, as opposed to text type character information, may also be supplied by the host computer to the imagedata processing section 56. - The
printhead control section 57 includes aprinthead microprocessor 65 for controlling the movement of the printhead across the paper and for controlling the firing times for the print wires. Thisprinthead microprocessor 65 may take the form of, for example, an Intel 8031 8-bit microprocessor currently manufactured by Intel Corporation of Santa Clara, California. As such, it includes an arithmetic and logic unit (ALU), various general purpose and special purpose registers, a programmable input/out (I/O) unit and two programmable 16-bit timers. Associated with theprinthead microprocessor 65 is a read only memory (ROM)unit 66 which contains the microcode which causes themicroprocessor 65 to perform the various control functions. Themicroprocessor 65 andROM 66 are each coupled to a common multiconductorprinthead processor bus 67. Thisbus 67 is also coupled to interfacecircuits 68 which are coupled to theimage processor bus 60. -
Interface circuits 68 are used to transfer plural-bit (e.g., 8-bit) command signals from theimage microprocessor 61 to theprinthead microprocessor 65 and to transfer plural-bit (e.g., 8-bit) status signals from theprinthead microprocessor 65 to theimage microprocessor 61.Interface circuits 68 include a plural-stage command register into which a command byte can be loaded by theimage microprocessor 61 and from which the same command byte can be read by theprinthead microprocessor 65.Interface circuits 68 also include a plural-stage status register into which can be loaded a status byte from theprinthead microprocessor 65 and from which can be read the same status byte by theimage microprocessor 61. Appropriate latch circuits are included for providing a status pending interrupt to theimage microprocessor 61 and a command pending interrupt to theprinthead microprocessor 65. - The command bytes supplied to the
printhead microprocessor 65 are of two general types. One type tells theprinthead microprocessor 65 what to do. The other type supplies to theprinthead microprocessor 65 various operating parameters such as printhead speed, dot option spacing, and the starting and stopping positions for a particular segment of printing. - One function of the
printhead microprocessor 65 is to control the direction and speed of movement of theprinthead 24 of Fig. 1. This is accomplished by controlling the speed and direction of rotation of theprinthead motor 28 which, via thedrive belt 34, causes movement of theprinthead carriage 25 across theprint receiving paper 40. Coupled to theshaft 31 of theprinthead motor 28 are the rotary elements of a pair of emitter mechanisms A and B shown in Fig. 10. Each of the emitter mechanisms A and B is a rotary encoder which generates pulses at regular intervals as its rotary element rotates. These encoders may be, for example, of the optical type. - The output pulses produced by the emitter mechanisms A and B are shown in Fig. 11. These pulses are sometimes referred to herein as emitter signals. The signal sequence from emitter B is identical to the signal sequence from emitter A except that it is shifted in phase by a factor of 90 degrees relative to the signal sequence from emitter A. One of these sequences of emitter signals is sufficient for determining printhead position and speed. The use of the second sequence of emitter signals enables a determination of the direction of movement of the printhead. The construction of the drive system for the
printhead carriage 25 and the spacing of the signal producing elements in each emitter mechanism are such that the duration of each complete emitter signal cycle corresponds to a printhead movement distance of one three-hundredths (1/300) of an inch. In other words, theprinthead 24 must move a horizontal distance of 1/300 of an inch across the paper in order to produce one complete emitter cycle. This emitter signal distance (1/300 inch) (7.64 × 10⁻⁵m) is used herein as the basic unit of distance measurement. - One of the functions of the
printhead microprocessor 65 is to monitor the printhead speed by measuring the time duration of each complete emitter signal cycle. If the measured speed does not agree with the desired speed established by a speed parameter value obtained from theimage microprocessor 61, then an appropriate signal is supplied tomotor control circuits 69 for adjusting the speed of the printhead motor.Motor control circuits 69 supply control signals tomotor drive circuits 70 which control the direction and magnitude of the current flow through the windings of theprinthead motor 28. If the actual printhead speed does not agree with the desired printhead speed, then the speed determining control signal supplied to themotor control circuits 69 is adjusted to decrease the amount of disagreement between the actual and desired speeds. - A second primary function of the
printhead microprocessor 65 is to control the generation of print wire fire timing pulses which determine the permitted firing times for the print wires. More particularly, a plurality of print wire fire latches 71 are provided for receiving the image dot data from theimage processing section 56. For the moment, it will be assumed that there is one print wire fire latch for each print wire. Since, as shown in Fig. 5, there are eighteen print wires, this means that there will be eighteen individual print wire fire latches. Each latch contains either a binary one value or a binary zero value, depending upon whether or not its associated print wire is to print a dot at the next occurring dot option position. This dot option data is loaded into the print wire fire latches 71 from the output buffer section in theRAM 63 by way of theimage processor bus 60 which is connected to the data input of the print wire fire latches 71. The loading of the data is controlled by adecoder 72. - The outputs of the print wire fire latches are connected to individual ones of a plurality of
actuator drive circuits 73. These actuator drivecircuits 73 are, in turn, connected to the individual ones of theprint wire actuators 74. There is a different individual actuator for each print wire. In a ballistics type printhead, each actuator comprises a pivoted lever arm and a solenoid or coil which is positioned to cause movement of the lever arm. One end of the lever arm is positioned against the back end of the print wire and the other end of the lever arm is positioned over the coil. This other end of the lever arm is composed of ferromagnetic material. When the coil is energised with current, the end of the lever arm adjacent the coil is abruptly pulled against the pole piece of the coil. This causes the other end of the lever arm to apply an abrupt driving force to the back end of the print wire to cause the print wire to fly forward towards the paper. A return spring is provided for returning the print wire to its rest position when the current is removed from the coil. In use, the current is removed shortly before the print wire strikes the paper so that when the print wire strikes the paper it can bounce back towards its rest position. - The outputs of the print wire fire latches 71 are normally disabled so that none of the print wire actuators are energised. The outputs of the print wire fire latches 71 are periodically enabled by timing pulses generated by print
wire fire timers 75. When a timing pulse or wire fire pulse enables the output of a particular print wire fire latch, such latch will cause activation of its associated print wire actuator if and only if the data value stored in the latch is a binary one value. If a binary zero value is stored in the latch, then its associated print wire actuator will not be activated. A print wire fire pulse fromtimers 75 determines a point in time at which a print wire is capable of being fired. Whether or not it is actually fired at this point in time is determined by the dot image data value residing in its print wire fire latch. - If a binary one value is in the print wire fire latch, the enabling of the latch output by a firing pulse from
timers 75 causes a pulse which is coincident in time with the fire pulse from thetimers 75 to be supplied to the associated actuator drive circuit. In response to this pulse, the associated actuator drive circuit supplies energising current to the associated print wire actuator for the duration of this pulse. - After the fire pulse applied to a particular print wire fire latch has terminated, such latch needs to be provided with a new data value to get ready for the occurrence of the next dot option. The supplying of new dot image data to the print wire fire latches 71 is controlled by a
DMA request circuit 76. As the data in thelatches 71 is used up, request signals are supplied by therequest circuit 76 to theDMA unit 62 to cause the DMA unit to access new data from the output buffer portion ofRAM 63 and to supply appropriate address signals todecoder 72 to causes such data to be loaded into thelatches 71. This, of course, is a continuing process as the printhead moves across the paper. New data is supplied to the print wire fire latches 71 for each new dot option position encountered by the printhead. - Referring to Fig. 12, there is shown in greater detail the construction of the print wire fire latches 71 and the print
wire fire timers 75 of Fig. 10 for the case of the 18-wire printhead of Fig. 5. The print wire fire latches 71 include data latches 78, 79, 80 and 81. For reasons that will be explained hereinafter, two data latches are provided for each of the 18 print wires. Thus, there are a total of 36 data latches. - For firing purposes, the first group of print wires (
wires Set 1 are combined with the first group of print wires (wires Set 2. Both first groups are five-wire groups. Thus, for both first groups as a whole, there is a total of 10 print wires. First multistage data latch means are provided for receiving the image dot data for these 10 print wires. This latch means is represented by data latches 78 and 79. Data latches 78 include 10 individual latch circuits, one for each of the 10 print wires in the two first groups. The outputs of these 10 latches are simultaneously activated or enabled by a 10A print wire fire timing pulse supplied thereto from printwire fire timers 75 by way ofconductor 82. Data latches 79 also comprise 10 individual latch circuits, there being a separate one for each of the 10 different print wires in the two first groups. The outputs of the 10 latch circuits in data latches 79 are simultaneously activated or enabled by a 10B print wire fire timing pulse supplied by way ofconductor 83. - The use of two sets (10A and 10B) of data latches 78 and 79 provide two individual latch circuits (A and B) for each of the 10 print wires, one such latch circuit (A) being provided by the latch set 78 and the other such latch circuit (B) being provided by the latch set 79. The outputs of the corresponding latch circuits in the two sets are coupled together by means of a corresponding one of a set of OR
circuits 84. The output of each of the different ORcircuits 84 drives a different one of the print wires. For example, the output of the first latch circuit inset 78 and the output of the first latch circuit inset 79 are coupled to the two inputs of the first OR circuit 84a. The output of this OR circuit 84a is, in turn, connected to the actuator drive circuit forprint wire 1. - The provision of two latch circuits for each print wire solves a timing problem which is encountered when the printhead is moving at one of the higher speeds. One of the latch sets 78 and 79 is used for enabling the printing of dots at odd numbered dot option positions, while the other of
sets - A similar procedure is followed for the second group of print wires in both
Set 1 andSet 2. In particular, one or more of secondgroup print wires group print wires wire fire timers 75 viaconductor 85. - As before, two individual latch circuits are provided for each print wire in each of the two second groups. The second latch circuit for each print wire is provided by one of the eight individual latch circuits in data latches 81. The outputs of the
latch circuits 81 are simultaneously enabled by an 8B print wire fire timing pulse supplied viaconductor 86. The corresponding outputs of latch set 80 and latch set 81 are OR′ed together by corresponding ones of ORcircuits 87. For example, the outputs of the first latch circuit inset 80 and the first latch circuit inset 81 are connected to the two inputs of the first ORcircuit 87a. The output of ORcircuit 87a is connected to the actuator drive circuit forprint wire 2. - Data latch sets 80 and 81 are designated as the 8A and 8B sets. The "8" denotes that the latch set controls eight print wires. One of the 8A and 8B sets enables the printing of dots at odd numbered dot option positions, while the other of the 8A and 8B sets enables printing of dots at the intervening even numbered dot option positions. The control means for the 8A and 8B latch sets are represented by the 8A and 8B print wire fire timer circuits supplying the 8A and 8B timing pulses via the
conductors - Data latch sets 78-81 can be implemented by using, for example, type LS173 and type LS374 plural-bit integrated circuit latch circuit modules currently manufactured by Texas Instruments Inc. of Dallas, Texas. Both types provide controllable output buffers for enabling and disabling the latch output lines. These are tristate type buffers which place the latch output lines in a tristate or high impedance condition when the outputs are disabled.
- Image dot data is loaded into the data latches 78-81 via the
image processor bus 60. Thisbus 60 includes an 8-linedata bus portion 88 and a 19-line address bus portion. Three of these address lines are represented by an address bus portion 89 and are connected to the input ofdecoder 72. The outputs of thedecoder 72 are used to control the loading of data into different ones of the data latches 78-81. The data lines inbus portion 88 are connected to the data inputs of the latches 78-81. - Since the 10A and 10B data latch sets 78 and 79 each include ten individual latch circuits, whereas the
data bus 88 includes only eight data lines, two different load signals are used for the 10A and 10B latch sets. Theload 10A-1 output signal ofdecoder 72 is used to load the first eight bits of data into the 10A data latches 78, while aload 10A-2 signal fromdecoder 72 is used to load the remaining two bits into the 10A data latches 78. Thus, two different accesses of the output buffer portion ofRAM 63 are required to load the ten data bits into the 10A latches 78. The first access of theRAM 63 output buffer places eight data bits on the 8-line data bus 88 and the accompanying address supplied to thedecoder 72 activates theload 10A-1 output of the decoder. During the second access of theRAM 63 output buffer, the remaining two data bits are placed on thedata bus 88 and are loaded into the remaining two 10A data latch circuits by theload 10A-2 output of thedecoder 72. - In a similar manner, two separate accesses of the
RAM 63 output buffer are required to load all ten image dot values into the 10B data latches 79. Theload 10B-1 and load 10B-2 pulses from thedecoder 72 control the loading of the ten dot image bits into the 10B data latches 79. - The 8A and 8B data latch sets 80 and 81 each require only one access of the
RAM 63 output buffer. Theload 8A andload 8B signals fromdecoder 72 respectively control the loading of data from the RAM output buffer into the 8A and 8B latch sets 80 and 81. - Accessing of data from the
RAM 63 output buffer is controlled by theDMA unit 62 shown in Fig. 10. TheDMA unit 62 supplies a source address to theRAM 63 to tell it the address of the data to be placed on thebus 60. TheDMA unit 62 supplies a destination address to thedecoder 72 to identify the data latches into which the data on thebus 60 is to be loaded. - The print
wire fire timers 75 of Fig. 10 include four sets of timers as shown in Fig. 12. A first set comprises a10A delay timer 90 connected to a 10A one-shot timer 91. Thedelay timer 90 provides a needed (and variable) time delay at the end of which it triggers the one-shot timer 91 to cause it to produce a print wire fire timing pulse of fixed duration. This 10A timing pulse is supplied to the output control terminal of the 10A data latches 78 and their outputs are enabled for the duration of this timing pulse. When not enabled, the outputs of the data latches are in a high impedance state. In this high impedance state, the latch outputs neither load nor drive the signal lines to which they are connected. - The second set of print wire fire timers comprises a
10B delay timer 92 which is connected and drives to a 10B one-shot timer 93. The latter supplies the print wire fire timing pulse to the 10B data latches 79 viaconductor 83. The third set of print wire fire timers comprises an8A delay timer 94 which drives an 8A one-shot timer 95. The one-shot timer 95 produces the print wire fire timing pulse which is supplied by way ofconductor 85 to the 8A data latches 80. The fourth set of print wire fire timers comprises an8B delay timer 96 which drives an 8B one-shot timer 97.Timer 97 produces the print wire fire timing pulse which is supplied by way ofconductor 86 to the 8B data latches 81. - The output of each of the latch circuits in each of the data latch sets 78-81 produces a high impedance output condition whenever no timing pulse is being supplied to its latch set by the associated one-shot timer. When, on the other hand, a timing pulse is being applied, the logic value (high or low logic level) stored in the latch circuit is supplied to and appears on the signal line connected to the output of the latch circuit.
- Each of the timers 90-97 may be implemented by using, for example, Intel 8254 Programmable Interval Timer integrated circuit modules, such modules currently being manufactured by Intel Corporation of Santa Clara, California. Each 8254 module contains three independent 16-bit timers. Thus, a total of three 8254 modules are needed to implement the eight timers 90-97. Each 8254 timer includes a 16-bit presettable down counter. Each 8254 timer also includes eight data bit input terminals for enabling a desired plural-bit numerical value to be loaded into its down counter in a parallel manner for purposes of presetting such down counter to a desired count value. Each 8254 timer further includes a clock input terminal, a gate input terminal and a signal output terminal. The clock input terminal is for receiving clock pulses which are counted by the down counter. The gate input terminal is for receiving a control signal for enabling and disabling the counting action in the down counter. The signal output terminal supplies an internally-generated output signal when the count in the down counter reaches a value of zero.
- In terms of the Fig. 12 application, the clock pulses for each of timers 90-97 are generated by a high-frequency
clock generator circuit 98, such clock pulses being supplied by way ofoutput line 99 to the clock input terminal of each of the timers 90-97. The clock frequency may be, for example, one megahertz, in which case the clock pulses occur at a rate of one pulse per microsecond. - Each of the one-
shot timers printhead microprocessor 67. For simplicity of illustration, these connections to thebus 67 are not shown. This preloading of the one-shot timers is accomplished by theprinthead microprocessor 65 as part of the controller initialisation procedures which are performed each time the printer is turned on for use. During normal printing operations, an output pulse from its associated delay timer (e.g., 90) is supplied to gate input terminal of each one-shot timer (e.g., 91) and causes each one-shot timer (e.g., 91) to commence counting down the 270 microsecond value. The one-shot timer (e.g., 91) produces a distinctive output signal which exists for the duration of this count down process. Thus, a 270 microsecond output pulse is produced by each one-shot timer each time an input pulse is received from its associated delay timer. - Each of the
delay timers printhead microprocessor 65 viabus 67. This time delay value will be different for different printhead speeds, different dot densities, etc. These time delay values are loaded in a parallel manner into the down counters in each delay timer for purposes of presetting each down counter to a desired time delay value. The loading of a new time delay value into a down counter causes the down counter to start a down counting operation therein. When the count value in the down counter reaches a zero value, the delay timer produces an output pulse which is supplied via its output terminal to the input of the associated one-shot timer. The time delay value loaded into the delay timer thus determines the time delay applied to the starting of the print wire fire pulse produced by the one-shot timer. This time delay will vary from time to time to reflect changes in printhead speed, dot density and print starting position. - Fig. 13 is a timing diagram for the print wire fire pulses produced by the various one-
shot timers - The timing diagram of Fig. 13 is for the case of the 18-wire printhead of Fig. 5 when operating in a DP quality mode with a pitch of 10 characters per inch. The distance between successive dot option positions is assumed to be 0.01 inches. The speed of movement of the printhead is assumed to be 40 inches per second. The print wire flight time is assumed to be 370 microseconds. The duration of each print wire fire pulse is assumed to be 270 microseconds. For an option distance of 0.01 inches and a speed of 40 inches per second, it takes the printhead a time interval of 250 microseconds to move from one option to the next.
- For the printhead of Fig. 5, the reference point for position measuring purposes is defined to be the centre point of
print wire 1. Thus, by printhead position is meant the position of the centre point ofprint wire 1. - Fig. 13 illustrates the timing problem that is encountered when operating at 40 inches per second with a print wire fire pulse duration of 270 microseconds. When operating at this speed, the time difference between successive dot option positions is 250 microseconds. This is less than the duration of the print wire fire pulse. Thus, the firing of the print wires for a second option position is required to be commenced before completion of the print wire fire pulses for the preceding option position. This problem is solved herein by using two print wire fire data latches for each print wire. As a consequence, print wires that were not fired at one option position can be fired at the next succeeding option position. When the print head is moving at a high speed such as 40 inches per second, the same print wire cannot and is not allowed to try to print at two successive option positions. Print wires that were not fired at the first option position can, however, be fired at the second option position, provided separate data latches are provided to receive the dot data for the second option position.
- Considering in greater detail the 10A and 10B print wire fire pulse trains, the two pulse trains are identical except that the pulses thereof are shifted in time relative to one another. In particular, the two pulse trains are offset by one-half of a cycle which, in the present case, is equal to 250 microseconds. The 10A pulses are individually identified as A1, A2, A3, etc., while the 10B pulses are individually identified as B1, B2, B3, etc. If a print wire is fired by the A1 pulse, it will produce a dot on the paper at point A1 on the dot time scale. This occurs 370 microseconds after the beginning of the A1 wire fire pulse. If a print wire is fired by the B1 pulse, it will produce a dot at the B1 point on the dot time scale. This occurs 370 microseconds after the leading edge of the B1 pulse. The remaining 10A and 10B pulses are likewise capable of producing
dots 370 microseconds after their leading edges. Thus, the 10A and 10B pulses take turns in causing dots to be printed on the paper. The 10A pulses can, for example, cause dots to be printed at the odd numbered dot options while the 10B pulses can, for example, cause dots to be printed at the even numbered dot options. - At any given option position, none, one, some or all of the print wires in the 10-wire group can be fired. Those not fired at any given dot option position can be fired at the next succeeding option position if desired, even though the print wire fire pulse for the first option is not yet completed.
- The problem of the time between option positions being shorter than either the print wire fire pulse duration or the print wire flight time does not occur for the case of slower printhead movement speeds wherein the time required for the printhead to move from one option position to the next is substantially greater than the print wire flight time.
- Considering now the 8A and 8B print wire fire timing pulse trains of Fig. 13, the relationship between these two pulse trains is the same as that between the 10A and 10B pulse trains. More particularly, each 8A and 8B timing pulse has a duration of 270 microseconds. The pulses in the 8B train are offset or shifted by a factor of one-half the time period for the 8A pulses. By time period is meant the time period from the leading edge of one 8A pulse to the leading edge of the next 8A pulse. This time period is 500 microseconds for both the 8A and 8B pulse trains.
- The 8A and 8B pulse trains are shifted relative to the 10A and 10B pulse trains in order to take into account the horizontal spacing or separation distance between the
group 1 andgroup 2 wires in each set, this spacing being the same for both sets. In the Fig. 5 embodiment, this five-wire group to four-wire group spacing is one-sixtieth (1/60) of an inch (4.318 × 10⁻⁴m), which is equal to five emitter units. Thus, the leading edge of each 8A pulse is delayed by a factor of five emitter units relative to the leading edge of the corresponding 10A pulse and the leading edge of each 8B pulse is delayed by a factor of five emitter units relative to the leading edge of the corresponding 10B pulse. This represents the movement required to bring a four-wire group to the same position at which its associated five-wire group was enabled for firing. For the case of Fig. 13, where the distance between successive option positions is 3 emitter units and the printhead speed is 40 inches per second, this means that the leading edges of the 8A pulses are delayed by 1.67 options or approximately 417 microseconds relative to the leading edges of the corresponding 10A pulses. The same relationship exists between the 10B and 8B pulses. In the control logic embodiment to be described hereinafter, this five-wire to four-wire delay is handled in a somewhat different manner from that just described. This latter manner is preferred. - One other factor should be noted, namely, the reason why the print wires in the second five-wire group can be fired at the same time as the print wires in the first five-wire group. The reason for this is that the option-to-option spacings which can be printed by the printer were selected relative to the horizontal spacing between the five-wire groups so that the group-to-group spacing is always a whole number multiple of the option-to-option spacing. Thus, when one five-wire group is at a given option position, the second five-wire group is at a different but proper option position. Thus, for example, for the case of 100 options per inch, the option position printed by the second five-wire group is exactly 30 options removed from the option position printed by the first five-wire group. This difference is taken into account by the order in which the dot data is supplied to the print wire fire latches. In particular, the dot data supplied to the latch circuits for the second five-wire group is dot data that is to be printed 30 options later than the dot data that is supplied to the latch circuits for the first five-wire group. The
image microprocessor 61 knows the particular number of options corresponding to the wire group to wire group spacing and places the dot data in theRAM 63 output buffer so that dot data for the different option positions is transferred to the respective ones of the two five-wire latch groups being loaded at any given moment. - Similar considerations apply to the two four-wire print wire groups. The horizontal spacing between the two four-wire groups is also 0.3 inches. In terms of the option-to-option spacings used, this is always a whole number of options. Hence, print wires in one four-wire group can be fired simultaneously with the firing of print wires in the other four-wire group.
- Referring to Fig. 14, there is shown in greater detail the construction of the
DMA request circuit 76 of Fig. 10. Thiscircuit 76 includes a set of four latches 100-103 which individually provide an indication as to when the corresponding one of data latch sets 78-81 needs new image dot data. Request latches 100-103 are for data latch sets 78-81, respectively. - Each of the request latches 100-103 is placed in a "Clear" state upon completion of the loading of its corresponding data latch set with new data. The Clear state produces a binary zero level at the latch circuit output. As each of the data latch sets 78-81 is activated by a print wire fire timing pulse (
fire 10A,fire 10B, etc.), its corresponding one of the request latches 100-103 is placed in a "Set" condition. This Set condition produces a binary one level on the latch circuit output line. The outputs of all four of the request latches 100-103 are connected to an ORcircuit 104, theoutput line 105 of which is the request line which runs to theDMA unit 62. - This
request line 105 is at a binary one level if any of the latches 100-103 is in a Set condition. A binary one level onrequest line 105 causes theDMA unit 62 to commence supplying new dot data to the print wire fire data latch sets 78-81. This new data is supplied to the different latch sets 78-81 one at a time in a rotating manner so long as theDMA request line 105 remains at a binary one level. As each data latch set receives new data, its corresponding one of request latches 100-103 is returned to the Clear condition. When all of the data latch sets have received new data, all of the request latches 100-103 are in a Clear condition and theDMA request line 105 goes to a binary zero level. This zero level signifies the absence of a DMA request. - The fire pulses which set the request latches 100-103 are respectively obtained from the one-
shot timers decoder 72 of Fig. 12. - With respect to the placing of the request latches 100-103 in their Set conditions, this setting action is accomplished by the trailing edges of the print wire fire pulses supplied to their Set input lines. Consequently, new dot data is not supplied to a data latch set before it has finished with the existing dot data. On the other hand, shortly after termination of the print wire fire pulse supplied to a particular one of the data latch sets 78-81, that data latch set is reloaded with new image dot data. Thus, the data latch sets 78-81 are continually being reloaded with new dot data as the
printhead 24 moves across the paper being printed on. - Referring now to Fig. 15, there is shown a schematic block diagram of the logic executed by the
printhead microprocessor 65 for the print wire fire timers 90-97 shown in Fig. 12. What theprinthead microprocessor 65 does is to supply to and to load into each ofdelay timers - The image microprocessor 61 (Fig. 10) sends various operating parameter data to the
printhead microprocessor 65. This operating parameter data is sent in the form of commands via theinterface circuits 68. In general, these operating parameter values are loaded into appropriate registers in theprinthead microprocessor 65 for subsequent use. - A first command which is sent to the
printhead microprocessor 65 shortly after the printer is turned on is a "Calibrate Head Position" command. This causes calibration of a bidirectional (up-down) multistagebinary counter 106 located in theprinthead microprocessor 65 and shown in Fig. 15. This command causes theprinthead carriage 25 to be moved to the extreme left-hand side of the printer so as to place it against the left-hand side frame 21. With theprinthead carriage 25 in this position, a position reference value is loaded into the up-down counter 106 via theprinthead processor bus 67, this position reference value being obtained fromROM 66. Thereafter, the up-down counter 106 keeps track of the position of theprinthead 24 across the length of theplaten 23 by counting the emitter pulses produced by emitter A (Fig. 10) and appearing online 107. When theprinthead 24 moves towards the right, the count incounter 106 is increased one count for each emitter pulse. When theprinthead 24 moves towards the left, the count incounter 106 is decreased by one count for each emitter pulse. Thus, the count incounter 106 at any given instant represents the actual position of theprinthead 24 at that instant. More precisely, it represents the position of the centre point ofprint wire 1 in theprinthead 24. This position value is expressed in terms of emitter units wherein each emitter unit is equal to one three-hundredths (1/300) of an inch.Counter 106 provides a continuous indication of the actual position of theprinthead 24 and hence of the print wires contained therein. - Another initial parameter command sent to the
microprocessor 65 is a "Set Flight Time" command. The parameter value portion of this command represents the print wire flight time, expressed in microseconds, for the particular printhead and print wire actuator construction being used. Unless otherwise indicated, this flight time value will be assumed to be 370 microseconds. This flight time value is loaded into aflight time register 108 in theprinthead microprocessor 65, such register being shown in Fig. 15. Since this flight time value remains substantially constant for any given usage of the printer, its value is normally loaded into the flight time register 108 only once during each usage of the printer. - Another parameter command which is sent to the
printhead microprocessor 65 is a "Set Print Speed" command. The parameter value included with this command is the desired speed of movement of theprinthead 24 across the paper being printed on. At any given moment, the actual printhead speed may differ from this desired speed. Consequently, the print wire fire control mechanism being described herein continuously monitors and makes use of the actual speed, as opposed to the desired speed. A new Set Print Speed command is set to theprinthead microprocessor 65 whenever a change in the desired speed is needed. This printhead speed parameter is used in connection with themotor control circuits 69. - Another parameter command sent to the
printhead microprocessor 65 by theimage microprocessor 61 is a "Set Print Density" command. The data value associated with this command represents the distance between consecutive dot option positions. This dot spacing value or, more accurately, option spacing value is loaded into adot spacing register 109 contained in theprinthead microprocessor 65. This is done before the commencement of any segment of printing having a different dot density as compared with the preceding segment of printing. - The dot spacing (DS) value loaded into the
register 109 includes both whole and fractional emitter unit components. This is accomplished by expressing the dot spacing value in terms of emitter subunits, there being 24 subunits per emitter unit in the present embodiment. Thus, dot spacing is not limited to whole number multiples of the emitter distance value. It may, but need not be, a whole number of emitter units. For the example shown in Fig. 16, where the dot spacing is 3.0 emitter units, the dot spacing value loaded intoregister 109 is "72", this value being obtained by multiplying 3.0times 24. - Another parameter command which is sent from the
image microprocessor 61 to theprinthead microprocessor 65 is a "Print" command. This command is sent prior to each segment of printing on every line of printing. Each print command contains two parameter values, namely, the start target position and the stop target position for the segment of printing in question. The segment of printing specified for a start command may cover anywhere from the entire length of a line of printing to only a small portion of the total length of a print line. This print command is the command which initiates the printing of a segment of material. Receipt of this command by theprinthead microprocessor 65 causes theprinthead 24 to print from the start target position to the stop target position at the currently active printhead speed value. Theprinthead microprocessor 65 determines the direction of travel for theprinthead 24 by comparing the start position with the stop position and setting a print head direction control bit accordingly. - The start target position in the print command is expressed in whole and fractional emitter units. In particular, one data field in the command contains a value representing the whole number of emitter units for the start target position. Another data field contains a value representing the number of 1/24th emitter subunits for the start target position. Thus, the starting point of a segment of printing is not limited to one of the fixed points defined by the positive-going edges of the emitter signals.
- The
printhead microprocessor 65 calculates a modified version of the whole number start target position value supplied by the print command and loads this modified version into afirst target register 110 shown in Fig. 15. This modified start target is five emitter units ahead of the actual whole number start target value. This is done to enable a proper start-up of the control mechanism shown in Fig. 15. For the case where the printhead is moving from left to right across the printed page, a value of five emitter units is subtracted from the whole emitter start position component, and the result is loaded into thefirst target register 110. This enables an activation signal to be developed by the Fig. 15 control mechanism when theprinthead 24 is approximately five emitter units to the left of the first dot position at which printing is to be allowed. - When the
printhead 24 is moving in the opposite direction, namely, from right to left, the modified first target position value is obtained by adding a value of five emitter units to the start target position whole number component specified by the print command. This enables the activation signal to be produced approximately five emitter units to the right of the actual first target position for the case of right to left movement. The printhead position values in up-down counter 106 are, of course, decreasing for this right to left movement. - The activation signal is produced by a binary signal comparison mechanism 111 which receives the binary coded position signals from the up-
down counter 106 and thefirst target register 110. During movement of the printhead, the position value incounter 106 is continually changing. When this printhead position value incounter 106 becomes equal to the first target position value inregister 110, the comparison mechanism 111 produces the activation signal at its output. - The embodiment being described includes a target distance determining mechanism which is activated by the activation signal for thereafter continuously calculating the distance remaining to the next target position. This mechanism makes use of an initial setting value which is loaded into an
initial set register 112 after receipt of the print command but before commencement of its execution. This value is expressed in 1/24th emitter subunits. Its numerical value is equal to 120±F. The "120" portion corresponds to five whole emitter units (5 × 24 = 120) and enables correlation with the five emitter unit modification of the first target position signal loaded into thefirst target register 110. The "F" portion is the 1/24th emitter sub unit start target fractional value supplied by the print command. This F component, when not equal to zero, causes the starting point for the printing to fall between two of the fixed points defined by the positive-going edges of the emitter signals. If the printhead is moving from left to right, this F value is added to the 120 value and the result is loaded into theinitial set register 112. If, on the other hand, the printhead is moving from right to left, the F value is subtracted from the 120 value and the result is loaded intoregister 112. - The print wire fire control mechanism embodiment of Fig. 15 includes a
speed sensing mechanism 113 for continuously monitoring or measuring the speed of movement of theprinthead 24 as it is moved across the paper being printed upon. Thisspeed sensing mechanism 113 includes an upcounter 114, an emitter time (ET) register 115 and adelay element 116. The purpose is to measure the time duration of each emitter signal cycle. This is accomplished by using the up counter 114 to count the number of one microsecond clock pulses which are produced by clock 98 (Fig. 12) during the occurrence of each emitter signal cycle. To this end, the emitter signals from emitter A are supplied vialine 107 and by way ofdelay element 116 to the reset terminal of theup counter 114. The positive-going edge of each emitter signal is effective to reset theup counter 114. After each resetting, the up counter 114 counts the number of clock pulses until the occurrence of the positive-going edge of the next emitter signal. This next positive-going edge is used to load the emitter time register 115 with the count value then appearing in theup counter 114. Thedelay element 116 provides a very small time delay and is used to delay the resetting of theup counter 114 until after the loading of its number value into theregister 115 has been completed. - The number value loaded into the
emitter time register 115 represents the time duration in microseconds of one complete emitter signal cycle. Thus, this number value is called the emitter time (ET). It is a speed dependent signal and is, in fact, inversely proportional to the speed of movement of the printhead. For sake of simplicity, this ET signal may be sometimes referred to herein as a speed signal. - A point to note is that the speed dependent emitter time signal is recalculated for each and every emitter signal cycle. Thus, the control mechanism of Fig. 15 can quickly respond to changes in speed of the printhead movement.
- The print wire fire control mechanism also includes means for sensing movement of the
printhead 24 and providing movement signals representing movement of the printhead across the print receiving paper. This movement sensing means includes the emitter A (Fig. 10) which produces the emitter signals and thesignal supply line 107 which supplies these signals to theprinthead microprocessor 65. As indicated in Fig. 15, this emittersignal supply line 107 is coupled to the various counter mechanisms in the Fig. 15 control mechanism. The term "emitter" associated with thissupply line 107 means the emitter signals produced by emitter A. These emitter signals are printhead movement signals and are sometimes referred to as such herein. - The print wire fire control mechanism embodiment of Fig. 15 includes an initial
target determining mechanism 117 responsive to the first target position signal and the printhead movement (emitter) signals for producing an activation signal. This mechanism includes the up-down counter 106 and thefirst target register 110 previously considered. This initialtarget determining mechanism 117 also includes the comparison mechanism 111 for comparing the whole emitter unit component of the first target signal inregister 110 with the printhead position signal provided bycounter 106. This mechanism produces an activation signal onoutput line 118 of compare mechanism 111 when the printhead position signal becomes equal to the whole number component of the first target signal. The comparison mechanism 111 may include, for example, a subtraction mechanism for producing a signal representing the difference between the first target position signal fromregister 110 and the printhead position signal fromcounter 106. It may also includes a zero detection mechanism for detecting when this difference becomes zero and thereupon producing the activation signal. The occurrence of this activation signal signifies that theprinthead 24 is approximately five emitter units removed from the first dot option position at which printing will be enabled. - For the numerical examples to be given hereinafter, it is assumed that the printer is operating in the DP mode with a pitch of 10 characters per inch. The printhead speed is assumed to be 40 inches per second, the option distance between successive dot options is assumed to be 3.0 emitter units and the print wire flight time is assumed to be 370 microseconds. This flight time value gives a flight time distance (FTD) of 4.4 emitter units, which is the value shown in Fig. 16 (the distance between the fire point and the hit point). In this regard, the horizontal scale in Fig. 16 is in terms of distance and not time. In the Fig. 16 example, the activation signal produced by the compare mechanism 111 occurs during emitter cycle C.
- The print wire fire control mechanism of Fig. 15 further includes a flight time distance (FTD) mechanism which is responsive to the printhead movement (emitter) signals for producing a flight time distance signal representing the distance the printhead will move during the time interval the print wire is in flight from the printhead to the paper. This mechanism includes the
speed sensing mechanism 113 previously considered, which mechanism produces the emitter time (ET) signal. It further includes theflight time register 108, adivider mechanism 117a, amultiplier mechanism 118a and a flight time distance (FTD)register 119. Thedivider mechanism 117a divides the flight time value (FT) by the emitter time value (ET) to produce the flight time distance (FTD) signal. This FTD signal is expressed in whole and fractional emitter units. In the assumed example, this flight time distance (FTD) is 4.4 emitter units. Themultiplier mechanism 118a multiplies this FTD value by 24 to convert it to a 1/24th emitter subunit value. In the assumed example, this value is 106 emitter subunits. This value of 106 is placed in theFTD register 119. - In a preferred embodiment, a separate mechanism is not provided for performing the multiplying by 24 function represented by the
multiplier mechanism 118a. Instead, the multiplying by 24 function is accomplished in thedivider mechanism 117a by proper scaling of the divider output signal. - The print wire fire control mechanism embodiment of Fig. 15 also includes a target
distance determining mechanism 120 for providing a continuously updated target distance signal (TD) representing the distance to the next dot option position to be encountered by theprinthead 24. This targetdistance determining mechanism 120 includes thedot spacing register 109 and the initial set register 112 previously considered. It also includes amultistage OR mechanism 121, a target distance (TD)register 122, asubtraction mechanism 123, an addingmechanism 124, and asignal gating mechanism 125. Initially, the initial set value inregister 112 is loaded into thetarget distance register 122. This is done shortly after receipt of the print command by theprinthead microprocessor 65 and well before the activation signal is produced by the compare mechanism 111. For the Fig. 16 example, the F factor representing the fractional part of the start position value in the print command is assumed to be zero. In this case, a value of 120 is initially loaded into thetarget distance register 22. This value inregister 122 remains unchanged until the occurrence of the activation signal. This initial value intarget distance register 122 represents the distance from the activation point to the first dot option position. As mentioned, a value of 120 corresponds to five whole emitter units. - The occurrence of an activation signal at the output of compare mechanism 111 serves to place a
latch mechanism 126 in a set condition. This set condition causes thelatch 126 to supply an enabling signal to the control input of thegate mechanism 125 for enabling it to pass signals from its signal input to its signal output. Prior to the occurrence of this activation signal, thelatch 126 was in its reset condition and thegate 125 was disabled.Latch 126 remains in its set condition for the duration of the segment of printing to be performed. It is thereafter returned to its reset condition when the printhead reaches the stop target position or shortly thereafter. - When the
gate 125 is enabled, it passes emitter signals appearing online 107 to the control (DO) input of thesubtraction mechanism 123. Each time a new emitter signal appears on theline 107, it causes thesubtraction mechanism 123 to subtract a value of 24 from the current target distance value inregister 122. In particular, thesubtraction mechanism 123 takes the current value inregister 122 and subtracts 24 from it and then loads the result back into theregister 122 via theOR mechanism 121. In this manner, each emitter pulse occurring while thegate 125 is enabled serves to decrement the target distance value inregister 122 by a factor of 24, which factor corresponds to one whole emitter unit. In this manner, the target distance inregister 122 is continually updated as the printhead moves along the print line. - This updating or decrementing of the
target distance register 122 continues until a load and start pulse is produced for one of thedelay timers target distance register 122 is increased by a factor which is equal to the dot spacing value expressed in 1/24th emitter subunits. This is accomplished by the addingmechanism 124 which takes the current target distance value from theregister 122, adds the dot spacing value inregister 109 to it, and supplies the result back to thetarget distance register 122 via theOR mechanism 121. In the example of Fig. 16, the value inregister 109 is equal to 72 emitter subunits, which corresponds to three whole emitter units. Thus, when a start signal is produced for one dot option, the target distance inregister 122 is increased by the dot spacing value to reflect the new target distance for the next dot option. - The Fig. 15 embodiment also includes a fire
distance determining mechanism 127 for continually determining the distance remaining to the print wire fire point for the next dot option. Thismechanism 127 includes asubtraction mechanism 128 for subtracting the flight time distance (FTD) value from the target distance (TD) value to produce at its output the desired fire distance (FD) value. This fire distance (FD) value is loaded into afire distance register 129 which is part of themechanism 127. This fire distance value inregister 129 is expressed in terms of the 1/24th emitter subunits. - The fire distance value in
register 129 is supplied to a first input of a fire distance (FD)comparison mechanism 130. A constant value of 24 is supplied to the other input of theFD comparison mechanism 130. Thecomparison mechanism 130 produces an output pulse during each emitter cycle for which the fire distance value inregister 129 is less than 24. This signifies that the current printhead position is less than one emitter unit away from the next print wire fire point. - If the activation signal has not yet occurred (latch 126 in reset condition), then the output pulses produced by the FD comparison mechanism 130 (FD compare pulses) are blocked by a
gating mechanism 131 and have no effect on the remainder of the units in Fig. 15. If, on the other hand, the activation signal has occurred (latch 126 in set condition), thengate 131 passes the FD compare pulses to aswitch mechanism 132 which, in turn, passes the FD compare pulse to two of thedelay timers Switch 132 provides a single-pole double-throw switching function. In one switch position, it connects its input line 133 to its first output line 134 and, in its other switch position, it connects its input line 133 to itssecond output line 135. A flip-flop mechanism 136 causes theswitch 132 to switch back and forth between its two output lines so that alternate FD compare pulses are supplied to alternate pairs of thedelay timers - The flip-
flop 136 is initially placed in its set condition by the activation signal produced by the position comparing mechanism 111. This set condition causes switch 132 to connect its input line 133 to its output line 134 to enable the first FD compare pulse to be supplied to the load and start inputs of the 10A and8A delay timers flop 136 is toggled back and forth between its set and reset conditions by the FD compare pulses. These FD compare pulses are supplied to the toggle input of flip-flop 136 by way of adelay element 137. The magnitude of the time delay provided bydelay element 137 is selected so that the toggling caused by any given FD compare pulse occurs after that FD compare pulse has loaded and started the delay timers to which it is supplied. This enables the next FD compare pulse to be supplied to the opposite set of delay timers. In this manner, the FD compare pulses are alternately supplied to the two different sets of delay timers. The first, third, fifth, etc., FD compare pulses passed by thegate 131 are supplied to the 10A and 8A delay timers. The second, fourth, sixth, etc., FD compare pulses passed by thegate 131 are supplied to the 10B and 8B delay timers. - When an FD compare pulse is passed by the
gate 131, it is also supplied to the execution control terminal (DO) of the addingmechanism 124 in the targetdistance determining portion 120. Each such pulse causes the addingmechanism 124 to increment the value in thetarget distance register 122 by the dot spacing value obtained fromregister 109. In the Fig. 16 example, this dot spacing value is 72. - An FD compare pulse is produced when the printhead is less than one emitter unit away from a print wire fire point. It is necessary to use the fire distance (FD) value which is present in the
fire distance register 129 at the occurrence of this FD compare pulse to cause the generation of the desired print wire fire pulse at the print wire fire point. This fire distance value is a fractional part of an emitter unit. This fractional distance value is converted to an equivalent time value and this equivalent time value is loaded into, for example, the10A delay timer 90. Delaytimer 90 then counts off this equivalent time delay interval and, at the end of such interval, produces the desired print wire fire pulse by triggering the 10A one-shot timer 91. A similar procedure is followed for the10B delay timer 92. A modified version of this procedure is followed for the 8A and8B delay timers - Considering in greater detail the procedure for the 10A and 10B delay timers, the fractional emitter fire distance (FD) value in
register 129 is multiplied by the emitter time ET in a multiplymechanism 138. This converts the distance value into an equivalent time value. The emitter time ET is expressed in terms of microseconds per emitter unit. Thus, multiplying this emitter time value by the fractional emitter unit fire distance gives the time value represented by the fractional emitter unit fire distance. This time value is, however, too large because the numerical value in thefire distance register 129 is in 1/24th emitter subunits. Thus, it is necessary to divide by 24 to obtain the correct equivalent time value. This is accomplished by the divide by 24mechanism 139. In the preferred embodiment, this divide by 24 action is obtained by proper scaling in the multiplymechanism 138, in which case a separate divide by 24 mechanism is not required. In any event, the signal on output line 140 is the time equivalent, expressed in microseconds, of the fractional emitter unit fire distance (FD) value inregister 129. - This time equivalent value is modified by a subtraction mechanism 141 to compensate for the time delay caused by the performance of the various mathematical and comparison operations shown in Fig. 15. In other words, the time equivalent value on the line 140 represents the value needed at the leading edge of the emitter pulse for the emitter cycle in which the value is determined. Several microseconds are, however, required to do the calculations to obtain this value and to load it into the appropriate 10A or 10B delay timer. The subtraction mechanism 141 compensates for this by subtracting from the calculated time equivalent value a factor N which represents in microseconds the time required to do the calculations and to load the equivalent time value into the appropriate delay timer. In effect, the calculating and loading time delay is treated as part of the needed fire distance delay and only the remaining part of the fire distance delay is loaded into the 10A or 10B delay timer.
- The procedure for the 8A and
8B delay timers mechanism 143. The factor M supplied to the multiply mechanism 142 represents the desired offset in whole and fractional emitter units. This is multiplied by the emitter time ET to convert the offset distance M to an equivalent offset time value expressed in microseconds. This offset time is then added by theadder 143 to the delay time which was used for the 10A and 10B timers to produce the delay time to be used by the 8A and8B delay timers - For the example shown in Fig. 16, where there are 100 options (dot spacings) per inch, the offset distance M is chosen to have a value of 1.0 emitter units. This provides part of the offset compensation, with the remainder of the offset compensation being provided by the proper selection of the dot data loaded into the 8A and 8B print wire fire latches. For some option distances (dot spacings), the distance compensation factor M will have a value of zero. This occurs where the dot spacing is such that the five-wire to four-wire offset is a whole number of dot spacings or options. In this case, all of the compensation is provided by the selection of the proper dot data to be placed in the 8A and 8B print wire fire latches. For this M equals zero case, no five-wire to four-wire offset time is added to the previously calculated delay time appearing at the output of subtraction mechanism 141.
- The various mathematical operations and comparison operations shown in Fig. 15 are controlled by timing pulses developed by a
decoder 144 which decodes the count value in the up counter 114 to produce on separate timing pulse output lines respective ones of a sequence of timing pulses T1, T2, T3, etc. The T1 pulse is produced by a first count incounter 114, the T2 pulse by second count incounter 114, the T3 pulse by a third count incounter 114, etc. The T1 timing pulse is supplied to thedivider mechanism 117a to cause a performance of the dividing operation therein. The T2 timing pulse causes the performance of the comparing operation in the compare mechanism 111. In a similar vein, the T3 through T8 timing pulses cause the performance of the functions provided by the respective ones of the subtractmechanism 128, the multiplymechanism 138, the subtract mechanism 141, the multiply mechanism 142, theadd mechanism 143, and the FD comparemechanism 130. These timing pulses control the sequence in which the different operations are performed. - For the case where the mathematical and comparison operations are performed by the arithmetic and logic unit of a microprogrammed microprocessor, the use of the T1, T2, T3, etc., timing pulses is not needed. In this case, the sequencing of the different operations is automatically performed by the sequencing of the microcode which controls the microprocessor.
- Fig. 16 shows an example of the operation of the Fig. 15 wire fire control mechanism for the DP mode of operation with a character density of 10 characters per inch and a printhead movement speed of 40 inches per second. The dot option spacing is 3.0 emitter units and the number of options per inch is 100. The print wire flight time is assumed to be 370 microseconds. The printhead is assumed to be moving from left to right across the paper being printed on.
- With respect to the
initial set register 112, the fractional start target component F is assumed to have a value of zero for the Fig. 16 example. This is indicated by the fact that the centre point for the first dot option coincides with the leading edge of an emitter pulse cycle. Thus, the value loaded into theinitial set register 112 is a value of 120 emitter subunits. The value loaded into thedot spacing register 109 is 72 emitter subunits. For the assumed case of a printhead speed of 40 inches per second and a print wire flight time of 370 microseconds, the flight time distance in the FTD register has a value of 106 emitter subunits. This FTD value remains constant so long as the printhead speed remains constant at the 40 inches per second value. The emitter pulses occur at the leading edges or beginnings of the emitter cycles. - Emitter cycles A and B in Fig. 16 occur before the occurrence of the activation signal. For these cycles, the value in the
target distance register 122 remains constant at 120, this being the value loaded from theinitial set register 112. For these cycles,gates mechanism 128, however, is active to calculate the fire distance (FD) value during the T3 timing pulse interval in each cycle. This produces a fire distance (FD) value of 14 emitter subunits in thefire distance register 129. - The activation signal is produced during the T2 timing pulse interval of emitter cycle C by the compare mechanism 111. This sets the
latch 126 to enable thegates mechanism 123 does not operate during emitter cycle C. Thus, there is no immediate change in the target distance value inregister 122. It remains at 120. - The fire distance value of 14 in the
fire distance register 129 does play a role during emitter cycle C. In particular, during the T8 timing pulse interval, theFD comparison mechanism 130 sees this value of 14 and produces an FD compare pulse. This FD compare pulse is supplied to theadder 124 to increment the value intarget distance register 122 by a factor of 72. This same FD compare pulse is also supplied by way ofswitch 132 to load and start the10A delay timer 90 with a delay time value corresponding to the 14 emitter subunit fire distance value less the calculation delay compensation factor deducted by subtractor 141. The10A delay timer 90 counts down this delay time value and, at the end of such delay time, triggers the 10A one-shot timer 91 to produce the 10A print wire fire pulse to commence the movement of any 10A print wires which are to produce dots at the first 10A option position. The flight time distance (FTD) for these print wires is indicated in Fig. 16. It has a value of 4.4 emitter units. This flight time distance terminates when the fired print wires strike the paper which, as indicated in Fig. 16, occurs at the first 10A option position. - During emitter cycle D, the emitter pulse supplied to
gate 125 causes subtractor 123 to subtract a count of 24 from thetarget distance register 122. Thus, the resulting count inregister 122 is now 168. The 106 FTD value is subtracted from this 168 value to produce a fire distance value of 62 in thefire distance register 129. This value is not less than 24, hence theFD comparison mechanism 130 does not produce an FD compare pulse. - A similar set of events occurs during the subsequent emitter cycle E. The target distance value in
register 122 is decreased by a factor of 24 to cause a corresponding decrease by a factor of 24 in the fire distance value inregister 129. The result has a value of 38, which is still too big to produce an FD compare pulse. - Emitter cycle F is different. It starts off the same by reducing the value in
target distance register 122 by a factor of 24. This causes the value infire distance register 129 to be likewise reduced by a factor of 24. This results in a fire distance value of 14, which, in turn, causes theFD comparator 130 to produce an FD compare pulse. This FD compare pulse is supplied by way of theswitch 132, but this time it goes to the10B delay timer 92 to load and start the timing action therein. At the termination of this delay time, the 10B one-shot timer 93 is triggered to produce the 10B print wire fire pulse. This 10B print wire fire pulse commences during emitter cycle F because the fire distance value of 14 emitter subunits is less than one emitter unit after the beginning of emitter cycle F. - The FD compare pulse produced during emitter cycle F is also supplied to the
adder 124 to increase the count intarget distance register 122 by a factor of 72. This occurs after the subtraction of the count of 24 because the FD compare pulse is produced by the T8 timing pulse which occurs after the emitter pulse which activated thesubtractor 123. This emitter pulse, in effect, occurs at a T0 timing pulse time. - The foregoing operations are repetitive in nature and are repeated over and over again until the printhead reaches the stop target position specified in the print command. At that point, the activate
latch 126 is reset to provide the inactive condition. The print wire fire control mechanism then awaits the arrival of the next print command from theimage microprocessor 61. In some cases where a series of print commands are issued for the same line of printing, the execution of the next print command may occur so quickly after completion of the printing for the preceding print command such that the printhead may not come to a complete standstill during the very brief interval between the executions of the two print commands. - In the preferred embodiment, the various mathematical operations (add, subtract, multiply and divide) and the comparison operations shown in Fig. 15 are performed by the arithmetic and logic unit in the
printhead microprocessor 65. The various registers are general purpose registers located in theprinthead microprocessor 65. The various counters and timers may be implemented in either hardware or software form, or some combination of the two. The movements of the various signals from one point to another are controlled by the microcode associated with theprinthead microprocessor 65, which microcode is resident in theROM unit 66 shown in Fig. 10. - The print wire fire control mechanism described above automatically and efficiently enables printing to be accomplished over a relatively large range of printhead movement speeds. This enables the highest possible printhead speed to be provided for each of various different dot densities. The mechanism also enables printing to be performed when the movement of the printhead is either accelerating or decelerating. It is not required to print only when the printhead is moving at a constant speed. The mechanism further enables dots to be printed at positions which are not dependent on or limited to the fixed points defined by the emitter signals. This enables a greater range of different character fonts to be provided. All of the foregoing is accomplished with a relatively high degree of placement accuracy.
Claims (11)
a printhead (24, 42) including a plurality of print wires (44) for printing dots,
means for moving said printhead across a print receiving medium (40),
means (65) for detecting the position of each print wire relative to said print receiving medium as said printhead moves across said print receiving medium,
means (56) for establishing a plurality of target positions (45, 46) on said print receiving medium in each of which a dot is to be printed,
firing means (71, 73, 74) for selectively firing each print wire so that it causes a dot to be printed on said print receiving medium, and
a print wire fire control mechanism (55) for controlling the operation of said firing means so that each selected print wire prints a dot in a predetermined target position on said print receiving medium,
characterised in that
said print wire fire control mechanism comprises
means for calculating the flight time distance (FTD) through which said printhead will move during the time interval between the time each selected print wire is fired and the time said selected print wire will cause a dot to be printed, and
control means for firing each selected print wire when the distance (TD) between said selected print wire and a predetermined target position is substantially equal to said flight time distance (FTD).
means for determining the speed of movement of said printhead across said print receiving medium, and
means (48, 52) for calculating said flight time distance as a function of said speed.
means for determining for each print wire a flight time which is the time interval between the time instant at which said print wire is fired and the time instant at which said print wire causes a dot to be printed,
means for determining the speed of movement of said printhead across said print receiving medium, and
means utilising signals (FT, ET) representing said flight time and said speed of movement respectively to calculate said flight time distance (FTD).
means for establishing for each print wire the position of the next predetermined target position (TP) at which said print wire is to print a dot,
means for determining the position (HP) of said print wire relative to said predetermined target position, and
means for calculating when the distance between said two positions (TP, HP) is equal to said flight time distance (FTD).
means for determining for each print wire a target distance (TD) which is the distance between said print wire and the position of the next predetermined target position at which said print wire is to print a dot,
means for determining the position (HP) of said print wire relative to said predetermined target position,
means for calculating the difference between said target distance (TD) and said flight time distance (FTD) in order to establish a fire position (FP) which is the position of said print wire at which said print wire must be fired in order to print a dot in said next predetermined target position, and
means for calculating when said fire position (FP) coincides with said print wire position (HP).
emitter means associated with the printhead for producing emitter signals representing fixed increments of movement of said printhead across said print receiving medium,
circuit means for supplying timing signals,
counter means responsive to said timing signals and to said emitter signals for generating an emitter time signal (ET) representing the time duration of an emitter signal,
flight time means for generating for each print wire a flight time signal (FT) representing the time interval between the time instant at which said print wire is fired and the time instant at which said print wire causes a dot to be printed, and,
signal combining means responsive to said emitter time signal (ET) and said flight time signal (FT) for calculating said flight time distance (FTD).
a first set of data latches for receiving firing data for said print wires and having outputs coupled to driving circuitry for supplying print wire fire pulses to said print wires,
a second set of data latches for receiving firing data for said print wires and having outputs coupled to the driving circuitry for supplying print wire fire pulses to said print wires,
first control means for recurrently enabling the outputs of said first set of data latches for causing the printing of dots at odd-numbered target positions, and
and second control means for recurrently enabling the outputs of said second set of data latches for causing the printing of dots at even-numbered target positions,
whereby print wires not fired for one target position may be fired for the succeeding target position even though successive target positions require print wire fire pulses to be started closer in time than the duration of a single print wire fire pulse.
said printhead includes two sets of print wires which are spaced apart a relatively large distance in the direction of movement of said printhead, each set having first and second groups of print wires which are spaced apart a relatively small distance in the direction of movement of said printhead, the ends of the print wires in each group being aligned in the direction at right angles to the direction of movement of said printhead, the ends of the print wires in each second group being staggered in the direction at right angles to the direction of movement of said printhead relative to the ends of the print wires in their associated first group,
and in that
said means for establishing a plurality of target positions comprises
first multistage data latch means for receiving dot printing data for the print wires in both first groups and having outputs coupled to driving circuitry for the print wires in both first groups,
first control means for enabling the outputs of the first data latch means so as to cause the simultaneous firing of selected print wires in both first groups,
second multistage data latch means for receiving dot printing data for the print wires in both second groups and having outputs coupled to driving circuitry for the print wires in both second groups, and
second control means for enabling the outputs of the second data latch means so as to cause the simultaneous firing of selected print wires in both second groups.
said means for establishing a plurality of target positions comprises
emitter means associated with said printhead for producing emitter signals which define fixed points spaced across said print receiving medium, and
target position determining means for determining target positions at each of which a dot may be printed, such dot positions not being dependent on or limited to the fixed points defined by said emitter signals,
and in that
said print wire fire control mechanism is responsive to said target positions and to said emitter signals for controlling the firing of said print wires so that the centre of each printed dot is located at a desired point intermediate two of the fixed points defined by said emitter signals.
said method comprising
detecting the position of each print wire relative to said print receiving medium as said printhead moves across said print receiving medium,
establishing a plurality of target positions (45, 46) on said print receiving medium in each of which a dot is to be printed,
selectively firing each print wire so that it causes a dot to be printed on said print receiving medium, and
controlling the firing of said print wires so that each selected print wire prints a dot in a predetermined target position on said print receiving medium,
characterised in that the firing of said print wires is controlled by
calculating the flight time distance (FTD) through which said printhead will move during the time interval between the time each selected print wire is fired and the time said selected print wire will cause a dot to be printed, and
firing each selected print wire when the distance (TD) between said selected print wire and a predetermined target position is substantially equal to said flight time distance (FTD).
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US80770985A | 1985-12-11 | 1985-12-11 | |
US807709 | 1985-12-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
EP0226388A2 true EP0226388A2 (en) | 1987-06-24 |
EP0226388A3 EP0226388A3 (en) | 1988-02-10 |
Family
ID=25197010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP86309407A Withdrawn EP0226388A3 (en) | 1985-12-11 | 1986-12-03 | Print wire fire control mechanism for a wire matrix printer |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP0226388A3 (en) |
JP (1) | JPS62162556A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2207788A (en) * | 1987-08-03 | 1989-02-08 | Printronix Inc | Print hammer timing system |
GB2208952A (en) * | 1987-08-19 | 1989-04-19 | Brother Ind Ltd | Bidirectional printers |
EP0367059A2 (en) * | 1988-10-31 | 1990-05-09 | International Business Machines Corporation | Wire fire control mechanism for a wire matrix printer |
EP0389016A1 (en) * | 1989-03-04 | 1990-09-26 | Philips Patentverwaltung GmbH | Matrix printer |
GB2235161A (en) * | 1989-08-09 | 1991-02-27 | Brother Ind Ltd | Driving circuit for solenoid head of a printer |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63264362A (en) * | 1987-04-22 | 1988-11-01 | Oki Electric Ind Co Ltd | Printing method of wire dot type printer |
JP5887792B2 (en) * | 2011-09-22 | 2016-03-16 | 富士通株式会社 | Printer and its print control program |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1979000627A1 (en) * | 1978-02-15 | 1979-09-06 | N Sinoto | Printing device |
DE2940019A1 (en) * | 1978-10-30 | 1980-05-14 | Digital Equipment Corp | MATRIX CHARACTER PRINTER |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS53139929A (en) * | 1977-05-13 | 1978-12-06 | Hitachi Ltd | Print control system |
-
1986
- 1986-11-11 JP JP26681686A patent/JPS62162556A/en active Pending
- 1986-12-03 EP EP86309407A patent/EP0226388A3/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1979000627A1 (en) * | 1978-02-15 | 1979-09-06 | N Sinoto | Printing device |
DE2940019A1 (en) * | 1978-10-30 | 1980-05-14 | Digital Equipment Corp | MATRIX CHARACTER PRINTER |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2207788A (en) * | 1987-08-03 | 1989-02-08 | Printronix Inc | Print hammer timing system |
DE3826422A1 (en) * | 1987-08-03 | 1989-02-16 | Printronix Inc | ADJUSTABLE HAMMER TIMING SYSTEM |
GB2207788B (en) * | 1987-08-03 | 1992-01-15 | Printronix Inc | Print hammer timing system |
GB2208952A (en) * | 1987-08-19 | 1989-04-19 | Brother Ind Ltd | Bidirectional printers |
GB2208952B (en) * | 1987-08-19 | 1991-10-16 | Brother Ind Ltd | Improvements in bidirectional printers |
EP0367059A2 (en) * | 1988-10-31 | 1990-05-09 | International Business Machines Corporation | Wire fire control mechanism for a wire matrix printer |
EP0367059A3 (en) * | 1988-10-31 | 1990-09-12 | International Business Machines Corporation | Wire fire control mechanism for a wire matrix printer |
EP0389016A1 (en) * | 1989-03-04 | 1990-09-26 | Philips Patentverwaltung GmbH | Matrix printer |
GB2235161A (en) * | 1989-08-09 | 1991-02-27 | Brother Ind Ltd | Driving circuit for solenoid head of a printer |
US5163762A (en) * | 1989-08-09 | 1992-11-17 | Brother Kogyo Kabushiki Kaisha | Driving circuit for solenoid head of a printer |
GB2235161B (en) * | 1989-08-09 | 1993-12-15 | Brother Ind Ltd | Driving circuit for solenoid head of a printer |
Also Published As
Publication number | Publication date |
---|---|
EP0226388A3 (en) | 1988-02-10 |
JPS62162556A (en) | 1987-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4844635A (en) | Wire fire control mechanism for a wire matrix printer | |
US4030591A (en) | Controls for a movable disk printer | |
US4147967A (en) | Apparatus and method for controlling the velocity of a moveable member | |
JPH0450191B2 (en) | ||
US3950685A (en) | Dc motor position controller | |
US4169991A (en) | Variable print speed control | |
US6361137B1 (en) | Method and apparatus for compensating for variations in printhead-to-media spacing and printhead scanning velocity in an ink-jet hard copy apparatus | |
EP0226388A2 (en) | Print wire fire control mechanism for a wire matrix printer | |
US3838250A (en) | Control for a matrix printing assembly | |
US4469460A (en) | Matrix printer with optimum printing velocity | |
CA1114516A (en) | Apparatus for synchronizing carrier and rotatable print disk positions in on-the-fly printing | |
US3672297A (en) | Printing control device in high speed chain printer with hammers movable to plural print positions | |
US4737924A (en) | Dot matrix type serial printer | |
EP0367059A2 (en) | Wire fire control mechanism for a wire matrix printer | |
EP0033069B1 (en) | Printer system with continuous-moving type element | |
CA1056207A (en) | Controls for a movable disk printer | |
EP0098375B1 (en) | Compensation circuit for multiple speed printer | |
CA1130463A (en) | Dot matrix character printer with variable speed control | |
US3509817A (en) | Line printing with proportional spacing and justification | |
US3773161A (en) | High speed serial printer with plural hammers | |
CA1061253A (en) | Variable print speed control | |
CA1187192A (en) | Microprocessor-controlled adapter circuit for real- time controls, in particular for print hammer controls | |
EP0303124A1 (en) | Control for enabling flight timing of hammers during printing | |
EP0121882A2 (en) | High quality printing method | |
US5383399A (en) | Zero hammer adjustment drum printer control technique |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): DE FR GB |
|
17P | Request for examination filed |
Effective date: 19871023 |
|
PUAL | Search report despatched |
Free format text: ORIGINAL CODE: 0009013 |
|
AK | Designated contracting states |
Kind code of ref document: A3 Designated state(s): DE FR GB |
|
17Q | First examination report despatched |
Effective date: 19890621 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN |
|
18W | Application withdrawn |
Withdrawal date: 19901005 |
|
R18W | Application withdrawn (corrected) |
Effective date: 19901005 |
|
RIN1 | Information on inventor provided before grant (corrected) |
Inventor name: MALKEMES, CHARLES DAVID Inventor name: CAVILL, BARRY RICHARD |