ここで、通信速度が低速であり、かつ、通信信頼性が低い通信媒体を使用した場合であっても、リアルタイム性を保障するとともに、システムとして通信信頼性を確保する必要がある。しかしながら、上述の通信管理装置がネットワークを構築するために接続される通信媒体の通信信頼性が、必ずしも確保できていない場合があった。
本発明は、上記の問題を解決するためになされたもので、通信の信頼性を向上させることができる通信装置、通信方法及び通信プログラムを提供することを目的とするものである。
本発明に係る通信装置は、他の通信装置と通信媒体を介してデータを送受信する通信装置であって、送信すべき送信データの送信先と、前記送信データに対する応答の要否とを表すデータ種別情報を含む送信要求データを作成する送信要求データ作成手段と、前記通信媒体の種別を表す通信媒体種別情報を記憶する通信媒体種別情報記憶手段と、前記送信要求データ作成手段によって作成された前記送信要求データに含まれる前記データ種別情報と、前記種別情報記憶手段に記憶されている前記通信媒体種別情報とに基づいて前記送信データを送信するタイミングを調停する通信調停処理手段と、前記通信調停処理手段によって調停されるタイミングに応じて前記送信データを送信するデータ送信手段とを備える。
この構成によれば、送信すべき送信データの送信先と、送信データに対する応答の要否とを表すデータ種別情報を含む送信要求データが作成される。そして、送信要求データに含まれるデータ種別情報と、種別情報記憶手段に記憶されている通信媒体の種別を表す通信媒体種別情報とに基づいて送信データを送信するタイミングが調停され、調停されるタイミングに応じて送信データが送信される。
したがって、送信データの送信先と、送信データに対する応答の要否と、通信媒体の種別とに基づいて送信データを送信するタイミングが調停されるので、ネットワークに接続される複数の通信装置の通信を仮想的に1:1にし、通信媒体上の他のデータに衝突することによって送信データが消失することが少なくなり、通信の信頼性を向上させることができる。
また、上記の通信装置において、前記送信要求データは、送信すべき送信データが、特定の送信先を個別に指定し、送信データの送信先による応答を要求する個別・応答要データ、特定の送信先を個別に指定し、送信データの送信先による応答を要求しない個別・応答不要データ、送信先を特定せずに同報で送信データを送信し、送信データの送信先による応答を要求する同報・応答要データ、又は送信先を特定せずに同報で送信データを送信し、送信データの送信先による応答を要求しない同報・応答不要データであることを示すデータ種別情報を含み、前記通信調停処理手段は、前記送信要求データ作成手段によって作成された前記送信要求データに含まれる前記データ種別情報と、前記通信媒体種別情報記憶手段に記憶されている前記通信媒体種別情報とに基づいて前記送信データを送信するタイミングを調停することが好ましい。
この構成によれば、送信要求データには、送信すべき送信データが、特定の送信先を個別に指定し、送信データの送信先による応答を要求する個別・応答要データ、特定の送信先を個別に指定し、送信データの送信先による応答を要求しない個別・応答不要データ、送信先を特定せずに同報で送信データを送信し、送信データの送信先による応答を要求する同報・応答要データ、又は送信先を特定せずに同報で送信データを送信し、送信データの送信先による応答を要求しない同報・応答不要データであることを示すデータ種別情報が含まれる。そして、送信要求データに含まれるデータ種別情報と、通信媒体種別情報記憶手段に記憶されている通信媒体種別情報とに基づいて送信データを送信するタイミングが調停される。
したがって、データ種別情報が、個別・応答要データ、個別・応答不要データ、同報・応答要データ及び同報・応答不要データのうちのいずれであるかを確認することで、容易にデータの送信先及び応答の要否を特定することができる。
また、上記の通信装置において、前記送信要求データを管理するための通信データテーブルをさらに備え、前記通信データテーブルは、前記送信要求データごとに送信状態を対応付けて記憶しており、前記通信調停処理手段は、前記送信要求データ作成手段によって作成された前記送信要求データに含まれる前記データ種別情報と、前記通信媒体種別情報記憶手段に記憶されている前記通信媒体種別情報と、前記通信データテーブルに記憶されている前記送信状態とに基づいて前記送信データを送信するタイミングを調停することが好ましい。
この構成によれば、送信要求データを管理するための通信データテーブルは、送信要求データごとに送信状態を対応付けて記憶している。そして、送信要求データに含まれるデータ種別情報と、通信媒体種別情報記憶手段に記憶されている通信媒体種別情報と、通信データテーブルに記憶されている送信状態とに基づいて送信データを送信するタイミングが調停される。
したがって、データ種別情報及び通信媒体種別情報だけでなく、送信要求データの送信状態も考慮して送信データを送信するタイミングが調停されるので、さらに通信の信頼性を向上させることができる。
また、上記の通信装置において、前記通信調停処理手段は、前記送信要求データが入力されると、前記通信データテーブルに当該送信要求データに含まれるデータ種別情報を記憶すると共に、送信状態を送信待ち状態に設定し、記憶されたデータ種別情報が個別・応答要データである場合、前記通信データテーブルが記憶する他の前記送信要求データの送信状態を確認し、全ての他の前記送信要求データの送信状態が応答待ち状態でない場合、当該送信要求データを前記データ送信手段へ出力し、前記通信データテーブルに記憶されている当該送信要求データの送信状態を応答待ち状態へ変更することが好ましい。
この構成によれば、送信要求データが入力されると、通信データテーブルに当該送信要求データに含まれるデータ種別情報が記憶されると共に、送信状態が送信待ち状態に設定される。そして、記憶されたデータ種別情報が個別・応答要データである場合、通信データテーブルが記憶する他の送信要求データの送信状態が確認される。ここで、全ての他の送信要求データの送信状態が応答待ち状態でない場合、当該送信要求データがデータ送信手段へ出力され、通信データテーブルに記憶されている当該送信要求データの送信状態が応答待ち状態へ変更される。
したがって、データ種別情報が個別・応答要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でないとき、当該送信要求データが送信されることとなるので、通信媒体上に他の送信データに対する応答データが存在しないことを確認することができ、データの衝突を防止することができる。
また、上記の通信装置において、前記データ送信手段は、送信データを送信する前に前記通信媒体の通信経路上に他のデータが存在しないことを確認し、通信経路上に他のデータが存在しない場合、所定時間後に再度通信経路上に他のデータが存在しないことを確認した後、送信データを送信する機能を有しており、前記通信調停処理手段は、前記送信要求データが入力されると、前記通信データテーブルに当該送信要求データに含まれるデータ種別情報を記憶すると共に、送信状態を送信待ち状態に設定し、記憶されたデータ種別情報が個別・応答要データである場合、前記通信データテーブルが記憶する他の前記送信要求データの送信状態を確認し、全ての他の前記送信要求データの送信状態が応答待ち状態でない場合、又は他の前記送信要求データの送信状態が応答待ち状態のものはあるが、前記応答待ち状態である送信要求データの送信先が、当該送信要求データの送信先と全て異なっている場合、当該送信要求データを前記データ送信手段へ出力し、前記通信データテーブルに記憶されている当該個送信要求データの送信状態を応答待ち状態へ変更することが好ましい。
この構成によれば、データ送信手段は、送信データを送信する前に通信媒体の通信経路上に他のデータが存在しないことを確認し、通信経路上に他のデータが存在しない場合、所定時間後に再度通信経路上に他のデータが存在しないことを確認した後、送信データを送信する機能を有している。この場合、送信要求データが入力されると、通信データテーブルに当該送信要求データに含まれるデータ種別情報が記憶されると共に、送信状態が送信待ち状態に設定される。そして、記憶されたデータ種別情報が個別・応答要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でないとき、又は他の送信要求データの送信状態が応答待ち状態のものはあるが、応答待ち状態である送信要求データの送信先が、当該送信要求データの送信先と全て異なっているとき、当該送信要求データがデータ送信手段へ出力され、通信データテーブルに記憶されている当該個送信要求データの送信状態が応答待ち状態へ変更される。
したがって、データ送信手段がデータの衝突を回避する機能を有しており、データ種別情報が個別・応答要データである場合、送信データの送信先と応答データの送信元とが異なっているときにデータが送信されるので、データの衝突を防止することができる。
また、上記の通信装置において、前記通信調停処理手段は、前記送信要求データが入力されると、前記通信データテーブルに当該送信要求データに含まれるデータ種別情報を記憶すると共に、送信状態を送信待ち状態に設定し、記憶されたデータ種別情報が個別・応答不要データである場合、前記通信データテーブルが記憶する他の前記送信要求データの送信状態を確認し、全ての他の前記送信要求データの送信状態が応答待ち状態でない場合、当該送信要求データを前記データ送信手段へ出力し、前記通信データテーブルに記憶されている当該送信要求データの送信状態を送信済み状態へ変更することが好ましい。
この構成によれば、送信要求データが入力されると、通信データテーブルに当該送信要求データに含まれるデータ種別情報が記憶されると共に、送信状態が送信待ち状態に設定される。そして、記憶されたデータ種別情報が個別・応答不要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でないとき、当該送信要求データがデータ送信手段へ出力され、通信データテーブルに記憶されている当該送信要求データの送信状態が送信済み状態へ変更される。
したがって、データ種別情報が個別・応答不要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でないとき、当該送信要求データが送信されることとなるので、通信媒体上に他の送信データに対する応答データが存在しないことを確認することができ、データの衝突を防止することができる。
また、上記の通信装置において、前記データ送信手段は、送信データを送信する前に前記通信媒体の通信経路上に他のデータが存在しないことを確認し、通信経路上に他のデータが存在しない場合、所定時間後に再度通信経路上に他のデータが存在しないことを確認した後、送信データを送信する機能を有しており、前記通信調停処理手段は、前記送信要求データが入力されると、前記通信データテーブルに当該送信要求データに含まれるデータ種別情報を記憶すると共に、送信状態を送信待ち状態に設定し、記憶されたデータ種別情報が個別・応答不要データである場合、前記通信データテーブルが記憶する他の前記送信要求データの送信状態を確認し、全ての他の前記送信要求データの送信状態が応答待ち状態でない場合、又は他の前記送信要求データの送信状態が応答待ち状態のものはあるが、前記応答待ち状態である送信要求データの送信先が、当該送信要求データの送信先と全て異なっている場合、当該送信要求データを前記データ送信手段へ出力し、前記通信データテーブルに記憶されている当該送信要求データの送信状態を送信済み状態へ変更することが好ましい。
この構成によれば、データ送信手段は、送信データを送信する前に通信媒体の通信経路上に他のデータが存在しないことを確認し、通信経路上に他のデータが存在しない場合、所定時間後に再度通信経路上に他のデータが存在しないことを確認した後、送信データを送信する機能を有している。この場合、送信要求データが入力されると、通信データテーブルに当該送信要求データに含まれるデータ種別情報が記憶されると共に、送信状態が送信待ち状態に設定される。そして、記憶されたデータ種別情報が個別・応答不要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でないとき、又は他の送信要求データの送信状態が応答待ち状態のものはあるが、応答待ち状態である送信要求データの送信先が、当該送信要求データの送信先と全て異なっているとき、当該送信要求データがデータ送信手段へ出力され、通信データテーブルに記憶されている当該送信要求データの送信状態が送信済み状態へ変更される。
したがって、データ送信手段がデータの衝突を回避する機能を有しており、データ種別情報が個別・応答不要データである場合、送信データの送信先と応答データの送信元とが異なるときにデータが送信され、データの衝突を防止することができる。
また、上記の通信装置において、前記通信調停処理手段は、前記送信要求データが入力されると、前記通信データテーブルに当該送信要求データに含まれるデータ種別情報を記憶すると共に、送信状態を送信待ち状態に設定し、記憶されたデータ種別情報が同報・応答要データである場合、前記通信データテーブルが記憶する他の前記送信要求データの送信状態を確認し、全ての他の前記送信要求データの送信状態が応答待ち状態でない場合、当該送信要求データを前記データ送信手段へ出力し、前記通信データテーブルに記憶されている当該送信要求データの送信状態を応答待ち状態へ変更することが好ましい。
この構成によれば、送信要求データが入力されると、通信データテーブルに当該送信要求データに含まれるデータ種別情報が記憶されると共に、送信状態が送信待ち状態に設定される。そして、記憶されたデータ種別情報が同報・応答要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でない場合、当該送信要求データがデータ送信手段へ出力され、通信データテーブルに記憶されている当該送信要求データの送信状態が応答待ち状態へ変更される。
したがって、データ種別情報が同報・応答要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でないとき、当該送信要求データが送信されることとなるので、通信媒体上に他の送信データに対する応答データが存在しないことを確認することができ、データの衝突を防止することができる。
また、上記の通信装置において、前記データ送信手段は、送信データを送信する前に前記通信媒体の通信経路上に他のデータが存在しないことを確認し、通信経路上に他のデータが存在しない場合、所定時間後に再度通信経路上に他のデータが存在しないことを確認した後、送信データを送信する機能を有しており、前記通信調停処理手段は、前記送信要求データが入力されると、前記通信データテーブルに当該送信要求データに含まれるデータ種別情報を記憶すると共に、送信状態を送信待ち状態に設定し、記憶されたデータ種別情報が同報・応答要データである場合、前記通信データテーブルが記憶する他の前記送信要求データの送信状態を確認し、全ての他の前記送信要求データの送信状態が応答待ち状態でない場合、又は他の前記送信要求データの送信状態が応答待ち状態のものはあるが、前記応答待ち状態である送信要求データの種類が全て同報である場合、当該送信要求データを前記データ送信手段へ出力し、前記通信データテーブルに記憶されている当該送信要求データの送信状態を応答待ち状態へ変更することが好ましい。
この構成によれば、データ送信手段は、送信データを送信する前に通信媒体の通信経路上に他のデータが存在しないことを確認し、通信経路上に他のデータが存在しない場合、所定時間後に再度通信経路上に他のデータが存在しないことを確認した後、送信データを送信する機能を有している。この場合、送信要求データが入力されると、通信データテーブルに当該送信要求データに含まれるデータ種別情報が記憶されると共に、送信状態が送信待ち状態に設定される。そして、記憶されたデータ種別情報が同報・応答要データである場合、通信データテーブルが記憶する他の送信要求データの送信状態が確認される。ここで、全ての他の送信要求データの送信状態が応答待ち状態でない場合、又は他の送信要求データの送信状態が応答待ち状態のものはあるが、応答待ち状態である送信要求データの種類が全て同報である場合、当該送信要求データがデータ送信手段へ出力され、通信データテーブルに記憶されている当該送信要求データの送信状態が応答待ち状態へ変更される。
同報送信の場合、不特定の他の通信装置へ送信データを送信しているため、必ずしも応答データが返信されるとは限らず、既に全ての他の通信装置から応答データが返信されている可能性がある。そのため、同報送信の場合、応答データの受信を待たずに送信データを送信したとしても、送信データと応答データとが衝突する可能性は低い。したがって、データ送信手段がデータの衝突を回避する機能を有しており、データ種別情報が同報・応答要データである場合、応答待ち状態である送信要求データの種類が、全て同報であるときにデータが送信され、データの衝突を防止することができる。
また、上記の通信装置において、前記通信調停処理手段は、前記送信要求データが入力されると、前記通信データテーブルに当該送信要求データに含まれるデータ種別情報を記憶すると共に、送信状態を送信待ち状態に設定し、記憶されたデータ種別情報が同報・応答不要データである場合、前記通信データテーブルが記憶する他の前記送信要求データの送信状態を確認し、全ての他の前記送信要求データの送信状態が応答待ち状態でない場合、当該送信要求データを前記データ送信手段へ出力し、前記通信データテーブルに記憶されている当該送信要求データの送信状態を送信済み状態へ変更することが好ましい。
この構成によれば、送信要求データが入力されると、通信データテーブルに当該送信要求データに含まれるデータ種別情報が記憶されると共に、送信状態が送信待ち状態に設定される。そして、記憶されたデータ種別情報が同報・応答不要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でない場合、当該送信要求データがデータ送信手段へ出力され、通信データテーブルに記憶されている当該送信要求データの送信状態が送信済み状態へ変更される。
したがって、データ種別情報が同報・応答不要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でないとき、当該送信要求データが送信されることとなるので、通信媒体上に他の送信データに対する応答データが存在しないことを確認することができ、データの衝突を防止することができる。
また、上記の通信装置において、前記データ送信手段は、送信データを送信する前に前記通信媒体の通信経路上に他のデータが存在しないことを確認し、通信経路上に他のデータが存在しない場合、所定時間後に再度通信経路上に他のデータが存在しないことを確認した後、送信データを送信する機能を有しており、前記通信調停処理手段は、前記送信要求データが入力されると、前記通信データテーブルに当該送信要求データに含まれるデータ種別情報を記憶すると共に、送信状態を送信待ち状態に設定し、記憶されたデータ種別情報が同報・応答不要データである場合、前記通信データテーブルが記憶する他の前記送信要求データの送信状態を確認し、全ての他の前記送信要求データの送信状態が応答待ち状態でない場合、又は他の前記送信要求データの送信状態が応答待ち状態のものはあるが、前記応答待ち状態である送信要求データの種類が全て同報である場合、当該送信要求データを前記データ送信手段へ出力し、前記通信データテーブルに記憶されている当該送信要求データの送信状態を送信済み状態へ変更することが好ましい。
この構成によれば、データ送信手段は、送信データを送信する前に通信媒体の通信経路上に他のデータが存在しないことを確認し、通信経路上に他のデータが存在しない場合、所定時間後に再度通信経路上に他のデータが存在しないことを確認した後、送信データを送信する機能を有している。この場合、送信要求データが入力されると、通信データテーブルに当該送信要求データに含まれるデータ種別情報が記憶されると共に、送信状態が送信待ち状態に設定される。そして、記憶されたデータ種別情報が同報・応答不要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でない場合、又は他の送信要求データの送信状態が応答待ち状態のものはあるが、応答待ち状態である送信要求データの種類が全て同報である場合、当該送信要求データがデータ送信手段へ出力され、通信データテーブルに記憶されている当該送信要求データの送信状態が送信済み状態へ変更される。
同報送信の場合、不特定の他の通信装置へ送信データを送信しているため、必ずしも応答データが返信されるとは限らず、既に全ての他の通信装置から応答データが返信されている可能性がある。そのため、同報送信の場合、応答データの受信を待たずに送信データを送信したとしても、送信データと応答データとが衝突する可能性は低い。したがって、データ送信手段がデータの衝突を回避する機能を有しており、データ種別情報が同報・応答不要データである場合、応答待ち状態である送信要求データの種類が全て同報であるときにデータが送信され、データの衝突を防止することができる。
また、上記の通信装置において、前記通信調停処理手段は、前記送信要求データが入力されると、前記通信データテーブルに当該送信要求データに含まれるデータ種別情報を記憶すると共に、送信状態を送信待ち状態に設定し、記憶されたデータ種別情報が個別・応答要データ又は同報・応答要データである場合、前記データ送信手段によって前記送信要求データが送信された後、送信された送信要求データに対応する送信状態を応答待ち状態に変更し、送信状態が応答待ち状態に変更されてから所定時間経過しても応答がない場合、送信状態をタイムアウト状態に変更することが好ましい。
この構成によれば、送信要求データが入力されると、通信データテーブルに当該送信要求データに含まれるデータ種別情報が記憶されると共に、送信状態が送信待ち状態に設定される。そして、記憶されたデータ種別情報が個別・応答要データ又は同報・応答要データである場合、送信要求データが送信された後、送信された送信要求データに対応する送信状態が応答待ち状態に変更される。送信状態が応答待ち状態に変更されてから所定時間経過しても応答がない場合、送信状態がタイムアウト状態に変更される。
したがって、応答待ち状態に遷移してから所定時間経過しても応答がない場合、応答を待ち続けるのではなく、タイムアウト状態に遷移するので、応答がない場合でも処理を止めることなく続けることができる。
また、上記の通信装置において、前記通信調停処理手段は、送信状態が応答待ち状態からタイムアウト状態に遷移するまでの所定時間を、前記通信媒体種別情報記憶手段に記憶されている通信媒体種別情報に応じて設定することが好ましい。
この構成によれば、送信状態が応答待ち状態からタイムアウト状態に遷移するまでの所定時間が、通信媒体種別情報記憶手段に記憶されている通信媒体種別情報に応じて設定されるので、通信媒体がデータを送信する速度に応じて、応答待ち状態からタイムアウト状態に遷移するまでの所定時間を設定することができる。すなわち、通信媒体の送信速度が速い場合、所定時間を短く設定することで、通信処理速度を向上させることができ、通信媒体の送信速度が遅い場合、所定時間を長く設定することで、通信の信頼性を向上させることができる。
また、上記の通信装置において、前記通信調停処理手段は、送信状態が応答待ち状態からタイムアウト状態に遷移するまでの所定時間を、前記送信要求データのデータ長に応じて設定することが好ましい。
この構成によれば、送信状態が応答待ち状態からタイムアウト状態に遷移するまでの所定時間が、送信要求データのデータ長に応じて設定されるので、通信媒体がデータを送信するのに要する時間に応じて、応答待ち状態からタイムアウト状態に遷移するまでの所定時間を設定することができる。すなわち、送信要求データのデータ長が短い場合、送信に要する時間は短くなるので、所定時間を短く設定することで、通信処理速度を向上させることができ、送信要求データのデータ長が長い場合、送信に要する時間は長くなるので、所定時間を長く設定することで、通信の信頼性を向上させることができる。
また、上記の通信装置において、前記通信調停処理手段は、送信状態が応答待ち状態からタイムアウト状態に遷移するまでの所定時間を、前記送信データに対する応答データのデータ長に応じて設定することが好ましい。
この構成によれば、送信状態が応答待ち状態からタイムアウト状態に遷移するまでの所定時間が、送信データに対する応答データのデータ長に応じて設定されるので、通信媒体が応答データを送信するのに要する時間に応じて、応答待ち状態からタイムアウト状態に遷移するまでの所定時間を設定することができる。すなわち、応答データのデータ長が短い場合、送信に要する時間は短くなるので、所定時間を短く設定することで、通信処理速度を向上させることができ、応答データのデータ長が長い場合、送信に要する時間は長くなるので、所定時間を長く設定することで、通信の信頼性を向上させることができる。
また、上記の通信装置において、前記送信要求データは、それぞれ規格の異なる複数の前記通信媒体の中から、使用する通信媒体を特定するための通信媒体特定情報を含み、前記通信調停処理手段は、前記送信要求データに含まれる前記通信媒体特定情報に基づいて送信データを送信する通信媒体を特定し、前記データ送信手段は、前記通信調停処理手段によって特定された通信媒体を使用して前記送信データを送信することが好ましい。
この構成によれば、送信要求データには、それぞれ規格の異なる複数の通信媒体の中から、使用する通信媒体を特定するための通信媒体特定情報が含まれ、送信要求データに含まれる通信媒体特定情報に基づいて送信データを送信する通信媒体が特定され、特定された通信媒体を使用して送信データが送信される。このように、データを送信する通信媒体を切り替えて使用することにより、それぞれ規格の異なる複数の通信媒体を用いて送信データを送信することができる。
本発明に係る通信方法は、他の通信装置と通信媒体を介してデータを送受信するための通信方法であって、送信すべき送信データの送信先と、前記送信データに対する応答の要否とを表すデータ種別情報を含む送信要求データを作成する送信要求データ作成ステップと、前記通信媒体の種別を表す通信媒体種別情報を記憶する通信媒体種別情報記憶ステップと、前記送信要求データ作成ステップにおいて作成された前記送信要求データに含まれる前記データ種別情報と、前記通信媒体種別情報記憶ステップにおいて記憶された前記通信媒体種別情報とに基づいて前記送信データを送信するタイミングを調停する通信調停処理ステップと、前記通信調停処理ステップにおいて調停されるタイミングに応じて前記送信データを送信するデータ送信処理ステップとを含む。
この構成によれば、送信すべき送信データの送信先と、送信データに対する応答の要否とを表すデータ種別情報を含む送信要求データが作成される。そして、送信要求データに含まれるデータ種別情報と、種別情報記憶手段に記憶されている通信媒体の種別を表す通信媒体種別情報とに基づいて送信データを送信するタイミングが調停され、調停されるタイミングに応じて送信データが送信される。
したがって、送信データの送信先と、送信データに対する応答の要否と、通信媒体の種別とに基づいて送信データを送信するタイミングが調停されるので、ネットワークに接続される複数の通信装置の通信を仮想的に1:1にし、通信媒体上の他のデータに衝突することによって送信データが消失することが少なくなり、通信の信頼性を向上させることができる。
本発明に係る通信プログラムは、他の通信装置と通信媒体を介してデータを送受信するための通信プログラムであって、送信すべき送信データの送信先と、前記送信データに対する応答の要否とを表すデータ種別情報を含む送信要求データを作成する送信要求データ作成手段と、前記通信媒体の種別を表す通信媒体種別情報を記憶する通信媒体種別情報記憶手段と、前記送信要求データ作成手段によって作成された前記送信要求データに含まれる前記データ種別情報と、前記通信媒体種別情報記憶手段に記憶されている前記通信媒体種別情報とに基づいて前記送信データを送信するタイミングを調停する通信調停処理手段と、前記通信調停処理手段によって調停されるタイミングに応じて前記送信データを送信するデータ送信手段としてコンピュータを機能させる。
この構成によれば、送信すべき送信データの送信先と、送信データに対する応答の要否とを表すデータ種別情報を含む送信要求データが作成される。そして、送信要求データに含まれるデータ種別情報と、種別情報記憶手段に記憶されている通信媒体の種別を表す通信媒体種別情報とに基づいて送信データを送信するタイミングが調停され、調停されるタイミングに応じて送信データが送信される。
したがって、送信データの送信先と、送信データに対する応答の要否と、通信媒体の種別とに基づいて送信データを送信するタイミングが調停されるので、ネットワークに接続される複数の通信装置の通信を仮想的に1:1にし、通信媒体上の他のデータに衝突することによって送信データが消失することが少なくなり、通信の信頼性を向上させることができる。
このように、通信装置の内部に通信を調停する機能を持たせ、システム内のトラフィックをコントロールすることによって、システム内での通信をm:nから仮想的に1:1の通信にするような通信方式を用いて、通信の信頼性を確保する。そして、送信要求のあったデータの種類、送信要求のあったデータの状態を通信装置は管理し、データを送信しようとするたびに、送信可能であることを確認する。
本発明によれば、送信データの送信先と、送信データに対する応答の要否と、通信媒体の種別とに基づいて送信データを送信するタイミングが調停されるので、ネットワークに接続される複数の通信装置の通信を仮想的に1:1にし、通信媒体上の他のデータに衝突することによって送信データが消失することが少なくなり、通信の信頼性を向上させることができる。
以下、本発明の一実施の形態による通信装置ついて図面を参照しながら説明する。
図1は、本発明の一実施の形態における通信装置の構成を示すブロック図である。通信装置11は、通信媒体17を介して他の通信装置と通信可能に接続され、通信媒体17に接続するための1つもしくは複数のアプリケーションを記憶している。通信媒体17は、有線又は無線であり、例えば、電灯線、特定小電力無線及びブルートゥース等で構成される。図1に示す通信装置11は、通信調停処理部12、データ受信処理部13、データ送信処理部14、アプリケーション処理部15及び通信媒体処理部16を備えて構成される。
通信媒体処理部16は、通信媒体17へ送信データを送信し、受信データを通信媒体17から受信する。また、通信媒体処理部16は、通信媒体17の種別を表す通信媒体種別情報と、通信媒体処理部16のバージョンを表すバージョン情報とを記憶する種別・バージョン情報記憶部161を備えている。通信媒体処理部16は、後述する通信調停処理部12から通信媒体17の種別と通信媒体処理部16のバージョンの取得を要求する種別・バージョン情報取得要求を受け取ると、通信媒体種別情報及びバージョン情報を通信調停処理部12へ応答する。
アプリケーション処理部15は、送信すべき送信データの送信先と、送信データに対する応答の要否とを表すデータ種別情報を含む送信要求データを作成する。アプリケーション処理部15は、作成した送信要求データを特定のタイミングで後述する通信調停処理部12へ出力する。送信要求データには、特定の送信先を個別に指定し、データの送信先に対して応答を要求する「個別・応答要データ」、特定の送信先を個別に指定し、データの送信先に対して応答を要求しない「個別・応答不要データ」、送信先を特定せず同報でデータを送信し、データの送信先に対して応答を要求する「同報・応答要データ」、又は、送信先を特定せず同報でデータを送信し、データの送信先に対して応答を要求しない「同報・応答不要データ」であることを示すデータ種別情報が含まれる。
データ送信処理部14は、後述する通信調停処理部12から送信要求データが入力され、通信プロトコルに準拠した送信データを組み立てて、通信媒体処理部16へ出力する。データ受信処理部13は、通信媒体処理部16から受信データを受信すると、後述する通信調停処理部12へデータを出力する。
通信調停処理部12は、通信媒体処理部16に対し、通信装置11が接続する通信媒体17の通信媒体種別情報と通信媒体処理部16のバージョン情報とを要求する。通信調停処理部12は、通信媒体処理部16から通信媒体種別情報とバージョン情報とを受け取り、通信媒体17の種別及び通信媒体処理部16のバージョンに適した後述する通信調停方式を選択し、通信の信頼性を確保するために送信要求データをデータ送信処理部14へ出力するタイミングを調停する。する。また、通信調停処理部12は、アプリケーション処理部15から受け取った送信要求データを通信データテーブル101へ展開して記憶している。
なお、本実施形態におけるアプリケーション処理部15が送信要求データ作成手段の一例に相当し、データ送信処理部14及び通信媒体処理部16がデータ送信手段の一例に相当し、通信調停処理部12が通信調停処理手段の一例に相当し、種別・バージョン情報記憶部161が通信媒体種別情報記憶手段の一例に相当する。
図10は、通信データテーブルの一例を示す図である。通信データテーブル101は、番号101a、送信順序101b、送信状態101c及び送信要求データ101dで構成される。番号101aは、通信調停処理部12に入力された順番を表している。送信順序101bは、送信する順番を表している。送信状態101cは、送信要求データの現在の送信状態を表している。送信要求データ101dは、アプリケーション処理部15から入力された送信要求データであり、送信先及びデータ種別情報等を含んでいる。
また、通信装置11によって送信される送信データには、特定の送信先を個別に指定し、データの送信先に対して応答を要求する「個別・応答要データ」、特定の送信先を個別に指定し、データの送信先に対して応答を要求しない「個別・応答不要データ」、送信先を特定せず同報でデータを送信し、データの送信先に対して応答を要求する「同報・応答要データ」、及び送信先を特定せず同報でデータを送信し、データの送信先に対して応答を要求しない「同報・応答不要データ」の4種類がある。送信要求データには、これらのデータを区別するためのデータ種別情報が含まれる。すなわち、データ種別情報は、送信データが「個別・応答要データ」、「個別・応答不要データ」、「同報・応答要データ」及び「同報・応答不要データ」のうちの何れであるかを特定するための情報である。
また、通信調停処理部12は、記憶している送信要求データに「送信待ち状態」、「応答待ち状態」、「タイムアウト状態」、「応答受信済み状態」、及び「送信済み状態」の5つの状態を送信状態として設定する。「送信待ち状態」とは、通信調停処理部12の通信データテーブル101に送信要求データが記憶され、データ送信処理部14に出力するのを待っている状態である。「応答待ち状態」とは、データ送信処理部14に送信要求データを出力し、データ受信処理部13によって受信される応答データが入力されるのを待っている状態である。「タイムアウト状態」とは、データ送信処理部14に送信要求データを出力した後、所定時間経過しても応答データが入力されない状態である。「応答受信済み状態」とは、データ受信処理部13から応答データが入力された状態である。「送信済み状態」とは、送信先からの応答が不要である場合に、データ送信処理部14に送信要求データを出力した状態である。
このように、送信要求データが入力されると、通信データテーブル101に当該送信要求データに含まれるデータ種別情報が記憶されると共に、送信状態が送信待ち状態に設定される。そして、記憶されたデータ種別情報が個別・応答要データ又は同報・応答要データである場合、送信要求データが送信された後、送信された送信要求データに対応する送信状態が応答待ち状態に変更される。送信状態が応答待ち状態に変更されてから所定時間経過しても応答がない場合、送信状態がタイムアウト状態に変更される。
したがって、応答待ち状態に遷移してから所定時間経過しても応答がない場合、応答を待ち続けるのではなく、タイムアウト状態に遷移するので、応答がない場合でも処理を止めることなく続けることができる。
なお、本実施の形態において、送信状態が応答待ち状態からタイムアウト状態に遷移するまでの所定時間は予め決められた時間に設定されているが、本発明は特にこれに限定されず、種別・バージョン情報記憶部161に記憶されている通信媒体17の通信媒体種別情報に応じて設定してもよい。
このように、送信状態が応答待ち状態からタイムアウト状態に遷移するまでの所定時間が、種別・バージョン情報記憶部161に記憶されている通信媒体種別情報に応じて設定されるので、通信媒体17がデータを送信する速度に応じて、応答待ち状態からタイムアウト状態に遷移するまでの所定時間を設定することができる。すなわち、通信媒体17の送信速度が速い場合、所定時間を短く設定することで、通信処理速度を向上させることができ、通信媒体17の送信速度が遅い場合、所定時間を長く設定することで、通信の信頼性を向上させることができる。
また、送信要求データのデータ長に応じて設定してもよい。この場合、送信状態が応答待ち状態からタイムアウト状態に遷移するまでの所定時間が、送信要求データのデータ長に応じて設定されるので、通信媒体17がデータを送信するのに要する時間に応じて、応答待ち状態からタイムアウト状態に遷移するまでの所定時間を設定することができる。すなわち、送信要求データのデータ長が短い場合、送信に要する時間は短くなるので、所定時間を短く設定することで、通信処理速度を向上させることができ、送信要求データのデータ長が長い場合、送信に要する時間は長くなるので、所定時間を長く設定することで、通信の信頼性を向上させることができる。
さらに、送信データに対する応答データのデータ長を予測し、予測した応答データのデータ長に応じて設定してもよい。この場合、送信状態が応答待ち状態からタイムアウト状態に遷移するまでの所定時間が、送信データに対する応答データのデータ長に応じて設定されるので、通信媒体が応答データを送信するのに要する時間に応じて、応答待ち状態からタイムアウト状態に遷移するまでの所定時間を設定することができる。すなわち、応答データのデータ長が短い場合、送信に要する時間は短くなるので、所定時間を短く設定することで、通信処理速度を向上させることができ、応答データのデータ長が長い場合、送信に要する時間は長くなるので、所定時間を長く設定することで、通信の信頼性を向上させることができる。
次に、通信調停方式について説明する。本実施の形態では、通信媒体処理部16が、通信媒体17上でのデータの衝突検知及び衝突回避を行う機能を有している場合、第1の通信調停方式が選択され、このような機能を有していない場合、第2の通信調停方式が選択される。例えば、第1の通信調停方式における通信媒体処理部16は、データを送信する前に通信媒体17の通信経路上に他のデータが存在しないことを確認し、通信経路上に他のデータが存在しない場合、ランダム時間又は機器固有の一定時間経過後に再度通信経路上に他のデータが存在しないことを確認した後、データを送信する。通信媒体処理部16がこのような機能を有している場合、データが衝突することなく送信先へ送信されるので、通信信頼性が高いといえる。一方、第2の通信方式における通信媒体処理部16は、上述のような衝突検知及び衝突回避を行う機能を有していないため、データが衝突する可能性があり、通信信頼性が低いといえる。
なお、通信経路上にデータが存在しないことを確認した後、データを送信してもよいが、通信経路上にデータが存在している場合、複数の通信装置がデータの送信待ち状態になっている可能性がある。データが通信経路上から消滅した瞬間にデータを送信した場合、複数の通信装置が同時にデータを送信してしまい、データが衝突して壊れる虞がある。そこで、本実施の形態では、データを送信する前に通信媒体17の通信経路上に他のデータが存在しないことを確認し、通信経路上に他のデータが存在しない場合、ランダム時間又は機器固有の一定時間経過後に再度通信経路上に他のデータが存在しないことを確認した後、データを送信する。これにより、複数の通信装置が同時にデータを送信することを防止することができ、データの破壊を防止することができる。
通信調停処理部12は、通信媒体種別情報及びバージョン情報と通信調停方式とを対応付けて予め記憶している。すなわち、通信媒体17の種別と通信媒体処理部16のバージョンとを知ることができれば、当該通信媒体17及び通信媒体処理部16が上述の衝突検知及び衝突回避機能を有しているか否かがわかる。通信調停処理部12は、通信媒体処理部16から取得した通信媒体17の種別と通信媒体処理部16のバージョン情報とに対応する通信調停方式を切り替える。すなわち、通信媒体17上でデータの衝突検知や衝突回避を行う機能を有しており、通信の信頼性が高い通信媒体処理部16及び通信媒体17である場合、通信調停処理部12は、後述する図3、図5、図7、図9に示す通信調停処理を実行する。また、通信媒体17上で、データの衝突検知もしくは衝突回避をすることができないような通信の信頼性が低い通信媒体処理部16及び通信媒体17である場合、通信調停処理部12は、後述する図2、図4、図6、図8に示す通信調停処理を実行する。
図2は、通信信頼性が低い通信媒体17及び通信媒体処理部16を使用しており、送信予定の送信データのデータ種別が「個別・応答要データ」である場合の通信調停処理部12で実行する通信調停処理の一例を示すフローチャートである。
まず、通信調停処理部12は、通信媒体処理部16に通信媒体種別情報とバージョン情報とを取得するための種別・バージョン情報要求を出力する(ステップS201)。通信媒体処理部16は、種別・バージョン情報要求が入力されると、種別・バージョン情報記憶部161に記憶されている通信媒体種別情報及びバージョン情報を読み出し、通信調停処理部12へ出力する。次に、通信調停処理部12は、通信媒体処理部16から出力された通信媒体種別情報とバージョン情報とを取得する(ステップS202)。
次に、通信調停処理部12は、通信媒体処理部16から取得した通信媒体種別情報及びバージョン情報に基づいて通信調停方式を特定する(ステップS203)。すなわち、通信調停処理部12は、通信媒体種別情報及びバージョン情報に対応する通信調停方式を選択する。なお、図2では、通信媒体処理部16がデータの衝突検知及び衝突回避を行う機能を有しておらず、通信信頼性が低い第2の通信調停方式が選択されたとして説明する。
また、図2におけるステップS201〜S203までの処理は、通信装置11の起動時に行えばよい。そして、起動時にステップS201〜S203までの処理が1回だけ行われ、その後、送信要求データが受信される度にステップS204以降の処理が行われる。
次に、通信調停処理部12は、アプリケーション処理部15によって作成された送信要求データを受信する(ステップS204)。次に、通信調停処理部12は、アプリケーション処理部15から受信した送信要求データを通信データテーブル101に記憶する(ステップS205)。次に、通信調停処理部12は、通信データテーブル101に記憶した送信要求データに対応する送信状態を「送信待ち状態」に設定する(ステップS206)。
次に、通信調停処理部12は、通信データテーブル101に記憶した送信要求データに含まれるデータ種別情報から送信データの種別を判定する(ステップS207)。なお、図2に示すステップS207では、通信調停処理部12によって、送信データのデータ種別が「個別・応答要データ」であると判定されたとする。
次に、通信調停処理部12は、通信データテーブル101に記憶している他の送信要求データの送信状態をチェックする(S208)。その時、他の送信要求データの送信状態が全て「応答待ち」以外の状態である場合、通信調停処理部12は、送信要求データをデータ送信処理部14へ出力する(ステップS209)。次に、通信調停処理部12は、通信データテーブル101に記憶されている送信要求データの送信状態を「応答待ち」の状態へ変更する(S210)。
一方、他の送信要求データの送信状態のうち一つでも「応答待ち」の状態がある場合、通信調停処理部12は、所定時間経過したか否かを判断する(ステップS211)。ここで、所定時間経過したと判断された場合(ステップS211でYES)、通信調停処理を終了し、所定時間経過していないと判断された場合(ステップS211でNO)、ステップS208の処理に戻り、再度他の送信要求データの送信状態をチェックする。
このように、送信すべき送信データの送信先と、送信データに対する応答の要否とを表すデータ種別情報を含む送信要求データが作成される。そして、送信要求データに含まれるデータ種別情報と、種別・バージョン情報記憶部161に記憶されている通信媒体17の種別を表す通信媒体種別情報とに基づいて送信データを送信するタイミングが調停され、調停されるタイミングに応じて送信データが送信される。
したがって、送信データの送信先と、送信データに対する応答の要否と、通信媒体17の種別とに基づいて送信データを送信するタイミングが調停されるので、ネットワークに接続される複数の通信装置11の通信を仮想的に1:1にし、通信媒体17上の他のデータに衝突することによって送信データが消失することが少なくなり、通信の信頼性を向上させることができる。
また、データ種別情報が、個別・応答要データ、個別・応答不要データ、同報・応答要データ及び同報・応答不要データのうちのいずれであるかを確認することで、容易にデータの送信先及び応答の要否を特定することができる。
また、送信要求データを管理するための通信データテーブル101は、送信要求データごとに送信状態を対応付けて記憶している。そして、送信要求データに含まれるデータ種別情報と、種別・バージョン情報記憶部161に記憶されている通信媒体種別情報と、通信データテーブル101に記憶されている送信状態とに基づいて送信データを送信するタイミングが調停される。したがって、データ種別情報及び通信媒体種別情報だけでなく、送信要求データの送信状態も考慮して送信データを送信するタイミングが調停されるので、さらに通信の信頼性を向上させることができる。
さらに、送信要求データが入力されると、通信データテーブル101に当該送信要求データに含まれるデータ種別情報が記憶されると共に、送信状態が送信待ち状態に設定される。そして、記憶されたデータ種別情報が個別・応答要データである場合、通信データテーブル101が記憶する他の送信要求データの送信状態が確認される。ここで、全ての他の送信要求データの送信状態が応答待ち状態でない場合、当該送信要求データがデータ送信処理部14へ出力され、通信データテーブル101に記憶されている当該送信要求データの送信状態が応答待ち状態へ変更される。
したがって、データ種別情報が個別・応答要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でないとき、当該送信要求データが送信されることとなるので、通信媒体17上に他の送信データに対する応答データが存在しないことを確認することができ、データの衝突を防止することができる。
図3は、通信信頼性が高い通信媒体17及び通信媒体処理部16を使用しており、送信予定の送信データのデータ種別が「個別・応答要データ」である場合の通信調停処理部12で実行する通信調停処理の一例を示すフローチャートである。なお、ステップS301〜S306までの処理は、図2のステップS201〜S206までの処理と同じであるので説明を省略する。また、図3のステップS303では、通信媒体処理部16がデータの衝突検知及び衝突回避を行う機能を有しており、通信信頼性が高い第1の通信調停方式が選択されたとして説明する。さらに、図3におけるステップS301〜S303までの処理は、通信装置11の起動時に行えばよい。そして、起動時にステップS301〜S303までの処理が1回だけ行われ、その後、送信要求データが受信される度にステップS304以降の処理が行われる。
通信調停処理部12は、通信データテーブル101に記憶した送信要求データに含まれるデータ種別情報から送信データの種別を判定する(ステップS307)。なお、図3に示すステップS307では、通信調停処理部12によって、送信データのデータ種別が「個別・応答要データ」であると判定されたとする。
次に、通信調停処理部12は、通信データテーブル101に記憶している他の送信要求データの送信状態をチェックする(S308)。その時、他の送信要求データの送信状態が全て「応答待ち」以外の状態である場合、通信調停処理部12は、送信要求データをデータ送信処理部14へ出力する(ステップS309)。次に、通信調停処理部12は、通信データテーブル101に記憶されている送信要求データの送信状態を「応答待ち」の状態へ変更する(S310)。
一方、他の送信要求データの送信状態のうち一つでも「応答待ち」の状態がある場合、通信調停処理部12は、「応答待ち」状態の送信要求データの送信先を確認する(ステップS311)。その時、送信予定の送信要求データの送信先と、「応答待ち」状態である全ての送信要求データの送信先とが異なる場合、ステップS309の処理に移行する。そして、通信調停処理部12は、送信要求データをデータ送信処理部14へ出力し、通信データテーブル101に記憶されている送信要求データの送信状態を「応答待ち」の状態へ変更する。
一方、「応答待ち」状態である全ての送信要求データの送信先のうち、送信予定の送信要求データの送信先と一つでも同じものがある場合、通信調停処理部12は、所定時間経過したか否かを判断する(ステップS312)。ここで、所定時間経過したと判断された場合(ステップS312でYES)、通信調停処理を終了し、所定時間経過していないと判断された場合(ステップS312でNO)、ステップS308の処理に戻り、再度他の送信要求データの送信状態をチェックする。
このように、通信信頼性に応じて、図2、図3の処理を自動的に切り替えているため、システム全体において通信信頼性を確保できる範囲で最も速く通信処理を行うことができるという効果がある。
また、通信媒体処理部16は、送信データを送信する前に通信媒体17の通信経路上に他のデータが存在しないことを確認し、通信経路上に他のデータが存在しない場合、所定時間後に再度通信経路上に他のデータが存在しないことを確認した後、送信データを送信する機能を有している。この場合、送信要求データが入力されると、通信データテーブル101に当該送信要求データに含まれるデータ種別情報が記憶されると共に、送信状態が送信待ち状態に設定される。そして、記憶されたデータ種別情報が個別・応答要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でないとき、又は他の送信要求データの送信状態が応答待ち状態のものはあるが、応答待ち状態である送信要求データの送信先が、当該送信要求データの送信先と全て異なっているとき、当該送信要求データがデータ送信処理部14へ出力され、通信データテーブル101に記憶されている当該個送信要求データの送信状態が応答待ち状態へ変更される。
したがって、通信媒体17がデータの衝突を回避する機能を有しており、データ種別情報が個別・応答要データである場合、送信データの送信先と応答データの送信元とが異なっているときにデータが送信されるので、データの衝突を防止することができる。
図4は、通信信頼性が低い通信媒体17及び通信媒体処理部16を使用しており、送信予定の送信データのデータ種別が「個別・応答不要データ」である場合の通信調停処理部12で実行する通信調停処理の一例を示すフローチャートである。なお、ステップS401〜S406までの処理は、図2のステップS201〜S206までの処理と同じであるので説明を省略する。また、図4のステップS403では、通信媒体処理部16がデータの衝突検知及び衝突回避を行う機能を有しておらず、通信信頼性が低い第2の通信調停方式が選択されたとして説明する。さらに、図4におけるステップS401〜S403までの処理は、通信装置11の起動時に行えばよい。そして、起動時にステップS401〜S403までの処理が1回だけ行われ、その後、送信要求データが受信される度にステップS404以降の処理が行われる。
通信調停処理部12は、通信データテーブル101に記憶した送信要求データに含まれるデータ種別情報から送信データの種別を判定する(ステップS407)。なお、図4に示すステップS407では、通信調停処理部12によって、送信データのデータ種別が「個別・応答不要データ」であると判定されたとする。
次に、通信調停処理部12は、通信データテーブル101に記憶している他の送信要求データの送信状態をチェックする(S408)。その時、他の送信要求データの送信状態が全て「応答待ち」以外の状態である場合、通信調停処理部12は、送信要求データをデータ送信処理部14へ出力する(ステップS409)。次に、通信調停処理部12は、通信データテーブル101に記憶されている送信要求データの送信状態を「送信済み」の状態へ変更する(S410)。
一方、他の送信要求データの送信状態のうち一つでも「応答待ち」の状態がある場合、通信調停処理部12は、所定時間経過したか否かを判断する(ステップS411)。ここで、所定時間経過したと判断された場合(ステップS411でYES)、通信調停処理を終了し、所定時間経過していないと判断された場合(ステップS411でNO)、ステップS408の処理に戻り、再度他の送信要求データの送信状態をチェックする。
このように、送信要求データが入力されると、通信データテーブル101に当該送信要求データに含まれるデータ種別情報が記憶されると共に、送信状態が送信待ち状態に設定される。そして、記憶されたデータ種別情報が個別・応答不要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でないとき、当該送信要求データがデータ送信処理部14へ出力され、通信データテーブル101に記憶されている当該送信要求データの送信状態が送信済み状態へ変更される。
したがって、データ種別情報が個別・応答不要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でないとき、当該送信要求データが送信されることとなるので、通信媒体17上に他の送信データに対する応答データが存在しないことを確認することができ、データの衝突を防止することができる。
図5は、通信信頼性が高い通信媒体17及び通信媒体処理部16を使用しており、送信予定の送信データのデータ種別が「個別・応答不要データ」である場合の通信調停処理部12で実行する通信調停処理の一例を示すフローチャートである。なお、ステップS501〜S506までの処理は、図2のステップS201〜S206までの処理と同じであるので説明を省略する。また、図5のステップS503では、通信媒体処理部16がデータの衝突検知及び衝突回避を行う機能を有しており、通信信頼性が高い第1の通信調停方式が選択されたとして説明する。さらに、図5におけるステップS501〜S503までの処理は、通信装置11の起動時に行えばよい。そして、起動時にステップS501〜S503までの処理が1回だけ行われ、その後、送信要求データが受信される度にステップS504以降の処理が行われる。
通信調停処理部12は、通信データテーブル101に記憶した送信要求データに含まれるデータ種別情報から送信データの種別を判定する(ステップS507)。なお、図5に示すステップS507では、通信調停処理部12によって、送信データのデータ種別が「個別・応答不要データ」であると判定されたとする。
次に、通信調停処理部12は、通信データテーブル101に記憶している他の送信要求データの送信状態をチェックする(S508)。その時、他の送信要求データの送信状態が全て「応答待ち」以外の状態である場合、通信調停処理部12は、送信要求データをデータ送信処理部14へ出力する(ステップS509)。次に、通信調停処理部12は、通信データテーブル101に記憶されている送信要求データの送信状態を「送信済み」の状態へ変更する(S510)。
一方、他の送信要求データの送信状態のうち一つでも「応答待ち」の状態がある場合、通信調停処理部12は、「応答待ち」状態の送信要求データの送信先を確認する(ステップS511)。その時、送信予定の送信要求データの送信先と、「応答待ち」状態である全ての送信要求データの送信先とが異なる場合、ステップS509の処理に移行する。そして、通信調停処理部12は、送信要求データをデータ送信処理部14へ出力し、通信データテーブル101に記憶されている送信要求データの送信状態を「送信済み」の状態へ変更する。
一方、「応答待ち」状態である全ての送信要求データの送信先のうち、送信予定の送信要求データの送信先と一つでも同じものがある場合、通信調停処理部12は、所定時間経過したか否かを判断する(ステップS512)。ここで、所定時間経過したと判断された場合(ステップS512でYES)、通信調停処理を終了し、所定時間経過していないと判断された場合(ステップS512でNO)、ステップS508の処理に戻り、再度他の送信要求データの送信状態をチェックする。
このように、通信信頼性に応じて、図4、図5の処理を自動的に切り替えているため、システム全体において通信信頼性を確保できる範囲で最も速く通信処理を行うことができるという効果がある。
また、通信媒体処理部16は、送信データを送信する前に通信媒体17の通信経路上に他のデータが存在しないことを確認し、通信経路上に他のデータが存在しない場合、所定時間後に再度通信経路上に他のデータが存在しないことを確認した後、送信データを送信する機能を有している。この場合、送信要求データが入力されると、通信データテーブル101に当該送信要求データに含まれるデータ種別情報が記憶されると共に、送信状態が送信待ち状態に設定される。そして、記憶されたデータ種別情報が個別・応答不要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でないとき、又は他の送信要求データの送信状態が応答待ち状態のものはあるが、応答待ち状態である送信要求データの送信先が、当該送信要求データの送信先と全て異なっているとき、当該送信要求データがデータ送信処理部14へ出力され、通信データテーブル101に記憶されている当該送信要求データの送信状態が送信済み状態へ変更される。
したがって、通信媒体がデータの衝突を回避する機能を有しており、データ種別情報が個別・応答不要データである場合、送信データの送信先と応答データの送信元とが異なるときにデータが送信され、データの衝突を防止することができる。
図6は、通信信頼性が低い通信媒体17及び通信媒体処理部16を使用しており、送信予定の送信データのデータ種別が「同報・応答要データ」である場合の通信調停処理部12で実行する通信調停処理の一例を示すフローチャートである。なお、ステップS601〜S606までの処理は、図2のステップS201〜S206までの処理と同じであるので説明を省略する。また、図6のステップS603では、通信媒体処理部16がデータの衝突検知及び衝突回避を行う機能を有しておらず、通信信頼性が低い第2の通信調停方式が選択されたとして説明する。さらに、図6におけるステップS601〜S603までの処理は、通信装置11の起動時に行えばよい。そして、起動時にステップS601〜S603までの処理が1回だけ行われ、その後、送信要求データが受信される度にステップS604以降の処理が行われる。
通信調停処理部12は、通信データテーブル101に記憶した送信要求データに含まれるデータ種別情報から送信データの種別を判定する(ステップS607)。なお、図6に示すステップS607では、通信調停処理部12によって、送信データのデータ種別が「同報・応答要データ」であると判定されたとする。
次に、通信調停処理部12は、通信データテーブル101に記憶している他の送信要求データの送信状態をチェックする(S608)。その時、他の送信要求データの送信状態が全て「応答待ち」以外の状態である場合、通信調停処理部12は、送信要求データをデータ送信処理部14へ出力する(ステップS609)。次に、通信調停処理部12は、通信データテーブル101に記憶されている送信要求データの送信状態を「応答待ち」の状態へ変更する(S610)。
一方、他の送信要求データの送信状態のうち一つでも「応答待ち」の状態がある場合、通信調停処理部12は、所定時間経過したか否かを判断する(ステップS611)。ここで、所定時間経過したと判断された場合(ステップS611でYES)、通信調停処理を終了し、所定時間経過していないと判断された場合(ステップS611でNO)、ステップS608の処理に戻り、再度他の送信要求データの送信状態をチェックする。
このように、送信要求データが入力されると、通信データテーブル101に当該送信要求データに含まれるデータ種別情報が記憶されると共に、送信状態が送信待ち状態に設定される。そして、記憶されたデータ種別情報が同報・応答要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でない場合、当該送信要求データがデータ送信処理部14へ出力され、通信データテーブル101に記憶されている当該送信要求データの送信状態が応答待ち状態へ変更される。
したがって、データ種別情報が同報・応答要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でないとき、当該送信要求データが送信されることとなるので、通信媒体上に他の送信データに対する応答データが存在しないことを確認することができ、データの衝突を防止することができる。
図7は、通信信頼性が高い通信媒体17及び通信媒体処理部16を使用しており、送信予定の送信データのデータ種別が「同報・応答要データ」である場合の通信調停処理部12で実行する通信調停処理の一例を示すフローチャートである。なお、ステップS701〜S706までの処理は、図2のステップS201〜S206までの処理と同じであるので説明を省略する。また、図7のステップS703では、通信媒体処理部16がデータの衝突検知及び衝突回避を行う機能を有しており、通信信頼性が高い第1の通信調停方式が選択されたとして説明する。さらに、図7におけるステップS701〜S703までの処理は、通信装置11の起動時に行えばよい。そして、起動時にステップS701〜S703までの処理が1回だけ行われ、その後、送信要求データが受信される度にステップS704以降の処理が行われる。
通信調停処理部12は、通信データテーブル101に記憶した送信要求データに含まれるデータ種別情報から送信データの種別を判定する(ステップS707)。なお、図7に示すステップS707では、通信調停処理部12によって、送信データのデータ種別が「同報・応答要データ」であると判定されたとする。
次に、通信調停処理部12は、通信データテーブル101に記憶している他の送信要求データの送信状態をチェックする(S708)。その時、他の送信要求データの送信状態が全て「応答待ち」以外の状態である場合、通信調停処理部12は、送信要求データをデータ送信処理部14へ出力する(ステップS709)。次に、通信調停処理部12は、通信データテーブル101に記憶されている送信要求データの送信状態を「応答待ち」の状態へ変更する(S710)。
一方、他の送信要求データの送信状態のうち一つでも「応答待ち」の状態がある場合、通信調停処理部12は、「応答待ち」状態の送信要求データのデータ種別を確認する(ステップS711)。その時、「応答待ち」状態である全ての送信要求データのデータ種別が同報データ(同報・応答要データ)である場合、ステップS709の処理に移行する。そして、通信調停処理部12は、送信要求データをデータ送信処理部14へ出力し、通信データテーブル101に記憶されている送信要求データの送信状態を「応答待ち」の状態へ変更する。
一方、「応答待ち」状態である送信要求データのデータ種別のうち、一つでも個別データ(個別・応答要データ)がある場合、通信調停処理部12は、所定時間経過したか否かを判断する(ステップS712)。ここで、所定時間経過したと判断された場合(ステップS712でYES)、通信調停処理を終了し、所定時間経過していないと判断された場合(ステップS712でNO)、ステップS708の処理に戻り、再度他の送信要求データの送信状態をチェックする。
このように、通信媒体処理部16は、送信データを送信する前に通信媒体17の通信経路上に他のデータが存在しないことを確認し、通信経路上に他のデータが存在しない場合、所定時間後に再度通信経路上に他のデータが存在しないことを確認した後、送信データを送信する機能を有している。この場合、送信要求データが入力されると、通信データテーブル101に当該送信要求データに含まれるデータ種別情報が記憶されると共に、送信状態が送信待ち状態に設定される。そして、記憶されたデータ種別情報が同報・応答要データである場合、通信データテーブルが記憶する他の送信要求データの送信状態が確認される。ここで、全ての他の送信要求データの送信状態が応答待ち状態でない場合、又は他の送信要求データの送信状態が応答待ち状態のものはあるが、応答待ち状態である送信要求データの種類が全て同報である場合、当該送信要求データがデータ送信処理部14へ出力され、通信データテーブル101に記憶されている当該送信要求データの送信状態が応答待ち状態へ変更される。
同報送信の場合、不特定の他の通信装置へ送信データを送信しているため、必ずしも応答データが返信されるとは限らず、既に全ての他の通信装置から応答データが返信されている可能性がある。そのため、同報送信の場合、応答データの受信を待たずに送信データを送信したとしても、送信データと応答データとが衝突する可能性は低い。したがって、通信媒体17がデータの衝突を回避する機能を有しており、データ種別情報が同報・応答要データである場合、応答待ち状態である送信要求データの種類が全て同報であるときにデータが送信され、データの衝突を防止することができる。
図8は、通信信頼性が低い通信媒体17及び通信媒体処理部16を使用しており、送信予定の送信データのデータ種別が「同報・応答不要データ」である場合の通信調停処理部12で実行する通信調停処理の一例を示すフローチャートである。なお、ステップS801〜S806までの処理は、図2のステップS201〜S206までの処理と同じであるので説明を省略する。また、図8のステップS803では、通信媒体処理部16がデータの衝突検知及び衝突回避を行う機能を有しておらず、通信信頼性が低い第2の通信調停方式が選択されたとして説明する。さらに、図8におけるステップS801〜S803までの処理は、通信装置11の起動時に行えばよい。そして、起動時にステップS801〜S803までの処理が1回だけ行われ、その後、送信要求データが受信される度にステップS804以降の処理が行われる。
通信調停処理部12は、通信データテーブル101に記憶した送信要求データに含まれるデータ種別情報から送信データの種別を判定する(ステップS807)。なお、図8に示すステップS807では、通信調停処理部12によって、送信データのデータ種別が「同報・応答不要データ」であると判定されたとする。
次に、通信調停処理部12は、通信データテーブル101に記憶している他の送信要求データの送信状態をチェックする(S808)。その時、他の送信要求データの送信状態が全て「応答待ち」以外の状態である場合、通信調停処理部12は、送信要求データをデータ送信処理部14へ出力する(ステップS809)。次に、通信調停処理部12は、通信データテーブル101に記憶されている送信要求データの送信状態を「送信済み」の状態へ変更する(S810)。
一方、他の送信要求データの送信状態のうち一つでも「応答待ち」の状態がある場合、通信調停処理部12は、所定時間経過したか否かを判断する(ステップS811)。ここで、所定時間経過したと判断された場合(ステップS811でYES)、通信調停処理を終了し、所定時間経過していないと判断された場合(ステップS811でNO)、ステップS808の処理に戻り、再度他の送信要求データの送信状態をチェックする。
このように、送信要求データが入力されると、通信データテーブル101に当該送信要求データに含まれるデータ種別情報が記憶されると共に、送信状態が送信待ち状態に設定される。そして、記憶されたデータ種別情報が同報・応答不要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でない場合、当該送信要求データがデータ送信処理部14へ出力され、通信データテーブル101に記憶されている当該送信要求データの送信状態が送信済み状態へ変更される。
したがって、データ種別情報が同報・応答不要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でないとき、当該送信要求データが送信されることとなるので、通信媒体上に他の送信データに対する応答データが存在しないことを確認することができ、データの衝突を防止することができる。
図9は、通信信頼性が高い通信媒体17及び通信媒体処理部16を使用しており、送信予定の送信データのデータ種別が「同報・応答不要データ」である場合の通信調停処理部12で実行する通信調停処理の一例を示すフローチャートである。なお、ステップS901〜S906までの処理は、図2のステップS201〜S206までの処理と同じであるので説明を省略する。また、図9のステップS903では、通信媒体処理部16がデータの衝突検知及び衝突回避を行う機能を有しており、通信信頼性が高い第1の通信調停方式が選択されたとして説明する。さらに、図9におけるステップS901〜S903までの処理は、通信装置11の起動時に行えばよい。そして、起動時にステップS901〜S903までの処理が1回だけ行われ、その後、送信要求データが受信される度にステップS904以降の処理が行われる。
通信調停処理部12は、通信データテーブル101に記憶した送信要求データに含まれるデータ種別情報から送信データの種別を判定する(ステップS907)。なお、図9に示すステップS907では、通信調停処理部12によって、送信データのデータ種別が「同報・応答不要データ」であると判定されたとする。
次に、通信調停処理部12は、通信データテーブル101に記憶している他の送信要求データの送信状態をチェックする(S908)。その時、他の送信要求データの送信状態が全て「応答待ち」以外の状態である場合、通信調停処理部12は、送信要求データをデータ送信処理部14へ出力する(ステップS909)。次に、通信調停処理部12は、通信データテーブル101に記憶されている送信要求データの送信状態を「送信済み」の状態へ変更する(S910)。
一方、他の送信要求データの送信状態のうち一つでも「応答待ち」の状態がある場合、通信調停処理部12は、「応答待ち」状態の送信要求データのデータ種別を確認する(ステップS911)。その時、「応答待ち」状態である全ての送信要求データのデータ種別が同報データ(同報・応答要データ)である場合、ステップS909の処理に移行する。そして、通信調停処理部12は、送信要求データをデータ送信処理部14へ出力し、通信データテーブル101に記憶されている送信要求データの送信状態を「送信済み」の状態へ変更する。
一方、「応答待ち」状態である送信要求データのデータ種別のうち、一つでも個別データ(個別・応答要データ)がある場合、通信調停処理部12は、所定時間経過したか否かを判断する(ステップS912)。ここで、所定時間経過したと判断された場合(ステップS912でYES)、通信調停処理を終了し、所定時間経過していないと判断された場合(ステップS912でNO)、ステップS908の処理に戻り、再度他の送信要求データの送信状態をチェックする。
このように、通信媒体処理部16は、送信データを送信する前に通信媒体17の通信経路上に他のデータが存在しないことを確認し、通信経路上に他のデータが存在しない場合、所定時間後に再度通信経路上に他のデータが存在しないことを確認した後、送信データを送信する機能を有している。この場合、送信要求データが入力されると、通信データテーブル101に当該送信要求データに含まれるデータ種別情報が記憶されると共に、送信状態が送信待ち状態に設定される。そして、記憶されたデータ種別情報が同報・応答不要データである場合、全ての他の送信要求データの送信状態が応答待ち状態でない場合、又は他の送信要求データの送信状態が応答待ち状態のものはあるが、応答待ち状態である送信要求データの種類が全て同報である場合、当該送信要求データがデータ送信処理部14へ出力され、通信データテーブル101に記憶されている当該送信要求データの送信状態が送信済み状態へ変更される。
同報送信の場合、不特定の他の通信装置へ送信データを送信しているため、必ずしも応答データが返信されるとは限らず、既に全ての他の通信装置から応答データが返信されている可能性がある。そのため、同報送信の場合、応答データの受信を待たずに送信データを送信したとしても、送信データと応答データとが衝突する可能性は低い。したがって、通信媒体17がデータの衝突を回避する機能を有しており、データ種別情報が同報・応答不要データである場合、応答待ち状態である送信要求データの種類が全て同報であるときにデータが送信され、データの衝突を防止することができる。
なお、本実施の形態における通信装置11は、1の通信媒体17と接続されているが、本発明は特にこれに限定されず、それぞれ規格の異なる複数の通信媒体と接続してもよい。図11は、通信装置と複数の通信媒体とを接続する場合における通信装置の構成を示すブロック図である。
図11に示す通信装置11は、通信調停処理部12、データ受信処理部13、データ送信処理部14、アプリケーション処理部15及び複数の通信媒体処理部16a,16bを備えて構成される。通信装置11は、それぞれ規格の異なる複数の通信媒体17a,17bを介して他の通信装置と通信可能に接続されている。図11において、図1と同じ構成については説明を省略する。通信装置11は、接続する通信媒体の数に応じて通信媒体処理部を備える。図11では、2つの通信媒体17a,17bに接続するため、それぞれの通信媒体17a,17bに応じた2つの通信媒体処理部16a,16bを備える。通信媒体処理部16a,16bは、図1に示す通信媒体処理部16と同じ構成であるので説明を省略する。
通信調停処理部12は、送信するデータを伝送する通信媒体に応じて通信媒体処理部16a,16bを切り替える。例えば、アプリケーション処理部15は、それぞれ規格の異なる複数の通信媒体の中から、使用する通信媒体を特定するための通信媒体特定情報を含む送信要求データを作成し、作成した送信要求データを通信調停処理部12へ出力する。通信調停処理部12は、送信要求データに含まれる通信媒体特定情報に基づいて、使用する通信媒体処理部を特定する。データ送信処理部14は、通信調停処理部12によって特定された通信媒体処理部に送信データを出力する。このように、データを送信する通信媒体を切り替えて使用することにより、規格の異なる複数の通信媒体を用いてデータを送信することができる。
なお、本実施形態では、アプリケーション処理部15がそれぞれ規格の異なる複数の通信媒体の中から、使用する通信媒体を特定するための通信媒体特定情報を含む送信要求データを作成するとしているが、本発明は特にこれに限定されない。例えば、アプリケーション処理部15は送信データの送信先とデータ種別情報とを含む送信要求データを作成し、データ送信処理部14がそれぞれ規格の異なる複数の通信媒体の中から、使用する通信媒体を特定してもよい。
また、本発明にかかる通信調停処理は、通信装置11が備えるROM(リードオンリメモリ)に記憶された通信調停処理プログラムをCPU(中央演算処理装置)が実行することによって実現され、通信調停処理プログラムをコンピュータ読み取り可能な記録媒体に記録して移送することにより、独立した他のコンピュータシステムで実施することが出来る。