[本願発明の実施形態の説明]
最初に本発明の実施形態の内容を列記して説明する。
本発明の一態様に係る光トランシーバは、MDIOインターフェースを介して外部のホスト装置と通信を行うことができる光トランシーバであって、MDIOインターフェースを介してホスト装置から命令信号を受信し、該命令信号を別の命令信号に変換して出力するロジック回路と、ファームウェアが格納されているメモリを有し、該ファームウェアを実行することによって別の命令信号に応じた処理を行い、別の命令信号によってファームウェアの更新を指示されたときに、許可状態に設定された許可信号を出力してファームウェアの書き換えを開始するマイクロコントローラと、許可信号が許可状態に設定されているときに、別の命令信号に応じて光トランシーバの動作状態を示すステータスデータをロジック回路を介してホスト装置に送信する応答回路と、を備える。
この光トランシーバでは、ロジック回路によって出力された、ホスト装置からの命令信号に基づく別の命令信号によってファームウェアの更新が指示されると、マイクロコントローラによって、許可状態に設定された許可信号が出力されるとともにファームウェアの更新が開始される。そして、許可信号が許可状態に設定されている場合には、応答回路により、上記別の命令信号に応じたステータスデータがロジック回路を介してホスト装置に送信される。
マイクロコントローラのファームウェアの更新等、メモリの書き換えを伴う処理が実行される場合には、当該処理の実行中において、当該メモリのプログラムコードの読み出しができず、マイクロコントローラから光トランシーバのステータスを出力することができなくなる。この場合、ホスト装置はマイクロコントローラから光トランシーバのステータスを取得することができない。この点、この光トランシーバでは、ファームウェアの更新が指示されると、マイクロコントローラにより、許可状態に設定された許可信号が出力される。そして、応答回路により、許可信号が許可状態に設定されているときに、ステータスデータがホスト装置に送信される。これにより、ファームウェアの更新が実行されている期間においては、応答回路から出力されたステータスデータが示す所定のステータスを、ホスト装置に取得させることができる。以上より、メモリの書き換えを行う場合においても、光トランシーバのステータスをホスト装置に取得させることができ、光トランシーバの内部状態の監視を適切に行うことができる。
本発明の一態様に係る光トランシーバにおいて、マイクロコントローラは、第1のシリアル通信回路をさらに有し、該第1のシリアル通信回路を介してロジック回路から別の命令信号を受信し、別の命令信号によってファームウェアの更新を指示されたときに第1のシリアル通信回路を停止するとともに許可信号を許可状態に設定してファームウェアの書き換えを開始し、ファームウェアの書き換えを完了したときに、第1のシリアル通信回路を停止解除するとともに許可信号が許可状態以外の状態を示すように設定してもよい。ファームウェアの更新が指示された際に第1のシリアル通信回路を停止することにより、当該第1のシリアル通信回路から出力される信号が、応答回路からロジック回路に出力される信号に影響を及ぼすことを回避することができる。また、ファームウェアの書き換えが完了した後に、第1のシリアル通信回路を停止解除するとともに許可信号が許可状態以外の状態を示すように設定されることにより、書き換え後に、マイクロコントローラ及びロジック回路間の通信を適切に回復させることができる。
本発明の一態様に係る光トランシーバにおいて、応答回路は、第2のシリアル通信回路を有し、許可信号が許可状態に設定されているときに、該第2のシリアル通信回路を介してロジック回路と通信を行い、第1のシリアル通信回路及び第2のシリアル通信回路がロジック回路に対して並列に接続されていてもよい。許可信号が許可状態に設定されているときに、第2のシリアル通信回路を介して応答回路とロジック回路との間で通信が行われることにより、許可信号が許可状態に設定されている場合に限り、応答回路からホスト装置に対してステータスデータを送信することができる。また、ロジック回路に対して第1のシリアル通信回路及び第2のシリアル通信回路が並列接続されていることにより、ファームウェアの更新を行うか否かに応じて、ステータスを出力する機器であるマイクロコントローラ及び応答回路を効率的に切り替えることができる。
本発明の一態様に係る光トランシーバにおいて、ロジック回路及び応答回路が同一の半導体集積回路に含まれていてもよい。これにより、ロジック回路及び応答回路の機能を1つのICで実現することができ、部品点数を少なくすることができる。部品点数が少なくなることにより、光トランシーバにおける実装面積が小さくなり、光トランシーバを小型化することができる。また、ロジック回路及び応答回路間の信号の送受信を同一IC内で直接行うことができるので、例えば、ロジック回路及び応答回路が別々のICとされた場合に、それぞれのICで必要となる信号の入力回路及び出力回路が不要となる。これにより、光トランシーバの消費電力を低減することができる。
本発明の一態様に係る光トランシーバにおいて、ステータスデータは、光トランシーバがファームウェアの書き換えを継続していることを示し、応答回路は、ステータスデータをホスト装置へ送信することのみ指示する別の命令信号に応じて、ステータスデータを送信してもよい。応答回路から、光トランシーバがファームウェアの書き換えを継続していることを示すステータスデータが出力されることにより、マイクロコントローラの現実の状態をホスト装置に取得させることができる。また、上記別の命令信号が、ステータスデータをホスト装置へ送信することのみを指示するものであることにより、応答回路による処理が必要最小限となる。例えば、上記別の命令信号が、光トランシーバとホスト装置との間の種々の制御に関する命令を含む場合には、応答回路での処理が複雑となり、応答回路の実装面積が大きくなる。この場合、光トランシーバが大型化するおそれがある。この点、応答回路による処理を必要最小限とすることにより、応答回路の実装面積を抑え、光トランシーバを小型化することができる。
本発明の他の態様に係る、光トランシーバのファームウェア更新方法は、MDIOインターフェースを介して外部のホスト装置と通信可能なロジック回路と、第1のシリアル通信回路を介してロジック回路と通信可能なマイクロコントローラと、第2のシリアル通信回路を介してロジック回路と通信可能な応答回路と、を有する光トランシーバのファームウェア更新方法であって、ロジック回路が、MDIOインターフェースを介してホスト装置から命令信号を受信し、命令信号を別の命令信号に変換して出力する命令受信ステップと、マイクロコントローラが、マイクロコントローラ内のメモリに格納されているファームウェアを実行することによって別の命令信号に応じた処理を行い、別の命令信号によってファームウェアの更新を指示されたときに、許可状態に設定された許可信号を出力してからファームウェアの書き換えを開始する更新開始ステップと、応答回路が、許可信号が許可状態に設定されている間のみ、別の命令信号に応じて光トランシーバの動作状態を示すステータスデータを、ロジック回路を介してホスト装置に送信する、更新時応答ステップと、マイクロコントローラが、ファームウェアの書き換えを終了したときに、許可信号を許可状態以外の状態に設定する、書き換え終了ステップと、を備えている。
[本願発明の実施形態の詳細]
本発明の実施形態に係る光トランシーバの具体例を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
[第1実施形態]
図1は、第1実施形態に係る光トランシーバを模式的に示す構成図である。光トランシーバ1は、外部のホスト装置100(上位レイヤ)に挿抜可能とされており、ホスト装置100と通信を行うことができる。光トランシーバ1は、例えば、互いに波長の異なる4つの光信号を使用して2芯双方向で光信号を送受信する100ギガビット光トランシーバである。このような光トランシーバ1の外径、端子配置、電気的特性、及び光学的特性等は、例えば、MSA規格のCFPによって規定されている。光トランシーバ1は、MDIOインターフェース11を介してホスト装置100と通信を行う。より詳細には、光トランシーバ1は、MDIOインターフェース11に接続されているMDIOバスL1を介して、ホスト装置100と電気信号の送受信を行う。また、光トランシーバ1は、送信用及び受信用の2本の光ファイバーケーブルによって接続されている他の光トランシーバ(図示せず)と光信号の送受信を行う。
光トランシーバ1は、ロジック回路10と、マイクロコントローラ(マイコン)20と、応答回路30と、不揮発性メモリ60とを備えている。なお、不揮発性メモリ60は、所定の方法によって内部に記憶されている情報を書き換えることが可能であって、例えばEEPROM(Electrically Erasable Programmable Read-OnlyMemory)又はFlash ROM等である。また、光トランシーバ1は、送受信の双方向において、光信号と電気信号との変換を行う。光トランシーバ1は、光信号の送受信及び当該変換に係る構成として、例えば、クロックデータリカバリ(CDR:Clock Data Recovery)と、駆動制御回路と、光送信サブアセンブリ(TOSA:Transmitter Optical SubAssembly)と、光マルチプレクサと、光受信サブアセンブリ(ROSA:Receiver Optical SubAssembly)と、光デマルチプレクサとを備えている。光信号の送受信、並びに、光信号と電気信号との変換に係る構成は、本実施形態に直接関係しないので、詳細な説明を省略する。ロジック回路10と、マイコン20及び応答回路30との間では、シリアル通信が行われる。シリアル通信は、通信を制御するマスターデバイスと、マスターデバイスからの命令に従って動作するスレーブデバイスとの間で行われる。本実施形態では、ロジック回路10がマスターデバイスであり、マイコン20及び応答回路30がスレーブデバイスである。また、本実施形態では、シリアル通信とはSPI(Serial Peripheral Interface)通信である。
ロジック回路10は、例えば、プログラム可能なCPLD(ComplexProgrammable Logic Device)及びFPGA(Field-ProgrammableGate Array)等である。ロジック回路10は、MDIOインターフェース11を有する。光トランシーバ1は、ホスト装置100に組み込まれる際に、MDIOインターフェース11に接続されるMDIOバスL1と、物理層のアドレス指定用の5本(5ビット)の信号線L2とを介してホスト装置100に接続される。より詳細には、ロジック回路10がMDIOバスL1及び信号線L2を介してホスト装置100に接続されることにより、光トランシーバ1がホスト装置100に接続される。ロジック回路10は、MDIOインターフェース11を介してホスト装置100と通信を行い、ホスト装置100から、コマンド信号であるMDIOフレーム(命令信号)を受信する。また、ロジック回路10は、当該MDIOフレームに含まれている、光トランシーバ1に対するホスト装置100からの命令を示す命令情報(別の命令信号)を出力する(詳細は後述)。すなわち、ロジック回路10は、命令信号であるMDIOフレームを別の命令信号に変換し、該変換した別の命令信号を出力する。なお、ホスト装置100と光トランシーバ1とは、光信号と相互に変換される、情報伝送のための電気信号の送受信も行うが、本実施形態に直接関係しないので、詳細な説明を省略する。
ロジック回路10とホスト装置100との間で送受信されるMDIOフレームは、例えば、IEEE 802.3 Clause 45,CFP MSA Management Interface Specificationで規定されるフレーム構造を有する。以下では、MDIOフレームのフレーム構造(フレームデータ)について、図2を参照して説明する。
図2は、MDIOフレームのデータ構成を模式的に示す図である。図2に示されるように、MDIOフレームMFは、プリアンブル(「PRE」)と、スタートビット(「ST」)と、オペレーション(OP)コード(「OP」)と、物理層アドレス(「PHYADR」)と、MDIOデバイスアドレス(「DEVAD」)と、ターンアラウンドビット(「TA」)と、アドレス情報/データ領域(「DATA/ADDRESS」)とで構成されている。
プリアンブルは、32ビット長の同期ビットパターンである。スタートビットは、データの始まりを示す2ビット長のスタートフラグである。OPコードは、当該MDIOフレームMFにより実行される機能を示す2ビットの命令コードである。OPコードは、アドレス設定(Address)、書き込み(Write)、読み出し(Read)及びインクリメント付き読み出し(Post Read inc Add)の4タイプの命令のいずれかを示す。OPコードには、アドレス設定の場合(00)2が設定され、書き込みの場合(01)2が設定され、読み出しの場合(11)2が設定され、インクリメント付き読み出しの場合(10)2が設定される。
物理層アドレスは、MDIOフレームMFの送信先となる光トランシーバの物理層アドレスを示す5ビット長のコードである。MDIOデバイスアドレスは、物理層アドレスによって特定された光トランシーバについて、さらにその内部のデバイスを特定するためのアドレス情報である。ターンアラウンドビットは、OPコードが読み出し又はインクリメント付き読み出しを示す場合に、MDIOバスL1上の信号方向の切り替えに要する2ビットのタイミングギャップ(時間間隔)を示す情報である。信号方向の切り替えとはすなわち、命令を伝える方向(ホスト装置100から光トランシーバ1への方向)から、当該命令に応じた処理結果を伝える方向(光トランシーバ1からホスト装置100への方向)への切り替えをいう。タイミングギャップは、1ビットを単位として規定されている。アドレス情報/データ領域は、16ビットのデータを示す情報である。
ホスト装置100及び光トランシーバ1間の通信が行われる場合、例えば通信開始前に、光トランシーバ1の物理層アドレスを示すアドレスデータとして、(00001)2が光トランシーバ1に入力され、当該アドレスデータが光トランシーバ1に記憶される。そして、ホスト装置100及び光トランシーバ1間の通信が開始され、光トランシーバ1が、物理層アドレスとして(00001)2を含むMDIOフレームMFを受信すると、ロジック回路10は、ホスト装置100から送信されたMDIOフレームMFが自身宛であると認識して当該MDIOフレームMFを受信し、OPコードに応じた処理を行う。一方、MDIOフレームMFの物理層アドレスが(00001)2以外であれば、ロジック回路10は、当該MDIOフレームが他の光トランシーバ(図示せず)に向けられたものであると認識し、当該MDIOフレームMFに応じた処理を行わない(MDIOフレームMFを無視する)。
図1に戻り、MDIOバスL1は、クロック信号MDC用の信号線L1aと、データ信号MDIO用の信号線L1bとを含む。MDIOバスL1では、クロック信号MDCの最大周波数が、例えば4MHz(最小周期0.25μs)とされて、MDIOフレームの送受信が行われる。信号線L1bでは、通常は、ホスト装置100からロジック回路10にMDIOフレームが送信される。ただし、MDIOフレームに含まれたOPコードが読み出しを示す場合には、マイコン20において読み出された単一データがロジック回路10からホスト装置100に送信される。従って、光トランシーバ1及びホスト装置100間では、OPコードに応じて双方向の通信が行われる。
ロジック回路10は、MDIOバスL1を介してホスト装置100と通信を行う一方で、ホスト装置100から指示されたOPコードに応じた処理を行うために、シリアル通信バス41及び専用信号線42を介してマイコン20と通信を行う。専用信号線42は、ロジック回路10からマイコン20へOPコードを送信するための2本の信号線である。ロジック回路10は、専用信号線42を介して、OPコードの情報をパラレルデータとしてマイコン20へ送信する。当該OPコードは、ホスト装置100からの命令を示す命令情報の一種である。
ロジック回路10は、シリアル通信バス41を介して、MDIOフレームに含まれたアドレス情報/データ領域に応じたアドレス情報及び単一データを、マイコン20に送信する。当該アドレス情報及び単一データは、上述したホスト装置100からの命令を示す命令情報の一種である。シリアル通信バス41は、スレーブセレクト(SS)信号用の信号線41aと、転送クロック(SCK)信号用の信号線41bと、マイコン20へのデータ入力(MOSI)信号用の信号線41cと、マイコン20からのデータ出力(MISO)信号用の信号線41dとを備えている。信号線41cはロジック回路10から出力されてマイコン20へ入力されるデータを伝送する信号線であり、信号線41dはマイコン20から出力されてロジック回路10へ入力されるデータを伝送する信号線である。なお、ロジック回路10は、内蔵する論理ゲートの組合せによってSPI通信に必要な機能を実現してもよいが、後述するマイコン20等と同様にSPI回路(図示せず)を内蔵した構成を取ってもよい。
マイコン20は、ロジック回路10から出力された命令情報に応じて処理を実行し、光トランシーバ1の内部状態を監視する。マイコン20は、例えば、1チップのマイクロコントローラであり、マイクロコントロールユニット(MCU:Micro-Control Unit)と呼ばれる場合もある。マイコン20は、CDR、駆動制御回路、TOSA、及びROSAに加え、それらの動作に必要な電圧生成回路、熱電素子制御回路、及び温度検出回路等の構成を制御する。マイコン20と、マイコン20により制御される各構成とは、シリアル通信バス及び専用信号線等によって接続されている。マイコン20は、制御対象の各構成と通信を行うことにより、光トランシーバ1の内部状態に関する情報を取得する。また、マイコン20は、上述したシリアル通信バス41に接続される第1のシリアル通信回路である、SPI回路21を有する。すなわち、マイコン20は、SPI回路21を介してロジック回路10に接続され、ロジック回路10から命令情報を受信する。SPI回路21は、ロジック回路10とマイコン20とのシリアル通信を実現する、シリアル通信回路である。なお、以降の記述において「シリアル通信」と称する場合に、シリアル通信バス41を介して行う一般的なSPI通信だけでなく、専用信号線42を介して行う通信も含むものを指すものとする。また、「シリアル通信インターフェース」についても、SPI回路21だけでなく、専用信号線42を介して通信を行う部分も含むものとする。
マイコン20は、MDIOレジスタ22と、受信レジスタ23と、アドレスレジスタ24と、送信レジスタ25と、不揮発メモリ26とを有する。MDIOレジスタ22は、光トランシーバ1の内部状態(ステータス)を示す複数の単一データ、ホスト装置100から書き込みを指示された単一データ、及び光トランシーバの識別のための単一データ(例えば、製造者名及び製造番号)等を記憶する。光トランシーバ1の内部状態を示すデータは、例えば、光トランシーバ1の温度、光トランシーバ1における電源の電圧、TOSAのバイアス電流値、TOSAの光送信パワー、TOSAの発光素子の温度、及びROSAの受信パワー等である。MDIOレジスタ22は、数百個以上のレジスタを有するが、図1には便宜上、記憶領域22a、記憶領域22b、及び記憶領域22cの3つレジスタのみを示している。MDIOレジスタ22の個々のレジスタには、識別のためのアドレスが設定されている。どのアドレスのレジスタに何の情報を記憶するかについては、MSAに規定されている。また、いずれのレジスタに関する処理を行うか否かについては、MDIOフレームMFのアドレス情報により指定される。
受信レジスタ23は、ロジック回路10により送信されたアドレス情報及び単一データを一時的に記憶する。より詳細には、受信レジスタ23は、アドレスレジスタ24に転送されるアドレス情報を一時的に記憶し、また、MDIOレジスタ22に転送される単一データを一時的に記憶する。受信レジスタ23に記憶されているデータがMDIOレジスタ22に記憶されるべき単一データである場合には、当該データは、アドレスレジスタ24に記憶されているアドレス情報によって特定される記憶領域22b(以下、これを「カレントレジスタ」という)に転送され、記憶される。なお、受信レジスタ23は、SPI回路21に含まれていてもよい。
送信レジスタ25は、ロジック回路10へ送信される単一データを一時的に記憶する。送信レジスタ25に格納されている単一データは、シリアル通信バス41の信号線41dを介してロジック回路10へ送信される。送信レジスタ25におけるデータの格納及びデータの取り出しは、例えばFIFO(First In First Out)方式とされる。OPコードによって読み出しが指示された場合には、送信レジスタ25に記憶されている単一データが信号線41dを介してロジック回路10へ送信される。マイコン20は、ロジック回路10からアドレス情報又は単一データを受信する度に、アドレスレジスタ24に記憶されているアドレス情報によって特定されるカレントレジスタ22bの単一データを送信レジスタ25に書き込む。当該送信レジスタ25に書き込まれる情報には、光トランシーバ1の内部状態(ステータス)を示す単一データが含まれる。なお、送信レジスタ25は、SPI回路21に含まれていてもよい。
不揮発メモリ26は、例えばFlashROM等の不揮発性メモリである。不揮発メモリ26には、マイコン20のファームウェア26aが格納されている。マイコン20は、ファームウェア26aを実行することによって、ロジック回路10から受信した命令情報に応じた処理を行う。ここで、マイコン20において受信されたOPコードが書き込みを示しており、且つ、受信レジスタ23に格納された単一データが不揮発メモリ26のファームウェア26aのアップグレードデータ61である場合には、当該アップグレードデータ61が、MDIOレジスタ22に転送され更に外付けの不揮発性メモリ60に出力される。不揮発性メモリ60は、MDIOレジスタ22から出力されるファームウェア26aのアップグレードデータ61を記憶している。MDIOフレームにおいては、16ビットずつデータが送信されるところ、通常、ファームウェア26aのアップグレードデータ61は16ビットよりも大きい。そこで、アップグレードデータ61は、16ビットの分割データ61aに分割され、分割データ61a毎に複数のMDIOフレームにて送信される。MDIOレジスタ22は、分割データ61aを不揮発性メモリ60に出力する。MDIOレジスタ22は、分割データ61aが格納される都度、当該分割データ61aを不揮発性メモリ60に出力してもよいし、一の分割データ61aを記憶している状態において新たな分割データ61aが格納されたタイミングで、当該一の分割データ61aを不揮発性メモリ60に出力してもよい。なお、不揮発性メモリの書き込み時間は、所定の時間よりも短くなければならない場合がある。
マイコン20は、命令情報に不揮発メモリ26の書き換えを伴う処理の実行命令、より詳細にはファームウェア26aの更新処理の実行命令が含まれている場合には、ファームウェア26aの書き換えを開始する。具体的には、マイコン20は、不揮発性メモリ60に記憶されているアップグレードデータ61を不揮発メモリ26に転送し、ファームウェア26aを更新する。当該ファームウェア26aを更新する処理は、不揮発メモリ26の書き換えを伴う。不揮発メモリ26の書き換えを行っている間は、マイコン20の動作が停止し、上述した内部状態の監視及びロジック回路10との通信等が不可となる。
ここで、マイコン20は、命令情報に不揮発メモリ26の書き換えを伴う処理の実行命令が含まれている場合には、不揮発メモリ26の書き換えを伴うファームウェア26aの更新処理を実行する前に、応答回路30に対して、応答回路30を動作させるEnable信号(許可信号)を出力する(Enable信号をHighレベルにする)。当該Enable信号を出力する(Enable信号をHighレベルにする)とは、すなわち許可状態に設定された許可信号を出力することを意味している。より詳細には、マイコン20は、命令情報に不揮発メモリ26の書き換えを伴う処理の実行命令が含まれている場合には、ファームウェア26aの更新処理を実行する前に、SPI回路21を停止し、SPI回路21を介した通信を無効化するとともにEnable信号を出力する。SPI回路21を介した通信を無効化する際には、SPI回路21から信号線41dに出力される信号が、応答回路30から信号線41dに出力される信号(詳細は後述)に影響を及ぼすことを回避すべく、SPI回路21における信号線41dの出力箇所(MISO出力)がハイインピーダンス状態とされる。当該ハイインピーダンス状態は、例えばMISO出力に設けられたトランジスタが「オフ」とされることにより実現される。このように、SPI回路21における信号線41dの出力箇所(MISO出力)は、オープンドレイン出力とされている。SPI回路21における信号線41dの出力箇所(MISO出力)には、トライステートバッファ(米国商標登録)等の出力回路(図示せず)が設けられている。応答回路30は、マイコン20から信号線32を介してEnable信号の入力を受ける。応答回路30は、Enable信号が入力されている場合、すなわち許可信号が許可状態に設定されている場合に限り、マイコン20に代わってロジック回路10へ応答動作することが可能となる。マイコン20は、ファームウェア26aの更新処理が完了するまで、Enable信号を出力し続け、ファームウェア26aの更新処理が完了するとEnable信号の出力を停止する(Enable信号をLowレベルにする)。当該Enable信号の出力を停止する(Enable信号をLowレベルにする)とは、すなわち許可状態以外の状態に設定された許可信号を出力することを意味している。より詳細には、マイコン20は、ファームウェア26aの更新処理が完了した後に、SPI回路21を停止解除し、SPI回路21を介した通信を有効化するとともにEnable信号の出力を停止する。
応答回路30は、ロジック回路10から出力された命令情報に応じて、光トランシーバ1の動作状態(ステータス)を示すステータスデータをロジック回路10を介してホスト装置100へ出力する。より詳細には、応答回路30は、マイコン20から出力されたEnable信号に基づき動作し、命令情報に応じてステータスデータをロジック回路10に出力する。なお、命令情報は、ステータスデータをホスト装置100へ出力することのみを指示する信号である。応答回路30は、Enable信号の入力に応じて動作し、Enable信号の入力が停止すると停止する。応答回路30から出力されるステータスデータは、光トランシーバ1がファームウェア26aの書き換えを継続していることを示す所定の信号とされる。
応答回路30は、ロジック回路10に接続される第2のシリアル通信回路であるSPI回路31を有する。SPI回路31は、ロジック回路10と応答回路30とのシリアル通信を実現する、シリアル通信回路である。応答回路30は、SPI回路31を介してシリアル通信バス41に接続されており、マイコン20に並列接続されている。すなわち、ロジック回路10に対して、SPI回路21及びSPI回路31が並列接続されている。具体的には、スレーブセレクト(SS)信号用の信号線41aから分岐した信号線51a、転送クロック(SCK)信号用の信号線41bから分岐した信号線51b、及びデータ出力(MISO)信号用の信号線41dから分岐した信号線51dが応答回路30のSPI回路31に接続されることにより、応答回路30が、マイコン20に並列接続されている。なお、信号線51dは、抵抗素子を介して電源電圧に接続(プルアップ)されている。
応答回路30は、Enable信号が入力されていない状態においては、SPI回路31における信号線51dの出力箇所(MISO出力)をハイインピーダンス状態とする。一方で、Enable信号が入力されると、応答回路30は、SPI回路31における信号線51dの出力箇所(MISO出力)をハイインピーダンス状態から出力状態とし、データ出力が可能な状態とする。当該ハイインピーダンス状態及び出力状態の切り替えは、例えばMISO出力に設けられたトランジスタの「オン」「オフ」を切り替えることにより実現される。すなわち、SPI回路31における信号線51dの出力箇所(MISO出力)は、オープンドレイン出力とされている。これにより、応答回路30は、Enable信号が入力されている場合にのみ、SPI回路31を介してロジック回路10と通信を行う。
次に、図3を参照して、応答回路30の構成を詳細に説明する。図3は、光トランシーバ1の応答回路30を模式的に示す構成図である。応答回路30は、出力回路55と、D型フリップフロップ(D−FF)56a〜56pと、NAND回路58とを有している。
D−FF56a〜56pは、クロック同期型フリップフロップである。各D−FF56a〜56pは、それぞれステータスデータの16ビット(bit0〜bit15)のいずれかに対応しており、一列状に互いに直列に接続されている。より詳細には、bit0に対応するD−FF56aの入力端子がグランドに接続され、D−FF56aの出力端子がbit1に対応するD−FF56bの入力端子に接続されている。このように、下位のbitに対応するD−FFの出力端子が、1つ上位のbitに対応するD−FFの入力端子に接続されている。そして、最上位bitに対応するD−FF56pの出力端子が出力回路55に接続されている。各D−FF56a〜56pのクロック端子には、信号線51bを介して、SCK信号が入力される。当該SCK信号は、各D−FF56a〜56pのクロック端子に同時に入力される。D−FF56jのセット端子にNAND回路58の出力信号が、それ以外のD−FFのリセット端子にNAND回路58の出力信号が、それぞれ入力される。
NAND回路58は、入力に応じて、各D−FF56a〜56pのセット端子又はリセット端子に所定の出力を行う。NAND回路58には、信号線51aを介してSS信号が、信号線32から分岐された信号線32aを介してEnable信号が、それぞれ入力可能とされている。NAND回路58は、SS信号及びEnable信号が共にHighレベルである場合に各D−FF56a〜56pにLowレベルの信号を出力し、それ以外の場合に各D−FF56a〜56pにHighレベルの信号を出力する。
出力回路55は、信号線32から分岐された信号線32bを介してEnable信号が入力されると、ハイインピーダンス状態から出力状態となり、D−FF56pからの出力に応じて、16bitのステータスデータを出力することが可能な状態となる。当該ステータスデータは、bit9のみが「1」となったデータであり、マイコン20が処理継続中(progress)であることを示すデータである。出力回路55としては、例えばトライステートバッファ(米国商標登録)を用いることができる。
マイコン20から出力されるEnable信号は、初期値がLowレベルとされている。また、信号線51aを介してNAND回路58に入力されるSS信号もSPI通信を行っていない間はLowレベルとされている。このため、NAND回路58から各D−FF56a〜56pにHighレベルの信号が出力される。また、bit9に対応するD−FF56jのみセットされ、他のbitのD−FFはリセットされている。この状態においては、信号線51dの出力箇所(MISO出力)がハイインピーダンス状態となっているので、ロジック回路10からSPIアクセスが発生しても、出力回路55からステータスデータは出力されない。
Enable信号がHighレベルになり、更に、ロジック回路10からマイコン20に命令情報が出力され、NAND回路58に入力されるSS信号がHighレベルになると、NAND回路58からD−FF56a〜56pにLowレベルの信号が出力され、D−FFのセット入力及びリセット入力が解除される。この状態においては、応答回路30は、シフトレジスタとして動作し、信号線51bを介して入力されるSCK信号に同期するようにデータ出力を行う。シフトレジスタとして動作し始める時点においては、解除前のD−FFのセット入力及びリセット入力に応じて、bit9に対応するD−FF56jのみ「1」がセットされ、他のD−FFには「0」がセットされている。この状態において、SCK信号のパルスがD−FF56a〜56pに入力されると、D−FF56a〜56oの値が1つ上位bitのD−FFにシフトする。SCK信号が入力される前段階において、最上位bitであるD−FF56pの値「0」は出力回路55から出力されている。NAND回路58からD−FF56a〜56pにLowレベルの信号が出力され、D−FFのセット入力及びリセット入力が解除されると、出力回路55から出力されていたD−FF56pの値である「0」がロジック回路10に取り込まれる。そして、SCK信号のパルス毎に、1ビットずつ出力回路55から出力される。1回のSPI通信あたり、SCK信号は16個のパルスを有するので、bit9のみが「1」である16ビットステータスデータが、応答回路30から出力される。
16bitのステータスデータが応答回路30から出力されると、SS信号がLowレベルになり、NAND回路58からHighレベルの信号が出力される。これにより、応答回路30の各D−FF56a〜56pの入力値が初期値に再設定される。以降、MDIOアクセスに応じてロジック回路10が出力するSS信号に対し、応答回路30が処理継続中(progress)であることを示すステータスデータを出力するので、ホスト装置100にはステータスとしてprogress状態が通知される。マイコン20において不揮発メモリ26の書き換えが完了すると、マイコン20はEnable信号をLowレベルにする。これにより、信号線51dの出力箇所(MISO出力)がハイインピーダンス状態となるので、応答回路30は動作(SPI応答)しないが、既にマイコン20が動作しているので、マイコン20によって問題なくSPI応答が行われる。
次に、図4を参照して、光トランシーバ1の処理の一例を説明する。図4は、光トランシーバ1における処理を示すタイミングチャートである。図4に示されるように、ホスト装置100から光トランシーバ1に対して、MDIOバスL1を介してMDIOフレームF1が送信される。当該MDIOフレームF1には、光トランシーバ1を示す物理層アドレスが含まれ、また、アドレス設定命令を示すOPコードが含まれている。当該MDIOフレームF1を受信したロジック回路10は、アドレス設定命令を示すOPコードの情報を専用信号線42に出力する。また、ロジック回路10は、MDIOバスL1のクロック信号と同じ周波数の転送クロック(SCK)信号を信号線41bに出力するとともに、スレーブセレクト(SS)信号を信号線41aに出力し、ホスト装置100に指定されたアドレス情報A1をデータ入力(MOSI)信号用の信号線41cに出力する。マイコン20は、ロジック回路10により送信されたアドレス情報A1を、受信レジスタ23に一時的に記憶した後アドレスレジスタ24に格納する。この場合、マイコン20はプロセスP10を起動し、アドレスレジスタ24に登録したアドレス情報A1に対応するステータスD10を次の読み出しに備えて送信レジスタ25(出力バッファMISOFIFO)に設定する。
続いて、ホスト装置100から光トランシーバ1に対して、書き込み命令を示すOPコードを含むMDIOフレームF2が送信される。当該MDIOフレームF2を受信したロジック回路10は、書き込み命令を示すOPコードの情報を専用信号線42に出力するとともに、マイコン20に実行させるコマンド部分をSPIフレームに変換したデータD9を信号線41cに出力する(命令受信ステップ)。データD9には、不揮発メモリ26の書き換えを伴う処理に係るコマンドが含まれている。続いて、マイコン20は、データD9を受信レジスタ23に一時的に記憶した後MDIOレジスタ22に格納する。
ここで、不揮発性メモリ60には、予め、ファームウェア26aのアップグレードデータ61が格納されている。アップグレードデータ61は、複数の分割データ61aにより構成されている。当該分割データ61aは、MDIO通信によりホスト装置100からロジック回路10に送信され、SPI通信によりロジック回路10からマイコン20に送信され、更に、MDIOレジスタ22から外付けの不揮発性メモリ60に出力される。マイコン20は、データD9が入力されると、プロセスP12を起動し、不揮発性メモリ60に記憶されているアップグレードデータ61を不揮発メモリ26に転送することにより、ファームウェア26aを更新する。
ファームウェア26aを更新する処理は、不揮発メモリ26の書き換えを伴う。マイコン20は、不揮発メモリ26の書き換えを行う前に、SPI回路21を介した通信を停止する(図4中の「SPI I/F停止」のグラフを参照)とともにSPI回路21における信号線41dの出力箇所(MISO出力)をハイインピーダンス状態とし(図4中の「MISOデータ」のグラフを参照)、Enable信号をHighレベルにする(図4中の「Enable信号」のグラフを参照)。その後、マイコン20はファームウェア26aを更新し不揮発メモリ26の書き換え処理を行う(更新開始ステップ)。当該書き換え処理を開始してから書き換え処理が完了するまでの間は、マイコン20は基本的に書き換え処理以外の動作を行わなくなる。なお、送信レジスタ25に設定されてロジック回路10に出力されたステータスD10は、ロジック回路10により破棄される。Enable信号がHighレベルになると、SPI回路31における信号線51dの出力箇所(MISO出力)がハイインピーダンス状態から出力状態となり、応答回路30はデータ出力を行うことが可能となる。
続いて、ホスト装置100から光トランシーバ1に対して、読み出し命令を示すOPコードを含むMDIOフレームF3が送信される。当該MDIOフレームF3を受信したロジック回路10は、読み出し命令を示すOPコードの情報を専用信号線42に出力する。ここで、不揮発メモリ26の書き換え処理が行われている間はSPI回路21を介した通信が停止されており、マイコン20は応答することができない。一方、Enable信号によって応答回路30が動作しているので、信号線51aを介してSS信号が応答回路30のNAND回路58に入力されると、Enable信号及びSS信号がともにHighレベルになり(図4中の「Enable and SS」のグラフを参照)、各D−FF56a〜56pの端子(セット又はリセットとされた端子)にLowレベルの信号が出力され、セット又はリセットが解除される。そして、各D−FF56a〜56pのクロック端子に入力されるSCK信号に応じて、出力回路55から、処理継続中(progress)であることを示すデータD11(ステータスデータ)がロジック回路10に出力される(図4中の「応答回路 MISO」のグラフを参照)。データD11が出力されると、SS信号がLowレベルになりNAND回路58からはHighレベルの信号が出力される。これにより、応答回路30の各D−FF56a〜56pの入力値が初期値に再設定される。ロジック回路10は、MDIOフレームF3により、当該ステータスデータをホスト装置100に送信する(更新時応答ステップ)。
ホスト装置100では、当該ステータスデータに基づき、マイコン20が処理継続中(progress)であるとするステータスが取得される。このように、不揮発メモリ26の書き換え処理が行われている間は応答回路30が動作しているので、読み出し命令を示すOPコードを含むMDIOフレームF4が更に送信された場合にも、ホスト装置100では、応答回路30から出力されたデータD11(ステータスデータ)に基づき、マイコン20が処理継続中(progress)であるとするステータスが取得される。
そして、不揮発メモリ26の書き換え処理が完了すると、マイコン20は、Enable信号をLowレベルにする(図4中の「Enable信号」のグラフを参照)ことにより出力回路55の出力をハイインピーダンス状態にして、応答回路30を停止させるとともに、SPI回路21を介した通信を有効化する(図4中の「SPI I/F停止」のグラフを参照)(書き換え終了ステップ)。マイコン20は、プロセスP12が再開され(プロセスP12´)、不揮発メモリ26の書き換えが成功している場合には成功していること(Success)を示すステータスD12を、失敗している場合には失敗していること(Failure)を示すステータスD12を、次の読み出しにそなえて送信レジスタ25(出力バッファMISOFIFO)に設定する。応答回路30は、Enable信号がLowレベルになると、SPI回路31における信号線51dの出力箇所(MISO出力)をハイインピーダンス状態に戻す(図4中の「応答回路 MISO」のグラフを参照)。
続いて、ホスト装置100から光トランシーバ1に対して、読み出し命令を示すOPコードを含むMDIOフレームF5が送信される。この場合、マイコン20は、送信レジスタ25に記憶されている単一データであるステータスD12を、信号線41dを介してロジック回路10へ出力する。ロジック回路10はマイコン20から出力されたステータスD12をホスト装置100に返信する。そして、マイコン20はプロセスP13を起動し、アドレスレジスタ24に登録したアドレス情報に対応するステータスD13を次の読み出しにそなえて送信レジスタ25(出力バッファMISOFIFO)に設定する。
次に、第1実施形態の作用効果について説明する。
この光トランシーバ1では、MDIOフレームに応じてロジック回路10から出力される命令情報に、不揮発メモリ26の書き換えを伴う処理の実行命令が含まれている場合、当該処理が実行される前に、マイコン20から応答回路30に対して、応答回路30を動作させるEnable信号が出力される。そして、Enable信号が出力されている状態において新たな命令情報が出力されると、Enable信号に基づき動作する応答回路30により、命令情報に応じたステータスデータがロジック回路10に出力される。ロジック回路10がホスト装置100と通信を行うので、ロジック回路10に出力されたステータスデータが示すステータスをホスト装置100に取得させることができる。
ここで、マイコン20のファームウェア26aのアップデータ等、不揮発メモリ26の書き換えを伴う処理が実行される場合には、当該処理の実行中において、当該不揮発メモリ26のプログラムコードの読み出しができず、マイコン20から光トランシーバ1のステータスを出力することができなくなる。この場合、ホスト装置100はマイコン20から光トランシーバ1のステータスを取得することができない。この点、光トランシーバ1では、不揮発メモリ26の書き換えを伴う処理が実行される前に、マイコン20から応答回路30に対してEnable信号が出力され、当該Enable信号に基づき動作する応答回路30から、命令情報に応じたステータスデータがロジック回路10に出力される。これにより、不揮発メモリ26の書き換えを伴う処理が実行されている期間においては、応答回路30から出力されたステータスデータが示す所定のステータスを、ホスト装置100に取得させることができる。以上より、不揮発メモリ26の書き換えを行う場合においても、光トランシーバ1のステータスをホスト装置100に取得させることができ、光トランシーバ1の内部状態の監視を適切に行うことができる。
また、光トランシーバ1では、マイコン20がSPI回路21を介してロジック回路10に接続されており、命令情報に不揮発メモリ26の書き換えを伴う処理の実行命令が含まれている場合に、当該処理を実行する前に、SPI回路21が無効化されるとともにEnable信号が出力され、不揮発メモリ26の書き換えを伴う処理の実行が完了した後に、SPI回路21が有効化されEnable信号の出力が停止される。不揮発メモリ26の書き換えを伴う処理の実行前にSPI回路21を無効化することにより、SPI回路21から信号線41dに出力される信号が、応答回路30から信号線51dを介して信号線41dに出力される信号に影響を及ぼすことを回避することができる。また、書き換えが完了した後に、SPI回路21の有効化及びEnable信号の出力停止を行うことにより、書き換え後に、マイコン20及びロジック回路10間の通信を適切に回復させることができる。
また、光トランシーバ1では、応答回路30が、SPI回路31を介してロジック回路10に接続されており、ロジック回路10に対して、マイコン20及び応答回路30が並列に接続されている。応答回路30がマイコン20に並列接続されていることにより、不揮発メモリ26の書き換えを伴う処理を実行するか否かに応じて、ステータスを出力する機器であるマイコン20及び応答回路30を効率的に切り替えることができる。
また、光トランシーバ1では、ステータスデータが、マイコン20が処理(ファームウェアの書き換え処理)を継続していることを示すデータである。応答回路30は、マイコン20において不揮発メモリ26の書き換え処理が行われる場合に動作する。よって、応答回路30から、マイコン20が処理継続中であることを示す信号がステータスデータとして出力されることにより、マイコン20の現実の(実態に合致した)状態をホスト装置に取得させることができる。また、応答回路30は、ステータスデータをホスト装置100へ送信することのみを指示する命令情報に応じて、ステータスデータを送信する。上記命令情報が、ステータスデータをホスト装置100へ送信することのみを指示するものであることにより、応答回路30による処理が必要最小限となる。例えば、上記命令情報が、光トランシーバとホスト装置との間の種々の制御に関する命令を含む場合には、応答回路での処理が複雑となり、応答回路の実装面積が大きくなる。この場合、光トランシーバが大型化するおそれがある。この点、応答回路30による処理を必要最小限とすることにより、応答回路30の実装面積を抑え、光トランシーバ1を小型化することができる。
[第2実施形態]
次に、第2実施形態に係る光トランシーバの具体例を、図5及び図6を参照しつつ説明する。図5は、第2実施形態に係る光トランシーバ1Aを模式的に示す構成図である。図6は、光トランシーバ1Aの詳細な構成を模式的に示す構成図である。なお、図5及び図6中において、図1と共通の構成については、機能構成の一部を省略して記載している。また、第2実施形態は、第1実施形態と異なる点について主に説明し、第1実施形態と重複する説明を省略する。
図5に示されるように、光トランシーバ1Aは、ロジック回路10Aと、マイコン20とを備えている。光トランシーバ1Aでは、ロジック回路10Aが、応答回路30Aを含んだ集積回路である。言い換えると、ロジック回路10A及び応答回路30Aが同一の半導体集積回路に含まれている。ロジック回路10Aの詳細について図6を参照して説明する。
図6に示されるように、ロジック回路10Aは、応答回路30Aと、プロトコル変換回路12Aと、を有している。プロトコル変換回路12Aは、第1実施形態のロジック回路10と実質的に同様の機能を有している。プロトコル変換回路12Aは、ホスト装置100及びロジック回路10A間のMDIOインターフェースと、ロジック回路10A及びマイコン20間のSPI回路21との間の通信インターフェース間プロトコル変換を行う。プロトコル変換回路12Aは、ホスト装置100からMDIOフレームを受信し、当該MDIOフレームに含まれている命令情報を出力する。ロジック回路10Aは、プロトコル変換回路12Aに接続されている専用信号線として、OPコードを送信するための2本の専用信号線82を有している。また、ロジック回路10Aは、プロトコル変換回路12Aに接続されているシリアル通信バス81として、スレーブセレクト(SS)信号用の信号線81aと、転送クロック(SCK)信号用の信号線81bと、マイコン20へのデータ入力(MOSI)信号用の信号線81cと、マイコン20からのデータ出力(MISO)信号用の信号線81dとを備えている。より詳細には、信号線81dは、マイコン20及び応答回路30のいずれか一方からの信号を伝送する信号線である。
また、ロジック回路10Aは、ロジック回路10A内部の信号を外部に出力するために用いる出力回路92,91a,91b,91cと、ロジック回路10A外部の信号を内部において利用するために用いる入力回路91d,93と、を有している。このような出力回路及び入力回路は、異なるIC間で信号を送受信する際に必要となる構成であり、第1実施形態においては説明を省略している。
出力回路92は、専用信号線82に接続されるとともに、マイコン20に接続されている専用信号線42に接続される。また、出力回路91aは、信号線81aに接続されるとともに、マイコン20に接続されているSS信号用の信号線41aに接続される。また、出力回路91bは、信号線81bに接続されるとともに、マイコン20に接続されているSCK信号用の信号線41bに接続される。また、出力回路91cは、信号線81cに接続されるとともに、マイコン20に接続されているMOSI信号用の信号線41cに接続される。また、入力回路91dは、マイコン20からロジック回路10Aに延びるMISO信号用の信号線41dに接続されている。また、入力回路93は、マイコン20から出力されるEnable信号を伝送する信号線32に接続されている。
応答回路30Aは、プロトコル変換回路12Aに対して、マイコン20に並列接続されている。具体的には、スレーブセレクト(SS)信号用の信号線81aから分岐した信号線35a、転送クロック(SCK)信号用の信号線81bから分岐した信号線35b、及びデータ出力(MISO)信号用の信号線81dから分岐した信号線35dが応答回路30AのSPI回路31に接続されることにより、応答回路30Aが、マイコン20に並列接続されている。また、応答回路30Aは、入力回路93に接続されている信号線36を介してEnable信号の入力を受ける。なお、信号線81dにおける入力回路91dの出力箇所、及び、信号線35dにおける応答回路30の出力箇所は、いずれもオープンドレイン出力とされている。応答回路30Aは、第1実施形態の応答回路30同様、マイコン20から出力されるEnable信号に応じて動作する。なお、信号線81dにおける入力回路91dの出力箇所、及び、信号線35dにおける応答回路30Aの出力箇所をオープンドレインとせずに、2入力対1出力のセレクタ回路をロジック回路10A内に付加し、そのセレクタ回路の片方の入力箇所に入力回路91dの出力箇所を接続し、そのセレクタ回路の他方の入力箇所に応答回路30Aの出力箇所(信号線35d)を接続し、そのセレクタ回路の出力箇所を信号線81dに接続し、入力回路93から出力される信号(Enable信号)に応じてマイコン20から出力されたMISO信号と応答回路30Aが出力するステータスデータが切替えられてプロトコル変換回路12AにMISO信号として入力されるように構成しても良い。ロジック回路10A内においては、そのようにセレクタ回路を使用して信号の切り替えを行うことが回路構成上好適となる場合がある。
このように、ロジック回路10Aが応答回路30Aを含んだ集積回路であることにより、ロジック回路及び応答回路の機能を1つのICで実現することができ、部品点数を少なくすることができる。部品点数が少なくなることにより、光トランシーバ1における実装面積が小さくなり、光トランシーバ1を小型化することができる。また、ロジック回路及び応答回路間の信号の送受信を同一IC内で直接行うことができるので、例えば、ロジック回路及び応答回路が別々のICである場合と比べて、異なるIC間での信号の送受信に用いる信号の入力回路及び出力回路を少なくすることができる。これにより、光トランシーバの消費電力を低減することができる。
以上、本発明の実施形態について説明したが本発明は上記実施形態に限定されない。例えば、図7(a)に示される応答回路30Bを用いてもよい。応答回路30Bでは、上述したD−FF56a〜56pに替えて、コンパレータ37及び4bitカウンタ38が用いられる。4bitカウンタ38は、リセット端子、出力端子、及びクロック端子を有している。リセット端子にNAND回路58からLowレベルが入力されると、リセットが解除される。この状態において、クロック端子にSCK信号が入力されると、4bitカウンタ38は、出力端子からSCK信号に同期したカウンタ動作を行い、4ビットの出力端子Q[3:0]からカウント値を出力する。例えば4bitカウンタ38はバイナリアップカウンタである。コンパレータ37は、当該カウンタ出力の値と所定の比較値とを比較し、カウンタ出力の値が所定の比較値と等しい場合に、出力回路55に「1」(High)を出力し、等しくない場合に、出力回路55に「0」(Low)を出力する。そして、出力回路55は、「1」(High)が入力された場合に「1」を出力し、「0」(Low)が入力された場合に「0」を出力する。
コンパレータ37には、所定の比較値として6が設定されている。また、4bitカウンタ38は、(0000)2から出力値を1ずつ増加させるアップカウンタである。最初にEnable信号が出力回路55に入力されると、出力回路55は、最上位ビット(bit15)として「0」を出力する。つづいて、SCK信号が入力されると、4bitカウンタ38は、上位2番目のビット(bit14)に相当するカウンタ出力として1をコンパレータ37に出力する。コンパレータ37は、カウンタ出力(1)が比較値(6)と等しくないと判定し、出力回路55に「0」(Low)を出力する。つづいて、カウント2(2回目)では、SCK信号が入力されると、4bitカウンタ38は、上位3番目のビット(bit13)に相当するカウンタ出力として2をコンパレータ37に出力する。コンパレータ37は、カウンタ出力(2)が比較値(6)と等しくないと判定し、出力回路55に「0」(Low)を出力する。同様の処理を続けると、カウント6(6回目)では、SCK信号が入力されると、4bitカウンタ38は、上位6番目のビット(bit9)に相当するカウンタ出力として6をコンパレータ37に出力する。コンパレータ37は、カウンタ出力(6)が比較値(6)と等しいと判定し、出力回路55に「1」(HIgh)を出力する。その後、カウント7〜15まで同様の処理が続けられ、それぞれ、出力回路55に「0」(Low)が出力される。これにより、出力回路55からは、マイコンが処理継続中(progress)であることを示すステータスデータが出力される。
また、実施形態においては、出力回路55等のトライステートバッファ(米国登録商標)により、マイコン20のMISO出力及び応答回路30のMISO出力がオープンドレイン出力とされ、互いに並列に接続されているとして説明したがこれに限定されない。例えば、図7(b)に示されるセレクタ57を設け、セレクタ57の入力に、マイコンのMISO出力及び応答回路のMISO出力を接続し、セレクタ57の出力にロジック回路へのMISO入力を接続してもよい。この場合、セレクタ57にEnable信号が入力される(Enable信号がHighとされる)と、応答回路のMISO出力がロジック回路へのMISO入力に繋がる。一方、セレクタ57へのEnable信号が停止される(Enable信号がLowとされる)と、マイコンのMISO出力がロジック回路へのMISO入力に繋がる。この場合、MISO出力をオープンドレイン出力とする必要がない。
また、例えば第2実施形態では、ロジック回路10Aが、プロトコル変換回路12A及び応答回路30Aを含む集積回路である例を説明したが、ロジック回路におけるプロトコル変換回路及び応答回路が統合されてもよい。この場合、回路規模が小さくなることで、更なる小型化及び低消費電力化を実現することができる。
また、応答回路30は、マイコン20からEnable信号の入力を受けている場合に限り動作することができるとして説明したがこれに限定されない。例えば、マイコンから一度Enable信号の入力を受けると応答回路が動作し、更にもう一度受けると応答回路が動作を停止する(ステータスデータの出力を停止する)ものであってもよい。また、第1実施形態において、SPI回路21とSPI回路31とを別々の構成として説明したが、一のSPI回路によりSPI回路21及びSPI回路31の機能が実現されてもよい。さらに、上記にてステータスデータの処理継続中(progress)を表すデータはbit9のみが「1」である16ビットデータであるとしたが、これはCFP MSAに準じた一例であって、ホスト装置側で認識できるように予め設定しておくことで別のデータを代わりに用いてもよい。例えば、より簡易な構成の論理回路によって生成可能なデータを代わりに使用することで、応答回路をより小型にすることができ、光トランシーバの小型化に寄与することができる。