Printing apparatus, method of resetting it, and storage medium

Abstract: A printing apparatus for connection to and control by a host device (120), comprises an interface circuit (102) for receiving control commands, print data and reset signals (Vrst) from the host device (120), a printing mechanism (104), and a controller (103, 105, 106, 108) for controlling said printing mechanism (104) in accordance with said control commands, print data and reset signals so as to print text or graphics on a printing medium. The controller is adapted to perform a predetermined initialization of the printing apparatus in response to a reset signal (Vrst) received by said interface circuit (102). Measuring means (103, 107) for measuring the duration (Tr) of each of said reset signals (Vrst), are provided and the controller performs one out of a plurality of predetermined initialization processes selected depending on the duration of a respective reset signal (Vrst).

Description: The present invention relates to a printing apparatus, a reset method therefor, and a storage medium storing a program for executing the method. Printing apparatuses connected to a host computer and performing an initialization process in response to a reset signal received from the host computer are known. Printing apparatuses that perform an initialization process every time they are switched on are also known. A typical initialization process for such a printing apparatuses includes the following sub-processes: adjustment of the phase timing of a stepping motor, for example, the stepping motor for driving the print head in the line direction; positioning the print head relative to a reference position; cleaning the print head, particularly in case of an ink jet printing apparatus; initializing a command buffer and other memory areas; and initializing printer settings such as a form selection (slip or receipt forms, for example), font selection, print format (including character and line spacing), and printing quality (such as fine and normal). Some of these initialization sub-processes require more time than others. For example, the phase adjustment of a stepping motor (ensuring that a predetermined phase is excited) requires relatively little time, while the print head positioning and, particularly, the print head cleaning require a relatively long time. In case of an ink jet printing apparatus, in addition to the time required to suck off and/or eject ink from the print head for cleaning it, the cleaning also consumes ink. It is therefore desirable to avoid unnecessary cleaning operations as much as possible. To achieve this, JP-A-10151836 discloses measuring the time interval during which an ink jet printing apparatus is switched off and, upon the printing apparatus being switched on again, selecting between a complete initialization process and a partial initialization process depending on whether or not the length of the measured time interval exceeds a threshold value. If it does not exceed the threshold value, the complete initialization process including the cleaning of the print head is carried out, while otherwise only a partial initialization process not including the cleaning of the print head is carried out. A similar teaching is known from EP-A-0 442 438. When the printer described in this document is switched on, a recovery process selected in accordance with the duration of the printer having been switched off is performed. While the teaching of JP-A-10151836 and EP-A-0 442 438 solves one aspect of the problem, another aspect is not solved. Some applications that run on a host computer send a reset signal to the printing apparatus every time the application is invoked or at every printing transaction. Conventional printing apparatuses typically generate an interrupt at the leading edge of a reset signal, and perform all initialization processes at the trailing edge of the reset signal. Such applications, therefore, cause the printing apparatus to be completely reinitialized at the end of every printing transaction. Due to frequent unnecessary initialization processes, prior art printing apparatuses suffer from a substantially reduced printer throughput. In some cases they also suffer from an unnecessary consumption of consumables, such as ink in the case of ink jet printing apparatuses. Consider, for example, a point-of-sale (POS) system using a common application that sends a reset signal with every print transaction. This causes a print head cleaning operation to be performed with every print transaction, which takes a relatively long time and consumes a large amount of ink. Hence, the operating costs are greatly increased, and the processing speed of each print transaction is reduced. It is an object of the present invention to overcome the problems of the prior art explained before and to provide a printing apparatus and a reset method capable of avoiding unnecessary initialization processes being performed in response to reset signals received from a host computer to which the printing apparatus is connected or whose part it is. These objects are achieved with a printing apparatus as claimed in claim 1, a method as claimed in claim 10 and a storage medium as claimed in claim 16. In accordance with the present invention the object is achieved by measuring the reset duration, i.e., the duration of the active time of each reset signal received from the host computer. Duration of the active time means the length of time elapsing between the leading edge and the trailing edge of a reset impulse. Depending on the measured reset duration a selection is made between a plurality (two or more) of initialization processes. Hence, depending on the reset duration a more or a less time and, possibly, consumables consuming initialization process can be executed. Other objects and attainments together with a fuller understanding of the invention will become apparent and appreciated by referring to the following description of preferred embodiments taken in conjunction with the accompanying drawings, in which: Fig. 1 is a block diagram of a printer according to an embodiment of the present invention; Fig. 2 is a flow chart of a process a printer according to the present invention performs when it receives a reset signal; Fig. 3 is a flow chart of an initialization control routine according to a first embodiment of the present invention; Fig. 4 is a timing chart showing the processes selected when a printer according to the present invention receives a reset signal; and Fig. 5 is a flow chart of an initialization control routine according to a second embodiment of the present invention. Referring first to Fig. 1, a printing apparatus according to an embodiment of the present invention is described below. The printing apparatus is connected to a host computer 120 via an interface 102. Printing apparatus 101 includes, in addition to interface 102, a CPU (Central Processing Unit) 103, a ROM (Read Only Memory) 105, a RAM (Random Access Memory) 106, a flash ROM 108, an RTC (Real-Time Clock) 107, a delay circuit 113 and a printing mechanism 104. The printing apparatus 101 receives control commands, print data, and other information from the host computer 120 through the interface 102. The received data is temporarily stored in a receive buffer, which is a certain area of RAM 106. The CPU 103 drives the printing mechanism 104 based on the control commands and print data to print text and/or graphics to paper or other printing medium. RTC 107 counts the time in, for example, in seconds. In addition to print commands for printing text or graphics, the control commands from the host 120 include a reset command and various setting commands for setting certain parameters of the printing apparatus 101. When the printing apparatus 101 is turned on, the CPU 103 begins operating based on a program stored in ROM 105. It will be obvious that CPU 103 can first read the program from ROM 105 into RAM 106, and run the program from RAM 106. It is therefore possible to dynamically change and perform the initialization process as described more fully below. The CPU 103 creates a representation of the text or graphic to be printed in a print buffer, typically a certain area of RAM 106, and uses this representation to drive the printing mechanism 104. The CPU 103 uses font data stored in ROM 105 to generate the representation of text to be printed based on the character code information as the print data. Flash ROM 108 is a type of nonvolatile memory, and is used for nonvolatile storage of various information, It will be obvious that a static RAM (SRAM) with backup battery or other types of memory can be alternatively used instead of a flash ROM. The printing mechanism 104 of this exemplary printing apparatus 101 comprises a an ink jet print head 109, stepping motors 110 and 112, and a suction pump 111. Stepping motor 110 is for moving the print head 109 in a direction substantially perpendicular to the paper transport direction. Stepping motor 112 is for transporting the paper. It is to be noted that the printing apparatus may also have other stepping motors for such tasks as transporting an ink ribbon and selecting the paper transportation path when two or more types of printing media can be used. The suction pump 111 is used in a known manner to accomplish a cleaning process by sucking high viscosity ink off nozzles of the print head 109. A reset signal Vrst from the host 120 is supplied through interface 102 to an interrupt signal input terminal of the CPU 103 in this printing apparatus 101. The CPU 103 can, therefore, detect when a reset signal has been received from the host. The reset signal Vrst is also applied to the delay circuit 113, which in turn supplies a delayed reset signal to the reset terminal of the CPU 103. This delayed reset signal is referred to below as the internal reset signal Vr. When the CPU 103 is reset by this internal reset signal Vr, it performs an initialization process. The delay circuit 113 can be implemented by means of a timer or other circuit external to the CPU 103. It is to be noted that the reset signal Vrst is preferably supplied to the nonmaskable interrupt (/NMI) terminal of the CPU 103 so that an interrupt can always be asserted. Externally generated resets can thus always be reliably detected. The internal reset signal Vr is preferably supplied to the reset terminal (/RST) so that the CPU 103 can be forcibly reset. As a result, the CPU 103 can be reliably reset in response to an external reset signal Vrst. The CPU 103 uses the delay between when the reset signal Vrst is detected and when the internal reset signal Vr is detected to store a reset flag and the reset start time, i.e., the time at which the reset signal Vrst was received, in flash ROM 108 . This reset flag indicates that a reset signal was received from the host 120 through the interface 102 (as opposed to a reset signal generated, in response to a switching on of the printing apparatus 101, by the reset signal generator schematically shown in the upper right portion of Fig. 1). The reset start time is read from the RTC 107. The delay circuit 113 must delay the reset signal long enough to assure that the reset flag and reset start time can be stored. It will be obvious that the reset flag and reset start time can be stored in a volatile memory instead of the nonvolatile memory. This is because the reset signal Vr simply resets the CPU and does not cause the power supply to the printing apparatus 101 to stop; the memory content will, therefore, not normally be lost. Note, further, that the interface 102, CPU 103, ROM 105, RAM 106, flash ROM 108, RTC 107, and other elements are connected as in a conventional printing apparatus using a bus or other known means. The RTC 107 functions in conjunction with the CPU 103, RAM 106 and flash ROM 108 as a timer circuit. Fig. 2 is a flow chart of an interrupt process executed by the CPU 103 in response to a reset signal Vrst. This process starts when the host 120 sends the reset signal Vrst to the printing apparatus 101, and an interrupt is generated at the leading edge of the reset signal Vrst (see Fig. 4). When the reset signal Vrst from the host 120 is applied to its /NMI terminal, the CPU 103 sets the reset flag to indicate that the reset signal Vrst was detected (step 201). From the RTC 107 the CPU 103 obtains the reset start time, i.e., the time at which the leading edge of the reset signal Vrst was detected; this is the time at which the reset signal Vrst was input to the NMI terminal. The reset start time is stored in flash ROM 108 (step 202). These steps are performed while the reset signal Vrst is being delayed in delay circuit 113, i.e., within the time between when the reset signal Vrst is applied to both the NMI terminal and to the delay circuit, and when the internal reset signal Vr is applied to the RST terminal from the delay circuit. Following this and in response to the internal reset signal Vr, an initialization control routine is performed which is the same as that performed when the printing apparatus 101 is turned on. A flow chart of this control routine is illustrated in Fig. 3 and will be explained in detail below. After having returned from the interrupt routine of Fig. 2 and having received the delayed reset signal Vr, the CPU 103 waits, in step 103, for the trailing edge of the reset signal Vr, i.e., it waits for the reset signal to assume its inactive state. It should be noted that in the present embodiment, the active state of the reset signal Vr is a low potential state while the inactive state is a high potential state. Hence, when the leading edge of the reset signal Vr is due to a switching off of the host 120, the trailing edge will not occur until after the host 120 is switched on again and ready to send (plus the delay by delay circuit 113). Thus, if this step 301 is reached because a reset signal from the host computer was received, the CPU 103 waits until the host 120 is ready to send a control command. If this step is reached because the printing apparatus 101 was turned on, the CPU 103 waits for the trailing edge of the power-on reset signal. Next, the CPU 103 detects whether the routine was initiated due to an interrupt (step 302). In this exemplary embodiment, the CPU 103 infers that the routine was initiated by an interrupt if the reset flag in flash ROM 108 is set. If the reset flag is set (step 302 returns "Yes"), the flag is reset in step 303. The current time, that is, the time of the trailing edge of the reset signal, is then read as the reset end time from the RTC 107, the reset start time stored in flash ROM 108 is read, and the duration Tr of the active state of the reset signal is calculated from these two time values (step 304). Note that this duration is also referred to below as the "reset time". It will be appreciated that in the present embodiment the reset start time is the time at which the leading edge of reset signal Vrst is detected while the reset end time is the time at which the trailing edge of the delayed reset signal Vr is detected. Thus, the "reset time" does in fact represent the duration of the active state of the reset signal plus the delay time by the delay circuit 113. Since the delay time is a known constant it may either be subtracted from the calculated value Tr or considered in a correspondingly longer threshold value Tth which is explained below. Another alternative would be to have only the leading edge of the reset signal Vr delayed with respect to that of the reset signal Vrst while the trailing edges are made to coincide. For the ease of explanation the following description assumes that Tr is the true reset time between the leading and trailing edges of both of the reset signal Vrst and the reset signal Vr. Step 305 then detects whether this reset time Tr is equal to or longer than a predetermined threshold value Tth. If it is not (step 305 returns "No"), the interrupt is determined to be a short interrupt (i.e. the reset time is short) and cleaning of the print head is not necessary. A first initialization process is, therefore, selected and performed (step 306), this initialization process ends, and control proceeds to a normal printing process. Note that in this exemplary embodiment this first initialization process comprises stepping motor phase adjustment and print head positioning operations. If the reset time Tr is equal to or longer than the threshold value Tth (step 305 returns "Yes"), the interrupt is determined to be a long interrupt (i.e. the reset time is long) and cleaning of the print head is therefore necessary. This occurs, for example, when the printing apparatus 101 remains turned on while the host 120 has been turned off and later turned on again. In this case the first initialization process is performed (step 307), and then a second initialization process is performed (step 308), before the control routine ends, and control proceeds to a normal printing process. Note that in this exemplary embodiment this second initialization process comprises the print head cleaning operation. The threshold value Tth can be 10 seconds, for example, but can be defined as desired according to need and the specific application. If step 302 is reached for a reason other than an interrupt and step 302 therefore returns "No", steps 303 to 305 are skipped and the procedure jumps to step 307, in which the initialization process selected for a power-on reset operation is performed. A typical non-interrupt cause for reaching step 302 include the printing apparatus being turned off before a reset signal is received from the host, and then being turned on again. It is to be noted that step 302 is not always necessary. For example, when printing apparatus 101 is turned on again, the reset start time of the last reset signal is usually relatively old and the reset time Tr will therefore typically exceed the threshold value Tth, causing step 307 to be always performed when the printing apparatus is turned on. However, inserting step 302 makes it possible to more precisely control what initialization process is performed based on the cause for the initialization process. It will also be obvious that the control according to the routine described above is an example only. The order of the steps can be changed in various ways. Fig. 4 is a timing chart illustrating the temporal sequence of the processes performed according to the present invention in response to an internal reset signal Vr. The drop 402 in the potential 401 of the reset signal line represents a reset signal sent by an application running on the host 120; potential drop 403 represents a reset signal sent because host 120 power is turned off and on or, alternatively, a power-on reset signal. In response to reset signal 402 whose reset time Tr is shorter than Tth, the printing apparatus performs only the first initialization process, that is, phase adjustment 404 and head positioning 405. In response to reset signal 403 whose reset time Tr is longer than Tth, the printing apparatus performs both the first initialization process (phase adjustment 404 and head positioning 405), and the second initialization process (head cleaning 406). It is, therefore, possible to minimize the number of times the second initialization process is performed. As a result, the time required for initialization can be shortened and, in the present embodiment of an ink jet printing apparatus, ink consumption and operating costs can be reduced. Fig. 5 is a flow chart of an initialization control routine according to a second embodiment of the present invention. This embodiment differs from the first embodiment in that two threshold values (T1, T2) are defined for the reset time, and one out of three initialization processes is selected and performed based on a comparison between the reset time Tr obtained in the same way as in the first embodiment, and these two threshold values. It is to be noted that like steps in Fig. 3 and Fig. 5 are identified by like reference numerals, and for a description of such steps reference is made to the first embodiment. After obtaining the reset time Tr in step 304, step 501 compares the reset time Tr with the threshold values T1 and T2. Note that T1 < T2. If the reset time Tr is shorter than T1 (Tr < T1), a basic initialization process, in which, for instance, all or part of the contents of the receive buffer, the print buffer, and/or areas of RAM 106 in which settings are stored is cleared (step 502), is performed and then the control routine ends. If the reset time Tr is equal to or longer than T1 but shorter than T2 (T1 ≤ Tr < T2), a first initialization process (clearing of memory as in step 502, stepping motor phase adjustment and print head positioning operations) is performed (step 503), and then the control routine ends. If the reset time Tr is equal to or longer than T2 (T2 ≤ Tr), a first initialization process (in this embodiment the same as step 503) is performed (step 504), a second initialization process (print head cleaning) is performed (step 308), and the control routine ends. With the second embodiment of the control routine, it is possible to control the initialization more precisely by providing a plurality of threshold values for the reset time Tr. With both embodiments it is also possible to make provisions allowing the host to set, by way of specific commands, the threshold value(s) and the initialization process(es) to be performed according to the measured reset time Tr. This would enable a printing apparatus according to the present invention to select and perform an initialization process according to the reset time of a reset signal received from the host. Unnecessary initialization processes can thus be eliminated, and the throughput of printing apparatus can be improved. By changing the reset time of a reset signal the host can control the initialization process performed in the printing apparatus. It will be obvious to one with ordinary skill in the art that while preferred embodiments have been described with reference a printing apparatus with an ink jet printing mechanism, the invention can also be applied to other types of printing apparatus, such as dot impact printing apparatuses, laser printing apparatuses, and thermal transfer printing apparatuses. Thus, the second initialization process in the aforementioned embodiments is meant to include all initialization processes of any type of printing apparatus that, for whatever reason, are not desired to be performed too often. Initialization processes that need to be performed more often and/or which can be completed in a relatively short time are included in the first initialization process of the aforementioned embodiments. Furthermore, while a real-time clock has been described for measuring the reset time, it will be obvious that a counter or other circuit disposed externally to the CPU 103 can be alternatively used. For example, the reset time can be measured by supplying a specific clock signal to a counter, and supplying the reset signal from the host as a counter enable signal. As another alternative, the reset signal from the host may be supplied to a normal input terminal. In this case the delay circuit is not necessary. Furthermore, if it is not necessary to discriminate the reset signal from the host from the power-on reset signal of the printing apparatus, it will not be necessary to store the reset flag. As described above, ROM 105 serves as a machine readable storage medium storing a program which, when executed by the CPU, implements a control method in accordance with the present invention. Alternatively, a CD-ROM, hard disk, floppy disk, or any other machine readable storage medium (including magneto-optical disks, DVD (digital video disk or digital versatile disk) media, semiconductor memories, and magnetic tape) may be used to store such program. Such storage medium may even be part of the host 120. In such case the printing apparatus would upload the program from the host, store it in RAM or other suitable storage medium and then execute the uploaded and stored program. The control program can also be provided via the Internet or other computer network for storage on and use from a recording or storage medium accessible by either the host computer or directly the printing apparatus. A data storage medium on which the control program is recorded can be easily distributed or marketed as a computer software product separate from the printing apparatus in which it is to be used. Any of such storage media could also be used to introduce the control program of the invention to existing printing apparatuses.

Claims: A printing apparatus adapted to be connected to and controlled by a host device (120), comprising: an interface circuit (102) for receiving control commands, print data and reset signals (Vrst) from the host device (120), a printing mechanism (104), and a controller (103, 105, 106, 108) for controlling said printing mechanism (104) in accordance with said control commands, print data and reset signals so as to print text or graphics on a printing medium, wherein the controller is adapted to perform a predetermined initialization of the printing apparatus in response to a reset signal (Vrst) received by said interface circuit (102), characterized by measuring means (103, 107) for measuring the duration (Tr) of each of said reset signals (Vrst), said controller being responsive to said measuring means for performing one out of a plurality of predetermined initialization processes selected depending on the duration of a respective reset signal (Vrst). The apparatus as set forth in claim 1, further comprising a comparator for comparing said duration (Tr) with a first threshold value (Tth; T2), said controller being adapted to perform a first initialization process when said duration is smaller than said first threshold value, and a second initialization process when said duration is equal to or larger than said first threshold value. The apparatus as set forth in claim 2, wherein the printing mechanism (104) comprises a stepping motor, and the first initialization process includes a process for adjusting stepping motor phase. The apparatus as set forth in claim 2 or 3, wherein the printing mechanism (104) comprises a movable print head (109), and said first initialization process includes a process for synchronizing the actual position of the print head (109) with data in said controller (103, 105, 106, 108) representing the position of the print head (109). The apparatus as set forth in any one of claims 2 to 4, wherein the printing mechanism (104) comprises an ink jet type print head (109), and said second initialization process includes a process for cleaning the print head. The apparatus as set forth in any one of claims 2 to 4, wherein said first initialization process includes a process for clearing part or all of a memory (106) of said controller (103, 105, 106, 108). The apparatus as set forth in any one of claims 2 to 5, wherein said comparator is adapted to compare said duration (Tr) with a second threshold value (T1) smaller than said first threshold value (T2), and said controller (103, 105, 106, 108) is adapted to perform a third initialization process when said duration is smaller than said second threshold value (T1), and said first initialization process when said duration is equal to or larger than said second and smaller than said first threshold value. The apparatus as set forth in claim 7, wherein said third initialization process includes a process for clearing part or all of a memory (106) of said controller. The apparatus as set forth in any one of the preceding claims, wherein said measuring means (107) comprises a real-time clock and a delay circuit is provided for delaying each reset signal (Vrst) received by said interface circuit (102) for a specific time, the controller (103, 105, 106, 108) being adapted to perform the selected initialization process in response to the delayed reset signal (Vr). A method for resetting a printing apparatus as defined in any one of the preceding claims, comprising the steps of: (a) receiving a reset signal (Vrst) from the host device (120); (b) measuring the duration (Tr) of the reset signal received in step (a); and (c) performing one out of a plurality of predetermined initialization processes selected according to the duration (Tr) measured in step (b). The method as set forth in claim 10, further comprising: (d) comparing the duration (Tr) of the reset signal with a first threshold value (Tth; T2), wherein step (c) comprises performing a first initialization process when step (d) reveals that the duration of the reset signal (Vrst) is smaller than said first threshold value (Tth; T2), and a second initialization process when said duration is equal to or greater than said first threshold value (Tth; T2). The method as set forth in claim 11, wherein the first initialization process includes a process for adjusting the phase of a stepping motor in the printing mechanism (104) and/or a process for synchronizing the actual position of a movable print head (109) with data in said controller (103, 105, 106, 108) representing the position of the print head (109). The method as set forth in claim 11 or 12, wherein the second initialization process includes a process for cleaning the print head (109) in the printing mechanism (104). The method as set forth in any one of claims 10 to 13, wherein step (a) comprises detecting the leading edge of a reset signal (Vrst) step (b) comprises reading from a real-time clock (107) the current time at which the edge is detected in step (a) and storing it as the reset start time, delaying the reset signal received in step (a) for a specific delay time, detecting the trailing edge of the reset signal whose leading edge was detected in step (a) or of the delayed reset signal (Vr), reading, as the reset end time, from the real-time clock the current time at which the trailing edge is detected, and calculating the duration (Tr) of the reset signal (Vrst) from the difference between the reset end time and the reset start time, and step (c) comprises performing said one initialization process in response to said delayed reset signal (Vr). The method as set forth in any one of claims 10 to 14, wherein the first initialization process includes a process for clearing part or all of a memory (106) of said controller (103, 105, 106, 108). A machine readable storage medium storing a program which when executed by a controller (103, 105, 106, 108) implements the method according to any one of claims 10 to 15.

Inventors: KAWASE YUJI, NISHIOKA ATSUSHI, TERADAIRA MITSUAKI, KAWASE, YUJI, NISHIOKA, ATSUSHI, TERADAIRA, MITSUAKI
Applicants: SEIKO EPSON CORP, SEIKO EPSON CORPORATION
Application year: 1999
Main classification: B41J29
IPC codes: B41J2, B41J11, B41J19