(58)【調査した分野】(Int.Cl.,DB名)
光信号を電流信号に変換する受光素子と、上記電流信号を電圧信号に変換するトランスインピーダンスアンプと、上記電圧信号と閾電圧との差を差動増幅することによって、上記電圧信号を差動信号に変換する差動アンプと、上記差動信号のオフセット電圧が小さくなるように上記閾電圧を変更する閾電圧変更処理を含むオフセットキャンセル処理を繰り返す制御部、とを備えた光受信器の制御方法であって、
上記制御部の動作終了時、又は、該制御部の動作中定期的に上記閾電圧の値を不揮発性メモリに書き込む工程と、
上記制御部の動作開始時に上記閾電圧の値を上記不揮発性メモリから読み出し、読み出した上記閾電圧の値を上記オフセットキャンセル処理の初期値として利用する工程と、を含む光受信器の制御方法において、
上記オフセットキャンセル処理は、上記閾電圧変更処理における上記閾電圧の変化量が異なる2つの実行モードを有しており、上記オフセット電圧の符号が反転した、又は、上記オフセット電圧の大きさが許容誤差を下回った時点で、上記オフセットキャンセル処理の実行モードを、上記閾電圧の変化量が大きい第1の実行モードから上記閾電圧の変化量が小さい第2の実行モードへと切り替える、
ことを特徴とする光受信器の制御方法。
【発明を実施するための形態】
【0018】
〔光受信器の構成〕
光受信器1の構成について、
図1を参照して説明する。
図1は、光受信器1の構成を示すブロック図である。
【0019】
光受信器1は、受信した光信号を電圧信号(本実施形態においては差動電圧信号)に変換して外部に出力する装置である。光受信器1は、
図1に示すように、受光素子11、受信回路12、MCU(Micro Controller Unit)13、不揮発性メモリ14、及び基準電圧源15を備えている。
【0020】
受光素子11は、受信した光信号を電流信号に変換するための構成である。本実施形態においては、受光素子11としてPD(Photo Diode)を用いている。受光素子11にて得られた電流信号は、受信回路12に入力される。
【0021】
受信回路12は、受光素子11にて得られた電流信号を差動電圧信号(以下、「差動信号」と記載)に変換するための構成である。受信回路12は、
図1に示すように、トランスインピーダンスアンプ12a、可変電圧源12b、ダミートランスインピーダンスアンプ12c、差動アンプ12d〜12g、ローパスフィルタ12h、スイッチ12i、エラーアンプ12j、LOS(Loss Of Signal)検出回路12k、及びI2Cインタフェース12mを備えている。
【0022】
トランスインピーダンスアンプ12aは、受光素子11にて得られた電流信号を電圧信号(シングルエンド)に変換する。トランスインピーダンスアンプ12aの出力電圧Vtiaは、差動アンプ12dの逆相入力端子に入力される。
【0023】
可変電圧源12bは、閾電圧Vthを生成する。可変電圧源12bが生成する閾電圧Vthの大きさは、I2Cインタフェース12mを介してMCU13から制御することができる。可変電圧源12bにて生成された閾電圧Vthは、差動アンプ12dの正相入力端子に入力される。
【0024】
なお、本実施形態においては、可変電圧源12bとグランドとの間にダミートランスインピーダンスアンプ12cを介在させている。これは、トランスインピーダンスアンプ12aの温度依存性及び電源電圧依存性(トランスインピーダンスアンプ12aの出力電圧に含まれる、受光素子11を流れる光電流Ipdに依らない電圧成分)をキャンセルするためである。
【0025】
差動アンプ12dは、トランスインピーダンスアンプ12aから出力された電圧信号と閾電圧Vthとの差を差動増幅することによって、トランスインピーダンスアンプ12aから出力された電圧信号を差動信号に変換する。差動アンプ12dの正相出力電圧V1pは、V1ocm+a1×(Vtia−Vth)/2で表され、差動アンプ12dの逆相出力電圧V1nは、V1ocm−a1×(Vtia−Vth)/2で表される。ここで、V1ocmは、差動アンプ12dの出力コモンモード電圧(予め定められた値)であり、a1は、差動アンプ12dのゲイン(予め定められた値)である。差動アンプ12dにて得られた差動信号は、差動アンプ群12e〜12gに入力される。
【0026】
差動アンプ群12e〜12gは、差動アンプ12dにて得られた差動信号を増幅する。前段の差動アンプ12eから出力された差動信号(正相出力電圧V2p及び逆相出力電圧V2n)は、ローパスフィルタ12hに入力される。また、後段の差動アンプ12gから出力された差動信号(正相出力電圧V4p及び逆相出力電圧V4n)は、光受信器1の外部に出力される。
【0027】
ローパスフィルタ12hは、差動アンプ12eから出力された正相信号及び逆相信号をそれぞれ平滑化する。ローパスフィルタ12hにて平滑化された正相信号、すなわち、正相信号のDC成分<V2p>は、エラーアンプ12jの正相入力端子に入力される。また、ローパスフィルタ12hにて平滑化された逆相信号、すなわち、逆相信号のDC成分<V2n>は、エラーアンプ12jの逆相入力端子に入力される。
【0028】
エラーアンプ12jは、ローパスフィルタ12hにて平滑化された正相信号及び逆相信号の差を差動増幅する。エラーアンプ12jの出力電圧Verrは、オフセット電圧Vos=<V2p>−<V2n>にエラーアンプ12jのゲインa2を乗じた積a2×(<V2p>−<V2n>)に、基準電圧Vrefを加算した和a2×(<V2p>−<V2n>)+Vreffで表される。ここで、基準電圧Vrefは、エラーアンプ12jの負極入力に接続された基準電圧源15の出力電圧である。エラーアンプ12jの出力電圧(以下、「エラーアンプ出力」と記載)Verrは、MCU13に入力される。
【0029】
LOS検出回路12kは、受信した光信号の値がオフレベルになる区間、すなわち、受光素子11を流れる光電流Ipdが予め定められた閾値以下になる区間(以下、「無信号区間」と記載)を特定する。この閾値は、例えば、受光素子11を流れる暗電流の大きさと同程度、或いは、微発光を受光した際に受光素子11を流れる光電流と同程度に定められている。また、LOS検出回路12kは、特定した無信号区間を示すLOS信号を生成すると共に、生成したLOS信号の値を不図示のレジスタに格納する。本実施形態においては、無信号区間内で値「1」を取り、無信号区間外で値「0」を取るデジタル信号をLOS信号として用いる。また、本実施形態においては、値が読み出された後に値が更新されるクリア・オン・リードのレジスタを、LOS信号の値を格納するレジスタとして用いる。このため、無信号区間が終了した後の最初の読み出しでは、LOS信号の値として「1」が読み出される(LOS信号の値として「0」が読み出されるのは、前回の読み出しから今回の読み出しまで非LOS状態が継続した場合に限られる)。このレジスタに格納されたLOS信号の値は、I2Cインタフェース12mを介してMCU13に読み出される。
【0030】
本実施形態においては、
図1に示すように、受光素子11と直列に接続された抵抗Rにおける降下電圧R×IpdがオペアンプOPを介してLOS検出回路12kに入力される構成を採用している。LOS検出回路12kは、このオペアンプOPの出力電圧を参照することによって、無信号区間の特定を行う。
【0031】
なお、受信回路12は、エラーアンプ12j及びI2Cインタフェース12mを除き、上述した構成を2チャンネル分以上(本実施形態においては4チャンネル分)備えている。スイッチ12iは、エラーアンプ12jに入力される差動信号の信号源となるチャンネルを切り替える。すなわち、スイッチ12iにて選択されたチャンネルの差動アンプ12eから出力された差動信号がエラーアンプ12jに入力される。
【0032】
MCU13は、オフセットキャンセル処理を実行するための構成であり、
図1に示すように、電圧読出部13a、LOS読出部13b、閾電圧変更部13c、CH切替部13d、及びI2Cインタフェース13eを備えている。ここで、オフセットキャンセル処理とは、可変電圧源12bが生成する閾電圧Vthの大きさを変化させることによって、オフセット電圧Vosを0[V]に近づけるための処理、すなわち、エラーアンプ12jの出力電圧Verrを基準電圧Vrefに近づける処理のことを指す。なお、オフセットキャンセル処理の流れ、及び、オフセットキャンセル処理の実行タイミングについては、参照する図面を代えて後述する。
【0033】
不揮発性メモリ14は、閾電圧Vthの大きさ(より正確に言うと、閾電圧Vthの大きさを表す変数の値)を記憶するための構成である。本実施形態においては、不揮発性メモリ14としてEEPROM(登録商標)を用いている。MCU13は、閾電圧Vthの大きさを不揮発性メモリ14に書き込む閾電圧書込処理を、電源切断時などMCU13の動作終了時(MCU13の動作が終了する直前)に実行する。また、MCU13は、閾電圧Vthの大きさを不揮発性メモリ14から読み出す閾電圧読出処理を、電源投入時などMCU13の動作開始時(MCU13の動作が開始した直後)に実行する。そして、MCU13は、動作開始時に不揮発性メモリ14から読み出した(前回の動作終了時に不揮発性メモリ14に書き込んだ)閾電圧Vthの大きさを、オフセットキャンセル処理における閾電圧Vthの初期値として利用する。
【0034】
電源切断時に閾電圧書込処理を実行する場合には、例えば、電源電圧の大きさが予め定められた閾値を下回ったときに電源監視IC(不図示)が発するアラームを当該閾電圧書込処理の開始トリガーとすればよい。
図1に示すように、電源とMCU13との間にコンデンサC1とダイオードD1とからなる電圧保持回路を挿入すると共に、電源と不揮発性メモリ14との間にコンデンサC2とダイオードD2とからなる電圧保持回路を挿入しておけば、電源電圧の大きさが予め定められた閾値を下回った後でもMCU13及び不揮発性メモリ14を正常に動作させることができる。
【0035】
〔オフセットキャンセル処理の流れ〕
MCU13は、オフセットキャンセル処理を、
図2に示すフローチャートに従って実行する。
図2は、MCU13が実行するオフセットキャンセル処理の流れを示すフローチャートである。
図2に示すフローチャートの各工程において、MCU13は、以下のように動作する。
【0036】
工程S11(電圧読出処理):MCU13は、エラーアンプ12jが出力する電圧Verr、及び、基準電圧源15が出力する基準電圧VrefをA/Dコンバータを介して読み出し、処理を工程S12に移す。
図1に示すMCU13の電圧読出部13aは、この電圧読出処理を実行するための構成である。
【0037】
工程S12(LOS読出処理):MCU13は、LOS検出回路12kが生成するLOS信号の値をI2Cインタフェース13eを介して読み出し、処理を工程S13に移す。
図1に示すMCU13のLOS読出部13bは、このLOS読出工程を実行するための構成である。
【0038】
工程S13(LOS判定処理):MCU13は、LOS検出回路12kが読み出したLOS信号の値が0であるか否かを判定する。MCU13は、LOS信号の値が0である場合、処理を工程S14に移す。MCU13は、LOS信号の値が1である場合、オフセットキャンセル処理を終了する。
【0039】
工程S14(閾電圧変更処理):MCU13は、電圧読出部13aが読み出したエラーアンプ出力Verr及び基準電圧Vrefの値に基づいて、可変電圧源12bが生成する閾電圧Vthの大きさを変更し、オフセットキャンセル処理を終了する。
図1に示すMCU13の閾電圧変更部13cは、この閾電圧変更処理を実行するための構成である。閾電圧変更部13cは、閾電圧Vthを表す変数の値を、(1)Verr>Vref+Δが成り立つときには、現在の値よりもδだけ大きな値に設定し、(2)Verr<Vref−Δが成り立つときには、現在の値よりもδだけ小さな値に設定する。ここで、Δは、許容誤差として予め定められた正の定数である。そして、閾電圧変更部13cは、閾電圧Vthの大きさが設定した値に一致するように、I2Cインタフェース13eを介して可変電圧源12bを制御する。なお、閾電圧変更処理の流れについては、参照する図面を代えて後述する。
【0040】
上記のオフセットキャンセル処理により、オフセット電圧Vosを0[V]に近づけることができる理由は、以下のとおりである。Vos>Δ(「Verr>Vref+Δ」と等価)である場合、すなわち、トランスインピーダンスアンプ12aから出力される電圧信号の平均レベル(ハイレベルとローレベルとの平均値)に対して閾電圧Vthが小さすぎる場合、閾電圧変更処理によって閾電圧Vthが大きくなり、その結果、オフセット電圧Vosの値が小さくなる。逆に、Vos<−Δ(「Verr<Vref−Δ」と等価)である場合、すなわち、トランスインピーダンスアンプ12aから出力される電圧信号の平均レベルに対して閾電圧Vthが大きすぎる場合、閾電圧変更処理によって閾電圧Vthが小さくなり、その結果、オフセット電圧Vosの値が大きくなる。したがって、上記のオフセットキャンセル処理を繰り返せば、オフセット電圧Vosの絶対値|Vos|を許容誤差Δ以下にすることができる。
【0041】
ただし、受信する光信号の値がオフレベルを取り続ける無信号区間において上記の閾電圧変更処理が繰り返されると、閾電圧Vthの大きさが際限なく低下する。このため、無信号区間に続く有信号区間の開始直後に差動信号の波形が大きく歪むことがある。そこで、上記のオフセットキャンセル処理では、無信号区間において上記の閾電圧変更処理をスキップする構成を採用している。これにより、無信号区間に続く有信号区間の開始直後に差動信号の波形が大きく歪むことがない。
【0042】
なお、上記のオフセットキャンセル処理には、閾電圧Vthを変化させる速度が異なる2つの実行モードがある。以下、閾電圧Vthを変化させる速度が遅い方の実行モード(第2の実行モード)を「通常制御モード」と記載し、閾電圧Vthを変化させる速度が速い方の実行モード(第1の実行モード)を「加速制御モード」と記載する。オフセットキャンセル処理の実行モードは、チャンネル毎に独立に設定される。
【0043】
MCU13は、各チャンネルに対するオフセットキャンセル処理の実行モードを表す変数として、1ビット(2ステップ)のバイナリを用いる。以下、この変数を「加速制御フラグACF」と記載する。また、MCU13は、閾電圧Vthを表す変数として、8ビット(256ステップ)のバイナリを用いる。以下、この変数を「変数Vth」と記載する。
【0044】
加速制御フラグACFの値が1であるとき、すなわち、オフセットキャンセル処理を加速制御モードで実行するとき、MCU13は、工程S14(閾電圧変更処理)を実行する度に変数Vthの値を2ステップ(可変範囲全体の1/128)変化させる(変化量δ=0x02)。一方、加速制御フラグACFの値が0であるとき、すなわち、オフセットキャンセル処理を通常制御モードで実行するとき、MCU13は、工程S14(閾電圧変更処理)を実行する度に変数Vthの値を1ステップ(可変範囲全体の1/256)変化させる(変化量δ=0x01)。
【0045】
〔オフセットキャンセル処理の実行タイミング〕
MCU13は、オフセットキャンセル処理の実行タイミングを、
図3に示すフローチャートに従って決定する。
図3は、MCU13が実行する処理全体の流れを示すフローチャートである。
図3に示すフローチャートの各工程において、MCU13は、以下のように動作する。
【0046】
工程S101:MCU13は、すべてのチャンネルの加速制御フラグACFの値を1に初期化する。また、MCU13は、メインカウンタnの値を1に初期化する。
【0047】
工程S102:MCU13は、1m秒タイマカウンタがカウントアップしたか否かの判定を、判定結果が真になるまで繰り返す。MCU13は、判定結果が真になったら、処理を工程S103に移す。
【0048】
工程S103:MCU13は、メインカウンタの値が1、2、3、又は4であるか否かを判定する。MCU13は、判定結果が真であれば、処理を工程S104に移す。MCU13は、判定結果が偽であれば、処理を工程S111に移す。
【0049】
工程S104:MCU13は、処理対象チャンネルの加速制御フラグACFの値が0であるか否かを判定する。MCU13は、判定結果が真であれば、処理を工程S105に移す。MCU13は、判定結果が偽であれば、処理を工程S106に移す。
【0050】
工程S105:MCU13は、サブカウンタmの値を1に初期化すると共に、その上限値Mを1に設定し、処理を工程S107に移す。
【0051】
工程S106:MCU13は、サブカウンタmの値を1に初期化すると共に、その上限値Mを2に設定し、処理を工程S107に移す。
【0052】
工程S107:MCU13は、
図2に示したオフセットキャンセル処理を実行し、処理を工程S108に移す。
【0053】
工程S108:MCU13は、サブカウンタmの値をインクリメントし、処理をS109に移す。
【0054】
工程S109:MCU13は、サブカウンタmの値が上限値に達したか否かを判定する。MCU13は、判定結果が真であれば、処理を工程S110に移す。MCU13は、判定結果が偽であれば、処理を工程S107に戻す。
【0055】
工程S110:MCU13は、処理対象チャンネルを次のチャンネルに切り替え、処理を工程S112に移す。なお、切り替え前の処理対象チャンネルがkチャンネルであれば、切り替え後の処理対象チャンネルはk+1チャンネルになる(k=1,2,3)。また、切り替え前の処理対象チャンネルが4チャンネルであれば、切り替え後の処理対象チャンネルは1チャンネルになる。
図1に示すMCU13のCH切替部13dは、このCh切替処理を実行するための構成である。CH切替部13dは、切り替え後の処理対象チャンネルの差動アンプ12eが出力する差動信号がエラーアンプ12jに入力されるように、I2Cインタフェース13eを介してスイッチ12iを制御する。
【0056】
工程S111:MCU13は、その他の処理(オフセットキャンセル処理以外の任意の処理)を実行し、処理を工程S112に移す。なお、本工程は、オフセットキャンセル処理がMCU13を専有することを避けるために設けられたものである。
【0057】
工程S112:MCU13は、メインカウンタnの値をインクリメントし、処理を工程S113に移す。
【0058】
工程S113:MCU13は、全てのチャンネルの加速制御フラグACFの値が0であるか否かを判定する。MCU13は、判定結果が真であれば、処理を工程S114に移す。MCU13は、判定結果が偽であれば、すなわち、何れかのチャンネルの加速制御フラグACFの値が1であれば、処理を工程S116に移す。
【0059】
工程S114〜S115:MCU13は、メインカウンタnの値が100より大きいか否かを判定する。MCU13は、判定結果が真であれば、メインカウンタnの値を1にリセットし、処理を工程S102に戻す。
【0060】
工程S116〜S117:MCU13は、メインカウンタnの値が5より大きいか否かを判定する。MCU13は、判定結果が真であれば、メインカウンタnの値を1にリセットし、処理を工程S102に戻す。
【0061】
オフセットキャンセル処理の実行タイミングを、
図3に示すフローチャートに従って決定した場合、オフセットキャンセル処理の実行態様は、下記の表に示す実行態様1〜3の何れかになる。
【0062】
【表1】
動作開始時(電源投入時)、オフセットキャンセル処理の実行モードは、全てのチャンネルにおいて加速制御モードに設定されている(工程S101)。したがって、各チャンネルに対するオフセットキャンセル処理の実行態様は、上記の表における<実行態様1>となる。
【0063】
その後、オフセットキャンセル処理の実行モードが何れかのチャンネルにおいて加速制御モードから通常制御モードに切り替わると(工程S104:Yes)、そのチャンネルに対するオフセットキャンセル処理の実行態様が上記の表における<実行態様1>から<実行態様2>へと遷移する。<実行態様1>から<実行態様2>への遷移は、各チャンネルで独立に起こる。
【0064】
その後、オフセットキャンセル処理の実行モードが全てのチャンネルにおいて加速制御モードから通常制御モードに切り替わると(工程S113:Yes)、各チャンネルに対するオフセットキャンセル処理の実行態様が上記の表における<実行態様2>から<実行態様3>へと遷移する。<実行態様2>から<実行態様3>への遷移は、全チャンネルで同時に起こる。なお、本実施形態では、<実効態様3>における閾値変更処理の実行頻度を1回/100m秒としているが、これに限定されない。例えば、<実効態様3>における閾値変更処理の実行頻度を1回/5秒としても構わない。この場合、上述した工程S114において、メインカウンタnの値が5000より大きいか否かが判定されることになる。
【0065】
オフセットキャンセル処理の実行タイミングを
図3に示すフローチャートに従って決定することによって実現される、MCU13の一動作例を
図4に示す。
図4において、(a)は、光信号及びLOS信号の波形を表す波形図であり、(b)は、(a)に示す区間T1におけるMCU13の一動作例を示す図であり、(c)は、(a)に示す区間T2におけるMCU13の一動作例を示す図であり、(d)は、(a)に示す区間TnにおけるMCU13の一動作例を示す図である。
【0066】
SAS2.0に準拠した通信では、
図4の(a)に示すように、電源投入後、COMINIT信号、COMSAS信号、SNT(Speed Negotiation Transmit)信号、及びMTT(Maximum Transmitter Training)信号を送受信するリンクアップシーケンスが例えば最大5回繰り返される。ここで、COMINIT信号、COMSAS信号、及びSNT信号は、DATA区間とIDLE区間とが交互に現れるOOB信号(請求項における「第1の光信号」の一例)である。これらのOOB信号は、DATA区間のビットパターンに信号としての意味はなく、DATA区間及びIDLE区間の幅(継続時間)に信号としての意味がある(例えば、COMSAS信号は、106n秒のDATA区間と960n秒のIDLE区間とが交互に現れるOOB信号と規定されている)。したがって、光受信器1は、オフセットキャンセルが完了しているか否かによらず、これらのOOB信号を正しく認識することができる。一方、MTT信号(請求項における「第2の光信号」の一例)は、DATA区間が19.9m秒間継続するデータ信号である。MTT信号は、DATA区間の幅に信号としての意味はなく、DATA区間のビットパターンに信号としての意味がある。したがって、光受信器1があるMMT信号を正しく認識するためには、そのMTT信号を受信する前にオフセットキャンセル処理を完了させ、そのMTT信号を構成する各ビットの値を正確に読み取る必要がある。MCU13により読み出されるLOS信号は、
図4の(a)に示すように、MTT信号を受信する区間T1,T2,・・・、及び、その他のデータ信号を受信する区間Tnにおいて値が0になる。閾電圧変更処理は、LOS信号の値が0になるこれらの区間において実行される。
【0067】
MCU13がLOS信号を読み出す周期は、OOB信号(COMINIT信号、COMSAS信号、及びSNT信号)のDATA区間(COMSAS信号の場合、106n秒)よりも長く、かつ、MTT信号のDATA区間(19.9m秒)よりも短く設定されている。したがって、LOS信号の読み出しは、OOB信号の受信中に高々1回実行され、MTT信号の受信中に少なくとも2回(本実施形態では4回)実行される。なお、MCU13により読み出されるLOS信号の値は、
図4の(a)に示すように、COMINIT信号、COMSAS信号、及びSNT信号のDATA区間において0にならない。これは、MCU13によるLOS信号の値の読み出しが、クリア・オン・リードのレジスタを介して行われるためである。このため、COMINIT信号、COMSAS信号、及びSNT信号のDATA区間においては、閾電圧変更処理が実行されない。したがって、COMINIT信号、COMSAS信号、及びSNT信号のマーク率が50%でなくとも、これらの信号を受信する区間において変数Vthが誤った値に設定される懸念はない。なお、COMINIT信号、COMSAS信号、及びSNT信号のマーク率が50%であれば、これらの信号を受信する区間においても閾電圧変更処理を実行しても構わない。この場合には、LOS信号の値の読み出しをクリア・オン・リードのレジスタを介して行うことを要さない。
【0068】
図4の(b)〜(d)は、チャンネル毎に、時間軸上にオフセットキャンセル処理の実行期間を表す長方形を配置することによって、オフセットキャンセル処理の実行タイミングを示した図である。ここで、白色の長方形は、閾電圧変更処理を伴わないオフセットキャンセル処理を表し、灰色(ドットハッチング)の長方形は、変数Vthの値を1ステップ(0x01)変更する閾電圧変更処理を伴うオフセットキャンセル処理を表し、黒色の長方形は、変数Vthの値を2ステップ(0x02)変更する閾電圧変更処理を伴うオフセットキャンセル処理を表す。
【0069】
図4の(b)は、全てのチャンネルのオフセットキャンセル処理が加速制御モードで実行されている期間におけるMCU13の典型的な動作例を示す。
図4の(b)に示す例では、全てのチャンネルにおいて、変数Vthの値を2ステップ変更する閾電圧変更処理を伴うオフセットキャンセル処理が2回/5m秒の頻度で実行されている(上記の表における実行態様1)。ただし、LOS信号が立ち下がった直後に実行されるオフセットキャンセル処理は、閾電圧変更処理を伴わない。これは、LOS信号の読み出しがクリア・オン・リードのレジスタを介して行われるためである。このため、光受信器1が各MTT信号を受信する区間Tiで、MCU13は、各チャンネルにおいて、閾電圧変更処理を最大7回実行でき、変数Vthの値を最大14ステップ(0x0e)変更できる。
【0070】
その後、MCU13は、オフセットがキャンセルされた(オフセット電圧Vosの絶対値|Vos|が許容誤差Δ以下になった)チャンネルから順に、オフセットキャンセル処理の実効モードを加速制御モードから通常制御モードへと切り替えていく。
図4の(c)は、オフセットキャンセル処理が加速制御モードで実行されているチャンネルと通常制御モードで実行されているチャンネルが混在する期間におけるMCU13の典型的な動作例を示す。
図4の(c)に示す例では、チャンネル2及びチャンネル4において、変数Vthの値を2ステップ変更する閾電圧変更処理を伴うオフセットキャンセル処理が2回/5m秒の頻度で実行されている(上記の表における実行態様1)。一方、チャンネル1においては、開始0m秒後から5m秒後までの期間に、変数Vthの値を2ステップ変更する閾電圧変更処理を伴うオフセットキャンセル処理が2回/5m秒の頻度で実行され(上記の表における実行態様1)、開始5m秒後から20m秒後までの期間に、変数Vthの値を1ステップ変更する閾電圧変更処理を伴うオフセットキャンセル処理が1回/5m秒の頻度で実行されている(上記の表における実行態様2)。また、チャンネル3においては、開始0m秒後から10m秒後までの期間に、変数Vthの値を2ステップ変更する閾電圧変更処理を伴うオフセットキャンセル処理が2回/5m秒の頻度で実行され(上記の表における実行態様1)、10m秒後から20m秒後までの期間に、変数Vthの値を1ステップ変更する閾電圧変更処理を伴うオフセットキャンセル処理が1回/5m秒の頻度で実行されている(上記の表における実行態様2)。なお、
図4の(c)は、LOS信号が立ち下がった直後の状態を示しており、最初に実行されるオフセットキャンセル処理は、閾電圧変更処理を伴わない。
【0071】
図4の(d)は、全てのチャンネルのオフセットキャンセル処理が通常制御モードで実行されている期間におけるMCU13の典型的な動作例を示す。
図4の(d)に示す例では、全てのチャンネルにおいて、閾電圧Vthの値を1ステップ変更する閾電圧変更処理を伴うオフセットキャンセル処理が1回/100m秒の頻度で実行されている(上記の表における実行態様3)。なお、
図4の(d)は、LOS信号が立ち下がった直後の状態を示しており、最初に実行されるオフセットキャンセル処理は、閾電圧変更処理を伴わない。
【0072】
以上のように、MCU13は、光受信器1が各MTT信号を受信する区間Tiにおいて変数Vthの値を最大14ステップ(0x0e)変更することができる。したがって、MCU13は、光受信器1が1〜4番目のMTT信号を受信する区間T1〜T4において変数Vthの値を最大14×4=56ステップ変更することができる。光送信器が備える発光素子がVCSELである場合、VCSELの温度変化に起因する受信パワーの変動が生じる。このようなパワーの変動によって生じるオフセットをキャンセルする(オフセット電圧Vosの絶対値|Vos|を許容誤差Δ以下にする)ために必要な変数Vthの変化量は、56ステップ以下である(理由については後述する)。このため、MCU13は、光受信器1が1〜4番目のMTT信号を受信する区間T1〜T4においてオフセットのキャンセルを確実に完了することができる。これにより、MCU13は、少なくとも5番目のMTT信号のビットパターンを正しく読み取り、5回のリンクアップシーケンスが終了する前にリンクを確立することができる。
【0073】
〔オフセットをキャンセルするために必要な変数Vthの変化量〕
光送信器が備える発光素子がVCSELである場合、このVCSELの温度変化に起因する受信パワーの変動によって生じるオフセットをキャンセルする(オフセット電圧Vosの絶対値|Vos|を許容誤差Δ以下にする)ために必要な変数Vthの変化量は、上述したように56ステップ以下である。以下、この点について、
図5を参照して、もう少し詳しく説明する。
【0074】
まず、光受信器1が受信する光信号のパワー(以下、「受信パワー」と記載)の変動範囲は、VCSELの経時劣化(詳細は後述)を考慮しない場合、一例として−2.3dBm/+2.6dBmとなる。変数Vthの初期値は、この変動範囲内にある何れかの受信パワーの下でオフセットをキャンセルするように決められた値である。変数Vthが初期値として取り得る値の最大値は、受信パワー=+2.6dBmの下でオフセットをキャンセルするように決められた値であり、変数Vthが初期値として取り得る値の最小値は、受信パワー=−2.3dBmの下でオフセットをキャンセルするように決められた値である。
【0075】
図5は、変数Vthの初期値が最大値及び最小値に設定されている場合について、受信パワー[dBm]と、その受信パワーの下でオフセットをキャンセルするために必要な変数Vthの変化量[ステップ]との関係を実験的に確認することにより得られたグラフである。
図5のグラフは、例えば、以下のことを示している。すなわち、変数Vthの初期値が最大値に設定されている場合、受信パワーが+1.5dBmであれば、変数Vthの値を30ステップ増加させることによって、オフセットをキャンセルすることができる。あるいは、変数Vthの初期値が最小値に設定されている場合、実際の受信パワーが−1.5dBmであれば、変数Vthの値を10ステップ減少させることによって、オフセットをキャンセルすることができる。
【0076】
ところで、VCSELの温度変化に起因する受信パワーの変動幅は、2.0dB(−1.5dB/+0.5dB)であり、このような受信パワーの変動によって生じるオフセットをキャンセルするために必要な変数Vthの変化量は、56ステップ以下である。実際、
図5に示すように、変数Vthの初期値が最大値に設定されている場合、受信パワーは、VCSELの温度変化によって+2.6−2.0=+0.6dBmまで減少し得るが、このときに生じるオフセットは、変数Vthの値を50ステップ増加させることによってキャンセルできる。また、
図5に示すように、変数Vthの初期値が最小値に設定されている場合、受信パワーは、VCSELの温度変化によって−2.3+2.0=−0.3dBmまで増加し得るが、このときに生じるオフセットは、変数Vthの値を25ステップ減少させることによってキャンセルできる。
【0077】
なお、本実施形態においては、上述した実行態様1のオフセットキャンセル処理における変数Vthの変化量を2ステップとしているが、これは、VCSELの温度変化によって生じるオフセットをキャンセルするために必要な変数Vthの変化量が高々50ステップであることに対応している。すなわち、上述した実行態様1のオフセットキャンセル処理における変数Vthの変化量を1ステップとした場合、光受信器1が1〜4番目のMTT信号を受信する区間T1〜T4における変数Vthの変化量が最大7×4=28ステップとなって、VCSELの温度変化によって生じるオフセットをキャンセルするために必要な変数Vthの変化量である50ステップを下回ってしまうからである。
【0078】
〔変数Vthの値の不揮発保存〕
光受信器1が受信する光信号のパワー(以下、「受信パワー」と記載)は、発光素子として光送信器が備えるVCSELの温度変化及び経時劣化に起因して変動する。VCSELの温度変化に起因する受信パワーの変動範囲は、上述したように−1.5dB/+0.5dB程度であるのに対して、VCSELの経時劣化に起因する受信パワーの変動範囲は、−2dB/+0dB程度である。
【0079】
本実施形態に係る光受信器1においては、8ビットのバイナリとして表現された変数Vthの値を最後のMTT信号を受信するまでに最大56ステップ変化させることができる。したがって、VCSELの温度変化に起因して受信パワーが2.0dB(−1.5dB/+0.5dB)程度変動しても、VCSELの経時劣化に起因した受信パワーの変動がなければ、最後のリンクアップシーケンスにおけるMTT信号を受信する前に確実にオフセットをキャンセルすることができる。
【0080】
しかしながら、発光素子の温度変化に起因する受信パワーの変動に発光素子の経時劣化に起因する受信パワーの変動が重畳した場合、受信パワーの変動範囲は、−3.5dB/+0.5dB(変動幅4dB)となる。このような受信パワーの変動によって生じるオフセットをキャンセルするために必要な変数Vthの変化量は、56ステップを超える。実際、
図5に示したように、Vthの初期値が最大値に設定されている場合、オフセットをキャンセルするために必要な変数Vthの変化量は、80ステップ以上になる。したがって、変数Vthの初期値が工場出荷時の値に固定されていると、最後のリンクアップシーケンスにおけるMTT信号を受信する前にオフセットをキャンセルことができなくなる。
【0081】
そこで、光受信器1においては、動作終了時にその時点での変数Vthの値を不揮発性メモリ14に書き込み、動作開始時に不揮発性メモリ14から読み出された変数Vthの値をオフセットキャンセル処理の初期値として利用する構成を採用している。発光素子の温度変化に起因する受信パワーの変動に発光素子の経時劣化に起因する受信パワーの変動が重畳し、受信パワーの変動範囲が−3.5dB/+0.5dB程度になっても、上記の構成を採用すれば、オフセットをキャンセルするために必要となる変数Vthの変化量(初期値からの変化量)を−1.5dB/+0.5dB(温度変化に起因する受信パワーの変動範囲)程度に抑えることができる。このため、最後のリンクアップシーケンスにおいてMTT信号を受信する前に確実にオフセットをキャンセルすることができる。すなわち、4回目までのリンクアップシーケンスにおいてオフセットキャンセルが完了しなかったり、オフセットキャンセルの精度が低下したりするという問題を生じることがない。なお、光受信器1の動作中に発光素子の経時劣化が生じたとしても、オフセットキャンセル処理が実行されている間、発光素子の経時劣化に伴う受信パワーの緩やかな変動に追従して変数Vthが変化する。したがって、光受信器1の動作中に発光素子の経時劣化が生じたとしても、何ら問題を生じることはない。
【0082】
なお、本実施形態においては、MCU13の動作終了時に閾電圧書込処理(変数Vthの値を不揮発性メモリ14に書き込む処理)が実行される構成を採用しているが、これに限定されるものではない。すなわち、例えば、MCU13の動作中に閾電圧書込処理が定期的に実行される構成を採用してもよい。このような構成を採用することによって、上述したような電圧保持回路を設ける必要がなくなる。
【0083】
なお、閾電圧書込処理の実行周期を長くすると、不揮発性メモリ14の寿命は長くなるが、不揮発保存される変数Vthの初期値としての精度は低下する。ここで、不揮発保存される変数Vthの初期値としての精度が低下するのは、MCU13が最後に閾電圧書込処理を実行してからMCU13が動作を終了するまでの時間が長くなるからである。逆に、閾電圧書込処理の実行周期を短くすると、不揮発性メモリ14の寿命は短くなるが、不揮発保存される変数Vthの初期値としての精度は向上する。ここで、不揮発保存される変数Vthの初期値としての精度が向上するのは、MCU13が最後に閾電圧書込処理を実行してからMCU13が動作を終了するまでの時間が短くなるからである。不揮発性メモリ14の寿命と不揮発保存される変数Vthの初期値としての精度とを勘案すると、閾電圧書込処理の実行周期は、30分以上1時間30分以下であることが好ましく、1時間であることが更に好ましい。
【0084】
〔閾電圧変更処理〕
MCU13は、閾電圧変更処理を、
図6に示すフローチャートに従って実行する。
図6は、閾電圧変更処理の流れを示すフローチャートである。
図6に示すフローチャートの各工程において、MCU13は、以下のように動作する。
【0085】
なお、閾電圧変更処理においては、加速制御フラグACFに加え、制御方向フラグCDFが利用される。制御方向フラグCDFは、加速制御中に制御の方向が変数Vthの値を大きくする方向であるときに値1を取り、加速制御中に制御の方向が変数Vthの値を小さくする方向であるときに値2を取り、加速制御中に制御の方向が変化したとき、又は、エラーアンプ出力Verrが基準電圧Vref±許容誤差Δの範囲に収まったときに初期値0を取る3値のフラグである。
【0086】
工程S201:MCU13は、エラーアンプ出力Verrの値が基準電圧Vrefの値に許容誤差Δを加えた値よりも大きいか否かを判定する。MCU13は、判定結果が真であれば、処理を工程S202に移す。MCU13は、判定結果が偽であれば、処理を工程S209に移す。
【0087】
工程S202:MCU13は、制御方向フラグCDFの値が2であるか否かを判定する。MCU13は、判定結果が真であれば、処理を工程S203に移す。MCU13は、判定結果が偽であれば、処理を工程S205に移す。
【0088】
工程S203:MCU13は、加速制御フラグACFの値を0に設定し、処理を工程S204に移す。
【0089】
工程S204:MCU13は、制御方向フラグCDFの値を0に設定し、処理を工程S205に移す。
【0090】
工程S205:MCU13は、加速制御フラグACFの値が1であるか否かを判定する。MCU13は、判定結果が真であれば、処理を工程S206に移す。MCU13は、判定結果が偽であれば、処理を工程S208に移す。
【0091】
工程S206:MCU13は、変数Vthの値を2ステップ(0x02)大きくし、処理を工程S207に移す。
【0092】
工程S207:MCU13は、制御方向フラグCDFの値を1に設定し、処理を工程S220に移す。
【0093】
工程S208:MCU13は、変数Vthの値を1ステップ(0x01)大きくし、処理を工程S220に移す。
【0094】
工程S209:MCU13は、エラーアンプ出力Verrの値が基準電圧Vrefの値から許容誤差Δを減じた値よりも小さいか否かを判定する。MCU13は、判定結果が真であれば、処理を工程S210に移す。MCU13は、判定結果が偽であれば、処理を工程S217に移す。
【0095】
工程S210:MCU13は、制御方向フラグCDFの値が1であるか否かを判定する。MCU13は、判定結果が真であれば、処理を工程S211に移す。MCU13は、判定結果が偽であれば、処理を工程S213に移す。
【0096】
工程S211:MCU13は、加速制御フラグACFの値を0に設定し、処理を工程S212に移す。
【0097】
工程S212:MCU13は、制御方向フラグCDFの値を0に設定し、処理を工程S213に移す。
【0098】
工程S213:MCU13は、加速制御フラグACFの値が1であるか否かを判定する。MCU13は、判定結果が真であれば、処理を工程S214に移す。MCU13は、判定結果が偽であれば、処理を工程S216に移す。
【0099】
工程S214:MCU13は、変数Vthの値を2ステップ(0x02)小さくし、処理を工程S215に移す。
【0100】
工程S215:MCU13は、制御方向フラグCDFの値を2に設定し、処理を工程S220に移す。
【0101】
工程S216:MCU13は、変数Vthの値を1ステップ(0x01)小さくし、処理を工程S220に移す。
【0102】
工程S217:MCU13は、加速制御フラグACFの値が1であるか否かを判定する。MCU13は、判定結果が真であれば、処理を工程S218に移す。MCU13は、判定結果が偽であれば、処理をENDに移す(閾電圧変更処理を終了する)。
【0103】
工程S218:MCU13は、加速制御フラグACFの値を0に設定し、処理を工程S219に移す。
【0104】
工程S219:MCU13は、制御方向フラグCDFの値を0に設定し、処理をENDに移す(閾電圧変更処理を終了する)。
【0105】
工程S220:MCU13は、閾電圧Vthの大きさが工程S206、工程S208、工程S214、又は工程S216にて得られた変数Vthの値に一致するよう、可変電圧源12bを制御する。
【0106】
閾電圧変更処理を
図6に示すフローチャートに従って実行することによって実現される、MCU13の一動作例(Verr>Vref+Δ、加速制御フラグACF=1、制御方向フラグCDF=1を初期状態とする動作例)を
図7に示す。
【0107】
図7において、(a)は、エラーアンプ出力Verrの大きさの時間変化を示すグラフであり、(b)は、加速制御フラグACFの値の時間変化を示すグラフであり、(c)は、制御方向フラグCDFの時間変化を示すグラフであり、(d)は、閾電圧Vthの大きさの時間変化を示すグラフである。
【0108】
Verr>Vref+Δ(工程S201:Yes)、制御方向フラグCDF=1(工程S202:No)、加速制御フラグACF=1(工程S205:Yes)である場合、変数Vthの値を2ステップ大きくする処理(工程S208)のみを伴うオフセットキャンセル処理Aが2回/5m秒の頻度で繰り返し実行される。これにより、閾電圧Vthの大きさは、
図7の(d)に示すように次第に大きくなり、その結果、エラーアンプ出力Verrの大きさは、
図7の(a)に示すように次第に小さくなる。
【0109】
オフセットキャンセル処理Aが繰り返し実行された結果、エラーアンプ出力Verrの大きさがVref−Δを下回った場合(工程S201:No、工程S209:Yes)、すなわち、オフセット電圧Vosの符号が反転した場合、加速制御フラグACF及び制御方向フラグCDFの値を0に変更する処理(工程S210:Yes、工程S211、工程S222)、及び、オフセットキャンセル処理Bが2回又は1回実行される。ここで、オフセットキャンセル処理Bとは、変数Vthの値を1ステップ小さくする処理(工程S213:No、工程S216)を伴うオフセットキャンセルのことを指す。エラーアンプ出力Verrの大きさがVref±Δの範囲に収まっていない場合には、オフセットキャンセル処理Bが2回実行され、エラーアンプ出力Verrの大きさがVref±Δの範囲に収まっている場合には、オフセットキャンセル処理Bが1回実行される。これにより、閾電圧Vthの大きさは、
図7の(d)に示すように僅かに小さくなり、その結果、エラーアンプ出力Verrの大きさは、
図7の(a)に示すように僅かに大きくなる。
【0110】
オフセットキャンセル処理Bが実行された結果、エラーアンプ出力Verrの大きさがVref±Δの範囲に収まった場合(工程S201:No、工程S209:No、工程S217:No)、閾電圧Vthの変更は行われない。これにより、閾電圧Vthの大きさは、
図7の(d)に示すように一定に保たれ、その結果、エラーアンプ出力Verrの大きさは、
図7の(a)に示すように一定に保たれる。
【0111】
〔アクティブ光ケーブル〕
本実施形態に係る光受信器1は、アクティブ光ケーブルのコネクタとして利用することができる。
【0112】
図8は、アクティブ光ケーブル100の構成を示すブロック図である。アクティブ光ケーブル100は、
図8に示すように、光ケーブル101と、光ケーブル101の両端に設けられた1対のコネクタ102,103とを備えている。光ケーブル101には、8本の光ファイバ104a〜104bが収容されている。
【0113】
コネクタ102は、4つのAC結合用コンデンサ105a、送信回路106a、及び4つのLD(Laser Diode)107aを備えている。これらは、外部から入力された電圧信号を光信号に変換して送信する光送信器として機能する。更に、コネクタ102は、4つのPD(Photo Diode)108b、受信回路109b、及び4つのAC結合用コンデンサ110bを備えている。これらは、受信した光信号を電圧信号に変換して外部に出力する光受信器として機能する。
【0114】
PD108b及び受信回路109bは、コネクタ102が備えるMCU111と共に、本実施形態に係る光受信器1を構成している。したがって、コネクタ103から送信される光信号のパワーが変動しても、受信回路109bにて増幅される差動信号のオフセット電圧を0[V]に近づけ、その差(オフセット電圧の0[V]からのずれ)を予め定められた許容誤差以下に抑えることができる。しかも、そのために必要となる閾電圧変更処理は、コネクタ103から送信される光信号の値がオフレベルとなる無信号区間においてスキップされる。したがって、無信号区間に続く有信号区間の開始直後にコネクタ102から出力される電圧信号の波形が歪むことがない。
【0115】
コネクタ103は、4つのPD(Photo Diode)108a、受信回路109a、及び4つのAC結合用コンデンサ110aを備えている。これらは、受信した光信号を電圧信号に変換して外部に出力する光受信器として機能する。更に、コネクタ103は、4つのAC結合用コンデンサ105b、送信回路106b、及び4つのLD(Laser Diode)107bを備えている。これらは、外部から入力された電圧信号を光信号に変換して送信する光送信器として機能する。
【0116】
PD108a及び受信回路109aは、コネクタ103が備えるMCU112と共に、本実施形態に係る光受信器1を構成している。したがって、コネクタ102から送信される光信号のパワーが変動しても、受信回路109aにて増幅される差動信号のオフセット電圧を0[V]に近づけ、その差(オフセット電圧の0[V]からのずれ)を予め定められた許容誤差以下に抑えることができる。しかも、そのために必要となる閾電圧変更処理は、コネクタ102から送信される光信号の値がオフレベルとなる無信号区間においてスキップされる。したがって、無信号区間に続く有信号区間の開始直後にコネクタ102から出力される電圧信号の波形が歪むことがない。
【0117】
以上のように、アクティブ光ケーブル100においては、無信号区間に有信号区間が続く光信号をコネクタ103からコネクタ102に送信する場合、有信号区間の開始直後にコネクタ102から出力される電圧信号の波形が歪むことがない。また、無信号区間に有信号区間が続く光信号をコネクタ102からコネクタ103に送信する場合、有信号区間の開始直後にコネクタ103から出力される電圧信号の波形が歪むことがない。したがって、アクティブ光ケーブル100は、リンクアップシーケンスにおいてOOB信号やEI区間を含む信号などを送受信する必要があるSAS2.0やPCIe3.0などの規格に準拠するシリアル通信にも好適に利用することができる。
【0118】
アクティブ光ケーブル100において、光受信器(例えば、PD108a及び受信回路109a)が受信する光信号は、予め定められた光送信器(例えば、送信回路106a及びLD107a)から送信され、予め定められた光ファイバ(例えば、光ファイバ104a)を伝送された光信号である。したがって、光受信器の受信パワーの変動範囲を、光送信器を構成する発光素子(例えば、LD107a)の温度特性から予め見積もっておくことができる。このため、アクティブ光ケーブル100においては、予め定められたプログラムを用いたオフセットキャンセル処理の実現が容易である。
【0119】
ただし、本発明の適用範囲は、アクティブ光ケーブルに限定されない。すなわち、本発明は、例えば、光トランシーバモジュールに適用することができる。なお、受信パワーの変動範囲(リンクパジェット)が広い光トランシーバモジュールおいては、「加速制御モード」における閾電圧Vthを表す変数の変化量δを前述の実施形態よりも大きくしたり、オフセットキャンセル処理の実行頻度を前述の実施形態よりも高くしたりすることが考えられる。
【0120】
〔従来の光受信器の問題点〕
なお、従来の光受信器2(
図9参照)には、光信号が無信号区間から有信号区間へと遷移した直後に出力信号の波形が歪むという問題があった。以下、この問題について、
図10を参照してもう少し詳しく説明する。
【0121】
図10の(a)は、受光素子21が受光する光信号の波形図である。
図10の(b)は、トランスインピーダンスアンプ22aが出力する電圧信号の波形図である。なお、
図10の(b)には、エラーアンプ22gが出力する閾電圧Vthの時間変化を点線で併記している。
【0122】
図10の(a)に示す光信号は、値がハイレベルとローレベルとを交互に取るDATA区間(有信号区間)と、値がオフレベルを取り続けるIDLE区間(無信号区間)とからなるパターンを有している。受光素子21が
図10の(a)に示す光信号を受信すると、トランスインピーダンスアンプ22aは、
図10の(b)に示す電圧信号を出力する。
【0123】
図10の(b)に示すように、DATA区間とIDLE区間とでは、トランスインピーダンスアンプ22aの平均出力レベルが異なる。このため、IDLE区間からDATA区間へと遷移した時点から、エラーアンプ22gの出力電圧VthがDATA区間におけるトランスインピーダンスアンプ22aの平均出力レベルに追い付く時点まで、光受信器2の出力信号の波形に歪が生じることになる。
【0124】
なお、SAS(Serial Attached SCSI)に準拠したシリアル通信のリンクアップシーケンスにおいては、値がハイレベルとローレベルとを交互に取るDATA区間と、値がハイレベルとローレベルとの間の中間レベルを取り続けるIDLE区間とからなるパターンを有するOOB(Out Of Band)信号を送受信することがある。また、PCIe(PCI Express)に準拠したシリアル通信でも、ハイレベルとローレベルとが交互に繰り返されるDATA区間と、中間レベルが維持されるEI(Electrical Idle)区間とからなるパターンを有する信号を送受信することがある。このため、これらの規格に準拠したシリアル通信をアクティブ光ケーブルを用いて実現する場合には、例えば、
図10の(a)に示すようなパターンを有する光信号を送受信することが必要になる。
【0125】
これに対して、本実施形態によれば、無信号区間から有信号区間に遷移した直後に出力信号の波形を歪ませることなくオフセットキャンセルを行うことができる光受信器を実現することができる。
【0126】
〔まとめ〕
本実施形態に係る光受信器は、光信号を電流信号に変換する受光素子と、上記電流信号を電圧信号に変換するトランスインピーダンスアンプと、上記電圧信号と閾電圧との差を差動増幅することによって、上記電圧信号を差動信号に変換する差動アンプと、上記光信号の無信号区間を検出する無信号検出回路と、上記差動信号のオフセット電圧が小さくなるように上記閾電圧を変更する閾電圧変更処理を含むオフセットキャンセル処理を繰り返す制御部と、を備えており、上記制御部は、上記無信号区間において上記閾電圧変更処理をスキップする。
【0127】
別の言い方をすると、本実施形態に係る光受信器は、光信号を電流信号に変換する受光素子と、上記電流信号を電圧信号に変換するトランスインピーダンスアンプと、上記電圧信号と閾電圧との差を差動増幅することによって、上記電圧信号を差動信号に変換する差動アンプと、上記光信号の無信号区間を検出する無信号検出回路と、オフセットキャンセル処理を繰り返し実行する制御部と、を備えており、上記無信号区間外で実行される上記オフセットキャンセル処理は、上記差動信号のオフセット電圧が小さくなるように上記閾電圧を変更する閾電圧変更処理を含み、上記無信号区間内で実行される上記オフセットキャンセル処理は、上記閾電圧変更処理を含まない。
【0128】
上記の構成によれば、無信号区間に続く有信号区間の開始直後に上記電圧信号の波形を歪ませることなく、上記差動信号のオフセットをキャンセルすることができる。
【0129】
本実施形態に係る光受信器は、上記閾電圧を生成する可変電圧源を更に備えており、上記制御部は、上記可変電圧源を制御することによって、上記閾電圧を変更する、ことが好ましい。
【0130】
上記の構成によれば、上記制御部をMCU(Micro Controller Unit)等の電子計算機によって実現することができる。
【0131】
本実施形態に係る光受信器において、上記オフセットキャンセル処理は、上記閾電圧変更処理における上記閾電圧の変化量が異なる2つの実行モードを有しており、上記制御部は、上記オフセット電圧の符号が反転した、又は、上記オフセット電圧の大きさが許容誤差を下回った時点で、上記オフセットキャンセル処理の実行モードを、上記閾電圧の変化量が大きい第1の実行モードから上記閾電圧の変化量が小さい第2の実行へと切り替える、ことが好ましい。
【0132】
上記の構成によれば、オフセットキャンセル処理の精度を犠牲にすることなく、上記差動信号のオフセットを速やかにキャンセルすることができる。
【0133】
本実施形態に係る光受信器において、上記制御部は、上記オフセット電圧の符号が反転した、又は、上記オフセット電圧の大きさが許容誤差を下回った時点で、上記オフセットキャンセル処理の実行頻度を低下させる、ことが好ましい。
【0134】
上記の構成によれば、オフセットキャンセル処理の速度を犠牲にすることなく、上記制御部の負荷を小さく抑えることができる。
【0135】
本実施形態に係る光受信器は、上記トランスインピーダンスアンプ、上記差動アンプ、及び上記無信号検出回路を2チャンネル分以上備えており、上記制御部は、上記オフセット電圧の符号が未だ反転していない、又は、上記オフセット電圧の大きさが未だ許容誤差を下回っていないチャンネルがなくなった時点で、上記オフセットキャンセル処理の実行頻度を低下させる、ことが好ましい。
【0136】
上記の構成によれば、オフセットキャンセル処理の速度を犠牲にすることなく、上記制御部の負荷を小さく抑えることができる。
【0137】
本実施形態に係る光受信器において、上記制御部は、動作終了時、又は、動作中定期的に上記閾電圧の値を不揮発性メモリに書き込むと共に、動作開始時に上記閾電圧の値を上記不揮発性メモリから読み出し、読み出した上記閾電圧の値を上記オフセットキャンセル処理の初期値として利用する、ことが好ましい。
【0138】
上記の構成によれば、光送信器が備える発光素子の経時劣化等に伴い上記光信号のパワーが経時変化する場合であっても、上記差動信号のオフセットを速やかにキャンセルすることができる。
【0139】
本実施形態に係る光受信器において、上記無信号検出回路は、上記無信号区間を示すLOS信号の値を格納するクリア・オン・リードのレジスタを備えており、上記制御部は、上記レジスタから読み出したLOS信号の値を参照して上記無信号区間を特定する、ことが好ましい。
【0140】
上記の構成によれば、上記制御部が上記LOS信号の値を読み出す周期よりも短い有信号区間において、上記制御部が上記閾電圧変更処理を実行することを回避することができる。例えば、本実施形態をSASに従うシリアル通信に適用する場合、COMINIT信号、COMSAS信号、及びSNT信号を受信する区間において、上記制御部が上記閾電圧変更処理を実行することを回避することができる。
【0141】
なお、上記の光受信器を備えているアクティブ光ケーブルも、本実施形態の範疇に含まれる。アクティブ光ケーブルにおいては、一方のコネクタ(光受信器として機能)における受信パワーの変動範囲を、他方のコネクタ(光送信器として機能)に内蔵された発光素子の温度特性に基づいて、予め見積もっておくことが可能である。このため、アクティブ光ケーブルにおいては、予め定められたプログラムを用いたオフセットキャンセル処理の実現が容易である。すなわち、アクティブ光ケーブルは、本実施形態の適用に適している。
【0142】
本実施形態に係る光受信器の制御方法は、光信号を電流信号に変換する受光素子と、上記電流信号を電圧信号に変換するトランスインピーダンスアンプと、上記電圧信号と閾電圧との差を差動増幅することによって、上記電圧信号を差動信号に変換する差動アンプと、を備えた光受信器の制御方法であって、上記差動信号のオフセット電圧が小さくなるように上記閾電圧を変更する閾電圧変更処理を含むオフセットキャンセル処理を繰り返し、上記光信号の無信号区間において上記閾電圧変更処理をスキップする。
【0143】
別の言い方をすると、本実施形態に係る光受信器の制御方法は、光信号を電流信号に変換する受光素子と、上記電流信号を電圧信号に変換するトランスインピーダンスアンプと、上記電圧信号と閾電圧との差を差動増幅することによって、上記電圧信号を差動信号に変換する差動アンプと、を備えた光受信器の制御方法であって、上記光信号の無信号区間を検出する無信号検出工程と、オフセットキャンセル処理を繰り返し実行する制御工程とを含んでおり、上記無信号区間外で実行される上記オフセットキャンセル処理は、上記差動信号のオフセット電圧が小さくなるように上記閾電圧を変更する閾電圧変更処理を含み、上記無信号区間内で実行される上記オフセットキャンセル処理は、上記閾電圧変更処理を含まない。
【0144】
上記の構成によれば、無信号区間に続く有信号区間の開始直後に上記電圧信号の波形を歪ませることなく、上記差動信号のオフセットをキャンセルすることができる。
【0145】
〔付記事項〕
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。