(57)【要約】【課題】同一のタイムスロットで送信する通信装置間のキャリアセンスが有効に機能し、かつ、時刻同期の精度を維持する。【解決手段】実施形態の通信装置は、同期制御部と、通信制御部と、キャリアセンス制御部と、データ制御部と、を備える。同期制御部は、時分割多重方式により送受信されるデータを用いて、他の通信装置との間で時刻を同期する。通信制御部は、時分割多重方式のタイムスロット内でのキャリアセンスの終了タイミングを決定する。キャリアセンス制御部は、決定された終了タイミングでキャリアセンスが終了するように制御する。データ制御部は、決定された終了タイミングを特定可能なタイミング情報を含むデータを、他の通信装置に送信するデータとして生成する。【選択図】図４
2020096256.tif 000002
【特許請求の範囲】
【請求項１】
時分割多重方式により送受信されるデータを用いて、他の通信装置との間で時刻を同期する同期制御部と、
前記時分割多重方式のタイムスロット内でのキャリアセンスの終了タイミングを決定する通信制御部と、
決定された終了タイミングでキャリアセンスが終了するように制御するキャリアセンス制御部と、
決定された前記終了タイミングを特定可能なタイミング情報を含むデータを、前記他の通信装置に送信するデータとして生成するデータ制御部と、
を備える通信装置。
【請求項２】
前記通信制御部は、前記他の通信装置が決定したキャリアセンスの終了タイミングを特定可能なタイミング情報を含むデータを前記他の通信装置から受信し、
前記同期制御部は、受信した前記データに含まれる前記タイミング情報と、受信した前記データの受信時刻と、に基づいて、時刻を補正する、
請求項１に記載の通信装置。
【請求項３】
前記通信制御部は、送信するデータの優先度に応じて異なる前記終了タイミングを決定する、
請求項１に記載の通信装置。
【請求項４】
前記通信制御部は、通信状態に応じて前記優先度を設定する、
請求項３に記載の通信装置。
【請求項５】
前記通信状態は、データの送信が失敗した回数、および、同期の基準となる時刻を管理する通信装置からのホップ数、の少なくとも一方である、
請求項４に記載の通信装置。
【請求項６】
前記データ制御部は、決定した前記終了タイミングと規定値との差分を示す前記タイミング情報を含むデータを生成する、
請求項１に記載の通信装置。
【請求項７】
前記データ制御部は、前記タイミング情報をヘッダまたはペイロードの特定位置に含むデータを生成する、
請求項１に記載の通信装置。
【請求項８】
ＴＳＣＨ（TimeSlotted  Channel  Hopping）に準拠した時分割多重方式により送受信されるデータを用いて、他の通信装置との間で時刻を同期する同期制御部と、
ＴＳＣＨに準拠した前記時分割多重方式のタイムスロット内でのキャリアセンス期間であるＴｓＣｃａの終了タイミングを決定する通信制御部と、
決定された終了タイミングでキャリアセンスが終了するように制御するキャリアセンス制御部と、
決定された前記終了タイミングを特定可能なタイミング情報を含むデータを、前記他の通信装置に送信するデータとして生成するデータ制御部と、
を備える通信装置。
【請求項９】
時分割多重方式によりデータの送受信を制御し、他の通信装置が決定したキャリアセンスの終了タイミングを特定可能なタイミング情報を含むデータを前記他の通信装置から受信する通信制御部と、
受信した前記データに含まれる前記タイミング情報と、受信した前記データの受信時刻と、に基づいて、前記他の通信装置との間で同期する時刻を補正する同期制御部と、
を備える通信装置。
【請求項１０】
時分割多重方式により送受信されるデータを用いて、他の通信装置との間で時刻を同期する同期制御ステップと、
前記時分割多重方式のタイムスロット内でのキャリアセンスの終了タイミングを決定する通信制御ステップと、
決定された終了タイミングでキャリアセンスが終了するように制御するキャリアセンス制御ステップと、
決定された前記終了タイミングを特定可能なタイミング情報を含むデータを、前記他の通信装置に送信するデータとして生成するデータ制御ステップと、
を含む通信方法。
【請求項１１】
コンピュータを、
時分割多重方式により送受信されるデータを用いて、他の通信装置との間で時刻を同期する同期制御部と、
前記時分割多重方式のタイムスロット内でのキャリアセンスの終了タイミングを決定する通信制御部と、
決定された終了タイミングでキャリアセンスが終了するように制御するキャリアセンス制御部と、
決定された前記終了タイミングを特定可能なタイミング情報を含むデータを、前記他の通信装置に送信するデータとして生成するデータ制御部と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信装置、通信方法およびプログラムに関する。
【背景技術】
【０００２】
設置コストおよび運用の容易さから、特に産業分野では無線通信の需要が高まっている。例えばIEEE  802.15.4-2015は、ＴＳＣＨ（TimeSlotted  Channel  Hopping）の送受信方法を定義している。ＴＳＣＨでは時分割多重通信（ＴＤＭＡ：Time  Division  Multiple  Access）を用いてシステム内での電波干渉を回避するとともに、周波数ホッピングによって周波数をランダムに変更しながら通信を行い、他システムによる外乱の影響を低減している。また、ＴＳＣＨでは高精度な時刻同期機能を保持することで精密な時分割通信を実現している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１８７７６２号公報
【非特許文献】
【０００４】
【非特許文献１】IEEE  802.15.4-2015  -  IEEE  Standard  for  Low-Rate  Wireless  Networks
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、時刻同期の精度が低下する場合があった。例えば、キャリアセンスを有効に動作させるために衝突の可能性があるタイムスロットではキャリアセンス開始タイミングを変更する技術を適用したとする。このような技術は、パケットの送信時刻にずれを生じさせるため、ＴＳＣＨなどのようにパケットの受信時刻によって時刻同期を行う機能に影響を与える可能性がある。
【課題を解決するための手段】
【０００６】
実施形態の通信装置は、同期制御部と、通信制御部と、キャリアセンス制御部と、データ制御部と、を備える。同期制御部は、時分割多重方式により送受信されるデータを用いて、他の通信装置との間で時刻を同期する。通信制御部は、時分割多重方式のタイムスロット内でのキャリアセンスの終了タイミングを決定する。キャリアセンス制御部は、決定された終了タイミングでキャリアセンスが終了するように制御する。データ制御部は、決定された終了タイミングを特定可能なタイミング情報を含むデータを、他の通信装置に送信するデータとして生成する。
【図面の簡単な説明】
【０００７】
【図１】本実施形態の通信装置を含む無線通信システムの構成例を示す図。
【図２】ＴＳＣＨに準拠した時刻同期の仕組みを説明するための図。
【図３】ＴＳＣＨに準拠した時刻同期の仕組みを説明するための図。
【図４】本実施形態にかかる通信装置のブロック図。
【図５】本実施形態におけるパケット送信処理のフローチャート。
【図６】本実施形態におけるパケット受信処理のフローチャート。
【図７】本実施形態の通信装置による衝突回避方法を説明するための図。
【図８】通知方法の概要を説明するための図。
【図９】Vendor  Specific  IEのフレームフォーマットの一例を示す図。
【図１０】通知方法の概要を説明するための図。
【図１１】変形例の通信装置のブロック図。
【図１２】本実施形態にかかる通信装置のハードウェア構成図。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、この発明にかかる通信装置の好適な実施形態を詳細に説明する。
【０００９】
ＴＤＭＡをベースとした通信では、システム内で複数の通信装置（ノード）が同一タイミングでパケット（データ）を送信する場合、電波衝突を避けられない場合がある。通常、無線通信する通信装置は、送信前に周囲の電波状況を把握するキャリアセンスを行い、干渉のおそれがないことを確認した上でパケットを送信する。しかし高精度な時刻同期機能を有するＴＤＭＡでは、各通信装置は同時に送信を行うため、事前にキャリアセンスを行ったとしても電波を検出できず電波衝突を回避できない。
【００１０】
このような問題を解消するため、衝突の可能性があるタイムスロットではキャリアセンス開始タイミングを変更し、各通信装置の送信タイミングにずれを生じさせることでキャリアセンスを有効化する方式がある。しかし、ＴＳＣＨではパケット受信時刻によって時刻同期を行うため、送信時刻にずれが生じるこの方式を用いると時刻同期の精度が劣化するおそれがある。
【００１１】
本実施形態では、同一のタイムスロットで送信する通信装置間のキャリアセンスが有効に機能し、かつ、時刻同期の精度を維持することができる通信装置、通信方法およびプログラムを実現する。
【００１２】
図１は、本実施形態の通信装置を含む無線通信システムの構成例を示す図である。図１に示すように、無線通信システムは、無線通信する複数の通信装置１００ａ〜１００ｆと、外部ネットワーク２００と、を含む。通信装置１００ａ〜１００ｆは、同様の構成を備えるため、区別する必要がない場合は単に通信装置１００という場合がある。通信装置１００の個数は６台に限られず、何台であってもよい。
【００１３】
複数の通信装置１００ａ〜１００ｆは、マルチホップネットワークを構成する。各通信装置１００は、例えば、標準規格IEEE  802.15.4-2015で定められたＭＡＣ（Medium  Access  Control）レイヤプロトコルであるＴＳＣＨの機能を備える。なお、適用可能なプロトコルはＴＳＣＨに限られるものではなく、その他の時分割多重通信方式および時刻同期方式を適用してもよい。
【００１４】
マルチホップネットワーク内の通信装置１００のうち１台はコーディネータ（Coordinator）と呼ばれる役割を持つ。コーディネータは、当該マルチホップネットワークにおける同期の基準となる時刻（真の時刻）を管理する通信装置１００である。図１では、例えば通信装置１００ａがコーディネータに相当する。
【００１５】
コーディネータ以外の通信装置１００は、通信範囲内に存在する他の通信装置１００から、タイムソース（Time  Source）と呼ばれる通信装置１００を１台以上選択し、選択した通信装置１００を、自装置内の時刻の参照元とする。各通信装置１００は、タイムソースからパケットを受信した際に、以下に示す手順で時刻同期を行う。
【００１６】
図２および図３は、各通信装置１００におけるＴＳＣＨに準拠した時刻同期の仕組みを説明するための図である。マルチホップネットワーク内のすべての通信装置１００は、時分割多重通信（ＴＤＭＡ）を行い、各タイムスロット内で必要に応じてパケット送信、キャリアセンス、および、ＡＣＫ送信を行う。また、これらを行うタイミング（例えばキャリアセンスはタイムスロット開始後何ミリ秒後に行うかなど）は、予め定められている。予め定められたタイミングを示す情報（タイミング情報）は、通信装置１００間で共有されている。また、このような情報を参照することで、各通信装置１００は、通信相手となる他の通信装置１００からのパケットが到着する時刻を予想することができる。
【００１７】
図２は、送信側の通信装置１００および受信側の通信装置１００が互いに時刻同期が取れている状態でのパケット送受信の様子を示す。タイミング情報が事前に共有されており、正確に時刻が同期されていれば、図２に示すように予想時刻にパケットが到着する。
【００１８】
一方、図３は、送信側の通信装置１００および受信側の通信装置１００間の時刻同期にずれがある場合のパケット送受信の様子を示す。時刻同期にずれがあると、予想時刻に前後してパケットが到着する。図３は、予想時刻より後にパケットが到着した場合の例を示す。予想時刻と実際の到着時刻のずれが時刻同期の誤差３０１に等しくなるので、タイムソースとの通信でこの誤差３０１を検出した場合は、通信装置１００は自装置の時刻情報をその誤差３０１の分だけ補正する。これをマルチホップネットワーク内のすべての通信装置１００が行うことで、マルチホップネットワーク全体で時刻同期が維持される。
【００１９】
以上の通り、通信装置１００の時刻同期にはパケット到着時刻の予想が大きな役割を果たす。そのため、事前に共有された情報とは異なるタイミングでパケット送信を行うと、時刻同期精度が劣化するおそれがある。
【００２０】
図４は、本実施形態にかかる通信装置１００の構成の一例を示すブロック図である。図４に示すように、通信装置１００は、記憶部１２１と、アンテナ１２２と、送受信部１０１と、通信制御部１０２と、データ制御部１０３と、同期制御部１０４と、キャリアセンス制御部１０５と、を備えている。
【００２１】
なお、通信装置１００は、例えば日本国内では特定小電力無線局として無線通信を運用し、キャリアセンスおよび送信時間等に、電波法および国内標準規格ＡＲＩＢ  Ｓｔｄ−Ｔ１０８の制約を受ける。
【００２２】
また、図４では、無線通信に関連する機能のみを例示しているが、例えば、無線通信を利用するアプリケーションなどの上位層の機能が通信装置１００内に備えられていてもよい。通信制御部１０２は、例えばこのような上位層からのパケットの送受信の依頼に応じて、無線通信を制御する。
【００２３】
記憶部１２１は、通信装置１００が実行する各種処理で用いられる各種情報を記憶する。例えば記憶部１２１は、送受信結果などから得られる通信状態を記憶する。通信状態は、例えば、通信装置１００から送信したパケットの送信失敗回数、および、コーディネータから通信装置１００までのホップ数の少なくとも一方である。これらの通信状態は一例であり、通信装置１００による通信の状態を示す情報であれば、どのような情報を通信状態として用いてもよい。
【００２４】
アンテナ１２２は、無線信号を送受信するためのアンテナである。
【００２５】
通信制御部１０２は、通信装置１００による無線通信を制御する。例えば通信制御部１０２は、送受信部１０１、データ制御部１０３、同期制御部１０４、および、キャリアセンス制御部１０５を制御し、無線信号を送受信する。通信制御部１０２による制御処理の詳細は後述する。
【００２６】
送受信部１０１は、通信制御部１０２の制御に従い、パケットの送受信を行う。
【００２７】
データ制御部１０３は、送受信するパケット（データ）の内容を制御する。例えばデータ制御部１０３は、送信するパケットの生成、および、受信したパケットの解析などを実行する。またデータ制御部１０３は、通信制御部１０２により決定された、キャリアセンスの終了タイミングを特定可能なタイミング情報を含む送信パケットを生成する。
【００２８】
同期制御部１０４は、時分割多重方式により送受信されるデータを用いて、他の通信装置１００との間で時刻を同期する処理を制御する。例えば、同期制御部１０４は、通信制御部１０２の制御に従い、通信装置１００内の時刻を他の通信装置１００と同期させる。
【００２９】
キャリアセンス制御部１０５は、通信制御部１０２の制御に従い、キャリアセンスを実行する時間（キャリアセンス時間）およびタイミングを制御する。例えばキャリアセンス制御部１０５は、通信制御部１０２により決定された終了タイミングで終了するように、キャリアセンスを制御する。
【００３０】
通信制御部１０２による無線通信の制御処理の手順の一例について説明する。通信制御部１０２は、パケット送信時には送信パケットおよび送信タイミングを制御する。通信制御部１０２は、パケット受信時には受信パケットの解析および時刻同期などを制御する。
【００３１】
パケット送信時、通信制御部１０２は、データ制御部１０３から送信すべきパケット（送信パケット）を受け取る。通信制御部１０２は、記憶部１２１から通信状態を読み出し、通信状態を参照して送信パケットの優先度を設定し、優先度に基づいてキャリアセンス時間を変動させるか否かを判定し、変動させる場合、変動量を決定する。
【００３２】
キャリアセンス時間を変動させるとは、少なくともキャリアセンスの終了タイミングを変動させることを意味する。キャリアセンスの終了タイミングが同じであると、キャリアセンスの終了後に複数の通信装置１００が同時にパケットを送信することによる電波衝突を回避できないためである。キャリアセンスの終了タイミングが異なれば、キャリアセンスの開始タイミングを変動させてもよいし、変動させなくてもよい。開始タイミングと終了タイミングを同じ分だけ変動させる場合には、キャリアセンス時間の長さは不変となる。開始タイミングと終了タイミングの変動量が異なる場合は、キャリアセンス時間の長さも変動することになる。以下では、開始タイミングは変動させず、終了タイミングを予め定められた規定値から変動させる場合を例として説明する。この場合、変動させた終了タイミングと規定値との差分が、変動量に相当する。
【００３３】
キャリアセンス時間を変動させる場合、通信制御部１０２は、終了タイミングを特定可能なタイミング情報を送信パケットに含めるように、データ制御部１０３に対してパケットの変更を依頼する。
【００３４】
通信制御部１０２は、送信パケットを送信する前に、キャリアセンス制御部１０５に対してキャリアセンス処理を依頼する。キャリアセンス時間が変動された場合、キャリアセンス制御部１０５は、変動後のキャリアセンス時間にキャリアセンスを実行し、その結果を通信制御部１０２に報告する。
【００３５】
通信制御部１０２は、キャリアセンスの結果に基づき、送信パケットを送信できるか否かを判定する。送信できると判定した場合、通信制御部１０２は、送受信部１０１に対して送信パケットの送信命令を発行する。送受信部１０１は、送信命令に従い送信パケットを送信する。
【００３６】
パケット受信時は、以下のように動作する。送受信部１０１はパケット（受信パケット）を受信した場合、受信パケットを通信制御部１０２へ送る。通信制御部１０２は、受信パケットをデータ制御部１０３へ送る。データ制御部１０３は、受信パケットの構成を解析し、解析結果を通信制御部１０２へ通知する。通信制御部１０２は、解析結果および受信パケットの受信時刻を基に、補正すべき時刻を算出し、補正すべき時刻を同期制御部１０４へ通知する。同期制御部１０４は、通知された時刻の値を基に、通信装置１００内部の時刻を補正する。
【００３７】
なお記憶部１２１は、フラッシュメモリ、メモリカード、ＲＡＭ（Random  Access  Memory）、ＨＤＤ（Hard  Disk  Drive）、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００３８】
また、上記各部（送受信部１０１、通信制御部１０２、データ制御部１０３、同期制御部１０４、および、キャリアセンス制御部１０５）は、例えば、１または複数のプロセッサにより実現される。例えば上記各部は、ＣＰＵ（Central  Processing  Unit）などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のＩＣ（Integrated  Circuit）などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち１つを実現してもよいし、各部のうち２以上を実現してもよい。
【００３９】
次に、このように構成された本実施形態にかかる通信装置１００によるパケット送信処理について説明する。図５は、本実施形態におけるパケット送信処理の一例を示すフローチャートである。
【００４０】
通信制御部１０２は、例えば上位層から、送信パケットとともに送信パケットの送信命令を受け取る（ステップＳ１０１）。通信制御部１０２は、記憶部１２１に記憶された通信状態を参照し、送信パケットの送信が、他の通信装置１００による通信と衝突する可能性があるか否かを判定する（ステップＳ１０２）。
【００４１】
例えば記憶部１２１に送信失敗回数が通信状態として記憶されている場合、通信制御部１０２は、送信失敗回数が予め定められた閾値より大きい場合に、衝突する可能性があると判定する。判定方法はこれに限られず、どのような方法であってもよい。例えば通信制御部１０２は、現在接続されている他の通信装置１００の個数が閾値より大きい場合に、衝突する可能性があると判定してもよい。
【００４２】
送信パケットが衝突する可能性がある場合（ステップＳ１０３：Ｙｅｓ）、通信制御部１０２は、キャリアセンス時間を変動させることでキャリアセンスを有効化し、衝突回避を試みる。例えば通信制御部１０２は、通信状態に応じて変動させたキャリアセンス時間を算出する（ステップＳ１０４）。算出方法の詳細は後述する。通信制御部１０２は、変動させたキャリアセンス時間の終了タイミングを示すタイミング情報を含むように送信パケットを変更することをデータ制御部１０３に依頼する（ステップＳ１０５）。送信パケットの変更方法の詳細は後述する。
【００４３】
通信制御部１０２は、キャリアセンス制御部１０５に対してキャリアセンスの実行を依頼する（ステップＳ１０６）。ステップＳ１０５でキャリアセンス時間を変動した場合、通信制御部１０２は、変動後のキャリアセンス時間でキャリアセンスするようにキャリアセンス制御部１０５に依頼する。
【００４４】
ステップＳ１０３で、送信パケットが衝突する可能性がないと判定した場合（ステップＳ１０３：Ｎｏ）、通信制御部１０２は、キャリアセンス時間は変動せず、事前に定められたキャリアセンス時間でキャリアセンスするようにキャリアセンス制御部１０５に依頼する。
【００４５】
キャリアセンスにより送信パケットが送信可能と判定された場合は、通信制御部１０２は、送受信部１０１に送信パケットの送信を依頼する（ステップＳ１０７）。なお、キャリアセンスにより送信パケットが送信できないと判定された場合は、通信制御部１０２は、例えばランダムな時間待機した後、再度キャリアセンスを実行してもよい。
【００４６】
なお、ステップＳ１０３の判定処理は省略されてもよい。例えば、ステップＳ１０４で、衝突する可能性が低いときには事前に定められたキャリアセンス時間が算出されるような算出方法を用いる場合は、ステップＳ１０３の判定処理は実行されなくてもよい。
【００４７】
次に、本実施形態にかかる通信装置１００によるパケット受信処理について説明する。図６は、本実施形態におけるパケット受信処理の一例を示すフローチャートである。
【００４８】
送受信部１０１は、他の通信装置１００などからパケット（受信パケット）を受信する（ステップＳ２０１）。通信制御部１０２は、受信パケットに基づいて時刻同期を行う必要があるか否かを判定する（ステップＳ２０２）。
【００４９】
通信装置１００は、ＴＳＣＨの機能によって時刻同期精度を維持している。ＴＳＣＨでは、タイムソースとして定めた通信装置１００から受信したパケットにより時刻同期を補正する。従って、通信制御部１０２は、例えば受信パケットの送信元アドレスを確認し、送信元アドレスがタイムソースである場合に、時刻同期が必要であると判定する。
【００５０】
時刻同期が必要である場合（ステップＳ２０２：Ｎｏ）、通信制御部１０２は、受信パケットの送信タイミングが変動されているか否かを確認する。上述のように、送信元の通信装置１００がキャリアセンス時間を変動していた場合、変動量を特定可能なタイミング情報が受信パケットに含まれている。従って、通信制御部１０２は、受信パケットに含まれるタイミング情報により、送信タイミングが変動されているか、および、変動量を特定する（ステップＳ２０３）。
【００５１】
通信制御部１０２は、受信パケットの到着予想時刻、実際の到着時刻、および、変動量から、タイムソースとの時刻同期の誤差を把握する。通信制御部１０２は、この誤差の分だけ、自装置の時刻情報を補正するように、同期制御部１０４を制御する（ステップＳ２０４）。
【００５２】
時刻同期が必要でない場合（ステップＳ２０２：Ｎｏ）、および、時刻同期を実行後、通信制御部１０２は、通信制御部１０２の層（レイヤ）で必要な処理を行ったのち上位層へ受信パケットを送信する（ステップＳ２０５）。
【００５３】
図５に示すように、通信装置１００は、他の通信装置１００と同時にパケットを送信する可能性がある場合に、衝突回避策を講じる。具体的には、通信装置１００は、キャリアセンス時間を変動させることでキャリアセンスを有効化し、パケットの衝突を回避する。以下、この機能の詳細について説明する。図７は、本実施形態の通信装置１００による衝突回避方法を説明するための図である。
【００５４】
送信側の通信装置１００は、パケットを送信するためのタイムスロット（送信タイムスロット）の開始後、一定の時間TsCcaOffsetだけ待機した後、時間TsCcaの分キャリアセンスを行い、干渉のおそれがないと判定した場合に、パケットの送信を開始する。一方、受信側の通信装置１００は、タイムスロットの開始後、時間TsRxOffsetの分だけ待機した後、受信待機処理を開始する。受信待機は、時間TsRxWaitの分だけ行われる。時間TsRxWaitの間にパケットの先頭が到着すれば、受信側の通信装置１００は受信を開始する。これらの時間TsCcaOffset、TsCca、TsRxOffset、および、TsRxWaitは、事前に各通信装置１００間で共有されている。なおTx  Packetは、送信されるパケットを表す。またTsTxOffsetは、タイムスロットの開始からパケットの送信を開始するまでの時間を表す。
【００５５】
本実施形態の通信装置１００は、キャリアセンスの時間TsCca（TsCcaの終了タイミング）を変動させることができる。これにより、その後のパケット送信の開始時刻も変動させることができ、時刻同期された通信装置１００間でもキャリアセンスが有効化される。
【００５６】
図７の「通常」は、キャリアセンスの時間TsCcaを変動させない通信装置１００に対するタイムスロットを表す。「優先」は、キャリアセンスの時間TsCcaを変動させる通信装置１００に対するタイムスロットを表す。
【００５７】
ある通信装置１００の通信を優先させる場合、図７に示すように、この通信装置１００のキャリアセンス時間を事前に定められた時間より短い時間に設定する。これにより優先する通信装置１００のパケットが他の通信装置１００のキャリアセンス中に送信される。他の通信装置１００は、キャリアセンス中の時刻７０１で、送信されたパケットを検知することができる。すなわち、各通信装置１００の間で時刻が同期されていたとしても、キャリアセンスを有効化し、パケット送信を成功させることが可能となる。
【００５８】
通信装置１００のキャリアセンス時間は２つの制約を受ける。１つ目は、ＡＲＩＢ  Ｓｔｄ−Ｔ１０８による制約である。この規格では、キャリアセンス時間に最小値（下限）が設けられている。通信装置１００のキャリアセンス時間も、この最小値より小さくならないように設定する必要がある。
【００５９】
２つ目は、時間TsRxWaitによる制約である。受信側の通信装置１００は、通常時、時間TsRxWaitの中点でパケット受信が開始されることを想定している。そのため、時間TsRxWaitの半分以上の時間だけパケット送信を早める、または、遅くすると、パケットが受信できなくなる。従って、キャリアセンス時間の変動量は、時間TsRxWaitの半分以内とする必要がある。この制約は、キャリアセンス時間の最大値（上限）が設けられていると言い換えることができる。
【００６０】
通信制御部１０２は、これらの制約の中で変動量を決定する。例えば通信制御部１０２は、これらの制約を満たし、かつ、キャリアセンス終了からパケット送信開始までにかかる時間（図７の「1Unit」）の整数倍の時間を変動量とする。変動量の算出方法の詳細は後述する。
【００６１】
上述の通り、時刻同期の精度を維持するためには、送信タイミングの変動量を受信側の通信装置１００に通知する必要がある。以下、この機能の詳細について説明する。
【００６２】
変動量は、例えば以下の２種類の方法のいずれかにより通知することができる。
【００６３】
１つ目は、送信パケットのフレームチェックシーケンス（Frame  Check  Sequence）の直前に変動量の値に等しい長さのデータを挿入することで通知する方法である。通信装置１００が通信するパケットには、パケットの先頭にペイロード長（ＭＡＣペイロード長）が記載されている。送信側の通信装置１００（データ制御部１０３）は、送信パケットに変動量に等しい長さのデータを挿入するとともに、変動量を挿入する前のペイロードの長さをペイロード長に記載する。受信側の通信装置１００は、パケット解析によって得られたサイズと、実際に検知したサイズとの差によって変動量を把握する。
【００６４】
図８は、１つ目の通知方法の概要を説明するための図である。図８では、送信側の通信装置１００が、変動量に相当する、サイズが５の追加データを送信パケットに挿入する例が示されている。受信側の通信装置１００は、ペイロード長に記載されたサイズ１０と、実際に検知したサイズ１５との差分から、変動量が５であることを検知できる。なお受信側の通信装置１００は、検知した変動量とともに、パケットの実際の到着時刻と、到着の予想時刻との差を用いて、時刻を同期させる。
【００６５】
変動量の値に等しい長さのデータをフレームチェックシーケンスの直前に挿入する方法では、ペイロード長に記載されたサイズ分のデータを先頭から読み出すことで、挿入前のパケットのペイロードを得ることができる。従って、例えばデータの挿入位置を通知する必要はない。データの挿入位置はこれに限られず、どのような位置であってもよい。ただし、フレームチェックシーケンスの直前以外の位置に挿入する場合、挿入位置を示す情報を、何らかの方法（ヘッダまたはペイロード内の特定の位置に記載する方法など）で通知する必要がある。
【００６６】
また、キャリアセンス時間の増加および減少のいずれも可能とする場合、すなわち、変動量が正負の両方の値を取り得る場合、正負のいずれであるかを示す情報を通知する必要がある。このため、例えば、追加データのうち予め定められた位置（例えば、先頭ビット、または、末尾ビットなど）に、正負のいずれであるかを示す情報を含めるように構成してもよい。
【００６７】
２つ目は、ＭＡＣヘッダ、または、ペイロード内の特定のフィールド（特定位置）に変動量を記載して通知する方法である。送信側の通信装置１００と受信側の通信装置１００とは、変動量を通知するフィールド（通知フィールド）を事前に共有しておく。送信側の通信装置１００（データ制御部１０３）は、送信パケットの通知フィールドに変動量を記載する。受信側の通信装置１００は、通知フィールドを参照して変動量を把握する。
【００６８】
通知フィールドとしては、例えば、Vendor  Specific  IE（Information  Element）を用いることができる。Vendor  Specific  IEは、ＴＳＣＨで規定されているＭＡＣフレーム上のフィールドである。このフィールドは、ＴＳＣＨの規格内では使い方は規定されておらず、特定の用途でのみ必要な情報を送受信するために使用される。Vendor  Specific  IEは、ＭＡＣヘッダとＭＡＣペイロードの両方で用いられるフィールドであるが、どちらを使用してもよい。
【００６９】
図９は、Vendor  Specific  IEのフレームフォーマットの一例を示す図である。このフォーマットは、ヘッダとペイロードのいずれに記載する場合にも用いられる。Vendor  OUI（Organizationally  Unique  Identifier）は、通信装置１００のベンダーの識別情報を示す。Vendor  Specific  Informationは、所望の用途に用いる情報を示す。本実施形態では、Vendor  Specific  Informationに、変動量を示す情報が設定される。
【００７０】
図１０は、２つ目の通知方法の概要を説明するための図である。図１０では、送信側の通信装置１００が通知フィールドに変動量の値として５が設定された送信パケットを送信する例が示されている。受信側の通信装置１００は、通知フィールドにより変動量が５であることを特定できる。なお、２つ目の通知方法では、キャリアセンス時間の増加および減少のいずれも可能とする場合には、正負の情報も含む変動量の値を通知フィールドに記載すればよい。例えば変動量が−５である場合には、通知フィールドに−５を記載すればよい。
【００７１】
次に、変動量の算出方法について説明する。図５でも説明したように、送信側の通信装置１００は、キャリアセンス時間を変動させる前に、パケット衝突の可能性を算出する。例えば通信装置１００は、送信パケットの優先度により変動量を算出する。通信制御部１０２は、例えば、記憶部１２１に記憶されている通信状態を示す情報を用いて優先度を設定する。優先度の設定方法はこれに限られない。例えば通信制御部１０２は、送信パケットの内容の重要度などに応じて優先度を設定してもよい。また、通信制御部１０２は、送信パケットの送信を依頼したアプリケーションなどの上位層の機能の重要度に応じて優先度を設定してもよい。
【００７２】
変動量を考慮したキャリアセンス時間は以下の（１）式により算出される。
CCATime＝CCABase−CCAChange  ・・・（１）
【００７３】
CCATimeは、算出されるキャリアセンス時間、CCABaseは、変動処理を行わない場合のキャリアセンス時間、CCAChangeは、キャリアセンス時間の変動量を示す。（１）式は変動量CCAChangeが大きな値になるほどキャリアセンス時間が短くなることを示す。また、CCAChangeは負の値でもよい。その場合は、通常時よりもキャリアセンス時間が長くなる。
【００７４】
CCAChangeは以下のように算出される。最初に、優先度を基にした値であるCCAChangeBaseが算出される。CCAChangeBaseは、例えば以下の（２）式により算出される。
CCAChangeBase＝Priority×TxRx  ・・・（２）
【００７５】
Priorityは、送信パケットの優先度を示す。TxRxは、キャリアセンス終了からパケット送信までにかかる時間であり、図７の「1Unit」に相当する時間を示す。本実施形態では、TxRxを１単位としてその整数倍の時間だけキャリアセンス時間を変動させる。このため、優先度は整数の値となる。また、優先度が高いパケットほど、優先度の値は大きくなる。
【００７６】
優先度を整数とすることにより、処理を簡略化できるが、優先度は整数でなくてもよい。すなわち、キャリアセンス時間の変動量はTxRxの整数倍でなくてもよい。例えば、通信制御部１０２は、１以上の実数となる優先度を用いることにより、TxRx以上であり、TxRxの実数倍となるような変動量を算出してもよい。
【００７７】
上述の通りCCATimeには上限および下限を示す制約値が存在する。このため、それらを超える値の変動量を設定することはできない。そこで通信制御部１０２は、CCAChangeBaseと制約値とを比較することでCCAChangeを算出する。例えば通信制御部１０２は、以下の（３）式に従いCCAChangeを算出する。
【数１】
2020096256.tif 000003
【００７８】
RxWaitは、受信側の通信装置１００がパケットの先頭を待ち受ける時間を示す。図７では、時間TsRxWaitが（３）式のRxWaitに相当する。受信側の通信装置１００は、RxWaitの中点でパケットが到着することを想定している。このため、何らかの理由で、パケット送信タイミングにRxWait/2の分だけ誤差（正方向および負方向の両方を含む）が生じるとパケット受信に失敗する。
【００７９】
CCALimitは、CCABaseと、ＡＲＩＢ  Ｓｔｄ−Ｔ１０８で規定されたキャリアセンスの最小時間と、の差に相当する値である。言い換えると、CCALimitは、キャリアセンス時間をＡＲＩＢ  Ｓｔｄ−Ｔ１０８の最小値とするような値を示す。
【００８０】
キャリアセンス時間の最小時間への制約値、すなわちCCAChangeの最大値には、RxWait/2およびCCALimitのうち小さな値が用いられる（（３）式のmin（RxWait/2，CCALimit））。
【００８１】
優先度Priorityを設定するための通信状態は、どのような情報であってもよい。例えば通信状態として、パケットの送信に失敗した回数（送信失敗回数または再送回数）、および、コーディネータから通信装置１００までのホップ数の少なくとも一方を用いることができる。どのような情報を通信状態として用いるかによってマルチホップネットワークを特徴づけることができる。
【００８２】
例えば、パケットの送信失敗回数（再送回数）を通信状態として用いる場合は、送信失敗回数（再送回数）が多いほど優先度を上げてもよい。これにより、送信にかかる時間が平滑化されて最大送信時間を抑えられるマルチホップネットワークを構築できる。
【００８３】
各通信装置１００のコーディネータからのホップ数を通信状態として用いる場合は、ホップ数が小さいほど優先度を上げてもよい。これにより、コーディネータに近い通信装置１００にパケットが集中しやすいセンシングに向いたマルチホップネットワークを構築できる。
【００８４】
反対に、ホップ数が大きいほど、すなわち、コーディネータから遠いほど優先度を上げてもよい。これにより、コーディネータから遠い通信装置１００がビーコン情報を得られやすくなり、より早くマルチホップネットワークに参入しやすくなるため領域拡張に向いたマルチホップネットワークを構築できる。
【００８５】
通信状態としてその他にも様々な情報を用いることが考えられるが、どのような情報を用いても本実施形態の手法を用いることができる。
【００８６】
（変形例）
図４に示す通信装置１００は、キャリアセンス時間を変動させる機能、および、受信パケット内のタイミング情報を用いて時刻を同期させる機能をともに備えている。通信装置が、後者の機能のみを備えるように構成してもよい。
【００８７】
図１１は、このように構成される変形例の通信装置１００−２の構成の一例を示すブロック図である。図１１に示すように、通信装置１００−２は、記憶部１２１と、アンテナ１２２と、送受信部１０１と、通信制御部１０２−２と、データ制御部１０３−２と、同期制御部１０４と、キャリアセンス制御部１０５と、を備えている。
【００８８】
変形例の通信装置１００−２は、通信制御部１０２−２およびデータ制御部１０３−２の機能が、上記実施形態の通信装置１００と異なっている。その他の構成は図４と同様であるため同一の符号を付し説明を省略する。
【００８９】
データ制御部１０３−２は、キャリアセンスの終了タイミングを特定可能なタイミング情報を送信パケットに挿入する機能を備えない点が、上記実施形態のデータ制御部１０３と異なっている。
【００９０】
通信制御部１０２−２は、送信パケットの優先度に応じてキャリアセンス時間を変動させる機能を備えない点が、上記実施形態の通信制御部１０２と異なっている。なお通信装置１００−２は、パケット受信時に、例えば図６と同様の手順でパケット受信処理を実行する。
【００９１】
このように、変形例の通信装置１００−２は、他の通信装置から受信したパケットに含まれるタイミング情報を用いて時刻を同期させる機能は備えているが、キャリアセンス時間を変動させる機能は備えていない。しかし、他の通信装置がキャリアセンス時間を変動させる機能は備えていれば、キャリアセンスを有効に機能させ、かつ、時刻同期の精度を維持することが可能となる。
【００９２】
以上のように、本実施形態にかかる通信装置では、通信状態に応じてキャリアセンス時間を変動可能となるため、時刻が高精度に同期されていたとしても、キャリアセンスを有効に動作させることができる。また、変動量（キャリアセンスの終了タイミング）を特定可能な情報を送信パケットに含めるため、この情報を参照することで時刻同期を高精度に維持することが可能となる。
【００９３】
次に、本実施形態にかかる通信装置のハードウェア構成について図１２を用いて説明する。図１２は、本実施形態にかかる通信装置のハードウェア構成例を示す説明図である。
【００９４】
本実施形態にかかる通信装置は、ＣＰＵ５１などの制御装置と、ＲＯＭ（Read  Only  Memory）５２やＲＡＭ５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、各部を接続するバス６１を備えている。
【００９５】
本実施形態にかかる通信装置で実行されるプログラムは、ＲＯＭ５２等に予め組み込まれて提供される。
【００９６】
本実施形態にかかる通信装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【００９７】
さらに、本実施形態にかかる通信装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかる通信装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【００９８】
本実施形態にかかる通信装置で実行されるプログラムは、コンピュータを上述した通信装置の各部として機能させうる。このコンピュータは、ＣＰＵ５１がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【００９９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１００】
１００、１００−２  通信装置
１０１  送受信部
１０２、１０２−２  通信制御部
１０３、１０３−２  データ制御部
１０４  同期制御部
１０５  キャリアセンス制御部
１２１  記憶部
１２２  アンテナ
２００  外部ネットワーク
【図１】
2020096256.tif 000004
【図２】
2020096256.tif 000005
【図３】
2020096256.tif 000006
【図４】
2020096256.tif 000007
【図５】
2020096256.tif 000008
【図６】
2020096256.tif 000009
【図７】
2020096256.tif 000010
【図８】
2020096256.tif 000011
【図９】
2020096256.tif 000012
【図１０】
2020096256.tif 000013
【図１１】
2020096256.tif 000014
【図１２】
2020096256.tif 000015