(57)【要約】【課題】  スレイブ装置側にカウンタを設けなくとも、ステートマシンのフリーズを解除することができる通信システムを提供すること。【解決手段】  マスタ装置１は、ステートマシン３０がフリーズしているか否かを監視しており、スレイブ装置２のステートマシンが第１のアドレス受信Ｓ４、第２のアドレス受信Ｓ６、ストップ受信Ｓ１０のように、フリーズする可能性が高いステートにある場合において、マスタ装置１がステートマシン３０のフリーズを検出した場合、スレイブ装置２に対してスタート信号を送信する。スレイブ装置２がスタート信号を受信すると、ステートマシン３０はステートをスタート受信Ｓ１に強制的に遷移させる。【選択図】      図１
2006074145.tif 000002
【特許請求の範囲】
【請求項１】
複数のステートを順次遷移させるステートマシンを含むスレイブ装置と、スレイブ装置に対し通信可能に接続されたマスタ装置とを備える通信システムであって、
前記マスタ装置は、
前記ステートマシンのステートをスタートステートに遷移させるスタート信号を前記スレイブ装置に送信するスタート信号送信手段と、
前記ステートマシンのステートに応じた送信データを前記スレイブ装置に送信するデータ送信手段と、
前記スレイブ装置から送信される応答信号に基づいて、前記ステートマシンがフリーズしたか否かを判定するフリーズ判定手段とを備え、
前記スレイブ装置は、
前記マスタ装置から送信された送信データの受信が完了した際、前記マスタ装置に対し応答信号を送信する応答信号送信手段を備え、
前記マスタ装置のスタート信号送信手段は、前記フリーズ判定手段により前記ステートマシンがフリーズしたと判定された場合、前記スレイブ装置に対してスタート信号を送信し、
前記スレイブ装置のステートマシンは、前記マスタ装置からスタート信号を受信した際、現在のステートを前記スタートステートに遷移させることを特徴とする通信システム。
【請求項２】
前記フリーズ判定手段は、前記データ送信手段が送信データを送信した後、所定期間経過内に前記スレイブ装置から、当該送信データに対する応答信号を受信することができたか否かに基づいて、ステートマシンがフリーズしたか否かを判定することを特徴とする請求項１記載の通信システム。
【請求項３】
前記ステートマシンは、現在のステートが、複数のステートのうち予め定められたステートにあり、かつ、前記スレイブ装置により前記スタート信号が受信されたとき、ステートを前記スタートステートに遷移させることを特徴とする請求項１記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マスタ装置とステートマシンを備えるスレイブ装置とからなる通信システムに関し、特に、ステートマシンのフリーズを解除する技術に関する。
【背景技術】
【０００２】
近年、ステートマシンを備えるスレイブ装置と、マスタ装置とからなり、両装置間でハンドシェイク通信を行いながら、ステートマシンのステートを適宜遷移させ、所定の処理を行う通信システムが知られている。このような通信システムでは、ステートマシンのステートがマスタ装置からの送信データの待ちにあり、スレイブ装置が当該送信データを受信することができなかった場合、ステートマシンのフリーズが発生する。
【０００３】
かかるフリーズを解除する技術として、スレイブ装置側にカウンタを設け、あるステートに遷移してから、当該カウンタのカウント値が所定の値に到達するまでの期間内に、マスタ装置からの送信データを受信することができなかった場合、例えば、ダミーの送信データをセットする等して、送信データを受信することができたとみなし、ステートを次のステートへ強制的に遷移させ、フリーズを解除させる技術が知られている。また、本願に関連する技術として特許文献１が知られている。
【特許文献１】特開２００３−５０５２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、マスタ装置の動作周波数が例えば数百ＭＨｚであり、スレイブ装置の動作周波数が例えば数十ＭＨｚというように、マスタ装置の動作周波数がスレイブ装置の動作周波数に比べて高い場合、スレイブ装置に設けるカウンタをマスタ装置の動作周波数に対応するように設計しなければならず、スレイブ装置の動作周波数の割には大規模なカウンタを設けなければならなくなってしまい、スレイブ装置が大規模化するという問題があった。
【０００５】
本発明の目的は、スレイブ装置側にカウンタを設けなくとも、ステートマシンのフリーズを解除することができる通信システムを提供することである。
【課題を解決するための手段】
【０００６】
本発明にかかる通信システムは、複数のステートを順次遷移させるステートマシンを含むスレイブ装置と、スレイブ装置に対し通信可能に接続されたマスタ装置とを備える通信システムであって、前記マスタ装置は、前記ステートマシンのステートをスタートステートに遷移させるスタート信号を前記スレイブ装置に送信するスタート信号送信手段と、前記ステートマシンのステートに応じた送信データを前記スレイブ装置に送信するデータ送信手段と、前記スレイブ装置から送信される応答信号に基づいて、前記ステートマシンがフリーズしたか否かを判定するフリーズ判定手段とを備え、前記スレイブ装置は、前記マスタ装置から送信された送信データの受信が完了した際、前記マスタ装置に対し応答信号を送信する応答信号送信手段を備え、前記マスタ装置のスタート信号送信手段は、前記フリーズ判定手段により前記ステートマシンがフリーズしたと判定された場合、前記スレイブ装置に対してスタート信号を送信し、前記スレイブ装置のステートマシンは、前記マスタ装置からスタート信号を受信した際、ステートを前記スタートステートに遷移させることを特徴とする。
【０００７】
また、上記構成において、前記フリーズ判定手段は、前記データ送信手段が送信データを送信した後、所定期間経過内に前記スレイブ装置から、当該送信データに対する応答信号を受信することができたか否かに基づいて、ステートマシンがフリーズしたか否かを判定することが好ましい。
【０００８】
また、上記構成において、前記ステートマシンは、現在のステートが、複数のステートのうち予め定められたステートにあり、かつ、前記スレイブ装置により前記スタート信号が受信されたとき、ステートを前記スタートステートに遷移させることが好ましい。
【発明の効果】
【０００９】
請求項１記載の発明によれば、マスタ装置は、ステートマシンがフリーズしたか否かを判定し、フリーズしたと判定した場合、スレイブ装置にスタート信号を送信する。スタート信号を受信したスレイブ装置は、ステートマシンのステートを強制的にスタートステートに遷移させる。そのため、スレイブ装置にカウンタを設けなくとも、ステートマシンのフリーズを解除することができ、スレイブ装置の小型化を図ることができる。
【００１０】
請求項２記載の発明によれば、送信データを送信した後、所定期間内にスレイブ装置から当該送信データに対する応答信号を受信することができなかった場合、マスタ装置は、ステートマシンがフリーズしたと判定しているため、フリーズの有無を正確に判定することができる。
【００１１】
請求項３記載の発明によれば、マスタ装置は、現在のステートがフリーズする可能性が高いような予め定められたステートにあり、かつ、このステートにおいてスタート信号を受信したときのみスタートステートに遷移させるため、ステートマシンの回路の簡素化を図りつつ、効率良くステートマシンのフリーズを解除することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照しつつ本発明の実施の形態について説明する。図１は、本発明の実施形態による通信システムの全体構成図を示している。図１に示すように、本通信システムは、マスタ装置１、及びスレイブ装置２を備えている。マスタ装置１は、スレイブ装置２にコマンド等を送信し、スレイブ装置２を制御する装置である。スレイブ装置２は、マスタ装置１からのコマンドを受けて、種々の処理を行う装置である。マスタ装置１及びスレイブ装置２は、３本の信号ラインＬ１〜Ｌ３を介して種々のデータが送受信可能に接続されている。信号ラインＬ１は、マスタ装置１からのクロックＣＬＫをスレイブ装置２に送信する。信号ラインＬ２は、マスタ装置１からの送信データＳＤをシリアルで送信する。信号ラインＬ３は、スレイブ装置２から送信されるデータをシリアルで送信する。
【００１３】
マスタ装置１は、クロック生成部１１、データ決定部１２、送信データ生成部１３、カウンタ１４、及び通信部１５を備えている。クロック生成部１１は、マスタ装置１及びスレイブ装置２を動作させるためのクロックＣＬＫを生成し、通信部１５に出力する。本通信システムでは、マスタ装置１の動作周波数はスレイブ装置２の動作周波数に比して高い。
【００１４】
データ決定部１２は、通信部１５がスレイブ装置２からのａｃｋ（acknowledge）信号を受信したとき、ステートマシン３０の状態遷移図から特定される送信シーケンスに従って送信データ生成部１３が生成すべき送信データＳＤの種類を決定する。送信データ生成部１３は、データ決定部１２によって決定された種類の送信データＳＤを生成し、通信部１５に出力する。
【００１５】
カウンタ１４は、通信部１５が送信データ生成部１３により生成された送信データＳＤを送信した時、カウント動作を開始し、予め定められた規定値に達するまで、或いは、通信部１５がスレイブ装置２からａｃｋ信号を受信するまでカウント動作を行う。
【００１６】
通信部１５は、シリアルインターフェイス回路から構成され、クロック生成部１１により生成されたクロックＣＬＫを信号ラインＬ１を介してスレイブ装置２に送信する。また、通信部１５は、送信データ生成部１３により生成された送信データＳＤを信号ラインＬ２を介してスレイブ装置２にシリアルで送信する。さらに、通信部１５は、カウンタ１４が規定値に達するまでにａｃｋ信号を受信することができなかった場合、スレイブ装置にスタート信号を送信する。
【００１７】
スレイブ装置２は、ＡＳＩＣにより構成されるブリッジ回路２１、及びｎ（ｎは正数）個のモジュール２２１〜２２ｎを備えている。ブリッジ回路２１は、ステートマシン３０を含み、モジュール２２１〜２２ｎから送信されたデータをバスライン２３を介して受信してマスタ装置１に送信する。また、ブリッジ回路２１は、マスタ装置１から送信された送信データＳＤを、マスタ装置１によって指定された１のモジュール２２ｉに対してバスライン２３を介して送信する。
【００１８】
モジュール２２１〜２２ｎは、ＥＥＰＲＯＭから構成される。本実施形態では、アドレスビットが１６、データビットが８のＥＥＰＲＯＭを用いる。なお、モジュール２２１〜２２ｎは、ＥＥＰＲＯＭに代えてＲＡＭ、ＲＯＭ、ハードディスク等の記憶装置や、画像処理回路等のハードウェア回路等で構成してもよい。
【００１９】
図２は、ブリッジ回路２１の詳細な構成を示すブロック図である。図２では、ブリッジ回路２１とモジュール２２ｉとの接続関係のみを示し他のモジュールとの接続関係は省略している。また、図２において、ラインＣは制御信号が流れる信号線を示し、ラインＳＤはマスタ装置１から送信された送信データＳＤが流れる信号線を示し、ラインｒｅａｄはモジュール２２ｉからマスタ装置１へ送信されるリードデータＲＤが流れる信号線を示し、ラインａｃｋはマスタ装置１に送信されるａｃｋ信号が流れる信号線を示している。また、ラインｓｅｌｅｃｔは処理対象となるモジュールを指定するためのモジュールアドレスデータが流れる信号線を示し、ラインｗｒｉｔｅはモジュール２２ｉに書き込まれるライトデータＷＤが流れる信号線を示し、ラインａｄｄｒはモジュール２２ｉのアドレスを指定するアドレスデータが流れる信号線を示し、ラインｒｅａｄ／ｗｒｉｔｅは、モジュール２２ｉに対しライト、或いはリードのいずれの動作を行うかを指令する制御信号が流れる信号線を示し、受信完了通知ラインは、ライトデータＷＤの書き込みが完了した際にモジュール２２ｉがステートマシン３０及び制御部３４に対して送信する受信完了通知信号が流れる信号線を示している。なお、ラインｓｅｌｅｃｔ、ラインｗｒｉｔｅ、ラインａｄｄｒ、ラインｒｅａｄ／ｗｒｉｔｅ、ラインｒｅａｄ、及びライン受信完了通知は、バスライン２３に含まれる。
【００２０】
図２に示すように、ブリッジ回路２１は、ステートマシン３０、サンプリング部３１、エッジ検出部３２、パラレル変換部３３、制御部３４、ａｃｋ部３５、及びシリアル変換部３６を備えている。サンプリング部３１は、マスタ装置１から送信された送信データＳＤに対し、サンプリング、ノイズ除去、及びメタステーブル（meta-stable）対応のための同期処理等を施す。ステートマシン３０は、レジスタを含み、レジスタに格納されている各種フラグ等を参照してステートマシン３０のステートを遷移させる処理や、ステートに応じて制御部３４、パラレル変換部３３、ａｃｋ部３５、及びシリアル変換部３６等を制御する処理等を行う。
【００２１】
エッジ検出部３２は、受信したクロックＣＬＫのエッジを検出し、クロックＣＬＫの立ち上がり及び立ち下がりの傾きを急峻にしてクロックＣＬＫの波形を整え、パラレル変換部３３、制御部３４、及びシリアル変換部３６に出力する。また、エッジ検出部３２は、マスタ装置から送信されるスタート信号及びストップ信号を検出し、検出結果をラインＣを介してステートマシン３０に送信する。ここで、エッジ検出部３２は、クロックＣＬＫがハイレベルにあって、かつ、送信データＳＤがハイレベルからローレベルに変化した場合にスタート信号を検出する。また、エッジ検出部３２は、クロックＣＬＫがハイレベルにあって、かつ、送信データがローレベルからハイレベルに変化した場合にストップ信号を検出する。
【００２２】
パラレル変換部３３は、サンプリング部３１から出力されたシリアルの送信データＳＤをパラレルの信号に変換し、ステートマシン３０及び制御部３４に出力する。制御部３４は、送信データＳＤをデコードする処理、モジュール２２ｉに送信データＳＤをライトデータＷＤとして書き込む処理、モジュール２２ｉにリードデータＲＤをマスタ装置１に送信させる処理、ステートマシン３０を制御する処理等を行う。
【００２３】
ａｃｋ部３５は、ステートマシン３０のステートが後述するａｃｋ送信にある場合、マスタ装置１に対して送信するａｃｋ信号を生成し、ラインａｃｋを介してシリアル変換部３６に出力する。シリアル変換部３６は、モジュール２２ｉからパラレルで出力されるリードデータＲＤ、及びａｃｋ部３５からパラレルで出力されるａｃｋ信号等をシリアルの信号に変換し、信号ラインＬ３を介してマスタ装置１に送信する。
【００２４】
本実施形態において、マスタ装置１の通信部１５がスタート信号送信手段及びフリーズ判定手段に相当し、データ決定部１２、送信データ生成部１３、及び通信部１５がデータ送信手段に相当する。また、スレイブ装置２のａｃｋ部３５が応答信号送信手段に相当する。
【００２５】
図３は、ステートマシン３０の状態遷移図の一例を示した図面である。この状態遷移図により、スレイブ装置２は、マスタ装置１から送信された送信データＳＤ（ライトデータＷＤ）をモジュール２２ｉの所定のアドレスに書き込む、或いはモジュール２２ｉに記憶されたリードデータＲＤをマスタ装置１に送信する処理を実行する。
【００２６】
図３に示すようにステートマシン３０は、アイドルＳ１、スタート受信Ｓ２、ａｃｋ送信Ｓ３，Ｓ５，Ｓ７，Ｓ９，Ｓ１２、第１のアドレス受信Ｓ４、第２のアドレス受信Ｓ６、ライトデータ＿スタート信号待ちＳ８、モジュールアドレス受信Ｓ１１、リードデータ送信Ｓ１３、及びストップ受信Ｓ１０，Ｓ１４の１４個のステートを備えている。
【００２７】
アイドルＳ１は、ステートマシンの初期状態のステートである。スタート受信Ｓ２は、アイドルＳ１，第１のアドレス受信Ｓ４，第２のアドレス受信Ｓ６，ストップ受信Ｓ１０において、スレイブ装置２がスタート信号を受信した時に、遷移されるステートである。ａｃｋ送信Ｓ３，Ｓ５，Ｓ７，Ｓ９，Ｓ１２は、マスタ装置１に対してａｃｋ信号を送信するステートである。
【００２８】
第１のアドレス受信Ｓ４は第１のアドレスデータを、スレイブ装置２が受信待ちにあるステートであり、第２のアドレス受信Ｓ６は第２のアドレスデータを、スレイブ装置２が受信待ちにあるステートである。なお、第１のアドレスデータはモジュール２２ｉの１６ビットからなるアドレスデータのうち、上位８ビットのアドレスデータを指定するデータであり、第２のアドレスデータは１６ビットからなるアドレスデータのうち下位８ビットを指定するデータである。
【００２９】
ライトデータ＿スタート信号待ちＳ８は、マスタ装置１から送信されたモジュール２２ｉへのライトデータＷＤ、或いはモジュール２２ｉから読み出されたリードデータＲＤの受信待ちのステートである。ストップ受信Ｓ１０は、マスタ装置１から送信される処理の終了を示すストップ信号の受信待ちのステートである。
【００３０】
図３に示す状態遷移図を用いて、スレイブ装置２のライト処理を説明する。ライト処理は、スレイブ装置２が、マスタ装置１から送信されたライトデータＷＤをモジュール２２ｉに書き込む処理である。まず、ステートマシン３０がアイドルＳ１にあるとき、スレイブ装置２がスタート信号を受信すると、ステートマシン３０は、ステートをスタート受信Ｓ２に遷移させる。スタート受信Ｓ２において、スレイブ装置２がマスタ装置１からのモジュールアドレスデータを受信すると、ステートマシン３０は、ステートをａｃｋ送信Ｓ３に遷移させ、スレイブ装置２は、マスタ装置１に対してａｃｋ信号を送信する。
【００３１】
ａｃｋ信号が送信されるとステートマシン３０は、ステートを第１のアドレス受信Ｓ４に遷移させる。これにより、スレイブ装置２は、マスタ装置１からの第１のアドレスデータの受信待ち状態となる。この受信待ち状態において、マスタ装置１から第１のアドレスデータを受信することができなかったときに、ステートマシン３０のフリーズが発生してしまう。具体的には、８ビットからなる第１のアドレスデータを受信する場合において、上位４ビットのデータは受信することはできたが、下位４ビットのデータは受信することができなかった場合等にフリーズが発生する。
【００３２】
そこで、本通信システムでは、処理の効率化を図るために、ステートマシン３０のステートが、送信データＳＤの受信待ちのようなフリーズする可能性が高いステートにある場合において、スタート信号を受信したとき、ステートマシン３０のステートを強制的にスタート受信Ｓ２に戻すことにより、ステートマシン３０のフリーズを解除させている。
【００３３】
そして、マスタ装置１によるスタート信号の送信処理は、以下のようにして実行される。図４は、ステートマシン３０のステートが、図３に示す第１のアドレス受信Ｓ４にあるときにマスタ装置１によって実行される処理を示すフローチャートである。なお、このフローチャートは、ステートマシン３０のステートが、図３に示す、第２のアドレス受信Ｓ６、ストップ受信Ｓ１０にある場合にも実行される。
【００３４】
ステップＳ１において、マスタ装置１は、スレイブ装置２に対して送信データＳＤを送信する。この場合、マスタ装置１は第１のアドレスデータを送信する。具体的には、データ決定部１２は、予め定められた送信シーケンスを記憶しておりこの送信シーケンスに従って第１のアドレスデータを生成するように送信データ生成部１３に指令し、指令を受けた送信データ生成部１３は、第１のアドレスデータを生成し、通信部１５が第１のアドレスデータを送信する。この送信シーケンスは、スタート信号を送信した後、ａｃｋ信号を受信した時は第１のアドレスデータを生成すべきデータの種類として決定し、第１のアドレスデータを送信した後ａｃｋ信号を受信した時は第２のアドレスデータを生成すべきデータの種類として決定するというように、図３に示す状態遷移図に基づいて予め作成されたものである。
【００３５】
ステップＳ２において、マスタ装置１のカウンタ１４は、送信データＳＤを送信した時、カウント動作を開始する。ステップＳ３において、通信部１５が、カウンタ１４のカウント値が予め定められた規定値に達しているか否かを判定し、カウント値が規定値に達していない場合（Ｓ３でＮＯ）、処理がステップＳ４に進められ、一方、カウンタ値が規定値に達している場合（Ｓ３でＹＥＳ）、マスタ装置１は、ステートマシン３０がフリーズしていると判定し、スレイブ装置２に対してスタート信号を送信し（Ｓ５）、処理が終了される。ここで、規定値としては実験的に得られた値が用いられ、ステートマシン３０のステート毎に異なる値を設定してもよいし、全ステートに対して同一の値を設定してもよい。
【００３６】
ステップＳ４において、通信部１５がａｃｋ信号を受信した場合（Ｓ４でＹＥＳ）、ステートマシン３０はフリーズしていないと判定して処理を終了する。一方、ステップＳ４において、通信部１５が、送信データＳＤに対するａｃｋ信号を受信しなかった場合（ステップＳ４でＮＯ）、処理をステップＳ２に戻し、引き続きカウンタ１４にカウントアップ動作を行わせる。
【００３７】
図３の状態遷移図に戻り、ステートマシン３０のステートが第１のアドレス受信Ｓ４にある場合において、スレイブ装置２が第１のアドレスデータを受信すると、ステートマシン３０は、ステートをａｃｋ送信Ｓ５に遷移させ、スレイブ装置２はマスタ装置１に対してａｃｋ信号を送信する。スレイブ装置２がａｃｋ信号を送信すると、ステートマシン３０は、ステートを第２のアドレス受信Ｓ６に遷移させる。
【００３８】
ａｃｋ信号を受信したマスタ装置１は、再び図４に示すフローチャートを実行する。スレイブ装置２がマスタ装置１から第２のアドレスデータを受信すると、ステートマシン３０はステートをａｃｋ送信Ｓ７に遷移させ、スレイブ装置２はマスタ装置１に対し、ａｃｋ信号を送信する。一方、スレイブ装置２がマスタ装置１からスタート信号を受信すると、ステートマシン３０は、ステートをスタート受信Ｓ２に遷移させる。
【００３９】
ａｃｋ送信Ｓ７においてスレイブ装置２がａｃｋ信号を送信するとステートマシン３０は、ステートをライトデータ＿スタート信号待ちＳ８に遷移させ、スレイブ装置２はマスタ装置１から送信されるライトデータＷＤを受信し、第１のアドレスデータ及び第２のアドレスデータによって指定されるモジュール２２ｉのアドレスに、受信したライトデータＷＤを書き込む。
【００４０】
具体的には、図２に示すように制御部３４は、送信データＳＤに含まれるマスタ装置１からのコマンドをデコードし、デコード結果に基づいて、モジュールアドレスデータにより指定されるモジュール２２ｉに対してｓｅｌｅｃｔラインを介してｓｅｌｅｃｔ信号を送信し、ライトデータＷＤを書き込むモジュール２２ｉを指定する。続いて、モジュール２２ｉに対してｒｅａｄ／ｗｒｉｔｅラインを介して制御信号を送信し、モジュール２２ｉに書き込み処理を行うことを通知する。続いて、ａｄｄｒラインを介して第１のアドレスデータ及び第２のアドレスデータを送信し、ライトデータＷＤを書き込むアドレスを指定する。続いて、ｗｒｉｔｅラインを介してライトデータＷＤを送信し、モジュール２２ｉにライトデータＷＤを書き込む。
【００４１】
図３に示すライトデータ＿スタート信号待ちＳ８において、スレイブ装置２が、モジュール２２ｉに対するライトデータＷＤの書き込み処理を終了すると、ステートマシン３０はステートをａｃｋ送信Ｓ９に遷移させ、スレイブ装置２は、マスタ装置１に対して信号ラインＬ３を介してａｃｋ信号を送信する。ａｃｋ信号の送信が終了すると、ステートマシン３０は、ステートをストップ受信Ｓ１０に遷移させる。
【００４２】
ここで、ライトデータＷＤを送信したマスタ装置１は、図４に示すフローチャートの処理を実行する。そして、スレイブ装置２からａｃｋ送信Ｓ９に対するａｃｋ信号を、所定期間内（カウンタ１４が規定値に到達するまで）に受信した場合、マスタ装置１は、スレイブ装置２にストップ信号を送信する。一方、所定期間内にａｃｋ信号を受信しなかった場合、マスタ装置１は、ステートマシン３０はフリーズしたと判定し、スレイブ装置２にスタート信号を送信する。
【００４３】
ストップ受信Ｓ１０において、スレイブ装置２がストップ信号を受信すると、ステートマシン３０は、ステートをアイドルＳ１に遷移させる。一方、ストップ受信Ｓ１０において、スレイブ装置２がスタート信号を受信すると、ステートマシン３０は、ステートをスタート受信Ｓ２に遷移させる。
【００４４】
以上のスレイブ装置２のライト処理を纏めると図５に示すタイミングチャートのようになる。すなわち、スレイブ装置２は、アイドルＳ１においてスタート信号を受信し、スタート受信Ｓ２においてモジュールアドレスデータを受信し、ａｃｋ送信Ｓ３においてａｃｋ信号を送信し、第１のアドレス受信において第１のアドレスデータを受信し、ａｃｋ送信Ｓ５においてａｃｋ信号を送信し、第２のアドレス受信Ｓ６において第２のアドレスデータを受信し、ａｃｋ送信Ｓ７においてａｃｋ信号を送信し、ライトデータ＿スタート信号待ちＳ８において、ライトデータＷＤを受信し、ａｃｋ送信Ｓ９においてａｃｋ信号を送信し、ａｃｋ送信Ｓ９においてａｃｋ信号を送信し、ストップ受信Ｓ１０において、ストップ信号を受信し、ステートをアイドルＳ１に戻す。
【００４５】
次に、スレイブ装置２のリード処理を図３を用いて説明する。リード処理は、スレイブ装置２が、モジュール２２ｉからデータを読み出し、マスタ装置１に送信する処理である。アイドルＳ１〜ａｃｋ送信Ｓ７までは、ライト処理と同一であるため説明を省略する。ライトデータ＿スタート信号待ちＳ８において、スレイブ装置２がマスタ装置１からスタート信号を受信すると、ステートマシン３０はステートをモジュールアドレス受信Ｓ１１に遷移させる。モジュールアドレス受信Ｓ１１において、スレイブ装置２がモジュールアドレスデータを受信すると、受信したモジュールアドレスデータが示すモジュール２２ｉに対し、ｓｅｌｅｃｔ信号を送信する。そして、ステートマシン３０はステートをａｃｋ送信Ｓ１２に遷移させる。
【００４６】
ａｃｋ送信Ｓ１２において、スレイブ装置２は、第１のアドレス受信Ｓ４によって受信した第１のアドレスデータ及び第２のアドレス受信Ｓ５によって受信した第２のアドレスデータによって指定されたモジュール２２ｉのアドレスからリードデータＲＤを読み出し、読み出したリードデータＲＤをマスタ装置１に送信する。
【００４７】
リードデータ送信Ｓ１３において、リードデータＲＤの送信が完了すると、ステートマシン３０は、ステートをストップ受信Ｓ１４に遷移させる。ストップ受信Ｓ１４において、スレイブ装置２がマスタ装置１からストップ信号を受信すると、ステートマシン３０はステートをアイドルＳ１に戻す。
【００４８】
以上、スレイブ装置２のリード処理を纏めると図６に示すタイミングチャートのようになる。スレイブ装置２は、アイドルＳ１においてスタート信号を受信し、スタート受信Ｓ２においてモジュールアドレスデータを受信し、ａｃｋ送信Ｓ３においてａｃｋ信号を送信し、第１のアドレス受信Ｓ４において第１のアドレスデータを受信し、ａｃｋ送信Ｓ５においてａｃｋ信号を送信し、第２のアドレス受信Ｓ６において第２のアドレスデータを受信し、ａｃｋ送信Ｓ７においてａｃｋ信号を送信し、ライトデータ＿スタート信号待ちＳ８においてスタート信号を受信し、モジュールアドレス受信Ｓ１１においてモジュールアドレスデータを受信し、ａｃｋ送信Ｓ１２においてａｃｋ信号を送信し、リードデータ送信Ｓ１３においてリードデータＲＤを送信し、ストップ受信Ｓ１４においてストップ信号を受信し、ステートをアイドルＳ１に戻す。
【００４９】
以上説明したように、本通信システムによれば、ステートマシン３０のステートのうち、フリーズする可能性が高いステートにステートマシン３０がある場合、スレイブ装置２がスタート信号を受信したとき、ステートマシン３０はステートをスタート受信Ｓ２に戻す。一方、マスタ装置１は、ステートマシン３０がフリーズしているか否かを監視しており、フリーズした場合はスタート信号をスレイブ装置２に送信する。これにより、ステートマシン３０のステートが強制的にスタート受信Ｓ２に戻される。そして、マスタ装置１から、ステートマシン３０のステートに応じた送信データＳＤが再び送信される。
【００５０】
すなわち、本通信システムは、マスタ装置１によってステートマシン３０のフリーズを監視しているため、従来の通信システムのようにブリッジ回路２１にカウンタを設ける必要がなくなり、ブリッジ回路２１の小型化を図ることが可能となる。
【００５１】
なお、上記説明では、ステートマシン３０のステートが、第１のアドレス受信Ｓ４、第２のアドレス受信Ｓ６、及びストップ受信Ｓ１０において、スタート信号を受信したとき、ステートマシン３０のステートがスタート受信Ｓ２に遷移されるようにしたが、これに限定されず、他のステートにおいてスタート信号を受信したとき、スタート受信Ｓ２に遷移されるようにステートマシン３０を設計してもよい。また、ステートマシン３０の状態遷移図も図３に示すものに限定されず、どのような状態遷移図であっても本発明は適用可能である。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施形態による通信システムの全体構成図を示している。
【図２】ブリッジ回路の詳細な構成を示すブロック図である。
【図３】ステートマシンの状態遷移図の一例を示した図面である。
【図４】ステートマシンのステートが、図３に示す第１のアドレス受信等にあるときにマスタ装置によって実行される処理を示すフローチャートである。
【図５】スレイブ装置２のライト処理を示すタイミングチャートである。
【図６】スレイブ装置２のリード動作を示すタイミングチャートである。
【符号の説明】
【００５３】
１  マスタ装置
２  スレイブ装置
１１  クロック生成部
１２  データ決定部
１３  送信データ生成部
１４  カウンタ
１５  通信部
２１  ブリッジ回路
２２１  ２２ｉ  ２２ｎ  モジュール
２３  バスライン
３０  ステートマシン
３１  サンプリング部
３２  エッジ検出部
３３  パラレル変換部
３４  制御部
３５  ａｃｋ部
３６  シリアル変換部
【図１】
2006074145.tif 000003
【図２】
2006074145.tif 000004
【図３】
2006074145.tif 000005
【図４】
2006074145.tif 000006
【図５】
2006074145.tif 000007
【図６】
2006074145.tif 000008