(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023018248
(43)【公開日】2023-02-08
(54)【発明の名称】光トランシーバおよび光トランシーバの監視制御用信号のフレーム同期方法
(51)【国際特許分類】
H04L 7/04 20060101AFI20230201BHJP
H04B 10/40 20130101ALI20230201BHJP
H04J 3/00 20060101ALI20230201BHJP
H04B 10/077 20130101ALN20230201BHJP
【FI】
H04L7/04 100
H04B10/40
H04J3/00 U
H04B10/077
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021122227
(22)【出願日】2021-07-27
(71)【出願人】
【識別番号】000154325
【氏名又は名称】住友電工デバイス・イノベーション株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】甘利 彰悟
(72)【発明者】
【氏名】鈴木 貴之
【テーマコード(参考)】
5K028
5K047
5K102
【Fターム(参考)】
5K028BB08
5K028NN01
5K047BB02
5K047HH01
5K047HH12
5K047MM02
5K047MM11
5K102AA63
5K102AD11
5K102AH01
5K102AH02
5K102AH26
5K102AL11
5K102LA04
5K102LA05
5K102LA21
5K102LA32
5K102LA52
5K102MH02
5K102MH03
5K102MH12
5K102MH22
5K102MH23
5K102PB01
5K102PH01
5K102PH31
5K102RD05
5K102RD12
5K102RD28
(57)【要約】
【課題】光信号に重畳された監視制御用信号に含まれる複数種のフレームに同期可能にする。
【解決手段】光トランシーバは、監視制御用信号が重畳された光送信信号を送信する光送信部と、光受信信号から監視制御用信号を抽出する光受信部と、監視制御用信号からビット列を生成して、ビット列から監視制御データを再生する処理部とを備え、監視制御用信号は、第1ヘッダ部を有する第1フレームと、第2ヘッダ部を有する第2フレームと、を時分割で含み、処理部は、ビット列から生成される第1バイト列が第1ヘッダ部と一致するときに第1バイト列と第1バイト列に続くバイト列を第1フレームとして処理して監視制御データを生成し、第1バイト列が第1ヘッダ部と異なるとき、ビット列から生成される第2バイト列が第2ヘッダ部と一致するときに第2バイト列と第2バイト列に続くバイト列を第2フレームとして処理して監視制御データを生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
監視制御用信号が重畳された光送信信号を送信する光送信部と、
前記監視制御用信号が重畳された光受信信号を受信し、前記光受信信号から前記監視制御用信号を抽出する光受信部と、
前記監視制御用信号からビット列を生成して、前記ビット列から監視制御データを再生する処理部と、
を備え、
前記監視制御用信号は、第1ヘッダ部を先頭に有する第1フレームと、前記第1ヘッダ部と異なる第2ヘッダ部を先頭に有する第2フレームと、を時分割で含み、
前記処理部は、前記ビット列から前記第1ヘッダ部と同じ長さの第1バイト列を生成し、前記第1バイト列が前記第1ヘッダ部と一致するときに前記第1バイト列と前記第1バイト列に続くバイト列を前記第1フレームとして処理して前記監視制御データを生成し、前記第1バイト列が前記第1ヘッダ部と異なるときに前記第2ヘッダ部と同じ長さの第2バイト列を生成し、前記第2バイト列が前記第2ヘッダ部と一致するときに前記第2バイト列と前記第2バイト列に続くバイト列を前記第2フレームとして処理して前記監視制御データを生成する、
光トランシーバ。
【請求項2】
前記処理部は、前記第2バイト列が前記第2ヘッダ部と異なるとき、前記ビット列を1ビットだけシフトして前記第1バイト列を新しく生成する、
請求項1に記載の光トランシーバ。
【請求項3】
前記第2ヘッダ部の長さは、前記第1ヘッダ部の長さと等しく、
前記処理部は、前記第1バイト列が前記第1ヘッダ部と異なるときに前記第1バイト列を前記第2バイト列として使用する、
請求項1または請求項2に記載の光トランシーバ。
【請求項4】
前記第1フレームは、前記第1ヘッダ部とフレーム番号部と第1情報格納部を含み、
前記第2フレームは、前記第2ヘッダ部と第2情報格納部を含む、
請求項1から請求項3のいずれか1項に記載の光トランシーバ。
【請求項5】
光トランシーバの監視制御用信号のフレーム同期方法であって、
前記監視制御用信号は、第1ヘッダ部を先頭に有する第1フレームと、前記第1ヘッダ部と異なる第2ヘッダ部を先頭に有する第2フレームと、を時分割で含み、
監視制御用信号が重畳された光受信信号を受信し、前記光受信信号から前記監視制御用信号を抽出する工程と、
前記監視制御用信号からビット列を生成して、前記ビット列から前記第1ヘッダ部と同じ長さの第1バイト列を生成する工程と、
前記第1バイト列が前記第1ヘッダ部と一致するときに前記第1バイト列と前記第1バイト列に続くバイト列を前記第1フレームとして処理して監視制御データを生成する工程と、
前記第1バイト列が前記第1ヘッダ部と異なるときに前記第2ヘッダ部と同じ長さの第2バイト列を生成する工程と、
前記第2バイト列が前記第2ヘッダ部と一致するときに前記第2バイト列と前記第2バイト列に続くバイト列を前記第2フレームとして処理して前記監視制御データを生成する工程と、
を含むフレーム同期方法。
【請求項6】
さらに、前記第2バイト列が前記第2ヘッダ部と異なるとき、前記ビット列を1ビットだけシフトして前記第1バイト列を新しく生成する工程を含む、
請求項5に記載のフレーム同期方法。
【請求項7】
前記第2ヘッダ部の長さは、前記第1ヘッダ部の長さと等しく、
前記第1バイト列が前記第1ヘッダ部と異なるときに前記第2ヘッダ部と同じ長さの第2バイト列を生成する工程は、前記第1バイト列が前記第1ヘッダ部と異なるときに前記第1バイト列を前記第2バイト列として使用する工程を含む、
請求項5または請求項6に記載のフレーム同期方法。
【請求項8】
前記第1フレームは、前記第1ヘッダ部とフレーム番号部と第1情報格納部を含み、
前記第2フレームは、前記第2ヘッダ部と第2情報格納部を含む、
請求項5から請求項7のいずれか1項に記載のフレーム同期方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、光トランシーバおよび光トランシーバの監視制御用信号のフレーム同期方法に関する。
【背景技術】
【0002】
光トランシーバは、例えば、受信した高速の光信号に重畳されている低速の信号から監視制御データを抽出する。抽出された監視制御データは、光トランシーバおよび光ネットワークの監視制御に使用される。また、光トランシーバは、監視制御のために低速の監視制御データを高速の光信号に重畳して送信する(例えば、特許文献1、2参照)。
【0003】
例えば、フレーム同期装置は、入力データと同期パターンとが一致したタイミングに基づいて、一致した複数のタイミングについて、入力データと同期パターンとがフレーム長の周期で連続して一致したか否かを並行して判定する。そして、判定結果に基づいて入力データのフレーム同期を行う(例えば、特許文献3参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特表2018-520561号公報
【特許文献2】特表2018-514982号公報
【特許文献3】特開2016-072848号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
例えば、ITU-T(International Telecommunication Union Telecommunication Standardization Sector)勧告 G.698.4のHTMC(Head to Tail Message Channel)フレームでは、フレーム長(フレームサイズ)は、6バイト(48ビット)である。HTMCフレームでは、フレーム長に対するデータ本体(メッセージ)の割合は50%であり、データ本体のサイズは3バイト(24ビット)となる。フレーム内のデータ本体を格納する部分をペイロードとも言う。例えば、光トランシーバ間での大量の監視データを送信する場合、監視データの伝送効率を向上するために、フレームサイズに対するペイロードサイズの割合は大きいことが好ましい。
【0006】
例えば、ITU-Tによって制定されたSONET(synchronous optical network)/SDH(Synchronous Digital Hierarchy)では、複数の行と複数の列とによって構成されたフレーム構造の各行において、伝送速度に応じた固定のフレーム長(列数)が使用され、ペイロードを格納するペイロード部のフレーム長に対する割合はHTMCフレームよりも大きい。また、フレームの同期用の同期パターンを含むヘッダ部がフレーム構造の先頭に設けられ、ヘッダ部内の同期パターンを検出することにより、フレーム同期が行われる。
【0007】
一方、ペイロード部のサイズが大きいほど、ペイロード部の中にヘッダ部の同期パターンと同じパターンが含まれる可能性が高くなり、ヘッダ部の誤検出の可能性が高くなる。そこで、ペイロードのデータにスクランブルをかけ、ペイロード部が同期パターンを含まないようにすることで、ヘッダ部の誤検出が回避される。
【0008】
しかしながら、ペイロードのデータにスクランブルをかける場合、送信側でスクランブル処理を実施し、受信側でデスクランブル処理を実施する必要がある。例えば、光トランシーバに搭載されるMCU(Micro Control Unit)等のプロセッサは、サーバ等に搭載されるプロセッサに比べて小規模である。このため、光トランシーバに搭載されるMCUに、スクランブル処理およびデスクランブル処理を行うハードウェアを実装することは困難である。また、光トランシーバに搭載されるMCUに、スクランブル処理プログラムおよびデスクランブル処理プログラムを実行させる場合、他の既存の処理が所望のタイミングで実行できなくなるおそれがある。
【0009】
また、光トランシーバは、監視制御データを互いにフレーム構造の異なる複数種のフレームによって送受信することが要求される場合がある。複数種のフレームを受信する際に、それぞれのフレームに適切に同期してそれぞれのフレームのペイロードに格納されたデータを抽出する必要がある。
【0010】
そこで、本開示は、光信号に重畳された監視制御用信号に含まれる複数種のフレームに同期可能にすることを目的とする。
【課題を解決するための手段】
【0011】
本実施形態の一観点によれば、光トランシーバは、監視制御用信号が重畳された光送信信号を送信する光送信部と、前記監視制御用信号が重畳された光受信信号を受信し、前記光受信信号から前記監視制御用信号を抽出する光受信部と、前記監視制御用信号からビット列を生成して、前記ビット列から監視制御データを再生する処理部と、を備え、前記監視制御用信号は、第1ヘッダ部を先頭に有する第1フレームと、前記第1ヘッダ部と異なる第2ヘッダ部を先頭に有する第2フレームと、を時分割で含み、前記処理部は、前記ビット列から前記第1ヘッダ部と同じ長さの第1バイト列を生成し、前記第1バイト列が前記第1ヘッダ部と一致するときに前記第1バイト列と前記第1バイト列に続くバイト列を前記第1フレームとして処理して前記監視制御データを生成し、前記第1バイト列が前記第1ヘッダ部と異なるときに前記第2ヘッダ部と同じ長さの第2バイト列を生成し、前記第2バイト列が前記第2ヘッダ部と一致するときに前記第2バイト列と前記第2バイト列に続くバイト列を前記第2フレームとして処理して前記監視制御データを生成する。
【発明の効果】
【0012】
本開示によれば、光信号に重畳された監視制御用信号に含まれる複数種のフレームに同期することができる。
【図面の簡単な説明】
【0013】
【
図1】
図1は、一実施形態にかかる光トランシーバの構成の一例を示すブロック図である。
【
図2】
図2は、
図1の光トランシーバ間で伝送される監視制御データを含むフレームのフォーマットの一例を示す説明図である。
【
図3】
図3は、
図1のRAMに割り当てられる記憶領域の一例を示す説明図である。
【
図4】
図4は、
図1の光トランシーバによる第1フレームまたは第2フレームの送信動作の一例を示すフロー図である。
【
図5】
図5は、
図1の光トランシーバによる第1フレームまたは第2フレームの受信動作の一例を示すフロー図である。
【
図7】
図7は、
図1の光トランシーバ間での監視制御データを含む第1フレームの送受信動作の一例を示す説明図である。
【発明を実施するための形態】
【0014】
[本開示の実施形態の説明]
最初に本開示の実施態様を列記して説明する。
【0015】
〔1〕本開示の一態様にかかる光トランシーバは、監視制御用信号が重畳された光送信信号を送信する光送信部と、前記監視制御用信号が重畳された光受信信号を受信し、前記光受信信号から前記監視制御用信号を抽出する光受信部と、前記監視制御用信号からビット列を生成して、前記ビット列から監視制御データを再生する処理部と、を備え、前記監視制御用信号は、第1ヘッダ部を先頭に有する第1フレームと、前記第1ヘッダ部と異なる第2ヘッダ部を先頭に有する第2フレームと、を時分割で含み、前記処理部は、前記ビット列から前記第1ヘッダ部と同じ長さの第1バイト列を生成し、前記第1バイト列が前記第1ヘッダ部と一致するときに前記第1バイト列と前記第1バイト列に続くバイト列を前記第1フレームとして処理して前記監視制御データを生成し、前記第1バイト列が前記第1ヘッダ部と異なるときに前記第2ヘッダ部と同じ長さの第2バイト列を生成し、前記第2バイト列が前記第2ヘッダ部と一致するときに前記第2バイト列と前記第2バイト列に続くバイト列を前記第2フレームとして処理して前記監視制御データを生成する。
【0016】
この光トランシーバでは、処理部は、光信号に重畳して送受信される監視制御用信号から生成されるビット列に第1ヘッダ部または第2ヘッダ部の同期パターンが含まれるか否かを順次検出する。これにより、異種のフレームのそれぞれが光信号に重畳されて光トランシーバ間で送受信される場合にも、光トランシーバは、第1フレームおよび第2フレームの誤検知を防止することができ、光トランシーバの誤動作を防止することができる。この結果、光トランシーバの信頼性を向上することができ、光トランシーバが搭載される通信システムの信頼性を向上することができる。
【0017】
〔2〕上記〔1〕において、前記処理部は、前記第2バイト列が前記第2ヘッダ部と異なるとき、前記ビット列を1ビットだけシフトして前記第1バイト列を新しく生成してもよい。この場合、処理部は、ビット列を1ビットずつシフトして順次生成される新たな第1バイト列をそれぞれ第1ヘッダ部または第2ヘッダ部の同期パターンと比較することで、新たなビット列から第1ヘッダ部または第2ヘッダ部を確実に検出することができる。そして、処理部は、第1ヘッダ部の検出に基づいて第1フレームを確実に取得することができ、第2ヘッダ部の検出に基づいて第2フレームを確実に取得することができる。
【0018】
〔3〕上記〔1〕または〔2〕において、前記第2ヘッダ部の長さは、前記第1ヘッダ部の長さと等しくてもよい。このとき、第1バイト列が第1ヘッダ部と異なるときに第1バイト列を第2バイト列として使用してもよい。これにより、処理部は、共通の長さのバイト列を第1バイト列および第2バイト列として第1ヘッダ部または第2ヘッダ部の同期パターンを検出し、第1フレームまたは第2フレームを処理することができる。この結果、第1フレームおよび第2フレームの検出処理の一部を共通化することができ、ヘッダ部の長さが互いに異なるフレームを検出する場合に比べて、第1フレームおよび第2フレームの取得処理を簡易にすることができる。
【0019】
〔4〕〔1〕から〔3〕のいずれかにおいて、前記第1フレームは、前記第1ヘッダ部とフレーム番号部と第1情報格納部を含み、前記第2フレームは、前記第2ヘッダ部と第2情報格納部を含んでもよい。これにより、処理部は、通信相手の光トランシーバに送信する監視制御データの種類またはデータ量に応じて、第1フレームまたは第2フレームを選択的に使用することができる。例えば、処理部は、監視制御データのデータ量が所定量より大きい場合、監視制御データを格納可能な第1情報格納部(または第2情報格納部)を含む第1フレーム(または第2フレーム)を使用する。これにより、処理部は、光送信信号に重畳させる監視制御データを含むビット列のサイズを最小限にすることができる。あるいは、監視制御データの構成や用途の違いに応じて第1フレームFRM1と第2フレームFRM2とを使い分けてもよい。これにより、光トランシーバ100は、2つの互いに異なる監視制御を組み合わせた、より高機能で高度な監視制御を行うことができる。
【0020】
〔5〕本開示の別の態様にかかる光トランシーバの監視制御用信号のフレーム同期方法は、前記監視制御用信号は、第1ヘッダ部を先頭に有する第1フレームと、前記第1ヘッダ部と異なる第2ヘッダ部を先頭に有する第2フレームと、を時分割で含み、監視制御用信号が重畳された光受信信号を受信し、前記光受信信号から前記監視制御用信号を抽出する工程と、前記監視制御用信号からビット列を生成して、前記ビット列から前記第1ヘッダ部と同じ長さの第1バイト列を生成する工程と、前記第1バイト列が前記第1ヘッダ部と一致するときに前記第1バイト列と前記第1バイト列に続くバイト列を前記第1フレームとして処理して監視制御データを生成する工程と、前記第1バイト列が前記第1ヘッダ部と異なるときに前記第2ヘッダ部と同じ長さの第2バイト列を生成する工程と、前記第2バイト列が前記第2ヘッダ部と一致するときに前記第2バイト列と前記第2バイト列に続くバイト列を前記第2フレームとして処理して前記監視制御データを生成する工程と、を含む。
【0021】
この光トランシーバの監視制御用信号のフレーム同期方法では、光トランシーバは、光信号に重畳して送受信される監視制御用信号から生成されるビット列に第1ヘッダ部または第2ヘッダ部の同期パターンが含まれるか否かを順次検出する。これにより、異種のフレームのそれぞれが光信号に重畳されて光トランシーバ間で送受信される場合にも、光トランシーバは、第1フレームおよび第2フレームの誤検知を防止することができ、光トランシーバの誤動作を防止することができる。この結果、光トランシーバの信頼性を向上することができ、光トランシーバが搭載される通信システムの信頼性を向上することができる。
【0022】
〔6〕上記〔5〕において、さらに、前記第2バイト列が前記第2ヘッダ部と異なるとき、前記ビット列を1ビットだけシフトして前記第1バイト列を新しく生成する工程を含んでもよい。この場合、光トランシーバは、ビット列を1ビットずつシフトして順次生成される新たな第1バイト列をそれぞれ第1ヘッダ部または第2ヘッダ部と比較することで、新たなビット列から第1ヘッダ部または第2ヘッダ部の同期パターンを確実に検出することができる。そして、光トランシーバは、第1ヘッダ部の検出に基づいて第1フレームを確実に取得することができ、第2ヘッダ部の検出に基づいて第2フレームを確実に取得することができる。
【0023】
〔7〕上記〔5〕または〔6〕において、前記第2ヘッダ部の長さは、前記第1ヘッダ部の長さと等しくてもよい。このとき、第1バイト列が第1ヘッダ部と異なるときに第1バイト列を第2バイト列として使用してもよい。これにより、光トランシーバは、共通の長さのバイト列を第1バイト列および第2バイト列として第1ヘッダ部または第2ヘッダ部を検出し、第1フレームまたは第2フレームを処理することができる。この結果、第1フレームおよび第2フレームの検出処理の一部を共通化することができ、ヘッダ部の長さが互いに異なるフレームを検出する場合に比べて、第1フレームおよび第2フレームの取得処理を簡易にすることができる。
【0024】
〔8〕上記〔5〕から〔7〕のいずれかにおいて、前記第1フレームは、前記第1ヘッダ部とフレーム番号部と第1情報格納部を含み、前記第2フレームは、前記第2ヘッダ部と第2情報格納部を含んでもよい。これにより、光トランシーバは、通信相手の光トランシーバに送信する監視制御データの種類またはデータ量に応じて、第1フレームまたは第2フレームを選択的に使用することができる。例えば、光トランシーバは、監視制御データのデータ量が大きい場合には、監視制御データを格納可能な第1情報格納部(または第2情報格納部)を含む第1フレーム(または第2フレーム)を使用する。これにより、光トランシーバは、光送信信号に重畳させる監視制御データを含むビット列のサイズを最小限にすることができる。あるいは、監視制御データの構成や用途の違いに応じて第1フレームFRM1と第2フレームFRM2とを使い分けてもよい。これにより、光トランシーバ100は、2つの互いに異なる監視制御を組み合わせた、より高機能で高度な監視制御を行うことができる。
【0025】
[本開示の実施形態の詳細]
本開示の光トランシーバの具体例を、以下に図面を参照しつつ説明する。なお、本実施形態は、以下の説明に限定されるものではない。以下の説明では、信号等の情報が伝達される信号線には、信号名と同じ符号を使用する。特に断らない限り、ブロック図において矢じりを付けた線は、信号線、光ケーブルまたは情報の伝達経路を示す。また、図中に単線で示す信号線は、複数ビットの場合もある。
【0026】
〔一実施形態〕
〔光トランシーバの全体構成〕
図1は、一実施形態にかかる光トランシーバの構成の一例を示すブロック図である。例えば、
図1において、2芯の光ケーブル(光ファイバ)を介して相互に接続された2つの光トランシーバ100は、低速変調信号を重畳した光信号を送受信する。光トランシーバ100は、低速変調信号を介して、監視制御データの送信と、監視制御データの受信とを行うことができる。光トランシーバ100は、互いに同じ構成のため、以下では、
図1の左側の光トランシーバ100について説明される。
【0027】
光トランシーバ100は、例えば、MCU(Micro Control Unit)10、トランシーバIC(Integrated Circuit)20、バイアス供給部30、ローパスフィルタ(LPF)40、TOSA(Transmitter Optical Sub-Assembly)50およびROSA(Receiver Optical Sub-Assembly)60を有する。例えば、光トランシーバ100は、デジタル信号を送受信する図示しない光伝送装置に着脱可能に装着される。バイアス供給部30およびTOSA50は、光送信部の一例である。ROSA60およびローパスフィルタ40は、光受信部の一例である。
【0028】
光ファイバを介して光信号を送信するとき、光信号を送信する側を送信端、送信端から送信された光信号を受信する側を受信端と呼ぶことにする。送信端の光トランシーバ100は、送信端の光伝送装置から受信する送信データ信号(デジタルの電気信号)を光信号に変換し、変換した光信号を、光ケーブルを介して受信端の光伝送装置に装着された光トランシーバ100に送信する。受信端の光トランシーバ100は、光ケーブルを介して送信端の光トランシーバ100から受信する光信号を受信データ信号(デジタルの電気信号)に変換し、変換した受信データ信号を受信端の光伝送装置に出力する。なお、ここでの送信端および受信端は説明のための便宜的な区別であって、光信号は双方向で送受信されるため、送信に関して送信端とされる光トランシーバ100は、受信に関しては受信端とされる。
【0029】
また、光トランシーバ100は、監視制御データを含む低速変調信号を光信号に重畳し、光ケーブルを介して接続された他の光トランシーバ100に送信する。例えば、光トランシーバ100は、マンチェスタ符号化した監視制御データを送信するとともに他の光トランシーバ100からマンチェスタ符号化した監視制御データを受信する。監視制御データを含む低速変調信号は、監視制御用信号の一例である。
【0030】
特に限定されないが、監視制御データは、例えば、自光トランシーバ100で計測したモニタ値(内部の実装部品の温度、電源電圧、レーザーバイアス電流、光送信パワーおよび光受信パワーなどの少なくともいずれか)を含む。また、監視制御データは、自光トランシーバ100を識別可能な固有情報、光信号の波長(または周波数)の変更指示または光出力パワーの変更指示等を含む。例えば、光トランシーバ100を識別可能な固有情報は、光トランシーバ100のシリアル番号(製造番号)および型番を含む。
【0031】
MCU10は、例えば、図示しないI2C(Inter-Integrated Circuit)インタフェース等の各種通信インタフェース12、DMAC14(Direct Memory Access Controller)等の周辺機能、およびRAM(Random Access Memory)16を有する。また、MCU10は、MCU10が実行する各種プログラムが格納される図示しないROM(Read Only Memory)を有する。ROMは、例えば、フラッシュメモリであってもよい。MCU10は、光トランシーバ100の動作を制御するともに、監視制御データを処理する機能を有する。MCU10は、例えば、マイクロコンピューターであってもよく、CPLD(Complex Programmable Logic Device)またはFPGA(Field Programmable Gate Array)などのロジックデバイスであってもよい。MCU10において、監視制御データを処理する機能部は、処理部の一例である。
【0032】
MCU10は、例えば、I2Cバスを介して光伝送装置から監視制御データを受信し、受信した監視制御データを含むフレームを生成する。監視制御データは、例えば、フレームのペイロード部に格納される。MCU10は、生成したフレームに相当するビット列をマンチェスタ符号に変換(符号化)し、変換したマンチェスタ符号をバイアス供給部30に出力する。例えば、フレームサイズが6バイトの場合、ビット列の長さは、48ビットとなる。すなわち、ビット列は、2進数の"0"または"1"が48個連続して並んだデータとなる。
【0033】
また、MCU10は、光ケーブルを介して他の光トランシーバ100から送信される光信号に重畳された低速変調信号を、ROSA60およびローパスフィルタ40を介して受信する。ローパスフィルタ40は、他の光トランシーバ100から受信した光信号から低速変調信号を抽出し、マンチェスタ符号化された低速受信信号としてMCU10に出力する。MCU10は、受信したマンチェスタ符号化された低速受信信号をビット列に変換(復号)する。変換したビット列は、MCU10によって処理され、ビット列からフレームが検出されて監視制御データが生成される。
【0034】
MCU10は、変換したビット列からフレーム同期によってフレームを抽出し、抽出したフレームから監視制御データを抽出する。MCU10は、抽出した監視制御データを、例えば、I2Cバスを介して光伝送装置に出力する。例えば、MCU10は、マンチェスタ符号の符号器および復号器を有する。なお、光トランシーバ100間で送受信される低速変調信号に使用される符号は、マンチェスタ符号に限定されず、他の符号でもよい。
【0035】
トランシーバIC20は、光伝送装置から受信する送信データ信号に基づいて、例えば、NRZ(Non Return to Zero)信号のデジタル信号を生成し、生成したデジタル信号をTOSA50に出力する。トランシーバIC20は、例えば、CDR(Clock Data Recovery)-ICであってもよく、例えば、CDR-ICは、送信データ信号を波形成形した信号をデジタル信号としてTOSA50に出力してもよい。あるいは、トランシーバICは、デジタル信号処理ICであってもよく、例えば、デジタル信号処理ICは、送信データ信号をデジタル信号処理した信号をデジタル信号としてTOSA50に出力してもよい。
【0036】
また、トランシーバIC20は、光ケーブルを介して接続された他の光トランシーバ100から受信する光信号から変換されたNRZ信号等のデジタル信号をROSA60から受信する。トランシーバIC20は、受信したデジタル信号を受信データ信号(デジタル信号)に変換し、変換した受信データ信号を光伝送装置に出力する。例えば、CDR-ICは、受信したデジタル信号を波形成形した信号を受信データ信号として出力してもよい。あるいは、トランシーバICは、デジタル信号処理ICであってもよく、例えば、デジタル信号処理ICは、受信したデジタル信号をデジタル信号処理した信号を受信データ信号として出力してもよい。
【0037】
バイアス供給部30は、例えば、マンチェスタ符号に応じて、TOSA50に搭載される図示しないレーザダイオードを駆動するバイアス電流を振幅変調し、振幅変調されたバイアス電流をTOSA50に供給する。例えば、マンチェスタ符号が"0"のとき、バイアス電流を減少させ、例えば、マンチェスタ符号が"1"のとき、バイアス電流を増加させる。例えば、マンチェスタ符号に基づくバイアス電流の増減の大きさの振幅変調を行なわないときのバイアス電流の大きさに対する比率(振幅変調率)を数%程度とする。TOSA50は、バイアス供給部30により振幅変調されたバイアス電流を用いて電気信号を光信号に変換することによりマンチェスタ符号化された監視制御データを含む低速変調信号を光信号に重畳する。低速変調信号の信号速度は、特に限定されないが、例えば、50Kbit/sである。なお、高速の光信号の速度は、例えば、10Gbit/sあるいはそれ以上である。
【0038】
TOSA50のレーザダイオードは、トランシーバIC20から受信するNRZ信号等の電気信号を光信号に変換する。例えば、電気信号がNRZ信号であるとき、NRZ信号が"0"のときにレーザダイオードが出力する光信号の信号強度(光パワー)を減少させ、NRZ信号が"1"のときにレーザダイオードが出力する光信号の信号強度(光パワー)を増加させる。このとき、レーザダイオードのバイアス電流に上述したマンチェスタ符号に基づいて振幅変調されたバイアス電流を用いることで高速の光信号に低速変調信号が重畳される。低速変調信号の振幅の大きさは、高速の光信号の振幅の大きさの例えば数%程度である。そして、レーザダイオードは、低速変調信号が重畳された光信号を光送信信号として、光ケーブルを介して他の光トランシーバ100に出力する。なお、TOSA50は連続光(CW光)を出力するレーザダイオードと連続光が入力される光変調器を備え、光変調器を電気信号で駆動することによって連続光から光信号を生成してもよい。
【0039】
ROSA60は、光ケーブルを介して他の光トランシーバ100から低速変調信号が重畳された光信号を光受信信号として受信する。ROSA60は、光受信信号を電流信号に変換し、変換した電流信号を増幅することで、電圧信号(デジタル信号)に変換する。例えば、ROSA60は、受光素子とトランスインピーダンスアンプを備え、受光素子は光信号を電流信号に変換し、トランスインピーダンスアンプは電流信号を増幅するとともに電圧信号に変換する。受光素子は、例えば、フォトダイオードである。そして、ROSA60は、変換した電圧信号をトランシーバIC20とローパスフィルタ40とに出力する。
【0040】
ローパスフィルタ40は、ROSA60から受信する電圧信号の高周波成分を遮断することで、光受信信号に重畳された低速受信信号を抽出する。抽出した低速受信信号は、監視制御データを含むフレームのデータ(ビット列)がマンチェスタ符号化された信号である。ローパスフィルタ40は、抽出した低速受信信号をMCU10に出力する。MCU10は、マンチェスタ符号化された低速受信信号を復号してビット列を生成する。なお、MCU10は、デジタルフィルタを備え、ローパスフィルタ40の代わりにデジタルフィルタによって低速受信信号を抽出してもよい。
【0041】
なお、監視制御用信号の一例である低速変調信号は、
図2で説明する第1フレームFRM1と第2フレームFRM2とを時分割で含む。すなわち、第1フレームFRM1と第2フレームFRM2とは、互いに重複することなく送信側の光トランシーバ100から送信され、互いに重複することなく受信側の光トランシーバ100で受信される。例えば、低速変調信号は、一つ以上の第1フレームFRM1に相当するビット列の後に一つ以上の第2フレームFRM2に相当するビット列を含んで送信される。あるいは、低速変調信号は、一つ以上の第2フレームFRM2に相当するビット列の後に一つ以上の第1フレームFRM2に相当するビット列を含んで送信される。
【0042】
〔監視制御データを含むフレームのフレームフォーマット〕
図2は、
図1の光トランシーバ間で伝送される監視制御データを含むフレームのフレームフォーマット(フレーム構造)の一例を示す説明図である。監視制御データの伝送用のフレームは、例えば、第1フレームFRM1および第2フレームFRM2である。
【0043】
例えば、MCU10は、監視制御データのデータサイズが所定量より大きい場合、第1フレームFRM1を使用し、監視制御データのデータサイズが所定量より小さい場合、第2フレームFRM2を使用してもよい。これにより、MCU10は、光送信信号に重畳させる監視制御データを含むフレームのサイズを最小限にすることができる。なお、監視制御データのデータサイズの違いではなく、監視制御データの構成や用途の違いに応じて第1フレームFRM1と第2フレームFRM2とを使い分けてもよい。
【0044】
例えば、第1フレームFRM1は、第1ヘッダ部HD1、フレーム番号部FNおよび第1ペイロード部PL1を有する。なお、以下の説明では、第1ヘッダ部HD1をヘッダとも言い、フレーム番号部FNをフレーム番号と言い、第1ペイロード部PL1をペイロードと言うことがある。第1ペイロード部PL1は、第1情報格納部の一例である。特に限定されないが、例えば、第1ヘッダ部HD1の長さは、2バイトであり、フレーム番号部FNの長さは、1バイトであり、第1ペイロード部PL1の長さは、253バイトであり、第1フレームFRM1のフレーム長(フレームサイズ)は、256バイトである。このようなフレームフォーマット(フレーム構造)を有するフレームをLong Frameと呼ぶことにする。
【0045】
第1ヘッダ部HD1には、第1フレームFRM1の先頭を特定するための固有の値が配置される。第1ヘッダ部HD1に配置する値は、監視制御データを互いに送受信する光トランシーバ100間で取り決められる。例えば、第1ヘッダ部HD1には、SONET/SDHのフレームのセクションオーバーヘッド(SOH)で使用される値F6h("h"は、手前の数値が16進数であることを示す)と28hとを用いて、F628hが配置されてもよい。この場合、第1ヘッダ部HD1のビット列は1111011000101000b("b"は、手前の数値が2進数であることを示す)となる。
【0046】
フレーム番号部FNには、第1フレームFRM1の送信毎に更新させるフレーム番号が格納される。例えば、フレーム番号は、第1フレームFRM1を送信する毎に"1"ずつ更新される(例えば、インクリメント)。なお、フレーム番号は、監視制御データを互いに送受信する光トランシーバ100間で取り決めた規則にしたがって更新される値であれば、順次に更新される値に限定されない。
【0047】
第1ペイロード部PL1には、光トランシーバ100で計測した内部の実装部品の温度、電源電圧、レーザーバイアス電流、光送信パワーおよび光受信パワーなどのモニタ値の少なくともいずれかを示す監視制御データがメッセージとして格納される。なお、第1ペイロード部PL1は、メッセージの格納部と、フレーム番号およびメッセージのチェックサムの格納部とを含んでもよい。この場合、例えば、メッセージは251バイトで、チェックサムは2バイトでもよい。なお、第1ペイロード部PL1に配置されるチェックサムは、メッセージのチェックサムでもよい。
【0048】
このように、第1フレームFRM1は、第1ヘッダ部HD1に加えて第1フレームFRM1の送信毎に更新されるフレーム番号部FNが配置される。後述するように、第1フレームFRM1のフレーム同期は、フレーム番号部FNに配置される値が特定の値と一致すること必要とされる。このため、第1ヘッダ部HD1の値の一致だけにより第1フレームFRM1を検出する場合に比べて、第1フレームFRM1の検出の精度を向上することができる。すなわち、第1フレームFRM1の誤検出を低減して、より効率良く監視制御データを送受信することができる。また、ヘッダとフレーム番号との組み合わせによるビット列がペイロード内の監視制御データのビット列の中に含まれる確率は、ヘッダのビット列のみが監視制御データのビット列の中に含まれる確率より低い。このため、監視制御データのビット列がフレーム検出のためのビット列と同じビット列を含んでいた場合に、ヘッダおよびフレーム番号として誤検出される可能性を低くすることができる。この結果、スクランブル処理を行わずに光信号に重畳された監視制御データを誤検出する確率を減らして受信することができる。
【0049】
例えば、第2フレームFRM2は、第2ヘッダ部HD2および第2ペイロード部PL2を有する。第2ペイロード部PL2は、第2情報格納部の一例である。特に限定されないが、例えば、第2ヘッダ部HD2の長さは、第1ヘッダ部HD1の長さと同じ2バイトであり、第2ペイロード部PL2の長さは、第1ペイロード部PL1の長さより小さい4バイトであり、第2フレームFRM2のフレーム長は、6バイトである。なお、第2フレームFRM2は、HTMCフレームでもよい。第2ヘッダ部HD2には、第2ペイロード部PL2に配置されるデータの種類を識別するコマンドが配置されてもよい。すなわち、第2ヘッダ部HD2には、互いに異なる複数の値が配置されてもよい。また、第2ヘッダ部HD2は、ヘッダの配置部とヘッダのチェックサムの配置部とを含んでもよい。この場合、例えば、ヘッダは11ビットで、チェックサムは5ビットでもよい。なお、ヘッダは、フレームの先頭を識別するために使用されるが、異なるフレームをそれぞれ識別するためにも使用される。従って、第1ヘッダ部HD1に設定される値は、第2ヘッダ部HD2に設定される値と異なっている。
【0050】
第2ペイロード部PL2には、例えば、自光トランシーバ100を識別する固有情報が配置されてもよい。また、第2ペイロード部PL2には、相手の光トランシーバ100に対する光信号の波長(または周波数)の変更指示または光出力パワーの変更指示等を示す監視制御データが配置されてもよい。第2ペイロード部PL2は、メッセージの格納部と、メッセージのチェックサムの格納部とを含んでもよい。この場合、例えば、メッセージは3バイトで、チェックサムは1バイトでもよい。
【0051】
この実施形態では、MCU10は、通信相手の光トランシーバ100に送信する監視制御データの種類またはデータ量に応じて、第1フレームFRM1または第2フレームFRM2を選択的に使用することができる。例えば、MCU10は、監視制御データのデータサイズが所定量より大きい場合、第1フレームFRM1を使用し、監視制御データのデータサイズが所定量より小さい場合、第2フレームFRM2を使用する。これにより、MCU10は、低速変調信号によって送信されるフレームのサイズを調節して監視制御データの送信効率を向上することができる。あるいは、MCU10は、監視制御データの構成や用途の違いに応じて第1フレームFRM1と第2フレームFRM2とを使い分けてもよい。これにより、光トランシーバ100は、2つの互いに異なる監視制御を組み合わせた、より高機能で高度な監視制御を行うことができる。
【0052】
〔RAMに割り当てられる記憶領域〕
図3は、
図1のRAM16に割り当てられる記憶領域の一例を示す説明図である。RAM16には、受信処理用の記憶領域として、受信バッファ部161、受信ヘッダ部162、第1監視制御データ保持部163、フレームエラーフラグ保持部164、フレーム番号保持部165および第2監視制御データ保持部166が割り当てられる。また、RAM16には、送信処理用の記憶領域として、第1送信バッファ部167および第2送信バッファ部168が割り当てられる。なお、
図3に示す各種記憶領域の少なくともいずれかは、光トランシーバ100に搭載され、MCU10によりアクセス可能なDRAM(Dynamic Random Access Memory)等の外部メモリに割り当てられてもよい。
【0053】
受信バッファ部161には、ローパスフィルタ40を介して受信するマンチェスタ符号から変換(復号)されたビット列がバイト列として順次格納される。受信ヘッダ部162は、第1ヘッダ部HD1および第2ヘッダ部HD2の長さと同じ2バイトの記憶領域を有し、受信バッファ部161に保持されたビット列のうち2バイトを保持する。なお、第1ヘッダ部HD1の長さと第2ヘッダ部HD2の長さが異なるとき、受信ヘッダ部162は、いずれか長い方のヘッダと同じ長さの記憶領域を有する。
【0054】
第1監視制御データ保持部163には、第1フレームFRM1の第1ペイロード部PL1に含まれる監視制御データが保持される。フレームエラーフラグ保持部164には、第1フレームFRM1の監視制御データの受信動作が成功したか否かを示す情報が保持される。フレーム番号保持部165には、第1フレームFRM1に含まれるフレーム番号が保持される。第2監視制御データ保持部166には、第2フレームFRM2の第2ペイロード部PL2に含まれる監視制御データが保持される。
【0055】
第1送信バッファ部167には、送信する第1フレームFRM1のデータが保持される。第2送信バッファ部168には、送信する第2フレームFRM2のデータが保持される。
【0056】
〔監視制御データを含むフレームの送信動作〕
図4は、
図1の光トランシーバ100による第1フレームFRM1または第2フレームFRM2の送信動作の一例を示すフロー図である。例えば、
図4に示す動作は、MCU10が内蔵ROMに格納された制御プログラムを実行することで実現される。すなわち、
図4は、光トランシーバ100の制御方法の一例および光トランシーバ100の制御プログラムの一例を示す。なお、
図4に示す動作は、MCU10に設けられるプログラマブルロジック部にプログラムされた論理回路により実現されてもよい。あるいは、
図4に示す動作は、MCUの代わりにCPLDまたはFPGAなどのロジックデバイスにより行われてもよい。
【0057】
図4に示す動作は、光トランシーバ100が相手の光トランシーバ100に監視制御データを送信する場合に開始される。なお、
図4に示す動作では、第2フレームFRM2の第2ヘッダ部HD2および第2ペイロード部PL2と、第1フレームFRM1の第1ペイロード部PL1にチェックサムがそれぞれ配置される。チェックサムが配置されない場合、以下で説明するステップS110、S112、S118、S120、S124、S126の処理は、省略される。なお、チェックサムを配置することによって、受信したフレームに誤りがあるかどうかを検出することができ、制御監視データの送受信の信頼性を向上することができる。
【0058】
まず、ステップS102において、MCU10は、送信する監視制御データの種類に応じて、第1フレームFRM1または第2フレームFRM2のいずれを使用して監視制御データを送信するかを決定する。第1フレームFRM1を使用する場合、処理はステップS104に移行され、第2フレームFRM2を使用する場合、処理はステップS116に移行される。
【0059】
ステップS104において、MCU10は、RAM16の第1送信バッファ部167に割り当てられる第1ヘッダ部HD1の領域にヘッダの値(例えば、F628h)を格納する。
【0060】
次に、ステップS106において、MCU10は、第1送信バッファ部167に割り当てられるフレーム番号部FNの領域に保持されているフレーム番号の値を"1"インクリメントする。RAM16において、フレーム番号の値は16進数で扱われる。なお、MCU10は、フレーム番号の長さが1バイトのとき、第1フレームFRM1の初回の送信前に、フレーム番号の値を例えば、"00h"に初期化する。
【0061】
次に、ステップS108において、MCU10は、第1送信バッファ部167に割り当てられる第1ペイロード部PL1の領域にメッセージ(監視制御データ)を格納する。次に、ステップS110において、MCU10は、メッセージのチェックサムを計算する。次に、ステップS112において、MCU10は、ステップS110で計算したチェックサムを第1送信バッファ部167に割り当てられる第1ペイロード部PL1の領域に格納する。
【0062】
次に、ステップS114において、MCU10は、第1送信バッファ部167に生成した第1フレームFRM1に含まれるデータからビット列を生成し、ビット列をマンチェスタ符号に符号化してバイアス供給部30に出力する。バイアス供給部30は、マンチェスタ符号に応じて振幅変調されたバイアス電流をTOSA50に供給する。TOSA50は、マンチェスタ符号に応じて振幅変調されたバイアス電流を用いてトランシーバIC20から受信するNRZ信号等の送信信号を光送信信号に変換する。これにより、光送信信号にマンチェスタ符号に変換された監視制御データを含む低速変調信号が重畳される。TOSA50は、低速変調信号が重畳された光送信信号を受信側の光トランシーバ100と接続された光ケーブルに出力する。そして、第1フレームFRM1の送信動作が終了する。なお、複数の第1フレームFRM1を続けて送信する場合には、ステップS104からS114を繰り返し行う。
【0063】
なお、第1フレームFRM1および第2フレームFRM2の生成タイミングが互いに重複しない場合、第1フレームFRM1および第2フレームFRM2は、RAM16に割り当てられる共通のフレームバッファを使用して生成されてもよい。この場合、共通のフレームバッファの大きさは、例えば、第2フレームFRM2の長さより長い第1フレームFRM1のデータを格納できるように設定される。
【0064】
一方、第2フレームFRM2を送信する場合、ステップS116において、MCU10は、例えば、第2送信バッファ部168に割り当てられる第2ヘッダ部HD2の領域にヘッダの値を格納する。なお、例えば、第2フレームFRM2としてHTMCフレームが使用される場合、ヘッダの値は、複数のTOM(Type of Message)の値とTOMのチェックサムの値に応じてフレームの送信毎に設定される。したがって、ヘッダの値は、送信毎に異なる値が設定され得る。また、上述したように、第1フレームFRM1の第1ヘッダ部HD1に設定される値は、第2ヘッダ部HD2に設定され得るいかなる値とも異なっている。次に、ステップS118において、MCU10は、ヘッダのチェックサムを計算する。次に、ステップS120において、MCU10は、ステップS118で計算したチェックサムを第2送信バッファ部168に割り当てられる第2ヘッダ部HD2の領域に格納する。
【0065】
次に、ステップS122において、MCU10は、第2送信バッファ部168に割り当てられる第2ペイロード部PL2の領域にメッセージ(監視制御データ)を格納する。次に、ステップS124において、MCU10は、メッセージのチェックサムを計算する。次に、ステップS126において、MCU10は、ステップS124で計算したチェックサムを第2送信バッファ部168に割り当てられる第2ペイロード部PL2の領域に格納する。そして、第2送信バッファ部168に第2フレームFRM2のデータが生成される。
【0066】
次に、ステップS128において、MCU10は、第2送信バッファ部168に生成した第2フレームFRM2に含まれるデータからビット列を生成し、ビット列をマンチェスタ符号に符号化してバイアス供給部30に出力する。光トランシーバ100は、ステップS114で説明した第1フレームFRM1の送信処理と同様に、第2フレームFRM2の情報を含む低速変調信号が重畳された光送信信号を受信側の光トランシーバ100に出力する。そして、第2フレームFRM2の送信動作が終了する。なお、複数の第2フレームFRM2を続けて送信する場合には、ステップS116からS128を繰り返し行う。
【0067】
〔監視制御データを含むフレームの受信動作〕
図5および
図6は、
図1の光トランシーバ100による第1フレームFRM1または第2フレームFRM2の受信動作の一例を示すフロー図である。例えば、
図5および
図6に示す動作は、
図4と同様に、MCU10が内蔵ROMに格納された制御プログラムを実行することで実現される。すなわち、
図5および
図6は、光トランシーバ100の制御方法の一例および光トランシーバ100の制御プログラムの一例を示す。なお、
図5および
図6に示す動作は、MCU10に設けられるプログラマブルロジック部にプログラムされた論理回路により実現されてもよい。あるいは、
図5および
図6に示す動作は、MCUの代わりにCPLDまたはFPGAなどのロジックデバイスにより行われてもよい。
【0068】
図5および
図6に示す動作は、光トランシーバ100の電源が投入され、光信号の受信動作が開始された場合に開始される。例えば、光トランシーバ100が、プラガブル光トランシーバの場合、光伝送装置のケージに装着されると光伝送装置から光トランシーバ100に電力が供給され、光トランシーバ100の電源が投入される。なお、送信元の光トランシーバ100から受信した第1フレームFRM1および第2フレームFRM2のデータは、いずれかのフレームとフレーム同期が行われる前にRAM16に割り当てられる受信バッファ部161に順次保持される。
【0069】
まず、ステップS202において、MCU10は、フレームエラーフラグ保持部164のフレームエラーフラグの値を初期値の"1"に設定する。次に、ステップS204において、MCU10は、ローパスフィルタ40により抽出されたマンチェスタ符号を復号してビット列を生成する。MCU10は、生成したビット列を先頭のビットから8ビットずつ1バイトのデータに変換して、生成した1バイトのデータを生成した順に受信バッファ部161に先頭から順次格納する。これにより、受信バッファ部161にバイト列が生成される。受信バッファ部161に保持されたバイト列のうち、未取得で受信順の早い2バイトを受信ヘッダ部162に転送する。すなわち、MCU10は、受信バッファ部161に保持されたバイト列から第1ヘッダ部HD1と同じ長さの第1バイト列(2バイト)を生成する。
【0070】
第1ヘッダ部HD1および第2ヘッダ部HD2が互いに同じサイズに設定されるため、MCU10は、受信バッファ部161から受信ヘッダ部162に2バイトを転送することで、第1フレームFRM1および第2フレームFRM2の検出処理を開始できる。すなわち、フレームのヘッダの検出処理の一部を共通化することができ、フレーム同期の処理を簡易にすることができる。
【0071】
次に、ステップS206において、MCU10は、受信ヘッダ部162に保持された2バイトを取り出し、第1バイト列を生成する。MCU10は、生成した第1バイト列の値が第1フレームFRM1の第1ヘッダ部HD1のヘッダに設定された固有の値と一致するか否かを判定する。これは、例えば、ビット列においてヘッダの同期パターン(例えば、上述の1111011000101000b)との一致を判定するのに相当する。MCU10は、第1バイト列の値が第1ヘッダ部HD1のヘッダの値と一致する場合、受信したフレームが第1フレームFRM1の可能性があるため、処理を
図6のステップS218に移行する。MCU10は、第1バイト列の値が第1ヘッダ部HD1のヘッダの値と一致しない場合、受信したフレームが第1フレームFRM1でないため、処理をステップS208に移行する。
【0072】
MCU10は、ステップS206により、第1バイト列が第1ヘッダ部HD1の可能性があると判定した場合、第2ヘッダ部HD2の検出処理より先に第2ヘッダ部HD2の検出処理を含まない
図6のステップS218以降の処理を実施する。このため、MCU10は、第1フレームFRM1の第1ペイロード部PL1に格納されたデータのビット列に第2ヘッダ部HD2のビット列(第2フレームFRM2の同期パターン)と同じビット列が含まれる場合にも、第2ヘッダ部HD2を誤検出することを低減できる。
【0073】
ステップS208において、MCU10は、受信ヘッダ部162に保持された2バイトを取り出し、第2バイト列を生成する。このとき、第2バイト列の値は、第1バイト列の値と等しい。MCU10は、生成した第2バイト列の値が第2フレームFRM2の第2ヘッダ部HD2のヘッダの値と一致するか否かをチェックサムとともに判定する。なお、第2ヘッダ部HD2のヘッダの値がHTMCフレームのように複数の異なる値を取り得る場合、MCU10は、第2ヘッダ部HD2のヘッダの値がそれらの複数の異なる値のいずれかと一致するか否かを判定する。MCU10は、第2バイト列の値が第2ヘッダ部HD2のヘッダの値と一致し、かつ、チェックサムが正しい場合、受信したフレームが第2フレームFRM2の可能性があるため、処理をステップS212に移行する。これは、例えば、ビット列においてヘッダの同期パターン(例えば、HTMCフレームの場合は、TOMの11ビットおよびTOMのチェックサム5ビットから成る16ビットのパターン)との一致を判定するのに相当する。MCU10は、第2バイト列の値が第2ヘッダ部HD2のヘッダの値と一致しない場合、または、チェックサムが正しくない場合、第1フレームFRM1または第2フレームFRM2のヘッダの検出を継続するために、処理をステップS210に移行する。
【0074】
MCU10は、ステップS208により、第2バイト列が第2ヘッダ部HD2の可能性があると判定した場合、第1ヘッダ部HD1の検出処理を含まないステップS212以降の処理を実施する。このため、MCU10は、第2フレームFRM2の第2ペイロード部PL2に格納されたデータのビット列に第1ヘッダ部HD1のビット列(第1フレームFRM1の同期パターン)と同じビット列が含まれる場合にも、第1ヘッダ部HD1を誤検出することを低減できる。
【0075】
ステップS210において、MCU10は、受信バッファ部161に保持されたデータのうち、先に受信ヘッダ部162に転送した2バイトのデータを先頭のビットを1ビット後ろにずらすようにシフトして新しい2バイトを生成し、新しく生成した2バイトを受信ヘッダ部162に転送し、処理をステップS206に戻す。なお、先頭のビットを1ビット後ろにずらすときに、新しい2バイトの末尾の1ビットは先に転送した2バイトの次の1バイトの先頭のビットを用いるようにする。あるいは、新しい2バイトは、先に転送した2バイトにその次の1バイトを加えて先頭のビットを1ビットずらすようにシフトして、シフトされた先頭のビットから8ビットずつ1バイトに変換して生成される。すなわち、MCU10は、受信ヘッダ部162のデータを1ビットシフトし、最古の1ビットを受信ヘッダ部162から追い出し、末尾の1ビットを受信バッファ部161の未取得で受信順が早いバイトから加える。そして、MCU10は、受信ヘッダ部162に付加された新たな1ビットを含む新しい2バイトを使用して、ステップS206の処理を実施する。
【0076】
ステップS206、S208、およびS210は、例えば、受信したビット列をシフトレジスタに格納し、先頭ビットを追い出すように1ビットシフトをした後にシフトレジスタの先頭の2バイトがフレームの同期パターンに一致するかどうかを検索していく操作に相当する。なお、ステップS210において先頭のビットを1ビットずらしたとき、先頭ビットをずらした後のバイト列の値は、先頭ビットをずらす前のバイト列と値とは異なった値となる。したがって、受信バッファ部161に保持されたデータは、ビット列の先頭ビットのシフトに応じて更新されるか、メッセージとしてデータが取り出される際にシフト演算等によって更新されてから監視データ保持部に格納される。
【0077】
このように、MCU10は、受信ヘッダ部162に保持された2バイトのデータが、第1ヘッダ部HD1および第2ヘッダ部HD2のデータの何れでもない場合、マンチェスタ符号を復号して得られたビット列の先頭のビットを1ビット後ろ(受信が遅い方に)にずらして、シフトされた先頭のビットに基づいてバイト列を生成する処理を実施する。これにより、MCU10は、受信ヘッダ部162に保持されたバイト列から第1ヘッダ部HD1または第2ヘッダ部HD2を確実に検出することができる。そして、MCU10は、第1ヘッダ部HD1の検出に基づいて第1フレームFRM1を取得することができ、第2ヘッダ部HD2の検出に基づいて第2フレームFRM2を検出することができる。すなわち、光トランシーバ100は、低速変調信号によって送信された第1フレームFRM1および第2フレームFRM2にフレーム同期することができる。
【0078】
ステップS212において、MCU10は、受信バッファ部161に保持されたデータのうち、未取得で受信順が早い4バイトを第2フレームFRM2の第2ペイロード部PL2のメッセージおよびチェックサムとして取得する。すなわち、MCU10は、第2バイト列に続くバイト列を取得する。なお、ここでは、受信バッファ部161に保持されたデータは、受信ヘッダ部162の値が第2ヘッダ部HD2の値(同期パターン)に一致してステップS212に来たときのビット列の先頭から8ビットずつ1バイトのデータに変換された値が保持されていると想定している。次に、ステップS214において、MCU10は、取得したメッセージのチェックサムを計算し、受信バッファ部161から取得したチェックサムと一致するか否かを判定する。例えば、第2フレームFRM2がHTMCフレームの場合、第2ペイロード部の4バイトうち、先頭の3バイトがメッセージに相当するので、先頭の3バイトについてチェックサムを計算し、4バイト目のチェックサムの値と比較する。
【0079】
MCU10は、チェックサムが一致する場合、第2フレームFRM2を検出したため、処理をステップS216に移行する。MCU10は、チェックサムが一致しない場合、第1フレームFRM1および第2フレームFRM2のいずれも検出できなかったため、次の2バイトを受信バッファ部161から取得するため、処理をステップS204に戻す。
【0080】
ステップS216において、MCU10は、第2フレームFRM2の第2ペイロード部PL2に格納されたメッセージを取り出し、第2監視制御データ保持部166に格納する。例えば、第2監視制御データ保持部166に格納されたメッセージ(監視制御データ)は、その後、MCU10によりI2Cバスを介してコンピュータ装置に送信される。あるいは、監視制御のためにRAM16内に設けられた領域に格納される。なお、第2監視制御データ保持部166は、新しく受信した第2フレームFRM2から取り出されたメッセージによって上書きされる。この後、MCU10は、次の第1フレームFRM1または第2フレームFRM2を検出するため、処理をステップS204に戻す。
【0081】
図6のステップ218において、MCU10は、受信バッファ部161に保持されたデータのうち、未取得で受信順が早い1バイトを第1フレームFRM1のフレーム番号部FNとして取得し、ステップS220の処理に移行する。すなわち、MCU10は、第1バイト列に続く1バイトのバイト列を取得する。なお、ここでは、受信バッファ部161に保持されたデータは、受信ヘッダ部162の値が第1ヘッダ部HD1の値(同期パターン)に一致してステップS212に来たときのビット列の先頭から8ビットずつ1バイトのデータに変換された値が保持されていると想定している。正しく第1フレームFRM1のデータを受信している場合、ステップS218で取得した1バイトのデータは、例えば、フレーム番号保持部165に保持されているフレーム番号の値に"1"を加えた値であることが期待される。
【0082】
したがって、ステップS220において、MCU10は、ステップS218で取得した1バイトのデータが、フレーム番号保持部165に保持されているフレーム番号の値に"1"を加えた値、すなわち、期待値と一致するか否かを判定する。MCU10は、ステップS218で取得した1バイトのデータが期待値と一致する場合、ステップS226を実行し、1バイトのデータが期待値と一致しない場合、ステップS222を実行する。
【0083】
ステップS222において、MCU10は、フレームエラーフラグ保持部164に保持されているフレームエラーフラグが"1"か否かを判定する。フレームエラーフラグの"1"は、前回の監視制御データの受信動作が失敗していること、または、前回の受信動作が存在しないこと(すなわち、初回の受信動作)を示す。フレームエラーフラグの"0"は、前回の監視制御データの受信動作が成功していることを示す。
【0084】
MCU10は、フレームエラーフラグが"1"の場合、処理をステップS226に移行し、フレームエラーフラグが"1"でない場合、処理をステップS224に移行する。ステップS224において、MCU10は、ステップS220において、ステップS218で取得した1バイトのデータと期待値との不一致により、監視制御データの受信動作が失敗したと判定し、フレームエラーフラグ保持部に"1"を設定する。そして、MCU10は、次の2バイトを取得するために、処理を
図5のステップS204に移行する。このように、MCU10は、前回の受信したときのフレーム番号に続くフレーム番号を検出できない場合、フレーム同期していないと判定して次の受信動作を迅速に開始することができ、監視制御データの検出頻度を高くすることができる。
【0085】
ステップS226において、MCU10は、受信バッファ部161に保持されたデータのうち、未取得で受信順が早い253バイトを第1フレームFRM1の第1ペイロード部PL1のメッセージおよびチェックサムとして取得する。次に、ステップS228において、MCU10は、ステップS218で取得したフレーム番号とステップS226で取得した第1ペイロード部PL1のメッセージとのチェックサムを計算する。そして、MCU10は、計算により得たチェックサムの値が受信バッファ部161から取得したチェックサムの値と一致するか否かを判定する。なお、チェックサムとしては、フレーム番号を除いて第1ペイロード部PL1のメッセージについて計算した値を使用してもよい。
【0086】
MCU10は、チェックサムが一致する場合、第1フレームFRM1を検出したため、処理をステップS230に移行する。MCU10は、チェックサムが一致しない場合、第1フレームFRM1を検出しないため、処理をステップS236に移行する。すなわち、MCU10は、ステップS228によるチェックサムの一致または不一致に応じて、取得した第1ペイロード部PL1のメッセージをRAM16の第1監視制御データ保持部163に格納するか否かを決定する。このように、第1フレームFRM1について、第1ヘッダHD1の値、フレーム番号の値、およびチェックサムの値のいずれもがそれぞれ所定の値に一致することでフレームの同期を行う。このように、取得した第1ペイロード部PL1のデータを、チェックサムを用いて監視制御データか否か判定することにより、監視制御データの検出の精度を向上することができ、監視制御データを誤検出する確率を下げることができる。
【0087】
ステップS230において、MCU10は、第1フレームFRM1の第1ペイロード部PL1に格納されたメッセージを取り出し、第1監視制御データ保持部163に格納する。第1監視制御データ保持部163に格納されたメッセージ(監視制御データ)は、その後、MCU10によりI2Cバスを介してコンピュータ装置に送信される。あるいは、監視制御のためにRAM16内に設けられた領域に格納される。なお、第1監視制御データ保持部163は、新しく受信した第1フレームFRM1から取り出されたメッセージによって上書きされる。
【0088】
次に、ステップS232において、MCU10は、第1フレームFRM1のフレーム番号部FNに格納されたフレーム番号を取り出し、フレーム番号保持部165に格納することで、フレーム番号保持部165に保持されるフレーム番号を更新する。すなわち、MCU10は、次の受信動作で使用するフレーム番号であるフレーム番号保持部165に保持されるフレーム番号をステップS218で取得した1バイトのデータに書き換える。なお、フレーム番号保持部165を書き換える際に、ステップS218で取得した1バイトの値に予め"1"を加えて次のフレーム番号の期待値としてとしておき、ステップS220で新しく取得したフレーム番号の値がフレーム番号保持部165に保持された期待値と一致するか否かを判定するように変更してもよい。
【0089】
次に、ステップS234において、MCU10は、監視制御データの受信動作が成功したため、フレームエラーフラグ保持部164を"0"に設定し、次の2バイトを取得するために、処理を
図5のステップS204に移行する。
【0090】
ステップS236において、MCU10は、ステップS226で取得した第1ペイロード部PL1のデータを破棄する。次に、ステップS238において、MCU10は、監視制御データの受信動作が失敗したため、フレームエラーフラグ保持部164を"1"に設定し、次の2バイトを取得するために、ステップS204を実行する。
【0091】
〔監視制御データを含むフレームの送受信動作〕
図7は、
図1の光トランシーバ100間での監視制御データを含む第1フレームFRM1の送受信動作の一例を示す説明図である。実際には、光トランシーバ100は、マンチェスタ符号化した監視制御データを含む第1フレームFRM1を送受信するが、ここでは、説明を分かりやすくするため、マンチェスタ符号化される前、および、マンチェスタ符号を復号した後の値を示す。
図7に示す数値は、10進数で示される。例えば、
図7に示す動作は、MCU10が、制御プログラムを実行することで実現される。なお、
図7では、説明を分かりやすくするため、第2フレームFRM2が介在することなく第1フレームFRM1のみが連続して送受信される例が示される。
【0092】
フレームを送信する光トランシーバ100のMCU10は、
図4のステップS104からステップS114で説明した動作にしたがって、フレーム番号の値を更新しながら、監視制御データを含む第1フレームFRM1を受信側の光トランシーバ100に順次送信する。
図7では、送信側の光トランシーバ100が送信するフレーム番号のみが示される。受信側の光トランシーバ100のMCU10は、
図5および
図6のステップS204、S206、およびS218からステップS238で説明した動作を実行することで、監視制御データを含む第1フレームFRM1を順次受信する。
【0093】
図7では、9個の第1フレームFRM1の受信動作OP(OP1-OP9)が示される。なお、受信側の光トランシーバ100のRAM16のフレーム番号保持部165およびフレームエラーフラグ保持部164には、初期状態で"255"のフレーム番号と"1"のフレームエラーフラグとが保持されている。以下では、受信側の光トランシーバ100のMCU10の動作が説明される。なお、以下では、
図3に示される受信バッファ部161には、受信ヘッダ部162の値が第1ヘッダ部HD1の値(同期パターン)に一致したときのビット列の先頭から8ビットずつ1バイトのデータに変換された値が保持されているとして説明する。
【0094】
まず、受信動作OP1において、MCU10は、受信したバイト列の先頭の2バイト(すなわち、受信ヘッダ部162)の値が、第1ヘッダ部HD1の固有の値(例えば、F628h)と一致するまで、受信バッファ部161からデータを取得する。受信ヘッダ部162の値が第1ヘッダ部HD1の固有の値(同期パターン)と一致する(これを以降、同期パターンの検出という)場合、MCU10は、次の1バイトをフレーム番号として取得する。なお、ここでは、ビット列の先頭のビットが1ビット後ろにシフトされたとき、受信バッファ部161に保持されるバイト列は新しい先頭のビットから8ビットずつ1バイトのデータに変換された値に更新されているとする。
【0095】
MCU10は、取得したフレーム番号(="1")がRAM16に保持されているフレーム番号(="255")+1である"0"でないため、フレーム番号の不一致を判定する。なお、フレーム番号は、1バイトの値であるため、例えば、FFhに1hを加えると0hとなり、繰り上がりは無視される。一方、フレームエラーフラグが"1"であることから、MCU10は、
図2の第1フレームFRM1のフォーマットにしたがって、受信バッファ部161から、第1ペイロード部PL1としてフレーム番号として取得したバイトの次の253バイトのバイト列を取得する。"ペイロード取得"の欄に示す丸印は、ペイロードの取得動作の実行を示す。
【0096】
このように、初回の受信動作時には、フレーム番号(更新データ)の初期値として正しくない値等がフレーム番号保持部165に保持されている場合がある。この場合にも、MCU10は、フレームエラーフラグが"1"の場合には、受信バッファ部161から第1ペイロード部PL1として所定の長さのバイト列を取得する。
【0097】
これにより、受信バッファ部161から取得したフレーム番号の値と、フレーム番号保持部165に保持されているフレーム番号(更新データ)から計算される期待値との不一致が繰り返され、第1ペイロード部PL1に格納されたメッセージが取得できなくなることを防止することができる。この結果、例えば、第1フレームFRM1の正しいフレーム番号を受信しているにもかかわらず受信動作が連続して失敗することを防止することができ、フレーム番号の受信頻度を高くすることができる。
【0098】
MCU10は、取得したフレーム番号の値と第1ペイロード部PL1のメッセージとして取得したバイト列の値とからチェックサムを計算し、第1ペイロード部PL1のチェックサムとして取得したバイト列の値と比較する。チェックサムが一致するとき、MCU10は、取得した第1ペイロード部PL1のメッセージ(監視制御データ)をRAM16の第1監視制御データ保持部163に格納する。
【0099】
"データ格納"の欄に示す丸印は、チェックサムが一致するため、取得した第1ペイロード部PL1のメッセージが第1監視制御データ保持部163へ格納されることを示す。MCU10は、受信したフレーム番号の値(="1")をフレーム番号保持部165に格納し、監視制御データの受信動作の成功を示す"0"をフレームエラーフラグ保持部164に格納し、受信動作OP1を終了する。
【0100】
受信動作OP2において、MCU10は、第1ヘッダ部HD1の同期パターンの検出に続いて取得したフレーム番号(="2")がフレーム番号保持部165に保持されているフレーム番号(="1")+1であるため、フレーム番号の一致を判定する。MCU10は、受信バッファ部161から第1ペイロード部PL1としてフレーム番号を取得したバイトの次から所定の長さのバイト列を取得する。MCU10は、一致を確認したフレーム番号の値と第1ペイロード部PL1のメッセージとして取得したバイト列の値とからチェックサムを計算する。
【0101】
計算したチェックサムと受信したチェックサムとが一致するため、MCU10は、取得した第1ペイロード部PL1のメッセージとして取得したバイト列を第1監視制御データ保持部163に格納する。MCU10は、フレーム番号保持部165に、受信したフレーム番号の値(="2")を格納し、フレームエラーフラグ保持部164に、監視制御データの受信動作の成功を示す"0"を格納し、受信動作OP2を終了する。受信動作OP3は、受信動作OP2と同様に実行される。
【0102】
受信動作OP4では、送信側の光トランシーバ100が送信した"4"のフレーム番号が、例えば、光信号を伝送する光ケーブルの通信品質の低下等(ノイズ等の影響による)により、"12"として送信側の光トランシーバ100に伝送される。
【0103】
MCU10は、受信したフレーム番号(="12")がフレーム番号保持部165に保持されているフレーム番号の値(="3")+1である"4"でないため、フレーム番号の不一致を判定する。フレームエラーフラグ保持部164に保持されているフレームエラーフラグが"0"であるため、MCU10は、フレームエラーフラグ保持部164に保持されている"0"を、受信動作の失敗を示す"1"に書き換える。この場合、MCU10は、フレーム番号保持部165に、取得したフレーム番号の値(="12")を格納せずに受信動作OP4を終了する。
【0104】
受信動作OP5において、前回の受信動作OP4が失敗したため、フレーム番号保持部165に保持されているフレーム番号は更新されていない。このため、送信側の光トランシーバ100が出力する更新されたフレーム番号の値と、フレーム番号保持部165に保持されているフレーム番号の値とがずれてしまう。
【0105】
MCU10は、第1ヘッダ部HD1の同期パターンの検出に続いて取得したフレーム番号(="5")がフレーム番号保持部165に保持されているフレーム番号の値(="3")+1である"4"でないため、フレーム番号の不一致を判定する。しかしながら、受信動作OP1と同様に、フレームエラーフラグが"1"であるため、MCU10は、フレーム番号を検出した可能性があるものとして、受信バッファ部161から第1ペイロード部PL1としてフレーム番号を取得したバイトの次から所定の長さのバイト列を取得する。そして、MCU10は、取得したフレーム番号の値と第1ペイロード部PL1のメッセージとして取得したバイト列の値とからチェックサムを計算する。
【0106】
この例では、計算により得たチェックサムと、受信したチェックサムとが一致するため、MCU10は、第1ペイロード部PL1のメッセージとして取得したバイト列を第1監視制御データ保持部163に格納する。また、MCU10は、受信したフレーム番号(="5")をフレーム番号保持部165に格納し、監視制御データの受信動作の成功を示す"0"をフレームエラーフラグ保持部164に格納し、受信動作OP5を終了する。
【0107】
このように、正しい監視制御データを受信できているにもかかわらず、受信した監視制御データを取得できずに、受信動作OP5を終了してしまう無駄を防止することができる。さらに、送信側の光トランシーバ100で順次更新されるフレーム番号と、フレーム番号保持部165に保持されているフレーム番号から計算される期待値との不一致が繰り返されることを防止することができる。この結果、正しいフレーム番号を受信しているにもかかわらず受信動作が連続して失敗することを防止することができる。この結果、フレーム番号の受信頻度を高くすることができる。
【0108】
受信動作OP6は、受信動作OP2と同様に実行される。受信動作OP7において、MCU10は、第1ヘッダ部HD1の同期パターンの検出に続いて取得したフレーム番号の値(="7")がフレーム番号保持部165に保持されているフレーム番号の値(="6")+1であるため、フレーム番号の一致を判定する。MCU10は、受信バッファ部161から第1ペイロード部PL1としてフレーム番号を取得したバイトの次から所定の長さのバイト列を取得し、取得したフレーム番号の値と第1ペイロード部PL1のメッセージとして取得したバイト列の値とからチェックサムを計算する。
【0109】
受信動作OP7では、計算したチェックサムと受信したチェックサムとが一致しないため、MCU10は、第1ペイロード部PL1のメッセージとして取得したバイト列を破棄する(すなわち、第1監視制御データ保持部163には格納しない)。MCU10は、フレーム番号保持部165が保持しているフレーム番号を更新せず、監視制御データの受信動作の失敗を示す"1"をフレームエラーフラグ保持部164に格納し、受信動作OP7を終了する。
【0110】
受信動作OP8において、MCU10は、第1ヘッダ部HD1同期パターンの検出に続いて取得したフレーム番号の値(="8")がフレーム番号保持部165に保持されているフレーム番号の値(="6")+1である"7"でないため、フレーム番号の不一致を判定する。この後、受信動作OP8は、受信動作OP1と同様に実行され、フレーム番号保持部165に"8"が格納され、監視制御データの受信動作の成功を示す"0"がフレームエラーフラグ保持部164に格納される。受信動作OP9は、受信動作OP2と同様に実行される。
【0111】
なお、
図7に示す例では、MCU10は、第1ヘッダ部HD1の同期パターンの検出に続いて取得したフレーム番号をフレーム番号保持部165に格納し、次の受信動作で第1ヘッダ部HD1の同期パターンの検出に続いて取得したフレーム番号を、フレーム番号保持部165に保持されているフレーム番号を"1"インクリメントした値と比較する。しかしながら、MCU10は、受信動作で取得したフレーム番号を"1"インクリメントした値を予め期待値としてフレーム番号保持部165に格納してもよい。この場合、MCU10は、次の受信動作で取得したフレーム番号を、フレーム番号保持部165に保持されているフレーム番号と比較する。
【0112】
以上、本実施形態では、光トランシーバ100は、フォーマット(フレーム構造)が互いに異なる第1フレームFRM1および第2フレームFRM2を含む低速変調信号が重畳された光信号を送受信する。MCU10は、光信号に重畳して送受信される低速変調信号から生成されるビット列に第1ヘッダ部HD1または第2ヘッダ部HD2の同期パターンが含まれるか否かを順次検出する。これにより、光トランシーバ100は、第1フレームFRM1および第2フレームFRM2の誤検知を低減することができ、光トランシーバ100の誤動作を低減することができる。この結果、光トランシーバ100の信頼性を向上することができ、光トランシーバ100が搭載される通信システムの信頼性を向上することができる。
【0113】
MCU10は、フレーム同期による監視制御データの受信動作において、受信ヘッダ部162に保持された2バイトの値が、第1ヘッダ部HD1および第2ヘッダ部HD2の値の何れでもない場合、低速変調信号から生成したビット列におけるバイト列の生成開始位置(先頭ビット)を1ビットずつ後ろにずらす処理を実行する。これにより、MCU10は、受信ヘッダ部162に保持された値から第1ヘッダ部HD1または第2ヘッダ部HD2を確実に検出することができる。そして、MCU10は、第1ヘッダ部HD1の検出に基づいて第1フレームFRM1を確実に取得することができ、第2ヘッダ部HD2の検出に基づいて第2フレームFRM2を確実に検出することができる。
【0114】
第1ヘッダ部HD1および第2ヘッダ部HD2は、互いに同じ長さ(サイズ)に設定される。このため、MCU10は、受信バッファ部161から受信ヘッダ部162にビット列の先頭ビットから生成された先頭2バイトを転送することで、第1フレームFRM1および第2フレームFRM2の検出処理を開始できる。すなわち、ヘッダ部の長さが互いに異なるフレームを検出する場合に比べて、フレームの検出処理の一部を共通化することができ、フレームの検出処理を簡易にすることができる。
【0115】
MCU10は、通信相手の光トランシーバ100に送信する監視制御データの種類またはデータ量に応じて、第1フレームFRM1または第2フレームFRM2を選択的に使用することができる。例えば、MCU10は、監視制御データのデータサイズが大きい場合には、第1フレームFRM1を使用し、監視制御データのデータサイズが小さい場合には、第2フレームFRM2を使用する。これにより、MCU10は、光送信信号に重畳させる監視制御データを含むビット列のサイズを最小限にすることができる。また、MCU10は、監視制御データの構成や用途の違いに応じて第1フレームFRM1と第2フレームFRM2とを使い分けてもよい。これにより、光トランシーバ100は、2つの互いに異なる監視制御を組み合わせた、より高機能で高度な監視制御を行うことができる。
【0116】
以上、本開示の実施形態などについて説明したが、本開示は上記実施形態などに限定されない。特許請求の範囲に記載された範囲内において、各種の変更、修正、置換、付加、削除、および組み合わせが可能である。それらについても当然に本開示の技術的範囲に属する。
【符号の説明】
【0117】
10 MCU
12 通信インタフェース
14 DMAC
16 RAM
20 トランシーバIC
30 バイアス供給部
40 ローパスフィルタ
50 TOSA
60 ROSA
100 光トランシーバ
161 受信バッファ部
162 受信ヘッダ部
163 第1監視制御データ保持部
164 フレームエラーフラグ保持部
165 フレーム番号保持部
166 第2監視制御データ保持部
167 第1送信バッファ部
168 第2送信バッファ部
FN フレーム番号部
FRM1 第1フレーム
FRM2 第2フレーム
HD1 第1ヘッダ部
HD2 第2ヘッダ部
PL1 第1ペイロード部
PL2 第2ペイロード部