(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-17
(45)【発行日】2023-05-25
(54)【発明の名称】モジュール及びこれを備える情報処理装置、並びにモジュールのプログラムデータを更新するプログラムデータ更新方法
(51)【国際特許分類】
G06F 8/656 20180101AFI20230518BHJP
【FI】
G06F8/656
(21)【出願番号】P 2018238133
(22)【出願日】2018-12-20
【審査請求日】2021-10-11
(73)【特許権者】
【識別番号】591230295
【氏名又は名称】NTTエレクトロニクス株式会社
(74)【代理人】
【識別番号】100119677
【氏名又は名称】岡田 賢治
(74)【代理人】
【識別番号】100115794
【氏名又は名称】今下 勝博
(72)【発明者】
【氏名】七海 康幸
(72)【発明者】
【氏名】草山 敦
(72)【発明者】
【氏名】木戸 清
(72)【発明者】
【氏名】赤堀 裕二
【審査官】加藤 優一
(56)【参考文献】
【文献】特開2012-093961(JP,A)
【文献】特開2008-257564(JP,A)
【文献】特開2006-201878(JP,A)
【文献】特開2010-195111(JP,A)
【文献】特開2009-014858(JP,A)
【文献】特開2005-032014(JP,A)
【文献】特開2008-165263(JP,A)
【文献】特開2013-105463(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00 - 8/38
G06F 8/60 - 8/77
G06F 9/44 - 9/445
G06F 9/451
(57)【特許請求の範囲】
【請求項1】
電子部品を動作させることによって機能するモジュールにおいて、前記電子部品の動作を制御するマイクロプロセッサ及び前記電子部品の制御プログラムを更新するプログラムデータ更新方法であって、
前記マイクロプロセッサは、
レコードの始まりを示しかつ更新対象を識別する識別情報を含むヘッダレコード、前記ヘッダレコードに記された前記識別情報に対応する前記更新対象の前記制御プログラムを更新するためのプログラムデータ、レコードの終端を示すエンドレコードが順に記載されたブロックを含む更新情報を取得し、前記更新情報に含まれる前記プログラムデータをブロックごとにメモリー上に復元し、
前記ヘッダレコードに記された前記識別情報を用いて前記更新対象が前記マイクロプロセッサ及び前記電子部品のいずれであるかを判定し、
前記更新対象
に対応した、前記メモリー上に復元された前記プログラムデータを用いて、前記更新対象の制御プログラム
の更新
を実行する、
プログラムデータ更新方法。
【請求項2】
前記更新対象の前記識別情報は、前記更新対象を識別する識別コード以外に、前記マイクロプロセッサが前記電子部品にプログラムデータをダウンロードするときに必要なパラメータをさらに含み、
前記マイクロプロセッサは、
前記パラメータと前記識別コードを用いて、前記電子部品のプログラムデータ更新手段の仕様を識別し、
当該電子部品のプログラムデータを、前記仕様に従って、当該電子部品に転送する、
請求項1に記載のプログラムデータ更新方法。
【請求項3】
前記マイクロプロセッサは、
前記電子部品に固有の前記識別コードと前記電子部品のプログラムデータ更新手段の前記仕様との対応表を参照することで、前記ヘッダレコードに記された前記識別情報に対応する前記電子部品のプログラムデータ更新手段の前記仕様を識別し、
当該電子部品のプログラムデータを、前記仕様に従って、当該電子部品に転送する、
請求項2に記載のプログラムデータ更新方法。
【請求項4】
前記モジュールは、不揮発メモリーをさらに備え、
前記マイクロプロセッサは、
前記電子部品の前記プログラムデータの複製を前記不揮発メモリーに記録した後に、前記不揮発メモリーに保存された前記プログラムデータを用いて、前記更新対象の前記電子部品の制御プログラムを更新する、
請求項1から3のいずれかに記載のプログラムデータ更新方法。
【請求項5】
電子部品を動作させることによって機能するモジュールであって、
前記モジュールは、プログラムデータを記憶するメモリーと前記電子部品の動作を制御するマイクロプロセッサを備え、
前記マイクロプロセッサは、
レコードの始まりを示しかつ更新対象の識別情報を含むヘッダレコード、前記ヘッダレコードに記された前記識別情報に対応する更新対象の制御プログラムを更新するためのプログラムデータ、レコードの終端を示すエンドレコードが順に記載されたブロックを含む更新情報を取得し、前記更新情報に含まれるプログラムデータをブロックごとに前記メモリー上に復元し、
前記ヘッダレコードに記された前記識別情報を用いて前記更新対象が前記マイクロプロセッサ及び前記電子部品のいずれであるかを判定し、
前記マイクロプロセッサと前記電子部品の間を接続する通信手段を用いて
、前記電子部品のプログラムデータ
の更新
を実行することを特徴とする、
モジュール。
【請求項6】
前記モジュールは、
光信号を、送信、受信、増幅又はスイッチする光モジュールと、
前記電子部品の制御のもとで、前記光モジュールに含まれる光デバイスを動作させる駆動回路と、
を含む、
請求項5に記載のモジュール。
【請求項7】
請求項5から6のいずれかに記載の少なくとも1つのモジュールと、
前記更新情報を外部より受信する通信部と、
前記通信部の受信した前記更新情報を、前記モジュールに備わる各マイクロプロセッサに転送する上位機器と、
を備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置に含まれるモジュールの電子部品に対するプログラムデータ更新方法に関する。
【背景技術】
【0002】
非特許文献1の6頁「全体概要」の章に書かれている様に、モトローラ(登録商標)Sレコード形式(以下、Sレコード形式と称する。)のデータは、マイクロプロセッサ内部の不揮発メモリーに、外部のホストコンピュータからプログラムデータを書き込むことに利用されている。Sレコード形式の仕様については、モトローラ(登録商標)による非特許文献2のAPPENDIX Cに書かれている。マイクロプロセッサは、Sレコード形式データに含まれる、S0からS9のレコードタイプを参照し、S1、S2ないしS3のレコードに含まれるアドレスの情報をもとに、メモリー上にプログラムデータを復元する。
【0003】
光伝送装置内に設置された光モジュールは、同モジュールに含まれるマイクロプロセッサの制御プログラムを運用中に更新する手段として、通信手段によって接続された上位機器から、Sレコード形式のデータを用いて、プログラムデータをダウンロードし、更新する機能を有している。
【0004】
しかしながら、このプログラムデータの更新手段は、上位機器と通信手段で接続された、マイクロプロセッサの制御プログラムのプログラムデータを更新することが目的であり、光モジュール内に含まれる他のプログラム可能な電子部品の制御プログラムのプログラムデータの更新は考慮されていなかった。したがって、上位機器と接続されていないプログラム可能な電子部品の制御プログラムのプログラムデータを更新するには、これらの電子部品に対して個別に準備された、別の通信手段から行う必要があるので、光伝送装置の運用中に更新することが困難であるという問題があった。
【先行技術文献】
【非特許文献】
【0005】
【文献】「Renesas SynergyTM 内蔵フラッシュメモリ内のアプリケーション更新の事例」、ルネサスエレクトロニクス、Rev.1.01、2017
【文献】「S-RECORD OUTPUT FORMAT」、「MOTOROLA M68000 FAMILY Programmer’s Reference Manual」Appendix C、MOTOROLA,1992
【発明の概要】
【発明が解決しようとする課題】
【0006】
本開示は、光モジュールに含まれるマイクロプロセッサの制御プログラムを運用中に、光モジュール内に含まれるプログラム可能な電子部品の制御プログラムのプログラムデータについても更新可能にすることを目的とする。
【課題を解決するための手段】
【0007】
本開示のモジュールは、
電子部品を動作させることによって機能するモジュールであって、
前記電子部品と通信手段を介して接続されたマイクロプロセッサを備え、
前記電子部品は制御プログラムを内蔵し、
前記マイクロプロセッサは、
前記通信手段を介して前記電子部品に制御データを送ることで前記電子部品を動作させ、
前記マイクロプロセッサが更新情報を受信した場合は、前記更新情報から前記電子部品に該当するプログラムデータを選択して、前記通信手段を介して前記電子部品にダウンロードする。
【0008】
具体的には、本開示に係るプログラムデータ更新方法は、
電子部品を動作させることによって機能するモジュールにおいて、前記電子部品の動作を制御するマイクロプロセッサ及び前記電子部品の制御プログラムを更新するプログラムデータ更新方法であって、
前記マイクロプロセッサは、
レコードの始まりを示しかつ更新対象を識別する識別情報を含むヘッダレコード、前記ヘッダレコードに記された前記識別情報に対応する前記更新対象の前記制御プログラムを更新するためのプログラムデータ、レコードの終端を示すエンドレコードが順に記載されたブロックを含む更新情報を取得し、前記更新情報に含まれる前記プログラムデータをブロックごとにメモリー上に復元し、
前記ヘッダレコードに記された前記識別情報を用いて前記更新対象が前記マイクロプロセッサ及び前記電子部品のいずれであるかを判定し、
前記更新対象に対応した、前記メモリー上に復元された前記プログラムデータを用いて、前記更新対象の制御プログラムを更新する。
【0009】
具体的には、本開示のモジュールは、
電子部品を動作させることによって機能するモジュールであって、
前記モジュールは、プログラムデータを記憶するメモリーと前記電子部品の動作を制御するマイクロプロセッサを備え、
前記マイクロプロセッサは、
レコードの始まりを示しかつ更新対象の識別情報を含むヘッダレコード、前記ヘッダレコードに記された前記識別情報に対応する更新対象の制御プログラムを更新するためのプログラムデータ、レコードの終端を示すエンドレコードが順に記載されたブロックを含む更新情報を取得し、前記更新情報に含まれるプログラムデータをブロックごとに前記メモリー上に復元し、
前記ヘッダレコードに記された前記識別情報を用いて前記更新対象が前記マイクロプロセッサ及び前記電子部品のいずれであるかを判定し、
前記マイクロプロセッサと前記電子部品の間を接続する通信手段を用いて前記電子部品のプログラムデータも更新することを特徴とする。
【0010】
具体的には、本開示の情報処理装置は、
本開示に係る少なくとも1つのモジュールと、
前記更新情報を外部より受信する通信部と、
前記通信部の受信した前記更新情報を、前記モジュールに備わる各マイクロプロセッサに転送する上位機器と、
を備える。
【発明の効果】
【0011】
本開示によれば、光モジュールに含まれるマイクロプロセッサの制御プログラムを運用中に、光モジュール内に含まれるプログラム可能な電子部品の制御プログラムのプログラムデータについても更新可能にすることができる。
【図面の簡単な説明】
【0012】
【
図1】関連技術により、光モジュールへプログラムデータをダウンロードする方法の一例。
【
図2】関連技術により上位機器よりダウンロードされるSレコード形式データの一例。
【
図4】第1の技術によるプログラムデータの更新方法の一例。
【
図5】第1の技術により、上位機器よりダウンロードされるSレコード形式データの一例。
【
図7】モジュールの挿抜が可能なサブモジュールを含む場合の光モジュール構成例。
【
図8】第1の技術により異なる構成の光モジュールのプログラムデータを更新する方法の一例。
【
図9】第2の技術によりプログラムデータを更新する方法の一例。
【
図10】第2の技術により、上位機器よりダウンロードされるSレコード形式データの一例。
【
図11】第3の技術により、プログラムデータを更新する方法の一例。
【
図12】第3の技術により、上位機器よりダウンロードされるSレコード形式データの一例。
【
図13】第4の技術により、光モジュール内の不揮発メモリーにプログラムデータを保存する方法の一例。
【
図14】PSoCに正常に動作していたバージョンのプログラムデータを再度ダウンロードする方法の一例。
【
図15】第4の技術による、不揮発メモリーのメモリーマップの一例。
【発明を実施するための形態】
【0013】
以下、本開示の実施形態について、図面を参照しながら詳細に説明する。なお、本開示は、以下に示す実施形態に限定されるものではない。これらの実施の例は例示に過ぎず、本開示は当業者の知識に基づいて種々の変更、改良を施した形態で実施することができる。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【0014】
(関連技術)
図1は、Sレコード形式のデータを利用した、関連技術によるプログラムデータの更新方法を示している。この図において、太い矢印は通信手段によって、更新されるプログラムデータがダウンロードされる経路を示している。
【0015】
光伝送装置には上位機器及び光モジュールが備えられ、上位機器と光モジュール内に実装されたマイクロプロセッサ#1は通信手段によって接続されている。光モジュールは、マイクロプロセッサ#1の他に、複数の光デバイス#1、#2と、それらを駆動する駆動回路#1、#2と、駆動回路#1、#2をそれぞれ制御するプログラム可能な電子部品#1、#2と、が実装されている。
【0016】
プログラム可能な電子部品#1、#2とマイクロプロセッサ#1は、通信手段によって接続されている。光モジュールのプログラムデータを更新する場合、上位機器から、光モジュール内のマイクロプロセッサ#1に、Sレコード形式で新しいプログラムデータが送られる。Sレコード形式のデータには、上記マイクロプロセッサ#1のプログラムデータのみが含まれ、マイクロプロセッサ#1は、そのプログラムデータをメモリー上に復元して実行することで、新しい制御プログラムのプログラムデータに切り替えることができる。
【0017】
図2に、この時に光モジュールに送られるSレコードの構成を示している。それぞれ四角で示したレコードは、S0、S1ないしS9というアスキーコードで始まる文字列で構成されている。これらのレコードの仕様は、非特許文献2に記載されている。
【0018】
Sレコード形式データにおいて参照するレコードタイプは、以下のとおりである。
S0レコード:Sレコードの始まりを示すヘッダレコードである。
S1~S3レコード:データの書き込み位置を指定するデータレコードであり、S1は2byteのアドレスで指定し、S2は3byteのアドレスで指定し、S3は4byteのアドレスで指定する。
S7~S9レコード:Sレコードの終端を示すエンドレコードであり、S7は4byteのアドレス指定の終了を示し、S8は3byteのアドレス指定の終了を示し、S9は2byteのアドレス指定の終了を示す。
S0、S1及びS9の組み合わせ、S0、S2及びS8の組み合わせ、又は、S0、S3及びS7の組み合わせで用いられる。本実施形態では、一例として、2byteのアドレスで指定するS0、S1及びS9の組み合わせを用いて説明する。
【0019】
しかしながら、このプログラムデータの更新方法では、マイクロプロセッサ#1以外の、プログラム可能な電子部品に必要なプログラムデータは、光モジュールが光伝送装置に設置される前の段階で、それぞれのプログラム可能な電子部品#1、#2に対して設けられた別の通信経路を通して、光伝送装置以外の電子機器からダウンロードされる。したがって、このプログラムデータの更新方法では、光伝送装置の運用中には、上位機器と通信手段をもたないプログラム可能な電子部品#1、#2の制御プログラムのプログラムデータを更新することができないという問題があった。
【0020】
(本開示に係る構成例)
図3に、本開示に係る情報処理装置の一例を示す。本開示に係る情報処理装置100は、上位機器111、モジュール112、通信部113を備える。上位機器は、メモリー114を備えていてもよい。モジュール112は、マイクロプロセッサ121、電子部品122を備える。モジュール112は、デバイス124、メモリー125を備えていてもよい。本開示に係るモジュール112は、メモリー125に格納されたプログラムをマイクロプロセッサ121に実行させることで実現してもよい。
【0021】
モジュール112は、以下の一連の動作でデバイス124を動作させることにより任意の機能を実現するモジュールであり、
図4以降に示す光モジュール12に相当する。まず、マイクロプロセッサ121は内蔵する制御プログラムにより、電子部品122に制御データを送る。次に、電子部品122は内蔵する制御プログラムにより、上記制御データに従ってデバイス124を動作させる。
【0022】
通信部113は、更新情報やその他の任意の情報を、情報処理装置100の外部から取得する。上位機器111は、モジュール112の実行、停止などのモジュール112の制御を行う機能を有し、
図4以降に示す上位機器11に相当する。上位機器111は、通信部113の取得した更新情報やその他の任意の情報を、マイクロプロセッサ121に転送する。上位機器111は、上記の情報をメモリー114に記録してもよい。モジュール112を構成する電子部品122、及びデバイス124などの構成品はそれぞれ複数であっても良い。また、上位機器111は、モジュール112を複数備えても良い。
【0023】
デバイス124は、モジュール112に備わる任意のデバイスであり、
図4以降に示す光デバイス24に相当する。電子部品122は、デバイス124の動作を制御する機能を有し、
図4以降に示すプログラム可能な電子部品22及び駆動回路23に相当する。マイクロプロセッサ121は、モジュール112に備わる電子部品122を制御する機能を有し、
図4以降に示すマイクロプロセッサ21に相当する。メモリー125は、マイクロプロセッサ121のデータを記憶する機能を有し、マイクロプロセッサ121内に備わっていてもよい。
【0024】
モジュール112としては、例えば、光送信モジュール、光受信モジュール、光増幅モジュール、光スイッチモジュールが例示できる。モジュール112が光送信モジュールの場合、デバイス124は、例えば、光源、光変調器である。モジュール112が光受信モジュールの場合、デバイス124は、例えば、受光器、増幅器である。モジュール112が光増幅モジュールの場合、デバイス124は、例えば、光増幅器である。モジュール112が光スイッチモジュールの場合、デバイス124は、例えば、光スイッチである。
【0025】
本開示では、Sレコード形式データを応用することで、マイクロプロセッサ121が電子部品122の更新も実行する。これにより、本開示は、モジュール112に含まれるマイクロプロセッサ121の制御プログラムを運用中に、モジュール112内に含まれる電子部品122のプログラムデータやその他のデータについても更新可能にする。
【0026】
(本開示の第1の技術)
図4に、本開示の第1の技術によるプログラムデータの更新方法を示す。ここでも、更新するプログラムデータをダウンロードする経路を、太い矢印で示している。この例では、光モジュール12に光デバイス24#1、光デバイス24#2が含まれ、これらをマイクロプロセッサ21#1の指示に従って駆動するために、プログラム可能な電子部品22#1、およびプログラム可能な電子部品22#2、駆動回路23#1、および駆動回路23#2が、それぞれ実装されている。駆動回路23#1はプログラム可能な電子部品22#1の制御の下で光デバイス24#1を動作させ、駆動回路23#2はプログラム可能な電子部品22#2の制御の下で光デバイス24#2を動作させる。
【0027】
光モジュール12が備える、マイクロプロセッサ21#1、プログラム可能な電子部品22#1及び22#2の制御プログラムを外部から通信部113が取得したプログラムデータで更新する場合、上位機器11はマイクロプロセッサ21#1と、プログラム可能な電子部品22#1、プログラム可能な電子部品22#2の更新用プログラムデータを含んだ、Sレコード形式のデータを更新情報としてマイクロプロセッサ21#1にダウンロードする。次に、マイクロプロセッサ21#1は、これらのプログラムデータを、メモリー25上に復元したのち、自分自身のプログラムデータを更新し、プログラム可能な電子部品22#1、プログラム可能な電子部品22#2に対応する制御プログラムデータについては、これも太い矢印の経路でプログラム可能な各電子部品22#1,#2に更新用プログラムデータD#1,D#2をダウンロードして更新する。ここで、D#1はプログラム可能な電子部品22#1のプログラムデータであり、D#2はプログラム可能な電子部品22#2のプログラムデータである。以下に、この更新方法の詳細を、Sレコード形式のデータの構成例を用いて説明する。
【0028】
図5に、本開示の更新方法で使用する、Sレコード形式のデータの構成例を示している。本開示が使用するSレコード形式のデータは、S0レコードで始まり、S1レコードを挟んで、S9レコードで終端されるまでの、一連のSレコードで構成されたブロックを複数結合したもの(B1~B4)である。これらのブロックの順番は任意である。また、ブロック内のSレコードについても、プログラムデータとエンドレコードの2つの組み合わせは、ここで示した例で使用したS1レコードとS9レコードの組み合わせの代わりに、S2レコードとS8レコード、S3レコードとS7レコードの2つの組み合わせを使用してもよく、2つの組み合わせは任意である。
【0029】
本開示によるプログラムデータの更新方法では、Sレコード形式のデータにおいて、各ブロックのS0レコードには、更新対象の識別情報が1つだけ記載され、その更新対象の識別情報には、それが含まれるブロックのプログラムデータが適用される、マイクロプロセッサ21及びプログラム可能な電子部品22に固有の識別コードが記載されている。マイクロプロセッサ21及びプログラム可能な電子部品22の識別コードとしては、例えば、光モジュール12内のマイクロプロセッサ21及びプログラム可能な電子部品22に対して重複なく与えられた通し番号や製品型番が例示できる。
【0030】
各ブロックのS0レコードに記載される識別情報には、上記識別コードの他に、マイクロプロセッサ21#1がプログラム可能な電子部品22にプログラムデータをダウンロードするときに必要なパラメータ等の情報が記載されていることが好ましい。この必要なパラメータとしては、例えば、プログラム可能な電子部品22の種類(CPU、PSoC(プログラマブル・システム・オン・チップ)、FPGA(フィールド・プログラマブル・ゲート・アレイ)等)、プログラムデータのバージョンが例示できる。
【0031】
本開示では、上記識別情報に含まれる情報の内、上記識別コード以外の、ダウンロードするときに必要なパラメータ等の情報の一部、ないし全てが、S0レコードに記載されない構成を採用しうる。例えば、マイクロプロセッサ21及びプログラム可能な電子部品22間のインタフェースの仕様との対応表をマイクロプロセッサ21又はメモリーに格納しておき、これを参照してもよい。この対応表は、予め保持されているもの、光モジュール12の起動時に作成されたもの、或いは、マイクロプロセッサ21のプログラムデータの更新時に格納されたもの、を用いることができる。なお、マイクロプロセッサ21及びプログラム可能な電子部品22間のインタフェースの仕様は、プログラム可能な電子部品22のプログラムデータ更新手段の任意の仕様を含む。例えば、プログラムデータ更新手段は、ハードウェアに限らず、制御プログラムなどのソフトウェアの仕様も含む。
【0032】
識別情報の記載方法としては、Sレコード形式のS0レコードの仕様として、任意の文字列を記入できるという機能を利用している。例えば、前述の非特許文献2によれば、S0レコードは次の様なアスキー文字列で構成される。
S00600004844521B
【0033】
ここで、冒頭のS0はこの文字列がS0レコードであることを示し、続く06はそれ以降のバイト数が6バイトであることを示し、0000はロードアドレスを示し、484452はアスキーコードによる文字列“HDR”を示している。最後の1Bは以上の文字列のチェックサムである。文字列“HDR”の領域は、Sレコードの仕様によって、最大252バイトまで使用しうる。そこで、本開示においては、この例における“HDR”という文字列の部分に、更新対象の識別情報を記載する。
【0034】
例えば、マイクロプロセッサ21及びプログラム可能な電子部品22#1、22#2の識別コードが通し番号で順に01~03で定義されており、プログラムバージョンがRev.1.0.3である場合、S0レコードは
図6のように表すことができる。
(1)の「S0」は、レコードタイプがS0であることを示す。
(2)の「08」は、(3)以降のバイト数が8バイトであることを示す。
(3)の「0000」はロードアドレスを示す。
(4)は更新対象の識別情報であり、以下を含む。
(4-1)の「3033」は、識別コードが「03」すなわち、更新対象がプログラム可能な電子部品22#2であることを示す。
(4-2)の「313033」はプログラムバージョンがRev.1.0.3であることを示す。
(5)の「00」は(2)~(4)の範囲のチェックサムを示す。
【0035】
上記のSレコード形式のデータを受信したマイクロプロセッサ21#1は、Sレコードに含まれるアドレスに従って、メモリー(例えば
図4に示すメモリー25)上の領域に各ブロックのプログラムデータを復元する。次に、マイクロプロセッサ21#1は、各ブロックのS0レコードから読み取った情報を元に、メモリー上の各領域に復元されたデータが、それぞれ、#1及び#2のどのプログラム可能な電子部品22に対応するプログラムデータであるかを識別する。そして、光モジュール12に含まれるプログラム可能な電子部品22に対するものについては、マイクロプロセッサ21#1は、該当するプログラム可能な電子部品22に対して、通信手段を通してプログラムデータをマイクロプロセッサ21#1から、プログラム可能な電子部品22にダウンロードし、更新を実行する。このとき、ダウンロード及び更新の手順は、第3の技術において説明するように、各プログラム可能な電子部品22の仕様に従ってマイクロプロセッサ21#1が実行する。
【0036】
図5に示したSレコード形式データには、データを受信するマイクロプロセッサ21#1のプログラムデータがブロックB1に記載され、光モジュール12に含まれる2つのプログラム可能な電子部品22のプログラムデータがブロックB2及びB3に記載され、これらに加えて、光モジュール12に接続されていないプログラム可能な電子部品22#3のプログラムデータもブロックB4に含まれている。
【0037】
この様に、光モジュール12のマイクロプロセッサ21がその制御下にあるプログラム可能な電子部品22を認識し、Sレコードの各ブロックに含まれるプログラムデータから、適合するものを選択して、制御下のプログラム可能な電子部品22にダウンロードするため、上位機器11は、プログラムデータの更新が必要なプログラム可能な電子部品22のブロックだけを、そのプログラム可能な電子部品22を含む光モジュール12にダウンロードすることができる。また、光モジュール12に含まれないプログラム可能な電子部品22のブロックを光モジュール12にダウンロードすることも可能である。後者の場合は、異なるプログラム可能な電子部品22で構成される複数の光モジュール12に対して、それら異なるプログラム可能な電子部品22のプログラムデータのブロックを共に含む、同一のSレコード形式のデータをダウンロードすることが可能になる。
【0038】
上位機器11が、プログラムデータの更新が必要なプログラム可能な電子部品22のブロックだけを、そのプログラム可能な電子部品22を含む光モジュール12にダウンロードする場合の具体的な例としては、情報処理装置の通信部113が、情報処理装置に含まれる光モジュール12に実装された複数のプログラム可能な電子部品22の内、プログラムデータに変更の有ったプログラム可能な電子部品22のプログラムデータのみを受信した場合がある。この時、上位機器11は、メモリー114に記録されている過去のプログラムデータから、プログラムデータに変更のないプログラム可能な電子部品22のプログラムデータを読み出して、光モジュール12に実装されている全てのプログラム可能な電子部品22のプログラムデータを含むSレコードを作成し直してもよいが、光モジュール12のマイクロプロセッサ21が、上位機器11からダウンロードしたブロックに含まれるS0レコードから、対象とするプログラム可能な電子部品22を選択できるので、上位機器11は通信部113が受信した、プログラムデータに変更のあるプログラム可能な電子部品22のブロックだけを、そのまま光モジュール12にダウンロードすることができる。
【0039】
マイクロプロセッサ21#1は、各ブロックの冒頭にあるS0レコードに記載された情報に従って、光モジュール12に含まれるプログラム可能な電子部品22の中から、プログラムデータを更新するプログラム可能な電子部品22を選択するので、プログラム可能な電子部品22#1に対してブロックB2のプログラムデータをダウンロードする。一方、プログラム可能な電子部品22#2に対しては、該当するブロックが含まれていないので、ダウンロードは行わない。これによって、更新が必要なプログラム可能な電子部品22#1のプログラムデータが更新されるが、更新が不要なプログラム可能な電子部品22#2のプログラムでデータは更新されない。この方法によれば、上位機器11からは、更新が必要なプログラム可能な電子部品22#1のプログラムデータだけがダウンロードされ、更新されるので、Sレコード形式のデータの大きさを削減でき、したがって、通信によって通信手段を占有する時間も短縮するという利点がある。
【0040】
上位機器11が、光モジュール12に含まれないプログラム可能な電子部品22のブロックを光モジュール12にダウンロードする具体的な例としては、
図4の光モジュール構成において、挿抜が可能なサブモジュールを含む光モジュール12に対して、プログラムデータをダウンロードする場合がある。この時、上位機器11は、その時点で実装されているプログラム可能な電子部品22の情報を、マイクロプロセッサ11に問い合わせ、その時点で実装されているプログラム可能な電子部品22のブロックだけが含まれるSレコードを作成してもよいが、マイクロプロセッサ11が、各ブロックのS0レコードによって、ブロックに対応するプログラム可能な電子部品22を選択できるので、マイクロプロセッサに問い合わせることなく、挿抜される可能性のある、全てのプログラム可能な電子部品22のプログラムデータが含まれるSレコードを、ダウンロードすればよい。すなわち、
図7の構成では、上位機器11よりプログラム可能な電子部品22#1と共に、挿抜が可能なサブモジュールに含まれる、22#2及び22#3のプログラムデータを含むSレコードをダウンロードすることができる。
【0041】
挿抜が可能なサブモジュールに、プログラム可能な電子部品22#2、駆動回路23#2、光デバイス24#2が含まれており、運用中にプログラム可能な電子部品22#3、駆動回路23#3、光デバイス24#3を含む別のサブモジュールに差し替える場合、新たに別のサブモジュールがマイクロプロセッサ21#1の制御下に置かれることになるため、マイクロプロセッサ21#1が、同一のSレコードから、適切なプログラムコードを選択してプログラム可能な電子部品22#3にダウンロードする。
【0042】
あるいは、光伝送装置10内に、常時にプログラム可能な電子部品22#2、駆動回路23#2、光デバイス24#2を実装した光モジュール12#1と、常時にプログラム可能な電子部品22#3、駆動回路23#3、光デバイス24#3を実装した光モジュール12#2が備えられている場合である(
図8)。2種類の光モジュール12が光伝送装置10内に実装されている場合、これらの光モジュール12に対して、上位機器11より
図5に示したSレコード形式のデータをダウンロードすれば、それぞれのマイクロプロセッサ21#1及び21#2が、それぞれの光モジュール12の構成に合わせて、受信したSレコード形式のデータの中から光モジュール12内のプログラム可能な電子部品22に対して更新すべきプログラムデータ(ブロック)を選択できるので、上位機器11は、光モジュール12に含まれるプログラム可能な電子部品22の組み合わせに依存せずに、同一のSレコード形式データを使用して、これらの光モジュール12のプログラムデータを更新することが可能である。
【0043】
上位機器11からは、
図5に示した共通のSレコード形式のデータを、これらの光モジュール12#1及び12#2にダウンロードする。マイクロプロセッサ21#1は、光モジュール12#1に含まれるプログラム可能な電子部品22に従って、必要なプログラムデータ(D#1、D#2)を選択してプログラム可能な電子部品22#1及び22#2にダウンロードし、マイクロプロセッサ21#2は光モジュール12#2に含まれるプログラム可能な電子部品22に従って、必要なプログラムデータ(D#1,D#3)を選択してプログラム可能な電子部品22#1及び22#3にダウンロードして、更新する。ここで、D#1はプログラム可能な電子部品22#1のプログラムデータであり、D#3はプログラム可能な電子部品22#3のプログラムデータである。これによって、上位機器11は、同一のSレコード形式のデータからなる更新情報で、構成の異なる光モジュール12#1及び12#2のプログラムデータを更新することができる。
【0044】
以上説明したように、本開示の第1の技術は、複数のプログラム可能な電子部品22を備えた光モジュール12において、その光モジュール12内にあって上位機器11と通信手段によって接続されたマイクロプロセッサ21が、その通信手段を使用して上位機器11よりダウンロードされた、同一のSレコード形式の更新情報を使用して、上記光モジュール12に含まれる複数のプログラム可能な電子部品22の制御プログラムを更新する手段を提供する。
【0045】
本開示によれば、上記Sレコード形式の更新情報は、複数のプログラムデータのブロックが結合されて構成されており、それぞれのブロックが、S0レコードから始まり、S7レコード、S8レコードないし、S9レコードのいずれかのレコードによって終端されるまでの、一連のSレコードで構成され、S0レコードに、それを含むブロックが適用可能なプログラム可能な電子部品22の属性と、プログラム可能な電子部品22のプログラムデータの更新に必要なパラメータ等が記述されている。
【0046】
さらに、本開示によるSレコード形式の更新情報に含まれる各ブロックには、光モジュール12内に含まれるプログラム可能な電子部品22に適用できるプログラムデータに加えて、プログラムデータの更新時に光モジュール12に含まれていないプログラム可能な電子部品22に適用できるプログラムデータも含まれていてもよい。
【0047】
以上に述べたプログラムデータ更新方法によれば、上位機器11よりSレコード形式の更新情報を受信したマイクロプロセッサ21は、データに含まれる各ブロックのS0レコードに記述された情報を使用して、各プログラムデータのブロックから、光モジュール12に含まれるプログラム可能な電子部品22に適用可能なプログラムデータだけを選択し、それぞれのプログラム可能な電子部品22の仕様に従ってプログラムデータを、光モジュール12内の更新対象となるプログラム可能な電子部品22にダウンロードするので、上位機器11は、光伝送装置10の運用中に光モジュール12内の、プログラム可能な電子部品22のプログラムデータを更新するとともに、1つのSレコードデータを使用して、プログラム可能な電子部品22の構成が異なる光モジュールや、取り外し可能なプログラム可能な電子部品22を採用していて、実装しているプログラム可能な電子部品22の組み合わせが変わる可能性のある光モジュール12のプログラムデータを更新できるという特長がある。
【0048】
(本開示の第2の技術)
図9に、本開示の第2の技術による、プログラムデータの更新方法を示す。この例では、プログラム可能な電子部品22#1とプログラム可能な電子部品22#2は、同じ制御プログラムで動作しているため、2つのプログラム可能な電子部品22に更新が必要な場合には同じプログラムデータD#12を利用できる。本開示の更新方法では、同じ制御プログラムで動作しているプログラム可能な電子部品22には、例えば、同じ識別情報が含まれている。
【0049】
図9では、マイクロプロセッサ21#1は、上位機器11からダウンロードされたSレコード形式のデータから、S0レコードに記載された情報をもとに、それが適用可能なプログラム可能な電子部品22を判断する。この図の例では、プログラム可能な電子部品22#1とプログラム可能な電子部品22#2は、共に同じプログラムデータが適用可能であるので、同じ識別情報が含まれており、マイクロプロセッサ21#1はこの情報を元に、同じプログラムデータを、プログラム可能な電子部品22#1とプログラム可能な電子部品22#2にダウンロードして更新する。
【0050】
図10には、本開示の更新方法で使用する、Sレコード形式のデータの構成を示す。このデータは、マイクロプロセッサ21#1に使用するプログラムデータ(ブロックB1)と、プログラム可能な電子部品22#1、プログラム可能な電子部品22#2に共通に使用するプログラムデータ(ブロックB2)の、2つのブロックB1及びB2のみで構成されている。
【0051】
ブロックB2のS0レコードにおける、更新対象の識別情報としては、例えば、プログラム可能な電子部品22#1及びプログラム可能な電子部品22#2に固有な製品型番が例示できる。光モジュール12の起動時に、マイクロプロセッサ21は、通信手段を介して、それに接続されているプログラム可能な電子部品22からプログラム可能な電子部品の識別コード(製品型番)を読み出し、識別コード(製品型番)と、そのプログラム可能な電子部品22に接続するための製品型番に対応した通信手段の対応表をメモリーに記録する。
【0052】
プログラム可能な電子部品22のプログラムデータ更新時に、マイクロプロセッサ21は、上位機器11からSレコードを受信すると、S0レコードから読み取った情報を元に、受信したSレコードからメモリー上に復元したプログラムデータがどのプログラム可能な電子部品22に対応するプログラムデータであるかを識別し、メモリーに記録されている対応表を元に、それぞれのプログラム可能な電子部品22にダウンロードすべきSレコードのブロックと、製品型番に対応した通信手段を選択して、更新対象のプログラム可能な電子部品22のプログラムデータを更新する。同じ識別コード(製品型番)のプログラム可能な電子部品22には、同じSレコードのブロックが同じ通信手段でダウンロードされる。
【0053】
以上説明したように、本開示のプログラムデータ更新方法によれば、通信手段によって上位機器11と接続されたマイクロプロセッサ21は、各ブロックの冒頭にあるS0レコードに記載された情報から、プログラムデータが適用可能なプログラム可能な電子部品22の種類を選択できるので、S0レコードに記載された識別情報に共通の識別コードが含まれれば、マイクロプロセッサ21は、そのブロックに含まれるプログラムデータを、光モジュール12内の同じ識別コードを有する複数のプログラム可能な電子部品22に、等しくダウンロードし、更新できる。
【0054】
この方法によれば、光モジュール12に含まれるプログラム可能な電子部品22ごとに、プログラムデータのブロックを用意する方法に比べて、Sレコード形式の更新情報に含まれるプログラムデータの数が減るので、通信に必要なSレコード形式のデータのサイズと、通信手段を占有する時間を削減できる。
【0055】
(本開示の第3の技術)
図11に、本開示の第3の技術による、プログラムデータの更新方法を示す。この図の例では、光モジュール12には、プログラム可能な電子部品として、Field-Programmable Gate Array(FPGA)221とProgrammable System-on-Chip(PSoC)222が含まれている。
【0056】
この場合も、第1の技術と同様に、上位機器11と通信手段で接続されたマイクロプロセッサ21#1が、Sレコード形式のプログラムデータを受信し、メモリー25に展開したあとで、それに含まれるS0レコードの情報を元に、プログラムデータがFPGAに対するものか、PSoCに対するものかを識別し、光モジュール12内のFPGA、PSoCといったプログラム可能な電子部品に、プログラムデータをダウンロードして更新する。
【0057】
この時、マイクロプロセッサ21#1からプログラム可能な電子部品へのプログラムデータのダウンロード及び更新はプログラム可能な電子部品のインタフェースなどの仕様に従う。具体的には、UART(Universal Asynchronous Receiver/Transmitter)などの信号線3本のシリアル通信やJTAG(Joint Test Action Group)などのクロックを加えた通信線4本の仕様や、アスキーコードやバイナリ―コードなどの送信データ形式などの仕様が挙げられる。他にもアプリケーションプログラムの更新であれば、I2C(Inter-Integrated Circuit)やUSB(Universal Serial Bus)などの通信ポートに合ったインタフェースも挙げられる。
【0058】
例えば、FPGA221に対してはシリアル通信手段によってコンフィグレーションデータを転送し、PSoC222に対しては、その部品の仕様に合わせて、例えばIntel(登録商標) Hex形式のデータをシリアル通信手段によって転送する。すなわち、転送手順は、ダウンロード及び更新を行う更新対象のプログラム可能な電子部品の仕様に合わせて選択している。
【0059】
図12に、上位機器11からマイクロプロセッサ21にダウンロードされる、Sレコード形式データの構成を示す。この場合、マイクロプロセッサ21#1、FPGA221、PSoC222の3つのブロックB1、B2、B3に分けられたプログラムデータが、1つのSレコード形式データとして、上位機器11からマイクロプロセッサ21#1に送られる。
【0060】
例えば、各ブロックの最初にあるS0レコードには、そのブロックに含まれるプログラムデータがダウンロードされるプログラム可能な電子部品の識別コード、プログラムデータのバージョン、プログラムデータのバイト数が記入される。第3の技術では、プログラム可能な電子部品の識別コードを用いて、メモリー25に記録されている対応表を元に各々のプログラム可能な電子部品に合ったプログラムデータ及びプログラムデータのダウンロード手段を選択し、FPGA221に対するものか、PSoC222に対するものかを識別し、マイクロプロセッサ21#1は、自分自身のプログラムデータを更新するとともに、光モジュール12内の他のプログラム可能な電子部品に接続された、シリアル通信用インタフェースを利用して、各々のプログラム可能な電子部品に合ったダウンロード手段により、それぞれのプログラム可能な電子部品へプログラムデータを転送することができる。
【0061】
以上説明したように、本開示の第3の技術は、上記のプログラムデータ更新方法において、光モジュール12内のプログラム可能な電子部品が、マイクロプロセッサ21ないし、FPGA221ないし、PSoC222であることを特長としている。
【0062】
本技術によれば、上位機器11と通信手段を持つマイクロプロセッサ21が、送られてきたSレコードを、光モジュール12内のメモリー25にバイナリーデータ又はテキストデータとして復元したのちに、各ブロックの冒頭にあるS0レコードに記入された、更新対象の識別情報とプログラムデータ更新に必要な情報を元に、各々のプログラム可能な電子部品に合ったプログラムデータのダウンロード手段を選択して実行することができる。
【0063】
(本開示の第4の技術)
図13に本開示の第4の技術による、プログラムデータの更新方法を示す。この技術によれば、上位機器11と通信手段で接続されているマイクロプロセッサ21#1には、不揮発メモリー26も接続されている。マイクロプロセッサ21#1は、上位機器11からダウンロードされた、Sレコード形式のデータをメモリー25上に復元した後、対象となるプログラム可能な電子部品ごとに、不揮発メモリー26上の領域に複製を記録する。その後、マイクロプロセッサ21#1及び、FPGA221やPSoC222#1といった、光モジュール12内のプログラム可能な電子部品のプログラムデータを更新する。
【0064】
もし、更新後の運用によって、いずれかのプログラム可能な電子部品のプログラムデータに起因する問題が発生した場合、マイクロプロセッサ21#1は、不揮発メモリー26の領域に保存された、古いバージョンのプログラムデータを、自分自身、あるいは該当するプログラム可能な電子部品にダウンロードして更新することができるので、上位機器11から古いバージョンを含む、Sレコード形式のデータをダウンロードすることなく、正常な動作に復帰することが可能である。なお、図中に破線で示した、不実装のPSoC222#2、駆動回路23#3と光デバイス24#3とは、例えば、挿抜可能なモジュールに含まれており、運用中に追加される可能性があるものである。
【0065】
図14に、マイクロプロセッサ21が、PSoC222にプログラムデータをダウンロードした後、そのプログラムデータに問題が生じた場合を例に、PSoC222に正常に動作していたバージョンのプログラムを再度ダウンロードする手順を示す。
【0066】
この図によれば、上位機器11から通信手段を通してダウンロードされたSレコードに、PSoC222の新しいバージョンのプログラムデータ(バージョン2)が含まれていた場合、マイクロプロセッサ21は、そのプログラムデータを、不揮発メモリー26上の、PSoC222で正常に動作しているプログラムデータ(バージョン1)とは別の領域に記録する(S101)。次に、マイクロプロセッサ21は、新しいバージョンのプログラムデータ(バージョン2)を、PSoC222にダウンロードして運用を開始する(S102)。その後、マイクロプロセッサ21は定期的に、通信手段を使用してPSoC222に内蔵されたメモリーから動作中に発生したエラーメッセージを読み取る(S103)。
【0067】
この時、新しくダウンロードしたプログラムに起因した動作異常を検出した場合(S104)、例えば、マイクロプロセッサ21がPSoC222に対して、駆動回路#2の出力として100mAを設定するコマンドを送ったのに、PSoC222が駆動回路23の電流モニタが許容範囲外の出力を示すエラーを検出した場合、マイクロプロセッサ21は、更新前の、PSoC222で正常に動作していたプログラムデータ(バージョン1)を不揮発メモリー26から読み出し、再度、PSoC222にダウンロードして(S105)、光モジュール12の動作を正常に戻す。
【0068】
図15に、この技術でプログラムデータを記録する、不揮発メモリー26のメモリーマップの例を示す。この例では、マイクロプロセッサ21#1を含めて4つのプログラム可能な電子部品のプログラムデータが、それぞれ2バージョン記録されている。ここで、領域A1には、領域A2から領域A9に記録されたプログラムデータのアドレス、動作しているプログラムデータのバージョンの情報と共に、Sレコード形式のデータをダウンロードした時に、各ブロックのS0レコードに記載されていた情報、すなわち、対応しているプログラム可能な電子部品、プログラムデータのバージョン、更新に必要な情報も記録されている。したがって、不揮発メモリー26上のデータを元にプログラムデータを更新する時にも、Sレコード形式のデータをダウンロードする時と同様に、領域A1に記録されていた情報を使用して、該当する光モジュール12内のプログラム可能な電子部品にダウンロードすることができる。
【0069】
なお、
図15のメモリーマップでは、領域A8と領域A9に光モジュール12に含まれていないプログラム可能な電子部品であるPSoC222#2のプログラムデータが記録されている。この構成によれば、運用中に挿抜可能な形態で、
図13において破線で示した、PSoC222#2、駆動回路23#3、光デバイス24#3が実装されたプログラム可能な電子部品が接続された場合にも、マイクロプロセッサ21#1は、不揮発メモリー26の領域A1に記録された、PSoC222#2用プログラムデータのバージョン情報と、接続されたPSoC222#2で動作しているプログラムデータのバージョンを比較し、領域A8、および領域A9のプログラムデータのバージョンを比較し、領域A8のプログラムデータが最も新しい場合には、領域A8からプログラムデータを読み出して、新たに接続されたPSoC222#2にダウンロードし、プログラムデータを更新することが可能である。
【0070】
以上説明したように、本開示の第4の技術は、上記のプログラムデータ更新方法において、上位機器11から通信手段を通してダウンロードされたSレコードに含まれるプログラムデータを、それぞれのブロックごとに不揮発メモリー26上に記録し、同じ不揮発メモリー26上のプログラムデータとは別の領域に、上記プログラムデータが置かれたメモリー上のアドレス、各ブロックのS0レコードに記載されている、プログラムデータのバージョン、それが適用可能であるプログラム可能な電子部品の種類といった情報、それに、光モジュール12内のプログラム可能なプログラム可能な電子部品に対して、現在、および過去に適用したプログラムデータのバージョンの組み合わせ、といった情報を記録していることを特長とする。
【0071】
本開示の更新方法によれば、不揮発メモリー26上に、異なるバージョンのプログラムデータを記録しておくことにより、光モジュール12に含まれる複数のプログラム可能な電子部品のプログラムデータに問題が生じた場合、正常に動作していたバージョンのプログラムデータを不揮発メモリー26からダウンロードすることで、動作を復帰することができる。
【0072】
また、上位機器11よりダウンロードした時点で、光モジュール12に接続されていないプログラム可能な電子部品に適用するプログラムデータも、不揮発メモリー26上に記録しておくことが可能なので、運用中に新たに接続されたプログラム可能な電子部品に対しても、必要に応じてプログラムデータを更新することができるという利点がある。
【産業上の利用可能性】
【0073】
本開示は情報通信産業に適用することができる。
【符号の説明】
【0074】
10:光伝送装置
11:上位機器
12:光モジュール
21:マイクロプロセッサ
22:プログラム可能な電子部品
23:駆動回路
24:光デバイス
25:メモリー
26:不揮発メモリー
100:情報処理装置
111:上位機器
112:モジュール
113:通信部
114:メモリー
121:マイクロプロセッサ
122:電子部品
124:デバイス
125:メモリー
221:FPGA
222:PSoC