Method and apparatus for thermal dot matrix printing

Abstract: In a method and apparatus for thermal printing, a print head having a plurality of print elements is stepped in increments equal to one quarter of the print element length in the direction of stepping and a specific energy level is determined to control the burn time of the printing element and hence the size of the resulting printed dot, thereby enabling enhanced character appearance for diagonal and curved character portions by minimizing voids and staircase corners.

Description: This invention relates to a method and apparatus for the thermal printing of characters which may have diagonal or curved portions. Non-impact printing, and particularly thermal printing, provides advantages in some applications where lack of noise and/or freedom from vibration are important considerations. In certain applications, such as thermal printing of magnetic ink characters, it is particularly important to reproduce accurately and precisely non-horizontal or vertical lines, such as angled and curved lines. For a financial font, such as E13B, for example, horizontal and vertical character bar segments can be printed within appropriate tolerances and parameters, such as a character pitch of eight characters per inch (25.4mm), with each character being formed by a matrix of fourteen dots horizontally and eighteen dots vertically. There are an additional five dots in the horizontal gap between characters. Typically, the dot matrix character is formed by sequentially moving the thermal printhead past a stationary thermal transfer ribbon, which may be one containing magnetic ink, and a stationary document, while energizing selected thermal printhead resistive elements to effect ink transfer from ribbon to document one character row or column at a time. Thus for a parallel printer, the thermal printhead would be sequentially stepped to eighteen distinct locations and at each location a row of the dot matrix image would be printed. For a serial printer, printing a twelve character amount field, the thermal printhead would be sequentially stepped to nineteen (fourteen character positions plus five between-character spaces) times twelve equals 228 distinct locations, and at each location, a column of up to eighteen dots comprising the image would be printed. It should be noted that although the foregoing has described an implementation in which the thermal printhead moves, an alternative embodiment, in which the thermal printhead is stationary and the transfer ribbon and paper move, is also viable. This, however, is not a preferred embodiment since it is easier to ensure precise repeatable movements of the thermal printhead, than to rely upon the paper position variations, due to build-up of debris on the paper roller or platen. For the fourteen by eighteen dot matrix character under consideration, the resolution in the horizontal and vertical directions is set to 0.0065 inches (0.165mm), or one half the minimum character bar thickness. For a font such as E13B, one could obviously improve the printed resolution by increasing the dot density of the thermal printhead. However, this has the practical drawback of increasing the cost of the printhead and the printer, such that the product would no longer be viable in the marketplace. Since the positions of the dots making up the character are fixed, the design of the character is limited by the spacing between dot centers. It can accordingly be seen that although straight lines may be achieved in the horizontal and vertical directions, it is impossible, with realistic thermal printhead dot density, to achieve an absolutely straight angular line. Consequently, with prior techniques, the quality of printing of angular lines has not been altogether satisfactory with practical, cost-effective dot matrix thermal technology. As mentioned previously, this is true because of the tradeoff necessary between the expense associated with the dot density of the thermal printhead and the overall speed of the printer, on the one hand, and the desirability for good quality angular lines on the other. US-A-4 586 835 discloses a printer capable of printing diagonal lines of high quality by printing in a first pass the character in low quality based on a stored set of character data elements and in a second pass additional character data elements generated by logic means and offset from said stored set of character data elements. It is the object of the present invention to provide a method and apparatus for thermal printing whereby enhanced character images may be printed by thermal dot techniques in a cost-effective manner. Therefore, according to one aspect of the present invention, there is provided a method for the thermal printing of characters which may have diagonal or curved portions, including the step of providing a thermal printer having a thermal print head with a plurality of print elements, and providing relataive stepping movement between said thermal print head and a record medium to be printed, characterized in that each step of said stepping movement is less than the length of a print element in the direction of relative movement, and by the step of selectively applying varying amounts of energy to said print elements so as to selectively control the size of the areas recorded on said record medium, whereby the occurrence of voids and corners during printing of a diagonal or curved line is minimized. According to another aspect of the invention, there is provided apparatus for the thermal printing on a record medium of characters which may have diagonal or curved portions, including a thermal print head having a plurality print elements, and stepping control means adapted to provide relative incremental step movements between said print head and said record medium, characterized in that each step movement is less than the length of a print element in the direction of relative movement, and by energy control means adapted to select an energy level for each energization of a print element, whereby the occurrence of voids and corners during printing of a diagonal or curved line is minimized. It will be appreciated that in a method and apparatus according to the invention the combination of stepping by less than the print element length, and the selective control of the level of print element energization and hence of the printed dot size, enables the enhancement of printed characters having diagonal or curved portions. Embodiments of the invention will now be described by way of example, with reference to the accompanying drawings, in which:- Fig 1 is a "full-faced" or standard representation of the E13B character number seven, as produced by a typewheel/hammer impact printer. Fig 2 is a diagram showing a fourteen by eighteen dot matrix representation of the E13B character number seven. Fig 3 is a enlargement of the diagonal crossbar portion off the E13B character number seven shown in Fig 2. Fig 4 is a partial view of a thermal printer mechanism. Fig 5A is a chart showing ROM memory contents for a sixteen by eighteen bit E13B character number seven for a parallel thermal printhead printer. Fig 5B is a chart showing ROM memory contents for an E13B character number seven using quarter dot step resolution for a parallel thermal printhead printer. Fig 6 is a diagram showing an E13B character number seven printed by a parallel thermal printhead using quarter dot step resolution. Fig 7A is a diagram illustrating the diagonal line angle which can be accommodated with quarter dot stepping. Fig 7B is a diagram illustrating the area void left over if quarter dot step printing is used to print steep diagonal lines. Fig 8 is a diagram illustrating the actual printed dot appearance plotted versus the percentage of nominal element energy. Figs 9A and 9B, taken together, constitute a block diagram view of the electronic control circuit of the present invention. Fig 10 is a diagram showing an enlargement of the diagonal cross part of the E13B character number seven printed using a serial thermal printhead, along with specific energy assigned to various portions of the character data. Fig. 11 is a diagram of the E13B character number seven generally representing the result of a combination of quarter dot stepping and element energy control in the printing of diagonal lines. Fig. 12 is a diagram illustrating the manner in which the bit map data is derived for the E13B character number seven for the serial thermal printhead. Fig. 13 is a chart showing the ROM memory configuration of the fourteen by eighteen bit E13B character number seven for the serial thermal printhead. Figs. 14A, 14B and 14C, taken together, constitute a chart illustrating the ROM memory configuration of the E13B character number seven for the serial thermal printhead when quarter dot stepping is employed. Figs. 15A and 15B, taken together, constitute a chart illustrating the ROM memory configuration of the E13B character number seven for the serial thermal printhead when a combination of quarter dot stepping and element energy control is used. Fig. 16 is a chart illustrating the ROM lookup table relating element energy to its corresponding memory hexadecimal representation. Fig. 17 is a flow diagram showing the main line software operation employed in a serial thermal printing operation. Figs. 18A, 18B and 18C, taken together, constitute a flow diagram illustrating the software subroutine for calculating element burn times employed in the diagram of Fig. 17. Fig. 19 is a map showing the manner in which Figs. 18A, 18B and 18C are related. Fig 20 is a flow diagram illustrating the software subroutine for setup burn matrix employed in the diagram of Fig 17. Fig 21 is a chart illustrating the RAM memory contents for the serial thermal printhead operation. Fig 22 is a chart illustrating the ROM memory contents for the serial thermal printhead operation. Referring now to the drawings, Fig 1 illustrates a "full-faced" representation 30 of character number seven of the E13B font, as produced by a typewheel/hammer impact printing approach. If a dot matrix representation for this character is adopted, it is imperative that the diagonal crossbar 32 of the character seven represents Fig 1 as closely as possible in order to meet the stringent visual requirements of the font. Fig 2 illustrates a fourteen dot horizontal by eighteen dot vertical matrix representation 34 of the E13B character seven in which each dot or elemental area 36 is 0.0065 by 0.0065 inches (0.165 by 0.165mm). This character, and others in the E13B character set, could be printed by a thermal printhead with an element dot density of 153.85 dots/inch (6.06 dots/mm) and an incremental positioning system which allows a basis movement of 0.0065 inches (0.165mm) between dots. The appearance of the character could obviously be improved by using a thermal printhead with higher dot density; however, the cost of the unit then becomes unacceptable for commercial purposes. Fig 3 is an enlargement of the dot matrix representation of the diagonal crossbar region 32 of the E13B number 7. Superimposed over the dot element 36 matrix representation is the full-faced outline as per Fig. 1. It will be seen that the regions 38, 40, 42 and 44 exceed the desired diagonal line and regions 46, 48, 50 and 52 fall short of the desired line. As evidenced by Fig. 3, a "staircase" representation of the diagonal crossbar of the number 7 results. This staircase representation unfortunately is quite noticeable to the naked eye, since the eye is an order of magnitude more sensitive to sharp, contrasted edges such as are produced by thermal transfer than it is to fuzzy, mottled edges as are produced by impact printing techniques. The outcome of the above is that this staircase representation for the diagonal lines found in the E13B character 7 is not acceptable. Figs. 2 and 3 are simplified dot matrix representations of the E13B character 7. The actual appearance will be further degraded by a number of factors, including the following: first, the actual thermal printhead dot will not be square in shape with 0.0065 by 0.0065 inch (0.165 by 0.165mm) area and zero spacing between adjacent dots, but rather for technological reasons, will be rectangular in shape and will be 0.0055 by 0.0071 inches (0.14 by 0.18mm) in area with a 0.001 inch(0.025mm) inter-dot space; second, the resistances of the various elements within the thermal printhead will be different and will be dynamically changing throughout the life of the head, being primarily dependent upon particular element usage. As a result, the energy emitted from each dot will be different, which will result in a variable, uncontrolled dot size. The present invention provides an apparatus and a method such that the comparatively inexpensive 153.85 dots/inch (6.06 dots/mm) thermal printhead can be used to print diagonal lines and blended radii of curvature without discernible "staircase steps"; that is, to provide dot matrix printing technology which produces printed characters which appear "full face" in structure. This is accomplished by a combination of two techiques. The first technique, quarter step dot resolution, involves modifying the base line hardware which produces the character of Fig. 2 to allow the incremental positioning system the capability of moving or stepping at one fourth the previous step displacement or 0.001625 inch/step (0.041mm/step). For the parallel printer case, this results in increasing the number of viable start print positions for the printed dot from 18 to 72 in the vertical direction. In addition to the modification of the incremental motion system hardware, the character bit map ROM memory must be increased in size to accommodate the finer detail character resolution. It will be apparent that other incremental stepping arrangements, such as one-third dot stepping, or half dot stepping, could be employed, if desired, for appropriate applications. The second technique, element dot size control, involves precise control of the energy emitted by each and every element within the thermal printhead such that the printed dot size or shape may be modulated or controlled to allow the realization of diagonal lines and blended radii of curvatures. This second technique utilizes additional hardware to allow dynamic measurement of the thermal printhead element resistances, hardware to allow rapid update of the shift registers associated with the thermal printhead elements, and additional ROM and RAM memory to define the size of dot required for each dot position within the character dot matrix. Fig. 4 illustrates a partial view of a parallel thermal printer mechanism 56. Such a parallel thermal printer may typically have a thermal printhead 61 which includes 320 elements in a single line, which provides the capability for printing up to sixteen characters extending across a field. The printhead is stepped vertically, as the characters are formed, row by row, to complete simultaneous printing of a line of characters. To achieve quarter dot step resolution, the gear ratio between the large drive pulley 58 and the small drive pulley 60 has to be increased by a factor of 4 such that the platen 62 advances 0.0065/4 inches (0.165/4mm) for each step of the motor 64; or the step angle has to be decreased such that incremental step distance is 0.0065/4 inches (0.165/4mm); or a combination of the above (the motor step angle and gear ratio) must be provided such that the resultant step movement is 0.0065/4 inches (0.165/4mm). To take advantage of the increased number of "start" positions for the printed dot, ROM memory must be expanded to contain the high resolution bit maps. Fig. 5A illustrates the ROM memory contents for representing the base line fourteen dot horizontal by eighteen dot vertical representation of the character 7 shown in Fig. 2 for a parallel thermal printhead (TPH). The hexadecimal number system is used here. Note that to simplify matters, each character dot row is represented by two 8-bit bytes. That is, two extra bits (representing two of the five inter-character blank bits) have been added onto the right side of the character. Referring then to Fig. 2, we see, for example, that the bottom row, Row 1, only has two printed dots whose position correspond to 0000 0000 1100 0000 in the binary system or 00C0 in the hexadecimal numbering system. Fig. 5A completes the bit map for the sixteen (using two 8-bit bytes for each character row) by eighteen dot E13B number 7. Fig. 5B illustrates the ROM memory contents for representing the "high resolution" E13B character 7 shown in Fig. 6 for a parallel thermal printhead when quarter dot step resolution is employed. Note that Fig. 5B resembles Fig. 5A except for the area around the crossbar. The final row burn occurs at row 17.3 rather than row 18 in order to accommodate the 0.0071 inch (0.18mm)high element and to permit compliance with character and bar height constraints. Fig. 6 illustrates the ideal appearance of the E13B number 7 when quarter dot step spacing is used. Note that a dot shape of 0.0055 x 0.0071 inch (0.14 by 0.18mm) is used so some dot overlap is visible. It might initially appear that the quarter dot step spacing technique might require a longer printing period, since the required memory has been quadrupled. However, in practice, equivalent or faster printing times can be realized since one can burn "on the fly" and can experimentally determine where the burn should start to comply with character bar width specifications. When a parallel printer is used to print the E13B number 7 of Fig. 1 (that is, printing is performed from the bottom to the top of the character), the angle of the diagonal crossbar is approximately 35° and a "full faced" appearance can be derived by the quarter dot stepping technique discussed previously. However, when a serial printer is utilized (that is, the E13B number 7 of Fig. 1 is printed from right to left), the angle of the diagonal crossbar becomes approximately 65° and a full-faced appearance for the diagonal is harder to achieve, even with the quarter dot stepping technique. Obviously, a better full-faced appearance representation of the 65° diagonal line could be obtained with a higher density, more costly thermal printhead. The objective, however, is to make use of the inexpensive, lower dot density printheads to print even these steep diagonal lines. For the general case, irrespective of element dot density, it has been determined that the quarter dot stepping technique works satisfactorily for diagonals at angles ϑ where: ϑ ≦ tan⁻¹ (0.5 H/W) where ϑ = angle of the diagonal line with reference to the TPH element line H = height of the TPH element W = width of the TPH element For angles greater than this value of tan-¹ (0.5 H/W) a staircase appearance still is evident for the dot matrix diagonal representation and other techniques must be devised. Fig. 7A illustrates the situation for the illustrative example of the 0.0055 by 0.0071 inch (0.14 by 0.18mm) nominal energy dot size. It is seen that for diagonals at an angle ϑ less than or equal to 33°, as obtained with E13B using a parallel thermal printhead, the quarter dot step technique is satisfactory. Obviously, there will not be a sharp transition in print quality at 33° but rather the print quality will deteriorate in a gradual fashion as the angle increases. For the case of the serial printer approach, the diagonal crossbar of the number 7 would appear at 65° as illustrated in Fig. 7B. The problem to be solved is to fill the void left between the diagonal and the side wall of the closest dot; in Fig. 7B, this is shown as area "A." Fig. 8A illustrates an experimentally derived plot of length of printed (dot) dimension vs. the (input) print energy for both the 'x' and 'y' dimensions of the dot. A plot such as this is dependent on the efficiency of the TPH and such thermal transfer ribbon characteristics as melting point, ink coating weight and ink viscosity. Different ribbon parameters would result in different plot slopes. Also included in Fig. 8A is an additional horizontal axis showing the % of nominal energy, with an element energy of 1.4 mJ/dot being the nominal energy. Note that the rate of change of the y direction of the dot is greater than that of the x direction; this is due to the effect of structural boundary conditions on the element's temperature profile. Fig. 8B shows the actual size of the printed dot (superimposed on the thermal printhead element outline) as a function of % of nominal (input) energy. The point to be made here is that if the input energy to the thermal printhead element can be controlled, the size of the printed dot can be controlled. By varying the energy, the size of the printed dot can be controllably modulated. One of the problems with thermal printheads to date is that they are essentially open loop devices. That is, a common voltage and common duration burn time have been utilized for all elements. Since the element resistances have been spread over a wide range from beginning of use (that is, adjacent elements have different values) and have uniquely changed during the course of use, the output energy and hence printed dot areas have remained essentially uncontrolled and different from element to element. Shown in Figs. 9A and 9B is a block diagram of a system 68 which comprises an illustrative embodiment of the present invention. A thermal printhead, represented by the dashed-line block 70, includes a plurality of resistive thermal elements 72, also designated R₃ - R N in Fig. 9B, which are deposited or otherwise placed in line upon a ceramic or other substrate, represented by the block 74. Each element 72 is coupled at a first end to a conductor 76, and at its other end is coupled to the collector of a transistor 78, also designated Q₁ - Q N , the emitter of which is grounded, and the base of which is coupled to the output of an AND gate 80. These transistors Q₁ - Q N are selectively turned on by high or 1 state signals applied to their bases in order to ground preselected ones of the lower terminals of associated ones of the elements R₃ - R N in Fig. 9B to print thermally a line of information. Each of the transistors Q₁ - Q N that is turned on allows current to flow through its associated one of the thermal resistive elements R₃ - R N in Fig. 9B, for the length of time that the high or one state remains at the transistor base. The resulting energy causes heat transfer to either a donor thermal transfer ribbon (not shown) to effect ink transfer to plain paper or causes a recipient thermal paper (not shown), when used, to develop. A first input of the AND gate 80 is coupled to a TBURN line 82, and a second input of said AND gate 80 is coupled to one stage of a latch 84. Each stage of the latch 84 is, in turn, coupled to a corresponding stage of a shift register 86. A LATCH line 88 is applied to the latch 84, and a CLOCK line 90 is applied to the shift register 86. Signals on these lines are provided by interface circuitry 92, which will subsequently be described in greater detail. In addition, a SERIAL DATA line 94 is also applied to the shift register 86 from a parallel-to-serial shift register 96, to shift a stream of serial data of N (binary) bits in length into said register, as will subsequently be described in greater detail. One end of each element 72 is coupled by the conductor 76 to a VHEAD line 98, which is coupled through a node 100, to a voltage regulator 102, which can be switched on or off by a signal from a processor 112 applied to an ON-OFF line 103. From the voltage regulator 102, a path extends to a V+ terminal 104 to which a suitable source of potential is applied. A second circuit path extends from the V+ terminal 104 through a pair of current regulating diodes 106, a node 108 and a diode 110, which may be a germanium diode, to the node 100. The diodes 106 may be 1N5314 field effect current regulator diodes manufactured by Motorola, Inc., Phoenix, Arizona, with each diode regulating a nominal constant current of 5 milliamperes, so that the combination can regulate a total constant current of 10 ma. The node 108 is also connected to the input IN0 of an analog-to-digital converter 111, as will subsequently be discussed in greater detail. In addition to the above, in Fig. 9A, the node 100 is connected to the plus input of operational amplifier OP1 configured in a unity gain voltage follower configuration to provide effective isolation between the voltage regulator 102 output and the resistor network which is connected to the output of amplifier OP1. The output of amplifier OP1 is connected to one lead of a precision resistor R A . The other lead of R A is connected to one lead of precision resistor R B and also to the plus input of operational amplifier OP2 configured in a unity gain voltage follower configuration to allow isolation between the resistor network and input IN1 of the analog-to-digital converter 111. The output of amplifier OP2 also applies a low input impedance to the analog-to-digital converter 111. The other lead of resistor R B is grounded. The purpose of the precision resistor network is to attenuate the voltage VHEAD from the voltage regulator 102 by a precise factor such that the subsequent voltage level, V₁, is compatible with the maximum allowed voltage input of the analog-to-digital converter 111. Operational amplifiers OP1 and OP2 may be precision low offset output voltage devices such as the LT1013 as made by Linear Technology Corp., of Milpitas, California. Resistors R A and R B may be precision plus or minus 0.1% devices of value 10K ohms and 5K ohms respectively. The portions of the circuits of Figs. 9A and 9B described above have the capability of automatically measuring the absolute value of all of the resistive elements 72 contained within the thermal printhead 70. This is accomplished as follows. Initially the processor 112 applies an OFF signal to ON/OFF line 103 to turn off the voltage regulator 102, thus preventing the voltage regulator 102 from applying a +17.6V regulated voltage to the VHEAD line 98 and to the thermal printhead resistive elements R₃ - R N in Fig. 9B. The turning off of the voltage regulator 102 forward biases the diode 110, which has its cathode coupled to the VHEAD line 98 and its anode coupled through the two parallel-connected field effect current regulator diodes 106 to a +28V potential. With diode 110 forward biased, the 10 ma of constant current from current regulator diodes 106 flows through the diode 110 and through a selected one of the thermal elements R₃ - R N in Fig. 9B, and its associated one of the driver transistors Q₁-Q N to ground. Any given one of the thermal resistive elements R₃ - R N in Fig. 9B can be controllably selected by selectively enabling its associated one of the driver transistors Q₃ - Q N in Fig. 9B. For measurement purposes, only one of the thermal printhead elements R₃ - R N in Fig. 9B is activated or turned on at any given time. This is accomplished by the processor 112 outputting serial data onto the SERIAL DATA line 94 and associated clock pulses onto the CLOCK line 90. The serial data contains only one "1" state bit which is associated in position within the serial data to the position of the element 72 in the printhead 70 that is to be measured, with the remaining N-1 bits in the serial data being "0" state bits. The serial data containing only one "1" state bit is clocked from the line 94 into the shift register 86 by means of the clock pulses on line 90. The position of this "1" state bit in the serial data in register 86 corresponds to the position of the element in the printhead that is to be measured. This "1" state bit in the register 86 is latched into latch 84 by a LATCH pulse on line 88. That latched "1" state bit, which is now at an associated one of the outputs L₃ - L N of latch 34 of Fig. 9B, is then used to enable the associated one of AND gates 80, at the time of a TBURN pulse from the interface circuitry 92, to activate the desired one of the elements R₃ - R N in Fig. 9B by turning on the associated one of the transistors Q₃ - Q N in Fig. 9B. For example, if element R₃ in Fig. 9B is to be measured, only the last bit clocked into the register 86 would be a "1" state bit. This "1" state bit would be applied via line SR₃ to latch 84 and latched therein by a LATCH pulse. This "1" state bit in latch 84 would be applied via line L₃ to enable the corresponding AND gate 80 at the time of the TBURN pulse to turn on transistor Q₃ and thereby activate element R₃ and thus allow its resistance to be measured upon application of the constant current. Alternatively, it has teen determined in practice that the TBURN line 82 may be left on for the entire printhead element resistance measurement period as the constant current flowing through the element is comparatively low, and the required system measurement time is small. It will be recalled that, when diode 110 is forward biased, the 10 ma of constant current from the current regulator diodes 106 flows through the diode 110 and through the selected one of the thermal elements R₃ - R N of Fig. 9B and its associated one of the driver transistors Q₃ - Q N of Fig. 9B to ground. This 10 ma of constant current causes a voltage VSENSE to be developed at the junction 108 of the diode 110 and the parallel-connected diodes 106. The amplitude of VSENSE is substantially dependent upon the amplitude of the voltage developed across the selected one of the elements R₃ - R N of Fig. 9B, which in turn is dependent upon the resistance of the selected one of the elements R₃ - R N of Fig. 9B. More specifically, the amplitude of VSENSE can be determined by the equation: VSENSE = (0.01A) . R TPH + V D110 + V QTPH where 0.01A = 10 ma R TPH = resistance of whichever thermal printhead element has been selected for measurement (R₃ - R N of Fig. 9B) V D110 = voltage drop across the germanium diode 110 (typically 0.2 to 0.3V) V QTPH = voltage drop across whichever saturated driver transistor is turned on by the "1" state bit (typically 0.8V). Thus, a VSENSE value equaling voltage measured at input IN0 to the analog-to-digital converter 111 can be determined for each of the thermal elements R₃-R N of Fig. 9B in the thermal printhead 70. Each VSENSE value is sequentially digitized by the analog-to-digital converter 111, after which the processor 112 temporarily stores the digitized VSENSE value into one of the processor general purpose registers. The software program stored in read-only memory (ROM) 116 then directs the processor 112 to subtract the digitized equivalent of the sum of V D110 and V QTPH to obtain the digitized equivalent of (0.01A)(R TPH ) measurement and thus obtain a value which effectively corresponds to the respective element resistance. These computed digitized values of (0.01A) (R TPH ) for the printhead elements are then stored in RAM memory 114. To obtain the absolute element resistance R TPH one would have to divide the (0.01A) R TPH value by the constant 0.01A. In actual practice the linearly related term 0.01A R TPH is used and stored in RAM memory. This sequence of measuring VSENSE for an element, subtracting the term V D110 + V QTPH , and storing in RAM memory is repeated for all elements within the printhead. There are at least two techniques to obtain the digitized value which represents the sum of V D110 + V QTPH . The first technique involves assuming a constant non-varying voltage drop as a result of the constant 10mA electrical current. For example V D110 + V QTPH = 0.25V + 0.8V = 1.05 volts. This 1.05 volts may in turn be digitized by the analog-to-digital converter 111 during design and programmed as a fixed value into ROM 112. This approach is satisfactory for most applications. Furthermore a fixed constant value can also be assumed for VHEAD and programmed as a fixed value in ROM. The second approach is illustrated in Figs. 9A, 9B and may be utilized for applications where higher accuracy is desired. This second approach is in fact a preferred approach. As illustrated in Figs. 9A, 9B, two of the printhead elements, say for example R₁ and R₂, have been made inoperative and their associated transistor drivers, Q₁ and Q₂, have been used to provide an automatic technique in determining a digitized value for the actual (V D110 + V QTPH ) value, and also a determination of the actual value of the regulated current. If transistors Q₁ and Q₂ are not selected for this technology, transistors Q N-1 and Q N , located at the opposite end of the printhead element line, should be selected, such that the printing operation need not be affected. It is seen from Figs. 9A, 9B that the collector 78 of transistor Q₁ is connected directly to the VHEAD line 98. It is noted that the collector 78 of transistor Q₂ is connected to one end of a precision (±0.1%) discrete resistor 72B of value RNOMINAL which equals the printhead manufacturer's specified nominal element average resistance. The other end of this precision discrete resistor 72B is connected to the VHEAD line 98. The precision discrete resistor 72B resides on the printhead proper 70 adjacent to the driver transistors. It is not located next to the elements R₃ - R N , nor does it play a role in the actual physical printing operation. The operation of this second technique to obtain a digitized value for the sum of V D110 + V QTPH is quite simple. First, only transistor Q₁ is selected by the methods previously described, producing a sense voltage VSENSE₁ = V D110 + V QTPH which appears at the input IN0 to the analog-to-digital converter 111. With this technique, a measurement is provided of the actual diode and saturated transistor collector-emitter drops along with any connector interconnect voltage drops. These voltage drops may be approximated with one number, but in practice they will be dependent on the actual parts used and the actual usage configuration (setup and environment). This VSENSE₁ is then digitized by the analog-to-digital converter 111 and stored in RAM 114 by the processor 112. Note that the VSENSE₁ value is comparatively insensitive to minor variations in the 10mA constant current regulated by current regulator diodes 106. Next, only transistor Q₂ is selected by the methods previously described producing a sense voltage, VSENSE 2 = (I 10mA ) RNOMINAL + V D110 + V QTPH which appears at the input to the analog-to-digital converter 111. The sense voltage VSENSE₂ is digitized and stored in RAM 114 by the processor 112. The processor 112 then subtracts the digitized value of VSENSE₁ from the digitized value of VSENSE₂. VSENSE₂ - VSENSE₁ = [(I 10mA ) RNOMINAL + V D110 + V QTPH ] - [V D110 + V QTPH ] = (I 10mA ) RNOMINAL . Now since RNOMINAL is a precision (within plus or minus 0.1%) known resistance value, the voltage generated across it by a calibrated current of 10mA can be determined and stored in ROM 116 at the time of software programming. Since cost constraints prevent a calibrated current source from being used for current regulating diodes 106 in a production environment, use is made of inexpensive current regulating diodes such as are made by Motorola and others which are capable of regulating currents to plus or minus ten percent. The purpose then of computing VSENSE₂ -VSENSE₁ is to factor this plus or minus ten percent tolerance out of the equation. The processor 112 computes a correction factor C by taking the ratio of the calibrated digitized value stored in ROM 116 to the actual measured value VSENSE₂ - VSENSE₁ stored in RAM 114. Thus, since I 10mA can vary plus or minus 10%, the correction factor C will accommodate this variation. For example, if the actual value of I 10mA is slightly lower than 10mA, the measured value of VSENSE₂ - VSENSE₁ might indicate a resistance lower than RNOMINAL. However, since RNOMINAL is known to within ±0.1% we can account for the lower current and provide the correct value of RNOMINAL by multiplying (VSENSE₂ - VSENSE₁) by C. This correction factor C will be used for each and every resistance measurement made within the printhead. Its purpose is to compensate for a regulated measurement current which differs from the nominal design value. To summarize, the sequence for each printhead element resistance measurement cycle in Figs. 9A, 9B is as follows: A. CALIBRATION 1. Determine VSENSE₁ = V D110 + V QTPH 2. Determine the regulated measurement current calibration factor C. B. MEASUREMENT OF ELEMENTS 3. Measure VSENSE for each of the elements 4. Subtract VSENSE₁ from VSENSE 5. Multiply the difference by the correction factor C to obtain the final measure of the element's resistance. = C [VSENSE - VSENSE₁] Once again, it should be noted that the actual element resistance would be obtained by dividing the quantity C [VSENSE - VSENSE₁] by 10mA. In practice, however, this is not necessary. It should also be noted that in practice the printhead element driver transistors Q₁-Q N , the latches L₁-L N and the shift registers SR₁-SR N are contained in LSI integrated circuits in groups of 32 or 64; that is, 32 drivers, latches and shift registers all in one integrated circuit. As a result, in practice there is a characteristic V QTPH for each LSI integrated circuit. Therefore a more precise implementation would have one driver transistor from each LSI integrated circuit, similar to transistor Q₁ of Fig. 9B, dedicated for calibration purposes such that the value V QTPH for each integrated circuit can be determined. The result of the above is a table of digital values in the RAM memory 114 corresponding to each element resistance within the printhead. Following the measure of each of the printhead elements the processor 112 applies an ON signal to the ON/OFF line 103 to turn on the voltage regulator 102 allowing the VHEAD voltage to appear at 76. In addition to the previously-mentioned interface circuitry 92, parallel-to-serial shift register 96, analog-to-digital converter 111, processor 112 and random access memory (RAM) 114, the system for controlling the energization and operation of the thermal printhead 70 includes a read-only memory (ROM) 116 and data input means 118. The data input means 118 may take any desired or appropriate form, such as a communications interface with another system, for example, such as an interface with a video memory or the like. A digital data bus 120 couples these various components together, for purposes of communication and control. The digital data bus 120 actually comprises three separate buses, a data bus, an address bus and a control bus, which interconnect various components of the system. To allow modulation of the individual printed dot, specific energies have to be assigned to each dot in the bit maps. Thus, the quarter stepping technique increases the requirements for the ROM memory 66 of Fig. 9A by a factor of 4 from the base line Fig. 2 representation, and use of the element energy modulation technique will result in a further factor of 4 increase in the ROM memory requirements, resulting in a 16-fold increase from the original base-lined Fig. 2. That is, each dot will be represented by 4-bit nibble that is one of sixteen possible energy levels, a range which has been found to be sufficient for most applications. In addition, RAM memory will be expanded by a maximum factor of 40 to accommodate the maximum number of basis burn time periods dt. With the capability of modulating printed dot size, the edge smoothness of the 65° diagonal line of the E13B number 7 diagonal crossbar during serial printing may be further improved, as shown in Fig. 10, which illustrates a closeup of the diagonal crossbar portion of the number 7, showing the nominal positions of the printed dots when the quarter dot stepping technique is utilized. The rectangular representation in Fig. 10 also quite clearly illustrates the problem with diagonals in excess of 33°; in this case 65°. The representation of the diagonal crossbar is staircase at best, even with quarter dot stepping. The shaded portions of Fig. 10 represent modifications of the rectangular representation, which can be made by varying the energy applied to a given printhead element of a given time. Fig. 10 assumes that the serial thermal printhead moves from the right to the left of the character. Also, in Fig. 10, is shown the % of nominal energy which should be applied to each dot location to enhance the nominal quarter dot step representation of the diagonal line. In tabular form, this is summarized as follows, with the various incremental areas to be increased or decreased being represented by reference characters. DOT % NOMINAL ENERGY PROBLEM AREA A.5.0 120 Enlarge into area 138 A.5.3 110 Enlarge into area 130 B.4.0 80 Decrease area 156 B.4.3 120 Enlarge into area 138 and 132 B.5.1 120 Enlarge into area 132 B.5.2 95 Decrease area 150 C.2.2 80 Decrease area 158 C.3.1 120 Enlarge into area 140 and 134 C.3.3 120 Enlarge into area 134 C.4.1 90 Decrease area 152 D.1.1 80 Decrease area 160 D.2.0 120 Enlarge into area 142 E.1.0 110 Enlarge into area 144 E.1.3 110 Enlarge into area 136 The foregoing methodology can produce a number seven in E13B font which is similar in appearance to the diagram of Fig. 11. Fig. 12 shows the manner in which the data is arranged for the serial thermal printhead for the simplified fourteen by eighteen dot representation of the E13B number seven. It should be noted three 8-bit bytes are used to represent each column of the character. Nibble A of Byte three is not used for the E13B font, but can be used for fonts such as OCR, whose print center line is located higher from the bottom of the document than E13B, and for dot shifting techniques such as are described in United States Patent No. 4,625,216. Fig. 13 illustrates the manner in which the E13B number seven is stored in ROM memory for the base line fourteen by eighteen dot representation for serial printing when quarter dot stepping and element energy modulation are not used. Both binary and hexadecimal representation are illustrated in Fig. 13. It should be noted that 42 bytes are required to represent the E13B character number seven. Figs. 14A, 14B and 14C illustrate the ROM memory configuration for the E13B character number seven for serial printing when quarter dot stepping is used. Both binary and hexadecimal notation are used. It should be noted that 168 bytes of memory are required to represent the E13B character number seven. Figs. 15A and 15B illustrate the ROM memory configuration for the E13B character number seven for serial printing when both quarter dot stepping and element energy modulation are used. Only hexadecimal notation is used in Figs. 15A and 15B. It should be noted that 672 bytes of memory are used to represent E13B character number 7. In a minimally configured system, it is possible to "drop" rows 19-24 inclusive, reducing the memory requirements to 504 bytes for the E13B character number seven and other characters in the font. It should be noted that a key difference between Figs. 15A and 15B and either Fig. 13A or Figs. 14A, 14B and 14C is that Fig. 13 and Figs. 14A, 14B and 14C assign a nibble (4 bits) to each dot position. This nibble determines the energy level required at a specific dot position. Fig. 16 illustrates the relationship between the percent of nominal energy (as illustrated in Fig. 8A) and the hexadecimal notation used in Figs. 15A and 15B for each dot position. The basic operation is that the hexadecimal notation is retrieved from the ROM character memory and the hexadecimal code is translated via a look-up table, which is also in ROM memory, to give the required element energy as per Fig. 16. Referring to Fig. 9 and to the flow diagrams of Figs. 17, 18A, 18B, 18C and 20, the basic operation of the system will now be described. Fig. 17 shows the main line routine for a serial printing operation while Figs. 18A, 18B, 18C and 20 are subroutine flow diagrams which may be called up by the main line routine of Fig. 17. Although the routine shown in Fig. 17, and the subroutines shown in Figs. 18A, 18B, 18C and Fig. 20 are directed to a serial operation of a printhead, they could readily be adapted to parallel printhead operation. Referring now to Fig. 17, the print character main line routine is shown there, commencing with print character block 168. In block 170, the required character data input is obtained from the data input module 118 of Fig. 9A, and is stored in RAM 114. The subroutine "calculate element burn times" shown in block 172 is described more fully in Figs. 18A, 18B and 18C. This subroutine is performed to calculate the thermal printhead burn times and the burn increment counts for each of the twenty-four elements (row elements) in the printhead. The thermal printhead or the document is then stepped in a quarter step mode to either move it into position or to advance it to the next column print position, as represented in block 174. As represented in block 176, the subroutine burn current column, the character column data is transferred by direct memory access from the RAM 114 to the parallel-to-serial shift register 96, and is then serially clocked into the thermal printhead shift register 86. This data is then latched into latch 84 to initiate the energization of the selected thermal printhead elements. The shift register 86 and the latch 84 are continually updated at repetition times given by the following expression in which dt represents maximum update time. For this application, updating is performed every 80 microseconds since finer resolution is not required. This update continues until a maximum burn time is reached, whereupon the TBURN line 82 is turned off. The result is customized burn times, and thus customized energies, for each element within the printhead. These customized energies result in controlled print dot sizes. In block 178, a query is made to determine whether or not all character columns have been printed. In the illustrated example, sixty-four columns will be printed for each character. If the answer to this query is no, the character column pointer is incremented in block 180 and the process is reentered at block 172. If the answer to the query is yes, the query is made at block 182 as to whether all the characters have been printed. If the answer is no, the next character is obtained from the data input 118, by return to block 170 over path 184. If the answer is yes, the main line routine is exited at block 186, waiting for the next data input. Turning now to Figs. 18A, 18B and 18C, in the subroutine "calculate element burn times", commencing with block 172, which was briefly explained in the description of the main line routine, the following operation takes place. First, the voltage which is applied to the thermal printhead, VHEAD, is measured and digitized by the analog-to-digital converter 111 of Fig. 9A. This value is then squared and stored in the RAM 111, as represented in block 188, at address 11H of Fig. 21. The maximum burn count register (address 10H of Fig. 21), which will determine the longest burn time to be applied to one of the elements in the thermal printhead, is cleared or zeroed as represented in block 190. At block 192, the voltage regulator 102 is turned off. At block 194, the thermal printhead transistor Q1 is selected to determine the saturation voltage drop of the thermal printhead element driver transistors 78. This voltage, which is developed in response to the regulated constant current controlled by current regulator diode 106, is digitized by the analog-to-digital converter 111 and is stored in the RAM 114 at address 12H of Fig. 21. Also, in block 194, the thermal printhead transistor Q2 is selected to allow determination of the precise constant measuring current by passing the current through a 0.1% precision resistor RNOMINAL and measuring the voltage developed across said resistor after the previously determined transistor saturation voltage is subtracted. This "actual" constant current value is determined by comparing this measured voltage to the "ideal" voltage developed across the resistor RNOMINAL if an "ideal" constant current is passed through it. This actual current is then stored in the RAM 114 (address 13H of Fig. 21). At block 196, each of the thermal printhead element resistances is measured by selecting one of the thermal printhead transistors Q₃-Q n at a time, and passing the known constant current determined in block 194 through the unknown thermal printhead resistance R₃-R n . This voltage is then digitized and divided by the previously stored constant current value to give the element resistance. In the illustrated embodiment, twenty-four thermal printhead element resistances R₃-R₂₆ are determined and stored in the RAM 114, in addresses 14H-2BH of Fig. 21. At block 198 (Fig. 18B), the voltage regulator 102 is switched back on. At block 200, the character (energy) byte map pointer is initialized to the first dot column of the character being printed in the ROM 116. All characters are contained within 1010H to 5990H of Fig. 22. The specific starting address depends upon the character being printed. The energy required for each dot is represented in the ROM 116 by a 4-bit nibble, as per Fig. 14. This hexadecimal representation in the character ROM is then translated via a look-up table into a corresponding energy, as represented in block 202. In block 204, the burn time T for the considered dot element in the column is determined by dividing the required energy by the previously stored VHEAD², and multiplying this result by the measured resistance. This result is then stored in the RAM 114, in addresses 14H-2BH of Fig. 21. This "analog" burn time is then converted into "discrete" burn increment counts, as represented in block 206, by dividing the computed burn time T by a basis time interval dt, which for the example is 0.080 milliseconds. Thus, for example, if there is a calculated burn time of 1.60 milliseconds, a burn increment count of 1.60 divided by 0.08 , which equals 20, would be obtained. This computed burn increment count is then stored in RAM 114 at address 14H-2BH of Fig. 21. This count will determine the number of times the thermal printhead element is updated to obtain the desired energy and thus the desired dot size. In block 208 (Fig. 18C), this computed burn increment count is compared to a maximum burn count register to determine whether or not it exceeds the maximum burn count. If the answer is yes, the maximum burn count register is replaced by the burn increment count, as shown in block 210. Following this, or if the answer in block 208 is no, the query is made in block 212 as to whether or not all of the dots in the character column have been examined. If the answer is no, the character matrix pointer is advanced to the next dot (row), as represented in block 214, and the process is reentered via a path 216 at block 202. If the answer is yes, the subroutine is terminated, as shown in block 218 and the flow reverts to the main line routine. Turning now to Fig.20 , the subroutine 176 "burn current column", represented in block 176, which was briefly described for the main line routine, is shown. As represented in block 220, the set up burn matrix operation is called. This block examines the burn increment counts assigned to each element in the thermal printhead and sets up a corresponding binary bit column, which is 24 bits long, and which indicates, for each of the basis times increments dt contained in the maximum burn count register, whether a specified dot will be on or off. This bit matrix is stored in the RAM 114, contained within an address range of 2CH-AH4 in Fig. 21. The final address depends upon the maximum burn count register. For example, if column 1 of the exemplary E13B character seven is examined, it is seen that of the 24 rows, only rows 12-18 will be energized. Let it be supposed that the burn increment counts for these seven rows are 23, 18, 21, 20, 21, 19 and 20, respectively. The maximum burn increment count is obviously 23. Thus, after the activity in block 220 is completed, a 24 dot wide by 23 dot deep bit matrix will be stored in RAM which, when transferred 24 bits at a time to the thermal printhead, will control the thermal printhead operation. The RAM address will be 2C-71H of Fig. 21. As represented in block 222, the first column of this bit matrix is addressed. As represented in block 224, this column of 24 bits is transferred by direct memory access from the RAM 114 to the parallel-to-serial shift register 96 and onto the thermal printhead shift register 86 via clock 90 (block 226) at a 4.5 MHz rate. As shown in block 228, the TBURN line is enabled. While the first basis burn of 0.080 milliseconds is progressing, as represented in block 230, the next column of the bit matrix is addressed. As represented in block 232, this bit matrix is transferred by direct memory access from the RAM 114 to the parallel-to-serial shift register 96, and is then clocked onto the thermal printhead shift register 86. As represented in block 234, at the conclusion of the previous serial 0.080 millisecond basis time, the data is latched from the thermal printhead shift register 86 to the thermal printhead latches 84. As represented in block 236, the maximum burn count register is decremented. As represented in block 238, this register is interrogated to see whether or not it is zero. If the answer is no, the process is reentered as represented in block 230. If the answer is yes, the TBURN line 82 is turned off, as represented in block 240. The subroutine is then completed and the flow is returned (block 242) to the main line routine to be ready for the next dot column. Although the diagonal crossbar of the E13B character number seven has been used herein as an example, the tecniques described are not limited to this use. The blended radii of curvature of the E13B character zero may also be realized with these techniques, as can characters of other financial fonts, such as OCR and CMC7. Furthermore, algorithms can be derived for the more general graphics problems of diagonal lines and radii of curvature. The parallel thermal printhead approach described herein may be particularly suited for applications such as are described in United States Patents No 4,394,092 and 4,531,132. The serial thermal printhead approach may be particularly suited for use in inexpensive "table top" MICR or OCR encoders in an item processing or retail environment. A hybrid approach would be to use a parallel "line" thermal printhead in a serial mode, with some thermal printhead elements used to print the MICR/OCR line and with other elements being used to print the date, courtesy amount, legal amount, payee name, bar code, other symbol or design, etc. This hybrid approach could find wide use in a retail environment, as a general check printer, using for example the apparatus illustrated in Fig 4, in which the device embodying this approach would take a blank piece of paper and generate a completed check.

Claims: A method for the thermal printing of characters (30) which may have diagonal or curved portions, including the step of providing a thermal printer (56) having a thermal printhead (70) with a plurality of print elements (72), and providing relative stepping movement between said thermal print head (70) and a record medium to be printed, characterized in that each step of said stepping movement is less than the length of a print element (72) in the direction of relative movement, and by the step of selectively applying varying amounts of energy to said print elements (72) so as to selectively control the size of the areas recorded on said record medium, whereby the occurrence of voids and corners during printing of a diagonal or curved line is minimized. A method according to claim 1, characterized in that said step of energy includes the steps of: selecting an energy level for each energization of a print element (72); providing a digital value for each print element (72) during each step, representing whether or not said print element (72) is to be energized, and if so, the amount of such energization, based upon the energy level selection step; and storing said digital values in a memory (114) from which they may be retrieved during a printing operation to control the energization of said printing elements (72). A method according to claim 2, characterized in that each step of said stepping movement is approximately one-fourth said length of a print element (72). A method according to claim 1, characterized in that said characters are printed in a serial mode. A method according to claim 1, characterized in that said characters are printed in a parallel mode. The use of a method according-according to any one of the preceding claims, for printing a check. Apparatus for the thermal printing on a record medium of characters (30) which may have diagonal or curved portions, including a thermal print head (70) having a plurality of print elements (72), and stepping control means (58, 60, 64) adapted to provide relative incremental step movements between said print head (70) and said record medium, characterized in that each step movement is less than the length of a print element (72) in the direction of relative movement, and by energy control means adapted to select an energy level for each energization of a print element, whereby the occurrence of voids and corners during printing of a diagonal or curved line is minimized. Apparatus according to claim 7, characterized by storage means (114) adapted to store a digital value for each print element (72) during each step, representing whether or not said element (72) is to be energized and if so, the amount of such energization, based upon the energy level selection. Apparatus according to claim 8, characterized in that each incremental step movement is approximately one-fourth of the length of an individual print element (72).

Inventors: BROOKS RALF MAYNARD, BROOKS, RALF MAYNARD
Applicants: NCR CANADA, NCR CANADA LTD - NCR CANADA LTEE
Application year: 1988
Main classification: B41J2
IPC codes: B41J2, G06K15, B41M5