(57)【特許請求の範囲】
【請求項１】
ＭＤＩＯインターフェースを介して外部のホスト装置と通信を行うことができる光トランシーバであって、
前記ＭＤＩＯインターフェースを介して前記ホスト装置から命令信号を受信し、該命令信号を別の命令信号に変換して出力するロジック回路と、
ファームウェアが格納されているメモリを有し、該ファームウェアを実行することによって前記別の命令信号に応じた処理を行い、前記別の命令信号によって前記ファームウェアの更新を指示されたときに、許可状態に設定された許可信号を出力して前記ファームウェアの書き換えを開始するマイクロコントローラと、
前記許可信号が前記許可状態に設定されているときに、前記別の命令信号に応じて前記光トランシーバの動作状態を示すステータスデータを前記ロジック回路を介して前記ホスト装置に送信する応答回路と、を備える光トランシーバ。
【請求項２】
前記マイクロコントローラは、
第１のシリアル通信回路をさらに有し、該第１のシリアル通信回路を介して前記ロジック回路から前記別の命令信号を受信し、
前記別の命令信号によって前記ファームウェアの更新を指示されたときに前記第１のシリアル通信回路を停止するとともに前記許可信号を前記許可状態に設定して前記ファームウェアの書き換えを開始し、前記ファームウェアの書き換えを完了したときに、前記第１のシリアル通信回路を停止解除するとともに前記許可信号が前記許可状態以外の状態を示すように設定する、請求項１記載の光トランシーバ。
【請求項３】
前記応答回路は、第２のシリアル通信回路を有し、前記許可信号が前記許可状態に設定されているときに、該第２のシリアル通信回路を介して前記ロジック回路と通信を行い、
前記第１のシリアル通信回路及び前記第２のシリアル通信回路が前記ロジック回路に対して並列に接続されている、請求項２記載の光トランシーバ。
【請求項４】
前記ロジック回路及び前記応答回路が同一の半導体集積回路に含まれる、請求項１〜３のいずれか一項記載の光トランシーバ。
【請求項５】
前記ステータスデータは、前記光トランシーバが前記ファームウェアの書き換えを継続していることを示し、
前記応答回路は、前記ステータスデータを前記ホスト装置へ送信することのみ指示する前記別の命令信号に応じて、前記ステータスデータを送信する、請求項１〜４のいずれか一項記載の光トランシーバ。
【請求項６】
ＭＤＩＯインターフェースを介して外部のホスト装置と通信可能なロジック回路と、第１のシリアル通信回路を介して前記ロジック回路と通信可能なマイクロコントローラと、第２のシリアル通信回路を介して前記ロジック回路と通信可能な応答回路と、を有する光トランシーバのファームウェア更新方法であって、
前記ロジック回路が、前記ＭＤＩＯインターフェースを介して前記ホスト装置から命令信号を受信し、前記命令信号を別の命令信号に変換して出力する命令受信ステップと、
前記マイクロコントローラが、前記マイクロコントローラ内のメモリに格納されているファームウェアを実行することによって前記別の命令信号に応じた処理を行い、前記別の命令信号によって前記ファームウェアの更新を指示されたときに、許可状態に設定された許可信号を出力してから前記ファームウェアの書き換えを開始する更新開始ステップと、
前記応答回路が、前記許可信号が前記許可状態に設定されている間のみ、前記別の命令信号に応じて前記光トランシーバの動作状態を示すステータスデータを、前記ロジック回路を介して前記ホスト装置に送信する、更新時応答ステップと、
前記マイクロコントローラが、前記ファームウェアの書き換えを終了したときに、前記許可信号を前記許可状態以外の状態に設定する、書き換え終了ステップと、を備える、光トランシーバのファームウェア更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＭＤＩＯインターフェースを有する光トランシーバ、及び光トランシーバのファームウェア更新方法に関する。
【背景技術】
【０００２】
近年、光通信システムにおいて用いられる光トランシーバには、高機能化および小型化が要求されている。例えば、光トランシーバは、１３００ｎｍの波長帯の４波長を使用して２芯双方向で光信号の送受信を行う。この光トランシーバにおいて、送信側は波長ごとに例えば２５Ｇｂｐｓの信号速度で電気−光変換を行った後に、変換された４波長の光信号を合波して１つの波長多重信号を出力する。また、受信側は１つの波長多重信号を受信して、それを４波長の光信号に分波し、波長ごとに例えば２５Ｇｂｐｓの信号速度で光−電気変換を行う。このような光トランシーバの外径、端子配置、電気的特性、及び光学的特性に関する規格は、例えばＭＳＡ（Multi-Source Agreement）規格のＣＦＰ（100GForm-factor Pluggable）によって規定されている。
【０００３】
例えばＣＦＰでは、外部のホスト装置と光トランシーバとがＭＤＩＯ（Management Data Input/Output）インターフェースを介して接続される（例えば特許文献１又は特許文献２参照）。ＭＤＩＯインターフェースは、クロック信号及びデータ信号の２本の信号線からなる。ＭＤＩＯインターフェースを介した通信は、フレームと呼ばれる６４ビット長のデータを単位として行われ、例えば光トランシーバの内部状態の監視を目的として行われる。具体的には、ホスト装置からの命令に応じて、光トランシーバが内部状態（ステータス）を示す情報を出力し、当該ステータスがホスト装置に取得されること等により、光トランシーバの内部状態の監視が行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１６９７４５号公報
【特許文献２】特開２０１２−４９８１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したＭＳＡには、光トランシーバのファームウェアをアップグレードするためのアップグレードデータ転送機能が規定されている。ファームウェアは、光トランシーバの電源をオフにしても保持されるＦｌａｓｈＲＯＭ（Read Only Memory）等の不揮発メモリに保存される。ファームウェアをアップグレードする際には、ホスト装置からの命令に応じて、アップグレードデータが光トランシーバに転送され、ファームウェアを更新すべく不揮発メモリの書き換えが行われる。ここで、不揮発メモリの書き換えを行っている間は、不揮発メモリに保存されているプログラムコードの読み出しができない。当該不揮発メモリには、ＭＤＩＯインターフェースを介したホスト装置との通信に用いる各種プログラムコードが保存されており、上述したステータスの出力に関するプログラムコードも保存されている。よって、不揮発メモリの書き換えが行われている間、光トランシーバは、ステータスの出力に関するプログラムコードの読み出しができず、ステータスを出力することができない。以上より、不揮発メモリの書き換えを行う場合に、光トランシーバがホスト装置からの問合せに対して全く応答できない期間が生じ、光トランシーバの内部状態の監視が適切に行われないおそれがある。例えばそのような状況では、ホスト装置は、光トランシーバが不揮発メモリの書き換えを行っている最中なのか、あるいは書き換えを終了したが何らかの理由で通常の動作に復帰できないのか、判別できないということも考えられる。
【０００６】
本発明の一態様は、ファームウェアの書き換えを行う場合においても光トランシーバの内部状態の監視を適切に行うことができる、光トランシーバ、及び光トランシーバのファームウェア更新方法に関する。
【課題を解決するための手段】
【０００７】
本発明の一態様に係る光トランシーバは、ＭＤＩＯインターフェースを介して外部のホスト装置と通信を行うことができる光トランシーバであって、ＭＤＩＯインターフェースを介してホスト装置から命令信号を受信し、該命令信号を別の命令信号に変換して出力するロジック回路と、ファームウェアが格納されているメモリを有し、該ファームウェアを実行することによって別の命令信号に応じた処理を行い、別の命令信号によってファームウェアの更新を指示されたときに、許可状態に設定された許可信号を出力してファームウェアの書き換えを開始するマイクロコントローラと、許可信号が許可状態に設定されているときに、別の命令信号に応じて光トランシーバの動作状態を示すステータスデータをロジック回路を介してホスト装置に送信する応答回路と、を備える。
【発明の効果】
【０００８】
本発明の一態様によれば、ファームウェアの書き換えを行う場合においても光トランシーバの内部状態の監視を適切に行うことができる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態に係る光トランシーバを模式的に示す構成図である。
【図２】ＭＤＩＯフレームのデータ構成を模式的に示す図である。
【図３】図１の光トランシーバの応答回路を模式的に示す構成図である。
【図４】図１の光トランシーバにおける処理を示すタイミングチャートである。
【図５】第２実施形態に係る光トランシーバを模式的に示す構成図である。
【図６】図５の光トランシーバの詳細な構成を模式的に示す構成図である。
【図７】変形例に係る光トランシーバの応答回路を模式的に示す構成図である。
【発明を実施するための形態】
【００１０】
［本願発明の実施形態の説明］
最初に本発明の実施形態の内容を列記して説明する。
【００１１】
本発明の一態様に係る光トランシーバは、ＭＤＩＯインターフェースを介して外部のホスト装置と通信を行うことができる光トランシーバであって、ＭＤＩＯインターフェースを介してホスト装置から命令信号を受信し、該命令信号を別の命令信号に変換して出力するロジック回路と、ファームウェアが格納されているメモリを有し、該ファームウェアを実行することによって別の命令信号に応じた処理を行い、別の命令信号によってファームウェアの更新を指示されたときに、許可状態に設定された許可信号を出力してファームウェアの書き換えを開始するマイクロコントローラと、許可信号が許可状態に設定されているときに、別の命令信号に応じて光トランシーバの動作状態を示すステータスデータをロジック回路を介してホスト装置に送信する応答回路と、を備える。
【００１２】
この光トランシーバでは、ロジック回路によって出力された、ホスト装置からの命令信号に基づく別の命令信号によってファームウェアの更新が指示されると、マイクロコントローラによって、許可状態に設定された許可信号が出力されるとともにファームウェアの更新が開始される。そして、許可信号が許可状態に設定されている場合には、応答回路により、上記別の命令信号に応じたステータスデータがロジック回路を介してホスト装置に送信される。
【００１３】
マイクロコントローラのファームウェアの更新等、メモリの書き換えを伴う処理が実行される場合には、当該処理の実行中において、当該メモリのプログラムコードの読み出しができず、マイクロコントローラから光トランシーバのステータスを出力することができなくなる。この場合、ホスト装置はマイクロコントローラから光トランシーバのステータスを取得することができない。この点、この光トランシーバでは、ファームウェアの更新が指示されると、マイクロコントローラにより、許可状態に設定された許可信号が出力される。そして、応答回路により、許可信号が許可状態に設定されているときに、ステータスデータがホスト装置に送信される。これにより、ファームウェアの更新が実行されている期間においては、応答回路から出力されたステータスデータが示す所定のステータスを、ホスト装置に取得させることができる。以上より、メモリの書き換えを行う場合においても、光トランシーバのステータスをホスト装置に取得させることができ、光トランシーバの内部状態の監視を適切に行うことができる。
【００１４】
本発明の一態様に係る光トランシーバにおいて、マイクロコントローラは、第１のシリアル通信回路をさらに有し、該第１のシリアル通信回路を介してロジック回路から別の命令信号を受信し、別の命令信号によってファームウェアの更新を指示されたときに第１のシリアル通信回路を停止するとともに許可信号を許可状態に設定してファームウェアの書き換えを開始し、ファームウェアの書き換えを完了したときに、第１のシリアル通信回路を停止解除するとともに許可信号が許可状態以外の状態を示すように設定してもよい。ファームウェアの更新が指示された際に第１のシリアル通信回路を停止することにより、当該第１のシリアル通信回路から出力される信号が、応答回路からロジック回路に出力される信号に影響を及ぼすことを回避することができる。また、ファームウェアの書き換えが完了した後に、第１のシリアル通信回路を停止解除するとともに許可信号が許可状態以外の状態を示すように設定されることにより、書き換え後に、マイクロコントローラ及びロジック回路間の通信を適切に回復させることができる。
【００１５】
本発明の一態様に係る光トランシーバにおいて、応答回路は、第２のシリアル通信回路を有し、許可信号が許可状態に設定されているときに、該第２のシリアル通信回路を介してロジック回路と通信を行い、第１のシリアル通信回路及び第２のシリアル通信回路がロジック回路に対して並列に接続されていてもよい。許可信号が許可状態に設定されているときに、第２のシリアル通信回路を介して応答回路とロジック回路との間で通信が行われることにより、許可信号が許可状態に設定されている場合に限り、応答回路からホスト装置に対してステータスデータを送信することができる。また、ロジック回路に対して第１のシリアル通信回路及び第２のシリアル通信回路が並列接続されていることにより、ファームウェアの更新を行うか否かに応じて、ステータスを出力する機器であるマイクロコントローラ及び応答回路を効率的に切り替えることができる。
【００１６】
本発明の一態様に係る光トランシーバにおいて、ロジック回路及び応答回路が同一の半導体集積回路に含まれていてもよい。これにより、ロジック回路及び応答回路の機能を１つのＩＣで実現することができ、部品点数を少なくすることができる。部品点数が少なくなることにより、光トランシーバにおける実装面積が小さくなり、光トランシーバを小型化することができる。また、ロジック回路及び応答回路間の信号の送受信を同一ＩＣ内で直接行うことができるので、例えば、ロジック回路及び応答回路が別々のＩＣとされた場合に、それぞれのＩＣで必要となる信号の入力回路及び出力回路が不要となる。これにより、光トランシーバの消費電力を低減することができる。
【００１７】
本発明の一態様に係る光トランシーバにおいて、ステータスデータは、光トランシーバがファームウェアの書き換えを継続していることを示し、応答回路は、ステータスデータをホスト装置へ送信することのみ指示する別の命令信号に応じて、ステータスデータを送信してもよい。応答回路から、光トランシーバがファームウェアの書き換えを継続していることを示すステータスデータが出力されることにより、マイクロコントローラの現実の状態をホスト装置に取得させることができる。また、上記別の命令信号が、ステータスデータをホスト装置へ送信することのみを指示するものであることにより、応答回路による処理が必要最小限となる。例えば、上記別の命令信号が、光トランシーバとホスト装置との間の種々の制御に関する命令を含む場合には、応答回路での処理が複雑となり、応答回路の実装面積が大きくなる。この場合、光トランシーバが大型化するおそれがある。この点、応答回路による処理を必要最小限とすることにより、応答回路の実装面積を抑え、光トランシーバを小型化することができる。
【００１８】
本発明の他の態様に係る、光トランシーバのファームウェア更新方法は、ＭＤＩＯインターフェースを介して外部のホスト装置と通信可能なロジック回路と、第１のシリアル通信回路を介してロジック回路と通信可能なマイクロコントローラと、第２のシリアル通信回路を介してロジック回路と通信可能な応答回路と、を有する光トランシーバのファームウェア更新方法であって、ロジック回路が、ＭＤＩＯインターフェースを介してホスト装置から命令信号を受信し、命令信号を別の命令信号に変換して出力する命令受信ステップと、マイクロコントローラが、マイクロコントローラ内のメモリに格納されているファームウェアを実行することによって別の命令信号に応じた処理を行い、別の命令信号によってファームウェアの更新を指示されたときに、許可状態に設定された許可信号を出力してからファームウェアの書き換えを開始する更新開始ステップと、応答回路が、許可信号が許可状態に設定されている間のみ、別の命令信号に応じて光トランシーバの動作状態を示すステータスデータを、ロジック回路を介してホスト装置に送信する、更新時応答ステップと、マイクロコントローラが、ファームウェアの書き換えを終了したときに、許可信号を許可状態以外の状態に設定する、書き換え終了ステップと、を備えている。
【００１９】
［本願発明の実施形態の詳細］
本発明の実施形態に係る光トランシーバの具体例を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【００２０】
[第１実施形態]
図１は、第１実施形態に係る光トランシーバを模式的に示す構成図である。光トランシーバ１は、外部のホスト装置１００（上位レイヤ）に挿抜可能とされており、ホスト装置１００と通信を行うことができる。光トランシーバ１は、例えば、互いに波長の異なる４つの光信号を使用して２芯双方向で光信号を送受信する１００ギガビット光トランシーバである。このような光トランシーバ１の外径、端子配置、電気的特性、及び光学的特性等は、例えば、ＭＳＡ規格のＣＦＰによって規定されている。光トランシーバ１は、ＭＤＩＯインターフェース１１を介してホスト装置１００と通信を行う。より詳細には、光トランシーバ１は、ＭＤＩＯインターフェース１１に接続されているＭＤＩＯバスＬ１を介して、ホスト装置１００と電気信号の送受信を行う。また、光トランシーバ１は、送信用及び受信用の２本の光ファイバーケーブルによって接続されている他の光トランシーバ（図示せず）と光信号の送受信を行う。
【００２１】
光トランシーバ１は、ロジック回路１０と、マイクロコントローラ（マイコン）２０と、応答回路３０と、不揮発性メモリ６０とを備えている。なお、不揮発性メモリ６０は、所定の方法によって内部に記憶されている情報を書き換えることが可能であって、例えばＥＥＰＲＯＭ（Electrically Erasable Programmable  Read-OnlyMemory）又はＦｌａｓｈ ＲＯＭ等である。また、光トランシーバ１は、送受信の双方向において、光信号と電気信号との変換を行う。光トランシーバ１は、光信号の送受信及び当該変換に係る構成として、例えば、クロックデータリカバリ（ＣＤＲ：Clock Data Recovery）と、駆動制御回路と、光送信サブアセンブリ（ＴＯＳＡ：Transmitter Optical SubAssembly）と、光マルチプレクサと、光受信サブアセンブリ（ＲＯＳＡ：Receiver Optical SubAssembly）と、光デマルチプレクサとを備えている。光信号の送受信、並びに、光信号と電気信号との変換に係る構成は、本実施形態に直接関係しないので、詳細な説明を省略する。ロジック回路１０と、マイコン２０及び応答回路３０との間では、シリアル通信が行われる。シリアル通信は、通信を制御するマスターデバイスと、マスターデバイスからの命令に従って動作するスレーブデバイスとの間で行われる。本実施形態では、ロジック回路１０がマスターデバイスであり、マイコン２０及び応答回路３０がスレーブデバイスである。また、本実施形態では、シリアル通信とはＳＰＩ（Serial Peripheral Interface）通信である。
【００２２】
ロジック回路１０は、例えば、プログラム可能なＣＰＬＤ（ComplexProgrammable Logic Device）及びＦＰＧＡ（Field-ProgrammableGate Array）等である。ロジック回路１０は、ＭＤＩＯインターフェース１１を有する。光トランシーバ１は、ホスト装置１００に組み込まれる際に、ＭＤＩＯインターフェース１１に接続されるＭＤＩＯバスＬ１と、物理層のアドレス指定用の５本（５ビット）の信号線Ｌ２とを介してホスト装置１００に接続される。より詳細には、ロジック回路１０がＭＤＩＯバスＬ１及び信号線Ｌ２を介してホスト装置１００に接続されることにより、光トランシーバ１がホスト装置１００に接続される。ロジック回路１０は、ＭＤＩＯインターフェース１１を介してホスト装置１００と通信を行い、ホスト装置１００から、コマンド信号であるＭＤＩＯフレーム（命令信号）を受信する。また、ロジック回路１０は、当該ＭＤＩＯフレームに含まれている、光トランシーバ１に対するホスト装置１００からの命令を示す命令情報（別の命令信号）を出力する（詳細は後述）。すなわち、ロジック回路１０は、命令信号であるＭＤＩＯフレームを別の命令信号に変換し、該変換した別の命令信号を出力する。なお、ホスト装置１００と光トランシーバ１とは、光信号と相互に変換される、情報伝送のための電気信号の送受信も行うが、本実施形態に直接関係しないので、詳細な説明を省略する。
【００２３】
ロジック回路１０とホスト装置１００との間で送受信されるＭＤＩＯフレームは、例えば、ＩＥＥＥ  ８０２．３  Ｃｌａｕｓｅ  ４５，ＣＦＰ  ＭＳＡ  Ｍａｎａｇｅｍｅｎｔ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎで規定されるフレーム構造を有する。以下では、ＭＤＩＯフレームのフレーム構造（フレームデータ）について、図２を参照して説明する。
【００２４】
図２は、ＭＤＩＯフレームのデータ構成を模式的に示す図である。図２に示されるように、ＭＤＩＯフレームＭＦは、プリアンブル（「ＰＲＥ」）と、スタートビット（「ＳＴ」）と、オペレーション（ＯＰ）コード（「ＯＰ」）と、物理層アドレス（「ＰＨＹＡＤＲ」）と、ＭＤＩＯデバイスアドレス（「ＤＥＶＡＤ」）と、ターンアラウンドビット（「ＴＡ」）と、アドレス情報／データ領域（「ＤＡＴＡ／ＡＤＤＲＥＳＳ」）とで構成されている。
【００２５】
プリアンブルは、３２ビット長の同期ビットパターンである。スタートビットは、データの始まりを示す２ビット長のスタートフラグである。ＯＰコードは、当該ＭＤＩＯフレームＭＦにより実行される機能を示す２ビットの命令コードである。ＯＰコードは、アドレス設定（Ａｄｄｒｅｓｓ）、書き込み（Ｗｒｉｔｅ）、読み出し（Ｒｅａｄ）及びインクリメント付き読み出し（Ｐｏｓｔ  Ｒｅａｄ  ｉｎｃ  Ａｄｄ）の４タイプの命令のいずれかを示す。ＯＰコードには、アドレス設定の場合（００）２が設定され、書き込みの場合（０１）２が設定され、読み出しの場合（１１）２が設定され、インクリメント付き読み出しの場合（１０）２が設定される。
【００２６】
物理層アドレスは、ＭＤＩＯフレームＭＦの送信先となる光トランシーバの物理層アドレスを示す５ビット長のコードである。ＭＤＩＯデバイスアドレスは、物理層アドレスによって特定された光トランシーバについて、さらにその内部のデバイスを特定するためのアドレス情報である。ターンアラウンドビットは、ＯＰコードが読み出し又はインクリメント付き読み出しを示す場合に、ＭＤＩＯバスＬ１上の信号方向の切り替えに要する２ビットのタイミングギャップ（時間間隔）を示す情報である。信号方向の切り替えとはすなわち、命令を伝える方向（ホスト装置１００から光トランシーバ１への方向）から、当該命令に応じた処理結果を伝える方向（光トランシーバ１からホスト装置１００への方向）への切り替えをいう。タイミングギャップは、１ビットを単位として規定されている。アドレス情報／データ領域は、１６ビットのデータを示す情報である。
【００２７】
ホスト装置１００及び光トランシーバ１間の通信が行われる場合、例えば通信開始前に、光トランシーバ１の物理層アドレスを示すアドレスデータとして、（００００１）２が光トランシーバ１に入力され、当該アドレスデータが光トランシーバ１に記憶される。そして、ホスト装置１００及び光トランシーバ１間の通信が開始され、光トランシーバ１が、物理層アドレスとして（００００１）２を含むＭＤＩＯフレームＭＦを受信すると、ロジック回路１０は、ホスト装置１００から送信されたＭＤＩＯフレームＭＦが自身宛であると認識して当該ＭＤＩＯフレームＭＦを受信し、ＯＰコードに応じた処理を行う。一方、ＭＤＩＯフレームＭＦの物理層アドレスが（００００１）２以外であれば、ロジック回路１０は、当該ＭＤＩＯフレームが他の光トランシーバ（図示せず）に向けられたものであると認識し、当該ＭＤＩＯフレームＭＦに応じた処理を行わない（ＭＤＩＯフレームＭＦを無視する）。
【００２８】
図１に戻り、ＭＤＩＯバスＬ１は、クロック信号ＭＤＣ用の信号線Ｌ１ａと、データ信号ＭＤＩＯ用の信号線Ｌ１ｂとを含む。ＭＤＩＯバスＬ１では、クロック信号ＭＤＣの最大周波数が、例えば４ＭＨｚ（最小周期０．２５μｓ）とされて、ＭＤＩＯフレームの送受信が行われる。信号線Ｌ１ｂでは、通常は、ホスト装置１００からロジック回路１０にＭＤＩＯフレームが送信される。ただし、ＭＤＩＯフレームに含まれたＯＰコードが読み出しを示す場合には、マイコン２０において読み出された単一データがロジック回路１０からホスト装置１００に送信される。従って、光トランシーバ１及びホスト装置１００間では、ＯＰコードに応じて双方向の通信が行われる。
【００２９】
ロジック回路１０は、ＭＤＩＯバスＬ１を介してホスト装置１００と通信を行う一方で、ホスト装置１００から指示されたＯＰコードに応じた処理を行うために、シリアル通信バス４１及び専用信号線４２を介してマイコン２０と通信を行う。専用信号線４２は、ロジック回路１０からマイコン２０へＯＰコードを送信するための２本の信号線である。ロジック回路１０は、専用信号線４２を介して、ＯＰコードの情報をパラレルデータとしてマイコン２０へ送信する。当該ＯＰコードは、ホスト装置１００からの命令を示す命令情報の一種である。
【００３０】
ロジック回路１０は、シリアル通信バス４１を介して、ＭＤＩＯフレームに含まれたアドレス情報／データ領域に応じたアドレス情報及び単一データを、マイコン２０に送信する。当該アドレス情報及び単一データは、上述したホスト装置１００からの命令を示す命令情報の一種である。シリアル通信バス４１は、スレーブセレクト（ＳＳ）信号用の信号線４１ａと、転送クロック（ＳＣＫ）信号用の信号線４１ｂと、マイコン２０へのデータ入力（ＭＯＳＩ）信号用の信号線４１ｃと、マイコン２０からのデータ出力（ＭＩＳＯ）信号用の信号線４１ｄとを備えている。信号線４１ｃはロジック回路１０から出力されてマイコン２０へ入力されるデータを伝送する信号線であり、信号線４１ｄはマイコン２０から出力されてロジック回路１０へ入力されるデータを伝送する信号線である。なお、ロジック回路１０は、内蔵する論理ゲートの組合せによってＳＰＩ通信に必要な機能を実現してもよいが、後述するマイコン２０等と同様にＳＰＩ回路（図示せず）を内蔵した構成を取ってもよい。
【００３１】
マイコン２０は、ロジック回路１０から出力された命令情報に応じて処理を実行し、光トランシーバ１の内部状態を監視する。マイコン２０は、例えば、１チップのマイクロコントローラであり、マイクロコントロールユニット（ＭＣＵ：Micro-Control Unit)と呼ばれる場合もある。マイコン２０は、ＣＤＲ、駆動制御回路、ＴＯＳＡ、及びＲＯＳＡに加え、それらの動作に必要な電圧生成回路、熱電素子制御回路、及び温度検出回路等の構成を制御する。マイコン２０と、マイコン２０により制御される各構成とは、シリアル通信バス及び専用信号線等によって接続されている。マイコン２０は、制御対象の各構成と通信を行うことにより、光トランシーバ１の内部状態に関する情報を取得する。また、マイコン２０は、上述したシリアル通信バス４１に接続される第１のシリアル通信回路である、ＳＰＩ回路２１を有する。すなわち、マイコン２０は、ＳＰＩ回路２１を介してロジック回路１０に接続され、ロジック回路１０から命令情報を受信する。ＳＰＩ回路２１は、ロジック回路１０とマイコン２０とのシリアル通信を実現する、シリアル通信回路である。なお、以降の記述において「シリアル通信」と称する場合に、シリアル通信バス４１を介して行う一般的なＳＰＩ通信だけでなく、専用信号線４２を介して行う通信も含むものを指すものとする。また、「シリアル通信インターフェース」についても、ＳＰＩ回路２１だけでなく、専用信号線４２を介して通信を行う部分も含むものとする。
【００３２】
マイコン２０は、ＭＤＩＯレジスタ２２と、受信レジスタ２３と、アドレスレジスタ２４と、送信レジスタ２５と、不揮発メモリ２６とを有する。ＭＤＩＯレジスタ２２は、光トランシーバ１の内部状態（ステータス）を示す複数の単一データ、ホスト装置１００から書き込みを指示された単一データ、及び光トランシーバの識別のための単一データ（例えば、製造者名及び製造番号）等を記憶する。光トランシーバ１の内部状態を示すデータは、例えば、光トランシーバ１の温度、光トランシーバ１における電源の電圧、ＴＯＳＡのバイアス電流値、ＴＯＳＡの光送信パワー、ＴＯＳＡの発光素子の温度、及びＲＯＳＡの受信パワー等である。ＭＤＩＯレジスタ２２は、数百個以上のレジスタを有するが、図１には便宜上、記憶領域２２ａ、記憶領域２２ｂ、及び記憶領域２２ｃの３つレジスタのみを示している。ＭＤＩＯレジスタ２２の個々のレジスタには、識別のためのアドレスが設定されている。どのアドレスのレジスタに何の情報を記憶するかについては、ＭＳＡに規定されている。また、いずれのレジスタに関する処理を行うか否かについては、ＭＤＩＯフレームＭＦのアドレス情報により指定される。
【００３３】
受信レジスタ２３は、ロジック回路１０により送信されたアドレス情報及び単一データを一時的に記憶する。より詳細には、受信レジスタ２３は、アドレスレジスタ２４に転送されるアドレス情報を一時的に記憶し、また、ＭＤＩＯレジスタ２２に転送される単一データを一時的に記憶する。受信レジスタ２３に記憶されているデータがＭＤＩＯレジスタ２２に記憶されるべき単一データである場合には、当該データは、アドレスレジスタ２４に記憶されているアドレス情報によって特定される記憶領域２２ｂ（以下、これを「カレントレジスタ」という）に転送され、記憶される。なお、受信レジスタ２３は、ＳＰＩ回路２１に含まれていてもよい。
【００３４】
送信レジスタ２５は、ロジック回路１０へ送信される単一データを一時的に記憶する。送信レジスタ２５に格納されている単一データは、シリアル通信バス４１の信号線４１ｄを介してロジック回路１０へ送信される。送信レジスタ２５におけるデータの格納及びデータの取り出しは、例えばＦＩＦＯ（First In First Out）方式とされる。ＯＰコードによって読み出しが指示された場合には、送信レジスタ２５に記憶されている単一データが信号線４１ｄを介してロジック回路１０へ送信される。マイコン２０は、ロジック回路１０からアドレス情報又は単一データを受信する度に、アドレスレジスタ２４に記憶されているアドレス情報によって特定されるカレントレジスタ２２ｂの単一データを送信レジスタ２５に書き込む。当該送信レジスタ２５に書き込まれる情報には、光トランシーバ１の内部状態（ステータス）を示す単一データが含まれる。なお、送信レジスタ２５は、ＳＰＩ回路２１に含まれていてもよい。
【００３５】
不揮発メモリ２６は、例えばＦｌａｓｈＲＯＭ等の不揮発性メモリである。不揮発メモリ２６には、マイコン２０のファームウェア２６ａが格納されている。マイコン２０は、ファームウェア２６ａを実行することによって、ロジック回路１０から受信した命令情報に応じた処理を行う。ここで、マイコン２０において受信されたＯＰコードが書き込みを示しており、且つ、受信レジスタ２３に格納された単一データが不揮発メモリ２６のファームウェア２６ａのアップグレードデータ６１である場合には、当該アップグレードデータ６１が、ＭＤＩＯレジスタ２２に転送され更に外付けの不揮発性メモリ６０に出力される。不揮発性メモリ６０は、ＭＤＩＯレジスタ２２から出力されるファームウェア２６ａのアップグレードデータ６１を記憶している。ＭＤＩＯフレームにおいては、１６ビットずつデータが送信されるところ、通常、ファームウェア２６ａのアップグレードデータ６１は１６ビットよりも大きい。そこで、アップグレードデータ６１は、１６ビットの分割データ６１ａに分割され、分割データ６１ａ毎に複数のＭＤＩＯフレームにて送信される。ＭＤＩＯレジスタ２２は、分割データ６１ａを不揮発性メモリ６０に出力する。ＭＤＩＯレジスタ２２は、分割データ６１ａが格納される都度、当該分割データ６１ａを不揮発性メモリ６０に出力してもよいし、一の分割データ６１ａを記憶している状態において新たな分割データ６１ａが格納されたタイミングで、当該一の分割データ６１ａを不揮発性メモリ６０に出力してもよい。なお、不揮発性メモリの書き込み時間は、所定の時間よりも短くなければならない場合がある。
【００３６】
マイコン２０は、命令情報に不揮発メモリ２６の書き換えを伴う処理の実行命令、より詳細にはファームウェア２６ａの更新処理の実行命令が含まれている場合には、ファームウェア２６ａの書き換えを開始する。具体的には、マイコン２０は、不揮発性メモリ６０に記憶されているアップグレードデータ６１を不揮発メモリ２６に転送し、ファームウェア２６ａを更新する。当該ファームウェア２６ａを更新する処理は、不揮発メモリ２６の書き換えを伴う。不揮発メモリ２６の書き換えを行っている間は、マイコン２０の動作が停止し、上述した内部状態の監視及びロジック回路１０との通信等が不可となる。
【００３７】
ここで、マイコン２０は、命令情報に不揮発メモリ２６の書き換えを伴う処理の実行命令が含まれている場合には、不揮発メモリ２６の書き換えを伴うファームウェア２６ａの更新処理を実行する前に、応答回路３０に対して、応答回路３０を動作させるＥｎａｂｌｅ信号（許可信号）を出力する（Ｅｎａｂｌｅ信号をＨｉｇｈレベルにする）。当該Ｅｎａｂｌｅ信号を出力する（Ｅｎａｂｌｅ信号をＨｉｇｈレベルにする）とは、すなわち許可状態に設定された許可信号を出力することを意味している。より詳細には、マイコン２０は、命令情報に不揮発メモリ２６の書き換えを伴う処理の実行命令が含まれている場合には、ファームウェア２６ａの更新処理を実行する前に、ＳＰＩ回路２１を停止し、ＳＰＩ回路２１を介した通信を無効化するとともにＥｎａｂｌｅ信号を出力する。ＳＰＩ回路２１を介した通信を無効化する際には、ＳＰＩ回路２１から信号線４１ｄに出力される信号が、応答回路３０から信号線４１ｄに出力される信号（詳細は後述）に影響を及ぼすことを回避すべく、ＳＰＩ回路２１における信号線４１ｄの出力箇所（ＭＩＳＯ出力）がハイインピーダンス状態とされる。当該ハイインピーダンス状態は、例えばＭＩＳＯ出力に設けられたトランジスタが「オフ」とされることにより実現される。このように、ＳＰＩ回路２１における信号線４１ｄの出力箇所（ＭＩＳＯ出力）は、オープンドレイン出力とされている。ＳＰＩ回路２１における信号線４１ｄの出力箇所（ＭＩＳＯ出力）には、トライステートバッファ（米国商標登録）等の出力回路（図示せず）が設けられている。応答回路３０は、マイコン２０から信号線３２を介してＥｎａｂｌｅ信号の入力を受ける。応答回路３０は、Ｅｎａｂｌｅ信号が入力されている場合、すなわち許可信号が許可状態に設定されている場合に限り、マイコン２０に代わってロジック回路１０へ応答動作することが可能となる。マイコン２０は、ファームウェア２６ａの更新処理が完了するまで、Ｅｎａｂｌｅ信号を出力し続け、ファームウェア２６ａの更新処理が完了するとＥｎａｂｌｅ信号の出力を停止する（Ｅｎａｂｌｅ信号をＬｏｗレベルにする）。当該Ｅｎａｂｌｅ信号の出力を停止する（Ｅｎａｂｌｅ信号をＬｏｗレベルにする）とは、すなわち許可状態以外の状態に設定された許可信号を出力することを意味している。より詳細には、マイコン２０は、ファームウェア２６ａの更新処理が完了した後に、ＳＰＩ回路２１を停止解除し、ＳＰＩ回路２１を介した通信を有効化するとともにＥｎａｂｌｅ信号の出力を停止する。
【００３８】
応答回路３０は、ロジック回路１０から出力された命令情報に応じて、光トランシーバ１の動作状態（ステータス）を示すステータスデータをロジック回路１０を介してホスト装置１００へ出力する。より詳細には、応答回路３０は、マイコン２０から出力されたＥｎａｂｌｅ信号に基づき動作し、命令情報に応じてステータスデータをロジック回路１０に出力する。なお、命令情報は、ステータスデータをホスト装置１００へ出力することのみを指示する信号である。応答回路３０は、Ｅｎａｂｌｅ信号の入力に応じて動作し、Ｅｎａｂｌｅ信号の入力が停止すると停止する。応答回路３０から出力されるステータスデータは、光トランシーバ１がファームウェア２６ａの書き換えを継続していることを示す所定の信号とされる。
【００３９】
応答回路３０は、ロジック回路１０に接続される第２のシリアル通信回路であるＳＰＩ回路３１を有する。ＳＰＩ回路３１は、ロジック回路１０と応答回路３０とのシリアル通信を実現する、シリアル通信回路である。応答回路３０は、ＳＰＩ回路３１を介してシリアル通信バス４１に接続されており、マイコン２０に並列接続されている。すなわち、ロジック回路１０に対して、ＳＰＩ回路２１及びＳＰＩ回路３１が並列接続されている。具体的には、スレーブセレクト（ＳＳ）信号用の信号線４１ａから分岐した信号線５１ａ、転送クロック（ＳＣＫ）信号用の信号線４１ｂから分岐した信号線５１ｂ、及びデータ出力（ＭＩＳＯ）信号用の信号線４１ｄから分岐した信号線５１ｄが応答回路３０のＳＰＩ回路３１に接続されることにより、応答回路３０が、マイコン２０に並列接続されている。なお、信号線５１ｄは、抵抗素子を介して電源電圧に接続（プルアップ）されている。
【００４０】
応答回路３０は、Ｅｎａｂｌｅ信号が入力されていない状態においては、ＳＰＩ回路３１における信号線５１ｄの出力箇所（ＭＩＳＯ出力）をハイインピーダンス状態とする。一方で、Ｅｎａｂｌｅ信号が入力されると、応答回路３０は、ＳＰＩ回路３１における信号線５１ｄの出力箇所（ＭＩＳＯ出力）をハイインピーダンス状態から出力状態とし、データ出力が可能な状態とする。当該ハイインピーダンス状態及び出力状態の切り替えは、例えばＭＩＳＯ出力に設けられたトランジスタの「オン」「オフ」を切り替えることにより実現される。すなわち、ＳＰＩ回路３１における信号線５１ｄの出力箇所（ＭＩＳＯ出力）は、オープンドレイン出力とされている。これにより、応答回路３０は、Ｅｎａｂｌｅ信号が入力されている場合にのみ、ＳＰＩ回路３１を介してロジック回路１０と通信を行う。
【００４１】
次に、図３を参照して、応答回路３０の構成を詳細に説明する。図３は、光トランシーバ１の応答回路３０を模式的に示す構成図である。応答回路３０は、出力回路５５と、Ｄ型フリップフロップ（Ｄ−ＦＦ）５６ａ〜５６ｐと、ＮＡＮＤ回路５８とを有している。
【００４２】
Ｄ−ＦＦ５６ａ〜５６ｐは、クロック同期型フリップフロップである。各Ｄ−ＦＦ５６ａ〜５６ｐは、それぞれステータスデータの１６ビット（ｂｉｔ０〜ｂｉｔ１５）のいずれかに対応しており、一列状に互いに直列に接続されている。より詳細には、ｂｉｔ０に対応するＤ−ＦＦ５６ａの入力端子がグランドに接続され、Ｄ−ＦＦ５６ａの出力端子がｂｉｔ１に対応するＤ−ＦＦ５６ｂの入力端子に接続されている。このように、下位のｂｉｔに対応するＤ−ＦＦの出力端子が、1つ上位のｂｉｔに対応するＤ−ＦＦの入力端子に接続されている。そして、最上位ｂｉｔに対応するＤ−ＦＦ５６ｐの出力端子が出力回路５５に接続されている。各Ｄ−ＦＦ５６ａ〜５６ｐのクロック端子には、信号線５１ｂを介して、ＳＣＫ信号が入力される。当該ＳＣＫ信号は、各Ｄ−ＦＦ５６ａ〜５６ｐのクロック端子に同時に入力される。Ｄ−ＦＦ５６ｊのセット端子にＮＡＮＤ回路５８の出力信号が、それ以外のＤ−ＦＦのリセット端子にＮＡＮＤ回路５８の出力信号が、それぞれ入力される。
【００４３】
ＮＡＮＤ回路５８は、入力に応じて、各Ｄ−ＦＦ５６ａ〜５６ｐのセット端子又はリセット端子に所定の出力を行う。ＮＡＮＤ回路５８には、信号線５１ａを介してＳＳ信号が、信号線３２から分岐された信号線３２ａを介してＥｎａｂｌｅ信号が、それぞれ入力可能とされている。ＮＡＮＤ回路５８は、ＳＳ信号及びＥｎａｂｌｅ信号が共にＨｉｇｈレベルである場合に各Ｄ−ＦＦ５６ａ〜５６ｐにＬｏｗレベルの信号を出力し、それ以外の場合に各Ｄ−ＦＦ５６ａ〜５６ｐにＨｉｇｈレベルの信号を出力する。
【００４４】
出力回路５５は、信号線３２から分岐された信号線３２ｂを介してＥｎａｂｌｅ信号が入力されると、ハイインピーダンス状態から出力状態となり、Ｄ−ＦＦ５６ｐからの出力に応じて、１６ｂｉｔのステータスデータを出力することが可能な状態となる。当該ステータスデータは、ｂｉｔ９のみが「１」となったデータであり、マイコン２０が処理継続中（progress）であることを示すデータである。出力回路５５としては、例えばトライステートバッファ（米国商標登録）を用いることができる。
【００４５】
マイコン２０から出力されるＥｎａｂｌｅ信号は、初期値がＬｏｗレベルとされている。また、信号線５１ａを介してＮＡＮＤ回路５８に入力されるＳＳ信号もＳＰＩ通信を行っていない間はＬｏｗレベルとされている。このため、ＮＡＮＤ回路５８から各Ｄ−ＦＦ５６ａ〜５６ｐにＨｉｇｈレベルの信号が出力される。また、ｂｉｔ９に対応するＤ−ＦＦ５６ｊのみセットされ、他のｂｉｔのＤ−ＦＦはリセットされている。この状態においては、信号線５１ｄの出力箇所（ＭＩＳＯ出力）がハイインピーダンス状態となっているので、ロジック回路１０からＳＰＩアクセスが発生しても、出力回路５５からステータスデータは出力されない。
【００４６】
Ｅｎａｂｌｅ信号がＨｉｇｈレベルになり、更に、ロジック回路１０からマイコン２０に命令情報が出力され、ＮＡＮＤ回路５８に入力されるＳＳ信号がＨｉｇｈレベルになると、ＮＡＮＤ回路５８からＤ−ＦＦ５６ａ〜５６ｐにＬｏｗレベルの信号が出力され、Ｄ−ＦＦのセット入力及びリセット入力が解除される。この状態においては、応答回路３０は、シフトレジスタとして動作し、信号線５１ｂを介して入力されるＳＣＫ信号に同期するようにデータ出力を行う。シフトレジスタとして動作し始める時点においては、解除前のＤ−ＦＦのセット入力及びリセット入力に応じて、ｂｉｔ９に対応するＤ−ＦＦ５６ｊのみ「１」がセットされ、他のＤ−ＦＦには「０」がセットされている。この状態において、ＳＣＫ信号のパルスがＤ−ＦＦ５６ａ〜５６ｐに入力されると、Ｄ−ＦＦ５６ａ〜５６ｏの値が１つ上位ｂｉｔのＤ−ＦＦにシフトする。ＳＣＫ信号が入力される前段階において、最上位ｂｉｔであるＤ−ＦＦ５６ｐの値「０」は出力回路５５から出力されている。ＮＡＮＤ回路５８からＤ−ＦＦ５６ａ〜５６ｐにＬｏｗレベルの信号が出力され、Ｄ−ＦＦのセット入力及びリセット入力が解除されると、出力回路５５から出力されていたＤ−ＦＦ５６ｐの値である「０」がロジック回路１０に取り込まれる。そして、ＳＣＫ信号のパルス毎に、１ビットずつ出力回路５５から出力される。１回のＳＰＩ通信あたり、ＳＣＫ信号は１６個のパルスを有するので、ｂｉｔ９のみが「１」である１６ビットステータスデータが、応答回路３０から出力される。
【００４７】
１６ｂｉｔのステータスデータが応答回路３０から出力されると、ＳＳ信号がＬｏｗレベルになり、ＮＡＮＤ回路５８からＨｉｇｈレベルの信号が出力される。これにより、応答回路３０の各Ｄ−ＦＦ５６ａ〜５６ｐの入力値が初期値に再設定される。以降、ＭＤＩＯアクセスに応じてロジック回路１０が出力するＳＳ信号に対し、応答回路３０が処理継続中（progress）であることを示すステータスデータを出力するので、ホスト装置１００にはステータスとしてprogress状態が通知される。マイコン２０において不揮発メモリ２６の書き換えが完了すると、マイコン２０はＥｎａｂｌｅ信号をＬｏｗレベルにする。これにより、信号線５１ｄの出力箇所（ＭＩＳＯ出力）がハイインピーダンス状態となるので、応答回路３０は動作（ＳＰＩ応答）しないが、既にマイコン２０が動作しているので、マイコン２０によって問題なくＳＰＩ応答が行われる。
【００４８】
次に、図４を参照して、光トランシーバ１の処理の一例を説明する。図４は、光トランシーバ１における処理を示すタイミングチャートである。図４に示されるように、ホスト装置１００から光トランシーバ１に対して、ＭＤＩＯバスＬ１を介してＭＤＩＯフレームＦ１が送信される。当該ＭＤＩＯフレームＦ１には、光トランシーバ１を示す物理層アドレスが含まれ、また、アドレス設定命令を示すＯＰコードが含まれている。当該ＭＤＩＯフレームＦ１を受信したロジック回路１０は、アドレス設定命令を示すＯＰコードの情報を専用信号線４２に出力する。また、ロジック回路１０は、ＭＤＩＯバスＬ１のクロック信号と同じ周波数の転送クロック（ＳＣＫ）信号を信号線４１ｂに出力するとともに、スレーブセレクト（ＳＳ）信号を信号線４１ａに出力し、ホスト装置１００に指定されたアドレス情報Ａ１をデータ入力（ＭＯＳＩ）信号用の信号線４１ｃに出力する。マイコン２０は、ロジック回路１０により送信されたアドレス情報Ａ１を、受信レジスタ２３に一時的に記憶した後アドレスレジスタ２４に格納する。この場合、マイコン２０はプロセスＰ１０を起動し、アドレスレジスタ２４に登録したアドレス情報Ａ１に対応するステータスＤ１０を次の読み出しに備えて送信レジスタ２５（出力バッファＭＩＳＯＦＩＦＯ）に設定する。
【００４９】
続いて、ホスト装置１００から光トランシーバ１に対して、書き込み命令を示すＯＰコードを含むＭＤＩＯフレームＦ２が送信される。当該ＭＤＩＯフレームＦ２を受信したロジック回路１０は、書き込み命令を示すＯＰコードの情報を専用信号線４２に出力するとともに、マイコン２０に実行させるコマンド部分をＳＰＩフレームに変換したデータＤ９を信号線４１ｃに出力する（命令受信ステップ）。データＤ９には、不揮発メモリ２６の書き換えを伴う処理に係るコマンドが含まれている。続いて、マイコン２０は、データＤ９を受信レジスタ２３に一時的に記憶した後ＭＤＩＯレジスタ２２に格納する。
【００５０】
ここで、不揮発性メモリ６０には、予め、ファームウェア２６ａのアップグレードデータ６１が格納されている。アップグレードデータ６１は、複数の分割データ６１ａにより構成されている。当該分割データ６１ａは、ＭＤＩＯ通信によりホスト装置１００からロジック回路１０に送信され、ＳＰＩ通信によりロジック回路１０からマイコン２０に送信され、更に、ＭＤＩＯレジスタ２２から外付けの不揮発性メモリ６０に出力される。マイコン２０は、データＤ９が入力されると、プロセスＰ１２を起動し、不揮発性メモリ６０に記憶されているアップグレードデータ６１を不揮発メモリ２６に転送することにより、ファームウェア２６ａを更新する。
【００５１】
ファームウェア２６ａを更新する処理は、不揮発メモリ２６の書き換えを伴う。マイコン２０は、不揮発メモリ２６の書き換えを行う前に、ＳＰＩ回路２１を介した通信を停止する（図４中の「ＳＰＩ  Ｉ／Ｆ停止」のグラフを参照）とともにＳＰＩ回路２１における信号線４１ｄの出力箇所（ＭＩＳＯ出力）をハイインピーダンス状態とし（図４中の「ＭＩＳＯデータ」のグラフを参照）、Ｅｎａｂｌｅ信号をＨｉｇｈレベルにする（図４中の「Ｅｎａｂｌｅ信号」のグラフを参照）。その後、マイコン２０はファームウェア２６ａを更新し不揮発メモリ２６の書き換え処理を行う（更新開始ステップ）。当該書き換え処理を開始してから書き換え処理が完了するまでの間は、マイコン２０は基本的に書き換え処理以外の動作を行わなくなる。なお、送信レジスタ２５に設定されてロジック回路１０に出力されたステータスＤ１０は、ロジック回路１０により破棄される。Ｅｎａｂｌｅ信号がＨｉｇｈレベルになると、ＳＰＩ回路３１における信号線５１ｄの出力箇所（ＭＩＳＯ出力）がハイインピーダンス状態から出力状態となり、応答回路３０はデータ出力を行うことが可能となる。
【００５２】
続いて、ホスト装置１００から光トランシーバ１に対して、読み出し命令を示すＯＰコードを含むＭＤＩＯフレームＦ３が送信される。当該ＭＤＩＯフレームＦ３を受信したロジック回路１０は、読み出し命令を示すＯＰコードの情報を専用信号線４２に出力する。ここで、不揮発メモリ２６の書き換え処理が行われている間はＳＰＩ回路２１を介した通信が停止されており、マイコン２０は応答することができない。一方、Ｅｎａｂｌｅ信号によって応答回路３０が動作しているので、信号線５１ａを介してＳＳ信号が応答回路３０のＮＡＮＤ回路５８に入力されると、Ｅｎａｂｌｅ信号及びＳＳ信号がともにＨｉｇｈレベルになり（図４中の「Ｅｎａｂｌｅ  ａｎｄ  ＳＳ」のグラフを参照）、各Ｄ−ＦＦ５６ａ〜５６ｐの端子（セット又はリセットとされた端子）にＬｏｗレベルの信号が出力され、セット又はリセットが解除される。そして、各Ｄ−ＦＦ５６ａ〜５６ｐのクロック端子に入力されるＳＣＫ信号に応じて、出力回路５５から、処理継続中（progress）であることを示すデータＤ１１（ステータスデータ）がロジック回路１０に出力される（図４中の「応答回路  ＭＩＳＯ」のグラフを参照）。データＤ１１が出力されると、ＳＳ信号がＬｏｗレベルになりＮＡＮＤ回路５８からはＨｉｇｈレベルの信号が出力される。これにより、応答回路３０の各Ｄ−ＦＦ５６ａ〜５６ｐの入力値が初期値に再設定される。ロジック回路１０は、ＭＤＩＯフレームＦ３により、当該ステータスデータをホスト装置１００に送信する（更新時応答ステップ）。
【００５３】
ホスト装置１００では、当該ステータスデータに基づき、マイコン２０が処理継続中（progress）であるとするステータスが取得される。このように、不揮発メモリ２６の書き換え処理が行われている間は応答回路３０が動作しているので、読み出し命令を示すＯＰコードを含むＭＤＩＯフレームＦ４が更に送信された場合にも、ホスト装置１００では、応答回路３０から出力されたデータＤ１１（ステータスデータ）に基づき、マイコン２０が処理継続中（progress）であるとするステータスが取得される。
【００５４】
そして、不揮発メモリ２６の書き換え処理が完了すると、マイコン２０は、Ｅｎａｂｌｅ信号をＬｏｗレベルにする（図４中の「Ｅｎａｂｌｅ信号」のグラフを参照）ことにより出力回路５５の出力をハイインピーダンス状態にして、応答回路３０を停止させるとともに、ＳＰＩ回路２１を介した通信を有効化する（図４中の「ＳＰＩ  Ｉ／Ｆ停止」のグラフを参照）（書き換え終了ステップ）。マイコン２０は、プロセスＰ１２が再開され（プロセスＰ１２´）、不揮発メモリ２６の書き換えが成功している場合には成功していること（Success）を示すステータスＤ１２を、失敗している場合には失敗していること（Failure）を示すステータスＤ１２を、次の読み出しにそなえて送信レジスタ２５（出力バッファＭＩＳＯＦＩＦＯ）に設定する。応答回路３０は、Ｅｎａｂｌｅ信号がＬｏｗレベルになると、ＳＰＩ回路３１における信号線５１ｄの出力箇所（ＭＩＳＯ出力）をハイインピーダンス状態に戻す（図４中の「応答回路  ＭＩＳＯ」のグラフを参照）。
【００５５】
続いて、ホスト装置１００から光トランシーバ１に対して、読み出し命令を示すＯＰコードを含むＭＤＩＯフレームＦ５が送信される。この場合、マイコン２０は、送信レジスタ２５に記憶されている単一データであるステータスＤ１２を、信号線４１ｄを介してロジック回路１０へ出力する。ロジック回路１０はマイコン２０から出力されたステータスＤ１２をホスト装置１００に返信する。そして、マイコン２０はプロセスＰ１３を起動し、アドレスレジスタ２４に登録したアドレス情報に対応するステータスＤ１３を次の読み出しにそなえて送信レジスタ２５（出力バッファＭＩＳＯＦＩＦＯ）に設定する。
【００５６】
次に、第１実施形態の作用効果について説明する。
【００５７】
この光トランシーバ１では、ＭＤＩＯフレームに応じてロジック回路１０から出力される命令情報に、不揮発メモリ２６の書き換えを伴う処理の実行命令が含まれている場合、当該処理が実行される前に、マイコン２０から応答回路３０に対して、応答回路３０を動作させるＥｎａｂｌｅ信号が出力される。そして、Ｅｎａｂｌｅ信号が出力されている状態において新たな命令情報が出力されると、Ｅｎａｂｌｅ信号に基づき動作する応答回路３０により、命令情報に応じたステータスデータがロジック回路１０に出力される。ロジック回路１０がホスト装置１００と通信を行うので、ロジック回路１０に出力されたステータスデータが示すステータスをホスト装置１００に取得させることができる。
【００５８】
ここで、マイコン２０のファームウェア２６ａのアップデータ等、不揮発メモリ２６の書き換えを伴う処理が実行される場合には、当該処理の実行中において、当該不揮発メモリ２６のプログラムコードの読み出しができず、マイコン２０から光トランシーバ１のステータスを出力することができなくなる。この場合、ホスト装置１００はマイコン２０から光トランシーバ１のステータスを取得することができない。この点、光トランシーバ１では、不揮発メモリ２６の書き換えを伴う処理が実行される前に、マイコン２０から応答回路３０に対してＥｎａｂｌｅ信号が出力され、当該Ｅｎａｂｌｅ信号に基づき動作する応答回路３０から、命令情報に応じたステータスデータがロジック回路１０に出力される。これにより、不揮発メモリ２６の書き換えを伴う処理が実行されている期間においては、応答回路３０から出力されたステータスデータが示す所定のステータスを、ホスト装置１００に取得させることができる。以上より、不揮発メモリ２６の書き換えを行う場合においても、光トランシーバ１のステータスをホスト装置１００に取得させることができ、光トランシーバ１の内部状態の監視を適切に行うことができる。
【００５９】
また、光トランシーバ１では、マイコン２０がＳＰＩ回路２１を介してロジック回路１０に接続されており、命令情報に不揮発メモリ２６の書き換えを伴う処理の実行命令が含まれている場合に、当該処理を実行する前に、ＳＰＩ回路２１が無効化されるとともにＥｎａｂｌｅ信号が出力され、不揮発メモリ２６の書き換えを伴う処理の実行が完了した後に、ＳＰＩ回路２１が有効化されＥｎａｂｌｅ信号の出力が停止される。不揮発メモリ２６の書き換えを伴う処理の実行前にＳＰＩ回路２１を無効化することにより、ＳＰＩ回路２１から信号線４１ｄに出力される信号が、応答回路３０から信号線５１ｄを介して信号線４１ｄに出力される信号に影響を及ぼすことを回避することができる。また、書き換えが完了した後に、ＳＰＩ回路２１の有効化及びＥｎａｂｌｅ信号の出力停止を行うことにより、書き換え後に、マイコン２０及びロジック回路１０間の通信を適切に回復させることができる。
【００６０】
また、光トランシーバ１では、応答回路３０が、ＳＰＩ回路３１を介してロジック回路１０に接続されており、ロジック回路１０に対して、マイコン２０及び応答回路３０が並列に接続されている。応答回路３０がマイコン２０に並列接続されていることにより、不揮発メモリ２６の書き換えを伴う処理を実行するか否かに応じて、ステータスを出力する機器であるマイコン２０及び応答回路３０を効率的に切り替えることができる。
【００６１】
また、光トランシーバ１では、ステータスデータが、マイコン２０が処理（ファームウェアの書き換え処理）を継続していることを示すデータである。応答回路３０は、マイコン２０において不揮発メモリ２６の書き換え処理が行われる場合に動作する。よって、応答回路３０から、マイコン２０が処理継続中であることを示す信号がステータスデータとして出力されることにより、マイコン２０の現実の（実態に合致した）状態をホスト装置に取得させることができる。また、応答回路３０は、ステータスデータをホスト装置１００へ送信することのみを指示する命令情報に応じて、ステータスデータを送信する。上記命令情報が、ステータスデータをホスト装置１００へ送信することのみを指示するものであることにより、応答回路３０による処理が必要最小限となる。例えば、上記命令情報が、光トランシーバとホスト装置との間の種々の制御に関する命令を含む場合には、応答回路での処理が複雑となり、応答回路の実装面積が大きくなる。この場合、光トランシーバが大型化するおそれがある。この点、応答回路３０による処理を必要最小限とすることにより、応答回路３０の実装面積を抑え、光トランシーバ１を小型化することができる。
【００６２】
[第２実施形態]
次に、第２実施形態に係る光トランシーバの具体例を、図５及び図６を参照しつつ説明する。図５は、第２実施形態に係る光トランシーバ１Ａを模式的に示す構成図である。図６は、光トランシーバ１Ａの詳細な構成を模式的に示す構成図である。なお、図５及び図６中において、図１と共通の構成については、機能構成の一部を省略して記載している。また、第２実施形態は、第１実施形態と異なる点について主に説明し、第１実施形態と重複する説明を省略する。
【００６３】
図５に示されるように、光トランシーバ１Ａは、ロジック回路１０Ａと、マイコン２０とを備えている。光トランシーバ１Ａでは、ロジック回路１０Ａが、応答回路３０Ａを含んだ集積回路である。言い換えると、ロジック回路１０Ａ及び応答回路３０Ａが同一の半導体集積回路に含まれている。ロジック回路１０Ａの詳細について図６を参照して説明する。
【００６４】
図６に示されるように、ロジック回路１０Ａは、応答回路３０Ａと、プロトコル変換回路１２Ａと、を有している。プロトコル変換回路１２Ａは、第１実施形態のロジック回路１０と実質的に同様の機能を有している。プロトコル変換回路１２Ａは、ホスト装置１００及びロジック回路１０Ａ間のＭＤＩＯインターフェースと、ロジック回路１０Ａ及びマイコン２０間のＳＰＩ回路２１との間の通信インターフェース間プロトコル変換を行う。プロトコル変換回路１２Ａは、ホスト装置１００からＭＤＩＯフレームを受信し、当該ＭＤＩＯフレームに含まれている命令情報を出力する。ロジック回路１０Ａは、プロトコル変換回路１２Ａに接続されている専用信号線として、ＯＰコードを送信するための２本の専用信号線８２を有している。また、ロジック回路１０Ａは、プロトコル変換回路１２Ａに接続されているシリアル通信バス８１として、スレーブセレクト（ＳＳ）信号用の信号線８１ａと、転送クロック（ＳＣＫ）信号用の信号線８１ｂと、マイコン２０へのデータ入力（ＭＯＳＩ）信号用の信号線８１ｃと、マイコン２０からのデータ出力（ＭＩＳＯ）信号用の信号線８１ｄとを備えている。より詳細には、信号線８１ｄは、マイコン２０及び応答回路３０のいずれか一方からの信号を伝送する信号線である。
【００６５】
また、ロジック回路１０Ａは、ロジック回路１０Ａ内部の信号を外部に出力するために用いる出力回路９２，９１ａ，９１ｂ，９１ｃと、ロジック回路１０Ａ外部の信号を内部において利用するために用いる入力回路９１ｄ，９３と、を有している。このような出力回路及び入力回路は、異なるＩＣ間で信号を送受信する際に必要となる構成であり、第１実施形態においては説明を省略している。
【００６６】
出力回路９２は、専用信号線８２に接続されるとともに、マイコン２０に接続されている専用信号線４２に接続される。また、出力回路９１ａは、信号線８１ａに接続されるとともに、マイコン２０に接続されているＳＳ信号用の信号線４１ａに接続される。また、出力回路９１ｂは、信号線８１ｂに接続されるとともに、マイコン２０に接続されているＳＣＫ信号用の信号線４１ｂに接続される。また、出力回路９１ｃは、信号線８１ｃに接続されるとともに、マイコン２０に接続されているＭＯＳＩ信号用の信号線４１ｃに接続される。また、入力回路９１ｄは、マイコン２０からロジック回路１０Ａに延びるＭＩＳＯ信号用の信号線４１ｄに接続されている。また、入力回路９３は、マイコン２０から出力されるＥｎａｂｌｅ信号を伝送する信号線３２に接続されている。
【００６７】
応答回路３０Ａは、プロトコル変換回路１２Ａに対して、マイコン２０に並列接続されている。具体的には、スレーブセレクト（ＳＳ）信号用の信号線８１ａから分岐した信号線３５ａ、転送クロック（ＳＣＫ）信号用の信号線８１ｂから分岐した信号線３５ｂ、及びデータ出力（ＭＩＳＯ）信号用の信号線８１ｄから分岐した信号線３５ｄが応答回路３０ＡのＳＰＩ回路３１に接続されることにより、応答回路３０Ａが、マイコン２０に並列接続されている。また、応答回路３０Ａは、入力回路９３に接続されている信号線３６を介してＥｎａｂｌｅ信号の入力を受ける。なお、信号線８１ｄにおける入力回路９１ｄの出力箇所、及び、信号線３５ｄにおける応答回路３０の出力箇所は、いずれもオープンドレイン出力とされている。応答回路３０Ａは、第１実施形態の応答回路３０同様、マイコン２０から出力されるＥｎａｂｌｅ信号に応じて動作する。なお、信号線８１ｄにおける入力回路９１ｄの出力箇所、及び、信号線３５ｄにおける応答回路３０Ａの出力箇所をオープンドレインとせずに、２入力対１出力のセレクタ回路をロジック回路１０Ａ内に付加し、そのセレクタ回路の片方の入力箇所に入力回路９１ｄの出力箇所を接続し、そのセレクタ回路の他方の入力箇所に応答回路３０Ａの出力箇所（信号線３５ｄ）を接続し、そのセレクタ回路の出力箇所を信号線８１ｄに接続し、入力回路９３から出力される信号（Ｅｎａｂｌｅ信号）に応じてマイコン２０から出力されたＭＩＳＯ信号と応答回路３０Ａが出力するステータスデータが切替えられてプロトコル変換回路１２ＡにＭＩＳＯ信号として入力されるように構成しても良い。ロジック回路１０Ａ内においては、そのようにセレクタ回路を使用して信号の切り替えを行うことが回路構成上好適となる場合がある。
【００６８】
このように、ロジック回路１０Ａが応答回路３０Ａを含んだ集積回路であることにより、ロジック回路及び応答回路の機能を１つのＩＣで実現することができ、部品点数を少なくすることができる。部品点数が少なくなることにより、光トランシーバ１における実装面積が小さくなり、光トランシーバ１を小型化することができる。また、ロジック回路及び応答回路間の信号の送受信を同一ＩＣ内で直接行うことができるので、例えば、ロジック回路及び応答回路が別々のＩＣである場合と比べて、異なるＩＣ間での信号の送受信に用いる信号の入力回路及び出力回路を少なくすることができる。これにより、光トランシーバの消費電力を低減することができる。
【００６９】
以上、本発明の実施形態について説明したが本発明は上記実施形態に限定されない。例えば、図７（ａ）に示される応答回路３０Ｂを用いてもよい。応答回路３０Ｂでは、上述したＤ−ＦＦ５６ａ〜５６ｐに替えて、コンパレータ３７及び４ｂｉｔカウンタ３８が用いられる。４ｂｉｔカウンタ３８は、リセット端子、出力端子、及びクロック端子を有している。リセット端子にＮＡＮＤ回路５８からＬｏｗレベルが入力されると、リセットが解除される。この状態において、クロック端子にＳＣＫ信号が入力されると、４ｂｉｔカウンタ３８は、出力端子からＳＣＫ信号に同期したカウンタ動作を行い、４ビットの出力端子Ｑ［３：０］からカウント値を出力する。例えば４ｂｉｔカウンタ３８はバイナリアップカウンタである。コンパレータ３７は、当該カウンタ出力の値と所定の比較値とを比較し、カウンタ出力の値が所定の比較値と等しい場合に、出力回路５５に「１」（Ｈｉｇｈ）を出力し、等しくない場合に、出力回路５５に「０」（Ｌｏｗ）を出力する。そして、出力回路５５は、「１」（Ｈｉｇｈ）が入力された場合に「１」を出力し、「０」（Ｌｏｗ）が入力された場合に「０」を出力する。
【００７０】
コンパレータ３７には、所定の比較値として６が設定されている。また、４ｂｉｔカウンタ３８は、（００００）２から出力値を１ずつ増加させるアップカウンタである。最初にＥｎａｂｌｅ信号が出力回路５５に入力されると、出力回路５５は、最上位ビット（ｂｉｔ１５）として「０」を出力する。つづいて、ＳＣＫ信号が入力されると、４ｂｉｔカウンタ３８は、上位２番目のビット（ｂｉｔ１４）に相当するカウンタ出力として１をコンパレータ３７に出力する。コンパレータ３７は、カウンタ出力（１）が比較値（６）と等しくないと判定し、出力回路５５に「０」（Ｌｏｗ）を出力する。つづいて、カウント２（２回目）では、ＳＣＫ信号が入力されると、４ｂｉｔカウンタ３８は、上位３番目のビット（ｂｉｔ１３）に相当するカウンタ出力として２をコンパレータ３７に出力する。コンパレータ３７は、カウンタ出力（２）が比較値（６）と等しくないと判定し、出力回路５５に「０」（Ｌｏｗ）を出力する。同様の処理を続けると、カウント６（６回目）では、ＳＣＫ信号が入力されると、４ｂｉｔカウンタ３８は、上位６番目のビット（ｂｉｔ９）に相当するカウンタ出力として６をコンパレータ３７に出力する。コンパレータ３７は、カウンタ出力（６）が比較値（６）と等しいと判定し、出力回路５５に「１」（ＨＩｇｈ）を出力する。その後、カウント７〜１５まで同様の処理が続けられ、それぞれ、出力回路５５に「０」（Ｌｏｗ）が出力される。これにより、出力回路５５からは、マイコンが処理継続中（progress）であることを示すステータスデータが出力される。
【００７１】
また、実施形態においては、出力回路５５等のトライステートバッファ（米国登録商標）により、マイコン２０のＭＩＳＯ出力及び応答回路３０のＭＩＳＯ出力がオープンドレイン出力とされ、互いに並列に接続されているとして説明したがこれに限定されない。例えば、図７（ｂ）に示されるセレクタ５７を設け、セレクタ５７の入力に、マイコンのＭＩＳＯ出力及び応答回路のＭＩＳＯ出力を接続し、セレクタ５７の出力にロジック回路へのＭＩＳＯ入力を接続してもよい。この場合、セレクタ５７にＥｎａｂｌｅ信号が入力される（Ｅｎａｂｌｅ信号がＨｉｇｈとされる）と、応答回路のＭＩＳＯ出力がロジック回路へのＭＩＳＯ入力に繋がる。一方、セレクタ５７へのＥｎａｂｌｅ信号が停止される（Ｅｎａｂｌｅ信号がＬｏｗとされる）と、マイコンのＭＩＳＯ出力がロジック回路へのＭＩＳＯ入力に繋がる。この場合、ＭＩＳＯ出力をオープンドレイン出力とする必要がない。
【００７２】
また、例えば第２実施形態では、ロジック回路１０Ａが、プロトコル変換回路１２Ａ及び応答回路３０Ａを含む集積回路である例を説明したが、ロジック回路におけるプロトコル変換回路及び応答回路が統合されてもよい。この場合、回路規模が小さくなることで、更なる小型化及び低消費電力化を実現することができる。
【００７３】
また、応答回路３０は、マイコン２０からＥｎａｂｌｅ信号の入力を受けている場合に限り動作することができるとして説明したがこれに限定されない。例えば、マイコンから一度Ｅｎａｂｌｅ信号の入力を受けると応答回路が動作し、更にもう一度受けると応答回路が動作を停止する（ステータスデータの出力を停止する）ものであってもよい。また、第１実施形態において、ＳＰＩ回路２１とＳＰＩ回路３１とを別々の構成として説明したが、一のＳＰＩ回路によりＳＰＩ回路２１及びＳＰＩ回路３１の機能が実現されてもよい。さらに、上記にてステータスデータの処理継続中（progress）を表すデータはｂｉｔ９のみが「１」である１６ビットデータであるとしたが、これはＣＦＰ ＭＳＡに準じた一例であって、ホスト装置側で認識できるように予め設定しておくことで別のデータを代わりに用いてもよい。例えば、より簡易な構成の論理回路によって生成可能なデータを代わりに使用することで、応答回路をより小型にすることができ、光トランシーバの小型化に寄与することができる。
【符号の説明】
【００７４】
１，１Ａ…光トランシーバ、１０，１０Ａ…ロジック回路、１１…ＭＤＩＯインターフェース、２０…マイコン、２１…ＳＰＩ回路、２６…不揮発メモリ、２６ａ…ファームウェア、３０，３０Ａ，３０Ｂ…応答回路、３１…ＳＰＩ回路、１００…ホスト装置。
【図１】
0006485236.tif 000002
【図２】
0006485236.tif 000003
【図３】
0006485236.tif 000004
【図４】
0006485236.tif 000005
【図５】
0006485236.tif 000006
【図６】
0006485236.tif 000007
【図７】
0006485236.tif 000008