(57)【要約】【課題】光送受信信号を瞬断せずにプログラムの更新が可能な光トランシーバを提供する。【解決手段】バンク５Ａは現在使用中のアプリケーションプログラムＤ３Ａを格納し、バンク切り替えデータＤ２はバンク５Ａ及びバンク５Ｂの何れのバンクをコントローラ２が利用するかを示すデータであり、コントローラ２はバンク５Ａ及びバンク５Ｂのうちバンク切り替えデータＤ２に示されるバンクを利用し、コントローラ２は、バンク５Ａがバンク切り替えデータＤ２に示されている場合に更新用のアプリケーションプログラムＤ３Ｂを外部機器から受信すると、アプリケーションプログラムＤ３Ｂをバンク５Ｂに格納し、バンク切り替えデータＤ２をバンク５Ｂに更新した後に、コントローラ２をソフトウェアリセットする。【選択図】図１
2014150426.tif 000002
【特許請求の範囲】
【請求項１】
光トランシーバは、ＩＣ装置と、コントローラと、を備え、
前記ＩＣ装置は、光信号の送受信に用いられ、
前記コントローラは、書き換え可能な不揮発性のメモリを備え、
前記メモリは、第１のバンクと、第２のバンクと、第３のバンクと、を備え、
前記第１のバンクは、バンク切り替えデータと、ブートプログラムと、を格納し、
前記第２のバンクは、第１のアプリケーションプログラムを格納し、
前記バンク切り替えデータは、前記第２のバンク及び前記第３のバンクの何れのバンクを前記コントローラが利用するかを示すデータであり、
前記コントローラは、前記第２のバンク及び前記第３のバンクの中から前記バンク切り替えデータに示されるバンクを利用し、
前記コントローラは、前記第２のバンクが前記バンク切り替えデータに示されている場合に更新用の第２のアプリケーションプログラムを外部機器から受信すると、前記第２のアプリケーションプログラムを前記第３のバンクに格納し、前記バンク切り替えデータを前記第３のバンクに更新した後に、当該コントローラをソフトウェアリセットし、
前記第１のアプリケーションプログラムと前記第２のアプリケーションプログラムとは、前記コントローラのファームウェアの一部として用いられる、
ことを特徴とする光トランシーバ。
【請求項２】
前記メモリにおける前記第２のバンクの番地の範囲と、前記メモリにおける前記第３のバンクの番地の範囲とは、同一である、ことを特徴とする請求項１に記載の光トランシーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光トランシーバに関する。
【背景技術】
【０００２】
特許文献１は、光トランシーバの動的なアップデートの方法を、開示している。特許文献１は、具体的には、内蔵するコントローラのファームウェア(マイクロコード)を、外部機器からの指示に応じて、光トランシーバが更新する手順を、開示している。特許文献１には、更に、ファームウェアの更新後にコントローラがリブートする場合としない場合とがある旨、記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第７８７３２８１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ファームウェアは、例えば、光トランシーバの機能の追加・変更と、ＭＳＡ(Multi  Source  Agreement：業界標準規格)仕様の改訂・バグ修正とによって、製品出荷後も更新の機会がある。しかしながら、特許文献１には、ファームウェアの更新時における光送受信に対する対応についての開示が無い。従って、特許文献１の技術では、ファームウェアの更新時に、光送受信信号が瞬断されることが懸念される。そこで、本発明の目的は、上記の事項を鑑みてなされたものであり、光送受信信号を瞬断せずにプログラムの更新が可能な光トランシーバを提供することである。
【課題を解決するための手段】
【０００５】
本発明に係る光トランシーバは、光トランシーバは、ＩＣ装置と、コントローラと、を備え、前記ＩＣ装置は、光信号の送受信に用いられ、前記コントローラは、書き換え可能な不揮発性のメモリを備え、前記メモリは、第１のバンクと、第２のバンクと、第３のバンクと、を備え、前記第１のバンクは、バンク切り替えデータと、ブートプログラムと、を格納し、前記第２のバンクは、第１のアプリケーションプログラムを格納し、前記バンク切り替えデータは、前記第２のバンク及び前記第３のバンクの何れのバンクを前記コントローラが利用するかを示すデータであり、前記コントローラは、前記第２のバンク及び前記第３のバンクの中から前記バンク切り替えデータに示されるバンクを利用し、前記コントローラは、前記第２のバンクが前記バンク切り替えデータに示されている場合に更新用の第２のアプリケーションプログラムを外部機器から受信すると、前記第２のアプリケーションプログラムを前記第３のバンクに格納し、前記バンク切り替えデータを前記第３のバンクに更新した後に、当該コントローラをソフトウェアリセットし、前記第１のアプリケーションプログラムと前記第２のアプリケーションプログラムとは、前記コントローラのファームウェアの一部として用いられる、ことを特徴とする。アプリケーションプログラムの更新時、更新用のアプリケーションプログラムが第３のバンクに格納され、バンク切り替えデータが第３のバンクに更新された後に、ソフトウェアリセットが行われる。このように、バンク切り替えデータを更新すれば、更新後の第２のアプリケーションブログラムが利用可能となる。従って、アプリケーションプログラムの更新時には、光送信信号の瞬断等を伴う光トランシーバ全体の初期化は不要となる。
【０００６】
本発明に係る光トランシーバにおいて、前記メモリにおける前記第２のバンクの番地の範囲と、前記メモリにおける前記第３のバンクの番地の範囲とは、同一である、ことを特徴とする。第２のバンクの番地の範囲と、第３のバンクの番地の範囲とが同一の場合、アプリケーションプログラムのバンクを第２のバンクから第３のバンクに切り替えた後であっても、アプリケーションプログラムに対する指示を、切り替え前の番地を用いて引き続き行うことができる。
【発明の効果】
【０００７】
本発明によれば、光送受信信号を瞬断せずにプログラムの更新が可能な光トランシーバを提供できる。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る光トランシーバの構成を説明するための図である。
【図２】実施形態に係るコントローラの構成を説明するための図である。
【図３】実施形態に係るＲＯＭのメモリマップの一例を説明するための図である。
【図４】実施形態に係る光トランシーバの動作を説明するためのフローチャートである。
【図５】実施形態に係るタイマ割り込み処理を説明するためのフローチャートである。
【図６】実施形態に係るＩ２Ｃ割り込み処理を説明するためのフローチャートである。
【図７】実施形態に係るＴｘＤＩＳＡＢＬＥ割り込み処理を説明するためのフローチャートである。
【図８】実施形態に係る初期処理を説明するためのフローチャートである。
【図９】実施形態に係るアプリケーションプログラムの更新処理を説明するためのフローチャートである。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、本発明に係る好適な実施形態について詳細に説明する。なお、図面の説明において、可能な場合には、同一要素には同一符号を付し、重複する説明を省略する。図１〜図３を参照して、光トランシーバ１の構成を説明する。光トランシーバ１は、４０Ｇｂｐｓ／１００Ｇｂｐｓ光トランシーバのフォームファクターであるＣＦＰ（C  Form-Factor  Pluggable）やＱＳＦＰ＋（Quad  Small  Form-factor  Pluggable  Plus）等である。光トランシーバ１は、コントローラ２、ＣＤＲ３ａ（ＣＤＲ：Clock  and  Data  Recovery）、ＬＤＤ３ｂ（ＬＤＤ：Laser  Diode  Driver）、ＴＯＳＡ３ｃ（ＴＯＳＡ：Transmitter  Optical  SubAssembly）、ＣＤＲ４ａ、ＬＩＡ４ｂ（ＬＩＡ：Limiting   Amplifier）、ＲＯＳＡ４ｃ（ＲＯＳＡ：Receiver  Optical  SubAssembly）を備える。ＣＤＲ３ａ、ＬＤＤ３ｂ、ＴＯＳＡ３ｃ、ＣＤＲ４ａ、ＬＩＡ４ｂ、ＲＯＳＡ４ｃは、それぞれ、光信号の送受信に用いられるＩＣ装置の具体例である。
【００１０】
ＣＤＲ３ａ、ＬＤＤ３ｂ、ＴＯＳＡ３ｃは、４チャンネルを備える機器である。ＣＤＲ３ａ、ＬＤＤ３ｂ、ＴＯＳＡ３ｃのそれぞれは、例えば、４チャンネルを備える一台の機器であることができる。ＣＤＲ３ａ、ＬＤＤ３ｂ、ＴＯＳＡ３ｃのそれぞれは、例えば、１チャンネルを備える機器を四台備える構成であることができる。ＣＤＲ４ａ、ＬＩＡ４ｂ、ＲＯＳＡ４ｃは、４チャンネルを備える機器である。ＣＤＲ４ａ、ＬＩＡ４ｂ、ＲＯＳＡ４ｃは、例えば、４チャンネルを備える一台の機器であることができる。ＣＤＲ４ａ、ＬＩＡ４ｂ、ＲＯＳＡ４ｃは、例えば、１チャンネルを備える機器を四台備える構成であることができる。ＣＤＲ３ａとＣＤＲ４ａとは、それぞれ、例えば、別体であることができる。ＣＤＲ３ａとＣＤＲ４ａとは、例えば、一体であることができる。
【００１１】
ＣＤＲ３ａは、４チャンネル分のＴＸ＋／−送信信号Ａ１を受けると、４チャンネル分のＴＸ＋／−送信信号Ａ１に対応する４チャンネル分の信号Ａ１ａをＬＤＤ３ｂに出力する。ＬＤＤ３ｂは、ＣＤＲ３ａから４チャンネル分の信号Ａ１ａを受けると、４チャンネル分の信号Ａ１ａに対応する４チャンネル分の駆動信号Ａ１ｂをＴＯＳＡ３ｃに出力する。ＴＯＳＡ３ｃは、ＬＤＤ３ｂから４チャンネル分の駆動信号Ａ１ｂを受けると、４チャンネル分の駆動信号Ａ１ｂに応じて、光送信信号Ａ２を外部機器に送信する。ＲＯＳＡ４ｃは、外部機器から光受信信号Ａ３を受信すると、光受信信号Ａ３に基づいて４チャンネル分の信号Ａ３ａをＬＩＡ４ｂに出力する。ＬＩＡ４ｂは、ＲＯＳＡ４ｃから４チャンネル分の信号Ａ３ａを受けると、４チャンネル分の信号Ａ３ａに対応する４チャンネル分の信号Ａ３ｂをＣＤＲ４ａに出力する。ＣＤＲ４ａは、ＬＩＡ４ｂから４チャンネル分の信号Ａ３ｂを受けると、４チャンネル分の信号Ａ３ｂに対応する４チャンネル分のＲＸ＋／−受信信号Ａ４を外部機器に出力する。
【００１２】
ＣＤＲ３ａとＣＤＲ４ａとは、それぞれ、例えば、四本の１０Ｇｂｐｓ信号を一本の４０Ｇｂｐｓ信号に合成・分離するＳｅｒＤｅｓ  ＩＣであることができる。ＣＤＲ３ａとＣＤＲ４ａとは、それぞれ、例えば、十本の１０Ｇｂｐｓ信号を四本の２５Ｇｂｐｓ信号に合成・分離するＧｅａｒＢｏｘ  ＩＣであることができる。
【００１３】
コントローラ２は、ＣＰＵ２１とメモリ２２とを備える。コントローラ２は、例えば、ワンチップマイコンであることができる。コントローラ２は、例えば、複数のＣＰＵ、ＦＰＧＡ、ＣＰＬＤ等を備える構成であることができ、この場合、ＣＰＵ２１は、複数のＣＰＵを備える。メモリ２２は、書き換え可能な不揮発性のメモリである。メモリ２２は、例えば、Ｆｌａｓｈ  ＲＯＭであることができる。メモリ２２は、コントローラ２のファームウェアを格納する。ＣＰＵ２１は、メモリ２２に格納されているファームウェアと、他のコンピュータプログラムとを実行することによって、ＣＤＲ３ａ、ＬＤＤ３ｂ、ＴＯＳＡ３ｃ、ＣＤＲ４ａ、ＬＩＡ４ｂ、ＲＯＳＡ４ｃを統括的に制御する。
【００１４】
コントローラ２は、外部機器との間で、シリアル通信信号Ａ５、制御信号Ａ６、リセット信号Ａ７、アラーム信号Ａ８の入出力を行う。シリアル通信信号Ａ５は、例えば、Ｉ２Ｃ及びＭＤＩＯに適合した信号である。シリアル通信信号Ａ５は、コントローラ２の各種のアラーム信号の詳細データ、光トランシーバに係る各種のＩＤデータ、コントローラ２に対する各種の制御データ、等を含む。制御信号Ａ６は、光トランシーバ１を制御するための制御データ（例えば、光送信信号Ａ２のオン・オフをコントローラ２に指示する制御データ、光トランシーバ１をローパワーモードとする制御データ等）を含む。リセット信号Ａ７は、光トランシーバ１のリセット（初期処理）を指示するデータを含む。リセット信号Ａ７による光トランシーバ１の初期処理を、以下においては、ハードウェアリセットという。ハードウェアリセットとは、外部からのリセット信号により、電源ＯＮ時と同様に、起動動作から再実行するリセットを意味する。アラーム信号Ａ８は、コントローラ２の各種のアラーム信号を含む。
【００１５】
コントローラ２は、ＣＤＲ３ａ、ＬＤＤ３ｂ、ＣＤＲ４ａ、ＬＩＡ４ｂとの間において、Ｉ２Ｃ信号Ａ９を送受信する。コントローラ２は、制御信号Ａ６の入力に応じて、ＬＤＤ３ｂに対し、ＴｘＤＩＳＡＢＬＥ信号Ａ１０を出力する。ＴｘＤＩＳＡＢＬＥ信号Ａ１０は、光送信信号Ａ２のオン・オフの切り替えをＬＤＤ３ｂに指示する制御データである。コントローラ２は、リセット信号Ａ７の入力に応じて、ＣＤＲ３ａが備えるリセット端子３ａ１と、ＣＤＲ４ａが備えるリセット端子４ａ１とに対し、リセット信号Ａ１１を出力する。コントローラ２は、リセット信号Ａ７の入力に応じて、ＬＤＤ３ｂが備えるリセット端子３ｂ１に対し、リセット信号Ａ１２を出力する。コントローラ２は、リセット信号Ａ７の入力に応じて、ＬＩＡ４ｂが備えるリセット端子４ｂ１に対し、リセット信号Ａ１３を出力する。
【００１６】
図２は、コントローラ２のハードウェアの構成を示す。コントローラ２は、ＣＰＵ２１、メモリ２２、温度センサ２３、通信Ｉ／Ｆ２４、通信Ｉ／Ｆ２５、内部出力ピン２６、外部入力ピン２７、外部出力ピン２８、バス２９を備える。ＣＰＵ２１、メモリ２２、温度センサ２３、通信Ｉ／Ｆ２４、通信Ｉ／Ｆ２５、内部出力ピン２６、外部入力ピン２７、外部出力ピン２８は、バス２９に接続されている。メモリ２２は、ＲＯＭ２２ａ、ＲＡＭ２２ｂを備える。ＣＰＵ２１は、ＲＯＭ２２ａに格納されるファームウェア等のコンピュータプログラムを実行することによって、光トランシーバ１の複数のＩＣ装置（ＣＤＲ３ａ、ＬＤＤ３ｂ、ＴＯＳＡ３ｃ、ＣＤＲ４ａ、ＬＩＡ４ｂ、ＲＯＳＡ４ｃ）を統括的に制御する。ＣＰＵ２１は、ＲＯＭ２２ａに格納されるファームウェア等のコンピュータプログラムを実行することによって、特に、図４〜図９のそれぞれのフローチャートを実行する。温度センサ２３は、コントローラ２の内部の温度を示す信号をＣＰＵ２１に出力する。通信Ｉ／Ｆ２４は、シリアル通信信号Ａ５に接続されている。通信Ｉ／Ｆ２５は、Ｉ２Ｃ信号Ａ９に接続されている。内部出力ピン２６は、ＴｘＤＩＳＡＢＬＥ信号Ａ１０、リセット信号Ａ１１、リセット信号Ａ１２、リセット信号Ａ１３に接続されている。外部入力ピン２７は、制御信号Ａ６に接続されている。外部出力ピン２８は、アラーム信号Ａ８に接続されている。
【００１７】
ＣＰＵ２１は、シリアル通信信号Ａ５を介して、ファームウェアの更新（例えば、図３に示すアプリケーションプログラムＤ３Ａ等の更新）が外部機器から指示されると、更新用のアプリケーションプログラムをＲＯＭ２２ａに格納した後に、ＣＰＵ２１が実行するコンピュータプログラムを、再起動する。ＣＰＵ２１によるこのようなコンピュータプログラムの再起動を、ソフトウェアリセットという。ソフトウェアリセットは、外部機器からのリセット指示によるハードウェアリセットとは異なる。ソフトウェアリセットとは、外部のリセット信号によらず、ソフトウェア（ファームウェア）で電源ＯＮ時と同じアドレスから起動し直すリセットを意味する。ハードウェアリセット（初期処理）の場合、光トランシーバ１の複数のＩＣ装置（ＣＤＲ３ａ、ＬＤＤ３ｂ、ＣＤＲ４ａ、ＬＩＡ４ｂ等）に対しリセットとデータ設定とが行われ、ＲＡＭ２２ｂのデータを消去し、ＬＤＤ３ｂに対するＤｉｓａｂｌｅ側への切り替えが行われる。ソフトウェアリセットの場合、ハードウェアリセットは行われないので、光トランシーバ１の複数のＩＣ装置に対しリセットとデータ設定とは行われず、ＲＡＭ２２ｂのデータは消去されず、ＬＤＤ３ｂに対するＤｉｓａｂｌｅ側への切り替えは行われない。従って、ソフトウェアリセットの場合、光送信信号Ａ２及び光受信信号Ａ３の瞬断は、生じない。
【００１８】
図３は、ＲＯＭ２２ａのメモリマップの一例を示す。ＲＯＭ２２ａは、バンク５０（第１のバンク）、バンク５Ａ（第２のバンク）、バンク５Ｂ（第３のバンク）を備える。バンク５０は、ブートプログラム領域５０１と、データ領域５０２とを備える。バンク５０は、ブートプログラムＤ１と、バンク切り替えデータＤ２と、を格納する。ブートプログラム領域５０１は、ブートプログラムＤ１を格納する。データ領域５０２は、バンク切り替えデータＤ２を格納する。
【００１９】
ブートプログラム領域５０１に格納されるブートプログラムＤ１は、光トランシーバ１のファームウェアの一部として機能する。ＣＰＵ２１は、ブートプログラムＤ１を実行することによって、コントローラ２を起動する。データ領域５０２に格納されるバンク切り替えデータＤ２は、バンク５Ａ及びバンク５Ｂの何れのバンクをコントローラ２が利用するかを示すデータである。より具体的には、データ領域５０２に格納されるバンク切り替えデータＤ２は、バンク５Ａ及びバンク５Ｂの何れのバンクに格納されているアプリケーションプログラムがＣＰＵ２１によって実行されるか、を示すデータである。ＣＰＵ２１は、データ領域５０２に格納されるバンク切り替えデータＤ２を参照し、バンク５Ａ及びバンク５Ｂの何れのバンクに格納されているアプリケーションプログラムを実行するか、を判断する。データ領域５０２には、バンク切り替えデータＤ２の他に、各種モニタ値のキャリブレーションを示すデータと、工場製造時に光トランシーバ毎に設定されたデータ（例えば、シリアル番号等のＩＤデータ、アラーム判定用の閾値データ等）と、が格納される。
【００２０】
バンク５Ａ、バンク５Ｂは、何れも、アプリケーションプログラムを、格納できる。バンク５Ａは、アプリケーション領域５Ａ１を備える。バンク５Ｂは、アプリケーション領域５Ｂ１を備える。バンク５Ａは、アプリケーションプログラムＤ３Ａ（第１のアプリケーションプログラム）を格納する。バンク５Ｂは、アプリケーションプログラムＤ３Ｂ（第２のアプリケーションプログラム）を格納する。アプリケーションプログラムＤ３Ａは、バンク５Ａにおいて、アプリケーション領域５Ａ１に格納される。アプリケーションプログラムＤ３Ｂは、バンク５Ｂにおいて、アプリケーション領域５Ｂ１に格納される。アプリケーション領域５Ａ１に格納されるアプリケーションプログラムＤ３Ａと、アプリケーション領域５Ｂ１に格納されるアプリケーションプログラムＤ３Ｂとは、光トランシーバ１のファームウェアの一部として機能する。アプリケーションプログラムＤ３Ａ及びアプリケーションプログラムＤ３Ｂ等のアプリケーションプログラムは、初期処理（図４のステップＳ４ａ及びステップＳ４ｂ、図８のステップＳ１１〜ステップＳ１４）、受信電文解析処理（図４のステップＳ５ａ１及びステップＳ５ｂ１）、周期処理（図４のステップＳ５ａ２及びステップＳ５ｂ２）、各種の割り込み処理（図４のステップＳ５ａ及びステップＳ５ｂと図５のステップＳ６とによるタイマ割り込み処理、図６のＩ２Ｃ割り込み処理、図７のＴｘＤＩＳＡＢＬＥ割り込み処理）、を実行する。
【００２１】
アプリケーションプログラムは、バンク５Ａ及びバンク５Ｂの何れかに格納されていればよい。バンク５Ａ及びバンク５Ｂの何れのバンクに格納されているアプリケーションをＣＰＵ２１が用いるかを示すデータは、ＣＰＵ２１によってバンク切り替えデータＤ２に記録されている。ブートプログラムＤ１、バンク切り替えデータＤ２、アプリケーションプログラムＤ３Ａ、アプリケーションプログラムＤ３Ｂは、書き換え可能である。図３に示すＲＯＭ２２ａの場合、バンク５Ａの番地の範囲とバンク５Ｂの番地の範囲とは同一である。バンク５Ａの番地の範囲とバンク５Ｂの番地の範囲とが同一ではない、という構成であることができる。
【００２２】
図４〜図９を参照して、光トランシーバ１の動作（特にコントローラ２の動作）を説明する。まず、図４のフローチャートを説明する。ＣＰＵ２１は、ソフトウェアリセット及びハードウェアリセットを行う場合、まず、バンク切り替えデータＤ２を参照し、現在使用中のバンクがバンク５Ａ及びバンク５Ｂの何れかであるか、を判定する（ステップＳ１）。ステップＳ１において、ＣＰＵ２１は、現在使用中のバンクがバンク５Ａであると判定した場合、ステップＳ２ａに移行し、現在使用中のバンクがバンク５Ｂであると判定した場合、ステップＳ２ｂに移行する。
【００２３】
ステップＳ２ａにおいて、ＣＰＵ２１は、ソフトウェアリセットを行うのか、ハードウェアリセットを行うのか、を、ＣＰＵ２１の内蔵レジスタのフラグを参照することによって、判定する（ステップＳ２ａ）。ＣＰＵ２１は、ステップＳ２ａにおいてソフトウェアリセットと判定した場合、ステップＳ３ａに移行し、バンク５Ａに格納されているアプリケーションプログラムＤ３Ａを実行することによって、コントローラ２の入出力ポートを設定する（ステップＳ３ａ）。ＣＰＵ２１は、ステップＳ２ａにおいてハードウェアリセットと判定した場合、ステップＳ４ａに移行し、バンク５Ａに格納されているアプリケーションプログラムＤ３Ａを実行することによって、アプリケーションプログラムＤ３Ａの初期処理（光トランシーバ１に対する初期処理であり、図８のフローチャートに示す）を行う（ステップＳ４ａ）。ステップＳ４ａにおいて、ＣＰＵ２１は、バンク５Ａに格納されているアプリケーションプログラムＤ３Ａを実行することによって、光トランシーバ１の初期処理（図８のフローチャート）を行う。ステップＳ３ａの後、及び、ステップＳ４ａの後、ＣＰＵ２１は、バンク５Ａに格納されているアプリケーションプログラムＤ３Ａを実行することによって、図５に示すタイマ割り込み処理とステップＳ５ａとを行う。アプリケーションプログラムＤ３Ａによって制御される割り込み処理は、図５に示すタイマ割り込み処理の他に、図６に示すＩ２Ｃ割り込み処理と、図７に示すＴｘＤＩＳＡＢＬＥ割り込み処理とを備える。ステップＳ５ａは、ステップＳ５ａ１とステップＳ５ａ２とを備える。ＣＰＵ２１は、ステップＳ５ａ１において、バンク５Ａに格納されているアプリケーションプログラムＤ３Ａを実行することによって、アプリケーションプログラムＤ３Ａの受信電文解析処理を行う（ステップＳ５ａ１）。ＣＰＵ２１は、ステップＳ５ａ２において、バンク５Ａに格納されているアプリケーションプログラムＤ３Ａを実行することによって、アプリケーションプログラムＤ３Ａの周期処理を行う（ステップＳ５ａ２）。
【００２４】
ステップＳ２ｂにおいて、ＣＰＵ２１は、ソフトウェアリセットを行うのか、ハードウェアリセットを行うのか、を、ＣＰＵ２１の内蔵レジスタのフラグを参照することによって、判定する（ステップＳ２ｂ）。ＣＰＵ２１は、ステップＳ２ｂにおいてソフトウェアリセットと判定した場合、ステップＳ３ｂに移行し、バンク５Ｂに格納されているアプリケーションプログラムＤ３Ｂを実行することによって、コントローラ２の入出力ポートを設定する（ステップＳ３ｂ）。ＣＰＵ２１は、ステップＳ２ｂにおいてハードウェアリセットと判定した場合、ステップＳ４ｂに移行し、バンク５Ｂに格納されているアプリケーションプログラムＤ３Ｂを実行することによって、アプリケーションプログラムＤ３Ｂの初期処理（光トランシーバ１に対する初期処理であり、図８のフローチャートに示す）を行う（ステップＳ４ｂ）。ステップＳ４ｂにおいて、ＣＰＵ２１は、バンク５Ｂに格納されているアプリケーションプログラムＤ３Ｂを実行することによって、光トランシーバ１の初期処理（図８のフローチャート）を行う。ステップＳ３ｂの後、及び、ステップＳ４ｂの後、ＣＰＵ２１は、バンク５Ｂに格納されているアプリケーションプログラムＤ３Ｂを実行することによって、図５に示すタイマ割り込み処理とステップＳ５ｂとを行う。アプリケーションプログラムＤ３Ｂによって制御される割り込み処理は、図５に示すタイマ割り込み処理の他に、図６に示すＩ２Ｃ割り込み処理と、図７に示すＴｘＤＩＳＡＢＬＥ割り込み処理とを備える。ステップＳ５ｂは、ステップＳ５ｂ１とステップＳ５ｂ２とを備える。ＣＰＵ２１は、ステップＳ５ｂ１において、バンク５Ｂに格納されているアプリケーションプログラムＤ３Ｂを実行することによって、アプリケーションプログラムＤ３Ｂの受信電文解析処理を行う（ステップＳ５ｂ１）。ＣＰＵ２１は、ステップＳ５ｂ２において、バンク５Ｂに格納されているアプリケーションプログラムＤ３Ｂを実行することによって、アプリケーションプログラムＤ３Ｂの周期処理を行う（ステップＳ５ｂ２）。
【００２５】
図５に示すタイマ割り込み処理は、ステップＳ６を備える。ＣＰＵ２１は、予め設定された周期（例えば、１０ｍｓｅｃ周期）によって、図５に示すタイマ割り込み処理を行う。ステップＳ６において、ＣＰＵ２１は、現在使用中のバンクがバンク５Ａであると判定した場合、ステップＳ５ａに移行し、現在使用中のバンクがバンク５Ｂであると判定した場合、ステップＳ５ｂに移行する。
【００２６】
タイマ割り込み処理によって行われる受信電文解析処理は、例えば、図６のＩ２Ｃ割り込み処理によって外部から受信された書き込み電文の解析処理（例えば、ＴｘＤＩＳＡＢＬＥの状態（光送信信号Ａ２のオン・オフ）をソフトウェア的に切り替える処理、ＣＤＲ３ａ及びＬＤＤ３ｂのレジスタ設定を変更する処理、等）と、ＭＳＡで規定された各種の制御処理（例えば、ループバックの切り替え、伝送速度の変更、エラーカウントの収集、等）とを、備える。
【００２７】
タイマ割り込み処理によって行われる周期処理は、各種のモニタ値（例えば、ＡＤＣ値（ＡＤＣ：Analog  to  Digital  Converter））の収集、各種のモニタ値の換算、アラーム判定、ＣＤＲ３ａ及びＣＤＲ４ａからのＬＯＳ／ＬＯＬデータの収集（ＬＯＳ：Loss  of  Signal、ＬＯＬ：Loss  of  Lock）、ＡＰＣ処理（Automatic  Power  Control）、等を備える。
【００２８】
図６に示すＩ２Ｃ割り込み処理は、ステップＳ７、ステップＳ８ａ、ステップＳ８ｂを備える。ＣＰＵ２１は、シリアル通信信号Ａ５のＩ２Ｃ信号によって割り込みを受けると、ステップＳ７を行う。ＣＰＵ２１は、ステップＳ７において、現在使用中のバンクがバンク５Ａであると判定した場合、ステップＳ８ａに移行し、現在使用中のバンクがバンク５Ｂであると判定した場合、ステップＳ８ｂに移行する。ＣＰＵ２１は、ステップＳ８ａにおいて、バンク５Ａに格納されているアプリケーションプログラムＤ３Ａを実行することによって、Ｉ２Ｃ割り込み処理を行う（ステップＳ８ａ）。ＣＰＵ２１は、ステップＳ８ｂにおいて、バンク５Ｂに格納されているアプリケーションプログラムＤ３Ｂを実行することによって、Ｉ２Ｃ割り込み処理を行う（ステップＳ８ｂ）。
【００２９】
図７に示すＴｘＤＩＳＡＢＬＥ割り込み処理は、ステップＳ９、ステップＳ１０ａ、ステップＳ１０ｂを備える。図７に示すＴｘＤＩＳＡＢＬＥ割り込み処理は、ＴｘＤＩＳＡＢＬＥの状態を指定する（光送信信号Ａ２のオン・オフの切り替えを指示する）データに応じて、ＴｘＤＩＳＡＢＬＥ信号Ａ１０をＬＤＤ３ｂに出力する処理である。ＣＰＵ２１は、ＴｘＤＩＳＡＢＬＥの状態を指定する（光送信信号Ａ２のオン・オフの切り替えを指示する）データを外部機器から制御信号Ａ６を介して受けると、ステップＳ９を行う。ＣＰＵ２１は、ステップＳ９において、現在使用中のバンクがバンク５Ａであると判定した場合、ステップＳ１０ａに移行し、現在使用中のバンクがバンク５Ｂであると判定した場合、ステップＳ１０ｂに移行する。ＣＰＵ２１は、ステップＳ１０ａにおいて、バンク５Ａに格納されているアプリケーションプログラムＤ３Ａを実行することによって、ＴｘＤＩＳＡＢＬＥ割り込み処理を行う（ステップＳ１０ａ）。ＣＰＵ２１は、ステップＳ１０ｂにおいて、バンク５Ｂに格納されているアプリケーションプログラムＤ３Ｂを実行することによって、ＴｘＤＩＳＡＢＬＥ割り込み処理を行う（ステップＳ１０ｂ）。
【００３０】
図８に示す初期処理（図４のステップＳ４ａ及びステップＳ４ｂ）は、外部機器からのリセット信号Ａ７に応じて、光トランシーバ１を初期化（ハードウェアリセット）する処理である。図８に示す初期処理は、ステップＳ１１〜ステップＳ１４を備える。ステップＳ１１において、ＣＰＵ２１は、リセット側に切り替えることを指示するリセット信号Ａ１１をＣＤＲ３ａのリセット端子３ａ１とＣＤＲ４ａのリセット端子４ａ１とに送信し、リセット側に切り替えることを指示するリセット信号Ａ１２をＬＤＤ３ｂのリセット端子３ｂ１に送信し、リセット側に切り替えることを指示するリセット信号Ａ１３をＬＩＡ４ｂのリセット端子４ｂ１に送信する（ステップＳ１１）。この後、ＣＰＵ２１は、コントローラ２の入出力ポートを設定する。
【００３１】
コントローラ２の入出力ポートの設定の後、ステップＳ１２において、ＣＰＵ２１は、ＲＡＭ２２ｂをチェックし、ＲＡＭ２２ｂのデータを消去する（ステップＳ１２）。ステップＳ１２の後、ステップＳ１３において、ＣＰＵ２１は、ＲＯＭ２２ａのデータ領域５０２に格納されているデータを、ＲＡＭ２２ｂにコピーする（ステップＳ１３）。ステップＳ１３の後、ステップＳ１４において、ＣＰＵ２１は、各ＩＣ装置（ＣＤＲ３ａ、ＬＤＤ３ｂ、ＣＤＲ４ａ、ＬＩＡ４ｂ等）の起動シーケンスに従って、各ＩＣ装置のリセット端子（ＣＤＲ３ａのリセット端子３ａ１、ＬＤＤ３ｂのリセット端子３ｂ１、ＣＤＲ４ａのリセット端子４ａ１、ＬＩＡ４ｂのリセット端子４ｂ１）を解除し、各ＩＣ装置のレジスタに、Ｉ２Ｃ信号Ａ９を介して、各ＩＣ装置それぞれの設定データを、送信する（ステップＳ１４）。なお、ＣＰＵ自身の起動時の出力ポート論理側と、各ＩＣのリセット解除側論理やＴｘＤＩＳＡＢＬＥ出力信号のＥｎａｂｌｅ側論理を合わせておくものとする。ＣＰＵがリセットしても、各ＩＣリセットされず、ＴｘＤＩＳＡＢＬＥによる光信号がオフされないようにする。
【００３２】
図９に示すアプリケーションプログラムの更新処理は、受信電文解析処理（ステップＳ５ａ及びステップＳｂ）において、行われる。図９に示すアプリケーションプログラムの更新処理は、ステップＳ１５〜ステップＳ１８を備える。まず、ＣＰＵ２１は、バンク５Ａのアプリケーション領域５Ａ１に格納されているアプリケーションプログラムＤ３Ａを使用中であるとする。図３に示すアプリケーションプログラムＤ３Ｂは、未だ、バンク５Ｂのアプリケーション領域５Ｂ１には、格納されていないものとする。
【００３３】
ＣＰＵ２１は、受信電文解析処理中に、シリアル通信信号Ａ５のＩ２Ｃ通信を介して、更新用のアプリケーションプログラムＤ３Ｂを外部機器から受信すると（ステップＳ１５）、現在使用中のアプリケーションプログラムＤ３Ａが格納されているバンク５Ａとは別のバンク５Ｂに、この更新用のアプリケーションプログラムＤ３Ｂを格納する（ステップＳ１６）。ステップＳ１６の後、ステップＳ１７において、ＣＰＵ２１は、シリアル通信信号Ａ５を介して外部機器からバンクの切り替え指示（アプリケーションプログラムの切り替え指示）を受けると、バンク切り替えデータＤ２の内容を更新する。具体的には、ＣＰＵ２１は、バンク切り替え指示を受けると、バンク切り替えデータＤ２の内容を、現在使用中のアプリケーションプログラムＤ３Ａが格納されているバンク５Ａから、更新用のアプリケーションプログラムＤ３Ｂが格納されたバンク５Ｂに、更新する（ステップＳ１７）。
【００３４】
ステップＳ１７の後、ステップＳ１８において、ＣＰＵ２１は、ソフトウェアリセットする（ステップＳ１８）。ソフトウェアリセットは、ＣＰＵ２１が実行するコンピュータプログラムの再起動なので、図８に示す初期処理において行われる処理（光トランシーバ１の複数のＩＣ装置（ＣＤＲ３ａ、ＬＤＤ３ｂ、ＣＤＲ４ａ、ＬＩＡ４ｂ等）に対するリセット及びデータ設定、ＲＡＭ２２ｂのデータの消去、ＬＤＤ３ｂに対するＤｉｓａｂｌｅ側への切り替え）は行われない。従って、ステップＳ１８において行われるソフトウェアリセットの場合、光送信信号Ａ２及び光受信信号Ａ３の瞬断は、生じない。
【００３５】
以上説明した光トランシーバ１によれば、アプリケーションプログラムをアプリケーションプログラムＤ３ＡからアプリケーションプログラムＤ３Ｂに更新する時、更新用のアプリケーションプログラムＤ３Ｂがバンク５Ｂに格納され、バンク切り替えデータＤ２がバンク５Ａからバンク５Ｂに更新された後に、ＣＰＵ２１によってソフトウェアリセットが行われる。このように、バンク切り替えデータＤ２をバンク５Ａからバンク５Ｂに更新すれば、更新後のアプリケーションプログラムＤ３Ｂが利用可能となる。従って、アプリケーションプログラムの更新時には、光送信信号Ａ２の瞬断等を伴う光トランシーバ１全体の初期化は不要となる。また、図３に示すように、バンク５Ａの番地の範囲と、バンク５Ｂの番地の範囲とが同一の場合、アプリケーションプログラムのバンクをバンク５Ａからバンク５Ｂに切り替えた後であっても、アプリケーションプログラムに対する指示を、切り替え前の番地を用いて引き続き行うことができる。
【００３６】
以上、好適な実施の形態において本発明の原理を図示し説明してきたが、本発明は、そのような原理から逸脱することなく配置および詳細において変更され得ることは、当業者によって認識される。本発明は、本実施の形態に開示された特定の構成に限定されるものではない。したがって、特許請求の範囲およびその精神の範囲から来る全ての修正および変更に権利を請求する。
【符号の説明】
【００３７】
１…光トランシーバ、２…コントローラ、２１…ＣＰＵ、２２…メモリ、２２ａ…ＲＯＭ、２２ｂ…ＲＡＭ、２３…温度センサ、２４，２５…通信Ｉ／Ｆ、２６…内部出力ピン、２７…外部入力ピン、２８…外部出力ピン、９…バス２、３ａ…ＣＤＲ、３ａ１，３ｂ１，４ａ１，４ｂ１…リセット端子、３ｂ…ＬＤＤ、３ｃ…ＴＯＳＡ、４ａ…ＣＤＲ、４ｂ…ＬＩＡ、４ｃ…ＲＯＳＡ、５０，５Ａ，５Ｂ…バンク、５０１…ブートプログラム領域、５０２…データ領域、５Ａ１，５Ｂ１…アプリケーション領域、Ａ１…ＴＸ＋／−送信信号、Ａ１０…ＴｘＤＩＳＡＢＬＥ信号、Ａ１１，Ａ１２，Ａ１３，Ａ７…リセット信号、Ａ１ａ，Ａ３ａ，Ａ３ｂ…信号、Ａ１ｂ…駆動信号、Ａ２…光送信信号、Ａ３…光受信信号、Ａ４…ＲＸ＋／−受信信号、Ａ５…シリアル通信信号、Ａ６…制御信号、Ａ８…アラーム信号、Ａ９…Ｉ２Ｃ信号、Ｄ１…ブートプログラム、Ｄ２…バンク切り替えデータ、Ｄ３Ａ，Ｄ３Ｂ…アプリケーションプログラム。
【図１】
2014150426.tif 000003
【図２】
2014150426.tif 000004
【図３】
2014150426.tif 000005
【図４】
2014150426.tif 000006
【図５】
2014150426.tif 000007
【図６】
2014150426.tif 000008
【図７】
2014150426.tif 000009
【図８】
2014150426.tif 000010
【図９】
2014150426.tif 000011