(57)【要約】【課題】競争期間に十分な数のタイムスロットを確保して、通信の可能性を高める。【解決手段】競争期間内のタイムスロットの数（Ｎという）の下限値Ｎｍｉｎを、各子機からのデータの受信頻度に基づいて計算し、タイムスロットの数Ｎが下限値Ｎｍｉｎ以上か否かを判定する（Ｓ１５）。タイムスロットの数Ｎが下限値Ｎｍｉｎ未満なら（Ｓ１５：ＮＯ）、タイムスロットの数Ｎが下限値Ｎｍｉｎ以上となるようにタイムスロットの数Ｎを増やす（Ｓ３１）。【選択図】図４
2016086340.tif 000002
【特許請求の範囲】
【請求項１】
同期型ネットワークにおけるタイムスロット割り当て装置であって、
収容する各子機から受信したデータの受信時刻を記憶するデータベースと、
前記各子機につき、当該子機について前記データベースに記憶された２つの前記受信時刻の間隔に基づいて、当該子機についてのデータの受信頻度を計算し、１以上の前記子機に対して競争型の同期通信を行う競争期間内のタイムスロットの数の下限値を、前記各子機の受信頻度に基づいて計算し、当該タイムスロットの数を、前記下限値以上となるように調整する手段と
を備えることを特徴とするタイムスロット割り当て装置。
【請求項２】
子機の優先度を当該子機の受信時刻の間隔が短いほど高くなるように計算し、１以上の前記子機に対して無競争型の同期通信を行う無競争期間内のタイムスロットに対して、高い優先度に対応する子機を優先して割り当てる手段
を備えることを特徴とする請求項１記載のタイムスロット割り当て装置。
【請求項３】
同期型ネットワークにおけるタイムスロット割り当て装置の動作方法であって、
前記タイムスロット割り当て装置は、収容する各子機から受信したデータの受信時刻を記憶するデータベースを備え、
前記動作方法は、
前記タイムスロット割り当て装置が、前記各子機につき、当該子機について前記データベースに記憶された２つの前記受信時刻の間隔に基づいて、当該子機についてのデータの受信頻度を計算し、１以上の前記子機に対して競争型の同期通信を行う競争期間内のタイムスロットの数の下限値を、前記各子機の受信頻度に基づいて計算し、当該タイムスロットの数を、前記下限値以上となるように調整する
ことを特徴とするタイムスロット割り当て装置の動作方法。
【請求項４】
前記タイムスロット割り当て装置が、子機の優先度を当該子機の受信時刻の間隔が短いほど高くなるように計算し、１以上の前記子機に対して無競争型の同期通信を行う無競争期間内のタイムスロットに対して、高い優先度に対応する子機を優先して割り当てる
ことを特徴とする請求項３記載のタイムスロット割り当て装置の動作方法。
【請求項５】
請求項１または２記載のタイムスロット割り当て装置としてコンピュータを機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、競争型の同期通信を行う可変長の競争期間に十分な数のタイムスロットを確保して、通信の可能性を高める技術に関するものである。
【背景技術】
【０００２】
従来においては、親機が、各子機との通信のタイミングを決定する同期型ネットワークがある。
【０００３】
親機は、２つ以上の子機が同時に親機と通信しようとするのを防ぐべく、各子機が通信してよい期間またはタイムスロットを決定し、子機は、そのタイミングで親機と通信する。つまり、親機と各子機は、同期通信を行う。
【０００４】
図２のフレームは、繰り返される単位期間の１つを示しており、先行する単位期間、後続する単位期間もフレームという。フレームは例えば、ビーコンのオプション機能であるスーパーフレームである。
【０００５】
フレームは、固定長（例えば、１６個）のタイムスロットを備え、競争期間と無競争期間を含む。競争期間は固定長であり、例えば、９個（１番から９番）のタイムスロットを備える。無競争期間は固定長であり、例えば、６個（１０番から１５番）のタイムスロットを備える。
【０００６】
親機は、子機を無競争期間のいずれかのタイムスロット、または、競争期間に割り当てる。
【０００７】
無競争期間のタイムスロットに割り当てられた子機は、このタイムスロットを独占的に使用する。
【０００８】
一方、競争期間に割り当てられた子機には、タイムスロットは割り当てられず、子機は、競争期間において、他の子機との競争にならないタイムスロットを使用する。
【０００９】
例えば、親機は、競争期間にどの子機が割り当てられ、無競争期間のどのタイムスロットにどの子機が割り当てられているかを示す情報（以下、時間割という）を各子機にマルチキャストで送信する。
【００１０】
子機は、時間割を受信した時刻をフレームの開始時刻とする。無競争期間のタイムスロットが割り当てられた子機は、当該タイムスロットになったら親機と通信する。一方、競争期間が割り当てられた子機は、競争期間になったなら、親機と通信中の他の子機の有無を検知し、そのような他の子機がない場合には親機と通信する。
【００１１】
また、従来においては、全ての子機をいずれかのタイムスロットに割り当てるようにする技術を開示した特許文献１がある。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０１１−９１６８４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上記の同期型ネットワークにおいては、競争期間に割り当てられた子機は、他の子機との競争にならない限り通信が行える。しかし、子機の総数が増え、競争期間に割り当てられた子機の数も増えた場合、他の子機との競争になる確率が高まり、親機との通信が困難になるという問題がある。
【００１４】
そこで、競争期間を可変長とした場合、通信の可能性が高まるように競争期間の長さ（タイムスロットの数）を調整する技術が必要である。
【００１５】
また、競争期間を可変長とした場合、無競争期間も可変長となるのだが、可変長である無競争期間のタイムスロットにどの子機を割り当てるかを決定する技術が必要である。
【００１６】
本発明は、上記の課題に鑑みてなされたものであり、その目的とするところは、競争型の同期通信を行う可変長の競争期間に十分な数のタイムスロットを確保して、通信の可能性を高める技術を提供することにある。
【００１７】
また、さらには、無競争型の同期通信を行う無競争期間内のタイムスロットに子機を割り当てる技術を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記の課題を解決するために、第１の本発明は、同期型ネットワークにおけるタイムスロット割り当て装置であって、収容する各子機から受信したデータの受信時刻を記憶するデータベースと、前記各子機につき、当該子機について前記データベースに記憶された２つの前記受信時刻の間隔に基づいて、当該子機についてのデータの受信頻度を計算し、１以上の前記子機に対して競争型の同期通信を行う競争期間内のタイムスロットの数の下限値を、前記各子機の受信頻度に基づいて計算し、当該タイムスロットの数を、前記下限値以上となるように調整する手段とを備えることを特徴とする。
【００１９】
第２の本発明は、同期型ネットワークにおけるタイムスロット割り当て装置の動作方法であって、前記タイムスロット割り当て装置は、収容する各子機から受信したデータの受信時刻を記憶するデータベースを備え、前記動作方法は、前記タイムスロット割り当て装置が、前記各子機につき、当該子機について前記データベースに記憶された２つの前記受信時刻の間隔に基づいて、当該子機についてのデータの受信頻度を計算し、１以上の前記子機に対して競争型の同期通信を行う競争期間内のタイムスロットの数の下限値を、前記各子機の受信頻度に基づいて計算し、当該タイムスロットの数を、前記下限値以上となるように調整することを特徴とする。
【００２０】
第３の本発明は、上記特徴を有するタイムスロット割り当て装置としてコンピュータを機能させるためのコンピュータプログラムである。
【発明の効果】
【００２１】
本発明によれば、競争期間に十分な数のタイムスロットを確保して、通信の可能性を高めることができる。
【図面の簡単な説明】
【００２２】
【図１】本実施の形態に係るタイムスロット割り当て装置を含む同期型ネットワークの構成を示す図である。
【図２】タイムスロットを用いた同期通信についての説明図である。
【図３】データベース１４の構成を示す図である。
【図４】親機１において並行に実行される２つの処理の一方の流れを示すフローチャートであり、子機を競争期間または無競争期間のタイムスロットに割り当てる処理のものである。
【図５】親機１において並行に実行される２つの処理の他方の流れを示すフローチャートであり、子機の割り当てを解除する処理のものである。
【発明を実施するための形態】
【００２３】
以下、本発明の実施の形態について図面を参照して説明する。
【００２４】
図１は、本実施の形態に係るタイムスロット割り当て装置を含む同期型ネットワークの構成を示す図である。
【００２５】
同期型ネットワークは、親機であるタイムスロット割り当て装置（以下、親機という）１と、親機１に収容される複数の子機２とを含む。親機１と各子機２は、ネットワークインタフェース（ＮＷＩＦ）に接続され、ＮＷＩＦを介して、無線にて同期通信を行う。
【００２６】
親機１は、子機２からデータを受信する通信処理部１１、タイムスロットに子機２を割り当てるタイムスロット割り当て部１２、データを処理するデータ処理部１３、データの受信時刻を記憶するデータベース１４を備え、各子機２は、通信部を備える。
【００２７】
図２は、タイムスロットを用いた同期通信についての説明図である。
【００２８】
親機１は、２つ以上の子機２が同時に親機１と通信しようとするのを防ぐべく、そうならないように、各子機２がデータを送信してよい期間またはタイムスロットを決定し、子機は、そのタイミングでデータを親機１に送信する。つまり、親機１と各子機２は、同期通信を行う。
【００２９】
図２のフレームは、繰り返される単位期間の１つを示しており、先行する単位期間、後続する単位期間もフレームという。フレームは例えば、ビーコンのオプション機能であるスーパーフレームである。
【００３０】
フレームは、固定長であり、例えば、１６個のタイムスロットを備え、競争期間と無競争期間を含む。
【００３１】
競争期間は可変長であり、例えば、８〜１５個のタイムスロットを備える。図は、ある時点において、競争期間が９個（１番から９番）のタイムスロットを備えている状態を示す。
【００３２】
無競争期間も可変長であり、例えば、０〜７個のタイムスロットを備える。図は、ある時点において、無競争期間が６個（１０番から１５番）のタイムスロットを備えている状態を示す。
【００３３】
例えば、競争期間の識別子に対し、競争期間に含まれるタイムスロットの番号が対応づけられている。また、無競争期間の識別子に対し、無競争期間に含まれるタイムスロットの番号が対応づけられている。
【００３４】
親機１は、子機２を無競争期間のいずれかのタイムスロット、または、競争期間に割り当てる。
【００３５】
ここで子機を割り当てるとは、例えば、タイムスロットの番号に子機２の識別子を対応づける、または、競争期間の識別子に子機２の識別子を対応づけるというような処理をいう。
【００３６】
無競争期間のタイムスロットに割り当てられた子機２は、このタイムスロットを独占的に使用する。
【００３７】
一方、競争期間に割り当てられた子機２には、タイムスロットは割り当てられず、子機２は、競争期間において、他の子機２との競争にならないタイムスロットを使用する。
【００３８】
例えば、親機１は、競争期間にどの子機２が割り当てられ、無競争期間のどのタイムスロットにどの子機２が割り当てられているかを示す情報（以下、時間割という）を各子機２にマルチキャストで送信する。
【００３９】
子機２は、時間割を受信した時刻をフレームの開始時刻とする。無競争期間のタイムスロットが割り当てられた子機２は、当該タイムスロットになったら親機１にデータを送信し、また、当該タイムスロットにおいて親機１からデータを受信する。一方、競争期間が割り当てられた子機２は、競争期間になったなら、データを送信中の他の子機２の有無を検知し、そのような他の子機２がない場合、親機１にデータを送信し、また、当該タイムスロットにおいて親機１からデータを受信する。
【００４０】
競争期間では、１スロットの中でも、スロット内の全てで通信し続けるわけではなく、スロット内をさらに細かくした時間でランダム時間を空けて通信を行うことができる。
【００４１】
この仕組みを利用して、当該スロットでの通信の有無を検知して、他の通信を行う子機（当該スロット内で先に通信を開始している子機）があれば、別のスロットで通信を行う。そのような子機がなければ、当該スロットで通信を行う、というように決定することもできる。
【００４２】
図３は、データベース１４の構成を示す図である。
【００４３】
データベース１４には、各子機２につき、その子機２から受信したデータの受信時刻が時系列で記憶される。なお、データは、純粋なデータであってもよく、また、いわゆる通信開始要求であってもよい。
【００４４】
図４は、親機１において並行に実行される２つの処理の一方の流れを示すフローチャートであり、子機を競争期間または無競争期間のタイムスロットに割り当てる処理のものである。
【００４５】
Ｓ１：通信処理部１１は、各子機２からデータが送信されたか否かを監視し、データが送信されたなら、これを受信する。
【００４６】
Ｓ２：タイムスロット割り当て部１２は、Ｓ１で受信したデータの受信時刻をデータベース１４に記憶させる。
【００４７】
Ｓ３：通信処理部１１は、Ｓ１で受信したデータの送信元が、無競争期間のタイムスロットに割り当てられた子機２であるか否かを判定する。
【００４８】
Ｓ５：通信処理部１１は、送信元が、無競争期間のタイムスロットに割り当てられた子機２であるなら（Ｓ３：ＹＥＳ）、データをデータ処理部１３に送信し、データ処理部１３は、データを処理する。
【００４９】
Ｓ７：タイムスロット割り当て部１２は、送信元が、無競争期間のタイムスロットに割り当てられた子機２でないなら（Ｓ３：ＮＯ）、無競争期間において割り当てられていないタイムスロット（空きのタイムスロット）が有るか否かを判定する。
【００５０】
Ｓ９：タイムスロット割り当て部１２は、無競争期間において割り当てられていないタイムスロット（空きのタイムスロット）が有るなら（Ｓ７：ＹＥＳ）、送信元の子機２を、無競争期間の割り当てられていないタイムスロット（空きのタイムスロット）の１つに割り当てる。
【００５１】
Ｓ１１：タイムスロット割り当て部１２は、無競争期間において割り当てられていないタイムスロット（空きのタイムスロット）がないなら（Ｓ７：ＮＯ）、Ｓ１３の処理に移行する。
【００５２】
Ｓ１３：タイムスロット割り当て部１２は、送信元の子機２について２個以上の受信時刻がデータベース１４に有るか否かを判定し、２個以上の受信時刻がないなら（Ｓ１３：ＮＯ）、Ｓ１に戻る。
【００５３】
Ｓ１５：タイムスロット割り当て部１２は、２個以上の受信時刻が有るなら（Ｓ１３：ＹＥＳ）、各子機２につき、子機２についてデータベース１４に記憶された２つの受信時刻の間隔ｍに基づいて、子機２についてのデータの受信頻度を計算し、競争期間内のタイムスロットの数（Ｎという）の下限値Ｎｍｉｎを、各子機の受信頻度に基づいて計算し、タイムスロットの数Ｎが下限値Ｎｍｉｎ以上か否かを判定する。
【００５４】
下限値Ｎｍｉｎの計算方法の一例を説明する。
【００５５】
タイムスロット割り当て部１２は、まず、各子機２につき、最新の受信時刻とその１つ前の受信時刻との間隔ｍの逆数１／ｍを受信頻度として計算する。なお、受信頻度は、１／ｍに所定の係数をかけて求めてもよく、他の方法で求めてもよい。
【００５６】
タイムスロット割り当て部１２は、次に、受信頻度１／ｍの総和を下限値Ｎｍｉｎとして計算する。
【００５７】
任意の子機ｉの間隔ｍをｍｉとし、子機ｉの総数をＩとすると、下限値Ｎｍｉｎは、次式で与えられる。
【００５８】
【数１】
2016086340.tif 000003
なお、下限値Ｎｍｉｎは、総和に所定の係数をかけて求めてもよく、他の方法で求めてもよい。いずれにしても、受信頻度が高まるにしたがい下限値Ｎｍｉｎが高まるように下限値Ｎｍｉｎを計算すればよい。
【００５９】
Ｓ２１：タイムスロット割り当て部１２は、タイムスロットの数Ｎが下限値Ｎｍｉｎ以上なら（Ｓ１５：ＹＥＳ）、送信元の子機２が競争期間に割り当てられたと仮定して、競争期間に割り当てられた子機２の総数Ｍ（現状の総数＋１）が競争期間内のタイムスロットの数Ｎ以下であるか否かを判定する。
【００６０】
Ｓ２３：タイムスロット割り当て部１２は、総数Ｍが数Ｎ以下なら（Ｓ２１：ＹＥＳ）、送信元の子機２と、無競争期間のタイムスロットを割り当てられた各子機２について、各子機２の優先度を当該子機２の受信時刻の間隔が短いほど高くなるように計算する。タイムスロット割り当て部１２は、例えば、受信頻度を優先度とする。
【００６１】
Ｓ２５：タイムスロット割り当て部１２は、次に、送信元の子機２の優先度が、無競争期間のタイムスロットを割り当てられた子機２の最低の優先度より高いか否かを判定する。
【００６２】
Ｓ２７：タイムスロット割り当て部１２は、送信元の子機２の優先度が、無競争期間のタイムスロットを割り当てられた子機２の最低の優先度より高いなら（Ｓ２５：ＹＥＳ）、後者の子機２に割り当てられていたタイムスロットに前者の子機２（送信元）を割り当て、無競争期間に後者の子機２（最低の優先度の子機２）を割り当てる。
【００６３】
Ｓ２９：タイムスロット割り当て部１２は、送信元の子機２の優先度が、無競争期間のタイムスロットを割り当てられた子機２の最低の優先度以下なら（Ｓ２５：ＮＯ）、競争期間に送信元の子機２を割り当てる。
【００６４】
Ｓ３１：タイムスロット割り当て部１２は、タイムスロットの数Ｎが下限値Ｎｍｉｎ未満なら（Ｓ１５：ＮＯ）、タイムスロットの数Ｎが下限値Ｎｍｉｎ以上となるようにタイムスロットの数Ｎを増やす。これに伴い、無競争期間のタイムスロットの数は減る。
【００６５】
タイムスロットの数Ｎを増やし、無競争期間のタイムスロットの数を減らすとは、例えば、無競争期間を示す識別子に対応づけられた一部のタイムスロットの番号について当該識別子との対応づけを解消し、競争期間を示す識別子に対し、対応づけを解消したタイムスロットの番号を対応づけるというような処理をいう。このとき、対応づけが解消される子機２の識別子は、例えば、無競争期間が割り当てられた子機２の中で、最低の優先度を持つ子機２の識別子を選択する。
【００６６】
Ｓ３３：タイムスロット割り当て部１２は、次に、送信元の子機２と、タイムスロットの数が減る前の無競争期間のタイムスロットを割り当てられた各子機２について、各子機２の優先度を当該子機２の受信時刻の間隔が短いほど高くなるように計算する。タイムスロット割り当て部１２は、例えば、受信頻度を優先度とする。
【００６７】
Ｓ３５：タイムスロット割り当て部１２は、次に、優先度の高い順に子機２を無競争期間のタイムスロットに割り当て、無競争期間の全タイムスロットに子機２が割り当てられたなら、残りの子機２を競争期間に割り当てる。
【００６８】
Ｓ４１：タイムスロット割り当て部１２は、Ｓ５、Ｓ９、Ｓ２７、Ｓ２９、またはＳ３５の処理後、または、総数Ｍが数Ｎより多いなら（Ｓ２１：ＮＯ）、０番のタイムスロットの開始時刻に、現在の競争期間および無競争期間への子機２の割り当てを示す時間割を各子機２にマルチキャストで送信し、Ｓ１に戻る。
【００６９】
図５は、親機１において並行に実行される２つの処理の他方の流れを示すフローチャートであり、子機の割り当てを解除する処理のものである。
【００７０】
Ｓ５１：タイムスロット割り当て部１２は、無競争期間のタイムスロットに割り当てられた各子機２につき、データベース１４に記憶された受信時刻を用いて、例えば、代表的な受信頻度（例えば、受信頻度の平均）を計算する。
【００７１】
Ｓ５３：タイムスロット割り当て部１２は、次に、無競争期間のタイムスロットに割り当てられた各子機２につき、最新の受信時刻とその１つ前の受信時刻との間隔ｍの逆数１／ｍ（最新の受信頻度）を計算し、これがＳ５１で計算した代表的な受信頻度の５０％以下であるか否かを判定する。なお、５０％は一例であり、異なる値を用いてもよい。
【００７２】
Ｓ５５：タイムスロット割り当て部１２は、無競争期間のタイムスロットに割り当てられたいずれかの子機２につき、最新の受信頻度が代表的な受信頻度の５０％以下であるなら(Ｓ５３：ＹＥＳ）、競争期間に子機２が割り当てられているか否かを判定する。
【００７３】
Ｓ５７：タイムスロット割り当て部１２は、競争期間に子機２が割り当てられているなら（Ｓ５５：ＹＥＳ）、最新の受信頻度が代表的な受信頻度の５０％以下であると判定された子機２について、無競争期間のタイムスロットへの割り当てを解消する。
【００７４】
Ｓ５９：タイムスロット割り当て部１２は、次に、競争期間に割り当てられた各子機２につき、各子機２の優先度を当該子機２の受信時刻の間隔が短いほど高くなるように計算する。タイムスロット割り当て部１２は、例えば、受信頻度を優先度とする。
【００７５】
Ｓ６１：タイムスロット割り当て部１２は、次に、無競争期間の割り当てを解消したタイムスロットに対し、無競争期間に割り当てられていない子機２の中から優先度の高い順に子機２を割り当てる。
【００７６】
Ｓ６３：タイムスロット割り当て部１２は、無競争期間のタイムスロットに割り当てられたいずれかの子機２につき、最新の受信頻度が代表的な受信頻度の５０％より大きいなら(Ｓ５３：ＮＯ）、または、競争期間に子機２が割り当てられてないなら（Ｓ５５：ＮＯ）、０番のタイムスロットの開始時刻に、現在の競争期間および無競争期間への子機２の割り当てを示す時間割を各子機２にマルチキャストで送信し、Ｓ５１に戻る。
【００７７】
以上のように、本実施の形態の親機１（タイムスロット割り当て装置）によれば、収容する各子機２から受信したデータの受信時刻を記憶するデータベース１４と、各子機２につき、当該子機についてデータベース１４に記憶された２つの受信時刻の間隔１／ｍに基づいて、当該子機についてのデータの受信頻度を計算し、１以上の子機に対して競争型の同期通信を行う競争期間内のタイムスロットの数Ｎの下限値Ｎｍｉｎを、各子機の受信頻度に基づいて計算し（Ｓ１５）、当該タイムスロットの数Ｎを下限値Ｎｍｉｎ以上となるように調整する（Ｓ３１）手段とを備えるので、競争期間内のタイムスロットの数の不足を防止し、すなわち、競争期間に十分な数のタイムスロットを確保して、通信の可能性を高めることができる。
【００７８】
また、親機１（タイムスロット割り当て装置）によれば、子機の優先度を当該子機の受信時刻の間隔が短いほど高くなるように計算し（Ｓ２３、Ｓ３３）、１以上の子機に対して無競争型の同期通信を行う無競争期間内のタイムスロットに対して、高い優先度に対応する子機を優先して割り当てる（Ｓ２７、Ｓ２９、Ｓ３５）手段を備えるので、競争期間のどのタイムスロットにどの子機を割り当てるかを決定することができる。また、無競争期間に高い優先度に対応する子機を優先して割り当てるので、優先度の低い子機が無競争期間に割り当てられるのを防止できる。つまり、優先度の低い子機は無競争期間を使用する頻度が低いので、無競争期間を無駄にしていることになるが、このような状態の発生を防止できる。
【００７９】
なお、本実施の形態では、競争期間内のタイムスロットの数を増やしたが、受信頻度の低下に応じて、競争期間内のタイムスロットの数を減らしてもよい。
【００８０】
また、本実施の形態の親機１（タイムスロット割り当て装置）としてコンピュータを機能させるためのコンピュータプログラムは、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に記録でき、また、インターネットなどの通信網を介して伝送させて、広く流通させることができる。
【符号の説明】
【００８１】
１  親機（タイムスロット割り当て装置）
２  子機
１１  通信処理部
１２  タイムスロット割り当て部
１３  データ処理部
１４  データベース
【図１】
2016086340.tif 000004
【図２】
2016086340.tif 000005
【図３】
2016086340.tif 000006
【図４】
2016086340.tif 000007
【図５】
2016086340.tif 000008