(57)【要約】      （修正有）【課題】内部メモリへのダウンロードデータの書き込みを効率化する。【解決手段】光トランシーバ１Ａのダウンロードデータの書き込みにおいて、ダウンロードデータを格納するための内部メモリ１１と、ダウンロードデータの含む情報を参照あるいは実行して光信号Ｏｏｕｔ及び電気信号ＲＸを出力するための制御を実行するＣＰＵ９と、外部装置とＣＰＵ９とを接続するための通信線Ｌ１とを含む光トランシーバ１Ａを用意する。予めダウンロードデータを格納する外部メモリ５７が、通信線Ｌ１を介して光トランシーバ１Ａと接続され、ＣＰＵ９は、通信線Ｌ１を介して外部メモリ５７を検出した場合には、外部メモリ５７からダウンロードデータを通信線Ｌ１を介して能動的に受信し、受信したダウンロードデータを内部通信バスＬ６を介して内部メモリ１１に能動的に書き込む。【選択図】図３
2018026748.tif 000002
【特許請求の範囲】
【請求項１】
電気信号及び光信号の相互変換によって送受信を行う光トランシーバであって、
外部の装置から提供されるダウンロードデータを格納する内部メモリと、
前記ダウンロードデータに基づいて前記相互変換を制御する演算装置と、
前記演算装置が前記外部の装置と第１のシリアル通信を行うための第１のシリアル通信部と、
を備え、
前記演算装置は、前記ダウンロードデータを格納する外部メモリが前記外部の装置として前記第１のシリアル通信部に接続されたとき、前記第１のシリアル通信のマスターとして前記第１のシリアル通信を行うことによって前記外部メモリから前記ダウンロードデータを読み出し、前記外部メモリから読み出した前記ダウンロードデータを前記内部メモリに書き込む、
光トランシーバ。
【請求項２】
前記演算装置が前記内部メモリと第２のシリアル通信を行うための第２のシリアル通信部をさらに備え、
前記演算装置は、前記外部メモリから読み出した前記ダウンロードデータを前記第１のシリアル通信と並行して前記第２のシリアル通信のマスターとして前記第２のシリアル通信を行うことによって前記内部メモリに書き込む、
請求項１記載の光トランシーバ。
【請求項３】
前記相互変換のための信号処理を行う集積回路をさらに備え、
前記ダウンロードデータは、前記集積回路が前記信号処理を行うための設定データを含み、
前記演算装置は、前記外部メモリから読み出した前記ダウンロードデータに含まれる前記設定データを前記第２のシリアル通信部を介して前記内部メモリに書き込み、
前記集積回路は、前記第２のシリアル通信部を介して前記内部メモリから前記設定データを読み込む、
請求項２記載の光トランシーバ。
【請求項４】
前記内部メモリは、前記演算装置に内蔵された装置であり、
前記ダウンロードデータは、前記演算装置によって実行可能なプログラムを含み、
前記プログラムは前記演算装置に内蔵された前記内部メモリに書き込まれる、
請求項１記載の光トランシーバ。
【請求項５】
前記プログラムは、前記演算装置を制御するための第１のプログラムと、前記相互変換を制御するための第２のプログラムと、を有し、
前記内部メモリは、前記第１のプログラムを格納する第１のメモリバンクと、前記第２のプログラムを格納する第２のメモリバンクと、を備え、
前記外部メモリは、前記第２のプログラムを格納し、
前記演算装置は、前記第１のプログラムを実行することによって、前記外部メモリから前記第１のシリアル通信部を介して前記第２のプログラムを読み出し、前記外部メモリから読み出した前記第２のプログラムを前記第２のメモリバンクに書き込む、
請求項４記載の光トランシーバ。
【請求項６】
前記内部メモリ及び前記演算装置に所定の閾値電圧よりも高い第１の電源電圧を供給する第１の電源線と、
前記相互変換を行う回路部に第１の電源電圧と別の第２の電源電圧を供給する第２の電源線と、
をさらに備え、
前記演算装置は、前記第１の電源線から前記第１の電源電圧の供給を受けて動作するとともに、前記第２の電源電圧が前記所定の閾値電圧よりも低いことを検出したとき、前記外部メモリからの前記ダウンロードデータの読み出しを開始する、
請求項１〜５のいずれか１項に記載の光トランシーバ。
【請求項７】
前記演算装置は、前記外部メモリに前記ダウンロードデータが格納されていること及び前記外部メモリが格納する前記ダウンロードデータが前記内部メモリに格納されていないことを検出したときに、前記外部メモリからの前記ダウンロードデータの読み出しを開始する、
請求項１〜５のいずれか１項に記載の光トランシーバ。
【請求項８】
電気信号及び光信号の相互変換によって通信を行う光トランシーバのダウンロードデータの書き込み方法であって、
前記光トランシーバは、前記ダウンロードデータを格納するための内部メモリと、前記ダウンロードデータに基づいて前記相互変換を制御する演算装置と、前記演算装置と外部の外部メモリとが第１のシリアル通信を行うための第１のシリアル通信部と、
を備え、
前記外部メモリに前記ダウンロードデータが書き込まれる工程と、
前記ダウンロードデータを格納する外部メモリが前記第１のシリアル通信部に接続される工程と、
前記演算装置が前記第１のシリアル通信のマスターとして前記第１のシリアル通信を行うことによって、前記外部メモリから前記ダウンロードデータを読み出す工程と、
前記演算装置が前記外部メモリから読み出した前記ダウンロードデータを前記内部メモリに書き込む工程と、
を有する光トランシーバのダウンロードデータの書き込み方法。
【請求項９】
前記光トランシーバは、前記演算装置が前記内部メモリと第２のシリアル通信を行うための第２のシリアル通信部をさらに備え、
前記演算装置が、前記外部メモリから読み出した前記ダウンロードデータを前記第２のシリアル通信のマスターとして前記第２のシリアル通信を行うことによって前記内部メモリに書き込む工程をさらに含む、
請求項８記載の光トランシーバのダウンロードデータの書き込み方法。
【請求項１０】
前記内部メモリは、前記演算装置を制御するための第１のプログラムを格納する第１のメモリバンクと、前記相互変換を制御するための第２のプログラムを格納する第２のメモリバンクと、を備え、
前記演算装置は、前記内部メモリを内蔵し、前記第１のプログラム及び前記第２のプログラムを実行するように構成されており、
前記外部メモリに前記第２のプログラムを格納する工程と、
前記第１のメモリバンクに前記第１のプログラムを格納する工程と、
前記演算装置が前記第１のメモリバンクに格納されている前記第１のプログラムを実行することによって、前記外部メモリから前記第１のシリアル通信部を介して前記第２のプログラムを読み出し、前記外部メモリから読み出した前記第２のプログラムを前記第２のメモリバンクに書き込む工程と、
をさらに含む、
請求項８記載の光トランシーバのダウンロードデータの書き込み方法。
【請求項１１】
前記光トランシーバは、前記内部メモリ及び前記演算装置に所定の閾値電圧よりも高い第１の電源電圧を供給する第１の電源線と、
前記相互変換を行う回路部に第１の電源電圧と別の第２の電源電圧を供給する第２の電源線と、をさらに備え、
前記演算装置が前記第１の電源線から前記第１の電源電圧の供給を受けて起動する工程と、
前記演算装置は、前記第２の電源電圧が前記所定の閾値電圧よりも低いことを検出したとき、前記外部メモリからの前記ダウンロードデータの読み出しを開始する工程と、
をさらに含む、
請求項８又は９に記載の光トランシーバのダウンロードデータの書き込み方法。
【請求項１２】
前記演算装置は、前記外部メモリに前記ダウンロードデータが格納されていること及び前記外部メモリが格納している前記ダウンロードデータが前記内部メモリに格納されていないことを検出したときに、前記外部メモリからの前記ダウンロードデータの読み出しを開始する工程、
をさらに含む、
請求項８又は９に記載の光トランシーバのダウンロードデータの書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光通信システムで用いられる光トランシーバ及びそのダウンロードデータの書き込み方法に関するものである。
【背景技術】
【０００２】
光通信の分野では、ホスト装置から入力された電気信号を光信号に変換して送信するとともに、受信した光信号を電気信号に変換してホスト装置へ出力する光トランシーバが情報通信ネットワークの構成要素として用いられる。光トランシーバには、電気信号と光信号との間の信号変換及び送受信等に係る初期設定用データ又は光トランシーバ内部の制御や動作状態の監視等のためのプログラムコード等を格納するメモリと、そのメモリから初期設定用データ又はプログラムコードを読み出して動作するプロセッサ（演算ユニット）とが内蔵されている。このような構成の光トランシーバの製造において、本体組立後の何も情報が書き込まれていない状態の内蔵メモリに、初期設定用データ又はプログラムコード等を書き込む必要がある。例えば、外部のホストコンピュータ等との監視・制御ための通信用に設けられているシリアル通信バスを介してメモリに初期設定用データ又はプログラムコード等のダウンロードデータが書き込まれる（下記特許文献１，２等を参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００８−５１２９０４号公報
【特許文献２】特開２００６−１０１４３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、上述した特許文献１，２に記載の方法においては、メモリへのダウンロードデータの書き込みの際には、外部のホストコンピュータとプロセッサとの間でシリアル通信バスを介して電文の交換が生じる。そのため、ダウンロードデータのデータサイズによってはダウンロードデータの書き込み時間が比較的長くなってしまう傾向にある。
【０００５】
そこで、本発明は、かかる課題に鑑みてなされたものであり、内蔵メモリ（内部メモリ）へのダウンロードデータの書き込みを効率化することが可能な光トランシーバ及びその書き込み方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明の一側面に係る光トランシーバは電気信号及び光信号の相互変換によって送受信を行う光トランシーバであって、外部の装置から提供されるダウンロードデータを格納する内部メモリと、ダウンロードデータに基づいて相互変換を制御する演算装置と、演算装置が外部の装置と第１のシリアル通信を行うための第１のシリアル通信部と、を備え、演算装置は、ダウンロードデータを格納する外部メモリが外部の装置として第１のシリアル通信部に接続されたとき、第１のシリアル通信のマスターとして第１のシリアル通信を行うことによって外部メモリからダウンロードデータを読み出し、外部メモリから読み出したダウンロードデータを内部メモリに書き込む。
【０００７】
あるいは、本発明の他の側面に係る光トランシーバのダウンロードデータの書き込み方法は、電気信号及び光信号の相互変換によって通信を行う光トランシーバのダウンロードデータの書き込み方法であって、光トランシーバは、ダウンロードデータを格納するための内部メモリと、ダウンロードデータに基づいて相互変換を制御する演算装置と、演算装置と外部の外部メモリとが第１のシリアル通信を行うための第１のシリアル通信部と、を備え、外部メモリにダウンロードデータが書き込まれる工程と、ダウンロードデータを格納する外部メモリが第１のシリアル通信部に接続される工程と、演算装置が第１のシリアル通信のマスターとして第１のシリアル通信を行うことによって、外部メモリからダウンロードデータを読み出す工程と、演算装置が外部メモリから読み出したダウンロードデータを内部メモリに書き込む工程と、を有する。
【発明の効果】
【０００８】
本発明の一側面によれば、内蔵メモリへのダウンロードデータの書き込みを効率化することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１実施形態にかかる光トランシーバ１Ａの概略構成を示すブロック図である。
【図２】図１のＣＰＵ９の詳細構成を示すブロック図である。
【図３】図１の光トランシーバ１Ａの内部メモリ１１に係るダウンロード時の接続構成を示すブロック図である。
【図４】図１の光トランシーバ１Ａの内部メモリ１１に係るダウンロード時の接続構成を示すブロック図である。
【図５】図１のＣＰＵ９による内部メモリ１１に係るダウンロードの手順を示すフローチャートである。
【図６】図１の光トランシーバ１Ａの内部メモリ１１に係るダウンロード前の外部メモリ５７のデータの格納動作を示すシーケンス図である。
【図７】図１の光トランシーバ１Ａの内部メモリ１１に係るダウンロードを示すシーケンス図である。
【図８】図１の光トランシーバ１Ａの内部メモリ１１に係るダウンロードの所要時間を表したタイミングチャートである。
【図９】本発明の第２実施形態にかかる光トランシーバ１Ｂの概略構成を示すブロック図である。
【図１０】図９の光トランシーバ１Ｂの内部メモリ係るダウンロード時の接続構成を示すブロック図である。
【図１１】図９の光トランシーバ１Ｂの内部メモリに係るダウンロード時の接続構成を示すブロック図である。
【図１２】図９のＣＰＵ９の内部メモリの格納データの概略構成を示すイメージ図である。
【図１３】図９のＣＰＵ９による内部メモリに係るファームウェアのダウンロード手順を示すフローチャートである。
【図１４】図９の光トランシーバ１Ｂの内部メモリに係るダウンロード前の外部メモリ５７のデータの格納動作を示すシーケンス図である。
【図１５】図９の光トランシーバ１Ｂの内部メモリに係るダウンロードの手順を示すシーケンス図である。
【図１６】図９の光トランシーバ１Ｂの内部メモリに係るダウンロードの所要時間を表したタイミングチャートである。
【図１７】比較例にかかる光トランシーバ９０１Ａの概略構成を示すブロック図である。
【図１８】図１７の光トランシーバ９０１Ａの内部メモリ１１に係るダウンロード時の接続構成を示すブロック図である。
【図１９】図１７の光トランシーバ９０１Ａの内部メモリ１１に係るダウンロードの手順を示すシーケンス図である。
【図２０】図１７の光トランシーバ９０１Ａの内部メモリ１１に係るダウンロードの所要時間を表したタイミングチャートである。
【図２１】比較例にかかる光トランシーバ９０１Ｂの概略構成を示すブロック図である。
【図２２】図２１の光トランシーバ９０１ＢのＣＰＵ９０９の内部メモリに係るダウンロード時の接続構成を示すブロック図である。
【図２３】図２１の光トランシーバ９０１ＢのＣＰＵ９０９の内部メモリに係るファームウェアの書き込み手順を示すシーケンス図である。
【発明を実施するための形態】
【００１０】
本発明の一側面に係る光トランシーバは、電気信号及び光信号の相互変換によって送受信を行う光トランシーバであって、外部の装置から提供されるダウンロードデータを格納する内部メモリと、ダウンロードデータに基づいて相互変換を制御する演算装置と、演算装置が外部の装置と第１のシリアル通信を行うための第１のシリアル通信部と、を備え、演算装置は、ダウンロードデータを格納する外部メモリが外部の装置として第１のシリアル通信部に接続されたとき、第１のシリアル通信のマスターとして第１のシリアル通信を行うことによって外部メモリからダウンロードデータを読み出し、外部メモリから読み出したダウンロードデータを内部メモリに書き込む。
【００１１】
かかる構成の光トランシーバによれば、演算装置が第１のシリアル通信部を介して外部メモリを検出すると、演算装置が、外部メモリからダウンロードデータを能動的に受信し、その受信したダウンロードデータを能動的に内部メモリに格納する。これにより、プログラム又は設定データ等のダウンロードデータを予め記憶させた外部メモリを光トランシーバに接続するだけで、光トランシーバは、能動的に内部メモリにダウンロードデータを格納することができる。その結果、ダウンロードの所要時間を短縮できる。
【００１２】
上記光トランシーバにおいては、演算装置が内部メモリと第２のシリアル通信を行うための第２のシリアル通信部をさらに備え、演算装置は、外部メモリから読み出したダウンロードデータを第１のシリアル通信と並行して第２のシリアル通信のマスターとして第２のシリアル通信を行うことによって内部メモリに書き込んでもよい。この場合、演算装置から内部メモリへのダウンロードデータの書き込みを効率化することができる。
【００１３】
また、相互変換のための信号処理を行う集積回路をさらに備え、ダウンロードデータは、集積回路が信号処理を行うための設定データを含み、演算装置は、外部メモリから読み出したダウンロードデータに含まれる設定データを第２のシリアル通信部を介して内部メモリに書き込み、集積回路は、第２のシリアル通信部を介して内部メモリから設定データを読み込んでもよい。こうすれば、演算装置から内部メモリへの設定データの書き込みを効率化することができる。
【００１４】
また、内部メモリは、演算装置に内蔵された装置であり、ダウンロードデータは、演算装置によって実行可能なプログラムを含み、プログラムは演算装置に内蔵された内部メモリに書き込まれてもよい。さらに、プログラムは、演算装置を制御するための第１のプログラムと、相互変換を制御するための第２のプログラムと、を有し、内部メモリは、第１のプログラムを格納する第１のメモリバンクと、第２のプログラムを格納する第２のメモリバンクと、を備え、外部メモリは、第２のプログラムを格納し、演算装置は、第１のプログラムを実行することによって、外部メモリから第１のシリアル通信部を介して第２のプログラムを読み出し、外部メモリから読み出した第２のプログラムを第２のメモリバンクに書き込んでもよい。かかる構成を採れば、演算装置に内蔵された内部メモリへのプログラムの書き込みを効率化することができる。
【００１５】
また、内部メモリ及び演算装置に所定の閾値電圧よりも高い第１の電源電圧を供給する第１の電源線と、相互変換を行う回路部に第１の電源電圧と別の第２の電源電圧を供給する第２の電源線と、をさらに備え、演算装置は、第１の電源線から第１の電源電圧の供給を受けて動作するとともに、第２の電源電圧が所定の閾値電圧よりも低いことを検出したとき、外部メモリからのダウンロードデータの読み出しを開始してもよい。この場合、ダウンロードデータの書き込み制御のための新たな信号線を設けること無しに、内部メモリへのダウンロードデータの書き込み処理の開始を制御することができる。
【００１６】
また、演算装置は、外部メモリにダウンロードデータが格納されていること及び外部メモリが格納するダウンロードデータが内部メモリに格納されていないことを検出したときに、外部メモリからのダウンロードデータの読み出しを開始してもよい。かかる構成を採れば、外部メモリのダウンロードデータの格納状態、及び内部メモリにおけるダウンロードデータの格納状態に応じて、必要な時に内部メモリへのダウンロードデータの書き込み処理を開始させることができる。
【００１７】
或いは、本発明の他の側面に係る光トランシーバのダウンロードデータの書き込み方法は、電気信号及び光信号の相互変換によって通信を行う光トランシーバのダウンロードデータの書き込み方法であって、光トランシーバは、ダウンロードデータを格納するための内部メモリと、ダウンロードデータに基づいて相互変換を制御する演算装置と、演算装置と外部の外部メモリとが第１のシリアル通信を行うための第１のシリアル通信部と、を備え、外部メモリにダウンロードデータが書き込まれる工程と、ダウンロードデータを格納する外部メモリが第１のシリアル通信部に接続される工程と、演算装置が第１のシリアル通信のマスターとして第１のシリアル通信を行うことによって、外部メモリからダウンロードデータを読み出す工程と、演算装置が外部メモリから読み出したダウンロードデータを内部メモリに書き込む工程と、を有する。
【００１８】
このようなダウンロードデータの書き込み方法によれば、外部メモリを光トランシーバと第１のシリアル通信部を介して接続させた後、演算装置によって第１のシリアル通信部を介して外部メモリが検出されると、演算装置により、外部メモリからダウンロードデータを能動的に受信し、その受信したダウンロードデータを能動的に内部メモリに格納する。これにより、プログラム又は設定データ等のダウンロードデータを予め記憶させた外部メモリを光トランシーバに接続するだけで、光トランシーバは、能動的に内部メモリにダウンロードデータを格納することができる。その結果、ダウンロードの所要時間を短縮できる。
【００１９】
上記光トランシーバのダウンロードデータの書き込み方法においては、光トランシーバは、演算装置が内部メモリと第２のシリアル通信を行うための第２のシリアル通信部をさらに備え、演算装置が、外部メモリから読み出したダウンロードデータを第２のシリアル通信のマスターとして第２のシリアル通信を行うことによって内部メモリに書き込む工程をさらに含んでもよい。こうすれば、演算装置から内部メモリへのダウンロードデータの書き込みを効率化することができる。
【００２０】
また、内部メモリは、演算装置を制御するための第１のプログラムを格納する第１のメモリバンクと、相互変換を制御するための第２のプログラムを格納する第２のメモリバンクと、を備え、演算装置は、内部メモリを内蔵し、第１のプログラム及び第２のプログラムを実行するように構成されており、外部メモリに第２のプログラムを格納する工程と、第１のメモリバンクに第１のプログラムを格納する工程と、演算装置が第１のメモリバンクに格納されている第１のプログラムを実行することによって、外部メモリから第１のシリアル通信部を介して第２のプログラムを読み出し、外部メモリから読み出した第２のプログラムを第２のメモリバンクに書き込む工程と、をさらに含んでもよい。この場合、演算装置に内蔵された内部メモリへのプログラムの書き込みを効率化することができる。
【００２１】
また、光トランシーバは、内部メモリ及び演算装置に所定の閾値電圧よりも高い第１の電源電圧を供給する第１の電源線と、相互変換を行う回路部に第１の電源電圧と別の第２の電源電圧を供給する第２の電源線と、をさらに備え、演算装置が第１の電源線から第１の電源電圧の供給を受けて起動する工程と、演算装置は、第２の電源電圧が所定の閾値電圧よりも低いことを検出したとき、外部メモリからのダウンロードデータの読み出しを開始する工程と、をさらに含んでもよい。この場合、ダウンロードデータの書き込み制御のための新たな信号線を設けること無しに、内部メモリへのダウンロードデータの書き込み処理の開始を制御することができる。
【００２２】
また、演算装置は、外部メモリにダウンロードデータが格納されていること及び外部メモリが格納しているダウンロードデータが内部メモリに格納されていないことを検出したときに、外部メモリからのダウンロードデータの読み出しを開始する工程、をさらに含んでもよい。こうすれば、外部メモリのダウンロードデータの格納状態、及び内部メモリにおけるダウンロードデータの格納状態に応じて、必要な時に内部メモリへのダウンロードデータの書き込み処理を開始させることができる。
【００２３】
以下、添付図面を参照しながら本発明による光トランシーバ及びその内部メモリに係るダウンロードの実施の形態を詳細に説明する。なお、図面の説明において同一の要素には同一の符号を付し、重複する説明を省略する。
［第１実施形態］
（光トランシーバの構成）
【００２４】
まず、第１実施形態の前提となる光トランシーバの比較例の構成について説明する。
【００２５】
図１７は、比較例にかかる光トランシーバ９０１Ａの概略構成を示すブロック図である。この光トランシーバ９０１Ａは、光通信システム等で光信号を送受信するために使用される機器である。光トランシーバ９０１Ａは、光合波機能、光分波機能、光−電気相互変換機能、電気波形整形機能等を備える。光トランシーバ９０１Ａは、例えば、QSFP28  MSA（Quad  Small  Form-factor  Pluggable  28  Multi-Source  Agreement）に準拠して100Gbpsの光通信を実現する。同図に示すように、光トランシーバ９０１Ａは、外部のホスト装置５０と通信バスを介して接続可能とされており、集積回路３、光送信デバイスであるＴＯＳＡ（Transmitter  Optical  Sub-assembly）５、光受信デバイスであるＲＯＳＡ（Receiver  Optical  Sub-assembly）７、演算装置であるＣＰＵ９０９、及び内部メモリ１１を含んで構成されている。
【００２６】
ＴＯＳＡ５は、４チャネルの光信号を生成するための発光素子である４つのレーザダイオード、光合波器等を内蔵している。ここで、チャネルは電気信号あるいは光信号を伝達する伝送路を意味し、複数のチャネルは互いに並行に設置された、それぞれ独立な信号を伝送する複数の伝送路を意味する。このＴＯＳＡ５は、外部のホスト装置５０からの４チャネルの電気信号（電気入力信号）ＴＸを基にそれぞれ波長の異なる４チャネルの光信号を生成し、それらの光信号を光出力信号Ｏｏｕｔに合波して出力する。ＲＯＳＡ７は、４チャネルの光信号を受信するための受光素子である４つのフォトダイオード、光分波器等を内蔵している。このＲＯＳＡ７は、外部から光入力信号Ｏｉｎを受け、光入力信号Ｏｉｎを互いに波長の異なる４チャネルの光信号に分波する。さらに、ＲＯＳＡ７は、それぞれの４チャネルの光信号を受光して、それらの光信号を光電流（電気信号）に変換する。集積回路３は、ＣＤＲ（Clock  Data  Recovery）部、ＬＤＤ（Laser  Diode  Driver）部、ＴＩＡ（Transimpedance  Amplifier）部等を内蔵している。集積回路３のＬＤＤ部は、４チャネルの電気信号ＴＸを基にＴＯＳＡ５内の４つのレーザダイオードをそれぞれ変調し光信号を出力させるための回路ユニットである。集積回路３のＴＩＡ部は、ＲＯＳＡ７内の４チャネルのフォトダイオードから出力された４つの光電流のそれぞれを電気信号（電気出力信号）ＲＸに変換する回路ユニットである。集積回路３のＣＤＲ部は、外部からの４つの電気信号ＴＸ、及びＴＩＡ回路部からの４つの電気信号ＲＸをそれぞれ波形整形する回路ユニットである。集積回路３には、４チャネル分のＬＤＤ部及びＴＩＡ部が内蔵されている。なお、ＬＤＤ部はＴＯＳＡ５に内蔵されていても良い。ここで、集積回路３には、電気信号ＴＸ，ＲＸをそれぞれ多重及び分離するための回路部、あるいは、電気信号ＴＸ，ＲＸをｎ：ｍ（ｎ，ｍ：任意の整数）で相互変換するための回路部等がさらに含まれていてもよい。
【００２７】
内部メモリ１１は、プログラム及び設定データのうちの少なくとも一方を格納するEEPROM（Electrically Erasable Programmable Read-Only Memory）等の不揮発性メモリ装置であり、集積回路３及びＣＰＵ９０９に接続された、集積回路３及びＣＰＵ９０９とは独立な装置である。詳細には、この内部メモリ１１は、光トランシーバ９０１Ａの動作に必要な内部情報の一部、例えば、ＣＰＵ９０９の動作に必要なマイクロプログラムであるファームウェア、及び集積回路３の動作に必要な設定データを格納する。ここで、内部メモリ１１は、集積回路３及びＣＰＵ９０９とはＳＰＩ（Serial Peripheral Interface）等のシリアル通信インタフェースによって接続可能とされている。
【００２８】
ＣＰＵ９０９は、ワンチップマイクロコントローラ、ＦＰＧＡ（Field Programmable Gate Array）あるいはＣＰＬＤ（Complex Programmable Logic Device）等のロジック回路、又はこれらの組み合わせによって構成された演算装置である。ＣＰＵ９０９は、内部に格納されたマイクロプログラム（例えば、ファームウェア）、又は、内部メモリ１１に格納されたプログラム及び設定データをそれぞれ実行または参照して、光出力信号Ｏｏｕｔ及び電気出力信号ＲＸの出力のための動作制御を実行する。ＣＰＵ９０９は、外部のホスト装置５０とＩ２Ｃ（Inter-Integrated Circuit）等のシリアル通信の通信線Ｌ１を介して接続され、ホスト装置５０による光トランシーバ９０１Ａの内部の監視、又は光トランシーバ９０１Ａの動作制御が可能とされている。また、ＣＰＵ９０９には、ホスト装置５０にアラーム信号を通知するための通信線Ｌ２、ホスト装置５０から光出力パワーを切り換えるための制御信号を受け取るための通信線Ｌ３、ホスト装置５０からＣＰＵ９０９をリセットするためのリセット信号を受け取るための通信線Ｌ４、及びホスト装置５０からシリアル信号を選択するための制御信号を受け取る通信線Ｌ５が設けられている。さらに、ＣＰＵ９０９には、集積回路３及び内部メモリ１１とＳＰＩ等のシリアル通信方式によって通信するため内部通信バスＬ６も設けられている。
【００２９】
上記の比較例にかかる光トランシーバ９０１Ａの内部メモリ１１に係るダウンロード動作について説明する。光トランシーバ９０１Ａにおいて、内部メモリ１１にダウンロードデータ（プログラム及び設定データ等の内部情報）が書き込まれた状態を実現するには、例えば、本体を組み立てる前に予めダウンロードデータが書き込まれた内部メモリ１１を用意して、それを光トランシーバ９０１Ａの回路基板に実装する方法も考えられる。しかし、内部メモリ１１が回路基板に実装されている状態でダウンロードデータを書き込むことが繰り返して行える点で利便性が高いため、図１８に示す構成を用いて光トランシーバ９０１Ａの内部メモリ１１にダウンロードデータの書き込みを行うことが好ましい。すなわち、データ変換用の回路基板５１を用意し、回路基板５１上に信号変換用の演算装置であるＣＰＵ５５と光トランシーバ９０１Ａとを搭載する。この際、回路基板５１上でＣＰＵ５５と光トランシーバ９０１ＡとをＩ２Ｃ通信の通信線Ｌ１によって通信可能に接続し、ＣＰＵ５５と外部のパーソナルコンピュータ等のコンピュータ装置５３とを、例えば、ＵＡＲＴ（Universal Asynchronous Receiver Transmitter）通信の通信線Ｌ８によって通信可能に接続する。このような接続構成において、コンピュータ装置５３は、予めコンピュータ装置５３に格納されたダウンロードデータをＵＡＲＴ通信を用いてＣＰＵ５５に送信する。これに応じて、ＣＰＵ５５は、コンピュータ装置５３から受信したダウンロードデータを、Ｉ２Ｃ通信のデータ（電文）に変換して光トランシーバ９０１Ａ内のＣＰＵ９０９に送信する。ＣＰＵ９０９は、ＣＰＵ５５から受信したダウンロードデータを内部通信バスＬ６を介して内部メモリ１１に書き込む。これにより、光トランシーバ９０１ＡのＣＰＵ９０９を介して内部メモリ１１にダウンロードデータが書き込まれる。ここで、ＣＰＵ５５は、ＵＳＢ（Universal Serial Bus）−ＵＡＲＴ変換用ＩＣ等を利用してＵＳＢ通信によってコンピュータ装置５３からダウンロードデータを受信してもよい。
【００３０】
図１９には、コンピュータ装置５３から光トランシーバ９０１Ａの内部メモリ１１へのダウンロードデータの書き込み（以下、「ダウンロード」と言う。）の動作シーケンスを示している。図１９に示すように、まず、コンピュータ装置５３は、ＵＡＲＴ通信を用いてＣＰＵ５５に所定データ量（例えば、256バイト）毎にダウンロードデータを分割し、分割されたダウンロードデータを送信電文に含めて送信する（ステップＳ９０１）。そうして、ＣＰＵ５５は、コンピュータ装置５３からＵＡＲＴ通信の送信電文を受信すると、その中に含まれる分割されたダウンロードデータをＩ２Ｃ通信のデータ（送信電文）に変換してＣＰＵ９０９に送信する（ステップＳ９０２）。これに応じて、ＣＰＵ９０９は、ＣＰＵ５５から受信したＩ２Ｃ通信の送信電文から分割されたダウンロードデータを取り出し、内部通信バスＬ６を介して内部メモリ１１に書き込む（ステップＳ９０３）。その後、所定の時間（例えば５ｍｓｅｃ）ほど待機した後に（ステップＳ９０４）、ＣＰＵ５５は、分割されたダウンロードデータの内部メモリ１１への書き込み完了を通知するための受信電文をコンピュータ装置５３に返信する（ステップＳ９０５）。このステップＳ９０１〜Ｓ９０５の処理は、全ての分割されたダウンロードデータの書き込みが終了するまで繰り返し実行される。すなわち、ダウンロードデータのデータ量は、例えば、１２８キロバイトあるいはそれ以上あり、送信に使用するシリアル通信方式に適した所定のデータ量（例えば、２５６バイト）よりも数１００倍程度大きい。従って、コンピュータ装置５３は、ダウンロードデータ全体を所定のデータ量毎に数１００に分割し、分割された個々のダウンロードデータを順次送信することで、ダウンロードデータ全体の送信を行う。ＣＰＵ９０９による内部メモリ１１へのダウンロードデータの書き込みは、内部メモリ１１の書き込みに適したデータ量にて行われる。
【００３１】
次に、第１実施形態の光トランシーバの構成について説明する。
【００３２】
図１は、第１実施形態にかかる光トランシーバ１Ａの概略構成を示すブロック図である。以下では、比較例に係る光トランシーバ９０１Ａとの相違点のみについて説明する。図１７に示す光トランシーバ９０１Ａは、電源端子Ｐ１、Ｐ２、及びＰ３を備えている。電源端子Ｐ１は、内部に設けられた電源線ＬＰ１を介して、例えば、ＣＰＵ９０９及び内部メモリ１１等に電源電圧Ｖｃｃ１を供給する。電源端子Ｐ２は、内部に設けられた電源線ＬＰ２を介してＴＯＳＡ５、集積回路３等の光送信系回路部に電源電圧ＶｃｃＴＸを供給する。また、電源端子Ｐ３は、内部に設けられた電源線ＬＰ３を介してＲＯＳＡ７、集積回路３等の光受信系回路部に電源電圧ＶｃｃＲＸを供給する。光トランシーバ１Ａが通常の伝送信号の送受信動作を行うとき、電源電圧Ｖｃｃ１，ＶｃｃＴＸ，及びＶｃｃＲＸは、例えば、いずれも３．３Ｖで外部から供給される。光トランシーバ１Ａには、それらに加えて、ＣＰＵ９が電源電圧ＶｃｃＴＸ，ＶｃｃＲＸのそれぞれを、内部電源線ＬＰ２，ＬＰ３から取り込むための入力ポート１３，１５がさらに設けられている。そして、光トランシーバ１ＡのＣＰＵ９は、Ａ／Ｄ変換器１７を内蔵し、入力ポート１３，１５から入力された電源電圧ＶｃｃＴＸ，ＶｃｃＲＸをデジタル値に変換して取り込み、それらの電源電圧ＶｃｃＴＸ，ＶｃｃＲＸをモニタする機能を有する。なお、光トランシーバ１Ａには、入力ポート１３，１５のどちらか片方が設けられて、ＣＰＵ９が電源電圧ＶｃｃＴＸ，ＶｃｃＲＸのどちらか片方のみをモニタする機能を有していてもよい。ＣＰＵ９のモニタ機能以外の基本機能は、光トランシーバ９０１ＡのＣＰＵ９０１の基本機能と同一である。
【００３３】
図２には、ＣＰＵ９の詳細構成の一例を示している。ＣＰＵ９は、プロセッサ（演算回路）１９、フラッシュＲＯＭ２１、ＲＡＭ２３、温度センサ２５、外部通信用の通信インタフェース２７、内部通信用の通信インタフェース２９、タイマカウンタ３１、Ａ／Ｄ変換器１７、外部入力ピン３３、外部出力ピン３５、及びこれらを内部で通信可能に接続する内部バスＢＵＳを備える。ＣＰＵ９に内蔵されるフラッシュＲＯＭ２１は、プロセッサ１９が参照または実行するデータ及びプログラムを格納し、そのデータ容量は光トランシーバ１Ａの動作に用いるファームウェア及び設定データ（ダウンロードデータ）の容量より小さい。なお、ＣＰＵ内にダウンロードデータ全体よりも大きいデータ容量のフラッシュＲＯＭを内蔵することは技術的に可能である。しかし、そのようなデータ容量の大きいフラッシュＲＯＭを備えるＣＰＵのサイズは、上述のデータ容量が小さいフラッシュＲＯＭ２１を備えるＣＰＵ９のサイズの数倍以上に成り得る。そのようなサイズの大きいＣＰＵは、例えば、上述のＱＳＦＰ２８  ＭＳＡで規定される筐体の内部に収容することは困難であり、それを使用することは実用に好適な解決手段とはならない。従って、本発明に係る第一実施形態において、ＣＰＵ９は、例えば、数ｍｍ角程度の大きさの比較的集積度の低いＣＰＵを想定し、フラッシュＲＯＭ２１のデータ容量は、ダウンロードデータのデータ量よりも小さいことを想定する。
（光トランシーバのダウンロードデータの書き込み方法）
【００３４】
次に、上記の第１実施形態にかかる光トランシーバ１Ａの内部メモリ１１に係るダウンロードデータの書き込み方法について説明する。
【００３５】
本実施形態では、図３および図４に示す構成を用いて光トランシーバ１Ａの内部メモリ１１にダウンロードデータの書き込みを行う。すなわち、データ変換用の回路基板５１を用意し、信号変換用の演算装置であるＣＰＵ５５と、光トランシーバ１Ａと、EEPROM等の外部メモリ５７と、を回路基板５１上に搭載する。この際、ＣＰＵ５５、外部メモリ５７、及び光トランシーバ１ＡをＩ２Ｃ通信の通信線Ｌ１（通信バス）によって互いに通信可能に接続する。また、ＣＰＵ５５と光トランシーバ１Ａとを、光トランシーバ１ＡからＣＰＵ５５に信号を送信するための通信線Ｌ２によって接続する。さらに、ＣＰＵ５５と外部のパーソナルコンピュータ等のコンピュータ装置５３とをＵＡＲＴ通信の通信線Ｌ８によって通信可能に接続する。このような接続構成において、コンピュータ装置５３は、予めコンピュータ装置５３に格納されたダウンロードデータをＵＡＲＴ通信を用いてＣＰＵ５５に送信する。これに応じて、ＣＰＵ５５は、コンピュータ装置５３から受信した設定データを、Ｉ２Ｃ通信のデータ（通信電文）に変換して送信する。これによってダウンロードデータは、外部メモリ５７に書き込まれる。なお、外部メモリ５７は、光トランシーバ１Ａの外部に設けられるため、サイズの制約は受けないので、外部メモリ５７はダウンロードデータ全体よりも大きなデータ容量を有しても良い。従って、外部メモリ５７は、ダウンロードデータ全体を格納することができる。光トランシーバ１ＡのＣＰＵ９は、上記のようにして予めダウンロードデータが書き込まれた外部メモリ５７からダウンロードデータを読み出して、読み出したダウンロードデータを内部メモリ１１に能動的に格納する機能を有する。ここで、能動的にというのは、ＣＰＵ９が、例えば通信線Ｌ１のＩ２Ｃ通信においてマスターとなって（スレーブとなる）外部メモリから読み出しを行うこと、あるいは、ＣＰＵ９が、内部通信バスＬ６のシリアル通信においてマスターとなって（スレーブとなる）内部メモリに書き込みを行うことを意味する。なお、外部メモリ５７には光トランシーバ１ＡのＣＰＵ９のためのファームウェアが、設定データに代えて、あるいは設定データに加えて書き込まれても良い。また、その場合にＣＰＵ９はそのファームウェアを、設定データに代えて、あるいは設定データに加えて内部メモリ１１に書き込んでもよい。ここでは、コンピュータ装置５３によるＣＰＵ５５を経由した外部メモリ５７へのダウンロードデータの書き込みは、光トランシーバ１Ａ内の内部メモリ１１へのダウンロードデータの書き込みごとに毎回実行される必要は無い。すなわち、ダウンロードデータが書き込まれた外部メモリ５７を回路基板５１と共に複数の光トランシーバ１Ａの内部メモリ１１へのダウンロードデータの書き込みに使用してもよい。さらに、言い換えれば、コンピュータ装置５３及びＣＰＵ５５は、外部メモリ５７へのダウンロードデータの最初の書き込み時のみに必要とされ、その後は図４の構成から取り外されてもよい。すなわち、回路基板５１にて、ダウンロードデータを格納した外部メモリ５７と光トランシーバ１Ａとが実装され、その外部メモリ５７と光トランシーバ１Ａとが通信線Ｌ１を介して互いに接続されているだけでも良い。
【００３６】
図５は、ＣＰＵ９による内部メモリ１１に係るダウンロードの手順を示すフローチャートである。外部からの制御によりＣＰＵ９がリセットされたことを契機に、ＣＰＵ９は、初期設定を行う（ステップＳ０１）。この初期設定においては、ＣＰＵ９は、内部通信バスＬ６に繋がるシリアル通信ポート（内部シリアル通信ポート）を入力ポートに設定する。次に、ＣＰＵ９は、電源電圧ＶｃｃＴＸ，ＶｃｃＲＸの少なくとも一方の電圧値をモニタし、モニタした電圧値が所定値（例えば、２．８Ｖ）以上であるか否かを判定する（ステップＳ０２）。判定の結果、電圧値が所定値未満であると判定された場合（ステップＳ０２；ＮＯ）、すなわち、電源電圧ＶｃｃＴＸ，ＶｃｃＲＸの少なくとも一方の電位の低下が検出された場合、内部メモリ１１の設定データを書き込む動作モードである書き込みモード（ダウンロードモード）に遷移する。これは、例えば、光信号の送受信を行う通常モード（後述）では、電源電圧Ｖｃｃ１、ＶｃｃＴＸ，及びＶｃｃＲＸの全てが所定値以上に設定されるのに対して、電源電圧Ｖｃｃ１が所定値以上に設定されていながら他の電源電圧ＶｃｃＴＸ，ＶｃｃＲＸの少なくとも一方の値が所定値未満に設定される状況は通常では起こらない。しかし、光トランシーバ１Ａの製造段階ではそのような通常とは異なる電源電圧を設定できるため、そのことを書き込みモードの検出に利用する。この書き込みモードでは、まず、ＣＰＵ９は、内部通信バスＬ６につながる内部シリアル通信ポートを出力ポートに切り替える（ステップＳ０３）。これにより、例えば、ＣＰＵ９は、ＳＰＩ通信のマスターとして動作し、内部メモリ１１は、同ＳＰＩ通信のスレーブとして動作する。
【００３７】
その後、ＣＰＵ９は、内部シリアル通信ポートを介して内部メモリ１１内の冒頭アドレスのデータ（例えば、冒頭の16バイトのデータ）を読み出す（ステップＳ０４）。そして、ＣＰＵ９は、読み出した冒頭アドレスのデータが全て所定パターン（例えば、“FFh”）であるか否かを判定する（ステップＳ０５）。この判定により、内部メモリ１１に既にダウンロードデータが格納されているか否かを判断する。例えば、内部メモリ１１は、初期状態において内部の全てのアドレスのデータが“FFh”になっているときには、ステップＳ０４，Ｓ０５によって内部メモリ１１がその初期状態にあることを検出できる。また、内部メモリ１１にダウンロードデータが書き込まれたときに、冒頭アドレスのデータが上記の所定パターンと異なるようにダウンロードデータを作成しておくことで、ステップＳ０４，Ｓ０５によって内部メモリ１１には既にダウンロードデータが書かれていると判定することができる。なお、ここでは、書き込み対象の設定データの冒頭データは上記所定パターンではないという前提で格納有無が判断されているが、代わりに、例えば、冒頭のアドレス以外に定めた所定のアドレスであっても良いし、他の条件判定によって格納有無が判断されてもよい。
【００３８】
ステップＳ０５の判定の結果、冒頭データが全て所定パターンであると判定された場合には（ステップＳ０５；ＹＥＳ）、ＣＰＵ９は、通信線Ｌ１に繋がるＣＰＵ９のシリアル通信ポートをスレーブモードからマスターモードに変更する（ステップＳ０６）。次に、ＣＰＵ９は、外部メモリ５７にアクセスする（ステップＳ０７）。その結果、ＣＰＵ９が、外部メモリ５７からの応答を検出した場合には（ステップＳ０８；ＹＥＳ）、ＣＰＵ９は、外部メモリ５７の読み出し先のアドレスを示す先頭アドレスカウンタをリセットする（ステップＳ０９）。さらに、ステップＳ１０で先頭アドレスカウンタがダウンロードデータ全体のサイズに相当する最大値に達したと判定されるまでの間は、ＣＰＵ９は、ステップＳ１１〜Ｓ１３の処理を繰り返す。詳細には、ＣＰＵ９は、先頭アドレスカウンタの示す外部メモリ５７のアドレスを先頭として、そこから連続するアドレスに格納されている所定データ量（例えば256バイト）のダウンロードデータを能動的に読み出し、読み出した設定データを通信線Ｌ１を介して受信する（ステップＳ１１）。ここで、能動的と言うのは、通信線Ｌ１を介して外部メモリ５７とＣＰＵ９との間で行われるシリアル通信（例えば、Ｉ２Ｃ通信）において、ＣＰＵ９がマスターで外部メモリ５７がスレーブとして動作するということを意味する。なお、図１に示されるように、光トランシーバ１Ａが通信線Ｌ１を介してホスト装置５０に接続され、通常の送受信動作を行うときには、通信線Ｌ１によるシリアル通信においては、ホスト装置がマスターで、ＣＰＵ９がスレーブとして働く。すなわち、光トランシーバ１Ａがホスト装置５０と通信線Ｌ１を介してシリアル通信を行う場合は、ホスト装置５０が能動的にＣＰＵ９に対して読み書き等の指示を行う。本発明に係る実施形態において、ＣＰＵ９がダウンロードを行う際には、通信線Ｌ１を介して行うシリアル通信において能動的に動作する。このように、能動的に動作する主体（マスター）は、通常の送受信動作時とダウンロード時とで異なっている。その後、ＣＰＵ９は、所定データ量の（分割された）ダウンロードデータを受信すると、そのダウンロードデータを内部通信バスＬ６を介して内部メモリ１１に能動的に格納する（ステップＳ１２）。そして、ＣＰＵ９は、所定データ量のダウンロードデータの書き込み後に先頭アドレスカウンタに所定データ量に応じた値を加算する（ステップＳ１３）。
【００３９】
一方で、ステップＳ０２の判定において、電圧値が所定値（例えば、２．８Ｖ）以上であると判定された場合には（ステップＳ０２；ＹＥＳ）、ＣＰＵ９は、光トランシーバ１Ａの内部の監視又は光トランシーバ１Ａの動作制御を行う動作モードである通常モードに遷移する。この通常モードでは、ＣＰＵ９は、例えば、光トランシーバ１Ａ内における各種動作状態のモニタ及びアラーム判定等を含む周期処理を実行する（ステップＳ１５）。周期処理では、光トランシーバ１Ａ内部のリアルタイムでの監視・制御に必要な各種の処理を単純ループあるいはタイマによる時分割方式によって繰り返し行う。また、ステップＳ０５において冒頭データの全てが所定パターンではないと判定した場合（ステップＳ０５；ＮＯ）、ステップＳ０８において外部メモリ５７からの応答を検出しなかった場合（ステップＳ０８；ＮＯ）、あるいはステップＳ１０において先頭アドレスカウンタが最大値に達したと判定した場合（ステップＳ１０；ＮＯ）、ＣＰＵ９は、内部通信バスＬ６につながる内部シリアル通信ポートを入力ポートに切り替えた後に（ステップＳ１４）、通常モードに遷移する。
【００４０】
なお、上述したようにＣＰＵ９が内部メモリ１１にダウンロードデータを格納するとき、すなわち、ＣＰＵ９が書き込みモード（ダウンロードモード）に遷移中は、ＣＰＵ９は、通信線Ｌ２に繋がる出力ポートを正常状態を示す所定電位レベル（例えば、ハイレベル）に設定する。光トランシーバ１Ａが回路基板５１に搭載されているとき、電気入力信号ＴＸ及び光入力信号Ｏｉｎは入力されないため、ＣＰＵ９は、電気入力信号ＴＸ及び光入力信号Ｏｉｎの各チャネルの信号ロス（正常な信号が無いこと）を検出する（なお、ここでは、この検出が集積回路３によって行われる場合、ＶｃｃＴｘまたはＶｃｃＲｘを上述の所定値よりも低くしていても集積回路３は検出を正常に行える状況あること、あるいは、集積回路３にもＶｃｃ１が供給されてＣＰＵ９及び内部メモリ１１と共に正常に動作する状況にあることを想定している）。そのような場合でも、ＣＰＵ９は、書き込みモードに遷移中、通信線Ｌ２に繋がる出力ポートの電位をアラームが検知された異常状態を示す電位レベル（例えば、ローレベル）から正常状態を示す電位レベルに変更する。これにより、ＣＰＵ９は、通信線Ｌ２を介してＣＰＵ５５に書き込み処理実行中を検知させることができ、それによってＣＰＵ５５が光トランシーバ１Ａに対してシリアル通信によるアクセスをしないように通知することができる。さらには、外部のホスト装置５０等に接続されているとき、ＣＰＵ９は、内部メモリ１１に係るダウンロードの実行中を検知させることもできる。
【００４１】
図６は、光トランシーバ１Ａの内部メモリ１１に係るダウンロード前の外部メモリ５７のデータの格納動作のシーケンスを示している。図６に示すように、まず、コンピュータ装置５３は、ＵＡＲＴ通信によってＣＰＵ５５に所定データ量（例えば、256バイト）毎に分割されたダウンロードデータの最初の部分（1番目の部分）を、送信電文に含めて送信する（ステップＳ１０１）。そうすると、ＣＰＵ５５は、Ｉ２Ｃ通信の通信電文に変換された分割されたダウンロードデータの１番目を、内部通信バスＬ６を介して外部メモリ５７に書き込む（ステップＳ１０２）。その後、所定の時間（例えば５ｍｓｅｃ）ほど待機した後に（ステップＳ１０３）、ＣＰＵ５５は、分割されたダウンロードデータの１番目の書き込み完了を通知するために、受信電文をコンピュータ装置５３に返信する（ステップＳ１０４）。このステップＳ１０１〜Ｓ１０４の処理は、全ての分割されたダウンロードデータが外部メモリ５７に書込まれるまで順次実行される。
【００４２】
図７は、図６に示す動作シーケンスよってダウンロードデータが書き込まれた外部メモリ５７を用いた、光トランシーバ１Ａの内部メモリ１１に係るダウンロードのシーケンスを示している。書き込みモード（ダウンロードモード）において、ＣＰＵ９はマスターとして、スレーブとして動作する外部メモリ５７から、所定データ量（例えば256バイト）のダウンロードデータを能動的に読み出す（ステップＳ１１１）。その後、ＣＰＵ９は、外部メモリ５７から読み出した所定データ量のダウンロードデータを、スレーブとして動作する内部メモリ１１に能動的に格納する（ステップＳ１１２）。そして、ＣＰＵ９は、所定の時間（例えば５ｍｓｅｃ）ほど待機する（ステップＳ１１３）。このステップＳ１１１〜Ｓ１１３の処理は、全てのダウンロードデータの書き込みが終了するまで繰り返し実行される。
【００４３】
以上説明した光トランシーバ１Ａ及び光トランシーバ１Ａの内部データのダウンロード方法の作用効果について述べる。
【００４４】
光トランシーバ１Ａにおいて、ＣＰＵ９が通信線Ｌ１を介して外部メモリ５７を検出すると、ＣＰＵ９は、外部メモリ５７からダウンロードデータを能動的に受信し、その受信したダウンロードデータを能動的に内部メモリ１１に格納する。これにより、設定データ等のダウンロードデータを予め記憶させた外部メモリ５７を光トランシーバ１Ａに接続するだけで、光トランシーバ１Ａは、能動的に内部メモリ１１にダウンロードデータを格納することができる。その結果、例えば、ＣＰＵ５５に係る通信に必要な時間を省くことによって、内部メモリへのダウンロードデータの書き込みを効率化でき、ダウンロードの所要時間を短縮できる。
【００４５】
また、ＣＰＵ９は、電源電圧ＶｃｃＴＸ，ＶｃｃＲＸの少なくとも一方の電位の低下を検出されたことを契機にダウンロードデータの受信を開始するように構成されているので、ダウンロードデータの書き込み制御のための新たな信号線を設けること無しに、内部メモリ１１へのダウンロードデータの書き込み処理の開始を制御することができる。さらに、ＣＰＵ９は、内部メモリ１１におけるダウンロードデータの格納状態を検出し、格納状態に応じてダウンロードデータの受信を開始するように構成されている。これにより、内部メモリ１１におけるダウンロードデータの書き込み状態に応じて、必要な時に効率的に内部メモリ１１へのダウンロードデータの書き込み処理を開始させることができる。これにより、例えば、既にダウンロードデータの書き込みを行った光トランシーバ１Ａについて、同じダウンロードデータを再度書き込みすることを防ぐことができ、そのような冗長な処理に係る時間を確実に排除することができる。
【００４６】
ここで、本実施形態における内部メモリ１１に係るダウンロードの効率化を定量的に評価する。図２０には、比較例における光トランシーバ９０１Ａの内部メモリ１１に係るダウンロードの所要時間を表したタイミングチャートを示している。図８は、本実施形態にかかる光トランシーバ１Ａの内部メモリ１１に係るダウンロードの所要時間を表したタイミングチャートを示している。これらのタイミングチャートでは、２５６バイト毎に分割されたダウンロードデータの一つを１回の通信電文で書き込む際の所要時間が見積もられている。
【００４７】
まず、図１８の接続構成における比較例の所要時間を評価する。コンピュータ装置５３とＣＰＵ５５との間のＵＡＲＴ通信に関して、１バイトのデータを送信する際にその１バイト（８ビット）のデータの前後に、１ビットのスタートビット、１ビットのストップビットが付加され、通信速度が115200bpsであってパリティビット無しの条件が設定されていることを想定する。そうすると、コンピュータ装置５３からＣＰＵ５５へのデータ送信時間Ｔ９０１は、
Ｔ９０１  ＝  256byte×(8bit+1bit+1bit)/115200bps  ≒  22.2msec
と見積もられる。実際には、256バイトの送信電文の冒頭にヘッダ、コマンド、サイズ情報等が含まれ、送信電文の末尾にCRC等の電文チェックビットが数バイト付加されるので、データ送信時間Ｔ９０１はこれ以上の時間になるが、分割されたダウンロードデータと比べてそれらの付加部分の大きさは比較的小さいので、ここでは省略する。その後、ＣＰＵ５５は、送信電文を受信すると、その送信電文を解析した後、光トランシーバ９０１Ａ内のＣＰＵ９０９に256バイトの分割されたダウンロードデータを転送する。ＣＰＵ５５とＣＰＵ９０９との間のＩ２Ｃ通信に関して、8ビット毎にＡｃｋ／Ｎａｃｋの応答が１ビット入るため、通信速度を400kbpsと想定すると、分割されたダウンロードデータの転送時間Ｔ９０２は、
Ｔ９０２  ＝  256byte×(8bit+1bit)/400kbps  ≒  5.76msec
と見積もられる。実際には、Ｉ２Ｃ通信データにはスレーブアドレス、メモリアドレス、レジスタアドレス等のデータが数バイト分あるため、データ送信時間Ｔ９０２はこれ以上の時間になるが、分割されたダウンロードデータと比べてそれらの付加部分の大きさは比較的小さいので、ここでは省略する。さらに、ＣＰＵ５５は、ダウンロードデータの転送が終わった直後に、コンピュータ装置５３に対して、正常に通信が終わったことを通知するために、数バイトの返信電文を返信する。ＣＰＵ５５に必要な送信電文の解析時間および返信電文の送信時間をそれぞれ1msecと見積もると、合計の256バイトのダウンロードデータのコンピュータ装置５３〜ＣＰＵ９０９間の通信のための所要時間Ｔ９０３は約29.96msecとなる。従って、128キロバイトのダウンロードデータを書き込むには256バイト毎に分割されたダウンロードデータを512回送信するため、所要時間は、約15.3秒となる。ここで、ＣＰＵ９０９は、256バイトの分割されたダウンロードを受信後、ＳＰＩ等のシリアル通信インタフェースによって内部メモリ１１に分割されたダウンロードデータを転送するが、そのときの通信速度を8Mbpsとすると、その転送時間Ｔ９０４は、
Ｔ９０４  ＝  256byte×8bit/8Mbps  ≒  0.256msec
と評価される。実際には、内部メモリ１１への分割されたダウンロードデータの書き込みには、内部メモリ１１のレジスタアドレスの指定が必要なため、１回の送信に必要な通信データのデータ量はそれによって伝達される分割されたダウンロードデータのデータ量よりも数バイト分サイズが大きくなるが、分割されたダウンロードデータと比べてそれらの付加部分の大きさは比較的小さいので、ここでは省略する。なお、内部メモリ１１の記憶時間Ｔ９０５（書込み時間）を最大で5msec程度考慮する必要があるが、コンピュータ装置５３〜ＣＰＵ９０９間の通信時間が支配的である。そのため、転送時間Ｔ９０４及び記憶時間Ｔ９０５は無視できる。
【００４８】
次に、図３の接続構成における本実施形態の所要時間を評価する。光トランシーバ１Ａ内のＣＰＵ９が外部メモリ５７から、通信速度400kbpsのＩ２Ｃ通信によって256byte毎に分割されたダウンロードデータの一つを読み出す時間Ｔ１は、
Ｔ１  ＝  256byte×(8bit+1bit)/400kbps  ≒  5.76msec
と見積もられる。また、ＣＰＵ９が通信電文を解析して内部メモリ１１に分割されたダウンロードデータを転送するため通信時間Ｔ２は、通信速度を8Mbpsと想定すると、同様の計算によって、
Ｔ２  ＝  256byte×8bit/8Mbps  ≒  0.256msec
と見積もられる。内部メモリ１１における記憶時間（書込み時間）として5msecの待機時間Ｔ３が必要とされるが、ＣＰＵ９が並行して次の256バイトの設定データを読み出すことにより、この待機時間Ｔ３は所要時間には含まれなくなる。ＣＰＵ９が外部メモリ５７から分割されたダウンロードデータを読み出してから内部メモリ１１に書き込みを始めるまでの準備時間Ｔ４を0.1msecと仮定すると、256バイトの分割されたダウンロードデータの書き込みに必要な所要時間Ｔ５は、約6.116msecとなる。128キロバイトの設定データを書き込む場合は256バイトの分割されたダウンロードデータを512回送信するため、所要時間は約3.13秒となる。
【００４９】
このような評価により、本実施形態での内部メモリ１１の設定動作の動作時間は、比較例に比べて、約15.3秒から約3.13秒に大幅に短縮化されることが分かる。特に、本実施形態では、光トランシーバ１Ａの量産時にコンピュータ装置５３と回路基板５１との間のデータ通信の工程を省くことができ、光トランシーバ内のＣＰＵのみの能動的な処理によって効率的に外部メモリから内部メモリにダウンロードデータを書き込むことができる。その結果、光トランシーバ１Ａの製造時の内部メモリに係るダウンロードの時間を短縮化することができる。
［第２実施形態］
（光トランシーバの構成）
【００５０】
まず、第２実施形態の前提となる光トランシーバの比較例の構成について説明する。
【００５１】
図２１は、比較例にかかる光トランシーバ９０１Ｂの概略構成を示すブロック図である。この光トランシーバ９０１Ｂは、光通信システム等で光信号を送受信するために使用される機器である。光トランシーバ９０１Ｂは、光合波機能、光分波機能、光−電気相互変換機能、電気波形整形機能等を備える。光トランシーバ９０１Ｂは、CFP4  MSA（100Gbit Form-factor Pluggable 4  Multi-Source  Agreement）に準拠して100Gbpsの光通信を実現する。図２１に示されるように、光トランシーバ９０１Ｂは、ＣＤＲ１０１、ＬＤＤ（Laser  Diode  Driver）１０３、光送信デバイスであるＴＯＳＡ（Transmitter  Optical  Sub-assembly）５、ＣＤＲ（Clock  Data  Recovery）１０５、ＴＩＡ（Transimpedance  Amplifier）１０７、光受信デバイスであるＲＯＳＡ（Receiver  Optical  Sub-assembly）７、及び演算装置であるＣＰＵ９０９等を含んで構成されている。
【００５２】
ＴＯＳＡ５は、４チャネルの光信号を生成するための発光素子である４つのレーザダイオード、光合波器等を内蔵している。ここで、チャネルは電気信号あるいは光信号を伝達する伝送路を意味し、複数のチャネルは互いに並行に設置された、それぞれ独立な信号を伝送する複数の伝送路を意味する。このＴＯＳＡ５は、外部からの４チャネルの電気信号（電気入力信号）ＴＸを基にそれぞれ波長の異なる４チャネルの光信号を生成し、それらの光信号を光出力信号Ｏｏｕｔに合波して出力する。ＲＯＳＡ７は、４チャネルの光信号を受信するための受光素子である４つのフォトダイオード、光分波器等を内蔵している。このＲＯＳＡ７は、外部から光入力信号Ｏｉｎを受け、光入力信号Ｏｉｎを互いに波長の異なる４チャネルの光信号に分波する。さらに、ＲＯＳＡ７は、それぞれの４チャネルの光信号を受光して、それらの光信号を光電流（電気信号）に変換する。
【００５３】
ＬＤＤ１０３は、４チャネルの電気信号ＴＸを基にＴＯＳＡ５内の４つのレーザダイオードをそれぞれ変調し光信号を出力させる回路ユニットである。ＴＩＡ１０７は、ＲＯＳＡ７内の４チャネルのフォトダイオードから出力された４つの光電流のそれぞれを電気信号（出力電気信号）ＲＸに変換する回路ユニットである。ＬＤＤ１０３及びＴＩＡ１０７は、４チャネル分の機能を内蔵している。ＣＤＲ１０１，１０５のそれぞれは、外部からの４つの電気信号ＴＸ、及びＴＩＡ１０７からの４つの電気信号ＲＸを波形整形する回路ユニットである。なお、ＬＤＤ１０３はＴＯＳＡ５に内蔵される場合もある。また、ＣＤＲ１０１，１０５は一体化された回路ユニットであってもよい。ここで、光トランシーバ９０１Ｂは、電気信号ＴＸ，ＲＸを多重及び分離するための回路部、あるいは、電気信号ＴＸ，ＲＸをｎ：ｍ（ｎ，ｍ：任意の正の整数）で相互変換するための回路部等を含んでいてもよい。
【００５４】
ＣＰＵ９０９は、ワンチップマイクロコントローラ、ＦＰＧＡ（Field Programmable Gate Array）あるいはＣＰＬＤ（Complex Programmable Logic Device）等のロジック回路、又はこれらの組み合わせによって構成された演算装置である。ＣＰＵ９０９は、自身の内蔵する内部メモリ（図示せず）に格納されたプログラム（ファームウェア）を実行して、例えば、光出力信号Ｏｏｕｔ及び電気出力信号ＲＸの出力のための動作制御を行う。ＣＰＵ９０９は、外部のホスト装置（図示せず）とＩ２Ｃ（Inter-Integrated Circuit）、ＭＤＩＯ（Management Data Input/Output）等のシリアル通信の通信線Ｌ１を介して接続され、ホスト装置における光トランシーバ９０１Ｂの内部の監視、又は光トランシーバ９０１Ｂの動作制御が可能とされている。また、ＣＰＵ９０９は、ホスト装置にアラーム信号を通知するための通信線Ｌ２、ホスト装置から光出力パワーを切り換えたり光出力をオン／オフするための制御信号を受け取るための通信線Ｌ３、及びホスト装置からＣＰＵ９０９をリセットするためのリセット信号を受け取るための通信線Ｌ４を備えている。さらに、ＣＰＵ９０９は、ＣＰＵ９０９内部にファームウェアをダウンロードするための一組のクロック信号およびデータ信号を伝達する通信線Ｌ９も備えている。また、ＣＰＵ９０９は、ＣＤＲ１０１、１０５、ＬＤＤ１０３、及びＴＩＡ１０７等とＳＰＩ（Serial Peripheral Interface）、Ｉ２Ｃ等のシリアル通信によって接続するため内部通信バスＬ６と、ＣＤＲ１０１，１０５、ＬＤＤ１０３、及びＬＩＡ１０７のそれぞれをリセットするための内部通信線Ｌ１１，Ｌ１２，Ｌ１３と、光出力信号を停止するための制御信号TxDISABLEをＬＤＤ１０３に伝達するための内部通信線Ｌ１４を備えている。
【００５５】
上記の比較例にかかる光トランシーバ９０１ＢのＣＰＵ９０９の内部メモリに係るダウンロードについて説明する。光トランシーバ９０１Ｂにおいて、内部メモリにファームウェアが書き込まれた状態にするには、本体の組立前に予め内部にファームウェアが書き込まれたＣＰＵ９０９を用意して、それを光トランシーバ９０１Ｂの回路基板に実装することも考えられる。しかし、ＣＰＵ９０９が回路基板に実装されている状態でファームウェアを書き込むことが利便性が高いため、図２２に示す構成を用いて光トランシーバ９０１ＢのＣＰＵ９０９の内部メモリにファームウェアの書き込みを行うことが好ましい。すなわち、データ変換用の回路基板５１を用意し、回路基板５１上に信号変換用の演算装置であるＣＰＵ５５と光トランシーバ９０１Ｂとを搭載する。この際、回路基板５１上でＣＰＵ５５と光トランシーバ９０１Ｂとを通信線Ｌ１によって通信可能に接続し、ＣＰＵ５５と外部のパーソナルコンピュータ等のコンピュータ装置５３とをＵＳＢ（Universal Serial Bus）通信の通信線Ｌ８によって通信可能に接続する。なお、通信線Ｌ８には、ＵＳＢ通信の替わりにＵＡＲＴ通信が使用されても良い。さらに、光トランシーバ９０１Ｂと外部のファームウェア書き込み用装置であるファームウェアライタ５９とを通信線Ｌ９経由で通信可能に接続し、コンピュータ装置５３とファームウェアライタ５９とをＵＳＢ通信の通信線Ｌ１０によって通信可能に接続する。なお、ファームウェアも光トランシーバ９０１Ｂの動作に必要な内部情報の一部である。
【００５６】
このような接続構成において、コンピュータ装置５３は、予めコンピュータ装置５３に格納されたファームウェアをＵＳＢ通信を用いてファームウェアライタ５９に送信する。それに応じて、ファームウェアライタ５９は、コンピュータ装置５３から受信したファームウェアを、通信線Ｌ９を介して光トランシーバ９０１Ｂ内のＣＰＵ９０９の内部メモリに書き込む。これにより、光トランシーバ９０１Ｂに最初にＣＰＵ９０９の内部メモリにファームウェアが書き込まれる。ＣＰＵ９０９は、自身の内蔵する内部メモリにファームウェアが書き込まれていないと、内部の演算処理も外部のデバイスとの通信等も何も処理を行わない状態にある。従って、まず最初に、ファームウェアライタ５９がＣＰＵ９０９のファームウェア書き込み用のクロック端子及びデータ端子に通信線Ｌ９を介してそれぞれ所定のクロック信号及びデータ信号を送信し、内部メモリにファームウェアを書き込む（ファームウェアが書き込まれていなくても、通信線Ｌ９を介してファームウェアライタ５９と通信する機能は基本的機能として備わっている）。ファームウェアライタ５９は、ＣＰＵ９０９にファームウェアを書き込むための専用の通信規約（プロトコル）に準拠したクロック信号とデータ信号を生成する装置である。内部メモリにファームウェアを書き込むことによって、少なくとも、光トランシーバ９０１Ｂを通信線Ｌ１を介してＣＰＵ５５と通信可能な状態にすることができる。
【００５７】
図２３には、光トランシーバ９０１ＢのＣＰＵ９０９の内部メモリに係るファームウェアのダウンロードのシーケンスを示している。図２３に示すように、まず、コンピュータ装置５３は、ＵＳＢ通信を用いてファームウェアライタ５９にファームウェアの書き込み開始を指示する。それに応じて、ファームウェアライタ５９は、光トランシーバ１ＢのＣＰＵ９０９に接続要求の電文を送信する（ステップＳ９１１）。次に、コンピュータ装置５３は、ファームウェアライタ５９にＣＰＵ９０９の内部メモリの内容消去を指示する。それに応じて、ファームウェアライタ５９は、ＣＰＵ９０９にメモリ消去要求の電文送信し、これによりＣＰＵ９０９の内部メモリの全領域のデータが消去される（ステップＳ９１２）。その後、コンピュータ装置５３は、書き込み対象のファームウェアのうちのカーネルプログラムを所定データ量に分割してＵＳＢ通信によってファームウェアライタ５９に送信する。それに応じて、ファームウェアライタ５９は、受信したカーネルプログラムを通信線Ｌ９を介してＣＰＵ９０９の内部メモリに書き込む（ステップＳ９１３）。その後、ファームウェアライタ５９は、所定の時間（例えば５ｍｓｅｃ）ほど経過した後に、コンピュータ装置５３にカーネルプログラムの書き込み完了を通知するための受信伝文を返信する（ステップＳ９１４）。このステップＳ９１３〜Ｓ９１４の処理は、カーネルプログラムの全データの書き込みが終了するまで繰り返し実行される（カーネルプログラムの書き込み処理Ｐ９０１）。この繰り返しの回数は、カーネルプログラムのデータ量を、１つの通信電文に含めることができる所定データ量で割った商に等しいか、またはその剰余の分に応じてそれより少し多くなる。さらに、コンピュータ装置５３は、書き込み対象のファームウェアのうちのアプリケーションプログラムを所定データ量に分割してファームウェアライタ５９に送信する。それに応じて、ファームウェアライタ５９は、受信したアプリケーションプログラムを通信線Ｌ９を介してＣＰＵ９０９の内部メモリに書き込む（ステップＳ９１５）。その後、ファームウェアライタ５９は、所定の時間（例えば５ｍｓｅｃ）ほど待機した後に、コンピュータ装置５３にアプリケーションプログラムの書き込み完了を通知するための受信伝文を返信する（ステップＳ９１６）。このステップＳ９１５〜Ｓ９１６の処理は、アプリケーションプログラムの全データの書き込みが終了するまで繰り返し実行される（アプリケーションプログラムの書き込み処理Ｐ９０２）。この繰り返しの回数は、アプリケーションプログラムのデータ量を上述の所定データ量で割った商に等しいか、またはその剰余の分に応じてそれよりも少し多くなる。そして、コンピュータ装置５３は、ファームウェアライタ５９にファームウェア書き込みの終了を指示する。それに応じて、ファームウェアライタ５９は、ＣＰＵ９０９に切断要求の通信電文を送信する（ステップＳ９１７）。それによって、ＣＰＵ９０９は、内部メモリに係るファームウェアのダウンロードを終了する。
【００５８】
次に、第２実施形態の光トランシーバの構成について説明する。
【００５９】
図９は、第２実施形態にかかる光トランシーバ１Ｂの概略構成を示すブロック図である。以下では、比較例に係る光トランシーバ９０１Ｂとの相違点のみについて説明する。図９に示す光トランシーバ１ＢのＣＰＵ９は、新たなＩ２Ｃ通信等のシリアル通信用の通信線として、一組のクロック信号およびデータ信号を伝達する通信線Ｌ１５をさらに備えている。そして、光トランシーバ１ＢのＣＰＵ９は、この通信線Ｌ１５を介して外部のメモリからそのメモリに格納されているファームウェアを能動的に読み出して内部メモリに格納する機能を有する（詳細は後述する）。ＣＰＵ９のファームウェアの書き込み機能以外の基本的機能は、光トランシーバ９０１ＢのＣＰＵ９０１の基本的機能と同一である。また、ＣＰＵ９の詳細構成は、図２に示した構成と同一であり、内部メモリとしてフラッシュＲＯＭ２１を内蔵する。ＣＰＵ９内のプロセッサ１９は、フラッシュＲＯＭ２１に格納された内部情報、すなわち、設定データ及びファームウェア等を参照あるいは実行する。
（光トランシーバの内部情報の書き込み方法）
【００６０】
次に、上記の第２実施形態にかかる光トランシーバ１ＢのＣＰＵ９の内部メモリに係るダウンロード方法について説明する。
【００６１】
本実施形態では、図１０および図１１に示す構成を用いて光トランシーバ１ＢのＣＰＵ９の内部メモリにファームウェアをダウンロードする。すなわち、データ変換用の回路基板５１を用意し、信号変換用の演算装置であるＣＰＵ５５と、光トランシーバ１Ｂと、EEPROM等の外部メモリ５７と、を回路基板５１上に搭載する。この際、ＣＰＵ５５、外部メモリ５７、及び光トランシーバ１ＢをＩ２Ｃ通信の通信線Ｌ１５によって互いに通信可能に接続し、ＣＰＵ５５と光トランシーバ１Ｂとを、ＭＤＩＯ通信の通信線Ｌ１によって通信可能に接続する。さらに、ＣＰＵ５５と外部のパーソナルコンピュータ等のコンピュータ装置５３とをＵＳＢ通信の通信線Ｌ８によって通信可能に接続する。このような接続構成を用いて、コンピュータ装置５３は、予めコンピュータ装置５３に格納されたファームウェアをＵＳＢ通信を用いてＣＰＵ５５に送信する。これに応じて、ＣＰＵ５５は、コンピュータ装置５３から受信したファームウェアを、Ｉ２Ｃ通信のデータ（通信電文）に変換して送信することによって外部メモリ５７に書き込む。光トランシーバ１ＢのＣＰＵ９は、上記のようにして予めファームウェアが書き込まれた外部メモリ５７からファームウェアを読み出して、ＣＰＵ９の内部メモリに能動的にファームウェアを格納する（ダウンロードする）機能を有する。なお、外部メモリ５７は、光トランシーバ１Ｂの内部制御に係る設定データを、ファームウェアに代えて、あるいはファームウェアに加えて格納していても良い。また、それに応じて、ＣＰＵ９は、その設定データを、ファームウェアに代えて、あるいはファームウェアに加えて内部メモリにダウンロードしても良い。ここでは、コンピュータ装置５３からＣＰＵ５５を経由した外部メモリ５７へのファームウェアの書き込みは、例えば、一つの光トランシーバ１Ｂ内の内部メモリへファームウェアのダウンロードが終了した後に、光トランシーバ１Ｂを別の光トランシーバ１Ｂ’に交換して、別の光トランシーバ１Ｂ’の内部メモリへファームウェアのダウンロードを行うときには再度実行する必要は無い。すなわち、最初に一度外部メモリへのファームウェアの書き込みを行っておけば、そのファームウェアが書き込まれた外部メモリ５７を回路基板５１と共に、複数の光トランシーバ１Ｂの内部メモリにファームウェアをダウンロードするのに使用してもよい。言い換えれば、コンピュータ装置５３及びＣＰＵ５５は、外部メモリ５７のファームウェアの最初の書き込み時のみに必要とされ、その後は図１１の構成から取り外されてもよい。
【００６２】
図１２は、上述のようにしてＣＰＵ９の内部メモリにダウンロードされたファームウェアの格納状態を示している。内部メモリは、論理的に分離されたデータ格納領域である３つのメモリバンクＢＫ０，ＢＫ１，ＢＫ２を有している。内部メモリには、ファームウェアとして、ＣＰＵ９の内部初期設定や各種の通信インタフェースモジュールに係る通信機能等の基本的機能の実行に必要なカーネルプログラムと、ＣＰＵ９の光トランシーバ１Ｂ内部の監視・制御等の応用機能の実行に必要なアプリケーションプログラムとが格納される。メモリバンクＢＫ０には、カーネルプログラムのうちのブートプログラムが格納された領域Ａ１と、バンク切換情報及びカーネルプログラムの実行に必要なデータが格納された領域Ａ２とが含まれる。メモリバンクＢＫ１には、“アプリケーションＡ”のプログラムが格納され、メモリバンクＢＫ２には、“アプリケーションＢ”のプログラムが格納され、メモリバンクＢＫ１とメモリバンクＢＫ２とが切り換えられて読み出されることによって、ＣＰＵ９で“アプリケーションＡ”と“アプリケーションＢ”のいずれかのアプリケーションプログラムが切り替えて実行される。例えば、メモリバンクＢＫ２は、メモリバンクＢＫ１に格納されたアプリケーションプログラムのアップデート用の格納領域として設定される。ここで、ＣＰＵ９が能動的に動作して外部メモリ５７からアプリケーションプログラムをダウンロードすることを可能にするために、図１１に示す構成を用いて、コンピュータ装置５３からファームウェアライタ５９を経由してメモリバンクＢＫ０にカーネルプログラムが予め書き込まれている。すなわち、カーネルプログラムは、ＣＰＵ９が外部メモリ５７から能動的にアプリケーションプログラムを内部メモリにダウンロードするためのプログラムコードを有している。
【００６３】
図１３は、ＣＰＵ９による内部メモリ１１に係るファームウェアのダウンロード手順を示すフローチャートである。外部からの制御によりＣＰＵ９がリセットされたことを契機に、ＣＰＵ９は、初期設定を実行する（ステップＳ２０１）。この初期設定において、ＣＰＵ９は、制御信号TxDISABLEがオンされて光出力信号の出力を停止するとともに、ＣＤＲ１０１，１０５、ＬＤＤ１０３、及びＬＩＡ１０７のそれぞれにリセット信号を出力して主信号（電気入力信号及び電気出力信号等）を処理しない状態に設定する。次に、ＣＰＵ９は、内部メモリのメモリバンクＢＫ１，ＢＫ２におけるアプリケーションプログラムの格納状態を検出する（ステップＳ２０２）。検出の結果、アプリケーションプログラムが格納されていない場合には（ステップＳ２０３；ＮＯ）、ＣＰＵ９は、外部メモリ５７にアクセスする（ステップＳ２０４）。その結果、ＣＰＵ９が、外部メモリ５７からの応答を検出した場合には（ステップＳ２０５；ＹＥＳ）、書き込みモード（ダウンロードモード）に遷移する。ＣＰＵ９は、外部メモリ５７に格納されているファームウェア（アプリケーションプログラム）の先頭を示すアドレスを先頭アドレスカウンタにセットする（例えば、０番地にリセットする）（ステップＳ２０６）。さらに、ＣＰＵ９は、ステップＳ２０７で先頭アドレスカウンタがファームウェア（アプリケーションプログラム）のサイズに相当する最大値に達したと判定されるまでの間、ステップＳ２０８〜Ｓ２１０の処理を繰り返す。詳細には、ＣＰＵ９は、外部メモリ５７の先頭アドレスカウンタの示すアドレスから、所定データ量（例えば256バイト）のアプリケーションプログラムを能動的に読み出し、読み出したアプリケーションプログラムを通信線Ｌ１５を介して受信する（ステップＳ２０８）。その後、ＣＰＵ９は、受信した所定データ量のアプリケーションプログラムを内部メモリに能動的に書き込む（ステップＳ２０９）。そして、ＣＰＵ９は、所定データ量のアプリケーションプログラムの書き込み終了後に先頭アドレスカウンタに所定データ量に応じた値を加算する（ステップＳ２１０）。
【００６４】
一方、ステップＳ２０３において、アプリケーションプログラムが格納済みであることを検出した場合（ステップＳ２０３；ＹＥＳ）、ステップＳ２０５において外部メモリ５７からの応答を検出しなかった場合（ステップＳ２０５；ＮＯ）、あるいはステップＳ２０７おいて先頭アドレスカウンタが最大値に達したと判定した場合（ステップＳ２０７；ＮＯ）、ＣＰＵ９は、起動処理を行った後に（ステップＳ２１１）、光トランシーバ１Ｂの内部の監視又は光トランシーバ１Ｂの動作制御を行う動作モードである通常モードに遷移する（ステップＳ２１２）。この起動処理では、ＣＰＵ９のリセット、アプリケーションプログラムの起動、各回路１０１，１０３，１０５，１０７に対するリセット信号の解除、各回路のレジスタの初期設定、制御信号TxDISABLEのオフ設定が行われる。通常モードにおいて、ＣＰＵ９は、光トランシーバ１Ｂ内における各種動作状態のモニタ及びアラーム判定等を含む周期処理を繰り返す。
【００６５】
図１４は、光トランシーバ１Ｂの内部メモリに係るダウンロード前の外部メモリ５７へのファームウェアの書き込みのシーケンスを示している。図１４に示すように、まず、コンピュータ装置５３は、所定データ量（例えば、256バイト）毎に分割されたアプリケーションプログラムを送信電文に含めて、ＵＳＢ通信を用いてＣＰＵ５５に送信する（ステップＳ３０１）。その後、ＣＰＵ５５は、Ｉ２Ｃ通信のデータ（通信電文）に変換された分割されたファームウェアの一つを通信線Ｌ１５を介して外部メモリ５７に書き込む（ステップＳ３０２）。そして、ＣＰＵ５５は、所定の時間（例えば５ｍｓｅｃ）ほど待機した後に（ステップＳ３０３）、分割されたファームウェアの一つの書き込みが完了したことを通知するために、コンピュータ装置５３に受信伝文を返信する（ステップＳ３０４）。このステップＳ３０１〜Ｓ３０４の処理は、全ての分割されたファームウェア（アプリケーションプログラム）の書き込みが終了するまで繰り返し実行される。なお、この繰り返しの回数は、アプリケーションプログラム全体のデータ量を、1つの通信電文に含めることができる所定データ量で割った商に等しいか、またはその剰余の分それよりも少し多くなる。
【００６６】
図１５は、図１４に示す動作よって予めファームウェアが格納された外部メモリ５７を用いた、光トランシーバ１ＢのＣＰＵ９の内部メモリに係るダウンロードのシーケンスを示している。まず、図２３に示す比較例におけるステップＳ９１１〜Ｓ９１４，Ｓ９１７の動作と同様の手順で、ＣＰＵ９の内部メモリにカーネルプログラムのみが格納される（カーネルプログラムの書き込み処理Ｐ３０１）。その後、書き込みモード（ダウンロードモード）に遷移した状態において、ＣＰＵ９は、外部メモリ５７から所定データ量（例えば256バイト）毎に分割されたアプリケーションプログラムを能動的に読み出し、読み出した分割されたアプリケーションプログラムを内部メモリに能動的に書き込む（ステップＳ３１６）。ＣＰＵ９は、このステップＳ３１６の処理を、全ての分割されたアプリケーションプログラムの書き込みが終了するまで順次所定の順番にて繰り返す（アプリケーションプログラムの書き込み処理Ｐ３０２）。なお、この繰り返しの回数は、アプリケーションプログラム全体のデータ量を、１つの通信電文に含めることができる所定データ量で割った商に等しいか、またはそれよりも少し多くなる。
【００６７】
以上説明した光トランシーバ１Ｂ及び光トランシーバ１Ｂのファームウェアのダウンロード方法の作用効果について述べる。
【００６８】
光トランシーバ１Ｂにおいては、ＣＰＵ９が通信線Ｌ１５を介して外部メモリ５７を検出したとき、ＣＰＵ９は、外部メモリ５７からアプリケーションプログラムを能動的に受信し、その受信したアプリケーションプログラムを能動的に内部メモリに書き込む。これにより、アプリケーションプログラム等のダウンロードデータを予め格納しておいた外部メモリ５７を通信線Ｌ１５を介して光トランシーバ１Ｂの所定の端子に接続すると、光トランシーバ１Ｂは、能動的に内部メモリにダウンロードデータを書き込む。また、内部メモリへのアプリケーションプログラムのダウンロードにおいて、コンピュータ装置５３とファームウェアライタ５９との間のＵＳＢ通信等のシリアル通信による通信工程及び通信時間を省くことができる。その結果、内部メモリへのダウンロード処理を効率的に行うことによって、ダウンロードの所要時間を短縮できる。
【００６９】
また、ＣＰＵ９は、内部メモリにおけるアプリケーションプログラムの格納状態を検出し、格納状態に応じてアプリケーションプログラムの受信を開始するように構成されている。これにより、内部メモリにおけるアプリケーションプログラムの書き込み状況に応じて、必要な時に効率的に内部メモリへのアプリケーションプログラムのダウンロードを開始させることができる。それにより、既にダウンロードが行われた光トランシーバに同じダウンロードデータを重複して上書きしてしまうことを回避することができる。
【００７０】
ここで、本実施形態におけるダウンロード処理の効率化を定量的に評価する。図１６には、本実施形態にかかる光トランシーバ１Ｂの内部メモリ係るダウンロードの所要時間を表したタイミングチャートを示している。これらのタイミングチャートでは、２５６バイトのアプリケーションプログラムを１回の通信電文で書き込む際の動作時間が見積もられている。
【００７１】
図２３に示した比較例における内部メモリに係るダウンロードにおいては、内部メモリの全領域の消去に約3秒、ファームウェア全体、すなわちカーネルプログラム及びアプリケーションプログラムの書き込みに約10秒かかることが想定され、全体の所要時間は約13秒と見積もられる。このとき、内部メモリに格納されるカーネルプログラムとアプリケーションプログラムのそれぞれのデータ量の比を2:8であると仮定すると、上記約10秒の内訳として、カーネルプログラムの書き込み時間とアプリケーションプログラムの書き込み時間は、それぞれ約2秒、約8秒と想定される。
【００７２】
一方、図１６に示すように、本実施形態においては、光トランシーバ１Ｂ内のＣＰＵ９が外部メモリ５７から、通信速度400kbpsのＩ２Ｃ通信によって256バイトのアプリケーションプログラムを読み出す時間Ｔ１は、
Ｔ１  ＝  256byte×(8bit+1bit)/400kbps  ≒  5.76msec
と見積もられる。また、ＣＰＵ９が通信電文を解析して内部メモリに256バイトのアプリケーションプログラムを書き込むための時間Ｔ２は、1バイトあたりの書き込み時間を85μsecと想定して、
Ｔ２  ＝  256byte×85μsec  ≒  21.76msec
と見積もられる。ＣＰＵ９が外部メモリ５７から256バイトのアプリケーションデータを読み出してからそれを内部メモリに書き込みを始めるまでの準備時間Ｔ４を0.5msecと仮定すると、256バイトのアプリケーションプログラムのダウンロードの所要時間Ｔ５は約28msecとなる。内部メモリのメモリバンクＢＫ１又はメモリバンクＢＫ２の全領域32キロバイトにアプリケーションプログラムを書き込む場合は、256バイトの設定データの送信を128回繰り返す必要があるため、アプリケーションプログラム全体のダウンロードの所要時間は約3.6秒となる。さらに、内部メモリの全領域の消去に上述の比較例と同じ3秒、カーネルプログラムの書き込み時間に上述の比較例と同じ2秒かかるので、カーネルプログラムとアプリケーションプログラムとを合わせたファームウェア全体のダウンロードの所要時間は8.6秒と見積もられる。
【００７３】
このような評価により、本実施形態での内部メモリに係るダウンロードの所要時間は、比較例に比べて、約13秒から約8.6秒に短縮されることが分かる。特に、本実施形態では、光トランシーバ１Ｂの製造時にコンピュータ装置５３と回路基板５１との間のデータ通信の工程を省くことができ、光トランシーバ１Ｂの内部メモリへのダウンロードデータの書き込み（ダウンロード）を効率化することができる。
【符号の説明】
【００７４】
１Ａ，１Ｂ…光トランシーバ、９…ＣＰＵ（演算装置）、１１…内部メモリ、２１…フラッシュＲＯＭ（内部メモリ）、２９…通信インタフェース（通信インタフェース部）、５７…外部メモリ、Ｌ１，Ｌ１５…通信線（通信インタフェース部）、Ｌ６…内部通信バス、ＬＰ１，ＬＰ２，ＬＰ３…内部電源線、Ｏｉｎ…光入力信号、Ｏｏｕｔ…光出力信号、ＲＸ…電気出力信号、ＴＸ…電気入力信号。
【図１】
2018026748.tif 000003
【図２】
2018026748.tif 000004
【図３】
2018026748.tif 000005
【図４】
2018026748.tif 000006
【図５】
2018026748.tif 000007
【図６】
2018026748.tif 000008
【図７】
2018026748.tif 000009
【図８】
2018026748.tif 000010
【図９】
2018026748.tif 000011
【図１０】
2018026748.tif 000012
【図１１】
2018026748.tif 000013
【図１２】
2018026748.tif 000014
【図１３】
2018026748.tif 000015
【図１４】
2018026748.tif 000016
【図１５】
2018026748.tif 000017
【図１６】
2018026748.tif 000018
【図１７】
2018026748.tif 000019
【図１８】
2018026748.tif 000020
【図１９】
2018026748.tif 000021
【図２０】
2018026748.tif 000022
【図２１】
2018026748.tif 000023
【図２２】
2018026748.tif 000024
【図２３】
2018026748.tif 000025