JP6350308B2 - Optical transceiver - Google Patents
Optical transceiver Download PDFInfo
- Publication number
- JP6350308B2 JP6350308B2 JP2015014509A JP2015014509A JP6350308B2 JP 6350308 B2 JP6350308 B2 JP 6350308B2 JP 2015014509 A JP2015014509 A JP 2015014509A JP 2015014509 A JP2015014509 A JP 2015014509A JP 6350308 B2 JP6350308 B2 JP 6350308B2
- Authority
- JP
- Japan
- Prior art keywords
- version number
- firmware
- optical transceiver
- stored
- memory
- 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.)
- Active
Links
- 230000003287 optical effect Effects 0.000 title claims description 140
- 238000001994 activation Methods 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 22
- 238000000034 method Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 13
- 238000012545 processing Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 238000004519 manufacturing process Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000004913 activation Effects 0.000 description 8
- 230000000052 comparative effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- GBYFRWZNEYJWAD-VTWSTLNFSA-N (3S,6S,12S,15S,21S,24S,30S,33S)-3,12,21,30-tetrabenzyl-1,4,10,13,19,22,28,31-octazapentacyclo[31.3.0.06,10.015,19.024,28]hexatriacontane-2,5,11,14,20,23,29,32-octone Chemical compound O=C1N[C@@H](Cc2ccccc2)C(=O)N2CCC[C@H]2C(=O)N[C@@H](Cc2ccccc2)C(=O)N2CCC[C@H]2C(=O)N[C@@H](Cc2ccccc2)C(=O)N2CCC[C@H]2C(=O)N[C@@H](Cc2ccccc2)C(=O)N2CCC[C@@H]12 GBYFRWZNEYJWAD-VTWSTLNFSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Description
本発明は、光トランシーバに関する。 The present invention relates to an optical transceiver.
複数のプログラム可能なデバイス(プログラマブルデバイス)を備える光トランシーバがある。例えば、特許文献1には、上位レイヤとの通信を行うプログラム可能なロジックデバイスと、光トランシーバの制御を行うCPUと、を備える光トランシーバが記載されている。
There are optical transceivers comprising a plurality of programmable devices (programmable devices). For example,
また、非特許文献1に記載されているように、光トランシーバでは、モジュールとして、1つのファームウェアのバージョン番号が定義されることがある。
Further, as described in Non-Patent
光トランシーバが複数のプログラマブルデバイスを備えている場合、それぞれのプログラマブルデバイスのファームウェアにもバージョン番号が存在する。各プログラマブルデバイスの処理内容が異なるような場合には、複数のプログラマブルデバイスのうちの一部のプログラマブルデバイスのファームウェアのみを修正することがある。モジュールとして1つのファームウェアのバージョン番号(以下、「全体バージョン番号」という。)が定義される光トランシーバでは、全体バージョン番号は、各プログラマブルデバイスのファームウェアのバージョンの組み合わせを識別できるように定義されることになる。つまり、一部のプログラマブルデバイスのファームウェアのバージョン番号のみが変更されたとしても、全体バージョン番号は変更される必要がある。このため、各ファームウェアのバージョン番号と全体バージョン番号とは一致しないことがあり、プログラマブルデバイスのファームウェアの一つのバージョン番号に対して、複数の全体バージョン番号が対応することがあるので、各ファームウェアには全体バージョン番号を含めることができない。 When the optical transceiver includes a plurality of programmable devices, the version number also exists in the firmware of each programmable device. When the processing content of each programmable device is different, only the firmware of some programmable devices among the plurality of programmable devices may be modified. In an optical transceiver in which one firmware version number (hereinafter referred to as “total version number”) is defined as a module, the total version number is defined so that a combination of firmware versions of each programmable device can be identified. become. That is, even if only the firmware version number of some programmable devices is changed, the entire version number needs to be changed. For this reason, the version number of each firmware may not match the overall version number, and a plurality of overall version numbers may correspond to one version number of the firmware of the programmable device. Cannot include the overall version number.
ところで、各プログラマブルデバイス固有のインターフェースを経由して、各プログラマブルデバイスの内蔵メモリに直接ファームウェアが書き込まれることがある。このインターフェースを利用して各プログラマブルデバイスの内蔵メモリに直接プログラムをダウンロードする場合(以下、「直接ダウンロード」という。)、そのダウンロードデータには全体バージョン番号を含めることができないので、全体バージョン番号はプログラマブルデバイスの外部に設けられたメモリ等に保存する構成が考えられる。 By the way, the firmware may be directly written into the built-in memory of each programmable device via the interface unique to each programmable device. When downloading a program directly to the internal memory of each programmable device using this interface (hereinafter referred to as “direct download”), the entire version number cannot be included in the download data, so the entire version number is programmable. A configuration in which data is stored in a memory provided outside the device is conceivable.
光トランシーバのコネクタの端子の大部分は利用目的が規定されており、光トランシーバの製造者がその製造に係る目的のために自由に使うことができる端子は限られている。例えば、非特許文献2に記載の光トランシーバでは、5本の端子のみが利用可能である。このように、各プログラマブルデバイスの直接ダウンロード用のインターフェースに加えて、メモリ等への書き込みインターフェースを光トランシーバのコネクタ端子に接続する余裕は無い。このため、直接ダウンロードで全ての内蔵するプログラマブルデバイスにファームウェアを書き込んだ後、メモリに接続されたデバイスに、全体バージョン番号が送信されてメモリに保存されることがある。
Most of the terminals of the optical transceiver connector are defined for the purpose of use, and the terminals that can be freely used by the optical transceiver manufacturer for its manufacturing purposes are limited. For example, in the optical transceiver described in Non-Patent
しかしながら、直接ダウンロードによってプログラマブルデバイスにファームウェアを書き込んだ直後において、メモリにはファームウェアを書き込む前の状態における全体バージョン番号が保存されている。このため、光トランシーバに接続されるホスト装置等の外部装置は、メモリに保存されている全体バージョン番号が正しいかどうか判定することができず、誤った全体バージョンを取得するおそれがある。 However, immediately after the firmware is written to the programmable device by direct download, the entire version number in the state before the firmware is written is stored in the memory. For this reason, an external device such as a host device connected to the optical transceiver cannot determine whether or not the overall version number stored in the memory is correct, and may acquire an incorrect overall version.
本発明の一態様は、外部装置による誤った全体バージョン番号の取得を防止可能な光トランシーバを提供する。 One embodiment of the present invention provides an optical transceiver capable of preventing an erroneous overall version number from being acquired by an external device.
本発明の一態様に係る光トランシーバは、外部装置と通信可能な光トランシーバである。この光トランシーバは、第1記憶回路と、第1記憶回路にファームウェアを書き込むための第1インターフェースと、を有するプログラム可能な第1デバイスと、第2記憶回路と、第2記憶回路にファームウェアを書き込むための第2インターフェースと、を有するプログラム可能な第2デバイスと、第1デバイスに電気的に接続され、第1記憶回路に書き込まれているファームウェアの版数番号及び第2記憶回路に書き込まれているファームウェアの版数番号と一意に対応する全体版数番号を格納するための補助記憶回路と、を備える。第1デバイスには、補助記憶回路に格納されている全体版数番号が有効か無効かを示す状態変数が格納され、状態変数は、第1インターフェースを介して第1記憶回路にファームウェアが書き込まれたか、または、第2インターフェースを介して第2記憶回路にファームウェアが書き込まれたことに応じて、無効を示すように設定され、第1デバイスは、光トランシーバの起動処理において、状態変数が無効を示している場合に、補助記憶回路に格納されている全体版数番号を無効な値に書き換えるとともに、状態変数を有効を示すように設定する。 An optical transceiver according to one embodiment of the present invention is an optical transceiver capable of communicating with an external device. The optical transceiver writes a firmware to a first storage circuit, a programmable first device having a first interface for writing firmware to the first storage circuit, a second storage circuit, and a second storage circuit. A programmable second device, and a firmware version number electrically connected to the first device and written to the first storage circuit and written to the second storage circuit And an auxiliary storage circuit for storing an overall version number uniquely corresponding to the version number of the firmware. The first device stores a state variable indicating whether the overall version number stored in the auxiliary memory circuit is valid or invalid, and firmware is written to the first memory circuit via the first interface. Or in response to the firmware being written to the second storage circuit via the second interface, the first device is set to indicate invalidity, and the state variable is invalidated during the optical transceiver startup process. In the case shown, the entire version number stored in the auxiliary storage circuit is rewritten to an invalid value, and the state variable is set to indicate valid.
本発明の一態様によれば、外部装置による誤った全体版数番号(全体バージョン番号)の取得を防止できる。 According to one aspect of the present invention, it is possible to prevent acquisition of an incorrect overall version number (overall version number) by an external device.
[本願発明の実施形態の説明]
最初に本発明の実施形態の内容を列記して説明する。
[Description of Embodiment of Present Invention]
First, the contents of the embodiment of the present invention will be listed and described.
本発明の一態様に係る光トランシーバは、外部装置と通信可能な光トランシーバである。この光トランシーバは、第1記憶回路と、第1記憶回路にファームウェアを書き込むための第1インターフェースと、を有するプログラム可能な第1デバイスと、第2記憶回路と、第2記憶回路にファームウェアを書き込むための第2インターフェースと、を有するプログラム可能な第2デバイスと、第1デバイスに電気的に接続され、第1記憶回路に書き込まれているファームウェアの版数番号及び第2記憶回路に書き込まれているファームウェアの版数番号と一意に対応する全体版数番号を格納するための補助記憶回路と、を備える。第1デバイスには、補助記憶回路に格納されている全体版数番号が有効か無効かを示す状態変数が格納され、状態変数は、第1インターフェースを介して第1記憶回路にファームウェアが書き込まれたか、または、第2インターフェースを介して第2記憶回路にファームウェアが書き込まれたことに応じて、無効を示すように設定され、第1デバイスは、光トランシーバの起動処理において、状態変数が無効を示している場合に、補助記憶回路に格納されている全体版数番号を無効な値に書き換えるとともに、状態変数を有効を示すように設定する。 An optical transceiver according to one embodiment of the present invention is an optical transceiver capable of communicating with an external device. The optical transceiver writes a firmware to a first storage circuit, a programmable first device having a first interface for writing firmware to the first storage circuit, a second storage circuit, and a second storage circuit. A programmable second device, and a firmware version number electrically connected to the first device and written to the first storage circuit and written to the second storage circuit And an auxiliary storage circuit for storing an overall version number uniquely corresponding to the version number of the firmware. The first device stores a state variable indicating whether the overall version number stored in the auxiliary memory circuit is valid or invalid, and firmware is written to the first memory circuit via the first interface. Or in response to the firmware being written to the second storage circuit via the second interface, the first device is set to indicate invalidity, and the state variable is invalidated during the optical transceiver startup process. In the case shown, the entire version number stored in the auxiliary storage circuit is rewritten to an invalid value, and the state variable is set to indicate valid.
この光トランシーバによれば、第1インターフェースを介して第1記憶回路にファームウェアが書き込まれたか、または、第2インターフェースを介して第2記憶回路にファームウェアが書き込まれたことに応じて、補助記憶回路に格納されている全体版数番号が無効であることを示すように状態変数が設定される。そして、光トランシーバの起動処理において、状態変数が無効を示している場合に、補助記憶回路に格納されている全体版数番号が無効な値に書き換えられるとともに、状態変数が有効を示すように設定される。このため、光トランシーバの起動処理が完了して、外部装置との通信を開始した時点では、補助記憶回路に格納されている全体版数番号は無効な値に書き換えられているので、外部装置が全体版数番号を取得しても、無効な値の全体版数番号が取得され、誤った全体版数番号が取得されることを防止できる。 According to this optical transceiver, the auxiliary memory circuit is written in response to the firmware being written to the first memory circuit via the first interface or the firmware being written to the second memory circuit via the second interface. A state variable is set to indicate that the overall version number stored in is invalid. When the status variable indicates invalid in the optical transceiver activation process, the entire version number stored in the auxiliary memory circuit is rewritten to an invalid value, and the status variable is set to indicate valid. Is done. For this reason, when the optical transceiver activation process is completed and communication with the external device is started, the entire version number stored in the auxiliary storage circuit is rewritten to an invalid value. Even if the entire version number is acquired, it is possible to prevent an invalid entire version number from being acquired and an incorrect entire version number from being acquired.
第1デバイスは、第2デバイスと電気的に接続され、第2インターフェースを介して第2記憶回路にファームウェアが書き込まれたときに第2デバイスが送信する無効信号を受信して、無効信号に応じて状態変数を無効を示すように設定してもよい。この場合、第2デバイスから送信される無効信号によって、第1デバイスは、第2インターフェースを介して第2記憶回路にファームウェアが書き込まれたことを認識できる。そして、第1デバイスが無効信号を受信したことに応じて、状態変数が無効を示すように設定されるので、外部装置による誤った全体版数番号の取得をさらに確実に防止できる。 The first device is electrically connected to the second device, receives an invalid signal transmitted by the second device when firmware is written to the second storage circuit via the second interface, and responds to the invalid signal The state variable may be set to indicate invalidity. In this case, the invalid signal transmitted from the second device allows the first device to recognize that the firmware has been written to the second storage circuit via the second interface. Then, since the state variable is set to indicate invalidity in response to the first device receiving the invalid signal, it is possible to more reliably prevent an erroneous acquisition of the entire version number by the external device.
第1デバイスは、外部装置から全体版数番号を受信し、受信した全体版数番号を補助記憶回路に格納してもよい。この場合、全体版数番号を補助記憶回路に直接的に書き込むことができないとしても、第1デバイスによって全体版数番号を補助記憶回路に格納することができる。 The first device may receive the overall version number from the external device and store the received overall version number in the auxiliary storage circuit. In this case, even if the entire version number cannot be directly written in the auxiliary storage circuit, the first version number can be stored in the auxiliary storage circuit by the first device.
第1デバイスは、外部装置からの指示に応じて、補助記憶回路に格納されている全体版数番号を読み出して、読み出した全体版数番号を外部装置に送信し、第1デバイスは、全体版数番号が無効な値である場合には、外部装置から全体版数番号を受信し、受信した全体版数番号を補助記憶回路に格納してもよい。この場合、外部装置によって取得された全体版数番号が無効な値である場合には、外部装置からの全体版数番号を補助記憶回路に格納することができるので、補助記憶回路に正しい全体版数番号を保存することが可能となる。 The first device reads the overall version number stored in the auxiliary storage circuit in response to an instruction from the external device, and transmits the read overall version number to the external device. The first device When the number number is an invalid value, the entire version number may be received from the external device, and the received entire version number may be stored in the auxiliary storage circuit. In this case, if the overall version number acquired by the external device is an invalid value, the overall version number from the external device can be stored in the auxiliary storage circuit, so that the correct overall version is stored in the auxiliary storage circuit. It is possible to store several numbers.
第1記憶回路は、別のファームウェアをさらに格納してもよく、第2記憶回路は、別のファームウェアをさらに格納してもよく、補助記憶回路は、第1記憶回路に格納されている別のファームウェアの版数番号及び第2記憶回路に格納されている別のファームウェアの版数番号と一意に対応する別の全体版数番号をさらに格納してもよい。第1デバイスは、光トランシーバの起動処理において、状態変数が無効を示している場合に、補助記憶回路に格納されている全体版数番号及び別の全体版数番号を無効な値に書き換えるとともに、状態変数を有効を示すように設定してもよい。この場合、第1デバイス及び第2デバイスが2つのファームウェアを格納する構成においても、外部装置による誤った全体版数番号の取得を防止できる。 The first memory circuit may further store another firmware, the second memory circuit may further store another firmware, and the auxiliary memory circuit may be stored in another memory stored in the first memory circuit. Another version number uniquely corresponding to the version number of the firmware and the version number of another firmware stored in the second storage circuit may be further stored. The first device rewrites the whole version number and another whole version number stored in the auxiliary storage circuit to invalid values when the state variable indicates invalid in the activation process of the optical transceiver, The state variable may be set to indicate validity. In this case, even in a configuration in which the first device and the second device store two pieces of firmware, it is possible to prevent an erroneous acquisition of the entire version number by the external device.
[本願発明の実施形態の詳細]
本発明の実施形態に係る光トランシーバの具体例を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
[Details of the embodiment of the present invention]
A specific example of an optical transceiver according to an embodiment of the present invention will be described below with reference to the drawings. In addition, this invention is not limited to these illustrations, is shown by the claim, and intends that all the changes within the meaning and range equivalent to a claim are included.
図1は、一実施形態に係る光トランシーバを模式的に示す構成図である。図1に示される光トランシーバ1は、例えば、100Gbpsのフォームファクタの一つであるCFP MSA(100G Form-factor Pluggable Multi-Source Agreement)に準拠した光トランシーバである。光トランシーバ1は、接続バスB1を介してホスト装置(外部装置)2に通信可能に接続されている。ホスト装置2は、上位監視装置であり、光トランシーバ1の監視及び制御を行う。接続バスB1は、例えば、シリアルバスであり、MDIO(Management Data Input/Output)バスである。なお、CFP以外の光トランシーバでは、接続バスB1は、例えば、他のシリアルバスであり、I2C(Inter Integrated Circuit)バス、SPI(SerialPeripheral Interface)バス等である。また、光トランシーバ1の製造工程において、接続バスB1には、ホスト装置2以外にも検査装置及び製造用のパソコン等が接続される場合がある。光トランシーバ1には、光信号を送信するための発光素子及び光信号を受信するための受光素子等、さらにそれらを制御するための電子回路等も搭載されるが、図示していない。
FIG. 1 is a configuration diagram schematically illustrating an optical transceiver according to an embodiment. An
光トランシーバ1は、第1デバイス11と、第2デバイス12と、外部メモリ13(補助記憶回路)と、を備えている。第1デバイス11は、プログラム可能なデバイス(プログラマブルデバイス)であり、例えば、メインCPU(Central Processing Unit)である。第1デバイス11は、接続バスB1を介して電気的にホスト装置2等に接続されており、ホスト装置2との通信制御を行う。第1デバイス11は、例えば、ホスト装置2等との通信用のレジスタ(不図示)と、メモリ21(第1記憶回路)と、インターフェースD1(第1インターフェース)と、を備えている。インターフェースD1は、主に光トランシーバ1の製造工程において、特定の製造用の機器に接続される。光トランシーバ1がホスト装置2に組み込まれて市場にて伝送装置の一部として使用される際には、インターフェースD1はホスト装置2等に接続されていなくてもよい。インターフェースD1の詳細は後述する。
The
メモリ21は、内部の記憶情報の書き換えが可能な不揮発性の記憶素子であり、例えば、フラッシュROM(Read Only Memory)である。メモリ21は、領域21aと、領域21fと、を含む。領域21aには、第1デバイス11のファームウェアが格納される。ファームウェアには、第1デバイス11の起動処理等に関するシステムプログラム、第1デバイス11の制御に関するプログラム、及び、そのファームウェアの版数を示すバージョン番号(版数番号)が含まれている。光トランシーバ1の起動時において、第1デバイス11は領域21aに書き込まれたファームウェアを読み出して、そのファームウェアに従って動作する。
The
領域21fには、フラグF1(状態変数)が格納される。フラグF1は、外部メモリ13に格納されている全体バージョン番号(全体版数番号)が有効か無効かを示すフラグである。フラグF1は、例えば、少なくとも1ビットのバイナリデータであり、「0」が設定されている場合に、外部メモリ13に格納されている全体バージョン番号が有効であることを示し、「1」が設定されている場合に、外部メモリ13に格納されている全体バージョン番号が無効であることを示す。なお、全体バージョン番号が有効か無効かというのは、後述するように、インターフェースD1を介してメモリ21に新たにファームウェアが書き込まれたか否かという情報と対応している。すなわち、「全体バージョン番号が無効である」とは、インターフェースD1を介してメモリ21に新たにファームウェアが書き込まれた場合には、全体バージョン番号はそれに応じて新しい正しい番号に書き換えられなければならないという意味において無効である、ということを意味する。また、「全体バージョン番号が有効である」とは、そのようにインターフェースD1を介してメモリ21に書込まれることがなければ、全体バージョン番号はそのままの値で正しい番号となっているという意味において有効である、ということを意味する。このように、有効か無効かというのは、全体バージョン番号を正しい番号に更新する必要があるか否かという2つの状態に対応している。従って、フラグF1が「0(有効)」か「1(無効)」かは、全体バージョン番号の更新が必要か否かの何れかであることを判別できればよいので、「0(無効)」と「1(有効)」というように互いに入れ替えた定義が用いられてもよく、さらに「00(有効)」と「11(無効)」といった2ビット以上のバイナリデータが使用されてもよい。
A flag F1 (state variable) is stored in the
第2デバイス12は、プログラム可能なデバイス(プログラマブルデバイス)であり、例えば、サブCPUである。第2デバイス12は、接続バスB2を介して電気的に第1デバイス11に接続されている。第2デバイス12は、例えば、レーザ制御等の光トランシーバ1の制御を行う。第2デバイス12は、メモリ22(第2記憶回路)と、インターフェースD2(第2インターフェース)と、を備えている。インターフェースD2は、主に光トランシーバ1の製造工程において、特定の製造用の機器に接続される。光トランシーバ1がホスト装置2に組み込まれて市場にて伝送装置の一部として使用される際には、インターフェースD2はホスト装置2等に接続されていなくてもよい。インターフェースD2の詳細は後述する。
The
メモリ22は、内部の記憶情報の書き換えが可能な不揮発性の記憶素子であり、例えば、フラッシュROMである。メモリ22は、領域22aと、領域22fと、を含む。領域22aには、第2デバイス12のファームウェアが格納される。ファームウェアには、第2デバイス12の起動処理等に関するシステムプログラム、第2デバイス12の制御に関するプログラム、及び、そのファームウェアのバージョン番号が含まれている。光トランシーバ1の起動時において、第2デバイス12は領域22aに書き込まれたファームウェアを読み出して、そのファームウェアに従って動作する。
The
領域22fには、フラグF2(状態変数)が格納される。フラグF2は、外部メモリ13に格納されている全体バージョン番号が有効か無効かを示すフラグである。フラグF2は、例えば、少なくとも1ビットのバイナリデータであり、「0」が設定されている場合に、外部メモリ13に格納されている全体バージョン番号が有効であることを示し、「1」が設定されている場合に、外部メモリ13に格納されている全体バージョン番号が無効であることを示す。なお、全体バージョン番号が有効か無効かというのは、後述するように、インターフェースD2を介してメモリ22に新たにファームウェアが書き込まれたか否かという情報と対応している。すなわち、「全体バージョン番号が無効である」とは、インターフェースD2を介してメモリ22に新たにファームウェアが書き込まれた場合には、全体バージョン番号はそれに応じて新しい正しい番号に書き換えられなければならないという意味において無効である、ということを意味する。また、「全体バージョン番号が有効である」とは、そのようにインターフェースD2を介してメモリ22に書込まれることがなければ、全体バージョン番号はそのままの値で正しい番号となっているという意味において有効である、ということを意味する。このように、有効か無効かというのは、全体バージョン番号の更新が必要な否かという2つの状態を便宜的に表している。従って、フラグF2が「0(有効)」か「1(無効)」かは、全体バージョン番号の更新が必要か否かの何れかであることを判別できればよいので、「0(無効)」と「1(有効)」と互いに入れ替えた定義が用いられてもよく、さらに「00(有効)」と「11(無効)」といった2ビット以上のバイナリデータが使用されてもよい。
A flag F2 (state variable) is stored in the
外部メモリ13は、内部の記憶情報の書き換えが可能な不揮発性の記憶素子であり、例えば、フラッシュROMである。外部メモリ13は、接続バスB3を介して電気的に第1デバイス11に接続されている。外部メモリ13は、領域13aを含む。領域13aには、全体バージョン番号が格納される。光トランシーバ1では、モジュールとして1つのファームウェアのバージョン番号である全体バージョン番号が定義されている。全体バージョン番号は、第1デバイス11のファームウェアのバージョン番号と第2デバイス12のファームウェアのバージョン番号との組み合わせを一意的に識別可能な番号である。すなわち、これは、全体バージョン番号が一つに特定されれば、相互の対応関係を示す情報(例えば、対応表)を参照して、全体バージョン番号に対応する個々のファームウェアのバージョン番号が一意的に求まる状態にあることを意味する。
The
光トランシーバ1では、第1デバイス11が行う制御と、第2デバイス12が行う制御とは、処理内容が大きく異なるので、第1デバイス11のファームウェア及び第2デバイス12のファームウェアのいずれか一方のみが修正されることがある。例えば、ホスト装置2との通信用のレジスタのアドレスマッピングが変更された場合には、第2デバイス12が行う制御は変更されないので、第1デバイス11のファームウェアのみが修正される。一方、レーザ制御等の処理が変更された場合には、第1デバイス11が行う制御は変更されないので、第2デバイス12のファームウェアのみが修正される。つまり、第1デバイス11のファームウェア及び第2デバイス12のファームウェアとは個別に更新され得るので、第1デバイス11のファームウェア及び第2デバイス12のファームウェアの少なくともいずれかが更新されると、全体バージョン番号も更新される。
In the
図2は、全体バージョン番号と各デバイスのファームウェアのバージョン番号との関係の一例を示す図である。図2に示されるように、第1デバイス11のファームウェアのバージョン番号が「1.0」であり、第2デバイス12のファームウェアのバージョン番号が「1.0」である場合、全体バージョン番号は「1.0」である。この状態で、第1デバイス11のファームウェアがバージョン番号「1.1」のファームウェアに更新された場合、全体バージョン番号は「1.1」となる。さらに、第2デバイス12のファームウェアがバージョン番号「1.1」のファームウェアに更新された場合、全体バージョン番号は「1.2」となる。さらに、第1デバイス11のファームウェアがバージョン番号「1.2」のファームウェアに更新されるとともに、第2デバイス12のファームウェアがバージョン番号「1.2」のファームウェアに更新された場合、全体バージョン番号は「1.3」となる。このように、デバイスのファームウェアのバージョン番号に対して、全体バージョン番号が1つ以上割り当てられることがある。例えば、第1デバイス11のバージョン番号「1.1」のファームウェアに対して、全体バージョン番号は「1.1」及び「1.2」が割り当てられる。
FIG. 2 is a diagram illustrating an example of the relationship between the overall version number and the firmware version number of each device. As shown in FIG. 2, when the firmware version number of the
図1に戻って、光トランシーバ1の説明を続ける。インターフェースD1は、第1デバイス11のメモリ21に第1デバイス11のファームウェアを直接書き込むためのインターフェースである。つまり、インターフェースD1は、第1デバイス11に固有のインターフェースであって、直接ダウンロード用のインターフェースである。第1デバイス11のファームウェアは、光トランシーバ1の非動作時にインターフェースD1を介してメモリ21の領域21aに直接書き込まれる。なお、この実施形態では、直接ダウンロードを行う前に、領域21aにファームウェアが格納されている場合には、領域21aに格納されているファームウェアが、インターフェースD1を介して第1デバイス11に送信されたファームウェアによって書き換えられる。また、後述するように、インターフェースD1は、光トランシーバ1の製造段階において第1デバイス11のメモリ21の領域21aに最初にファームウェアを書き込む場合にも使用することができる。
Returning to FIG. 1, the description of the
インターフェースD1を介して第1デバイス11に送信されるデータには、起動処理等に関するシステムプログラム、第1デバイス11の制御に関するプログラム、及び、ファームウェアのバージョン番号を有するファームウェア部分と、フラグF1の値(=1)を有する部分と、が含まれる。このため、インターフェースD1を介して第1デバイス11のメモリ21にファームウェアを書き込む場合、起動処理等に関するシステムプログラム、第1デバイス11の制御に関するプログラム、及び、ファームウェアのバージョン番号が領域21aに書き込まれ、フラグF1の値が領域21fに書き込まれる。つまり、フラグF1は、インターフェースD1によってメモリ21にファームウェアが書き込まれたことに応じて、外部メモリ13に格納されている全体バージョン番号が無効であることを示すように設定される。全体バージョン番号が無効であることを示す値としては、例えば、正常な全体バージョン番号の範囲が1.00から99.99であった場合に、その範囲外の0.00または999.00などを使用することができる。
The data transmitted to the
インターフェースD2は、第2デバイス12のメモリ22に第2デバイス12のファームウェアを直接書き込むためのインターフェースである。つまり、インターフェースD2は、第2デバイス12に固有のインターフェースであって、直接ダウンロード用のインターフェースである。第2デバイス12のファームウェアは、光トランシーバ1の非動作時にインターフェースD2を介してメモリ22の領域22aに直接書き込まれる。なお、この実施形態では、直接ダウンロードを行う前に、領域22aにファームウェアが格納されている場合には、領域22aに格納されているファームウェアが、インターフェースD2を介して第2デバイス12に送信されたファームウェアによって書き換えられる。また、後述するように、インターフェースD2は、光トランシーバ1の製造段階において第2デバイス12のメモリ22の領域22aに最初にファームウェアを書き込む場合にも使用することができる。
The interface D2 is an interface for directly writing the firmware of the
インターフェースD2を介して第2デバイス12に送信されるデータには、起動処理等に関するシステムプログラム、第2デバイス12の制御に関するプログラム、及び、ファームウェアのバージョン番号を有するファームウェア部分と、フラグF2の値(=1)を有する部分と、が含まれる。このため、インターフェースD2を介して第2デバイス12のメモリ22にファームウェアを書き込む場合、起動処理等に関するシステムプログラム、第2デバイス12の制御に関するプログラム、及び、ファームウェアのバージョン番号が領域22aに書き込まれ、フラグF2の値が領域22fに書き込まれる。つまり、フラグF2は、インターフェースD2によってメモリ22にファームウェアが書き込まれたことに応じて、外部メモリ13に格納されている全体バージョン番号が無効であることを示すように設定される。
The data transmitted to the
第1デバイス11は、光トランシーバ1の起動処理において、フラグF1をチェックする。第1デバイス11は、フラグF1が外部メモリ13に格納されている全体バージョン番号が有効であることを示している場合、残りの起動処理を行う。第1デバイス11は、フラグF1が外部メモリ13に格納されている全体バージョン番号が無効であることを示している場合に、外部メモリ13に格納されている全体バージョン番号を無効な値に書き換えるとともに、外部メモリ13に格納されている全体バージョン番号が有効であることを示すようにフラグF1を設定し、残りの起動処理を行う。
The
第1デバイス11は、第2デバイス12から後述の無効信号を受信したことに応じて、外部メモリ13に格納されている全体バージョン番号を無効な値に書き換える。この場合、第1デバイス11は、第2デバイス12から無効信号を受信したことに応じて、外部メモリ13に格納されている全体バージョン番号が無効であることを示すようにフラグF1を設定してもよい。つまり、フラグF1は、インターフェースD2によってメモリ22にファームウェアが書き込まれたことに応じて、外部メモリ13に格納されている全体バージョン番号が無効であることを示すように設定されてもよい。第1デバイス11は、光トランシーバ1の起動処理が完了したことに応じて、ホスト装置2との通信が可能であることを示すレディー信号をホスト装置2に送信する。
The
第1デバイス11は、光トランシーバ1の全体バージョン番号の取得指示をホスト装置2から受信したことに応じて、外部メモリ13に格納されている全体バージョン番号を読み出して、読み出した全体バージョン番号をホスト装置2に送信する。第1デバイス11は、光トランシーバ1に含まれるデバイスのファームウェアのバージョン番号の取得指示をホスト装置2から受信したことに応じて、メモリ21からバージョン番号を取得するとともに、第2デバイス12のファームウェアのバージョン番号の取得指示を第2デバイス12に出力する。そして、第1デバイス11は、第2デバイス12から第2デバイス12のファームウェアのバージョン番号を受信し、第1デバイス11のファームウェアのバージョン番号及び第2デバイス12のファームウェアのバージョン番号をホスト装置2に送信する。第1デバイス11は、全体バージョン番号とともに全体バージョン番号書き込み指示をホスト装置2から受信したことに応じて、受信した全体バージョン番号を外部メモリ13に格納する。
The
光トランシーバ1は、ファームウェアのアップグレード機能を備えてもよい。この場合、第1デバイス11は、光トランシーバ1の動作中に、ホスト装置2から接続バスB1を介して第1デバイス11のファームウェア及び第2デバイス12のファームウェアの少なくともいずれかと全体バージョン番号とを含んだアップグレードデータを受信する。第1デバイス11は、アップグレードデータを保存する際に光トランシーバ1がホスト装置2との通信を継続するために、受信したアップグレードデータを一旦外部メモリ13に格納する。
The
第2デバイス12は、光トランシーバ1の起動処理において、フラグF2をチェックする。第2デバイス12は、フラグF2が外部メモリ13に格納されている全体バージョン番号が有効であることを示している場合、第2デバイス12の残りの起動処理を行う。第2デバイス12は、フラグF2が外部メモリ13に格納されている全体バージョン番号が無効であることを示している場合に、外部メモリ13に格納されている全体バージョン番号が無効であることを示す無効信号を第1デバイス11に送信するとともに、フラグF2を有効を示すように設定し、第2デバイス12の残りの起動処理を行う。つまり、第2デバイス12は、インターフェースD2を介してメモリ22にファームウェアが書き込まれたことによって、無効信号を送信する。
The
第2デバイス12は、第2デバイス12のファームウェアのバージョン番号の取得指示を第1デバイス11から受信すると、メモリ22からバージョン番号を取得して、取得したバージョン番号を第1デバイス11に出力する。
When the
なお、光トランシーバ1を製造する時に、光トランシーバ1を組み立てた直後は、第1デバイス11及び第2デバイス12にはファームウェアが書き込まれていないので、インターフェースD1及びインターフェースD2を経由して、第1デバイス11のメモリ21及び第2デバイス12のメモリ22に直接ファームウェアが書き込まれる。また、第1デバイス11のファームウェア及び第2デバイス12のファームウェアが一度書き込まれた後であっても、アップグレード機能で更新可能な範囲外に存在するルーチン(システムプログラム)の変更が必要になった場合等には、インターフェースD1及びインターフェースD2を経由して、第1デバイス11のメモリ21及び第2デバイス12のメモリ22に直接ファームウェアが書き込まれる。
Note that when the
次に、図2〜図5を用いて、光トランシーバ1の動作を説明する。図3は、光トランシーバ1の直接ダウンロード時の動作を説明するための図である。図4は、図3の光トランシーバ1の起動時の動作を説明するための図である。図5は、光トランシーバ1の起動処理を示すフローチャートである。
Next, the operation of the
まず、第1デバイス11のメモリ21にバージョン番号が「X」のファームウェアが格納されており、第2デバイス12のメモリ22にバージョン番号が「YY」のファームウェアが格納されているとする。このとき、外部メモリ13には、全体バージョン番号として「Z」が格納されている。この状態において、図3に示されるように、直接ダウンロードによって、インターフェースD1を経由して、第1デバイス11のメモリ21にバージョン番号が「XX」のファームウェアが書き込まれる。このとき、メモリ21の領域21fに、フラグF1の値として「1」が書き込まれる。つまり、第1デバイス11のファームウェアを直接ダウンロードによって更新した場合には、全体バージョン番号とは無関係にフラグF1の値が「1」に設定される。
First, it is assumed that firmware having a version number “X” is stored in the
図3の光トランシーバ1の状態において、光トランシーバ1を起動した場合の起動処理について説明する。この場合、まず、第1デバイス11はメモリ21の領域21aに格納されているファームウェアを読み出し、そのファームウェアで動作を開始する。また、第2デバイス12は、メモリ22の領域22aに格納されているファームウェアを読み出し、そのファームウェアで動作を開始する。そして、第1デバイス11は、メモリ21の領域21fを読み出し、フラグF1の値が「1」であるか否か、つまり、外部メモリ13に格納されている全体バージョン番号が無効であるか否かを判定する(ステップS01)。
An activation process when the
ステップS01において、フラグF1の値が「1」であると判定されると(ステップS01;Yes)、第1デバイス11は、外部メモリ13の領域13aに格納されている全体バージョン番号を無効な値に書き換える(ステップS02)。そして、第1デバイス11は、メモリ21の領域21fに格納されているフラグF1の値を「0」に書き換える(ステップS03)。そして、第1デバイス11は、残りの起動処理を行って、ホスト装置2にレディー信号を出力する(ステップS04)。このようにして、光トランシーバ1の起動処理が行われ、光トランシーバ1は図4に示される状態となる。
If it is determined in step S01 that the value of the flag F1 is “1” (step S01; Yes), the
ホスト装置2は、光トランシーバ1からレディー信号を受信した後、例えば、アップグレード機能で第1デバイス11のファームウェアをアップグレードする際に、光トランシーバ1の現在の全体バージョンを確認するために、光トランシーバ1の全体バージョン番号の取得指示を光トランシーバ1に出力する。第1デバイス11は、ホスト装置2から光トランシーバ1の全体バージョン番号の取得指示を受信すると、外部メモリ13の領域13aから全体バージョン番号を読み出す。このとき、外部メモリ13の領域13aには無効な値が格納されているので、第1デバイス11は、全体バージョン番号として無効な値をホスト装置2に送信する。
The
続いて、ホスト装置2は、全体バージョン番号として無効な値を受信すると、光トランシーバ1に含まれる各デバイスのファームウェアのバージョン番号の取得指示を光トランシーバ1に送信する。そして、第1デバイス11は、光トランシーバ1に含まれるデバイスのファームウェアのバージョン番号の取得指示を受信すると、メモリ21からバージョン番号「XX」を取得するとともに、第2デバイス12のファームウェアのバージョン番号の取得指示を第2デバイス12に出力する。そして、第2デバイス12は、第2デバイス12のファームウェアのバージョン番号の取得指示を受信すると、メモリ22からバージョン番号「YY」を取得して、取得したバージョン番号「YY」を第1デバイス11に出力する。
Subsequently, when the
続いて、第1デバイス11は、第2デバイス12から第2デバイス12のファームウェアのバージョン番号「YY」を取得すると、第1デバイス11のファームウェアのバージョン番号「XX」及び第2デバイス12のファームウェアのバージョン番号「YY」をホスト装置2に送信する。そして、ホスト装置2は、第1デバイス11のファームウェアのバージョン番号「XX」及び第2デバイス12のファームウェアのバージョン番号「YY」を受信すると、第1デバイス11のファームウェアのバージョン番号「XX」及び第2デバイス12のファームウェアのバージョン番号「YY」に対応付けられた光トランシーバ1の全体バージョン番号「ZZ」を、予め格納されているテーブルから取得し、取得した全体バージョン番号「ZZ」とともに、全体バージョン番号の書き込み指示を光トランシーバ1に送信する。そして、第1デバイス11は、ホスト装置2から全体バージョン番号「ZZ」を受信すると、外部メモリ13の領域13aに全体バージョン番号「ZZ」を書き込む。このようにして、ホスト装置2は、ファームウェア更新後の正しい全体バージョン番号を取得するとともに、光トランシーバ1は、ファームウェア更新後の正しい全体バージョン番号を外部メモリ13に格納する。
Subsequently, when the
一方、第1デバイス11のメモリ21にバージョン番号が「X」のファームウェアが格納されており、第2デバイス12のメモリ22にバージョン番号が「YY」のファームウェアが格納されており、外部メモリ13には、全体バージョン番号として「Z」が格納されている状態で、ファームウェアの更新を行うことなく光トランシーバ1を起動した場合の起動処理について説明する。この場合、まず、第1デバイス11はメモリ21の領域21aに格納されているファームウェアを読み出し、そのファームウェアで動作を開始する。また、第2デバイス12は、メモリ22の領域22aに格納されているファームウェアを読み出し、そのファームウェアで動作を開始する。そして、第1デバイス11は、メモリ21の領域21fを読み出し、フラグF1の値が「1」であるか否か、つまり、外部メモリ13に格納されている全体バージョン番号が無効であるか否かを判定する(ステップS01)。
On the other hand, firmware whose version number is “X” is stored in the
ステップS01において、フラグF1の値が「0」であると判定されると(ステップS01;No)、第1デバイス11は、残りの起動処理を行って、ホスト装置2にレディー信号を出力する(ステップS04)。このようにして、光トランシーバ1の起動処理が行われる。
If it is determined in step S01 that the value of the flag F1 is “0” (step S01; No), the
ホスト装置2は、光トランシーバ1からレディー信号を受信した後、例えば、アップグレード機能で第1デバイス11のファームウェアをアップグレードする際に、光トランシーバ1の現在の全体バージョンを確認するために、光トランシーバ1の全体バージョン番号の取得指示を光トランシーバ1に出力する。第1デバイス11は、ホスト装置2から光トランシーバ1の全体バージョン番号の取得指示を受信すると、外部メモリ13の領域13aから全体バージョン番号を読み出す。このとき、外部メモリ13の領域13aには有効な値である「Z」が格納されているので、第1デバイス11は、全体バージョン番号として「Z」をホスト装置2に送信する。このようにして、ホスト装置2は、光トランシーバ1の全体バージョン番号を取得する。
The
アップグレード機能によって、第1デバイス11のファームウェアを更新する場合、ホスト装置2から第1デバイス11に送信されるアップグレードデータには、第1デバイス11の制御に関するプログラム(ファームウェア)、ファームウェアのバージョン番号、及び、全体バージョン番号が含まれる。そして、光トランシーバ1の再起動時において、外部メモリ13に格納されている第1デバイス11のファームウェアがメモリ21の領域21aに書き込まれ、第1デバイス11は領域21aに書き込まれたファームウェアを読み出して、そのファームウェアで動作する。第1デバイス11は、ファームウェアの更新に成功したら、ホスト装置2から受信した全体バージョン番号を外部メモリ13に格納する。このように、アップグレード機能によるファームウェアの更新では、システムプログラム及びフラグF1の値は書き換えられない。
When the firmware of the
また、アップグレード機能によって、第2デバイス12のファームウェアを更新する場合、ホスト装置2から第1デバイス11に送信されるアップグレードデータには、第2デバイス12の制御に関するプログラム(ファームウェア)、ファームウェアのバージョン番号及び全体バージョン番号が含まれる。そして、光トランシーバ1の再起動時において、外部メモリ13に格納されている第2デバイス12のファームウェアが、第1デバイス11を介してメモリ22の領域22aに書き込まれ、第2デバイス12は領域22aに書き込まれたファームウェアを読み出して、そのファームウェアで動作する。第2デバイス12は、ファームウェアの更新に成功したら、第1デバイス11に更新が成功したことを通知し、第1デバイス11はホスト装置2から受信した全体バージョン番号を外部メモリ13に格納する。このように、アップグレード機能によるファームウェアの更新では、システムプログラム及びフラグF2の値は書き換えられない。
When the firmware of the
次に、図6を参照して、比較例の光トランシーバと比較しながら光トランシーバ1の作用効果を説明する。図6は、比較例の光トランシーバを模式的に示す構成図である。図6に示されるように、光トランシーバ100は、光トランシーバ1と比較して、第1デバイス11がメモリ21に領域21fを備えていない点、及び、第2デバイス12がメモリ22に領域22fを備えていない点において相違している。
Next, with reference to FIG. 6, the effect of the
光トランシーバ100において、例えば、第1デバイス11のメモリ21にバージョン番号が「X」のファームウェアが格納されており、第2デバイス12のメモリ22にバージョン番号が「YY」のファームウェアが格納されており、外部メモリ13には、全体バージョン番号として「Z」が格納されているとする。この状態において、直接ダウンロードによって、インターフェースD1を経由して、第1デバイス11のメモリ21にバージョン番号が「XX」のファームウェアが書き込まれる。このとき、第1デバイス11のファームウェアを変更する際には第1デバイス11は停止しているので、外部メモリ13の全体バージョン番号が更新されることはなく、外部メモリ13には、全体バージョン番号として引き続き「Z」が格納されている。そして、第1デバイス11のファームウェアを変更した後に第1デバイス11を動作させるために、光トランシーバ100を再起動する。
In the
光トランシーバ100の起動処理において、第1デバイス11はメモリ21の領域21aに格納されているファームウェアを読み出し、そのファームウェアで動作を開始する。また、第2デバイス12は、メモリ22の領域22aに格納されているファームウェアを読み出し、そのファームウェアで動作を開始する。光トランシーバ100の起動処理において外部メモリ13に格納されている全体バージョン番号は更新されない。そして、第1デバイス11及び第2デバイス12の起動処理が完了すると、第1デバイス11は、ホスト装置2にレディー信号を出力する。
In the activation process of the
このとき、ホスト装置2は第1デバイス11のファームウェアがインターフェースD1を使用して更新されたことを認識することができないので、ホスト装置2は、光トランシーバ100からレディー信号を受信した後、例えば、アップグレード機能で第1デバイス11のファームウェアをアップグレードする際に、光トランシーバ100の全体バージョン番号の取得指示を光トランシーバ100に出力する。第1デバイス11は、ホスト装置2から光トランシーバ1の全体バージョン番号の取得指示を受信すると、外部メモリ13の領域13aから全体バージョン番号を読み出す。このとき、外部メモリ13の領域13aには「Z」が格納されているので、第1デバイス11は、全体バージョン番号として「Z」をホスト装置2に送信する。ホスト装置2は、光トランシーバ100の全体バージョン番号「Z」を取得するが、この全体バージョン番号が誤っていることを認識することはできない。
At this time, since the
一方、光トランシーバ1では、上述のように、インターフェースD1によってメモリ21にファームウェアが書き込まれたことに応じて、外部メモリ13に格納されている全体バージョン番号が無効であることを示すようにフラグF1が設定される。そして、光トランシーバ1の起動処理において、外部メモリ13に格納されている全体バージョン番号が無効であることをフラグF1が示している場合に、外部メモリ13に格納されている全体バージョン番号が無効な値に書き換えられる。つまり、ファームウェアがメモリ21に書き込まれてからホスト装置2との通信を開始するまでの間に、外部メモリ13に格納されている全体バージョン番号が無効な値に書き換えられる。このため、光トランシーバ1の起動処理が完了して、ホスト装置2との通信を開始した時点では、外部メモリ13に格納されている全体バージョン番号は無効な値に書き換えられているので、ホスト装置2が全体バージョン番号を取得しても、無効な値の全体バージョン番号が取得され、誤った全体バージョン番号が取得されることを防止できる。また、外部メモリ13に格納されている全体バージョン番号が無効な値に書き換えられるとともに、フラグF1が有効を示すように設定される。これにより、インターフェースD1によるファームウェアの直接ダウンロードの後、外部メモリ13に格納されている全体バージョン番号を無効な値に書き換える処理を一度だけ行うことができる。また、フラグF1の書き換えはホスト装置2との通信を開始する前の起動処理時に行われるので、フラグF1の書き換え中にプログラムが停止されてもホスト装置2との通信が停止することはない。
On the other hand, in the
第1デバイス11は、ホスト装置2から全体バージョンを受信し、受信した全体バージョン番号を外部メモリ13に格納する。このため、インターフェースD1及びインターフェースD2に加えて、外部メモリ13への書き込みインターフェースを光トランシーバ1のコネクタ端子に接続する余裕が無く、全体バージョン番号を外部メモリ13に直接的に書き込むことはできないとしても、第1デバイス11によって全体バージョン番号を外部メモリ13に格納することができる。
The
ホスト装置2が無効な値の全体バージョン番号を取得した場合には、ホスト装置2によって第1デバイス11のファームウェアのバージョン番号及び第2デバイス12のファームウェアのバージョン番号が取得され、そのバージョン番号の組み合わせに基づいて正しい全体バージョンが取得される。そして、第1デバイス11は、ホスト装置2から正しい全体バージョン番号を受信し、外部メモリ13に格納する。このように、ホスト装置2は、無効な値の全体バージョン番号を取得することによって、全体バージョン番号の書き込み忘れを検出でき、外部メモリ13に正しい全体バージョン番号を保存することが可能となる。
When the
なお、本発明に係る光トランシーバは上記実施形態に限定されない。例えば、光トランシーバ1は、第1デバイス11及び第2デバイス12に限られず、2以上のプログラマブルデバイスを備えていればよい。この場合、フラグF1は、直接ダウンロード用のインターフェースによって2以上のプログラマブルデバイスのいずれかにファームウェアが書き込まれたことに応じて、外部メモリ13に格納されている全体バージョン番号が無効であることを示すように設定されればよい。従って、フラグF1またはフラグF2は、ファームウェアが格納されるメモリ21及びメモリ22とは別にそれぞれのデバイス内に用意されたメモリ内に設定されてもよい。また、ホスト装置2は、実際に市場にて通信に使用される装置に限定される必要はなく、例えば、光トランシーバ1の製造段階において、光トランシーバ1を組み立てた後に、上述したように、第1デバイス11のファームウェアおよび第2デバイス12のファームウェアの少なくとも1つを新しく書き込むか、または更新した場合に、ホスト装置2の代わりに光トランシーバ1に正しい全体バージョン番号を書き込むための専用の電子機器が使用されてもよい。その場合、最新の状態の第1デバイス11のファームウェアのバージョン番号及び第2デバイス12のファームウェアのバージョン番号に対応する正しい全体バージョン番号をその専用の電子機器の内部に予め記憶させておくことができる。
The optical transceiver according to the present invention is not limited to the above embodiment. For example, the
また、フラグF1は、直接ダウンロード用のインターフェースによって2以上のプログラマブルデバイスのいずれかにファームウェアが書き込まれたことに応じて、外部メモリ13に格納されている全体バージョン番号が無効であることを示すように設定されるのであれば、第2デバイス12のメモリ22は、領域22fを有しなくてもよい。つまり、フラグF2は省略され得る。例えば、インターフェースD2を介して第2デバイス12のメモリ22の領域22aにファームウェアが書き込まれるとともに、インターフェースD1を介して第1デバイス11のメモリ21の領域21fに外部メモリ13に格納されている全体バージョン番号が無効であることを示す値のフラグF1が書き込まれるようにしてもよい。
Further, the flag F1 indicates that the entire version number stored in the
また、外部メモリ13は、接続バスを介して第2デバイス12に接続されていてもよい。この場合、光トランシーバ1の起動処理において、外部メモリ13に格納されている全体バージョン番号が無効であることをフラグF2が示している場合に、第2デバイス12は、外部メモリ13に格納されている全体バージョン番号を無効な値に書き換えるとともに、フラグF2を外部メモリ13に格納されている全体バージョン番号が有効であることを示すように設定してもよい。
The
また、アップグレード機能によるファームウェアの更新に失敗した場合にも、元のファームウェアで起動できるようにするために、各デバイスが2つのファームウェア格納領域を備えていてもよい。図7は、変形例の光トランシーバを模式的に示す構成図である。図7に示される光トランシーバ1は、図1の光トランシーバ1と比較して、メモリ21が領域21bをさらに含んでいる点、メモリ22が領域22bをさらに含んでいる点、及び、外部メモリ13が領域13bをさらに含んでいる点において相違している。
In addition, each device may be provided with two firmware storage areas in order to be able to start up with the original firmware even when firmware update by the upgrade function fails. FIG. 7 is a configuration diagram schematically illustrating an optical transceiver according to a modification. The
領域21bには、第1デバイス11のファームウェアが格納される。つまり、メモリ21は、2つのファームウェアの格納領域を有している。同様に、領域22bには、第2デバイス12のファームウェアが格納される。つまり、メモリ22は、2つのファームウェアの格納領域を有している。領域13bには、全体バージョン番号が格納される。つまり、外部メモリ13は、2つの全体バージョン番号の格納領域を有している。領域13aに格納されている全体バージョン番号は、第1デバイス11のメモリ21の領域21aに格納されているファームウェアのバージョン番号と、第2デバイス12のメモリ22の領域22aに格納されているファームウェアのバージョン番号と、の組み合わせを一意的に識別可能な番号である。領域13bに格納されている全体バージョン番号は、第1デバイス11のメモリ21の領域21bに格納されているファームウェアのバージョン番号と、第2デバイス12のメモリ22の領域22bに格納されているファームウェアのバージョン番号と、の組み合わせを一意的に識別可能な番号である。
The firmware of the
この場合、フラグF1は、インターフェースD1によってメモリ21の領域21aまたは領域21bにファームウェアが書き込まれたことに応じて、外部メモリ13に格納されている全体バージョン番号が無効であることを示すように設定される。同様に、フラグF2は、インターフェースD2によってメモリ22の領域22aまたは領域22bにファームウェアが書き込まれたことに応じて、外部メモリ13に格納されている全体バージョン番号が無効であることを示すように設定される。
In this case, the flag F1 is set to indicate that the entire version number stored in the
第1デバイス11は、光トランシーバ1の起動処理において、フラグF1が外部メモリ13に格納されている全体バージョン番号が無効であることを示している場合に、外部メモリ13の領域13a及び領域13bのそれぞれに格納されている全体バージョン番号を無効な値に書き換えるとともに、外部メモリ13に格納されている全体バージョン番号が有効であることを示すようにフラグF1を設定し、残りの起動処理を行う。
When the flag F1 indicates that the entire version number stored in the
第2デバイス12は、光トランシーバ1の起動処理において、フラグF2が外部メモリ13に格納されている全体バージョン番号が無効であることを示している場合に、外部メモリ13に格納されている全体バージョン番号が無効であることを示す無効信号を第1デバイス11に送信するとともに、外部メモリ13に格納されている全体バージョン番号が有効であることを示すようにフラグF2を設定し、第2デバイス12の残りの起動処理を行う。そして、第1デバイス11は、第2デバイス12から無効信号を受信したことに応じて、外部メモリ13の領域13a及び領域13bのそれぞれに格納されている全体バージョン番号を無効な値に書き換える。
When the flag F2 indicates that the overall version number stored in the
第1デバイス11は、光トランシーバ1の動作中に、ホスト装置2から接続バスB1を介して第1デバイス11のファームウェア及び第2デバイス12のファームウェアの少なくともいずれかと全体バージョン番号とを含むアップグレードデータを受信し、受信したアップグレードデータを一旦外部メモリ13に格納する。アップグレードデータには、領域21aに格納されているファームウェアと領域22aに格納されているファームウェアとの組み合わせの更新か、領域21bに格納されているファームウェアと領域22bに格納されているファームウェアとの組み合わせの更新か、がホスト装置2によって予め指定されている。
During the operation of the
そして、アップグレードデータにおいて、領域21aに格納されているファームウェアと領域22aに格納されているファームウェアとの組み合わせの更新が指定されている場合、光トランシーバ1の再起動時において、例えばアップグレードデータに含まれる第1デバイス11のファームウェアがメモリ21の領域21bに書き込まれ、第1デバイス11は、領域21a及び領域21bのそれぞれに格納されているファームウェアのいずれか指定された方で動作する。第1デバイス11は、ファームウェアの更新に成功したら、ホスト装置2から受信したアップグレードデータに含まれる全体バージョン番号を外部メモリ13の領域13aに格納する。
In the upgrade data, when the update of the combination of the firmware stored in the
また、ホスト装置2は、実際に市場にて通信に使用される装置に限定される必要はなく、例えば、光トランシーバ1の製造段階において、光トランシーバ1を組み立てた後に、上述したように、第1デバイス11のファームウェア及び第2デバイス12のファームウェアの少なくとも1つを新しく書き込むか、更新した場合に、ホスト装置2の代わりに光トランシーバ1に正しい全体バージョン番号を書き込むための専用の電子機器が使用されてもよい。その場合、最新の状態の第1デバイス11の複数のファームウェアのそれぞれバージョン番号及び第2デバイス12の複数のファームウェアのそれぞれのバージョン番号に対応する正しい全体バージョン番号をその専用の電子機器の内部に予め記憶させておくことで、容易に正しい全体バージョンを取得し、それを第1デバイス11に送信して、複数の正しい全体バージョン番号を外部メモリ13に書き込ませることができる。
Further, the
このように、変形例の光トランシーバ1では、第1デバイス11のメモリ21に格納されているいずれか一方のファームウェアと、第2デバイス12のメモリ22に格納されているいずれか一方のファームウェアのファームウェアと、の組み合わせに含まれるファームウェアを更新するとともに、更新対象となるファームウェアの組み合わせを一意的に識別可能な全体バージョン番号を更新することによって、アップグレード処理を行うことができる。そして、光トランシーバ1の起動処理において、フラグF1が外部メモリ13に格納されている全体バージョン番号が無効であることを示している場合に、外部メモリ13の領域13a及び領域13bのそれぞれに格納されている全体バージョン番号を無効な値に書き換えることによって、第1デバイス11及び第2デバイス12が2つのファームウェアを格納する構成においても、ホスト装置2による誤った全体バージョンの取得を防止できる。
As described above, in the
1…光トランシーバ、2…ホスト装置(外部装置)、11…第1デバイス、12…第2デバイス、13…外部メモリ(補助記憶回路)、21…メモリ(第1記憶回路)、22…メモリ(第2記憶回路)、D1…インターフェース(第1インターフェース)、D2…インターフェース(第2インターフェース)、F1,F2…フラグ(状態変数)。
DESCRIPTION OF
Claims (5)
第1記憶回路と、前記第1記憶回路にファームウェアを書き込むための第1インターフェースと、を有するプログラム可能な第1デバイスと、
第2記憶回路と、前記第2記憶回路にファームウェアを書き込むための第2インターフェースと、を有するプログラム可能な第2デバイスと、
前記第1デバイスに電気的に接続され、前記第1記憶回路に書き込まれているファームウェアの版数番号及び前記第2記憶回路に書き込まれているファームウェアの版数番号と一意に対応する全体版数番号を格納するための補助記憶回路と、
を備え、
前記第1デバイスには、前記補助記憶回路に格納されている前記全体版数番号が有効か無効かを示す状態変数が格納され、
前記状態変数は、前記第1インターフェースを介して前記第1記憶回路にファームウェアが書き込まれたか、または、前記第2インターフェースを介して前記第2記憶回路にファームウェアが書き込まれたことに応じて、無効を示すように設定され、
前記第1デバイスは、前記光トランシーバの起動処理において、前記状態変数が無効を示している場合に、前記補助記憶回路に格納されている前記全体版数番号を無効な値に書き換えるとともに、前記状態変数を有効を示すように設定する、光トランシーバ。 An optical transceiver capable of communicating with an external device,
A programmable first device comprising: a first memory circuit; and a first interface for writing firmware to the first memory circuit;
A programmable second device having a second memory circuit and a second interface for writing firmware to the second memory circuit;
The overall version number that is electrically connected to the first device and uniquely corresponds to the version number of the firmware written in the first storage circuit and the version number of the firmware written in the second storage circuit An auxiliary memory circuit for storing the number;
With
The first device stores a state variable indicating whether the overall version number stored in the auxiliary storage circuit is valid or invalid,
The state variable is invalid depending on whether firmware is written to the first storage circuit via the first interface or firmware is written to the second storage circuit via the second interface. Is set to indicate
The first device rewrites the overall version number stored in the auxiliary storage circuit to an invalid value when the state variable indicates invalid in the startup process of the optical transceiver, and the state An optical transceiver that sets a variable to indicate valid.
前記第1デバイスは、前記全体版数番号が前記無効な値である場合には、前記外部装置から前記全体版数番号を受信し、受信した前記全体版数番号を前記補助記憶回路に格納する、請求項1または請求項2に記載の光トランシーバ。 The first device reads the overall version number stored in the auxiliary storage circuit in response to an instruction from the external device, and transmits the read overall version number to the external device,
When the overall version number is the invalid value, the first device receives the overall version number from the external device and stores the received overall version number in the auxiliary storage circuit. The optical transceiver according to claim 1 or 2.
前記第2記憶回路は、別のファームウェアをさらに格納し、
前記補助記憶回路は、前記第1記憶回路に格納されている前記別のファームウェアの版数番号及び前記第2記憶回路に格納されている前記別のファームウェアの版数番号と一意に対応する別の全体版数番号をさらに格納し、
前記第1デバイスは、前記光トランシーバの起動処理において、前記状態変数が無効を示している場合に、前記補助記憶回路に格納されている前記全体版数番号及び前記別の全体版数番号を無効な値に書き換えるとともに、前記状態変数を有効を示すように設定する、請求項1〜請求項4のいずれか一項に記載の光トランシーバ。 The first memory circuit further stores another firmware,
The second storage circuit further stores another firmware,
The auxiliary storage circuit has another version number uniquely corresponding to the version number of the other firmware stored in the first storage circuit and the version number of the other firmware stored in the second storage circuit. Store the entire version number,
The first device invalidates the whole version number and the other whole version number stored in the auxiliary storage circuit when the state variable indicates invalid in the activation process of the optical transceiver. The optical transceiver according to any one of claims 1 to 4, wherein the state variable is rewritten to a valid value and the state variable is set to indicate validity.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015014509A JP6350308B2 (en) | 2015-01-28 | 2015-01-28 | Optical transceiver |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015014509A JP6350308B2 (en) | 2015-01-28 | 2015-01-28 | Optical transceiver |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016139321A JP2016139321A (en) | 2016-08-04 |
JP6350308B2 true JP6350308B2 (en) | 2018-07-04 |
Family
ID=56559274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015014509A Active JP6350308B2 (en) | 2015-01-28 | 2015-01-28 | Optical transceiver |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6350308B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017220802A (en) * | 2016-06-07 | 2017-12-14 | 住友電気工業株式会社 | Optical transceiver |
JP7435994B2 (en) * | 2019-05-15 | 2024-02-21 | Necプラットフォームズ株式会社 | Optical transmission equipment, optical transmission system, control method and program for optical transmission equipment |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3265108B2 (en) * | 1994-02-28 | 2002-03-11 | 株式会社東芝 | Data processing system |
JP5036770B2 (en) * | 2002-07-19 | 2012-09-26 | 株式会社リコー | Apparatus, wrapping processing method, and program |
JP4899296B2 (en) * | 2004-07-20 | 2012-03-21 | ソニー株式会社 | Information processing apparatus and method |
JP2006072982A (en) * | 2004-08-03 | 2006-03-16 | Matsushita Electric Ind Co Ltd | Data processing apparatus and firmware update method |
JP4864557B2 (en) * | 2006-06-15 | 2012-02-01 | 富士通株式会社 | Software update processing program and update processing apparatus |
JP2009193218A (en) * | 2008-02-13 | 2009-08-27 | Fuji Xerox Co Ltd | Firmware update device and system |
JP5377377B2 (en) * | 2010-03-16 | 2013-12-25 | メタウォーター株式会社 | Design support device |
JP5958057B2 (en) * | 2012-05-07 | 2016-07-27 | 住友電気工業株式会社 | Optical transceiver |
JP5959942B2 (en) * | 2012-06-04 | 2016-08-02 | キヤノン株式会社 | Image processing apparatus, control method thereof, program, and firmware update system |
JP2014045280A (en) * | 2012-08-24 | 2014-03-13 | Auto Network Gijutsu Kenkyusho:Kk | Optical transceiver |
JP6225431B2 (en) * | 2013-02-27 | 2017-11-08 | 住友電気工業株式会社 | Optical transceiver with microprogram update |
-
2015
- 2015-01-28 JP JP2015014509A patent/JP6350308B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016139321A (en) | 2016-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009053920A (en) | Program management system for on-vehicle electronic control unit | |
KR102155289B1 (en) | Firmware management system and method in embedded system | |
US9959110B2 (en) | Firmware updating methods and apparatus for optical transceiver | |
JP6350308B2 (en) | Optical transceiver | |
WO2019207729A1 (en) | Industrial computer, industrial computer system, operating system update method, and program | |
US9361219B2 (en) | Information processing device, information processing method and program product | |
JP6485152B2 (en) | Multi-CPU system and CPU upgrade method | |
US20140371533A1 (en) | Endoscope device and endoscope system | |
CN107203391B (en) | Firmware activation device and firmware activation method | |
JP2007299222A (en) | Data update method, data update program, and information terminal apparatus using them | |
US11853736B2 (en) | Module, information processing device equipped with same, and method for updating program data to update program data in module | |
JP2017005608A (en) | Optical transceiver and optical transceiver control method | |
JP2013232077A (en) | Control program update system for semiconductor manufacturing apparatus | |
WO2017043026A1 (en) | Control method and communication device employing same | |
US20200150947A1 (en) | Information processing apparatus, updating method by information processing apparatus, and recording medium | |
JP2020017059A (en) | Information processing device, information processing system, information processing method and program | |
JP6370669B2 (en) | IC card, portable electronic device, and IC card processing device | |
JP2019133407A (en) | Firmware update system and firmware update method | |
WO2018212081A1 (en) | Update control unit, update control device, update control system, and update control method | |
JP2015138335A (en) | Memory control circuit | |
JP2010009193A (en) | Electronic device | |
JP5690656B2 (en) | Electronic device and method for updating program module of electronic device | |
KR101900729B1 (en) | Method for running PLC operating system | |
JP2024028548A (en) | Pluggable optical module and maintenance method for pluggable optical module | |
JP2023020298A (en) | Firmware update method for electronic device and firmware update program for electronic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170828 |
|
TRDD | Decision of grant or rejection written | ||
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180427 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180508 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180521 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6350308 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |