以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.本開示の一実施形態
1.1.システム構成例
1.2.通信装置の機能構成例
1.3.システム動作例
1.4.ハードウェア構成例
2.まとめ
<1.本開示の一実施形態>
[1.1.システム構成例]
まず、本開示の一実施形態に係る近距離無線通信システムの構成例を説明する。図1は本開示の一実施形態に係る近距離無線通信システム1の構成例を示す説明図である。以下、図1を用いて本開示の一実施形態に係る近距離無線通信システムの構成例について説明する。
図1に示したように、本開示の一実施形態に係る近距離無線通信システム1は、通信装置100、200を含んで構成される。通信装置100、200は、いずれも、ISO/IEC 18092及びISO/IEC 14443の両方または一方による、13.56MHzの周波数を利用する近距離無線通信を行う通信装置(NFCデバイス)である。また通信装置100、200は、いずれもISO/IEC 18092 transport protocolの上位レイヤープロトコルであるLLCP(Logical Link Control Protocol)による近距離無線通信を行う通信装置であってもよい。通信装置100、200は、例えば携帯電話、ディスプレイ及びタッチパネルを主たるユーザインターフェイスデバイスとする多機能携帯電話、タブレット型携帯端末、パーソナルコンピュータ等、他の装置との間で近距離無線通信を実行することが可能な装置である。
通信装置100、200は、いずれもポーリングデバイス(Polling device)、リスニングデバイス(Listening device)のいずれとしても動作することができる。ポーリングデバイスは、電磁波を発生することにより、いわゆるRF(Radio Frequency)フィールド(磁界)を形成し、リモートターゲットとしてのリスニングデバイスを検出するためにポーリングコマンドを送信し、リスニングデバイスからのレスポンスを待つ。つまりポーリングデバイスは、ISO/IEC 14443のPCD(Proximity Coupling Device)の動作、または、ISO/IEC 18092の能動通信モードまたは受動通信モードのイニシエータの動作を行う。
本実施形態では、通信装置100、200は、次の3つのRFテクノロジーのうち、1つ以上をサポートするものとする。
<RFテクノロジー>
(1)NFC−A ・・・ISO/IEC 14443のType A通信方式
(2)NFC−B ・・・ISO/IEC 14443のType B通信方式
(3)NFC−F ・・・ISO/IEC 18092における212 kbps及び424kbpsの通信方式
NFC−Aは、ISO/IEC 14443のType Aの略称であり、NFC−BはISO/IEC 14443のType Bの略称であり、NFC−Fは、ISO/IEC 18092における212 kbps及び424kbpsの通信方式の略称である。
また本実施形態では、通信装置100、200は、次のRFプロトコルのうち、1つ以上をサポートするものとする。
<RFプロトコル>
(1)T3T・・・TYPE 3 TAG PLATFORM Protocol(based on Type NFC−F)
(2)ISO−DEP・・・ISO−DEP Protocol (ISO/IEC 14443−4 based on Type NFC−A or NFC−B)/TYPE 4 TAG PLATFORM Protocol(based on Type NFC−A or NFC−B)
(3)NFC−DEP・・・NFC−DEP Protocol(ISO/IEC 18092 transport protocol based on NFC−A or NFC−F)
リスニングデバイスは、ポーリングデバイスがRFフィールドを形成して送信するポーリングコマンドを受信すると、ポーリングレスポンスで応答する。つまりリスニングデバイスは、ISO/IEC 14443のPICCの動作、または、ISO/IEC 18092の受動通信モードのターゲットの動作を行う。従って、通信装置100、200は、同一のハードウェア構成とすることができる。
NFC Forumの「Activity Technical Specification」では、NFCデバイスにおける機能の処理が定義されている。2つのNFCデバイスが通信するにあたり、コマンドを送信しレスポンスを受信する動作モードをPoll Mode、コマンドを受信しレスポンスを送信する動作モードをListen Modeと呼んでいる。
NFC Forumの「Activity Technical Specification」のTechnology Detection Activity(TDA)は、Listen Modeのデバイス(ターゲット)を見つけるための、Poll Modeのデバイス(イニシエータ)の処理シーケンスを定義している。TDAは、受動通信モードにおけるNFC−A、NFC−B、NFC−FのPoll Commandを順番にRFフィールドへ送信し、その応答があるかどうかを確認している。しかし、受動通信モードにおけるPoll Commandへの応答には利用可能なサービスの情報が含まれていない。なおNFCの分野における「サービス」には、電子マネーサービス、マイレージサービス、コンテンツ(楽曲、画像、文書、またはそれらの組み合わせを言うものとする)提供サービス等の、近距離無線通信によりNFCデバイス間でデータの送受信が行われることで提供される機能が含まれ得る。
この受動通信モードに加え、能動通信モードのPoll Commandが最初に送信されるようになると、後述するように能動通信モードで近距離無線通信の接続が確立する可能性が高くなる。本実施形態では、近距離無線通信の接続が確立するとは、2つのNFCデバイスの間で近距離無線通信の通信路が形成され、その通信路によってデータ交換が可能となる状態になることを言うものとする。2つのNFCデバイス間で近距離無線通信の接続が能動通信モードで確立すると、イニシエータは、ターゲットが受動通信モードで利用可能なサービスの存在を知ることができない。2つのNFCデバイス間で近距離無線通信により通信を実行する際には、近距離無線通信の通信モードを能動通信モードと受動通信モードとの間で柔軟に切り替えられるようにすることが望まれる。
そこで本実施形態では、近距離無線通信の接続を能動通信モードで確立する際に、ターゲット側のNFCデバイスが、受動通信モードで利用可能なサービスの情報をイニシエータ側に送信する形態を説明する。受動通信モードで利用可能なサービスの情報をイニシエータ側に送信することで、能動通信モードと受動通信モードの両方を使用するサービスを利用できる場合、能動通信モード及び受動通信モードで利用可能な全てのサービスをイニシエータ側に把握させることが可能となる。
以下の説明では、通信装置100を取り上げて、その構成及び動作について説明する。また通信装置100の動作について説明する際には必要に応じて通信装置200の動作についても併せて説明する。
以上、図1を用いて本開示の一実施形態に係る近距離無線通信システムの構成例について説明した。続いて、本開示の一実施形態に係る通信装置100の機能構成例について説明する。
図2は、本開示の一実施形態に係る通信装置100の機能構成例を示す説明図である。以下、図2を用いて本開示の一実施形態に係る通信装置100の機能構成例について説明する。
図2に示したように、本開示の一実施形態に係る通信装置100は、アンテナ110と、NFCC(NFC Controller)120と、デバイスホスト(DH)130と、NFCEE(NFC Execution Environment)140と、無線通信部150と、を含んで構成される。
アンテナ110は、他装置との間、例えば通信装置200との間で近距離無線通信を実行する。アンテナ110は、閉ループのコイルを構成しており、このコイルに流れる電流の変化により電磁波(RFデータ)を出力する。アンテナ110から送信される情報はNFCC120から供給される。またアンテナ110が受信した情報はNFCC120へ供給される。
NFCC120は、本開示の通信回路の一例であり、NFCによるデータの伝送を担う。NFCC120は、例えば1チップのIC(Integrated Circuit)で構成され、アンテナ110で受信した信号を、デバイスホスト130へ伝達する。NFCC120は、デバイスホスト130との間で通信を行なって、デバイスホスト130との間で情報を授受する。
NFCC120は、アンテナ110で受信された信号(アンテナ110に流れる電流)を、例えばASK(Amplitude Shift Keying)復調し、その結果得られる復調データとしてのマンチェスタ符号をデバイスホスト130に送る。NFCC120は、例えば近距離無線通信を実行するとともに、後述する動作を実行する回路を備えたチップで構成されていても良い。
本実施形態では、NFCC120は、能動通信モードで近距離無線通信の接続が通信装置100と通信装置200との間で確立される際に、受動通信モードを使用するサービスに関する情報を通信装置200から受信し、また受動通信モードを使用するサービスに関する情報を通信装置200へ送信する。NFCC120は、能動通信モードで近距離無線通信の接続が通信装置100と通信装置200との間で確立される際に受動通信モードを使用するサービスに関する情報を通信装置200との間で送受信し合うことで、能動通信モード及び受動通信モードで利用可能な全てのサービスに関する情報を取得することが出来る。
デバイスホスト130は、通信装置100の全体的な制御を担う。デバイスホスト130は、NFCC120周りの制御、例えば初期化、設定、パワーマネジメント等の制御を実行する。デバイスホスト130は、NFCC120との間でデータを授受する。そしてデバイスホスト130は、NFCC120から受け取ったデータを用いて通信装置100の動作を制御する。より具体的には、デバイスホスト130は、NFCC120を制御するためのコマンドを生成し、コマンドに対するNFCC120での実行結果を解釈する。すなわち、デバイスホスト130はNFCC120との間で通信を実行するためのインタフェースを有する。デバイスホスト130が備えるインタフェースとして、例えばI2C(Inter−Integrated Circuit)、UART(Universal Asynchronous Receiver Transmitter)、ISO−7816等を用いることができる。なお通信装置100に周辺機器が接続される場合、デバイスホスト130はその周辺機器の動作の制御についても担いうる。
NFCEE140は、NFCによって伝送されるデータを用いたアプリケーションの実行処理を担う。本実施形態では、NFCEE140は、デバイスホスト130を介してNFCC120に接続される。しかし後述するように、NFCEE140はNFCC120に直接接続されても良い。
NFCEE140は、NFCのプロトコル情報や、サービス識別情報(例えば、NFC Forum Well−Knownサービス(WKS)リスト、JIS X 6319−4 システムコード(SC)及び/またはISO/IEC 7816−4 AID)が含まれる。図3は、NFCEE140に格納される、NFCのプロトコル情報及びサービス識別情報の一例を示す説明図である。図3には、NFCEE140が対応するプロトコルとしてT3T(Type 3 Tag)、T4AT(Type 4A Tag)、T4BT(Type 4B Tag)、及びLLCPを有していることが示されている。もちろんNFCEE140には、図3に示した情報以外の情報が格納されても良い。
なおNFCEE140は、通信装置100が通信装置200とデータ交換を行うのに必要な処理のうち、セキュアなデータの処理及び保持を行ってもよい。
なお、NFCC、DH、NFCEEについてはNFC Forumの「NFC Controller Interface Technical Specification」に仕様が規定されている。
無線通信部150は、無線によるデータ通信を実行するものであり、例えばWi−Fi、Bluetooth(登録商標)等によってデータ通信を実行する。無線通信部150と、NFCC120とは、1つのチップ上で構成されていても良く、無線通信部150と、NFCC120とが別々のチップにおいて構成されていても良い。
以上、図2を用いて本開示の一実施形態に係る通信装置100の機能構成例について説明した。なお上述したように、NFCEE140はNFCC120に直接接続されても良い。本開示の一実施形態に係る通信装置100の別の例について説明する。
図4は、本開示の一実施形態に係る通信装置100の機能構成例を示す説明図である。図4に示したように、本開示の一実施形態に係る通信装置100は、アンテナ110と、NFCC120と、デバイスホスト130と、NFCEE140a、140b、140cと、無線通信部150と、を含んで構成される。
図4に示した通信装置100は、図2に示した通信装置100に加え、NFCC120に直接接続されるNFCEE140b、140cが追加された構成を有する。図5は、NFCEE140a、140b、140cに格納される、NFCのプロトコル情報及びサービス識別情報の一例を示す説明図である。もちろんNFCEE140a、140b、140cには、図5に示した情報以外の情報が格納されても良い。
上述した通信装置100は、通信モードとしてPoll Mode及びListen Modeを有する。Poll Modeは、電磁波を出力し,その電磁波を変調することによってデータの送信を行うことで他のデバイスをポーリングするデバイスのモードであり、Listen Modeは、電磁波を出力せずに他のデバイスの電磁波を受け取り,それを負荷変調することによってデータの送信を行うデバイスのモードである。ここで、Poll Mode及びListen ModeでのNFCデバイスの動作について説明する。
図6は、Poll Mode及びListen ModeでのNFCデバイスの動作例を示す説明図である。図6に示した例では、NFCデバイスは最初にPoll Modeで動作し、RFフィールドを生成(RF ON)する。NFCデバイスは、RFフィールドを生成した後に、能動通信モード(ACM)のPoll Command(ATR_REQ)及び受動通信モード(PCM)の3つのRFテクノロジーのPoll Command(SENS_REQ,SENSB_REQ,SENSF_REQ)を送信する。NFCデバイスは、Poll Commandを送信した後にListen Modeで動作し、リモートデバイスからのRFフィールド及びPoll Commandを待ち受ける。そしてNFCデバイスは、リモートデバイスからのRFフィールド及びPoll Commandを待ち受けた後、再びPoll Modeへ戻る。NFCデバイスは、各Poll Commandに対して相手のNFCデバイス(ターゲット)からの応答があれば、その応答に対応する通信モードで近距離無線通信の接続を確立する。
図6に示した各コマンドは、通信装置100のNFCC120が、相手の装置(通信装置200)へ近距離無線通信により送信する。
相手のNFCデバイスが能動通信モード及び受動通信モードに対応していれば、相手のNFCデバイスも同じ順序で図6に示した各コマンドを送信する。従って、相手のNFCデバイスがListen Modeで動作している期間で、能動通信モードのPoll Command(ATR_REQ)を送信すると、相手のNFCデバイスがATR_REQに応答し、能動通信モードで近距離無線通信の接続が確立されることになる。図6に示した順序で動作が行われると、NFCデバイス同士では能動通信モードで近距離無線通信の接続が確立される可能性が高くなる。本実施形態では、NFCデバイスである通信装置100、200が能動通信モードで近距離無線通信の接続を確立する際に、受動通信モードを使用するサービスに関する情報を近距離無線通信で交換する。通信装置100、200は、能動通信モードで近距離無線通信の接続を確立する際に、受動通信モードを使用するサービスに関する情報を近距離無線通信で交換することで、能動通信モードを使用するサービスだけでなく受動通信モードを使用するサービスの情報をお互いに交換することが可能となる。
図7は、能動通信モード(ACM)のPoll Command(ATR_REQ)の形式を示す説明図である。図8は、ATR_REQの応答(ATR_RES)の形式を示す説明図である。そして図9は、LLC PAX PDUの形式を示す説明図である。
図7に示したATR_REQは,イニシエータからターゲットへ送信されるコマンドであり、ATR_RESは,ATR_REQへの応答としてターゲットからイニシエータへ送信されるコマンドである。ATR_REQ及びATR_RESは、いずれもNFCID3、属性情報、General Bytesで構成される。NFCID3には、送信するデバイスが生成した乱数が格納される。属性情報には、送信ビットレート、受信ビットレート等が格納される。そしてGeneral Bytesには、送信するデバイスが実装するプロトコルやサービスに関する情報が格納される。本実施形態では、General Bytesには、送信するデバイスが実装するプロトコルやサービスに関する情報としてNFCEEサービス情報が格納される。NFCEEサービス情報は、図7及び図8に示すように、Tag(1バイト)、Length(1バイト)、NFCEEサービスデータ(nバイト)の組で構成される。そしてGeneral Bytesには、0以上のNFCEEサービス情報が格納される。
LLC PAX PDUは,DEP_REQ及びDEP_RES Information PDUのPayloadに格納される。NFCデバイスは、LLC PAX PDUのInformationに、NFCEEサービス情報を格納してもよい。
そして本実施形態に係る通信装置100は、このLLC PAX PDUにデバイス内部のNFCEEサービス情報を格納し、イニシエータからターゲットへ、又はターゲットからイニシエータへデバイス内部のNFCEEサービス情報を提供する。さらに本実施形態に係る通信装置100は、ATR_REQ及びATR_RESを送信する場合は、NFCID3にサービス利用可能情報も格納する。
図7に示した各コマンドの各フィールドへは、通信装置100のNFCC120が、DH130の指示に従って値を格納する。そしてNFCC120は、フィールドに値を格納した各コマンドを相手の装置(通信装置200)へ近距離無線通信により送信する。
なお、図7〜図9に示した形式の各フィールドは、NFC Forumの「Logical Link Control Protocol Technical Specification」に詳細に規定されている。
本実施形態に係る通信装置100は、NFCID3(10バイト長)の所定のバイト位置にサービス利用可能情報を格納することができる。本実施形態では、NFCID3の9バイト目及び10バイト目に、サービス利用可能情報を格納しているが、かかる例に限定されるものではない。このサービス利用可能情報は、特定のサービスを識別する情報ではなく、どのプロトコルを使うサービスが利用可能かどうかを示す情報である。NFCID3にサービスを識別できる情報を含めてしまうと、情報フィールドをその分多く消費してしまう。一方で、サービスを開始するには、そのサービスで使われるプロトコル情報が最低限あれば良い。このNFCID3に格納されるサービス利用可能情報は、その必要最低限の情報を提供する。
図10は、NFCID3の9バイト目の符号化の例を示す説明図である。また図11は、NFCID3の10バイト目の符号化の例を示す説明図である。なお、図11に示したように、NFCID3の10バイト目は予約のためのバイトである。
例えば図10に示した符号化の例において、8ビット目が“1”である“NFC−AでNFC−DEPのサービス利用可能”とは、受動通信モードにおいてNFC−Aで通信するNFC−DEPプロトコルを使うサービスの利用が可能であり、NFC−AテクノロジーのPoll Commandに応答することができ、NFC−DEPプロトコルの活性化ができることを示している。
NFCC120は、NFCID3の9バイト目について、複数のビットに対して“1”を設定してもよい。デバイスホスト130は、NFCID3の9バイト目について、複数のビットに対して“1”を設定することで、複数のサービスが利用可能であることを相手に示すことができる。
またデバイスホスト130は、図7〜図9に示したように、ATR_REQ及びATR_RESのGeneral Bytes、又はLLC PAX PDUに、1つ以上のNFCEEサービス情報を格納することができる。NFCEEサービス情報は、Tag(1バイト)、Length(1バイト)、NFCEEサービスデータ(nバイト)の組で構成される。Tagは,デバイス内のNFCEE上にあるサービスに関する情報を識別するための値を持つ。Lengthは,NFCEEサービスデータの長さnを示す。NFCEEサービスデータには、NFC Forumで定義されているWell−Knownサービスリスト、JIS X 6319−4で定義されているシステムコード、ISO/IEC 7816−4で定義されているAID等が格納される。NFC Forum Well−KnownサービスリストはNFC Forumの「Logical Link Control Protocol Technical Specification」で定義され、能動通信モード及び受動通信モードにおけるLLCPを利用するPeer−to−Peerサービスが利用可能かどうかを示すリストである。
図12は、ATR_REQ及びATR_RESのGeneral Bytes、又はLLC PAX PDUに格納される、NFCEEサービス情報の例を示す説明図である。図12に示した例では、Tagフィールドの値が“03”の場合はNFCEEサービスデータとしてWell−Knownサービスリストが格納され、その長さは2バイトであることが示されている。同様に、Tagフィールドの値が“10”の場合はNFCEEサービスデータとしてISO/IEC 7816−4で定義されているAIDが格納され、その長さは5〜16バイトであることが示されている。そしてTagフィールドの値が“11”の場合はNFCEEサービスデータとしてJIS X 6319−4で定義されているシステムコードが格納され、その長さは2バイトであることが示されている。
例えば、図5のNFCEE140bに4つのシステムコードが登録されている場合、NFCEEサービス情報には、例えば図13に示したような値が格納される。図13には、NFCEEサービス情報に4つのWell−Knownサービスリストが格納されている例が示されている。図13には、Tagフィールドの値が“03”、Lenフィールドの値が2である4組のNFCEEサービス情報が存在していることが示されている。そして図13には、Well−Knownサービスリストの値がそれぞれ“0021”、“0022”、“0023”、“0024”であることが示されている。
以上、本開示の一実施形態に係る通信装置100の機能構成例について説明した。続いて、本開示の一実施形態に係る近距離無線通信システム1の動作例について説明する。
[1.3.システム動作例]
本開示の一実施形態に係る近距離無線通信システム1は、2つの通信装置100、200との間の近距離無線通信に際し、以下の処理シーケンスで動作する。
(1)初期化処理
(2)デバイス内NFCEEサービス情報交換処理
(3)サービス選択処理
(図2に示した構成の場合)
まず初期化処理について説明する。図14は、本開示の一実施形態に係る通信装置100の動作例を示すシーケンス図である。図14に示したのは、図2に示した本開示の一実施形態に係る通信装置100での初期化処理の例である。以下、図14を用いて本開示の一実施形態に係る通信装置100の動作例について説明する。
通信装置100は、初期化処理として、デバイスホスト130とNFCC120との間のインタフェースの初期化、NFCEEの探索、NFCEEからの情報取得、NFCCへの情報格納、その他のパラメータ設定、TDAの開始を順に実行する。
通信装置100でのデバイスホスト130とNFCC120との間のインタフェースの初期化の際に、まずデバイスホスト130は、リセットを指示するためのコマンドCORE_RESET_CMDをNFCC120に送信し、NFCC120は、CORE_RESET_CMDに対する応答であるCORE_RESET_RSPをデバイスホスト130に送る。続いてデバイスホスト130は、初期化コマンドCORE_INIT_CMDをNFCC120に送信し、NFCC120は、CORE_INIT_CMDに対する応答であるCORE_INIT_RSPをデバイスホスト130に送る。なお、初期化の際にデバイスホスト130とNFCC120との間で送られるコマンドは、NFC Forumの「NFC Controller Interface Technical Specification」に詳細に規定されている。
デバイスホスト130とNFCC120との間のインタフェースの初期化が完了すると、続いて通信装置100はNFCEEの探索を実行する。NFCEEの探索の際に、デバイスホスト130は、NFCEEを探索するコマンドNFCEE_DISCOVER_CMDをNFCC120に送る。NFCC120は、NFCEE_DISCOVER_CMDに対する応答であるNFCEE_DISCOVER_RSPをデバイスホスト130に送る。なお、NFCEEの探索の際にデバイスホスト130とNFCC120との間で送られるコマンドは、NFC Forumの「NFC Controller Interface Technical Specification」に詳細に規定されている。
NFCEEの探索が完了すると、続いて通信装置100は、探索の結果発見されたNFCEEからの情報取得を実行する。図2に示した通信装置100では、NFCEE140は、デバイスホスト130に直接接続されている。そのため、デバイスホスト130はNFCEE140に対し、直接NFCEE情報を問い合わせることができる(Message to get NECEE information)。なお、デバイスホスト130によるNFCEE140の情報取得は、任意の形式のメッセージの送受信による行なうことができる。NFCEE140は、デバイスホスト130からの問い合わせに応じてNFCEE140の情報をデバイスホスト130に返す(NECEE information)。
NFCEE140からの情報をデバイスホスト130が取得すると、続いて通信装置100は、デバイスホスト130が取得したNFCEEの情報をNFCC120へ格納する。デバイスホスト130は、NFCC120へのNFCEEの情報の格納に、コマンドCORE_SET_CONFIG_CMDを利用する。CORE_SET_CONFIG_CMDは、識別子Tag、長さLen及び値Valueで構成するパラメータの値を設定するコマンドである。サービス利用可能情報を設定する場合、デバイスホスト130は、NFCID3の設定を行うためにPN_ATR_REQ_NFCID3又はLN_ATR_RES_NFCID3に、例えば図15で示すデータを格納する。なお“XX”は任意の値を示す。このサービス利用可能情報には、NFCEE140におけるサービスが使うプロトコル等の情報の値が格納される。デバイスホスト130がNFCC120へコマンドCORE_SET_CONFIG_CMDを送信すると、NFCC120は、デバイスホスト130へコマンドCORE_SET_CONFIG_RSPを返す。
NFCEEサービス情報を設定する場合、デバイスホスト130は、General Bytesの設定を行うため、PN_ATR_REQ_GEN_BYTES又はLN_ATR_RES_GEN_BYTESに、例えば図16で示すデータを格納する。
またデバイスホスト130は、LF_T3T_PARAMETERS_1を図17のように設定して、システムコード“0011”を含むSENSF_REQをNFCC120が処理できるようにする。
デバイスホスト130が取得したNFCEEの情報をNFCC120へ格納し、NFCC120がコマンドCORE_SET_CONFIG_RSPをデバイスホスト130に返すと、続いて通信装置100は、必要に応じてその他のパラメータの設定をNFCC120とデバイスホスト130との間で実行した後に、TDAを開始する。TDAの開始の際に、デバイスホスト130は、コマンドRF_DISCOVER_CMDをNFCC120に送る。NFCC120は、RF_DISCOVER_CMDに対する応答であるRF_DISCOVER_RSPをデバイスホスト130に送る。
図2に示した本開示の一実施形態に係る通信装置100は、図14に示した一連の動作を実行することで、NFCEE140の情報、すなわちNFCEE140が保持しているプロトコル情報やサービス識別情報をNFCC120に格納することができる。そしてNFCC120は、NFCEE140の情報を初期化処理で取得することにより、通信装置200との間で能動通信モードでの近距離無線通信の接続を確立する際に、受動通信モードを使用するサービスに関する情報を通信装置200へ送信することが出来る。
続いてNFCデバイス内のNFCEEサービス情報の交換処理及びサービス選択処理について説明する。図18は、本開示の一実施形態に係る通信装置100の動作例を示すシーケンス図である。図18に示したのは、図2に示した本開示の一実施形態に係る通信装置100での、NFCデバイス内のNFCEEサービス情報の交換処理及びサービス選択処理の例である。以下、図18を用いて本開示の一実施形態に係る通信装置100の動作例について説明する。
通信装置100は、通信装置200から送信された能動通信モード(ACM)のコマンドATR_REQを受信し、通信装置100は、通信装置200へACMのコマンドATR_RESで応答する。この通信装置200からのコマンドの受信及びコマンドを用いた応答はNFCC120が実行する。このATR_REQ及びATR_RESには、上述の初期化処理によりNFCEE140からのデータの収集により得られた、少なくとも1組のNFCEEサービス情報が含まれる。従って通信装置100は、通信装置200との間で、NFCEEサービス情報が含まれるATR_REQ及びATR_RESを交換することにより、通信装置200との間で近距離無線通信の接続を能動通信モード(ACM)で確立する。そして通信装置100は、通信装置200との間のATR_REQ及びATR_RESの交換により、通信装置100が実行可能なサービスの情報を通信装置200に提供するとともに、通信装置200が実行可能なサービスの情報を取得することができる。
通信装置100は、通信装置200との間でATR_REQ及びATR_RESを交換すると、続いて、DEP_REQ及びDEP_RESを利用してデータ交換を行なう。
そして通信装置100は、通信装置200から取得したサービスの情報に基づき、起動するサービスを選択する。この例では、ユーザによってシステムコードSC11のサービスを起動することが選択されたものとする。
通信装置100は、受動通信モードで通信装置200との間での近距離無線通信の接続を確立するために、ATR_REQ及びATR_RESの交換によって能動通信モードで確立された通信装置200との間での近距離無線通信の接続を一旦切断する。つまり、ATR_REQ及びATR_RESの交換により能動通信モードでの近距離無線通信の接続(ACMリンク)が活性化されているので、通信装置100は、このACMリンクを、通信装置200との間でRLS_REQ及びRLS_RESを交換することによって非活性化させる。そして通信装置200は、サービス選択のために、システムコードSC11を含むSENSF_REQを通信装置100へ送信する。
通信装置100は、システムコードSC11を含むSENSF_REQを受信すると、NFCID2_11を含んだSENSF_RESを通信装置200へ送信する。通信装置200は、通信装置100から受信したNFCID2_11を使って、CHECK−C(Type 3 Tag OperationのCHECKコマンド)を通信装置100へ送信する。
通信装置100はCHECK−Cを受信すると、NFCC120でNFCID2−based Routingの評価を実施し、NFCC120からデバイスホスト130へ、受信したCHECK−Cを転送する。なお本実施形態では、NFCEE140にはAIDが含まれているので、通信装置100は、通信装置200からSENSF_REQを受信する代わりに、SELECT AIDコマンドでサービスを選択してもよい。例えばNFC−Aの場合は、SENS_REQ/RES、SDD_REQ/RES、SEL_REQ/RES、RATS/ATS、SELECT AIDコマンドの順に、通信装置200と通信装置100との間でコマンドを送受信することで、NFCEE140においてサービスが選択されるようにしても良い。
デバイスホスト130は、NFCC120からCHECK−Cを受信すると、NFCC120へCHECK−Rを送り、NFCC120は、デバイスホスト130から受け取ったCHECK−Rを通信装置200へ送信する。
本開示の一実施形態に係る通信装置100、200は、上述した動作を実行することで、能動通信モードでイニシエータ(通信装置200)に応答を返し、イニシエータとの間で近距離無線通信の接続を確立したときに、能動通信モード及び受動通信モードで利用可能な全てのサービスをイニシエータ(通信装置200)に把握させることが可能となる。
上述した動作例は、図2の様にデバイスホスト130にNFCEE140が接続されている場合のものであった。以下では、図4の様にデバイスホスト130に直接接続されていないNFCEE(NFCEE140b、140c)が存在する場合の動作例について説明する。
(図4に示した構成の場合・ケース1)
まず初期化処理について説明する。図19A及び図19Bは、本開示の一実施形態に係る通信装置100の動作例を示すシーケンス図である。図19A及び図19Bに示したのは、図4に示した本開示の一実施形態に係る通信装置100での初期化処理の例である。図19A及び図19Bに示すシーケンス図では、NFCEE140aを「NFCEE1」と、NFCEE140bを「NFCEE2」と、NFCEE140cを「NFCEE3」と、それぞれ表記している。以下、図19A及び図19Bを用いて本開示の一実施形態に係る通信装置100の動作例について説明する。
通信装置100は、初期化処理として、デバイスホスト130とNFCC120との間のインタフェースの初期化、NFCEEの探索、NFCEEからの情報取得、NFCCへの情報格納、その他のパラメータ設定、TDAの開始を順に実行する。
図14に示した流れ図で説明した動作例と同様に、通信装置100でのデバイスホスト130とNFCC120との間のインタフェースの初期化の際に、まずデバイスホスト130は、リセットを指示するためのコマンドCORE_RESET_CMDをNFCC120に送信し、NFCC120は、CORE_RESET_CMDに対する応答であるCORE_RESET_RSPをデバイスホスト130に送る。続いてデバイスホスト130は、初期化コマンドCORE_INIT_CMDをNFCC120に送信し、NFCC120は、CORE_INIT_CMDに対する応答であるCORE_INIT_RSPをデバイスホスト130に送る。
デバイスホスト130とNFCC120との間のインタフェースの初期化が完了すると、続いて通信装置100は、図14に示した流れ図で説明した動作例と同様に、NFCEEの探索を実行する。NFCEEの探索の際に、デバイスホスト130は、NFCEEを探索するコマンドNFCEE_DISCOVER_CMDをNFCC120に送る。NFCC120は、NFCEE_DISCOVER_CMDに対する応答であるNFCEE_DISCOVER_RSPをデバイスホスト130に送る。
NFCEEの探索が完了すると、続いて通信装置100は、探索の結果発見されたNFCEEからの情報取得を実行する。図4に示した通信装置100では、NFCEE140aは、デバイスホスト130に直接接続されており、NFCEE140b、140cはNFCC120に接続される場合。そのため、デバイスホスト130はNFCEE140aに対し、直接NFCEE情報を問い合わせることができる。なお、デバイスホスト130によるNFCEE140aの情報取得は、任意の形式のメッセージの送受信による行なうことができる。
またデバイスホスト130は、NFCC120が取得したNFCEE140b、140cの情報をNFCC120から取得する。デバイスホスト130は、NFCEE_DISCOVER_CMDをNFCC120に送信すると、NFCEE140b、140cの情報をNFCC120から取得することが可能になる。NFCC120は、コマンドNFCEE_DISCOVER_NTFで、NFCEE140b、140cの情報をデバイスホスト130に送信する。
NFCEEにType 3 Tag Emulationが実装されている場合、デバイスホスト130は、NFCEE_DISCOVER_NTFに格納されているシステムコードを取り出して、NFCEEサービス情報として保持しておく。またデバイスホスト130は、AIDについてもNFCEE140a、140b、140cから情報を取得し、NFCEEサービス情報として保持しておく。図19Bには、デバイスホスト130がNFCEE140cにAIDの取得を試み(NCI_DATA_MESSAGE to get List of AIDs)、NFCEE140cがデバイスホスト130へAIDを返している(NCI_DATA_MESSAGE List of AIDs)。
NFCEE140a、140b、140cからの情報をデバイスホスト130が取得すると、続いて通信装置100は、デバイスホスト130が取得したNFCEE140a、140b、140cの情報をNFCC120へ格納する。デバイスホスト130は、NFCC120へのNFCEE140a、140b、140cの情報の格納に、コマンドCORE_SET_CONFIG_CMDを利用する。そしてデバイスホスト130がNFCC120へコマンドCORE_SET_CONFIG_CMDを送信すると、NFCC120は、デバイスホスト130へコマンドCORE_SET_CONFIG_RSPを返す。
サービス利用可能情報を設定する場合、デバイスホスト130は、NFCID3の設定を行うため、PN_ATR_REQ_NFCID3又はLN_ATR_RES_NFCID3に、例えば図15で示すデータを格納する。なお“XX”は任意の値を示す。このサービス利用可能情報には,すべてのNFCEEにおけるサービスが使うプロトコル等の情報を統合した値が格納される。
NFCEEサービス情報を設定する場合、デバイスホスト130は、General Bytesの設定を行うため、PN_ATR_REQ_GEN_BYTES又はLN_ATR_RES_GEN_BYTESに、例えば図20で示すデータを格納する。またデバイスホスト130は、またLF_T3T_PARAMETERS_1を図21に示すように設定し、システムコード‘0011’を含むSENSF_REQをNFCC120が処理できるようにする。なお、NFCEE140bのシステムコードについてはNFCEE140bが処理できるようにするため、デバイスホスト130は、NFCC120のパラメータ設定には追加しない。
図4に示した本開示の一実施形態に係る通信装置100は、図14に示した一連の動作を実行することで、NFCEE140の情報、すなわちNFCEE140が保持しているプロトコル情報やサービス識別情報をNFCC120に格納することができる。
続いてデバイス内NFCEEサービス情報交換処理及びサービス選択処理について説明する。図22は、本開示の一実施形態に係る通信装置100の動作例を示すシーケンス図である。図22に示したのは、図4に示した本開示の一実施形態に係る通信装置100での、デバイス内NFCEEサービス情報交換処理及びサービス選択処理の例である。以下、図22を用いて本開示の一実施形態に係る通信装置100の動作例について説明する。
通信装置100は、通信装置200から送信された能動通信モード(ACM)のコマンドATR_REQを受信し、通信装置100は、通信装置200へACMのコマンドATR_RESで応答する。この通信装置200からのコマンドの受信及びコマンドを用いた応答はNFCC120が実行する。通信装置100は、通信装置200との間のATR_REQ及びATR_RESの交換により、通信装置200との間で近距離無線通信の接続を能動通信モード(ACM)で確立する。そして通信装置100は、通信装置200との間のATR_REQ及びATR_RESの交換により、通信装置100が実行可能なサービスの情報を通信装置200に提供するとともに、通信装置200が実行可能なサービスの情報を取得することができる。
通信装置100は、通信装置200との間でATR_REQ及びATR_RESを交換すると、続いて、DEP_REQ及びDEP_RESを利用してデータ交換を行なう。
そして通信装置100は、通信装置200から取得したサービスの情報に基づき、起動するサービスを選択する。この例では、ユーザによってシステムコードSC21のサービスを起動することが選択されたものとする。
ATR_REQ及びATR_RESの交換によりACMリンクが活性化されているので、通信装置100は、このACMリンクを、通信装置200との間でRLS_REQ及びRLS_RESを交換することによって非活性化させる。そして通信装置200は、サービス選択のために、システムコードSC11を含むSENSF_REQを通信装置100へ送信する。
通信装置100のNFCC120は、システムコードSC21を含むSENSF_REQを受信すると、そのシステムコードSC21を含むSENSF_REQをNFCEE140b、140cに転送する。システムコードSC21を有するサービスはNFCEE140bが実行するので、NFCEE140bのみが、システムコードSC21を含むSENSF_REQに対するレスポンスである、NFCID2_21を含んだSENSF_RESをNFCC120に送る。そしてNFCC120は、NFCID2_21を含んだSENSF_RESをNFCEE140bから受信すると、NFCID2_21を含んだSENSF_RESを通信装置200へ送信する。
通信装置200は、通信装置100から受信したNFCID2_21を使って、CHECK−C(Type 3 Tag OperationのCHECKコマンド)を通信装置100へ送信する。通信装置100はCHECK−Cを受信すると、NFCC120でNFCID2−based Routingの評価を実施し、NFCC120からNFCEE140bへ、受信したCHECK−Cを転送する。またNFCC120は、デバイスホスト130へコマンドRF_INTF_ACTIVATED_NTFを送信する。
NFCEE140bは、NFCC120からCHECK−Cを受信すると、NFCC120へCHECK−Rを送り、NFCC120は、NFCEE140bから受け取ったCHECK−Rを通信装置200へ送信する。
本開示の一実施形態に係る通信装置100、200は、上述した動作を実行することで、能動通信モードでイニシエータ(通信装置200)に応答を返し、イニシエータとの間で近距離無線通信の接続を能動通信モードで確立したときに、能動通信モード及び受動通信モードで利用可能な全てのサービスをイニシエータ(通信装置200)に把握させることが可能となる。
(図4に示した構成の場合・ケース2)
上述したケース1では、通信装置100と通信装置200との間でのATR_REQ及びATR_RESの交換の際に、全てのNFCEE140a、140b、140cのサービス情報がATR_RESに格納されていた。しかし、通信装置100と通信装置200との間でのATR_REQ及びATR_RESの交換の際に、ATR_RESにサービス利用可能情報だけが格納されている場合でも、イニシエータ側では、受動通信モード(PCM)におけるサービスが利用可能かどうか、また、利用可能なサービスで使われるプロトコルは何であるかを確認することができる。
図23は、本開示の一実施形態に係る通信装置100の動作例を示すシーケンス図である。図23に示したのは、図4に示した本開示の一実施形態に係る通信装置100での、デバイス内NFCEEサービス情報交換処理及びサービス選択処理の例である。以下、図23を用いて本開示の一実施形態に係る通信装置100の動作例について説明する。
通信装置100は、通信装置200から送信された能動通信モード(ACM)のコマンドATR_REQを受信し、通信装置100は、通信装置200へACMのコマンドATR_RESで応答する。この通信装置200からのコマンドの受信及びコマンドを用いた応答はNFCC120が実行する。通信装置100は、通信装置200との間のATR_REQ及びATR_RESの交換により、通信装置200との間で近距離無線通信の接続を能動通信モード(ACM)で確立する。そして通信装置200は、通信装置100との間のATR_REQ及びATR_RESの交換により、通信装置100のサービス利用可能情報を得ることができる。すなわち通信装置200は、通信装置100との間のATR_REQ及びATR_RESの交換により、通信装置100が利用可能な通信方式及びプロトコル情報を得ることができる。
通信装置100は、通信装置200との間でATR_REQ及びATR_RESを交換すると、続いて、DEP_REQ及びDEP_RESを利用してデータ交換を行なう。
そして通信装置200は、通信装置100から取得したプロトコル情報に基づいてプロトコルを選択する。図23に示した例では、通信装置200のユーザによりType 3 Tag Platform(T3T)のサービスが選択されたとする。ATR_REQ及びATR_RESの交換によりACMリンクが活性化されているので、通信装置100は、このACMリンクを、通信装置200との間でRLS_REQ及びRLS_RESを交換することによって非活性化させる。そして通信装置200は、T3Tに対応するNFC−FのPoll Commandにおいて、SENSF_REQで指定するシステムコードを、特定のコードではないコード、例えば‘FFFF’に設定して、通信装置100へ送信する。通信装置200が、SENSF_REQで指定するシステムコードを例えば‘FFFF’に設定して、通信装置100へ送信することで、通信装置100からは、T3Tを使うサービスが、通信装置200へ応答することができる。
通信装置100のNFCC120は、システムコード‘FFFF’を含むSENSF_REQを受信すると、そのシステムコード‘FFFF’を含むSENSF_REQをNFCEE140b、140cに転送する。T3Tを使うサービスはNFCEE140bが実行するので、NFCEE140bのみが、SENSF_REQに対するレスポンスSENSF_RESをNFCC120に送る。
図5に示したように、NFCEE140bは、T3Tを使用する複数のサービスにそれぞれ対応するシステムコードが格納されている。NFCEE140bに複数のシステムコードが格納されている場合、NFCEE140bは、例えば先頭のシステムコードを選択してもよい。この場合、図5のようにシステムコードが格納されている場合は、NFCEE140bは、システムコードSC21を選択して、NFCID2_21を含んだSENSF_RESをNFCC120に送る。そしてNFCC120は、NFCID2_21を含んだSENSF_RESをNFCEE140bから受信すると、NFCID2_21を含んだSENSF_RESを通信装置200へ送信する。
以後は上述のケース1の場合と同様である。すなわち、通信装置200は、通信装置100から受信したNFCID2_21を使って、CHECK−C(Type 3 Tag OperationのCHECKコマンド)を通信装置100へ送信する。通信装置100はCHECK−Cを受信すると、NFCC120でNFCID2−based Routingの評価を実施し、NFCC120からNFCEE140bへ、受信したCHECK−Cを転送する。またNFCC120は、デバイスホスト130へコマンドRF_INTF_ACTIVATED_NTFを送信する。
NFCEE140bは、NFCC120からCHECK−Cを受信すると、NFCC120へCHECK−Rを送り、NFCC120は、NFCEE140bから受け取ったCHECK−Rを通信装置200へ送信する。
本開示の一実施形態に係る通信装置100、200は、上述した動作を実行することで、能動通信モードでイニシエータ(通信装置200)に応答を返し、イニシエータとの間で近距離無線通信の接続を能動通信モードで確立したときに、サービス利用可能情報だけを交換しても、イニシエータからターゲットに受動通信モードでのサービスを起動させることが可能になる。
本開示の一実施形態に係る通信装置100、200は、近距離無線通信の接続を確立する際にービス利用可能情報だけを交換するので、近距離無線通信の接続の確立時に送受信しあう情報量がケース1の場合より少なく済む。従ってケース2の場合は、近距離無線通信の接続を確立しようとしてから画面に情報を提示するまでの時間を、ケース1の場合より短縮させる効果がある。またケース2の場合は、ターゲット側の装置(通信装置100)が、近距離無線通信の接続の確立後に情報を選択して、イニシエータ側の装置(通信装置200)に情報を渡せる効果がある。
(図4に示した構成の場合・ケース3)
上述のケース2は、通信装置100と通信装置200との間でのATR_REQ及びATR_RESの交換の際に、通信装置100から送信するATR_RESにサービス利用可能情報だけが格納されている場合である。能動通信モード(ACM)でのNFC−DEPプロトコル及びLLCプロトコルを活性化した後で、イニシエータは必要に応じて、LLC PAX PDUによってサービス情報を交換することもできる。
図24は、本開示の一実施形態に係る通信装置100の動作例を示すシーケンス図である。図24に示したのは、図4に示した本開示の一実施形態に係る通信装置100での、デバイス内NFCEEサービス情報交換処理及びサービス選択処理の例である。以下、図24を用いて本開示の一実施形態に係る通信装置100の動作例について説明する。
通信装置100は、通信装置200から送信された能動通信モード(ACM)のコマンドATR_REQを受信し、通信装置100は、通信装置200へACMのコマンドATR_RESで応答する。この通信装置200からのコマンドの受信及びコマンドを用いた応答はNFCC120が実行する。
通信装置100は、通信装置200との間のATR_REQ及びATR_RESの交換により、通信装置200との間で近距離無線通信の接続を能動通信モード(ACM)で確立する。そして通信装置200は、通信装置100との間のATR_REQ及びATR_RESの交換により、通信装置100のサービス利用可能情報を得ることができる。すなわち通信装置200は、通信装置100との間のATR_REQ及びATR_RESの交換により、通信装置100が利用可能な通信方式及びプロトコル情報を得ることができる。
通信装置100は、通信装置200との間でATR_REQ及びATR_RESを交換すると、続いて、LLC PAX PDUによってサービス情報を交換する。LLC PAX PDUは,DEP_REQ及びDEP_RESを使って交換される。通信装置100は、図9に示したようにLLC PAX PDUのInformationに、NFCEEサービス情報を格納して通信装置200に送る。
また図24に示した例では、通信装置200のユーザによりACM LLCプロトコルを使ったSNEPサービス(NFC Forum Simple NDEF Exchange Protocol Technical Specificationで規定されているサービス)が選択されている。そのため、上述の各ケースとは異なり、通信装置100、200は、ACMリンクはそのまま維持して、SNEPサービスのデータ交換を行っている。図24に示した例では、ACMのコマンドDEP_REQ/RESの交換によって通信装置100、200との間でデータ交換が行われる。
そしてデータ交換が完了すると、通信装置100は、通信装置200との間でRLS_REQ及びRLS_RESを交換することによって非活性化させる。
本開示の一実施形態に係る通信装置100、200は、上述した動作を実行することで、能動通信モードでイニシエータ(通信装置200)に応答を返し、イニシエータとの間で近距離無線通信の接続を能動通信モードで確立したときに、サービス利用可能情報だけを交換しても、イニシエータからターゲットに受動通信モードで使用されるサービスを起動させることが可能になる。
本開示の一実施形態に係る通信装置100、200は、近距離無線通信の接続を確立する際にサービス利用可能情報だけを交換するので、近距離無線通信の接続の確立時に送受信しあう情報がケース1の場合より少なく済む。また、このケース3の場合は、イニシエータ側の通信装置200が、サービスを使用する際に、予めすべてのサービス情報を通信装置100から取得し、通信装置100から特定のサービスを指定して通信装置200に実行させることが可能になる。
(サービス選択処理の動作例)
最後に、サービス選択処理の際の動作例を説明する。図25は、本開示の一実施形態に係る、イニシエータ側の通信装置200の動作例を示す流れ図である。図25に示したのは、イニシエータ側の通信装置200でのサービス選択処理の一例である。以下、図25を用いて本開示の一実施形態に係る通信装置200の動作例について説明する。
通信装置200は、ターゲット側の通信装置100からサービスに関する情報を取得すると、そのサービスに関する情報に基づいてサービスを選択する。その際、通信装置200は、ターゲットに対応するサービスが複数見つかったかどうか判断する(ステップS1001)。ステップS1001の判断の結果、ターゲットに対応するサービスが複数見つかっていなければ(ステップS1001、No)、通信装置200は、起動するサービスを1つ選択する(ステップS1002)。一方ステップS1001の判断の結果、ターゲットに対応するサービスが複数見つかれば(ステップS1001、Yes)、続いて通信装置200は、起動するサービスが通信装置200で選択されているかどうか判断する(ステップS1003)。
ステップS1003の判断の結果、起動するサービスが通信装置200で選択されていれば(ステップS1003、Yes)、通信装置200は、起動するサービスを1つ選択する(ステップS1002)。一方、ステップS1003の判断の結果、起動するサービスが通信装置200で選択されていなければ(ステップS1003、No)、通信装置200は、通信装置100で利用可能なサービスを表示画面に出力する(ステップS1004)。
通信装置200が通信装置100で利用可能なサービスを表示画面に出力し、その通信装置100で利用可能なサービスの中から、ユーザが所望の起動するサービスを選択すると(ステップS1004)、通信装置200は、ユーザが選択したサービスを通信装置100で起動させるためのコマンドを通信装置100へ送信する。
図26は、イニシエータ側の通信装置200でのサービス選択処理の際に、通信装置200の表示画面に出力される画面の例を示す説明図である。図26に示したのは、通信装置200の表示画面に出力される、通信装置100で利用可能なサービスの一覧画面の例である。通信装置200は、図26に示したような画面を出力することで、通信装置100で起動させるサービスをユーザに選択させることができる。もちろん、イニシエータ側の通信装置200でのサービス選択処理の際に、通信装置200の表示画面に出力される画面は図26に示したものに限定されないことは言うまでもない。
以上、図25を用いて本開示の一実施形態に係る通信装置200の動作例について説明した。
[1.4.ハードウェア構成例]
続いて、通信装置100、200のハードウェア構成例について説明する。図27は、本実施形態に係る通信装置100のハードウェア構成の一例を示す説明図である。なお図27では通信装置100のみを図示しているが、通信装置200についても同様のハードウェア構成を有し得る。図27に示したように、通信装置100は、例えば、MPU161と、ROM162と、RAM163と、記録媒体164と、入出力インタフェース166と、操作入力デバイス167と、表示デバイス168と、通信インタフェース169とを備える。また、通信装置100は、例えば、データの伝送路としてのバス165で各構成要素間を接続する。
MPU161は、例えば、MPU(Micro Processing Unit)などの演算回路で構成されるプロセッサや、各種処理回路などで構成される。MPU161は、通信装置100の各部の動作を制御する。従って、MPU161は本実施形態におけるデバイスホスト130やNFCEE140の一例として機能し得る。ROM162は、MPU161が使用するプログラムや演算パラメータなどの制御用データなどを記憶する。RAM163は、例えば、MPU161により実行されるプログラムなどを一時的に記憶する。
記録媒体164は、本実施形態に係る情報処理方法に係るデータや、各種アプリケーションなど様々なデータを記憶する。ここで、記録媒体164としては、例えば、ハードディスク(Hard Disk)などの磁気記録媒体や、フラッシュメモリ(flash memory)などの不揮発性メモリ(nonvolatile memory)などが挙げられる。また、記録媒体164は、通信装置100から着脱可能であってもよい。記録媒体164に記録されるアプリケーションの実行により、記録媒体164もNFCEE140の一例として機能し得る。
入出力インタフェース166は、例えば、操作入力デバイス167や、表示デバイス168を接続する。ここで、入出力インタフェース166としては、例えば、USB(Universal Serial Bus)端子や、DVI(Digital Visual Interface)端子、HDMI(High−Definition Multimedia Interface)(登録商標)端子、各種処理回路などが挙げられる。
また、操作入力デバイス167は、例えば、通信装置100上に備えられ、通信装置100の内部で入出力インタフェース166と接続される。操作入力デバイス167としては、例えば、ボタン、方向キー、ジョグダイヤルなどの回転型セレクター、タッチパネル、あるいは、これらの組み合わせなどが挙げられる。
また、表示デバイス168は、例えば、通信装置100上に備えられ、通信装置100の内部で入出力インタフェース166と接続される。表示デバイス168としては、例えば、液晶ディスプレイ(Liquid Crystal Display)や有機ELディスプレイ(Organic Electro−Luminescence Display、または、OLEDディスプレイ(Organic Light Emitting Diode Display))などが挙げられる。
なお、入出力インタフェース166が、通信装置100の外部装置としての操作入力デバイス(例えば、キーボードやマウスなど)や表示デバイスなどの、外部デバイスと接続することも可能であることは、言うまでもない。また、表示デバイス168は、例えばタッチスクリーンなど、表示とユーザ操作とが可能なデバイスであってもよい。
通信インタフェース169は、他の通信装置(通信装置200)との間で近距離無線通信を行なう。ここで、通信インタフェース169としては、例えば、無線通信アンテナ回路と、搬送波送信回路とを有するNFCインタフェースが挙げられる。
通信インタフェース169を構成する無線通信アンテナ回路は、無線で信号を送受信する役目を果たす。無線通信アンテナ回路は、例えば、送受信アンテナとしての所定のインダクタンスをもつコイルおよび所定の静電容量をもつキャパシタからなる共振回路と、復調回路とから構成される。そして、無線通信アンテナ回路は、例えば、13.56MHzの磁界(搬送波)を受信することによって、外部装置から送信されるデータなどを復調する。
また、通信インタフェース169を構成する搬送波送信回路は、例えば、ASK(Amplitude Shift Keying)などの変調を行う変調回路と、当該変調回路の出力を増幅する増幅回路とを備え、無線通信アンテナ回路の送受信アンテナから搬送波信号をのせた搬送波を送信する。搬送波送信回路は、例えば、MPU161によって搬送波の送信が制御される。
通信インタフェース169は、例えば、上記のような無線通信アンテナ回路と搬送波送信回路とで構成されるNFCインタフェースを備えることによって、例えば、他の通信装置(通信装置200)との間で近距離無線通信を行うアンテナ110及びNFCC120として機能し得る。
例えば、通信装置100は、ネットワークを介して(または直接的に)、他の装置と有線または無線で通信を行うための、他の通信インタフェースをさらに備えていてもよい。他の通信インタフェースとしては、例えば、通信アンテナおよびRF(Radio Frequency)回路(無線通信)や、IEEE802.15.1ポートおよび送受信回路(無線通信)、IEEE802.11ポートおよび送受信回路(無線通信)、あるいはLAN(Local Area Network)端子および送受信回路(有線通信)などが挙げられる。また、本実施形態に係るネットワークとしては、例えば、LANやWAN(Wide Area Network)などの有線ネットワーク、無線LAN(WLAN:Wireless Local Area Network)や基地局を介した無線WAN(WWAN:Wireless Wide Area Network)などの無線ネットワーク、あるいは、TCP/IP(Transmission Control Protocol/Internet Protocol)などの通信プロトコルを用いたインターネットなどが挙げられる。
もちろん、本実施形態に係る通信装置100のハードウェア構成は、図27に示す構成に限られない。例えば通信装置100は、記録媒体164、操作入力デバイス167、表示デバイス168の少なくともいずれか、また全てを備えない構成をとることも可能である。
本実施形態に係る通信装置100、200は、図27に示したハードウェア構成を有することで、上述した一連の動作を実行することが出来る。
<2.まとめ>
以上説明したように、本開示の一実施形態によれば、近距離無線通信の通信モードとして能動通信モード及び受動通信モードを有し、他装置との間で近距離無線通信の接続を能動通信モードで確立する際に、受動通信モードを使用するサービスに関する情報を伝送する、通信装置100、200が提供される。
本開示の一実施形態に係る通信装置100、200は、他装置との間で近距離無線通信の接続を能動通信モードで確立する際に、受動通信モードを使用するサービスに関する情報を格納したコマンドをお互いに送信しあう。本開示の一実施形態に係る通信装置100、200は、上記コマンドをお互いに送信しあうことで、近距離無線通信の接続を能動通信モードで確立した際に、能動通信モード及び受動通信モードで利用可能な全てのサービスに関する情報を、相互に把握することができる。
本開示の一実施形態に係る通信装置100、200は、他装置との間で近距離無線通信の接続を能動通信モードで確立する際に、受動通信モードを使用するサービスに関する情報として、サービスが使用するプロトコルを識別するサービス利用可能情報及びサービスを識別するNFCEEサービス情報の両方をお互いに送信しあっても良い。また本開示の一実施形態に係る通信装置100、200は、他装置との間で近距離無線通信の接続を能動通信モードで確立する際に、受動通信モードを使用するサービスに関する情報としてサービス利用可能情報だけを送信しあっても良い。サービス利用可能情報だけを送信しあう場合は、通信装置100、200は、確立した能動通信モードで、確立時のプロトコルとは別のプロトコルを用いてNFCEEサービス情報をお互いに送信しあっても良く、能動通信モードを一度切断した後に受動通信モードで通信を確立し、その確立した通信においてイニシエータ側からターゲット側に、ターゲット側でサービスを選択させる情報を送信しても良い。
本開示の一実施形態に係る通信装置100、200は、他装置との間で近距離無線通信の接続を能動通信モードで確立する際に、上記コマンドをお互いに送信しあうことで、ターゲット側の装置が利用可能なサービスを、イニシエータ側の装置から適切に選択することが可能になる。
本明細書の各装置が実行する処理における各ステップは、必ずしもシーケンス図またはフローチャートとして記載された順序に沿って時系列に処理する必要はない。例えば、各装置が実行する処理における各ステップは、フローチャートとして記載した順序と異なる順序で処理されても、並列的に処理されてもよい。
また、各装置に内蔵されるCPU、ROM及びRAMなどのハードウェアを、上述した各装置の構成と同等の機能を発揮させるためのコンピュータプログラムも作成可能である。また、該コンピュータプログラムを記憶させた記憶媒体も提供されることが可能である。また、機能ブロック図で示したそれぞれの機能ブロックをハードウェアで構成することで、一連の処理をハードウェアで実現することもできる。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
近距離無線通信の通信モードとして能動通信モード及び受動通信モードを有し、前記能動通信モードで他装置との間の前記近距離無線通信の接続を確立する際に、前記受動通信モードを使用するサービスに関する情報を前記他装置から受信する、通信回路。
(2)
前記受動通信モードを使用するサービスを前記他装置から受信したサービスの中から使用することが決定されれば、前記能動通信モードで前記他装置との間に確立した接続を切断し、前記他装置との間の前記近距離無線通信の接続を前記受動通信モードで確立する、前記(1)に記載の通信回路。
(3)
前記サービスに関する情報は、前記サービスが使用するプロトコルに関するプロトコル情報である、前記(1)または(2)に記載の通信回路。
(4)
前記プロトコル情報を受信したプロトコルとは別のプロトコルでさらにサービスを識別するサービス情報を前記他装置から前記近距離無線通信で受信する、前記(3)に記載の通信回路。
(5)
受信した前記プロトコル情報に基づいて選択したプロトコルに対応したサービスを前記他装置に選択させる情報を前記近距離無線通信で送信する、前記(3)に記載の通信回路。
(6)
前記サービスに関する情報は、前記サービスが使用するプロトコルを識別するプロトコル情報及びサービスを識別するサービス情報である、前記(1)〜(5)のいずれかに記載の通信回路。
(7)
前記他装置で使用される前記受動通信モードを使用するサービスに関する情報を前記他装置から前記近距離無線通信で受信すると、自装置において前記受動通信モードを使用するサービスに関する情報を含んだ情報を前記他装置へ前記近距離無線通信で送信する、前記(1)に記載の通信回路。
(8)
前記サービスに関する情報は、前記サービスが使用するプロトコルに関するプロトコル情報である、前記(7)に記載の通信回路。
(9)
前記プロトコル情報の中から選択されたプロトコルで使用可能なサービスを選択させる情報を前記他装置から受信すると、使用するサービスを選択して前記他装置へ近距離無線通信で応答する、前記(8)に記載の通信回路。
(10)
前記プロトコル情報を受信したプロトコルとは別のプロトコルでさらにサービスを識別するサービス情報を前記他装置へ前記近距離無線通信で送信する、前記(8)に記載の通信回路。
(11)
前記(1)〜(10)のいずれかに記載の通信回路と、
前記通信回路と通信可能な制御部と、
を備える、通信装置。
(12)
前記(1)〜(10)のいずれかに記載の通信回路と、
前記通信回路と接続され、前記近距離無線通信を行なうアンテナと、
を備える、通信装置。
(13)
近距離無線通信の通信モードとして能動通信モード及び受動通信モードを有し、前記能動通信モードで他装置との間の前記近距離無線通信の接続を確立する際に、前記受動通信モードを使用するサービスに関する情報を前記他装置から受信することを含む、通信方法。
(14)
コンピュータに、近距離無線通信の通信モードとして能動通信モード及び受動通信モードを有し、前記能動通信モードで他装置との間の前記近距離無線通信の接続を確立する際に、前記受動通信モードを使用するサービスに関する情報を前記他装置から受信することを実行させる、コンピュータプログラム。