(57)【要約】【課題】時分割多重の通信処理とアプリケーション処理のスケジュールを統合して調整可能とする。【解決手段】通信装置は、調整部と、通信制御部と、処理制御部と、を備える。調整部は、メッセージを時分割多重通信で送受信する通信処理のスケジュールと、通信処理と異なるアプリケーション処理のスケジュールとを調整する。通信制御部は、調整されたスケジュールに従いメッセージを送受信する。処理制御部は、調整されたスケジュールに従いアプリケーションの実行を制御する。【選択図】図２
2019050524.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）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＴＳＣＨの通信制御はノード間のクロック同期を伴うため、ＴＳＣＨにかかわる処理はノード内で優先的に処理しなければならない。一方、ノードは、センサやアクチュエータとして動作するために、高優先度のアプリケーション処理が必要になる場合がある。
【０００６】
ＴＳＣＨとその上位レイヤ（アプリケーション）が独立に処理順序およびタイミングを決めた場合、ＴＳＣＨまたはアプリケーション、場合によってはその両方が所望の性能を発揮できなくなる可能性がある。
【課題を解決するための手段】
【０００７】
実施形態の通信装置は、調整部と、通信制御部と、処理制御部と、を備える。調整部は、メッセージを時分割多重通信で送受信する通信処理のスケジュールと、通信処理と異なるアプリケーション処理のスケジュールとを調整する。通信制御部は、調整されたスケジュールに従いメッセージを送受信する。処理制御部は、調整されたスケジュールに従いアプリケーションの実行を制御する。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態にかかる通信システムのブロック図。
【図２】第１の実施形態にかかるノードのブロック図。
【図３】時分割多重方式による時間の分割単位の一例を示す図。
【図４】初期状態のスケジュールの例を示す図。
【図５】スケジュールの一例を示す図。
【図６】ノード間でスケジュールを調整する例を示すシーケンス図。
【図７】ノード間でスケジュールを調整する例を示すシーケンス図。
【図８】スケジュールを再割り当てする処理の一例を示すシーケンス図。
【図９】スケジュールを再割り当てする処理の一例を示すシーケンス図。
【図１０】スケジュールの一例を示す図。
【図１１】アプリケーション処理の割り当て例を示す図。
【図１２】アプリケーション処理のスケジュールを調整する例を示すシーケンス図。
【図１３】アプリケーション処理のスケジュールを調整する例を示すシーケンス図。
【図１４】第１の実施形態におけるスケジュール調整処理のフローチャート。
【図１５】タイムスロット内のデータの送受信処理のタイミングを示す図。
【図１６】第２の実施形態にかかる通信システムのブロック図。
【図１７】第２の実施形態にかかるノードのブロック図。
【図１８】第１または第２の実施形態にかかる通信装置のハードウェア構成図。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、この発明にかかる通信装置の好適な実施形態を詳細に説明する。
【００１０】
（第１の実施形態）
第１の実施形態にかかる通信装置は、メッセージを時分割多重通信で送受信する通信処理のスケジュールと、アプリケーション処理のスケジュールとを調整可能とする。例えば、通信装置（ノード）は、ＴＳＣＨの通信タイミングの合意や設定のためのプロトコルにおいて、アプリケーション動作のタイミングも扱えるようにする。ノードは、ＴＳＣＨ処理のスケジューリングとアプリケーション処理のスケジューリングを統合的に扱う機能を設け、両者の処理が同一時刻に発生しないように調停する。
【００１１】
図１は、第１の実施形態にかかる通信システムの構成の一例を示すブロック図である。図１に示すように、通信システムは、通信装置としてのノード１００ａ、１００ｂを含む。なお、ノード１００ａ、１００ｂは同様の構成を備えるため、区別する必要がない場合は単にノード１００という。ノード１００の個数は２に限られず、３以上であってもよい。複数のノード１００は、例えばIEEE  802.15.4などの無線ネットワークにより接続される。複数のノード１００は、その他のどのような接続形態により接続されてもよく、例えば、有線ネットワークにより接続されてもよい。
【００１２】
ノード１００ａとノード１００ｂとの間でデータが送受信される。便宜上、以降ではノード１００ａをデータの送信ノードとし、ノード１００ｂをデータの受信ノードとする。
【００１３】
ノード１００ａとノード１００ｂは時刻同期しており、予め決められたタイミングでデータを送受信する。典型的には、ノード１００ａおよびノード１００ｂは、ＴＳＣＨによる通信制御を行うが、ＴＳＣＨ以外の時分割多重の通信方式を用いてもよい。
【００１４】
図２は、第１の実施形態にかかるノード１００の構成の一例を示すブロック図である。図２に示すように、ノード１００は、通信部１０１と、通信制御部１１１と、アプリケーション処理部１１２と、通信スケジュール制御部１１３と、処理制御部１１４と、調整部１１５と、を備えている。
【００１５】
通信部１０１は、他のノード１００（図２ではノード１００ｂ）などの外部装置との間の通信を行うためのインタフェースである。通信部１０１は、通信制御部１１１の制御により、ＴＳＣＨなどの時分割多重方式による通信を行う。
【００１６】
通信制御部１１１は、時分割多重による通信処理を制御する。時分割多重のいずれのタイミング（後述のタイムスロットなど）で通信するかは、調整部１１５が決定する。通信制御部１１１は、調整部１１５により調整されたスケジュールに従いメッセージを送受信するように、通信部１０１などを用いた通信を制御する。ＴＳＣＨのような周波数ホッピングを伴う通信方式の場合、通信制御部１１１は通信タイミングに加えて通信に使用する無線チャネルも制御して、通信部１０１などを用いて通信する。
【００１７】
アプリケーション処理部１１２は、通信制御部１１１により制御される通信処理と異なる処理であるアプリケーション処理を実行する。アプリケーション処理は、どのような処理であってもよい。例えばアプリケーション処理は、ＴＳＣＨよりも上位のネットワーク処理、センサを用いたセンシング処理、駆動部のアクチュエーション処理、および、ログ記録処理などを含む。アプリケーション処理は、通信を伴う処理であってもよいし、通信を伴わない処理であってもよい。また、アプリケーション処理は１つに限られず、２以上のアプリケーション処理が実行されてもよい。
【００１８】
通信スケジュール制御部１１３は、時分割多重による通信のスケジュールを制御する。例えば通信スケジュール制御部１１３は、送受信するデータが生じた場合に、他のノード１００との間で必要になる送信用および受信用のタイムスロットの数、および、送受信のタイミング（いずれのタイムスロットを使用するか）を制御する。ＴＳＣＨを使用する場合は、通信スケジュール制御部１１３は、必要な通信帯域を制御してもよい。決定したスケジュールは調整部１１５に渡され、調整部１１５で最終的な処理のスケジュールが調整される。
【００１９】
処理制御部１１４は、アプリケーション処理の実行を制御する。例えば処理制御部１１４は、アプリケーション処理の実行のタイミング（スケジュール）、処理の期限、および、想定される処理時間などを決定する。複数のアプリケーション処理がある場合、処理制御部１１４は、各アプリケーション処理のスケジュールを調整してもよい。決定したスケジュールは調整部１１５に渡され、調整部１１５で最終的な処理のスケジュールが調整される。従って処理制御部１１４は、調整部１１５により調整されたスケジュールに従いアプリケーションの実行を制御する。
【００２０】
調整部１１５は、時分割多重による通信処理のスケジュールと、アプリケーション処理のスケジュールとを調整する。例えば調整部１１５は、通信スケジュール制御部１１３および処理制御部１１４と協調動作し、通信処理の要件とアプリケーション処理の要件を満たし、スケジュール上の競合をできるだけ解消できるようにスケジュールを調整する。
【００２１】
他のノード１００との間でスケジュールの調整が必要な場合は、調整部１１５は、他のノード１００に対してどのような要求および提案をするか、要求および提案を受け入れるかどうかを判断する。そして調整部１１５は、他のノード１００との間でメッセージを交換し、スケジューリングを行う。
【００２２】
上記各部（通信制御部１１１、アプリケーション処理部１１２、通信スケジュール制御部１１３、処理制御部１１４、および、調整部１１５）は、例えば、１または複数のプロセッサにより実現される。例えば上記各部は、ＣＰＵ（Central  Processing  Unit）などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のＩＣ（Integrated  Circuit）などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち１つを実現してもよいし、各部のうち２以上を実現してもよい。
【００２３】
次に、時分割多重方式による通信について説明する。図３は、時分割多重方式による時間の分割単位の一例を示す図である。図３に示すように、時分割多重方式では、時間が一定の期間に区切られる。分割された期間の最小単位をタイムスロットと呼び、１つ以上のタイムスロットをまとめてスロットフレームと呼ぶ。図３の例では、１つのスロットフレームに５つのタイムスロットが含まれる。
【００２４】
各タイムスロットは、スロットフレーム内で一意に特定できるよう管理される。各タイムスロットは、時間の経過に伴って周期的に現れる。図３では、タイムスロットを０〜４のインデックスで識別している。スロットフレームごとに同じインデックスを持つタイムスロットが現れる。また、各スロットフレームは、十分に長い期間内において一意に特定できるように管理される。図３の例では、スロットフレームに“ｎ”や“ｎ＋１”のインデックスを付与している。なお、各タイムスロットに絶対的な識別子を与えて管理してもよい。その場合は無限子のタイムスロットを持つ無限に長い期間をもつスロットフレームと考えるのと同じことである。
【００２５】
ノード１００ａとノード１００ｂが通信するためには、いずれのタイムスロットでいずれのノード１００がデータを送信するか、および、いずれのノード１００がデータを受信するか、または、いずれのノード１００もデータを送受信できること（後述の「共用」）、が定義されなければならない。タイムスロットに対して、そのタイムスロット内で行われる処理を決めることをスケジューリングと呼び、スケジューリングの結果をスケジュールと呼ぶ。図４は、初期状態のスケジュールの例を示す図である。
【００２６】
図４のスケジュールでは、各スロットフレームの先頭のタイムスロット（タイムスロット０）を「共用」と定義している。「共用」のタイムスロットでは、ノード１００ａがデータを送信してもよいし、ノード１００ｂがデータを送信してもよい。すなわち、ノード１００ａとノード１００ｂは、相手に送信したいデータを持つとき、各スロットフレームの先頭のタイムスロットを使ってデータを送信することができる。送信したいデータを持たない場合、各ノード１００は、各スロットフレームの先頭のタイムスロットでデータの受信を待ち、データが送信された場合に備える。
【００２７】
ここで、新たにスケジューリングを行い、ノード１００ｂにデータ送信の機会を与えることを考える。図５は、この場合に設定するスケジュールの一例を示す図である。
【００２８】
ノード１００ａとノード１００ｂに対して手動でスケジューリングを行わない場合、6top  Protocol（6P）のような制御プロトコルを使い複数のノード１００の間でスケジュールが調整される。図６および図７は、ノード１００ａとノード１００ｂとの間でスケジュールを調整する例を示すシーケンス図である。図６は、ノード１００ｂがタイムスロットを指定して送信専用スロットを要求する例を示す。
【００２９】
まずノード１００ｂは、ノード１００ａに対してタイムスロット１をノード１００ｂ専用の送信用スロットにすることを要求するメッセージを送信する（ステップＳ１０１）。ノード１００ａは、要求を受け入れた旨を示すメッセージをノード１００ｂに通知する（ステップＳ１０２）。このような処理の結果、ノード１００ａとノード１００ｂは、図５に示すようなスケジュールを共有する。
【００３０】
図７は、いずれのタイムスロットをノード１００ｂ専用の送信スロットにするかを指定せずにノード１００ｂからノード１００ａへ要求を出す例を示す。この例では、ノード１００ｂは、いずれのタイムスロットをノード１００ｂ専用の送信スロットにするか指定せずにノード１００ａに要求メッセージを送信する（ステップＳ２０１）。ノード１００ａは、例えばタイムスロット１をノード１００ｂ専用の送信スロットにすることを提案するメッセージを送信する（ステップＳ２０２）。ノード１００ｂは、その提案を受け入れることを示すメッセージを送信する（ステップＳ２０３）。これにより、ノード１００ａとノード１００ｂは、図５に示すスケジュールを共有することができる。
【００３１】
詳細は省略するがノード１００ａがノード１００ｂに対してノード１００ａ専用の受信用スロットを要求することでも図５のスケジュールをノード１００ａおよびノード１００ｂで共有できる。
【００３２】
次に、追加のスケジューリングを行い、タイムスロット１のタイミングでノード１００ａにアプリケーション処理をさせることを考える。
【００３３】
図５に示すように、タイムスロット１はノード１００ｂ専用の送信用スロットに指定されている。このためノード１００ａは、タイムスロット１でデータの受信を待たなければならない。ノード１００ａがデータの受信待ちとアプリケーション処理とを同時に行えないとすると、タイムスロット１でのデータ受信に失敗したり、アプリケーション処理が失敗したりして、所望の動作を実現できなくなるおそれがある。
【００３４】
そこで調整部１１５は、通信処理のスケジュールおよびアプリケーション処理のスケジュールが競合する場合は、通信処理およびアプリケーション処理のうちいずれかを実行するようにスケジュールを調整する。例えば調整部１１５は、各処理に割り当てられている優先度などを参照して、優先度が高い処理を優先して実行するようにスケジュールを調整する。
【００３５】
例えばＴＳＣＨでは、“hard  cell”または“soft  cell”のセルタイプを指定することができる。“soft  cell”は、相対的に優先度が低く、スロットフレーム内で移動可能なセル（処理の単位）であることを示す。例えばセルタイプを優先度として用いることができる。
【００３６】
アプリケーション処理のほうがノード１００ｂとのデータの通信処理よりも優先度が低い場合、ノード１００ａの調整部１１５は、例えば、アプリケーション処理の実行タイミングをずらし、タイムスロット１のデータ受信処理とアプリケーション処理が競合しないようにする。
【００３７】
アプリケーション処理のほうがノード１００ｂとのデータの通信処理よりも優先度が高い場合、ノード１００ａの調整部１１５は、例えば、ノード１００ｂに対し、ノード１００ｂ専用の送信用スロットの移動（再割り当て）を要求する。
【００３８】
図８および図９は、通信処理のスケジュールを再割り当てする処理の一例を示すシーケンス図である。図８は、ノード１００ａが移動先のタイムスロットを指定して移動を要求する場合の例を示す。ノード１００ａの調整部１１５は、例えば、タイムスロット１に割り当てられた送信用スロットをタイムスロット４に移動することをノード１００ｂに要求する（ステップＳ３０１）。ノード１００ｂは、要求を受け入れた旨を示すメッセージをノード１００ａに通知する（ステップＳ３０２）。
【００３９】
図９は、ノード１００ａが移動先のタイムスロットを指定せずに移動を要求する場合の例を示す。図９に示すように、ノード１００ａの調整部１１５は、移動先のタイムスロットを指定せずに、タイムスロット１に割り当てられた送信用スロットを移動することをノード１００ｂに要求する（ステップＳ４０１）。ノード１００ｂは、例えばノード１００ｂ専用の送信スロットをタイムスロット４に移動することを提案するメッセージを送信する（ステップＳ４０２）。ノード１００ａは、その提案を受け入れることを示すメッセージを送信する（ステップＳ４０３）。このような処理の結果、ノード１００ａとノード１００ｂは、図１０に示すようなスケジュールを共有することが可能となる。
【００４０】
ノード１００ａの調整部１１５は、このようにして通信処理のスケジュールを移動した後、優先するアプリケーション処理を、タイムスロット１に割り当てる。調整部１１５は、アプリケーション処理の実行時間などに応じて、２以上のタイムスロットにアプリケーション処理を割り当ててもよい。図１１は、２つのタイムスロットをアプリケーション処理に割り当てる例を示す図である。
【００４１】
アプリケーション処理とノード１００ｂとのデータの通信処理の優先度が等しい場合、調整部１１５は、例えば以下のような方法により競合を解消する。
・先にスケジュールされている処理を優先する
・後から指定されたスケジュールを優先する
・ランダムに決定する
【００４２】
ノード１００ａのアプリケーション処理部１１２が実行するアプリケーション処理のスケジュールを、ノード１００ｂなどの外部から指示可能としてもよい。図１２および図１３は、ノード１００ａとノード１００ｂとの間でアプリケーション処理のスケジュールを調整する例を示すシーケンス図である。
【００４３】
図１２は、ノード１００ｂがタイムスロットを指定してアプリケーション処理の実行を要求する例を示す。例えばノード１００ｂの調整部１１５は、タイムスロット１でアプリケーション処理を実行することを要求するメッセージを、ノード１００ａに送信する（ステップＳ５０１）。ノード１００ａの調整部１１５は、要求を受け入れた旨を示すメッセージをノード１００ｂに通知する（ステップＳ５０２）。
【００４４】
図１３は、ノード１００ｂがタイムスロットを指定せずにアプリケーション処理の実行を要求する例を示す。例えばノード１００ｂの調整部１１５は、タイムスロットを指定せずに、アプリケーション処理を実行することを要求するメッセージをノード１００ａに送信する（ステップＳ６０１）。ノード１００ａの調整部１１５は、例えばタイムスロット１をアプリケーション処理用のタイムスロットにすることを提案するメッセージをノード１００ｂに送信する（ステップＳ６０２）。ノード１００ｂは、その提案を受け入れることを示すメッセージを送信する（ステップＳ６０３）。
【００４５】
図１２および図１３で送受信するメッセージは、通信処理のスケジューリングを行うプロトコル（例えば6top  Protocol）に準拠したメッセージを拡張して実現してもよいし、その他のプロトコルを用いて実現してもよい。
【００４６】
次に、このように構成された第１の実施形態にかかるノード１００によるスケジュール調整処理について図１４を用いて説明する。図１４は、第１の実施形態におけるスケジュール調整処理の一例を示すフローチャートである。
【００４７】
スケジュール調整処理は、例えば、調整部１１５が通信スケジュール制御部１１３から通信処理のスケジュールの調整の要求を受け付けたとき、および、処理制御部１１４からアプリケーション処理のスケジュール調整の要求を受け付けたときに開始される。
【００４８】
ＴＳＣＨでは、通常、通信処理のスケジュールは周期的に（繰り返し）実行することが指定される。アプリケーション処理も同様に周期的に実行することが指定されてもよい。通信処理およびアプリケーション処理ともに、周期的に実行せず、単発で実行することが指定されてもよい。
【００４９】
まず調整部１１５は、スケジュールの調整が要求された処理が繰り返し処理であるか否かを判定する（ステップＳ７０１）。調整部１１５は、例えば要求に付加された情報、または、要求された処理の種類などによって、要求された処理が繰り返し処理であるかを判定する。
【００５０】
繰り返し処理である場合（ステップＳ７０１：Ｙｅｓ）、調整部１１５は、例えば要求に付加された情報などによって、要求された処理の処理周期および処理時間を特定する（ステップＳ７０２）。次に調整部１１５は、要求された処理の開始時刻が指定されているか否かを判定する（ステップＳ７０３）。例えば要求された処理を実行するタイムスロットが指定されている場合などでは、調整部１１５は、開始時刻が指定されていると判定する。
【００５１】
指定されていない場合（ステップＳ７０３：Ｎｏ）、調整部１１５は、開始時刻を決定できるか否かを判定する（ステップＳ７０４）。例えば調整部１１５は、要求された処理の処理時間、および、空いているタイムスロットなどを参照し、要求された処理を開始するタイムスロットを決定できるかを判定する。必要に応じて調整部１１５は、他のノード１００との間で決定済みの通信処理のタイムスロットの移動などを調整してもよい。優先度の高い他の処理がスケジューリングされている場合などでは、調整部１１５は、要求された処理の開始時刻が決定できない（タイムスロットが調整できない）と判定する。
【００５２】
開始時刻を決定できる場合（ステップＳ７０４：Ｙｅｓ）、調整部１１５は、要求された処理（周期的な処理）の開始時刻を確定する（ステップＳ７０５）。開始時刻を決定できない場合（ステップＳ７０４：Ｎｏ）、調整部１１５は、スケジュールを調整できないことを示すエラーを、依頼元である通信スケジュール制御部１１３または処理制御部１１４に通知する（ステップＳ７０６）。
【００５３】
ステップＳ７０１で繰り返し処理でないと判定された場合（ステップＳ７０１：Ｎｏ）、調整部１１５は、例えば要求に付加された情報などによって、要求された処理の開始時刻および処理完了時刻を特定する（ステップＳ７０７）。
【００５４】
ステップＳ７０７の後、および、ステップＳ７０３で要求された処理の開始時刻が指定されていると判定された場合（ステップＳ７０３：Ｙｅｓ）、調整部１１５は、特定された処理開始時刻および処理完了時刻、または、指定された開始時刻および処理時間などを参照し、要求された処理と競合する処理があるか否かを判定する（ステップＳ７０８）。
【００５５】
競合する処理がある場合（ステップＳ７０８：Ｙｅｓ）、調整部１１５は、競合が解消可能か否かを判定する（ステップＳ７０９）。例えば調整部１１５は、優先度が低い処理に割り当てられたタイムスロットを移動することにより競合が解消できるかなどを判定する。必要に応じて調整部１１５は、他のノード１００との間で決定済みの通信処理のタイムスロットの移動などを調整してもよい。
【００５６】
競合が解消できる場合（ステップＳ７０９：Ｙｅｓ）、および、ステップＳ７０８で競合する処理がないと判定された場合（ステップＳ７０８：Ｎｏ）、調整部１１５は、要求された処理の開始時刻を確定する（ステップＳ７１０）。処理の開始時刻を確定した場合（ステップＳ７０５、ステップＳ７１０）、調整部１１５は、スケジュールの調整結果を、依頼元である通信スケジュール制御部１１３または処理制御部１１４に通知する（ステップＳ７１１）。
【００５７】
競合が解消できない場合（ステップＳ７０９：Ｎｏ）、調整部１１５は、スケジュールを調整できないことを示すエラーを、通信スケジュール制御部１１３または処理制御部１１４に通知する（ステップＳ７０６）。エラーは、スケジュールの調整を要求した依頼元ではない機能部（例えば通信スケジュール制御部１１３が依頼元の場合、処理制御部１１４）に通知してもよい。
【００５８】
エラーの通知後（ステップＳ７０６）、および、調整結果の通知後（ステップＳ７１１）、スケジュール調整処理を終了する。
【００５９】
エラーの通知を受けた通信スケジュール制御部１１３または処理制御部１１４は、必要に応じて、処理のスケジュールの再調整を調整部１１５に依頼してもよい。調整部１１５は、次のスケジュール調整の要求を受けたときに、ステップＳ７０１からの処理を再度実行する。
【００６０】
（変形例１）
アプリケーション処理の処理時間が十分に短い場合、調整部１１５は、データの通信処理とアプリケーション処理とを、同じタイムスロット内にスケジューリングすることもできる。
【００６１】
図１５は、IEEE  802.15.4-2015で規定される、１つのタイムスロット内のデータの送信処理および受信処理のタイミングを示す図である。１つのタイムスロット内の送信処理と受信処理は、それぞれ図１５の“Transmitter”と“Receiver”で示すサブ処理で構成される。
【００６２】
図１５中、例えば、“TX  frame”の区間ではデータ送信が行われる。ノード１００のハードウェア構成およびソフトウェア構成によっては、無線信号の送信処理や受信処理に必ずしもＣＰＵが介在せず、“TX  frame”の期間にアプリケーション処理が実行できる場合がある。また、“RX  of  frame”の間はデータ受信が行われるが、この期間でもアプリケーション処理が実行可能な場合がある。さらに、その他の区間では送受信のタイミング合わせなどのための待機処理が行われる場合がある。このような待機処理の期間でもアプリケーション処理が可能である。
【００６３】
また、例えば通信処理を実行する機能（通信部１０１、通信制御部１１１など）を実現する回路（例えば無線通信チップ）と、その他の処理を実行する機能（アプリケーション処理部１１２、処理制御部１１４など）を実現する回路（例えばＣＰＵ）とが分かれている構成であれば、ＣＰＵから無線通信チップに通信処理の開始を指示した後、ＣＰＵが他の処理を実行できる場合がある。すなわち、無線通信チップによる通信処理と、ＣＰＵによるアプリケーション処理を、同時に実行できる場合がある。
【００６４】
このように、ノード１００の構成（リソースなど）、および、アプリケーション処理にかかる処理時間によっては、データの通信処理と同じタイムスロットでアプリケーション処理を実行可能となる場合がある。このため調整部１１５は、ノード１００で利用可能なリソースなどに基づいて、１つのタイムスロットでデータの通信処理とアプリケーション処理を行うように判断してもよい。
【００６５】
このように、第１の実施形態にかかる通信装置では、時分割多重の通信処理とアプリケーション処理の競合を解消可能となる。
【００６６】
（第２の実施形態）
第２の実施形態では、通信処理を実行するノード以外の通信装置（中央サーバ、および、親ノードなど）が、当該ノードの処理のスケジューリングを行う。
【００６７】
図１６は、第２の実施形態にかかる通信システムの構成の一例を示すブロック図である。図１６に示すように、第２の実施形態の通信システムは、通信装置としてのノード１００−２ａ、１００−２ｂ、１００−２ｃを含む。なお、ノード１００−２ａ、１００−２ｂ、１００−２ｃは同様の構成を備えるため、区別する必要がない場合は単にノード１００−２という。ノード１００−２の個数は３に限られず、４以上であってもよい。複数のノード１００−２は、ネットワーク１６００により接続される。ネットワーク１６００は、例えばIEEE  802.15.4などの無線ネットワークであるが、有線ネットワークなどの、その他のどのような形態のネットワークであってもよい。
【００６８】
図１７は、第２の実施形態にかかるノード１００−２の構成の一例を示すブロック図である。図１７に示すように、ノード１００−２は、通信部１０１と、通信制御部１１１と、アプリケーション処理部１１２と、通信スケジュール制御部１１３と、処理制御部１１４と、調整部１１５−２と、を備えている。
【００６９】
第２の実施形態では、調整部１１５−２の機能が第１の実施形態と異なっている。その他の構成および機能は、第１の実施形態にかかるノード１００のブロック図である図２と同様であるので、同一符号を付し、ここでの説明は省略する。
【００７０】
調整部１１５−２は、他のノード１００−２で実行される通信処理、および、他のノード１００−２で実行されるアプリケーション処理についてもスケジュールを調整する点が、第１の実施形態の調整部１１５と異なっている。
【００７１】
例えばノード１００−２ａの調整部１１５−２は、ノード１００−２ｂとノード１００−２ｃに対し、いずれのタイムスロットでいずれのノード１００−２がデータを送信するか（受信するか）を要求および提案し、スケジュールを決定する。また、ノード１００−２ａの調整部１１５−２は、ノード１００−２ｂとノード１００−２ｃに対し、アプリケーション処理と実行タイミング（タイムスロット）を要求および提案し、スケジュールを決定する。
【００７２】
なお第２の実施形態のスケジュール調整処理の全体の流れは、第１の実施形態のスケジュール調整処理である図１４と同様であるため説明を省略する。
【００７３】
以下では、ノード１００−２ａが、ノード１００−２ｂおよびノード１００−２ｃで実行する処理のスケジュールを調整する場合を例に説明する。各ノード１００−２は同様の構成を備えるため、いずれのノード１００−２が主体となって、他のノード１００−２の処理のスケジュールを調整してもよい。
【００７４】
例えばノード１００−２ａの調整部１１５−２は、任意のタイミングで、ノード１００−２ｂおよびノード１００−２ｃの少なくとも一方の処理（通信処理またはアプリケーション処理）の実行をスケジュールする。調整部１１５−２は、例えば、他のノード１００−２で実行される処理についても、図４等で示すようなスケジュールを管理する。そして調整部１１５−２は、図１４に示すようなスケジュール調整処理に従い、他のノード１００−２で実行する処理のスケジュールを調整する。本実施形態の調整部１１５−２は、調整結果を、処理を実行するノード１００−２に通知する。
【００７５】
通知を受けたノード１００−２の調整部１１５−２は、通知された調整結果に従い、通信処理またはアプリケーション処理を実行するように、通信スケジュール制御部１１３または処理制御部１１４を制御する。
【００７６】
他のノード１００−２で実行するアプリケーション処理としては、以下の例が挙げられる。例えば通信システムがスマートメーターシステムであるとする。この場合、ヘッドエンドシステム、または、メーターデータ管理システムが、ノード１００−２ａに相当し、各スマートメーターが、ノード１００−２ｂおよびノード１００−２ｃに相当する。
【００７７】
例えばスマートメーターは、電力量を計測するアプリケーション処理機能（アプリケーション処理部１１２）を備える。またヘッドエンドシステムは、各スマートメーターの電力量計測タイミングを管理および制御するアプリケーション処理機能（アプリケーション処理部１１２）を備える。例えばこのアプリケーション処理機能が、各スマートメーターの電力量の計測タイミングを決定し、調整部１１５−２に調整を依頼してもよい。調整部１１５−２は、依頼に応じてスケジュールを調整し、調整結果をスマートメーターに通知してもよい。
【００７８】
スマートメーター自身が決定した計測タイミングが、スマートメーターの調整部１１５−２を経由してヘッドエンドのアプリケーション処理機能に通知されてもよい。
【００７９】
このように、第２の実施形態にかかる通信装置では、他のノードの処理を含む処理のスケジューリングを実行可能となる。
【００８０】
以上説明したとおり、第１から第２の実施形態によれば、時分割多重の通信処理とアプリケーション処理のスケジュールを統合して調整可能となる。
【００８１】
次に、第１または第２の実施形態にかかる通信装置のハードウェア構成について図１８を用いて説明する。図１８は、第１または第２の実施形態にかかる通信装置のハードウェア構成例を示す説明図である。
【００８２】
第１または第２の実施形態にかかる通信装置は、ＣＰＵ（Central  Processing  Unit）５１などの制御装置と、ＲＯＭ（Read  Only  Memory）５２やＲＡＭ（Random  Access  Memory）５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、各部を接続するバス６１を備えている。
【００８３】
第１または第２の実施形態にかかる通信装置で実行されるプログラムは、ＲＯＭ５２等に予め組み込まれて提供される。
【００８４】
第１または第２の実施形態にかかる通信装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【００８５】
さらに、第１または第２の実施形態にかかる通信装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第１または第２の実施形態にかかる通信装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【００８６】
第１または第２の実施形態にかかる通信装置で実行されるプログラムは、コンピュータを上述した通信装置の各部として機能させうる。このコンピュータは、ＣＰＵ５１がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【００８７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８８】
１００、１００−２  ノード
１０１  通信部
１１１  通信制御部
１１２  アプリケーション処理部
１１３  通信スケジュール制御部
１１４  処理制御部
１１５、１１５−２  調整部
【図１】
2019050524.tif 000003
【図２】
2019050524.tif 000004
【図３】
2019050524.tif 000005
【図４】
2019050524.tif 000006
【図５】
2019050524.tif 000007
【図６】
2019050524.tif 000008
【図７】
2019050524.tif 000009
【図８】
2019050524.tif 000010
【図９】
2019050524.tif 000011
【図１０】
2019050524.tif 000012
【図１１】
2019050524.tif 000013
【図１２】
2019050524.tif 000014
【図１３】
2019050524.tif 000015
【図１４】
2019050524.tif 000016
【図１５】
2019050524.tif 000017
【図１６】
2019050524.tif 000018
【図１７】
2019050524.tif 000019
【図１８】
2019050524.tif 000020