電子機器および通信制御方法
【課題】同じサービスが近接無線通信によって繰り返し実行されることを防止することができる電子機器を実現する。
【解決手段】ネゴシエーション停止部126は、外部デバイスからの接続解除要求信号の受信によって近接無線通信デバイス20と外部デバイスとの間の接続が解除された後にそれら近接無線通信デバイス20と外部デバイスとの間の接続が再確立された場合、通信制御部124によるネゴシエーションの実行を停止するための処理を実行する。よって、たとえ外部デバイスからの接続解除要求の受信に起因してその外部デバイスと本電子機器10との間の接続が再度確立されても、前回接続時と同じサービスが再度実行されることを防止することができる。
【解決手段】ネゴシエーション停止部126は、外部デバイスからの接続解除要求信号の受信によって近接無線通信デバイス20と外部デバイスとの間の接続が解除された後にそれら近接無線通信デバイス20と外部デバイスとの間の接続が再確立された場合、通信制御部124によるネゴシエーションの実行を停止するための処理を実行する。よって、たとえ外部デバイスからの接続解除要求の受信に起因してその外部デバイスと本電子機器10との間の接続が再度確立されても、前回接続時と同じサービスが再度実行されることを防止することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は近接無線通信を実行する電子機器および同機器に適用される通信制御方法に関する。
【背景技術】
【0002】
近年、ICカード、携帯電話機等においては、NFCのような無線通信が利用され始めている。ユーザは、ICカードまたは携帯電話をホスト装置のリーダ/ライタ部にかざすといった操作を行うだけで、認証処理、課金等のための通信を容易に行うことが出来る。
【0003】
最近では、高速の通信が可能な新たな近接無線通信技術が開発され始めている。この新たな近接無線通信技術は、認証、課金サービスのみならず、文書データ、画像データ、オーディオデータといったデータファイルをそれらデバイス間で交換することを可能にする。
【0004】
特許文献1には、モバイル端末との間で近距離非接触通信による現金預け払い等の取引処理を実行し、取引処理が完了したことに応答して、当該モバイル端末の動作機能をロックするコマンドを発行する取引装置が開示されている。この取引装置は、モバイル端末が取引処理後に第三者によって不正に利用されることを防止できる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2009−140176号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、デバイス間の近接無線通信を有用なものとするためには、デバイス同士を互いに近づけるというタッチ操作のみをトリガに、それらデバイス間の接続を自動的に確立し、そしてそれらデバイス間のデータ転送を自動的に開始されるようにすることが要求される。
【0007】
しかし、あるデバイスが他のデバイスに近接されたまま放置されると、例えば、これらデバイス間のデータ転送が完了する度にこれらデバイス間が再接続されてしまい、この結果、例えば、同一データの転送のような同じサービスが何度も繰り返し実行されしまう可能性がある。
【0008】
本発明は上述の事情を考慮してなされたものであり、同じサービスが近接無線通信によって繰り返し実行されることを防止することができる電子機器および通信制御方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上述の課題を解決するために、本発明の電子機器は、近接無線通信を実行する通信モジュールと、前記通信モジュールが非接続状態の期間中に接続要求信号を送信し、近接状態である前記通信モジュールと外部デバイスとの間の接続を確立する接続制御手段と、前記接続が確立された場合、前記通信モジュールと前記外部デバイスとの間のデータ転送を実行する通信制御手段と、前記近接状態の解除による通信タイムアウトの発生または前記外部デバイスからの接続解除要求信号の受信のいずれかのイベントが発生した場合、前記通信モジュールと前記外部デバイスとの間の接続を解除する接続解除手段とを具備し、前記通信制御手段は、前記接続解除要求信号によって前記接続が解除されてから所定時間内に前記通信モジュールと前記外部デバイスとの間の接続が再確立された場合、前記データ転送を実行しないように構成されていることを特徴とする。
【発明の効果】
【0010】
本発明によれば、同じサービスが近接無線通信によって繰り返し実行されることを防止することができる。
【図面の簡単な説明】
【0011】
【図1】本発明の一実施形態に係る電子機器のシステム構成を示すブロック図。
【図2】同実施形態の電子機器で用いられる通信制御プログラムの構成を示すブロック図。
【図3】同実施形態の電子機器の外観を示す斜視図。
【図4】同実施形態の電子機器と外部デバイスとの間で実行される近接無線通信の例を示す図。
【図5】同実施形態の電子機器に適用される、近接無線通信を制御するためのソフトエアアーキテクチャの例を示す図。
【図6】同実施形態の電子機器で使用されるデバイスモードの例を説明するための図。
【図7】同実施形態の電子機器で使用される通信制御プログラムのステート遷移の例を示す図。
【図8】2つのデバイス間で同じサービスが繰り返し実行される例を説明するための図。
【図9】2つのデバイス間で同じサービスが繰り返し実行される別の例を説明するための図。
【図10】同実施形態の電子機器によって実行される通信制御動作の例を説明するための図。
【図11】同実施形態の電子機器によって実行される通信制御処理の手順の例を説明するためのフローチャート。
【図12】同実施形態の電子機器によって実行される通信制御動作の他の例を説明するための図。
【図13】同実施形態の電子機器によって実行される通信制御処理の手順の他の例を説明するためのフローチャート。
【発明を実施するための形態】
【0012】
以下、図面を参照して、本発明の実施形態を説明する。
【0013】
図1は、本発明の一実施形態に係る電子機器の構成を示している。この電子機器10は、例えば、ポータブルコンピュータ、携帯電話、PDA、オーディオプレーヤ、TV等として実現される。この電子機器10は、システム制御部11、メモリ12、ストレージデバイス13、入力部14、液晶表示装置(LCD)15、サウンドコントローラ16、スピーカ17、インジケータ18、電源制御部19、および近接無線通信デバイス20を備える。
【0014】
システム制御部11は、電子機器10内の各部の動作を制御する。システム制御部11は、メモリ12、ストレージデバイス13、入力部14、LCD15、サウンドコントローラ16、インジケータ18、電源制御部19、および近接無線通信デバイス20に接続されている。システム制御部11は、CPU101aを備えている。
【0015】
CPU101aは、ストレージデバイス13からメモリ12にロードされる、オペレーティングシステムおよび各種アプリケーションプログラム/ユーティリティプログラムを実行するプロセッサである。アプリケーションプログラム/ユーティリティプログラムの中には、近接無線通信デバイス20の通信動作を制御する通信制御プログラム12a等が含まれている。
【0016】
通信制御プログラム12aは、近接無線通信機能を有する任意の電子デバイス(外部デバイス)と近接無線通信デバイス20との間の接続可能性を高め、且つたとえ近接無線通信デバイス20と外部デバイスとが近接状態のまま比較的長い間放置された場合であっても同一のサービスが繰り返し実行されることを防止するための通信制御機能を有している。
【0017】
ストレージデバイス13は、例えば、ハードディテスクドライブや不揮発性半導体メモリから構成されている。入力部14は、CPU111に与えるべきデータ及び指示を入力するための入力デバイスである。この入力部14は、例えば、キーボード、複数のボタンスイッチ、またはポインティングデバイス等によって実現される。
【0018】
LCD15は、電子機器10のディスプレイとして使用される表示装置である。サウンドコントローラ16はCPU101aから送信されるオーディオデータに対応する音を出力するための音源回路である。サウンドコントローラ16はCPU101aから送信されるオーディオデータをデジタルオーディオ信号からアナログオーディオ信号に変換し、そのアナログオーディオ信号をスピーカ17に出力する。スピーカ17はアナログオーディオ信号に対応する音を出力する。
【0019】
インジケータ18は近接無線通信デバイス20によって実行される近接無線通信の状態(データ転送の開始、データ転送の終了等)を提示する。このインジケータ18は、LEDのような発光部を備えている。
【0020】
電源制御部19は、ACアダプタ30を介して外部から供給される電力、または電子機器10内に設けられたバッテリ19bから供給される電力を用いて、電子機器10内の各部に電力を供給する。換言すれば、電子機器10は、AC商用電源のような外部電源、またはバッテリ19bによって駆動される。ACアダプタ30は、電子機器10内に設けることも出来る。電源制御部19は、ユーザによる電源スイッチ(P−SW)19aの操作に応じて、電子機器10をパワーオンまたはパワーオフする。
【0021】
近接無線通信デバイス20は、近接無線通信を実行する通信モジュールである。近接無線通信デバイス20は、近接無線通信デバイス20から所定の通信範囲内に存在する、近接無線通信機能を有する別のデバイス(外部デバイス)と通信することができる。近接無線通信デバイス20と外部デバイスとの間の無線通信は、近接無線通信デバイス20と外部デバイスとが近接状態である場合、つまり近接無線通信デバイス20と外部デバイスとの間の距離が通信距離(例えば3cm)以内に接近している場合にのみ可能となる。近接無線通信デバイス20と外部デバイスとが通信距離以内に接近した時、近接無線通信デバイス20と外部デバイスとの間の通信が可能となる。そして、近接無線通信デバイス20と外部デバイスとの間の接続(無線接続)を確立する動作が開始される。デバイス間の接続(無線接続)が確立された後に、例えば、SCSI,OBEX、または他の汎用プロトコルを用いたデータ転送といったサービスが、近接無線通信デバイス20と外部デバイスとの間の近接無線通信によって実行される。
【0022】
近接無線通信においては、誘導電界が用いられる。近接無線通信方式としては、例えばTransferJetを使用し得る。TransferJetは、UWBを利用した近接無線通信方式であり、高速データ転送を実現することができる。
【0023】
近接無線通信デバイス20はアンテナ20bに接続されている。アンテナ20bはカプラと称される電極であり、誘導電界を用いた無線信号により、外部デバイスに対するデータの送受信を行う。外部デバイスがアンテナ20bから通信距離(例えば3cm)以内の範囲内に接近した場合、近接無線通信デバイス20および外部デバイスそれぞれのアンテナ(カプラ)間が誘導電界によって結合され、これによって近接無線通信デバイス20と外部デバイスとの間の無線通信が実行可能となる。なお、近接無線通信デバイス20およびアンテナ20bは、一つのモジュールとして実現し得る。
【0024】
次に、図2を参照して、通信制御プログラム12aの構成について説明する。
【0025】
通信制御プログラム12aは、接続制御プログラム121および接続制御ドライバ122等を備えている。接続制御ドライバ122は近接無線通信デバイス20と外部デバイスとの間の(物理的な)接続を制御するためのプログラムである。接続制御プログラム121は、近接無線通信デバイス20と外部デバイスとの間の接続の確立および解除を管理すると共に、近接無線通信デバイス20と外部デバイスとの間のデータ転送のようなサービスの実行を制御する。
【0026】
接続制御プログラム121は、接続制御部123、通信制御部124、および接続解除部125、ネゴシエーション停止部126等を備えている。接続制御部123は、例えば、近接無線通信デバイス20と外部デバイスとの間の接続を確立するためのプログラムモジュールである。この接続制御部123は、近接無線通信デバイス20が非接続状態である場合、近接無線通信デバイス20と近接状態にある外部デバイスを検出する。より詳しくは、接続制御部123は、近接無線通信デバイス20が非接続状態の期間中に、接続要求信号を近接無線通信デバイス20を介して送信し、近接状態である近接無線通信デバイス20と外部デバイスとの間の接続を確立する。通信制御部124は、近接無線通信デバイス20と外部デバイスとの間の接続の確立に応答して、近接無線通信デバイス20と外部デバイスとの間の近接無線通信によって提供すべきサービスを決定するために外部デバイスとのネゴシエーションを実行する。そして、通信制御部124は、決定されたサービスを近接無線通信によって実行する。接続解除部125は、デバイス間の近接状態の解除による通信タイムアウトの発生、または外部デバイスからの接続解除要求信号の受信のいずれかのイベントが発生した場合、近接無線通信デバイス20と外部デバイスとの間の接続を解除する。ネゴシエーション停止部126は、外部デバイスからの接続解除要求信号の受信によって近接無線通信デバイス20と外部デバイスとの間の接続が解除された後にそれら近接無線通信デバイス20と外部デバイスとの間の接続が再確立された場合、通信制御部124によるネゴシエーションの実行を停止するための処理を実行する。
【0027】
次に、図3を参照して、電子機器10がポータブルパーソナルコンピュータとして実現されている場合を想定して、電子機器10の外観の例を説明する。
【0028】
図3は、電子機器10の外観を示す斜視図である。電子機器10は、本体41と、ディスプレイユニット42とを備えている。ディスプレイユニット42は、本体41の上面が露出される開放位置と本体41の上面がディスプレイユニット42によって覆われる閉塞位置との間を回動可能に本体41に取り付けられている。ディスプレイユニット42内には、上述のLCD15が設けられている。
【0029】
本体41は薄い箱状の筐体を有している。本体41の筐体の上面には、キーボード14a、タッチパッド14b、インジケータ18、電源スイッチ19a等が配置されている。
【0030】
本体41の上面、具体的には、本体41の上面上のパームレストレスト領域41aの一部は、通信面として機能する。すなわち、近接無線通信デバイス20およびアンテナ(カプラ)20bは、本体41の上面のパームレストレスト領域41aに対向して本体41内に設けられている。アンテナ(カプラ)20bは、本体41の上面(具体的には、本体41の上面上のパームレストレスト領域41aの一部)を介して、無線信号(誘導電界)を外部に出力するように配置されている。アンテナ(カプラ)20bに対向する本体41の上面上の小領域、つまり本体41の上面上においてアンテナ(カプラ)20bの上方に位置する小領域は、通信位置として使用される。
【0031】
ユーザは、例えば、近接無線通信機能を有する外部デバイスを本体41のパームレストレスト領域41a内の通信位置上にかざすという操作(タッチ操作)を行うことにより、外部デバイスと電子機器10との間のデータ転送のようなサービスを開始させることができる。
【0032】
図4は、携帯電話50と電子機器10との間で実行される近接無線通信の様子が示されている。携帯電話50の筐体内には、例えば、その筐体の背面に対向して近接無線通信用のアンテナ(カプラ)が設けられている。この場合、携帯電話50の筐体の背面を電子機器20の本体41のパームレスト領域上の通信位置にかざす(または携帯電話5をパームレスト領域上に置く)ことにより、携帯電話50と電子機器10との間の近接無線通信を開始することが可能となる。
【0033】
次に、図5を参照して、近接無線通信デバイス20を用いて実行される近接無線通信を制御するためのソフトウェアアーキテクチャを説明する。
【0034】
図5のソフトウェアアーキテクチャは近接無線通信を制御するためのプロトコルスタックの階層構造を示している。プロトコルスタックは、物理層(PHY)、コネクション層(CNL)、プロトコル変換層(PCL)、アプリケーション層から構成されている。
【0035】
物理層(PHY)は物理的なデータ転送を制御する層であり、OSI参照モデル内の物理層に対応する。物理層(PHY)の一部の機能または全ての機能は、近接無線通信デバイス20内のハードウェアを用いて実現することもできる。
【0036】
物理層(PHY)はコネクション層(CNL)からのデータを無線信号に変換する。コネクション層(CNL)はOSI参照モデル内のデータリンク層およびトランスポート層に対応しており、物理層(PHY)を制御してデータ通信を実行する。コネクション層(CNL)は、上述の接続制御ドライバ122によって実現し得る。
【0037】
このコネクション層(CNL)は、プロトコル変換層(PCL)から受信される接続要求、または外部デバイスから受信される接続要求に応じて、近接状態に設定されている近接無線通信デバイス20と外部デバイスとの間の(物理的な)接続(CNL接続)を確立するための処理を実行する。ここで、2つのデバイス(デバイス1,2)間のCNL接続を確立するための手順の例について説明する。デバイス1,2の内、通信を開始したい側のデバイス、例えばデバイス1は、接続要求信号(C_Req)を無線送信するための処理を実行する。この接続要求(C_Req)には、デバイス1の固有のID(UID)を含めることもできる。デバイス2は接続要求信号(C_Req)を受信するための処理を定期的に実行する。デバイス1とデバイス2とが近接状態である場合、デバイス2は、デバイス1から送信される接続要求信号(C_Req)を受信することができる。接続要求信号(C_Req)を受信した時、デバイス2は、受信した接続要求信号(C_Req)の受託を示す応答信号(C_Acc)をデバイス1に無線送信する。この応答信号(C_Acc)には、デバイス2の固有のID(UID)を含めることができる。デバイス1は、デバイス2から無線送信される応答信号(C_Acc)を受信することができる。このように、デバイス1とデバイス2との間で接続要求信号(C_Req)および応答信号(C_Acc)を送受信することにより、デバイス1とデバイス2との間の接続(CNL接続)が確立される。
【0038】
プロトコル変換層(PCL)は、OSI参照モデル内のセッション層およびプレゼンテーション層に対応しており、アプリケーション層と、コネクション層(CNL)との間に位置する。このプロトコル変換層(PCL)は、上述の接続制御プログラム121によって実現し得る。プロトコル変換層(PCL)は、2つのデバイス間の接続を確立するために、アプリケーション層内の各アプリケーション(通信プログラム)の制御とコネクション層(CNL)の制御を行う。
【0039】
より詳しくは、プロトコル変換層(PCL)は、複数種のアプリケーションプロトコル(例えば、SCSI、OBEX、他の汎用プロトコル等)にそれぞれ対応した複数の通信アダプタ(PCLアダプタ)と、プロトコル変換層(PCL)の動作を制御するPCLコントローラとを含んでいる。PCLコントローラは、実行すべきサービスに対応するアプリケーションプロトコル(例えば、SCSI、OBEX、他の汎用プロトコル等)に応じて、複数の通信アダプタ(PCLアダプタ)の一つを起動する。起動されたPCLアダプタは、そのPCLアダプタに対応するアプリケーションプログラムのデータ(ユーザデータ)を、コネクション層(CNL)が扱うことが出来る特定の伝送用データ形式に変換する。この変換処理により、どのアプリケーションプログラムによって送受信されるデータも、コネクション層(CNL)が扱うことが可能なパケット(特定の伝送用データ形式のデータ)に変換される。このプロトコル変換層(PCL)は、様々なアプリケーションプロトコルを近接無線通信で利用することを可能にする。
【0040】
本実施形態においては、接続制御プログラム121によって実現されるPCLコントローラは、図6に示されているような3つのデバイスモード(プロアクティブモード、リアクティブモード、フレキシブルモード)をサポートしており、これら3つのデバイスモードの内の1つのデバイスモードで動作し得る。
【0041】
プロアクティブモードは、ローカルデバイスと通信相手のデバイスとの間のデータ転送等を目的に、能動的に接続要求信号(接続要求コマンド)を送信するモードである。通信相手のデバイスは対向機器(ピアーデバイス)と称されることもある。例えば、近接無線通信を利用してデータ転送等を行うためのアプリケーションプログラムが起動された時、デバイスモードは、自動的にプロアクティブモードに遷移する。このプロアクティブモードはいわゆるマスタとして機能し得るデバイスモードであり、プロアクティブモードのデバイスは、通信相手のデバイスを制御してデバイス間のデータ転送のようなサービスを実行することができる。
【0042】
リアクティブモードは通信相手のデバイス(プロアクティブモードのデバイス、またはフレキシブルモードのデバイス)からの接続要求信号を待ち受けるモードである。このリアクティブモードはいわゆるスレーブとして機能するためのデバイスモードであり、リアクティブモードのデバイスは、通信相手のデバイス(プロアクティブモードのデバイス、またはフレキシブルモードのデバイス)の制御の下、デバイス間のデータ転送のようなサービスを実行することができる。
【0043】
外部電源によって駆動できない携帯電話のようなモバイルデバイスのデフォルトのデバイスモードは、その電力消費を低減するために、リアクティブモードに設定されている。ユーザの操作によってモバイルデバイス上であるアプリケーションプログラムが起動された時、そのモバイルデバイスは、リアクティブモードからプロアクティブモードに自動的に遷移することができる。
【0044】
プロアクティブモードに設定されたデバイスは、接続要求信号C_Reqを送信する。一方、リアクティブモードのデバイスは通信相手のデバイス(プロアクティブモードのデバイス、またはフレキシブルモードのデバイス)からの接続要求信号C_Reqを受信するが、接続要求信号C_Reqは送信しないので、電力消費は比較的少ない。
【0045】
フレキシブルモードは、ローカルデバイスと通信相手のデバイスとの間の接続を目的として、能動的に接続要求信号C_Reqを送信するモードである。このフレキシブルモードは、通信相手のデバイスのデバイスモード(プロアクティブモードまたはリアクティブモード)に応じてローカルデバイスのデバイスモードを自動的にプロアクティブモードまたはリアクティブモードに遷移させることが出来るモードである。
【0046】
フレキシブルモードのデバイスは、通信相手のデバイスがプロアクティブモードであればリアクティブモードに遷移し、また通信相手のデバイスがリアクティブモードであればプロアクティブモードに遷移する。プロアクティブモードまたはリアクティブモードへの遷移は、例えば、デバイス間のCNL接続が確立された後に実行される。
【0047】
例えば、ACアダプタ電源のような外部電源によって駆動可能な、パーソナルコンピュータのようなデバイスのデフォルトのデバイスモードはフレキシブルモードである。フレキシブルモードのデバイスは、接続要求信号C_Reqを送信することができる。これにより、例えば、ユーザが携帯電話のアプリケーションを何等操作せずにその携帯電話をパーソナルコンピュータ(フレキシブルモードのデバイス)に近接させた場合でも、それらデバイス間の接続を確立でき、さらに、プロアクティブモードに遷移するパーソナルコンピュータの制御の下、それらデバイス間のデータ転送のようなサービスを実行することができる。
【0048】
接続可能なデバイス間の組み合わせは、(1)プロアクティブモードのデバイスとリアクティブモードのデバイスの組み合わせ、(2)プロアクティブモードのデバイスとフレキシブルモードのデバイスの組み合わせ、(3)フレキシブルモードのデバイスとリアクティブモードのデバイスの組み合わせ、のみである。各デバイスのデフォルトデバイスモードはリアクティブモードまたはフレキシブルモードのどちらかである。
【0049】
次に、図7を参照して、本実施形態の接続制御プログラム121によって実現されるPCLコントローラのステータスの遷移について説明する。
【0050】
PCLコントローラは、非接続状態(unconnected)61、接続中状態(connecting)62、接続済み状態(connected)63の3つのステートのいずれかに遷移する。非接続状態61は、デバイス間が近接される前の状態、換言すれば近接無線通信デバイス20とどの外部デバイスとの接続も確立されていない状態である。近接無線通信デバイス20が外部デバイスから接続要求信号(C_Req)または応答信号(C_Acc)を受信した時、PCLコントローラのステートは接続中状態(connecting)62に遷移する
接続中状態(connecting)62はCNL接続を確立しているステートである。CNL接続の確立が完了すると、PCLコントローラのステートは接続済み状態(connected)63に遷移する。接続済み状態(connected)63においては、PCLコントローラは、認証、ネゴシエーション、サービス実行という3つのフェーズから構成される制御シーケンスを開始する。つまり、PCLコントローラは、まず、認証フェーズにおいて通信相手のデバイスを認証し、認証が成功すると、ネゴシエーションフェーズに入る。PCLコントローラは、ネゴシエーションフェーズにおいて通信相手のデバイスとのネゴシエーションを実行し、提供すべきサービスを決定する。ネゴシエーションが成功すると、PCLコントローラは、サービス実行フェーズに入る。PCLコントローラは、ネゴシエーションによって決定されたサービスを、サービス実行フェーズにおいて実行する。
【0051】
より具体的には、接続済み状態(connected)63には、例えば、認証中状態(authenticating)71、ネゴシエーション中状態(negotiating)72、サービス実行中状態(executing service)73、サービス無し状態(no service)74の4つのサブステート(4つのフェーズ)が定義されている。
【0052】
認証中状態(authenticating)71は上述の認証フェーズに相当する。認証中状態(authenticating)71は接続相手のデバイスを認証する処理が行われている状態である。接続相手のデバイスの認証が成功したならばPCLコントローラのステートはネゴシエーション中状態(negotiating)72に遷移し、一方、デバイスの認証が失敗したならば、PCLコントローラのステートはサービス無し状態(no service)74に遷移する。
【0053】
ネゴシエーション中状態(negotiating)72は上述のネゴシエーションフェーズに相当する。ネゴシエーション中状態(negotiating)72は、接続相手のデバイスとのネゴシエーションによって、近接無線通信デバイス20と外部デバイスとの間の近接無線通信によって提供すべきサービス(アプリケーションサービスとも云う)を決定する処理が行われている状態である。ネゴシエーション中状態(negotiating)72の期間中においては、プロアクティブモードのデバイスの制御の下、例えば、実行すべきサービスに関する情報(例えば、使用すべきPCLアダプタの種類、使用すべきアプリケーションプロトコルの種類、等)がデバイス間で交換され、これによって、デバイス間の近接無線通信によって実行すべきサービスが決定される。例えば、プロアクティブモードのデバイスは、そのデバイス上で実行されているアプリケーションプログラムに対応するサービスに関する情報を通信相手のデバイス(リアクティブモードのデバイス)に通知し得、また通信相手のデバイスは、通知されたサービスを、実行すべきサービスとして決定する。また、デフォルトのデバイスモードがフレキシブルモードであるデバイスは、例えば、通信相手のデバイス(リアクティブモードのデバイス)に予め関連付けられたサービスを、実行すべきサービスとして決定し、その決定したサービスに関する情報を通信相手のデバイスに通知するようにしてもよい。
【0054】
ネゴシエーションが成功し、使用すべきサービスが決定されると、決定されたサービスにそれぞれ対応するPCLアダプタおよびアプリケーションプログラムが起動されるとともに、PCLコントローラのステートはサービス実行中状態(executing service)73に遷移する。ネゴシエーションが失敗すると、PCLコントローラのステートは、サービス無し状態(no service)74に遷移する。
【0055】
サービス実行中状態(executing service)73は上述のサービス実行フェーズに相当する。サービス実行中状態(executing service)73は、データ転送のような決定されたサービスが近接無線通信によって実行されている状態である。決定されたサービスの実行が完了すると、PCLコントローラのステートはサービス無し状態(no service)74に遷移する。
【0056】
デバイス間の接続(CNL接続)が解除(切断)されると、PCLコントローラのステートは非接続状態(unconnected)61に遷移される。デバイス間の接続の解除を引き起こすイベントには、例えば、(1)近接状態の解除による通信タイムアウトの発生、(2)通信相手のデバイスからの接続解除要求信号C−RLSの受信、の2種類がある。
【0057】
通信タイムアウトは、デバイス間の距離が通信範囲よりも離された後にデバイス間の通信が所定のタイムアウト値以上途絶えることにより発生する。CNL層は、接続済み状態(connected)63の期間中、例えば、通信相手のデバイスが通信範囲内に存在することを確認するためのコマンド(プローブコマンド等)を定期的に送信することができる(ポーリング)。このコマンドを送信してから、このコマンドに対する通信相手のデバイスからの応答がタイムアウト値よりも長い間無い場合、CNL層は、近接状態の解除による通信タイムアウトが発生したことをPCL層に通知する。PCLコントローラは、例えば、起動しているPCLアダプタを停止する処理、起動しているアプリケーションを停止する処理等を実行して、デバイス間の接続を解除し、そして非接続状態(unconnected)61に遷移する。
【0058】
接続解除要求信号C−RLSは明示的に接続の解除を要求するコマンドである。接続中状態(connecting)62にあるデバイスは、例えば、そのステートがサービス無し状態(no service)74である期間などにおいて、必要に応じて、通信相手のデバイスに対して接続解除要求信号C−RLSを送信することができる。
【0059】
通信相手のデバイスからの接続解除要求信号C−RLSを受信した時も、PCLコントローラは、通信タイムアウトが発生した場合と同様に、例えば、起動しているPCLアダプタを停止する処理、起動しているアプリケーションを停止する処理等を実行して、デバイス間の接続を解除し、そして非接続状態(unconnected)61に遷移する。
【0060】
本実施形態の電子機器10はフレキシブルモードで動作することが出来る。換言すれば、電子機器10のデフォルトデバイスモードはフレキシブルモードであってもよい。したがって、非接続状態(unconnected)61の期間中においては、PCLコントローラは、リアクティブモードのデバイスとの接続も確立できるようにするために、CNL層を制御して接続要求信号C−Reqを送信する。
【0061】
非接続状態(unconnected)61においては、電子機器10のPCLコントローラは接続要求信号を送信する。しかし、通信タイムアウトに起因する接続の解除によってPCLコントローラのステートが非接続状態(unconnected)61に遷移した場合には、電子機器10に前回接続されていた通信相手のデバイスは通信範囲内にもはや存在しない。このため、たとえPCLコントローラが接続要求信号を送信しても、ユーザがこの通信相手のデバイスと電子機器10とを再び近づけない限り、この通信相手のデバイスと電子機器10(近接無線通信デバイス20)との間の接続が再び確立されることはない。
【0062】
一方、通信相手のデバイスからの接続解除要求信号C−RLSの受信に起因してPCLコントローラのステートが非接続状態(unconnected)61に遷移した場合には、この通信相手のデバイスは電子機器10(近接無線通信デバイス20)に近接された状態のまま維持されている可能性がある。このため、この通信相手のデバイスと電子機器10(近接無線通信デバイス20)との間の接続が自動的に再確立されてしまう可能性がある。この場合、この通信相手のデバイスと電子機器10(近接無線通信デバイス20)との間で、前回接続時に実行されたデータ転送のようなサービスと同じサービスが再び実行されてしまう可能性がある。通信相手のデバイスは、サービス無し状態(no service)74に遷移する度に、接続解除要求信号C−RLSを送信するかもしれない。この場合、同じサービスが何度も繰り返し実行されるという不具合が発生する。例えば、幾つかの同じデータファイルが通信相手のデバイスと電子機器10(近接無線通信デバイス20)との間で繰り返し転送されるといった事態が発生するかもしれない。
【0063】
図8は、同じサービスが繰り返し実行されるシーケンスの例を示している。図8では、デフォルトデバイスモードがフレキシブルモードであるデバイスAとデフォルトデバイスモードがリアクティブモードであるデバイスBとの間の近接無線通信を想定している。
【0064】
(1)デバイスAとデバイスBとの間の接続が確立された後、デバイスAのデバイスモードはプロアクティブモードに遷移する。デバイスAの制御の下、デバイスAとデバイスBとの間でデータ転送が実行される。例えばデータ転送が完了した時に、デバイスBは、接続解除要求信号C−RLS(切断コマンド)を送信するかもしれない。
(2)デバイスAがデバイスBからの接続解除要求信号C−RLSを受信した時、デバイスAは、そのローカルデバイスのデバイスモードをデフォルトデバイスモードであるフレキシブルモードに変更する。
(3)デバイスAは、対向機器を検出するために、接続要求信号C_Reqを送信する。デバイスAは、接続要求信号C_Reqに対する受託を示す応答信号C_Acc(図中“OK”)をデバイスBから受信した時、デバイスAとデバイスBとの間の接続を確立する。
(4)デバイスAは、デバイスBとのネゴシエーションによってサービスを決定し、例えば、デバイスBに関連付けられたアプリケーションのようなアプリケーションを起動すると共に、自身のデバイスモードをプロアクティブモードに変更する。
(5)(4)で起動されたアプリケーションがファイル転送を開始する。データ転送が完了した時に、デバイスBは、接続解除要求信号C−RLS(切断コマンド)を再び送信するかもしれない。この結果、図8の点線で囲むシーケンス(再接続、データ転送)が繰り返されてしまう。
【0065】
図9は、同じサービスが繰り返し実行されるシーケンスの例を示している。図9では、フレキシブルモードのデバイスAとプロアクティブモードに設定されたデバイスBとの間の近接無線通信を想定している。
【0066】
(1)デバイスAとデバイスBとの間の接続が確立された後、デバイスAのデバイスモードはリアクティブモードに遷移する。プロアクティブモードであるデバイスBの制御の下、デバイスAとデバイスBとの間でデータ転送が実行される。例えばデータ転送が完了した時に、デバイスBは、接続解除要求信号C−RLS(切断コマンド)を送信するかもしれない。
(2)デバイスAがデバイスBからの接続解除要求信号C−RLSを受信した時、デバイスAは、そのローカルデバイスのデバイスモードをデフォルトデバイスモードであるフレキシブルモードに変更する。デバイスBも、そのデフォルトデバイスモードであるリアクティブモードに遷移する。
【0067】
(3)デバイスAは、対向機器を検出するために、接続要求信号C_Reqを送信する。デバイスAは、接続要求信号C_Reqに対する受託を示す応答信号C_Acc(図中“OK”)をデバイスBから受信した時、デバイスAとデバイスBとの間の接続を確立する。
(4)デバイスAは、デバイスBとのネゴシエーションによってサービスを決定し、例えば、デバイスBに関連付けられたアプリケーションのようなアプリケーションを起動すると共に、自身のデバイスモードをプロアクティブモードに変更する。
(5)(4)で起動されたアプリケーションがファイル転送を開始する。データ転送が完了した時に、デバイスBは、接続解除要求信号C−RLS(切断コマンド)を再び送信するかもしれない。この結果、図9の点線で囲むシーケンス(再接続、データ転送)が繰り返されてしまう。
【0068】
フレキシブルモードの機能(例えば、非接続状態において自動的に接続要求信号を送信する機能)は、デバイス間の接続性を高めるという点で有用である。しかし、上述したように、デバイス間が近接状態のまま放置されると、再接続およびデータ転送の繰り返しという問題が発生する可能性がある。
【0069】
本実施形態の接続制御プログラム121は、このような再接続およびデータ転送の繰り返しの発生を防止できるようにするために、外部デバイス(B1)からの接続解除要求信号によってCNL接続が解除された後に近接無線通信デバイス20との新たな接続が確立された外部デバイス(B2)の識別子と、接続解除要求信号を送信した外部デバイス(B1)の識別子とを比較し、これら識別子が一致しない場合(外部デバイス(B2)は外部デバイス(B1)と異なるデバイスである)は、外部デバイス(B2)と近接無線通信デバイス20との間のデータ転送を実行し、これら識別子が一致した場合(外部デバイス(B2)と外部デバイス(B1)が同じデバイスである)、外部デバイス(B2)と近接無線通信デバイス20との間のデータ転送を実行しない。例えば、接続制御プログラム121は、これら識別子が一致した場合には、外部デバイス(B2)と近接無線通信デバイス20との間のデータ転送が再度実行されるのを防止するために、外部デバイス(B2)とのネゴシエーションの実行を停止する。
【0070】
ネゴシエーションの実行を停止する処理は、外部デバイスからの接続解除要求信号の受信に起因してローカルデバイスとその外部デバイスとの間の接続が解除された後にローカルデバイスとその外部デバイスとの間の接続が再確立されたことを条件に実行される。通信タイムアウト後にデバイス間の接続が確立された場合には、データ転送のための制御シーケンス(接続処理とも云う)、つまり、認証、ネゴシエーション、およびサービス実行は、無条件に実行される。
【0071】
このように、ネゴシエーションフェーズにおいて処理を停止することは、フレキシブルモードのデバイスと外部デバイスとの間で再接続およびデータ転送が繰り返されることを防止することができる。
【0072】
なお、例えば、同じデバイスとの接続処理動作を続けてもよいかどうかをユーザに問い合わせるためのメッセージをLCD15に表示してもよい。もし接続処理を続行しないことがユーザによって選択されたならば、接続制御プログラム121は、接続処理の実行(例えば、ネゴシエーションの実行)が停止される。一方、もし接続処理動作の続行がユーザによって選択されたならば、接続制御プログラム121は、接続処理を続行する。
【0073】
次に、図10を参照して、本実施形態の接続制御プログラム121によって実行される通信制御動作の例について説明する。図10において、デバイスAは、デフォルトデバイスモードがフレキシブルモードであるデバイスであり、デバイスBは、デフォルトデバイスモードがリアクティブモードであるデバイスである。本実施形態の電子機器10はデバイスAに相当する。
【0074】
デバイスAとデバイスBとの間の接続が確立された後、デバイスAのデバイスモードはプロアクティブモードに遷移する。デバイスAの制御の下、デバイスAとデバイスBとの間でデータ転送が実行される。例えばデータ転送が完了した時に、デバイスBは、接続解除要求信号C−RLS(切断コマンド)を送信するかもしれない。
デバイスAがデバイスBからの接続解除要求信号C−RLSを受信した時、デバイスAは、非接続状態に遷移すると共に、そのデバイスAのデバイスモードをデフォルトデバイスモードであるフレキシブルモードに変更する。デバイスAは、対向機器を検出するために、接続要求信号C_Reqを送信する。デバイスAは、接続要求信号C_Reqに対する受託を示す応答信号C_Acc(図中“OK”)をデバイスBから受信した時、デバイスAとデバイスBとの間の接続を確立する。そして、デバイスAの接続制御プログラム121は、接続中状態(connecting)62から接続済み状態(connected)63に遷移する。
【0075】
このようにして、接続解除要求信号C−RLSによる接続解除後にデバイスAとデバイスBとの間の接続が再確立された時、接続制御プログラム121は、同じデバイスとの接続処理の続行の有無をユーザに確認するためのメッセージボックス71、つまりデバイスAとデバイスBとの間の近接無線通信を続行するかをユーザに確認するためのメッセージ、をLCD15の表示画面上に表示する。メッセージボックス71は、例えば、次の3つの条件が成立したときに表示される。
【0076】
条件1: 直前の接続解除の要因が外部デバイスからの接続解除要求信号C−RLSの受信である。
条件2: 接続解除要求信号C−RLSの受信から所定時間(X秒)内に新たな接続が確立された。
条件3: ローカルデバイスに新たに接続された外部デバイスの識別子(UID)とローカルデバイスに前回接続された外部デバイスの識別子(UID)とが同一である(つまり、同じ外部デバイスとの接続が再確立された)。
【0077】
もし接続解除要求信号C−RLSを送信した外部デバイスがローカルデバイスに近接された状態のまま放置されているならば、所定時間(X秒)内に、接続解除要求信号C−RLSを送信した外部デバイスとローカルデバイスとの間の新たな接続が自動的に確立される。したがって、条件2は、接続解除要求信号C−RLSを送信した外部デバイスがローカルデバイスに近接された状態のまま放置されていたことを確認するための条件として使用できる。もし、ユーザが、接続解除要求信号C−RLSを送信した外部デバイスを一旦ローカルデバイスから離した後に再びその外部デバイスをローカルデバイスにタッチしたならば、条件2は成立しない場合が多い。
【0078】
なお、条件1と条件2の2つの条件が成立したときに、メッセージボックス71を表示しても良い。ローカルデバイスに新たに接続された外部デバイスのUIDとローカルデバイスに前回接続された外部デバイスのUIDとが同一であるか否かは、例えば、認証中状態(authenticating)71における認証処理によって確認することが出来る。すなわち、デバイスAの接続制御プログラム121は、接続済み状態(connected)63内の認証中状態(authenticating)71に入ると、ローカルデバイスに新たに接続された外部デバイスのUIDと、ローカルデバイスに前回接続された外部デバイス(直前に接続解除要求信号C−RLSを送信した外部デバイス)のUIDとを比較し、それらUIDが一致するか否かを判定する。
【0079】
メッセージボックス71内の「はい」ボタンがユーザによってクリックされたならば、接続制御プログラム121は、通常通り、実行すべきサービスをネゴシエーションフェーズにおいて決定し、そして決定されたサービスをサービス実行フェーズにおいて実行する。一方、メッセージボックス71内の「いいえ」ボタンがユーザによってクリックされたならば、接続制御プログラム121は、ネゴシエーションフェーズにおいて処理を停止する。これにより、接続処理の進行は、例えば、ネゴシエーションが開始される直前(ネゴシエーションフェーズの先頭)で停止されるか、またはネゴシエーションの途中で停止される。よって、デバイスAとデバイスBとの間ではデータ転送のようないかなるサービスも実行されない。
【0080】
デバイスAのステートが接続済み状態(connected)63の期間中においては、デバイスAは、通信タイムアウトの発生の有無を監視することが出来る。したがって、デバイスAのPCLコントローラがネゴシエーションフェーズにおいて処理を停止している状態であっても、もしユーザによってデバイスBがデバイスAから離されたならば、通信タイムアウトの発生が検出され、これによってデバイスAのステート(接続制御ブログラム121のステート)は非接続状態(unconnected)61に遷移される。よって、デバイスAは新たな対向機器との接続を確立することが出来る。
【0081】
次に、図11のフローチャートを参照して、図10のシーケンスを実現するために通信制御プログラム121によって実行される通信制御処理の手順の例を説明する。
【0082】
通信制御プログラム121は、データ転送のようなサービス実行の完了を対向機器に通知した後、またはサービス実行の完了が対向機器からローカルデバイスに通知された後(ステップS11)、対向機器からの接続解除要求信号C−RLS(切断コマンド)を受信したか否かを判定する(ステップS12)。
【0083】
接続解除要求信号C−RLSが受信されていないならば(ステップS12のNO)、通信制御プログラム121のステートは、サービス無し状態(no service)74に遷移する(ステップS13)。通信制御プログラム121のステートがサービス無し状態(no service)74の期間中に通信タイムアウトによる切断イベントが発生すると(ステップS14のYES)、通信制御プログラム121は、ローカルデバイス(電子機器10の近接無線通信デバイス20)と対向機器との間の接続を解除するために、必要に応じて、アクティブなPCLアダプタを停止するといった処理を実行し、そしてローカルデバイスのPCLコントローラのステートを非接続状態(切断状態)61に設定する(ステップS15)。非接続状態(切断状態)61においては、通信制御プログラム121は、CNL層と共同して接続要求信号を送信する処理を開始する。
【0084】
接続解除要求信号C−RLSが受信されたならば(ステップS12のYES)、通信制御プログラム121は、ローカルデバイスと対向機器との間の接続を解除するための接続解除処理(切断処理)を実行し、ローカルデバイスのPCLコントローラのステートを非接続状態(切断状態)61に設定する(ステップS16)。ステップS16では、例えば、アクティブなPCLアダプタを停止するといった処理が実行される。
【0085】
そして、通信制御プログラム121は、ローカルデバイスのデバイスモードをデフォルトモードであるフレキシブルモードに戻す(ステップS17)。そして、通信制御プログラム121は、接続要求信号を送信する処理を開始する(ステップS18)。
【0086】
非接続状態(切断状態)61において、通信制御プログラム121が対向機器からの応答信号C_Acc(または対向機器からの接続要求信号C_Req)を受信したならば(ステップS19のYES)、通信制御プログラム121は、CNL層と共同して、応答信号C_Accまたは接続要求信号C_Reqを送信した対向機器とローカルデバイスとの間の接続を確立し、そして接続済み状態(connected)63内の認証中状態(authenticating)71に遷移する。通信制御プログラム121は、対向機器を認証し、そして上述の3つの条件が満たされているか否かを判定する(ステップS20)。
【0087】
3つの条件が満たされているならば(ステップS20のYES)、通信制御プログラム121は、メッセージボックス71をLCD15に表示して、同じデバイスとの接続処理を続行するかどうかをユーザに確認する(ステップS21)。
【0088】
もし接続処理の続行がユーザによって選択されたならば(ステップS22のYES)、通信制御プログラム121は、データ転送の準備を行う(ステップS23)。ステップS23では、通信制御プログラム121はネゴシエーションフェーズ(ネゴシエーション中状態72)に入る。そして、通信制御プログラム121は、ローカルデバイスと対向機器との間の近接無線通信によって提供すべきサービスを決定するために、対向機器とのネゴシエーションをそのネゴシエーションフェーズにおいて実行する。そして、通信制御プログラム121は、サービス実行フェーズ(サービス実行中状態73)に入り、決定されたサービス(データ転送)をそのサービス実行フェーズにおいて実行する(ステップS24)。
【0089】
もし接続処理を続行しないことがユーザによって選択されたならば(ステップS22のNO)、通信制御プログラム121は、ネゴシエーションフェーズにおいて処理を停止する(ステップS25)。この結果、対向機器とのネゴシエーションは実行されないので、ローカルデバイスと対向機器との間の近接無線通信によって提供すべきサービスは決定されない。したがって、ローカルデバイスおよび対向機器のどちらも、PCLアダプタおよびアプリケーションプログラムの各々を選択および起動することができない。よってサービス(データ転送)は開始されない。接続処理が停止されている期間中に通信タイムアウトによる切断イベントが発生すると(ステップS26のYES)、通信制御プログラム121は、ローカルデバイスのPCLコントローラのステートを非接続状態(切断状態)61に設定する(ステップS15)。
【0090】
次に、図12を参照して、本実施形態の接続制御プログラム121によって実行される通信制御動作の他の例について説明する。図12において、デバイスAは、デフォルトデバイスモードがフレキシブルモードであるデバイスであり、デバイスBは、デフォルトデバイスモードがリアクティブモードであるデバイスである。本実施形態の電子機器10はデバイスAに相当する。
【0091】
デバイスAとデバイスBとの間の接続が確立された後、デバイスAのデバイスモードはプロアクティブモードに遷移する。デバイスAの制御の下、デバイスAとデバイスBとの間でデータ転送が実行される。例えばデータ転送が完了した時に、デバイスBは、接続解除要求信号C−RLS(切断コマンド)を送信するかもしれない。
デバイスAがデバイスBからの接続解除要求信号C−RLSを受信した時、デバイスAの接続制御プログラム121は、この時点で、メッセージボックス72をLCD15に表示する。このメッセージボックス72は、機器が電子機器10にタッチされたままになっていることをユーザに通知すると共に、この機器との再接続(接続処理の続行)の有無をユーザに確認するために用いられる。さらに、このメッセージボックス72には、もし再接続を望まない場合には機器を電子機器10から離すことをユーザに勧めるメッセージも表示される。
【0092】
接続制御プログラム121の制御の下、デバイスAは処理を進める。すなわち、デバイスAは、非接続状態に遷移すると共に、そのデバイスAのデバイスモードをデフォルトデバイスモードであるフレキシブルモードに変更する。デバイスAは、対向機器を検出するために、接続要求信号C_Reqを送信する。デバイスAは、接続要求信号C_Reqに対する受託を示す応答信号C_Acc(図中“OK”)をデバイスBから受信した時、デバイスAとデバイスBとの間の接続を確立する。
【0093】
メッセージボックス72内の「はい」ボタンがユーザによってクリックされたならば、接続制御プログラム121は、通常通り、実行すべきサービスをネゴシエーションフェーズにおいて決定し、そして決定されたサービスをサービス実行フェーズにおいて実行する。一方、メッセージボックス72内の「いいえ」ボタンがユーザによってクリックされたならば、接続制御プログラム121は、ネゴシエーションフェーズにおいて処理を停止する。これにより、接続処理の進行は、例えば、ネゴシエーションが開始される直前で停止されるか、またはネゴシエーションの途中で停止される。よって、デバイスAとデバイスBとの間ではデータ転送のようないかなるサービスも実行されない。
【0094】
もしユーザによってデバイスBがデバイスAから離されたならば、通信タイムアウトの発生が検出され、これによってデバイスAのステート(接続制御ブログラム121のステート)は非接続状態(unconnected)61に遷移される。
【0095】
次に、図13のフローチャートを参照して、図12のシーケンスを実現するために通信制御プログラム121によって実行される通信制御処理の手順の例を説明する。
【0096】
通信制御プログラム121は、データ転送のようなサービス実行の完了を対向機器に通知した後、またはサービス実行の完了が対向機器からローカルデバイスに通知された後(ステップS31)、対向機器からの接続解除要求信号C−RLS(切断コマンド)を受信したか否かを判定する(ステップS32)。
【0097】
接続解除要求信号C−RLSが受信されていないならば(ステップS32のNO)、通信制御プログラム121のステートは、サービス無し状態(no service)74に遷移する(ステップS33)。通信制御プログラム121のステートがサービス無し状態(no service)74の期間中に通信タイムアウトによる切断イベントが発生すると(ステップS34のYES)、通信制御プログラム121は、ローカルデバイス(電子機器10の近接無線通信デバイス20)と対向機器との間の接続を解除するために、必要に応じて、アクティブなPCLアダプタを停止するといった処理を実行し、そしてローカルデバイスのPCLコントローラのステートを非接続状態(切断状態)61に設定する(ステップS35)。非接続状態(切断状態)61においては、通信制御プログラム121は、CNLと共同して接続要求信号を送信する処理を開始する。
【0098】
接続解除要求信号C−RLSが受信されたならば(ステップS32のYES)、通信制御プログラム121は、まず、メッセージボックス72をLCD15に表示して、機器が電子機器10にタッチされたままになっていることをユーザに知らせるとともに、その機器との再接続の意志をユーザに確認する(ステップS36)。
【0099】
メッセージボックス72が表示されている状態で、通信制御プログラム121は、ローカルデバイス(電子機器10)と対向機器との間の接続を解除するための接続解除処理(切断処理)を実行し、ローカルデバイスのPCLコントローラのステートを非接続状態(切断状態)61に設定する(ステップS37)。そして、通信制御プログラム121は、ローカルデバイスのデバイスモードをデフォルトモードであるフレキシブルモードに戻す(ステップS38)。そして、通信制御プログラム121は、接続要求信号を送信する処理を開始する(ステップS39)。
【0100】
非接続状態(切断状態)61において、通信制御プログラム121が対向機器からの応答信号C_Acc(または対向機器からの接続要求信号C_Req)を受信したならば(ステップS40のYES)、通信制御プログラム121は、CNL層と共同して、応答信号C_Accまたは接続要求信号C_Reqを送信した対向機器とローカルデバイスとの間の接続を確立し、そして接続済み状態(connected)63内の認証中状態(authenticating)71に遷移する。
【0101】
通信制御プログラム121は、メッセージボックス72内の「はい」ボタンまたは「いいえ」ボタンのいずれがユーザによって選択されているかを判定する(ステップS41)。もし「はい」ボタン、つまり接続処理の続行がユーザによって選択されたならば(ステップS41のYES)、通信制御プログラム121は、データ転送の準備を行う(ステップS42)。ステップS42では、通信制御プログラム121はネゴシエーションフェーズ(ネゴシエーション中状態72)に入る。そして、通信制御プログラム121は、ローカルデバイスと対向機器との間の近接無線通信によって提供すべきサービスを決定するために、対向機器とのネゴシエーションをそのネゴシエーションフェーズにおいて実行する。そして、通信制御プログラム121は、サービス実行フェーズ(サービス実行中状態73)に入り、決定されたサービス(データ転送)をそのサービス実行フェーズにおいて実行する(ステップS43)。
【0102】
もし「いいえ」ボタンつまり接続処理を続行しないことがユーザによって選択されるか、あるいは「はい」ボタンまたは「いいえ」ボタンのいずれもユーザによって選択されなかったならば(ステップS41のNO)、通信制御プログラム121は、ネゴシエーションフェーズにおいて処理を停止する(ステップS44)。この結果、ローカルデバイスと対向機器との間の近接無線通信によって提供すべきサービスは決定されない。したがって、ローカルデバイスおよび対向機器のどちらも、PCLアダプタおよびアプリケーションプログラムの各々を選択および起動することができないので、サービスは開始されない。接続処理が停止されている期間中に通信タイムアウトによる切断イベントが発生すると(ステップS45のYES)、通信制御プログラム121は、ローカルデバイスのPCLコントローラのステートを非接続状態(切断状態)61に設定する(ステップS35)。
【0103】
以上のように、本実施形態によれば、たとえ外部デバイスからの接続解除要求の受信に起因してその外部デバイスと本電子機器10との間の接続が再度確立されても、前回接続時と同じサービスが再度実行されることを防止することができる。
【0104】
なお、本実施形態の接続制御プログラムの機能はハードウェアモジュールによって実現することも可能である。
【0105】
また本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0106】
10…電子機器、11…システム制御部、12a…通信制御プログラム、101a…CPU、20…近接無線通信デバイス、121…接続制御プログラム、123…接続制御部、124…通信制御部、125…接続解除部。
【技術分野】
【0001】
本発明は近接無線通信を実行する電子機器および同機器に適用される通信制御方法に関する。
【背景技術】
【0002】
近年、ICカード、携帯電話機等においては、NFCのような無線通信が利用され始めている。ユーザは、ICカードまたは携帯電話をホスト装置のリーダ/ライタ部にかざすといった操作を行うだけで、認証処理、課金等のための通信を容易に行うことが出来る。
【0003】
最近では、高速の通信が可能な新たな近接無線通信技術が開発され始めている。この新たな近接無線通信技術は、認証、課金サービスのみならず、文書データ、画像データ、オーディオデータといったデータファイルをそれらデバイス間で交換することを可能にする。
【0004】
特許文献1には、モバイル端末との間で近距離非接触通信による現金預け払い等の取引処理を実行し、取引処理が完了したことに応答して、当該モバイル端末の動作機能をロックするコマンドを発行する取引装置が開示されている。この取引装置は、モバイル端末が取引処理後に第三者によって不正に利用されることを防止できる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2009−140176号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、デバイス間の近接無線通信を有用なものとするためには、デバイス同士を互いに近づけるというタッチ操作のみをトリガに、それらデバイス間の接続を自動的に確立し、そしてそれらデバイス間のデータ転送を自動的に開始されるようにすることが要求される。
【0007】
しかし、あるデバイスが他のデバイスに近接されたまま放置されると、例えば、これらデバイス間のデータ転送が完了する度にこれらデバイス間が再接続されてしまい、この結果、例えば、同一データの転送のような同じサービスが何度も繰り返し実行されしまう可能性がある。
【0008】
本発明は上述の事情を考慮してなされたものであり、同じサービスが近接無線通信によって繰り返し実行されることを防止することができる電子機器および通信制御方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
上述の課題を解決するために、本発明の電子機器は、近接無線通信を実行する通信モジュールと、前記通信モジュールが非接続状態の期間中に接続要求信号を送信し、近接状態である前記通信モジュールと外部デバイスとの間の接続を確立する接続制御手段と、前記接続が確立された場合、前記通信モジュールと前記外部デバイスとの間のデータ転送を実行する通信制御手段と、前記近接状態の解除による通信タイムアウトの発生または前記外部デバイスからの接続解除要求信号の受信のいずれかのイベントが発生した場合、前記通信モジュールと前記外部デバイスとの間の接続を解除する接続解除手段とを具備し、前記通信制御手段は、前記接続解除要求信号によって前記接続が解除されてから所定時間内に前記通信モジュールと前記外部デバイスとの間の接続が再確立された場合、前記データ転送を実行しないように構成されていることを特徴とする。
【発明の効果】
【0010】
本発明によれば、同じサービスが近接無線通信によって繰り返し実行されることを防止することができる。
【図面の簡単な説明】
【0011】
【図1】本発明の一実施形態に係る電子機器のシステム構成を示すブロック図。
【図2】同実施形態の電子機器で用いられる通信制御プログラムの構成を示すブロック図。
【図3】同実施形態の電子機器の外観を示す斜視図。
【図4】同実施形態の電子機器と外部デバイスとの間で実行される近接無線通信の例を示す図。
【図5】同実施形態の電子機器に適用される、近接無線通信を制御するためのソフトエアアーキテクチャの例を示す図。
【図6】同実施形態の電子機器で使用されるデバイスモードの例を説明するための図。
【図7】同実施形態の電子機器で使用される通信制御プログラムのステート遷移の例を示す図。
【図8】2つのデバイス間で同じサービスが繰り返し実行される例を説明するための図。
【図9】2つのデバイス間で同じサービスが繰り返し実行される別の例を説明するための図。
【図10】同実施形態の電子機器によって実行される通信制御動作の例を説明するための図。
【図11】同実施形態の電子機器によって実行される通信制御処理の手順の例を説明するためのフローチャート。
【図12】同実施形態の電子機器によって実行される通信制御動作の他の例を説明するための図。
【図13】同実施形態の電子機器によって実行される通信制御処理の手順の他の例を説明するためのフローチャート。
【発明を実施するための形態】
【0012】
以下、図面を参照して、本発明の実施形態を説明する。
【0013】
図1は、本発明の一実施形態に係る電子機器の構成を示している。この電子機器10は、例えば、ポータブルコンピュータ、携帯電話、PDA、オーディオプレーヤ、TV等として実現される。この電子機器10は、システム制御部11、メモリ12、ストレージデバイス13、入力部14、液晶表示装置(LCD)15、サウンドコントローラ16、スピーカ17、インジケータ18、電源制御部19、および近接無線通信デバイス20を備える。
【0014】
システム制御部11は、電子機器10内の各部の動作を制御する。システム制御部11は、メモリ12、ストレージデバイス13、入力部14、LCD15、サウンドコントローラ16、インジケータ18、電源制御部19、および近接無線通信デバイス20に接続されている。システム制御部11は、CPU101aを備えている。
【0015】
CPU101aは、ストレージデバイス13からメモリ12にロードされる、オペレーティングシステムおよび各種アプリケーションプログラム/ユーティリティプログラムを実行するプロセッサである。アプリケーションプログラム/ユーティリティプログラムの中には、近接無線通信デバイス20の通信動作を制御する通信制御プログラム12a等が含まれている。
【0016】
通信制御プログラム12aは、近接無線通信機能を有する任意の電子デバイス(外部デバイス)と近接無線通信デバイス20との間の接続可能性を高め、且つたとえ近接無線通信デバイス20と外部デバイスとが近接状態のまま比較的長い間放置された場合であっても同一のサービスが繰り返し実行されることを防止するための通信制御機能を有している。
【0017】
ストレージデバイス13は、例えば、ハードディテスクドライブや不揮発性半導体メモリから構成されている。入力部14は、CPU111に与えるべきデータ及び指示を入力するための入力デバイスである。この入力部14は、例えば、キーボード、複数のボタンスイッチ、またはポインティングデバイス等によって実現される。
【0018】
LCD15は、電子機器10のディスプレイとして使用される表示装置である。サウンドコントローラ16はCPU101aから送信されるオーディオデータに対応する音を出力するための音源回路である。サウンドコントローラ16はCPU101aから送信されるオーディオデータをデジタルオーディオ信号からアナログオーディオ信号に変換し、そのアナログオーディオ信号をスピーカ17に出力する。スピーカ17はアナログオーディオ信号に対応する音を出力する。
【0019】
インジケータ18は近接無線通信デバイス20によって実行される近接無線通信の状態(データ転送の開始、データ転送の終了等)を提示する。このインジケータ18は、LEDのような発光部を備えている。
【0020】
電源制御部19は、ACアダプタ30を介して外部から供給される電力、または電子機器10内に設けられたバッテリ19bから供給される電力を用いて、電子機器10内の各部に電力を供給する。換言すれば、電子機器10は、AC商用電源のような外部電源、またはバッテリ19bによって駆動される。ACアダプタ30は、電子機器10内に設けることも出来る。電源制御部19は、ユーザによる電源スイッチ(P−SW)19aの操作に応じて、電子機器10をパワーオンまたはパワーオフする。
【0021】
近接無線通信デバイス20は、近接無線通信を実行する通信モジュールである。近接無線通信デバイス20は、近接無線通信デバイス20から所定の通信範囲内に存在する、近接無線通信機能を有する別のデバイス(外部デバイス)と通信することができる。近接無線通信デバイス20と外部デバイスとの間の無線通信は、近接無線通信デバイス20と外部デバイスとが近接状態である場合、つまり近接無線通信デバイス20と外部デバイスとの間の距離が通信距離(例えば3cm)以内に接近している場合にのみ可能となる。近接無線通信デバイス20と外部デバイスとが通信距離以内に接近した時、近接無線通信デバイス20と外部デバイスとの間の通信が可能となる。そして、近接無線通信デバイス20と外部デバイスとの間の接続(無線接続)を確立する動作が開始される。デバイス間の接続(無線接続)が確立された後に、例えば、SCSI,OBEX、または他の汎用プロトコルを用いたデータ転送といったサービスが、近接無線通信デバイス20と外部デバイスとの間の近接無線通信によって実行される。
【0022】
近接無線通信においては、誘導電界が用いられる。近接無線通信方式としては、例えばTransferJetを使用し得る。TransferJetは、UWBを利用した近接無線通信方式であり、高速データ転送を実現することができる。
【0023】
近接無線通信デバイス20はアンテナ20bに接続されている。アンテナ20bはカプラと称される電極であり、誘導電界を用いた無線信号により、外部デバイスに対するデータの送受信を行う。外部デバイスがアンテナ20bから通信距離(例えば3cm)以内の範囲内に接近した場合、近接無線通信デバイス20および外部デバイスそれぞれのアンテナ(カプラ)間が誘導電界によって結合され、これによって近接無線通信デバイス20と外部デバイスとの間の無線通信が実行可能となる。なお、近接無線通信デバイス20およびアンテナ20bは、一つのモジュールとして実現し得る。
【0024】
次に、図2を参照して、通信制御プログラム12aの構成について説明する。
【0025】
通信制御プログラム12aは、接続制御プログラム121および接続制御ドライバ122等を備えている。接続制御ドライバ122は近接無線通信デバイス20と外部デバイスとの間の(物理的な)接続を制御するためのプログラムである。接続制御プログラム121は、近接無線通信デバイス20と外部デバイスとの間の接続の確立および解除を管理すると共に、近接無線通信デバイス20と外部デバイスとの間のデータ転送のようなサービスの実行を制御する。
【0026】
接続制御プログラム121は、接続制御部123、通信制御部124、および接続解除部125、ネゴシエーション停止部126等を備えている。接続制御部123は、例えば、近接無線通信デバイス20と外部デバイスとの間の接続を確立するためのプログラムモジュールである。この接続制御部123は、近接無線通信デバイス20が非接続状態である場合、近接無線通信デバイス20と近接状態にある外部デバイスを検出する。より詳しくは、接続制御部123は、近接無線通信デバイス20が非接続状態の期間中に、接続要求信号を近接無線通信デバイス20を介して送信し、近接状態である近接無線通信デバイス20と外部デバイスとの間の接続を確立する。通信制御部124は、近接無線通信デバイス20と外部デバイスとの間の接続の確立に応答して、近接無線通信デバイス20と外部デバイスとの間の近接無線通信によって提供すべきサービスを決定するために外部デバイスとのネゴシエーションを実行する。そして、通信制御部124は、決定されたサービスを近接無線通信によって実行する。接続解除部125は、デバイス間の近接状態の解除による通信タイムアウトの発生、または外部デバイスからの接続解除要求信号の受信のいずれかのイベントが発生した場合、近接無線通信デバイス20と外部デバイスとの間の接続を解除する。ネゴシエーション停止部126は、外部デバイスからの接続解除要求信号の受信によって近接無線通信デバイス20と外部デバイスとの間の接続が解除された後にそれら近接無線通信デバイス20と外部デバイスとの間の接続が再確立された場合、通信制御部124によるネゴシエーションの実行を停止するための処理を実行する。
【0027】
次に、図3を参照して、電子機器10がポータブルパーソナルコンピュータとして実現されている場合を想定して、電子機器10の外観の例を説明する。
【0028】
図3は、電子機器10の外観を示す斜視図である。電子機器10は、本体41と、ディスプレイユニット42とを備えている。ディスプレイユニット42は、本体41の上面が露出される開放位置と本体41の上面がディスプレイユニット42によって覆われる閉塞位置との間を回動可能に本体41に取り付けられている。ディスプレイユニット42内には、上述のLCD15が設けられている。
【0029】
本体41は薄い箱状の筐体を有している。本体41の筐体の上面には、キーボード14a、タッチパッド14b、インジケータ18、電源スイッチ19a等が配置されている。
【0030】
本体41の上面、具体的には、本体41の上面上のパームレストレスト領域41aの一部は、通信面として機能する。すなわち、近接無線通信デバイス20およびアンテナ(カプラ)20bは、本体41の上面のパームレストレスト領域41aに対向して本体41内に設けられている。アンテナ(カプラ)20bは、本体41の上面(具体的には、本体41の上面上のパームレストレスト領域41aの一部)を介して、無線信号(誘導電界)を外部に出力するように配置されている。アンテナ(カプラ)20bに対向する本体41の上面上の小領域、つまり本体41の上面上においてアンテナ(カプラ)20bの上方に位置する小領域は、通信位置として使用される。
【0031】
ユーザは、例えば、近接無線通信機能を有する外部デバイスを本体41のパームレストレスト領域41a内の通信位置上にかざすという操作(タッチ操作)を行うことにより、外部デバイスと電子機器10との間のデータ転送のようなサービスを開始させることができる。
【0032】
図4は、携帯電話50と電子機器10との間で実行される近接無線通信の様子が示されている。携帯電話50の筐体内には、例えば、その筐体の背面に対向して近接無線通信用のアンテナ(カプラ)が設けられている。この場合、携帯電話50の筐体の背面を電子機器20の本体41のパームレスト領域上の通信位置にかざす(または携帯電話5をパームレスト領域上に置く)ことにより、携帯電話50と電子機器10との間の近接無線通信を開始することが可能となる。
【0033】
次に、図5を参照して、近接無線通信デバイス20を用いて実行される近接無線通信を制御するためのソフトウェアアーキテクチャを説明する。
【0034】
図5のソフトウェアアーキテクチャは近接無線通信を制御するためのプロトコルスタックの階層構造を示している。プロトコルスタックは、物理層(PHY)、コネクション層(CNL)、プロトコル変換層(PCL)、アプリケーション層から構成されている。
【0035】
物理層(PHY)は物理的なデータ転送を制御する層であり、OSI参照モデル内の物理層に対応する。物理層(PHY)の一部の機能または全ての機能は、近接無線通信デバイス20内のハードウェアを用いて実現することもできる。
【0036】
物理層(PHY)はコネクション層(CNL)からのデータを無線信号に変換する。コネクション層(CNL)はOSI参照モデル内のデータリンク層およびトランスポート層に対応しており、物理層(PHY)を制御してデータ通信を実行する。コネクション層(CNL)は、上述の接続制御ドライバ122によって実現し得る。
【0037】
このコネクション層(CNL)は、プロトコル変換層(PCL)から受信される接続要求、または外部デバイスから受信される接続要求に応じて、近接状態に設定されている近接無線通信デバイス20と外部デバイスとの間の(物理的な)接続(CNL接続)を確立するための処理を実行する。ここで、2つのデバイス(デバイス1,2)間のCNL接続を確立するための手順の例について説明する。デバイス1,2の内、通信を開始したい側のデバイス、例えばデバイス1は、接続要求信号(C_Req)を無線送信するための処理を実行する。この接続要求(C_Req)には、デバイス1の固有のID(UID)を含めることもできる。デバイス2は接続要求信号(C_Req)を受信するための処理を定期的に実行する。デバイス1とデバイス2とが近接状態である場合、デバイス2は、デバイス1から送信される接続要求信号(C_Req)を受信することができる。接続要求信号(C_Req)を受信した時、デバイス2は、受信した接続要求信号(C_Req)の受託を示す応答信号(C_Acc)をデバイス1に無線送信する。この応答信号(C_Acc)には、デバイス2の固有のID(UID)を含めることができる。デバイス1は、デバイス2から無線送信される応答信号(C_Acc)を受信することができる。このように、デバイス1とデバイス2との間で接続要求信号(C_Req)および応答信号(C_Acc)を送受信することにより、デバイス1とデバイス2との間の接続(CNL接続)が確立される。
【0038】
プロトコル変換層(PCL)は、OSI参照モデル内のセッション層およびプレゼンテーション層に対応しており、アプリケーション層と、コネクション層(CNL)との間に位置する。このプロトコル変換層(PCL)は、上述の接続制御プログラム121によって実現し得る。プロトコル変換層(PCL)は、2つのデバイス間の接続を確立するために、アプリケーション層内の各アプリケーション(通信プログラム)の制御とコネクション層(CNL)の制御を行う。
【0039】
より詳しくは、プロトコル変換層(PCL)は、複数種のアプリケーションプロトコル(例えば、SCSI、OBEX、他の汎用プロトコル等)にそれぞれ対応した複数の通信アダプタ(PCLアダプタ)と、プロトコル変換層(PCL)の動作を制御するPCLコントローラとを含んでいる。PCLコントローラは、実行すべきサービスに対応するアプリケーションプロトコル(例えば、SCSI、OBEX、他の汎用プロトコル等)に応じて、複数の通信アダプタ(PCLアダプタ)の一つを起動する。起動されたPCLアダプタは、そのPCLアダプタに対応するアプリケーションプログラムのデータ(ユーザデータ)を、コネクション層(CNL)が扱うことが出来る特定の伝送用データ形式に変換する。この変換処理により、どのアプリケーションプログラムによって送受信されるデータも、コネクション層(CNL)が扱うことが可能なパケット(特定の伝送用データ形式のデータ)に変換される。このプロトコル変換層(PCL)は、様々なアプリケーションプロトコルを近接無線通信で利用することを可能にする。
【0040】
本実施形態においては、接続制御プログラム121によって実現されるPCLコントローラは、図6に示されているような3つのデバイスモード(プロアクティブモード、リアクティブモード、フレキシブルモード)をサポートしており、これら3つのデバイスモードの内の1つのデバイスモードで動作し得る。
【0041】
プロアクティブモードは、ローカルデバイスと通信相手のデバイスとの間のデータ転送等を目的に、能動的に接続要求信号(接続要求コマンド)を送信するモードである。通信相手のデバイスは対向機器(ピアーデバイス)と称されることもある。例えば、近接無線通信を利用してデータ転送等を行うためのアプリケーションプログラムが起動された時、デバイスモードは、自動的にプロアクティブモードに遷移する。このプロアクティブモードはいわゆるマスタとして機能し得るデバイスモードであり、プロアクティブモードのデバイスは、通信相手のデバイスを制御してデバイス間のデータ転送のようなサービスを実行することができる。
【0042】
リアクティブモードは通信相手のデバイス(プロアクティブモードのデバイス、またはフレキシブルモードのデバイス)からの接続要求信号を待ち受けるモードである。このリアクティブモードはいわゆるスレーブとして機能するためのデバイスモードであり、リアクティブモードのデバイスは、通信相手のデバイス(プロアクティブモードのデバイス、またはフレキシブルモードのデバイス)の制御の下、デバイス間のデータ転送のようなサービスを実行することができる。
【0043】
外部電源によって駆動できない携帯電話のようなモバイルデバイスのデフォルトのデバイスモードは、その電力消費を低減するために、リアクティブモードに設定されている。ユーザの操作によってモバイルデバイス上であるアプリケーションプログラムが起動された時、そのモバイルデバイスは、リアクティブモードからプロアクティブモードに自動的に遷移することができる。
【0044】
プロアクティブモードに設定されたデバイスは、接続要求信号C_Reqを送信する。一方、リアクティブモードのデバイスは通信相手のデバイス(プロアクティブモードのデバイス、またはフレキシブルモードのデバイス)からの接続要求信号C_Reqを受信するが、接続要求信号C_Reqは送信しないので、電力消費は比較的少ない。
【0045】
フレキシブルモードは、ローカルデバイスと通信相手のデバイスとの間の接続を目的として、能動的に接続要求信号C_Reqを送信するモードである。このフレキシブルモードは、通信相手のデバイスのデバイスモード(プロアクティブモードまたはリアクティブモード)に応じてローカルデバイスのデバイスモードを自動的にプロアクティブモードまたはリアクティブモードに遷移させることが出来るモードである。
【0046】
フレキシブルモードのデバイスは、通信相手のデバイスがプロアクティブモードであればリアクティブモードに遷移し、また通信相手のデバイスがリアクティブモードであればプロアクティブモードに遷移する。プロアクティブモードまたはリアクティブモードへの遷移は、例えば、デバイス間のCNL接続が確立された後に実行される。
【0047】
例えば、ACアダプタ電源のような外部電源によって駆動可能な、パーソナルコンピュータのようなデバイスのデフォルトのデバイスモードはフレキシブルモードである。フレキシブルモードのデバイスは、接続要求信号C_Reqを送信することができる。これにより、例えば、ユーザが携帯電話のアプリケーションを何等操作せずにその携帯電話をパーソナルコンピュータ(フレキシブルモードのデバイス)に近接させた場合でも、それらデバイス間の接続を確立でき、さらに、プロアクティブモードに遷移するパーソナルコンピュータの制御の下、それらデバイス間のデータ転送のようなサービスを実行することができる。
【0048】
接続可能なデバイス間の組み合わせは、(1)プロアクティブモードのデバイスとリアクティブモードのデバイスの組み合わせ、(2)プロアクティブモードのデバイスとフレキシブルモードのデバイスの組み合わせ、(3)フレキシブルモードのデバイスとリアクティブモードのデバイスの組み合わせ、のみである。各デバイスのデフォルトデバイスモードはリアクティブモードまたはフレキシブルモードのどちらかである。
【0049】
次に、図7を参照して、本実施形態の接続制御プログラム121によって実現されるPCLコントローラのステータスの遷移について説明する。
【0050】
PCLコントローラは、非接続状態(unconnected)61、接続中状態(connecting)62、接続済み状態(connected)63の3つのステートのいずれかに遷移する。非接続状態61は、デバイス間が近接される前の状態、換言すれば近接無線通信デバイス20とどの外部デバイスとの接続も確立されていない状態である。近接無線通信デバイス20が外部デバイスから接続要求信号(C_Req)または応答信号(C_Acc)を受信した時、PCLコントローラのステートは接続中状態(connecting)62に遷移する
接続中状態(connecting)62はCNL接続を確立しているステートである。CNL接続の確立が完了すると、PCLコントローラのステートは接続済み状態(connected)63に遷移する。接続済み状態(connected)63においては、PCLコントローラは、認証、ネゴシエーション、サービス実行という3つのフェーズから構成される制御シーケンスを開始する。つまり、PCLコントローラは、まず、認証フェーズにおいて通信相手のデバイスを認証し、認証が成功すると、ネゴシエーションフェーズに入る。PCLコントローラは、ネゴシエーションフェーズにおいて通信相手のデバイスとのネゴシエーションを実行し、提供すべきサービスを決定する。ネゴシエーションが成功すると、PCLコントローラは、サービス実行フェーズに入る。PCLコントローラは、ネゴシエーションによって決定されたサービスを、サービス実行フェーズにおいて実行する。
【0051】
より具体的には、接続済み状態(connected)63には、例えば、認証中状態(authenticating)71、ネゴシエーション中状態(negotiating)72、サービス実行中状態(executing service)73、サービス無し状態(no service)74の4つのサブステート(4つのフェーズ)が定義されている。
【0052】
認証中状態(authenticating)71は上述の認証フェーズに相当する。認証中状態(authenticating)71は接続相手のデバイスを認証する処理が行われている状態である。接続相手のデバイスの認証が成功したならばPCLコントローラのステートはネゴシエーション中状態(negotiating)72に遷移し、一方、デバイスの認証が失敗したならば、PCLコントローラのステートはサービス無し状態(no service)74に遷移する。
【0053】
ネゴシエーション中状態(negotiating)72は上述のネゴシエーションフェーズに相当する。ネゴシエーション中状態(negotiating)72は、接続相手のデバイスとのネゴシエーションによって、近接無線通信デバイス20と外部デバイスとの間の近接無線通信によって提供すべきサービス(アプリケーションサービスとも云う)を決定する処理が行われている状態である。ネゴシエーション中状態(negotiating)72の期間中においては、プロアクティブモードのデバイスの制御の下、例えば、実行すべきサービスに関する情報(例えば、使用すべきPCLアダプタの種類、使用すべきアプリケーションプロトコルの種類、等)がデバイス間で交換され、これによって、デバイス間の近接無線通信によって実行すべきサービスが決定される。例えば、プロアクティブモードのデバイスは、そのデバイス上で実行されているアプリケーションプログラムに対応するサービスに関する情報を通信相手のデバイス(リアクティブモードのデバイス)に通知し得、また通信相手のデバイスは、通知されたサービスを、実行すべきサービスとして決定する。また、デフォルトのデバイスモードがフレキシブルモードであるデバイスは、例えば、通信相手のデバイス(リアクティブモードのデバイス)に予め関連付けられたサービスを、実行すべきサービスとして決定し、その決定したサービスに関する情報を通信相手のデバイスに通知するようにしてもよい。
【0054】
ネゴシエーションが成功し、使用すべきサービスが決定されると、決定されたサービスにそれぞれ対応するPCLアダプタおよびアプリケーションプログラムが起動されるとともに、PCLコントローラのステートはサービス実行中状態(executing service)73に遷移する。ネゴシエーションが失敗すると、PCLコントローラのステートは、サービス無し状態(no service)74に遷移する。
【0055】
サービス実行中状態(executing service)73は上述のサービス実行フェーズに相当する。サービス実行中状態(executing service)73は、データ転送のような決定されたサービスが近接無線通信によって実行されている状態である。決定されたサービスの実行が完了すると、PCLコントローラのステートはサービス無し状態(no service)74に遷移する。
【0056】
デバイス間の接続(CNL接続)が解除(切断)されると、PCLコントローラのステートは非接続状態(unconnected)61に遷移される。デバイス間の接続の解除を引き起こすイベントには、例えば、(1)近接状態の解除による通信タイムアウトの発生、(2)通信相手のデバイスからの接続解除要求信号C−RLSの受信、の2種類がある。
【0057】
通信タイムアウトは、デバイス間の距離が通信範囲よりも離された後にデバイス間の通信が所定のタイムアウト値以上途絶えることにより発生する。CNL層は、接続済み状態(connected)63の期間中、例えば、通信相手のデバイスが通信範囲内に存在することを確認するためのコマンド(プローブコマンド等)を定期的に送信することができる(ポーリング)。このコマンドを送信してから、このコマンドに対する通信相手のデバイスからの応答がタイムアウト値よりも長い間無い場合、CNL層は、近接状態の解除による通信タイムアウトが発生したことをPCL層に通知する。PCLコントローラは、例えば、起動しているPCLアダプタを停止する処理、起動しているアプリケーションを停止する処理等を実行して、デバイス間の接続を解除し、そして非接続状態(unconnected)61に遷移する。
【0058】
接続解除要求信号C−RLSは明示的に接続の解除を要求するコマンドである。接続中状態(connecting)62にあるデバイスは、例えば、そのステートがサービス無し状態(no service)74である期間などにおいて、必要に応じて、通信相手のデバイスに対して接続解除要求信号C−RLSを送信することができる。
【0059】
通信相手のデバイスからの接続解除要求信号C−RLSを受信した時も、PCLコントローラは、通信タイムアウトが発生した場合と同様に、例えば、起動しているPCLアダプタを停止する処理、起動しているアプリケーションを停止する処理等を実行して、デバイス間の接続を解除し、そして非接続状態(unconnected)61に遷移する。
【0060】
本実施形態の電子機器10はフレキシブルモードで動作することが出来る。換言すれば、電子機器10のデフォルトデバイスモードはフレキシブルモードであってもよい。したがって、非接続状態(unconnected)61の期間中においては、PCLコントローラは、リアクティブモードのデバイスとの接続も確立できるようにするために、CNL層を制御して接続要求信号C−Reqを送信する。
【0061】
非接続状態(unconnected)61においては、電子機器10のPCLコントローラは接続要求信号を送信する。しかし、通信タイムアウトに起因する接続の解除によってPCLコントローラのステートが非接続状態(unconnected)61に遷移した場合には、電子機器10に前回接続されていた通信相手のデバイスは通信範囲内にもはや存在しない。このため、たとえPCLコントローラが接続要求信号を送信しても、ユーザがこの通信相手のデバイスと電子機器10とを再び近づけない限り、この通信相手のデバイスと電子機器10(近接無線通信デバイス20)との間の接続が再び確立されることはない。
【0062】
一方、通信相手のデバイスからの接続解除要求信号C−RLSの受信に起因してPCLコントローラのステートが非接続状態(unconnected)61に遷移した場合には、この通信相手のデバイスは電子機器10(近接無線通信デバイス20)に近接された状態のまま維持されている可能性がある。このため、この通信相手のデバイスと電子機器10(近接無線通信デバイス20)との間の接続が自動的に再確立されてしまう可能性がある。この場合、この通信相手のデバイスと電子機器10(近接無線通信デバイス20)との間で、前回接続時に実行されたデータ転送のようなサービスと同じサービスが再び実行されてしまう可能性がある。通信相手のデバイスは、サービス無し状態(no service)74に遷移する度に、接続解除要求信号C−RLSを送信するかもしれない。この場合、同じサービスが何度も繰り返し実行されるという不具合が発生する。例えば、幾つかの同じデータファイルが通信相手のデバイスと電子機器10(近接無線通信デバイス20)との間で繰り返し転送されるといった事態が発生するかもしれない。
【0063】
図8は、同じサービスが繰り返し実行されるシーケンスの例を示している。図8では、デフォルトデバイスモードがフレキシブルモードであるデバイスAとデフォルトデバイスモードがリアクティブモードであるデバイスBとの間の近接無線通信を想定している。
【0064】
(1)デバイスAとデバイスBとの間の接続が確立された後、デバイスAのデバイスモードはプロアクティブモードに遷移する。デバイスAの制御の下、デバイスAとデバイスBとの間でデータ転送が実行される。例えばデータ転送が完了した時に、デバイスBは、接続解除要求信号C−RLS(切断コマンド)を送信するかもしれない。
(2)デバイスAがデバイスBからの接続解除要求信号C−RLSを受信した時、デバイスAは、そのローカルデバイスのデバイスモードをデフォルトデバイスモードであるフレキシブルモードに変更する。
(3)デバイスAは、対向機器を検出するために、接続要求信号C_Reqを送信する。デバイスAは、接続要求信号C_Reqに対する受託を示す応答信号C_Acc(図中“OK”)をデバイスBから受信した時、デバイスAとデバイスBとの間の接続を確立する。
(4)デバイスAは、デバイスBとのネゴシエーションによってサービスを決定し、例えば、デバイスBに関連付けられたアプリケーションのようなアプリケーションを起動すると共に、自身のデバイスモードをプロアクティブモードに変更する。
(5)(4)で起動されたアプリケーションがファイル転送を開始する。データ転送が完了した時に、デバイスBは、接続解除要求信号C−RLS(切断コマンド)を再び送信するかもしれない。この結果、図8の点線で囲むシーケンス(再接続、データ転送)が繰り返されてしまう。
【0065】
図9は、同じサービスが繰り返し実行されるシーケンスの例を示している。図9では、フレキシブルモードのデバイスAとプロアクティブモードに設定されたデバイスBとの間の近接無線通信を想定している。
【0066】
(1)デバイスAとデバイスBとの間の接続が確立された後、デバイスAのデバイスモードはリアクティブモードに遷移する。プロアクティブモードであるデバイスBの制御の下、デバイスAとデバイスBとの間でデータ転送が実行される。例えばデータ転送が完了した時に、デバイスBは、接続解除要求信号C−RLS(切断コマンド)を送信するかもしれない。
(2)デバイスAがデバイスBからの接続解除要求信号C−RLSを受信した時、デバイスAは、そのローカルデバイスのデバイスモードをデフォルトデバイスモードであるフレキシブルモードに変更する。デバイスBも、そのデフォルトデバイスモードであるリアクティブモードに遷移する。
【0067】
(3)デバイスAは、対向機器を検出するために、接続要求信号C_Reqを送信する。デバイスAは、接続要求信号C_Reqに対する受託を示す応答信号C_Acc(図中“OK”)をデバイスBから受信した時、デバイスAとデバイスBとの間の接続を確立する。
(4)デバイスAは、デバイスBとのネゴシエーションによってサービスを決定し、例えば、デバイスBに関連付けられたアプリケーションのようなアプリケーションを起動すると共に、自身のデバイスモードをプロアクティブモードに変更する。
(5)(4)で起動されたアプリケーションがファイル転送を開始する。データ転送が完了した時に、デバイスBは、接続解除要求信号C−RLS(切断コマンド)を再び送信するかもしれない。この結果、図9の点線で囲むシーケンス(再接続、データ転送)が繰り返されてしまう。
【0068】
フレキシブルモードの機能(例えば、非接続状態において自動的に接続要求信号を送信する機能)は、デバイス間の接続性を高めるという点で有用である。しかし、上述したように、デバイス間が近接状態のまま放置されると、再接続およびデータ転送の繰り返しという問題が発生する可能性がある。
【0069】
本実施形態の接続制御プログラム121は、このような再接続およびデータ転送の繰り返しの発生を防止できるようにするために、外部デバイス(B1)からの接続解除要求信号によってCNL接続が解除された後に近接無線通信デバイス20との新たな接続が確立された外部デバイス(B2)の識別子と、接続解除要求信号を送信した外部デバイス(B1)の識別子とを比較し、これら識別子が一致しない場合(外部デバイス(B2)は外部デバイス(B1)と異なるデバイスである)は、外部デバイス(B2)と近接無線通信デバイス20との間のデータ転送を実行し、これら識別子が一致した場合(外部デバイス(B2)と外部デバイス(B1)が同じデバイスである)、外部デバイス(B2)と近接無線通信デバイス20との間のデータ転送を実行しない。例えば、接続制御プログラム121は、これら識別子が一致した場合には、外部デバイス(B2)と近接無線通信デバイス20との間のデータ転送が再度実行されるのを防止するために、外部デバイス(B2)とのネゴシエーションの実行を停止する。
【0070】
ネゴシエーションの実行を停止する処理は、外部デバイスからの接続解除要求信号の受信に起因してローカルデバイスとその外部デバイスとの間の接続が解除された後にローカルデバイスとその外部デバイスとの間の接続が再確立されたことを条件に実行される。通信タイムアウト後にデバイス間の接続が確立された場合には、データ転送のための制御シーケンス(接続処理とも云う)、つまり、認証、ネゴシエーション、およびサービス実行は、無条件に実行される。
【0071】
このように、ネゴシエーションフェーズにおいて処理を停止することは、フレキシブルモードのデバイスと外部デバイスとの間で再接続およびデータ転送が繰り返されることを防止することができる。
【0072】
なお、例えば、同じデバイスとの接続処理動作を続けてもよいかどうかをユーザに問い合わせるためのメッセージをLCD15に表示してもよい。もし接続処理を続行しないことがユーザによって選択されたならば、接続制御プログラム121は、接続処理の実行(例えば、ネゴシエーションの実行)が停止される。一方、もし接続処理動作の続行がユーザによって選択されたならば、接続制御プログラム121は、接続処理を続行する。
【0073】
次に、図10を参照して、本実施形態の接続制御プログラム121によって実行される通信制御動作の例について説明する。図10において、デバイスAは、デフォルトデバイスモードがフレキシブルモードであるデバイスであり、デバイスBは、デフォルトデバイスモードがリアクティブモードであるデバイスである。本実施形態の電子機器10はデバイスAに相当する。
【0074】
デバイスAとデバイスBとの間の接続が確立された後、デバイスAのデバイスモードはプロアクティブモードに遷移する。デバイスAの制御の下、デバイスAとデバイスBとの間でデータ転送が実行される。例えばデータ転送が完了した時に、デバイスBは、接続解除要求信号C−RLS(切断コマンド)を送信するかもしれない。
デバイスAがデバイスBからの接続解除要求信号C−RLSを受信した時、デバイスAは、非接続状態に遷移すると共に、そのデバイスAのデバイスモードをデフォルトデバイスモードであるフレキシブルモードに変更する。デバイスAは、対向機器を検出するために、接続要求信号C_Reqを送信する。デバイスAは、接続要求信号C_Reqに対する受託を示す応答信号C_Acc(図中“OK”)をデバイスBから受信した時、デバイスAとデバイスBとの間の接続を確立する。そして、デバイスAの接続制御プログラム121は、接続中状態(connecting)62から接続済み状態(connected)63に遷移する。
【0075】
このようにして、接続解除要求信号C−RLSによる接続解除後にデバイスAとデバイスBとの間の接続が再確立された時、接続制御プログラム121は、同じデバイスとの接続処理の続行の有無をユーザに確認するためのメッセージボックス71、つまりデバイスAとデバイスBとの間の近接無線通信を続行するかをユーザに確認するためのメッセージ、をLCD15の表示画面上に表示する。メッセージボックス71は、例えば、次の3つの条件が成立したときに表示される。
【0076】
条件1: 直前の接続解除の要因が外部デバイスからの接続解除要求信号C−RLSの受信である。
条件2: 接続解除要求信号C−RLSの受信から所定時間(X秒)内に新たな接続が確立された。
条件3: ローカルデバイスに新たに接続された外部デバイスの識別子(UID)とローカルデバイスに前回接続された外部デバイスの識別子(UID)とが同一である(つまり、同じ外部デバイスとの接続が再確立された)。
【0077】
もし接続解除要求信号C−RLSを送信した外部デバイスがローカルデバイスに近接された状態のまま放置されているならば、所定時間(X秒)内に、接続解除要求信号C−RLSを送信した外部デバイスとローカルデバイスとの間の新たな接続が自動的に確立される。したがって、条件2は、接続解除要求信号C−RLSを送信した外部デバイスがローカルデバイスに近接された状態のまま放置されていたことを確認するための条件として使用できる。もし、ユーザが、接続解除要求信号C−RLSを送信した外部デバイスを一旦ローカルデバイスから離した後に再びその外部デバイスをローカルデバイスにタッチしたならば、条件2は成立しない場合が多い。
【0078】
なお、条件1と条件2の2つの条件が成立したときに、メッセージボックス71を表示しても良い。ローカルデバイスに新たに接続された外部デバイスのUIDとローカルデバイスに前回接続された外部デバイスのUIDとが同一であるか否かは、例えば、認証中状態(authenticating)71における認証処理によって確認することが出来る。すなわち、デバイスAの接続制御プログラム121は、接続済み状態(connected)63内の認証中状態(authenticating)71に入ると、ローカルデバイスに新たに接続された外部デバイスのUIDと、ローカルデバイスに前回接続された外部デバイス(直前に接続解除要求信号C−RLSを送信した外部デバイス)のUIDとを比較し、それらUIDが一致するか否かを判定する。
【0079】
メッセージボックス71内の「はい」ボタンがユーザによってクリックされたならば、接続制御プログラム121は、通常通り、実行すべきサービスをネゴシエーションフェーズにおいて決定し、そして決定されたサービスをサービス実行フェーズにおいて実行する。一方、メッセージボックス71内の「いいえ」ボタンがユーザによってクリックされたならば、接続制御プログラム121は、ネゴシエーションフェーズにおいて処理を停止する。これにより、接続処理の進行は、例えば、ネゴシエーションが開始される直前(ネゴシエーションフェーズの先頭)で停止されるか、またはネゴシエーションの途中で停止される。よって、デバイスAとデバイスBとの間ではデータ転送のようないかなるサービスも実行されない。
【0080】
デバイスAのステートが接続済み状態(connected)63の期間中においては、デバイスAは、通信タイムアウトの発生の有無を監視することが出来る。したがって、デバイスAのPCLコントローラがネゴシエーションフェーズにおいて処理を停止している状態であっても、もしユーザによってデバイスBがデバイスAから離されたならば、通信タイムアウトの発生が検出され、これによってデバイスAのステート(接続制御ブログラム121のステート)は非接続状態(unconnected)61に遷移される。よって、デバイスAは新たな対向機器との接続を確立することが出来る。
【0081】
次に、図11のフローチャートを参照して、図10のシーケンスを実現するために通信制御プログラム121によって実行される通信制御処理の手順の例を説明する。
【0082】
通信制御プログラム121は、データ転送のようなサービス実行の完了を対向機器に通知した後、またはサービス実行の完了が対向機器からローカルデバイスに通知された後(ステップS11)、対向機器からの接続解除要求信号C−RLS(切断コマンド)を受信したか否かを判定する(ステップS12)。
【0083】
接続解除要求信号C−RLSが受信されていないならば(ステップS12のNO)、通信制御プログラム121のステートは、サービス無し状態(no service)74に遷移する(ステップS13)。通信制御プログラム121のステートがサービス無し状態(no service)74の期間中に通信タイムアウトによる切断イベントが発生すると(ステップS14のYES)、通信制御プログラム121は、ローカルデバイス(電子機器10の近接無線通信デバイス20)と対向機器との間の接続を解除するために、必要に応じて、アクティブなPCLアダプタを停止するといった処理を実行し、そしてローカルデバイスのPCLコントローラのステートを非接続状態(切断状態)61に設定する(ステップS15)。非接続状態(切断状態)61においては、通信制御プログラム121は、CNL層と共同して接続要求信号を送信する処理を開始する。
【0084】
接続解除要求信号C−RLSが受信されたならば(ステップS12のYES)、通信制御プログラム121は、ローカルデバイスと対向機器との間の接続を解除するための接続解除処理(切断処理)を実行し、ローカルデバイスのPCLコントローラのステートを非接続状態(切断状態)61に設定する(ステップS16)。ステップS16では、例えば、アクティブなPCLアダプタを停止するといった処理が実行される。
【0085】
そして、通信制御プログラム121は、ローカルデバイスのデバイスモードをデフォルトモードであるフレキシブルモードに戻す(ステップS17)。そして、通信制御プログラム121は、接続要求信号を送信する処理を開始する(ステップS18)。
【0086】
非接続状態(切断状態)61において、通信制御プログラム121が対向機器からの応答信号C_Acc(または対向機器からの接続要求信号C_Req)を受信したならば(ステップS19のYES)、通信制御プログラム121は、CNL層と共同して、応答信号C_Accまたは接続要求信号C_Reqを送信した対向機器とローカルデバイスとの間の接続を確立し、そして接続済み状態(connected)63内の認証中状態(authenticating)71に遷移する。通信制御プログラム121は、対向機器を認証し、そして上述の3つの条件が満たされているか否かを判定する(ステップS20)。
【0087】
3つの条件が満たされているならば(ステップS20のYES)、通信制御プログラム121は、メッセージボックス71をLCD15に表示して、同じデバイスとの接続処理を続行するかどうかをユーザに確認する(ステップS21)。
【0088】
もし接続処理の続行がユーザによって選択されたならば(ステップS22のYES)、通信制御プログラム121は、データ転送の準備を行う(ステップS23)。ステップS23では、通信制御プログラム121はネゴシエーションフェーズ(ネゴシエーション中状態72)に入る。そして、通信制御プログラム121は、ローカルデバイスと対向機器との間の近接無線通信によって提供すべきサービスを決定するために、対向機器とのネゴシエーションをそのネゴシエーションフェーズにおいて実行する。そして、通信制御プログラム121は、サービス実行フェーズ(サービス実行中状態73)に入り、決定されたサービス(データ転送)をそのサービス実行フェーズにおいて実行する(ステップS24)。
【0089】
もし接続処理を続行しないことがユーザによって選択されたならば(ステップS22のNO)、通信制御プログラム121は、ネゴシエーションフェーズにおいて処理を停止する(ステップS25)。この結果、対向機器とのネゴシエーションは実行されないので、ローカルデバイスと対向機器との間の近接無線通信によって提供すべきサービスは決定されない。したがって、ローカルデバイスおよび対向機器のどちらも、PCLアダプタおよびアプリケーションプログラムの各々を選択および起動することができない。よってサービス(データ転送)は開始されない。接続処理が停止されている期間中に通信タイムアウトによる切断イベントが発生すると(ステップS26のYES)、通信制御プログラム121は、ローカルデバイスのPCLコントローラのステートを非接続状態(切断状態)61に設定する(ステップS15)。
【0090】
次に、図12を参照して、本実施形態の接続制御プログラム121によって実行される通信制御動作の他の例について説明する。図12において、デバイスAは、デフォルトデバイスモードがフレキシブルモードであるデバイスであり、デバイスBは、デフォルトデバイスモードがリアクティブモードであるデバイスである。本実施形態の電子機器10はデバイスAに相当する。
【0091】
デバイスAとデバイスBとの間の接続が確立された後、デバイスAのデバイスモードはプロアクティブモードに遷移する。デバイスAの制御の下、デバイスAとデバイスBとの間でデータ転送が実行される。例えばデータ転送が完了した時に、デバイスBは、接続解除要求信号C−RLS(切断コマンド)を送信するかもしれない。
デバイスAがデバイスBからの接続解除要求信号C−RLSを受信した時、デバイスAの接続制御プログラム121は、この時点で、メッセージボックス72をLCD15に表示する。このメッセージボックス72は、機器が電子機器10にタッチされたままになっていることをユーザに通知すると共に、この機器との再接続(接続処理の続行)の有無をユーザに確認するために用いられる。さらに、このメッセージボックス72には、もし再接続を望まない場合には機器を電子機器10から離すことをユーザに勧めるメッセージも表示される。
【0092】
接続制御プログラム121の制御の下、デバイスAは処理を進める。すなわち、デバイスAは、非接続状態に遷移すると共に、そのデバイスAのデバイスモードをデフォルトデバイスモードであるフレキシブルモードに変更する。デバイスAは、対向機器を検出するために、接続要求信号C_Reqを送信する。デバイスAは、接続要求信号C_Reqに対する受託を示す応答信号C_Acc(図中“OK”)をデバイスBから受信した時、デバイスAとデバイスBとの間の接続を確立する。
【0093】
メッセージボックス72内の「はい」ボタンがユーザによってクリックされたならば、接続制御プログラム121は、通常通り、実行すべきサービスをネゴシエーションフェーズにおいて決定し、そして決定されたサービスをサービス実行フェーズにおいて実行する。一方、メッセージボックス72内の「いいえ」ボタンがユーザによってクリックされたならば、接続制御プログラム121は、ネゴシエーションフェーズにおいて処理を停止する。これにより、接続処理の進行は、例えば、ネゴシエーションが開始される直前で停止されるか、またはネゴシエーションの途中で停止される。よって、デバイスAとデバイスBとの間ではデータ転送のようないかなるサービスも実行されない。
【0094】
もしユーザによってデバイスBがデバイスAから離されたならば、通信タイムアウトの発生が検出され、これによってデバイスAのステート(接続制御ブログラム121のステート)は非接続状態(unconnected)61に遷移される。
【0095】
次に、図13のフローチャートを参照して、図12のシーケンスを実現するために通信制御プログラム121によって実行される通信制御処理の手順の例を説明する。
【0096】
通信制御プログラム121は、データ転送のようなサービス実行の完了を対向機器に通知した後、またはサービス実行の完了が対向機器からローカルデバイスに通知された後(ステップS31)、対向機器からの接続解除要求信号C−RLS(切断コマンド)を受信したか否かを判定する(ステップS32)。
【0097】
接続解除要求信号C−RLSが受信されていないならば(ステップS32のNO)、通信制御プログラム121のステートは、サービス無し状態(no service)74に遷移する(ステップS33)。通信制御プログラム121のステートがサービス無し状態(no service)74の期間中に通信タイムアウトによる切断イベントが発生すると(ステップS34のYES)、通信制御プログラム121は、ローカルデバイス(電子機器10の近接無線通信デバイス20)と対向機器との間の接続を解除するために、必要に応じて、アクティブなPCLアダプタを停止するといった処理を実行し、そしてローカルデバイスのPCLコントローラのステートを非接続状態(切断状態)61に設定する(ステップS35)。非接続状態(切断状態)61においては、通信制御プログラム121は、CNLと共同して接続要求信号を送信する処理を開始する。
【0098】
接続解除要求信号C−RLSが受信されたならば(ステップS32のYES)、通信制御プログラム121は、まず、メッセージボックス72をLCD15に表示して、機器が電子機器10にタッチされたままになっていることをユーザに知らせるとともに、その機器との再接続の意志をユーザに確認する(ステップS36)。
【0099】
メッセージボックス72が表示されている状態で、通信制御プログラム121は、ローカルデバイス(電子機器10)と対向機器との間の接続を解除するための接続解除処理(切断処理)を実行し、ローカルデバイスのPCLコントローラのステートを非接続状態(切断状態)61に設定する(ステップS37)。そして、通信制御プログラム121は、ローカルデバイスのデバイスモードをデフォルトモードであるフレキシブルモードに戻す(ステップS38)。そして、通信制御プログラム121は、接続要求信号を送信する処理を開始する(ステップS39)。
【0100】
非接続状態(切断状態)61において、通信制御プログラム121が対向機器からの応答信号C_Acc(または対向機器からの接続要求信号C_Req)を受信したならば(ステップS40のYES)、通信制御プログラム121は、CNL層と共同して、応答信号C_Accまたは接続要求信号C_Reqを送信した対向機器とローカルデバイスとの間の接続を確立し、そして接続済み状態(connected)63内の認証中状態(authenticating)71に遷移する。
【0101】
通信制御プログラム121は、メッセージボックス72内の「はい」ボタンまたは「いいえ」ボタンのいずれがユーザによって選択されているかを判定する(ステップS41)。もし「はい」ボタン、つまり接続処理の続行がユーザによって選択されたならば(ステップS41のYES)、通信制御プログラム121は、データ転送の準備を行う(ステップS42)。ステップS42では、通信制御プログラム121はネゴシエーションフェーズ(ネゴシエーション中状態72)に入る。そして、通信制御プログラム121は、ローカルデバイスと対向機器との間の近接無線通信によって提供すべきサービスを決定するために、対向機器とのネゴシエーションをそのネゴシエーションフェーズにおいて実行する。そして、通信制御プログラム121は、サービス実行フェーズ(サービス実行中状態73)に入り、決定されたサービス(データ転送)をそのサービス実行フェーズにおいて実行する(ステップS43)。
【0102】
もし「いいえ」ボタンつまり接続処理を続行しないことがユーザによって選択されるか、あるいは「はい」ボタンまたは「いいえ」ボタンのいずれもユーザによって選択されなかったならば(ステップS41のNO)、通信制御プログラム121は、ネゴシエーションフェーズにおいて処理を停止する(ステップS44)。この結果、ローカルデバイスと対向機器との間の近接無線通信によって提供すべきサービスは決定されない。したがって、ローカルデバイスおよび対向機器のどちらも、PCLアダプタおよびアプリケーションプログラムの各々を選択および起動することができないので、サービスは開始されない。接続処理が停止されている期間中に通信タイムアウトによる切断イベントが発生すると(ステップS45のYES)、通信制御プログラム121は、ローカルデバイスのPCLコントローラのステートを非接続状態(切断状態)61に設定する(ステップS35)。
【0103】
以上のように、本実施形態によれば、たとえ外部デバイスからの接続解除要求の受信に起因してその外部デバイスと本電子機器10との間の接続が再度確立されても、前回接続時と同じサービスが再度実行されることを防止することができる。
【0104】
なお、本実施形態の接続制御プログラムの機能はハードウェアモジュールによって実現することも可能である。
【0105】
また本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【0106】
10…電子機器、11…システム制御部、12a…通信制御プログラム、101a…CPU、20…近接無線通信デバイス、121…接続制御プログラム、123…接続制御部、124…通信制御部、125…接続解除部。
【特許請求の範囲】
【請求項1】
近接無線通信を実行する通信モジュールと、
前記通信モジュールが非接続状態の期間中に接続要求信号を送信し、近接状態である前記通信モジュールと外部デバイスとの間の接続を確立する接続制御手段と、
前記接続が確立された場合、前記通信モジュールと前記外部デバイスとの間のデータ転送を実行する通信制御手段と、
前記近接状態の解除による通信タイムアウトの発生または前記外部デバイスからの接続解除要求信号の受信のいずれかのイベントが発生した場合、前記通信モジュールと前記外部デバイスとの間の接続を解除する接続解除手段とを具備し、
前記通信制御手段は、前記接続解除要求信号によって前記接続が解除されてから所定時間内に前記通信モジュールと前記外部デバイスとの間の接続が再確立された場合、前記データ転送を実行しないように構成されていることを特徴とする電子機器。
【請求項2】
前記通信制御手段は、前記通信モジュールと前記外部デバイスとの間の近接無線通信を続行するかをユーザに確認するためのメッセージをディスプレイに表示し、前記近接無線通信を続行しないことがユーザによって指定された場合、前記データ転送を実行しないことを特徴とする請求項1記載の電子機器。
【請求項3】
前記通信制御手段は、前記通信モジュールと前記外部デバイスとの間の近接無線通信を続行するかをユーザに確認するためのメッセージをディスプレイに表示し、前記近接無線通信を続行しないことがユーザによって指定された場合、前記データ転送を実行せず、前記近接無線通信を続行することがユーザによって指定された場合、前記データ転送を実行することを特徴とする請求項1記載の電子機器。
【請求項4】
電子機器内に設けられた通信モジュールによって実行される近接無線通信を制御する通信制御方法であって、
前記通信モジュールが非接続状態の期間中に接続要求信号を送信し、近接状態である前記通信モジュールと外部デバイスとの間の接続を確立する接続制御ステップと、
前記接続が確立された場合、前記通信モジュールと前記外部デバイスとの間のデータ転送を実行する通信制御ステップと、
前記近接状態の解除による通信タイムアウトの発生または前記外部デバイスからの接続解除要求信号の受信のいずれかのイベントが発生した場合、前記通信モジュールと前記外部デバイスとの間の接続を解除する接続解除ステップとを具備し、
前記通信制御ステップは、前記接続解除要求信号によって前記接続が解除されてから所定時間内に前記通信モジュールと前記外部デバイスとの間の接続が再確立された場合、前記データ転送を実行しないことを特徴とする通信制御方法。
【請求項5】
前記通信制御ステップは、前記通信モジュールと前記外部デバイスとの間の近接無線通信を続行するかをユーザに確認するためのメッセージをディスプレイに表示し、前記近接無線通信を続行しないことがユーザによって指定された場合、前記データ転送を実行しないことを特徴とする請求項4記載の通信制御方法。
【請求項6】
前記通信制御ステップは、前記通信モジュールと前記外部デバイスとの間の近接無線通信を続行するかをユーザに確認するためのメッセージをディスプレイに表示し、前記近接無線通信を続行しないことがユーザによって指定された場合、前記データ転送を実行せず、前記近接無線通信を続行することがユーザによって指定された場合、前記データ転送を実行することを特徴とする請求項4記載の通信制御方法。
【請求項1】
近接無線通信を実行する通信モジュールと、
前記通信モジュールが非接続状態の期間中に接続要求信号を送信し、近接状態である前記通信モジュールと外部デバイスとの間の接続を確立する接続制御手段と、
前記接続が確立された場合、前記通信モジュールと前記外部デバイスとの間のデータ転送を実行する通信制御手段と、
前記近接状態の解除による通信タイムアウトの発生または前記外部デバイスからの接続解除要求信号の受信のいずれかのイベントが発生した場合、前記通信モジュールと前記外部デバイスとの間の接続を解除する接続解除手段とを具備し、
前記通信制御手段は、前記接続解除要求信号によって前記接続が解除されてから所定時間内に前記通信モジュールと前記外部デバイスとの間の接続が再確立された場合、前記データ転送を実行しないように構成されていることを特徴とする電子機器。
【請求項2】
前記通信制御手段は、前記通信モジュールと前記外部デバイスとの間の近接無線通信を続行するかをユーザに確認するためのメッセージをディスプレイに表示し、前記近接無線通信を続行しないことがユーザによって指定された場合、前記データ転送を実行しないことを特徴とする請求項1記載の電子機器。
【請求項3】
前記通信制御手段は、前記通信モジュールと前記外部デバイスとの間の近接無線通信を続行するかをユーザに確認するためのメッセージをディスプレイに表示し、前記近接無線通信を続行しないことがユーザによって指定された場合、前記データ転送を実行せず、前記近接無線通信を続行することがユーザによって指定された場合、前記データ転送を実行することを特徴とする請求項1記載の電子機器。
【請求項4】
電子機器内に設けられた通信モジュールによって実行される近接無線通信を制御する通信制御方法であって、
前記通信モジュールが非接続状態の期間中に接続要求信号を送信し、近接状態である前記通信モジュールと外部デバイスとの間の接続を確立する接続制御ステップと、
前記接続が確立された場合、前記通信モジュールと前記外部デバイスとの間のデータ転送を実行する通信制御ステップと、
前記近接状態の解除による通信タイムアウトの発生または前記外部デバイスからの接続解除要求信号の受信のいずれかのイベントが発生した場合、前記通信モジュールと前記外部デバイスとの間の接続を解除する接続解除ステップとを具備し、
前記通信制御ステップは、前記接続解除要求信号によって前記接続が解除されてから所定時間内に前記通信モジュールと前記外部デバイスとの間の接続が再確立された場合、前記データ転送を実行しないことを特徴とする通信制御方法。
【請求項5】
前記通信制御ステップは、前記通信モジュールと前記外部デバイスとの間の近接無線通信を続行するかをユーザに確認するためのメッセージをディスプレイに表示し、前記近接無線通信を続行しないことがユーザによって指定された場合、前記データ転送を実行しないことを特徴とする請求項4記載の通信制御方法。
【請求項6】
前記通信制御ステップは、前記通信モジュールと前記外部デバイスとの間の近接無線通信を続行するかをユーザに確認するためのメッセージをディスプレイに表示し、前記近接無線通信を続行しないことがユーザによって指定された場合、前記データ転送を実行せず、前記近接無線通信を続行することがユーザによって指定された場合、前記データ転送を実行することを特徴とする請求項4記載の通信制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−138089(P2012−138089A)
【公開日】平成24年7月19日(2012.7.19)
【国際特許分類】
【出願番号】特願2012−4993(P2012−4993)
【出願日】平成24年1月13日(2012.1.13)
【分割の表示】特願2009−260102(P2009−260102)の分割
【原出願日】平成21年11月13日(2009.11.13)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成24年7月19日(2012.7.19)
【国際特許分類】
【出願日】平成24年1月13日(2012.1.13)
【分割の表示】特願2009−260102(P2009−260102)の分割
【原出願日】平成21年11月13日(2009.11.13)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]