通信システム、マスタ装置、および、スレーブ装置
【課題】通信異常が発生した場合であっても、通信を復旧することが可能な通信システムを提供すること。
【解決手段】マスタ装置10と少なくとも1つのスレーブ装置20がIIC通信ラインで相互に接続され、マスタ装置とスレーブ装置の間でIICプロトコルに基づいてIIC通信を行う通信システムにおいて、マスタ装置とスレーブ装置は、異常の発生を通知するための通信ラインとは別の通知ライン31によって相互に接続され、通信ラインに生じた異常を検出する検出手段(制御部11)と、異常が検出された場合に通知ラインを介して他方のモジュールに異常の発生を通知する通知手段(制御部11)と、異常が検出された場合にIIC通信を復旧させる復旧手段(リセット回路25)と、がマスタ装置またはスレーブ装置の少なくとも一方に設けられていることを特徴とする。
【解決手段】マスタ装置10と少なくとも1つのスレーブ装置20がIIC通信ラインで相互に接続され、マスタ装置とスレーブ装置の間でIICプロトコルに基づいてIIC通信を行う通信システムにおいて、マスタ装置とスレーブ装置は、異常の発生を通知するための通信ラインとは別の通知ライン31によって相互に接続され、通信ラインに生じた異常を検出する検出手段(制御部11)と、異常が検出された場合に通知ラインを介して他方のモジュールに異常の発生を通知する通知手段(制御部11)と、異常が検出された場合にIIC通信を復旧させる復旧手段(リセット回路25)と、がマスタ装置またはスレーブ装置の少なくとも一方に設けられていることを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信システム、マスタ装置、および、スレーブ装置に関するものである。
【背景技術】
【0002】
一般的な電子機器では、電子機器を構成する各モジュール間でデータ通信を行う方法として、IIC(Inter Integrated Circuit)プロトコルに基づく通信(IIC通信)を採用することがある。IIC通信を採用するメリットの一つとして、スレーブモジュールが処理中の場合に、スレーブモジュールがSCL(Serial Clock Line)信号ラインをローレベルに固定することによって、マスタモジュールにデータの送信を保留させることが可能な点が挙げられる。
【0003】
正常な通信が行われている際に、スレーブモジュールがビジー状態(処理中の状態)から復旧すると、通信ラインが開放されて、マスタモジュールからSCL信号が送信される。従来の技術では、通信状態が異常な場合に、当該電子機器を使用する人に異常状態を通知したり(特許文献1参照)、スレーブモジュールからマスタモジュールに対して、誤ったACK(Acknowledge)信号が送出された場合に復旧したりすることについては可能であった(特許文献2参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平10−283581号公報
【特許文献2】特開2007−164765号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら従来の方法では、電圧変動または外来ノイズ等の影響により、通信に失敗するだけでなく、通信自体の継続が困難になる場合がある。例えば、一時的な電圧降下によって、マスタモジュールから生成されるSCL信号が1ビットだけ無効となった場合、スレーブモジュールがビットを誤認識し、通常では想定できないタイミングでSCL信号ラインをローレベルに固定してしまう場合がある(例えば、マスタモジュールから送信されたSCL信号が1ビットだけ無効になった場合、スレーブモジュールは9ビット目を8ビット目と誤認識し、その後、マスタモジュールがSCL信号を送信した際に、その1ビット目のタイミングで、スレーブモジュールがSCL信号ラインをローレベルに固定してしまう場合がある)。
【0006】
特許文献1の技術では、異常が検出された際に、その情報を、当該電子機器の上位装置または当該電子機器を使用する人に通知することは出来るが通信の復旧はできない。また、特許文献2の技術では、外来ノイズや電圧降下によって、スレーブモジュールからマスタモジュールに対して、誤ったACK信号が送出された場合については復旧できるが、前述したような状況においては通信の復旧はできない。すなわち、マスタモジュールで、SCL信号ラインを操作することが出来ないため、特許文献1,2に開示された技術では上記問題を解決できない。
【0007】
そこで、本発明が解決しようとする課題は、通信異常が発生した場合であっても、通信を復旧することが可能な通信システム、マスタ装置、および、スレーブ装置を提供することである。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明の通信システムは、マスタ装置と少なくとも1つのスレーブ装置がシリアルクロックラインとシリアルデータラインを有する通信ラインで相互に接続され、前記マスタ装置と前記スレーブ装置の間でIIC(Inter Integrated Circuit)プロトコルに基づいてIIC通信を行う通信システムにおいて、前記マスタ装置と前記スレーブ装置は、異常の発生を通知するための前記通信ラインとは別の通知ラインによって相互に接続され、前記通信ラインに生じた異常を検出する検出手段と、前記検出手段によって異常が検出された場合に、前記通知ラインを介して他方のモジュールに異常の発生を通知する通知手段と、前記検出手段によって異常が検出された場合に前記IIC通信を復旧させる復旧手段と、が前記マスタ装置または前記スレーブ装置の少なくとも一方に設けられていることを特徴とする。
このような構成によれば、通信異常が発生した場合であっても、通信を復旧することが可能となる。
【0009】
また、他の発明は、上記発明に加えて、前記検出手段は、前記通信ラインが一定時間以上所定のレベルを維持した場合に、異常を検出したと判定することを特徴とする。
このような構成によれば、通信ラインのレベルから、異常を簡易に検出することができる。
【0010】
また、他の発明は、上記発明に加えて、前記検出手段および前記通知手段が前記マスタ装置に設けられ、前記復旧手段が前記スレーブ装置に設けられ、前記マスタ装置に設けられた前記検出手段が前記通信ラインに生じた異常を検出した場合には、前記通知手段が異常の発生を前記スレーブ装置に通知し、前記スレーブ装置の前記復旧手段が、前記マスタ装置から異常の発生の通知を受けた場合に前記IIC通信を復旧させることを特徴とする。
このような構成によれば、マスタ装置において通信の異常を検出した場合には、スレーブ装置に異常を通知し、スレーブ装置がIIC通信を復旧させるので、マスタ装置が主体となって通信異常を管理することができる。
【0011】
また、他の発明は、上記発明に加えて、前記通知ラインは、リセット信号ラインまたはIRQ(Interrupt Request)信号ラインであり、前記通知手段は、これらいずれかの信号ラインを介して、前記スレーブ装置に異常の発生を通知し、前記復旧手段は前記IIC通信に関する処理よりも優先順位が高いリセット処理または割り込み処理によって前記IIC通信を復旧させることを特徴とする。
このような構成によれば、IIC通信に関する処理よりも優先順位が高いリセット処理または割り込み処理によりIIC通信を確実に復旧させることができる。
【0012】
また、他の発明は、上記発明に加えて、前記検出手段、前記通知手段、および、前記復旧手段が前記スレーブ装置に設けられ、前記スレーブ装置に設けられた前記検出手段が前記通信ラインに生じた異常を検出した場合には、前記通知手段が異常の発生を前記マスタ装置に前記通知ラインを介して通知し、前記復旧手段が前記IIC通信を復旧させることを特徴とする。
このような構成によれば、スレーブ装置が自主的にIIC通信を復旧させることができるので、マスタ装置に加わる負荷を軽減することができる。
【0013】
また、他の発明は、上記発明に加えて、前記スレーブ装置は、前記IIC通信の復旧が終了したことを前記マスタ装置に報告する報告手段を有し、前記マスタ装置は、前記報告手段から復旧の報告を受けた場合には、前記通知手段によって異常の発生が通知された際に送信していたデータを再送信することを特徴とする。
このような構成によれば、異常が発生した際に送信されていたデータが未送信になることを防止できる。
【0014】
また、他の発明は、上記発明に加えて、前記通知手段および前記報告手段は、I/O信号ラインを介して異常の発生の通知および前記IIC通信の復旧の報告を前記マスタ装置に対して行うことを特徴とする。
このような構成によれば、汎用インタフェースであるI/O信号ラインを介して異常の発生の通知および復旧の報告を行うことができる。
【0015】
また、他の発明は、上記発明に加えて、前記通知手段および前記報告手段は、シリアル通信ラインを介して異常の発生の通知および前記IIC通信の復旧の報告を前記マスタ装置に対して行うことを特徴とする。
このような構成によれば、例えば、RS−232C等の汎用性が高いシリアル通信ラインを介して異常の発生の通知および復旧の報告を行うことができる。
【0016】
また、他の発明は、上記発明に加えて、前記スレーブ装置を複数有し、前記シリアル通信ラインがデージーチェーン接続またはバス接続によってこれら複数のスレーブ装置と、前記マスタ装置とを相互に接続することを特徴とする。
このような構成によれば、複数のスレーブ装置とマスタ装置とをシリアル通信ラインを介して相互に接続し、これらの間で異常の発生の通知および復旧の報告を行うことができる。
【0017】
また、他の発明は、上記発明に加えて、前記スレーブ装置は、異常が発生した際の前記IIC通信の状態を示す情報を格納する格納手段を有することを特徴とする。
このような構成によれば、格納手段に格納されている情報を参照することにより、異常の発生原因を知ることができる。
【0018】
また、他の発明は、上記発明に加えて、前記復旧手段は、ウォッチドッグタイマ機能を有し、前記通信ラインに異常が発生した場合には、当該ウォッチドッグタイマ機能に基づいて再起動動作を行うことにより前記IIC通信の復旧を行うことを特徴とする。
このような構成によれば、例えば、スレーブ装置がハングアップした場合であっても異常状態から確実に回復することができる。
【0019】
また、上記課題を解決するため、本発明のマスタ装置は、少なくとも1つのスレーブ装置とシリアルクロックラインおよびシリアルデータラインを有する通信ラインで相互に接続され、前記スレーブ装置との間でIICプロトコルに基づいてIIC通信を行うマスタ装置において、異常の発生を通知するための前記通信ラインとは別の通知ラインによって前記スレーブ装置と接続され、前記通信ラインに生じた異常を検出する検出手段と、前記検出手段によって異常が検出された場合に、前記通知ラインを介して前記スレーブ装置に異常の発生を通知し、前記スレーブ装置に前記IIC通信を復旧させるための通知手段と、を有することを特徴とする。
このような構成によれば、通信異常が発生した場合であっても、通信を復旧することが可能となる。
【0020】
また、上記課題を解決するため、本発明のスレーブ装置は、マスタ装置とシリアルクロックラインおよびシリアルデータラインの2本を有する通信ラインで相互に接続され、前記マスタ装置との間でIICプロトコルに基づいてIIC通信を行うスレーブ装置において、異常の発生を通知するための前記通信ラインとは別の通知ラインによって前記マスタ装置と接続され、前記通信ラインに生じた異常を検出する検出手段と、前記検出手段によって異常が検出された場合に、前記通知ラインを介して前記マスタ装置に異常の発生を通知する通知手段と、前記検出手段によって異常が検出された場合に、前記IIC通信を復旧させる復旧手段と、を有することを特徴とする。
【発明の効果】
【0021】
本発明によれば、通信異常が発生した場合であっても、通信を復旧することが可能な通信システム、マスタ装置、および、スレーブ装置を提供することが可能となる。
【図面の簡単な説明】
【0022】
【図1】本発明の第1実施形態に係る通信システムの構成例を示す図である。
【図2】図1に示すスレーブ装置が具備するIICドライバ群が有するステータス情報を示す図である。
【図3】図1に示す第1実施形態において実行される処理の流れを説明するためのフローチャートである。
【図4】本発明の第2実施形態に係る通信システムの構成例を示す図である。
【図5】図4に示す第2実施形態において実行される処理の流れを説明するためのフローチャートである。
【図6】本発明の第3実施形態に係る通信システムの構成例を示す図である。
【図7】図6に示す第3実施形態において実行される処理の流れを説明するためのフローチャートである。
【図8】本発明の第4実施形態に係る通信システムの構成例を示す図である。
【図9】図8に示す第4実施形態において実行される処理の流れを説明するためのフローチャートである。
【図10】本発明の第5実施形態に係る通信システムの構成例を示す図である。
【図11】本発明の第6実施形態に係る光デバイスの構成例を示す図である。
【発明を実施するための形態】
【0023】
次に、本発明の実施形態について説明する。
【0024】
(A)第1実施形態
図1は本発明の第1実施形態に係る通信システムの構成例を示すブロック図である。本発明の第1実施形態に係る通信システムは、マスタ装置10およびスレーブ装置20を主要な構成要素としている。マスタ装置10とスレーブ装置20は、SDA(シリアルデータライン(Serial Data Line))およびSCL(シリアルクロックライン(Serial Clock Line))を有する通信ライン30によって相互に接続されている。また、マスタ装置10とスレーブ装置20は、リセットライン31および復旧通知ライン32によって相互に接続されている。リセットライン31は、マスタ装置10のI/F14の汎用I/O端子とスレーブ装置20のI/F24のリセット端子を接続している。また、復旧通知ライン32は、マスタ装置10のI/F14の汎用I/O端子とスレーブ装置20のI/F24の汎用I/O端子を接続している。なお、この例では、図面を簡略化するためにスレーブ装置20は1つだけとされているが、複数(2以上)のスレーブ装置を接続することも可能である。
【0025】
ここで、マスタ装置10は、制御部11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、I/F(Interface)14、および、バス15を主要な構成要素としている。制御部11は、ROM12に格納されているプログラムおよびデータに基づいて、装置の各部を制御する。RAM13は、制御部11がプログラムを実行する際のワークエリアとして機能する。I/F14は、IICプロトコルに基づいてスレーブ装置20との間で通信ライン30を介して通信を行う。また、I/F14は、スレーブ装置20にリセットライン31を介してリセット指示を送信するとともに、復旧通知ライン32を介してスレーブ装置20から復旧通知を受信する。バス15は、制御部11、ROM12、RAM13、および、I/F14を相互に接続し、これらの間でデータの授受を可能とするための信号線群である。
【0026】
スレーブ装置20は、制御部21、ROM22、RAM23、I/F24、リセット回路25、および、バス26を主要な構成要素としている。制御部21は、ROM22に格納されているプログラムおよびデータに基づいて装置の各部を制御する。RAM23は、制御部21がプログラムを実行する際のワークエリアとして機能する。I/F24は、IICプロトコルに基づいてマスタ装置10との間で通信を行う。リセット回路25は、リセットライン31およびI/F24を介してマスタ装置10からリセット指示を受け取った場合には、スレーブ装置20をリセットし、マスタ装置10との間のIIC通信を復旧する。バス26は、制御部21、ROM22、RAM23、I/F24、および、リセット回路25を相互に接続し、これらの間でデータの授受を可能とするための信号線群である。
【0027】
図2は、スレーブ装置20が具備するIICドライバ群が有するステータス情報を示す図である。この図2に示すように、ステータス情報40としては、スタートビット受信を示す情報41、データ送受信を示す情報42、ストップビット受信を示す情報43、ACK送受信を示す情報44、および、NACK送受信を示す情報45が存在する。ここで、スタートビット受信を示す情報41は、マスタ装置10が通信を開始する際、バスの使用権を獲得するために発行するビットを受信したか否かを示す情報である。データ送受信を示す情報42は、スレーブ装置20がデータを送信している状態であるか、または、受信している状態であるかを示す情報である。ストップビット受信を示す情報43は、マスタ装置10が通信を終了する際、バスを開放するために発行するビットを受信したか否かを示す情報である。ACK送受信を示す情報44は、ACKビットを送受信したか否かを示す情報である。なお、ACKビットは、例えば、マスタ装置10からスレーブ装置20に8ビットのデータを送信する場合に、9クロック目にスレーブ装置20からマスタ装置10に対して送信されるローの状態のビットである。NACK送受信を示す情報45は、NACKビットを送受信したか否かを示す情報である。なお、NACKビットは、例えば、スレーブ装置20からマスタ装置10に8ビットのデータを送信する場合に、9クロック目にマスタ装置10からスレーブ装置20に送信されるハイの状態のビットである。
【0028】
つぎに、本発明の第1実施形態の動作について説明する。図3は、第1実施形態の動作を説明するためのフローチャートである。この処理は、電圧変動、または、外来ノイズ等の影響による通信ライン30の異常に起因してスレーブ装置20が、例えば、動作不能状態(ハングアップ状態)になった場合に実行される処理である。このフローチャートの処理が開始されると、まず、ステップS10において、マスタ装置10の制御部11は、I/F14の状態に基づいて、通信異常を検出する。なお、通信異常を検出する方法としては、通信ラインが所定の時間(例えば、数十msec〜数百msec)以上、所定のレベル(例えば、ローレベル)を維持した場合には、異常が発生していると判定することができる。判定の基準となる時間は、用途または適用する機器に応じて適宜設定することができる。なお、I/F14に図示せぬ入力デバイスを接続し、当該時間を任意に変更可能としてもよい。
【0029】
ステップS11では、制御部11は、I/F14を介してスレーブ装置20に通信異常が発生したことを通知するための通信異常通知信号(リセット信号)を送信する。このようにして送信されたリセット信号は、リセットライン31を介してI/F24によって受信され(ステップS12)、制御部21に供給される。
【0030】
ステップS13では、スレーブ装置20の制御部21は、図2に示すIICドライバ群が有するステータス情報をI/F24から取得し、RAM13に格納する。なお、このようにして格納されたIIC通信のステータス情報を参照することにより、どのような原因で異常が発生したかを知ることができる。なお、表示部を設けて、異常状態から復元した場合に、ステータス情報を表示するようにしてもよい。
【0031】
ステップS14では、制御部21は、リセット回路25に対してコマンドを発行し、スレーブ装置20を再起動させる。このような再起動動作を実行することにより、ステップS15,S16に示す開放処理および初期化処理が実行され、スレーブ装置20が動作不能状態から回復する。より詳細には、ステップS15では、制御部21は、通信ライン開放処理を実行する。なお、通信ライン開放処理の具体例としては、例えば、「割り込み要因レジスタクリア」、「所定のレジスタクリア」、および、「受信データダミーリード」が存在する。ここで、「割り込み要因レジスタクリア」とは、割り込み要因となったレジスタをクリアすることである。なお、リセット処理によってレジスタがハードウエアにより自動的にクリアされる場合はクリアを行う必要はないが、自動的にクリアされない場合にはステップS15の処理においてソフトウエア的にクリアする。「所定のレジスタクリア」とは、例えば、通信の方向(送信であるか受信であるかの方向)を示すレジスタおよびスレーブアドレス認識レジスタをクリアすることである。なお、スレーブアドレス認識レジスタとは、各機器固有のアドレスを受信すると、その値が“1”にセットされるレジスタである。「受信データダミーリード」とは、受信データが格納されるレジスタをダミーリードすることによりSCLを開放することをいう。ダミーリードがなされると、SCLが開放されることから、スレーブ装置20がSCLを占有する状態が終結する。
【0032】
ステップS16では、制御部21は、通信ライン初期化処理を実行する。なお、通信ライン開放処理の具体例としては、例えば、「通信バッファのクリア」、「レジスタの初期化」、および、「割り込み許可」がある。なお、「通信バッファのクリア」により、それまで受信してバッファに格納されているデータが消去される。また、「レジスタの初期化」により、例えば、図2に示すステータス情報がクリアされる。なお、ステータス情報は、ステップS13においてRAM23に退避されているので、異常状態から復元した後に、参照することができる。さらに、「割り込み許可」によって、この後は割り込みが許可される。
【0033】
ステップS17では、制御部21は、復旧通知ライン32を介してマスタ装置10に対して、IIC通信が復旧したことを通知する。その結果、マスタ装置10では、この通知をI/F14によって受信する(ステップS18)。
【0034】
ステップS19では、復旧信号を受信した制御部11が、送信が終了していないデータ(通信異常を検出した際に送信していたデータ)の再送処理を実行する。具体的には、例えば、ACK信号をスレーブ装置20から受信する前に異常を検出し、図3に示す処理が実行された場合には、その際に送信していたデータを最初のビットから再送信する。その結果、ステップS20では、制御部21がマスタ装置10から送信されたデータを受信することができる。なお、受信が完了すると、スレーブ装置20は、ACK信号を送信することにより、マスタ装置10に対して正常にデータを受信したことを通知する。
【0035】
以上の処理によれば、スレーブ装置20がSCLをローレベルに固定した状態で、通信不能となった場合であっても、マスタ装置10からスレーブ装置20に対して、リセットライン31を介してリセット信号を送信することにより、スレーブ装置20に異常が発生していることを通知して通信ライン30を開放させ、通信を再開することができる。これにより、例えば、通信ライン30にノイズが重畳したり、電源電圧が変動したりすることにより、通信異常が発生した場合であっても、通信を復旧させることができる。また、リセット処理は、IIC通信に関する処理(以下「IIC通信処理」と称する)よりも優先順位が高いことから、確実に復旧することができる。また、異常が発生した時点のステータス情報をRAM13に格納するようにしたので、異常の原因を知ることができる。なお、RAM13を不揮発性のメモリとすることで、電源が遮断された場合であっても、ステータス情報を保持し続けることができる。
【0036】
なお、以上の第1実施形態では、図面を簡略化するために、スレーブ装置は1つとしたが、複数のスレーブ装置を接続することも可能である。その場合、通信ライン30については複数のスレーブ装置およびマスタ装置間で並列接続とする。また、リセットライン31および復旧通知ライン32については、マスタ装置にスレーブ装置毎に接続ポートを設け、既定の接続ポートに対して各スレーブ装置のリセットラインおよび復旧通知ラインを接続することで複数のスレーブ装置を接続することができる。なお、複数のスレーブ装置を接続場合、前述した動作がスレーブ装置毎に実行される。
【0037】
(B)第2実施形態
図4は本発明の第2実施形態に係る通信システムの構成例を示すブロック図である。なお、この図において、図1と対応する部分には同一の符号を付しているので、その説明を省略する。図4に示す第2実施形態では、図1の場合と比較すると、マスタ装置10がマスタ装置10Aに置換され、また、スレーブ装置20がスレーブ装置20Aに置換されている。マスタ装置10Aは、I/F14がI/F14Aに置換されている。スレーブ装置20Aは、リセット回路25がIRQ(Interrupt Request)回路50に置換され、I/F24がI/F24Aに置換されている。また、リセットライン31がIRQライン33に置換されている。IRQライン33は、マスタ装置10AのI/F14Aの汎用I/O端子とスレーブ装置20AのI/F24AのIRQ端子を接続している。また、復旧通知ライン32は、マスタ装置10AのI/F14Aの汎用I/O端子とスレーブ装置20AのI/F24Aの汎用I/O端子を接続している。なお、それ以外の構成は、図1の場合と同様である。
【0038】
IRQ回路50は、マスタ装置10AからIRQライン33を介して割り込み要求がなされた場合には、I/F24Aを介してこれを受信し、割り込みを発生する回路である。なお、IRQ回路50による割り込み処理の優先順位は、IIC通信処理の優先順位よりも高く設定されているものとする。
【0039】
つぎに、図5を参照して、第2実施形態の動作について説明する。なお、図5に示すフローチャートにおいて、図3と対応する部分には、同一の符号を付しているので、その内容については簡単に説明する。図5に示すフローチャートの処理では、ステップS10において、制御部21が異常を検出すると、ステップS11において、IRQライン33を介してスレーブ装置20AにIRQ信号を供給する。この結果、スレーブ装置20Aでは、I/F24Aを介してIRQ信号を受信し(ステップS12)、IRQ回路50に供給する。IRQ回路50は、割り込みを発生する。割り込みが発生すると、割り込み処理が開始される。割り込み処理では、まず、ステップS13において、通信ステータスをRAM13に格納し、ステップS15において通信ラインを開放する処理を実行する。なお、図5の処理では、リセット処理は実行されない。通信ラインを開放する処理が終了すると、つづいて、ステップS16において通信ラインを初期化する処理が実行される。なお、ステップS15,S16の処理は図3の場合と同様である。
【0040】
ステップS17では、制御部21は、復旧通知ライン32を介して通信が復旧したことを通知する。マスタ装置10Aでは、ステップS18において復旧信号を受信し、ステップS19において送信が終了していないデータ(通信異常を検出した際に送信していたデータ)の再送処理を実行する。その結果、ステップS20において、スレーブ装置20Aがマスタ装置10Aから送信されたデータを受信することが可能となる。
【0041】
以上に説明したように、本発明の第2実施形態では、マスタ装置10Aが通信の異常を検出した場合には、IRQライン33を介してIRQ信号を送信し、スレーブ装置20Aが割り込みに基づいてIIC通信を復旧する処理を実行するようにしたので、前述した第1実施形態と同様に、異常状態が発生した場合であっても、通信を復旧することができる。
【0042】
なお、複数のスレーブ装置を接続できることは、第1実施形態の場合と同様であり、その接続形態についても前述した第1実施形態の場合と同様である。
【0043】
(C)第3実施形態
図6は本発明の第3実施形態に係る通信システムの構成例を示すブロック図である。なお、この図において、図1と対応する部分には同一の符号を付しているので、その説明は省略する。図6に示す第3実施形態では、図1の場合と比較すると、マスタ装置10がマスタ装置10Bに置換され、また、スレーブ装置20がスレーブ装置20Bに置換されている。マスタ装置10Bは、I/F14がI/F14Bに置換されている。スレーブ装置20Bは、リセット回路25がWDT(ウォッチドッグタイマ(Watch Dog Timer))回路50に置換され、I/F24がI/F24Bに置換されている。また、リセットライン31および復旧通知ライン32が除外さるとともに、異常・復旧通知ライン35が新たに付加されている。異常・復旧通知ライン35は、マスタ装置10BのI/F14Bの汎用I/O端子とスレーブ装置20BのI/F24Bの汎用I/O端子を接続している。なお、それ以外の構成は、図1の場合と同様である。
【0044】
WDT回路50は、カウントアップタイマを有しており、当該カウントアップタイマがカウントアップされてオーバーフローした場合にはイベントが発生する。イベントの具体例としては、例えば、リセット割り込みがある。カウントアップタイマがオーバーフローする前に、WDT回路50にアクセスしてこれを0クリアすることにより、イベントの発生を防止することができる。制御部21は、通常の状態(通信異常が発生していない状態)では、カウントアップタイマがオーバーフローする前にアクセスするように設定されているので、通常状態ではイベントが発生することはない。なお、WDT回路50によるイベントに基づく割り込みの優先順位は、IIC通信処理の優先順位よりも高く設定されている。ここで、カウントアップタイマの代わりにカウントダウンタイマを使用し、カウントダウン動作の結果、カウント値が「0」になった場合にイベントが発生するようにしてもよい。
【0045】
つぎに、図7を参照して、第3実施形態の動作について説明する。図7の処理が開始されると、まず、ステップS30において、スレーブ装置20Bが通信異常を検出すると、ステップS31に進む。ステップS32では、スレーブ装置20Bの制御部21は、図2に示すIICドライバ群が有するステータス情報をI/F24から取得し、RAM13に格納する。通信異常が発生した場合、WDT回路50のカウントアップタイマが0クリア不能となることから、ステップS32ではWDTリセットが発生し、これに基づく割り込み(WDT割り込み)が発生する。WDT割り込みが発生すると、ステップS33以降の処理が実行される。
【0046】
ステップS33では、制御部21は、マスタ装置10Bに対して、異常が発生したことを知らせる異常通知信号を異常・復旧通知ライン35を介して送信する。異常通知信号を受信したマスタ装置10Bでは、通信異常が発生していることを知るとともに、ステップS34において通信をストップする。
【0047】
ステップS35では、制御部21は、通信ラインを開放する処理を実行し、ステップS36では、制御部21は通信ラインを初期化する処理を実行する。なお、これらの処理は、図3のステップS15,S16の処理と同様である。
【0048】
ステップS37では、制御部21は、マスタ装置10Bに対して、通信が復旧したことを知らせる復旧信号を異常・復旧通知ライン35を介して送信する。マスタ装置10Bは、ステップS38において復旧信号を受信し、通信が復旧したことを知る。そして、ステップS39において、制御部11は、送信が終了していないデータ(通信異常を検出した際に送信していたデータ)の再送処理を実行する。この結果、スレーブ装置20Bでは、送信されたデータを受信する。
【0049】
以上に説明したように、本発明の第3実施形態では、スレーブ装置20Bが通信の異常を検出した場合には、スレーブ装置20Bが通信ラインを開放するとともに、通信ラインを初期化するようにしたので、マスタ装置10Bからの指示がなくても、自主的に通信を回復することができる。このため、マスタ装置10Bの処理の負荷を軽減することができる。
【0050】
なお、複数のスレーブ装置を接続可能であることは、前述の第1および第2実施形態の場合と同様である。その場合、通信ライン30については複数のスレーブ装置およびマスタ装置間で並列接続とし、異常・復旧通知ラインについては、マスタ装置にスレーブ装置毎に接続ポートを設け、既定の接続ポートに対して各スレーブ装置の異常・復旧通知ラインを接続することで複数のスレーブ装置を接続することができる。
【0051】
(D)第4実施形態
図8は本発明の第4実施形態に係る通信システムの構成例を示すブロック図である。なお、この図において、図6と対応する部分には同一の符号を付しているので、その説明は省略する。図8に示す第4実施形態では、図6の場合と比較すると、マスタ装置10Bがマスタ装置10Cに置換され、また、スレーブ装置20Bがスレーブ装置20Cに置換されている。マスタ装置10Cは、I/F14BがI/F14Cに置換されている。スレーブ装置20Cは、WDT回路50が状態監視回路52に置換され、I/F24BがI/F24Cに置換されている。なお、それ以外の構成は、図6の場合と同様である。
【0052】
状態監視回路52は、通信状態を監視し、異常が発生した場合には、制御部21に通知するか、または、割り込みを発生する回路である。なお、状態を監視する方法としては、例えば、所定の時間(例えば、数十msec〜数百msec)以上、SCLまたはSDLが所定のレベル(例えば、ローレベル)を維持した場合には、異常が発生したと判定する。
【0053】
つぎに、図9を参照して、第4実施形態の動作について説明する。なお、この図9において、図7と対応する部分には同一の符号を付しているので、その内容については簡単に説明する。図9の処理が開始されると、まず、ステップS30において、スレーブ装置20Cの状態監視回路52が通信異常を検出し、ステップS31に進む。ステップS31では、スレーブ装置20Cの制御部21は、図2に示すIICドライバ群が有するステータス情報をI/F24Cから取得し、RAM13に格納する。
【0054】
ステップS33では、制御部21は、マスタ装置10Cに対して、異常が発生したことを知らせる異常通知信号を異常・復旧通知ライン35を介して送信する。異常通知信号を受信したマスタ装置10Cでは、通信異常が発生していることを知るとともに、ステップS34において通信をストップする。
【0055】
ステップS35では、制御部21は、通信ラインを開放する処理を実行し、ステップS36では、制御部21は通信ラインを初期化する処理を実行する。なお、これらの処理は、図3のステップS15,S16の処理と同様である。
【0056】
ステップS37では、制御部21は、マスタ装置10Cに対して、通信が復旧したことを知らせる復旧通知信号を異常・復旧通知ライン35を介して送信する。マスタ装置10Cは、ステップS38において復旧通知信号を受信し、IIC通信が復旧したことを知る。そして、ステップS39において、制御部11は、データの送信を再開する。この結果、スレーブ装置20Cでは、送信されたデータを受信する。
【0057】
以上に説明したように、本発明の第4実施形態では、スレーブ装置20Cの状態監視回路52が通信の異常を検出した場合には、スレーブ装置20Cが通信ラインを開放するとともに、通信ラインを初期化するようにしたので、マスタ装置10Cからの指示がなくても、自主的に通信を回復することができる。
【0058】
なお、複数のスレーブ装置を接続可能であることは、前述の第3実施形態の場合と同様である。
【0059】
(E)第5実施形態
図10は本発明の第5実施形態に係る通信システムの構成例を示すブロック図である。なお、この図において、図6と対応する部分には同一の符号を付しているので、その説明は省略する。図10に示す第5実施形態では、図6の場合と比較すると、マスタ装置10Bがマスタ装置10Dに置換され、また、スレーブ装置20Bがスレーブ装置20Dに置換されている。マスタ装置10Dは、I/F14BがI/F14Dに置換され、I/F16が新たに付加されている。スレーブ装置20Dは、I/F24BがI/F24Dに置換され、また、I/F53が新たに付加されている。I/F16およびI/F53は、例えば、RS−232C(EIA−232−D)規格に基づくシリアルインタフェースであり、TxおよびRxの2本を有する通信ライン36を介してデータを相互に通信可能とされている。なお、それ以外の構成は、図6の場合と同様である。
【0060】
つぎに、第5実施形態の動作について説明する。第5実施形態の場合、基本的な動作は、図6に示す第3実施形態の場合と同様であるが、異常通知信号および復旧通知信号がI/F16、通信ライン36、および、I/F53を介して授受される点が異なっている。すなわち、異常が検出された場合には、異常通知信号が通信ライン36を介してスレーブ装置20Dからマスタ装置10Dに対して送信され、通信が復旧した場合には、復旧信号が通信ライン36を介してスレーブ装置20Dからマスタ装置10Dに対して送信される。
【0061】
第5実施形態では、IICとは別のI/F16およびI/F53を設けるようにしたので、スレーブ装置20Dにおける異常の発生をマスタ装置10Dに確実に伝えることが可能になる。
【0062】
なお、図10では、スレーブ装置が1つだけの例を示しているが、複数のスレーブ装置を接続することも可能である。複数のスレーブ装置を接続する場合には、例えば、通信ライン36を介して複数のスレーブ装置とマスタ装置10Dをバス接続(並列接続)し、各スレーブ装置に固有の識別符号を割り当て(例えば、1番目のスレーブ装置には異常通知信号として“01x”を割り当て、復旧信号として“FEx”を割り当て、2番目のスレーブ装置にはそれぞれ“02x”と“FDx”を割り当て)、当該識別符号を送信することによって、どのスレーブ装置で異常が発生しているかを判定するようにしてもよい。また、マスタ装置10Dと複数のスレーブ装置とを択一的に接続するための選択デバイス(例えば、接続状態を制御可能な選択スイッチ)を設けておき、所定のスレーブ装置で異常が発生した場合には、当該スレーブ装置が当該選択デバイスを制御し、自己とマスタ装置10Dとの接続を図ることで、異常の発生をマスタ装置10Dに通知するようにしてもよい。なお、RS−232Cは、基本的には1対1の通信を目的としたI/Fであることから、複数のデバイスを相互接続可能なI/F(例えば、USB(Universal Serial Bus)等)を用いることにより、選択デバイス等を使用することなく、通信が可能になる。また、以上の例では、バス接続の例を示したが、バス接続ではなく、例えば、デージーチェーン接続としてもよい。
【0063】
(F)第6実施形態
つぎに、図11を参照して第6実施形態について説明する。なお、第6実施形態は、本発明に係る通信システムを、光デバイスであるVOA−MUX(Variable Optical Attenuator-Multiplexer)に適用した場合の例を示している。VOA−MUXは、nチャンネル分の光減衰器130−1〜130−n(n>1の自然数)、スレーブ装置120、および、マスタ装置110を主要な構成要素としており、スレーブ装置120とマスタ装置110とは通信ライン230、リセットライン231、および、復旧通知ライン232によって接続されている。なお、この例では、スレーブ装置120は1つのみとされているが複数存在するようにしてもよい。また、この例では、光減衰器130−1〜130−nとスレーブ装置120のみによる構成としているが、例えば、光合波器および光アンプ等を有する構成とし、これらをマスタ装置110と通信ラインによって相互に接続し、マスタ装置110によって光合波器および光アンプ等を制御する構成としてもよい。
【0064】
光減衰器130−1〜130−nは、全て同様の構成とされているので、ここでは、光減衰器130−1を例に挙げて説明する。光減衰器130−1は、VOA(Variable Optical Attenuator)131,132、光カプラ133、および、PD(Photo Diode)134を主要な構成要素としている。VOA131,132は、D/A変換部121から供給される制御信号に基づいて入力される光信号を減衰し、出力する。光カプラ133は、VOA132から出力された光信号の一部を分岐してPD134に導き、残りを出力する。PD134は、光カプラ133によって分岐された光信号を光電変換し、電気信号として出力する。なお、光減衰器130−1〜130−nは、nチャンネル分設けられており、光減衰器130−1〜130−nのそれぞれは、割り当てられたチャンネルの光信号を増幅して出力する。
【0065】
スレーブ装置120は、D/A変換部121、A/D変換部122、制御部123、I/F124、および、記憶部125を主要な構成要素としている。ここで、D/A変換部121は、制御部123から供給された制御データ(デジタル信号)を制御信号(アナログ信号)に変換し、VOA131,132に供給し、VOA131,132の減衰量を制御する。A/D変換部122は、PD134から出力される検出信号(アナログ信号)を、検出データ(デジタル信号)に変換して制御部123に供給する。制御部123は、記憶部125に記憶されているプログラムおよびデータに基づいて装置の各部を制御する。I/F124は、IICプロトコルに基づいて、マスタ装置110との間でデータ通信を行う。記憶部125は、例えば、RAMおよびROM等の半導体メモリによって構成され、制御部123が実行するプログラムおよびデータを格納するとともに、制御部123がプログラムを実行する際のワークエリアとして機能する。
【0066】
マスタ装置110は、例えば、図1に示す第1実施形態のマスタ装置10と同様の構成とされ、通信ラインを介してスレーブ装置120とIIC通信を実行し、スレーブ装置120を制御する。なお、複数のスレーブ装置が接続されている場合には、マスタ装置110は、複数のスレーブ装置を制御することができる。
【0067】
つぎに、以上に示す第6実施形態の動作について説明する。図11に示す実施形態では、図1に示す第1実施形態と同様の動作により、スレーブ装置120が通信異常状態となった場合には、図3と同様の処理により、マスタ装置110からリセットライン231を介してスレーブ装置120にリセット要求がなされる。この結果、スレーブ装置120では、再起動処理が実行され、通信が復旧される。通信が復旧されると、復旧通知ライン232を介して復旧通知がスレーブ装置120からマスタ装置110に対してなされ、マスタ装置110は通信が復旧したことを認識し、データの再送処理を実行する。
【0068】
以上の動作により、トラフィックに影響なく、IIC通信の異常状態から復旧可能となる。また、IIC通信の異常が検出されても、制御停止時間がほとんど無く、運用を継続可能とすることができるため、光デバイスのような、演算に比較的時間を要し、かつ、常時制御する装置については、IIC通信の異常による演算部の停止時間を非常に短くすることができるため、トラフィックの停止等の影響を少なくすることが可能となる。
【0069】
なお、第6実施形態では、図1に示す第1実施形態を適用した場合を例に挙げて説明したが、第2〜第5実施形態を適用するようにしてもよい。例えば、第3〜第5実施形態を適用した場合、スレーブ装置が通信異常を自ら判断して、自ら復旧することから、マスタ装置の処理の負荷を軽減することができる。また、スレーブ装置が複数存在する場合には、いずれかのスレーブ装置が通信異常を起こした場合であっても、当該スレーブ装置は自ら復旧することから、その間、他のスレーブ装置との通信を継続することができるため、トラフィックの停止等の影響を少なくすることができる。
【0070】
(G)変形実施形態
なお、上記の形態例では、一例であって、これ以外にも各種の変形実施態様が存在する。例えば、以上の各実施形態では、制御部11、ROM12、RAM13、I/F14、および、バス15のみの構成としたが、これ以外の機能ブロックが含まれている構成であってもよい。また、マスタ装置とスレーブ装置が異なる構成であってもよい。
【0071】
また、以上の各実施形態では、通信の異常が発生した場合には、IRQ回路50、WDT回路51、および、状態監視回路52によるハードウエア割り込みを発生し、通信異常を復旧するようにしたが、例えば、ソフトウエア割り込みによって、割り込み処理を発生し、通信異常を復旧するようにしてもよい。あるいは、割り込みではなく、サブルーチン処理による復旧を行うことも可能である。
【符号の説明】
【0072】
10,10A,10B,10C,10D マスタ装置
11 制御部(検出手段、通知手段)
12 ROM
13 RAM
14,14A,14B,14C,14D I/F
15 バス
16 I/F
20,20A,20B,20C,20D スレーブ装置
21 制御部(検出手段、復旧手段、通知手段)
22 ROM
23 RAM(格納手段)
24,24A,24B,24C,24D I/F
25 リセット回路(復旧手段)
26 バス
30 通信ライン
31 リセットライン(通知ライン)
32 復旧通知ライン(報告ライン)
33 IRQライン(通知ライン)
35 異常・復旧通知ライン(通知ライン、報告ライン)
50 IRQ回路(復旧手段)
51 WDT回路(復旧手段)
52 状態監視回路(検出手段)
53 I/F
110 マスタ装置
120 スレーブ装置
【技術分野】
【0001】
本発明は、通信システム、マスタ装置、および、スレーブ装置に関するものである。
【背景技術】
【0002】
一般的な電子機器では、電子機器を構成する各モジュール間でデータ通信を行う方法として、IIC(Inter Integrated Circuit)プロトコルに基づく通信(IIC通信)を採用することがある。IIC通信を採用するメリットの一つとして、スレーブモジュールが処理中の場合に、スレーブモジュールがSCL(Serial Clock Line)信号ラインをローレベルに固定することによって、マスタモジュールにデータの送信を保留させることが可能な点が挙げられる。
【0003】
正常な通信が行われている際に、スレーブモジュールがビジー状態(処理中の状態)から復旧すると、通信ラインが開放されて、マスタモジュールからSCL信号が送信される。従来の技術では、通信状態が異常な場合に、当該電子機器を使用する人に異常状態を通知したり(特許文献1参照)、スレーブモジュールからマスタモジュールに対して、誤ったACK(Acknowledge)信号が送出された場合に復旧したりすることについては可能であった(特許文献2参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平10−283581号公報
【特許文献2】特開2007−164765号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら従来の方法では、電圧変動または外来ノイズ等の影響により、通信に失敗するだけでなく、通信自体の継続が困難になる場合がある。例えば、一時的な電圧降下によって、マスタモジュールから生成されるSCL信号が1ビットだけ無効となった場合、スレーブモジュールがビットを誤認識し、通常では想定できないタイミングでSCL信号ラインをローレベルに固定してしまう場合がある(例えば、マスタモジュールから送信されたSCL信号が1ビットだけ無効になった場合、スレーブモジュールは9ビット目を8ビット目と誤認識し、その後、マスタモジュールがSCL信号を送信した際に、その1ビット目のタイミングで、スレーブモジュールがSCL信号ラインをローレベルに固定してしまう場合がある)。
【0006】
特許文献1の技術では、異常が検出された際に、その情報を、当該電子機器の上位装置または当該電子機器を使用する人に通知することは出来るが通信の復旧はできない。また、特許文献2の技術では、外来ノイズや電圧降下によって、スレーブモジュールからマスタモジュールに対して、誤ったACK信号が送出された場合については復旧できるが、前述したような状況においては通信の復旧はできない。すなわち、マスタモジュールで、SCL信号ラインを操作することが出来ないため、特許文献1,2に開示された技術では上記問題を解決できない。
【0007】
そこで、本発明が解決しようとする課題は、通信異常が発生した場合であっても、通信を復旧することが可能な通信システム、マスタ装置、および、スレーブ装置を提供することである。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明の通信システムは、マスタ装置と少なくとも1つのスレーブ装置がシリアルクロックラインとシリアルデータラインを有する通信ラインで相互に接続され、前記マスタ装置と前記スレーブ装置の間でIIC(Inter Integrated Circuit)プロトコルに基づいてIIC通信を行う通信システムにおいて、前記マスタ装置と前記スレーブ装置は、異常の発生を通知するための前記通信ラインとは別の通知ラインによって相互に接続され、前記通信ラインに生じた異常を検出する検出手段と、前記検出手段によって異常が検出された場合に、前記通知ラインを介して他方のモジュールに異常の発生を通知する通知手段と、前記検出手段によって異常が検出された場合に前記IIC通信を復旧させる復旧手段と、が前記マスタ装置または前記スレーブ装置の少なくとも一方に設けられていることを特徴とする。
このような構成によれば、通信異常が発生した場合であっても、通信を復旧することが可能となる。
【0009】
また、他の発明は、上記発明に加えて、前記検出手段は、前記通信ラインが一定時間以上所定のレベルを維持した場合に、異常を検出したと判定することを特徴とする。
このような構成によれば、通信ラインのレベルから、異常を簡易に検出することができる。
【0010】
また、他の発明は、上記発明に加えて、前記検出手段および前記通知手段が前記マスタ装置に設けられ、前記復旧手段が前記スレーブ装置に設けられ、前記マスタ装置に設けられた前記検出手段が前記通信ラインに生じた異常を検出した場合には、前記通知手段が異常の発生を前記スレーブ装置に通知し、前記スレーブ装置の前記復旧手段が、前記マスタ装置から異常の発生の通知を受けた場合に前記IIC通信を復旧させることを特徴とする。
このような構成によれば、マスタ装置において通信の異常を検出した場合には、スレーブ装置に異常を通知し、スレーブ装置がIIC通信を復旧させるので、マスタ装置が主体となって通信異常を管理することができる。
【0011】
また、他の発明は、上記発明に加えて、前記通知ラインは、リセット信号ラインまたはIRQ(Interrupt Request)信号ラインであり、前記通知手段は、これらいずれかの信号ラインを介して、前記スレーブ装置に異常の発生を通知し、前記復旧手段は前記IIC通信に関する処理よりも優先順位が高いリセット処理または割り込み処理によって前記IIC通信を復旧させることを特徴とする。
このような構成によれば、IIC通信に関する処理よりも優先順位が高いリセット処理または割り込み処理によりIIC通信を確実に復旧させることができる。
【0012】
また、他の発明は、上記発明に加えて、前記検出手段、前記通知手段、および、前記復旧手段が前記スレーブ装置に設けられ、前記スレーブ装置に設けられた前記検出手段が前記通信ラインに生じた異常を検出した場合には、前記通知手段が異常の発生を前記マスタ装置に前記通知ラインを介して通知し、前記復旧手段が前記IIC通信を復旧させることを特徴とする。
このような構成によれば、スレーブ装置が自主的にIIC通信を復旧させることができるので、マスタ装置に加わる負荷を軽減することができる。
【0013】
また、他の発明は、上記発明に加えて、前記スレーブ装置は、前記IIC通信の復旧が終了したことを前記マスタ装置に報告する報告手段を有し、前記マスタ装置は、前記報告手段から復旧の報告を受けた場合には、前記通知手段によって異常の発生が通知された際に送信していたデータを再送信することを特徴とする。
このような構成によれば、異常が発生した際に送信されていたデータが未送信になることを防止できる。
【0014】
また、他の発明は、上記発明に加えて、前記通知手段および前記報告手段は、I/O信号ラインを介して異常の発生の通知および前記IIC通信の復旧の報告を前記マスタ装置に対して行うことを特徴とする。
このような構成によれば、汎用インタフェースであるI/O信号ラインを介して異常の発生の通知および復旧の報告を行うことができる。
【0015】
また、他の発明は、上記発明に加えて、前記通知手段および前記報告手段は、シリアル通信ラインを介して異常の発生の通知および前記IIC通信の復旧の報告を前記マスタ装置に対して行うことを特徴とする。
このような構成によれば、例えば、RS−232C等の汎用性が高いシリアル通信ラインを介して異常の発生の通知および復旧の報告を行うことができる。
【0016】
また、他の発明は、上記発明に加えて、前記スレーブ装置を複数有し、前記シリアル通信ラインがデージーチェーン接続またはバス接続によってこれら複数のスレーブ装置と、前記マスタ装置とを相互に接続することを特徴とする。
このような構成によれば、複数のスレーブ装置とマスタ装置とをシリアル通信ラインを介して相互に接続し、これらの間で異常の発生の通知および復旧の報告を行うことができる。
【0017】
また、他の発明は、上記発明に加えて、前記スレーブ装置は、異常が発生した際の前記IIC通信の状態を示す情報を格納する格納手段を有することを特徴とする。
このような構成によれば、格納手段に格納されている情報を参照することにより、異常の発生原因を知ることができる。
【0018】
また、他の発明は、上記発明に加えて、前記復旧手段は、ウォッチドッグタイマ機能を有し、前記通信ラインに異常が発生した場合には、当該ウォッチドッグタイマ機能に基づいて再起動動作を行うことにより前記IIC通信の復旧を行うことを特徴とする。
このような構成によれば、例えば、スレーブ装置がハングアップした場合であっても異常状態から確実に回復することができる。
【0019】
また、上記課題を解決するため、本発明のマスタ装置は、少なくとも1つのスレーブ装置とシリアルクロックラインおよびシリアルデータラインを有する通信ラインで相互に接続され、前記スレーブ装置との間でIICプロトコルに基づいてIIC通信を行うマスタ装置において、異常の発生を通知するための前記通信ラインとは別の通知ラインによって前記スレーブ装置と接続され、前記通信ラインに生じた異常を検出する検出手段と、前記検出手段によって異常が検出された場合に、前記通知ラインを介して前記スレーブ装置に異常の発生を通知し、前記スレーブ装置に前記IIC通信を復旧させるための通知手段と、を有することを特徴とする。
このような構成によれば、通信異常が発生した場合であっても、通信を復旧することが可能となる。
【0020】
また、上記課題を解決するため、本発明のスレーブ装置は、マスタ装置とシリアルクロックラインおよびシリアルデータラインの2本を有する通信ラインで相互に接続され、前記マスタ装置との間でIICプロトコルに基づいてIIC通信を行うスレーブ装置において、異常の発生を通知するための前記通信ラインとは別の通知ラインによって前記マスタ装置と接続され、前記通信ラインに生じた異常を検出する検出手段と、前記検出手段によって異常が検出された場合に、前記通知ラインを介して前記マスタ装置に異常の発生を通知する通知手段と、前記検出手段によって異常が検出された場合に、前記IIC通信を復旧させる復旧手段と、を有することを特徴とする。
【発明の効果】
【0021】
本発明によれば、通信異常が発生した場合であっても、通信を復旧することが可能な通信システム、マスタ装置、および、スレーブ装置を提供することが可能となる。
【図面の簡単な説明】
【0022】
【図1】本発明の第1実施形態に係る通信システムの構成例を示す図である。
【図2】図1に示すスレーブ装置が具備するIICドライバ群が有するステータス情報を示す図である。
【図3】図1に示す第1実施形態において実行される処理の流れを説明するためのフローチャートである。
【図4】本発明の第2実施形態に係る通信システムの構成例を示す図である。
【図5】図4に示す第2実施形態において実行される処理の流れを説明するためのフローチャートである。
【図6】本発明の第3実施形態に係る通信システムの構成例を示す図である。
【図7】図6に示す第3実施形態において実行される処理の流れを説明するためのフローチャートである。
【図8】本発明の第4実施形態に係る通信システムの構成例を示す図である。
【図9】図8に示す第4実施形態において実行される処理の流れを説明するためのフローチャートである。
【図10】本発明の第5実施形態に係る通信システムの構成例を示す図である。
【図11】本発明の第6実施形態に係る光デバイスの構成例を示す図である。
【発明を実施するための形態】
【0023】
次に、本発明の実施形態について説明する。
【0024】
(A)第1実施形態
図1は本発明の第1実施形態に係る通信システムの構成例を示すブロック図である。本発明の第1実施形態に係る通信システムは、マスタ装置10およびスレーブ装置20を主要な構成要素としている。マスタ装置10とスレーブ装置20は、SDA(シリアルデータライン(Serial Data Line))およびSCL(シリアルクロックライン(Serial Clock Line))を有する通信ライン30によって相互に接続されている。また、マスタ装置10とスレーブ装置20は、リセットライン31および復旧通知ライン32によって相互に接続されている。リセットライン31は、マスタ装置10のI/F14の汎用I/O端子とスレーブ装置20のI/F24のリセット端子を接続している。また、復旧通知ライン32は、マスタ装置10のI/F14の汎用I/O端子とスレーブ装置20のI/F24の汎用I/O端子を接続している。なお、この例では、図面を簡略化するためにスレーブ装置20は1つだけとされているが、複数(2以上)のスレーブ装置を接続することも可能である。
【0025】
ここで、マスタ装置10は、制御部11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、I/F(Interface)14、および、バス15を主要な構成要素としている。制御部11は、ROM12に格納されているプログラムおよびデータに基づいて、装置の各部を制御する。RAM13は、制御部11がプログラムを実行する際のワークエリアとして機能する。I/F14は、IICプロトコルに基づいてスレーブ装置20との間で通信ライン30を介して通信を行う。また、I/F14は、スレーブ装置20にリセットライン31を介してリセット指示を送信するとともに、復旧通知ライン32を介してスレーブ装置20から復旧通知を受信する。バス15は、制御部11、ROM12、RAM13、および、I/F14を相互に接続し、これらの間でデータの授受を可能とするための信号線群である。
【0026】
スレーブ装置20は、制御部21、ROM22、RAM23、I/F24、リセット回路25、および、バス26を主要な構成要素としている。制御部21は、ROM22に格納されているプログラムおよびデータに基づいて装置の各部を制御する。RAM23は、制御部21がプログラムを実行する際のワークエリアとして機能する。I/F24は、IICプロトコルに基づいてマスタ装置10との間で通信を行う。リセット回路25は、リセットライン31およびI/F24を介してマスタ装置10からリセット指示を受け取った場合には、スレーブ装置20をリセットし、マスタ装置10との間のIIC通信を復旧する。バス26は、制御部21、ROM22、RAM23、I/F24、および、リセット回路25を相互に接続し、これらの間でデータの授受を可能とするための信号線群である。
【0027】
図2は、スレーブ装置20が具備するIICドライバ群が有するステータス情報を示す図である。この図2に示すように、ステータス情報40としては、スタートビット受信を示す情報41、データ送受信を示す情報42、ストップビット受信を示す情報43、ACK送受信を示す情報44、および、NACK送受信を示す情報45が存在する。ここで、スタートビット受信を示す情報41は、マスタ装置10が通信を開始する際、バスの使用権を獲得するために発行するビットを受信したか否かを示す情報である。データ送受信を示す情報42は、スレーブ装置20がデータを送信している状態であるか、または、受信している状態であるかを示す情報である。ストップビット受信を示す情報43は、マスタ装置10が通信を終了する際、バスを開放するために発行するビットを受信したか否かを示す情報である。ACK送受信を示す情報44は、ACKビットを送受信したか否かを示す情報である。なお、ACKビットは、例えば、マスタ装置10からスレーブ装置20に8ビットのデータを送信する場合に、9クロック目にスレーブ装置20からマスタ装置10に対して送信されるローの状態のビットである。NACK送受信を示す情報45は、NACKビットを送受信したか否かを示す情報である。なお、NACKビットは、例えば、スレーブ装置20からマスタ装置10に8ビットのデータを送信する場合に、9クロック目にマスタ装置10からスレーブ装置20に送信されるハイの状態のビットである。
【0028】
つぎに、本発明の第1実施形態の動作について説明する。図3は、第1実施形態の動作を説明するためのフローチャートである。この処理は、電圧変動、または、外来ノイズ等の影響による通信ライン30の異常に起因してスレーブ装置20が、例えば、動作不能状態(ハングアップ状態)になった場合に実行される処理である。このフローチャートの処理が開始されると、まず、ステップS10において、マスタ装置10の制御部11は、I/F14の状態に基づいて、通信異常を検出する。なお、通信異常を検出する方法としては、通信ラインが所定の時間(例えば、数十msec〜数百msec)以上、所定のレベル(例えば、ローレベル)を維持した場合には、異常が発生していると判定することができる。判定の基準となる時間は、用途または適用する機器に応じて適宜設定することができる。なお、I/F14に図示せぬ入力デバイスを接続し、当該時間を任意に変更可能としてもよい。
【0029】
ステップS11では、制御部11は、I/F14を介してスレーブ装置20に通信異常が発生したことを通知するための通信異常通知信号(リセット信号)を送信する。このようにして送信されたリセット信号は、リセットライン31を介してI/F24によって受信され(ステップS12)、制御部21に供給される。
【0030】
ステップS13では、スレーブ装置20の制御部21は、図2に示すIICドライバ群が有するステータス情報をI/F24から取得し、RAM13に格納する。なお、このようにして格納されたIIC通信のステータス情報を参照することにより、どのような原因で異常が発生したかを知ることができる。なお、表示部を設けて、異常状態から復元した場合に、ステータス情報を表示するようにしてもよい。
【0031】
ステップS14では、制御部21は、リセット回路25に対してコマンドを発行し、スレーブ装置20を再起動させる。このような再起動動作を実行することにより、ステップS15,S16に示す開放処理および初期化処理が実行され、スレーブ装置20が動作不能状態から回復する。より詳細には、ステップS15では、制御部21は、通信ライン開放処理を実行する。なお、通信ライン開放処理の具体例としては、例えば、「割り込み要因レジスタクリア」、「所定のレジスタクリア」、および、「受信データダミーリード」が存在する。ここで、「割り込み要因レジスタクリア」とは、割り込み要因となったレジスタをクリアすることである。なお、リセット処理によってレジスタがハードウエアにより自動的にクリアされる場合はクリアを行う必要はないが、自動的にクリアされない場合にはステップS15の処理においてソフトウエア的にクリアする。「所定のレジスタクリア」とは、例えば、通信の方向(送信であるか受信であるかの方向)を示すレジスタおよびスレーブアドレス認識レジスタをクリアすることである。なお、スレーブアドレス認識レジスタとは、各機器固有のアドレスを受信すると、その値が“1”にセットされるレジスタである。「受信データダミーリード」とは、受信データが格納されるレジスタをダミーリードすることによりSCLを開放することをいう。ダミーリードがなされると、SCLが開放されることから、スレーブ装置20がSCLを占有する状態が終結する。
【0032】
ステップS16では、制御部21は、通信ライン初期化処理を実行する。なお、通信ライン開放処理の具体例としては、例えば、「通信バッファのクリア」、「レジスタの初期化」、および、「割り込み許可」がある。なお、「通信バッファのクリア」により、それまで受信してバッファに格納されているデータが消去される。また、「レジスタの初期化」により、例えば、図2に示すステータス情報がクリアされる。なお、ステータス情報は、ステップS13においてRAM23に退避されているので、異常状態から復元した後に、参照することができる。さらに、「割り込み許可」によって、この後は割り込みが許可される。
【0033】
ステップS17では、制御部21は、復旧通知ライン32を介してマスタ装置10に対して、IIC通信が復旧したことを通知する。その結果、マスタ装置10では、この通知をI/F14によって受信する(ステップS18)。
【0034】
ステップS19では、復旧信号を受信した制御部11が、送信が終了していないデータ(通信異常を検出した際に送信していたデータ)の再送処理を実行する。具体的には、例えば、ACK信号をスレーブ装置20から受信する前に異常を検出し、図3に示す処理が実行された場合には、その際に送信していたデータを最初のビットから再送信する。その結果、ステップS20では、制御部21がマスタ装置10から送信されたデータを受信することができる。なお、受信が完了すると、スレーブ装置20は、ACK信号を送信することにより、マスタ装置10に対して正常にデータを受信したことを通知する。
【0035】
以上の処理によれば、スレーブ装置20がSCLをローレベルに固定した状態で、通信不能となった場合であっても、マスタ装置10からスレーブ装置20に対して、リセットライン31を介してリセット信号を送信することにより、スレーブ装置20に異常が発生していることを通知して通信ライン30を開放させ、通信を再開することができる。これにより、例えば、通信ライン30にノイズが重畳したり、電源電圧が変動したりすることにより、通信異常が発生した場合であっても、通信を復旧させることができる。また、リセット処理は、IIC通信に関する処理(以下「IIC通信処理」と称する)よりも優先順位が高いことから、確実に復旧することができる。また、異常が発生した時点のステータス情報をRAM13に格納するようにしたので、異常の原因を知ることができる。なお、RAM13を不揮発性のメモリとすることで、電源が遮断された場合であっても、ステータス情報を保持し続けることができる。
【0036】
なお、以上の第1実施形態では、図面を簡略化するために、スレーブ装置は1つとしたが、複数のスレーブ装置を接続することも可能である。その場合、通信ライン30については複数のスレーブ装置およびマスタ装置間で並列接続とする。また、リセットライン31および復旧通知ライン32については、マスタ装置にスレーブ装置毎に接続ポートを設け、既定の接続ポートに対して各スレーブ装置のリセットラインおよび復旧通知ラインを接続することで複数のスレーブ装置を接続することができる。なお、複数のスレーブ装置を接続場合、前述した動作がスレーブ装置毎に実行される。
【0037】
(B)第2実施形態
図4は本発明の第2実施形態に係る通信システムの構成例を示すブロック図である。なお、この図において、図1と対応する部分には同一の符号を付しているので、その説明を省略する。図4に示す第2実施形態では、図1の場合と比較すると、マスタ装置10がマスタ装置10Aに置換され、また、スレーブ装置20がスレーブ装置20Aに置換されている。マスタ装置10Aは、I/F14がI/F14Aに置換されている。スレーブ装置20Aは、リセット回路25がIRQ(Interrupt Request)回路50に置換され、I/F24がI/F24Aに置換されている。また、リセットライン31がIRQライン33に置換されている。IRQライン33は、マスタ装置10AのI/F14Aの汎用I/O端子とスレーブ装置20AのI/F24AのIRQ端子を接続している。また、復旧通知ライン32は、マスタ装置10AのI/F14Aの汎用I/O端子とスレーブ装置20AのI/F24Aの汎用I/O端子を接続している。なお、それ以外の構成は、図1の場合と同様である。
【0038】
IRQ回路50は、マスタ装置10AからIRQライン33を介して割り込み要求がなされた場合には、I/F24Aを介してこれを受信し、割り込みを発生する回路である。なお、IRQ回路50による割り込み処理の優先順位は、IIC通信処理の優先順位よりも高く設定されているものとする。
【0039】
つぎに、図5を参照して、第2実施形態の動作について説明する。なお、図5に示すフローチャートにおいて、図3と対応する部分には、同一の符号を付しているので、その内容については簡単に説明する。図5に示すフローチャートの処理では、ステップS10において、制御部21が異常を検出すると、ステップS11において、IRQライン33を介してスレーブ装置20AにIRQ信号を供給する。この結果、スレーブ装置20Aでは、I/F24Aを介してIRQ信号を受信し(ステップS12)、IRQ回路50に供給する。IRQ回路50は、割り込みを発生する。割り込みが発生すると、割り込み処理が開始される。割り込み処理では、まず、ステップS13において、通信ステータスをRAM13に格納し、ステップS15において通信ラインを開放する処理を実行する。なお、図5の処理では、リセット処理は実行されない。通信ラインを開放する処理が終了すると、つづいて、ステップS16において通信ラインを初期化する処理が実行される。なお、ステップS15,S16の処理は図3の場合と同様である。
【0040】
ステップS17では、制御部21は、復旧通知ライン32を介して通信が復旧したことを通知する。マスタ装置10Aでは、ステップS18において復旧信号を受信し、ステップS19において送信が終了していないデータ(通信異常を検出した際に送信していたデータ)の再送処理を実行する。その結果、ステップS20において、スレーブ装置20Aがマスタ装置10Aから送信されたデータを受信することが可能となる。
【0041】
以上に説明したように、本発明の第2実施形態では、マスタ装置10Aが通信の異常を検出した場合には、IRQライン33を介してIRQ信号を送信し、スレーブ装置20Aが割り込みに基づいてIIC通信を復旧する処理を実行するようにしたので、前述した第1実施形態と同様に、異常状態が発生した場合であっても、通信を復旧することができる。
【0042】
なお、複数のスレーブ装置を接続できることは、第1実施形態の場合と同様であり、その接続形態についても前述した第1実施形態の場合と同様である。
【0043】
(C)第3実施形態
図6は本発明の第3実施形態に係る通信システムの構成例を示すブロック図である。なお、この図において、図1と対応する部分には同一の符号を付しているので、その説明は省略する。図6に示す第3実施形態では、図1の場合と比較すると、マスタ装置10がマスタ装置10Bに置換され、また、スレーブ装置20がスレーブ装置20Bに置換されている。マスタ装置10Bは、I/F14がI/F14Bに置換されている。スレーブ装置20Bは、リセット回路25がWDT(ウォッチドッグタイマ(Watch Dog Timer))回路50に置換され、I/F24がI/F24Bに置換されている。また、リセットライン31および復旧通知ライン32が除外さるとともに、異常・復旧通知ライン35が新たに付加されている。異常・復旧通知ライン35は、マスタ装置10BのI/F14Bの汎用I/O端子とスレーブ装置20BのI/F24Bの汎用I/O端子を接続している。なお、それ以外の構成は、図1の場合と同様である。
【0044】
WDT回路50は、カウントアップタイマを有しており、当該カウントアップタイマがカウントアップされてオーバーフローした場合にはイベントが発生する。イベントの具体例としては、例えば、リセット割り込みがある。カウントアップタイマがオーバーフローする前に、WDT回路50にアクセスしてこれを0クリアすることにより、イベントの発生を防止することができる。制御部21は、通常の状態(通信異常が発生していない状態)では、カウントアップタイマがオーバーフローする前にアクセスするように設定されているので、通常状態ではイベントが発生することはない。なお、WDT回路50によるイベントに基づく割り込みの優先順位は、IIC通信処理の優先順位よりも高く設定されている。ここで、カウントアップタイマの代わりにカウントダウンタイマを使用し、カウントダウン動作の結果、カウント値が「0」になった場合にイベントが発生するようにしてもよい。
【0045】
つぎに、図7を参照して、第3実施形態の動作について説明する。図7の処理が開始されると、まず、ステップS30において、スレーブ装置20Bが通信異常を検出すると、ステップS31に進む。ステップS32では、スレーブ装置20Bの制御部21は、図2に示すIICドライバ群が有するステータス情報をI/F24から取得し、RAM13に格納する。通信異常が発生した場合、WDT回路50のカウントアップタイマが0クリア不能となることから、ステップS32ではWDTリセットが発生し、これに基づく割り込み(WDT割り込み)が発生する。WDT割り込みが発生すると、ステップS33以降の処理が実行される。
【0046】
ステップS33では、制御部21は、マスタ装置10Bに対して、異常が発生したことを知らせる異常通知信号を異常・復旧通知ライン35を介して送信する。異常通知信号を受信したマスタ装置10Bでは、通信異常が発生していることを知るとともに、ステップS34において通信をストップする。
【0047】
ステップS35では、制御部21は、通信ラインを開放する処理を実行し、ステップS36では、制御部21は通信ラインを初期化する処理を実行する。なお、これらの処理は、図3のステップS15,S16の処理と同様である。
【0048】
ステップS37では、制御部21は、マスタ装置10Bに対して、通信が復旧したことを知らせる復旧信号を異常・復旧通知ライン35を介して送信する。マスタ装置10Bは、ステップS38において復旧信号を受信し、通信が復旧したことを知る。そして、ステップS39において、制御部11は、送信が終了していないデータ(通信異常を検出した際に送信していたデータ)の再送処理を実行する。この結果、スレーブ装置20Bでは、送信されたデータを受信する。
【0049】
以上に説明したように、本発明の第3実施形態では、スレーブ装置20Bが通信の異常を検出した場合には、スレーブ装置20Bが通信ラインを開放するとともに、通信ラインを初期化するようにしたので、マスタ装置10Bからの指示がなくても、自主的に通信を回復することができる。このため、マスタ装置10Bの処理の負荷を軽減することができる。
【0050】
なお、複数のスレーブ装置を接続可能であることは、前述の第1および第2実施形態の場合と同様である。その場合、通信ライン30については複数のスレーブ装置およびマスタ装置間で並列接続とし、異常・復旧通知ラインについては、マスタ装置にスレーブ装置毎に接続ポートを設け、既定の接続ポートに対して各スレーブ装置の異常・復旧通知ラインを接続することで複数のスレーブ装置を接続することができる。
【0051】
(D)第4実施形態
図8は本発明の第4実施形態に係る通信システムの構成例を示すブロック図である。なお、この図において、図6と対応する部分には同一の符号を付しているので、その説明は省略する。図8に示す第4実施形態では、図6の場合と比較すると、マスタ装置10Bがマスタ装置10Cに置換され、また、スレーブ装置20Bがスレーブ装置20Cに置換されている。マスタ装置10Cは、I/F14BがI/F14Cに置換されている。スレーブ装置20Cは、WDT回路50が状態監視回路52に置換され、I/F24BがI/F24Cに置換されている。なお、それ以外の構成は、図6の場合と同様である。
【0052】
状態監視回路52は、通信状態を監視し、異常が発生した場合には、制御部21に通知するか、または、割り込みを発生する回路である。なお、状態を監視する方法としては、例えば、所定の時間(例えば、数十msec〜数百msec)以上、SCLまたはSDLが所定のレベル(例えば、ローレベル)を維持した場合には、異常が発生したと判定する。
【0053】
つぎに、図9を参照して、第4実施形態の動作について説明する。なお、この図9において、図7と対応する部分には同一の符号を付しているので、その内容については簡単に説明する。図9の処理が開始されると、まず、ステップS30において、スレーブ装置20Cの状態監視回路52が通信異常を検出し、ステップS31に進む。ステップS31では、スレーブ装置20Cの制御部21は、図2に示すIICドライバ群が有するステータス情報をI/F24Cから取得し、RAM13に格納する。
【0054】
ステップS33では、制御部21は、マスタ装置10Cに対して、異常が発生したことを知らせる異常通知信号を異常・復旧通知ライン35を介して送信する。異常通知信号を受信したマスタ装置10Cでは、通信異常が発生していることを知るとともに、ステップS34において通信をストップする。
【0055】
ステップS35では、制御部21は、通信ラインを開放する処理を実行し、ステップS36では、制御部21は通信ラインを初期化する処理を実行する。なお、これらの処理は、図3のステップS15,S16の処理と同様である。
【0056】
ステップS37では、制御部21は、マスタ装置10Cに対して、通信が復旧したことを知らせる復旧通知信号を異常・復旧通知ライン35を介して送信する。マスタ装置10Cは、ステップS38において復旧通知信号を受信し、IIC通信が復旧したことを知る。そして、ステップS39において、制御部11は、データの送信を再開する。この結果、スレーブ装置20Cでは、送信されたデータを受信する。
【0057】
以上に説明したように、本発明の第4実施形態では、スレーブ装置20Cの状態監視回路52が通信の異常を検出した場合には、スレーブ装置20Cが通信ラインを開放するとともに、通信ラインを初期化するようにしたので、マスタ装置10Cからの指示がなくても、自主的に通信を回復することができる。
【0058】
なお、複数のスレーブ装置を接続可能であることは、前述の第3実施形態の場合と同様である。
【0059】
(E)第5実施形態
図10は本発明の第5実施形態に係る通信システムの構成例を示すブロック図である。なお、この図において、図6と対応する部分には同一の符号を付しているので、その説明は省略する。図10に示す第5実施形態では、図6の場合と比較すると、マスタ装置10Bがマスタ装置10Dに置換され、また、スレーブ装置20Bがスレーブ装置20Dに置換されている。マスタ装置10Dは、I/F14BがI/F14Dに置換され、I/F16が新たに付加されている。スレーブ装置20Dは、I/F24BがI/F24Dに置換され、また、I/F53が新たに付加されている。I/F16およびI/F53は、例えば、RS−232C(EIA−232−D)規格に基づくシリアルインタフェースであり、TxおよびRxの2本を有する通信ライン36を介してデータを相互に通信可能とされている。なお、それ以外の構成は、図6の場合と同様である。
【0060】
つぎに、第5実施形態の動作について説明する。第5実施形態の場合、基本的な動作は、図6に示す第3実施形態の場合と同様であるが、異常通知信号および復旧通知信号がI/F16、通信ライン36、および、I/F53を介して授受される点が異なっている。すなわち、異常が検出された場合には、異常通知信号が通信ライン36を介してスレーブ装置20Dからマスタ装置10Dに対して送信され、通信が復旧した場合には、復旧信号が通信ライン36を介してスレーブ装置20Dからマスタ装置10Dに対して送信される。
【0061】
第5実施形態では、IICとは別のI/F16およびI/F53を設けるようにしたので、スレーブ装置20Dにおける異常の発生をマスタ装置10Dに確実に伝えることが可能になる。
【0062】
なお、図10では、スレーブ装置が1つだけの例を示しているが、複数のスレーブ装置を接続することも可能である。複数のスレーブ装置を接続する場合には、例えば、通信ライン36を介して複数のスレーブ装置とマスタ装置10Dをバス接続(並列接続)し、各スレーブ装置に固有の識別符号を割り当て(例えば、1番目のスレーブ装置には異常通知信号として“01x”を割り当て、復旧信号として“FEx”を割り当て、2番目のスレーブ装置にはそれぞれ“02x”と“FDx”を割り当て)、当該識別符号を送信することによって、どのスレーブ装置で異常が発生しているかを判定するようにしてもよい。また、マスタ装置10Dと複数のスレーブ装置とを択一的に接続するための選択デバイス(例えば、接続状態を制御可能な選択スイッチ)を設けておき、所定のスレーブ装置で異常が発生した場合には、当該スレーブ装置が当該選択デバイスを制御し、自己とマスタ装置10Dとの接続を図ることで、異常の発生をマスタ装置10Dに通知するようにしてもよい。なお、RS−232Cは、基本的には1対1の通信を目的としたI/Fであることから、複数のデバイスを相互接続可能なI/F(例えば、USB(Universal Serial Bus)等)を用いることにより、選択デバイス等を使用することなく、通信が可能になる。また、以上の例では、バス接続の例を示したが、バス接続ではなく、例えば、デージーチェーン接続としてもよい。
【0063】
(F)第6実施形態
つぎに、図11を参照して第6実施形態について説明する。なお、第6実施形態は、本発明に係る通信システムを、光デバイスであるVOA−MUX(Variable Optical Attenuator-Multiplexer)に適用した場合の例を示している。VOA−MUXは、nチャンネル分の光減衰器130−1〜130−n(n>1の自然数)、スレーブ装置120、および、マスタ装置110を主要な構成要素としており、スレーブ装置120とマスタ装置110とは通信ライン230、リセットライン231、および、復旧通知ライン232によって接続されている。なお、この例では、スレーブ装置120は1つのみとされているが複数存在するようにしてもよい。また、この例では、光減衰器130−1〜130−nとスレーブ装置120のみによる構成としているが、例えば、光合波器および光アンプ等を有する構成とし、これらをマスタ装置110と通信ラインによって相互に接続し、マスタ装置110によって光合波器および光アンプ等を制御する構成としてもよい。
【0064】
光減衰器130−1〜130−nは、全て同様の構成とされているので、ここでは、光減衰器130−1を例に挙げて説明する。光減衰器130−1は、VOA(Variable Optical Attenuator)131,132、光カプラ133、および、PD(Photo Diode)134を主要な構成要素としている。VOA131,132は、D/A変換部121から供給される制御信号に基づいて入力される光信号を減衰し、出力する。光カプラ133は、VOA132から出力された光信号の一部を分岐してPD134に導き、残りを出力する。PD134は、光カプラ133によって分岐された光信号を光電変換し、電気信号として出力する。なお、光減衰器130−1〜130−nは、nチャンネル分設けられており、光減衰器130−1〜130−nのそれぞれは、割り当てられたチャンネルの光信号を増幅して出力する。
【0065】
スレーブ装置120は、D/A変換部121、A/D変換部122、制御部123、I/F124、および、記憶部125を主要な構成要素としている。ここで、D/A変換部121は、制御部123から供給された制御データ(デジタル信号)を制御信号(アナログ信号)に変換し、VOA131,132に供給し、VOA131,132の減衰量を制御する。A/D変換部122は、PD134から出力される検出信号(アナログ信号)を、検出データ(デジタル信号)に変換して制御部123に供給する。制御部123は、記憶部125に記憶されているプログラムおよびデータに基づいて装置の各部を制御する。I/F124は、IICプロトコルに基づいて、マスタ装置110との間でデータ通信を行う。記憶部125は、例えば、RAMおよびROM等の半導体メモリによって構成され、制御部123が実行するプログラムおよびデータを格納するとともに、制御部123がプログラムを実行する際のワークエリアとして機能する。
【0066】
マスタ装置110は、例えば、図1に示す第1実施形態のマスタ装置10と同様の構成とされ、通信ラインを介してスレーブ装置120とIIC通信を実行し、スレーブ装置120を制御する。なお、複数のスレーブ装置が接続されている場合には、マスタ装置110は、複数のスレーブ装置を制御することができる。
【0067】
つぎに、以上に示す第6実施形態の動作について説明する。図11に示す実施形態では、図1に示す第1実施形態と同様の動作により、スレーブ装置120が通信異常状態となった場合には、図3と同様の処理により、マスタ装置110からリセットライン231を介してスレーブ装置120にリセット要求がなされる。この結果、スレーブ装置120では、再起動処理が実行され、通信が復旧される。通信が復旧されると、復旧通知ライン232を介して復旧通知がスレーブ装置120からマスタ装置110に対してなされ、マスタ装置110は通信が復旧したことを認識し、データの再送処理を実行する。
【0068】
以上の動作により、トラフィックに影響なく、IIC通信の異常状態から復旧可能となる。また、IIC通信の異常が検出されても、制御停止時間がほとんど無く、運用を継続可能とすることができるため、光デバイスのような、演算に比較的時間を要し、かつ、常時制御する装置については、IIC通信の異常による演算部の停止時間を非常に短くすることができるため、トラフィックの停止等の影響を少なくすることが可能となる。
【0069】
なお、第6実施形態では、図1に示す第1実施形態を適用した場合を例に挙げて説明したが、第2〜第5実施形態を適用するようにしてもよい。例えば、第3〜第5実施形態を適用した場合、スレーブ装置が通信異常を自ら判断して、自ら復旧することから、マスタ装置の処理の負荷を軽減することができる。また、スレーブ装置が複数存在する場合には、いずれかのスレーブ装置が通信異常を起こした場合であっても、当該スレーブ装置は自ら復旧することから、その間、他のスレーブ装置との通信を継続することができるため、トラフィックの停止等の影響を少なくすることができる。
【0070】
(G)変形実施形態
なお、上記の形態例では、一例であって、これ以外にも各種の変形実施態様が存在する。例えば、以上の各実施形態では、制御部11、ROM12、RAM13、I/F14、および、バス15のみの構成としたが、これ以外の機能ブロックが含まれている構成であってもよい。また、マスタ装置とスレーブ装置が異なる構成であってもよい。
【0071】
また、以上の各実施形態では、通信の異常が発生した場合には、IRQ回路50、WDT回路51、および、状態監視回路52によるハードウエア割り込みを発生し、通信異常を復旧するようにしたが、例えば、ソフトウエア割り込みによって、割り込み処理を発生し、通信異常を復旧するようにしてもよい。あるいは、割り込みではなく、サブルーチン処理による復旧を行うことも可能である。
【符号の説明】
【0072】
10,10A,10B,10C,10D マスタ装置
11 制御部(検出手段、通知手段)
12 ROM
13 RAM
14,14A,14B,14C,14D I/F
15 バス
16 I/F
20,20A,20B,20C,20D スレーブ装置
21 制御部(検出手段、復旧手段、通知手段)
22 ROM
23 RAM(格納手段)
24,24A,24B,24C,24D I/F
25 リセット回路(復旧手段)
26 バス
30 通信ライン
31 リセットライン(通知ライン)
32 復旧通知ライン(報告ライン)
33 IRQライン(通知ライン)
35 異常・復旧通知ライン(通知ライン、報告ライン)
50 IRQ回路(復旧手段)
51 WDT回路(復旧手段)
52 状態監視回路(検出手段)
53 I/F
110 マスタ装置
120 スレーブ装置
【特許請求の範囲】
【請求項1】
マスタ装置と少なくとも1つのスレーブ装置がシリアルクロックラインとシリアルデータラインを有する通信ラインで相互に接続され、前記マスタ装置と前記スレーブ装置の間でIIC(Inter Integrated Circuit)プロトコルに基づいてIIC通信を行う通信システムにおいて、
前記マスタ装置と前記スレーブ装置は、異常の発生を通知するための前記通信ラインとは別の通知ラインによって相互に接続され、
前記通信ラインに生じた異常を検出する検出手段と、前記検出手段によって異常が検出された場合に、前記通知ラインを介して他方のモジュールに異常の発生を通知する通知手段と、前記検出手段によって異常が検出された場合に前記IIC通信を復旧させる復旧手段と、が前記マスタ装置または前記スレーブ装置の少なくとも一方に設けられていることを特徴とする通信システム。
【請求項2】
前記検出手段は、前記通信ラインが一定時間以上所定のレベルを維持した場合に、異常を検出したと判定することを特徴とする請求項1記載の通信システム。
【請求項3】
前記検出手段および前記通知手段が前記マスタ装置に設けられ、前記復旧手段が前記スレーブ装置に設けられ、
前記マスタ装置に設けられた前記検出手段が前記通信ラインに生じた異常を検出した場合には、前記通知手段が異常の発生を前記スレーブ装置に通知し、
前記スレーブ装置の前記復旧手段が、前記マスタ装置から異常の発生の通知を受けた場合に前記IIC通信を復旧させる、
ことを特徴とする請求項1または2記載の通信システム。
【請求項4】
前記通知ラインは、リセット信号ラインまたはIRQ(Interrupt Request)信号ラインであり、
前記通知手段は、これらいずれかの信号ラインを介して、前記スレーブ装置に異常の発生を通知し、前記復旧手段は前記IIC通信に関する処理よりも優先順位が高いリセット処理または割り込み処理によって前記IIC通信を復旧させる、
ことを特徴とする請求項3に記載の通信システム。
【請求項5】
前記検出手段、前記通知手段、および、前記復旧手段が前記スレーブ装置に設けられ、
前記スレーブ装置に設けられた前記検出手段が前記通信ラインに生じた異常を検出した場合には、前記通知手段が異常の発生を前記マスタ装置に前記通知ラインを介して通知し、前記復旧手段が前記IIC通信を復旧させる、
ことを特徴とする請求項1または2記載の通信システム。
【請求項6】
前記スレーブ装置は、前記IIC通信の復旧が終了したことを前記マスタ装置に報告する報告手段を有し、
前記マスタ装置は、前記報告手段から復旧の報告を受けた場合には、前記通知手段によって異常の発生が通知された際に送信していたデータを再送信する、
ことを特徴とする請求項1乃至5のいずれか1項に記載の通信システム。
【請求項7】
前記通知手段および前記報告手段は、I/O信号ラインを介して異常の発生の通知および前記IIC通信の復旧の報告を前記マスタ装置に対して行うことを特徴とする請求項6に記載の通信システム。
【請求項8】
前記通知手段および前記報告手段は、シリアル通信ラインを介して異常の発生の通知および前記IIC通信の復旧の報告を前記マスタ装置に対して行うことを特徴とする請求項6に記載の通信システム。
【請求項9】
前記スレーブ装置を複数有し、前記シリアル通信ラインがデージーチェーン接続またはバス接続によってこれら複数のスレーブ装置と、前記マスタ装置とを相互に接続することを特徴とする請求項8に記載の通信システム。
【請求項10】
前記スレーブ装置は、異常が発生した際の前記IIC通信の状態を示す情報を格納する格納手段を有することを特徴とする請求項1乃至9のいずれか1項に記載の通信システム。
【請求項11】
前記復旧手段は、ウォッチドッグタイマ機能を有し、前記通信ラインに異常が発生した場合には、当該ウォッチドッグタイマ機能に基づいて再起動動作を行うことにより前記IIC通信の復旧を行うことを特徴とする請求項1乃至10のいずれか1項に記載の通信システム。
【請求項12】
少なくとも1つのスレーブ装置とシリアルクロックラインおよびシリアルデータラインを有する通信ラインで相互に接続され、前記スレーブ装置との間でIICプロトコルに基づいてIIC通信を行うマスタ装置において、
異常の発生を通知するための前記通信ラインとは別の通知ラインによって前記スレーブ装置と接続され、
前記通信ラインに生じた異常を検出する検出手段と、
前記検出手段によって異常が検出された場合に、前記通知ラインを介して前記スレーブ装置に異常の発生を通知し、前記スレーブ装置に前記IIC通信を復旧させるための通知手段と、
を有することを特徴とするマスタ装置。
【請求項13】
マスタ装置とシリアルクロックラインおよびシリアルデータラインの2本を有する通信ラインで相互に接続され、前記マスタ装置との間でIICプロトコルに基づいてIIC通信を行うスレーブ装置において、
異常の発生を通知するための前記通信ラインとは別の通知ラインによって前記マスタ装置と接続され、
前記通信ラインに生じた異常を検出する検出手段と、
前記検出手段によって異常が検出された場合に、前記通知ラインを介して前記マスタ装置に異常の発生を通知する通知手段と、
前記検出手段によって異常が検出された場合に、前記IIC通信を復旧させる復旧手段と、
を有することを特徴とするスレーブ装置。
【請求項1】
マスタ装置と少なくとも1つのスレーブ装置がシリアルクロックラインとシリアルデータラインを有する通信ラインで相互に接続され、前記マスタ装置と前記スレーブ装置の間でIIC(Inter Integrated Circuit)プロトコルに基づいてIIC通信を行う通信システムにおいて、
前記マスタ装置と前記スレーブ装置は、異常の発生を通知するための前記通信ラインとは別の通知ラインによって相互に接続され、
前記通信ラインに生じた異常を検出する検出手段と、前記検出手段によって異常が検出された場合に、前記通知ラインを介して他方のモジュールに異常の発生を通知する通知手段と、前記検出手段によって異常が検出された場合に前記IIC通信を復旧させる復旧手段と、が前記マスタ装置または前記スレーブ装置の少なくとも一方に設けられていることを特徴とする通信システム。
【請求項2】
前記検出手段は、前記通信ラインが一定時間以上所定のレベルを維持した場合に、異常を検出したと判定することを特徴とする請求項1記載の通信システム。
【請求項3】
前記検出手段および前記通知手段が前記マスタ装置に設けられ、前記復旧手段が前記スレーブ装置に設けられ、
前記マスタ装置に設けられた前記検出手段が前記通信ラインに生じた異常を検出した場合には、前記通知手段が異常の発生を前記スレーブ装置に通知し、
前記スレーブ装置の前記復旧手段が、前記マスタ装置から異常の発生の通知を受けた場合に前記IIC通信を復旧させる、
ことを特徴とする請求項1または2記載の通信システム。
【請求項4】
前記通知ラインは、リセット信号ラインまたはIRQ(Interrupt Request)信号ラインであり、
前記通知手段は、これらいずれかの信号ラインを介して、前記スレーブ装置に異常の発生を通知し、前記復旧手段は前記IIC通信に関する処理よりも優先順位が高いリセット処理または割り込み処理によって前記IIC通信を復旧させる、
ことを特徴とする請求項3に記載の通信システム。
【請求項5】
前記検出手段、前記通知手段、および、前記復旧手段が前記スレーブ装置に設けられ、
前記スレーブ装置に設けられた前記検出手段が前記通信ラインに生じた異常を検出した場合には、前記通知手段が異常の発生を前記マスタ装置に前記通知ラインを介して通知し、前記復旧手段が前記IIC通信を復旧させる、
ことを特徴とする請求項1または2記載の通信システム。
【請求項6】
前記スレーブ装置は、前記IIC通信の復旧が終了したことを前記マスタ装置に報告する報告手段を有し、
前記マスタ装置は、前記報告手段から復旧の報告を受けた場合には、前記通知手段によって異常の発生が通知された際に送信していたデータを再送信する、
ことを特徴とする請求項1乃至5のいずれか1項に記載の通信システム。
【請求項7】
前記通知手段および前記報告手段は、I/O信号ラインを介して異常の発生の通知および前記IIC通信の復旧の報告を前記マスタ装置に対して行うことを特徴とする請求項6に記載の通信システム。
【請求項8】
前記通知手段および前記報告手段は、シリアル通信ラインを介して異常の発生の通知および前記IIC通信の復旧の報告を前記マスタ装置に対して行うことを特徴とする請求項6に記載の通信システム。
【請求項9】
前記スレーブ装置を複数有し、前記シリアル通信ラインがデージーチェーン接続またはバス接続によってこれら複数のスレーブ装置と、前記マスタ装置とを相互に接続することを特徴とする請求項8に記載の通信システム。
【請求項10】
前記スレーブ装置は、異常が発生した際の前記IIC通信の状態を示す情報を格納する格納手段を有することを特徴とする請求項1乃至9のいずれか1項に記載の通信システム。
【請求項11】
前記復旧手段は、ウォッチドッグタイマ機能を有し、前記通信ラインに異常が発生した場合には、当該ウォッチドッグタイマ機能に基づいて再起動動作を行うことにより前記IIC通信の復旧を行うことを特徴とする請求項1乃至10のいずれか1項に記載の通信システム。
【請求項12】
少なくとも1つのスレーブ装置とシリアルクロックラインおよびシリアルデータラインを有する通信ラインで相互に接続され、前記スレーブ装置との間でIICプロトコルに基づいてIIC通信を行うマスタ装置において、
異常の発生を通知するための前記通信ラインとは別の通知ラインによって前記スレーブ装置と接続され、
前記通信ラインに生じた異常を検出する検出手段と、
前記検出手段によって異常が検出された場合に、前記通知ラインを介して前記スレーブ装置に異常の発生を通知し、前記スレーブ装置に前記IIC通信を復旧させるための通知手段と、
を有することを特徴とするマスタ装置。
【請求項13】
マスタ装置とシリアルクロックラインおよびシリアルデータラインの2本を有する通信ラインで相互に接続され、前記マスタ装置との間でIICプロトコルに基づいてIIC通信を行うスレーブ装置において、
異常の発生を通知するための前記通信ラインとは別の通知ラインによって前記マスタ装置と接続され、
前記通信ラインに生じた異常を検出する検出手段と、
前記検出手段によって異常が検出された場合に、前記通知ラインを介して前記マスタ装置に異常の発生を通知する通知手段と、
前記検出手段によって異常が検出された場合に、前記IIC通信を復旧させる復旧手段と、
を有することを特徴とするスレーブ装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2011−70282(P2011−70282A)
【公開日】平成23年4月7日(2011.4.7)
【国際特許分類】
【出願番号】特願2009−218949(P2009−218949)
【出願日】平成21年9月24日(2009.9.24)
【出願人】(000005290)古河電気工業株式会社 (4,457)
【Fターム(参考)】
【公開日】平成23年4月7日(2011.4.7)
【国際特許分類】
【出願日】平成21年9月24日(2009.9.24)
【出願人】(000005290)古河電気工業株式会社 (4,457)
【Fターム(参考)】
[ Back to top ]