Apparatus and method for automatically determining defective thermal printhead elements
9 claims: 2 independent, 7 dependent
- 1Thermal printing apparatus including a linear array (11) of thermal elements (R,-R N ) and data generating means (19, 38) adapted during a first mode of operation to generate printing data for said thermal elements (R,-R N ) and adapted during a second mode of operation to produce test data, wherein test signal developing means (R s , 35, 37) are coupled to said thermal elements (R 1 -R N ) and are effective during said second mode of operation to provide test signals associated respectively with said thermal elements (R,-R N ) such that a failure signal is generated whenever a defective thermal element is detected, characterized by comparing means (21, 23, 29) adapted to compare said test signals with respective predetermined reference values, in that said printing data is formed by character data having a predetermined number of character positions, and by repositioning means (19) adapted to change the character positions with regard to said thermal elements (R,-R N ) such that said defective thermal element is not located in any of said character positions.
- 7A method for automatically detecting any defective thermal element in a linear array (11) of thermal elements (R 1 ―R N ) in a thermal printer, characterized by the steps of:determining an associated reference value for each thermal element, measuring a test signal for each thermal element during each of a sequence of test modes of operation;comparing each test signal for each thermal element with its associated reference signal during each test mode of operation;detecting a defective thermal element when a test signal for that thermal element deviates by at least a preselected amount from the associated reference signal for that thermal element during said comparing step, and changing the position of serial data bits representing data to be printed such that the defective thermal element is not utilized during the printing operation.
Independent claims2
92 paragraphs, as filed
Technical field
This invention relates to thermal printing apparatus of the kind including a linear array of thermal elements and data generating means adapted during a first mode of operation to generate printing data for said thermal elements and adapted during a second mode of operation to produce test data, wherein test signal developing means are coupled to said thermal elements and are effective during said second mode of operation to provide test signals associated respectively with said thermal elements, such that a failure signal is generated whenever a defective thermal element is detected.
The invention also relates to a method for detecting defective thermal printing elements.
Background art
In known thermal printing apparatus of the kind specified, such as is disclosed, for example, in U.S. Patent Specification No. 4,284,876, a linear array of thermal elements is adapted to print a plurality of characters aligned in predetermined locations across the printing line. The known apparatus has the disadvantage that should one of the thermal elements aligned with a character position fail, subsequently printed characters may be defective in that "holes" or gaps therein may appear. The failure of the thermal element only becomes known after an operator of the printer notices such "holes" or gaps appearing in some of the printed characters. The operator might not notice these "holes" until after, for example, thousands of print lines have been printed with "holes" in some of the printed characters. After finally noticing such "holes", the operator then has to shut off the thermal line printer and summon a skilled technician to replace the defective thermal printhead. The down time of the thermal line printer may be quite long and, therefore, costly in terms of repair expenses and lost man hours of the operator.
From European Patent Application No. 0 072 224 there is known a device for checking the printing circuit of a thermal printer, which includes a shift register adapted to store data to be printed and to control driver transistors which are connected to respective heating elements. The device includes a self-examination control section which effects at least one of three types of checking, namely a check on the driver transistors, a check on the heating elements and a check on the shift register. The checking is effected during time periods when printing operations are not being performed. The heating elements are checked sequentially by determining whether or not a current flows through the element. Such current flow is determined by detecting the potential at a common point. Thus it can be ascertained whether or not any of the heating elements is broken. If any of the checks discloses a malfunction, a defect signal is produced to give an indication of the defect and inhibit the printing operation. Disclosure of the invention
According to the present invention, there is provided thermal printing apparatus of the kind specified characterized by comparing means adapted to compare said test signals with respective predetermined reference values, in that said printing data is formed by character data having a predetermined number of character positions, and by repositioning means adapted to change the character positions with regard to said thermal elements such that said defective thermal element is not located in any of said character positions.
It will be appreciated that thermal printing apparatus according to the invention has the advantage that failure of a thermal element can be readily and automatically detected such that the apparatus can continue to operate effectively despite the failure of a thermal element therein. In other words, the apparatus automatically corrects for at least one defective thermal printing element.
According to another aspect of the invention there is provided a method for automatically detecting any defective thermal element in a linear array of thermal elements in a thermal printer, characterized by the steps of: determining an associated reference value for each thermal element, measuring a test signal for each thermal element during each of a sequence of test modes of operation; comparing each test signal for each thermal element with its associated reference signal during each test mode of operation; detecting a defective thermal element when a test signal for that thermal element deviates by at least a preselected amount from the associated reference signal for that thermal element during said comparing step; and changing the position of serial data bits representing data to be printed such that the defective thermal element is not utilized during the printing operation.
Brief description of the drawings
One embodiment of the invention will now be described by way of example with reference to the accompanying drawings, in which: <ul id="ul0001" list-style="none"><li>Fig. 1 is a schematic block diagram of a prior art or conventional thermal line printer;</li><li>Fig. 2 illustrates typical character columns for a 14-dot wide first character that, in a conventional thermal line printer, always use associated thermal printhead elements 1-14;</li><li>Fig. 3 is a schematic block diagram of a preferred embodiment of the thermal line printer of the invention;</li><li>Fig. 3A is a schematic block diagram of the processor of Fig. 3;</li><li>Fig. 4 illustrates a graph of percent change in a representative printhead element resistance (AR/ R% DRIFT) versus the number of printhead operations for that element;</li><li>Fig. 5A shows the character positions for characters 1 and 2 at the time that a defective element R<sub>3</sub> is first detected;</li><li>Fig. 5B shows the character positions of characters 1 and 2 afterthere is a software controlled shift of character positions within a line of serial data in order to compensate for the defective element R<sub>3</sub>; and</li><li>Figs. 6A-6E illustrate flow charts useful in explaining the operation of the preferred embodiment of the thermal line printer of Fig. 3.</li></ul>
Best mode for carrying out the invention
Although the thermal printer of the invention will be described in relation to its application in a thermal line printer, it should be realized that the thermal printer of the invention could be utilized in other applications. For example, the thermal printer of the invention can also be utilized in a serial thermal printhead.
Referring now to the drawings, Fig. 1 discloses an example of a prior art thermal line printer.
In the thermal line printer of Fig. 1 thermal printhead or thermal resistive elements or heater elements R,-R<sub>N</sub> are positioned in line on an insulated ceramic or glass substrate (not shown) of a thermal printhead 11. As shown in Fig. 1, upper terminals of the elements R,-R<sub>N</sub> are commonly connected to a positive voltage source (not shown) via a +V<sub>sus</sub> line 13, while lower terminals of the elements R,-R<sub>N</sub> are respectively connected to the collectors of NPN driver transistors Q<sub>1</sub>-Q<sub>N'</sub> whose emitters are grounded. These transistors Q<sub>1</sub>―Q<sub>N</sub> are selectively turned on (to be explained) 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<sub>N</sub> to thermally print a dot line of information. Each of the transistors Q<sub>L</sub>-Q<sub>N</sub> that is turned on allows current to flow through its associated one of the thermal resistive elements R,-R<sub>N</sub> for the length of time t that that transistor is turned on. The resulting I<sup>2</sup>Rt energy (typically 2-3 millijoules per element) causes heat transfer to a donor thermal transfer ribbon (not shown) when used or causes a recipient thermal paper (not shown) when used to develop.
In the operation of the thermal line printer of Fig. 1, a stream of serial data of N (binary) bits in length is shifted into a shift register 15 by CLOCK pulses until N bits are stored in the register 15. This shift register 15 is comprised of a sequence of N flip-flops (not shown) which are all reset to 0 state outputs by a RESET pulse before the stream of N bits of serial data is stored therein. These N bits of data in register 15 represent the next line of data that is to be thermally printed.
The N bits of data stored in register 15 are supplied in parallel over lines S<sub>1</sub>―S<sub>N</sub> to associated inputs of latch circuits 17. When the N bits stored in the register 15 have stabilized, a LATCH signal enables latch circuits 17 to simultaneously store in parallel the N bits of data from register 15.
Once the N bits of data from register 15 are stored in latch circuits 17, another line of N bits of serial data can be sequentially clocked into shift register 15.
The N bits of data stored in latch circuits 17 are respectively applied in parallel over lines L<sub>1</sub>―L<sub>N</sub> to first inputs of AND gates G<sub>1</sub>-G<sub>N</sub>. These N bits of data determine which ones of the thermal resistive elements R<sub>1</sub>-R<sub>N</sub> will be activated when a high STROBE pulse is commonly applied to second inputs of the AND gates G<sub>1</sub>-G<sub>N</sub>. More specifically, only those of the lines L<sub>1</sub>-L<sub>N</sub> that are high (logical 1) will activate their associated ones of the elements R<sub>1</sub>-R<sub>N</sub> to thermally print when the STROBE pulse is high. For example, if the binary bit on line L<sub>3</sub> is high, it will be ANDed in AND gate G<sub>3</sub> with the common STROBE pulse and turn on transistor Q<sub>3</sub>, causing current to flow through thermal resistive element R<sub>3</sub> for the length of time, t, controlled by the width of the STROBE pulse. The resulting I<sup>2</sup>Rt energy dissipated by element R<sub>3</sub> causes a dot to be thermally printed at that R<sub>3</sub> location on the recording medium or document being utilized.
To illustrate a problem associated with the prior art thermal line printer of Fig. 1, suppose that N=320. This means that the line printer of Fig. 1 has a row or line of 320 thermal resistive elements R<sub>1</sub>―R<sub>320o</sub> to print dot matrix characters. Further suppose that these characters are a maximum of 14 dots wide with an unused gap between character columns of, for example, 5 dots. Thus, the maximum number of characters that can be printed with such an exemplary 320 element printhead is 17.
Fig. 2 illustrates an exemplary first character (0) of these 17 characters-showing the first 14 element dots (derived from elements R<sub>1</sub>―R<sub>14</sub> in Fig. 1) typically assigned to individual character columns 1-14. The unused 5 dot space (character columns 15-19) between characters 1 and 2 is not shown. Thermal resistive elements R<sub>1</sub>―R<sub>320</sub> are respectively assigned to character columns 1-320 (not shown).
The important concept here is that with conventional thermal line printers, like that shown in Fig. 1, the character positions on the thermal printhead 11 are fixed. That is, character 1 will always use thermal resistive elements R<sub>1</sub>―R<sub>14</sub>, character 2 will always use thermal resistive elements R<sub>20</sub>-R<sub>33</sub>, character 3 will always use thermal resistive elements R<sub>39</sub>―R<sub>52</sub>, and so forth.
The problem with such a conventional thermal line printer having fixed character positions is that the printer essentially operates as an "open loop" system. In such an open loop system, when a thermal resistive element eventually burns out (and becomes unusable) there is no way for the system to detect and/or correct for the failure of that element. Only after the operator of the thermal line printer notices a "hole" appearing in some of the printed characters can the printer be shut off and the whole thermal printhead be replaced. For example, if element R<sub>3</sub> (Fig. 1) burns out, the third column of the O character in Fig. 2 would not be thermally printed, creating "holes" in that character in the top and bottom character bar segments shown in character column 3.
Character "holes" or gaps are unacceptable for, for example, such financial fonts as E13B, CMC7, OCRA and OCRB, since erroneous print can cause either document rejects which are costly to correct or character misreads which could be potentially more serious. Furthermore, after a printhead with a burned-out element is eventually detected by an operator who observes the erroneous print, a costly and time consuming replacement of the defective printhead by a skilled technician will follow. The time involved in replacing the defective printhead is especially critical in the financial/banking industry, where critical time deadlines must be met on a daily basis.
Referring now to Figs. 3 and 3A, a preferred embodiment of the thermal line printer of the invention is disclosed for minimizing the problems discussed in relation to the conventional thermal line printer of Fig. 1.
For purposes of this description, the thermal line printer of Fig. 3 includes the shift register 15, lines S<sub>1</sub>―S<sub>N</sub> latch circuits 17, lines L<sub>L</sub>―L<sub>N</sub>, AND gates G,-G<sub>N</sub>, lines C,-C<sub>N</sub>, driver transistors Q<sub>1</sub>―Q<sub>N</sub>, thermal printhead 11 (with thermal resistive or heater elements R<sub>1</sub>―R<sub>N</sub>) and the +V<sub>BUS</sub> line 13 of Fig. 1. These above-identified structural elements of Fig. 3 are similar in structure, structural interconnection and operation to those of the correspondingly numbered structural elements described in relation to Fig. 1 and, hence, require no further description.
The thermal line printer of Fig. 3 operates as a "closed loop" system which automatically detects and then automatically compensates for at least the first defective (burned out or marginal) one of the elements R,-R<sub>N</sub> in the thermal printhead 11. More specifically, the "closed loop" system of Fig. 3 automatically detects a defective one of the elements R,-R<sub>N</sub> prior to the time that that defective element becomes unusable, and then automatically corrects for at least the first defective element by altering the "fixed" character positions along the length of the printhead 11 by a software shift operation which alters the relative position of the character columns and gaps in the stream of serial data applied to the shift register 15.
In addition, the automatic detection of a defective, but still usable, element permits the operator to be notified of the impending failure of an element well in advance of the time that the printhead becomes unusable. Such an early notification of the impeding failure of an element allows the operator to summon a technician to replace the thermal printhead 11 during a non-peak, down-time period.
The system of Fig. 3 includes a processor 19, which is shown in more detail in Fig. 3A, for selectively controlling the operation of the system. The processor 19 can be a computer, microprocessor or any other suitable computing device. For purposes of this description, the processor 19 is an 8051 microprocessor manufactured by intel, Santa Clara, California. As shown in Fig. 3A, the microprocessor or processor 19 includes a first register 21, a second register 23, a read only memory (ROM) 25 which stores the software program to be performed, a random access memory (RAM) 27 for temporarily storing data, and an arithmetic logic unit (ALU) 29, controlled by the software program in the ROM 25, for performing arithmetic operations and generating signals to control the operations of the processor 19. In addition, the microprocessor or processor 19 includes additional circuits, such as a program counter 28 controlled by the ALU 29 for accessing the main program and various subroutines in the ROM 25, an accumulator 30, a counter 32, a lookup table pointer 34 and port buffers 36. The lookup table pointer 34 is under the software control of the program in the ROM 25 to selectively develop and output address (AG-A9) and to selectively provide a reference to defective element positions.
The operation of the system of Fig. 3 has two phases. In the first phase of operation, the thermal resistive elements R,-R<sub>N</sub> are periodically tested in order to detect a defective element. In the second phase of operation, the relative positions of the character columns and gaps in the serial stream of data for a line to be thermally printed are altered to correct for a defective element. These two phases of operation will now be discussed.
Element testing
Initially, the processor 19 applies an OFF signal to ON/OFF line 31 to turn off a voltage regulator 33, thus preventing the voltage regulator 33 from applying a +20V regulated voltage to the +V<sub>sus</sub> line 13 and to the thermal printhead resistive elements R<sub>1</sub>―R<sub>N</sub>. The turning off of the voltage regulator 33 forward biases a diode 35, which has its cathode coupled to the V<sub>BUS</sub> line 13 and its anode coupled through a sensing resistor R<sub>s</sub> to a +5V potential. With diode 35 forward biased, a voltage divider can be formed between sensing resistor R<sub>s</sub> and the parallel combination of any of the thermal resistive elements R,-R<sub>N</sub>, which can be controllably activated by selectively enabling the associated one of the driver transistors Q<sub>1</sub>―Q<sub>N</sub>.
For testing purposes, only one of the thermal printhead elements R,-R<sub>N</sub> is activated or turned on at any given time. This is accomplished by the processor 19 outputting serial data onto a SERIAL DATA line 38 and associated clock pulses onto a CLOCK line 40. The serial data contains only one "1" state bit which is associated in position within the serial data to the position of the element in the printhead 11 that is to be tested, 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 38 into the shift register 15 by means of the clock pulses on line 40. The position of this "1" state bit in the serial data in register 15 corresponds to the position of the element in the printhead 11 that is to be tested. This "1" state bit in the register 15 is latched into latch circuits 17 by a LATCH pulse. That latched "1" state bit, which is now at an associated one of the outputs L<sub>L</sub>-L<sub>N</sub> of latch circuits 17, is then used to enable the associated one of AND gates G,-G<sub>N</sub>, at the time of a STROBE pulse, to activate the desired one of the elements R<sub>1</sub>―F<sub>N</sub> by turning on the associated one of the transistors Q<sub>1</sub>―Q<sub>N</sub>. For example, if element R<sub>1</sub> is to be tested, only the last bit clocked into the register 15 would be a "1" state bit. This "1" state bitwould be applied via line S<sub>1</sub>, to latch circuits 17 and latched therein by a LATCH pulse. This "1" state bit in latch circuits 17 would be applied via line L<sub>1</sub> to enable AND gate G, at the time of the STROBE pulse to turn on transistor Q, and thereby activate element R, to be tested.
To test a given one of the elements R<sub>1</sub>―R<sub>N</sub>, a sense voltage, V<sub>sense</sub>, is measured or sensed at the junction of sensing resister R<sub>s</sub> and diode 35. The amplitude of the V<sub>sense</sub> voltage for an element being measured or tested is a function of the resistance value of that thermal printhead element. The value of V<sub>sense</sub> is given by the mathematical equation:<maths id="math0001" num=""><img file="EP0174751B1_D0001.tif" /></maths>where: <ul id="ul0002" list-style="none"><li>V<sub>D1</sub> =voltage drop across diode 35 (typically 0.2V to 0.3V for a germanium diode)</li><li>V<sub>QTPH</sub>=voltage drop across whichever one of the driver transistors Q<sub>1</sub>―Q<sub>N</sub> is turned on and in a saturated condition (typically 0.2V)</li><li>R<sub>TPH</sub>=resistance of whichever one ofthethermal printhead elements R,-R<sub>N</sub> has been selected for testing</li><li>R<sub>s</sub>=resistance of sensing resistor R<sub>s</sub>.</li></ul>
Thus, during an initial test mode of operation, an initial reference analog sense voltage, V<sub>sense</sub>, can be determined for each of the thermal resistive elements R<sub>1</sub>―R<sub>N</sub> in the thermal printhead 11, applied through a resistor 37 to the input of an analog-to-digital converter (A/D CONV.) 39. Upon receiving a START CONVERSION signal from the processor 19, after a V<sub>sense</sub> signal is determined, the A/D converter 39 digitizes the analog V<sub>sense</sub> signal. The processor 19 then applies a CEN (converter enable) pulse to the A/D converter 39 which causes the digitized V<sub>sense</sub> signal to be transferred via data bus 41 to the accumulator 30 (Fig. 3A) in the processor 19 and to the data input of a conventional non volatile RAM (NV RAM) 43. Upon receiving a RAM enable (REN) signal and a low write (WR) signal from the processor 19, the digitized V<sub>sense</sub> signal is transferred from the accumulator 30 (Fig. 3A) ofthe processor 19viathe data bus 41 to the associated memory location of the NV RAM 43 determined by the memory location address A0―A9 from the processor 19.
Before each V<sub>sense</sub> voltage is determined, address bits AO-A7 are applied from processor 19 via data line 41 to the input of an address latch 45. The processor 19 then applies an address latch enable (ALE) pulse to the latch 45 to latch the A0―A7 bits into the latch 45. The address bits AO-A7 at the output of latch 45 combine with the simultaneously developed address bits A8 and A9 from the processor 19 to form the appropriate memory location address of the NV RAM 43, into which the associated initial V<sub>sense</sub> signal is stored. At this time, a low WR (write) signal and a high RD (read) signal from the processor 19 are respectively applied to the WE (write enable) and OE (output enable) inputs of the NV RAM 43. The low WR signal enables the sequence of input digitized V<sub>sense</sub> measurements on data line 41 to be respectively written into the memory location addresses of the NV RAM 43 indicated by the address bits AO-A9. On the other hand, the high RD signal prevents data from being read from the NV RAM 43. Thus, the processor 19 stores the initial V<sub>sense</sub> measurement or signal for each of the elements R<sub>1</sub>-R<sub>N</sub> in the thermal printhead 11 in the NV RAM 43.
As mentioned before, the amplitude of the V<sub>sense</sub> voltage for an element being tested or measured corresponds to, and is equivalentto, the resistance value of that element. Therefore, the terms "V sense measurement of an element" and "resistance measurement of an element" will henceforth be used interchangeably in this description to mean the same thing. Thus, the initial resistance values of the elements R<sub>1</sub>―R<sub>N</sub> are stored in the NV RAM 43.
As will be discussed later, Fig. 6A illustrates a flowchart which describes the software subroutine that is used to perform these initial measurements of the elements R<sub>1</sub>-R<sub>N</sub> in the thermal printhead 11.
The initial V<sub>sense</sub> measurement or signal for each of the elements R<sub>1</sub>―R<sub>N</sub> is used to establish an initial reference value for determining whether or not a subsequent corresponding V<sub>sense</sub> measurement indicates a defective thermal resistive element. In explanation, it should be noted that the failure mode for each of the thermal printhead resistive elements R<sub>1</sub>―R<sub>N</sub> is a gradual process with each element becoming "more damaged" with each successive pulse of current that is passed through it. As indicated in Fig. 3, as the resistance of a resistive element increases (or decreases), its associated V<sub>sense</sub> value increases (or decreases) proportionally. Thus, a V<sub>sense</sub> measurement of an element is effectively a measurement of the resistance of that element.
Fig. 4 shows a graph of percent change in a representative printhead element resistance, or A R/R% drift, versus the number of printhead operations for that element, starting after 1 x 10<sup>6</sup> pulses have been previously applied to that element. At this starting point, it can be seen that the resistance of the element has decreased about 2.5% from the initial measurement of 0%.
Since, once an element starts to fail, this element resistance change curve of Fig. 4 is reasonably consistent for each of the elements R<sub>1</sub>-R<sub>N</sub> in the printhead 11, the progress of the resistance change for each element can be tracked during the life of the printhead 11 and, just prior to or at the time that the resistance of an individual element reaches +10% from the initial reference value of that element, the system of Fig. 3 can be alerted so that remedial action can be taken.
Returning now to Fig. 3, after the N resistive elements R,-R<sub>N</sub> have been initially measured and their digitized values stored in the NV RAM 43, an ON signal is applied from the processor 19 to the ON/OFF line 31 to turn on the voltage regulator 33. When turned on, the voltage regulator 33 utilizes an input +28V to develop and apply a +20V to the +V<sub>Bus</sub> line 13. This +20V back biases the diode 35, preventing any V<sub>sense</sub> measurements from being taken. The thermal printhead 11 can now be used for a normal printing operation, with serial data related to the next line to be thermally printed being serially loaded into the shift register 15, then latched into latch circuits 17 to selectively enable associated ones of the AND gates G,-G<sub>N</sub> to turn on associated ones of transistors Q<sub>L</sub>-Q<sub>N</sub>. In this manner, the resistive elements R,-R<sub>N</sub> are selectively activated to thermally print out dots corresponding to the serial data previously stored in the shift register 15.
After the normal printing operation is initiated, the resistances of the resistive elements R,-R<sub>N</sub> can be periodically measured (as discussed before) and compared to their corresponding initial reference values. Such measurements can be made at specified times, such as every hour or every day. At each specified time, the processor 19 applies an OFF signal to the ON/OFF line 31 to turn off the voltage regulator 33 and forward bias the diode 35 to start the test mode of operation. The processor 19 then outputs only one "1" state bit of data in each stream of serial data applied to SERIAL DATA line 36 in order to test or measure each of the elements R<sub>1</sub>―R<sub>N</sub>, in the same manner previously discussed. In an alternative arrangement, the "1" state bit of data that was loaded in the associated position of the shift register 15 that corresponds to element R, can be incrementally shifted through the shift register 15 to test or measure each of the elements R<sub>1</sub>―R<sub>N</sub> in the thermal printhead 11.
For each subsequent measurement of one of the elements R,-R<sub>N</sub>, a CEN pulse from the processor 19 enables the A/D converter 39 to output the corresponding digitized V<sub> sense</sub> value. That digitized value for an element is then read into the processor 19 and stored in first register 21. The NV RAM 43 is then accessed with the appropriate address bits AO-A9 and enabled by a low RD signal to read out the corresponding initial resistance value for that element. This initial resistance value for that element is then loaded into the second register 23 of the processor 19 (Fig. 3A). A software subroutine (Fig. 68) in the ROM 25 is then called to compare the corresponding initial and current values for an element to determine whether the current value of the thermal printhead element being measured exceeds its initial value by +10%. In this manner, each of the resistances of the elements R,-R<sub>N</sub> is selected, measured and compared with its associated initial reference value.
Correction for defective element
Eventually, when the first burned out or defective element is detected by such comparisons, the processor 19 will know specifically which element has a resistance change of 10% or more from its initial reference value. A software subroutine (Fig. 6D) in the ROM 25 is then called to work out how to position or change the character and gap positions in the stream of serial data so that the defective element is located in the gap between adjacent character positions in the serial data.
Figs. 5A and 5B show respective "before" and "after" states illustrating the software shift of data about a defective element, where element R<sub>3</sub> is assumed to be defective. More speciically, Fig. 5A shows the character positions for characters 1 and 2, as well as the gap therebetween, at the time that a defective element R<sub>3</sub> is first detected. Fig. 5B shows the character positions of characters 1 and 2 after there is a software controlled shift of character positions within a line of serial data in order to compensate or correct for the defective element R<sub>3</sub>.
For such a correction technique to work, it is required that the thermal printhead 11 contain at least as many extra resistive elements as the width of the characters being thermally printed. As indicated in Fig. 5A, it is assumed that at least the last 14 elements in the printhead 11 are extra (not used). It should, of course, be realized that the extra elements could have been positioned elsewhere along the row of elements R<sub>1</sub>-R<sub>N</sub> in the printhead 11. For example, the first 14 elements or the 7 elements at the start and the 7 elements at the end of the printhead 11- could have been selected as the extra elements.
In an exemplary 320 element thermal printhead 11 having 14-element wide characters with a gap of 5 elements between adjacent characters, a total of 16 characters can be printed in a line with, for example, the 11 elements at the start and the 10 elements at the end of the printhead being extra elements.
It should be noted at this time that the correction technique described above is guaranteed to work for the first defective element. Whether or not it works for a subsequently detected defective element (or elements) is dependent upon the position of that subsequently detected defective element and/or the number of extra elements allowed in the printhead 11. It should be realized that the thermal printer will continue to operate, regardless of the number of defective elements, as long as all of the defective elements can be repositioned in one or more of the gaps between characters. As soon as all of the defective elements cannot be repositioned in the gaps between characters, the processor 19 applies an OFF signal to ON/OFF line 31 to turn off the voltage regulator 33 and, hence, turn off the printhead 11 to prevent any further printing with that defective printhead 11. In most circumstances, it would be more advantageous for an operator of the thermal printer to summon a skilled technician to replace a defective thermal printhead 11, as soon as a defective element is detected, in order to avoid an unnecessary and costly downtime. In any event, the system of Fig. 3 allows the continued use of the printhead 11 after the first defective element is detected and also provides the operator with sufficient time to have a defective printhead 11 replaced during a convenient non-peak time period.
In an alternative approach for establishing an initial reference value for the elements R,-R<sub>N</sub>, one predetermined maximum value of resistance could be used for all of the elements R<sub>1</sub>―R<sub>N</sub>. That predetermined maximum value could be written into a software subroutine (Fig. 6C) in the ROM 25 (Fig. 3A). Then, the measured value of each element in the first register 21 (Fig. 3A) is compared to that predetermined maximum value. Whenever the measured value of an element exceeds this predetermined maximum value, a defective element is detected and a data shift will then be performed (Figs. 6D and 6E).
For a more detailed description of the step-by- step sequence involved in the operation of the system of Fig. 3, reference is now made to the subroutines shown in Figs. 6A-6E. These subroutines show the essential operational steps that are involved in the Element Testing and Correction for Defective Element phases of operation of the system of Fig. 3. As previously indicated, these operational steps are controlled by the processor 19 during the execution of the software program that is contained in the ROM 25. For each of the subroutines in Figs. 6A-6E, the system operation moves from the execution of the main program to that subroutine and then, after completing that subroutine, moves back to the main program.
Fig. 6A shows a subroutine for measuring the initial thermal printhead (TPH) resistances of the elements R<sub>1</sub>―R<sub>N</sub>.
The first step in this subroutine is to initialize the lookup table pointer 34 (Fig. 3A) in the processor 19 (which in this description is an exemplary Intel 8051 microprocessor). This step merely sets the address bits AO-A9 from the processor 19 to the predetermined first address location in the NV RAM 43 where the initial reference value of element R, is to be stored.
Initially, all of the thermal printhead element positions R,-R<sub>N</sub> in the shift register 15 are set to "0" states. The first thermal printhead element, position R<sub>1</sub>, is then selected by clocking a single "1" state bit into the shift register 15.
Next, the TPH element resistance of R, is measured by developing an initial V<sub>sense</sub> measurement or value for the element R, at the output of the AID converter 39. This initial value of R, is then stored or written into the NV RAM 43 at the address indicated by address bits AO-A9.
The subroutine then determines if the initial values for all of the exemplary 320 elements in the printhead 11 have been done. (Note that the printhead 11 is not limited to 320 elements but can contain any desired number of elements, depending on which specific printhead is being used). Since only the resistance of the first element R<sub>1</sub> has been measured, the subroutine enters a loop in which it increments the lookup table pointer 34 (Fig. 3A) to the next address for the NV RAM 43, selects the next TPH element (R<sub>2</sub>), measures the TPH element resistance of the next element (R<sub>2</sub>), stores the initial value of that next element (R<sub>2</sub>) in the NV RAM 43 and again determines if all 320 elements have been initially measured. The subroutine continues in this loop until all 320 elements have been initially measured. At this time, the operation is returned to the main program.
Fig. 6B shows a subroutine for comparing the presently measured value of the resistance of each of the TPH elements R<sub>1</sub>-R<sub>N</sub> to the associated initial value of resistance for that element in order to detect a defective element.
The first step in this subroutine is to initialize the lookup table pointer 34 (Fig. 3A) in the processor 19 to the address location in the NV RAM 43 where the initial reference value of element R<sub>1</sub> is stored. Then, the first TPH element R<sub>1</sub> is selected. The resistance of that selected TPH element is then measured by developing a present digitized V sense value for that element at the output of A/D converter 39.
The present digitized V<sub>sense</sub> value for that element (R<sub>i</sub>) corresponding to the present resistance value of that element (R<sub>1</sub>) is outputted from the A/D converter 39 and stored into the first register 21. Using the lookup table address, the initial resistance value of the corresponding element (R<sub>1</sub>) is read out from the NV RAM 43 and stored in second register 23.
The subroutine then decides whether the present resistance value or measurement of that element is acceptable by performing a software comparison to determine if the present value of resistance stored in first register 21 exceeds the initial value of resistance stored in second register 23 by more than ten percent (10%).
If the resistance of that element has not been increased by more than 10% over its initial value, that element is still functional and the subroutine then determines if all 320 elements in the printhead 11 have been checked for a resistance increase of over 10% from their corresponding initial resistance values.
If all 320 elements have not been checked, the subroutine enters a loop in which it increments the lookup table pointer 34 (Fig. 3A) to the next address for the NV RAM 43, selects the next TPH element, measures the present resistance of that TPH element, stores that present resistance value of that TPH element in first register 21, reads out the initial value of the corresponding element from the NV RAM 43 and stores that initial value in second register 23, and then determines if the resistance value of that element has increased by more than 10% over its initial value. If the resistance of that element has not increased by more than 10% and all 320 elements have not been checked, the subroutine continues in this loop until all of the 320 elements have been checked. After all 320 elements have been checked, the subroutine returns to the main program.
If the present resistance value of an element is greater than 10% more than the initial value for that element, then the subroutine branches from the above-described loop and stores the lookup table pointer value or memory location address of the defective element in an associated one of the spaces allotted for a failuretable (notshown) in the RAM 27 of the processor 19. An element failure flag (bit) is then setto indicate to the main program in the ROM 25 (Fig. 3A) of the processor 19 that a defective element has been detected.
After the element failure flag is set, the subroutine re-enters the above-described loop to determine if all 320 elements have been checked. If all 320 elements have not been checked, the subroutine continues in the loop. If all 320 elements have been checked, the program returns from the subroutine to the main program.
Fig. 6C shows a subroutine for comparing each of the present values of resistances of the TPH elements R,-R<sub>N</sub> with a predetermined maximum value in order to detect a defective element.
It should be noted at this time that the subroutine of Fig. 6C differs from the combined subroutines of Figs. 6A and 6B for detecting a defective element.
The subroutine of Fig. 68 is based on detecting a defective element by determining whether any of the resistances of the elements R,-R<sub>N</sub> changes by more than 10% from the initial values of resistances of the corresponding elements, where the initial values for the elements R,-R<sub>N</sub> were determined by the subroutine of Fig. 6A. In this first case, a resistance change of an element of more than 10% over its corresponding initial resistance value indicates the detection of a defective element.
On the other hand, the subroutine of Fig. 6C is based on detecting a defective element by determining whether the resistance of any of the elements R,-R<sub>N</sub> is greater than a common predetermined maximum resistance value. In this second case, when the resistance of an element becomes greater than the predetermined resistance value, that element is determined to be defective.
These first and second cases are mutually exclusive. Eitherthe subroutines of Figs. 6A and 6B can be used or the subroutine of Fig. 6C can be used, but never all of these subroutines together.
The first step in the subroutine of Fig. 6C is to initialize the lookup table pointer 34 in the processor 19 to select the location of the first TPH element (R<sub>i</sub>). Then, the first TPH element (R,) is selected. The resistance of that selected TPH element (R,) is then measured by developing a present digitized V<sub>sensa</sub> value for that element at the output of the A/D converter 39.
The present digitized V<sub>se°se</sub> value for that element (R,), which corresponds to the present resistance value of that element (R,), is then stored in the first register 21. A software comparison is then performed in which the subroutine determines whether the present value stored in first register 21 for that element (R<sub>1</sub>) is greater than a predetermined maximum digital value, which corresponds to the predetermined maximum resistance value.
If the value stored in first register 21 is not greater than the predetermined maximum value, the subroutine then determines if all 320 elements in the printhead 11 have been individually checked against the predetermined maximum value for a defective element. If all 320 elements have not been checked, the subroutine enters a loop in which it increments the lookup table pointer 34, selects the next TPH element, measures the present resistance value of that TPH element, stores that present resistance value of that TPH element in first register 21, and then determines if the present resistance value of that element is greaterthan the predetermined maximum value. If the present resistance value of that element does not exceed the predetermined maximum value and all 320 elements have not been checked, the subroutine continues in this loop until all 320 elements have been checked. After all 320 elements have been checked, the subroutine returns to the main program.
If the present resistance value of an element is greater than the predetermined maximum value, the subroutine branches from the above-noted loop and stores the lookup table pointer value or memory location address of the defective element in an associated one of the spaces allotted for a failure table in the RAM 27. An element failure flag (bit) is then set to indicate to the main program in the ROM 25 (Fig. 3A) of the processor 19 that a defective element has been detected.
After the element failure flag is set, the subroutine re-enters the above-noted loop to determine if all 320 elements have been checked. If all 320 elements have not been checked, the subroutine continues in the loop until all 320 elements have been checked. At this time, the program returns from the subroutine to the main program.
Fig. 6D shows a subroutine for determining how to positionally compensate for a defective TPH element previously detected by either the combined subroutines of Figs. 6A and 6B or by the subroutine of Fig. 6C.
Before proceeding with the explanation of the subroutine of Fig. 6D, a few comments will now be made.
It will be recalled that, in the exemplary 320 element printhead 11 being discussed, each character is a maximum of 14 dots wide with an unused gap of 5 dots between adjacent characters. With such parameters, a maximum of 16 characters can be printed with this exemplary printhead 11. With 16 characters across, 21 elements in the printhead 11 are extra or unused. This number of extra elements meets the requirement that there be at least 14 extra elements in the exemplary printhead 11 to enable the correction technique of the invention to work.
Assume that the software program in the ROM 25 sets the initial format of the serial (character) data from the processor 19 such that the 11 elements R<sub>1</sub>-R<sub>11</sub> on the left-hand side (LHS) of the printhead 11 and the 10 elements R<sub>311</sub>-R<sub>320</sub> on the right-hand side (RHS) of the printhead 11 are extra elements.
With the positions of the 16 characters initially fixed in character width, gap between adjacent characters and placement of the extra elements, as described above, the exact position of a defective element with a character can be readily determined. For example, if element R<sub>42</sub> became defective, the system of Fig. 3 would know that elements R<sub>1</sub>-R<sub>11</sub> were initially set up to be extra or unused elements, elements R<sub>12-</sub>R<sub>25</sub> were initially assigned to character 1, elements R<sub>26</sub>-R<sub>30</sub> were the unused elements in the gap between characters 1 and 2, elements R<sub>3</sub>,-R<sub>44</sub> were initially assigned to character 2, and so forth. Therefore, the system would also know that defective element 42 would be the twelfth element in character 2.
As indicated in insert 51 in Fig. 6D, the first 7 elements assigned to a 14-dot wide character are on the left-hand side (LHS) of that character, while the remaining 7 elements assigned to that character are on the right-hand side (RHS) of that character. A defective element on the LHS would constitute a positive (+) error and would ultimately require a right-hand shift of the serial data by the number of positions of the defective element from the LHS of the character, as indicated by arrow 53, in order to effectively place the defective element in the gap between adjacent characters. Similarly, a defective element on the RHS would constitute a negative (-) error and would ultimately require a left-hand shift of the serial data by the number of positions of the defective element from the RHS of the character as indicated by arrow 55, in order to effectively place the defective element in the gap between adjacent characters.
Initially, the subroutine of Fig. 6D determines whether a lookup table pointer value has been written into the failure table (not shown) of the RAM 27 by checking the element failure flags. If no element failure flag is set, the subroutine will return to the main program. This is due to the fact that, if there is no element failure, all of the elements in the printhead 11 are good and there is no defective TPH element to positionally compensate for.
If an element failure flag has been set, then some memory location address has been written into the failure table of the RAM 27. It is now necessary to find out exactly where the defective element is located in a character. To accomplish this task, the subroutine determines whether the defective element occurs on the LHS of a character. How such a determination is made has been previously discussed.
If the defective element occurs on the LHS of the character, the subroutine determines the number of positions of the defective element from the LHS of the character. This number of positions from the LHS is a + error position value which is then stored in a preassigned location in the RAM 27 of the processor 19 before the subroutine returns to the main program.
If the defective element occurs on the RHS of the character, the subroutine determines the number of positions of the defective element from the RHS of the character. In this case, the number of positions from the RHS is a - error position value which is then stored in the preassigned location in the RAM 27 before the subroutine returns to the main program.
Fig. 6E shows a subroutine for positionally compensating for a defective TPH element.
The first step in this subroutine is to set the SERIAL DATA line 38 between the processor 19 and the shift register 15 to a 0 state or binary 0 value. Then, 10 binary 0's are sequentially clocked into the shift register 15. Next, a line of 16 character information or 299 bits of serial data is applied to SERIAL DATA line 38 and sequentially clocked into the shift register 15. This serial data causes the initial 10 binary 0 bits to be clocked 299 additional positions into the shift register 15. The SERIAL DATA line 38 is once again set to a 0 state or binary 0 value. The subroutine then clocks into the shift register 15 a number of binary 0's equal to the algebraic sum of 11 and the (+ or -) error position stored in the RAM 27 (Fig. 3A), before returning to the main program.
To illustrate the latter binary 0 clocking step in the subroutine of Fig. 6E, assume that element R<sub>42</sub> was defective, as discussed before. The subroutine of Fig. 6D would have previously determined that defective element R<sub>42</sub> is the twelfth element in character 2, is on the RHS of character 2, is in the third position from the RHS of character 2 and, therefore, has a -3 error position value. This -3 error position value would be stored in RAM 27. Thus, in this latter binary 0 clocking step (in the subroutine of Fig. 6E), the subroutine would cause 11 +(-3) or 8 additional binary 0's to be clocked into the shift register 15.
As a result of this data shift to correct or positionally compensate for the exemplary defective element R<sub>42</sub>, elements R,-R<sub>B</sub> will now be extra unused elements, elements R<sub>9</sub>―R<sub>307</sub> will now be assigned to the 16-character-wide data information to be thermally printed, with defective element R<sub>42</sub> now being in the gap between characters 1 and 2, and elements R<sub>308</sub>-R<sub>320</sub> will now be extra unused elements.
It should be realized that, in the unlikely event that a defective element is detected which already lies between adjacent characters in the serial data, no action would be taken by the software program in the processor 19 to reposition the serial data, since a 0 error position for that defective element would be stored in the RAM 27, as indicated in the subroutine of Fig. 6D. Such a 0 error position would not cause any repositioning of the serial data, as indicated in the subroutine of Fig. 6E.
The described embodiment thus provides a system and method for automatically detecting defective thermal printhead elements in a thermal printer and for automatically correcting for at least one defective thermal printhead element.
12 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12
Every citation, both waysCites: the store holds 1 of 2
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US7669955B2 | Cited by | United States of America | Applicant |
| WO2008043120A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US7946674B2 | Cited by | United States of America | Applicant |
| US7618109B2 | Cited by | United States of America | Applicant |
| US7780256B2 | Cited by | United States of America | Applicant |
| US8388109B2 | Cited by | United States of America | Applicant |
| US7681970B2 | Cited by | United States of America | Applicant |
| US7918524B2 | Cited by | United States of America | Applicant |
| US8016389B2 | Cited by | United States of America | Applicant |
| US7722163B2 | Cited by | United States of America | Applicant |
| US7997673B2 | Cited by | United States of America | Applicant |
| US7819494B2 | Cited by | United States of America | Applicant |
| US7874633B2 | Cited by | United States of America | Applicant |
| US8075099B2 | Cited by | United States of America | Applicant |
| US7591523B2 | Cited by | United States of America | Applicant |
| US7891749B2 | Cited by | United States of America | Applicant |
| EP2073983A4 | Cited by | European Patent Office (EPO) | Search report |
| US7669956B2 | Cited by | United States of America | Applicant |
| US7604321B2 | Cited by | United States of America | Applicant |
| US7384128B2 | Cited by | United States of America | Applicant |
| US7938500B2 | Cited by | United States of America | Applicant |
| US7413288B2 | Cited by | United States of America | Applicant |
| EP2073983A1 | Cited by | European Patent Office (EPO) | Search report |
| US7425047B2 | Cited by | United States of America | Applicant |
| US7695091B2 | Cited by | United States of America | Applicant |
| US8287077B2 | Cited by | United States of America | Applicant |
| US7874631B2 | Cited by | United States of America | Applicant |
| US7425048B2 | Cited by | United States of America | Applicant |
| US7845747B2 | Cited by | United States of America | Applicant |
| US7658459B2 | Cited by | United States of America | Applicant |
| EP0072224A | Cites | European Patent Office (EPO) | – |
| IBM TECHNICAL DISCLOSURE BULLETIN, vol. 23, no. 1, June 1980, pages 145,146, New York, US; C.O. ROSS "Electrode checking circuit" | Non-patent | – | – |
7 members in 5 offices
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 640894 | United States of America | – | |
| 64089484 | United States of America | A | |
| 640894 | – | – | – |
| US19840640894 | – | – | – |
Members7
| Document | Office | Kind | |
|---|---|---|---|
| EP0174751A1 | European Patent Office (EPO) | A1 | |
| JPS6169482A | Japan | A | |
| US4595935A | United States of America | A | |
| CA1241567A | Canada | A | |
| EP0174751B1This record | European Patent Office (EPO) | B1 | |
| DE3566370D1 | Germany | D1 | |
| JPH0632938B2 | Japan | B2 |
25 legal events, as 3 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Notification of lapseLapsedST | ST | FR | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Patent endorsed licences of rightsD6 | D6 | FR | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| European patent in force as of 2002-01-01IF02 | IF02 | GB | |
| Register noted 'licences of right' (sect. 46/1977)746 | 746 | GB | |
| It: last paid annual feeITTA | ITTA | EP | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Fr: translation filedET | ET | EP | |
| It: translation for a ep patent filedITF | ITF | EP | |
| It: translation for a ep patent filedITF | ITF | EP | |
| Corresponds to:REF | REF | EP | |
| Designated contracting statesAK | AK | EP | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 0174751
- Publication, DOCDB
- 0174751
- Publication, EPODOC
- EP0174751
- Application
- 85305794
- Application, DOCDB
- 85305794
- Application, EPODOC
- EP19850305794
Titles3
- English
- APPARATUS AND METHOD FOR AUTOMATICALLY DETERMINING DEFECTIVE THERMAL PRINTHEAD ELEMENTS
- German
- Gerät und Methode zur automatischen Bestimmung defekter Heizelemente in einem Druckkopf
- French
- Appareil et méthode pour la détermination automatique d'éléments thermiques détecteurs dans une tête d'impression
Classification
- CPC, 3
- B41J2/35
- B41J2/365
- B41J7/96
- IPC, 6
- B41J2 375
- B41J2 35
- B41J2 365
- B41J7 96
- B41J29 00
- B41J29 46
Designated states1
- Contracting states, 1
- Italy
