[本開示の実施形態の説明]
最初に本開示の実施形態の内容を列記して説明する。
本開示の光トランシーバは、(1)伝送レートとして第1値を有する第1信号を送信する第1伝送装置、および伝送レートとして前記第1値とは異なる第2値を有する第2信号を送信する第2伝送装置のそれぞれに対し着脱可能な光トランシーバであって、伝送レート設定値を有し、前記第1信号および前記第2信号のいずれか一方の信号から前記伝送レート設定値に従ってクロック再生を行うクロック再生回路と、伝送レートの値として前記第1値を含む第1プログラムと、伝送レートの値として前記第2値を含む第2プログラムとを記憶するメモリと、ブートするとき、前記第1プログラムおよび前記第2プログラムのうち、優先度が高いプログラムを前記メモリから読み込んで実行するプロセッサと、を備え、前記クロック再生回路は、前記伝送レート設定値が前記一方の信号の有する前記伝送レートと等しいときに前記クロック再生を確立し、前記伝送レート設定値が前記一方の信号の有する前記伝送レートと異なるときに前記クロック再生の確立を失敗し、前記プロセッサは、前記光トランシーバが前記第1伝送装置および前記第2伝送装置のいずれか一方の伝送装置に装着されたとき、前記第1プログラムおよび前記第2プログラムのいずれか一方のプログラムを実行することによって、実行中の前記一方のプログラムが含む前記伝送レートの値を前記伝送レート設定値に設定して前記クロック再生回路を動作させ、前記一方の伝送装置からの割り込み要求に応じ、前記クロック再生の確立の成否に基づいて、前記クロック再生の確立が失敗した前記一方のプログラムの前記優先度が、前記第1プログラムおよび前記第2プログラムのうち、非実行中の他方のプログラムの前記優先度より低くなるように前記優先度の変更を行って、ブートする、光トランシーバである。
このため、光トランシーバは、搭載先の伝送装置に応じてプログラムを容易に切り替えることができる。
(2)前記クロック再生回路は、前記クロック再生の確立の結果を示す第1アラーム信号を前記プロセッサに出力し、前記プロセッサは、前記クロック再生回路からの前記第1アラーム信号に基づき前記クロック再生の確立の成否を判定してもよい。
このため、プロセッサは、クロック再生回路から適切なタイミングで位相同期の成否の通知を受けることができる。
(3)前記プロセッサは、前記クロック再生の確立が失敗したと判定した場合、ブートする前に前記クロック再生回路をリセットしてもよい。
このため、プロセッサは、クロック再生回路の再起動のタイミングと第1プログラムまたは第2プログラムの実行のタイミングとの関係を適切に制御することができる。
(4)前記プロセッサは、前記第1伝送装置および前記第2伝送装置のうち、前記光トランシーバの搭載先の伝送装置から前記クロック再生回路に前記第1信号または前記第2信号が入力されているか否かを示す第2アラーム信号を受信し、前記割り込み要求に応じ、前記第2アラーム信号に基づき、前記クロック再生回路に前記第1信号または前記第2信号が入力され、かつ、前記クロック再生の確立が失敗した場合、前記一方のプログラムの前記優先度が前記他方のプログラムの前記優先度より低くなるように前記優先度の変更を行って、ブートし、前記クロック再生回路に前記第1信号および前記第2信号のいずれも入力されていない場合、前記一方のプログラムの前記優先度が前記他方のプログラムの前記優先度より高い状態を維持して、ブートしてもよい。
このため、例えば第1伝送装置および第2伝送装置が起動中で第1信号およびは第2信号をそれぞれ出力できない場合に誤った動作設定のプログラムが実行されることが防止される。
(5)前記プロセッサは、前記第1プログラムを実行中、監視制御に関する情報を第1の仕様に従って前記第1伝送装置と送受信し、前記第2プログラムを実行中、監視制御に関する情報を第2の仕様に従って前記第2伝送装置と送受信してもよい。
このため、プロセッサは、第1プログラムおよび第2プログラムの切り替えにより、第1仕様および第2仕様のうち、伝送装置の伝送レートに応じた仕様に従い監視制御を行うことができる。
本開示の光トランシーバの制御方法は、(6)伝送レートとして第1値を有する第1信号を送信する第1伝送装置、および伝送レートとして前記第1値とは異なる第2値を有する第2信号を送信する第2伝送装置のそれぞれに対し着脱可能な光トランシーバの制御方法であって、前記光トランシーバは、伝送レート設定値を有し、前記第1信号および前記第2信号のいずれか一方の信号から前記伝送レート設定値に従ってクロック再生を行うクロック再生回路と、伝送レートの値として前記第1値を含む第1プログラムと、伝送レートの値として前記第2値を含む第2プログラムとを記憶するメモリと、ブートするとき、前記第1プログラムおよび前記第2プログラムのうち、優先度が高いプログラムを前記メモリから読み込んで実行するプロセッサと、を備え、前記クロック再生回路は、前記伝送レート設定値が前記一方の信号の有する前記伝送レートと等しいときに前記クロック再生を確立し、前記伝送レート設定値が前記一方の信号の有する前記伝送レートと異なるときに前記クロック再生の確立を失敗し、前記光トランシーバが前記第1伝送装置および前記第2伝送装置のいずれか一方の伝送装置に装着されたとき、前記第1プログラムおよび前記第2プログラムのいずれか一方のプログラムを実行することによって、実行中の前記一方のプログラムが含む前記伝送レートの値を前記伝送レート設定値に設定して前記クロック再生回路を動作させ、前記一方の伝送装置からの割り込み要求に応じ、前記クロック再生の確立の成否に基づいて、前記クロック再生の確立が失敗した前記一方のプログラムの前記優先度が、前記第1プログラムおよび前記第2プログラムのうち、非実行中の他方のプログラムの前記優先度より低くなるように前記優先度の変更を行って、ブートする、処理を前記プロセッサが実行する、光トランシーバの制御方法である。
このため、光トランシーバの制御方法は、光トランシーバの搭載先の伝送装置に応じてプログラムを容易に切り替えることができる。
[本開示の実施形態の詳細]
本開示の実施形態に係る光トランシーバ1とその制御方法の具体例を、以下に図面を参照しつつ説明する。なお、本発明は以下の例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
本実施例では、QSFP28に準拠する伝送装置2aおよびQSFP-DDに準拠する伝送装置2bのそれぞれに着脱可能な光トランシーバ1を挙げる。光トランシーバ1は、搭載先の伝送装置に応じてプログラムを切り替えることにより、搭載先の伝送装置2aまたは伝送装置2bに応じて伝送レートを切り替えることができる。以下に光トランシーバ1の構成例を説明する。
図1Aは、100(Gbps)の伝送レートを有する伝送装置に接続された光トランシーバの一例を示す図である。また、図1Bは、200(Gbps)の伝送レートを有する伝送装置に接続された光トランシーバの一例を示す図である。なお、本開示において、伝送レートを下位の桁を切り捨てるなどして公称値として示す場合がある。
図1Aには、光トランシーバ1が搭載される伝送装置2aの構成も示されている。また、図1Bには、光トランシーバ1が搭載される伝送装置2bの構成も示されている。伝送装置2aおよび伝送装置2bは、例えばクラウドサービスを提供するデータセンタ内に設置され、他のデータセンタとの通信、またはサーバ同士の通信に用いられる。
最初に、光トランシーバ1が搭載される伝送装置2aと伝送装置2bの送信データ信号、受信データ信号について説明する。なお、伝送装置2aは第1伝送装置の一例であり、伝送装置2bは第2伝送装置の一例である。
(伝送装置2aの送信データ信号および受信データ信号)
伝送装置2aは、QSFP28に準拠する。伝送装置2aは、伝送レートが100G(bps)の送信データ信号TxDATAaを送信する。また、伝送装置2aは、伝送レートが100G(bps)の受信データ信号RxDATAaを受信する。
送信データ信号TxDATAaは、25(Gbaud)の伝送レートを有する4つのNRZ(Non-Return-To-Zero)信号TxDATAa1、TxDATAa2、TxDATAa3、TxDATAa4を有する。すなわち、伝送装置2aは、1レーンあたり25(Gbaud)の伝送レートを有するNRZ信号TxDATAa1、TxDATAa2、TxDATAa3、TxDATAa4を、合計4レーン送信する。
送信データ信号TxDATAaと同様に、受信データ信号RxDATAaは、25(Gbaud)の伝送レートを有する4つのNRZ信号RxDATAa1、RxDATAa2、RxDATAa3、RxDATAa4を有する。すなわち、伝送装置2aは、1レーンあたり25(Gbaud)の伝送レートを有するNRZ信号RxDATAa1、RxDATAa2、RxDATAa3、RxDATAa4を、合計4レーン受信する。
伝送装置2aは、送信データ信号TxDATAaを送信し、受信データ信号RxDATAaを受信することにより、伝送装置2aは100G(bps)の伝送レートを有する。なお、NRZ信号TxDATAa1、TxDATAa2、TxDATAa3、TxDATAa4のそれぞれは第1信号の一例である。
(伝送装置2bの送信データ信号および受信データ信号)
伝送装置2bは、QSFP-DDに準拠する。伝送装置2bは、伝送レートが200G(bps)の送信データ信号TxDATAbを送信する。また、伝送装置2bは、伝送レートが200G(bps)の受信データ信号RxDATAbを受信する。
送信データ信号TxDATAbは、26(Gbaud)の伝送レートを有する4つのPAM(Pulse Amplifier Modulation)4信号TxDATAb1、TxDATAb2、TxDATAb3、TxDATAb4を有する。すなわち、伝送装置2aは、1レーンあたり26(Gbaud)の伝送レートを有するPAM4信号TxDATAb1、TxDATAb2、TxDATAb3、TxDATAb4を、合計4レーン送信する。
送信データ信号TxDATAbと同様に、受信データ信号RxDATAbは、26(Gbaud)の伝送レートを有する4つのPAM4信号RxDATAb1、RxDATAb2、RxDATAb3、RxDATAb4を有する。すなわち、伝送装置2bは、1レーンあたり26(Gbaud)の伝送レートを有するPAM4信号RxDATAb1、RxDATAb2、RxDATAb3、RxDATAb4を、合計4レーン受信する。
伝送装置2bは、送信データ信号TxDATAbを送信し、受信データ信号RxDATAbを受信することにより、伝送装置2bは200G(bps)の伝送レートを有する。なお、PAM4信号TxDATAb1、TxDATAb2、TxDATAb3、TxDATAb4のそれぞれは第2信号の一例である。
(光トランシーバ1の構成)
次に、光トランシーバ1について説明する。
光トランシーバ1は、伝送装置2aおよび伝送装置2bのそれぞれに着脱可能である。光トランシーバ1は、伝送装置2aまたは伝送装置2bに装着、つまり搭載される。
光トランシーバ1は、マイクロコントローラ10、送信回路11、および受信回路12を備える。また、光トランシーバ1は、伝送装置2aおよび伝送装置2bのそれぞれに接続可能なコネクタ17を備える。
マイクロコントローラ10は、プログラムを実行することにより光トランシーバ1の監視や光トランシーバ1全体の制御を行う。例えば、マイクロコントローラ10は、送信回路11や受信回路12の動作の設定を行う。また、マイクロコントローラ10は、送信回路11や受信回路12から送信回路11や受信回路12の状態情報を収集する。さらに、マイクロコントローラ10は、搭載された伝送装置2aまたは伝送装置2bとの通信を行う。
送信回路11は、搭載された伝送装置2aおよび伝送装置2bのいずれかから送信された送信データ信号から送信光信号を生成する送信処理を行う。送信回路11は、電気的な送信データ信号TxDATAaまたは送信データ信号TxDATAbから送信光信号TxSを生成する。
送信回路11は、CDR回路110、LDD(Laser Diode Driver)回路111、およびTOSA(Transmitter Optical Subassembly)112を含む。送信回路11の内部では、一例として、送信データ信号TxDATAaまたは送信データ信号TxDATAbを4つのレーンに分けてパラレルに伝送する。
受信回路12は、受信した受信光信号から搭載された伝送装置2aおよび伝送装置2bのいずれかに受信データ信号を生成する受信処理を行う。受信回路12は、受信光信号RxSから電気的な受信データ信号RxDATAaまたは受信データ信号RxDATAbを生成する。
受信回路12は、CDR回路120、TIA(Transimpedance Amplifier)121、およびROSA(Receiver Optical Subassembly)122を含む。受信回路12の内部では、一例として、受信データ信号RxDATAaまたは受信データ信号RxDATAbを4つのレーンに分けて伝送する。
光トランシーバ1は、コネクタ17を介して搭載された伝送装置2aおよび伝送装置2bのいずれかと電気的に接続される。光トランシーバ1が伝送装置2aに搭載された場合、送信データ信号TxDATAaは、伝送装置2aからコネクタ17を介して送信回路11に入力される。また、受信データ信号RxDATAaは、受信回路12からコネクタ17を介して伝送装置2aに出力される。
また、光トランシーバ1が伝送装置2bに搭載された場合、送信データ信号TxDATAbは、伝送装置2bからコネクタ17を介して送信回路11に入力される。また、受信データ信号RxDATAbは、受信回路12からコネクタ17を介して伝送装置2bに出力される。
光トランシーバ1は、コネクタ17を介して伝送装置2aまたは伝送装置2bと電気的に接続される。送信データ信号TxDATAaまたは送信データ信号TxDATAbは、伝送装置2aまたは伝送装置2bからコネクタ17を介して送信回路11に入力される。受信データ信号RxDATAaまたは受信データ信号RxDATAbは、受信回路12からコネクタ17を介して伝送装置2aまたは伝送装置2bに出力される。
(伝送装置2aおよび伝送装置2b)
伝送レートが100(Gbps)の伝送装置2aは、ホストコントローラ20a、主信号送信回路21a、および主信号受信回路22aを備える。また、伝送装置2aは、光トランシーバ1と接続するためのコネクタ23aを備える。伝送レートが200(Gbps)の伝送装置2bは、ホストコントローラ20b、主信号送信回路21b、および主信号受信回路22bを備える。また、伝送装置2bは、光トランシーバ1と接続するためのコネクタ23bを備える。
光トランシーバ1のコネクタ17は、伝送装置2aのコネクタ23a、または伝送装置2bのコネクタ23bに対して着脱される。光トランシーバ1のコネクタ17が、伝送装置2aのコネクタ23aに装着されることにより、主信号送信回路21aはCDR回路110に電気的に接続され、主信号受信回路22aはCDR回路120に電気的に接続され、ホストコントローラ20aはマイクロコントローラ10に電気的に接続される。
また、光トランシーバ1のコネクタ17が、伝送装置2bのコネクタ23bに装着されることにより、主信号送信回路21bはCDR回路110に電気的に接続され、主信号受信回路22bはCDR回路120に電気的に接続され、ホストコントローラ20bはマイクロコントローラ10に電気的に接続される。
主信号送信回路21aは、1レーン当たりの伝送レートが25(Gbps)のNRZ信号TxDATAa1、TxDATAa2、TxDATAa3、TxDATAa4、すなわち、伝送レートが100(Gbps)の送信データ信号TxDATAaを、コネクタ23aを介してパラレルにCDR回路110に送信する。主信号送信回路21bは、1レーン当たりの伝送レートが26(Gbaud)(52(Gbps))のPAM4信号TxDATAb1、TxDATAb2、TxDATAb3、TxDATAb4、すなわち、伝送レートが200(Gbps)の送信データ信号TxDATAbを、コネクタ23bを介してパラレルにCDR回路110に送信する。
主信号受信回路22aは、CDR回路120から、1レーン当たりの伝送レートが25(Gbps)のNRZ信号RxDATAa1、RxDATAa2、RxDATAa3、RxDATAa4、すなわち、伝送レートが100(Gbps)の受信データ信号RxDATAaを、コネクタ23aを介してパラレルに受信する。主信号受信回路22bは、CDR回路120から、1レーン当たりの伝送レートが26(Gbaud)(52(Gbps))のPAM4信号RxDATAb1、RxDATAb2、RxDATAb3、RxDATAb4、すなわち、伝送レートが200(Gbps)の受信データ信号RxDATAbを、コネクタ23bを介してパラレルに受信する。
ホストコントローラ20aは主信号送信回路21aおよび主信号受信回路22aを制御する。また、ホストコントローラ20bは主信号送信回路21bおよび主信号受信回路22bを制御する。ホストコントローラ20aおよびホストコントローラ20bのそれぞれは、マイクロコントローラ10との間で各種の制御信号を送受信する。
ホストコントローラ20aおよびホストコントローラ20bのそれぞれは、リセット信号ResetLをマイクロコントローラ10に出力する。リセット信号ResetLはマイクロコントローラ10の割り込み要求ポートIRQに入力される。
マイクロコントローラ10は、リセット信号ResetLが割り込み要求ポートIRQに入力されると割り込み処理を実行する。ここで、リセット信号ResetLは、割り込み処理を要求するために割り込み要求の一例である。
ホストコントローラ20aは、例えば光トランシーバ1のコネクタ17がコネクタ23aに接続されたことを電気的に検出したとき、リセット信号ResetLを出力する。ホストコントローラ20aは、光トランシーバ1のコネクタ17がコネクタ23aに接続されたことを電気的に検出したとき、主信号送信回路21aから送信データ信号TxDATAaを送信させる。
また、ホストコントローラ20bは、例えば光トランシーバ1のコネクタ17がコネクタ23bに接続されたことを電気的に検出したとき、リセット信号ResetLを出力する。ホストコントローラ20bは、光トランシーバ1のコネクタ17がコネクタ23bに接続されたことを電気的に検出したとき、主信号送信回路21bから送信データ信号TxDATAbを送信させる。
マイクロコントローラ10は、後述するように、リセット信号ResetLに応じて割り込み処理を実行することにより、リブート後に伝送装置2aに対応するプログラムまたは伝送装置2bに対応するプログラムを実行する。マイクロコントローラ10は、伝送装置2aに対応するプログラムと、伝送装置2bに対応するプログラムを保持している。
ホストコントローラ20aおよびホストコントローラ20bのそれぞれと、マイクロコントローラ10とはI2Cを介して通信する。マイクロコントローラ10は、送信回路11および受信回路12の異常を検出した場合、アラーム信号IntLを接続先のホストコントローラ20aまたはホストコントローラ20bに出力する。また、ホストコントローラ20aおよびホストコントローラ20bのそれぞれは、光トランシーバ1を低消費電力モードで動作させるモード信号LPModeをマイクロコントローラ10に出力する。
CDR回路110は、伝送レート設定値を有し、主信号送信回路21aまたは主信号送信回路21bからの送信データ信号TxDATAaまたはTxDATAbの各レーンの信号から伝送レート設定値の伝送レートに従ってクロック信号を抽出するとともに、送信データ信号TxDATAaまたはTxDATAbの各レーンの信号のタイミングを再生(クロック再生)する。
図1Cは、光トランシーバ1のCDR回路110の一例の構成を示すブロック図である。CDR回路110は、波形整形回路110f1~110f4と、タイミング再生回路110g1~110g4と、出力回路110h1~110h1と、制御回路110dと、を備える。CDR回路110は、各レーンのそれぞれに波形整形回路、タイミング再生回路、出力回路を備える。
具体的には、CDR回路110は、第1レーンのNRZ信号TxDATAa1またはPAM4信号TxDATAb1を処理する波形整形回路110f1、タイミング再生回路110g1、出力回路110h1を備える。また、CDR回路110は、第2レーンのNRZ信号TxDATAa2またはPAM4信号TxDATAb2を処理する波形整形回路110f2、タイミング再生回路110g2、および出力回路110h2を備える。
第1レーンおよび第2レーンと同様に、CDR回路110は、第3レーンのNRZ信号TxDATAa3またはPAM4信号TxDATAb3を処理する波形整形回路110f3、タイミング再生回路110g3、出力回路110h3を備える。CDR回路110は、第4レーンのNRZ信号TxDATAa4またはPAM4信号TxDATAb4を処理する波形整形回路110f4、タイミング再生回路110g4、および出力回路110h4を備える。
波形整形回路110f1~110f4は、例えばイコライザ回路であり、伝送装置2aまたは伝送装置2bから送信された信号の波形を整形する。また、波形整形回路110f1~110f4は、入力された信号の信号強度が所定値以下の場合、LOS(Loss of Signal)信号S_LOSを制御回路110dに出力する。
例えば、波形整形回路110f1は、伝送装置2aまたは伝送装置2bから送信されるNRZ信号TxDATAa1またはPAM4信号TxDATAb1の波形を整形する。また、波形整形回路110f1は、伝送装置2aまたは伝送装置2bから送信されるNRZ信号TxDATAa1またはPAM4信号TxDATAb1の信号強度が所定値以下であるかを判定する。
そして、伝送装置2aまたは伝送装置2bから送信されるNRZ信号TxDATAa1またはPAM4信号TxDATAb1の信号強度が所定値以下の場合は、LOS(Loss of Signal)信号S_LOSを制御回路110dに出力する。波形整形回路110f2から波形整形回路110f4についても同様である。
タイミング再生回路110g1~110g4は、波形整形回路110f1~110f4から入力された信号からPLL(Phase locked Loop)回路を用いてクロック信号を生成し、生成したクロック信号を用いてタイミングを再生する。タイミング再生回路110g1~110g4は、それぞれ、設定された周波数で発信する発振器などを含むPLL回路110gp1~110gp4を備える。タイミング再生回路110g1~110g4のそれぞれのPLL回路110gp1~110gp4は、制御回路110dから制御信号C_TRCにより、それぞれの内部の発振器の周波数が設定される。
PLL回路110gp1~110gp4は、波形整形回路110f1~110f4から入力された信号の位相にそれぞれ発振器の位相をロックする。例えば、設定された内部の発振器の周波数に対して、入力される信号の周波数が所定の周波数範囲内である場合には、PLL回路はロックする。
タイミング再生回路110g1~110g4のそれぞれは、それぞれのPLL回路110gp1~110gp4が設定された周波数でロックしていないときには、LOL(Loss of Lock)信号S_LOLを制御回路110dに出力する。例えば、設定された内部の発振器の周波数に対して、入力される信号の周波数が所定の周波数範囲外である場合には、PLL回路はロックせず、LOL信号S_LOLを出力する。
なお、PLL回路110gp1~110gp4に、入力する信号の種類(例えば、NRZとPAM4、等)を設定して、設定した信号の種類と、実際に入力される信号の種類とが異なる場合に、PLL回路がロックしないようにしてもよい。すなわち、タイミング再生回路110g1~110g4のそれぞれは、入力する信号の種類によって伝送レートの違いを判別してもよい。
出力回路110h1~110h4は、信号のレベルを変換して、LDD回路111に出力する。
制御回路110dは、CDR回路110全体の制御を行う。制御回路110dは、マイクロコントローラ10との間で通信や信号の送受を行う。
制御回路110dは、波形整形回路110f1~110f4からLOS信号S_LOSを受信する。制御回路110dは、受信したLOS信号S_LOSに基づいて、アラーム信号であるLOS信号TxLOSをマイクロコントローラ10に出力する。例えば、制御回路110dは、波形整形回路110f1~110f4のすくなくとも一つからLOS信号S_LOSを受信した場合に、LOS信号TxLOSをLowレベルとしてもよい。いいかえると制御回路110dは、すべての波形整形回路110f1~110f4からLOS信号S_LOSを受信しなかった場合は、LOS信号TxLOSをHighレベルとしてもよい。なお、LOS信号TxLOSは、光トランシーバ1の搭載先の伝送装置2aまたは伝送装置2bからCDR回路110に送信データ信号TxDATAaまたは送信データ信号TxDATAbが入力されているか否かを示す第2アラーム信号の一例である。
また、制御回路110dは、タイミング再生回路110g1~110g4からLOL信号S_LOLを受信する。制御回路110dは、受信したLOL信号S_LOLに基づいて、アラーム信号であるLOL信号TxLOLをマイクロコントローラ10に出力する。例えば、制御回路110dは、タイミング再生回路110g1~110g4のすくなくとも一つからLOL信号S_LOLを受信した場合に、LOL信号TxLOLをLowレベルとしてもよい。いいかえると制御回路110dは、すべてのタイミング再生回路110g1~110g4からLOL信号S_LOLを受信しなかった場合は、LOL信号TxLOLをHighレベルとしてもよい。なお、LOL信号TxLOLは、クロック再生の確立の結果を示す第1アラーム信号の一例である。
制御回路110dは、SPI(Serial Peripheral Interface)バスを介して、マイクロコントローラ10から伝送レート設定値等を受信する。制御回路110dは、マイクロコントローラ10から受信した伝送レート設定値に基づいて、タイミング再生回路110g1~110g4に、制御信号C_TRCを用いてPLL回路の周波数の設定を行う。また、制御回路110dは、マイクロコントローラ10から受信した伝送レート設定値に基づいて、タイミング再生回路110g1~110g4に、入力する信号の種類の設定を行ってもよい。これにより、CDR回路110は、送信データ信号TxDATAaまたは送信データ信号TxDATAbの各レーンの信号から伝送レート設定値に従ってクロック再生を行う。CDR回路110は、伝送レート設定値が送信データ信号TxDATAaまたは送信データ信号TxDATAbの各レーンの信号の有する伝送レートと等しいとき、PLL回路110gp1~110gp4の位相がロックし、クロック再生を確立する。一方、CDR回路110は、伝送レート設定値が送信データ信号TxDATAaまたは送信データ信号TxDATAbの各レーンの信号の有する伝送レートと異なるとき、PLL回路110gp1~110gp4の位相がロックせずに、クロック再生の確立を失敗する。なお、CDR回路110はクロック再生回路の一例である。
制御回路110dは、マイクロコントローラ10からリセット信号TxRSTが入力されると、CDR回路110のリセットを行う。
LDD回路111は、送信データ信号TxDATAaまたは送信データ信号TxDATAbから、発光素子(レーザダイオード)を駆動する駆動信号をレーンごとに生成してTOSA112に出力する。TOSA112は、駆動信号に従って駆動されたレーザダイオードの光から送信光信号TxSを生成する。TOSA112は、レーンごとの駆動信号により、波長の相違する4つの光を変調して光カプラなどにより波長多重することによって波長多重光信号として送信光信号TxSを生成する。送信光信号TxSはTOSA112から光ファイバなどの伝送路を経由して搭載先の伝送装置2aおよび伝送装置2bのいずれかの通信先の装置に送信される。
また、光トランシーバ1には、通信先の装置から波長多重光信号である受信光信号RxSが伝送路を介して入力される。ROSA122は、受信光信号RxSを光スプリッタなどにより波長ごとの光に分離し、その光をフォトダイオードにより電気信号に変換することにより、電流信号を生成する。ROSA122は4つのレーンの電流信号を生成する。ROSA122により生成された4つのレーンの電流信号は、パラレルに伝送されてTIA121に入力される。TIA121は、ROSA122により生成された4つのレーンの電流信号を電圧信号に変換してCDR回路120に出力する。
CDR回路120は、TIA121から出力された4つのレーンの信号から設定された伝送レートのクロックをレーンごとに抽出するとともに、タイミングを再生する。CDR回路120は、CDR回路110と同様の構成となっている。なお、CDR回路120は、LOS信号は出力せず、LOL信号RxLOLを出力する。
マイクロコントローラ10は、送信回路11および受信回路12から各種のモニタ信号を受信する。モニタ信号には、例えば送信光信号TxSのパワー、送信光信号TxSのバイアス値、および受信光信号RxSのパワーが含まれる。マイクロコントローラ10は、モニタ信号に基づき送信回路11および受信回路12の状態を監視して、その監視結果に応じて、送信回路11および受信回路12を制御し、アラームやワーニングを、接続先のホストコントローラ20aまたはホストコントローラ20bに出力する。
また、マイクロコントローラ10は、SPIバスを介してCDR回路110,120、LDD回路111、およびTIA121と接続されている。マイクロコントローラ10は、SPIを介してCDR回路110,120、LDD回路111、およびTIA121に、伝送装置2aに対応する100G設定、または、伝送装置2bに対応する200G設定を行う。
例えば、100G設定を行う場合には、マイクロコントローラ10は、CDR回路110の伝送レート設定値を、NRZ信号TxDATAa1~TxDATAa4の伝送レートの値に設定する。CDR回路110の制御回路100dは、タイミング再生回路110g1~110g4の設定周波数を、送信データ信号TxDATAaの対応するNRZ信号TxDATAa1~TxDATAa4に適合する周波数に設定する。タイミング再生回路110g1~110g4の設定周波数をNRZ信号TxDATAa1~TxDATAa4に適合する周波数に設定されると、CDR回路110は、NRZ信号TxDATAa1~TxDATAa4のタイミング再生ができる。一方、タイミング再生回路110g1~110g4の設定周波数をNRZ信号TxDATAa1~TxDATAa4に適合する周波数に設定されると、CDR回路110は、PAM4信号TxDATAb1~TxDATAb4のタイミング再生ができない。
例えば、200G設定を行う場合には、マイクロコントローラ10は、CDR回路110の伝送レート設定値を、PAM4信号TxDATAb1~TxDATAb4の伝送レートの値に設定する。CDR回路110の制御回路100dは、タイミング再生回路110g1~110g4の設定周波数を、送信データ信号TxDATAbの対応するPAM4信号TxDATAb1~TxDATAb4に適合する周波数に設定する。タイミング再生回路110g1~110g4の設定周波数をPAM4信号TxDATAb1~TxDATAb4に適合する周波数に設定されると、CDR回路110は、PAM4信号TxDATAb1~TxDATAb4のタイミング再生ができる。一方、タイミング再生回路110g1~110g4の設定周波数をPAM4信号TxDATAb1~TxDATAb4に適合する周波数に設定されると、CDR回路110は、NRZ信号TxDATAa1~TxDATAa4のタイミング再生ができない。
なお、タイミング再生回路110g1~110g4の設定として、更に信号の種類(例えば、NRZ、PAM4等)を設定して、設定と異なる信号が入力された場合にタイミング再生できないようにしてもよい。
また、マイクロコントローラ10は、SPIを介して送信回路11および受信回路12に、それぞれ、送信回路11の送信処理および受信回路12の受信処理に関する制御を行う。
また、マイクロコントローラ10は、CDR回路110からLOS信号TxLOSおよびLOL信号TxLOLを受信する。
LOS信号TxLOSは、搭載先の伝送装置2aまたは伝送装置2bから光トランシーバ1に対して送信データ信号TxDATAaまたは送信データ信号TxDATAbが入力されているか否かをマイクロコントローラ10に通知する信号である。
LOL信号TxLOLは、搭載先の伝送装置2aまたは伝送装置2bから入力される送信データ信号TxDATAaまたは送信データ信号TxDATAbに対するクロック再生の確立の成否をマイクロコントローラ10に通知する信号である。
マイクロコントローラ10は、LOL信号TxLOLに基づきCDR回路110のクロック再生の確立の成否の成否を判定する。このため、マイクロコントローラ10は、CDR回路110から適切なタイミングでクロック再生の成否の通知を受けることができる。
マイクロコントローラ10は、搭載先の伝送装置2aまたは伝送装置2bのホストコントローラ20aまたはホストコントローラ20bからリセット信号ResetLが入力される。マイクロコントローラ10は、リセット信号ResetLが入力されたときに、LOL信号TxLOLがLowレベルである場合、クロック再生の確立が失敗したと判定し、リブートすることにより他の伝送装置2aまたは伝送装置2bに対応するプログラムに切り替えて起動する。
これにより、送信回路11および受信回路12の動作設定が、搭載先の伝送装置2aまたは伝送装置2bの伝送レートに合わせて100G設定または200G設定に切り替わる。このとき、マイクロコントローラ10は、リセット信号TxRSTをCDR回路110に出力することによりCDR回路110を再起動する。これにより、CDR回路110は、切換後の動作設定で動作する。
また、マイクロコントローラ10は、アラームまたはワーニングに応じてLDD回路111に発光停止信号TxDISを出力する。LDD回路111は、発光停止信号TxDISを受信するとTOSA112からの光出力を停止する。これにより、異常な送信光信号TxSの送信が防止される。
また、TIA121は、ROSA122に受信光信号RxSが入力されて、TIA121に電気信号を出力しているか否かを示すLOS信号RxLOSをマイクロコントローラ10に出力する。これにより、マイクロコントローラ10は、搭載先の伝送装置2aまたは伝送装置2bの通信先の装置からの光入力断を検出することができる。
また、マイクロコントローラ10は、CDR回路120からLOL信号RxLOLを受信する。LOL信号RxLOLは、TIA121から入力される受信データ信号RxDATAaまたは受信データ信号RxDATAbに対するクロック再生の確立の成否をマイクロコントローラ10に通知する。LOL信号RxLOLは、受信データ信号RxDATAaのNRZ信号RxDATAa1~RxDATAa4または受信データ信号RxDATAbのPAM4信号RxDATAb1~RxDATAb4のそれぞれの位相に、内蔵するPLL回路内の発振器の位相がロックしたか否かに基づいて通知される。これにより、マイクロコントローラ10は、伝送装置2aおよび伝送装置2bの通信先の装置からの光の異常を検出することができる。
マイクロコントローラ10は、リブートする前に、CDR回路120にリセット信号RxRSTを出力する。これにより、CDR回路120は、切換後の動作設定で動作する。
(コネクタ17の構成)
光トランシーバ1は、コネクタ17を介して伝送装置2aおよび伝送装置2bのいずれにも着脱可能である。伝送装置2aのコネクタ23aと伝送装置2bのコネクタ23bとは、形状が異なる。光トランシーバ1のコネクタ17はコネクタ23aおよびコネクタ23bのいずれにも接続可能な形状を有する。
図2は、100(Gbps)の伝送レートを有する伝送装置2aのコネクタ23aの一例を示す断面図である。図2には、伝送装置2aのコネクタ23aに光トランシーバ1のコネクタ17が接続された様子が示されている。
光トランシーバ1のコネクタ17は、伝送装置2aのコネクタ23aに設けられた挿入孔230aに対して挿入方向Dinに挿入される。コネクタ17は板形状を有し、QSFP28に従ってコネクタ17の各面にはそれぞれ複数のパッド(端子)170,171が設けられている。複数のパッド170,171は、それぞれ、挿入方向Dinに対して直交する方向に配列され、コネクタ17の板面を正面視した場合に互いに重なり合うように配置されている。
各パッド170,171は、挿入孔230a内に設けられた板バネ状の複数の端子231,232にそれぞれ接触する。複数の端子231,232は、それぞれ、挿入方向Dinに対して直交する方向に配列され、パッド170,171を上下から挟み込むようにしてパッド170,171とそれぞれ接触する。これにより、コネクタ17とコネクタ23aが互いに電気的に接続される。
図3は、光トランシーバ1のコネクタ17の一方の面のパッド171の信号割り当ての一例を示す図である。また、図4は、光トランシーバ1のコネクタ17の他方の面のパッド170の信号割り当ての一例を示す図である。図3および図4は、コネクタ17の各板面を正面視した場合のパッド170,171の配置を示す。
本例では、MSAで規定されたQSFP28のパッド配置および信号割り当てが挙げられている。QSFP28の場合、一例のパッド170,171が各面に並んで配置されている。
一方の面にはパッドNo.1~19のパッド171が並んでいる。上述したように、例えばリセット信号ResetLはマイクロコントローラ10に対する割り込み要求に用いられる。信号SCLおよびSDAは、マイクロコントローラ10およびホストコントローラ20aの間のI2Cの通信に用いられる。また、信号Tx2n,Tx2p,Tx4n,Tx4pは送信データ信号TxDATAaまたは送信データ信号TxDATAbに該当し、信号Rx3n,Rx3p,Rx1n,Rx1pは受信データ信号RxDATAaまたは受信データ信号RxDATAbに該当する。信号ModSelLは、モジュールの選択に用いられる。なお、信号GNDは接地信号である。
他方の面にはパッドNo.20~38のパッド170が並んでいる。上述したように、例えばアラーム信号IntLはホストコントローラ20aに対する光トランシーバ1の異常通知に用いられ、モード信号LPModeは、光トランシーバ1を低消費電力モードで動作させるときに用いられる。信号Tx1n,Tx1p,Tx3n,Tx3pは送信データ信号TxDATAaまたは送信データ信号TxDATAbに該当し、信号Rx2n,Rx2p,Rx4n,Rx4pは受信データ信号RxDATAaまたは受信データ信号RxDATAbに該当する。信号ModPrsLは、モジュールが接続されているかどうか示す信号である。
このように、コネクタ17は、QSFP28に従った1列のパッド配置形態を有するが、2列のパッド配置形態に対応する他方の伝送装置2bのコネクタ23bにも接続可能である。
図5は、200(Gbps)の伝送レートを有する伝送装置2bのコネクタ23bの一例を示す断面図である。図5には、伝送装置2bのコネクタ23bに光トランシーバ1のコネクタ17が接続された様子が示されている。
伝送装置2bのコネクタ23bは、MSAで規定されたQSFP-DDに従った端子配置を有する。光トランシーバ1のコネクタ17は、伝送装置2bのコネクタ23bに設けられた挿入孔230bに対して挿入方向Dinに挿入される。挿入孔230bは、上述したコネクタ23aの挿入孔230aより深く、挿入孔230b内には、入口側に板バネ状の複数の端子235,236が設けられ、奥側に板バネ状の複数の端子233,234が設けられている。つまり、伝送装置2bのコネクタ23bは、他の伝送装置2aのコネクタ23aとは異なり、2列の端子配置形態を有する。
光トランシーバ1のコネクタ17は1列のパッド配置形態を有するため、コネクタ23bの入口側の端子235,236のみと接触する。複数の端子235,236は、それぞれ、挿入方向Dinに対して直交する方向に配列され、パッド170,171を上下から挟み込むようにしてパッド170,171とそれぞれ接触する。これにより、コネクタ17とコネクタ23bが互いに電気的に接続される。
図5には、QSFP-DDに従って2列のパッド配置形態を有する他の光トランシーバのコネクタ17aも示されている。コネクタ17aは、上記のQSFP28に従ったコネクタ17と比べると、パッド172,173が追加されている。パッド172,173は、板形状のコネクタ17aの先端側の各面に設けられて、伝送装置2bの端子233,234に挟み込まれるように接触する。また、パッド170,171は、コネクタ17aの後端側の各面に設けられて、コネクタ17のパッド170,171と同様に、伝送装置2bの端子235,236に挟み込まれるように接触する。
図6は、QSFP-DDに従った他の光トランシーバのコネクタ17aの一方の面のパッド171,173の信号割り当ての一例を示す図である。また、図7は、QSFP-DDに従った他の光トランシーバのコネクタ17aの他方の面のパッド170,172の信号割り当ての一例を示す図である。図6および図7は、コネクタ17aの各板面を正面視した場合のパッド170~173の配置を示す。
コネクタ17aは、QSFP-DDに従って2列のパッド配置形態を有する。コネクタ17aの一方の面にはパッドNo.1~19のパッド171、およびパッドNo.39~57のパッド173が互いに平行に並んでいる。
ここで、パッド170,171の信号割り当ては、QSFP28に従ったコネクタ17のパッド170,171と同様である。このため、コネクタ17は、伝送装置2aのコネクタ23aだけでなく、伝送装置2bのコネクタ23bにも接続可能である。
光トランシーバ1は、ファームウェア、つまりマイクロコントローラ10のプロセッサを駆動するプログラムとしては、伝送装置2aに対応するプログラム(100G設定のプログラム)と伝送装置2bに対応するプログラム(200G設定のプログラム)を別々に備える。
(プログラムのメモリマップ)
図8は、100G設定のプログラムにおけるI2Cバスのメモリマップ80の一例を示す図である。メモリマップ80は、SFF-8636に準拠しており、I2Cによるホストコントローラ20aとの通信処理に用いられる。
符号81は、メモリマップ80の「Module Monitors」および「Channel Monitors」の各領域のマップを示す。「Module Monitors」および「Channel Monitors」は光トランシーバ1内の温度、および送信データ信号TxDATAaまたは送信データ信号TxDATAb、および受信データ信号RxDATAaまたは受信データ信号RxDATAbの監視に用いられる。
また、メモリマップ80内の「Password Entry」領域には、マイクロコントローラ10内のEEPROM(Electrically Erasable Read-Only Memory)に主信号の補正用キャリブレーション情報などを書き込むためのパスワードが書き込まれる。メモリマップ80内の「Page Select Byte」領域には、メモリのページの選択情報が書き込まれる。符号82で示されるように、「Page Select Byte」領域の選択情報に応じ、「Page 00h」~「Page 03h」のレジスタへのアクセスが可能となる。例えば「Page 02h」が選択されると、EEPROMへのアクセスが可能となる。
図9は、200G設定のプログラムにおけるI2Cバスのメモリマップ90の一例を示す図である。メモリマップ90は、CMISに準拠しており、I2Cによるホストコントローラ20bとの通信処理に用いられる。
符号91は、メモリマップ90の「Module Monitors」領域のマップを示す。メモリマップ90の「Module Monitors」領域はメモリマップ80の「Module Monitors」に該当し、メモリマップ90の「Password Entry」領域はメモリマップ80の「Password Entry」に該当する。
また、メモリマップ90内の「Page Select Byte」領域は、メモリマップ80内の「Page Select Byte」領域に該当する。符号92で示されるように、「Page Select Byte」領域の選択情報に応じ、「Page 00h」~「Page 12h」のレジスタへのアクセスが可能となる。例えば「Page 03h」が選択されると、EEPROMへのアクセスが可能となる。また、符号93は、「Page 11h」の「Lane Dynamic Information」領域のマップを示す。「Lane Dynamic Information」領域は、メモリマップ80の「Channel Monitors」領域に該当する。
このように、100G設定のプログラムと200G設定のプログラムにおけるI2Cバスの各メモリマップは共通する内容を含むが、準拠するマネジメントインターフェースの仕様が相違(SFF-8636とCMIS)するため、レジスタ構成やアドレス割り当てが相違する。例えばメモリマップ80内の「Password Entry」領域はアドレス「123-126」であるが、メモリマップ90内の「Password Entry」領域はアドレス「122-125」である。また、メモリマップ80内の「Page Select」領域で選択可能なEEPROMのページは「Page 00h」~「Page 03h」であるが、メモリマップ90内の「Page Select」領域で選択可能なEEPROMのページは「Page 00h」~「Page 12h」である。
したがって、ホストコントローラ20aまたはホストコントローラ20bは、光トランシーバ1がそれぞれに対応するプログラムで動作していない場合は、I2Cを介した通信により設定変更等を行うことができない。また、光トランシーバ1の搭載先の伝送装置2aまたは伝送装置2bが変更されたとき、ユーザが搭載先の伝送装置2aまたは伝送装置2bに対応したマイクロコントローラ10は適切なプログラムをダウンロードして、光トランシーバ1のプログラムを書き換えることができるが、ユーザにダウンロード作業などの手間をかけてしまう。
そこで、マイクロコントローラ10は、光トランシーバ1が搭載された伝送装置2aまたは伝送装置2bの伝送レートをLOL信号TxLOLにより判定し、その判定結果に応じ、100G設定および200G設定のプログラムのうち、実行中のプログラムを停止して他方のプログラムを起動する。
(マイクロコントローラ10の構成)
図10は、マイクロコントローラ10の一例を示す構成図である。マイクロコントローラ10は、CPU(Central Processing Unit)などのプロセッサ100、記憶回路101、温度センサ102、ホスト通信回路103、内部通信回路104、タイマ回路105、およびADC(Analog-To-Digital Converter)106を有する。プロセッサ100は、記憶回路101、温度センサ102、ホスト通信回路103、内部通信回路104、タイマ回路105、およびADC106と、バス109を介してデータを送受信する。
プロセッサ100は、実施例の光トランシーバ1の全体を制御する。プロセッサ100は、各種の信号を入出力する入力ポートおよび出力ポートを備える。プロセッサ100には、接続先のホストコントローラ20aまたはホストコントローラ20bからコネクタ17を介してリセット信号ResetLおよびモード信号LPModeが入力される。リセット信号ResetLはプロセッサ100の割り込み要求用のIRQポートに入力される。
リセット信号ResetLはプロセッサ100の割り込み要求用のIRQポートに入力されるため、プロセッサ100は、100G設定または200G設定のプログラムの実行中、リセット信号ResetLを割り込み要求と認識し、割り込み処理を実行する。プロセッサ100は、割り込み処理の実行中、CDR回路110でのクロック再生の確立の成否に応じてプログラムの切り替えを行う。
また、プロセッサ100は、コネクタ17を介して接続されたホストコントローラ20aまたはホストコントローラ20bにアラーム信号IntLを出力する。さらにプロセッサ100は、送信回路11との間でLOS信号TxLOS、LOL信号TxLOL、リセット信号TxRST、および発光停止信号TxDISを送信または受信する。また、プロセッサ100は、受信回路12との間でLOS信号RxLOS、LOL信号RxLOL、およびリセット信号RxRSTを送信または受信する。
温度センサ102は、光トランシーバ1の温度を検出する。プロセッサ100は、バス109を介して温度センサ102から温度を取得し、温度に応じて送信回路11および受信回路12を制御する。
ホスト通信回路103は、接続先のホストコントローラ20aまたはホストコントローラ20bとのI2Cによる通信を処理する。I2Cの通信には、信号SCLおよび信号SDAが用いられる。プロセッサ100は、バス109およびホスト通信回路103を介して接続されたホストコントローラ20aまたはホストコントローラ20bとメッセージを送受信する。
内部通信回路104は、CDR回路110,120、LDD回路111、およびTIA121とのSPIによる通信を処理する。プロセッサ100は、バス109および内部通信回路104を介してCDR回路110,120、LDD回路111、およびTIA121とデータを送受信する。例えばプロセッサ100は、CDR回路110,120、LDD回路111、およびTIA121にSPIを介して100G設定または200G設定を行う。なお、内部通信回路104は、SPIに代えてI2Cによる通信を処理してもよい。
タイマ回路105は、カウンタにより時間を計時する。プロセッサ100は、バス109を介してタイマ回路105から時間を取得し、例えば周期的な処理の実行を管理する。
ADC106は、送信回路11および受信回路12からアナログ信号として入力されるモニタ信号をデジタル信号に変換する。プロセッサ100は、バス109を介してADC106からモニタ信号を取得する。
記憶回路101は、ROM101aおよびRAM(Random Access Memory)101bを含む。プロセッサ100は、バス109を介してROM101aおよびRAM101bにアクセスする。
ROM101aには、ブロック#0およびブロック#1の2面構成の記憶領域が設けられている。プロセッサ100は、ブロック#0およびブロック#1のそれぞれにアクセスすることができる。ブロック#0には100G設定用のデータ#0およびプログラム#0が記憶されている。ブロック#1には200G設定用のデータ#1およびプログラム#1が記憶されている。ROM101aは、フラッシュROM、EEPROM(Electrically Erasable Programmable Read-Only Memory)等の書き換え可能な不揮発性メモリにより構成される。
RAM101bには、プロセッサ100のブート時に、後述するプログラムの優先度を示すキーコードに基づいて、プログラム#0およびプログラム#1のうち、実行対象のプログラムがロードされる。プロセッサ100は、ブート中にプログラム#0およびプログラム#1の一方を実行対象のプログラムとして選択してRAM101bに展開する。
(ROM101aのメモリマップ)
図11は、ROM101aのメモリマップの一例を示す図である。ブロック#0には、キーコード30、アプリケーションデータ31、アプリケーションプログラム32、およびブートプログラム33が記憶されている。アプリケーションデータ31およびアプリケーションプログラム32はデータ#0およびプログラム#0にそれぞれ該当する。
ブロック#1には、キーコード40、アプリケーションデータ41、アプリケーションプログラム42、およびブートプログラム43が記憶されている。アプリケーションデータ41およびアプリケーションプログラム42はデータ#1およびプログラム#1にそれぞれ該当する。
アプリケーションプログラム32は、マイクロコントローラ10のブート後に送信回路11および受信回路12に100G設定を行う。CDR回路110は、マイクロコントローラ10がブートしてアプリケーションプログラム32がロードされた後、送信データ信号TxDATAaのNRZ信号TxDATAa1~TxDATAa4の伝送レートで処理するように設定される。具体的には、後述するアプリケーションデータ31に含まれるNRZ信号の伝送レートを、CDR回路110に設定する。
また、アプリケーションプログラム32は、図8を参照して述べたように、SFF-8636の仕様に従って光トランシーバ1の監視制御を実行する。なお、SFF-8636は第1の仕様の一例である。
アプリケーションデータ31は、アプリケーションプログラム32の実行中に用いられるデータである。アプリケーションデータ31には、100G設定の場合のトランシーバコード、アラーム検出用の閾値、モニタ換算用パラメータ、およびNRZ信号TxDATAa1~TxDATAa4を送受信するための各種の設定値などが含まれている。NRZ信号TxDATAa1~TxDATAa4を送受信するための各種の設定値には、CDR回路110に設定するNRZ信号TxDATAa1~TxDATAa4それぞれの伝送レートの値が含まれる。なお、アプリケーションデータ31およびアプリケーションプログラム32は第1プログラムの一例である。
アプリケーションプログラム42は、マイクロコントローラ10のブート後に送信回路11および受信回路12に200G設定を行う。CDR回路110は、マイクロコントローラ10がブートしてアプリケーションプログラム42がロードされた後、送信データ信号TxDATAbのPAM4信号TxDATAb1~TxDATAb4の伝送レートで処理するように設定される。具体的には、後述するアプリケーションデータ41に含まれるPAM4信号の伝送レートを、CDR回路110に設定する。
また、アプリケーションプログラム42は、図8を参照して述べたようにCMISの仕様に従って光トランシーバ1の監視制御を実行する。なお、CMISは第2の仕様の一例である。
アプリケーションデータ41は、アプリケーションプログラム42の実行中に用いられるデータである。アプリケーションデータ41には、200G設定の場合のトランシーバコード、アラーム検出用の閾値、モニタ換算用パラメータ、およびPAM4信号TxDATAb1~TxDATAb4およびPAM4信号RxDATAb1~RxDATAb4を送受信するための各種の設定値などが含まれている。PAM4信号TxDATAb1~TxDATAb4を送受信するための各種の設定値には、CDR回路110に設定するPAM4信号TxDATAb1~TxDATAb4それぞれの伝送レートの値が含まれる。なお、ROM101aは、第1プログラムおよび第2プログラムを記憶するメモリの一例である。なお、アプリケーションデータ41およびアプリケーションプログラム42は第2プログラムの一例である。
プロセッサ100は、ブート後、RAM101bにロードされたアプリケーションプログラム32またはアプリケーションプログラム42のいずれか一方だけを実行する。キーコード30とキーコード40は、アプリケーションプログラム32およびアプリケーションプログラム42のうち、どちらのプログラムを優先して実行対象のプログラムとするのかを示しており、プログラムの優先度を表す。キーコード30とキーコード40は、第1プログラムおよび第2プログラムのうち、プロセッサ100の実行対象プログラムを示す実行情報の一例である。
例えば、優先度を示す対象のプログラム数が二つである場合、キーコード30,40は、優先度の高い実行対象のプログラムを示す「ACT」、または優先度の低い非実行対象のプログラムを示す「DEACT」を示す。なお、「ACT」、「DEACT」は、ビットであらわしてもよいし、数値、文字列で表してもよい。
プロセッサ100は、ブート時にキーコード30およびキーコード40を参照する。そして、プロセッサ100は、キーコード30が「ACT」であり、キーコード40が「DEACT」である場合、アプリケーションプログラム32をROM101aから読み出しRAM101bにロードし実行する。また、プロセッサ100は、キーコード30が「DEACT」であり、キーコード40が「ACT」である場合、アプリケーションプログラム42をROM101aから読み出しRAM101bにロードし実行する。
したがって、ブート時に最初に実行されるディフォルトプログラムが100G設定のアプリケーションプログラム32である場合、キーコード30は「ACT」であり、キーコード40は「DEACT」である。なお、ディフォルトプログラムは200G設定のアプリケーションプログラム42であってもよい。
プロセッサ100は、光トランシーバ1が伝送装置2aのコネクタ23aまたは伝送装置2bのコネクタ23bに接続されて電源オンされたとき、またはアプリケーションプログラム32またはアプリケーションプログラム42の実行中にリブートしたとき、アプリケーションプログラム32,42より先にブートプログラム33,43のいずれかを実行する。ブートプログラム33,43は、互いに差異が無く、キーコード30,40に基づいて、アプリケーションプログラム32およびアプリケーションプログラム42のいずれか一方をROM101aから読み出しRAM101bにロードし実行する。
(ブートプログラム33,43の処理)
図12は、ブートプログラム33およびブートプログラム43の処理の一例を示すフローチャートである。本実施形態ではブートプログラム33とブートプログラム43は、同じプログラムとなっている。プロセッサ100は、光トランシーバ1の電源オンなどのブート時、およびアプリケーションプログラム32,42の実行中のリブート時、ブートプログラム33またはブートプログラム43のいずれかを実行する。なお、マイクロコントローラ10のブート時には、記憶回路101のRAM101bは初期化されている状態であるとする。
プロセッサ100は、ROM101aからキーコード30およびキーコード40を読み出す(ステップSt41)。次にプロセッサ100は、キーコード30が「ACT」であり、かつ、キーコード40が「DEACT」であるか否かを判定する(ステップSt42)。
プロセッサ100は、キーコード30が「ACT」であり、かつ、キーコード40が「DEACT」である場合(ステップSt42のYes)、アプリケーションプログラム32をROM101aから読み出しRAM101bにロードし実行する(ステップSt43)。
また、プロセッサ100は、キーコード30が「ACT」ではない、もしくは、キーコード40が「DEACT」ではない場合(ステップSt42のNo)、キーコード30が「DEACT」であり、かつ、キーコード40が「ACT」であるか否かを判定する(ステップSt44)。
プロセッサ100は、キーコード30が「DEACT」であり、かつ、キーコード40が「ACT」である場合(ステップSt44のYes)、アプリケーションプログラム42をROM101aから読み出しRAM101bにロードし実行する(ステップSt45)。
また、プロセッサ100は、キーコード30が「DEACT」ではない、もしくは、キーコード40が「ACT」ではない場合(ステップSt44のNo)、エラーを出力する(ステップSt46)。このとき、プロセッサ100は、例えば不図示のLED(Light Emission Diode)を発光させることよりエラーを出力する。またエラーは、アラーム信号IntLにより通知されてもよい。
このように、プロセッサ100は、ブート中、ROM101aからキーコード30およびキーコード40を読み出し、キーコード30およびキーコード40に基づきアプリケーションプログラム32およびアプリケーションプログラム42の一方をROM101aから読み出しRAM101bにロードし実行する。
なお、本実施形態のブートプログラム33およびブートプログラム43では、キーコード30およびキーコード40に基づいて処理を行っているが、キーコード30およびキーコード40のいずれか一方に基づいて処理を行ってもよい。プロセッサ100は、例えば、キーコード30を読みだして、キーコード30が「ACT」の場合、アプリケーションプログラム32をROM101aから読み出しRAM101bにロードし実行してもよい。そして、キーコード30が「DEACT」の場合、プロセッサ100は、アプリケーションプログラム42をROM101aから読み出しRAM101bにロードし実行してもよい。キーコード40に基づく処理も上記と同様である。
(アプリケーションプログラム32,42の処理)
図13は、アプリケーションプログラム32およびアプリケーションプログラム42の処理の一例を示すフローチャートである。アプリケーションプログラム32およびアプリケーションプログラム42のそれぞれは、ブートプログラム33またはブートプログラム43の実行後にROM101aから読み出しRAM101bにロードされて実行される。アプリケーションプログラム32およびアプリケーションプログラム42は、動作設定およびマネジメントインターフェースの仕様が相違するが、以下の説明では共通する処理の流れを説明する。
プロセッサ100は、ホストコントローラ20a,20b、送信回路11、および受信回路12との間で各種の信号を入出力するための入力ポートおよび出力ポートを設定する(ステップSt1)。次にプロセッサ100は、リセット信号ResetLがHighレベルであるか否かを判定する(ステップSt2)。ここで、リセット信号ResetLは、ホストコントローラ20a,20bからのリセット状態の解除(Highレベル)または維持(Lowレベル)の指示とみなされる。
プロセッサ100は、リセット信号ResetLがLowレベルである場合(ステップSt2のNo)、ホストコントローラ20a,20bからリセット状態の維持の指示を受けたとみなして、再びステップSt2を実行する。また、プロセッサ100は、リセット信号ResetLがHighレベルである場合(ステップSt2のYes)、ホストコントローラ20a,20bからリセット状態の解除の指示を受けたとみなして、送信回路11および受信回路12の動作設定を行う(ステップSt3)。
このとき、プロセッサ100は、アプリケーションプログラム32を実行中である場合、100G設定を行う。例えば、プロセッサ100は、アプリケーションプログラム32を実行することにより、CDR回路110の伝送レートをアプリケーションデータ31に含まれるNRZ信号TxDATAa1~TxDATAa4の伝送レートの値に設定する。具体的には、CDR回路110の各タイミング再生回路110g1~110g4がそれぞれ備えるPLL回路110gp1~110gp4の内部発振器の設定周波数をNRZ信号TxDATAa1~TxDATAa4に適合する周波数に設定する。
また、プロセッサ100は、アプリケーションプログラム42を実行中である場合、200G設定を行う。例えば、プロセッサ100は、アプリケーションプログラム42を実行することにより、CDR回路110の伝送レートをアプリケーションデータ41に含まれるPAM4信号TxDATAb1~TxDATAb4の伝送レートの値に設定する。具体的には、CDR回路110の各タイミング再生回路110g1~110g4がそれぞれ備えるPLL回路110gp1~110gp4の内部発振器の設定周波数をPAM4信号TxDATAb1~TxDATAb4に適合する周波数に設定する。
次にプロセッサ100は、リセット信号ResetLによる割り込み判定を開始する(ステップSt4)。なお、割り込み処理については後述する。
次にプロセッサ100は、タイマ回路105のタイマを起動する(ステップSt5)。プロセッサ100は、タイマによりステップSt7~St12のルーチン処理を実行する周期を管理する。
次にプロセッサ100は、タイマに基づき上記のルーチン処理の周期が到来したか否かを判定する(ステップSt6)。プロセッサ100は、周期が到来していない場合(ステップSt6のNo)、再びステップSt6の処理を実行する。また、プロセッサ100は、周期が到来している場合(ステップSt6のYes)、ステップSt7~St12の各処理を順次に実行する。
ルーチン処理において、プロセッサ100は、接続先のホストコントローラ20aまたはホストコントローラ20bと間のI2Cの通信を処理する(ステップSt7)。ホストコントローラ20aまたはホストコントローラ20bは、各種のコマンドメッセージなどを、I2Cを介してマイクロコントローラ10に送信する。プロセッサ100は、コマンドメッセージに対してレスポンスメッセージを生成して、I2Cを介してホストコントローラ20aまたはホストコントローラ20bに送信する。
このとき、プロセッサ100は、アプリケーションプログラム32を実行中である場合、SFF-8636に従って接続先のホストコントローラ20aまたはホストコントローラ20bと通信する。したがって、プロセッサ100は、アプリケーションプログラム32を実行中である場合は、CMISに従って通信するホストコントローラ20bとは正しく通信することができない。
また、プロセッサ100は、アプリケーションプログラム42を実行中である場合、CMISに従って接続先のホストコントローラ20aまたはホストコントローラ20bと通信する。したがって、アプリケーションプログラム32を実行中である場合は、SFF-8636に従って通信するホストコントローラ20aとは正しく通信することができない。
次にプロセッサ100は、ホストコントローラ20aまたはホストコントローラ20bから入力されるモード信号LPModeを確認する(ステップSt8)。プロセッサ100は、モード信号LPModeが低消費電力モードである場合、送信回路11および受信回路12の低消費電力モードを低消費電力モードにするように制御する。
次にプロセッサ100は、ADC106から入力されるモニタ信号を解析する(ステップSt9)。プロセッサ100は、例えばモニタ信号から温度、電源電圧、送信光信号TxSのパワー、受信光信号RxSのパワー、およびLDD回路111のバイアス値などを解析し、その結果に基づいてアラームやワーニングを判定する。
次にプロセッサ100は、LDD回路111に対してAPC(Automatic Power Control)制御を実行する(ステップSt10)。このとき、プロセッサ100は、モニタ信号から取得した送信光信号TxSのパワーを目標値と比較して、比較結果に応じてLDD回路111に駆動信号の電流のバイアス値を調整する。
次にプロセッサ100は、送信回路11および受信回路12から入力されるLOS信号TxLOS,RxLOSおよびLOL信号TxLOL,RxLOLの値を取得する(ステップSt11)。LOS信号TxLOSおよびLOL信号TxLOLは、後述する割り込み処理に用いられる。
次にプロセッサ100は、ステップSt8~St11の処理結果に基づいてアラームおよびワーニングの出力処理を実行する(ステップSt12)。アラームやワーニングは、アラーム信号IntLによりホストコントローラ20aまたはホストコントローラ20bに通知される。また、プロセッサ100は、例えば不図示のLEDを発光させることよりエラーを出力してもよい。
プロセッサ100は、ステップSt8~St12の処理により光トランシーバ1の監視制御を実行する。監視制御は、アプリケーションプログラム32の場合、SFF-8636に従って実行され、アプリケーションプログラム42の場合、CMISに従って実行される。
プロセッサ100は、ステップSt7の処理により光トランシーバ1の監視制御に関する各種の情報をメッセージとして送受信する。メッセージの送受信は、アプリケーションプログラム32の場合、SFF-8636に従って実行され、アプリケーションプログラム42の場合、CMISに従って実行される。このため、プロセッサ100は、後述するアプリケーションプログラム32とアプリケーションプログラム42の切り替えにより、SFF-8636およびCMISのうち、搭載先の伝送装置2aまたは伝送装置2bの伝送レートに応じた仕様に従い、ホストコントローラ20aまたはホストコントローラ20bを介した監視制御を行うことができる。
(100G設定のアプリケーションプログラム32の割り込み処理)
図14は、100G設定のアプリケーションプログラム32の割り込み処理の一例を示すフローチャートである。本処理は、アプリケーションプログラム32によるステップSt6~St12の実行中、リセット信号ResetLによる割込みに応じて実行される。
プロセッサ100は、リセット信号ResetLがLowレベルになると、割込みが発生する。そして、プロセッサ100に割込みが発生すると、アプリケーションプログラム32では、発生した割込みに応じて、図14のフローチャートに示す割込み処理を行う。
まずプロセッサ100は、CDR回路110から入力されるLOS信号TxLOSのレベルを判定する(ステップSt22)。これにより、プロセッサ100は、伝送装置2aまたは伝送装置2bから送信回路11に、送信データ信号TxDATAaのNRZ信号TxDATAa1~TxDATAa4、または送信データ信号TxDATAbのPAM4信号TxDATAb1~TxDATAb4が入力されているか否かを判定する。
LOS信号TxLOSがHighレベルである場合(ステップSt22のYes)、プロセッサ100は、CDR回路110から入力されるLOL信号TxLOLのレベルを判定する(ステップSt23)。これにより、プロセッサ100は、CDR回路110の送信データ信号TxDATAaの各NRZ信号または送信データ信号TxDATAbの各PAM4信号に対するタイミング再生(クロック再生)の確立の成否を判定する。なお、CDR回路110におけるタイミング再生の確立の成否の判定手段は、LOL信号TxLOLに限定されず、例えばプロセッサ100は、CDR回路110のレジスタを、SPIを介して読み出すことでCDR回路110におけるタイミング再生の確立の成否を判定してもよい。
プロセッサ100は、LOL信号TxLOLがLowレベルである場合(ステップSt23のYes)、現在の100G設定が搭載先の伝送装置2a,2bの伝送レートに合っていないと判断して、200G設定のアプリケーションプログラム42が実行されるようにキーコード30を「DEACT」に更新し、キーコード40を「ACT」に更新する(ステップSt24)。
CDR回路110は、アプリケーションプログラム32により100G設定がなされた場合、100(Gbps)の送信データ信号TxDATAaのNRZ信号TxDATAa1~TxDATAa4にはタイミング再生を確立することができるが、200(Gbps)の送信データ信号TxDATAbのPAM4信号TxDATAb1~TxDATAb4にはタイミング再生を確立することができない。このため、プロセッサ100は、CDR回路110でのタイミング再生の成否に基づき100G設定が接続先の伝送装置2aまたは伝送装置2bの伝送レートに合っているか否かを判定することができる。プロセッサ100は、100G設定が伝送レートに合っていない場合、キーコード30およびキーコード40を更新することで200G設定のアプリケーションプログラム42を実行対象のプログラムに変更する。
次にプロセッサ100は、リセット信号TxRSTによりCDR回路110およびCDR回路120をリセットする(ステップSt25)。これにより、CDR回路110,120の動作設定が解除される。
次にプロセッサ100はリブートを実行する(ステップSt26)。これにより、プロセッサ100は、アプリケーションプログラム32の動作を停止してブートプログラム33を実行する。これにより、更新後のキーコード30およびキーコード40に従って200G設定のアプリケーションプログラム42が実行される。
このように、プロセッサ100は、CDR回路110でタイミング再生の確立が失敗したと判定した場合、リブートする前にCDR回路110のタイミング再生回路110g1~110g4における各PLL回路110gp1~110gp4をリセットする。このため、プロセッサ100は、PLL回路110gp1~110gp4の再起動のタイミングと、アプリケーションプログラム42の実行のタイミングとの関係を適切に制御することができる。
また、プロセッサ100は、LOS信号TxLOSがLowレベルである場合(ステップSt22のNo)、送信データ信号TxDATAaおよび送信データ信号TxDATAbのいずれも送信回路11に入力されておらず、100G設定が伝送レートに合っているか否かを判定できないため、キーコード30およびキーコード40の更新処理(ステップSt24)を実行せずにステップSt25,St26を実行する。
このため、ブートプログラム33の実行後、再び100G設定のアプリケーションプログラム32が実行される。つまり、プロセッサ100は、送信データ信号TxDATAaおよび送信データ信号TxDATAbのいずれも入力されていない場合、100G設定のアプリケーションプログラム32の優先度が200G設定のアプリケーションプログラム42より高い状態を維持してブートする。したがって、例えば搭載先の伝送装置2aまたは伝送装置2bが起動中で送信データ信号TxDATAaまたは送信データ信号TxDATAbを出力できない場合に誤って200G設定のアプリケーションプログラム42が実行されることが防止される。
また、プロセッサ100は、LOL信号がHighレベルである場合(ステップSt23のNo)、現在の100G設定が搭載先の伝送装置2a,2bの伝送レートに合っていると判断して、キーコード30およびキーコード40の更新処理(ステップSt24)を実行せずにステップSt25,St26を実行する。このため、搭載先の伝送装置2a,2bの伝送レートに合わない200G設定のアプリケーションプログラム42が実行されることが防止される。
(200G設定のアプリケーションプログラム42の割り込み処理)
図15は、200G設定のアプリケーションプログラム42の割り込み処理の一例を示すフローチャートである。本処理は、アプリケーションプログラム42によるステップSt6~St12の実行中、リセット信号ResetLによる割込みに応じて実行される。
プロセッサ100は、リセット信号ResetLがLowレベルになると、割込みが発生する。そして、プロセッサ100に割込みが発生すると、アプリケーションプログラム42では、発生した割込みに応じて、図15のフローチャートに示す割込み処理を行う。
まずプロセッサ100は、CDR回路110から入力されるLOS信号TxLOSのレベルを判定する(ステップSt32)。これにより、プロセッサ100は、伝送装置2aまたは伝送装置2bから送信回路11に、送信データ信号TxDATAaのNRZ信号TxDATAa1~TxDATAa4またはPAM4信号TxDATAb1~TxDATAb4が入力されているか否かを判定する。
LOS信号TxLOSがHighレベルである場合(ステップSt32のYes)、プロセッサ100は、CDR回路110から入力されるLOL信号TxLOLのレベルを判定する(ステップSt33)。これにより、プロセッサ100は、CDR回路110の送信データ信号TxDATAaまたは送信データ信号TxDATAbに対するタイミング再生の確立の成否を判定する。
プロセッサ100は、LOL信号TxLOLがLowレベルである場合(ステップSt33のYes)、現在の200G設定が搭載先の伝送装置2a,2bの伝送レートに合っていないと判断して、100G設定のアプリケーションプログラム42が実行されるようにキーコード30を「ACT」に更新し、キーコード40を「DEACT」に更新する(ステップSt34)。
CDR回路110は、アプリケーションプログラム42により200G設定がなされた場合、200(Gbps)の送信データ信号TxDATAbのPAM4信号TxDATAb1~TxDATAb4にはタイミング再生を確立することができるが、100(Gbps)の送信データ信号TxDATAaのNRZ信号TxDATAa1~TxDATAa4のタイミング再生を確立することができない。このため、プロセッサ100は、CDR回路110でのタイミング再生の成否に基づき200G設定が接続先の伝送装置2aまたは伝送装置2bの伝送レートに合っているか否かを判定することができる。プロセッサ100は、200G設定が伝送レートに合っていない場合、キーコード30およびキーコード40を更新することで100G設定のアプリケーションプログラム32を実行対象のプログラムに変更する。
次にプロセッサ100は、リセット信号TxRSTによりCDR回路110およびCDR回路120をリセットする(ステップSt35)。これにより、CDR回路110,120の動作設定が解除される。
次にプロセッサ100はリブートを実行する(ステップSt36)。これにより、プロセッサ100は、アプリケーションプログラム42の動作を停止してブートプログラム43を実行する。これにより、更新後のキーコード30およびキーコード40に従って100G設定のアプリケーションプログラム32が実行される。
このように、プロセッサ100は、CDR回路110でタイミング再生の確立が失敗したと判定した場合、リブートする前にCDR回路110のタイミング再生回路110g1~110g4における各PLL回路110gp1~110gp4をリセットする。このため、プロセッサ100は、PLL回路110gp1~110gp4の再起動のタイミングと、アプリケーションプログラム32の実行のタイミングとの関係を適切に制御することができる。
また、プロセッサ100は、LOS信号TxLOSがLowレベルである場合(ステップSt32のNo)、送信データ信号TxDATAaおよび送信データ信号TxDATAbのいずれも送信回路11に入力されておらず、200G設定が伝送レートに合っているか否かを判定できないため、キーコード30およびキーコード40の更新処理(ステップSt34)を実行せずにステップSt35,St36を実行する。
このため、ブートプログラム43の実行後、再び200G設定のアプリケーションプログラム42が実行される。つまり、プロセッサ100は、送信データ信号TxDATAaおよび送信データ信号TxDATAbのいずれも入力されていない場合、200G設定のアプリケーションプログラム42の優先度が100G設定のアプリケーションプログラム42より高い状態を維持してブートする。したがって、例えば搭載先の伝送装置2aまたは伝送装置2bが起動中で送信データ信号TxDATAaまたは送信データ信号TxDATAbを出力できない場合に誤って100G設定のアプリケーションプログラム32が実行されることが防止される。
また、プロセッサ100は、LOL信号TxLOLがHighレベルである場合(ステップSt33のNo)、現在の200G設定が搭載先の伝送装置2a,2bの伝送レートに合っていると判断して、キーコード30およびキーコード40の更新処理(ステップSt34)を実行せずにステップSt35,St36を実行する。このため、搭載先の伝送装置2a,2bの伝送レートに合わない100G設定のアプリケーションプログラム32が実行されることが防止される。
これまで述べたように、プロセッサ100は、アプリケーションプログラム32およびアプリケーションプログラム42のうち、優先度の高い一方のアプリケーションプログラム32,42を実行したとき、伝送装置2a,2bからの割り込み要求に応じ、CDR回路110の送信データ信号TxDATAaまたは送信データ信号TxDATAbに対するタイミング再生の確立の成否を判定する。プロセッサ100は、CDR回路110でのタイミング再生の確立が失敗したと判定した場合、アプリケーションプログラム32およびアプリケーションプログラム42のうち、実行中のアプリケーションプログラム32,42の優先度を、非実行中のアプリケーションプログラム42,32の優先度より低くなるように優先度の変更を行う。そして、プロセッサ100はリブートする。
このため、プロセッサ100は、接続先のホストコントローラ20aまたはホストコントローラ20bとI2Cの通信を行うことなく、接続先のホストコントローラ20aホストコントローラ20bからの割り込み要求に応じて、送信データ信号TxDATAaまたは送信データ信号TxDATAbのタイミング再生の確立の成否により搭載先の伝送装置2aまたは伝送装置2bの伝送レートが現在の動作設定に合っているか否かを判定することができる。
プロセッサ100は、搭載先の伝送装置2aまたは伝送装置2bの伝送レートが現在の動作設定に合っていない場合、実行中の一方のアプリケーションプログラム32またはアプリケーションプログラム42の優先度を、非実行中の他方のアプリケーションプログラム32またはアプリケーションプログラム42の優先度より低くなるように優先度の変更を行ってリブートすることにより伝送レートに合ったアプリケーションプログラム32またはアプリケーションプログラム42への切り替えを行うことができる。優先度を変更する際に、プロセッサ100は、実行中の一方のアプリケーションプログラム32またはアプリケーションプログラム42の優先度を変更してもよい。また、優先度を変更する際に、プロセッサ100は、非実行中の他方のアプリケーションプログラム32またはアプリケーションプログラム42の優先度を変更してもよい。さらに、優先度の変更する際に、プロセッサ100は、実行中または非実行中のアプリケーションプログラム32およびアプリケーションプログラム42の両方の優先度を変更してもよい。
これにより、光トランシーバ1は、伝送装置2aおよび伝送装置2bの一方から他方に搭載先が変更されたとき、プログラムのダウンロードを行うことなく、伝送装置2aおよび伝送装置2bの他方の伝送レートに応じた動作設定のアプリケーションプログラム32またはアプリケーションプログラム42を実行することができる。したがって、光トランシーバ1は、搭載先の伝送装置2aまたは伝送装置2bに応じて伝送レートを容易に切り替えることができる。
また、プロセッサ100は、ブート中、ROM101aからキーコード30およびキーコード40を読み出し、キーコード30およびキーコード40に基づきアプリケーションプログラム32およびアプリケーションプログラム42の一方を実行する。プロセッサ100は、CDR回路110でのタイミング再生の確立が失敗したと判定した場合、アプリケーションプログラム32およびアプリケーションプログラム42の他方が実行対象のプログラムとなるようにキーコード30およびキーコード40を更新してブートする。
また、実行対象のプログラムを示す優先度であるキーコード30およびキーコード40については、「ACT」および「DEACT」の情報に限定されず、例えばROM101aの一方のブロック#0,#1に実行対象のプログラムを示す識別子を記憶しておき、プロセッサ100は識別子に従ってアプリケーションプログラム32,42を切り替えてもよい。また、キーコード30,40は、優先度を数値で示してもよい。優先度を数値で示す場合、プロセッサ100はキーコード30およびキーコード40の数値の大小を比較して、その結果に基づき実行対象のプログラムを決定する。なお、優先度を数値で示す場合、数値の大小と優先度の高低との関係について、大きい数値ほど高い優先度を示すようにしてもよいし、小さい数値ほど高い優先度を示すようにしてもよい。
また、プロセッサ100は、送信回路11に送信データ信号TxDATAaまたは送信データ信号TxDATAbが入力され、かつ、タイミング再生の確立が失敗したと判定した場合、アプリケーションプログラム32およびアプリケーションプログラム42の間で実行対象のプログラムを切り替える。一方、プロセッサ100は、送信回路11に送信データ信号TxDATAaおよび送信データ信号TxDATAbのいずれも入力されていない場合、実行中のアプリケーションプログラム32またはアプリケーションプログラム42の実行を継続する。
このため、例えば搭載先の伝送装置2aまたは伝送装置2bが起動中で送信データ信号TxDATAaまたは送信データ信号TxDATAbを出力できない場合に誤ってアプリケーションプログラム32およびアプリケーションプログラム42との間でプログラムの切り替えが実行されることが防止される。
なお、本例の光トランシーバ1は、送信回路11および受信回路12を備えるが、送信回路11のみを備えてもよい。また、送信回路11および受信回路12は、互いに同一の動作設定に従った伝送レートで送信データ信号TxDATAa、送信データ信号TxDATAb、受信データ信号RxDATAa、および受信データ信号RxDATAbをそれぞれ処理するが、互いに異なる動作設定により別々の伝送レートで送信データ信号TxDATAa、送信データ信号TxDATAb、受信データ信号RxDATAa、および受信データ信号RxDATAbをそれぞれ処理してもよい。
本例では、マイクロコントローラ10を用いたが、これに限定されない。マイクロコントローラ10に代えて、例えば、プロセッサおよびメモリを内蔵するFPGA(Field Programmable Gate Array)やPLD(Programmable Logic Device)が用いられてもよいし、個別のチップとしてそれぞれ形成されたプロセッサおよびメモリが用いられてもよい。
また、本実施形態のCDR回路110では、タイミング再生回路110g1~110g4のそれぞれに対応してPLL回路110gp1~110gp4の4つのPLL回路を備えるが、例えば、1つのPLL回路で再生したクロックを4レーンで共有してもよい。
また、CDR回路110における、LOL信号TxLOLの判定方法については、本実施形態に示した判定方法に限らない。例えば、CDR回路110の制御回路110dは、タイミング再生回路110g1~110g4のすべてからLOL信号S_LOLを受信した場合に、LOL信号TxLOLをLowレベルとしてもよい。また、CDR回路110の制御回路110dは、タイミング再生回路110g1~110g4の特定のタイミング再生回路(例えば、タイミング再生回路110g1)からLOL信号S_LOLを受信した場合に、LOL信号TxLOLをLowレベルとしてもよい。
上述した本開示は好適な実施の例である。但し、これに限定されるものではなく、本開示の要旨を逸脱しない範囲内において種々変形して実施可能である。