JP2007087133A - Update technology of firmware - Google Patents

Update technology of firmware Download PDF

Info

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
Application number
JP2005275531A
Other languages
Japanese (ja)
Inventor
Yasuhiro Oshima
康裕 大島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005275531A priority Critical patent/JP2007087133A/en
Publication of JP2007087133A publication Critical patent/JP2007087133A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)
  • Stored Programmes (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a technology for further facilitating update of firmware stored in a plurality of areas. <P>SOLUTION: A device whose firmware is updated includes N pieces of individually updatable firmware storage areas (N is an integer of 2 or more). Integrated update data for updating M pieces of storage areas (M is an integer of 1 or more and N or less) of the N storage areas is constituted as data in which M pieces of independent update data are continued. In an individual receiving mode of successively receiving the individual update data one by one, the process of stopping, after receiving an update data part necessary for update of one storage area from the head of the integrated update data, reception of the subsequent update data, updating the one storage area using the received update data part, and restarting the reception of the subsequent update data after completion of update of the one storage area is repeatedly executed according to the number M of update firmware. <P>COPYRIGHT: (C)2007,JPO&INPIT

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.

特開2004−272770号公報JP 2004-272770 A

ところで、ファームウェアが格納される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 computer system 100 to which one embodiment of the present invention is applied. In this computer system 100, a personal computer 110 and a scanner / printer / copy multifunction peripheral (MFP) 120 are connected to a universal plug and play bridge (UPnP bridge) 200. Here, the UPnP bridge connects devices that do not have a network processing function, and the functions of the connected devices are connected to the network as a service in Universal Plug and Play (Universal Plug and Play: UPnP is a trademark of UPnP Implementers Corporation). A network device to be provided.

UPnPブリッジ200は、ネットワークユニット300と、デバイスユニット400と、ネットワークユニット300およびデバイスユニット400に電力を供給する電源回路210と、を備えている。   The UPnP bridge 200 includes a network unit 300, a device unit 400, and a power supply circuit 210 that supplies power to the network unit 300 and the device unit 400.

ネットワークユニット300は、中央制御部(CPU)310と、RAM320と、ROM330と、ネットワーク制御部340と、USBホスト制御部350とを有している。ROM330には、ネットワークユニット300の制御ソフトウェア(「ファームウェア」と呼ばれる)が格納されている。中央制御部310は、このファームウェアを実行することにより、ネットワークユニット300が有する種々の機能を実現する。   The network unit 300 includes a central control unit (CPU) 310, a RAM 320, a ROM 330, a network control unit 340, and a USB host control unit 350. The ROM 330 stores control software (referred to as “firmware”) for the network unit 300. The central control unit 310 implements various functions of the network unit 300 by executing this firmware.

ネットワーク制御部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 connector 342. The USB host control unit 350 has a root hub 352, and two USB connectors 354 and 356 are provided on the root hub 352. The first USB connector 354 is connected to the USB connector 462 of the device unit 400 via a USB cable. An additional device (for example, a wireless communication circuit or other device unit for communicating with the wireless LAN network) can be connected to the second USB connector 356.

デバイスユニット400は、中央制御部(CPU)410と、RAM420と、2つのROM430,440と、2つのUSBデバイス制御部450,460と、操作パネル制御部470と、表示制御部480と、USBホスト制御部490と、電源回路210を制御する電源制御部500とを有している。   The device unit 400 includes a central control unit (CPU) 410, a RAM 420, two ROMs 430 and 440, two USB device control units 450 and 460, an operation panel control unit 470, a display control unit 480, and a USB host. A control unit 490 and a power supply control unit 500 that controls the power supply circuit 210 are included.

2つのROM430,440のそれぞれには、デバイスユニット400のファームウェアが格納されている。中央制御部410は、これら2つのROM430,440に格納されたファームウェアを実行することにより、デバイスユニット400が有する種々の機能を実現する。なお、ROM430,440として、フラッシュメモリ等の電気的に書換が可能なROMを使用することにより、デバイスユニット400のファームウェアを更新することができる。   The firmware of the device unit 400 is stored in each of the two ROMs 430 and 440. The central control unit 410 implements various functions of the device unit 400 by executing firmware stored in the two ROMs 430 and 440. Note that the firmware of the device unit 400 can be updated by using an electrically rewritable ROM such as a flash memory as the ROMs 430 and 440.

デバイスユニット400の第1のUSBデバイス制御部450は、USBコネクタ452を介してネットワークユニット300のUSBホスト制御部350に接続されている。第2のUSBデバイス制御部460は、USBコネクタ462を有している。本実施例では、ファームウェア更新のためUSBコネクタ462にパーソナルコンピュータ110が接続されているが、一般に、USBコネクタ462には、任意のUSBホストを接続することが可能である。   The first USB device control unit 450 of the device unit 400 is connected to the USB host control unit 350 of the network unit 300 via the USB connector 452. The second USB device control unit 460 has a USB connector 462. In this embodiment, the personal computer 110 is connected to the USB connector 462 for firmware update, but in general, any USB host can be connected to the USB connector 462.

操作パネル制御部470には、入力手段としての操作パネル472が接続されている。表示制御部480には、表示部482が接続されている。ユーザは、表示部482が有する液晶表示器やLED表示器等によるUPnPブリッジの状態表示に応じて操作パネル472を操作することにより、種々の指示を入力することができる。   An operation panel 472 as an input unit is connected to the operation panel control unit 470. A display unit 482 is connected to the display control unit 480. The user can input various instructions by operating the operation panel 472 according to the UPnP bridge status display by a liquid crystal display, an LED display, or the like included in the display unit 482.

USBホスト制御部490は、ルートハブ492を有しており、ルートハブ492にはUSBコネクタ494が設けられている。本実施例では、このUSBコネクタ494にスキャナ・プリンタ・コピー複合機120が接続されているが、USBコネクタ494には、スキャナやプリンタやマスストレージなどの単一の機能を提供可能なUSBデバイスや、複数の機能を提供可能な多機能複合周辺機器等の任意のUSBデバイスを接続することが可能である。   The USB host control unit 490 has a root hub 492, and the root hub 492 is provided with a USB connector 494. In this embodiment, the scanner / printer / copier multifunction device 120 is connected to the USB connector 494. However, the USB connector 494 includes a USB device that can provide a single function such as a scanner, printer, and mass storage. Any USB device such as a multi-function composite peripheral device that can provide a plurality of functions can be connected.

デバイスユニット400のファームウェアを更新する場合、ユーザは、デバイスユニット400をファームウェア更新モードで起動する。デバイスユニット400は、例えば、ユーザが操作パネル472の特定のボタンを押しながらUPnPブリッジ200の電源を投入することによりファームウェア更新モードで起動する。このとき、中央制御部410は、ファームウェア更新モードの制御を実行するためのファームウェア更新ソフトウェアをRAM420に格納し、RAM420に格納されたファームウェア更新ソフトウェアを実行する。ファームウェア更新ソフトウェアの実行により、デバイスユニット400の中央制御部410は、ファームウェア更新処理部としての機能を実現する。なお、本実施例では、中央制御部410がRAM420に格納されたファームウェア更新ソフトウェアを実行するものとしているが、実行されるファームウェア更新ソフトウェアは、ファームウェア更新の対象とならないROM(図示しない)に格納されたものであっても良い。   When updating the firmware of the device unit 400, the user activates the device unit 400 in the firmware update mode. For example, the device unit 400 is activated in the firmware update mode when the user turns on the UPnP bridge 200 while pressing a specific button on the operation panel 472. At this time, the central control unit 410 stores firmware update software for executing control in the firmware update mode in the RAM 420, and executes the firmware update software stored in the RAM 420. By executing the firmware update software, the central control unit 410 of the device unit 400 realizes a function as a firmware update processing unit. In this embodiment, the central control unit 410 executes the firmware update software stored in the RAM 420, but the firmware update software to be executed is stored in a ROM (not shown) that is not subject to firmware update. It may be.

デバイスユニット400のファームウェア更新モードでの起動の後、ユーザは、パーソナルコンピュータ110上でファームウェア更新用のアプリケーションを起動する。起動されたファームウェア更新アプリケーションにより、USBコネクタ462に接続されたパーソナルコンピュータ110からファームウェア更新のための更新データがデバイスユニット400に送信される。なお、送信される更新データは、予めパーソナルコンピュータ110が備える外部記憶装置(図示しない)に格納されている。   After the device unit 400 is activated in the firmware update mode, the user activates an application for firmware update on the personal computer 110. Update data for updating the firmware is transmitted to the device unit 400 from the personal computer 110 connected to the USB connector 462 by the activated firmware update application. The transmitted update data is stored in advance in an external storage device (not shown) provided in the personal computer 110.

図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 personal computer 110 and the device unit 400. These indicate logical connections between the personal computer 110 and the device unit 400 in the same hierarchy.

パーソナルコンピュータ110は、ファームウェア更新アプリケーション1000から供給されるデータを、D4プロトコルの論理チャンネル(UPDATE-CONTROLおよびUPDATE-DATA)を介してデバイスユニット400に転送するD4プロトコル処理部1100を有している。なお、D4プロトコルとは、IEEE1284.4に規定されたパケット(D4パケット)を用いた通信プロトコルである。   The personal computer 110 has a D4 protocol processing unit 1100 that transfers data supplied from the firmware update application 1000 to the device unit 400 via D4 protocol logical channels (UPDATE-CONTROL and UPDATE-DATA). The D4 protocol is a communication protocol that uses a packet (D4 packet) defined in IEEE1284.4.

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 device unit 400 supplies the update data transferred via the D4 protocol logical channel to the firmware update processing unit 2000 that executes firmware update processing. As a structure below the D4 protocol processing unit 2100, a USB device interface (hardware), a USB logical device, and a printer class logical interface are provided in order from the bottom.

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 update data 700 used for firmware update of the device unit 400 (FIG. 1). As shown in FIG. 4A, the update data 700 includes first ROM data 710 corresponding to the first ROM 430 (FIG. 1) and second ROM data corresponding to the second ROM 440 (FIG. 1). 710.

第1のROMデータ710は、第1のヘッダ712と、第1のROM430に格納される第1の格納データとを含んでいる。この第1のヘッダ712には、図4(b)に示すように、格納データが格納されるROMのデバイス番号(1)と、格納データのバージョン番号(1.23)と、格納データの大きさ(データサイズ=64M)と、格納データのチェックサム(C48A)とが、含まれている。   The first ROM data 710 includes a first header 712 and first storage data stored in the first ROM 430. In the first header 712, as shown in FIG. 4B, the device number (1) of the ROM storing the stored data, the version number (1.23) of the stored data, and the size of the stored data (Data size = 64M) and a checksum (C48A) of stored data are included.

第2のROMデータ720は、第2のヘッダ722と、第2のROM440に格納される第2の格納データとを含んでいる。この第2のヘッダ722には、図4(b)に示すように、格納データが格納されるROMのデバイス番号(2)と、格納データのバージョン番号(2.32)と、格納データのデータサイズ(32M)と、格納データのチェックサム(4D58)とが、含まれている。   The second ROM data 720 includes a second header 722 and second storage data stored in the second ROM 440. In the second header 722, as shown in FIG. 4B, the device number (2) of the ROM storing the stored data, the version number (2.32) of the stored data, and the data of the stored data The size (32M) and the checksum (4D58) of the stored data are included.

なお、第1と第2のROMデータ710,720は、それぞれ第1と第2のROM430,440の更新に使用されるデータであるので、個別更新データとも言うことができる。また、図4に示すように、更新データ700は、個別更新データである2つのROMデータが連続したデータとして構成されているので、統合更新データであるとも言うことができる。   Since the first and second ROM data 710 and 720 are data used for updating the first and second ROMs 430 and 440, respectively, they can also be called individual update data. Also, as shown in FIG. 4, the update data 700 can be said to be integrated update data because two ROM data, which are individual update data, are configured as continuous data.

図5は、デバイスユニット400(図1)により実行されるデバイスユニット400のファームウェア更新実行ルーチンを示すフローチャートである。   FIG. 5 is a flowchart showing a firmware update execution routine of the device unit 400 executed by the device unit 400 (FIG. 1).

ステップS100において、デバイスユニット400は、ファームウェア更新モードで起動する。デバイスユニット400は、上述のように、ユーザによる操作に従ってファームウェア更新ソフトウェアが実行されることにより、ファームウェア更新モードで起動する。   In step S100, the device unit 400 is activated in the firmware update mode. As described above, the device unit 400 is activated in the firmware update mode by executing the firmware update software in accordance with the operation by the user.

ステップS200において、デバイスユニット400は、パーソナルコンピュータ110(図1)からデータ転送開始コマンドを受信するまで待機する。データ転送開始コマンドを受信した場合、制御はステップS300aに移される。一方、データ転送開始コマンドを受信していない場合、制御は戻され、デバイスユニット400がデータ転送開始コマンドを受信するまでステップS200が繰り返し実行される。   In step S200, device unit 400 waits until a data transfer start command is received from personal computer 110 (FIG. 1). If a data transfer start command is received, control is transferred to step S300a. On the other hand, if the data transfer start command has not been received, control is returned and step S200 is repeatedly executed until the device unit 400 receives the data transfer start command.

図6は、デバイスユニット400がパーソナルコンピュータ110からのデータ転送開始コマンドを受信する様子を示すシーケンス図である。図6の細い矢印は、D4コマンドとD4コマンドに対する応答を表している。図6の太い矢印は、UPDATE-CONTROLチャンネル(図2)によるデータの転送を表している。   FIG. 6 is a sequence diagram showing how the device unit 400 receives a data transfer start command from the personal computer 110. The thin arrows in FIG. 6 represent the D4 command and the response to the D4 command. The thick arrows in FIG. 6 represent data transfer through the UPDATE-CONTROL channel (FIG. 2).

ステップ[ST1]において、パーソナルコンピュータ110はデバイスユニット400に、UPDATE-CONTROLチャンネルについてクレジット要求を行う。デバイスユニット400は、ステップ[ST2]において、ステップ[ST1]のクレジット要求に対して1のクレジットを提供する。   In step [ST1], the personal computer 110 makes a credit request to the device unit 400 for the UPDATE-CONTROL channel. In step [ST2], the device unit 400 provides 1 credit for the credit request in step [ST1].

ステップ[ST3]において、パーソナルコンピュータ110は、UPDATE-CONTROLチャンネルを介して1つのD4パケットをデバイスユニット400に送信する。送信されるD4パケットのボディ部分には、データ転送の開始をデバイスユニット400に指示するコマンドが登録されている。   In step [ST3], the personal computer 110 transmits one D4 packet to the device unit 400 via the UPDATE-CONTROL channel. In the body part of the transmitted D4 packet, a command for instructing the device unit 400 to start data transfer is registered.

ステップ[ST4]において、パーソナルコンピュータ110は、デバイスユニット400に対し1のクレジットを提供する。このクレジットの提供は、D4コマンドのクレジット提供コマンド(Credit)により行われる。デバイスユニット400は、ステップ[ST5]においてステップ[ST4]のクレジット提供コマンドに応答する。そして、ステップ[ST6]において、データ転送を開始可能であることを表すデータ(データ転送開始応答)がボディ部分に登録された1つのD4パケットを、UPDATE-CONTROLチャンネルを介してパーソナルコンピュータ110に送信する。   In step [ST4], the personal computer 110 provides one credit to the device unit 400. This credit is provided by a credit provision command (Credit) of the D4 command. In step [ST5], the device unit 400 responds to the credit provision command in step [ST4]. In step [ST6], one D4 packet in which data indicating that data transfer can be started (data transfer start response) is registered in the body part is transmitted to the personal computer 110 via the UPDATE-CONTROL channel. To do.

図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 device unit 400 receives one ROM data from the personal computer 110. Then, the corresponding ROM is updated with the stored data included in the received ROM data. In this embodiment, as shown in FIG. 4, the first ROM data of the update data 700 is first ROM data 710 corresponding to the first ROM 430 (FIG. 1). Therefore, in step S300a, the first ROM 430 is updated with the first stored data 714 included in the first ROM data 710. Details of the reception of ROM data and the update of the ROM in step S300a will be described later.

このステップS300aが実行されている間、デバイスユニット400は、パーソナルコンピュータ110にファームウェア更新の際に生じるエラーを伝達するため、ステータスをパーソナルコンピュータ110に送信する。   While step S300a is being executed, the device unit 400 transmits a status to the personal computer 110 in order to transmit an error that occurs during firmware update to the personal computer 110.

図7は、デバイスユニット400がパーソナルコンピュータ110にステータスを送信する様子を示すシーケンス図である。図7に示すシーケンスは、ステップ[SR3]で転送されるコマンドが、図6のステップ[ST3]のデータ転送開始コマンドからステータス確認コマンドに変更されている点と、ステップ[SR6]で転送される応答が、図6のステップ[ST6]のデータ転送開始の応答からステータスの回答に変更されている点で、図6に示すシーケンスと異なっている。他の点は、図6に示すシーケンスと同じである。   FIG. 7 is a sequence diagram showing how the device unit 400 transmits a status to the personal computer 110. In the sequence shown in FIG. 7, the command transferred in step [SR3] is changed from the data transfer start command in step [ST3] in FIG. 6 to the status confirmation command, and transferred in step [SR6]. The response is different from the sequence shown in FIG. 6 in that the response is changed from a data transfer start response in step [ST6] in FIG. 6 to a status response. The other points are the same as the sequence shown in FIG.

ステップ[SR3]において、パーソナルコンピュータ110は、ステータスを問い合わせるステータス確認コマンドがボディ部分に登録された1つのD4パケットをデバイスユニット400に送信する。デバイスユニット400は、ステップ[SR6]において、エラー発生の有無を表すデータ(ステータス回答)がボディ部分に登録された1つのD4パケットを、パーソナルコンピュータ110に送信する。   In step [SR3], the personal computer 110 transmits one D4 packet in which a status confirmation command for inquiring the status is registered in the body part to the device unit 400. In step [SR6], the device unit 400 transmits, to the personal computer 110, one D4 packet in which data indicating whether an error has occurred (status reply) is registered in the body portion.

図5のステップS300bにおいて、デバイスユニット400は、パーソナルコンピュータ110から、1つのROMデータを受信する。そして、受信したROMデータに含まれる格納データにより、対応するROMを更新する。このステップS300bでは、ステップS300aと同様の処理が実行される。そのため、ステップS30aは、省略することも可能である。   In step S300b of FIG. 5, the device unit 400 receives one ROM data from the personal computer 110. Then, the corresponding ROM is updated with the stored data included in the received ROM data. In step S300b, the same processing as in step S300a is executed. Therefore, step S30a can be omitted.

本実施例では、図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 first ROM data 710 is second ROM data 720 corresponding to the second ROM 440 (FIG. 1). Therefore, in step S300b, the second ROM 440 is updated with the second storage data 724 included in the second ROM data 720.

図5のステップS400において、デバイスユニット400は、パーソナルコンピュータ110(図1)からデータ転送終了コマンドを受信するまで所定の時間待機する。データ転送終了コマンドは、更新データの全体の転送が終了した際にパーソナルコンピュータ110からデバイスユニットに送信される。デバイスユニット400が所定の時間内にデータ転送終了コマンドを受信した場合、ファームウェア更新実行ルーチンは終了する。一方、デバイスユニット400が所定の時間内にデータ転送終了コマンドを受信しなかった場合、制御はステップS300bに戻され、更新データに含まれる未転送のROMデータの受信とROMの更新が繰り返される。   In step S400 of FIG. 5, the device unit 400 waits for a predetermined time until a data transfer end command is received from the personal computer 110 (FIG. 1). The data transfer end command is transmitted from the personal computer 110 to the device unit when transfer of the entire update data is completed. When the device unit 400 receives a data transfer end command within a predetermined time, the firmware update execution routine ends. On the other hand, if the device unit 400 does not receive the data transfer end command within the predetermined time, the control is returned to step S300b, and the reception of the untransferred ROM data included in the update data and the update of the ROM are repeated.

本実施例では、図4に示すように、更新データ700は、第1のROMデータ710と第2のROMデータ720とで構成されている。そのため、ステップS300bにおいて更新データ700の全体が転送されているので、パーソナルコンピュータ110は、デバイスユニット400にデータ転送終了コマンドを送信する。   In the present embodiment, as shown in FIG. 4, the update data 700 is composed of first ROM data 710 and second ROM data 720. Therefore, since the entire update data 700 has been transferred in step S300b, the personal computer 110 transmits a data transfer end command to the device unit 400.

図8は、デバイスユニット400がパーソナルコンピュータ110からのデータ転送終了コマンドを受信する様子を示すシーケンス図である。図8に示すシーケンスは、ステップ[ED3]で転送されるコマンドが、図6のステップ[ST3]のデータ転送開始コマンドからデータ転送終了コマンドに変更されている点と、ステップ[ED6]で転送される応答が、図6のステップ[ST6]のデータ転送開始の応答からデータ転送終了の応答に変更されている点で、図6に示すシーケンスと異なっている。具体的には、転送されるD4パケットのボディ部分に登録される文字列が、データ転送開始コマンドおよびデータ転送開始の応答とは異なっている点で異なっている。他の点は、図6に示すシーケンスと同じである。   FIG. 8 is a sequence diagram showing how the device unit 400 receives a data transfer end command from the personal computer 110. In the sequence shown in FIG. 8, the command transferred in step [ED3] is changed from the data transfer start command in step [ST3] in FIG. 6 to the data transfer end command, and transferred in step [ED6]. Is different from the sequence shown in FIG. 6 in that the response is changed from the data transfer start response in step [ST6] in FIG. 6 to the data transfer end response. Specifically, the character string registered in the body portion of the transferred D4 packet is different in that it is different from the data transfer start command and the data transfer start response. The other points are the same as the sequence shown in FIG.

図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 device unit 400 sequentially executes the header reception / analysis routine shown in FIG. 9 and the stored data reception / ROM update routine shown in FIG. 10 in this order. As shown in FIG. 9, the header reception / analysis routine is composed of two processes, a header reception phase and a header analysis phase. Further, as shown in FIG. 10, the stored data reception / ROM update routine is composed of two steps of a stored data reception phase and a ROM update phase.

図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 personal computer 110 and the device unit 400 when the device unit 400 executes the routines shown in FIGS. 9 and 10. The thin arrows in FIG. 11 represent the D4 command and the response to the D4 command. A thick arrow in FIG. 11 represents data transfer through the UPDATE-DATA channel (FIG. 2).

図9のステップS322において、デバイスユニット400は、パーソナルコンピュータ110からのクレジット要求に対して提供するクレジット数を1に設定する。提供クレジット数を1に設定することにより、デバイスユニット400は、ステップS324において1パケット分のデータを受信する。   In step S322 of FIG. 9, the device unit 400 sets the number of credits provided for the credit request from the personal computer 110 to 1. By setting the number of provided credits to 1, the device unit 400 receives data for one packet in step S324.

1パケット分のデータを受信すると、デバイスユニット400は、ステップS326において受信済みのデータサイズを更新する。そして、ステップS328において、更新された受信済みのデータサイズに基づいてヘッダ(図4)分のデータの受信が終了したか否かを判断する。ヘッダ分のデータの受信が終了したと判断した場合、制御はヘッダ解析フェーズのステップS342に移される。一方、ヘッダ分のデータの受信が終了していないと判断した場合、制御はステップS330に移される。   When receiving data for one packet, the device unit 400 updates the received data size in step S326. In step S328, it is determined whether reception of data for the header (FIG. 4) has been completed based on the updated received data size. If it is determined that the reception of data for the header has been completed, control is transferred to step S342 in the header analysis phase. On the other hand, if it is determined that reception of data for the header has not been completed, control is transferred to step S330.

ステップS330では、デバイスユニット400が所定の待機時間T1(例えば、5秒)待機する。待機中にクレジット要求コマンドを受信した場合、制御はステップS324に戻される。そして、ヘッダ分のデータの受信が終了するまで、ステップS324からステップS330が繰り返し実行される。一方、所定の待機時間T1の間に、デバイスユニット400がクレジット要求コマンドを受信しなかった場合、制御はステップS332に移される。   In step S330, the device unit 400 waits for a predetermined waiting time T1 (for example, 5 seconds). If a credit request command is received during standby, control is returned to step S324. Steps S324 to S330 are repeatedly executed until reception of header data is completed. On the other hand, if the device unit 400 does not receive the credit request command during the predetermined standby time T1, the control is moved to step S332.

ステップS332において、デバイスユニット400は、パーソナルコンピュータ110とデバイスユニット400間のUSBを論理的に切断(以下、単に「切断」とも呼ぶ)し、パーソナルコンピュータ110にエラーの発生を通知する。そして、ファームウェア更新ルーチンを終了する。このUSBの切断により、パーソナルコンピュータ110は、エラーの発生を検知し、パーソナルコンピュータ110上で実行されていたファームウェア更新アプリケーションが終了する。   In step S332, the device unit 400 logically disconnects the USB between the personal computer 110 and the device unit 400 (hereinafter also simply referred to as “disconnect”), and notifies the personal computer 110 of the occurrence of an error. Then, the firmware update routine ends. With this USB disconnection, the personal computer 110 detects the occurrence of an error, and the firmware update application being executed on the personal computer 110 is terminated.

ヘッダ受信フェーズでは、ステップ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 personal computer 110 and the device unit 400 is performed as shown in the sequence of the header reception phase in FIG.

ステップ[HR1]において、パーソナルコンピュータ110は、デバイスユニット400にUPDATE-DATAチャンネルについてのクレジット要求を行う。デバイスユニット400は、ステップ[HR2]において、ステップ[HR1]でのクレジット要求に対して、1のクレジットを提供する。パーソナルコンピュータ110は、ステップ[HR3]において、デバイスユニット400に提供されたクレジットに従って1パケット分のデータをUPDATE-DATAチャンネルを介して転送する。   In step [HR1], the personal computer 110 makes a credit request for the UPDATE-DATA channel to the device unit 400. In step [HR2], the device unit 400 provides one credit for the credit request in step [HR1]. In step [HR3], the personal computer 110 transfers the data for one packet via the UPDATE-DATA channel according to the credit provided to the device unit 400.

そして、デバイスユニット400によるヘッダ分のデータの受信が終了するまで、これらのステップ[HR1]ないし[HR3]は繰り返し実行され、デバイスユニット400は、ヘッダ分のデータを受信する。   These steps [HR1] to [HR3] are repeatedly executed until reception of data for the header by the device unit 400 is completed, and the device unit 400 receives the data for the header.

このように、ヘッダ受信フェーズにおいて、デバイスユニット400は、1パケットごとにデータを受信する。1パケットごとのデータの受信により、ヘッダ受信フェーズで受信されるデータの大きさは、ヘッダ712,722(図4)を含む格納データ714,724(図4)よりも小さくなる。そのため、ヘッダ受信フェーズとヘッダ解析フェーズにおけるRAM420の使用量を低減することができる。   Thus, in the header reception phase, the device unit 400 receives data for each packet. By receiving the data for each packet, the size of the data received in the header reception phase becomes smaller than the stored data 714 and 724 (FIG. 4) including the headers 712 and 722 (FIG. 4). Therefore, the amount of RAM 420 used in the header reception phase and header analysis phase can be reduced.

図9のステップS342において、デバイスユニット400は、パーソナルコンピュータ110からのクレジット要求に対して提供するクレジット数を0に設定する。   In step S342 in FIG. 9, the device unit 400 sets the number of credits provided for the credit request from the personal computer 110 to zero.

ステップS344において、デバイスユニット400は、ヘッダ受信フェーズで受信したヘッダを解析する。このヘッダの解析により、デバイスユニット400は、格納データの大きさ(格納データサイズ)や格納データのチェックサム等の情報を取得する。そして、ステップS344において、ヘッダが正しいものであるか否かを判断する。ヘッダが正しい場合、制御は格納データ受信・ROM更新ルーチンに移される。一方、ヘッダが正しくない場合、制御は、ステップS348に移される。なお、ヘッダが正しいか否かの判断は、例えば、ヘッダの形式が所定の形式となっているか否かで判断することができる。また、ヘッダそのもののチェックサムをヘッダに格納し、格納されたチェックサムと、受信したヘッダから生成したチェックサムとを比較することによって判断することも可能である。   In step S344, the device unit 400 analyzes the header received in the header reception phase. By analyzing the header, the device unit 400 acquires information such as the size of the stored data (stored data size) and the checksum of the stored data. In step S344, it is determined whether the header is correct. If the header is correct, control is transferred to the stored data reception / ROM update routine. On the other hand, if the header is not correct, control is transferred to step S348. Note that whether or not the header is correct can be determined based on, for example, whether or not the header format is a predetermined format. It is also possible to make a determination by storing the checksum of the header itself in the header and comparing the stored checksum with the checksum generated from the received header.

ステップS348において、デバイスユニット400は、ステータスによりエラーの発生をパーソナルコンピュータ110に通知し、ファームウェア更新ルーチンを終了する。ステータスによるエラーの発生の通知により、パーソナルコンピュータ110は、エラーの発生を検知し、パーソナルコンピュータ110上で実行されていたファームウェア更新アプリケーションが終了する。なお、ステータスによるエラーの発生の通知は、エラーの発生を通知するための特定の文字列を表すデータを、図7のシーケンスのステップ[SR6]でパーソナルコンピュータ110に送信することによって行うことができる。   In step S348, the device unit 400 notifies the personal computer 110 of the occurrence of an error according to the status, and ends the firmware update routine. The personal computer 110 detects the occurrence of the error based on the notification of the occurrence of the error due to the status, and the firmware update application executed on the personal computer 110 is terminated. The notification of the occurrence of an error due to the status can be performed by transmitting data representing a specific character string for notifying the occurrence of the error to the personal computer 110 in step [SR6] of the sequence of FIG. .

ヘッダ解析フェーズでは、ステップ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 personal computer 110 does not transfer data to the device unit 400. Therefore, it is possible to reduce the possibility that the data buffer of the device unit 400 overflows due to the data transferred during the header analysis and the ROM data transfer fails.

図10のステップS362において、デバイスユニット400は、パーソナルコンピュータ110からのクレジット要求に対して提供するクレジット数をN(Nは1以上の整数)に設定する。ここで、提供するクレジット数Nは、以下の式により算出される。   In step S362 of FIG. 10, the device unit 400 sets the number of credits provided in response to the credit request from the personal computer 110 to N (N is an integer equal to or greater than 1). Here, the number N of credits to be provided is calculated by the following formula.

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 device unit 400 receives data for N packets in step S364.

Nパケット分のデータを受信すると、デバイスユニット400は、ステップS366において受信済みのデータサイズを更新する。そして、ステップS368において、更新された受信済みのデータサイズに基づいて格納データの受信が終了したか否かを判断する。格納データの受信が終了したと判断した場合、制御はROM更新フェーズのステップS382に移される。一方、格納データの受信が終了していないと判断した場合、制御はステップS370に移される。   Upon receiving data for N packets, the device unit 400 updates the received data size in step S366. In step S368, it is determined whether the reception of the stored data has been completed based on the updated received data size. If it is determined that the reception of the stored data has been completed, the control is moved to step S382 in the ROM update phase. On the other hand, if it is determined that the reception of the stored data has not ended, the control is moved to step S370.

ステップS370では、デバイスユニット400が所定の待機時間T2(例えば、20秒)待機する。待機中にクレジット要求コマンドを受信した場合、制御はステップS362に戻される。そして、格納データの受信が終了するまで、ステップS362からステップS370が繰り返し実行される。一方、所定の待機時間T2の間に、デバイスユニット400がクレジット要求コマンドを受信しなかった場合、制御はステップS372に移される。   In step S370, the device unit 400 waits for a predetermined waiting time T2 (for example, 20 seconds). If a credit request command is received during standby, control returns to step S362. Steps S362 to S370 are repeatedly executed until reception of stored data is completed. On the other hand, if the device unit 400 does not receive the credit request command during the predetermined standby time T2, the control is moved to step S372.

ステップS372において、デバイスユニット400は、パーソナルコンピュータ110とデバイスユニット400間のUSBを切断し、パーソナルコンピュータ110にエラーの発生を通知する。そして、ファームウェア更新ルーチンを終了する。このUSBの切断により、パーソナルコンピュータ110は、エラーの発生を検知し、パーソナルコンピュータ110上で実行されていたファームウェア更新アプリケーションが終了する。   In step S372, the device unit 400 disconnects the USB between the personal computer 110 and the device unit 400, and notifies the personal computer 110 that an error has occurred. Then, the firmware update routine ends. With this USB disconnection, the personal computer 110 detects the occurrence of an error, and the firmware update application being executed on the personal computer 110 is terminated.

格納データ受信フェーズでは、ステップ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 personal computer 110 and the device unit 400 is performed as shown in the sequence of the stored data reception phase in FIG. The sequence of the stored data reception phase is that the number of credits provided in step [RR2] is changed from 1 to N, and the data transmitted in step [RR3] is data for one packet from data for one packet. And the header reception phase sequence is different. Since the other points are the same as those in the header reception phase, the description thereof is omitted here.

図10のステップS382において、デバイスユニット400は、パーソナルコンピュータ110からのクレジット要求に対して提供するクレジット数を0に設定する。   In step S382 in FIG. 10, the device unit 400 sets the number of credits provided for the credit request from the personal computer 110 to zero.

ステップS384において、デバイスユニット400は、格納データ受信フェーズで受信した格納データのチェックサムを算出する。そして、ステップS386において、算出したチェックサムと、図9のステップS344において取得されたヘッダに格納されたチェックサム(図4)と、を比較して、格納データが正しいか否かを判断する。格納データが正しい場合、制御はステップS388に移される。一方、格納データが正しくない場合、制御は、ステップS390に移される。   In step S384, the device unit 400 calculates the checksum of the storage data received in the storage data reception phase. In step S386, the calculated checksum is compared with the checksum (FIG. 4) stored in the header acquired in step S344 of FIG. 9, to determine whether the stored data is correct. If the stored data is correct, control is transferred to step S388. On the other hand, if the stored data is not correct, control is transferred to step S390.

ステップS388において、デバイスユニット400は、ヘッダに格納されたデバイス番号(図4)に対応するROMを受信した格納データにより更新する。ROMの更新は、ROMを一旦電気的に消去し、その後格納データを書き込むことによって行われる。ステップS388のROMの更新の後、格納データ受信・ROM更新ルーチンは終了し、図5のステップS300aもしくはステップS300bにおける処理は終了する。   In step S388, the device unit 400 updates the ROM corresponding to the device number (FIG. 4) stored in the header with the received storage data. The update of the ROM is performed by electrically erasing the ROM once and then writing the stored data. After the ROM update in step S388, the stored data reception / ROM update routine ends, and the processing in step S300a or step S300b in FIG. 5 ends.

なお、本実施例では、ヘッダにデバイス番号を格納し、デバイス番号に対応する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 device unit 400 notifies the personal computer 110 of the occurrence of an error according to the status, and ends the firmware update routine. The personal computer 110 detects the occurrence of the error based on the notification of the occurrence of the error due to the status, and the firmware update application executed on the personal computer 110 is terminated. Note that the notification of the occurrence of an error due to the status can be performed in the same manner as in step S348 in FIG.

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 personal computer 110 does not transfer data to the device unit 400. Therefore, it is possible to reduce the possibility that the data buffer of the device unit 400 overflows due to the data transferred during the checksum calculation of the stored data and the update of the ROM, and the ROM data transfer fails.

このように第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 ROMs 430 and 440 (FIG. 1) of the device unit 400 is stored in the storage data 714 and 724 (FIG. 4) according to the single update data 700 (FIG. 4). It can be updated using 4). Further, the device unit 400 updates the corresponding ROM every time it receives the entire storage data of the storage data 714 and 724 corresponding to the two ROMs 430 and 440. For this reason, in order to update the two ROMs 430 and 440, the acquisition of all of the two storage data 714 and 724 is suppressed, so that the capacity of the RAM 420 necessary for storing the two storage data 714 and 724 is reduced. The increase can be suppressed.

なお、第1実施例では、デバイスユニット400がヘッダの受信の後パーソナルコンピュータ110からのデータの転送を停止しているが、データの転送はヘッダとROMデータの双方を受信した後のみ停止するものとしても良い。一般に、データ転送の停止は、ROMの更新に先だって、デバイスユニット400が1つのROMの更新に必要な更新データの部分を取得した後に行うものすることが可能である。   In the first embodiment, the device unit 400 stops the data transfer from the personal computer 110 after receiving the header, but the data transfer stops only after receiving both the header and ROM data. It is also good. In general, the data transfer can be stopped after the device unit 400 acquires a portion of update data necessary for updating one ROM prior to updating the ROM.

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 update data 700a used for firmware update in the second embodiment. The update data 700a shown in FIG. 12 includes a ROM header 710a, 720a, and a ROM header 710a, 720a, in which a total header including the number of ROM devices (2) and the data size of each stored data is added before the first ROM data 710a. 4 is different from the update data 700 shown in FIG. 4 in that the data size of each stored data is not included in the headers 712a and 722a included in the update data 700. The other points are the same as the update data 700 of the first embodiment shown in FIG.

第2実施例では、更新データ700aの構成が第1実施例と異なっているため、図5のステップS200とステップS300aとの間に全体ヘッダを受信し、各格納データのデータサイズを取得するステップが付加される。また、図9のヘッダ解析フェーズのステップS344において、ヘッダを解析することによって取得されるデータから格納データのデータサイズが除かれる。その他は、第1実施例と同じ処理が行われる。なお、全体ヘッダの受信と、各格納データのデータサイズの取得は、図9のヘッダ受信・解析ルーチンと同様である。   In the second embodiment, since the configuration of the update data 700a is different from that of the first embodiment, the step of receiving the entire header between step S200 and step S300a in FIG. 5 and acquiring the data size of each stored data Is added. In step S344 of the header analysis phase in FIG. 9, the data size of the stored data is removed from the data acquired by analyzing the header. The other processes are the same as those in the first embodiment. The reception of the entire header and the acquisition of the data size of each stored data are the same as the header reception / analysis routine of FIG.

第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 ROMs 430 and 440 (FIG. 1) of the device unit 400 can be stored by the single update data 700a (FIG. 4). It can be updated using data 714, 724 (FIG. 4). Further, the device unit 400 updates the corresponding ROM every time it receives the entire storage data of the storage data 714 and 724 corresponding to the two ROMs 430 and 440. Therefore, since it is suppressed to acquire all of the two storage data 714 and 724 in order to update the two ROMs 430 and 440, the capacity of the RAM 420 necessary for storing the two storage data 714 and 724 is reduced. The increase can be suppressed.

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 display unit 482 of the device unit 400, for example.

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 device unit 400 can stop the data transfer. However, since the amount of data to be received is suppressed to the size necessary for updating each ROM, and the capacity of the RAM 420 can be further reduced, the data transfer amount can be controlled by a protocol that can control the data transfer amount on the device unit 400 side. More preferably, the transfer is performed.

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 device unit 400 stops data transfer each time two ROM data 710 and 720 (FIG. 4) are received, and the ROM 430 and 440 (FIG. 1) corresponding to the received ROM data. Although the update is performed, the update of the ROM may be performed by updating each ROM with the received plurality of ROM data after receiving all of the plurality of ROM data. In this case, the individual reception mode in which the ROM is updated each time individual ROM data is received and the overall reception mode in which the ROM is updated after receiving all of the plurality of ROM data are, for example, the amount of available RAM 420. Can be selected accordingly.

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 device unit 400 is supplied by other methods. It is also possible. The update data can be supplied from, for example, a computer connected to a wired network or a wireless network via the network unit 300 (FIG. 1) connected to the device unit 400. In this case, the network unit 300 only needs to acquire the update data included in the message transferred from the network and supply the acquired update data to the device unit 400. For example, if the network unit 300 has a function as an HTTP (Hyper Text Transfer Protocol) server, the network unit 300 supplies update data POSTed by a computer connected to the network to the device unit 400. The firmware of the device unit 400 can be updated.

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 device unit 400 having the two ROMs 430 and 440. However, in general, the firmware update is applied to any device stored in a plurality of areas where the firmware can be updated separately. Can be applied. For example, each of a plurality of banks provided in the ROM may be a plurality of firmware storage areas, and the firmware may be updated for each of the plurality of banks. Note that storage data stored in each firmware storage area is firmware data, and can also be called firmware data.

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の構成を示す説明図。1 is an explanatory diagram showing a configuration of a computer system 100 to which an embodiment of the present invention is applied. ファームウェア更新に関する機能の階層構造を示すブロック図。The block diagram which shows the hierarchical structure of the function regarding firmware update. ファームウェア更新に用いられるD4パケットの構成を示す説明図。Explanatory drawing which shows the structure of D4 packet used for firmware update. ファームウェア更新に用いられる更新データ700の構成を示す説明図。Explanatory drawing which shows the structure of the update data 700 used for firmware update. ファームウェア更新実行ルーチンを示すフローチャート。The flowchart which shows a firmware update execution routine. デバイスユニット400がデータ転送開始コマンドを受信する様子を示すシーケンス図。The sequence diagram which shows a mode that the device unit 400 receives a data transfer start command. デバイスユニット400がステータスを送信する様子を示すシーケンス図。The sequence diagram which shows a mode that the device unit 400 transmits status. デバイスユニット400がデータ転送終了コマンドを受信する様子を示すシーケンス図。The sequence diagram which shows a mode that the device unit 400 receives a data transfer end command. ヘッダ受信・解析ルーチンを示すフローチャート。The flowchart which shows a header reception and analysis routine. 格納データ受信・ROM更新ルーチンを示すフローチャート。The flowchart which shows a stored data reception and ROM update routine. 1つのROMデータを取得しROMを更新する際にデバイスユニットがROMデータを受信する様子を示すシーケンス図。The sequence diagram which shows a mode that a device unit receives ROM data when acquiring one ROM data and updating ROM. 第2実施例においてファームウェア更新に用いられる更新データ700aの構成を示す説明図。Explanatory drawing which shows the structure of the update data 700a used for firmware update in 2nd Example.

符号の説明Explanation of symbols

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 SYMBOLS 100 ... Computer system 110 ... Personal computer 120 ... Scanner printer copier multifunction machine 200 ... UPnP bridge 210 ... Power supply circuit 300 ... Network unit 310 ... Central control part 320 ... RAM
330 ... ROM
340 ... Network control unit 342 ... Connector 350 ... USB host control unit 352 ... Root hub 354, 356 ... USB connector 400 ... Device unit 410 ... Central control unit 420 ... RAM
430, 440 ... ROM
450, 460 USB device control unit 452, 462 USB connector 470 Operation panel control unit 472 Operation panel 480 Display control unit 482 Display unit 490 USB host control unit 492 Root hub 494 USB connector 500 Power control Unit 1000 ... Firmware update application 2000 ... Firmware update processing unit 1100, 2100 ... D4 protocol processing unit

Claims (6)

別個に更新可能なN個(Nは2以上の整数)のファームウェア格納領域を備える装置のファームウェアを更新する方法であって、
前記ファームウェア更新方法は、前記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:
請求項1記載のファームウェア更新方法であって、
前記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.
請求項2記載のファームウェア更新方法であって、
前記工程(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
請求項2または3記載のファームウェア更新方法であって、
前記工程(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.
請求項1ないし4のいずれか記載のファームウェア更新方法であって、
前記ファームウェア更新方法は、さらに、
前記統合更新データの全体を受信した後、前記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個(Nは2以上の整数)のファームウェア格納領域を備える装置であって、
前記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.
JP2005275531A 2005-09-22 2005-09-22 Update technology of firmware Pending JP2007087133A (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012048082A (en) * 2010-08-30 2012-03-08 Kyocera Mita Corp Image formation device

Citations (5)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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