JP2007087133A - Update technology of firmware - Google Patents
Update technology of firmware Download PDFInfo
- Publication number
- JP2007087133A JP2007087133A JP2005275531A JP2005275531A JP2007087133A JP 2007087133 A JP2007087133 A JP 2007087133A JP 2005275531 A JP2005275531 A JP 2005275531A JP 2005275531 A JP2005275531 A JP 2005275531A JP 2007087133 A JP2007087133 A JP 2007087133A
- Authority
- JP
- Japan
- Prior art keywords
- firmware
- update
- data
- update data
- header
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
- Stored Programmes (AREA)
Abstract
Description
この発明は、ファームウェアを更新する技術に関する。 The present invention relates to a technique for updating firmware.
スキャナ・プリンタ・コピー複合機(以下、単に「複合機」と呼ぶ)やルータ等の装置では、複合機やルータとしての機能を実現するため、これらの装置が備える中央処理装置がROMに格納された制御ソフトウェア(コンピュータプログラム)を実行する。このような制御ソフトウェア(「ファームウェア」と呼ばれる)は、装置の機能の改良等のため更新される場合がある。 In devices such as scanners, printers and copiers (hereinafter simply referred to as “multifunction devices”) and routers, the central processing units of these devices are stored in ROM in order to realize functions as multifunction devices and routers. Control software (computer program). Such control software (referred to as “firmware”) may be updated to improve the function of the apparatus.
ところで、ファームウェアが格納されるROMが複数ある場合、個々のROMに格納されたファームウェアの更新はROMごとに実行される。そのため、複数のROMを更新する際、個々のROMごとにファームウェア更新のための更新データを準備し、その更新データによるファームウェアの更新が必要となる場合があった。この場合、ユーザには、ROMごとの更新データの準備とファームウェアの更新の操作が要求されるために、ユーザによる操作が煩雑になる場合がある。この問題は、ファームウェアが複数のROMに格納されている場合に限らず、一般に、ファームウェアが複数の領域に格納されている場合に共通する。 By the way, when there are a plurality of ROMs in which firmware is stored, updating of the firmware stored in each ROM is executed for each ROM. For this reason, when updating a plurality of ROMs, update data for firmware update is prepared for each ROM, and it is sometimes necessary to update the firmware using the update data. In this case, since the user is required to prepare update data for each ROM and update the firmware, the operation by the user may be complicated. This problem is not limited to the case where firmware is stored in a plurality of ROMs, but is generally common when the firmware is stored in a plurality of areas.
本発明は、上述した従来の課題を解決するためになされたものであり、複数の領域に格納されているファームウェアの更新をより容易にする技術を提供することを目的とする。 The present invention has been made to solve the above-described conventional problems, and an object thereof is to provide a technique that makes it easier to update firmware stored in a plurality of areas.
上記目的の少なくとも一部を達成するために、本発明のファームウェア更新方法は、別個に更新可能なN個(Nは2以上の整数)のファームウェア格納領域を備える装置のファームウェアを更新する方法であって、前記ファームウェア更新方法は、前記N個のファームウェア格納領域のうちのM個(Mは1以上N以下の整数)のファームウェア格納領域のためのM個の個別更新データを含み、前記M個の個別更新データが連続したデータとして構成されている統合更新データのうちの各個別更新データを1つずつ順次受信する個別受信モードを含み、前記個別受信モードは、(a)前記統合更新データのうちの先頭から順に、1つのファームウェア格納領域の更新のために必要な更新データ部分までを外部から受信した後に、後続の更新データの受信を停止する工程と、(b)前記受信した更新データ部分を用いて、前記1つのファームウェア格納領域の更新を実行する工程と、(c)前記1つのファームウェア格納領域の更新の完了後に、前記後続の更新データの受信を再開する工程と、(d)上記工程(a)ないし(c)を、前記統合更新データに含まれている更新ファームウェアの数Mに応じて繰り返す工程と、を備えることを特徴とする。 In order to achieve at least a part of the above object, a firmware update method of the present invention is a method for updating firmware of a device having N firmware storage areas (N is an integer of 2 or more) that can be updated separately. The firmware update method includes M individual update data for M firmware storage areas (M is an integer of 1 to N) of the N firmware storage areas, An individual reception mode for sequentially receiving each piece of individual update data among the pieces of integrated update data configured as continuous data. The individual reception mode includes: (a) After receiving from the outside up to the update data part necessary for updating one firmware storage area in order from the beginning of the next update data (B) executing the update of the one firmware storage area using the received update data part, and (c) after completing the update of the one firmware storage area, Resuming reception of the subsequent update data, and (d) repeating the steps (a) to (c) according to the number M of update firmware included in the integrated update data. It is characterized by that.
この構成によれば、M個のファームウェア格納領域のそれぞれを、単一の統合更新データにより更新することができるので、複数の領域に格納されているファームウェアの更新がより容易となる。 According to this configuration, since each of the M firmware storage areas can be updated with a single integrated update data, it is easier to update firmware stored in a plurality of areas.
前記M個の個別更新データのそれぞれは、対応するファームウェア格納領域に格納されるファームウェアデータと、前記ファームウェアデータに関する情報を有するファームウェアヘッダと、を含むものとしても良い。 Each of the M pieces of individual update data may include firmware data stored in a corresponding firmware storage area, and a firmware header having information on the firmware data.
この構成によれば、M個の個別更新データのそれぞれにファームウェアデータに関する情報が格納することができる。そのため、M個の個別更新データを結合させることで統合更新データが生成できるので、統合更新データの生成がより容易となる。 According to this configuration, information regarding firmware data can be stored in each of the M pieces of individual update data. Therefore, since integrated update data can be generated by combining M pieces of individual update data, it is easier to generate integrated update data.
前記工程(a)は、前記ファームウェアヘッダを含むデータを外部から受信する工程と、前記受信したデータに含まれるファームウェアヘッダに基づいて、前記更新データ部分を受信する工程と、を含むものとしても良い。 The step (a) may include a step of receiving data including the firmware header from the outside, and a step of receiving the update data portion based on the firmware header included in the received data. .
この構成によれば、M個の個別更新データのそれぞれに1つのファームウェア格納領域の更新のために必要な更新データ部分を指定する情報を格納することができるので、統合更新データの生成がより容易となる。 According to this configuration, information for designating an update data portion necessary for updating one firmware storage area can be stored in each of the M pieces of individual update data, so that it is easier to generate integrated update data. It becomes.
前記工程(b)は、前記受信した更新データ部分に含まれるファームウェアヘッダに基づいて、更新する前記1つのファームウェア格納領域を決定する工程を含むものとしても良い。 The step (b) may include a step of determining the one firmware storage area to be updated based on a firmware header included in the received update data portion.
この構成によれば、ファームウェアヘッダに基づいて決定されたファームウェア格納領域が対応するファームウェアデータにより更新されるので、ファームウェアの更新をより確実に行うことができる。 According to this configuration, the firmware storage area determined based on the firmware header is updated with the corresponding firmware data, so that the firmware can be updated more reliably.
前記ファームウェア更新方法は、さらに、前記統合更新データの全体を受信した後、前記M個のファームウェア格納領域を更新する全体受信モードを含み、前記個別受信モードと前記全体受信モードのうちの一方を、前記装置内で利用可能な一時メモリ量に応じて選択するものとしても良い。 The firmware update method further includes an overall reception mode in which the M firmware storage areas are updated after receiving the whole of the integrated update data, and one of the individual reception mode and the overall reception mode, The selection may be made according to the amount of temporary memory available in the device.
この構成によれば、一時メモリの使用量が少ない個別受信モードと、統合更新データの受信に要する時間が短い全体受信モードと、を装置内で利用可能な一時メモリ量に応じて選択することができるので、ファームウェアの更新をより適切に行うことができる。 According to this configuration, it is possible to select the individual reception mode in which the amount of temporary memory used is small and the overall reception mode in which the time required to receive integrated update data is short according to the amount of temporary memory available in the apparatus. Therefore, the firmware can be updated more appropriately.
なお、本発明は、種々の態様で実現することが可能であり、例えば、ファームウェアを備える装置、その装置のファームウェア更新装置、方法およびシステム、それらの装置、方法またはシステムの機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の態様で実現することができる。 The present invention can be realized in various modes, for example, a device including firmware, a firmware update device, a method and a system of the device, and a function of the device, the method or the system. The present invention can be realized in the form of a computer program, a recording medium storing the computer program, a data signal including the computer program and embodied in a carrier wave, and the like.
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.システムの概要:
B.データ転送の制御:
C.ファームウェアの更新:
D.第2実施例:
E.変形例:
Next, embodiments of the present invention will be described in the following order based on examples.
A. System overview:
B. Data transfer control:
C. Firmware update:
D. Second embodiment:
E. Variation:
A.システムの概要:
図1は、本発明の一実施例を適用するコンピュータシステム100の構成を示す説明図である。このコンピュータシステム100は、ユニバーサルプラグアンドプレイブリッジ(UPnPブリッジ)200に、パーソナルコンピュータ110と、スキャナ・プリンタ・コピー複合機(MFP)120と、が接続されている。ここで、UPnPブリッジとは、ネットワーク処理機能を持たない装置を接続し、接続された装置の機能をユニバーサルプラグアンドプレイ(Universal Plug and Play:UPnPは、UPnP Implementers Corporationの商標)におけるサービスとしてネットワークに提供するネットワーク装置をいう。
A. System overview:
FIG. 1 is an explanatory diagram showing the configuration of a
UPnPブリッジ200は、ネットワークユニット300と、デバイスユニット400と、ネットワークユニット300およびデバイスユニット400に電力を供給する電源回路210と、を備えている。
The UPnP
ネットワークユニット300は、中央制御部(CPU)310と、RAM320と、ROM330と、ネットワーク制御部340と、USBホスト制御部350とを有している。ROM330には、ネットワークユニット300の制御ソフトウェア(「ファームウェア」と呼ばれる)が格納されている。中央制御部310は、このファームウェアを実行することにより、ネットワークユニット300が有する種々の機能を実現する。
The
ネットワーク制御部340は、コネクタ342を介して有線ネットワークに接続される。USBホスト制御部350は、ルートハブ352を有しており、ルートハブ352には2つのUSBコネクタ354,356が設けられている。第1のUSBコネクタ354は、USBケーブルを介してデバイスユニット400のUSBコネクタ462に接続されている。第2のUSBコネクタ356には、追加のデバイス(例えば無線LANネットワークへ通信するための無線通信回路や他のデバイスユニット)を接続可能である。
The network control unit 340 is connected to a wired network via the
デバイスユニット400は、中央制御部(CPU)410と、RAM420と、2つのROM430,440と、2つのUSBデバイス制御部450,460と、操作パネル制御部470と、表示制御部480と、USBホスト制御部490と、電源回路210を制御する電源制御部500とを有している。
The
2つのROM430,440のそれぞれには、デバイスユニット400のファームウェアが格納されている。中央制御部410は、これら2つのROM430,440に格納されたファームウェアを実行することにより、デバイスユニット400が有する種々の機能を実現する。なお、ROM430,440として、フラッシュメモリ等の電気的に書換が可能なROMを使用することにより、デバイスユニット400のファームウェアを更新することができる。
The firmware of the
デバイスユニット400の第1のUSBデバイス制御部450は、USBコネクタ452を介してネットワークユニット300のUSBホスト制御部350に接続されている。第2のUSBデバイス制御部460は、USBコネクタ462を有している。本実施例では、ファームウェア更新のためUSBコネクタ462にパーソナルコンピュータ110が接続されているが、一般に、USBコネクタ462には、任意のUSBホストを接続することが可能である。
The first USB
操作パネル制御部470には、入力手段としての操作パネル472が接続されている。表示制御部480には、表示部482が接続されている。ユーザは、表示部482が有する液晶表示器やLED表示器等によるUPnPブリッジの状態表示に応じて操作パネル472を操作することにより、種々の指示を入力することができる。
An
USBホスト制御部490は、ルートハブ492を有しており、ルートハブ492にはUSBコネクタ494が設けられている。本実施例では、このUSBコネクタ494にスキャナ・プリンタ・コピー複合機120が接続されているが、USBコネクタ494には、スキャナやプリンタやマスストレージなどの単一の機能を提供可能なUSBデバイスや、複数の機能を提供可能な多機能複合周辺機器等の任意のUSBデバイスを接続することが可能である。
The USB
デバイスユニット400のファームウェアを更新する場合、ユーザは、デバイスユニット400をファームウェア更新モードで起動する。デバイスユニット400は、例えば、ユーザが操作パネル472の特定のボタンを押しながらUPnPブリッジ200の電源を投入することによりファームウェア更新モードで起動する。このとき、中央制御部410は、ファームウェア更新モードの制御を実行するためのファームウェア更新ソフトウェアをRAM420に格納し、RAM420に格納されたファームウェア更新ソフトウェアを実行する。ファームウェア更新ソフトウェアの実行により、デバイスユニット400の中央制御部410は、ファームウェア更新処理部としての機能を実現する。なお、本実施例では、中央制御部410がRAM420に格納されたファームウェア更新ソフトウェアを実行するものとしているが、実行されるファームウェア更新ソフトウェアは、ファームウェア更新の対象とならないROM(図示しない)に格納されたものであっても良い。
When updating the firmware of the
デバイスユニット400のファームウェア更新モードでの起動の後、ユーザは、パーソナルコンピュータ110上でファームウェア更新用のアプリケーションを起動する。起動されたファームウェア更新アプリケーションにより、USBコネクタ462に接続されたパーソナルコンピュータ110からファームウェア更新のための更新データがデバイスユニット400に送信される。なお、送信される更新データは、予めパーソナルコンピュータ110が備える外部記憶装置(図示しない)に格納されている。
After the
図2は、ファームウェア更新に関する機能の階層構造を示すブロック図である。図2に示すように、パーソナルコンピュータ110とデバイスユニット400との間には、種々の通信チャンネルが設けられている。これらは、パーソナルコンピュータ110とデバイスユニット400の同一階層間における論理的な接続を示している。
FIG. 2 is a block diagram showing a hierarchical structure of functions related to firmware update. As shown in FIG. 2, various communication channels are provided between the
パーソナルコンピュータ110は、ファームウェア更新アプリケーション1000から供給されるデータを、D4プロトコルの論理チャンネル(UPDATE-CONTROLおよびUPDATE-DATA)を介してデバイスユニット400に転送するD4プロトコル処理部1100を有している。なお、D4プロトコルとは、IEEE1284.4に規定されたパケット(D4パケット)を用いた通信プロトコルである。
The
D4プロトコル処理部1100よりも下部の階層には、下から順番に、USBホストインタフェース(ハードウェア)と、USBシステムソフトウェアと、プリンタクラスのクライアントソフトウェアとが設けられている。 A USB host interface (hardware), USB system software, and printer class client software are provided in the hierarchy below the D4 protocol processing unit 1100 in order from the bottom.
デバイスユニット400のD4プロトコル処理部2100は、D4プロトコルの論理チャンネルを介して転送された更新データをファームウェアの更新処理を実行するファームウェア更新処理部2000に供給する。D4プロトコル処理部2100よりも下部の構造としては、下から順番に、USBデバイスインタフェース(ハードウェア)と、USB論理デバイスと、プリンタクラス論理インタフェースとが設けられている。
The D4 protocol processing unit 2100 of the
B.データ転送の制御:
図3(a)は、D4プロトコル処理部1100,2100間で転送されるD4パケットの構成を示す説明図である。このD4パケットを転送することにより、D4プロトコル処理部1100,2100間では、D4プロトコルで規定されたコマンド(D4コマンド)の転送と、データの転送が行われる。
B. Data transfer control:
FIG. 3A is an explanatory diagram showing a configuration of a D4 packet transferred between the D4 protocol processing units 1100 and 2100. By transferring the D4 packet, a command (D4 command) defined by the D4 protocol and data transfer are performed between the D4 protocol processing units 1100 and 2100.
D4パケットは、6バイトのヘッダ(D4ヘッダ)とボディ部分とを有している。D4ヘッダは、プライマリソケットID(PSID)と、セカンダリソケットID(SSID)と、パケット長と、制御情報とを含んでいる。D4ヘッダのパケット長には、D4ヘッダを含むD4パケット全体の長さが登録される。制御情報には、D4プロトコルにおけるデータの伝送制御を行うための情報が登録される。ボディ部分のデータには、D4コマンドとそのパラメータや、D4コマンドに対する応答(Reply)や、転送されるデータが格納される。 The D4 packet has a 6-byte header (D4 header) and a body part. The D4 header includes a primary socket ID (PSID), a secondary socket ID (SSID), a packet length, and control information. In the packet length of the D4 header, the length of the entire D4 packet including the D4 header is registered. In the control information, information for performing data transmission control in the D4 protocol is registered. The data of the body part stores a D4 command and its parameters, a response (Reply) to the D4 command, and data to be transferred.
D4コマンドの転送を行う場合、プライマリソケットIDとセカンダリソケットIDとのそれぞれには、ボディ部分のデータがD4コマンドであることを表す0が登録される。一方、データ転送を行う場合、プライマリソケットIDとセカンダリソケットIDとには、図2に示す論理チャンネルを識別する論理チャンネルIDが設定される。データ転送の際に設定される論理チャンネルIDには、D4コマンドの転送と区別するため、0でない値が使用される。 When transferring the D4 command, 0 representing that the data of the body part is the D4 command is registered in each of the primary socket ID and the secondary socket ID. On the other hand, when data transfer is performed, a logical channel ID for identifying the logical channel shown in FIG. 2 is set in the primary socket ID and the secondary socket ID. For the logical channel ID set at the time of data transfer, a value other than 0 is used to distinguish it from the transfer of the D4 command.
D4プロトコルにおいては、データ転送のためのD4パケット(以下、単に「データパケット」とも呼ぶ)の転送に際し、データの受信側が送信側に対して転送可能なデータパケット数(「クレジット数」と呼ばれる)を通知する。これにより、送信側は、クレジット数までのデータパケットを受信側に送信することができる。このように、受信側から通知されたクレジット数により送信側の送信パケット数が設定されるので、受信側によるクレジット数の通知は、「クレジットの提供」とも呼ばれる。また、送信側の受信側に対するクレジット数の通知の要求は、「クレジットの要求」とも呼ばれる。 In the D4 protocol, when transferring a D4 packet for data transfer (hereinafter also simply referred to as “data packet”), the number of data packets (referred to as “credit number”) that the data receiving side can transfer to the transmitting side. To be notified. Thereby, the transmission side can transmit data packets up to the number of credits to the reception side. Thus, since the number of transmission packets on the transmission side is set based on the number of credits notified from the reception side, notification of the number of credits on the reception side is also referred to as “providing credits”. The request for notification of the number of credits to the receiving side on the transmission side is also referred to as “credit request”.
図3(b)は、クレジット要求で使用されるD4コマンドの一例を示している。図3(b)は、クレジット要求(CreditRequest)コマンドと呼ばれるD4コマンドである。このクレジット要求コマンドは、D4コマンドの送信側が受信側に対して、要求するクレジット数を指定し、受信側が受取可能なパケット数の通知を要求する。なお、クレジット要求コマンドを送信する際、D4ヘッダのプライマリソケットIDとセカンダリソケットIDには0が格納される。 FIG. 3B shows an example of the D4 command used in the credit request. FIG. 3B shows a D4 command called a credit request command. In this credit request command, the transmission side of the D4 command designates the number of credits requested to the reception side, and the reception side requests notification of the number of packets that can be received. When transmitting a credit request command, 0 is stored in the primary socket ID and secondary socket ID of the D4 header.
クレジット要求コマンドを転送するD4パケットのボディ部分は、図3(b)に示すように、クレジット要求コマンドであることを表すコマンド(Command)と、プライマリソケットIDと、セカンダリソケットIDと、要求クレジット数(Credit Requested)と、最大必要クレジット数(Maximum Outstanding Credit)と、を含んでいる。プライマリソケットIDと、セカンダリソケットIDと、要求クレジット数と、最大必要クレジット数とは、それぞれクレジット要求コマンドのパラメータとなっている。 As shown in FIG. 3B, the body part of the D4 packet for transferring the credit request command includes a command (Command) indicating a credit request command, a primary socket ID, a secondary socket ID, and the number of requested credits. (Credit Requested) and Maximum Required Credit (Maximum Outstanding Credit). The primary socket ID, secondary socket ID, requested credit number, and maximum required credit number are parameters of the credit request command.
クレジット要求コマンドのパラメータのうち、プライマリソケットIDとセカンダリソケットIDには、クレジット要求の対象となる論理チャンネルIDが指定される。要求クレジット数と最大必要クレジット数には、送信すべきデータの大きさや送信バッファの大きさ等に応じてその値を適宜設定することが可能である。また、これらの要求クレジット数と最大必要クレジット数とを特定の値に設定することにより、受信側に提供可能な最大量のクレジット数を提供することを要求する非制限クレジット(Unlimited Credit)モードのクレジット要求を行うことも可能である。なお、本実施例において、特にことわらないかぎり、クレジット要求は非制限クレジットモードのクレジット要求である。 Of the parameters of the credit request command, the primary socket ID and the secondary socket ID specify the logical channel ID that is the target of the credit request. The required credit number and the maximum required credit number can be appropriately set according to the size of data to be transmitted, the size of the transmission buffer, and the like. In addition, by setting these requested credits and the maximum required credits to specific values, the Unlimited Credit mode that requires the receiver to provide the maximum amount of credits that can be provided. It is also possible to make a credit request. In this embodiment, unless otherwise specified, the credit request is a credit request in an unrestricted credit mode.
図3(c)は、受信側がクレジット要求コマンドに対する応答(クレジット要求応答)を転送するD4パケットを示している。クレジット要求コマンドに対する応答を転送するD4パケットのボディ部分は、図3(c)に示すように、クレジット要求コマンドに対する応答であることを表すコマンドと、コマンドに対する結果を表すリザルト(Result)と、プライマリソケットIDと、セカンダリソケットIDと、提供クレジット数(Credit)と、を含んでいる。クレジット要求応答のD4パケットに含まれる、コマンドと、プライマリソケットIDと、セカンダリソケットIDとは、それぞれ図3(b)に示すクレジット要求コマンドのD4パケットに含まれるものに対応する。 FIG. 3C shows a D4 packet in which the receiving side transfers a response (credit request response) to the credit request command. As shown in FIG. 3C, the body portion of the D4 packet for transferring the response to the credit request command includes a command indicating a response to the credit request command, a result indicating the result of the command, a primary It includes a socket ID, a secondary socket ID, and the number of credits provided (Credit). The command, the primary socket ID, and the secondary socket ID included in the D4 packet of the credit request response respectively correspond to those included in the D4 packet of the credit request command shown in FIG.
図3(c)に示すクレジット要求応答のD4パケットに含まれるリザルトには、クレジット要求コマンドの成否を示すリザルトコードが登録される。また、クレジット要求応答のD4パケットに含まれる提供クレジット数は、受信側が送信側に対して通知する転送可能なデータパケット数である。 In the result included in the D4 packet of the credit request response shown in FIG. 3C, a result code indicating success or failure of the credit request command is registered. The number of provided credits included in the D4 packet of the credit request response is the number of transferable data packets notified from the receiving side to the transmitting side.
D4プロトコル処理部1100,2100(図2)よりも上位の階層で使用されるコマンド(上位コマンド)は、D4パケットのボディ部分に格納され、予め定められた特定の文字列を表すデータとして転送される。そのため、上位コマンドを転送するために、上位コマンドを転送するための論理チャンネルについてのクレジットの要求およびクレジットの提供が、上位コマンドの転送に先だって行われる。 Commands (upper commands) used in higher layers than the D4 protocol processing units 1100 and 2100 (FIG. 2) are stored in the body portion of the D4 packet and transferred as data representing a predetermined specific character string. The Therefore, in order to transfer the upper command, a request for credit and provision of credit for the logical channel for transferring the upper command are performed prior to the transfer of the upper command.
C.ファームウェアの更新:
図4は、デバイスユニット400(図1)のファームウェア更新に用いられる更新データ700の構成を示す説明図である。図4(a)に示すように、更新データ700は、第1のROM430(図1)に対応する第1のROMデータ710と、第2のROM440(図1)に対応する第2のROMデータ710と、を含んでいる。
C. Firmware update:
FIG. 4 is an explanatory diagram showing a configuration of
第1のROMデータ710は、第1のヘッダ712と、第1のROM430に格納される第1の格納データとを含んでいる。この第1のヘッダ712には、図4(b)に示すように、格納データが格納されるROMのデバイス番号(1)と、格納データのバージョン番号(1.23)と、格納データの大きさ(データサイズ=64M)と、格納データのチェックサム(C48A)とが、含まれている。
The
第2のROMデータ720は、第2のヘッダ722と、第2のROM440に格納される第2の格納データとを含んでいる。この第2のヘッダ722には、図4(b)に示すように、格納データが格納されるROMのデバイス番号(2)と、格納データのバージョン番号(2.32)と、格納データのデータサイズ(32M)と、格納データのチェックサム(4D58)とが、含まれている。
The
なお、第1と第2のROMデータ710,720は、それぞれ第1と第2のROM430,440の更新に使用されるデータであるので、個別更新データとも言うことができる。また、図4に示すように、更新データ700は、個別更新データである2つのROMデータが連続したデータとして構成されているので、統合更新データであるとも言うことができる。
Since the first and
図5は、デバイスユニット400(図1)により実行されるデバイスユニット400のファームウェア更新実行ルーチンを示すフローチャートである。
FIG. 5 is a flowchart showing a firmware update execution routine of the
ステップS100において、デバイスユニット400は、ファームウェア更新モードで起動する。デバイスユニット400は、上述のように、ユーザによる操作に従ってファームウェア更新ソフトウェアが実行されることにより、ファームウェア更新モードで起動する。
In step S100, the
ステップS200において、デバイスユニット400は、パーソナルコンピュータ110(図1)からデータ転送開始コマンドを受信するまで待機する。データ転送開始コマンドを受信した場合、制御はステップS300aに移される。一方、データ転送開始コマンドを受信していない場合、制御は戻され、デバイスユニット400がデータ転送開始コマンドを受信するまでステップS200が繰り返し実行される。
In step S200,
図6は、デバイスユニット400がパーソナルコンピュータ110からのデータ転送開始コマンドを受信する様子を示すシーケンス図である。図6の細い矢印は、D4コマンドとD4コマンドに対する応答を表している。図6の太い矢印は、UPDATE-CONTROLチャンネル(図2)によるデータの転送を表している。
FIG. 6 is a sequence diagram showing how the
ステップ[ST1]において、パーソナルコンピュータ110はデバイスユニット400に、UPDATE-CONTROLチャンネルについてクレジット要求を行う。デバイスユニット400は、ステップ[ST2]において、ステップ[ST1]のクレジット要求に対して1のクレジットを提供する。
In step [ST1], the
ステップ[ST3]において、パーソナルコンピュータ110は、UPDATE-CONTROLチャンネルを介して1つのD4パケットをデバイスユニット400に送信する。送信されるD4パケットのボディ部分には、データ転送の開始をデバイスユニット400に指示するコマンドが登録されている。
In step [ST3], the
ステップ[ST4]において、パーソナルコンピュータ110は、デバイスユニット400に対し1のクレジットを提供する。このクレジットの提供は、D4コマンドのクレジット提供コマンド(Credit)により行われる。デバイスユニット400は、ステップ[ST5]においてステップ[ST4]のクレジット提供コマンドに応答する。そして、ステップ[ST6]において、データ転送を開始可能であることを表すデータ(データ転送開始応答)がボディ部分に登録された1つのD4パケットを、UPDATE-CONTROLチャンネルを介してパーソナルコンピュータ110に送信する。
In step [ST4], the
図5のステップS300aにおいて、デバイスユニット400は、パーソナルコンピュータ110から、1つのROMデータを受信する。そして、受信したROMデータに含まれる格納データにより、対応するROMを更新する。本実施例では、図4に示すように、更新データ700の先頭のROMデータは、第1のROM430(図1)に対応する第1のROMデータ710となっている。そのため、ステップS300aにおいては、第1のROM430が第1のROMデータ710に含まれる第1の格納データ714により更新される。なお、ステップS300aにおけるROMデータの受信とROMの更新との詳細については、後述する。
In step S300a of FIG. 5, the
このステップS300aが実行されている間、デバイスユニット400は、パーソナルコンピュータ110にファームウェア更新の際に生じるエラーを伝達するため、ステータスをパーソナルコンピュータ110に送信する。
While step S300a is being executed, the
図7は、デバイスユニット400がパーソナルコンピュータ110にステータスを送信する様子を示すシーケンス図である。図7に示すシーケンスは、ステップ[SR3]で転送されるコマンドが、図6のステップ[ST3]のデータ転送開始コマンドからステータス確認コマンドに変更されている点と、ステップ[SR6]で転送される応答が、図6のステップ[ST6]のデータ転送開始の応答からステータスの回答に変更されている点で、図6に示すシーケンスと異なっている。他の点は、図6に示すシーケンスと同じである。
FIG. 7 is a sequence diagram showing how the
ステップ[SR3]において、パーソナルコンピュータ110は、ステータスを問い合わせるステータス確認コマンドがボディ部分に登録された1つのD4パケットをデバイスユニット400に送信する。デバイスユニット400は、ステップ[SR6]において、エラー発生の有無を表すデータ(ステータス回答)がボディ部分に登録された1つのD4パケットを、パーソナルコンピュータ110に送信する。
In step [SR3], the
図5のステップS300bにおいて、デバイスユニット400は、パーソナルコンピュータ110から、1つのROMデータを受信する。そして、受信したROMデータに含まれる格納データにより、対応するROMを更新する。このステップS300bでは、ステップS300aと同様の処理が実行される。そのため、ステップS30aは、省略することも可能である。
In step S300b of FIG. 5, the
本実施例では、図4に示すように、第1のROMデータ710に続くROMデータは、第2のROM440(図1)に対応する第2のROMデータ720となっている。そのため、ステップS300bにおいては、第2のROMデータ720に含まれる第2の格納データ724により第2のROM440が更新される。
In this embodiment, as shown in FIG. 4, the ROM data following the
図5のステップS400において、デバイスユニット400は、パーソナルコンピュータ110(図1)からデータ転送終了コマンドを受信するまで所定の時間待機する。データ転送終了コマンドは、更新データの全体の転送が終了した際にパーソナルコンピュータ110からデバイスユニットに送信される。デバイスユニット400が所定の時間内にデータ転送終了コマンドを受信した場合、ファームウェア更新実行ルーチンは終了する。一方、デバイスユニット400が所定の時間内にデータ転送終了コマンドを受信しなかった場合、制御はステップS300bに戻され、更新データに含まれる未転送のROMデータの受信とROMの更新が繰り返される。
In step S400 of FIG. 5, the
本実施例では、図4に示すように、更新データ700は、第1のROMデータ710と第2のROMデータ720とで構成されている。そのため、ステップS300bにおいて更新データ700の全体が転送されているので、パーソナルコンピュータ110は、デバイスユニット400にデータ転送終了コマンドを送信する。
In the present embodiment, as shown in FIG. 4, the
図8は、デバイスユニット400がパーソナルコンピュータ110からのデータ転送終了コマンドを受信する様子を示すシーケンス図である。図8に示すシーケンスは、ステップ[ED3]で転送されるコマンドが、図6のステップ[ST3]のデータ転送開始コマンドからデータ転送終了コマンドに変更されている点と、ステップ[ED6]で転送される応答が、図6のステップ[ST6]のデータ転送開始の応答からデータ転送終了の応答に変更されている点で、図6に示すシーケンスと異なっている。具体的には、転送されるD4パケットのボディ部分に登録される文字列が、データ転送開始コマンドおよびデータ転送開始の応答とは異なっている点で異なっている。他の点は、図6に示すシーケンスと同じである。
FIG. 8 is a sequence diagram showing how the
図9は、図6のステップS300aおよびステップS300bのそれぞれで実行されるヘッダ受信・解析ルーチンを示すフローチャートである。図10は、図6のステップS300aおよびステップS300bのそれぞれで実行される格納データ受信・ROM更新ルーチンを示すフローチャートである。デバイスユニット400は、図9に示すヘッダ受信・解析ルーチンと、図10に示す格納データ受信・ROM更新ルーチンとを、この順に順次実行する。図9に示すように、ヘッダ受信・解析ルーチンは、ヘッダ受信フェーズとヘッダ解析フェーズとの2つの工程からなっている。また、図10に示すように、格納データ受信・ROM更新ルーチンは、格納データ受信フェーズとROM更新フェーズとの2つの工程からなっている。
FIG. 9 is a flowchart showing a header reception / analysis routine executed in each of steps S300a and S300b of FIG. FIG. 10 is a flowchart showing a stored data reception / ROM update routine executed in each of steps S300a and S300b of FIG. The
図11は、デバイスユニット400が図9と図10に示す各ルーチンを実行する際に、パーソナルコンピュータ110とデバイスユニット400との間でデータが転送される様子を示すシーケンス図である。図11の細い矢印は、D4コマンドとD4コマンドに対する応答を表している。図11の太い矢印は、UPDATE-DATAチャンネル(図2)によるデータの転送を表している。
FIG. 11 is a sequence diagram showing how data is transferred between the
図9のステップS322において、デバイスユニット400は、パーソナルコンピュータ110からのクレジット要求に対して提供するクレジット数を1に設定する。提供クレジット数を1に設定することにより、デバイスユニット400は、ステップS324において1パケット分のデータを受信する。
In step S322 of FIG. 9, the
1パケット分のデータを受信すると、デバイスユニット400は、ステップS326において受信済みのデータサイズを更新する。そして、ステップS328において、更新された受信済みのデータサイズに基づいてヘッダ(図4)分のデータの受信が終了したか否かを判断する。ヘッダ分のデータの受信が終了したと判断した場合、制御はヘッダ解析フェーズのステップS342に移される。一方、ヘッダ分のデータの受信が終了していないと判断した場合、制御はステップS330に移される。
When receiving data for one packet, the
ステップS330では、デバイスユニット400が所定の待機時間T1(例えば、5秒)待機する。待機中にクレジット要求コマンドを受信した場合、制御はステップS324に戻される。そして、ヘッダ分のデータの受信が終了するまで、ステップS324からステップS330が繰り返し実行される。一方、所定の待機時間T1の間に、デバイスユニット400がクレジット要求コマンドを受信しなかった場合、制御はステップS332に移される。
In step S330, the
ステップS332において、デバイスユニット400は、パーソナルコンピュータ110とデバイスユニット400間のUSBを論理的に切断(以下、単に「切断」とも呼ぶ)し、パーソナルコンピュータ110にエラーの発生を通知する。そして、ファームウェア更新ルーチンを終了する。このUSBの切断により、パーソナルコンピュータ110は、エラーの発生を検知し、パーソナルコンピュータ110上で実行されていたファームウェア更新アプリケーションが終了する。
In step S332, the
ヘッダ受信フェーズでは、ステップS322において、提供クレジット数が1に設定される。そのため、パーソナルコンピュータ110とデバイスユニット400との間のデータの転送は、図11のヘッダ受信フェーズのシーケンスに示すように行われる。
In the header reception phase, the number of provided credits is set to 1 in step S322. Therefore, data transfer between the
ステップ[HR1]において、パーソナルコンピュータ110は、デバイスユニット400にUPDATE-DATAチャンネルについてのクレジット要求を行う。デバイスユニット400は、ステップ[HR2]において、ステップ[HR1]でのクレジット要求に対して、1のクレジットを提供する。パーソナルコンピュータ110は、ステップ[HR3]において、デバイスユニット400に提供されたクレジットに従って1パケット分のデータをUPDATE-DATAチャンネルを介して転送する。
In step [HR1], the
そして、デバイスユニット400によるヘッダ分のデータの受信が終了するまで、これらのステップ[HR1]ないし[HR3]は繰り返し実行され、デバイスユニット400は、ヘッダ分のデータを受信する。
These steps [HR1] to [HR3] are repeatedly executed until reception of data for the header by the
このように、ヘッダ受信フェーズにおいて、デバイスユニット400は、1パケットごとにデータを受信する。1パケットごとのデータの受信により、ヘッダ受信フェーズで受信されるデータの大きさは、ヘッダ712,722(図4)を含む格納データ714,724(図4)よりも小さくなる。そのため、ヘッダ受信フェーズとヘッダ解析フェーズにおけるRAM420の使用量を低減することができる。
Thus, in the header reception phase, the
図9のステップS342において、デバイスユニット400は、パーソナルコンピュータ110からのクレジット要求に対して提供するクレジット数を0に設定する。
In step S342 in FIG. 9, the
ステップS344において、デバイスユニット400は、ヘッダ受信フェーズで受信したヘッダを解析する。このヘッダの解析により、デバイスユニット400は、格納データの大きさ(格納データサイズ)や格納データのチェックサム等の情報を取得する。そして、ステップS344において、ヘッダが正しいものであるか否かを判断する。ヘッダが正しい場合、制御は格納データ受信・ROM更新ルーチンに移される。一方、ヘッダが正しくない場合、制御は、ステップS348に移される。なお、ヘッダが正しいか否かの判断は、例えば、ヘッダの形式が所定の形式となっているか否かで判断することができる。また、ヘッダそのもののチェックサムをヘッダに格納し、格納されたチェックサムと、受信したヘッダから生成したチェックサムとを比較することによって判断することも可能である。
In step S344, the
ステップS348において、デバイスユニット400は、ステータスによりエラーの発生をパーソナルコンピュータ110に通知し、ファームウェア更新ルーチンを終了する。ステータスによるエラーの発生の通知により、パーソナルコンピュータ110は、エラーの発生を検知し、パーソナルコンピュータ110上で実行されていたファームウェア更新アプリケーションが終了する。なお、ステータスによるエラーの発生の通知は、エラーの発生を通知するための特定の文字列を表すデータを、図7のシーケンスのステップ[SR6]でパーソナルコンピュータ110に送信することによって行うことができる。
In step S348, the
ヘッダ解析フェーズでは、ステップS342において、提供クレジット数が0に設定される。そのため、図11のヘッダ解析フェーズのシーケンスに示すように、ステップ[HA1]のクレジット要求に対して、ステップ[HA2]において0のクレジットが提供される。このように0のクレジットが提供されることにより、ヘッダ解析フェーズ中は、UPDATE-DATAチャンネルを介したデータの転送が行われない。 In the header analysis phase, the provided credit number is set to 0 in step S342. Therefore, as shown in the sequence of the header analysis phase of FIG. 11, in response to the credit request at step [HA1], 0 credit is provided at step [HA2]. By providing 0 credits in this way, data transfer via the UPDATE-DATA channel is not performed during the header analysis phase.
このように、ヘッダ解析フェーズにおいて、パーソナルコンピュータ110は、デバイスユニット400にデータを転送しない。そのため、ヘッダの解析中に転送されたデータによりデバイスユニット400が有するデータバッファが溢れ、ROMデータの転送が失敗する可能性を低減することができる。
Thus, in the header analysis phase, the
図10のステップS362において、デバイスユニット400は、パーソナルコンピュータ110からのクレジット要求に対して提供するクレジット数をN(Nは1以上の整数)に設定する。ここで、提供するクレジット数Nは、以下の式により算出される。
In step S362 of FIG. 10, the
N=(格納データサイズ−受信済格納データサイズ)/パケットデータサイズ N = (stored data size−received stored data size) / packet data size
提供クレジット数をNに設定することにより、デバイスユニット400は、ステップS364においてNパケット分のデータを受信する。
By setting the number of provided credits to N, the
Nパケット分のデータを受信すると、デバイスユニット400は、ステップS366において受信済みのデータサイズを更新する。そして、ステップS368において、更新された受信済みのデータサイズに基づいて格納データの受信が終了したか否かを判断する。格納データの受信が終了したと判断した場合、制御はROM更新フェーズのステップS382に移される。一方、格納データの受信が終了していないと判断した場合、制御はステップS370に移される。
Upon receiving data for N packets, the
ステップS370では、デバイスユニット400が所定の待機時間T2(例えば、20秒)待機する。待機中にクレジット要求コマンドを受信した場合、制御はステップS362に戻される。そして、格納データの受信が終了するまで、ステップS362からステップS370が繰り返し実行される。一方、所定の待機時間T2の間に、デバイスユニット400がクレジット要求コマンドを受信しなかった場合、制御はステップS372に移される。
In step S370, the
ステップS372において、デバイスユニット400は、パーソナルコンピュータ110とデバイスユニット400間のUSBを切断し、パーソナルコンピュータ110にエラーの発生を通知する。そして、ファームウェア更新ルーチンを終了する。このUSBの切断により、パーソナルコンピュータ110は、エラーの発生を検知し、パーソナルコンピュータ110上で実行されていたファームウェア更新アプリケーションが終了する。
In step S372, the
格納データ受信フェーズでは、ステップS362において、提供クレジット数がNに設定される。そのため、パーソナルコンピュータ110とデバイスユニット400との間のデータの転送は、図11の格納データ受信フェーズのシーケンスに示すように行われる。格納データ受信フェーズのシーケンスは、ステップ[RR2]で提供されるクレジット数が1からNに変わっている点と、ステップ[RR3]で送信されるデータが1パケット分のデータからNパケット分のデータに変わっている点と、でヘッダ受信フェーズのシーケンスと異なっている。他の点は、ヘッダ受信フェーズと同様であるので、ここではその説明を省略する。
In the stored data reception phase, the number of provided credits is set to N in step S362. For this reason, data transfer between the
図10のステップS382において、デバイスユニット400は、パーソナルコンピュータ110からのクレジット要求に対して提供するクレジット数を0に設定する。
In step S382 in FIG. 10, the
ステップS384において、デバイスユニット400は、格納データ受信フェーズで受信した格納データのチェックサムを算出する。そして、ステップS386において、算出したチェックサムと、図9のステップS344において取得されたヘッダに格納されたチェックサム(図4)と、を比較して、格納データが正しいか否かを判断する。格納データが正しい場合、制御はステップS388に移される。一方、格納データが正しくない場合、制御は、ステップS390に移される。
In step S384, the
ステップS388において、デバイスユニット400は、ヘッダに格納されたデバイス番号(図4)に対応するROMを受信した格納データにより更新する。ROMの更新は、ROMを一旦電気的に消去し、その後格納データを書き込むことによって行われる。ステップS388のROMの更新の後、格納データ受信・ROM更新ルーチンは終了し、図5のステップS300aもしくはステップS300bにおける処理は終了する。
In step S388, the
なお、本実施例では、ヘッダにデバイス番号を格納し、デバイス番号に対応するROMを更新するものとしているが、格納データの受信順序に対応するROMを更新するものとしても良い。但し、ヘッダのデバイス番号に対応するROMを更新する方が、更新の必要なROMが連続していない場合であっても、更新の必要なROMのROMデータ(ヘッダ+格納データ)の送信でファームウェアの更新ができるので、より好ましい。 In this embodiment, the device number is stored in the header and the ROM corresponding to the device number is updated. However, the ROM corresponding to the reception order of the stored data may be updated. However, if the ROM corresponding to the device number in the header is updated, even if the ROMs that need to be updated are not continuous, the ROM data (header + stored data) in the ROM that needs to be updated is transmitted. Can be updated, which is more preferable.
ステップS390において、デバイスユニット400は、ステータスによりエラーの発生をパーソナルコンピュータ110に通知し、ファームウェア更新ルーチンを終了する。ステータスによるエラーの発生の通知により、パーソナルコンピュータ110は、エラーの発生を検知し、パーソナルコンピュータ110上で実行されていたファームウェア更新アプリケーションが終了する。なお、ステータスによるエラーの発生の通知は、図9のステップS348と同様に行うことができる。
In step S390, the
ROM更新フェーズにおいても、ステップS382で提供クレジット数が0に設定される。そのため、図11のROM更新フェーズのシーケンスに示すように、ステップ[RU1]のクレジット要求に対して、ステップ[RU2]において0のクレジットが提供される。このように0のクレジットが提供されることにより、ROM更新フェーズ中は、UPDATE-DATAチャンネルを介したデータの転送が行われない。 Also in the ROM update phase, the number of credits provided is set to 0 in step S382. Therefore, as shown in the ROM update phase sequence of FIG. 11, in response to the credit request in step [RU1], 0 credit is provided in step [RU2]. By providing 0 credits in this way, data transfer via the UPDATE-DATA channel is not performed during the ROM update phase.
このように、ROM更新フェーズにおいて、パーソナルコンピュータ110は、デバイスユニット400にデータを転送しない。そのため、格納データのチェックサム算出中とROMの更新中に転送されたデータによりデバイスユニット400が有するデータバッファが溢れ、ROMデータの転送が失敗する可能性を低減することができる。
Thus, in the ROM update phase, the
このように第1実施例では、単一の更新データ700(図4)により、デバイスユニット400の2つのROM430,440(図1)に格納されたファームウェアを、それぞれの格納データ714,724(図4)を用いて更新することができる。また、デバイスユニット400は、2つのROM430,440に対応する格納データ714,724のそれぞれの格納データ全体を受信するごとに対応するROMを更新する。そのため、2つのROM430,440を更新するために、2つの格納データ714,724を全てを取得することが抑制されるので、2つの格納データ714,724を格納するために必要なRAM420の容量の増大を抑制することができる。
As described above, in the first embodiment, the firmware stored in the two
なお、第1実施例では、デバイスユニット400がヘッダの受信の後パーソナルコンピュータ110からのデータの転送を停止しているが、データの転送はヘッダとROMデータの双方を受信した後のみ停止するものとしても良い。一般に、データ転送の停止は、ROMの更新に先だって、デバイスユニット400が1つのROMの更新に必要な更新データの部分を取得した後に行うものすることが可能である。
In the first embodiment, the
D.第2実施例:
図12は、第2実施例においてファームウェア更新に用いられる更新データ700aの構成を示す説明図である。図12に示す更新データ700aは、第1のROMデータ710aの前に、ROMのデバイス数(2)と各格納データのデータサイズを含む全体ヘッダが付加されている点と、ROMデータ710a,720aに含まれるヘッダ712a,722aに各格納データのデータサイズが含まれていない点と、で図4に示す更新データ700と異なっている。他の点は、図4に示す第1実施例の更新データ700と同じである。
D. Second embodiment:
FIG. 12 is an explanatory diagram showing a configuration of
第2実施例では、更新データ700aの構成が第1実施例と異なっているため、図5のステップS200とステップS300aとの間に全体ヘッダを受信し、各格納データのデータサイズを取得するステップが付加される。また、図9のヘッダ解析フェーズのステップS344において、ヘッダを解析することによって取得されるデータから格納データのデータサイズが除かれる。その他は、第1実施例と同じ処理が行われる。なお、全体ヘッダの受信と、各格納データのデータサイズの取得は、図9のヘッダ受信・解析ルーチンと同様である。
In the second embodiment, since the configuration of the
第1実施例と同様に、第2実施例によっても、単一の更新データ700a(図4)により、デバイスユニット400の2つのROM430,440(図1)に格納されたファームウェアを、それぞれの格納データ714,724(図4)を用いて更新することができる。また、デバイスユニット400は、2つのROM430,440に対応する格納データ714,724のそれぞれの格納データ全体を受信するごとに対応するROMを更新する。そのため、2つのROM430,440を更新するために、2つの格納データ714,724の全てを取得することが抑制されるので、2つの格納データ714,724を格納するために必要なRAM420の容量の増大を抑制することができる。
Similar to the first embodiment, according to the second embodiment, the firmware stored in the two
E.変形例:
なお、この発明は上記実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
E. Variation:
In addition, this invention is not restricted to the said Example and embodiment, It can implement in a various aspect in the range which does not deviate from the summary, For example, the following deformation | transformation is also possible.
E1.変形例1:
上記各実施例では、D4プロトコルの論理チャンネルUPDATE-CONTROLを介するデータ転送により、ステータス等の授受を行っているが、これらのデータ転送の少なくとも一部を省略することもできる。この場合、デバイスユニット400(図1)からのエラーの発生の通知は、例えば、デバイスユニット400の表示部482に表示される。
E1. Modification 1:
In each of the above embodiments, status and the like are exchanged by data transfer via the D4 protocol logical channel UPDATE-CONTROL. However, at least a part of these data transfers can be omitted. In this case, the notification of the occurrence of an error from the device unit 400 (FIG. 1) is displayed on the
E2.変形例2:
上記各実施例では、パーソナルコンピュータ110(図1)とデバイスユニット400(図1)との間のデータの転送にD4プロトコルが使用されているが、他の任意のプロトコルによりデータの転送をするものとしても良い。一般的なデータ転送プロトコルでは、受信側から送信側にデータの転送の可否が通知されるので、これによりデバイスユニット400は、データ転送を停止させることができる。但し、受信するデータ量が個々のROMの更新に必要な大きさに抑制され、RAM420の容量をより小さくすることができるので、デバイスユニット400側でデータの転送量が制御可能なプロトコルでデータの転送を行うのがより好ましい。
E2. Modification 2:
In each of the above embodiments, the D4 protocol is used for data transfer between the personal computer 110 (FIG. 1) and the device unit 400 (FIG. 1), but the data is transferred by any other protocol. It is also good. In a general data transfer protocol, whether or not data transfer is possible is notified from the reception side to the transmission side, so that the
E3.変形例3:
上記各実施例では、デバイスユニット400は、2つのROMデータ710,720(図4)のそれぞれを受信するごとにデータ転送を停止し、受信したROMデータに対応するROM430,440(図1)を更新しているが、ROMの更新は、複数のROMデータの全てを受信した後に、受信した複数のROMデータによりそれぞれのROMを更新するものとしても良い。この場合、個々のROMデータを受信するごとにROMを更新する個別受信モードと、複数のROMデータの全てを受信した後にROMを更新する全体受信モードとは、例えば、利用可能なRAM420の量に応じて選択することができる。
E3. Modification 3:
In each of the above embodiments, the
E4.変形例4:
上記各実施例では、デバイスユニット400(図1)に接続されたパーソナルコンピュータ110(図1)から更新データを供給しているが、デバイスユニット400に供給する更新データは、他の方法により供給することも可能である。更新データは、例えば、有線ネットワークや無線ネットワークに接続されたコンピュータから、デバイスユニット400に接続されたネットワークユニット300(図1)を介して供給することも可能である。この場合、ネットワークユニット300は、ネットワークから転送されるメッセージに含まれる更新データを取得し、取得した更新データをデバイスユニット400に供給できればよい。例えば、ネットワークユニット300がHTTP(Hyper Text Transfer Protocol)サーバとしての機能を有していれば、ネットワークユニット300がネットワークに接続されたコンピュータによりPOSTされた更新データをデバイスユニット400に供給することにより、デバイスユニット400のファームウェアの更新が可能となる。
E4. Modification 4:
In each of the above embodiments, update data is supplied from the personal computer 110 (FIG. 1) connected to the device unit 400 (FIG. 1), but the update data supplied to the
E5.変形例5:
上記各実施例では、本発明のファームウェアの更新を2つのROM430,440を有するデバイスユニット400に適用しているが、一般に、ファームウェアが別個に更新可能な複数の領域に格納された任意の装置に適用することができる。例えば、ROMに設けられた複数のバンクのそれぞれを複数のファームウェア格納領域とし、これらの複数のバンクごとにファームウェアを更新するものとしても良い。なお、個々のファームウェア格納領域に格納される格納データは、ファームウェアのデータであることには変わりがないので、ファームウェアデータとも呼ぶことができる。
E5. Modification 5:
In each of the above-described embodiments, the firmware update of the present invention is applied to the
E6.変形例6:
上記実施例では、本発明のファームウェアの更新をUPnPブリッジ200(図1)に適用しているが、本発明は、スキャナ・プリンタ・コピー複合機やルータ等のファームウェアにより種々の機能を実行する任意の装置に適用することができる。この場合、ファームウェアが、別個に更新可能な複数の領域に格納された装置であれば、本発明を適用することができる。
E6. Modification 6:
In the above embodiment, the firmware update of the present invention is applied to the UPnP bridge 200 (FIG. 1). However, the present invention is an arbitrary one that executes various functions by firmware of a scanner / printer / copier multifunction device or router. It can be applied to other devices. In this case, the present invention can be applied if the firmware is an apparatus stored in a plurality of areas that can be updated separately.
100…コンピュータシステム
110…パーソナルコンピュータ
120…スキャナ・プリンタ・コピー複合機
200…UPnPブリッジ
210…電源回路
300…ネットワークユニット
310…中央制御部
320…RAM
330…ROM
340…ネットワーク制御部
342…コネクタ
350…USBホスト制御部
352…ルートハブ
354,356…USBコネクタ
400…デバイスユニット
410…中央制御部
420…RAM
430,440…ROM
450,460…USBデバイス制御部
452,462…USBコネクタ
470…操作パネル制御部
472…操作パネル
480…表示制御部
482…表示部
490…USBホスト制御部
492…ルートハブ
494…USBコネクタ
500…電源制御部
1000…ファームウェア更新アプリケーション
2000…ファームウェア更新処理部
1100,2100…D4プロトコル処理部
DESCRIPTION OF
330 ... ROM
340 ...
430, 440 ... ROM
450, 460 USB
Claims (6)
前記ファームウェア更新方法は、前記N個のファームウェア格納領域のうちのM個(Mは1以上N以下の整数)のファームウェア格納領域のためのM個の個別更新データを含み、前記M個の個別更新データが連続したデータとして構成されている統合更新データのうちの各個別更新データを1つずつ順次受信する個別受信モードを含み、
前記個別受信モードは、
(a)前記統合更新データのうちの先頭から順に、1つのファームウェア格納領域の更新のために必要な更新データ部分までを外部から受信した後に、後続の更新データの受信を停止する工程と、
(b)前記受信した更新データ部分を用いて、前記1つのファームウェア格納領域の更新を実行する工程と、
(c)前記1つのファームウェア格納領域の更新の完了後に、前記後続の更新データの受信を再開する工程と、
(d)上記工程(a)ないし(c)を、前記統合更新データに含まれている更新ファームウェアの数Mに応じて繰り返す工程と、
を備える、ファームウェア更新方法。 A method of updating firmware of a device having N (N is an integer of 2 or more) firmware storage areas that can be updated separately,
The firmware update method includes M individual update data for M (M is an integer of 1 to N) firmware storage areas of the N firmware storage areas, and the M individual update data Including an individual reception mode of sequentially receiving each individual update data of the integrated update data configured as continuous data one by one,
The individual reception mode is:
(A) a step of stopping reception of subsequent update data after receiving from the outside up to the update data portion necessary for updating one firmware storage area in order from the beginning of the integrated update data;
(B) executing the update of the one firmware storage area using the received update data portion;
(C) resuming reception of the subsequent update data after completion of the update of the one firmware storage area;
(D) repeating the steps (a) to (c) according to the number M of update firmware included in the integrated update data;
A firmware update method comprising:
前記M個の個別更新データのそれぞれは、対応するファームウェア格納領域に格納されるファームウェアデータと、前記ファームウェアデータに関する情報を有するファームウェアヘッダと、を含む、ファームウェア更新方法。 The firmware update method according to claim 1, comprising:
Each of the M pieces of individual update data includes firmware data stored in a corresponding firmware storage area, and a firmware header having information on the firmware data.
前記工程(a)は、
前記ファームウェアヘッダを含むデータを外部から受信する工程と、
前記受信したデータに含まれるファームウェアヘッダに基づいて、前記更新データ部分を受信する工程と、
を含む、前記ファームウェアヘッダの解析 The firmware update method according to claim 2,
The step (a)
Receiving data including the firmware header from the outside;
Receiving the update data portion based on a firmware header included in the received data;
Analysis of the firmware header, including
前記工程(b)は、前記受信した更新データ部分に含まれるファームウェアヘッダに基づいて、更新する前記1つのファームウェア格納領域を決定する工程を含む、ファームウェア更新方法。 The firmware update method according to claim 2 or 3,
The step (b) includes a step of determining the one firmware storage area to be updated based on a firmware header included in the received update data portion.
前記ファームウェア更新方法は、さらに、
前記統合更新データの全体を受信した後、前記M個のファームウェア格納領域を更新する全体受信モードを含み、
前記個別受信モードと前記全体受信モードのうちの一方を、前記装置内で利用可能な一時メモリ量に応じて選択する、ファームウェア更新方法。 The firmware update method according to any one of claims 1 to 4,
The firmware update method further includes:
An overall reception mode for updating the M firmware storage areas after receiving the entire integrated update data;
A firmware update method, wherein one of the individual reception mode and the overall reception mode is selected according to a temporary memory amount available in the device.
前記N個のファームウェア格納領域のうちのM個(Mは1以上N以下の整数)のファームウェア格納領域のためのM個の個別更新データを含み、前記M個の個別更新データが連続したデータとして構成されている統合更新データのうちの各個別更新データを1つずつ順次受信する個別受信モードを有するファームウェア更新制御部を備え、
前記ファームウェア更新制御部は、
前記統合更新データのうちの先頭から順に、1つのファームウェア格納領域の更新のために必要な更新データ部分までを外部から受信した後に、後続の更新データの受信を停止し、
前記受信した更新データ部分を用いて、前記1つのファームウェア格納領域の更新し、
前記1つのファームウェア格納領域の更新の完了後に、前記後続の更新データの受信を再開することを、
前記統合更新データに含まれている更新ファームウェアの数Mに応じて、繰り返し実行する、装置。 A device having N (N is an integer of 2 or more) firmware storage areas that can be updated separately,
Of the N firmware storage areas, M (M is an integer of 1 to N) firmware storage areas for M firmware update areas, and the M individual update data are continuous data. A firmware update control unit having an individual reception mode for sequentially receiving each individual update data of the configured integrated update data one by one,
The firmware update control unit
After receiving from the outside up to the update data portion necessary for updating one firmware storage area in order from the beginning of the integrated update data, stop receiving subsequent update data,
Using the received update data portion, updating the one firmware storage area,
Resuming reception of the subsequent update data after completion of the update of the one firmware storage area;
An apparatus that executes repeatedly according to the number M of update firmware included in the integrated update data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005275531A JP2007087133A (en) | 2005-09-22 | 2005-09-22 | Update technology of firmware |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005275531A JP2007087133A (en) | 2005-09-22 | 2005-09-22 | Update technology of firmware |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007087133A true JP2007087133A (en) | 2007-04-05 |
Family
ID=37974047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005275531A Pending JP2007087133A (en) | 2005-09-22 | 2005-09-22 | Update technology of firmware |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007087133A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012048082A (en) * | 2010-08-30 | 2012-03-08 | Kyocera Mita Corp | Image formation device |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000010784A (en) * | 1998-06-18 | 2000-01-14 | Nec Corp | Downloading device for firmware |
JP2003076567A (en) * | 2001-09-03 | 2003-03-14 | Minolta Co Ltd | Firmware update method of image processor and image processor |
JP2003076565A (en) * | 2001-08-31 | 2003-03-14 | Canon Inc | Equipment controller, program update method, storage medium and program |
JP2004514214A (en) * | 2000-11-17 | 2004-05-13 | ビットフォン コーポレイション | System and method for updating and distributing information |
JP2005196402A (en) * | 2004-01-06 | 2005-07-21 | Fuji Xerox Co Ltd | Firmware update system, image forming apparatus, program, and recording medium |
-
2005
- 2005-09-22 JP JP2005275531A patent/JP2007087133A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000010784A (en) * | 1998-06-18 | 2000-01-14 | Nec Corp | Downloading device for firmware |
JP2004514214A (en) * | 2000-11-17 | 2004-05-13 | ビットフォン コーポレイション | System and method for updating and distributing information |
JP2003076565A (en) * | 2001-08-31 | 2003-03-14 | Canon Inc | Equipment controller, program update method, storage medium and program |
JP2003076567A (en) * | 2001-09-03 | 2003-03-14 | Minolta Co Ltd | Firmware update method of image processor and image processor |
JP2005196402A (en) * | 2004-01-06 | 2005-07-21 | Fuji Xerox Co Ltd | Firmware update system, image forming apparatus, program, and recording medium |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012048082A (en) * | 2010-08-30 | 2012-03-08 | Kyocera Mita Corp | Image formation device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7814480B2 (en) | Control software updating technique for a network apparatus | |
US9189182B2 (en) | Method and apparatus for activating device | |
JP7355147B2 (en) | application program | |
JP2016021090A (en) | Terminal device, printer, and computer program | |
US20140092418A1 (en) | Image forming device, management device, information processing system, and storage medium | |
JP5929107B2 (en) | Information processing program, information processing apparatus, and information processing apparatus control method | |
JP2009205637A (en) | Usb device, printer, control method of usb device, and program thereof | |
JP6501624B2 (en) | INFORMATION PROCESSING APPARATUS, CONTROL METHOD, AND PROGRAM | |
US10521170B2 (en) | Image forming apparatus configured to facilitate monitoring in a combined push-and-pull print system. print control system, and print control method | |
EP3496337B1 (en) | Method and device for resetting network device to factory settings, and network device | |
JP2009207090A (en) | Usb device, printing apparatus, control method of the usb device, and program therefor | |
JP5581470B2 (en) | Device sharing system, device sharing server, device sharing client, and device sharing method | |
JP2009098908A (en) | Time-out control system, client device, server device, and time-out control method | |
JP2007272832A (en) | Print system, host device, printer, print control method, print method, program for allowing computer to execute these methods, and recording medium | |
US11301190B2 (en) | Non-transitory computer-readable recording medium, information processing apparatus and printing method | |
JP2007087133A (en) | Update technology of firmware | |
JP4552815B2 (en) | Updating network device control software | |
EP2924955B1 (en) | Apparatus, communication control system, and communication control method | |
JP2007080055A (en) | Update of control software for network device | |
JP2011129111A (en) | Client device, device control method, and device control system | |
JP5845826B2 (en) | Information processing program, information processing apparatus, and information processing apparatus control method | |
JP2009031899A (en) | Print client, print server, printer search method, and print service providing method | |
JP2016045697A (en) | Print control unit, printing system, control method of print control unit, and program | |
JP7187163B2 (en) | Communication device and control method for communication device | |
JP4136687B2 (en) | Data processing apparatus and data processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080206 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110531 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110729 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110816 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111013 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111101 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111226 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120117 |