COMMUNICATION DEVICE AND CONTROL METHOD

JP7668647B2Active Publication Date: 2025-04-25CANON KK
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2021023692
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-02-17
Publication Date
2025-04-25
Estimated Expiration
2041-02-17

AI Technical Summary

Technical Problem

Users may unintentionally miss notifications for firmware updates, leading to missed opportunities for software updates due to unnoticed power-off displays.

Method used

A communication device that detects user power operations and displays a software update screen until a predetermined time elapses, allowing for user instruction before changing the power state, ensuring the update is acknowledged or stored for next use.

Benefits of technology

Enhances user recognition of software update opportunities and prevents missed updates by providing timely notifications and storage of update prompts for subsequent device activation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000017_0000
    Figure 00000017_0000
  • Figure 00000018_0000
    Figure 00000018_0000
  • Figure 00000019_0000
    Figure 00000019_0000
Patent Text Reader

Abstract

To provide a communication device which makes it easy for a user to recognize an opportunity of software update.SOLUTION: A communication device allows a display part to display an update screen capable of receiving a user instruction of updating software on the basis of a state in which the software of the communication device can be updated before a power source state of the communication device is changed according to power source operation when detecting the power source operation by a user. The communication device allows the display part to display the update screen until a predetermined time elapses even in a state of not receiving the user instruction for the update screen, and changes the power source state of the communication device according to the power source operation after the predetermined time elapses.SELECTED DRAWING: Figure 6
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a communication device and a control method for controlling software updates.

Background Art

[0002] A printer capable of communicating with a server via a network may obtain update data of the printer from the server and notify the user that there is the latest firmware. In such a case, when the user operates the printer, the firmware of the printer is updated to the latest one. Patent Document 1 describes that, as a method of notifying the user that there is the latest firmware at an appropriate timing, it is displayed that firmware update is possible when the user performs a power-off operation of turning off the power of the printer.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] However, even if it is displayed that firmware update is possible when the power-off operation of the device is detected, there may be a case where the user fails to recognize the display unintentionally and leaves it unattended. In such a case, the firmware update is not executed and the power-off is not executed either.

[0005] An object of the present invention is to provide a technique for making it easier for a user to recognize an opportunity to update software such as firmware.

Means for Solving the Problems

[0006] To solve the above problems, the present invention provides a communication device comprising: detection means for detecting a power operation of the communication device by a user; power control means for changing the power state of the communication device in accordance with the power operation detected by the detection means; and display control means for displaying an update screen on a display unit that can receive a user instruction to update the software, based on the fact that the communication device is in a state where software updates are possible, before the power control means changes the power state of the communication device in accordance with the power operation when the detection means detects the power operation, wherein the display control means displays the update screen until a predetermined time has elapsed, even if it has not received a user instruction for the update screen, and the power control means changes the power state of the communication device in accordance with the power operation after the predetermined time has elapsed. [Effects of the Invention]

[0007] According to the present invention, it is possible to make it easier for users to recognize opportunities to update their software. [Brief explanation of the drawing]

[0008] [Figure 1] This is a diagram showing the configuration of an information processing system. [Figure 2] This is a block diagram showing the configuration of a communication device. [Figure 3] This is a block of the server configuration. [Figure 4] This is a flowchart showing the process of obtaining firmware update information. [Figure 5] This diagram shows firmware update information. [Figure 6] This flowchart shows the process that is executed when a power-off operation is detected. [Figure 7] This is a diagram showing the user interface screen. [Figure 8] This flowchart shows the process that is executed when a power-off operation is detected. [Figure 9]This is a flowchart showing the process that occurs when a power-on operation is detected. [Figure 10] This is a flowchart showing the process that occurs when a power-on operation is detected. [Figure 11] This is a diagram showing the user interface screen. [Figure 12] This is a diagram showing the user interface screen. [Figure 13] This flowchart shows the process that is executed when a power-off operation is detected. [Figure 14] This flowchart shows the process that is executed when a power-off operation is detected. [Figure 15] This is a flowchart showing the process that occurs when a power-on operation is detected. [Figure 16] This is a diagram showing the user interface screen. [Figure 17] This is a flowchart showing the process that occurs when a power-on operation is detected. [Modes for carrying out the invention]

[0009] The embodiments will be described in detail below with reference to the attached drawings. Note that the following embodiments do not limit the invention as defined in the claims. While the embodiments describe multiple features, not all of these features are essential to the invention, and the features may be combined in any way. Furthermore, in the attached drawings, identical or similar configurations are given the same reference numerals, and redundant descriptions are omitted.

[0010] [First Embodiment] Figure 1 shows an example of the configuration of the information processing system 100 in this embodiment. The information processing system 100 includes a server 101 and a communication device 102. In this embodiment, a printer is described as an example of the communication device 102, but it is not limited to this, and various devices that can communicate with the server 101 can be applied. For example, if it is a printer, it can be an inkjet printer, a full-color laser beam printer, a monochrome printer, etc. In addition to printers, copiers, facsimile machines, mobile terminals, smartphones, notebook PCs, tablet terminals, PDAs, digital cameras, music playback devices, televisions, etc. can also be applied. Furthermore, an MFP (Multi-Function Printer) that has multiple functions such as copying, faxing, and printing functions can also be applied. The server 101 and the communication device 102 can be interconnected via a communication network. The communication network may be a wireless communication network, a wired communication network, or a network that includes both.

[0011] FIG. 2 is a block diagram showing an example of the configuration of the communication device 102. The communication device 102 includes a print engine 201, a communication unit 202, a short-range wireless communication unit 203, an input interface 204, a ROM 205, a RAM 206, a nonvolatile memory 207, a CPU 208, an output interface 209, and a display unit 210. The communication unit 202 connects to a communication network to perform communication such as connection to an Internet provider and data communication with the server 101. Note that, for example, protocols such as HTTP and XMPP are used for connection to the communication network. The RAM 206 is composed of a DRAM (Dynamic Random Access Memory) or the like that requires a backup power supply. Since the data in the RAM 206 is retained by being supplied with a power supply for data backup (not shown), it can store data such as program control variables without losing the data. Further, the RAM 206 is also used as the main memory and the work memory of the CPU 208. For example, the RAM 206 functions as a reception buffer for temporarily storing the firmware update information 500 received from the server 101. The firmware update information 500 will be described later in FIG. 5. The ROM 205 stores fixed data such as a control program executed by the CPU 208, a data table, and an OS program. In the present embodiment, each control program stored in the ROM 205 performs software execution control such as scheduling, task switching, and interrupt processing under the management of the embedded OS stored in the ROM 205. Further, the ROM 205 is provided with a memory area for storing data that needs to be retained even when the power supply to the communication device 102, such as management data, is not provided. The CPU 208 is a system control unit that comprehensively controls the entire communication device 102.

[0012] The print engine 201 forms an image on a recording medium such as paper using a recording agent such as ink based on the information stored in the RAM 206 and the print job received via the communication unit 202, and outputs the print result. The input interface 204 is an interface for receiving data input and operation instructions from the user, and is composed of, for example, a physical keyboard, buttons, a touch panel, etc. Note that the output interface 209 described later and the input interface 204 may have the same configuration, and the screen output and the reception of operations from the user may be performed with the same configuration. The output interface 209 is an interface for display control for the display unit 210 to display data and the status of the communication device 102. The display unit 210 is composed of, for example, an LED (light emitting diode), an LCD (liquid crystal display), etc., and displays data and the status of the communication device 102. Note that a soft keyboard including keys such as a numerical input key, a mode setting key, a determination key, a cancellation key, a power key, etc. may be configured on the display unit 210 to receive input from the user via the display unit 210.

[0013] The non-volatile memory 207 is composed of devices such as, for example, an EEPROM (Electrically Erasable Programmable Read-Only Memory), a flash memory, etc. The non-volatile memory 207 stores data such as the setting values of the communication device 102 that need to be retained even when the power supply of the communication device 102 is not supplied.

[0014] The power control unit 211 controls the power state inside the communication device 102. For example, when the CPU 208 notifies the power control unit 211 that it has received an operation on the power button, such as power on or power off (hereinafter also referred to as a power operation), it controls the power state of the communication device 102 according to that power operation. Specifically, the power control unit 211 controls the power state to change from the normal startup state to the soft-off state, or from the soft-off state to the normal startup state, based on the power operation by the user. However, the power state of the communication device 102 is not limited to this, and there may be a sleep state in which the power consumption is lower than the normal startup state and higher than the soft-off state. In other words, the power control unit 211 can change the power state to a state with different power consumption. Also, if the power cord is unplugged from the power plug and the communication device 102 is disconnected from the commercial power supply, it will enter a hard-off state (a state in which power is not supplied to each component of the communication device 102). The communication device 102 is not limited to the block configuration shown in Figure 2, and may include other blocks as appropriate. For example, the communication device 102 may be configured with optional memory such as an external HDD or SD card, and the information stored in the communication device 102 may be stored in that memory.

[0015] Figure 3 is a block diagram showing an example of the configuration of server 101. Server 101 includes a CPU 301, ROM 302, external storage interface 303, RAM 304, internal storage 305, communication unit 306, operation unit 307, and display unit 308. The CPU 301 comprehensively controls the operation of the entire server 101 via the system bus according to programs read from ROM 302, RAM 304, internal storage 305, external storage interface 303, or external storage medium 309. ROM 302 stores control programs for the CPU 301, etc. RAM 304 temporarily stores programs and image data. RAM 304 is also used as the main memory and work memory for the CPU 301. The internal storage 305 stores the operating system, various application programs, image data, etc. For example, the internal storage 305 has application software installed for sending and receiving various control commands and data to the communication device 102. These application software files are retrieved from other computer-readable media on which they are stored via an external storage medium 309 (such as a CD / DVD), and installed under the control of the external storage device interface 303. The operation unit 307 controls the keyboard and mouse (not shown) used by the user to input instructions. The display unit 308 displays various information to the user. The communication unit 306 connects to a communication network to connect to an internet provider and communicate with the communication device 102. Protocols such as HTTP and XMPP are used to connect to the communication network.

[0016] Figure 4 is a flowchart illustrating the process from when the communication device 102 acquires firmware update information 500 until the state within the communication device 102 changes to the "latest firmware update data available" state. Note that changing the state within the communication device 102 to the "latest firmware update data available" state means that the information "latest firmware update data available" is stored within the communication device 102. Furthermore, "latest firmware update data available" means that the latest firmware update data exists within the server 101. While this example uses firmware updates, this embodiment is not limited to firmware and can be applied to updates of various software, such as application software and operating systems (OS).

[0017] When the communication device 102 is powered on by the user, such as by pressing the power button, in S401, the CPU 208 of the communication device 102 waits for a certain period of time. Then, in S402, the CPU 208 requests firmware update information from the server 101 via the communication unit 202. The reason for waiting for a certain period of time is to avoid increasing the communication load on the server 101 by continuously accessing it. The waiting time may be set by the user, or the communication device 102 may statically store time information. The CPU 208 may also measure the time spent in the power-off state. In S402, along with the request for firmware update information, identification information such as the model name of the communication device 102 is sent to the server 101.

[0018] Figure 5 shows an example of firmware update information 500. Firmware update information 500 is expressed in XML format, as shown in Figure 5. Firmware update information 500 is not the update data itself for the latest firmware, but rather information related to the update data. For example, as shown in Figure 5, firmware update information 500 includes the ROM version 501, ROM data size 502, and model name 503 corresponding to the update data. ROM version 501 is information indicating the version of the ROM in server 101. ROM data size 502 is information indicating the data size of the ROM in server 101. Model name 503 is information indicating the model name of the ROM in server 101.

[0019] In S403, when the CPU 301 of the server 101 receives a request for firmware update information, it sends firmware update information 500 corresponding to the communication device 102 to the communication device 102. The CPU 301 may also authenticate the communication device 102 before sending the firmware update information 500 to the communication device 102.

[0020] In S404, the CPU 208 of the communication device 102 receives firmware update information 500 transmitted from the server 101 in S403. Here, it may be determined whether the received firmware update information 500 corresponds to the communication device 102. If it is determined that the received firmware update information 500 does not correspond to the communication device 102, the received firmware update information 500 is discarded and the process in Figure 4 is terminated. In addition, the firmware update information 500 transmitted from the server 101 in S403 may be encrypted. If the firmware update information 500 is encrypted, the communication device 102 decrypts it when it receives the firmware update information 500 in S404.

[0021] In S405, the CPU 208 compares the ROM version 501 recorded in the firmware update information 500 received in S404 with the ROM version in the communication device 102. If it is determined that the ROM version recorded in the firmware update information 500 is newer than the ROM version in the communication device 102, the process proceeds to S406. On the other hand, if it is determined that the ROM version is not newer than the ROM version in the communication device 102, the process from S401 is repeated.

[0022] In S406, the CPU 208 stores the information "Update data for the latest firmware is available" in a non-volatile memory such as the ROM 205. After storing the information "Update data for the latest firmware is available" in the communication device 102 in S406, the process shown in Figure 4 may be terminated, or it may be repeated from S401.

[0023] In this embodiment, the communication device 102 requests firmware update information 500 from the server 101 and, based on the acquired firmware update information 500, maintains information on whether or not update data for the latest firmware exists in the server 101. Furthermore, if it is determined in S405 that the ROM version recorded in the firmware update information 500 is not newer than the ROM version in the communication device 102, the request in S402 is repeated at regular intervals. In this embodiment, with such a configuration, the communication device 102 can recognize that the server 101 has update data for the latest firmware, depending on when the update data for the latest firmware is prepared in the server 101.

[0024] In this embodiment, when the communication device 102 detects a power-off operation by the user, if it is in a state where "update data for the latest firmware is available" and the firmware can be updated, it displays the firmware update screen. The following describes the processing when a soft-off is performed by a user power-off operation. Soft-off refers to the power being turned off by a user operation (power-off instruction) on the power button of the communication device 102 or by the automatic power-off function of the energy-saving function of the communication device 102. However, even in the soft-off state, the communication device 102 is connected to the commercial power supply by its power cord (power cable), and power is supplied to at least some of the components of the communication device 102 (for example, the communication unit 202). In other words, the soft-off state is a more power-efficient state than the normal startup state (soft-on state where power is supplied to each component of the communication device 102) in which printing is possible, and is different from the hard-off state (a state in which the communication device 102 is not connected to the commercial power supply and power is not supplied to each component of the communication device 102).

[0025] Figure 6 is a flowchart showing the process when a soft-off operation is performed by a user. When the CPU 208 of the communication device 102 detects a power-off operation by the user (user instruction for soft-off, such as pressing the power button), in S601, the CPU 208 refers to the information stored in the non-volatile memory and determines whether the communication device 102 is in a state where "update data for the latest firmware is available". If it is determined that it is in a state where "update data for the latest firmware is available", the process proceeds to S602. If it is determined that it is not in a state where "update data for the latest firmware is available", the process proceeds to S609. In S609, the CPU 208 performs the power-off process and then terminates the process shown in Figure 6.

[0026] In S602, the CPU 208 determines whether the communication device 102 is in a state where its firmware can be updated. Here, one condition for determining whether the firmware can be updated is that the communication device 102 is in a state where it can receive update data from the server 101. The state in which the communication device 102 can receive update data from the server 101 is, for example, a state in which the free capacity of the RAM 206 of the communication device 102 is greater than or equal to a threshold. If the free capacity of RAM 206 is less than the threshold, it is not possible to complete the reception of the update data. Therefore, for example, a state in which the free capacity is greater than or equal to a threshold is defined as a state in which update data can be received. Alternatively, whether or not update data can be received may be determined by the CPU 208 based on information that can be continuously collected from power-on detection, such as the free capacity of RAM 206 mentioned above.

[0027] Furthermore, one condition for determining whether the firmware is in a state where it can be updated is that no data that should not be erased is stored in the volatile memory. This is because, if the communication device 102 is configured to restart during a firmware update, there is a risk that the contents of RAM 206 may be erased during the firmware update. In this embodiment, it is determined whether the communication device 102 is in a state where its firmware can be updated based on the above two conditions. Note that the determination in S602 is not limited to the above two conditions and may be based on other conditions. For example, the connection status of other devices to the communication device 102 or the execution status of jobs may be used as conditions. If it is determined in S602 that the communication device 102 is in a state where its firmware can be updated, the process proceeds to S603. On the other hand, if it is determined that the communication device 102 is not in a state where its firmware can be updated, the process proceeds to S609 and the power-off process is executed.

[0028] In S603, the CPU 208 displays a firmware update screen on the display unit 210. Figure 7 shows an example of the firmware update screen. As shown in Figure 7, the firmware update screen displays a message indicating that the latest firmware update data is available, and a button (item) that accepts instructions on whether or not to perform the firmware update. At this point, along with displaying the firmware update screen, the CPU 208 starts a monitoring timer to monitor the passage of a certain period of time.

[0029] In S604, CPU208 determines whether it has received a command to not update the firmware (for example, the "No" button in Figure 7) on the firmware update screen. If it has received a command to not update the firmware, it proceeds to S609 and the power-off process is executed. If it has not received a command to not update the firmware, it proceeds to S605.

[0030] In S605, the CPU 208 determines whether it has received an instruction to update the firmware (for example, the "Yes" button in Figure 7) on the firmware update screen. If it has received an instruction to update the firmware, it proceeds to S606. In S606, the CPU 208 requests the server 101 to provide update data for the latest firmware. In S606, along with the request for update data, identification information such as the model name of the communication device 102 is sent to the server 101.

[0031] In S607, the CPU 301 of server 101 sends the corresponding update data to the communication device 102. The CPU 301 may authenticate the communication device 102 before sending the update data. Alternatively, the CPU 301 may encrypt the update data before sending it to the communication device 102. In that case, the CPU 208 of communication device 102 decrypts the received update data.

[0032] In S608, the CPU 208 of the communication device 102 receives (downloads) the update data sent from the server 101 in S607 and starts the firmware update. S608 may also determine whether the received update data is compatible with the communication device 102. If it is determined that the received update data is not compatible with the communication device 102, the received update data is discarded and the process in Figure 6 is terminated. After the firmware update is started, the CPU 208 stores information indicating that the firmware update has been performed and the result of that execution (e.g., success / failure) in non-volatile memory. Then, the process proceeds to S609, where the power-off process is performed.

[0033] In this embodiment, after detecting a user's power-off operation, a firmware update screen is displayed if predetermined conditions are met. Here, the predetermined conditions are that the latest firmware update data is available on the server and the communication device 102 is in a state where firmware updates are possible. When a command to update the firmware is received from the user, the firmware update is executed, and then the power-off operation is performed. With such a configuration, if the communication device 102 meets the predetermined conditions when a power-off operation is detected, the user can be provided with an opportunity to update the firmware. Since detecting a power-off operation means that the user is unlikely to use the communication device 102 for a while from that point, the impact on the user from updating the firmware is extremely low. Therefore, in this embodiment, the user can be provided with an opportunity to update the firmware at a more appropriate timing.

[0034] If the instruction to update the firmware is not received in S605, and a predetermined time has elapsed according to the monitoring timer (i.e., a timeout), the process proceeds to S609, and the power-off process is executed. A case where the process times out in S605 and proceeds to S609 is, for example, when the firmware update screen is displayed in S603, but the user does not recognize (notice) it. In this embodiment, if a predetermined time has elapsed after the firmware update screen is displayed, the power-off is executed according to the user's power-off operation. Furthermore, even if a power-off operation is detected, the firmware update screen can be displayed for a predetermined time to make it easier for the user to recognize it. The predetermined time can also be set in advance. Such a configuration makes it easier for the user to recognize the process.

[0035] As described above, this embodiment provides users with more opportunities to update the firmware at a more appropriate time. Furthermore, if a predetermined time has elapsed after the firmware update screen is displayed, the system will assume that the user did not recognize the firmware update screen and will perform a power-off process without updating the firmware. This configuration prevents situations where the power-off process is not performed.

[0036] [Second Embodiment] The second embodiment will now be described in terms of its differences from the first embodiment. In this embodiment, if no operation is performed on the firmware update screen for a predetermined period of time, the communication device 102 stores information in its non-volatile memory indicating that it is in a "state where there is update data for the latest firmware" and that the user was unaware of the firmware update screen. Then, when the communication device 102 is started up again, it is determined whether the above information is stored in the non-volatile memory, and if it is determined that it is stored, the firmware update screen is displayed. This provides the user with more opportunities to update the firmware.

[0037] Figure 8 is a flowchart showing the processing when a soft-off state is executed by user operation in this embodiment. Since the explanations for S801-S805 and S807-S810 are the same as those for S601-S605 and S606-S609 in Figure 6, their explanations are omitted.

[0038] In S805, if the monitoring timer started in S803 times out, the process proceeds to S806. In S806, the CPU 208 of the communication device 102 stores information in non-volatile memory indicating that the communication device 102 is in a state where "update data for the latest firmware is available" and that the user is not aware of the firmware update screen. Then, in S810, the power-off process is executed.

[0039] The information indicating that "update data for the latest firmware is available" and that the user is unaware of the firmware update screen is, in other words, trigger information that will trigger the display of the firmware update screen the next time the communication device 102 is started. That is, the above trigger information is stored in non-volatile memory, and the CPU 208 is configured to refer to the non-volatile memory the next time it is started (for example, when the user powers it on). This makes it possible to display the firmware update screen based on the fact that the trigger information is stored. Hereinafter, the above trigger information will be referred to as the first trigger information.

[0040] Figure 9 is a flowchart illustrating the process when power-on is performed by a user. While this explanation focuses on the case where power-on is performed by a user, the process can also be described for cases where power-on is performed without user intervention.

[0041] When the CPU 208 of the communication device 102 detects a power-on operation by the user, it executes the process in S901. In S901, the CPU 208 determines whether or not first trigger information indicating that the communication device 102 is in a "state where there is update data for the latest firmware" and that the user has not recognized the firmware update screen is stored in the non-volatile memory. If it is determined that the first trigger information is stored, the process proceeds to S902. On the other hand, if it is determined that the first trigger information is not stored, the process proceeds to S910. In S910, the CPU 208 executes the power-on process and then terminates the process shown in Figure 9.

[0042] In S902, the CPU 208 determines whether the communication device 102 is in a state where its firmware can be updated, similar to S602 in Figure 6. If it is determined that the communication device 102 is in a state where its firmware can be updated, the process proceeds to S903. On the other hand, if it is determined that the communication device 102 is not in a state where its firmware can be updated, the process proceeds to S910, and the power-on process is executed.

[0043] In S903, the CPU 208 deletes the first trigger information from the non-volatile memory, and in S904, the display unit 210 displays the firmware update screen shown in Figure 7. Along with displaying the firmware update screen, the CPU 208 starts the monitoring timer and monitors the elapsed time.

[0044] In S905, CPU208 determines whether it has received a command to not update the firmware (for example, the "No" button in Figure 7) on the firmware update screen. If it has received a command to not update the firmware, it proceeds to S910 and the power-on process is executed. If it has not received a command to not update the firmware, it proceeds to S906.

[0045] In S906, the CPU208 determines whether it has received an instruction to update the firmware (for example, the "Yes" button in Figure 7) on the firmware update screen. If it has received an instruction to update the firmware, it proceeds to S907. On the other hand, if it has not received an instruction to update the firmware and a predetermined time has elapsed according to the monitoring timer (i.e., a timeout), it proceeds to S910 and the power-on process is executed. An example of a case where a timeout occurs in S906 and the process proceeds to S910 is when the firmware update screen is displayed in S904, but the user does not recognize it.

[0046] Thus, in this embodiment, if the user did not recognize the firmware update screen displayed when the power-off operation was detected, the firmware update screen can be displayed at the next time the communication device 102 is started up.

[0047] When S906 receives a command to update the firmware, S907, via the CPU 208, requests the server 101 to send update data for the latest firmware. Along with the request for update data, S907 also sends identification information such as the model name of the communication device 102 to the server 101. Alternatively, a request for firmware update information 500 may be sent along with the request for update data.

[0048] In S908, the CPU 301 of server 101 sends update data corresponding to the communication device 102 to the communication device 102. The CPU 301 may authenticate the communication device 102 before sending the update data. The CPU 301 may also encrypt the update data before sending it to the communication device 102. In that case, the CPU 208 of communication device 102 decrypts the received update data.

[0049] In S909, the CPU 208 of the communication device 102 receives update data sent from the server 101 and starts the firmware update. S909 may also determine whether the received update data is compatible with the communication device 102. If it is determined that the received update data is not compatible with the communication device 102, the received update data is discarded and the process shown in Figure 9 is terminated. After the firmware update is started, the CPU 208 stores information indicating that the firmware update has been performed and the result of that execution (e.g., success / failure) in non-volatile memory. Then, the process proceeds to S910, where the power-on process is executed.

[0050] Figure 10 is a flowchart showing the process of displaying the firmware update results after a reboot following a firmware update in S909. In S1001, the CPU 208 of the communication device 102 determines whether or not the firmware update has been performed. The determination in S1001 may be based, for example, on whether or not the above information has been stored in the non-volatile memory in S909. If it is determined that the firmware update has been performed, the process proceeds to S1002. On the other hand, if it is determined that the firmware update has not been performed, the process proceeds to S1005, where the CPU 208 performs the power-on process, and then terminates the process shown in Figure 10.

[0051] In S1002, the CPU208 determines whether the firmware update was successful or unsuccessful based on the information stored in the non-volatile memory in S909. If it is determined to be successful, the process proceeds to S1003; if it is determined to be unsuccessful, the process proceeds to S1004.

[0052] In S1003, the CPU 208 displays a screen on the display unit 210 indicating that the firmware update was successful. Figure 11 shows an example of the screen displayed in S1003. The screen in Figure 11 displays a message indicating that the firmware update was successful and prompting the user to confirm it. The message prompting confirmation is, for example, a message prompting the user to press the OK button. When the user presses the OK button (not shown), the process proceeds from S1003 to S1005, and the power-on process is executed.

[0053] In S1004, the CPU 208 displays a screen on the display unit 210 notifying the user that the firmware update has failed. Figure 12 shows an example of the screen displayed in S1004. The screen in Figure 12 displays a message indicating that the firmware update has failed and prompting the user to confirm this. The message prompting confirmation is, for example, a message prompting the user to press the OK button. When the user presses the OK button (not shown), the process proceeds from S1004 to S1005, and the power-on process is executed. After S1005, the process shown in Figure 10 is terminated.

[0054] As described above, according to this embodiment, if a predetermined time has elapsed after the firmware update screen is displayed, trigger information (first trigger information) for displaying the firmware update screen when the communication device 102 is next started is stored in the non-volatile memory. Then, when the next power-on operation is detected, the firmware update screen is displayed based on the fact that the above trigger information is stored in the non-volatile memory. With such a configuration, it is possible to provide the user with more opportunities to update the firmware.

[0055] [Third Embodiment] The third embodiment will now be described in terms of its differences from the first and second embodiments. In the second embodiment, if a power-off operation was detected and the firmware update screen was displayed, and then a timeout occurred, the first trigger information was stored in the non-volatile memory, and the firmware update screen was displayed the next time the communication device 102 was started. In this embodiment, if a power supply interruption occurs or the user's power-off operation is detected again while the firmware update screen is being displayed after a power-off operation has been detected, the firmware update screen will be displayed the next time the communication device 102 is started.

[0056] Figure 13 is a flowchart showing the processing when a soft-off state is executed by user operation in this embodiment. Since S1301 and S1302 are the same as those described in S601 and S602 in Figure 6, their explanations are omitted. If it is determined in S1302 that the communication device 102 is in a state where the firmware can be updated, the process proceeds to S1303.

[0057] In S1303, the CPU 208 of the communication device 102 temporarily stores first trigger information in non-volatile memory, indicating that the communication device 102 has update data for the latest firmware and that the user is not aware of the firmware update screen, and then proceeds to S1304.

[0058] In S1304, the CPU 208 displays the firmware update screen shown in Figure 7 on the display unit 210, similar to S603 in Figure 6. At the same time, the CPU 208 activates a monitoring timer to monitor the passage of a certain period of time.

[0059] In other words, in this embodiment, the first trigger information is temporarily stored in non-volatile memory before the firmware update screen is displayed. With this configuration, for example, if the power supply is cut off in S1304, the process in Figure 13 will end, but the first trigger information will remain stored in the non-volatile memory. In other words, when the communication device 102 is started up again, the first trigger information will be stored in the non-volatile memory, allowing the firmware update screen to be displayed.

[0060] In S1305, the CPU 208 determines whether it has received an instruction not to update the firmware (for example, the "No" button in Figure 7) on the firmware update screen. If it has received an instruction not to update the firmware, it proceeds to S1306. In S1306, the CPU 208 deletes the first trigger information, which was temporarily stored in S1303, from the non-volatile memory. Then, in S1312, the CPU 208 performs a power-off process, and after that, terminates the process shown in Figure 13.

[0061] Thus, in this embodiment, if the user instructs not to update the firmware, the firmware update is not performed and the power-off process is executed. Furthermore, the firmware update screen is not displayed the next time the communication device 102 is started up. As a result, it is possible to prevent providing the user with an excessive number of opportunities to update the firmware.

[0062] On the other hand, if no instruction to not update the firmware has been received, in S1307, the CPU 208 determines whether an instruction to update the firmware (for example, the "Yes" button in Figure 7) has been received on the firmware update screen. If an instruction to update the firmware has been received, the process proceeds to S1308. In S1308, the CPU 208 deletes the first trigger information, which was temporarily stored in S1303, from the non-volatile memory. Then, as with S606~S608 in Figure 6, S1309~S1311 are executed to perform the firmware update. After that, the power-off process is executed in S1312.

[0063] Thus, in this embodiment, when a user gives an instruction to update the firmware, the first trigger information temporarily stored in the non-volatile memory is deleted, and the firmware update screen is not displayed the next time the communication device 102 is started up.

[0064] If the instruction to update the firmware in S1307 is not received, and a certain period of time has elapsed according to the monitoring timer (i.e., a timeout), the process proceeds to S1312, and the power-off process is executed. A case where the process proceeds to S1312 due to a timeout in S1307 is, for example, when the firmware update screen is displayed in S1304, but the user does not recognize it. In this case, the first trigger information is stored in the non-volatile memory so that the firmware update screen will be displayed the next time the communication device 102 is started up. Thereafter, when the CPU 208 detects a power-on operation by the user, it will execute the process shown in Figure 9. Then, the process proceeds from S901 to S902, and if it is determined in S902 that the communication device 102 is in a state where the firmware can be updated, the processes in S903 and S904 are executed, and the firmware update screen is displayed.

[0065] Furthermore, if a power-off operation by the user is detected again after the firmware update screen is displayed in S1304, the process proceeds from S1307 to S1312 without deleting the first trigger information stored in the non-volatile memory, and the power-off process is executed.

[0066] As described above, in this embodiment, the first trigger information is temporarily stored in non-volatile memory before the firmware update screen is displayed. When the user gives an instruction to update the firmware or not, the first trigger information in the non-volatile memory is deleted. Otherwise, the power-off process is executed with the first trigger information still stored in the non-volatile memory. With this configuration, even if a power-off operation is detected again while the firmware update screen is displayed, or if the power supply is interrupted while the firmware update screen is displayed, the communication device 102 can be started up and the user can be provided with an opportunity to update the firmware.

[0067] [Fourth Embodiment] The fourth embodiment will now be described in terms of its differences from the first to third embodiments. In this embodiment, if, after displaying the firmware update screen, an instruction not to perform the firmware update is received, a screen will be displayed that allows the user to instruct whether or not to perform the firmware update the next time the communication device 102 is started. With such a configuration, the user can be provided with more opportunities to update the firmware.

[0068] Figure 14 is a flowchart showing the processing when a soft-off state is executed by user operation in this embodiment. Since the explanations for S1401 to S1404 are the same as those for S601 to S604 in Figure 6, their explanations are omitted.

[0069] If a command to update the firmware is received, the process proceeds from S1404 to S1408 and S1409. S1408 to S1412 are the same as those described in S605 to S609 in Figure 6, so their explanations are omitted. On the other hand, if a command not to update the firmware is received in S1404, the process proceeds to S1405.

[0070] In S1405, the CPU 208 of the communication device 102 displays a confirmation screen on the display unit 210 to ask the user whether or not to display the firmware update screen the next time the communication device 102 is started. Figure 16 shows an example of the confirmation screen displayed in S1405. As shown in Figure 16, the confirmation screen displays a message asking whether or not to display the firmware update screen the next time the communication device 102 is started, and a button to accept instructions on whether or not to display it.

[0071] In S1406, the CPU 208 determines whether or not it has received an instruction to display a confirmation screen. If it is determined that it has received an instruction to display a confirmation screen (for example, the "Yes" button in Figure 16), in S1407, the CPU 208 stores information in the non-volatile memory indicating that the firmware will be updated when the communication device 102 is next started up. After that, the process proceeds to S1412, and the power-off process is executed. On the other hand, if it is determined in S1406 that it has received an instruction not to display a confirmation screen, the process proceeds to S1412, and the power-off process is executed.

[0072] As described above, in this embodiment, the firmware update screen is displayed, and if an instruction not to update the firmware is received, a confirmation screen is displayed to ask whether to update the firmware the next time the communication device 102 is started. If an instruction to update is received on the confirmation screen, information to that effect is stored in the non-volatile memory. In other words, this information is trigger information (referred to as the second trigger information) for displaying the firmware update screen the next time the communication device 102 is started. By storing the above second trigger information in the non-volatile memory and configuring the CPU 208 to refer to the non-volatile memory at the next startup (for example, when the user powers on), it becomes possible to display the firmware update screen based on the fact that the second trigger information is stored.

[0073] Figure 15 is a flowchart illustrating the processing when power-on is performed by user operation in this embodiment. Although this explanation describes the case where power-on is performed by user operation, the power-on operation may also be performed without user operation.

[0074] When the CPU 208 of the communication device 102 detects a power-on operation by the user, in S1501 it determines whether or not the second trigger information described in S1407 is stored in the non-volatile memory. If it is determined that the second trigger information is not stored in the non-volatile memory, the process proceeds to S1507, where the CPU 208 executes the power-on process and then terminates the process shown in Figure 15. On the other hand, if it is determined that the second trigger information is stored in the non-volatile memory, the process proceeds to S1502.

[0075] In S1502, the CPU 208 determines whether the communication device 102 is in a state where its firmware can be updated, similar to S602 in Figure 6. If it is determined that the communication device 102 is not in a state where its firmware can be updated, the process proceeds to S1507 and the power-on process is executed. On the other hand, if it is determined that the communication device 102 is in a state where its firmware can be updated, the process proceeds to S1503.

[0076] In S1503, the CPU 208 deletes the second trigger information stored in non-volatile memory in S1407 from the non-volatile memory. In S1504, the CPU 208 requests update data for the latest firmware from the server 101. In S1504, along with the request for update data, identification information such as the model name of the communication device 102 is sent to the server 101. Alternatively, a request for firmware update information 500 may be sent along with the request for update data.

[0077] In S1505, the CPU 301 of server 101 sends update data corresponding to communication device 102 to communication device 201. Note that CPU 301 may authenticate communication device 102 before sending the update data. Also, CPU 301 may encrypt the update data before sending it to communication device 102. In that case, CPU 208 of communication device 102 decrypts the received update data.

[0078] In S1506, the CPU 208 of the communication device 102 receives the update data sent from the server 101 in S1505 and starts the firmware update. In S1506, it is also possible to determine whether the received update data corresponds to the communication device 102. If it is determined that the received update data does not correspond to the communication device 102, the received update data is discarded and the power-on process is executed. After the firmware update is executed, the CPU 208 stores information indicating that the firmware update has been executed and the result of the execution (e.g., success / failure) in non-volatile memory. Then, the process proceeds to S1507 and the power-on process is executed. In S1506, the process shown in Figure 10 is executed as in the second embodiment.

[0079] As described above, in this embodiment, if the firmware update screen receives an instruction not to perform the firmware update, a reception screen is displayed that allows the user to request whether or not to perform the firmware update the next time the communication device 102 is started. If an instruction to perform the firmware update is received, the firmware update is performed the next time the communication device 102 is started. With such a configuration, the user can be provided with more opportunities to perform the firmware update.

[0080] [Fifth Embodiment] The fifth embodiment will now be described in terms of its differences from the first to fourth embodiments. In this embodiment, after updating the firmware and performing the power-off process, when a power-on operation by the user is detected, the results of the previously performed firmware update are displayed. If the firmware update failed, the firmware update screen is displayed again. This configuration provides the user with more opportunities to update the firmware.

[0081] Figure 17 is a flowchart illustrating the processing when power-on is performed by user operation in this embodiment. Although this explanation describes the case where power-on is performed by user operation, the power-on operation may also be performed without user operation.

[0082] When the CPU 208 of the communication device 102 detects a power-on operation by the user, it determines in S1701 whether or not a firmware update has been performed. The determination in S1701 may be made, for example, based on information stored in non-volatile memory during the firmware execution in S608. If it is determined that a firmware update has not been performed, the process proceeds to S1712, where the CPU 208 performs the power-on process and then terminates the process shown in Figure 17. On the other hand, if it is determined that a firmware update has been performed, the process proceeds to S1702.

[0083] In S1702, the CPU 208 determines whether the firmware update was successful or unsuccessful. The determination in S1702 may be based, for example, on the execution result information stored in non-volatile memory during the firmware execution in S608. If the firmware update is determined to be successful, the process proceeds to S1703, where the CPU 208 displays the screen shown in Figure 11 on the display unit 210, notifying that the firmware update was successful. After receiving confirmation from the user on the screen, the process proceeds to S1712, where the power-on process is executed. On the other hand, if the firmware update is determined to be unsuccessful, the process proceeds to S1704, where the CPU 208 displays the screen shown in Figure 12 on the display unit 210, notifying that the firmware update was unsuccessful. After receiving confirmation from the user on the screen, the process proceeds to S1705.

[0084] In S1705, the CPU 208 determines whether the communication device 102 is in a state where its firmware can be updated. If it is determined that the communication device 102 is in a state where its firmware can be updated, the process proceeds to S1706. If it is determined that the communication device 102 is not in a state where its firmware can be updated, the process proceeds to S1712, and the power-on process is executed.

[0085] In S1706, the CPU 208 displays the firmware update screen shown in Figure 7 on the display unit 210. The following steps S1707 to S1712 are the same as those described in S905 to S910 in Figure 9, so their explanations are omitted.

[0086] As described above, according to this embodiment, when the power-on operation of the communication device 102 is detected, the results of the previously performed firmware update are displayed. If the firmware update failed, the firmware update screen is displayed, enabling the firmware update. With such a configuration, the user can be provided with more opportunities to update the firmware.

[0087] The present invention can also be realized by supplying a program that implements one or more of the functions of the above-described embodiments to a system or device via a network or storage medium, and by having one or more processors in the computer of that system or device read and execute the program. It can also be realized by a circuit (e.g., an ASIC) that implements one or more functions.

[0088] The invention is not limited to the embodiments described above, and various modifications and variations are possible without departing from the spirit and scope of the invention. Accordingly, claims are attached to disclose the scope of the invention. [Explanation of symbols]

[0089] 101 Servers: 102 Communication Devices: 208, 301 CPUs

Claims

1. A communication device, a detection means for detecting a power operation of the communication device by a user; a power control means for changing a power state of the communication device in accordance with the power operation detected by the detection means; a display control means for, when the detection means detects the power operation, causing the communication device to display on a display unit an update screen capable of accepting a user instruction to update the software, based on the communication device being in a state where software updating is possible, before the power control means changes the power state of the communication device in accordance with the power operation; the display control means displays the update screen until a predetermined time has elapsed even if a user instruction for the update screen has not been received; the power supply control means changes the power supply state of the communication device in accordance with the power supply operation after the predetermined time has elapsed. A communication device comprising:

2. 2. The communication device according to claim 1, wherein, when the power operation is a power-off operation, the power control means powers off the communication device after the predetermined time has elapsed.

3. 3. The communication device according to claim 2, wherein the power supply control means changes the communication device into a power saving state than a normal activation state when powering off the communication device.

4. a first storage means for storing first trigger information in a nonvolatile memory of the communication device so that, when the power operation is a power-off operation, first trigger information for displaying the updated screen when the predetermined time has elapsed is stored in the nonvolatile memory of the communication device; the power supply control means powers off the communication device after the first storage means stores the first trigger information.

4. The communication device according to claim 2 or 3.

5. and when the detection means detects a power-on operation as the power operation after the power control means powers off the communication device, the display control means causes the display unit to display the updated screen based on the fact that the first trigger information was stored in a non-volatile memory of the communication device before the power control means powers on the communication device.

5. The communication device according to claim 4.

6. an execution unit that executes the software update when an instruction to update the software is received via the update screen; the power supply control means changes the power supply state of the communication device in accordance with the power supply operation after the execution means executes the software update.

6. The communication device according to claim 1, wherein the first and second communication terminals are connected to each other.

7. a second storage means for storing an execution result of the execution means in a non-volatile memory of the communication device; and when the detection means detects a power-on operation as the power operation after the power control means has powered off the communication device, the display control means causes the display unit to display the execution result before the power control means powers on the communication device.

7. The communication device according to claim 6.

8. 8. The communication device according to claim 7, wherein, when the execution result indicates a failure in the software update, the display control means displays the update screen after displaying the execution result.

9. A communication device as described in any one of claims 1 to 8, characterized in that when an instruction not to update the software is received via the update screen, the display control means displays on the display unit a reception screen that accepts an instruction as to whether or not to perform the software update when the communication device is started up after being powered off.

10. a third storage means for storing second trigger information for executing the software update in a non-volatile memory of the communication device when an instruction to execute the software update is received via the reception screen; When the detection means detects a power-on operation as the power operation after the power control means powers off the communication device, the software update is executed based on the fact that the second trigger information is stored in the nonvolatile memory and that the communication device is in a state where software update is possible.

10. The communication device according to claim 9.

11. 11. The communication device according to claim 1, wherein the software is updated by acquiring update data for updating the software from an external device.

12. 12. The communication device according to claim 11, wherein the communication device being in a state where software updating is possible includes the update data being present in the external device.

13. an acquisition unit that acquires information about the update data from the external device; a determination unit that determines whether the communication device is in a state where software can be updated based on the information about the update data acquired by the acquisition unit; The communication device of claim 12 further comprising:

14. the software is firmware; 14. The communication device according to claim 13, wherein the information about the update data includes at least one of a ROM version and a ROM data size of the firmware.

15. 15. The communication device according to claim 12, wherein the communication device being in a state where software updating is possible includes being able to receive the update data from the external device.

16. The communication device according to any one of claims 12 to 15, characterized in that the communication device being in a state where software can be updated includes a state in which no specified data is stored in the volatile memory of the communication device.

17. 17. The communication device according to claim 1, wherein the communication device is a printer.

18. A control method executed in a communication device, comprising: a detection step of detecting a power operation of the communication device by a user; a power control step of changing a power state of the communication device in accordance with the power operation detected in the detection step; a display control step of, when the power operation is detected in the detection step, displaying on a display unit an update screen that can accept a user instruction to update the software, based on the fact that the communication device is in a state where software updating is possible, before changing the power state of the communication device in accordance with the power operation in the power control step; In the display control step, the update screen is displayed until a predetermined time has elapsed even if a user instruction for the update screen has not been accepted, In the power supply control step, after the predetermined time has elapsed, a power supply state of the communication device is changed in accordance with the power supply operation. A control method comprising: