(57)【要約】【課題】スレーブ装置の識別番号を登録した登録テーブルの登録情報と、実際の識別番号とスレーブ装置との対応付けとが異なっていることを、スレーブ装置側から速やかに検出することができる通信システムを提供する。【解決手段】マスタ装置と、マスタ装置とシリアルインタフェースによって接続された複数のスレーブ装置とを備え、マスタ装置は、複数のスレーブ装置のそれぞれに対応する識別番号を登録した登録テーブルを有し、複数のスレーブ装置のいずれかから受信したデータ送信要求に対して、登録テーブルに登録された識別番号を順次複数のスレーブ装置に送信し、複数のスレーブ装置のうちデータ送信要求を送信したスレーブ装置は、マスタ装置から受信した識別番号に基づいて登録テーブルに自装置が登録されているか否かを判定する通信システムとする。【選択図】      図１
2015184844.tif 000002
【特許請求の範囲】
【請求項１】
マスタ装置と、
前記マスタ装置とシリアルインタフェースによって接続された複数のスレーブ装置とを備え、
前記マスタ装置は、
前記複数のスレーブ装置のそれぞれに対応する識別番号を登録した登録テーブルを有し、
前記複数のスレーブ装置のいずれかから受信したデータ送信要求に対して、前記登録テーブルに登録された前記識別番号を順次前記複数のスレーブ装置に送信し、
前記複数のスレーブ装置のうち前記データ送信要求を送信したスレーブ装置は、
前記マスタ装置から受信した前記識別番号に基づいて前記登録テーブルに自装置が登録されているか否かを判定する通信システム。
【請求項２】
前記スレーブ装置は、
前記データ送信要求を送信後に、同じ前記識別番号を２度受信した段階で前記登録テーブルに自装置が登録されていないと判定する請求項１に記載の通信システム。
【請求項３】
前記マスタ装置は、
前記データ送信要求を受信するごとに、前記登録テーブルに設定された順番で前記識別番号を前記複数のスレーブ装置に送信し、
前記複数のスレーブ装置のうち前記データ送信要求を送信したスレーブ装置は、
前記データ送信要求を送信した後に最初に受信した前記識別番号を記録し、前記記録した識別番号が２度受信された段階で前記登録テーブルに自装置が登録されていないと判定する請求項１または２に記載の通信システム。
【請求項４】
前記マスタ装置は、
前記スレーブ装置からのデータ送信要求を許可するデータ送信要求許可通知を前記複数のスリーブ装置に送信し、前記データ送信要求許可通知に応答した前記スレーブ装置からの前記データ送信要求を受信し、前記複数のスレーブ装置に装置検索のための前記識別番号を送信し、前記識別番号への応答に関して対応する前記スレーブ装置とデータ通信を行う通信手段と、
前記通信手段を介して取得された前記データ送信要求を検出し、前記データ送信要求を送信したスレーブ装置を検索する指示を出す検出手段と、
前記登録テーブルを格納する格納手段と、
前記検出手段によって検出された前記データ送信要求に応じて、前記複数のスレーブ装置に送信する前記識別番号を前記登録テーブルから一つ選び、選び出した前記識別番号を前記通信手段に出力する検索手段とを有し、
前記スレーブ装置は、
前記マスタ装置から前記データ送信要求許可を受信した際に必要に応じて前記データ送信要求を送信し、前記マスタ装置から受信した前記識別番号が自装置のものである場合には前記マスタ装置に応答してデータ通信を実行する送受信手段と、
前記マスタ装置から送信された前記識別番号を受信し、受信した前記識別番号が自装置のものであるか否かを判定し、前記データ送信要求を出した後に自装置の前記識別番号を受信した際には前記マスタ装置に応答をする指示を前記送受信手段に出し、前記データ送信要求を出した後に他の前記スレーブ装置の前記識別番号を受信した場合には前記データ送信要求を送信する指示を前記送受信手段に出す識別番号検出手段と、
前記マスタ装置とやり取りするデータを記憶するとともに、前記データ送信要求の送信後に最初に受信した前記識別番号を記憶する記憶手段とを有する請求項３に記載の通信システム。
【請求項５】
エラー処理を実行するエラー処理実行手段を備え、
前記識別番号検出手段は、
自装置の前記識別番号が受信されていないのに他装置の前記識別番号を２回受信した場合、前記エラー処理実行手段に対して前記エラー処理を実行する指示を出し、
前記エラー処理実行手段は、
前記識別番号検出手段からの指示に応じて前記エラー処理を実行する請求項４に記載の通信システム。
【請求項６】
前記マスタ装置は、
前記登録テーブルにおいて、送信した前記識別番号に送信済みフラグを設定し、
前記登録テーブルに登録された前記識別番号の全てに前記送信済みフラグが設定されると、前記登録テーブルに登録された前記識別番号の全てに前記送信済みフラグが設定されたことを示す予約識別番号を前記複数のスレーブ装置に送信し、
前記複数のスレーブ装置のうち前記データ送信要求を送信したスレーブ装置は、
前記マスタ装置から送信された前記予約識別番号を記憶し、前記予約識別番号が再度受信された段階で前記登録テーブルに自装置が登録されていないと判定する請求項１または２に記載の通信システム。
【請求項７】
前記マスタ装置は、
前記スレーブ装置からのデータ送信要求を許可するデータ送信要求許可通知を前記複数のスリーブ装置に送信し、前記データ送信要求許可通知に応答した前記スレーブ装置から前記データ送信要求を受信するとともに、前記複数のスレーブ装置に装置検索のための前記識別番号を送信し、前記識別番号への応答に関して対応する前記スレーブ装置とデータ通信を行う通信手段と、
前記通信手段を介して取得された前記データ送信要求を検出し、前記データ送信要求を送信した装置を検索する指示を出す検出手段と、
前記登録テーブルを格納する格納手段と、
前記検出手段によって検出された前記データ送信要求に応じて、前記複数のスレーブ装置に送信する前記識別番号を前記登録テーブルから一つ選び、選び出した前記識別番号を前記通信手段に出力する検索手段と、
前記登録テーブルにおいて前記識別番号に前記送信済みフラグを設定するフラグ設定手段と、
前記予約識別番号を前記複数のスレーブ装置に送信する予約識別番号設定手段とを有し、
前記スレーブ装置は、
前記マスタ装置から前記データ送信要求許可を受信した際に必要に応じてデータ送信要求を送信し、前記マスタ装置から受信した前記識別番号が自装置のものである場合には前記マスタ装置に応答してデータ通信を実行する送受信手段と、
前記予約識別番号が２度受信された段階で前記登録テーブルに自装置が登録されていないことを判定し、エラー処理を行うことを指示する予約識別番号検出手段と、
前記予約識別番号検出手段の指示に応じて前記エラー処理を実行するエラー処理実行手段と、
前記マスタ装置とやり取りするデータを記憶するとともに、前記マスタ装置から送信された前記予約識別番号を記憶する記憶手段とを有する請求項６に記載の通信システム。
【請求項８】
マスタ装置と複数のスレーブ装置とがシリアルインタフェースによって接続された通信システムにおける通信制御方法であって、
前記複数のスレーブ装置のいずれかから受信したデータ送信要求に対して、前記マスタ装置が有する登録テーブルに登録された前記複数のスレーブ装置のそれぞれに対応する識別番号を順次前記複数のスレーブ装置に送信し、
前記複数のスレーブ装置のうち前記データ送信要求を送信したスレーブ装置において、前記マスタ装置から受信した前記識別番号に基づいて前記登録テーブルに自装置が登録されているか否かを判定する通信制御方法。
【請求項９】
前記スレーブ装置による前記データ送信要求の送信後に、前記スレーブ装置によって同じ前記識別番号が２度受信された段階で前記登録テーブルに自装置が登録されていないと判定する請求項８に記載の通信制御方法。
【請求項１０】
マスタ装置と複数のスレーブ装置とがシリアルインタフェースによって接続された通信システムにおける通信制御プログラムであって、
前記複数のスレーブ装置のいずれかから受信したデータ送信要求に対して、前記マスタ装置が有する登録テーブルに登録された前記複数のスレーブ装置のそれぞれに対応する識別番号を順次前記複数のスレーブ装置に送信する処理と、
前記複数のスレーブ装置のうち前記データ送信要求を送信したスレーブ装置において、前記マスタ装置から受信した前記識別番号に基づいて前記登録テーブルに自装置が登録されているか否かを判定する処理とをコンピュータに実行させる通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、通信制御方法および通信制御プログラムに関する。特に、シリアルインタフェース通信方式を用いた通信システム、通信制御方法および通信制御プログラムに関する。
【背景技術】
【０００２】
一般的なコンピュータシステムには、シリアル通信が広く使われている。シリアル通信の一つとして、スレーブ装置に設定されたＩＤをマスタ装置に登録する方式がある（ＩＤ：Ｉｄｅｎｔｉｆｉｅｒ）。
【０００３】
特許文献１には、システムを構成する端末からの送信要求をポーリング方式によって受け付ける通信制御装置における制御方式において、端末を登録したテーブルを用いてポーリングを実行する方式が開示されている。
【０００４】
特許文献１のポーリング方式では、システムを構成する端末をシステム構成端末テーブルに登録する。そして、システム構成端末テーブルに登録された各端末をポーリングした際に、機器準備完了の応答のあった端末のみを準備完了端末テーブルに登録する。さらに、準備完了端末テーブルに基づいて通常のポーリングを行うとともに、一定時間内に送信要求を発生させた端末のみを登録した活動端末テーブルを作成し、活動端末テーブルに基づいて通常のポーリングを実行する。特許文献１のポーリング方式によれば、各種テーブルを使い分けることによって、ポーリング頻度をバランスの取れた値に設定することができる。
【０００５】
特許文献２には、固有のアドレスが設定された複数のモジュールが通信バスに接続され、設定された固有のアドレスを用いてモジュールを指定し、通信を行う通信システムについて開示されている。
【０００６】
特許文献２の通信システムにおいて、各スレーブモジュールは、マスタモジュールからアドレスとコマンドを受信した際にプリレスポンスを出力し、所定時間内におけるプリレスポンスの受信状況に応じてレスポンスを出力するか、通信を中止するかを選択する。プリレスポンスを出力してから所定の時間内にプリレスポンスを受信した場合は、他のスレーブモジュールとアドレスが重複されていることになる。また、自身の出力したプリレスポンスが正しく検出できなければ、衝突が発生していることになる。そのため、特許文献２の通信システムによれば、異なるスレーブモジュールに同じアドレスが重複して設定された場合であっても、応答するスレーブモジュールが一定となるとともに、衝突が発生しても処理を続行することができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平３−１３５２４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１のポーリング方式によれば、システムを構成する端末をテーブルで管理することによって、ポーリングの無駄を減らすことができる。ところで、複数のスレーブ装置に設定されたＩＤをマスタ装置に登録する方式に特許文献１のテーブル管理を適用すると、ＩＤの設定・登録にミスがあった場合、マスタ装置によってどのスレーブ装置のＩＤに設定・登録ミスがあったかを検証する必要がある。しかしながら、多数のスレーブ装置でシステムが構成されている場合、全てのスレーブ装置のＩＤを検索することは現実的には不可能であるという問題点があった。また、スレーブ装置側がタイムアウト監視するのも、他のスレーブ装置の接続数や通信時間を制約しない限りは、設定が難しいという問題点があった。
【０００９】
また、特許文献２の通信システムによれば、各スレーブモジュールに固有の識別番号を付与する必要がなくなるため、マスタモジュールによる診断通信のための負荷を低減することができる。しかしながら、特許文献２の通信システムにおいては、プリレスポンスの検出または衝突が発生した際に、スレーブモジュールは通信を中止してしまう。そのため、マスタモジュール側からは、通信を中止させたスレーブモジュールを検証することができなくなるという問題点があった。
【００１０】
本発明の目的は、上述した課題を解決する通信システムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の通信システムは、マスタ装置と、マスタ装置とシリアルインタフェースによって接続された複数のスレーブ装置とを備え、マスタ装置は、複数のスレーブ装置のそれぞれに対応する識別番号を登録した登録テーブルを有し、複数のスレーブ装置のいずれかから受信したデータ送信要求に対して、登録テーブルに登録された識別番号を順次複数のスレーブ装置に送信し、複数のスレーブ装置のうちデータ送信要求を送信したスレーブ装置は、マスタ装置から受信した識別番号に基づいて登録テーブルに自装置が登録されているか否かを判定する。
【００１２】
本発明の通信制御方法は、マスタ装置と複数のスレーブ装置とがシリアルインタフェースによって接続された通信システムにおける通信制御方法であって、複数のスレーブ装置のいずれかから受信したデータ送信要求に対して、マスタ装置が有する登録テーブルに登録された複数のスレーブ装置のそれぞれに対応する識別番号を順次複数のスレーブ装置に送信し、複数のスレーブ装置のうちデータ送信要求を送信したスレーブ装置において、マスタ装置から受信した識別番号に基づいて登録テーブルに自装置が登録されているか否かを判定する通信制御方法。
【００１３】
本発明の通信制御プログラムは、マスタ装置と複数のスレーブ装置とがシリアルインタフェースによって接続された通信システムにおける通信制御プログラムであって、複数のスレーブ装置のいずれかから受信したデータ送信要求に対して、マスタ装置が有する登録テーブルに登録された複数のスレーブ装置のそれぞれに対応する識別番号を順次複数のスレーブ装置に送信する処理と、複数のスレーブ装置のうちデータ送信要求を送信したスレーブ装置において、マスタ装置から受信した識別番号に基づいて登録テーブルに自装置が登録されているか否かを判定する処理とをコンピュータに実行させる。
【発明の効果】
【００１４】
本発明によれば、スレーブ装置の識別番号を登録した登録テーブルの登録情報と、実際の識別番号とスレーブ装置との対応付けとが異なっていることを、スレーブ装置側から速やかに検出することができる通信システムを提供することが可能になる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態に係る通信システムの構成を示す概念図である。
【図２】本発明の第１の実施形態に係る通信システムで用いるＩＤテーブルの一例である。
【図３】本発明の第１の実施形態に係る通信システムのマスタ装置の機能構成を示すブロック図である。
【図４】本発明の第１の実施形態に係る通信システムのスレーブ装置の機能構成を示すブロック図である。
【図５】本発明の第１の実施形態に係る通信システムのマスタ装置の動作に関するフローチャートである。
【図６】本発明の第１の実施形態に係る通信システムのスレーブ装置の動作に関するフローチャートである。
【図７】本発明の第１の実施形態に係る通信システムの動作に関するシーケンス図である。
【図８】本発明の第１の実施形態に係る通信システムの構成を示す概念図である。
【図９】本発明の第１の実施形態に係る通信システムで用いるＩＤテーブルの一例である。
【図１０】本発明の第１の実施形態に係る通信システムのマスタ装置の機能構成を示すブロック図である。
【図１１】本発明の第１の実施形態に係る通信システムのスレーブ装置の機能構成を示すブロック図である。
【図１２】本発明の第１の実施形態に係る通信システムのマスタ装置の動作に関するフローチャートである。
【図１３】本発明の第１の実施形態に係る通信システムのスレーブ装置の動作に関するフローチャートである。
【図１４】本発明の第１の実施形態に係る通信システムの動作に関するシーケンス図である。
【発明を実施するための形態】
【００１６】
以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。
【００１７】
（実施形態）
（構成）
まず、本発明の第１の実施形態に係る通信システム１について説明する。
【００１８】
図１は、本発明の第１の実施形態に係る通信システム１の構成を示すブロック図である。本実施形態に係る通信システム１は、マスタ装置１０と、複数のスレーブ装置２０−１〜Ｎと、シリアルインタフェース３０とを備える（Ｎは自然数）。図１には、各スレーブ装置２０のＩＤの値を２バイトの数値としている。ただし、各スレーブ装置２０のＩＤの値は２バイトに限らず、任意のバイト数に設定することができる。
【００１９】
本実施形態に係る通信システム１では、以下に述べていく構成・動作によって、スレーブ装置２０のＩＤ設定ミスやマスタ装置１０のＩＤ登録情報ミスが検出される。
【００２０】
マスタ装置１０は、シリアルインタフェースの制御を司る装置である。シリアルインタフェース３０には、複数のスレーブ装置２０（スレーブ装置１、２、・・・、Ｎ、・・・）が接続されている。スレーブ装置１のＩＤは０ｘ０００１、スレーブ装置２のＩＤは０ｘ０００２、・・・、スレーブ装置ＮのＩＤは０ｘＮに設定されている。そして、マスタ装置１０は、各スレーブ装置２０の装置名とＩＤ番号との対応表（登録テーブルとも呼ぶ）であるＩＤテーブル１０１（図２）を格納する。
【００２１】
マスタ装置１０は、スレーブ装置２０のデータ送信要求に応じて、ＩＤテーブル１０１を参照しながらデータ送信要求を送信したスレーブ装置２０を装置検索する。マスタ装置１０によるスレーブ装置２０の装置検索順番は、スレーブ装置２０のＩＤを登録した登録テーブルに記載された順番に基づく。なお、スレーブ装置２０のデータ送信要求に対するマスタ装置１０の装置検索順は、事前に決定しておけばよい。また、スレーブ装置によるデータ送信要求をブレーク（ＢＲＥＡＫ）と呼び、マスタ装置による装置検索をセンス（ＳＥＮＳＥ）と呼ぶ。
【００２２】
図２のＩＤテーブル１０１は、スレーブ装置２０のＩＤを登録する登録テーブルの一例である。なお、図２のＩＤテーブル１０１においては、スレーブ装置２０−ｎ（以下、スレーブ装置Ｎ）のＩＤが０ｘＮと登録されるべきであるのに、誤って０ｘＮ’と登録されているものとする。すなわち、図２のＩＤテーブル１０１においては、スレーブ装置２０のＩＤ設定ミスまたはマスタ装置１０のＩＤ登録情報ミスがあるために、ＩＤテーブル１０１に登録されたスレーブ装置ＮのＩＤが正しくないことになる。
【００２３】
ＩＤテーブル１０１には、スレーブ装置２０の装置名と、対応するＩＤが登録されている。本実施形態に係る通信システム１では、ＩＤテーブル１０１の検索方法を一方向に決定する。すなわち、各スレーブ装置２０は、スレーブ装置１、スレーブ装置２、・・・、スレーブ装置Ｎ、・・・という順番で検索される。そして、ＩＤテーブル１０１に従った検索が完了した段階において未だデータ送信要求を出したスレーブ装置２０が検索されていない場合、マスタ装置１０は、再度スレーブ１から検索を実行する。なお、スレーブ装置２０の検索順は、ＩＤテーブル１０１の上からの順番にかぎらず、任意の順番に設定することができる。
【００２４】
スレーブ装置２０は、マスタ装置１０から送信された装置検索のＩＤを受信して読み取る。各スレーブ装置２０は、同一ＩＤが２回出現した段階、すなわちマスタ装置１０によるＩＤテーブル１０１に基づいた検索が一巡した段階で、自身のＩＤが装置検索（ＳＥＮＳＥ）されなかったとしてＩＤ設定／登録ミスのエラー処理を行う。
【００２５】
なお、エラー処理とは、ＩＤテーブル１０１の自装置の登録情報に誤りがあることを上位システムに通知する処理である。例えば、エラー処理実行手段２３は、通信システム１を構成する装置の状態管理やログ収集をしている装置・サーバに対して、シリアルインタフェース３０とは異なるインタフェースを経由させてエラーがあった旨を通知する構成とすることができる。また、例えば、エラー処理実行手段２３は、エラーあった際に、自装置やマスタ装置１０などに設けられたランプを点灯させる構成としてもよい。ただし、本実施形態に係る通信システム１におけるエラー処理はここで挙げた例に限定されず、種々のエラー処理を適用することができる。
【００２６】
次に、図３および図４を用いて、マスタ装置１０およびスレーブ装置２０の内部構成について説明する。
【００２７】
［マスタ装置］
図３に示すマスタ装置１０は、通信手段１１、検出手段１２、格納手段１３、検索手段１４を備える。
【００２８】
通信手段１１は、スレーブ装置２０からのデータ送信要求（以下、ＢＲＥＡＫ）を許可するＢＲＥＡＫ許可通知を各スリーブ２０に送信する。また、通信手段１１は、ＢＲＥＡＫ許可通知に応答した各スレーブ装置２０からのＢＲＥＡＫを受信する。また、通信手段１１は、各スレーブ装置２０に対して装置検索のＩＤを送信する。また、通信手段１１は、装置検索のＩＤへの応答に関して、対応するスレーブ装置２０とデータ通信を行う。
【００２９】
検出手段１２は、通信手段１１を介して取得されたＢＲＥＡＫを検出し、検索手段１４に対して装置検索する指示を出す。
【００３０】
格納手段１３は、ＩＤテーブル１０１を格納する。
【００３１】
検索手段１４は、検出手段１２によって検出されたＢＲＥＡＫに応じて、各スレーブ装置２０に送信するＩＤをＩＤテーブル１０１から一つ選び、選び出したＩＤを通信手段に出力する。なお、ＩＤテーブル１０１に記載されたＩＤの検索順番は、任意に設定できる。
【００３２】
［スレーブ装置］
図４に示すスレーブ装置２０は、送受信手段２１、識別番号検出手段２２、エラー処理実行手段２３、記憶手段２４を備える。
【００３３】
送受信手段２１は、マスタ装置１０からＢＲＥＡＫ許可を受信した際に、必要に応じてデータ送信要求を送信する。そして、送受信手段２１は、マスタ装置１０から発信されたＩＤが自身のものである場合、マスタ装置１０に対して応答し、データ通信を実行する。
【００３４】
識別番号検出手段２２は、マスタ装置１０から発信されたＩＤを受信し、受信したＩＤが自身のものであるか否かを判定する。そして、識別番号検出手段２２は、データ送信要求後に自身のＩＤを受信すると、マスタ装置への応答をする指示を送受信手段２１に出す。識別番号検出手段２２は、データ送信要求後に他のＩＤを受信すると、再度データ送信要求を出すように送受信手段２１に指示する。また、識別番号検出手段２２は、自身のＩＤが受信されないのに他のＩＤを２回受信した場合、エラー処理実行手段２３にエラーがあることを通知する。
【００３５】
エラー処理実行手段２３は、識別番号検出手段２２の通知に応じて、エラー処理を実行する。
【００３６】
記憶手段２４は、マスタ装置１０とやり取りするデータを記憶するとともに、データ送信要求後に最初に受信したＩＤを記憶する。
【００３７】
以上が本発明の第１の実施形態に係る通信システム１の構成に関する説明である。なお、以上の各構成要素は、コンピュータやサーバなどの情報処理装置を構成するハードウェア・ソフトウェアによって実現されるものである。
【００３８】
（動作）
次に、本発明の第１の実施形態に係る通信システム１の動作について説明する。マスタ装置１０の動作については図５を、スレーブ装置２０の動作については図６を、マスタ装置１０とスレーブ装置２０と間の動作関係については図７を用いて説明する。
【００３９】
［マスタ装置］
図５のフローチャートを用いてマスタ装置１０の動作について説明する。なお、スレーブ装置２０からのデータ送信要求（ＢＲＥＡＫ）に対するマスタ装置１０による装置検索（ＳＥＮＳＥ）の順番は、ＩＤテーブル１０１の登録順（上から順番）であるものとする。
【００４０】
まず、図５において、マスタ装置１０は、いずれかのスレーブ装置２０から送信されたＢＲＥＡＫを検出する（ステップＳ１０）。
【００４１】
次に、マスタ装置１０は、ＩＤテーブル１０１に登録された装置のＩＤから一つを選択する（ステップＳ１１）。
【００４２】
具体的には、データ送信要求（ＢＲＥＡＫ）を検出したマスタ装置１０は、最初にＩＤテーブル１０１から装置検索（ＳＥＮＳＥ）するＩＤをひとつ選ぶ。そして、選んだＩＤに対して装置検索（ＳＥＮＳＥ）を実施する。
【００４３】
なお、マスタ装置１０によって装置検索（ＳＥＮＳＥ）されたスレーブ装置２０がデータ送信要求元でない場合、データ送信要求の発行元であるスレーブ装置２０から、再度データ送信要求（ＢＲＥＡＫ）がマスタ装置１０に送信されてくる。その場合、データ送信要求（ＢＲＥＡＫ）を検出したマスタ装置１０は、ＩＤテーブル１０１を一つ進めて装置検索（ＳＥＮＳＥ）を行うＩＤを決定する。
【００４４】
次に、マスタ装置１０は、選択したＩＤで装置検索（ＳＥＮＳＥ）を実行する。すなわち、マスタ装置１０は、各スレーブ装置２０に対して、選択したＩＤを含むＳＥＮＳＥコマンドを送信する（ステップＳ１２）。
【００４５】
ここで、マスタ装置１０は、いずれかのスレーブ装置２０からデータ送信要求の応答を受信すると（ステップＳ１３でＹｅｓ）、応答したスレーブ装置２０とデータ通信処理を行う（ステップＳ１４）。
【００４６】
一方、マスタ装置１０は、データ送信要求がなければ（ステップＳ１３でＮｏ）、一旦処理を終了する。マスタ装置１０は、データ送信要求を受信する度に、以上のステップＳ１０〜Ｓ１４の処理を繰り返す。
【００４７】
以上がマスタ装置１０の動作についての説明である。
【００４８】
［スレーブ装置］
続いて、図６のフローチャートを用いてスレーブ装置１、２、・・・、ｎの動作について説明する。
【００４９】
まず、スレーブ装置２０−ｎ（以下、スレーブ装置Ｎ）においてデータ送信要求の必要性が生じたものとする（ステップＳ２０）。
【００５０】
次に、データ送信要求の必要性が生じたスレーブ装置Ｎは、データ送信要求（ＢＲＥＡＫ）許可を検出すると（ステップＳ２１でＹｅｓ）、データ送信要求（ＢＲＥＡＫ）を送信する（ステップＳ２２）。なお、データ送信要求の必要性が生じたスレーブ装置Ｎは、データ送信要求許可が検出されない場合(ステップＳ２１でＮｏ)、待機状態となる（ステップＳ２０へ戻る）。
【００５１】
次に、スレーブ装置Ｎは、マスタ装置１０の装置検索（ＳＥＮＳＥ）によって送信されてきたＩＤ（ＳＥＮＳＥ＿ＩＤ）を受信する（ステップＳ２３）。
【００５２】
ここで、ＳＥＮＳＥ＿ＩＤが自身のＩＤである場合（ステップＳ２４でＹｅｓ）、スレーブ装置Ｎは、マスタ装置１０とデータ通信処理を実行する（ステップＳ２５）。
【００５３】
一方、ＳＥＮＳＥ＿ＩＤが自身のＩＤではない場合（ステップＳ２４でＮｏ）、スレーブ装置Ｎは、自身が送信したデータ送信要求が一回目であるか否かによって異なる処理をする（ステップＳ２６）。
【００５４】
ここで、スレーブ装置Ｎによるデータ送信要求が一回目である場合（ステップＳ２６でＹｅｓ）、スレーブ装置Ｎは、データ送信要求（ＢＲＥＡＫ）直後の装置検索（ＳＥＮＳＥ）のＩＤ（以下、ｆｉｒｓｔ＿ＩＤ）を記憶する（ステップＳ２７）。
【００５５】
一方、スレーブ装置Ｎによるデータ送信要求が一回目ではない場合（ステップＳ２６でＮｏ）、ＳＥＮＳＥ＿ＩＤがｆｉｒｓｔ＿ＩＤと一致していれば（ステップＳ２８でＹｅｓ）、スレーブ装置Ｎはエラー処理を実行する（ステップＳ２９）。すなわち、自身のＩＤが指定されずに再度ｆｉｒｓｔ＿ＩＤの装置検索（ＳＥＮＳＥ）が実行された場合、マスタ装置１０のＩＤテーブル１０１に、スレーブ装置ＮのＩＤが正しく登録されていないものとしてエラー処理を実行する。
【００５６】
また、スレーブ装置Ｎによるデータ送信要求が一回目ではなく（ステップＳ２６でＮｏ）、ＳＥＮＳＥ＿ＩＤがｆｉｒｓｔ＿ＩＤと一致していなければ（ステップＳ２８でＹｅｓ）、スレーブ装置Ｎは再度データ送信要求の時期を待つ（ステップＳ２０に戻る）。
【００５７】
以上が、スレーブ装置１、２、・・・、ｎの動作について説明についての説明である。
【００５８】
［シーケンス図］
最後に、マスタ装置１０と各スレーブ装置２０の動作関係について、図７のシーケンス図を用いて説明する。
【００５９】
まず、図７のＴ１１区間について説明する。マスタ装置１０から各スレーブ装置２０にＢＲＥＡＫ許可が送信されると、各スレーブ装置１〜ＮはＢＲＥＡＫ許可を受信する。ここで、スレーブ装置Ｎは、マスタ装置１０にデータ送信要求を送信する。マスタ装置１０は、データ送信要求に応じて、ＳＥＮＳＥ＿ＩＤ（０ｘ０００１）を送信する。スレーブ１は、マスタ装置１０から送信されたＳＥＮＳＥ＿ＩＤに応答し、マスタ装置１０との間でデータ通信を行う。
【００６０】
Ｔ１１区間では、スレーブ装置Ｎからデータ送信要求が出されたものの、マスタ装置１０からスレーブ装置１に対応するＳＥＮＳＥ＿ＩＤが送信された。そのため、スレーブ装置１がマスタ装置１０に応答することになった。このとき、スレーブ装置Ｎは、受信したスレーブ装置１のＳＥＮＳＥ＿ＩＤ（０ｘ０００１）をｆｉｒｓｔ＿ＩＤとして記憶することになる。
【００６１】
次に、図７のＴ１２区間について説明する。マスタ装置１０から各スレーブ装置２０にＢＲＥＡＫ許可が送信されると、各スレーブ装置１〜ＮはＢＲＥＡＫ許可を受信する。ここで、スレーブ装置Ｎは、再度マスタ装置１０にデータ送信要求を送信する。マスタ装置１０は、データ送信要求に応じて、ＳＥＮＳＥ＿ＩＤ（０ｘ０００２）を送信する。スレーブ装置２は、マスタ装置１０から送信されたＳＥＮＳＥ＿ＩＤに応答し、マスタ装置１０との間でデータ通信を行う。
【００６２】
Ｔ１２区間では、再度スレーブ装置Ｎからデータ送信要求が出されたものの、マスタ装置１０からスレーブ装置２に対応するＳＥＮＳＥ＿ＩＤが送信された。そのため、スレーブ装置２がマスタ装置１０に応答することになった。
【００６３】
次に、図７のＴ１３区間について説明する。マスタ装置１０からＢＲＥＡＫ許可が各スレーブ装置２０に送信されると、各スレーブ装置１〜ＮはＢＲＥＡＫ許可を受信する。ここで、スレーブ装置Ｎは、再度マスタ装置１０にデータ送信要求を送信する。マスタ装置１０は、データ送信要求に応じて、ＳＥＮＳＥ＿ＩＤ（０ｘＮ’）を送信する。しかしながら、Ｔ１３区間においてマスタ装置１０から送信されたＳＥＮＳＥ＿ＩＤに応答する装置は存在しない。そのため、いずれのスレーブ装置２０もマスタ装置１０に対して応答しないことになる。
【００６４】
次に、Ｔ１４区間について説明する。マスタ装置１０から各スレーブ装置２０にＢＲＥＡＫ許可が送信されると、各スレーブ装置１〜ＮはＢＲＥＡＫ許可を受信する。ここで、スレーブ装置Ｎは、再度マスタ装置１０にデータ送信要求を送信する。マスタ装置１０は、データ送信要求に応じて、ＳＥＮＳＥ＿ＩＤ（０ｘ０００１）を送信する。このとき、マスタ装置１０は、ＩＤテーブル１０１に登録された装置が一巡しているため、再度スレーブ装置１のＩＤを送信している。ここで、スレーブＮは、記憶しているｆｉｒｓｔ＿ＩＤと一致するＳＥＮＳＥ＿ＩＤを受信することになる。すなわち、スレーブ装置Ｎは、ＩＤテーブル１０１に登録された自身のＩＤが正しくないことを認識することになる。そのため、スレーブ装置Ｎは、エラー処理を実行することになる。
【００６５】
以上が、本発明の第１の実施形態に係る通信システム１の動作の説明である。
【００６６】
（効果）
以上説明したように、本実施形態に係る通信システムによれば、マスタ装置の装置検索アルゴリズムおよびスレーブ装置の検索ＩＤ読み取りによって、ＩＤ設定／登録ミスをスレーブ装置側で速やかに検出することができる。
【００６７】
本発明の実施形態に係る通信システムが対象とする１台のインタフェースの制御の主導権を握るマスタ装置に複数台のスレーブ装置がつながる形態のデータ通信は、特にシリアル通信において用いられる。
【００６８】
一般的な方式では、スレーブ装置のＩＤ番号設定ミスやマスタ装置のスレーブＩＤ登録情報の設定ミスがある場合、以下に示すような状況となる。
１）スレーブ装置は、データ送信要求（ＢＲＥＡＫ）をマスタ装置に上げる。
２）マスタ装置は、ＩＤ登録情報から１台ずつ装置を検索（ＳＥＮＳＥ）するが、ＩＤ設定／登録ミスによりマスタ装置は要求元スレーブ装置を見つけることができない。
３）スレーブ装置は、他のスレーブ装置のデータ転送が発生する可能性があるためにタイムアウト監視ができない。また、スレーブ装置からは他のスレーブ装置が何台接続されているか分からないため、データ送信要求（ＢＲＥＡＫ）を上げ続ける。
【００６９】
以上のように、一般的な方式では、マスタ装置／スレーブ装置共に設定ミスを容易に検出できず、マスタ装置の通信処理およびインタフェースに余計な負荷がかかってしまう。
【００７０】
それに対し、本実施形態に係る通信システムによれば、スレーブ装置のＩＤ番号を予めマスタ装置のＩＤ登録情報に設定するデータ通信において、スレーブ装置のＩＤ設定ミスまたはマスタ装置のＩＤ登録情報設定ミスを速やかに検出することが可能となる。
【００７１】
（第２の実施形態）
次に、本発明の第２の実施形態に係る通信システムについて説明する。
【００７２】
図８は、本発明の第２の実施形態に係る通信システム２の構成を示すブロック図である。本実施形態に係る通信システム２は、マスタ装置４０と、複数のスレーブ装置５０−１〜Ｎと、シリアルインタフェース６０とを備える（Ｎは自然数）。なお、図８のマスタ装置４０、複数のスレーブ装置５０−１〜Ｎおよびシリアルインタフェース６０は、一部の機能構成を除いて図１のマスタ装置１０、複数のスレーブ装置２０−１〜Ｎおよびシリアルインタフェース３０と同様の機能構成をもつ。
【００７３】
本実施形態に係る通信システム２において、マスタ装置４０は、各スレーブ装置５０の装置名とＩＤ番号との対応表（登録テーブルとも呼ぶ）であるＩＤテーブル１０２（図９）を格納する。図９のＩＤテーブル１０２は、図２のＩＤテーブル１０１に送信済みフラグの列が追加されている。なお、図２のＩＤテーブル１０１と同様に、図９のＩＤテーブル１０２におけるスレーブ装置ＮのＩＤは、Ｎｘ０と登録されるべきであるのに、誤ってＮ’ｘ０と登録されている。
【００７４】
［マスタ装置］
図１０に示すように、マスタ装置４０は、通信手段４１、検出手段４２、格納手段４３、検索手段４４、フラグ設定手段４５、予約識別番号設定手段４６を備える。すなわち、第２の実施形態に係るマスタ装置４０は、第１の実施形態に係るマスタ装置１０に、フラグ設定手段４５と予約識別番号設定手段４６とが追加された構成となっている。なお、図１０の通信手段４１、検出手段４２、格納手段４３および検索手段４４は、それぞれ、図３の通信手段１１、検出手段１２、格納手段１３および検索手段１４と同様の機能構成をもつため、詳細な説明は省略する。
【００７５】
フラグ設定手段４５は、ＩＤテーブル１０２において、装置検索（ＳＥＮＳＥ）を行ったＩＤに対して送信済みフラグをセットする。
【００７６】
予約識別番号設定手段４６は、設定されたスレーブ装置５０に対する装置検索（ＳＥＮＳＥ）をデータ通信処理なしに一通り完了したことを送信済みフラグにより確認すると、予約ＩＤ（予約識別番号とも呼ぶ）を使って装置検索（ＳＥＮＳＥ）を発行する。
【００７７】
［スレーブ装置］
図１１に示すように、スレーブ装置５０は、送受信手段５１、予約識別番号検出手段５２、エラー処理実行手段５３、記憶手段５４を備える。すなわち、第２の実施形態に係るスレーブ装置５０は、第１の実施形態に係るスレーブ装置２０の識別番号検出手段２２を予約識別番号検出手段５２に置換した構成を持つ。なお、図１１の送受信手段５１およびエラー処理実行手段５３は、それぞれ、図４の送受信手段２１およびエラー処理実行手段２３と同様の機能構成をもつため、詳細な説明は省略する。
【００７８】
予約識別番号検出手段５２は、装置検索（ＳＥＮＳＥ）において予約ＩＤを２回検出したら、自装置のＩＤがマスタ装置０に正しく登録されていないと判断し、エラー処理実行手段にエラー処理を行うことを指示する。
【００７９】
記憶手段５４は、マスタ装置４０とやり取りするデータを記憶するとともに、予約識別番号検出手段５２によって検出された予約ＩＤを記憶する。
【００８０】
以上が、本発明の第２の実施形態に係る通信システム２の構成に関する説明である。なお、以上の各構成要素は、コンピュータやサーバなどの情報処理装置を構成するハードウェア・ソフトウェアによって実現されるものである。
【００８１】
（動作）
次に、本発明の第２の実施形態に係る通信システム２の動作について説明する。マスタ装置４０の動作については図１２を、スレーブ装置５０の動作については図１３を、マスタ装置４０とスレーブ装置５０と間の動作関係については図１４を用いて説明する。
【００８２】
［マスタ装置］
図１２のフローチャートを用いてマスタ装置４０の動作について説明する。なお、スレーブ装置５０からのデータ送信要求（ＢＲＥＡＫ）に対するマスタ装置４０による装置検索（ＳＥＮＳＥ）の順番は、ＩＤテーブル１０２の登録順に限らず、任意の順番で実行するものとする。
【００８３】
まず、図１２において、マスタ装置４０は、いずれかのスレーブ装置５０から送信されたＢＲＥＡＫを検出する（ステップＳ４０）。
【００８４】
次に、マスタ装置４０は、ＩＤテーブル１０２の送信フラグを参照し、ＳＥＮＳＥ＿ＩＤが一通り送信済みであるか否かを判定する（ステップＳ４１）。
【００８５】
送信フラグが設定されていないＩＤがある場合（ステップＳ４１でＮｏ）、マスタ装置４０は、ＩＤテーブル１０２に登録された装置のＩＤから一つを選択する（ステップＳ４２）。
【００８６】
具体的には、データ送信要求（ＢＲＥＡＫ）を検出したマスタ装置４０は、ＩＤテーブル１０２から、送信フラグが設定されていないＩＤを装置検索（ＳＥＮＳＥ）の対象としてひとつ選ぶ。そして、選んだＩＤに対して装置検索（ＳＥＮＳＥ）を実施する。
【００８７】
なお、マスタ装置４０によって装置検索（ＳＥＮＳＥ）されたスレーブ装置５０がデータ送信要求元でない場合、データ送信要求の発行元であるスレーブ装置５０から、再度データ送信要求（ＢＲＥＡＫ）がマスタ装置４０に送信されてくる。その場合、データ送信要求（ＢＲＥＡＫ）を検出したマスタ装置４０は、ＩＤテーブル１０２から、送信フラグが設定されていない別のＩＤを装置検索（ＳＥＮＳＥ）の対象として一つ決定する。
【００８８】
次に、マスタ装置４０は、選択したＩＤで装置検索（ＳＥＮＳＥ）を実行する。すなわち、マスタ装置４０は、各スレーブ装置５０に対して、選択したＩＤを含むＳＥＮＳＥコマンドを送信する（ステップＳ４３）。
【００８９】
ここで、マスタ装置４０は、いずれかのスレーブ装置５０からデータ送信要求の応答を受信すると（ステップＳ４４でＹｅｓ）、既にＩＤを送信した装置に対して付与していた送信済みフラグを全てクリアする（ステップＳ４５）。
【００９０】
そして、マスタ装置４０は、応答したスレーブ装置５０とデータ通信処理を行う（ステップＳ４６）。
【００９１】
一方、マスタ装置４０は、データ送信要求がなければ（ステップＳ４４でＮｏ）、今回のＳＥＮＳＥ＿ＩＤの送信先の装置の送信フラグをセットする（ステップＳ４７）し、一旦処理を終了する。
【００９２】
ところで、ステップＳ４１において、送信フラグが設定されていないＩＤがない場合（ステップＳ４１でＹｅｓ）、マスタ装置４０は、ＩＤテーブル１０２に登録された予約ＩＤで装置検索（ＳＥＮＳＥ）を実行する（ステップＳ４８）。なお、予約ＩＤの送信は、ＩＤテーブル１０２の中に登録された全てのＩＤに対して装置検索（ＳＥＮＳＥ）を行ったことを意味する。
【００９３】
マスタ装置４０は、予約ＩＤによる装置検索（ＳＥＮＳＥ）を実行すると、既にＩＤを送信した装置に対して付与していた送信済みフラグを全てクリアし（ステップＳ４９）、一旦処理を終了する。
【００９４】
マスタ装置４０は、データ送信要求を受信する度に、以上のステップＳ４０〜Ｓ４９の処理を繰り返す。
【００９５】
以上がマスタ装置４０の動作についての説明である。
【００９６】
［スレーブ装置］
続いて、図１３のフローチャートを用いてスレーブ装置１、２、・・・、ｎの動作について説明する。なお、図１３に示す第２の実施形態に係るスレーブ装置５０の動作は、図６に示した第１の実施形態に係るスレーブ装置２０と同様のフローとなる。
【００９７】
まず、スレーブ装置５０−ｎ（以下、スレーブ装置Ｎ）においてデータ送信要求の必要性が生じたものとする（ステップＳ５０）。
【００９８】
次に、データ送信要求の必要性が生じたスレーブ装置Ｎは、データ送信要求（ＢＲＥＡＫ）許可を検出すると（ステップＳ５１でＹｅｓ）、データ送信要求（ＢＲＥＡＫ）を送信する（ステップＳ５２）。なお、データ送信要求の必要性が生じたスレーブ装置Ｎは、データ送信要求許可が検出されない場合(ステップＳ５１でＮｏ)、待機状態となる（ステップＳ５０へ戻る）。
【００９９】
次に、スレーブ装置Ｎは、マスタ装置４０の装置検索（ＳＥＮＳＥ）によって送信されてきたＩＤ（ＳＥＮＳＥ＿ＩＤ）を受信する（ステップＳ５３）。
【０１００】
ここで、ＳＥＮＳＥ＿ＩＤが自身のＩＤである場合（ステップＳ５４でＹｅｓ）、スレーブ装置Ｎは、マスタ装置４０とデータ通信処理を実行する（ステップＳ５５）。
【０１０１】
一方、ＳＥＮＳＥ＿ＩＤが自身のＩＤではない場合（ステップＳ５４でＮｏ）、スレーブ装置Ｎは、ＳＥＮＳＥ＿ＩＤが予約ＩＤであるか否かによって異なる動作をする（ステップＳ５６）。
【０１０２】
ここで、スレーブ装置Ｎが受信したＳＥＮＳＥ＿ＩＤが予約ＩＤではなかった場合（ステップＳ５６でＮｏ）、スレーブ装置Ｎは再度データ送信要求のタイミングを待つ（ステップＳ５０に戻る）。
【０１０３】
ここで、スレーブ装置Ｎが受信した予約ＩＤの回数によって、スレーブ装置Ｎは異なる動作をする（ステップＳ５７）。
【０１０４】
予約ＩＤの受信が２回目であった場合（ステップＳ５７でＹｅｓ）、スレーブ装置Ｎはエラー処理を実行する（ステップＳ５９）。すなわち、自身のＩＤが指定されずに再度予約ＩＤの装置検索（ＳＥＮＳＥ）が実行された場合、マスタ装置４０のＩＤテーブル１０１に、スレーブ装置ＮのＩＤが正しく登録されていないものとしてエラー処理を実行する。
【０１０５】
また、予約ＩＤの受信が１回目であった場合（ステップＳ５７でＮｏ）、スレーブ装置Ｎは再度データ送信要求のタイミングを待つ（ステップＳ５０に戻る）。
【０１０６】
以上がスレーブ装置１、２、・・・、ｎの動作についての説明である。
【０１０７】
［シーケンス図］
最後に、マスタ装置４０と各スレーブ装置５０の動作関係について、図１４のシーケンス図を用いて説明する。
【０１０８】
まず、図１４のＴ２１区間について説明する。マスタ装置４０から各スレーブ装置５０にＢＲＥＡＫ許可が送信されると、各スレーブ装置１〜ＮはＢＲＥＡＫ許可を受信する。ここで、スレーブ装置Ｎは、マスタ装置４０にデータ送信要求を送信する。マスタ装置４０は、データ送信要求に応じて、ＳＥＮＳＥ＿ＩＤ（０ｘ０００１）を送信する。スレーブ１は、マスタ装置４０から送信されたＳＥＮＳＥ＿ＩＤに応答し、マスタ装置４０との間でデータ通信を行う。
【０１０９】
Ｔ２１区間では、スレーブ装置Ｎからデータ送信要求が出されたものの、マスタ装置４０からスレーブ装置１に対応するＳＥＮＳＥ＿ＩＤが送信された。そのため、スレーブ装置１がマスタ装置４０に応答することになった。このとき、マスタ装置４０は、ＩＤテーブル１０２のＩＤ０ｘ０００１に送信済みフラグを設定する。なお、第１の実施形態とは異なり、スレーブ装置Ｎは、受信したスレーブ装置１のＳＥＮＳＥ＿ＩＤ（０ｘ０００１）をｆｉｒｓｔ＿ＩＤとして記憶しなくてもよい。
【０１１０】
なお、図１４の第２の実施形態に係るシーケンス図では、図７の第１の実施形態に係るシーケンス図で示したＴ１２区間については省略している。そして、図１４のＴ２２区間とＴ２３区間が、それぞれ図７のＴ１３区間とＴ１４区間に相当する。
【０１１１】
次に、図１４のＴ２２区間について説明する。マスタ装置４０からＢＲＥＡＫ許可が各スレーブ装置５０に送信されると、各スレーブ装置１〜ＮはＢＲＥＡＫ許可を受信する。ここで、スレーブ装置Ｎは、再度マスタ装置４０にデータ送信要求を送信する。マスタ装置４０は、データ送信要求に応じて、ＳＥＮＳＥ＿ＩＤ（０ｘＮ’）を送信する。しかしながら、Ｔ２２区間においてマスタ装置４０から送信されたＳＥＮＳＥ＿ＩＤに応答する装置は存在しない。そのため、いずれのスレーブ装置５０もマスタ装置４０に対して応答しないことになる。このとき、マスタ装置４０は、ＩＤテーブル１０２のＩＤ０ｘＮ’に送信済みフラグを設定する。
【０１１２】
次に、Ｔ２３区間について説明する。Ｔ２３区間の段階で、マスタ装置４０は、ＩＤテーブル１０２に登録されたＩＤの装置検索（ＳＥＮＳＥ）をデータ通信処理なしに一通り完了したことになる。そのため、マスタ装置４０は、予約ＩＤ（図９では０ｘＦＦＦＦ）を使って装置検索（ＳＥＮＳＥ）を発行する。ここで、マスタ装置からＢＲＥＡＫ許可が各スレーブ装置５０に送信されると、各スレーブ装置１〜ＮはＢＲＥＡＫ許可を受信する。ここで、スレーブ装置Ｎは、再度マスタ装置４０にデータ送信要求を送信する。マスタ装置４０は、データ送信要求に応じて、予約ＩＤ（０ｘＦＦＦＦ）を送信する。しかしながら、Ｔ２３区間においてマスタ装置４０から送信された予約ＩＤに応答する装置は存在しない。そのため、いずれのスレーブ装置５０もマスタ装置４０に対して応答しないことになる。
【０１１３】
次に、Ｔ２４区間について説明する。マスタ装置４０から各スレーブ装置５０にＢＲＥＡＫ許可が送信されると、各スレーブ装置１〜ＮはＢＲＥＡＫ許可を受信する。ここで、スレーブ装置Ｎは、再度マスタ装置４０にデータ送信要求を送信する。マスタ装置４０は、データ送信要求に応じて、予約ＩＤ（０ｘＦＦＦＦ）を送信する。このとき、スレーブ装置Ｎは、既に記憶している予約ＩＤ（０ｘＦＦＦＦ）を受信していることになる。そのため、スレーブ装置Ｎは、ＩＤテーブル１０２に登録された自身のＩＤが正しくないことを認識することになる。すなわち、スレーブ装置側からは、ＢＲＥＡＫを上げてから２回目の予約ＩＤを検出することは、マスタ装置４０のＩＤテーブル１０２の中に自装置のＩＤが登録されていないことを確認できる。その結果を受けて、スレーブ装置Ｎは、エラー処理を実行する。
【０１１４】
以上が、本発明の第２の実施形態に係る通信システム２の動作の説明である。
【０１１５】
以上のように、本実施形態に係る通信システムでは、マスタ装置４０が持つＩＤテーブル１０２に送信済みフラグを設け、装置検索（ＳＥＮＳＥ）を行ったＩＤに対しては送信済みフラグをセットする。データ送信要求（ＢＲＥＡＫ）を上げたスレーブ装置５０が見つかり、データ通信処理が行われた場合、マスタ装置４０はＩＤテーブル１０２の送信済みフラグを全てクリアする。
【０１１６】
また、送信済みフラグにより、設定されたスレーブ装置５０に対する装置検索（ＳＥＮＳＥ）をデータ通信処理なしに一通り完了したら、マスタ装置４０は、予約ＩＤ（図９では０ｘＦＦＦＦ）を使って装置検索（ＳＥＮＳＥ）を発行する（図１２）。このときも、マスタ装置４０は、ＩＤテーブル１０２の送信済みフラグを全てクリアする。
【０１１７】
一方、スレーブ装置Ｎは、データ送信要求が発生するごとにデータ送信要求（ＢＲＥＡＫ）を発行する。第１の実施形態と異なる点は、装置検索（ＳＥＮＳＥ）で予約ＩＤを２回検出したら自装置のＩＤがマスタ装置４０に正しく登録されていないと判断してエラー処理を行う点である。
【０１１８】
第１の実施形態では、マスタ装置１０の装置検索（ＳＥＮＳＥ）はＩＤテーブル１０１の登録順で行われた。それに対し、第２の実施形態では、送信済みフラグと予約ＩＤとを利用するためにＩＤテーブル１０２の検索順は固定されない。例えば、直前にデータ通信処理を行ったスレーブ装置５０が続けてデータ通信要求を上げる可能性が高いと期待される場合は、続けて同装置の装置検索（ＳＥＮＳＥ）を行うことが効率的である。このようなとき、装置検索（ＳＥＮＳＥ）順にとらわれない第２の実施形態が有効となる。
【０１１９】
以上のように、本発明の実施形態に係る通信システムによれば、スレーブ装置の識別番号を登録した登録テーブルの登録情報と、実際の識別番号とスレーブ装置との対応付けとが異なっていることを、スレーブ装置側から速やかに検出することができる。
【０１２０】
本発明の実施形態において説明した通信制御方法は、本実施形態の構成によらなくても、上述の手法・方式を適用したもの、あるいは上述の手法・方式から類推されるであれば、本発明の範囲に含まれるものである。また、本発明の実施形態に係る通信制御方法をコンピュータに実行させるプログラムも、本発明の範囲に含まれるものである。さらに、本発明のプログラムを記憶させたプログラム記憶媒体も本発明の範囲に含まれるものである。
【０１２１】
また、本発明の実施形態に係る通信システムを適用したコンピュータなどの情報処理装置を本発明の範囲に含まれる。また、本発明の実施形態に係る通信システムを、情報処理装置と外部機器との接続に適用したコンピュータシステムも本発明の範囲に含まれる。本発明の実施形態に係る通信システムを、ホスト機器と複数のゲスト機器との接続に適用したサーバシステムも本発明の範囲に含まれる。
【０１２２】
以上、実施形態を参照して本発明を説明してきたが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０１２３】
１    通信システム
１０    マスタ装置
１１    通信手段
１２    検出手段
１３    格納手段
１４    検索手段
２０    スレーブ装置
２１    送受信手段
２２    識別番号検出手段
２３    エラー処理実行手段
２４    記憶手段
３０    シリアルインタフェース
４０    マスタ装置
４１    通信手段
４２    検出手段
４３    格納手段
４４    検索手段
４５    フラグ設定手段
４６    予約識別番号設定手段
５０    スレーブ装置
５１    送受信手段
５２    予約識別番号検出手段
５３    エラー処理実行手段
５４    記憶手段
６０    シリアルインタフェース
【図１】
2015184844.tif 000003
【図２】
2015184844.tif 000004
【図３】
2015184844.tif 000005
【図４】
2015184844.tif 000006
【図５】
2015184844.tif 000007
【図６】
2015184844.tif 000008
【図７】
2015184844.tif 000009
【図８】
2015184844.tif 000010
【図９】
2015184844.tif 000011
【図１０】
2015184844.tif 000012
【図１１】
2015184844.tif 000013
【図１２】
2015184844.tif 000014
【図１３】
2015184844.tif 000015
【図１４】
2015184844.tif 000016