(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-02
(45)【発行日】2023-08-10
(54)【発明の名称】シリアル通信方法及びシリアル通信システム
(51)【国際特許分類】
G06F 13/38 20060101AFI20230803BHJP
【FI】
G06F13/38 340D
G06F13/38 350
G06F13/38 340A
(21)【出願番号】P 2019213782
(22)【出願日】2019-11-27
【審査請求日】2022-05-23
(73)【特許権者】
【識別番号】000203634
【氏名又は名称】多摩川精機株式会社
(73)【特許権者】
【識別番号】000010076
【氏名又は名称】ヤマハ発動機株式会社
(74)【代理人】
【識別番号】100110423
【氏名又は名称】曾我 道治
(74)【代理人】
【識別番号】100111648
【氏名又は名称】梶並 順
(74)【代理人】
【識別番号】100212657
【氏名又は名称】塚原 一久
(72)【発明者】
【氏名】丸山 裕史
(72)【発明者】
【氏名】加々谷 功
【審査官】北村 学
(56)【参考文献】
【文献】特開平09-212453(JP,A)
【文献】特開2004-295743(JP,A)
【文献】特表2018-512664(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
IPC G06F 13/38 - 13/42
(57)【特許請求の範囲】
【請求項1】
シリアル通信機能を有するコントローラと、シリアル通信機能を有する1以上のセンシングデバイスとの間で、通信フォーマットに従ってシリアル通信を行うシリアル通信方法であって、
前記コントローラは、前記センシングデバイスに対して検知したデータの保持を指示するラッチコマンドまたは前記センシングデバイスに対して検知したデータの保持の解除を指示するリリースコマンドを、前記通信フォーマット中に含めて前記センシングデバイスに対して送信し、
前記センシングデバイスは、
前記コントローラからの前記ラッチコマンドに応じ、検知した前記データを保持し、
前記コントローラからの前記リリースコマンドに応じ、検知した前記データの保持を解除し、
前記コントローラは、前記センシングデバイスに対して状態を問い合わせる問い合わせコマンドを前記通信フォーマット中に含めて前記センシングデバイスに対して送信し、
前記センシングデバイスは、前記コントローラからの前記問い合わせコマンドに応じ、前記データを保持していることを示すコマンドまたは保持を解除したことを示すコマンドを前記コントローラに対して送信する
シリアル通信方法。
【請求項2】
前記センシングデバイスは、
前記コントローラからの前記ラッチコマンドに応じ、保持の指示を受け付けたことを示すコマンドを前記コントローラに対して送信し、
前記コントローラからの前記リリースコマンドに応じ、保持の解除の指示を受け付けたことを示すコマンドを前記コントローラに対して送信する
請求項1に記載のシリアル通信方法。
【請求項3】
前記コントローラは、前記センシングデバイスに対して前記ラッチコマンド
または前記リリースコマンド
を送信する際に、前記センシングデバイスのいずれかを指定するセンシングデバイスIDを含め、
前記センシングデバイスIDにより指定された前記センシングデバイスは、
前記コントローラからの前記ラッチコマンドに応じ、検知した前記データを保持し、
前記コントローラからの前記リリースコマンドに応じ、検知した前記データの保持を解除する
請求項1または請求項2に記載のシリアル通信方法。
【請求項4】
前記コントローラがマスタデバイス、前記センシングデバイスがスレーブデバイスであり、
前記マスタデバイスと前記スレーブデバイスとの間で前記シリアル通信を行う
請求項1から請求項3のいずれか1項に記載のシリアル通信方法。
【請求項5】
前記センシングデバイスは、前記コントローラからのリクエストに応じ、保持した前記データを前記コントローラに対して送信する
請求項1から請求項4のいずれか1項に記載のシリアル通信方法。
【請求項6】
シリアル通信機能を有するコントローラと、シリアル通信機能を有する1以上のセンシングデバイスとを備え、
請求項1から請求項5のいずれか1項に記載されたシリアル通信方法により、前記コントローラと1以上の前記センシングデバイスとの間でシリアル通信を行う
シリアル通信システム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、シリアル通信方法及びシリアル通信システムに関し、特に、マスタデバイスからスレーブデバイスに対してラッチとリリースとを命じるシリアル通信方法及びシリアル通信システムに関する。
【背景技術】
【0002】
マスタデバイスとスレーブデバイスとの間、具体的には、コントローラとセンシングデバイスとの間で、シリアル通信によりコマンドとデータとを授受することが一般的に行われている。このような構成のシリアル通信システムは、特許文献1及び非特許文献1に記載されている。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【文献】「ロータリーエンコーダ FA-CORDER(R)」(カタログ番号:T12-1228N58)、多摩川精機株式会社、2018年9月発行
【発明の概要】
【発明が解決しようとする課題】
【0005】
センシングデバイスからデータを確実に取得するため、あるタイミングでデータを保持し、保持したデータを取得する手法が存在する。また、保持したデータを二度読みして、二度読みの結果が一致するデータを採用する手法が存在している。このデータの保持はラッチと呼ばれ、データの保持を解除することはリリースと呼ばれている。
【0006】
上記特許文献1には、単一のコントローラにバスを通じて複数のセンシングデバイスが接続されたシングルマスタ/マルチスレーブ接続システムにおける、シングルマスタ/マルチスレーブ通信の技術が開示されている。しかし、センシングデバイスにおいてデータのラッチ(保持)/リリース(保持の解除)を実行する機能については言及されていない。
【0007】
上記非特許文献1には、単一のコントローラにバスを通じて単一のセンシングデバイスが接続されたシングルマスタ/シングルスレーブ接続システムにおける、シングルマスタ/シングルスレーブ通信の技術が開示されている。しかし、センシングデバイスにおいてデータのラッチ(保持)/リリース(保持の解除)を実行する機能については言及されていない。
【0008】
従って、シングルマスタ/シングルスレーブ接続システムにおけるシリアル通信システムと、シングルマスタ/マルチスレーブ接続システムにおけるシリアル通信システムとのいずれであっても、任意のタイミングでデータのラッチとリリースとを行えることが望まれている。
【0009】
本発明は、コントローラからのコマンドに基づいて、センシングデバイスにおいてデータの保持と解除とを任意のタイミングで行うことが可能なシリアル通信方法及びシリアル通信システムを提供することを目的とする。
【課題を解決するための手段】
【0010】
(1)この発明に係るシリアル通信方法及びシリアル通信システムは、シリアル通信機能を有するコントローラと、シリアル通信機能を有する1以上のセンシングデバイスとの間で、通信フォーマットに従ってシリアル通信を行う際に、コントローラは、センシングデバイスに対して検知したデータの保持を指示するラッチコマンドまたはセンシングデバイスに対して検知したデータの保持の解除を指示するリリースコマンドを、通信フォーマット中に含めてセンシングデバイスに対して送信し、センシングデバイスは、コントローラからのラッチコマンドに応じ、検知したデータを保持し、コントローラからのリリースコマンドに応じ、検知したデータの保持を解除する。
【0011】
(2)この発明に係るシリアル通信方法及びシリアル通信システムにおいて、センシングデバイスは、コントローラからのラッチコマンドに応じ、保持の指示を受け付けたことを示すコマンドをコントローラに対して送信し、コントローラからのリリースコマンドに応じ、保持の解除の指示を受け付けたことを示すコマンドをコントローラに対して送信する。
【0012】
(3)この発明に係るシリアル通信方法及びシリアル通信システムにおいて、コントローラは、センシングデバイスに対して状態を問い合わせる問い合わせコマンドを通信フォーマット中に含めて、センシングデバイスに対して送信し、センシングデバイスは、コントローラからの問い合わせコマンドに応じ、データを保持していることを示すコマンド、または、保持を解除したことを示すコマンドをコントローラに対して送信する。
【0013】
(4)この発明に係るシリアル通信方法及びシリアル通信システムにおいて、コントローラは、センシングデバイスに対してラッチコマンドまたはリリースコマンドを送信する際に、センシングデバイスのいずれかを指定するセンシングデバイスIDを含め、センシングデバイスIDにより指定されたセンシングデバイスは、コントローラからのラッチコマンドに応じ、検知したデータを保持し、コントローラからのリリースコマンドに応じ、検知したデータの保持を解除する。指定されていないセンシングデバイスIDであっても、コントローラから全センシングデバイスを指定したラッチコマンドまたはリリースコマンドが送信された場合、全てのセンシングデバイスは、検知したデータをラッチコマンドに応じて保持し、検知したデータの保持をリリースコマンドに応じて解除する。
【0014】
(5)この発明に係るシリアル通信方法及びシリアル通信システムにおいて、コントローラがマスタデバイス、センシングデバイスがスレーブデバイスであり、マスタデバイスとスレーブデバイスとの間でシリアル通信を行う。
(6)この発明に係るシリアル通信方法及びシリアル通信システムにおいて、センシングデバイスは、コントローラからのリクエストに応じ、保持したデータを前記コントローラに対して送信する。
【発明の効果】
【0015】
この発明に係るシリアル通信方法及びシリアル通信システムによれば、コントローラは、ラッチコマンドとリリースコマンドとを通信フォーマット中に含めてセンシングデバイスに対して送信し、センシングデバイスは、ラッチコマンドに応じて検知したデータを保持し、リリースコマンドに応じて検知したデータの保持を解除するため、任意のタイミングで、コントローラからのコマンドに基づいて、センシングデバイスにおいてデータの保持と解除とを行うことが可能になる。
【図面の簡単な説明】
【0016】
【
図1】本発明の実施の形態1におけるシリアル通信システムの構成を示す構成図である。
【
図2】本発明の実施の形態1におけるシリアル通信システムの構成を示す構成図である。
【
図3】本発明の実施の形態1におけるシリアル通信システムの通信フォーマットを示すタイミングチャートである。
【
図4】本発明の実施の形態1におけるシリアル通信システムの通信フォーマットの内容の一例を示す説明図である。
【
図5】本発明の実施の形態1におけるシリアル通信システムの通信フォーマットを示すタイミングチャートである。
【
図6】本発明の実施の形態1におけるシリアル通信システムの通信フォーマットの内容の一例を示す説明図である。
【
図7】本発明の実施の形態1におけるシリアル通信システムで用いられる通信フォーマット中のコントロールフィールドのフォーマットを示す説明図である。
【
図8】本発明の実施の形態1におけるシリアル通信システムで用いられる通信フォーマット中のコントロールフィールドの内容を示す説明図である。
【
図9】本発明の実施の形態1におけるシリアル通信システムの通信フォーマットを示すタイミングチャートである。
【
図10】本発明の実施の形態1におけるシリアル通信システムの通信フォーマットの内容の一例を示す説明図である。
【
図11】本発明の実施の形態1におけるシリアル通信システムの通信フォーマットを示すタイミングチャートである。
【
図12】本発明の実施の形態1におけるシリアル通信システムの通信フォーマットの内容の一例を示す説明図である。
【
図13】本発明の実施の形態1におけるシリアル通信システムで用いられる通信フォーマット中のコマンドコードフィールドのフォーマットを示す説明図である。
【
図14】本発明の実施の形態1におけるシリアル通信システムで用いられる通信フォーマット中のコマンドコードフィールドの内容を示す説明図である。
【
図15】本発明の実施の形態1におけるシリアル通信システムで用いられる通信フォーマット中のコマンドコードの割り当てを示す説明図である。
【
図16】本発明の実施の形態1におけるシリアル通信システムの通信手順を示すシーケンス図である。
【発明を実施するための形態】
【0017】
以下、本発明のシリアル通信システムの実施の形態について、図面を用いて説明する。なお、各図において、同一部分には同一符号を付している。
【0018】
実施の形態1.
はじめに、本発明の実施の形態1において、シリアル通信方法を実行するシリアル通信システムの基本的な構成について、
図1を参照して説明する。
【0019】
[シリアル通信システム1Aの構成]
図1は、本発明の実施の形態1におけるシリアル通信システム1Aの構成を示す構成図である。
図1において、シリアル通信方法を実行するシリアル通信システム1Aは、コントローラ10と、デバイス20と、通信ライン30Aとを備えている。コントローラ10はマスタデバイス、デバイス20はスレーブデバイスとして、通信ライン30Aを通して通信可能に接続されている。
【0020】
ここで、
図1に示すシリアル通信システム1Aは、単一のコントローラ10に対して、通信ライン30Aを通して単一のデバイス20が接続されており、シングルマスタ/シングルスレーブ接続のシリアル通信システムを構成している。
シングルマスタ/シングルスレーブ接続のシリアル通信システム1Aにおいて、コントローラ10とデバイス20との間で、シングルマスタ/シングルスレーブ通信が行われる。すなわち、マスタデバイスであるコントローラ10とスレーブデバイスであるデバイス20との間で、シリアル通信によりコマンドとデータとが送受信される。
【0021】
コントローラ10は、シリアル通信機能を備えており、シリアル通信によりデバイス20からデータを読み出す制御部である。デバイス20は、シリアル通信機能を備えたセンシングデバイスであり、例えば、制御対象から検知したデータをシリアル通信により出力するセンシングデバイスに該当する。
【0022】
通信ライン30Aは、電源Vccを供給する信号線と、グランドGNDの電位を保つ信号線と、一対の差動伝送信号SD+/SD-を伝送する信号線とによって構成されている。
【0023】
電源Vccは、信号線を通してコントローラ10からデバイス20に供給される。差動伝送信号SD+/SD-は、信号線を通して双方向に伝送されるものであり、コントローラ10からデバイス20に向けて送信される場合と、デバイス20からコントローラ10に向けて送信される場合とがある。
【0024】
[シリアル通信システム1Bの構成]
次に、本発明の実施の形態1において、シリアル通信方法を実行するシリアル通信システム1Bの基本的な構成について、
図2を参照して説明する。
図2は、本発明の実施の形態1におけるシリアル通信システム1Bの構成を示す構成図である。
【0025】
図2において、シリアル通信システム1Bは、主に、コントローラ10と、デバイス20と、バス通信ライン30Bとを備えている。コントローラ10はマスタデバイス、デバイス20はスレーブデバイスとして、バス通信ライン30Bを通して通信可能に接続されている。スレーブデバイスとしてのデバイス20は、複数のデバイス20_1、デバイス20_2、…、デバイス20_nを備えて構成される。
【0026】
ここで、
図2に示すシリアル通信システム1Bは、単一のコントローラ10に対して、複数のデバイス20、すなわち、デバイス20_1、デバイス20_2、…、デバイス20_nが、バス通信ライン30Bを通して並列に接続されている。これにより、シングルマスタ/マルチスレーブ接続のシリアル通信システムが構成されている。
【0027】
シングルマスタ/マルチスレーブ接続のシリアル通信システム1Bにおいて、コントローラ10とデバイス20との間で、シングルマスタ/マルチスレーブ通信が行われる。すなわち、マスタデバイスであるコントローラ10とスレーブデバイスである複数のデバイス20_1~デバイス20_nのうちのいずれかのデバイス20_iとの間で、シリアル通信によりコマンドとデータとを送受信される。
【0028】
複数のデバイス20_1、デバイス20_2、…、デバイス20_nを識別するため、後述するデバイスIDがそれぞれ付与されている。このデバイスIDは、1,2,3,…,nといった順番に従った番号でもよいし、製品の製造番号の全部または一部、ネットワークアドレス、あるいは任意に設定された番号であってもよい。
【0029】
コントローラ10は、このデバイスIDによって、複数のデバイス20_1、デバイス20_2、…、デバイス20_nを識別し、いずれかまたは全てを指定することができる。複数のデバイス20_1、デバイス20_2、…、デバイス20_n側は、このデバイスIDによって、コントローラ10からの各種指示が自分宛か否かを判別することができる。
【0030】
[通信フォーマットの説明(1)]
次に、本発明の実施の形態1のシリアル通信システム1Aにおいて実行されるシリアル通信方法の通信フォーマットを
図3及び
図4を参照して説明する。また、本発明の実施の形態1のシリアル通信システム1Bにおいて実行されるシリアル通信方法の通信フォーマットについて
図5及び
図6を参照して説明する。
【0031】
図3は、本発明の実施の形態1におけるシリアル通信システム1Aの通信フォーマットを示すタイミングチャートである。
図4は、本発明の実施の形態1におけるシリアル通信システム1Aの通信フォーマットの内容の一例を示す説明図である。
【0032】
まず、シングルマスタ/シングルスレーブ接続のシリアル通信システム1Aにおける通信の様子を、
図3を参照して説明する。
図3の(a)は、シングルマスタ/シングルスレーブ接続のシリアル通信システム1Aにおける、コントローラ10からデバイス20に対するリクエストの送信を示している。ここで、コントローラ10が送信するリクエストとは、後述するように、デバイス20に対するデータの要求を意味する。
【0033】
コントローラ10は、先行するデータフレームの最終部分から1データフレーム分以上のアイドル状態が存在するか否かを監視しており、先行するデータフレームの最終部分から1データフレーム分以上のアイドル状態が継続した後に、コントロールフィールドCFをリクエストとしてデバイス20に対して送信する。なお、1データフレームとは、デバイス20からコントローラ10に向けて送信される一連のデータの単位である。
【0034】
図3の(b)は、シングルマスタ/シングルスレーブ接続のシリアル通信システム1Aにおける、デバイス20がコントローラ10に向けて送信するデータの通信フォーマットを示している。
【0035】
デバイス20は、1データフレーム分以上のアイドル状態が継続した後に、リクエストとしてコントロールフィールドCFが送られてくることで、通信開始であると判断する。これにより、デバイス20は、他の通信に対して誤って通信開始と判断することを回避している。
【0036】
デバイス20は、コントローラ10からコントロールフィールドCFがリクエストとして送られてくると、通信フォーマットに従ってコントローラ10に対して、シリアル通信によりデータを送信する。デバイス20は、センシングデバイスであり、制御対象から検知したデータをコントローラ10に対して送信する。
【0037】
デバイス20は、
図3の(b)に示されるように、通信フォーマットに従い、コントロールフィールドCF、ステータスフィールドSF、データフィールドDF0~DFn、及び検査フィールドCRCが含まれる一連のデータをコントローラ10へ送信する。
【0038】
図4は、
図3の(a)及び(b)のタイミングチャートに示されるデータの各フィールドの内容を示している。コントロールフィールドCFは、通信相手方へのコマンド情報である。ステータスフィールドSFは、デバイスの状態識別情報である。データフィールドDF0~DFnは、データIDに割り振られた情報である。検査フィールドCRCは、CRCフィールド以外の全てのフィールドのスタートビットとデリミッタとを除く全てのビットに対するCRC(Cyclic Redundancy Check:巡回冗長検査)による誤り検査情報である。
【0039】
次に、シングルマスタ/マルチスレーブ接続のシリアル通信システム1Bにおける、通信の様子を説明する。
【0040】
図5の(a)は、シングルマスタ/マルチスレーブ接続のシリアル通信システム1Bにおける、コントローラ10から複数のデバイス20_1~デバイス20_nのうちのいずれかに対するリクエストの送信を示している。ここで、コントローラ10が送信するリクエストとは、デバイス20に対するデータの要求を意味する。
【0041】
コントローラ10は、上述した説明と同様に、先行するデータフレームの最終部分から1データフレーム分以上のアイドル状態が継続した後に、コントロールフィールドCFとデバイスIDフィールドIDFを、複数のデバイス20_1~デバイス20_nのうちのいずれかのデバイス20_iへのリクエストとして送信する。
【0042】
図5の(b)は、シングルマスタ/マルチスレーブ接続のシリアル通信システム1Bにおける、デバイス20がコントローラ10に向けて送信するデータの通信フォーマットを示している。
【0043】
複数のデバイス20_1~デバイス20_nは、1データフレーム分以上のアイドル状態が継続した後に、リクエストとしてコントロールフィールドCFとデバイスIDフィールドIDFとが送られてくることで、通信開始であると判断する。
【0044】
複数のデバイス20_1~デバイス20_nは、コントローラ10からコントロールフィールドCFとデバイスIDフィールドIDFとがリクエストとして送られてくると、コントロールフィールドCFの内容とデバイスIDフィールドIDFの内容とに応じて、自分宛のリクエストであるかを判別する。
【0045】
コントローラ10からのリクエストが自分宛であると判別したデバイス20_iは、データを通信フォーマットに従ってコントローラ10に対してシリアル通信によりデータを送信する。デバイス20_iはセンシングデバイスであり、制御対象から検知したデータをコントローラ10に対して送信する。
【0046】
デバイス20_iは、
図5の(b)に示されるように、通信フォーマットに従い、コントロールフィールドCF、デバイスIDフィールドIDF、ステータスフィールドSF、データフィールドDF0~DFn、及び検査フィールドCRCが含まれる一連のデータをコントローラ10へ送信する。
【0047】
以上の
図5の(a)及び(b)のタイミングチャートに示されるデータの各フィールドの内容を、
図6を参照して説明する。
図6は、本発明の実施の形態1におけるシリアル通信システム1Bの通信フォーマットの内容の一例を示す説明図である。
図6は、
図4に示したものと異なり、複数のデバイスを識別するデバイスID(identification)の情報であるデバイスIDフィールドIDFを更に有している。
【0048】
次に、本発明の実施の形態1におけるシリアル通信で用いられる通信フォーマット中のコントロールフィールドCFについて、
図7と
図8を参照して説明する。
【0049】
図7は、本発明の実施の形態1におけるシリアル通信システム1A及び1Bで用いられる通信フォーマット中のコントロールフィールドCFのフォーマットを示す説明図である。コントロールフィールドCFは、スタートビット、SYNC(Synchronous)コードのビット、データIDコードのビット、データIDパリティのビット、及びデリミッタのビットが含まれている。
【0050】
図8は、本発明の実施の形態1におけるシリアル通信システム1A及び1Bで用いられる通信フォーマット中のコントロールフィールドCFの各ビットの内容を示す説明図である。
【0051】
スタートビットは、開始位置を示すビットであり、例えば、“0”に固定されている。SYNCコードは、同期に用いられる予め定められたコードであり、“0”と“1”を所定回数繰り返す。この実施の形態1において、SYNCコードは、シングルマスタ/シングルスレーブ通信を行う場合は第1のSYNCコード“010”、シングルマスタ/マルチスレーブ通信を行う場合は第2のSYNCコード“101”が割り当てられる。
【0052】
データIDコードは、通信内容を選択するため、通信データや動作命令を割り当てられたコードである。データIDコードには、データを保持するラッチ、及び、ラッチを解除するリリースを実行するため、ラッチ/リリース制御実行IDを割り当てておくことができる。データIDパリティは、データIDコードに対するパリティチェックのビットである。デリミッタは、終了位置を示すビットであり、例えば、“1”に固定されている。
【0053】
以上のコントロールフィールドCF中SYNCコードによって、シリアル通信システム1A及び1Bにおいて、シングルマスタ/シングルスレーブ通信とシングルマスタ/マルチスレーブ通信のどちらを行うかが決定される。また、SYNCコードは、“010”と“101”のいずれであっても、本来の同期の用途にも使用される。
【0054】
シングルマスタ/シングルスレーブ通信において、デバイス20は、コントロールフィールドCFを受信した後、データIDコードに応じたデータの返信または各種の動作を実行する。
【0055】
シングルマスタ/マルチスレーブ通信において、コントロールフィールドCFに続いてデバイスIDフィールドIDFがコントローラ10から送信されると、該当するデバイスIDを有するデバイス20_iは、データIDコードに応じたデータの返信または各種の動作を実行する。
【0056】
[通信フォーマットの説明(2)]
次に、コントローラ10からの指示により、デバイス20においてデータのラッチとリリースとを実行するコマンドを含む通信フォーマットを、
図9~
図12を参照して説明する。なお、ラッチとは、フリップフロップ回路におけるラッチだけでなく、各種の回路においてデータを保持することを意味する。リリースとは、各種の回路においてラッチによるデータの保持を解除することを意味する。
【0057】
図9は、本発明の実施の形態1におけるシリアル通信システム1Aの通信フォーマットを示すタイミングチャートである。
図10は、本発明の実施の形態1におけるシリアル通信システム1Aの通信フォーマットの内容の一例を示す説明図である。
図9及び
図10において、既に説明した
図3及び
図4と同一物には同一番号を付すことで重複した説明を省略し、
図3及び
図4とは異なる部分を中心に説明する。
【0058】
まず、シングルマスタ/シングルスレーブ接続のシリアル通信システム1Aにおける、ラッチとリリースのコマンドを含む通信の様子を、
図9を参照して説明する。
【0059】
コントローラ10は、
図9の(a)に示すように、先行するデータフレームの最終部分から1データフレーム分以上のアイドル状態が継続した後に、コントロールフィールドCF、コマンドコードフィールドCCF、及び検査フィールドCRCが含まれる一連のデータを、デバイス20に対して送信する。
【0060】
デバイス20は、コントロールフィールドCF、コマンドコードフィールドCCF、及び検査フィールドCRCが含まれる一連のデータがコントローラ10から送られてくることで、通信開始であると判断する。デバイス20は、
図9の(b)に示されるように、通信フォーマットに従い、コントロールフィールドCF、ステータスフィールドSF、コマンドコードフィールドCCF、及び検査フィールドCRCが含まれる一連のデータをコントローラ10へ送信する。
【0061】
図10は、
図9の(a)及び(b)のタイミングチャートに示されるデータの各フィールドの内容を示している。コントロールフィールドCFは、通信相手方へのコマンド情報である。ステータスフィールドSFは、デバイスの状態識別情報である。コマンドコードフィールドCCFは、ラッチまたはリリースに関する命令、受け付けを示すコマンドコードである。検査フィールドCRCは、CRCフィールド以外の全てのフィールドのスタートビットとデリミッタとを除く全てのビットに対するCRC(Cyclic Redundancy Check:巡回冗長検査)による誤り検査情報である。
【0062】
コントローラ10は、コントロールフィールドCF中のデータIDコードに、デバイス20に対してラッチ/リリース制御の実行を指示するコマンド情報を含めることができる。コントローラ10は、更に、コマンドコードフィールドCCF中のデータに、ラッチ/リリース関連のコマンドコードとして、ラッチ実行、リリース実行、を指示するコマンドコードを含めることができる。
【0063】
デバイス20は、コントローラ10からのコントロールフィールドCFがラッチ/リリース制御の実行を指示するコマンド情報であり、かつ、コマンドコードフィールドCCF中にラッチ/リリース関連のコマンドコードが含まれる場合、
図9の(b)に示されるように、通信フォーマットに従い、コントロールフィールドCF、ステータスフィールドSF、コマンドコードフィールドCCF、及び検査フィールドCRCが含まれる一連のデータをコントローラ10へ送信する。
【0064】
デバイス20は、以上のコントローラ10への送信の際に、コントローラ10から指示されたラッチまたはリリースを受け付けたことを示すコマンドコードをコマンドコードフィールドCCF中に含めるようにする。そして、デバイス20は、コントローラ10から指示されたラッチまたはリリースを実行する。
【0065】
次に、シングルマスタ/マルチスレーブ接続のシリアル通信システム1Bにおける、ラッチとリリースのコマンドを含む通信の様子を、
図11を参照して説明する。
図11は、本発明の実施の形態1におけるシリアル通信システム1Bの通信フォーマットを示すタイミングチャートである。
【0066】
コントローラ10は、
図11の(a)に示すように、先行するデータフレームの最終部分から1データフレーム分以上のアイドル状態が継続した後に、コントロールフィールドCF、デバイスIDフィールドIDF、コマンドコードフィールドCCF、及び検査フィールドCRCが含まれる一連のデータを、複数のデバイス20_1~デバイス20_nのうちのいずれかのデバイス20_iに対して送信する。
【0067】
複数のデバイス20_1~デバイス20_nは、コントロールフィールドCF、デバイスIDフィールドIDF、コマンドコードフィールドCCF、及び検査フィールドCRCが含まれる一連のデータがコントローラ10から送られてくることで、通信開始であると判断する。
【0068】
複数のデバイス20_1~デバイス20_nは、コントロールフィールドCFの内容とデバイスIDフィールドIDFの内容とに応じて、自分宛のリクエストであるかを判別する。デバイスIDフィールドIDFによって指定されたデバイスに該当すると判別したデバイス20_iは、
図11の(b)に示されるように、通信フォーマットに従い、コントロールフィールドCF、デバイスIDフィールドIDF、ステータスフィールドSF、コマンドコードフィールドCCF、及び検査フィールドCRCが含まれる一連のデータをコントローラ10へ送信する。
【0069】
以上の
図11の(a)及び(b)のタイミングチャートに示されるデータの各フィールドの内容について、
図12を参照して説明する。
図12は、本発明の実施の形態1におけるシリアル通信システム1Bの通信フォーマットの内容の一例を示す説明図である。
図12は、
図10に示したものと異なり、複数のデバイスを識別するデバイスIDの情報であるデバイスIDフィールドIDFを有している。
【0070】
コントローラ10は、コントロールフィールドCF中のデータIDコードに、デバイス20_iに対してラッチ/リリース制御の実行を指示するコマンド情報を含めることができる。そして、コントローラ10は、更に、デバイスIDフィールドIDFにラッチ/リリース制御の実行を指示するデバイスのIDを含め、コマンドコードフィールドCCFにラッチ/リリース関連のコマンドコードを含めることができる。ここで、ラッチ関連のコマンドコードとは、ラッチ実行、ラッチ実行の対象デバイス、リリース実行、リリース実行の対象デバイス、を指示するコマンドコードである。
【0071】
デバイス20_iは、コントローラ10からのコントロールフィールドCFがラッチ/リリース制御の実行を指示するコマンド情報であり、コマンドコードフィールドCCF中のデータにラッチ/リリース関連のコマンドコードが含まれ、かつ、デバイスIDフィールドIDFによりラッチ/リリース制御の実行を指示されたデバイスに該当する場合、
図11の(b)に示されるように、通信フォーマットに従い、コントロールフィールドCF、ステータスフィールドSF、コマンドコードフィールドCCF、及び検査フィールドCRCが含まれる一連のデータをコントローラ10へ送信する。
【0072】
デバイス20_iは、デバイスIDフィールドIDFによりラッチ/リリース制御の実行を指示されたデバイスに該当する場合、以上のコントローラ10への送信の際に、コントローラ10から指示されたラッチまたはリリースの受付をしたことを示すコマンドコードをコマンドコードフィールドCCF中に含めるようにする。そして、デバイス20_iは、コントローラ10から指示されたラッチまたはリリースを実行する。
【0073】
次に、本発明の実施の形態1におけるシリアル通信で用いられる通信フォーマット中のコマンドコードフィールドCCFについて、
図13と
図14を参照して説明する。
図13は、本発明の実施の形態1におけるシリアル通信システム1A及び1Bで用いられる通信フォーマット中のコマンドコードフィールドCCFのフォーマットを示す説明図である。コマンドコードフィールドCCFは、スタートビット、コマンドコードフィールドCCFのビット、及びデリミッタのビットが含まれている。
【0074】
図14は、本発明の実施の形態1におけるシリアル通信システム1A及び1Bで用いられる通信フォーマット中のコマンドコードフィールドCCFの各ビットの内容を示す説明図である。スタートビットは、開始位置を示すビットであり、例えば、“0”に固定されている。コマンドコードフィールドCCFのビットは、例えば、8ビットであり、0x00~0xFFの256通りの値をとりうる。デリミッタは、終了位置を示すビットであり、例えば、“1”に固定されている。
【0075】
次に、本発明の実施の形態1におけるシリアル通信で用いられる通信フォーマット中のコマンドコードフィールドCCFの具体的なコード内容を、
図15を参照して説明する。
図15は、本発明の実施の形態1におけるシリアル通信システム1A及び1Bで用いられる通信フォーマット中のコマンドコードの割り当てを示す説明図である。
【0076】
図15に示すコマンドコードの割り当ては、一例として以下の通りである。
コントローラ10からのコマンドコード0x00は、複数のデバイス20_1~デバイス20_nの全てに対するリリース実行の指示である。
デバイス20側からのコマンドコード0x00は、複数のデバイス20_1~デバイス20_nの全てに対するリリース実行指示の受付を示している。
【0077】
コントローラ10からのコマンドコード0x55は、複数のデバイス20_1~デバイス20_nのうちのいずれかのデバイス20_iに対するリリース実行の指示である。
デバイス20側からのコマンドコード0x55は、複数のデバイス20_1~デバイス20_nのうちのいずれかのデバイス20_iに対するリリース実行指示の受付を示している。
【0078】
デバイス20側からのコマンドコード0x5Fは、複数のデバイス20_1~デバイス20_nのうちのいずれかのデバイス20_iがラッチ中でありデータを保持していることを示しており、特定の問い合わせコマンドコードあるいは未指定のコマンドコードがコントローラ10から送られてきた場合に送信する。
デバイス20側からのコマンドコード0x50は、複数のデバイス20_1~デバイス20_nのうちのいずれかのデバイス20_iがリリース中であり保持を解除したことを示しており、特定の問い合わせコマンドコードあるいは未指定のコマンドコードがコントローラ10から送られてきた場合に送信する。
【0079】
コントローラ10からのコマンドコード0xAAは、複数のデバイス20_1~デバイス20_nのうちのいずれかのデバイス20_iに対するラッチ実行の指示である。
デバイス20側からのコマンドコード0xAAは、複数のデバイス20_1~デバイス20_nのうちのいずれかのデバイス20_iに対するラッチ実行指示の受付を示している。
【0080】
コントローラ10からのコマンドコード0xFFは、複数のデバイス20_1~デバイス20_nの全てに対するラッチ実行の指示である。
デバイス20側からのコマンドコード0xFFは、複数のデバイス20_1~デバイス20_nの全てに対するラッチ実行指示の受付を示している。
【0081】
以上の場合において、複数のデバイス20_1~デバイス20_nの全てに対してラッチまたはリリースの指示が出された場合、全てのデバイス20_1~デバイス20_nがラッチまたはリリースの指示に応じて動作するが、代表として定められたいずれかのデバイス20_jが受付のコマンドコードをコントローラ10に送信すればよい。
【0082】
以上の場合において、指定されていないデバイスIDがデバイスIDフィールドIDFにおいて指示され、全てのデバイス20_1~20_nを指定したラッチコマンドまたはリリースコマンドがコントローラ10から送信された場合、全てのデバイス20_1~20_nがラッチコマンドまたはリリースコマンドの指示に応じて動作する。
【0083】
なお、以上のシングルマスタ/マルチスレーブ接続のシリアル通信システム1Bにおけるラッチとリリースのコマンドを含む通信については、シングルマスタ/シングルスレーブのシリアル通信システム1Aに対しても適用することができる。シリアル通信システム1Aの場合は、デバイス20が単一であってデバイスの指定が存在していなため、コントローラ10とデバイス20は
図15中のいずれかのコマンドコードを使用すればよい。
【0084】
[シリアル通信システム1Bにおける通信手順]
次に、本発明の実施の形態1のシリアル通信システム1Bにおいて実行されるシリアル通信方法の通信手順について、
図16を参照しながら説明する。
図16は、本発明の実施の形態1におけるシリアル通信システム1Bの通信手順を示すシーケンス図である。
【0085】
ここで、シリアル通信システム1Bは、コントローラ10に対して、複数のデバイス20_1~デバイス20_nがバス通信ライン30Bを通して並列に接続されている。複数のデバイス20_1~デバイス20_nは、センシングデバイスであり、制御対象についてのデータをラッチし、検知し、リリースによりラッチを解除することが可能に構成されている。コントローラ10から全てのデバイスに対するラッチまたはリリース実行の指示があった場合、代表デバイスとして定められたデバイス20_aが、受付をコントローラ10に対して送信するように定められている場合を想定する。
【0086】
まず、コントローラ10は、
図16の(a1)に示すように、デバイス20_mに対するラッチ実行の指示を、バス通信ライン30B経由で送信する。
デバイス20_mは、コントローラ10からのラッチ実行の指示を受信すると、
図16の(b1)に示すように、指示されたラッチの受付をしたことをコントローラ10へ送信し、指示されたラッチを実行して検知したデータを保持する。
【0087】
コントローラ10は、ラッチの指示に応じたラッチ受付を受信した後、デバイス20_mに対して、
図16の(a2)に示すように、リクエストの指示をバス通信ライン30B経由で送信する。
デバイス20_mは、コントローラ10からのリクエストの指示を受信すると、
図16の(b2)に示すように、制御対象から検知したデータをコントローラ10に対して送信する。
【0088】
コントローラ10は、リクエストに応じてデータを取得した後、
図16の(a3)に示すように、デバイス20_mに対するリリース実行の指示を、バス通信ライン30B経由で送信する。
デバイス20_mは、コントローラ10からのリリース実行の指示を受信すると、
図16の(b3)に示すように、指示されたリリースの受付をしたことをコントローラ10へ送信し、指示されたリリースを実行してラッチを解除する。
【0089】
コントローラ10は、
図16の(a4)に示すように、複数のデバイス20_1~デバイス20_nの全てのデバイスに対するラッチ実行の指示を、バス通信ライン30B経由で送信する。
【0090】
代表デバイスとして定められたデバイス20_aは、コントローラ10からの複数のデバイス20_1~デバイス20_nの全てのデバイスに対するラッチ実行の指示を受信すると、
図16の(b4)に示すように、指示されたラッチの受付をしたことをコントローラ10へ送信し、指示されたラッチを実行して検知したデータを保持する。
【0091】
また、以上のデバイス20_aのラッチ実行と並行して、デバイス20_a以外の他のデバイスも、コントローラ10からの全てのデバイスに対するラッチ実行の指示を受信し、指示されたラッチを一斉に実行して検知したデータを保持する。
【0092】
コントローラ10は、全てのデバイスに対するラッチの指示に対して、代表と定められたデバイス20_aからのラッチ受付を受信した後、
図16の(a5)に示すように、デバイス20_aに対して、リクエストの指示をバス通信ライン30B経由で送信する。
デバイス20_aは、コントローラ10からのリクエストの指示を受信すると、
図16の(b5)に示すように、検知したデータをコントローラ10に対して送信する。
【0093】
コントローラ10は、デバイス20_aからデータを受信した後、
図16の(a6)に示すように、デバイス20_bに対して、リクエストの指示をバス通信ライン30B経由で送信する。
デバイス20_bは、コントローラ10からのリクエストの指示を受信すると、
図16の(b6)に示すように、制御対象から検知したデータをコントローラ10に対して送信する。
【0094】
コントローラ10は、同様にしてデバイス20_n-1からデータを受信した後、
図16の(a7)に示すように、デバイス20_nに対して、リクエストの指示をバス通信ライン30B経由で送信する。
デバイス20_nは、コントローラ10からのリクエストの指示を受信すると、
図16の(b7)に示すように、制御対象から検知したデータをコントローラ10に対して送信する。
【0095】
コントローラ10は、以上のようにして複数のデバイス20_1~デバイス20_nの全て対してリクエストを送信し、リクエストに応じてデータを受信した後、
図16の(a8)に示すように、複数のデバイス20_1~デバイス20_nの全てに対するリリース実行の指示を、バス通信ライン30B経由で送信する。
【0096】
代表デバイスとして定められたデバイス20_aは、コントローラ10からの複数のデバイス20_1~デバイス20_nの全てのデバイスに対するリリース実行の指示を受信すると、
図16の(b8)に示すように、指示されたリリースの受付をしたことをコントローラ10へ送信し、指示されたリリースを実行してラッチを解除する。
【0097】
また、以上のデバイス20_aのリリース実行と並行して、デバイス20_a以外の他のデバイスも、コントローラ10からの全てのデバイスに対するリリース実行の指示を受信し、それぞれ指示されたリリースを一斉に実行してラッチを解除する。
【0098】
以上の
図16のシーケンス図を用いた説明では、複数のデバイス20_1~デバイス20_nが存在する場合を具体例にしたが、単一のデバイス20の場合であっても、以上の説明と同様に、ラッチ、データ送信、リリースを実行することが可能である。
【0099】
本実施の形態1によれば、任意のタイミングで、コントローラ10は、ラッチコマンドとリリースコマンドとを通信フォーマット中に含めて複数のデバイス20_1~デバイス20_nに対して送信し、複数のデバイス20_1~デバイス20_nは、ラッチコマンドに応じて検知したデータを保持し、リリースコマンドに応じて検知したデータの保持を解除することができる。
このため、任意のタイミングで、コントローラ10からのコマンドに基づいて、複数のデバイス20_1~デバイス20_nにおいてデータの保持と解除とを行うことが可能になる。
【0100】
以上のように、複数のデバイス20_1~デバイス20_nは、コントローラ10からの指示により一斉にラッチを実行し、その後にコントローラ10からの指示によりデータを送信することで、複数のデバイス20_1~デバイス20_nから送信されたデータは同時性を有する状態になっている。
【0101】
従って、複数のデバイス20_1~デバイス20_nで検知されたそれぞれのデータに同時性を必要とするアプリケーションに対して、本実施の形態1を適用することが可能になる。
【0102】
また、複数のデバイス20_1~デバイス20_nは、コントローラ10からの指示により一斉にラッチを実行しているため、複数のデバイス20_1~デバイス20_nにおいてデータを二度読みして一致を確認するアプリケーションに対して、本実施の形態1を適用することが可能になる。
【0103】
[その他の実施の形態]
以上の実施の形態1のシリアル通信システム1A及び1Bの説明では、通信ライン30Aまたはバス通信ライン30Bにおいて、信号伝送するための2本の対等な信号線を用いたRS485規格の一対のSD+とSD-の差動伝送信号による通信を想定した例として示しているが、本発明はこの内容に限定されるものではない。例えば、本発明の実施の形態1のシリアル通信システム1A及び1BをRS422規格やRS232規格による通信に適用してもよい。また、本発明の実施の形態1のシリアル通信システム1A及び1Bを差動伝送信号によらない通信に適用してもよい。
【0104】
以上の実施の形態1のシリアル通信方法の説明では、通信フォーマットおよび内部のフィールド構成、ビット構成、及びコマンドコードなどの具体例を説明したが、これらの内容に限定されるものではない。
【0105】
以上の実施の形態1のシリアル通信方法の説明では、シリアル通信として調歩同期式の通信形態を想定した例を示しているが、この通信形態に限定されるものではない。
【0106】
以上の実施の形態1のシリアル通信システム1Aにおける
図3と
図9の説明では、デバイスIDフィールドIDFを省略した状態の通信を示しているが、コントロールフィールドCFの直後にデバイスIDフィールドIDFを付加した状態で通信することが可能である。
【符号の説明】
【0107】
1A,1B シリアル通信システム、10 コントローラ、20 デバイス(センシングデバイス)、20_1~20_n 複数のデバイス(複数のセンシングデバイス)、30A 通信ライン、30B バス通信ライン。