Printer control program transfer method and printer capable of receiving a control program

Abstract: A printing apparatus comprises a transfer means for transferring a new data from outside of the printing apparatus, a storing means for storing the new data transferred by said transfer means, and a control means for controlling said printing apparatus based on the data prestored in said printing apparatus and the new data stored in said storage means.

Description: Field of the Invention The present invention relates to a printing apparatus for printing the print information, such as document or graphics information, which is input from an external apparatus or a host computer, with the laser beam method. Related Background Art Conventionally, printing apparatuses have been known in which a control program consisting of a plurality of tasks for controlling the whole of a printing apparatus is prestored, and the print information is printed based on the control program. In such a print apparatus, when a bug was detected in any task of the control program during the operation, or when the control program was updated to the latest version, it was necessary for the serviceman to repair to the user's site to disassemble a printer and exchange a program ROM storing the control program. In such a case, when the program ROM was directly soldered to a print substrate, rather than using a socket, all the print substrate had to be replaced at the user's site. Accordingly, the conventional printing apparatus, as above described, had a problem that since when a bug occurred in any task of the control program, or when the control program was updated to the latest version, it was necessary to disassemble a printer and exchange all the print substrate including a program ROM, a lot of troubles might be needed, even for disassembling, and a long time might be taken for the exchange work as all the print substrate must be exchanged, resulting in a high cost. Also, in the conventional printing apparatus, as above described, when a bug occurred in any task of the control program, or when the control program was updated to the latest version, a ROM card or the like which was a storage medium detachably mounted on a printer was packaged into the printer to store a new control program within the ROM card in a memory such as ROM which was a nonvolatile storage medium within the printer, but when the capacity of the new program within the detachable ROM card was greater than that of the program storage area in the memory such as ROM within the printer, the new program within the ROM card could not be stored in the memory such as ROM within the printer, resulting in a problem, for example, that the bug correction or the update of version for the control program could not be made. In the light of the foregoing, the present invention aims to provide a printing apparatus in which when a bug occurs in any task of the control program, or when the control program is updated to the latest version, the bug can be corrected easily and securely, or the control program can be updated to the latest version, without disassembling the printing apparatus, so that the simplified maintenance operation and the cost down can be realized. A preferred embodiment of the present invention provides a printing apparatus in which even when the capacity of a new program within a detachable ROM card is greater than that of the program storage area in the memory such as ROM within the printing apparatus, the bug correction and the update of version for the control program for example can be made, without storing the new control program within the ROM card into the memory such as ROM within the printing apparatus, so that the simplified maintenance operation and the cost down can be realized. United States Patent No. US-A-4,902,146 discloses a printing apparatus having a plurality of slots in which can be located memory cards containing programs directed to various aspects of the operation of the apparatus. In accordance with a first aspect of the present invention there is provided an information processing apparatus as set out in claim 1. In accordance with a second aspect there is provided a method as set out in claim 7. As explained above, in a preferred embodiment of the printing apparatus according to the present invention, when a bug occurs in any task of a prestored control program consisting of a plurality of tasks, a bug corrected program with the bug corrected is transferred from outside of the printing apparatus by the transfer means, and stored in the storing means, whereby when a bug occurs in any task of the control program, it is possible to correct the bug easily, securely and rapidly, without disassembling the printing apparatus, so that there is an effect that great reductions in the cost and the time required to correct the bug can be made, with the provision of minute countermeasures against the bug. Further, even when the capacity of the new program within the ROM card which is a storage medium detachable from the printing apparatus is greater than that of the program storage area in the memory such as EEPROM within the printing apparatus, the bug correction and the update of version for the control program for example can be made, without storing the new control program within the ROM card into a memory such as EEPROM within the printing apparatus, so that the simplified maintenance operation and the cost down can be realized. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a block diagram showing the configuration of a printing apparatus according to an embodiment of the present invention. Fig. 2 is a block diagram showing the operation of each task in a control program for controlling the whole printing apparatus. Fig. 3 is a block diagram showing the configuration of a printing apparatus according to another embodiment of the present invention. Fig. 4 is a block diagram showing the configuration of a printing apparatus according to still another embodiment of the present invention. Fig. 5 is a flowchart showing the operation of the embodiment as shown in Fig. 1. Fig. 6 is a flowchart showing the operation of the embodiment as shown in Fig. 1. Fig. 7 is a flowchart showing the operation of the embodiment as shown in Fig. 1. DESCRIPTION OF THE PREFERRED EMBODIMENT The embodiments of the present invention will be described below with reference to the drawings. Fig. 1 is a block diagram showing the configuration of a printing apparatus according to an embodiment of the present invention. In the same figure, 1 is a host computer such as a personal computer for outputting the document data composed of character codes as the print information. This document data is input through a host computer interface portion 2 (thereinafter abbreviated as a host I/F). This host I/F portion 2 communicates with the host computer 1, and transfers or accepts the data via a bus 3 to or from a central processing unit 4 (thereinafter called a CPU). Also, the host I/F 2 transfers or accepts the data via the CPU 4 and the bus 3 to or from a RAM (random access memory) 5 as a readable and writable storing means. The RAM 5 serves to write and read a temporary control information occurring in the course of performing the control with the CPU 4. The CPU 4 serves to store the document data input through the host I/F portion 2 from the host computer 1 as character codes, and write character codes of CGROM 6 (character generator read only memory) as a dot pattern storing means into a bit map memory 5B within the RAM 5. The CGROM 6 has fonts stored in the form of dot pattern, and is connected to the bus 3, to which a printer interface portion (thereinafter abbreviated as a printer I/F) 7 is connected. This printer I/F portion 7 transfers the dot pattern stored in the CGROM 6 to a printer unit (printing unit) 8 with the laser beam method. Further, a program ROM 9 as a control program storing means is connected to the bus 3. The program ROM 9 stores a control program with a multi task method consisting of a plurality of tasks for controlling the whole apparatus with the CPU 4. The control program is read via the bus 3 by the CPU 4. This control program is stored in the apparatus as it was prestored in the control program ROM 9 at the shipment of the apparatus from the factory. The task management information for managing each task of the control program and the bug corrected program transferred in the printing apparatus are stored in an EEPROM 10 as an electrically erasable storing means. The task management information stored in the EEPROM l0 includes the start address of each task and the version number set for each function. This task management information is stored in the apparatus in a state as prestored in the EEPROM 10 at the shipment of the apparatus from the factory. Also, the EEPROM 10 stores a memory capacity management table for managing the capacity of the storage area within the EEPROM 10 for storing the bug corrected program transferred in the printing apparatus, as previously described. An external ROM interface portion (thereinafter abbreviated as an external ROM I/F portion) 11 is connected to the bus 3. The external ROM I/F portion 11 has a ROM card transfer means 12 for the bug correction mountable from outside of the printing apparatus of the present invention. The ROM card 12 for the bug correction stores a bug correction program for transferring the bug corrected program into the printing apparatus, and correspondingly correcting the task management information and the memory capacity management table. And when a bug occurs in each task of the control program, the bug corrected program can be transferred into the printing apparatus and stored in the EEPROM 10 by the bug correction program by inserting the bug correction ROM card 12 into the external ROM I/F portion 11. Also, the start address or version number of the task management information corresponding to the bug corrected program stored in the EEPROM 10 by the bug correction program, and the memory capacity management table are corrected. By inserting into the external ROM I/F portion 11 a ROM card which stores a new control program other than the control program stored in the program ROM 9 as the control program storing means within the printing apparatus, as the ROM card apart from the bug correction ROM card 12, the new program stored in this ROM card (e.g., a control program in the latest version) can be read. Also, by inserting into the external ROM I/F portion 11 a ROM card which stores fonts other than the fonts stored in the CGROM 6, as the ROM card apart from the bug correction ROM card 12, the fonts stored in this ROM card can be read. An operation panel 13 is connected to the bus 3, and there are disposed on the operation panel 13 the operation keys for inputting various operation signals and a display means for displaying the operation conditions of the apparatus (both not shown). The plurality of tasks constituting the control program include a host I/F task for receiving the document data from the host computer 1, a dot pattern conversion task for analyzing character codes of received document data and converting them into a dot pattern, a bit map expansion task for expanding the converted dot pattern into a bit map memory 5B within the printing apparatus, and a print task for transferring the dot pattern expanded in the bit map memory 5B to a driving unit (engine portion) for the printer portion 8. The operation of the printing apparatus as thus constituted, according to the present invention, will be described below with reference to Figs. 1 and 2. First, the document data transmitted from the host computer 1 is stored as the character code via the host I/F portion 2 and the bus 3 into a page memory 5A within the RAM 5. The CPU 4 reads the corresponding dot pattern from the CGROM 6 and expands this dot pattern on the bit map memory 5B within the RAM 5 by referring to and analyzing the character code in the page memory 5A within the RAM 5. After the expansion of the dot pattern onto the bit map memory 5A within the RAM 5 is completed, the CPU 4 starts the printer portion 8 via the bus 3 and the printer I/F portion 7 to transmit the dot pattern of bit map memory 5B within the RAM 5 via the printer I/F portion 7 to the printer portion 8, and print it. That is, the document data input from the host computer 1 is printed. The control program for controlling a series of operations in the whole printing apparatus as above described is stored in the program ROM 9, And each task A to G such as the print task, the host I/F task, and the bit map expansion task, as previously described, is executed in the multi task form, while mainly being controlled by a task management routine for each task of A, B, C, D, E, F and G as shown in Fig. 2. In Fig. 2, the start address (first address) or version number for each task A to G has been stored in the task management table 15 of the task management portion 14 stored in the EEPROM 10. The task management portion 14 causes a jump to the processing for each task A to G, based on this information, if necessary. If the user wants to use any font other than the fonts stored in the CGROM 6 of the printing apparatus of the present invention, it is necessary to insert a font ROM card storing necessary font into the external ROM I/F portion 11 to read the necessary font from the font ROM card via the external ROM I/F portion 11, and after the expansion into the bit map memory 5B of the RAM 5 with the CPU 4, to print through the printer I/F portion 7 with the printer portion 8. The above ROM card is not limited to the usage for the font. During the execution of each task A to G as shown in Fig. 2, when a bug is detected in a task C, for example, the serviceman repairs to the user's site, taking with him a bug correction ROM card 12 which stores the bug correction program for the insertion into a connector (not shown) in the external ROM I/F portion 11 of the printing apparatus, in order to correct the bug in the task C. This ROM card 12 has a structure of being readily inserted from outside of the printing apparatus. The serviceman inserts the bug correction ROM card 12 into the connector of the external ROM I/F portion 11, as above described, after turning off the power of the printing apparatus, and turns on the power of the printing apparatus again. Referring now to flowcharts of Figs. 5 to 7, the operation of this embodiment will be described. It should be noted that the control program based on the flowcharts is stored in the program ROM 9 and the EEPROM 10, and controlled by the CPU 4. In Fig. 5, if the power supply of the printing apparatus is turned on (501), the CPU 4 of the printing apparatus first accesses the external ROM I/F 11 to check to see whether a ROM card 12 is inserted into the ROM I/F 11 (502). If it is not inserted, the operation transfers to a common control program (505), while if it is inserted, the type of the ROM card 12 is read (503). This is achieved by reading the information indicating the type of the ROM card (ROM card for storing the program or ROM card for storing the data such as fonts) stored in some ROM area in the ROM card 12. As a result, if the above ROM card 12 is not a ROM card storing program (504), the operation transfers to common control program (505), while if it is a ROM card storing program (504), a check is performed to determine whether or not it is a bug correction ROM card relating to the present invention (506). If it is not a bug correction ROM card, the operation transfers to a program for the ROM card. If it is a bug correction ROM card, the bug correction program within the ROM card is started. The above bug correction program first checks the bug corrected program name within the ROM card 12 and its version number (509). Then, it also checks the storage area of the bug corrected program with the bug corrected, based on the memory capacity table within the EEPROM 10 (601). If the bug corrected program with the bug corrected is already stored in the EEPROM 10 (602), the version number of the bug corrected program is further checked (603). If the version number is the same as that of the bug corrected program within the ROM card, the bug corrected program is terminated because the bug correction is unnecessary. If the version number is older than that of the bug corrected program within the ROM card 12 (603), the bug corrected program within the EEPROM 10 is erased (604), and the storable capacity for the bug corrected program is checked based on the memory capacity table within the EEPROM 10 (605). If the bug corrected program is not stored in the EEPROM 10, the above procedure is omitted and the operation transfers to 605. At 605, a check is performed to determine whether or not the storable capacity for the bug corrected program within the EEPROM 10 is greater than the capacity of the bug corrected program within the ROM card 12 based on the memory capacity management table. If it is greater, the storing operation of the bug corrected program is performed (607) as it can be stored into the EEPROM 10, and then the start address and the version number for the bug corrected program within the EEPROM 10, as well as the content of the memory capacity management table, are rewritten (608). A message indicating the termination of bug correction is displayed on the operation panel 13 and the operation is ended (701). At 605, if the storable capacity for the bug corrected program within the EEPROM 10 is smaller than the capacity of the bug corrected program within the ROM card 12, the bug corrected program is not stored in the EEPROM 10, and in a state in which the bug correction ROM card 12 is inserted, the start address of the task management table within the EEPROM l0 as shown in Fig. 1 is rewritten with the start address of the bug corrected program within the ROM card 12, and the version number is also rewritten (606). Then, a message indicating the termination of bug correction is displayed on the operation panel 13, and the operation is ended (701). In this way, if the start address corresponding to the bug corrected program of a task for which the bug is corrected, among the tasks of the task management information stored in the EEPROM 10, has been rewritten, the power supply of the printing apparatus is turned off, and after the bug correction ROM card 12 is extracted, the power supply of the printing apparatus is turned off, and after the bug correction ROM card is extracted, the power supply of the printing apparatus is turned on again. Thus, the whole printing apparatus is controlled based on a bug corrected program (a new control program) having the bug corrected for a program containing the bug to be corrected (e.g., task), and the control program which is not a subject of the bug correction prestored in the printing apparatus, as above described. While the serviceman performs a bug correction operation by inserting the bug correction ROM card 12 into the external ROM I/F portion 11 in the above-described embodiment, the bug correction operation may be performed by the user, rather than the serviceman, in which a bug correction ROM card 12 is delivered to the user beforehand, and the user inserts this bug correction ROM card 12 into the external ROM I/F portion 11, if necessary. Fig. 3 is a block diagram showing the configuration of a printing apparatus according to another embodiment of the present invention. In this embodiment, a SRAM (Static Random Access Memory) 17 having a battery 16 for the back-up is used, instead of the EEPROM 10 in the previous embodiment of Fig. 1, whereby the bug corrected program can be rewritten into the SRAM 17, as in the previous embodiment of Fig. 1, and the SRAM 17 can afford a more memory capacity than the EEPROM 10. Since other constitutions in the embodiment of Fig. 3 are the same as those in the previous embodiment of Fig. 1, the like parts have the like numerals in the drawings, of which the explanation will be omitted. Fig. 4 is a block diagram showing the configuration of a printing apparatus according to still another embodiment of the present invention. In this embodiment, the like parts also have the like numerals as in the previous embodiment of Fig. 1, and the duplicate explanation is avoided and different portions will be mainly described. As will be seen from the comparison between Fig. 1 and Fig. 4, a step-up circuit 18 for generating a voltage (l2V) for writing, a writing control portion 19, and a flash PROM 20, instead of the EEPROM 10, are used in Fig. 4. In this embodiment, the flash PROM 20 has a greater capacity than the EEPROM 10 of Fig. 1, and does not require any battery 16 for the back-up, as required with the SRAM 17. Other portions are the same as in Fig. 1. Furthermore, the transfer means used the bug correction ROM card, but is not limited to it. And the bug correction can be also made by transferring a bug correction program to the printing apparatus.

Claims: A printing apparatus comprising: first memory means (9) for storing a control program used to control the whole printing apparatus; second memory means (10) for storing a corrected program for correcting an error in the control program stored in said first memory means or updating the control program; detachable memory means (12) for storing a correction program and a corrected program correcting an error in the control program stored in said first memory means or updating the control program; connection means (11) for detachably connecting to said printing apparatus said detachable memory means (12); determination means (4, S605) in said detachable memory means (12) for determining whether the corrected program stored in the detachable memory means (12) can be written into said second memory means (10) when said detachable memory means (12) is connected to said printing apparatus; memory control means (4, S607, S608) in said detachable memory means (12) for controlling said second memory means (10) to store the corrected program stored in the detachable memory means (12) if said determination means (4, S605) determines that the corrected program stored in the detachable memory means can be written into said second memory means; and control means (4) for controlling, in accordance with the output of said determination means, said printing apparatus either based on the corrected program stored in said second memory means (10) and the control program stored in said first memory means (9), or based on the corrected program stored in the detachable memory means (12) and the control program stored in said first memory means (9). An apparatus according to claim 1, further comprising discrimination means (4, S603) in said detachable memory means (12) adapted to discriminate whether a corrected program stored in said second memory means (10) has an older version number than said corrected program stored in the detachable memory means (12) when said detachable memory means is connected to said printing apparatus, and deletion means (4, S604) in said detachable memory means (12) for deleting the corrected program stored in said second memory means if said discrimination means determines that the corrected program stored in said second memory means has an older version number than the corrected program stored in the detachable memory means. An apparatus according to claim 1 or 2, wherein said first memory means (9) comprises a read-only memory. An apparatus according to any one of claims 1 to 3, wherein said second memory means (10) comprises an electrically erasable programmable read-only-memory. An apparatus according to any one of claims 1 to 4, wherein the detachable memory means (12) comprises a read-only memory card. An apparatus according to any one of claims 1 to 5, wherein the control program comprises a multi-task program comprising a plurality of tasks, and wherein the correction program can be used to correct an error in the control program task by task. A method of controlling a printing apparatus, the printing apparatus comprising: first memory means (9) for storing a control program used to control the whole printing apparatus; second memory means (10) for storing a corrected program correcting an error in the control program stored in said first memory means or updating the control program; detachable memory means (12) for storing a correction program and a corrected program correcting an error in the control program stored in said first memory means or updating the control program; connection means (11) for detachably connecting to said printing apparatus said detachable memory means (12); said method comprising the steps of determining (S605) whether the corrected program stored in the detachable memory means (12) can be written into said second memory means (10) when said detachable memory means is connected to said printing apparatus; controlling (S607, S608) said second memory means (10) to store the corrected program stored in the detachable memory means (12) if said determination step determines that the corrected program stored in the detachable memory means can be written into said second memory means; and controlling, in accordance with the output of said determination step, said printing apparatus either based on the corrected program stored in said second memory means (10) and the control program stored in said first memory means (9), or based on the corrected program stored in the detachable memory means (12) and the control program stored in said first memory means (9). A method according to claim 7, further comprising the step of discriminating (S603) whether a corrected program stored in said second memory means (10) has an older version number than said corrected program stored in the detachable memory means (12) and deleting (S604) the corrected program stored in said second memory means if said step of discriminating determines that the corrected program stored in said second memory means has an older version number than the corrected program stored in the detachable memory means. A method according to claim 7 or 8, wherein said first memory means (9) comprises a read-only memory. A method according to any one of claims 7 to 9, wherein said second memory means (10) comprises an electrically erasable programmable read-only-memory. A method according to any one of claims 7 to 10, wherein the detachable memory means (12) comprises a read-only memory card. A method according to any one of claims 7 to 11, wherein the control program comprises a multi-task program comprising a plurality of tasks, and wherein the correction program is used to correct an error in the control program task by task.

Inventors: UEDA SHIGERU, UEDA, SHIGERU, UEDA, SHIGERU, C/O CANON KABUSHIKI KAISHA
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1992
Main classification: G06F3
IPC codes: G06K15, G06F3