(57)【特許請求の範囲】
【請求項１】
シリアル通信機能を有するコントローラと、シリアル通信機能を有する１以上のデバイスとの間で、通信フォーマットに従ってシリアル通信を行うシリアル通信方法であって、
前記コントローラは、
前記デバイスが単一であるか複数であるかを示す情報を、前記通信フォーマット中に存在するコードに割り当て、
前記デバイスが単一である場合、前記デバイスが単一であることを前記情報により示し、単一の前記デバイスとの間で前記シリアル通信を行い、
前記デバイスが複数である場合、前記デバイスが複数であることを前記情報により示し、前記デバイスを識別するデバイスＩＤを前記通信フォーマット中に含め、複数の前記デバイスの中で前記デバイスＩＤにより特定される前記デバイスとの間で前記シリアル通信を行う
シリアル通信方法。
【請求項２】
前記情報は、コントロールフィールド中のＳＹＮＣコードに割り当てられており、
前記コントローラと前記デバイスは、前記ＳＹＮＣコードを参照し、前記コントローラと単一の前記デバイスとの間の前記シリアル通信、または前記コントローラと複数の前記デバイスとの間の前記シリアル通信のいずれかに切り替える
請求項１に記載のシリアル通信方法。
【請求項３】
前記コントローラがマスタ、前記デバイスがスレーブであり、
前記マスタと前記スレーブの間で前記シリアル通信を行う
請求項１または請求項２のいずれか１項に記載のシリアル通信方法。
【請求項４】
前記デバイスは、センシングデバイスであり、
前記センシングデバイスは、前記コントローラからのリクエストに応じ、データを前記コントローラに対して前記シリアル通信により送信する
請求項１から請求項３のいずれか１項に記載のシリアル通信方法。
【請求項５】
前記コントローラと前記デバイスとが通信フォーマットに従うデータを送信または受信するバス通信ラインを備え、
前記コントローラは、
前記バス通信ラインにおいて１データフレーム分以上のアイドル状態が存在するか否かを監視しており、
前記１データフレーム分以上の前記アイドル状態が存在した後に前記シリアル通信を開始する
請求項１から請求項４のいずれか１項に記載のシリアル通信方法。
【請求項６】
シリアル通信機能を有するコントローラと、シリアル通信機能を有する１以上のデバイスとを備え、
請求項１から請求項５のいずれか１項に記載されたシリアル通信方法により、前記コントローラと１以上の前記デバイスとの間でシリアル通信を行う
シリアル通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、シリアル通信方法及びシリアル通信システムに関する。
【背景技術】
【０００２】
各種デバイス間においてシリアル通信によりデータを授受することが一般的に行われている。このシリアル通信において、単一のコントローラに対して複数のデバイスが接続されたシングルマスタ／マルチスレーブ接続のシステムにおけるシングルマスタ／マルチスレーブ通信と、単一のコントローラに対して単一のデバイスが接続されたシングルマスタ／シングルスレーブ接続のシステムにおけるシングルマスタ／シングルスレーブ通信とが知られている。このような構成のシリアル通信システムは、特許文献１及び非特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３１７２６１号公報
【非特許文献】
【０００４】
【非特許文献１】「ロータリーエンコーダ FA-CORDER(R)」（カタログ番号：T12-1228N58）、多摩川精機株式会社、2018年9月発行
【発明の概要】
【発明が解決しようとする課題】
【０００５】
以上の特許文献１には、単一のコントローラにバスを通じて複数のデバイスが接続されたシングルマスタ／マルチスレーブ接続システムにおける、シングルマスタ／マルチスレーブ通信の技術が開示されている。このシングルマスタ／マルチスレーブ通信では、複数のデバイスそれぞれを識別するためのデバイスＩＤ（identification）を定めておき、送受信するデータフレーム中にデバイスＩＤを含めるようにしている。
【０００６】
一方、以上の非特許文献１には、単一のコントローラにバスに単一のデバイスが接続されたシングルマスタ／シングルスレーブ接続システムにおける、シングルマスタ／シングルスレーブ通信の技術が開示されている。このシングルマスタ／シングルスレーブ通信では、コントローラに対して単一のデバイスが接続されているため、デバイスＩＤは不要である。従って、送受信するデータフレーム中にデバイスＩＤは含まれないため通信データ長が短くなり、簡潔な通信が可能になる。
【０００７】
ところで、特許文献１に開示されたシングルマスタ／マルチスレーブ通信は、シングルマスタ／シングルスレーブ接続システムにも適用することが可能である。この場合、単一のデバイスに対してデバイスＩＤを定め、送受信するデータフレーム中にデバイスＩＤを含めるようにする。この結果、送受信するデータフレーム中にデバイスＩＤが含まれることにより通信データ長が増大し、非特許文献１に開示されたシングルマスタ／シングルスレーブ接続用の通信システムを使用する場合に比較して、通信周期が伸びることになる。ここで、通信周期が伸びることは、制御対象の制御周期が伸びることであり、高精度な制御が困難になることを意味する。
【０００８】
一方、特許文献２に開示されたシングルマスタ／シングルスレーブ通信は、データフレーム中にデバイスＩＤを含まないため、通信データ長を短くすることができるものの、複数のデバイスを特定できないため、シングルマスタ／マルチスレーブ接続システムには適用することができない。
【０００９】
本発明は、シングルマスタ／シングルスレーブ接続システムとシングルマスタ／マルチスレーブ接続システムで共通して通信可能とし、マルチスレーブ接続時の通信データ長に比べてシングルスレーブ接続時の通信データ長を削減することが可能なシリアル通信方法及びシリアル通信システムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
この発明に係るシリアル通信方法は、シリアル通信機能を有するコントローラと、シリアル通信機能を有する１以上のデバイスとの間で、通信フォーマットに従ってシリアル通信を行うシリアル通信方法であって、コントローラは、デバイスが単一であるか複数であるかを示す情報を、通信フォーマット中に存在するコードに割り当て、デバイスが単一である場合、デバイスが単一であることを情報により示し、単一のデバイスとの間でシリアル通信を行い、デバイスが複数である場合、デバイスが複数であることを情報により示し、デバイスを識別するデバイスＩＤを通信フォーマット中に含め、複数のデバイスの中でデバイスＩＤにより特定されるデバイスとの間でシリアル通信を行う。
【発明の効果】
【００１１】
この発明に係るシリアル通信方法によれば、シングルマスタ／シングルスレーブ接続システムとシングルマスタ／マルチスレーブ接続システムで共通して通信可能とし、マルチスレーブ接続時の通信データ長に比べてシングルスレーブ接続時の通信データ長を削減することが可能になる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態１におけるシリアル通信システムの第１構成例を示す構成図である。
【図２】本発明の実施の形態１におけるシリアル通信システムの第２構成例を示す構成図である。
【図３】本発明の実施の形態１におけるシリアル通信システムのデータ転送時の通信フォーマットを示すタイミングチャートである。
【図４】本発明の実施の形態１におけるシリアル通信システムで使用されるデータの通信フォーマットの内容の一例を示す説明図である。
【図５】本発明の実施の形態１におけるシリアル通信システムで使用されるデータの通信フォーマット中のコントロールフィールドのフォーマットを示す説明図である。
【図６】本発明の実施の形態１におけるシリアル通信システムで使用されるデータの通信フォーマット中のコントロールフィールドの内容を示す説明図である。
【図７】本発明の実施の形態１におけるシリアル通信システムのデータ転送時のコントローラ側の処理手順を示すフローチャートである。
【図８】本発明の実施の形態１におけるシリアル通信システムのデータ転送時のデバイス側の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明のシリアル通信システムの実施の形態につき、図面を用いて説明する。なお、各図において、同一部分には同一符号を付している。
【００１４】
実施の形態１．
はじめに、本発明の実施の形態１におけるシリアル通信システム１の基本的な構成について、図１と図２を参照して説明する。図１は、本発明の実施の形態１におけるシリアル通信システム１の第１構成例を示す構成図である。図２は、本発明の実施の形態１におけるシリアル通信システム１の第２構成例を示す構成図である。
【００１５】
［シリアル通信システム１の構成］
図１において、シリアル通信方法を実行するシリアル通信システム１は、コントローラ１０と、デバイス２０と、バス通信ライン３０とを有する。コントローラ１０はマスタ、デバイス２０はスレーブとして、バス通信ライン３０を通して接続されている。
【００１６】
ここで、単一のコントローラ１０に対して、バス通信ライン３０を通して単一のデバイス２０が接続されており、シングルマスタ／シングルスレーブ接続のシリアル通信システム１を構成している。そして、シングルマスタ／シングルスレーブ接続のシリアル通信システム１において、シングルマスタ／シングルスレーブ通信が行われる。
【００１７】
コントローラ１０は、シリアル通信機能を備えており、シリアル通信によりデバイス２０からデータを読み出す制御部である。デバイス２０は、シリアル通信機能を備えたセンシングデバイスであり、例えば、制御対象から検出されたデータをシリアル通信により出力するエンコーダまたはセンサが該当する。バス通信ライン３０は、電源Ｖｃｃと、グランドＧＮＤと、一対の差動伝送信号ＳＤ＋／ＳＤ−とによって構成されている。
【００１８】
電源Ｖｃｃは、コントローラ１０からデバイス２０に供給される。差動伝送信号ＳＤ＋／ＳＤ−は、双方向に伝送されるものであり、コントローラ１０からデバイス２０に向けて送信される場合と、デバイス２０からコントローラ１０に向けて送信される場合とがある。
【００１９】
図２において、シリアル通信システム１は、コントローラ１０と、デバイス２０と、バス通信ライン３０とを有する。コントローラ１０はマスタ、デバイス２０はスレーブとして、バス通信ライン３０を通して接続されている。スレーブとしてのデバイス２０は、複数個のデバイス２０_1、デバイス２０_2、…、デバイス２０_nを備えて構成される。
【００２０】
ここで、単一のコントローラ１０に対して、バス通信ライン３０を通して複数個のデバイス２０、すなわち、デバイス２０_1、デバイス２０_2、…、デバイス２０_nが、並列に接続されている。これにより、シングルマスタ／マルチスレーブ接続のシリアル通信システム１を構成している。そして、シングルマスタ／マルチスレーブ接続のシリアル通信システム１において、シングルマスタ／マルチスレーブ通信が行われる。
【００２１】
複数個のデバイス２０_1、デバイス２０_2、…、デバイス２０_nを識別するため、後述するデバイスＩＤが付与されている。このデバイスＩＤは、１，２，３，…といった順番に従った番号でもよいし、製品の製造番号の全部または一部であってもよい。
【００２２】
コントローラ１０は、このデバイスＩＤによって、複数個のデバイス２０_1、デバイス２０_2、…、デバイス２０_nを識別し、特定することができる。複数個のデバイス２０_1、デバイス２０_2、…、デバイス２０_n側も、このデバイスＩＤによって、コントローラ１０からのリクエストが自分宛か否かを判別することができる。
【００２３】
［通信フォーマット中の各フィールドの説明］
次に、本発明の実施の形態１のシリアル通信システム１において実行されるシリアル通信方法で使用される通信フォーマットについて、図３と図４を参照して説明する。図３は、本発明の実施の形態１におけるシリアル通信システムのデータ転送時の通信フォーマットを示すタイミングチャートである。図４は、本発明の実施の形態１におけるシリアル通信システムで使用されるデータの通信フォーマットの内容の一例を示す説明図である。
【００２４】
まず、シングルマスタ／シングルスレーブ接続のシリアル通信システム１における通信の様子を説明する。図３の（ａ）は、シングルマスタ／シングルスレーブ接続のシリアル通信システム１における、コントローラ１０からデバイス２０に対するリクエストの送信を示している。
【００２５】
ここで、コントローラ１０は、先行するデータフレームの最終部分から１データフレーム分以上のアイドル状態が存在するか否かを監視しており、先行するデータフレームの最終部分から１データフレーム分以上のアイドル状態が継続した後に、コントロールフィールドＣＦをリクエストとしてデバイスに対して送信する。なお、１データフレームとは、デバイス２０からコントローラ１０に向けて送信される一連のデータの単位である。
【００２６】
デバイス２０は、１データフレーム分以上のアイドル状態が継続した後に、リクエストとしてコントロールフィールドＣＦが送られてくることで、通信開始であると判断する。これにより、デバイス２０は、他の通信に対して誤って通信開始と判断することを回避している。
【００２７】
デバイス２０は、コントローラ１０からコントロールフィールドＣＦがリクエストとして送られてくると、データを通信フォーマットに従ってコントローラ１０に対してシリアル通信により送信する。デバイス２０がエンコーダまたはセンサである場合、制御対象から検出されたデータをコントローラ１０に対して送信する。
【００２８】
図３の（ｂ）は、シングルマスタ／シングルスレーブ接続のシリアル通信システム１における、デバイス２０がコントローラ１０に向けて送信するデータの通信フォーマットを示している。
【００２９】
デバイス２０からコントローラ１０へのデータは、図３の（ｂ）に示されるように、通信フォーマットに従い、コントロールフィールドＣＦ、ステータスフィールドＳＦ、データフィールドＤＦ０〜ＤＦｎ、及び検査フィールドＣＲＣが含まれている。
【００３０】
図４の（ａ）は、図３の（ａ）及び（ｂ）のタイミングチャートに示されるデータの各フィールドの内容を示している。コントロールフィールドＣＦは、コマンド情報である。ステータスフィールドＳＦは、デバイスの状態識別情報である。データフィールドＤＦ０〜ＤＦｎは、データＩＤに割り振られた情報である。検査フィールドＣＲＣは、ＣＲＣフィールド以外の全てのフィールドのスタートビットとデリミッタとを除く全てのビットに対するＣＲＣ（Cyclic Redundancy Check：巡回冗長検査）による誤り検査情報である。
【００３１】
次に、シングルマスタ／マルチスレーブ接続のシリアル通信システム１における、通信の様子を説明する。図３の（ｃ）は、シングルマスタ／マルチスレーブ接続のシリアル通信システム１における、コントローラ１０からデバイス２０に対するリクエストの送信を示している。
【００３２】
コントローラ１０は、上述した説明と同様に、先行するデータフレームの最終部分から１データフレーム分以上のアイドル状態が継続した後に、コントロールフィールドＣＦとデバイスＩＤフィールドＩＤＦを、複数個のデバイス２０_1〜デバイス２０_nのうちのいずれかのデバイス２０_iへのリクエストとして送信する。
【００３３】
複数個のデバイス２０_1〜デバイス２０_nのうち、コントローラ１０から呼び出されたデバイス２０_iは、１データフレーム分以上のアイドル状態が継続した後に、リクエストとしてコントロールフィールドＣＦが送られてくることで、通信開始であると判断する。これにより、デバイス２０_iは、自分以外の他のデバイス２０_yへの通信に対して誤って通信開始と判断することを回避している。
【００３４】
デバイス２０_iは、コントローラ１０からコントロールフィールドＣＦがリクエストとして送られてくると、後述するようにコントロールフィールドＣＦの内容とデバイスＩＤフィールドＩＤＦの内容とに応じて、自分宛のリクエストであるかを判別する。
【００３５】
デバイス２０_iは、コントローラ１０からのリクエストが自分宛であると判別した場合、データを通信フォーマットに従ってコントローラ１０に対してシリアル通信により送信する。デバイス２０_iがエンコーダまたはセンサである場合、制御対象から検出されたデータをコントローラ１０に対して送信する。
【００３６】
図３の（ｄ）は、シングルマスタ／マルチスレーブ接続のシリアル通信システム１における、デバイス２０がコントローラ１０に向けて送信するデータの通信フォーマットを示している。
【００３７】
デバイス２０からコントローラ１０へのデータは、図３の（ｄ）に示されるように、通信フォーマットに従い、コントロールフィールドＣＦ、デバイスＩＤフィールドＩＤＦ、ステータスフィールドＳＦ、データフィールドＤＦ０〜ＤＦｎ、及び検査フィールドＣＲＣが含まれている。
【００３８】
図４の（ｂ）は、図３の（ｃ）及び（ｄ）のタイミングチャートに示されるデータの各フィールドの内容を示している。コントロールフィールドＣＦは、コマンド情報である。デバイスＩＤフィールドＩＤＦは、各デバイスを識別するデバイスＩＤ（identification）の情報である。ステータスフィールドＳＦは、デバイスの状態識別情報である。データフィールドＤＦ０〜ＤＦｎは、データＩＤに割り振られた情報である。検査フィールドＣＲＣは、ＣＲＣフィールド以外の全てのフィールドのスタートビットとデリミッタを除く全てのビットに対するＣＲＣ（Cyclic Redundancy Check：巡回冗長検査）による誤り検査情報である。
【００３９】
［通信フォーマット中のコントロールフィールドの説明］
次に、本発明の実施の形態１のシリアル通信システム１において実行されるシリアル通信で使用される通信フォーマット中のコントロールフィールドＣＦについて、図５と図６を参照して説明する。
【００４０】
図５は、本発明の実施の形態１におけるシリアル通信システムで使用されるデータの通信フォーマット中のコントロールフィールドのフォーマットを示す説明図である。コントローラ１０とデバイス２０との間で送受信されるコントロールフィールドＣＦは、スタートビット、ＳＹＮＣ（Synchronous）コード、データＩＤコード、データＩＤパリティ、及びデリミッタが含まれている。
【００４１】
図６は、本発明の実施の形態１におけるシリアル通信システムで使用されるデータの通信フォーマット中のコントロールフィールドＣＦの各ビットの内容を示す説明図である。
【００４２】
スタートビットは、開始位置を示すビットであり、例えば、“０”に固定されている。ＳＹＮＣコードは、同期に用いられる予め定められたコードであり、“０”と“１”を所定回数繰り返す。この実施の形態１において、ＳＹＮＣコードは、シングルマスタ／シングルスレーブ通信を行う場合は第１のＳＹＮＣコード“０１０”、シングルマスタ／マルチスレーブ通信を行う場合は第２のＳＹＮＣコード“１０１”が割り当てられる。データＩＤコードは、通信内容を選択するため、通信データや動作命令を割り当てられたコードである。データＩＤパリティは、データＩＤコードに対するパリティチェックのビットである。デリミッタは、終了位置を示すビットであり、例えば、“１”に固定されている。
【００４３】
以上のコントロールフィールドＣＦ中ＳＹＮＣコードによって、シリアル通信システム１において、シングルマスタ／シングルスレーブ通信とシングルマスタ／マルチスレーブ通信のどちらを行うかが決定される。また、ＳＹＮＣコードは、“０１０”と“１０１”のいずれであっても、本来の同期の用途にも使用される。
【００４４】
シングルマスタ／シングルスレーブ通信においては、デバイス２０がコントロールフィールドＣＦを受信した後、デバイス２０においてデータＩＤコードに応じたデータの返信や動作が実行される。
【００４５】
シングルマスタ／マルチスレーブ通信においては、コントロールフィールドＣＦに続いてデバイスＩＤフィールドＩＤＦがコントローラ１０から送信された後に、該当するデバイスＩＤを有するデバイス２０_iにてデータＩＤコードに応じたデータの返信や動作が実行される。
【００４６】
［シリアル通信システム１のコントローラ１０側の処理手順］
次に、本発明の実施の形態１のシリアル通信システム１において実行されるシリアル通信方法のコントローラ１０側の処理手順について、図７を参照しながら説明する。図７は、本発明の実施の形態１におけるシリアル通信システムのデータ転送時のコントローラ１０側の処理手順を示すフローチャートである。
【００４７】
ステップＳ１０１において、シリアル通信システム１の電源がオンされると、コントローラ１０はシリアル通信システム１内の各部を初期化する。その後、処理がステップＳ１０２へと進む。
【００４８】
ステップＳ１０２において、コントローラ１０は、バス通信ライン３０に電源Ｖｃｃを供給する。その後、処理がステップＳ１０３へと進む。
【００４９】
ステップＳ１０３において、コントローラ１０は、バス通信ライン３０に接続されているデバイス２０の設定を確認する。ここで、デバイス２０の設定とは、バス通信ライン３０に単一のデバイス２０が接続されているか、または、バス通信ライン３０に複数個のデバイス２０_1〜デバイス２０_nが接続されているか、を意味する。この設定は、ユーザによる操作部からの設定でもよいし、コントローラ１０が自動的に取得した設定でもよい。
【００５０】
ステップＳ１０３の設定確認に基づいて、ステップＳ１０４において、バス通信ライン３０に単一のデバイス２０が接続されていると判定されれば、処理がステップＳ１０５へと進む。
【００５１】
ステップＳ１０５において、コントローラ１０は、コントロールフィールドＣＦ中のＳＹＮＣコードを、シングルマスタ／シングルスレーブ通信を行う場合の“０１０”に設定する。その後、処理がステップＳ１０６へと進む。
【００５２】
ステップＳ１０６において、コントローラ１０は、先行するデータフレームの最終部分から１データフレーム分以上のアイドル状態が継続した後に、コントロールフィールドＣＦをリクエストとして、バス通信ライン３０に送信する。これにより、コントローラ１０は、単一のデバイス２０との間でシングルマスタ／シングルスレーブ通信によりシリアル通信を行う。その後、処理がステップＳ１０７へと進む。
【００５３】
ステップＳ１０７において、コントローラ１０は、外部からのパワーオフの指示の有無を監視しており、外部からのパワーオフの指示が有るまで、ステップＳ１０６のシリアル通信の処理と、ステップＳ１０７の外部指示監視の処理とを繰り返している。
【００５４】
ステップＳ１０７において、コントローラ１０は、外部からのパワーオフの指示を検出すると、ステップＳ１０６のシリアル通信の処理を終了し、バス通信ライン３０への電源Ｖｃｃ供給を停止し、シリアル通信システム１としての処理を終了する。
【００５５】
一方、ステップＳ１０３の設定確認に基づいて、ステップＳ１０４において、バス通信ライン３０に複数個のデバイス２０_1〜デバイス２０_nが接続されていると判定されれば、処理がステップＳ１０８へと進む。
【００５６】
ステップＳ１０８において、コントローラ１０は、コントロールフィールドＣＦ中のＳＹＮＣコードを、シングルマスタ／マルチスレーブ通信を行う場合の“１０１”に設定する。その後、処理がステップＳ１０９へと進む。
【００５７】
ステップＳ１０９において、コントローラ１０は、先行するデータフレームの最終部分から１データフレーム分以上のアイドル状態が継続した後に、コントロールフィールドＣＦに続いて、デバイスＩＤフィールドＩＤＦをリクエストとして、バス通信ライン３０に送信する。デバイスＩＤフィールドＩＤＦには、複数個のデバイス２０_1〜デバイス２０_nのうちの、通信相手となるいずれかのデバイス２０_iのデバイスＩＤを含める。
【００５８】
これにより、コントローラ１０は、複数個のデバイス２０_1〜デバイス２０_n中のいずれかのデバイス２０_iとの間で、シングルマスタ／マルチスレーブ通信によりシリアル通信を行う。その後、処理がステップＳ１１０へと進む。
【００５９】
ステップＳ１１０において、コントローラ１０は、外部からのパワーオフの指示の有無を監視しており、外部からのパワーオフの指示が有るまで、ステップＳ１０９のシリアル通信の処理と、ステップＳ１１０の外部指示監視の処理とを繰り返している。
【００６０】
ステップＳ１１０において、コントローラ１０は、外部からのパワーオフの指示を検出すると、ステップＳ１０９のシリアル通信の処理を終了し、バス通信ライン３０への電源Ｖｃｃ供給を停止し、シリアル通信システム１としての処理を終了する。
【００６１】
［シリアル通信システム１のデバイス２０側の処理手順］
次に、本発明の実施の形態１のシリアル通信システム１において実行されるシリアル通信方法のデバイス２０側の処理手順について、図８を参照しながら説明する。図８は、本発明の実施の形態１におけるシリアル通信システムのデータ転送時のデバイス２０側の処理手順を示すフローチャートである。
【００６２】
ステップＳ２０１において、バス通信ライン３０に接続された単一のデバイス２０、またはバス通信ライン３０に接続された複数個のデバイス２０_1〜デバイス２０_nは、バス通信ライン３０に供給された電源Ｖｃｃを受けて動作を開始する。その後、処理がステップＳ２０２へと進む。
【００６３】
ステップＳ２０２において、デバイス２０、または複数個のデバイス２０_1〜デバイス２０_nそれぞれは、自らを初期化する。その後、処理がステップＳ２０２へと進む。
【００６４】
ステップＳ２０３において、デバイス２０、または複数個のデバイス２０_1〜デバイス２０_nそれぞれは、コントローラ１０からバス通信ライン３０を通して送信されるコントロールフィールドＣＦの受信を待機している。
【００６５】
ここで、デバイス２０、または複数個のデバイス２０_1〜デバイス２０_nそれぞれは、１データフレーム分以上のアイドル状態が継続した後のコントロールフィールドＣＦを通信開始であると判断する。デバイス２０、または複数個のデバイス２０_1〜デバイス２０_nそれぞれは、コントロールフィールドＣＦを受信した後、処理がステップＳ２０４へと進む。
【００６６】
ステップＳ２０４において、デバイス２０、または複数個のデバイス２０_1〜デバイス２０_nそれぞれは、受信したコントロールフィールドＣＦに含まれるＳＹＮＣコードの内容を調べる。すなわち、デバイス２０、または複数個のデバイス２０_1〜デバイス２０_nそれぞれは、ＳＹＮＣコードが、シングルマスタ／シングルスレーブ通信用の“０１０”であるか、シングルマスタ／マルチスレーブ通信用の“１０１”であるかを識別する。
【００６７】
ステップＳ２０４の識別に基づいて、ＳＹＮＣコードが、シングルマスタ／シングルスレーブ通信用の“０１０”であると識別されれば、処理がステップＳ２０５へと進む。
【００６８】
ステップＳ２０５において、デバイス２０は、コントロールフィールドＣＦに含まれる動作命令に従い、図３の（ｂ）のように通信フォーマットに従ったデータをシリアル通信によりコントローラ１０に対して送信する。その後、処理がステップＳ２０９へと進む。
【００６９】
ステップＳ２０９において、デバイス２０は、バス通信ライン３０における電源Ｖｃｃの存在有無を監視しており、電源Ｖｃｃが存在していればステップＳ２０３のコントロールフィールドＣＦの受信待機に戻り、電源Ｖｃｃが存在しなくなればデバイス２０の動作を終了する。
【００７０】
ステップＳ２０４において、コントロールフィールドＣＦに含まれるＳＹＮＣコードの識別に基づいて、ＳＹＮＣコードが、シングルマスタ／マルチスレーブ通信用の“１０１”であると識別されれば、処理がステップＳ２０６へと進む。
【００７１】
ステップＳ２０６において、複数個のデバイス２０_1〜デバイス２０_nそれぞれは、コントローラ１０からコントロールフィールドＣＦに続いて送信されたデバイスＩＤフィールドＩＤＦに含まれるデバイスＩＤが、自分のデバイスＩＤと一致するか比較する。その後、処理がステップＳ２０７へと進む。
【００７２】
ステップＳ２０７において、複数個のデバイス２０_1〜デバイス２０_nそれぞれのうち、デバイスＩＤフィールドＩＤＦに含まれるデバイスＩＤが、自分のデバイスＩＤと一致しないものは、コントロールフィールドＣＦに対する動作をせずに、ステップＳ２０９の電源Ｖｃｃ存在判断に進む。
【００７３】
ステップＳ２０７において、複数個のデバイス２０_1〜デバイス２０_nそれぞれのうち、デバイスＩＤフィールドＩＤＦに含まれるデバイスＩＤが、自分のデバイスＩＤと一致したデバイス２０_iは、処理がステップＳ２０８へと進む。
【００７４】
ステップＳ２０８において、デバイスＩＤフィールドＩＤＦによりコントローラ１０から呼び出されたデバイス２０_iは、コントロールフィールドＣＦに含まれる動作命令に従い、図３の（ｄ）のように通信フォーマットに従ったデータをシリアル通信によりコントローラ１０に対して送信する。なお、デバイス２０_iは、図３の（ｄ）に示すように、コントロールフィールドＣＦとステータスフィールドＳＦとの間に、デバイスＩＤフィールドＩＤＦに自らのデバイスＩＤを含めるようにする。その後、処理がステップＳ２０９へと進む。
【００７５】
ステップＳ２０９において、複数個のデバイス２０_1〜デバイス２０_nそれぞれは、バス通信ライン３０における電源Ｖｃｃの存在有無を監視しており、電源Ｖｃｃが存在していればステップＳ２０３のコントロールフィールドＣＦの受信待機に戻り、電源Ｖｃｃが存在しなくなればデバイス２０の動作を終了する。
【００７６】
以上のように、実施の形態１のシリアル通信システム１において実行されるシリアル通信方法によれば、シングルマスタ／シングルスレーブ接続システムとシングルマスタ／マルチスレーブ接続システムで共通して通信可能とし、マルチスレーブ接続時の通信データ長に比べてシングルスレーブ接続時の通信データ長を削減することが可能になる。
【００７７】
ここで、シングルスレーブ接続時は、マルチスレーブ接続時と比較して、図３の（ｃ）及び（ｄ）に示すように、デバイスＩＤフィールドＩＤＦ分の通信データ長を削減することが可能になる。従って、シングルマスタ／シングルスレーブ接続用の通信システムでは、制御対象の制御周期が伸びることを防止でき、高次元のモーションコントロールの実現に貢献でき、高精度な制御が可能になる。
【００７８】
また、新たな信号やコードを付加せず、元々存在していたＳＹＮＣコードを参照するだけでよいため、シングルマスタ／シングルスレーブ接続、シングルマスタ／マルチスレーブ接続の切り替えが容易となり、システム更新時の変更点を最小限にすることができる。従って、デバイス２０としてセンシングデバイスを使用した各種制御機器の拡張柔軟性を向上させることができる。
【００７９】
［その他の実施の形態］
本発明の実施の形態１におけるシリアル通信システム１の他の形態、シリアル通信システム１において実行されるシリアル通信方法の他の手順について、以下に説明する。
【００８０】
以上の実施の形態１の説明では、バス通信ライン３０としてシリアル伝送のバス接続の具体例を示しているが、必ずしもこの内容に限定する必要はない。例えば、複数の信号線からなるパラレルラインのバスであっても、以上の実施の形態１のシリアル通信方法を適用することが可能である。
【００８１】
以上の実施の形態１のシリアル通信システム１の説明では、バス通信ライン３０において、信号伝送するための２本の対等な信号線を用いたＲＳ４８５規格の一対のＳＤ＋とＳＤ−の差動伝送信号による通信を想定した例として示しているが、本発明はこの内容に限定されるものではない。例えば、本発明の実施の形態１のシリアル通信システム１をＲＳ４２２規格やＲＳ２３２規格による通信に適用してもよい。また、本発明の実施の形態１のシリアル通信システム１を差動伝送信号によらない通信に適用してもよい。
【００８２】
以上の実施の形態１のシリアル通信方法の説明では、通信フォーマットおよび内部のフィールド構成、ビット構成などの具体例を説明したが、これらの内容に限定されるものではない。例えば、コントロールフィールドＣＦ内のＳＹＮＣコードは、シングルマスタ／シングルスレーブとシングルマスタ／マルチスレーブが別の値であればよく、ビット長も３ビットに限らない。
【００８３】
以上の実施の形態１のシリアル通信方法の説明におけるコントロールフィールドＣＦ中のデータＩＤコードは、必要となる通信内容の選択肢の分だけ用意できればビット長は短くとも長くともよい。加えて、データＩＤパリティも検出度を上げるためにＣＲＣに変更してもよい。
【００８４】
以上の実施の形態１のシリアル通信方法の説明において、デバイス２０を構成するセンシングデバイスに特殊な動作命令を加える場合には、リクエスト情報として特殊コマンド用のフィールドを追加してもよい。例えば、センシングデバイスにメモリが搭載されており、そのメモリにアクセスして値を変更したい場合、リクエストにメモリアドレス用のフィールドと書込みデータ用のフィールドを追加すればよく、また、データの誤り検出もしたい場合にはＣＲＣフィールドを追加すればよい。
【００８５】
以上の実施の形態１のシリアル通信方法の説明では、シリアル通信として調歩同期式の通信形態を想定した例を示しているが、この通信形態に限定されるものではない。
【００８６】
以上の実施の形態１のシリアル通信方法に関する図７のフローチャートを参照した説明において、ステップＳ１０１〜Ｓ１０４に記載された初期化、電源供給、及びデバイス設定確認、並びに、ステップＳ１０７とＳ１１０に記載された電源を監視しての動作は、必須の処理ではなく、いずれかの処理の省略または変更が可能である。
【符号の説明】
【００８７】
１  シリアル通信システム、１０  コントローラ、２０  デバイス、２０_1〜２０_n  複数のデバイス、３０  バス通信ライン。
【要約】
【課題】シングルマスタ／シングルスレーブ接続システムとシングルマスタ／マルチスレーブ接続システムで共通して通信可能とし、マルチスレーブ接続時に比べてシングルスレーブ接続時の通信データ長を削減する。
【解決手段】シリアル通信機能を有するコントローラ(１０)と、シリアル通信機能を有する１以上のデバイス（２０）との間で通信フォーマットに従ってシリアル通信を行う際、コントローラは、デバイスが単一であるか複数であるかを示す情報を通信フォーマット中のコードに割り当て、デバイスが単一である場合、デバイスが単一であることを情報により示し、単一のデバイスとの間でシリアル通信を行い、デバイスが複数である場合、デバイスが複数であることを情報により示し、デバイスを識別するデバイスＩＤを通信フォーマット中に含め、デバイスＩＤにより特定されるデバイスとの間でシリアル通信を行う。
【選択図】図１【図１】
0006762546.tif 000002
【図２】
0006762546.tif 000003
【図３】
0006762546.tif 000004
【図４】
0006762546.tif 000005
【図５】
0006762546.tif 000006
【図６】
0006762546.tif 000007
【図７】
0006762546.tif 000008
【図８】
0006762546.tif 000009