(57)【要約】【課題】通信効率の低下を抑制できる通信装置、通信方法およびプログラムを提供する。【解決手段】実施形態の通信装置は、選択部と、通信制御部と、を備える。選択部は、時分割多重方式の通信に用いる、データの処理単位が相互に異なる複数のスケジュールから、データの属性に基づいていずれかのスケジュールを選択する。通信制御部は、選択されたスケジュールに従い、データの送受信を制御する。【選択図】図２
2019153845.tif 000002
【特許請求の範囲】
【請求項１】
時分割多重方式の通信に用いる、データの処理単位が相互に異なる複数のスケジュールから、データの属性に基づいていずれかのスケジュールを選択する選択部と、
選択された前記スケジュールに従い、データの送受信を制御する通信制御部と、
を備える通信装置。
【請求項２】
前記属性は、送信または受信するデータのデータ長である、
請求項１に記載の通信装置。
【請求項３】
複数の前記スケジュールは、少なくとも一部の前記処理単位の開始時刻が同じである、
請求項１に記載の通信装置。
【請求項４】
複数の前記スケジュールそれぞれの前記処理単位の長さは、長さが最小である前記処理単位の長さの倍数である、
請求項１に記載の通信装置。
【請求項５】
前記選択部は、データの送信を開始する前に、送信するデータの属性に基づいて、複数の前記スケジュールからいずれかの前記スケジュールを選択し、
前記通信制御部は、選択された前記スケジュールに従いデータの送信を制御する、
請求項１に記載の通信装置。
【請求項６】
前記選択部は、複数の前記スケジュールのうち、予め定められた第１スケジュールを選択し、
前記通信制御部は、前記第１スケジュールに従いデータの受信を制御し、
受信されたデータの属性に基づいて、前記第１スケジュールを第２スケジュールに切り替える切替部をさらに備える、
請求項１に記載の通信装置。
【請求項７】
前記選択部は、複数の前記スケジュールのうち、データの処理単位が他のスケジュールより小さい第１スケジュールを選択し、
前記第１スケジュールの処理単位内でデータの送信または受信が完了しない場合に、前記第１スケジュールより処理単位が大きい第２スケジュールに切り替える切替部をさらに備える、
請求項１に記載の通信装置。
【請求項８】
前記選択部は、複数の前記スケジュールのうち、データの処理単位が他のスケジュールより大きい第１スケジュールを選択し、
前記第１スケジュールの処理単位内でデータの送信または受信が完了した場合に、前記第１スケジュールより処理単位が小さい第２スケジュールに切り替える切替部をさらに備える、
請求項１に記載の通信装置。
【請求項９】
複数の前記スケジュールは、処理単位が小さい第１スケジュールと、処理単位が大きい第２スケジュールとを含み、
前記属性は、送信または受信するデータのデータ長であり、
前記選択部は、前記データ長が前記第１スケジュールの処理単位で送信または受信できる長さである場合に前記第１スケジュールを選択し、前記データ長が前記第１スケジュールの処理単位で送信または受信できない長さである場合に、前記第２スケジュールを選択する、
請求項１に記載の通信装置。
【請求項１０】
時分割多重方式の通信に用いる、データの処理単位が相互に異なる複数のスケジュールから、データの属性に基づいていずれかのスケジュールを選択する選択ステップと、
選択された前記スケジュールに従い、データの送受信を制御する通信制御ステップと、
を含む通信方法。
【請求項１１】
コンピュータを、
時分割多重方式の通信に用いる、データの処理単位が相互に異なる複数のスケジュールから、データの属性に基づいていずれかのスケジュールを選択する選択部と、
選択された前記スケジュールに従い、データの送受信を制御する通信制御部と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信装置、通信方法およびプログラムに関する。
【背景技術】
【０００２】
IEEE  802.15.4-2015は、ＴＳＣＨ（Time-Slotted  Channel  Hopping）の送受信方法を定義している。ＴＳＣＨでは、通信ノード間で通信タイミングを事前に合意しておくことにより、信頼性が高い通信ができる。IETF  6TiSCH  WGが策定中の6top  Protocolを使用すれば、近隣ノード間でＴＳＣＨの通信タイミングを動的に合意することができる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】IEEE  802.15.4-2015  -  IEEE  Standard  for  Low-Rate  Wireless  Networks
【非特許文献２】“6top  Protocol  （6P）  draft-ietf-6tisch-6top-protocol-09”、October  25、2017．
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術では、通信効率が低下する場合があった。例えばＴＳＣＨでは、時分割多重方式による時間の分割単位であるタイムスロットが設定される。このタイムスロットの長さ（スロット長）は通信効率に影響する。送受信するデータのデータ長が小さい場合、スロット長が小さければ通信効率を上げることができる。一方、送受信するデータのデータ長に対してスロット長が大きいと通信効率が下がる可能性がある。
【課題を解決するための手段】
【０００５】
実施形態の通信装置は、選択部と、通信制御部と、を備える。選択部は、時分割多重方式の通信に用いる、データの処理単位が相互に異なる複数のスケジュールから、データの属性に基づいていずれかのスケジュールを選択する。通信制御部は、選択されたスケジュールに従い、データの送受信を制御する。
【図面の簡単な説明】
【０００６】
【図１】本実施形態にかかる通信システムのブロック図。
【図２】本実施形態にかかるノードのブロック図。
【図３】時分割多重方式による時間の分割単位の一例を示す図。
【図４】初期状態のスケジュールの例を示す図。
【図５】スケジュールの一例を示す図。
【図６】スケジュールの一例を示す図。
【図７】本実施形態の手法を適用できないスケジュールの例を示す図。
【図８】本実施形態の手法を適用できないスケジュールの例を示す図。
【図９】本実施形態におけるデータ送信処理のフローチャート。
【図１０】本実施形態におけるデータ送信処理のフローチャート。
【図１１】本実施形態におけるデータ受信処理のフローチャート。
【図１２】本実施形態におけるデータ受信処理のフローチャート。
【図１３】３つのスロットフレームを用いる例を示す図。
【図１４】本実施形態によるデータ送信処理の動作例を示す図。
【図１５】本実施形態にかかる通信装置のハードウェア構成図。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、この発明にかかる通信装置の好適な実施形態を詳細に説明する。
【０００８】
ＴＳＣＨでは、データの送信ノードと受信ノードが予め決められた時刻および周波数に送受信処理を行う。ＴＳＣＨでは、ノード間のクロック同期状態を保つため、送信ノードが送るべきデータを持たない場合であっても所定の頻度で制御データが送受信される。また、使用するチャネル（周波数）をデータ送受信のたびに変化させる。これらの通信制御によりデータの信頼性が高い通信が実現される。
【０００９】
ＴＳＣＨでは、一度に送受信可能なデータのデータ長がタイムスロット（リンクまたはセル）の長さ（スロット長）に依存する。タイムスロットは、データの処理単位の一例である。例えば、スロット長が小さければ一度に送受信できるデータのデータ長は小さくなり、スロット長が長ければ一度に送受信できるデータのデータ長は大きくなる。スロット長に対して大きすぎるデータは一度に送信できないため、ＴＳＣＨの上位レイヤでフラグメント処理などが必要になり通信効率が下がる。例えば通信オーバヘッドに加え、処理オーバヘッドや実装オーバヘッド（必要メモリの増加）がかかる。
【００１０】
一方、上記のようにタイムスロットの長さは通信効率に影響する。このため、ＴＳＣＨのような時分割多重方式の通信において通信効率を下げずにさまざまなデータ長のデータを扱うことが望まれている。
【００１１】
本実施形態にかかる通信装置は、例えば以下のような機能により通信効率の低下を回避可能とする。まず通信装置は、ＴＳＣＨの通信スケジュールとしてスロット長が小さいスケジュールと、スロット長が大きいスケジュールとを設定する。このとき、各スケジュールは同一時刻に開始するように設定する。例えば、長いタイムスロットのスロット長は、短いタイムスロットのスロット長の倍数になる。また、両タイムスロットの送信開始タイミングおよび受信タイミングは同じ設定を適用する。
【００１２】
送信ノードは、送信するデータ長に合わせて、適用するタイムスロット（短いタイムスロットか長いタイムスロットか）を選択し、そのタイムスロットの設定に従って送信を制御する。受信ノードは、短いタイムスロットを想定して受信を待機し、データの受信を開始した後、データの受信中に適用するタイムスロットを長いタイムスロットに切り替えるか判断する。
【００１３】
図１は、本実施形態にかかる通信システムの構成の一例を示すブロック図である。図１に示すように、通信システムは、通信装置としてのノード１００ａ、１００ｂを含む。なお、ノード１００ａ、１００ｂは同様の構成を備えるため、区別する必要がない場合は単にノード１００という。ノード１００の個数は２に限られず、３以上であってもよい。複数のノード１００は、例えばIEEE  802.15.4-2015などの無線ネットワークにより接続される。複数のノード１００は、その他のどのような接続形態により接続されてもよく、例えば、有線ネットワークにより接続されてもよい。
【００１４】
ノード１００ａとノード１００ｂとの間でデータが送受信される。便宜上、以降ではノード１００ａをデータの送信ノードとし、ノード１００ｂをデータの受信ノードとする。
【００１５】
ノード１００ａとノード１００ｂは時刻同期しており、予め決められたタイミングでデータを送受信する。典型的には、ノード１００ａおよびノード１００ｂは、ＴＳＣＨによる通信制御を行うが、ＴＳＣＨ以外の時分割多重の通信方式を用いてもよい。
【００１６】
図２は、本実施形態にかかるノード１００の構成の一例を示すブロック図である。図２に示すように、ノード１００は、通信部１０１と、選択部１１１と、通信制御部１１２と、切替部１１３と、を備えている。
【００１７】
通信部１０１は、他のノード１００（図２ではノード１００ｂ）などの外部装置との間の通信を行うためのインタフェースである。通信部１０１は、通信制御部１１２の制御により、ＴＳＣＨなどの時分割多重方式による通信を行う。
【００１８】
選択部１１１は、時分割多重方式の通信に用いる複数のスケジュールから、適用する１つのスケジュールを選択する。例えば選択部１１１は、タイムスロットの長さが相互に異なる複数のスケジュールから、データの属性に基づいていずれかのスケジュールを選択する。データの属性は、例えば送信または受信するデータのデータ長であるが、これに限られるものではない。例えば、データの種類に応じてデータ長が区別できる場合などであれば、データの種類をデータの属性として用いてもよい。例えば、制御データのデータ長が短く、アプリケーションデータのデータ長が長いような状況では、制御データであるか、アプリケーションデータであるかを示すデータの種類をデータの属性として用いることができる。また、例えばデータの優先度をデータの属性として用いてもよい。
【００１９】
なお、ノード１００は、送信ノードとしての機能のみ、または、受信ノードとしての機能のみを備えてもよい。すなわちノード１００は、送信ノードおよび受信ノードの少なくとも一方として機能する。送信ノードとして機能する場合は、ノード１００は、データの送信に関わる機能を少なくとも備えていればよい。受信ノードとして機能する場合は、ノード１００は、データの受信に関わる機能を少なくとも備えていればよい。
【００２０】
受信ノードでは、データを受信するまで、データの属性が判定できない場合がある。このような場合、受信ノードの選択部１１１は、例えば、予め定められたスケジュール（第１スケジュール）を選択してもよい。予め定められたスケジュールとしては、例えば、スロット長が最小のスケジュールを用いることができる。この後、後述する切替部１１３が、受信したデータの属性を参照して、必要に応じて他のスケジュールに切り替える。
【００２１】
通信制御部１１２は、時分割多重による通信処理を制御する。例えば通信制御部１１２は、選択部１１１により選択されたスケジュールに従いメッセージを送受信するように、通信部１０１などを用いた通信を制御する。ＴＳＣＨのような周波数ホッピングを伴う通信方式の場合、通信制御部１１２は通信タイミングに加えて通信に使用する無線チャネルも制御して、通信部１０１などを用いて通信する。
【００２２】
切替部１１３は、データの属性に基づいて、選択されたスケジュールをさらに別のスケジュールに切り替える。例えば切替部１１３は、データの属性に基づいて、選択部１１１により選択されたスケジュール（第１スケジュール）を他のスケジュール（第２スケジュール）に切り替える。データ長などのデータの属性は、例えば、送信するデータまたは受信したデータのヘッダ情報から特定することができる。
【００２３】
上記各部（選択部１１１、通信制御部１１２、および、切替部１１３）は、例えば、１または複数のプロセッサにより実現される。例えば上記各部は、ＣＰＵ（Central  Processing  Unit）などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のＩＣ（Integrated  Circuit）などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち１つを実現してもよいし、各部のうち２以上を実現してもよい。
【００２４】
次に、時分割多重方式による通信について説明する。図３は、時分割多重方式による時間の分割単位の一例を示す図である。図３に示すように、時分割多重方式では、時間が一定の期間に区切られる。分割された期間の最小単位をタイムスロットと呼び、１つ以上のタイムスロットをまとめてスロットフレームと呼ぶ。図３の例では、１つのスロットフレームに５つのタイムスロットが含まれる。
【００２５】
各タイムスロットは、スロットフレーム内で一意に特定できるよう管理される。各タイムスロットは、時間の経過に伴って周期的に現れる。図３では、タイムスロットを０〜４のインデックスで識別している。スロットフレームごとに同じインデックスを持つタイムスロットが現れる。また、各スロットフレームは、十分に長い期間内において一意に特定できるように管理される。図３の例では、スロットフレームに“ｎ”や“ｎ＋１”のインデックスを付与している。なお、各タイムスロットに絶対的な識別子を与えて管理してもよい。その場合は無限個のタイムスロットを持つ無限に長い期間をもつスロットフレームと考えるのと同じことである。
【００２６】
ノード１００ａとノード１００ｂが通信するためには、いずれのタイムスロットでいずれのノード１００がデータを送信するか、および、いずれのノード１００がデータを受信するか、または、いずれのノード１００もデータを送受信できること（後述の「共用」）、が定義されなければならない。タイムスロットに対して、そのタイムスロット内で行われる処理を決めることをスケジューリングと呼び、スケジューリングの結果をスケジュールと呼ぶ。図４は、初期状態のスケジュールの例を示す図である。なお図４の例では、１つのスロットフレームに６つのタイムスロットが含まれる。
【００２７】
図４のスケジュールでは、各スロットフレームの先頭のタイムスロット（タイムスロット０）を「共用」と定義している。「共用」のタイムスロットでは、ノード１００ａがデータを送信してもよいし、ノード１００ｂがデータを送信してもよい。すなわち、ノード１００ａとノード１００ｂは、相手に送信したいデータを持つとき、各スロットフレームの先頭のタイムスロットを使ってデータを送信することができる。送信したいデータを持たない場合、各ノード１００は、各スロットフレームの先頭のタイムスロットでデータの受信を待ち、データが送信された場合に備える。
【００２８】
ここで、新たにスケジューリングを行い、ノード１００ａにデータ送信の機会を与えることを考える。図５は、この場合に設定するスケジュールの一例を示す図である。
【００２９】
ノード１００ａとノード１００ｂに対して手動でスケジューリングを行わない場合、6top  Protocol（6P）のような制御プロトコルを使い複数のノード１００の間でスケジュールが調整される。また例えば、ノード１００ｂがノード１００ａに対してノード１００ｂ専用の受信用のタイムスロットを要求することによっても、ノード１００ｂおよびノード１００ａが図５のスケジュールを共有できる。
【００３０】
ノード１００ａとノード１００ｂの間で周波数ホッピング（周波数切り替え）を行う場合は、ノード間の送受信のタイミングだけでなく使用するチャネルまたはチャネルオフセットも設定する。以下では説明を簡単にするためチャネルオフセットおよびチャネルの設定については省略する。
【００３１】
ここで、ノード１００ａがノード１００ｂにデータを送信する場合を考える。ノード１００ａには図５のスケジュールがされている。このため、送信するデータの長さは、インデックスが２であるタイムスロットの時間内で送信可能なデータ長よりも小さくなければならない。非特許文献１のTable  8-86の規定値に従うと、１つのタイムスロット当りの最長送信時間は、使用する周波数帯が２４５０ＭＨｚの場合に４２５６μ秒、９１５ＭＨｚの場合に１０３０４０μ秒である。２４５０ＭＨｚ帯でデータレートが２５０ｋｂｐｓのときは１つのタイムスロットで送信可能な最大データ長は１３３オクテット（バイト）となる。
【００３２】
本実施形態では、１３３オクテットを超えるデータ送信が必要な場合、ノード１００ａとノード１００ｂに図６のようなスケジュールを設定する。図６では図５で示したスケジュールをスロットフレーム１とし、追加のスケジュールをスロットフレーム２として表現している。図６に示すように、スロットフレーム２の各タイムスロットのスロット長は、スロットフレーム１の各タイムスロットのスロット長の２倍である。このように、複数のスロットフレームそれぞれのタイムスロットのスロット長は、最小のスロット長の倍数となるように設定される。なおスロットフレーム１およびスロットフレーム２は、データの処理単位が相互に異なる複数のスケジュールに相当する。
【００３３】
スロットフレーム１の１つのタイムスロットで送信可能なデータ長のデータについては、ノード１００ａとノード１００ｂは、スロットフレーム１のスケジュールを使って送受信する。スロットフレーム１の１つのタイムスロットでは送信できず、スロットフレーム２のタイムスロットで送信可能なデータ長のデータについては、ノード１００ａとノード１００ｂは、スロットフレーム２のスケジュールを使って送受信する。
【００３４】
本実施形態では、複数のスロットフレームを使ってより長いデータ送信を可能とするために、長いデータを送受信する可能性のある複数のノード１００に対し、同じ時刻で開始するタイムスロットをそれぞれのスロットフレームで割り当てる。図６の例では、スロットフレーム１とスロットフレーム２それぞれに“１００ａ→１００ｂ”と割り当てられた２つの通信機会は、その開始時刻が同じである。
【００３５】
ここで、本実施形態の手法を適用できないスケジュールの例について説明する。図７および図８は、本実施形態の手法を適用できないスケジュールの例を示す図である。
【００３６】
図７のスケジュールは、２つのスロットフレームに割り当てられた“１００ａ→１００ｂ”で示される通信機会の開始時刻が一致していない。このため、例えばデータの送受信中にスケジュールを切り替えることができない。
【００３７】
図８に示すようなスケジュールは、スロット長より長いデータの送信には対応できない。このスケジュールでは、インデックス２のタイムスロットとインデックス３のタイムスロットに、ノード１００ａからノード１００ｂへの送信機会が与えられている。見た目上は図６のスロットフレーム２のインデックス１のタイムスロットのスケジュールと類似する。しかし図８の例では、インデックス２のタイムスロットとインデックス３のタイムスロットの境界でデータ送受信を停止しなければならない。また、インデックス２のタイムスロットとインデックス３のタイムスロットでそれぞれ送信されるデータは、独立したデータとして扱われ、通信制御用のヘッダもそれぞれのデータに対して必要になる。
【００３８】
本実施形態によれば、例えば図６に示すように、スロットフレーム１の１つのタイムスロットでは送信できないデータであっても、スロットフレーム２のインデックス１のタイムスロットを用いることにより、途切れることなく、ノード１００ａからノード１００ｂへ送信可能となる。
【００３９】
次に、本実施形態にかかるノード１００によるデータ送信処理について説明する。データ送信処理は、送信ノードがデータを送信するときに実行する処理である。図９は、本実施形態におけるデータ送信処理の一例を示すフローチャートである。
【００４０】
送信ノードの選択部１１１は、送信するデータのデータ長（送信データ長）を取得する（ステップＳ１０１）。選択部１１１は、送信データ長に基づいて、複数のスロットフレーム（スケジュール）のうち適用するスロットフレームを選択する（ステップＳ１０２）。通信制御部１１２は、選択されたスロットフレームを用いてデータを送信する（ステップＳ１０３）。
【００４１】
送信データ長から適用するスロットフレームを選択する場合、選択部１１１は、少なくとも１つのタイムスロットでデータ送信が完了できるスロットフレームを選択する。例えば、十分にデータ長が小さいデータに対しては、選択部１１１は、図６のスロットフレーム１を選択してもよいし、スロットフレーム２を選択してもよい。一方、スロットフレーム１の１つのタイムスロットでは送信を完了できない、データ長が大きいデータについては、選択部１１１は、スロットフレーム２を選択する。選択部１１１は、データ送信を１つのタイムスロットで完了できるスロットフレームのうち、最もスロット長が小さいスロットフレームを選択してもよい。例えば十分にデータ長が小さいデータの場合、選択部１１１は、スロットフレーム２ではなくスロットフレーム１を選択してもよい。
【００４２】
図１０は、本実施形態におけるデータ送信処理の他の例を示すフローチャートである。図１０は、予め定められたスロットフレーム（第１スケジュール）を最初に選択し、選択したスロットフレームによりデータを送信中に、データの属性（データ長など）に応じて適用するスロットフレームを他のスロットフレーム(第２スケジュール)に切り替える例である。
【００４３】
選択部１１１は、複数のスロットフレームのうち、スロット長が他のフレームより小さいスロットフレームを選択する（ステップＳ２０１）。例えば選択部１１１は、最もスロット長が小さいスロットフレームを選択する。なお、３以上のスロットフレームがある場合、選択部１１１は、スロット長が最大および最小のいずれでもないスロットフレームを選択してもよい。
【００４４】
通信制御部１１２は、選択されたスロットフレームを用いてデータを送信する（ステップＳ２０２）。
【００４５】
切替部１１３は、タイムスロット内でデータの送信が完了したか否かを判定する（ステップＳ２０３）。ＴＳＣＨなどの時分割多重方式の規格では、各タイムスロットに対して、データ送信の開始時刻、送信完了時刻、送信データの確認応答（ＡＣＫ）の受信開始時刻、および、確認応答の受信完了時刻などが規定される。切替部１１３は、例えばこのような規定に従い、送信完了時刻までにデータの送信が完了したかを、各タイムスロットの時間内に判定することができる。
【００４６】
送信が完了した場合（ステップＳ２０３：Ｙｅｓ）、データ送信処理を終了する。送信が完了していない場合（ステップＳ２０３：Ｎｏ）、切替部１１３は、現在選択されているスロットフレームよりスロット長が大きいスロットフレームに切り替える（ステップＳ２０４）。例えば切替部１１３は、現在選択されているスロットフレームの次にスロット長が大きいスロットフレームに切り替える。この後、ステップＳ２０３に戻り処理が繰り返される。
【００４７】
このようにして、データを送信中に適宜、適用するスロットフレームを切り替えていき、最終的にはデータ送信を完了できるスロット長を持つスロットフレームが選択され、データ送信処理が終了する。すなわち、選択部１１１は、他のスロットフレームよりスロット長が小さいスロットフレームを選択し、切替部１１３は、データの属性（データ長など）に応じてスロット長が大きいスロットフレームに切り替える。
【００４８】
反対に、選択部１１１が、他のスロットフレームよりスロット長が大きいスロットフレームを選択し、切替部１１３が、データの属性に応じてスロット長が小さいスロットフレームに切り替えてもよい。例えば切替部１１３は、選択されたスロットフレームによる処理が１つのタイムスロット内で終了し、かつ、他のスロットフレームのタイムスロット内でも処理が終了したと判定できる場合に、他のスロットフレームに切り替える。
【００４９】
図９および図１０の例では説明を簡単にするため異常系処理は説明を省略したが、送信するデータ長に対応できるスロットフレームがない場合のデータ送信は失敗となる。なお、データ送信中にスロットフレームを切り替える処理（例えば図１０）を行わない場合、送信ノードとしてのノード１００は、切替部１１３を備える必要はない。
【００５０】
受信ノードとしてのノード１００ｂでもノード１００ａと同様に、受信するデータのデータ長に応じて適用するスロットフレームを選択する。図１１は、本実施形態におけるデータ受信処理の一例を示すフローチャートである。
【００５１】
受信ノードの選択部１１１は、複数のスロットフレームのうち、予め定められたスロットフレームを選択する（ステップＳ３０１）。例えば選択部１１１は、スロット長が他のフレームより小さいスロットフレーム、または、最もスロット長が小さいスロットフレームを選択する。
【００５２】
通信制御部１１２は、選択されたスロットフレームを用いてデータの受信を開始する（ステップＳ３０２）。
【００５３】
切替部１１３は、受信するデータ全体のデータ長（受信データ長）を、例えばデータのヘッダ情報などから特定する（ステップＳ３０３）。切替部１１３は、受信データ長に基づいて、スロットフレームの切り替えが必要か否かを判定する（ステップＳ３０４）。例えば切替部１１３は、現在選択されているスロットフレームの１つのタイムスロットで、受信データ長のデータの受信を完了できるかを判定する。
【００５４】
切り替えが必要と判定した場合（ステップＳ３０４：Ｙｅｓ）、切替部１１３は、適用するスロットフレームを、受信データ長のデータの受信を完了できるスロットフレームに切り替える（ステップＳ３０５）。切替部１１３は、例えば、受信データ長が大きいために現在のスロットフレームで受信が完了できない場合に、受信が完了できるスロットフレームに切り替える。また切替部１１３は、例えば、受信データ長が小さいために現在のスロットフレームよりスロット長が小さいスロットフレームでも受信が完了できる場合に、よりスロット長が小さいスロットフレームに切り替えてもよい。
【００５５】
スロットフレームの切り替え後、または、切り替えが必要でないと判定された場合（ステップＳ３０４：Ｎｏ）、通信制御部１１２は、データの受信が完了するまで、処理を継続する（ステップＳ３０６）。
【００５６】
図１２は、本実施形態におけるデータ受信処理の他の一例を示すフローチャートである。図１２は、いずれかのスロットフレームを最初に選択し、選択したスロットフレームによりデータの受信が完了できるかに応じて適用するスロットフレームを切り替える例である。
【００５７】
受信ノードの選択部１１１は、複数のスロットフレームのうち、スロット長が他のフレームより小さいスロットフレームを選択する（ステップＳ４０１）。例えば選択部１１１は、最もスロット長が小さいスロットフレームを選択する。
【００５８】
通信制御部１１２は、選択されたスロットフレームを用いてデータの受信を開始する（ステップＳ４０２）。切替部１１３は、タイムスロット内でデータの受信が完了したか否かを判定する（ステップＳ４０３）。
【００５９】
受信が完了した場合（ステップＳ４０３：Ｙｅｓ）、データ受信処理を終了する。受信が完了していない場合（ステップＳ４０３：Ｎｏ）、切替部１１３は、現在選択されているスロットフレームよりスロット長が大きいスロットフレームに切り替える（ステップＳ４０４）。例えば切替部１１３は、現在選択されているスロットフレームの次にスロット長が大きいスロットフレームに切り替える。この後、ステップＳ４０３に戻り処理が繰り返される。
【００６０】
データ送信処理（送信ノード）と同様に、スロット長が大きいスロットフレームからスロット長が小さいスロットフレームに切り替えてもよい。
【００６１】
送信ノードは、図９および図１０のいずれのデータ送信処理を採用してもよい。受信ノードは、図１１および図１２のいずれのデータ受信処理を採用してもよい。従って、上記例の場合、送信ノードの２パターン（図９または図１０）と、受信ノードの２パターン（図１１または図１２）との組み合わせである４パターンの構成が可能である。
【００６２】
（変形例１）
これまでは、２つのスロットフレームのいずれかを選択する例を主に説明した。スロットフレームの個数は３以上であってもよい。図１３は、３つのスロットフレームを用いる例を示す図である。
【００６３】
図１３の例では、スロットフレーム１のインデックス４のタイムスロット、スロットフレーム２のインデックス２のタイムスロット、および、スロットフレーム３のインデックス１のタイムスロットの開始時刻が一致する。スロットフレーム２のインデックス２のタイムスロットのスロット長は、スロットフレーム１のインデックス４のタイムスロットのスロット長の２倍である。スロットフレーム３のインデックス１のタイムスロットのスロット長は、スロットフレーム２のインデックス２のタイムスロットのスロット長の２倍である。この３つのタイムスロットが、相互に切り替え可能となる。
【００６４】
（動作例）
次に、本実施形態による動作の例を、本実施形態の機能を備えない通信装置（比較例）と比較しながら説明する。図１４は、本実施形態によるデータ送信処理の動作例を示す図である。
【００６５】
最初に、本実施形態のノード１００、および、比較例の通信装置のそれぞれに、２つの通信スケジュールを設定する。例えば、１つは最長１２７オクテットのデータを一度に送受信できるタイムスロットを含むスロットフレームＳＦ１とし、もう１つは２０４７オクテットのデータを一度に送受信できるタイムスロットを含むスロットフレームＳＦ２とする。長いタイムスロットの開始タイミングで短いタイムスロットが開始するように、各タイムスロットの長さ（時間）を調整する。
【００６６】
このように設定した上で、各装置（ノード１００、比較例の通信装置）から２０４７オクテットのデータを送信する手順を確立する。その後、各装置に、２０４７オクテット、１２７オクテット、および、１２７オクテットのデータを連続して送信させる（例えばユニキャストで送信する）。このときの各データ送信のタイミングは、図１４のように表される。
【００６７】
比較例の通信装置では、データ長にかかわらず、データの送信間隔は一定になる。すなわち、送信間隔Ａ１と送信間隔Ａ２とは一致する。一方、本実施形態のノード１００は、データ長がスロットフレームＳＦ１で送信できる長さ（１２７オクテット以下）である場合にはスロットフレームＳＦ１を選択し、データ長がスロットフレームＳＦ１で送信できない長さである場合に、スロットフレームＳＦ２を選択する。このように本実施形態では、データ長によりデータの送信間隔が変わる。すなわち、２０４７オクテットのデータを送信した期間に相当する送信間隔Ａ’１は、１２７オクテットのデータを送信した期間に相当する送信間隔Ａ’２と一致しない。
【００６８】
このようにしてデータ送信のタイミングを調査することにより、通信装置が、本実施形態の機能を備えているか否かを判定可能となる。
【００６９】
データの送信間隔を判定する代わりに、長いタイムスロットの期間に送信されたデータの個数を数えて判定するように構成してもよい。本実施形態の機能を備えていない場合、送信データ長に関わらず、長いタイムスロットの期間には１つのデータしか観測されない。一方、本実施形態の機能を備えている場合、送信データ長が小さい場合は、長いタイムスロットの期間に２つのデータが観測される。
【００７０】
図１４はデータ送信処理での判定方法の例であるが、データ受信処理に対する判定方法も同様である。データ受信処理の場合も、図１４と同様に３つのデータを連続して受信させ、確認応答（ＡＣＫ）フレームの送信タイミングを取得する。各確認応答の送信間隔を判定に用いることができる。
【００７１】
このように、本実施形態にかかる通信装置では、スロット長が相互に異なる複数のスケジュールから、データの属性に基づいていずれかのスケジュールを選択し、選択されたスケジュールに従いデータの送受信を制御する。これにより、通信効率の低下を抑制することが可能となる。
【００７２】
次に、本実施形態にかかる通信装置のハードウェア構成について図１５を用いて説明する。図１５は、本実施形態にかかる通信装置のハードウェア構成例を示す説明図である。
【００７３】
本実施形態にかかる通信装置は、ＣＰＵ（Central  Processing  Unit）５１などの制御装置と、ＲＯＭ（Read  Only  Memory）５２やＲＡＭ（Random  Access  Memory）５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、各部を接続するバス６１を備えている。
【００７４】
本実施形態にかかる通信装置で実行されるプログラムは、ＲＯＭ５２等に予め組み込まれて提供される。
【００７５】
本実施形態にかかる通信装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【００７６】
さらに、本実施形態にかかる通信装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかる通信装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【００７７】
本実施形態にかかる通信装置で実行されるプログラムは、コンピュータを上述した通信装置の各部として機能させうる。このコンピュータは、ＣＰＵ５１がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【００７８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７９】
１００  ノード
１０１  通信部
１１１  選択部
１１２  通信制御部
１１３  切替部
【図１】
2019153845.tif 000003
【図２】
2019153845.tif 000004
【図３】
2019153845.tif 000005
【図４】
2019153845.tif 000006
【図５】
2019153845.tif 000007
【図６】
2019153845.tif 000008
【図７】
2019153845.tif 000009
【図８】
2019153845.tif 000010
【図９】
2019153845.tif 000011
【図１０】
2019153845.tif 000012
【図１１】
2019153845.tif 000013
【図１２】
2019153845.tif 000014
【図１３】
2019153845.tif 000015
【図１４】
2019153845.tif 000016
【図１５】
2019153845.tif 000017