1. Field of the Invention
The present invention relates to a firmware update system increased in the possibility of execution of automatic firmware update processing.
2. Description of the Related Art
An image processing apparatus equipped with a plurality of functions, such as a digital multifunction peripheral, is composed of a plurality of components, such as a main controller, a printer engine for performing image formation, and a facsimile machine, and has respective associated firmware components installed in the components.
Some of such image processing apparatus have a function for automatically performing update processing of the firmware components thereof. To execute the automatic update processing, there is proposed a method in which an image processing apparatus connects to an update server via a network, and updates the firmware thereof to the latest firmware from the update server (see e.g. Japanese Patent Laid-Open Publication No. 2009-187456). This method has large benefits for both general users of image processing apparatuses and service technicians of sales companies, and has come to be widely used.
According to the method proposed in Japanese Patent Laid-Open Publication No. 2009-187456, version information of the plurality of firmware components of an image processing apparatus is transmitted to a server, and it is determined whether or not there is any firmware component of a new version, whereby firmware update is efficiently executed.
As described above, the image processing apparatus is composed of a plurality of components having respective associated firmware components installed therein, and the firmware components operate in cooperation with each other, to thereby realize a copy function, a print function, and a FAX function, as a system.
Therefore, to guarantee correct operations of the image processing apparatus, the firmware components are required to have respective versions in a correct combination. To this end, a method is employed in which a version management list describing a combination of versions of all the firmware components, which guarantees the proper operation of the image processing apparatus, is used to perform easy and convenient firmware management of the whole image processing apparatus.
In this method, the version management list is stored in a storage device of the image processing apparatus, and contents of the list are supposed to match version information of all the firmware components actually installed in the image processing apparatus. For example, in the initial state of the image processing apparatus immediately after shipment from its manufacturer, as a matter of fact, the contents of the list and the version information match each other.
When updating firmware components, the manufacturer of the image processing apparatus creates new firmware components as well as a new version management list describing all versions of the firmware components including the versions of the new firmware components, and registers the new version management list in the update server. Note that each version management list includes description of a version number of the version management list itself.
The update server acquires a version number of the version management list of the image processing apparatus for which update processing is to be performed, selects, based on the acquired version number, a version number of a version management list based on which the update processing is to be performed next, and executes the update processing of firmware components to be updated, which are determined based on the version management lists having the respective version numbers.
As described above, in the update processing of the image processing apparatus composed of a plurality of components having respective associated firmware components installed therein, it is unnecessary for a user to check the versions of all the firmware components each time, whereby it is possible to maintain the latest and correct combination of firmware components.
In the management method using the version management list that represents a combination of a plurality of firmware components, when a component having a firmware component installed therein is replaced, there can occur a state where the versions of the version management list in the image processing apparatus and the versions of the firmware components actually installed in the same are different.
In this case, a firmware management module of the image processing apparatus cannot determine whether or not versions of the respective firmware components are in a correct combination that guarantees the proper operation of the image processing apparatus.
For example, a digital multifunction peripheral or a like image processing apparatus stores various kinds of data including user data, image processing settings, device control adjustment values, and so forth.
If the firmware components are forcibly updated from the state where it is impossible to determine whether or not versions of the respective firmware components are in a correct combination, there is a fear that data is lost in accordance with update of the firmware.
Further, depending on details of update of the firmware components, unless the firmware update is performed by updating the firmware to intermediate versions, the system per se sometimes becomes incapable of being started up e.g. due to a change in the allocation of a system memory area.
To avoid such a problem, in a case where the versions of firmware components indicated in the version management list of the image processing apparatus and the versions of installed firmware components do not match each other, the firmware management module of the image processing apparatus determines that the versions of the firmware components are not in a proper combination, and even if execution of update processing is attempted, the firmware management module stops the update processing.
Actually, however, it sometimes occurs that a version management list including the version of a firmware component installed in a new component has already been issued and the combination of the versions of the firmware components of the image processing apparatus subjected to the component replacement is a normal combination.
Therefore, in spite of the fact that update processing can be executed, the update processing is sometimes stopped. In this case, it is required to dispatch a service technician to a customer's site to have him manually rewrite the version of the firmware component of the replaced component in the version management list, to thereby cause the respective versions of the firmware components in the version management list to match the respective versions of the firmware components installed in the components to match each other.
The present invention provides a firmware update system capable of executing update processing which cannot be executed by a conventional technique despite the fact that the combination of firmware components installed in an image processing apparatus is normal.
The present invention provides a firmware update system including an image processing apparatus in which a plurality of firmware components are installed and which operates according to the plurality of firmware components, and a server which provides update firmware for updating the plurality of firmware components, to the image processing apparatus, wherein the image processing apparatus comprises a first storage unit configured to store in advance a first version management list indicating versions of the respective firmware components and a representative version for managing the versions of the respective firmware components, a collection unit configured to collect actual versions of the plurality of firmware components, a first determination unit configured to determine whether or not there is a difference between the actual versions collected by the collection unit and the versions of the respective firmware components indicated in the first version management list, a transmission unit configured to, when it is determined by the first determination unit that there is a difference between the actual versions and the versions of the respective firmware components indicated in the first version management list, transmit the actual versions and the representative version indicated in the first version management list, to the server, and an update unit configured to update the firmware components installed in the image processing apparatus using the update firmware provided by the server, and wherein the server comprises a second storage unit configured to store in advance a plurality of second version management lists each indicating a normal combination of versions of the firmware components of the image processing apparatus and a representative version, a second determination unit configured to determine whether or not the plurality of second version management lists include a second version management list indicating versions of the firmware components which match the actual versions transmitted from the transmission unit, and a provision unit configured to provide, when the second determination unit determines that the plurality of second version management lists include a second version management list indicating versions of the firmware components which match the actual versions, and when the plurality of second version management lists include a second version management list that includes any firmware component newer than a corresponding firmware component indicated in the second version management list indicating the versions of the firmware components which match the actual versions, firmware indicated in the second version management list including the newer firmware component, to the image processing apparatus, as update firmware.
According to the present invention, it is possible to provide the firmware update system capable of executing update processing which cannot be executed by the conventional technique despite the fact that the combination of firmware components installed in the image processing apparatus is normal.
Further features of the present invention will become apparent from the following description of exemplary embodiments with reference to the attached drawings.
The present invention will now be described in detail below with reference to the accompanying drawings showing embodiments thereof.
Referring to
The update server 20 performs management and distribution of firmware for each image processing apparatus as a target of firmware update. As shown in
Further, the update server 20 includes an update application 201 for implementing update processing, and a firmware database (DB) 202 for storage and management of the firmware of the image processing apparatus 10.
The image processing apparatus 10 according to the present embodiment is composed of a plurality of components having respective associated firmware components installed therein, and version information of all the firmware components of the image processing apparatus 10 is managed using a version management list 102.
Further, the firmware of the image processing apparatus 10 comprises controller firmware 101 and printer engine firmware 132. Firmware versions of the controller firmware 101 and the printer engine firmware 132 are described in the version management list 102.
The controller firmware 101 and the printer engine firmware 132 operate in cooperation with each other, and hence the image processing apparatus 10 is shipped from a factory in a state in which the respective versions of the controller firmware 101 and the printer engine firmware 132 are in such a combination that the operation of the image processing apparatus 10 is guaranteed by the manufacturer.
Referring to
The CPU 110 controls the overall operation of the image processing apparatus 10. The RAM 111 is used for loading programs and temporarily storing various kinds of data. The SRAM 112 is provided with a backup power supply, and is used for storing image processing parameters, adjustment values, and user-set data, of the image processing apparatus 10, which are set on an individual apparatus basis.
The HDD 113 stores the version management list 102 and the controller firmware 101. The controller firmware 101 is loaded into the RAM 111 at the start of the image processing apparatus 10. The CPU 110 operates according to the controller firmware 101 whereby it is capable of realizing the functions of the image processing apparatus 10 and updating the firmware.
The console section interface 120 is an interface between a console section 130 and the controller 100. The printer interface 121 is an interface between a printer engine 131 and the controller 100. The scanner interface 122 is an interface between a scanner engine 135 and the controller 100. The network interface 124 is an interface between a LAN (local area network) 190 and the controller 100.
The USB interface 123 is an interface between a USB memory medium 140 connected to a USB connector 141 and the controller 100. The controller firmware 101 is capable of recognizing the USB memory medium 140 by the USB interface 123, and reading update firmware stored in the USB memory medium 140.
The console section 130 receives user operations and displays various kinds of information to the user.
The printer engine 131 is a unit for forming image data input from the controller 100 on a recording medium, such as paper, and includes its own CPU 133 for controlling mechanical operations, such as conveyance of the recording medium, and the printer engine firmware 132.
The printer engine firmware 132 is executed by the CPU 133, thereby implementing image forming processing while operating in cooperation with the controller firmware 101.
The scanner engine 135 reads an image formed on an original, and inputs image data indicative of the image to the controller 100 via the scanner interface 122.
As described above, the image processing apparatus 10 according to the present embodiment has the firmware (controller firmware and printer engine firmware) installed therein, and operates according to the firmware components.
Referring to
A user interface (UI) control module 410 controls the console section 130, thereby executing control processing of a user input to the console section 130 and causing various kinds of information to be displayed on the console section 130.
When image processing is instructed via the console section 130 or the LAN 190, a job control module 411 performs centralized control of modules that perform job operations of the image processing apparatus 10, including an image processing module 450 that executes image processing, thereby controlling an image processing operation.
A network module 420 processes data received from a network via the network driver 421.
A scanner control module 430 and a printer control module 440 controls the scanner engine 135 and the printer engine 131 via the scanner driver 431 and the printer driver 441, respectively. An update module 401 executes update processing for updating the firmware of the image processing apparatus 10. A controller version 460 indicates the version of the controller firmware 101, and is stored in the HDD 113.
Referring to
The CPU 210 controls the overall operation of the update server 20. The RAM 211 is used for loading programs and temporarily storing various kinds of data.
The HDD 213 stores the update application 201 for performing selection, management and distribution of the firmware of the image processing apparatus 10, and the firmware database 202.
The update application 201 is loaded into the RAM 211 after the start of the update server 20. The CPU 210 operates according to the update application 201 to thereby refer to the firmware database 202 and execute update processing on the image processing apparatus 10.
The network interface 224 is an interface between the Internet and the update server 20.
The firmware database 202 shown in
The firmware database 202 is provided with model A information 501, model B information 502, and model C information 503 of the respective models A, B, and C. Each of the model A information 501, the model B information 502, and the model C information 503 is composed of elements having the same formats, and the following description will be given of the model A information, by way of example.
The model A information comprises version branch management information 510, the version management lists 102, and a firmware entity set 511. Among the above, the version branch management information 510 and the version management lists 102 will be described with reference to other figures. Further, the firmware entity set 511 is update firmware provided to the image processing apparatus 10.
As described above, the update server 20 provides the update firmware for updating the firmware to the image processing apparatus 10.
Referring to
Further, VL denotes a representative version representative of a combination of respective versions of firmware components (controller firmware and printer engine firmware)of the image processing apparatus 10. CONT denotes the version of controller firmware, and PEF denotes the version of printer engine firmware.
Furthermore,
Referring to
A controller firmware version 602 indicates a version of the controller firmware 101. A printer engine firmware version 603 indicates a version of the printer engine firmware 132.
By identifying the representative version 601 in the version management list 102, it is possible to identify version information of all the firmware components of the image processing apparatus 10, and a combination of the versions of the firmware components.
An automatic update permission/inhibition 604 indicates whether or not update processing can be performed without dispatching a service technician. The automatic update permission/inhibition 604 corresponds to permission/inhibition information indicative of whether or not firmware installed in the image processing apparatus 10 can be automatically updated using update firmware when the firmware components are provided to the image processing apparatus 10 as the update firmware.
The version management list 102 shown in
Hereinafter, a description will be given of a screen displayed on the console section 130, and then update processing executed by the firmware update system 1 according to the present embodiment will be described.
Referring to
Further, a start key 1011 is used to start a copy operation. When the start key 1011 is depressed by the user, the controller firmware 101 detects an instruction for the copy operation, and starts control of a copy job in cooperation with the scanner engine 135 and the printer engine 131.
An update management key 1012 is used to switch the screen to an update management screen, described hereinafter.
Referring to
Further, a periodical automatic update-setting button 1130 is used to switch the screen to a screen for setting an execution date and time, when the update processing is to be automatically executed.
A return button 1140 is used to cause the screen to return to a screen displayed immediately before the present screen is displayed. Return buttons appearing in figures, referred to hereinafter, also provide the same function, and hence description thereof is omitted. Note that when the return button 1140 in
The periodical automatic update-setting screen shown in
The periodical automatic update settings set as above are stored in the HDD 113. The update module 401 periodically checks the current time and the set day of the week and time, and starts update processing when it is the set time. Therefore, in the case of the settings shown in
The
Further, the
Both the
The error code of E010 shown in
Further, the error code of E200 shown in
The
The image processing apparatus update process shown in
First, the update module 401 collects the present version of the controller firmware by accessing the controller version 460 in the HDD 113 and the present version of the printer engine firmware by communicating with the printer engine 131 via the printer control module 440 (step S101). The step S101 corresponds to a function of a collection unit configured to collect actual versions of a plurality of firmware components.
Then, the update module 401 reads the controller firmware version 602 and the printer engine firmware version 603 from the version management list 102 in the HDD 113, and compares them with the collected versions (step S102).
Next, the update module 401 determines whether or not a mismatch has occurred between the version management list 102 and the collected versions (step S103). The determination of whether or not a mismatch has occurred therebetween will be described with reference to
When it is determined in the step S103 that no mismatch has occurred between the version management list 102 and the collected versions (NO to the step S103), the update module 401 transmits the representative version 601 in the version management list 102 to the update server 20 (step S104). Thus, when it is determined that the actual versions and the versions of the firmware components indicated in the first version management list match each other, respectively, a representative version indicated in the first version management list is transmitted to the server.
On the other hand, when it is determined in the step S103 that a mismatch has occurred between the version management list 102 and the collected versions (YES to the step S103), the update module 401 transmits the version management list 102 and the collected versions to the update server 20 (step S105). Note that conventionally, when it is determined that a mismatch has occurred, the process used to jump to a step S109 to stop the update processing. The step S105 corresponds to a function of a transmission unit configured to transmit the actual versions and the representative version indicated in the first version management list to the server when it is determined that the actual versions and the versions of the respective firmware components indicated in the first version management list are different.
Subsequently, the update module 401 receives a response from the update server 20 (step S106), and the image processing apparatus update process branches according to the received response (step S107).
When it is determined in the step S107 that the received response indicates that the image processing apparatus 10 has latest firmware, the update module 401 displays a message indicating that the present firmware is latest firmware, on the console section 130, using the screen shown in
When it is determined in the step S107 that a firmware entity set (update firmware) has been received, the update module 401 performs update processing, described hereinafter, (step S109), followed by terminating the present process.
When it is determined in the step S107 that an error code indicating inhibition of the update processing has been received, the update module 401 displays a message notifying inhibition of the update processing, using the screen shown in
On the other hand,
In this case, it is determined that a mismatch has occurred, and hence in the step S105, the version management list 102 and the collected versions are transmitted to the update server 20.
Referring to
Then, the update module 401 detects any difference between the contents of the version management list and the current firmware versions of the image processing apparatus 10 (step S202).
Next, the update module 401 replaces firmware on which any difference has been detected (step S203). Specifically, the update processing is executed by replacing the firmware on which any difference has been detected by new firmware. At this time, the screen shown in
For example, when the firmware to be replaced is controller firmware, the update module 401 updates the controller firmware 101 stored in the HDD 113, whereas when the firmware to be replaced is printer engine firmware, the update module 401 updates the printer engine firmware 132 via the printer control module 440.
Next, the update module 401 determines whether or not the restart of the image processing apparatus 10 is required after execution of the update processing (step S204). When it is determined in the step S204 that the restart of the image processing apparatus 10 is required (YES to the step S204), the update module 401 restarts the image processing apparatus 10 (step S205), followed by terminating the present process.
On the other hand, when it is determined in the step S204 that the restart of the image processing apparatus 10 is not required (NO to the step S204), the update module 401 immediately terminates the present process. This places the image processing apparatus 10 in a normal operating state with the new firmware.
Referring to
For example, in a case where the received representative version is 700010001, it is determined from the version branch management information 510 shown in
Then, the update application 201 determines based on the version branch management information 510 whether or not there is any new firmware component (step S303). In the case of the firmware version is A in
When it is determined in the step S303 that there is no new firmware (NO to the step S303), the update application 201 transmits a message indicating that the version of the firmware of the image processing apparatus 10 is latest (step S306), followed by terminating the present process.
On the other hand, when it is determined in the step S303 that there is new firmware (YES to the step S303), the update application 201 determines whether or not the permission/inhibition information in a version management list corresponding to the new firmware indicates that automatic firmware update can be executed (step S304).
When it is determined in the step S304 that the permission/inhibition information in a version management list corresponding to the new firmware indicates that automatic firmware update can be executed (YES to the step S304), the update application 201 transmits the firmware entity set and the version management list (step S305), followed by terminating the present process. At this time, the firmware entity set and the version management list may be transmitted as one data item obtained by compressing them.
The step S305 corresponds to a function of a provision unit configured to provide new firmware indicated in a second version management list including the new firmware to the image processing apparatus 10 as update firmware.
Specifically, in a case where the step S305 is reached via a step S308, referred to hereinafter, it implies that it is determined in the step S308 that there is a second version management list indicating the versions of firmware components which match the actual versions of the firmware components installed in the image processing apparatus 10. Further, the affirmative answer to the question of the step S303 indicates that there is a second version management list which includes any firmware component newer than the corresponding firmware component indicated in the second version management list indicating the versions of firmware components which match the actual versions of the firmware components installed in the image processing apparatus 10. Further, the affirmative answer to the step S304 means that the permission/inhibition information in the version management list indicates that the firmware installed in the image processing apparatus 10 can be updated using update firmware.
If a version management list and collected versions are received in the step S301, the version branch management information 510 is searched for the collected versions which are actual (step S307).
Then, it is determined whether or not, the version branch management information 510 contains a firmware version (represented by the representative version) indicating versions of firmware components that match the collected versions (step S308). The step S308 corresponds to a function of a second determination unit configured to determine whether or not there is a second version management list indicating the versions of firmware components which match the actual versions of the firmware components installed in the image processing apparatus 10.
If it is determined in the step S308 that the version branch management information 510 contains a firmware version indicating versions of firmware components that match the collected versions (YES to the step S308), the CPU 210 proceeds to the step S302. For example, in the case of
On the other hand, if it is determined in the step S308 that the version branch management information 510 contains no firmware indicating versions of firmware components that match the collected versions (NO to the step S308), an error code indicating inhibition of the update processing is transmitted (step S309), followed by terminating the present process. Here, in the case where the step S309 is reached via the step S308, the transmitted error code is the error code of E200, whereas in the case where the step S309 is reached via the step S304, the transmitted error code is the error code of E010. As described above, when it is determined that there is no second version management list indicating versions of firmware components that match the transmitted actual versions of the firmware components installed in the image processing apparatus 10 (NO to the step S308), no update firmware is provided, but an error code (error code of E200) indicating that firmware update cannot be performed is transmitted to the image processing apparatus 10.
According to
Then, when it is determined that there is a second version management list indicating versions of the firmware components which match the actual versions of the firmware components installed in the image processing apparatus 10 (YES to the step S308), and when it is determined that there is a second version management list which includes any firmware component newer than the corresponding firmware component(s) indicated in the second version management list indicating the versions of the firmware components which match the actual versions of the firmware components installed in the image processing apparatus 10 (YES to the step S303), the following processing is performed: New firmware indicated in the second version management list including the new firmware component(s) is provided to the image processing apparatus as update firmware (step S305). This makes it possible to update the firmware installed in the image processing apparatus 10, using the update firmware provided from the server (step S203).
In the conventional technique, when the answer to the question of the step S103 is affirmative, update processing cannot be executed despite the fact that the combination of versions of the firmware components installed in the image processing apparatus is normal. However, the present embodiment makes it possible to execute the update processing.
Aspects of the present invention can also be realized by a computer of a system or apparatus (or devices such as a CPU or MPU) that reads out and executes a program recorded on a memory device to perform the functions of the above-described embodiment, and by a method, the steps of which are performed by a computer of a system or apparatus by, for example, reading out and executing a program recorded on a memory device to perform the functions of the above-described embodiment. For this purpose, the program is provided to the computer for example via a network or from a recording medium of various types serving as the memory device (e.g., computer-readable medium).
While the present invention has been described with reference to the exemplary embodiment, it is to be understood that the invention is not limited to the disclosed exemplary embodiment. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all modifications, equivalent structures and functions.
This application claims priority from Japanese Patent Application No. 2012-127008 filed Jun. 4, 2012, which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | Kind |
---|---|---|---|
2012-127008 | Jun 2012 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
7876469 | Hanada | Jan 2011 | B2 |
8745609 | Oka | Jun 2014 | B2 |
20030233493 | Boldon et al. | Dec 2003 | A1 |
20050088689 | Suga et al. | Apr 2005 | A1 |
20070169090 | Kang | Jul 2007 | A1 |
20090112941 | Lo et al. | Apr 2009 | A1 |
20090241099 | Lee et al. | Sep 2009 | A1 |
20110145804 | Oka | Jun 2011 | A1 |
20130138718 | Mallur et al. | May 2013 | A1 |
20130138783 | Mallur et al. | May 2013 | A1 |
20130139139 | Mallur et al. | May 2013 | A1 |
20130139183 | Mallur et al. | May 2013 | A1 |
20130145141 | Han et al. | Jun 2013 | A1 |
Number | Date | Country |
---|---|---|
2009-187456 | Aug 2009 | JP |
Number | Date | Country | |
---|---|---|---|
20140047430 A1 | Feb 2014 | US |