专利名称:固件更新装置及固件更新方法
技术领域:
本发明涉及固件更新装置及固件更新方法。
技术背景
日本专利特开2006-129362号公报公开了一种用于经由网络将固件从固件分发 服务器下载到固件更新装置以进行固件更新装置的固件更新的技术。在此技术中,可以在 指定时间自动对固件进行更新。在上述技术中,当具有传真接收功能的设备由于某些原因而没有进行正常的更新 处理时,诸如重要传真接收失败的严重情形可能会发生。因此,该技术只能在操作被保证的 版本之间进行自动更新。
发明内容
本发明提供一种方法,该方法包括以下步骤指定要更新的固件版本;确定是否 能够进行从当前固件版本到所指定的固件版本的直接更新;如果确定不能进行到所指定的 固件版本的所述直接更新,则确定通过另一版本更新的介入是否能够进行到所指定的固件 版本的更新;以及如果确定通过所述另一版本更新的介入能够进行从所述当前固件版本到 所指定的固件版本的更新,则通过所述另一版本更新的介入来执行到所指定的固件版本的 更新。通过以下参照附图对示例性实施例的描述,本发明的其他特征将变得清楚。
图1是示出了根据本发明实施例的固件更新系统的配置的实例的图。图2是示出了固件分发服务器101的硬件配置的框图。图3是示出了固件更新装置103、104和105中的每个固件更新装置的硬件配置的 框图。图4是示出了固件分发服务器101的主要部分的功能配置的框图。图5是示出了固件更新装置103、104和105中的每个固件更新装置的主要部分的 功能配置的框图。图6是示出了固件更新菜单画面的实例的图。图7是示出了固件更新信息设置画面的实例的图。图8是示出了要在版本显示区701上显示的固件版本与各个设备中所安装的固件 版本之间的对应关系的实例的表。图9是示出了固件登记画面的实例的图。图10是示出了在对固件进行登记时文件指定区901上要显示的文件内容的实例 的图。图11是示出了固件分发服务器101进行的固件登记处理的过程的流程图。
图12是示出了固件信息表的实例的表。图13是示出了当固件更新装置103、104和105向固件分发服务器101发出固件信息列表分发请求时的处理过程的流程图。图14是示出了当固件分发服务器101接收到来自固件更新装置103、104和105 的固件信息列表分发请求时的处理过程的流程图。图15是示出了包含键码(keycode)与专用固件之间的关联的对应关系表的实例 的表。图16是示出了在固件更新装置103、104和105获取了固件信息列表之后的处理 过程的流程图。图17是示出了用于确定所选择的版本是否能够被自动更新的处理(图16中的步 骤S1601)的详细过程的流程图。图18是示出了用于固件更新装置103、104和105进行的固件更新的调度设置处 理的过程的流程图。图19A是示出了更新定时被设置成“自动”的固件更新步骤信息文件的实例的图。图19B是示出了更新定时被设置成“手动”的固件更新步骤信息文件的实例的图。图20是示出了固件更新装置103、104和105进行的固件更新处理的过程的流程 图。图21是示出了固件更新装置103、104和105进行的固件更新确认处理的过程的
流程图。图22是示出了当接收到固件分发请求时固件分发服务器101的处理过程的流程图。
具体实施例方式在下文中,将参照附图对本发明的各种实施例进行描述。<固件更新系统>图1是示出了根据本发明实施例的固件更新系统的配置的实例的图。固件更新系 统100的配置包括分别连接到网络102的固件分发服务器101,固件更新装置103、104和 105,以及计算机106。作为此处所示的固件更新装置103、104和105的实例,本发明实施 例采用执行各种图像形成操作的图像形成装置。在固件更新系统100中,例如,假设固件更 新装置103和104为公司A所有并且固件更新装置105为公司B所有。另外,假设计算机 106为固件销售公司所有。基于固件更新装置103、104和105的请求,固件分发服务器101进行固件相关信 息的发送以及固件本身的分发。固件更新装置103、104和105中的每个固件更新装置都是 具有诸如复印或打印的功能的设备,并且其中安装有多个固件以对扫描仪控制和打印机控 制进行管理。固件更新装置103、104和105可以经由固件分发服务器101来获取可应用的 固件以对它进行更新。针对固件分发服务器101,销售公司所拥有的计算机106进行固件 分发服务器101的固件管理,例如,要分发的固件的登记和删除、固件信息的更新等。固件 的种类包括普通固件以及根据顾客所定制的专用固件。例如,对于公司A的固件更新装置 103以及公司B的固件更新装置105来说,即使装置103和105为同样的型号,也可以下载功能不同的固件用于操作。<固件分发服务器的硬件配置>接下来,将对根据本发明实施例的固件分发服务器的硬件配置进行描述。图2是 示出了固件分发服务器101的硬件配置的框图。在图2中,第一 CPU 201和第二 CPU 202对固件分发服务器101的各功能部进行 控制。ROM 203对用于固件分发服务器101的各个处理的程序和数据进行存储。RAM 204 对用于固件分发服务器101的各个处理的临时数据进行电存储。第一 HDD (硬盘)205和第 二 HDD 206对用于固件分发服务器101的各个处理的程序、与分发各种数据和固件的固件 更新装置的有关信息、所要分发的固件以及关于固件的信息等进行存储。在固件分发服务器101中,用于执行本发明实施例的固件分发的程序被存储于第 一 HDD 205或第二 HDD 206中。该程序将RAM 204用作临时保存区,并被第一 CPU 201或 第二 CPU 202调用和执行。
输入设备207接收输入给固件分发服务器101的指令。输入设备207包括键盘或 指示设备。显示部208对固件分发服务器101的操作状态以及在固件分发服务器101上运 行的各个程序所输出的信息进行显示。网络I/F (接口)209经由网络连接到LAN(局域网) 和因特网并与外部设备交换信息。外部设备I/F(接口)210对与外部存储设备等的连接进 行控制。上述各功能部通过负责设备内的数据流的系统总线211相连接。<固件更新装置的硬件配置>接下来,将对根据本发明实施例的固件更新装置的硬件配置进行描述。图3是示 出了固件更新装置103、104和105中的每个固件更新装置的硬件配置的框图。假定本发明 实施例中所采用的图像形成装置是整体设有打印机功能和传真功能的多功能机。多功能机 可以是从PC接收数据并进行打印的打印机(包括电子照相式或喷墨式打印机)、扫描仪、或 者传真机等。图3中所示的固件更新装置的配置假定为多功能机。在图3中,原稿给送部301将原稿给送到图像读取器302中。图像读取器302读 取从原稿给送部301给送的原稿并将它转换成打印图像以打印输出。图像形成部303将 诸如HDD (硬盘)309 (下面将描述)的存储单元中所存储的数据或者经由网络所接收的数 据转换成打印图像以打印输出。片材排出部304将打印输出的纸张排出,并进行诸如排序 以及装订等的处理。网络I/F 305经由网络连接到LAN和因特网并与外部设备交换信息。 CPU 306对固件更新装置的诸如复印、扫描以及打印等的各个处理进行管理。用作非易失性 存储单元的ROM 307对用于固件更新装置的各个处理的程序和数据进行存储。用作可擦写 存储单元的RAM 308对用于固件更新装置的各个处理的临时数据进行电存储。HDD 309对 用于固件更新装置的各个处理的程序和数据、以及从外部设备所发送的用户数据等进行存 储。固件更新装置在HDD 309中具有用于执行图像形成处理的程序。该程序将RAM 308用 作临时存储区,并且该程序由CPU 306调用和执行。操作部310接收输入给固件更新装置 的指令。显示部311对固件更新装置的操作状态以及与操作部310的操作有关的信息进行 显示。上述各功能部经由用于设备内的数据流的系统总线312相连接。<固件分发服务器的功能配置>接下来,将对根据本发明实施例的固件分发服务器的主要部分的功能配置进行描 述。图4是示出了固件分发服务器101的主要部分的功能配置的框图。固件分发服务器101包括通信控制部401、Web UI (用户界面)控制部402、固件管理部403和固件发送控制 部 404。通信控制部401对与网络的连接进行控制以将数据发送给固件更新装置103、104 和105以及计算机106以及从固件更新装置103、104和105以及计算机106接收数据。例 如,通信控制部401可以利用图2中所示的第一 CPU 201或第二 CPU 202以及网络I/F 209 来实现其功能。Web UI控制部402基于计算机106的外部控制对用于管理固件的UI进行控制。 例如,通信控制部401包括图2中所示的第一 CPU 201或第二 CPU 202、输入设备207以及 显示部208,并且可以通过由第一 CPU 201或第二 CPU 202执行预定的程序来实现其功能。固件管理部403经由Web UI控制部402来进行固件的登记和删除,以及所登记的 固件的信息管理。例如,固件管理部403可以通过由图2中所示的第一 CPU 201或第二 CPU 202执行预定的程序来实现其功能。固件发送控制部404响应于来自固件更新装置103、104和105等的请求,来进行 固件信息及固件的选择和发送。例如,固件发送控制部404可以通过由图2中所示的第一 CPU 201或第二 CPU 202执行预定的程序来实现其功能。<固件更新装置的功能配置>接下来,将对根据本发明实施例的固件更新装置的主要部分的功能配置进行描 述。图5是示出了固件更新装置103、104和105中的每个固件更新装置的主要部分的功能 配置的框图。图5中所示的各功能部对固件更新装置103、104和105所进行的固件更新中 涉及的处理进行管理。固件更新装置103、104和105中的每个固件更新装置包括UI控制 部501、更新调度控制部502、确定部503、更新步骤保持部504、更新处理部505以及通信控 制部506。UI控制部501 (固件版本指定单元、自动更新选择单元)显示用于固件更新的菜单 画面或者显示固件更新调度设置画面。UI控制部501使得用户能够基于从固件分发服务 器101获取到的信息来指定要更新的固件版本。此外,UI控制部501使得用户能够选择是 否进行自动更新。例如,UI控制部501包括图3中所示的CPU 306、操作部310以及显示部 311,并且可以通过由CPU 306执行预定的程序来实现其功能。更新调度控制部502响应于要用UI控制部501控制的UI设置来设置固件更新调 度。例如,更新调度控制部502可以通过由图3中所示的CPU306执行预定的程序来实现其 功能。
确定部503在对固件更新调度进行设置时确定固件版本的更新是否可行。例如, 确定部503确定是否能够通过另一操作被保证的版本更新的介入进行从当前使用的固件 版本到指定固件的版本的更新。例如,确定部503可以通过由图3中所示的CPU 306执行 预定的程序来实现其功能。更新步骤保持部504保持用于调度更新的信息(例如,关于固件何时被下载、所下 载的固件何时被应用、或者继固件应用之后是什么步骤等的信息)。例如,更新步骤保持部 504可以通过由图3中所示的CPU 306,RAM 308以及HDD 309等执行预定的程序来实现其 功能。更新处理部505基于更新步骤保持部504中所保持的信息来执行固件更新。例如,更新处理部505从固件分发服务器101下载指定固件的版本,以在UI控制部501选择了自 动更新的情况下执行更新处理。此外,更新处理部505从固件分发服务器101仅下载指定 固件的版本并且在UI控制部501未选择自动更新的情况下不执行更新处理。例如,更新处 理部505可以通过由图3中所示的CPU 306执行预定的程序来实现其功能。通信控制部506(固件信息获取单元)对与网络的连接进行控制以向固件分发服 务器101发送数据以及从固件分发服务器101接收数据。例如,通信控制部506可以在对 固件更新调度进行设置时从固件分发服务器101接收固件信息,或者可以在进行固件更新 时从固件分发服务器101接收固件。例如,通信控制部506可以通过图3中所示的CPU 306 和网络I/F 305来实现其功能。<与固件更新有关的各处理>在下文中,将对根据本发明实施例的与固件更新有关的各处理进行描述。图6是示出了固件更新菜单画面的实例的图。当从固件更新装置103、104和105 的设置菜单中选择固件更新时,在显示部311上显示固件更新菜单画面600。固件更新菜单 画面包括按钮601、键码输入区602以及按钮603。
按钮601是用于切换到对固件更新进行设置的画面的按钮。键码输入区602是用 于输入键码的区域。当固件被更新为专用固件时,在键码输入区602中输入预定的键码,而 当采用普通固件时,在其中无需输入任何键码。此外,按钮603是用于在已经存在所下载的 固件时应用所下载的固件的按钮。图7是示出了固件更新信息设置画面的实例的图。在图6中所示的按钮601被按 下之后在显示部311上显示固件更新信息设置画面700。固件更新信息设置画面700包括 版本显示区701、组合框702、日期/时间输入区703、双态按钮(toggle button) 704和705, 以及按钮706和707。版本显示区701显示当前操作的固件的版本。此处要显示的版本不是在设备中操 作的各个固件的版本,而是针对在设备中操作的固件的版本组合所分配的版本。图8是示 出了要在版本显示区701上显示的固件版本与各个设备中所安装的固件版本之间的对应 关系的实例的表。组合框702是用于选择要更新的固件版本的UI。此处,基于从固件分发服务器101 接收到的信息来确定可选择的版本。不仅可以选择比当前版本新的版本,而且也可以选择 比当前版本旧的版本。日期/时间输入区703是用于指定从固件分发服务器101下载固件的日期/时间 的UI。当设置了已经过去的日期/时间时,下载处理立即开始。双态按钮704是用于指定已经从固件分发服务器101下载的固件实际被应用到固 件更新装置103、104和105的定时的UI。当选择了“自动”模式时,所下载的固件在下载完 成之后立即被自动应用。当选择了 “手动”模式时,固件仅在分发日期/时间被下载,并且 所下载的固件在图6中所示的按钮603被按下时被应用。只有当从当前版本到指定版本的 更新在操作上被保证时或者当通过重复操作被保证的更新能够获得指定版本时才对应用 定时选择“自动”模式。如果不满足此条件,则不能选择“自动”模式。双态按钮705使得能够通过重复操作被保证的更新来达到指定版本,然而,双态 按钮705是仅在更新定时被设置成“手动”模式时才可以被设置的按钮。此处,如果选择“否”,则通过重复操作被保证的更新来进行固件更新处理。另一方面,如果选择“是”,则固 件直接被更新为指定版本。当更新定时处于“自动”模式时,该按钮是不可操作的并且操作 与选择“否”时的操作是相同的。按钮706是用于对设置项进行确定的按钮。当该按钮被按下时,基于设置内容对 固件更新进行调度。按钮707是用于将设置予以取消的按钮。当该按钮被按下时,设置内容被撤销并 且画面回到初始画面。图9是示出了固件登记画面的实例的图。首先,当计算机106被连接到用于固件 分发服务器101的固件管理的URL时,在计算机106的显示部上显示固件管理画面。在此 处,可以进行固件的登记和删除以及信息的更新。随后,当在固件管理画面上选择了固件登 记时,在计算机106的显示部上显示图9中所示的固件登记画面900。固件登记画面900包 括文件指定区901、参照按钮902、复选框903和904,以及按钮905和906。文件指定区901是用于设置要登记的固件的文件的UI。当操作者使文件指定区 901显示要登记的固件的文件名并且按压参照按钮902时,OS文件浏览器被打开以使得文 件是可选择的。然后,当经由文件浏览器选择文件时,所选择的文件被设置到文件指定区 901。复选框903和904中的每个复选框都是用于对操作被保证的版本进行指定的UI。复 选框903是用于设置将操作被保证的版本更新处理到要登记的固件的框。复选框904是用 于设置从要登记的固件更新处理到操作被保证的版本的框。按钮905是用于撤销所设置的 内容并回到固件管理画面的取消按钮。按钮906是用于在固件分发服务器101上登记所设 置的内容的登记按钮。图10是示出了在对固件进行登记时文件指定区901上要显示的文件内容的实例 的图。文件是多个文件的组合,并包括信息文件1001、多个固件文件1002、1003和1004,以 及签名文件1005。在该实例中,文件包括三种固件,即,主控制器固件1002、打印机控制器固件1003 以及扫描仪控制器固件1004。信息文件1001包括其中所包括的各固件的种类与文件名 之间的对应信息以及版本信息。采用签名文件1005来验证文件不是伪造的。接下来,将描述固件分发服务器101根据来自外部计算机106的请求进行的固件 登记处理的过程。图11是示出了固件分发服务器101进行的固件登记处理的过程的流程 图。在图11所示的流程图中,首先,接收固件登记请求(步骤S1101)。例如,由图4中 所示的通信控制部401来进行该处理。应当注意的是,固件登记请求还包括固件文件。接下来,确定文件是否有效(步骤S1102)。更具体地说,图4中所示的固件管理部 403确定所接收到的固件的文件上的签名是否被验证以及所接收到的文件中的信息文件的 格式是否是预定的格式。此处,当固件管理部403确定文件无效时(步骤S1102中的否), 发送回错误画面(步骤S1106)。更具体地说,图4中所示的Web UI控制部402经由通信控 制部401将表示在固件登记期间发生了错误的画面发送给计算机106。另一方面,当在步骤S1102中确定文件有效时(步骤S1102中的是),对固件文件 进行存储(步骤S1103)。此处,例如,图4中所示的固件管理部403将所接收到的固件文件 存储于图2中所示的第一 HDD 205或第二 HDD 206等中。
接下来,对固件信息表进行更新(步骤S1104)。更具体地说,固件管理部403基于 所接收到的登记请求中包含的信息对固件信息表(后面再进行详细描述)进行更新,并将 它存储于第一 HDD 205或第二 HDD 206等中。然后,发送登记完成画面(步骤S1105)。更具体地说,Web UI控制部402通过通 信控制部401将表示固件登记已经完成的画面发送给计算机106。接下来,将对要由固件分发服务器101保持的固件信息表进行描述。图12是示出 了固件信息表的实例的表。如图12所示,固件信息表1200中的记录包括诸如ID、种类、型 号、版本、操作被保证的版本以及文件名等的各种信息。ID是分配给各记录的标识符。种 类表示固件的种类。例如,有普通固件、专用于特定客户的专用固件、以及用于分析市场上 所出现的问题的问题分析固件等。型号是用于表示固件对应于哪个型号的信息。版本是用 于表示固件的版本的信息。操作被保证的版本表示从某版本进行更新是操作被保证的。例 如,对于版本1. 1. 1的固件,其表示从版本1. 0. 1的固件进行更新是操作被保证的,然而从 任何其它版本的固件进行更新都不是操作被保证的。此外,文件名是要被存储于固件分发 服务器101的存储设备(第一 HDD 205等)中的文件的名称。接下来,将对当固件更新装置103、104和105向固件分发服务器101发出固件信 息列表分发请求时发生的处理过程进行描述。图13是示出了当固件更新装置103、104和 105向固件分发服务器101发出固件信息列表分发请求时的处理过程的流程图。在图13所示的流程图中,首先,发送固件信息列表获取请求(步骤S1301)。应当 注意的是,当在画面上按下按钮601时开始该流程图的处理。更具体地说,例如,图5中所示的更新调度控制部502响应于要使用UI控制部501 进行控制的UI设置,将固件信息列表获取请求发送到固件分发服务器101。固件信息列表 获取请求包括固件更新装置的型号信息以及所附的可选信息。如果输入了任何键码,则请 求中还包括键码信息。接下来,接收响应(步骤S1302)。此处,图5中所示的通信控制部506从固件分发 服务器101接收应答。接下来,确定是否成功获取了固件信息列表(步骤S1303)。该确定由更新调度控 制部502进行。当在步骤S1303中成功获取了固件信息列表时(步骤S1303中的是),显示固件更 新信息设置画面(步骤S1304)。更具体地说,图5中所示的UI控制部501基于所获取的固 件信息对固件更新信息设置画面(图7)进行配置,并在图3中所示的显示部311上显示该 画面。虽然在图7中显示了固件版本,但是,消息“请选择固件版本”可以在初始时被显示 于组合框702上。可以响应于组合框702的操作而显示下拉菜单,以便基于固件信息列表 来显示可选择的固件的版本。另一方面,当在步骤S1303中未成功获取固件信息列表时(步骤S1303中的否), 显示错误画面(步骤S1305)。更具体地说,图5中所示的UI控制部501配置表示固件信息 列表未被成功获取的错误显示画面,并在图3所示的显示部311上显示该画面。接下来,将对固件分发服务器101接收到来自固件更新装置103、104和105的固 件信息列表分发请求时的处理过程进行描述。图14是示出了固件分发服务器101接收到 来自固件更新装置103、104和105的固件信息列表分发请求时的处理过程的流程图。
在图14所示的流程图中,首先,接收固件信息列表分发请求(步骤S1401)。例如,该处理由图4所示的通信控制部401来进行。接下来,确定是否包括任何键码(步骤S1402)。更具体地说,图4中所示的固件发 送控制部404确定步骤S1401中所接收到的固件信息列表分发请求中是否包括任何键码。当在步骤S1402中确定不包括任何键码时(步骤S1402中的否),发送普通固件信 息(步骤S1403)。此处,固件发送控制部404基于固件信息列表分发请求中所包含的型号 信息,将对应于该型号的普通固件信息列表经由通信控制部401发送给请求源(固件更新 装置103等)。另一方面,当在步骤S1402中确定包括任何键码时(步骤S1402中的是),确定是 否存在对应的固件(步骤S1404)。此处,例如,固件发送控制部404通过参照如图15中所 示的包含键码与专用固件之间的关联的对应关系表,来确定是否存在与键码对应的固件。当在步骤S1404中确定存在对应的固件时(步骤S1404中的是),发送种类与键码 对应的固件信息(步骤S1405)。更具体地说,固件发送控制部404基于固件信息列表分发 请求中所包含的型号信息,将种类与键码对应的固件信息经由通信控制部401发送给请求 源(固件更新装置103等)。另一方面,当在步骤S1404中确定不存在对应的固件时(步骤S1404中的否),发 送错误出现信息(步骤S1406)。更具体地说,固件发送控制部404将表示不存在固件信息 列表的错误出现信息经由通信控制部401发送给请求源(固件更新装置103等)。接下来,将对固件更新装置103、104和105获取了固件信息列表之后的处理过程 进行描述。图16是示出了固件更新装置103、104和105获取了固件信息列表之后的处理 过程的流程图。以下的处理是响应于在图13的步骤S1304中显示的图7的组合框702中 的固件版本的输入或指令来执行的处理。响应于该处理的结果,图7中所示的画面上的显 示发生改变。在图16中所示的流程图中,首先,确定所选择的版本是否是可自动更新的(步骤 1601)。该处理主要由图5中所示的确定部503和UI控制部501来进行,详细内容将在下 文中进行描述。此处,当所选择的版本不是可自动更新的时(步骤S1601中的否),使用于 自动更新的选择UI无效(步骤S1602)。该处理由图5中所示的UI控制部501来进行。通 过使用于自动更新的选择UI无效,用户无法在UI上选择版本。此处,“无效”是指以使得不 能进行选择的方式来显示图7中的画面。例如,当自动更新是无效的时,设想成使自动单选 按钮变灰或者将该单选按钮删除。此外,“无效(inactivation)”意在包括在“自动”单选 按钮被选择之后通知用户所选择的设置有误。另一方面,当在步骤S1601中确定所选择的版本是可自动更新的时(步骤S1601 中的是),使用于自动更新的选择UI有效(步骤S1603)。该处理也由图5中所示的UI控 制部501来执行。通过使用于自动更新的选择UI有效,用户可以在UI上选择版本。接下来,将对用于确定所选择的版本是否能够被自动更新的处理(图16中的步骤 S1601)的具体过程进行描述。图17是示出了用于确定所选择的版本是否能够被自动更新 的处理的详细具体过程的流程图。在图17所示的流程图中,首先,确定到指定版本的更新是否是操作被保证的(步 骤S1701)。此处,确定部503通过参照所接收到的固件信息列表,来确定从当前版本到指定版本的固件更新是否是操作被保证的。在下文中除非另外进行了说明,否则由确定部503 来进行图17中所示的处理。当在步骤S1701中确定到指定版本的更新是操作被保证的时(步骤S1701中的 是),对处理进行设置,以使得执行直接到指定版本的更新(步骤S1702)。换言之,作为对 固件进行更新时应用定时是自动的情况下的更新过程,UI控制部501直接对设置画面进行 控制,以使得能够进行要更新到指定版本的UI设置。然后,确定部503确定能够进行自动 更新(步骤S1703)。作为该确定处理的结果,UI控制部501对设置画面进行控制,以使得 用户可以选择“自动”固件更新定时。另一方面,当在步骤S1701中确定到指定版本的更新不是操作被保证的时(步骤 S1701中的否),处理检查是否存在任何用于从当前版本进行更新的操作被保证的版本(步 骤S1704)。这个处理由确定部503来进行,确定部503参照固件信息列表来检查是否存在 任何用于从当前版本进行更新的操作被保证的版本。此处,当存在用于从当前版本进行更 新的任何操作被保证的版本时(步骤S1704中的是),对这类可更新版本的组合进行存储 (步骤S1705)。例如,这个处理由确定部503来进行,确定部503将这类可更新版本的组合 存储于图3中所示的RAM 308和HDD 309中。接下来,处理检查是否存在任何用于进一步更新的操作被保证的版本(步骤 S1706)。这个处理由确定部503来进行,确定部503参照固件信息列表来检查是否存在任 何用于进一步更新的操作被保证的版本。此处,当存在任何用于进一步更新的操作被保证 的版本时(步骤S1706中的是),对这类可更新版本的组合进行存储(步骤S1707)。例如, 该处理由确定部503来进行,确定部503将这类可更新版本的组合存储于图3中所示的RAM 308和HDD 309中。之后,再次执行步骤S 1706中的处理。另一方面,当在步骤S1706中不存在任何用于进一步更新的操作被保证的版本时 (步骤S1706中的否),处理确定所存储的版本的组合中是否存在任何到达指定版本的组合 (步骤S1708)。更具体地说,确定部503对步骤S1705和步骤S1707中所存储的各组合进 行检查,以确定是否存在能够从当前版本更新到指定版本的组合。当在步骤S1708中确定所存储的版本的组合中存在任何到达指定版本的组合时 (步骤S1708中的是),选择以最少的更新方式到达指定版本的组合(步骤S1709)。例如, 假设存在四个操作被保证的更新,即,从版本1. 0到2. 0、版本2. 0到2. 5、版本2. 5到3. 0、 版本2. 0到3. 0。假设图像形成装置的当前版本是版本1. 0,则存在两种用于将图像形成装 置的版本从版本1. 0更新到3. 0的方式。第一种方式是,按顺序从版本1. 0更新到2. 0、从 版本2.0更新到2. 5以及从版本2. 5更新到3.0。第二种方式是,从版本1. 0更新到2. 0以 及从版本2.0更新到3.0。在此情况下,使用后面的(第二种)方式进行更新。该处理也由 确定部503来进行。之后,执行前述的步骤S1703中的处理。当在上述步骤S1704中确定不存在用于从当前版本进行更新的操作被保证的版本时(步骤S1704中的否),确定部确定不能够进行自动更新(步骤S1710)。更具体地说, UI控制部501对设置画面进行控制,以使得用户不能选择“自动”固件更新定时。当在上述 步骤S1708中确定所存储的版本的组合中不存在到达指定版本的组合时(步骤S1708中的 否),以同样的方式来执行步骤S1710中的处理。接下来,将对用于固件更新装置103、104和105执行的固件更新的调度设置处理的过程进行描述。图18是示出了用于固件更新装置103、104和105执行的固件更新的调度设置处理的过程的流程图。在图7中所示的OK按钮706被按下时开始以下处理。在图18中所示的流程图中,首先,确定是否选择了自动更新(步骤S1801)。此处, 图5中所示的更新调度控制部502参照要用UI控制部501进行控制的UI设置(例如,表 示图7中所示的应用定时设置的双态按钮704的状态),来确定是否选择了自动更新。当在步骤S1801中选择了自动更新时(步骤S1801中的是),进行调度设置以使得 操作被保证的更新被重复多次(步骤S1802)。更具体地说,更新调度控制部502对固件更 新步骤信息文件进行设置,以使得通过重复进行操作被保证的固件更新处理来执行固件更 新。然后,图5中所示的更新步骤保持部504对固件更新步骤信息文件进行存储。固件更 新步骤信息文件将在后面进行详细描述。另一方面,当在步骤S1801中未选择自动更新时(步骤S1801中的否),确定是否 选择了直接更新(步骤S1803)。此处,图5中所示的更新调度控制部502参照要用UI控 制部501进行控制的UI设置(例如,如图7中所示的表示设置是否是直接更新的双态按钮 705的状态),来确定是否选择了直接更新。此处,当未选择直接更新时(步骤S1803中的 否),进行前述的步骤S1802中的处理。另一方面,当在步骤S1803中选择了直接更新时(步骤S1803中的是),进行调度 设置以直接更新到指定版本(步骤S1804)。更具体地说,更新调度控制部502对固件更新 步骤信息文件进行设置,以直接更新到指定版本。然后,更新步骤保持部504对固件更新步 骤信息文件进行存储。此处,将对固件更新步骤信息文件进行详细描述。之后,将对从固件版本1. 0. 1向 固件版本3. 0. 1进行更新的实例进行描述。图19A是示出了更新定时被设置成“自动”的固件更新步骤信息文件的实例的图。 在该实例中,当更新定时是自动的时,布置调度以使得通过对操作被保证的更新进行重复 来进行版本更新。因此,首先应用版本ι. ι. 1并随后应用版本3. 0. 1。图19B是示出了更新定时被设置成“手动”的固件更新步骤信息文件的实例的图。 这是直接更新设置的实例。因此,虽然从版本1. 0. 1到版本3. 0. 1的更新不是操作被保证 的,也布置调度以使得直接更新到版本3. 0. 1。接下来,将对固件更新装置103、104和105执行的固件更新处理的过程进行描述。 图20是示出了固件更新装置103、104和105执行的固件更新处理的过程的流程图。在图20所示的流程图中,首先,获取更新步骤信息(步骤S2101)。更具体地说,图 5中所示的更新处理部505从更新步骤保持部504所保持的固件更新步骤信息文件获取要 更新的固件版本信息。接下来,请求要更新的固件版本(步骤S2102)。此处,更新处理部505经由通信控 制部506发送针对固件分发服务器101的要更新的固件版本的发送请求。接下来,接收要更新的固件版本(步骤S2103)。此处,更新处理部505经由通信控 制部506接收从固件分发服务器101发送的要更新的固件版本。应当注意的是,所接收的 固件可以暂时被存储于存储单元(例如,图3中所示的RAM 306等)中。然后,确定是否成功接收了固件(步骤S2104)。该确定由更新处理部505来进行。 此处,当未成功接收到固件时(步骤S2104中的否),显示错误画面(步骤S2105)。例如,UI控制部501在图3中所示的显示部311上显示用于表示出现了接收错误的画面。另一方面,当在步骤S2104中成功接收了固件时(步骤S2104中的是),确定固件 自动更新是否有效(步骤S2106)。该确定由更新处理部505来进行,更新处理部505参照固 件更新步骤信息文件来确定自动更新是否有效。此处,当固件自动更新不是有效的时(步 骤S2106中的否),立即结束处理。另一方面,当在步骤S2106中固件自动更新已有效时(步骤S2106中的是),重启固件更新装置(步骤S2107)。随后,将对由固件更新装置103、104和105执行的固件更新确认处理的过程进行 描述。图21是示出了固件更新装置103、104和105执行的固件更新确认处理的过程的流 程图。在固件更新装置103、104和105重启(图20中所示的步骤S2107中的处理)之后 执行以下处理。在图21所示的流程图中,首先,确定是否存在所下载的固件文件(步骤S2201)。 该处理由更新处理部505来进行。此处,当不存在所下载的固件文件时(步骤S2201中的 否),立即结束处理。另一方面,当在步骤S2201中存在所下载的固件文件时(步骤S2201中的是),读 取更新步骤信息(步骤S2202)。更具体地说,更新处理部505读取与固件文件对应的并且 由更新步骤保持部504所保持的固件更新步骤信息文件。接下来,确定作为处理对象的固件是否是可自动更新的(步骤S2203)。更具体地 说,更新处理部505参照步骤S2202中所读取的固件更新步骤信息文件,来确定要更新的固 件是否是可自动更新的。此处,当作为处理对象的固件不是可自动更新的时(步骤S2203 中的否),立即结束处理。另一方面,当在步骤S2203中作为处理对象的固件是可自动更新的时(步骤S2203 中的是),进行固件展开处理(步骤S2204)。更具体地说,更新处理部505基于步骤S2202 中所读取的固件更新步骤信息文件的进展状况信息,来进行固件展开处理。接下来,对进展状况信息进行更新(步骤S2205)。此处,更新调度控制部502基于 固件更新处理的进展状况,来对固件更新步骤信息文件的进展状况信息进行更新。然后,确定是否存在剩余步骤(步骤S2206)。更具体地说,更新处理部505确定是 否存在要进行进一步更新处理的固件。此处,当存在剩余步骤时(步骤S2206中的是),重 启固件更新装置(步骤S2207)。另一方面,当在步骤S2206中不存在剩余步骤时(步骤S2206中的否),删除任何 不必要的文件(步骤S2208)。该处理由更新处理部505来进行。术语“不必要的文件”是 指在进一步的处理中不使用的文件,包括与在固件更新完成之后不再是可应用的固件对应 的固件更新步骤信息文件。在该处理之后,处理进入到步骤S2207。最后,将描述接收到来自固件更新装置103、104和105的固件分发请求时固件分 发服务器101的处理过程。图22是示出了当接收到固件分发请求时固件分发服务器101 的处理过程的流程图。在图22所示的流程图中,首先,接收固件分发请求(步骤S2301)。例如,该处理由 图4中所示的通信控制部401来进行。接下来,检查是否存在所请求的固件(步骤S2302)。更具体地说,图4中所示的固件发送控制部404从服务器的存储单元(例如,图2中所示的第一 HDD 205等)中检查是 否存在所请求的固件。此处,当存在所请求的固件时(步骤S2302中的是),发送所请求的 固件(步骤S2303)。更具体地说,固件发送控制部404将相关固件经由通信控制部401发 送给请求源(固件更新装置103等)。另一方面,当步骤S2302中不存在所请求的固件时(步骤S2302中的否),发送错 误出现信息(步骤S2304)。更具体地说,固件发送控制部404将表示没有相关固件的错误 出现信息经由通信控制部401发送给请求源(固件更新装置103等)。如上所述,根据本实施例,无需给用户增加任何负担就能够有效且可靠地进行固 件更新处理。例如,当操作被保证的更新仅对“从版本1到版本2的更新”或者“从版本2 到版本3的更新”可行时,可以进行从版本1到版本3的自动更新。此外,当手动进行固件更新时,可以进行直接到指定版本的更新,从而使得固件更 新操作所用的时间减少。为了简化对本发明实施例的描述,没有例示针对固件分发请求的认证处理。然而, 当然,可以仅处理来自已认证的请求源的请求。此外,通过仅以实施本发明的实例的方式对 以上实施例进行了具体的例示,然而,显然对本发明技术范围的解释不限于上述实施例的 描述。换言之,本发明可以允许不背离本发明的主要范围的各种变形。(其它实施例)本发明的各方面还可以通过用于读取和执行记录在存储设备上的程序以执行上 述实施例的功能的系统或装置的计算机(或者诸如CPU或MPU的设备)、以及通过其步骤由 系统或装置的计算机(例如,用于读取和执行记录在存储设备上的程序以执行上述实施例 的功能的系统或装置的计算机)执行的方法来实现。为此,经由网络或者从用作存储设备 的各种类型的记录介质(例如,计算机可读介质)将程序提供给计算机。虽然参照示例性实施例对本发明进行了描述,但是应当理解,本发明不限于所公 开的示例性实施例。应当对所附权利要求的范围给予最宽的解释,以涵盖所有这类变形例 以及等同结构和功能。本申请要求2009年2月25日提交的日本专利申请No. 2009-042571的优先权,其 全部内容经引用并入本文。
权利要求
一种方法,该方法包括以下步骤指定要更新的固件版本;确定是否能够进行从当前固件版本到所指定的固件版本的直接更新;如果确定不能进行到所指定的固件版本的所述直接更新,则确定通过另一版本更新的介入是否能够进行到所指定的固件版本的更新;以及如果确定通过所述另一版本更新的介入能够进行从所述当前固件版本到所指定的固件版本的更新,则通过所述另一版本更新的介入来执行到所指定的固件版本的更新。
2.根据权利要求1所述的方法,其中,从外部装置接收与能够从所述当前固件版本直 接更新的版本相关的信息,并且所述更新确定步骤基于所接收到的信息来确定是否能够进 行一次性更新。
3.根据权利要求2所述的方法,该方法还包括以下步骤选择在无需等待更新开始指令的情况下将固件版本更新到所指定的固件版本的自动 更新,其中,如果选择了所述自动更新,则下载指定固件的版本,以通过使用下载的固件来执 行固件更新。
4.根据权利要求3所述的方法,其中,如果确定即使通过所述另一版本更新的介入也 不能进行从所述当前固件版本到所指定的固件版本的更新,则下载所指定的固件版本,以 不执行到所下载的固件版本的更新。
5.根据权利要求4所述的方法,其中,如果确定通过所述另一版本更新的介入能够进 行从所述当前固件版本到所指定的固件版本的更新,则选择通过所述另一版本更新的介入 进行从所述当前固件版本到所指定的固件版本的更新,或者选择在无需所述另一版本更新 的介入的情况下进行从所述当前固件版本到所指定的固件版本的更新,以按照所选择的更 新方法执行到所指定的固件版本的更新。
6.根据权利要求5所述的方法,其中,即使确定通过所述另一版本更新的介入能够进 行从所述当前固件版本到所指定的固件版本的更新,但是如果未选择所述自动更新,则在 无需所述另一版本更新的介入的情况下进行从所述当前固件版本到所指定的固件版本的 更新。
7.根据权利要求1所述的方法,其中,如果存在多种用于通过所述另一版本更新的介 入将固件更新到指定版本的方法,则所述更新步骤利用更新次数最少的方法来进行更新。
8.一种装置,该装置包括指定单元,其被构造为指定要更新的固件版本;更新确定单元,其被构造为确定是否能够进行从当前固件版本到所指定的固件版本的 直接更新;确定单元,其被构造为如果确定不能进行到所指定的固件版本的所述直接更新,则确 定通过另一版本更新的介入是否能够进行到所指定的固件版本的更新;以及更新单元,其被构造为如果确定通过所述另一版本更新的介入能够进行从所述当前固 件版本到所指定的固件版本的更新,则通过所述另一版本更新的介入来执行到所指定的固 件版本的更新。
9.根据权利要求8所述的装置,其中,从外部装置接收与能够从所述当前固件版本直接更新的版本有关的信息,并且所述更新确定单元基于所接收到的信息来确定是否能够进 行一次性更新。
10.根据权利要求9所述的装置,该装置还包括选择单元,其被构造为选择在无需等待更新开始指令的情况下将固件版本更新到所指 定的固件版本的自动更新,其中,如果选择了所述自动更新,则下载指定固件的版本,以通过使用下载的固件来执 行固件更新。
11.根据权利要求10所述的装置,其中,如果确定即使通过所述另一版本更新的介入 也不能进行从所述当前固件版本到所指定的固件版本的更新,则下载所指定的固件版本, 以不执行到所下载的固件版本的更新。
12.根据权利要求11所述的装置,其中,如果确定通过所述另一版本更新的介入能够 进行从所述当前固件版本到所指定的固件版本的更新,则选择通过所述另一版本更新的介 入进行从所述当前固件版本到所指定的固件版本的更新,或者选择在无需所述另一版本更 新的介入的情况下进行从所述当前固件版本到所指定的固件版本的更新,以按照所选择的 更新方法执行到所指定的固件版本的更新。
13.根据权利要求12所述的装置,其中,即使确定通过所述另一版本更新的介入能够 进行从所述当前固件版本到所指定的固件版本的更新,但是如果未选择所述自动更新,则 在无需所述另一版本更新的介入的情况下进行从所述当前固件版本到所指定的固件版本 的更新。
14.根据权利要求8所述的装置,其中,如果存在多种用于通过所述另一版本更新的 介入将固件更新到指定件版本的方法,则所述更新单元利用更新次数最少的方法来进行更新。
全文摘要
本发明涉及固件更新装置及固件更新方法。本发明所公开的方法包括以下步骤指定要更新的固件版本;确定是否能够进行从当前固件版本到所指定的固件版本的直接更新;如果确定不能进行到所指定的固件版本的所述直接更新,则确定通过另一版本更新的介入是否能进行到所指定的固件版本的更新;以及如果确定通过所述另一版本更新的介入能够进行从所述当前固件版本到所指定的固件版本的更新,则通过所述另一版本更新的介入来执行到所指定的固件版本的更新。
文档编号H04N1/00GK101815151SQ201010123058
公开日2010年8月25日 申请日期2010年2月25日 优先权日2009年2月25日
发明者坂井克也 申请人:佳能株式会社