[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP6403122B2 - 通信デバイス及び通信システム - Google Patents

通信デバイス及び通信システム Download PDF

Info

Publication number
JP6403122B2
JP6403122B2 JP2015536436A JP2015536436A JP6403122B2 JP 6403122 B2 JP6403122 B2 JP 6403122B2 JP 2015536436 A JP2015536436 A JP 2015536436A JP 2015536436 A JP2015536436 A JP 2015536436A JP 6403122 B2 JP6403122 B2 JP 6403122B2
Authority
JP
Japan
Prior art keywords
command
unit
application
processing
protocol
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2015536436A
Other languages
English (en)
Other versions
JPWO2015037187A1 (ja
Inventor
高木 伸哉
伸哉 高木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Publication of JPWO2015037187A1 publication Critical patent/JPWO2015037187A1/ja
Application granted granted Critical
Publication of JP6403122B2 publication Critical patent/JP6403122B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/0723Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips the record carrier comprising an arrangement for non-contact communication, e.g. wireless communication circuits on transponder cards, non-contact smart cards or RFIDs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/50Allocation or scheduling criteria for wireless resources
    • H04W72/53Allocation or scheduling criteria for wireless resources based on regulatory allocation policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/04Wireless resource allocation
    • H04W72/044Wireless resource allocation based on the type of the allocated resource
    • H04W72/0446Resources in time domain, e.g. slots or frames

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Communication Control (AREA)
  • Telephone Function (AREA)

Description

本開示は、複数のプロトコルを用いる通信デバイスに関する。
近年、非接触通信の技術を用いたIC(集積回路)カードは、IC乗車券、パスポート、電子マネーなどさまざまなアプリケーションに利用されてきている。このうち、国内のIC乗車券及び電子マネーの多くにはFeliCa(登録商標)と呼ばれる技術が用いられている。FeliCaの仕様は、通信プロトコルの他、カードに格納されるデータの読み書きを初めとするコマンド機能等も規定し、JISX6319−4として規格化されている。
一方、パスポート、運転免許証、taspoカード等、ISO/IEC14443で規定されている通信プロトコルやISO/IEC7816で規定されるコマンド体系(「ISOプロトコル」と総称する)を使用する分野も多い。
特開2007−183780号公報 特開2011−24091号公報
特開2007−183780号公報は、全プロトコルで共通のフォーマットのサービス・ディレクトリ・データをカードに格納するシステムを記載する。特開2011−24091号公報は、非接触通信において所定フォーマットのフレームを送受信するための通信プロトコルを用いて、それとは異なるフォーマットのフレームを送受信することを記載する。
しかしながら、あるプロトコルのカードと、それとは異なるプロトコルのリーダライタとは通信できない。そのためアプリケーション間の連携は限られる。
ある実施形態による通信デバイスは、第1通信プロトコルに準拠する信号を無線で送受信する第1送受信部と、前記第1送受信部によって受信された信号に含まれる第1フレームを処理する第1プロトコル処理部と、第2通信プロトコルに準拠する信号を無線で送受信する第2送受信部と、前記第2送受信部によって受信された信号に含まれる第2フレームを処理する第2プロトコル処理部と、前記第1送受信部又は前記第2送受信部によって受信された信号の通信プロトコルを識別する識別部と、前記第1フレームから取り出されたコマンドを処理するコマンド処理部と、前記第2フレームから取り出されたコマンドを変換して前記コマンド処理部に与える変換部と、前記第1通信プロトコルで使用されるデバイス識別情報を記憶する記憶部とを備える通信デバイスであって、前記第2送受信部は、前記デバイス識別情報を外部へ送信する。
ある実施形態による通信システムは、通信デバイスと、第1機器と、第2機器とを備える通信システムであって、前記第1機器は、第1通信プロトコルに準拠する信号を前記通信デバイスと無線で送受信し、前記第2機器は、第2通信プロトコルに準拠する信号を前記通信デバイスと無線で送受信し、前記通信デバイスは、前記第1通信プロトコルに準拠する信号を送受信する第1送受信部と、前記第1送受信部が受信した信号によって表される第1フレームを処理する第1プロトコル処理部と、前記第2通信プロトコルに準拠する信号を送受信する第2送受信部と、前記第2送受信部が受信した信号に含まれる第2フレームを処理するための第2プロトコル処理部と、前記第1送受信部又は前記第2送受信部によって受信された信号の通信プロトコルを識別する識別部と、前記第1フレームから取り出されたコマンドを処理するコマンド処理部と、前記第2フレームから取り出されたコマンドを変換して前記コマンド処理部に与える変換部と、前記第1通信プロトコルで使用されるデバイス識別情報を記憶する記憶部とを備え、前記第2送受信部は、前記デバイス識別情報を前記第2機器へ送信する。
上記構成により、通信デバイスは、異なる通信プロトコルで送信されたフレームに含まれるコマンドを処理できる。
図1は、例示的実施形態による通信システムの構成図である。 図2は、例示的実施形態による通信デバイスの構成図である。 図3は、例示的実施形態による通信デバイスの記憶部の構成図である。 図4は、例示的実施形態による機器及び通信デバイスの間の通信フレームの構造図である。 図5は、例示的実施形態による機器及び通信デバイスの間の通信フレームの構造図である。 図6は、例示的実施形態による機器及び通信デバイスの間の通信フレームの構造図である。 図7は、例示的実施形態による機器及び通信デバイスの間の通信フレームの構造図である。 図8は、例示的実施形態による機器及び通信デバイスの間の通信フレームの構造図である。 図9は、例示的実施形態による機器及び通信デバイスの間の通信フレームの構造図である。 図10は、例示的実施形態による通信デバイスのコマンド判別に関するフローである。 図11は、例示的実施形態による通信デバイスのステータスの処理に関するフローである。 図12は、例示的実施形態による通信システムの機器の構成図である。 図13は、例示的実施形態による機器及び通信デバイスの間のシーケンス図である。 図14は、例示的実施形態による機器及び通信デバイスの間のシーケンス図である。 図15は、例示的実施形態によるアンチコリジョン処理シーケンスで使用されるフレームの構造図である。 図16は、例示的実施形態によるアンチコリジョン処理シーケンスで使用されるフレームの構造図である。 図17は、例示的実施形態によるアンチコリジョン処理シーケンスで使用されるフレームの構造図である。 図18は、例示的実施形態によるICカードのハードウェアのブロック図である。
図面を参照して、さまざまな実施形態を説明する。図面を通して、同一の参照符号は、同様の構成要素を指す。
用語の定義
「通信デバイス」という語は、FeliCa(登録商標)、MIFARE(登録商標)、NFCなどの非接触の近距離無線通信規格に準拠するICカード(スマートカードとも呼ばれる)又はタグ、及びそれらと共に用いられるリーダライタを指す。非接触とは、カード内のICチップからの端子が有線でリーダライタに接続されるのではないことを意味する。よってICカードがリーダライタに接触するよう置かれても非接触通信と言える。特にリーダライタは、単に「機器」とも呼ばれる。
「NFC」(near field communication)という語は、一般的には、13.56MHzの周波数を利用する通信距離10cm程度の近距離無線通信技術を指す。狭義のNFCは、ISO/IEC 18092(NFCIP-1)という国際標準規格で定められた通信技術を指す。広義のNFCは、NFCIP-1に加え、業界標準団体であるNFCフォーラムが策定した実装規格であるNFCフォーラム仕様も含む。
「通信プロトコル」(エアプロトコルとも呼ばれる)という語は、非接触の近距離通信(near field communication, NFC)のための仕様を指す。広義の通信プロトコルは、物理形状、無線仕様、衝突検出/回避、及び通信プロトコルを指す。FeliCaの通信プロトコルは、JISX6319−4で規定される。MIFAREの通信プロトコルは、ISO/IEC14443で規定される。
「フレーム」は、データビット及びオプション誤り検出ビットのシーケンスであって、フレームデリミタが最初と最後とに付される。
主に「部」という語で示される機能ブロック(処理部など)は、説明のために図示され、記述されている。単一の機能ブロックは、複数の要素を含んでもよい。逆に、複数の機能ブロックが単一の要素で実現されてもよい。加えて、機能ブロックは、ソフトウェア、ハードウェア、又はソフトウェア及びハードウェアの組み合わせで実現され得る。
「アプリケーション」という語は、ICカードを利用するアプリケーションプログラムを指す。
システムの概略
図1は、ある実施形態による通信デバイスを使用した通信システム100を示す。ICカード1、リーダライタFeliCa−RW2、及びリーダライタISO−RW3は、通信デバイスとして機能する。ICカード1は、後述するように、例えばFeliCaアプリケーションファイル及びISOアプリケーションファイルを記憶する。
リーダライタFeliCa−RW2は、FeliCaで規定される通信プロトコル及びコマンド体系を使用してICカード1にアクセスする。ICカード1及びリーダライタFeliCa−RW2の間の通信は、例えば、JISX6319−4で規定される。リーダライタISO−RW3は、ISOで規定される通信プロトコル及びコマンド体系を使用してICカード1にアクセスする。ICカード1及びリーダライタISO−RW3の間の通信は、例えば、ISO/IEC14443で規定される。ここで「アクセス」とは、所望のアプリケーションの選択、相互認証、又はICカード1に記憶されているファイルへのアクセス等、アプリケーションを実行するための様々な処理を意味する。
ICカードの構造
図2は、ICカード1の構造を示す。通信処理部4は、FeliCa−RF送受信部41と、ISO−RF送受信部42とを含む。FeliCa−RF送受信部41は、FeliCaプロトコル(JISX6319−4)に準拠する信号(例えば13.56MHzのRF(高周波)信号)を無線で送受信する。ISO−RF送受信部42は、ISOプロトコル(例えばISO/IEC14443)に準拠する信号を無線で送受信する。
制御部5は、典型的には、CPU(中央処理ユニット)と、記憶部6に記憶されたプログラムとによって実現される機能ブロックであり、ICカード1が送受信するデータを処理する。制御部5は、FeliCaプロトコル処理部52及びISOプロトコル処理部54を含む。FeliCaプロトコル処理部52は、FeliCa−RF送受信部41によって受信された信号に含まれるフレームを処理する。ISOプロトコル処理部54は、ISO−RF送受信部42によって受信された信号に含まれるフレームを処理する。
加えて制御部5は、通信プロトコル識別部51、FeliCaコマンド処理部53、アプリケーション選択器55、ISOコマンド処理部56、及びコマンドフォーマット変換部57を含む。通信プロトコル識別部51は、FeliCa−RF送受信部41又はISO−RF送受信部42によって受信された信号の通信プロトコルを識別する。FeliCaコマンド処理部53は、FeliCaプロトコル処理部52によって処理されたフレームから取り出されたコマンドを処理する。
アプリケーション選択器55は、アプリケーション選択コマンドに基づいて、複数のアプリケーションのうちの一つを選択する。このアプリケーション選択コマンドは、複数のアプリケーションのそれぞれに割り当てられたアプリケーション識別コードのうちの1つを指定する。ISOコマンド処理部56は、ISOプロトコル処理部54によって処理されたフレームから取り出されたコマンドを処理する。コマンドフォーマット変換部57は、ISOプロトコル処理部54によって出力されたフレームから取り出されたコマンドを変換して、FeliCaコマンド処理部53に与える。
記憶部6は、一般にはメモリであり、より具体的にはEEPROM(電気的消去可能プログラム可能ROM)、FeRAM(強誘電体メモリ)等のような不揮発性メモリである。記憶部6は、アプリケーションで使用されるファイル、及びそのようなファイルを管理する情報を格納する。具体的には記憶部6は、FeliCaプロトコルのような通信プロトコルで使用されるデバイス識別情報を記憶する。ある実施形態によれば、ISO−RF送受信部42は、デバイス識別情報をリーダライタ2又は3へ送信する。リーダライタ2又は3は、デバイス識別情報をコマンド処理のために利用できる。
図3は、記憶部6の詳細を示す。図3に示されるICカード1は、記憶部6の中に複数のアプリケーションを記憶する。そのような複数のアプリケーションは、例えばFeliCaアプリケーション及びISOアプリケーションである。記憶部6は、3種類以上のアプリケーションを記憶してもよい。
記憶部6は、カード内アプリケーション管理部61、FeliCaアプリケーションを管理するFeliCaアプリケーション管理部62、及びISOアプリケーションを管理するISOアプリケーション管理部63を階層データ構造において記憶する。カード内アプリケーション管理部61は、ICカード1に搭載されているアプリケーション全体を管理する。カード内アプリケーション管理部61は、カード内アプリケーションリスト64を利用することによってアプリケーションを管理する。カード内アプリケーションリスト64は、記憶部6が記憶するアプリケーションのリストであり、具体的には、アプリケーションごとにユニークに付与されているアプリケーション識別コードを記述する。FeliCaアプリケーション管理部62及びISOアプリケーション管理部63は、FeliCaアプリケーションファイル65及びISOアプリケーションファイル66をそれぞれ管理する。FeliCaアプリケーションファイル65及びISOアプリケーションファイル66は、それぞれのアプリケーションで使用されるデータを格納する。
システム100において、リーダライタFeliCa−RW2及びISO−RW3は、カード
1内のFeliCaアプリケーションファイル65又はISOアプリケーションファイル66にアクセスできる。本実施形態では、リーダライタFeliCa−RW2はFeliCaアプリケーションファイル65だけにアクセスし、リーダライタISO−RW3はFeliCaアプリケーションファイル65及びISOアプリケーションファイル66の両方にアクセスする。
フレームの構造
図4は、FeliCaアプリケーションファイル65にアクセスするためにFeliCa−RF送受信部41がFeliCa−RW2から受け取るフレーム(パケットとも呼ばれる)の構造を示す。図2及び図4を参照して、FeliCa−RW2からFeliCaアプリケーションファイル65にアクセスする際の処理の流れを説明する。図4において、プリアンブル101及び同期コード102は、フレームの伝送における同期をとるための情報である。情報フィールド103は、フレームの本体であり、ペイロードとも呼ばれる。CRC104は、情報フィールド103を対象とした誤り検出符号である。
FeliCa−RF送受信部41は、このような構造のフレームを受け取ると、CRC104により当該フレーム受信時に通信異常が発生していないかを検証する。通信異常が発生していない場合、FeliCa−RF送受信部41は通信プロトコル識別部51に対し、現在使用している通信プロトコルがFeliCaプロトコルである旨を通知するとともに、情報フィールド103をFeliCaプロトコル処理部52に渡す。
情報フィールド103は、情報フィールド103の長さを示すLEN105と、コマンド名(読み出しや書き込み等)を示すC-Cod106と、当該ICカード1をユニークに識別するためのコードIDm107と、コマンドデータであるC−Data108とを含む。C−Data108が例えば書き込みコマンドであるなら、書き込みデータ、その長さに関する情報等を含む。
FeliCaプロトコル処理部52は、フレームの宛先が自分であるか否かをIDm107に基づいて判断し、自分宛のフレームである場合、C−Cod106及びC−Data108を取り出し、それぞれコマンドコード109及びコマンドデータ110としてFeliCaコマンド処理部53に渡す。これらはFeliCaのコマンド体系に準拠したものである。
FeliCaコマンド処理部53はこれらの情報を受け取ると、コマンドコード109に応じた処理を行う。例えば、読み出しコマンドであれば、コマンドデータ110で指定されたデータをFeliCaアプリケーションファイル65から読み出す。
図5は、ICカード1からのレスポンスフレームの構造を示す。図2及び図5を参照して、受信したコマンドに対してICカード1からFeliCa−RW2へレスポンスを返す際の処理の流れを説明する。FeliCaコマンド処理部53は、通信プロトコル識別部51に保持されている情報によって現在使用している通信プロトコルがFeliCaプロトコルであることを認識する。この場合、FeliCaコマンド処理部53は、読み出したデータ及び処理結果をそれぞれレスポンスデータ131及びステータス130としてFeliCaプロトコル処理部52に渡す。ここで処理結果とは、例えば、コマンド処理が正常に終了したか否かを表すデータである。
FeliCaプロトコル処理部52は、受け取った上記情報をそれぞれR−Data129及びSts128に設定する。さらにコマンドコード106に対する規定値をレスポンスコード126に設定し、コマンド受信時に受け取ったIDm107と同じ値をIDm127に設定した上で、情報フィールド123をFeliCa−RF送受信部41に渡す。なお、LEN125には情報フィールド123の長さを設定する。
FeliCa−RF送受信部41は、情報フィールド123に対するCRC124を算出して付加し、さらにプリアンブル121と同期コード122を付加したフレームをFeliCa−RW2に送信する。
上記は一つのコマンドに対する処理の流れを示したものであるが、このような処理を必要なコマンドの分だけ繰返し実行する。これにより、FeliCa−RW2がICカード1に搭載されるFeliCaのアプリケーションを実行できる。本実施形態では、通信プロトコル識別部51が現在使用されている通信プロトコルに関する情報を保持し、この情報によってFeliCaコマンド処理部がレスポンスの送り先を判別する点が従来のシステムとは異なる。
図6は、ISO−RF送受信部42がISO−RW3から受け取るフレームの構造を示す。図2及び図6を参照して、ISO−RW3からISOアプリケーションを実行する際の処理の流れを説明する。ICカード1がISO−RW3で処理できる複数のアプリケーションを搭載している場合、最初にアプリケーションの選択が必要になる。このため、まずISO−RW3は、カード内アプリケーション管理部61を選択する。具体的には、カード内アプリケーション管理部61を選択するためのコマンドを、図6に示す構造のフレームに載せてICカード1へ送信する。
図6に示される信号SOF(start of frame)141及びEOF(end of frame)143は、フレームの先端及び終端をそれぞれ示す。ISO−RF送受信部42は、SOF及びEOFを有するフレームを受け取ると、このフレームはISOプロトコルに準拠する旨を通信プロトコル識別部51に通知し、かつ、フレーム本体142をISOプロトコル処理部54に渡す。
フレーム本体142は、フレームの種類を示すPCB144と、フレームの宛先が自分であるか否かを判断するためのCID145と、コマンド情報を伝送するためのINF146と、誤り検出符号CRC147とを含む。ISOプロトコル処理部54は、フレームの宛先が自分であるか否かをCID145に基づいて判断し、自分宛のフレームである場合、CRC147により当該フレーム受信時に通信異常が発生していないかを検証する。通信異常が発生していない場合、ISOプロトコル処理部54は、INF146をアプリケーション選択器55に渡す。
INF146は、コマンドの分類を示すCLA148と、コマンド名(読み出しや書き込み等)を示すINS149と、コマンドパラメータPAR150と、後続するCmd−Data152の長さを示すLc151と、コマンドデータであるCmd−Data152と、受信可能なレスポンスの最大長を示すLe153とを含む。CLA148は、INS149及びPAR150で示されるコードがISOで規定されるコマンド体系に準拠したものであるか、それとも当該アプリケーション独自のコードであるかを識別する。また、PAR150及びCmd−Data152には、例えば書き込みコマンドであれば、書き込みアドレス及び書き込みデータがそれぞれ設定される。なお、コマンドデータが存在しないコマンドの場合(例えば読み出しコマンド)、Lc151は付加されない。また、レスポンスでデータが送られないコマンドの場合(例えば書き込みコマンド)、Le153は付加されない。
カード内アプリケーション管理部61を選択するためのコマンドの場合、CLA148にはISOのコマンド体系であることを示すコードが設定され、INS149には選択コマンドを示すコードが設定されている。また、PAR150には選択対象がアプリケーションであることを示すコードが設定されている。ここで、カード内アプリケーション管理部61は、カード内のアプリケーションを管理することを目的とした、広義のアプリケーションに含まれる。さらにCmd−Data152には選択対象がカード内アプリケーション管理部61であることを示すコードが設定されている。このコードは前述したアプリケーション識別コードであり、カード内アプリケーション管理部61にもFeliCaアプリケーションやISOアプリケーションと同様にユニークなアプリケーション識別コードが付与されている。
アプリケーション選択器55は、前述のアプリケーション選択コマンドを受け取ると、現在選択されているアプリケーションがカード内アプリケーション管理部61であるという情報を保持した後、INF146をISOコマンド処理部56に渡す。ISOコマンド処理部56は選択対象がカード内アプリケーション管理部61であるため、カード内アプリケーションリスト64の情報を読み出す。カード内アプリケーションリスト64は、ICカード1に搭載されている全てのアプリケーション識別コードを含む。
図7は、ICカード1からのレスポンスフレームの構造を示す。図2及び図7を参照して、受信したコマンドに対してICカード1からISO−RW3へレスポンスを返す際の処理の流れを説明する。カード内アプリケーション管理部61に対する選択コマンドの場合、ISOコマンド処理部56は、Rsp−Data168に前述の読み出しデータを設定し、SW169に処理結果を設定して、これらをアプリケーション選択器55を介してISOプロトコル処理部54に渡す。ここで読み出しデータは、ICカード1に搭載されている全てのアプリケーションの識別コードであり得る。処理結果は、コマンド処理が正常に終了したか否か等を表すデータである。
ISOプロトコル処理部54は、受け取った前述の情報をINF166に設定し、コマンド受信時に受け取ったCID145と同じ値をCID165に設定する。さらにフレームの種類を示すPCB164を設定するとともに、これらの情報に対するCRC167を算出して付加し、ISO−RF送受信部42に渡す。ISO−RF送受信部42は受け取った情報をフレーム本体162に設定し、フレームの先端及び終端を示すSOF161、EOF163を付加してISO−RW3に送信する。
通信システム1で用いられ得るさまざまなアプリケーションを一義的に特定するように、アプリケーション識別コードは規定される。その結果、ICカードを利用するさまざまなシステムにおいて、ISO−RW3は、ICカード1に搭載されているアプリケーションを特定できる。
ISO−RW3は、受信したレスポンスによって、実行したいISOアプリケーションがICカード1に搭載されていることを知る。ISO−RW3は、今度はこのISOアプリケーションを選択するための選択コマンドをICカード1に送信する。この選択コマンドは、コマンドデータ152で指定されるアプリケーション識別コードがISOアプリケーション管理部63を示す点を除き、前述したカード内アプリケーション管理部61を選択する際に用いられたフレームと同じ構造である。このコマンドを受信した際のISO−RF送受信部42及びISOプロトコル処理部54の処理内容は前述した処理と同様である。
アプリケーション選択器55は、受け取ったコマンドによって、選択対象がISOアプリケーション管理部63であることを認識する。この場合、アプリケーション選択器55は、現在選択されているアプリケーションがISOアプリケーション管理部63であるという情報を保持した後、当該フレームのINF146をISOコマンド処理部56に渡す。ISOコマンド処理部56は、ISOアプリケーション管理部63から当該アプリケーションの属性情報を読み出し、それをレスポンスデータ168に設定する。アプリケーションの属性情報は、例えば、アクセス権の設定に関する情報やサポートしている機能に関する情報などである。当該コマンドに対するレスポンスをISO−RW3に送信するまでの流れは、前述したカード内アプリケーション管理部61の選択コマンドに対するレスポンスの場合と同様である。
次に、前述のように選択したISOアプリケーション管理部63に対し、ISO−RW3がアプリケーション処理を行う際の処理の流れを説明する。一例として、ISOアプリケーションファイル66からデータを読み出す場合について述べる。ISO−RW3からの読み出しコマンドを受信した際のISO−RF送受信部42及びISOプロトコル処理部54の処理内容は前述した処理と同様である。
アプリケーション選択器55は現在選択中のアプリケーションがISOアプリケーション管理部63であるという情報を保持しているので、受け取ったコマンド(INF146)をISOコマンド処理部56に渡す。ISOコマンド処理部56はコマンドで指定された通り、ISOアプリケーションファイル66からデータを読み出し、それをRsp−Data168に設定する。当該コマンドに対するレスポンスをISO−RW3に送信するまでの流れは、前述したカード内アプリケーション管理部61の選択コマンドに対するレスポンスの場合と同様である。
上述したような一連の処理によって、ISO−RW3はICカード1に搭載されている複数のアプリケーションから所望のISOアプリケーションを選択し、そのアプリケーションのファイルにアクセスできる。本実施形態では、通信プロトコル識別部51が現在使用されている通信プロトコルに関する情報を保持する点が従来のシステムとは異なる。
図8は、ISO−RF送受信部42がISO−RW3から受け取るフレームの構造を示す。図2及び図8を参照して、ISO−RW3からFeliCaアプリケーションファイル65にアクセスする際の処理の流れを説明する。最初にISO−RW3がカード内アプリケーション管理部61を選択し、そのレスポンスによってICカード1に搭載されているアプリケーションを知るまでの処理については前述した流れと同様である。
ISO−RW3は実行したいFeliCaアプリケーションがICカード1に搭載されていることを知ると、このFeliCaアプリケーションを選択するための選択コマンドをICカード1に送信する。この選択コマンドはコマンドデータ152で指定されるアプリケーション識別コードがFeliCaアプリケーション管理部62を示す点を除き、前述したカード内アプリケーション管理部61を選択する際に用いられたフレームと同じ構造である。このコマンドを受信した際のISO−RF送受信部42及びISOプロトコル処理部54の処理内容は前述した処理と同様である。
アプリケーション選択器55は受け取ったコマンドによって、選択対象がFeliCaアプリケーション管理部62であることを認識する。この場合、アプリケーション選択器55は、現在選択されているアプリケーションがFeliCaアプリケーション管理部62であるという情報を保持した後、FeliCaアプリケーション管理部62から属性情報を読み出し、それをレスポンスデータ168に設定する。ここで属性情報は、例えば、FeliCaアプリケーションのバージョン番号を表すデータである。当該コマンドに対するレスポンスをISO−RW3に送信するまでの流れは、前述したカード内アプリケーション管理部61の選択コマンドに対するレスポンスの場合と同様である。
次に、前述のように選択したFeliCaアプリケーション管理部62に対し、ISO−RW3がアプリケーション処理を行う際の処理の流れを説明する。一例として、FeliCaアプリケーションファイル65からデータを読み出す場合について述べる。ISO−RW3からの読み出しコマンドを受信した際のISO−RF送受信部42及びISOプロトコル処理部54の処理内容は前述した処理と同様である。
アプリケーション選択器55は、現在選択中のアプリケーションがFeliCaアプリケーション管理部62であるという情報を保持しているので、受け取ったコマンド(INF146)をコマンドフォーマット変換部57に渡す。
コマンドフォーマット変換部57は、図8に示すように、受け取ったINF146からINS149及びCmd−Data152を取り出し、それぞれコマンドコード181及びコマンドデータ182としてFeliCaコマンド処理部53に渡す。ここで、コマンドコード181及びコマンドデータ182は、FeliCa−RW2からFeliCaアプリケーションにアクセスする場合を説明した、図4のコマンドコード109及びコマンドデータ110と同じものが受信したフレーム上にマッピングされている。したがって、FeliCaコマンド処理部53は、FeliCa−RWからのアクセス時と同一の処理によってFeliCaアプリケーションファイル65からデータを読み出すことができる。
図9は、ICカード1からのレスポンスフレームの構造を示す。図2及び図9を参照して、読み出しコマンドに対するレスポンスを返す際の処理の流れを説明する。FeliCaコマンド処理部53は、通信プロトコル識別部51に保持されている情報によって現在使用している通信プロトコルがFeliCaプロトコルであることを認識する。この場合、FeliCaコマンド処理部53は、読み出したデータ及び処理結果をレスポンスデータ191及びステータス192としてコマンドフォーマット変換部57に渡す。処理結果は、例えば、コマンド処理が正常に終了したか否かを表すデータである。ここで、レスポンスデータ191及びステータス192は、図4のレスポンスデータ131及びステータス130と同じものである。コマンドフォーマット変換部57は受け取ったレスポンスデータ191及びステータス192をそれぞれRsp−Data168及びSW169としてISOプロトコル処理部54に渡す。これ以降のISOプロトコル処理部54及びISO−RF送受信部42の処理は前述した処理と同様である。
上述したような一連の処理によって、ISO−RW3はICカード1に搭載されている複数のアプリケーションから所望のFeliCaアプリケーションを選択し、そのアプリケーションのファイルにアクセスできる。換言すれば、ISO−RW3は、FeliCa−RW2によるFeliCaアプリケーションの処理と同様の処理を実行できる。このようなISO−RW3によるFeliCaアプリケーションの実行は、従来のシステムにはない新規なものである。
コマンド処理のフロー
図10は、ある実施形態における受信コマンドの判別手順を示したフローチャートを示す。このフローは、アプリケーション選択器55による処理、ISOコマンド処理部56又はFeliCaコマンド処理部53による処理を含む。図10を参照しながら、アプリケーション選択器55におけるアプリケーション選択コマンドとアプリケーション処理コマンド(読み出しコマンド等)とを判別する手順について詳しく説明する。
まず、アプリケーション選択器55は、受信したコマンドがアプリケーション選択コマンドか否かを判断する(ステップS1)。何らかのアプリケーション処理を実行中(具体的には、あるアプリケーション処理コマンドに対するレスポンスを送信した後で、当該アプリケーションに対する次のコマンドを待っている状態)であっても、アプリケーション選択コマンドを優先的に受け付けるため、別のアプリケーションを選択できる。
アプリケーション選択コマンドを受信した場合、そのコマンドで指定されるアプリケーション識別コードにより選択対象のアプリケーションを判別する(ステップS10)。選択対象がカード内アプリケーション管理部61である場合、アプリケーション選択器55は現在選択中のアプリケーションがカード内アプリケーション管理部61である旨の情報を内部に保持する(ステップS11)。その後、ISOコマンド処理部56がカード内アプリケーション管理部61の選択処理(カード内アプリケーションリスト64の読み出し等)を行う(ステップS12)。選択対象がISOアプリケーション管理部63である場合も同様の処理の流れ(ステップS13、S14)である。また、選択対象がFeliCaアプリケーション管理部62である場合も、ステップS16の実行主体がアプリケーション選択器55である点を除き同様の処理が行われる(ステップS15,S16)。また、選択対象のアプリケーションが当該ICカード1に搭載されていない場合はコマンド異常として処理する(ステップS17)。
一方、受信したコマンドがアプリケーション選択コマンド以外の場合、アプリケーション選択器55は既に選択状態にあるアプリケーションに対するコマンドであるとみなし、現在選択中のアプリケーションが何であるかを判別する(ステップS30)。この判別には、ステップS11、S13、S15のいずれかのステップで保持した情報を使用する。
現在選択中のアプリケーションがカード内アプリケーション管理部61である場合、ISOコマンド処理部56がカード内アプリケーション管理部61に対するコマンド処理(例えば、空き領域サイズの取得やアプリケーションの追加等)を実行する(ステップS31)。現在選択中のアプリケーションがISOアプリケーション管理部63である場合も同様に、ISOコマンド処理部56がISOアプリケーション管理部63に対するコマンド処理(例えば、ISOアプリケーションファイル66の読み出し等)を実行する(ステップS32)。また、現在選択中のアプリケーションがFeliCaアプリケーション管理部62である場合は、FeliCaコマンド処理部53がFeliCaアプリケーション管理部62に対するコマンド処理(例えば、FeliCaアプリケーションファイル65の読み出し等)を実行する(ステップS33)。また、アプリケーションが未選択である場合はコマンド異常として処理する(ステップS34)。
ここで、アプリケーション選択コマンドかそれ以外かに関わらず、アプリケーション選択器55が受け取るコマンドは全て図6又は図8のCLA148〜Le153に示す構造をしている。アプリケーション選択コマンドとISOアプリケーション管理部63に対するコマンド群はともにISO体系に沿ったコマンドである。ISO体系に沿ったコマンドの場合、INS149がコマンドごとに異なるため、アプリケーション選択コマンドとそれ以外のコマンド群とを確実に判別できる。一方、FeliCaアプリケーション管理部62に対するコマンド群については、コマンドコード181がISO体系とは別に独自に決められているので、アプリケーション選択コマンドのINS149と重複する可能性がある。しかし、ISO体系のコマンドに属するアプリケーション選択コマンドの場合、CLA148がISO体系のコマンドであることを示している。具体的には、1バイトの長さを持つCLA148の最上位ビットの値が’0’に設定されている。これに対し、FeliCaアプリケーション管理部62に対するコマンド群の場合、CLA148の最上位ビットに’1’を設定することにより独自コマンドであることを明示する。このようにして、アプリケーション選択コマンドとFeliCaアプリケーション管理部62に対するコマンド群も確実に見分けることができるため、ステップS1の分岐は正しく処理できる。
なお、本実施形態では、ICカード1に複数のアプリケーションが搭載されている場合で説明したが、FeliCaアプリケーションだけが搭載されている場合、このようなアプリケーション選択の処理は不要であり、ISO−RW3でFeliCaアプリケーションを実行する場合でも、最初からFeliCaアプリケーション管理部62に対するコマンドを送信できる。
ISOプロトコルは、それが扱うフレーム構造以外の点でもFeliCaプロトコルとは異なる。例えば、図5及び図9においてステータス130及びステータス192をそれぞれSts128及びSW169に設定する旨説明したが、FeliCaコマンドの中にはステータス130及びステータス192が存在しないものもある。このようなコマンドではコマンドが異常終了した場合、各プロトコルの規定に従い、FeliCaプロトコルでは無応答とし、ISOプロトコルでは何らかの処理結果SW169を返すことが必要になる。
これを実現するため、ステータス130及びステータス192が存在しないFeliCaコマンドのレスポンスだけを対象として、「正常終了」と「異常終了」を示す2種類のステータスコードを新たに規定する。これらのステータスコードの扱いについて図11を参照しながら説明する。
図11は、ある実施形態におけるステータスの処理方法を示したフローチャートである。このフローは、FeliCaプロトコル処理部52による処理、FeliCa−RF送受信部41による処理を含む。
まず、FeliCaプロトコル処理部52は現在処理しているコマンドのコマンドコード109によって、そのレスポンスにSts128を付加するコマンドか否かを判別する(ステップS60)。Sts128を付加するコマンドの場合、ステータス130をそのままSts128に設定し(ステップ61)、情報フィールド123を組み立ててFeliCa−RF送受信部41に渡す(ステップ62)。FeliCa−RF送受信部41はそのレスポンスをFeliCa−RW2へ送信した後、受信モードに移行して次のコマンドの受信待ちに入る(ステップ63)。
一方、Sts128を付加するコマンドでない場合、FeliCaプロトコル処理部52はステータス130の示している内容が「正常終了」か「異常終了」かを判別する(ステップS64)。「正常終了」の場合、ステータス130を削除し、Sts128を付加しない情報フィールド123を組み立て、FeliCa−RF送受信部41に渡す(ステップ65)。FeliCa−RF送受信部41はそのレスポンスをFeliCa−RW2へ送信した後、受信モードに移行して次のコマンドの受信待ちに入る(ステップ63)。
「異常終了」の場合、FeliCaプロトコル処理部52はFeliCa−RF送受信部41に対し、コマンド異常である旨を通知する(ステップS66)。FeliCa−RF送受信部41はFeliCa−RW2へレスポンスを返さず、受信モードに移行して次のコマンドの受信待ちに入る(ステップ67)。
一方、ISOプロトコル処理部54の処理に関しては、どのようなFeliCaコマンドに対しても、ステータス192(「正常終了」又は「異常終了」を示すコードも含む)をISO体系のコードに変換してSW169に設定する。
FeliCaコマンドは独自コマンドであるため、SW169に設定されるコードも独自に決めたものでもよい。よってISO体系のコードへの変換は必須ではない。しかし、ISO−RW3がFeliCaアプリケーション及びISOアプリケーションの両方に対応している場合、ステータスコードの体系を合わせておくことにより処理の共通化を図ることができる効果を奏する。
このようにしてFeliCaプロトコル及びISOプロトコルの両方に応じた処理を実行できる。
リーダライタの構造
図12は、FeliCa−RW2及びISO−RW3の構造の概略を示す。FeliCa−RW2及びISO−RW3の処理について、図12及び図4〜図9を参照しながら簡単に説明する。
FeliCa−RW2がICカード1のFeliCaアプリケーションを実行する場合、FeliCaアプリケーション処理部201は各コマンドに応じて図4のコマンドコード109及びコマンドデータ110を組み立て、FeliCaプロトコル処理部202に渡す。FeliCaプロトコル処理部202はそれらをそれぞれC−Cod106及びC−Data108に設定するとともに、LEN105とIDm107を付加してFeliCa−RF送受信部203に渡す。FeliCa−RF送受信部203はそれを情報フィールド103に設定し、プリアンブル101、同期コード102及びCRC104を付加してICカード1に送信する。それに対するICカード1からのレスポンスフレームの構造は図5に示す通りである。レスポンスの処理は前述と同様である。
ISO−RW3がICカード1のISOアプリケーションを実行する場合、ISOアプリケーション処理部211は各コマンドに応じて図6のCLA148〜Le153を組み立て、ISOプロトコル処理部212に渡す。ISOプロトコル処理部212はそれらをINF146に設定するとともにPCB144,CID145及びCRC147を付加してISO−RF送受信部213に渡す。ISO−RF送受信部213はそれをフレーム本体142に設定し、SOF141とEOF143を付加してICカード1に送信する。それに対するICカード1からのレスポンスのフレーム構造は図7に示す通りである。レスポンスの処理については前述と同様である。
ISO−RW3がICカード1のFeliCaアプリケーションを実行する場合、FeliCaアプリケーション処理部214は各コマンドに応じて図8のコマンドコード181及びコマンドデータ182を組み立て、コマンドフォーマット変換部215に渡す。コマンドフォーマット変換部215はそれらをそれぞれINS149及びCmd−Data152に設定するとともに、CLA148、PAR150、Lc151及びLe153を付加してISOプロトコル処理部212に渡す。
ここで、前述した通りCLAの最上位ビットには独自コマンドを示す”1”を設定する。また、PAR150は使用しないため2バイト分00h(16進表記)を設定する。なお、JISX6319−4ではFeliCa仕様の将来拡張用として2バイトのコマンドコードを規定している。このような拡張コマンドを使用する場合はコマンドコード181の上位バイト、下位バイトをそれぞれINS149及びPARの1バイト目にマッピングすればよい。
ISOプロトコル処理部212はそれらをINF146に設定するとともにPCB144,CID145及びCRC147を付加してISO−RF送受信部213に渡す。ISO−RF送受信部213はそれをフレーム本体142に設定し、SOF141とEOF143を付加してICカード1に送信する。それに対するICカード1からのレスポンスのフレーム構造は図9に示す通りである。レスポンスの処理については前述と同様である。
なお、前述の説明ではISO−RW3がFeliCaアプリケーションとISOアプリケーションの両方に対応している場合を示したが、FeliCaアプリケーションだけに対応している場合、言うまでもなくISOアプリケーション処理部211は不要である。また、前述のISO−RW3に関する記述では、ICカード1側の処理と対比しやすいようFeliCaアプリケーション処理部214とコマンドフォーマット変換部215とを分けて説明したが、明確に機能を分離する必要性はなく、FeliCaアプリケーション処理部215がアプリケーション処理の中で図8のCLA148〜Le153を組み立ててもよい。
ここで、図4のIDm107と、図8のCID145は共に自分宛のフレームであるか否かを判断するためのもので、同じ役割を果たすものである。したがって、ISO−RW3からFeliCaアプリケーションにアクセスする際のフレーム構造では図8及び図9に示す通りCIDが使用され、IDmは使用されない。
しかし、IDmはICカード1にユニークな情報である。よってIDmは、通信制御より上位のレイヤ(例えばコマンド処理)で用いてもよい。例えばIDmを鍵データ生成用に利用すれば、ICカードごとに異なるので、相互認証用の鍵を多様化させることができる。これを実現するためには、ICカード1のIDmをISO−RW3に通知すればよい。図13及び図14を参照してIDm及びCIDをより詳細に説明する。
アンチコリジョン処理シーケンス
図13は、FeliCaの通信プロトコルにおけるIDmの役割を示すシーケンス図である。FeliCa−RW2及びICカード1の間の通信は、アンチコリジョン処理シーケンス及びアプリケーション処理シーケンスによって実現される。アンチコリジョン処理シーケンスとはFeliCa−RW2が発生した磁界内に存在するICカード1を認識するためのステップであり、磁界内にICカードが複数枚存在する場合にその中から一枚だけを捕捉する処理も含んでいる。一方、アプリケーション処理シーケンスとは、アンチコリジョン処理シーケンスで捕捉したICカード1に対するアプリケーション処理(データの読み出しや書き込み等)である。
アンチコリジョン処理シーケンスでは、FeliCa−RW2が送信したポーリングコマンドに対し、ICカード1は8バイトのIDmを返す。IDmは各ICカードにユニークな値を持つ。磁界内に複数枚のICカードが存在する場合はそれぞれのICカードが異なるIDmを送信する。アプリケーション処理シーケンスでは各コマンド及びレスポンスにIDmを付与して送信することにより、ICカード1は自分に対するコマンドであるか否かを判断でき、FeliCa−RW2は対象としているICカード1からのレスポンスであるか否かを判断できる。
図14は、ISOの通信プロトコルにおけるCIDの役割を示すシーケンス図である。FeliCaの通信プロトコルと同様、ISO−RW3及びICカード1の間の通信は、アンチコリジョン処理シーケンス及びアプリケーション処理シーケンスによって実現される。
アンチコリジョン処理シーケンスでは、ISO−RW3が送信したREQBコマンドに対し、ICカード1は4バイトのPUPI(pseudo-unique PICC identifier)を返す。このPUPIはMIFAREのUIDに相当し、IDmと同様、各ICカードにユニークな値であるが、擬似的なものであって固定値ではない。
磁界内に複数枚のICカードが存在する場合はそれぞれのICカードが異なるPUPIを送信する。FeliCaの通信プロトコルでは以降のアプリケーション処理シーケンスにIDmを付加するが、コマンド及びレスポンスごとに8バイトのIDmを付加するのはオーバーヘッドとなる。アンチコリジョン処理シーケンスで複数のICカードが捕捉され、アプリケーション処理シーケンスで複数のICカードを同時に扱う場合を想定すれば、数枚のICカードを扱う能力があれば十分である。この場合、複数のカードを識別するためには、コード長は、4ビットで足りる。したがってISOの通信プロトコルでは、ISO−RW3はREQBコマンドに続くATTIBコマンドにおいて、4バイトのPUPIと4ビットのCIDとを対にしてICカード1に送ることによりPUPIをCIDに置き換え、以降のアプリケーション処理シーケンスでは、各コマンド及びレスポンスにCIDを付与して送信することによって通信対象のICカードを特定する。このようなISOの通信プロトコルにおいて、ICカード1からISO−RW3にIDmを通知する方法には何通りかある。そのうちの一つはREQBコマンドに対するレスポンスにIDmを含めることである。
アンチコリジョン処理
図15は、ISOの通信プロトコルにおけるREQBコマンドに対するレスポンスのフレーム構造を示す。SOF230及びEOF236はフレームの先端及び終端を示す信号であり、コード231は本フレームがREQBコマンドに対するレスポンスであることを示す1バイトの固定値である。PUPI232は上述した4バイト長のデータである。アプリケーションデータ233はアプリケーション特有のデータ用に4バイト分確保しているが、ISOでは詳細は規定しておらず、アプリケーションに開放されている。また、3バイトのプロトコル情報234は通信プロトコルの制御に使用されるものであり、用途はISOで規定されている。CRC235は誤り検出符号である。
このフレームでIDmの伝送用に使用できるのはアプリケーションデータ233である。PUPI232及びアプリケーションデータ233の長さは、IDmの長さに等しい8バイトである。よってIDmの前半4バイトをPUPI232に割り当て、後半4バイトをアプリケーションデータ233に割り当てればよい。この方法であれば、IDmの伝送用に新たにコマンドを使用する必要もなく、伝送されるデータ量も増加しないため、オーバーヘッドを最小限に抑えることができる。
しかし、PUPIをICカードごとに異なる固定値にすると、PUPIがユーザと関連付けられるので、例えばPUPIにより個人の行動が特定できる等のプライバシーの問題がある。この対策としてPUPIを乱数化する場合、FeliCaのプロトコルとしてIDmはICカードごとに異なる固定値であるため、IDmの前半4バイトをPUPIに割り当てることができず、この方法は使えない。別の方法としては、REQBコマンドに続くATTRIBコマンドに対するレスポンスにIDmを含めることが考えられる。
図16は、ISOの通信プロトコルにおけるATTRIBコマンドに対するレスポンスのフレーム構造を示す。SOF240及びEOF244は、それぞれフレームの先端及び終端を示す信号であり、SOF240に続く1バイトのデータ241の下位4ビットにCIDが設定される。上位層応答242は0〜複数バイト長のオプションデータで、ISOでは詳細は規定しておらず、アプリケーションに開放されている。CRC243は誤り検出符号である。
このフレームでIDmの伝送用に使用できるのは上位層応答242である。任意の長さを割り当てることができるため、IDm通知用として使用できる。本来はオプションデータであるため、通信されるデータ量が8バイト分、増える。しかしアプリケーション全体の処理時間から見れば、無視できる。前述の方法と同様、IDmの伝送用に新たにコマンドを使用する必要もない。
その他にも、IDmもFeliCaアプリケーションファイル65等に格納し、通常の読み出しコマンドで読み出す方法や、IDmを読み出すための専用コマンドを設ける等の方法も考えられる。これらの方法は処理時間のオーバーヘッドの点でややデメリットがある。
FeliCa−RW2でFeliCaアプリケーションを実行する場合に比べ、ISO−RW3でFeliCaアプリケーションを実行する場合、FeliCaアプリケーション管理部62の選択が必要になる分、オーバーヘッドが増える。FeliCaアプリケーションは特にIC乗車券として使用する場合、混在する改札機で処理できるようにするため、処理時間は重要な要件となる。
上記選択処理におけるオーバーヘッドを軽減するために、カード内アプリケーション管理部61にアクセスせず、直接FeliCaアプリケーション管理部62を選択すればよい。もし、FeliCaアプリケーションがICカードに搭載されていない場合はこの選択コマンドに対しエラーレスポンスが返されることになる。これによりISO−RW3はICカードにFeliCaアプリケーションが搭載されているか否かを知ることができる。
カード内アプリケーション管理部61にアクセスすることによってICカードに搭載されているアプリケーションを知る方法は、リーダライタとICカードとが互いに相手の情報を何も持たないところからスタートして相互運用性を確保する手段として汎用的に用いることができる。また、端末に表示されたアプリケーション一覧からカード所持者自身が実行したいアプリケーションを選択するといったシステムにも適している。しかし、改札機のように用途が限定されている場合、目的とするアプリケーションを直接選択するのも一つの有効な手段である。
更には、アンチコリジョン処理シーケンス直後は暗黙的にFeliCaアプリケーションを選択状態とする方法も考えられる。これにより、FeliCaアプリケーションの実行の際にはアプリケーション選択といったステップを踏むことなく、すぐにFeliCaアプリケーションの処理に入ることができる。それに加え、図10を参照して説明した通り、FeliCaアプリケーションが選択されている時でもアプリケーション選択コマンドは優先的に受け付けられるため、改札機以外の端末ではICカード1に搭載されている全アプリケーションを知った上でアプリケーションを選択するような通常の処理を実行できる。
この方法はIC乗車券等のFeliCaアプリケーションだけに注目した場合であるが、より汎用的には、アンチコリジョン処理シーケンス直後に暗黙的に選択されるアプリケーションをケースバイケースで決定できるようにすることが望ましい。このための方法を図17を参照しながら説明する。
図17は、REQBコマンドのフレーム構造を示している。SOF250及びEOF255は、それぞれフレームの先端及び終端を示す信号である。コード251は、本フレームがREQBコマンドであることを示す1バイトの固定値である。AFI252は、後述するアプリケーション分野識別(application field identification、AFI)コードである。PARAM253は、アンチコリジョン処理用のパラメータである。CRC254は、誤り検出符号である。
AFI252は、例えば財布内にICカードが複数枚入っている場合等、磁界内に存在するICカードが複数枚存在する場合に、REQBコマンドに対するレスポンス同士が衝突する確率を低減させるよう応答するICカードを制限するために用いるパラメータである。
具体的にはISOで規定されているAFI252を以下のように使う。1バイトのAFI252は二分割される。上位4ビットは、分野を示すコードを格納する。下位4ビットは、小分類を示すコードを格納する。ICカード1は、カード発行時点で決められた、分野コード及び分類コードを持つ。REQBコマンドのAFI252の値が00h(16進表記)の場合は全てのICカードがREQBコマンドに対して応答を返す。AFI252の値がX0h(’X’は’1’〜’F’の値)の場合、自身の分野コードが’X’であるICカードだけが応答を返す(自身の小分類コードは無視)。また、AFI252の値が0Yh(’Y’は’1’〜’F’の値)の場合、自身の小分類コードが’Y’であるICカードだけが応答を返す(自身の分野コードは無視)。そして、AFI252の値がXYhの場合、自身の分野コードが’X’で、かつ小分類コードが’Y’あるICカードだけが応答を返す。このようにして、REQBコマンドに対して応答するICカードの数を減らし、アンチコリジョン処理を効率良く実行できる。
ここで、FeliCaアプリケーションに所定の分野コードかつ/又は小分類コードを割り当て、REQBコマンドのAFI252の値がその条件に合致する場合に応答を返すとともに、FeliCaアプリケーションを暗黙的に選択する。同様に、REQBコマンドのAFI252が別の所定の値である場合は、他の所定のアプリケーションを暗黙的に選択することもできる。この場合、ICカード1には二種類の分野コードかつ/又は小分類コードが割り当てられる。REQBコマンドのAFI252が00hを含め、それ以外の値の場合はいずれのアプリケーションも暗黙的に選択しない。
また、次のような応用形も考えられる。例えば、REQBコマンドのAFI252の値がX1hの場合はREQBコマンドに対して応答するとともにFeliCaアプリケーションを暗黙的に選択し、AFI252の値がX2hの場合はREQBコマンドに対して応答するとともに別のアプリケーションを暗黙的に選択する。そして、AFI252の値がX0hの場合はREQBコマンドに対して応答するが、いずれのアプリケーションも暗黙的に選択しない。このように分野コードかつ/又は小分類コードの値により、REQBコマンドに対する応答の有無と、アプリケーションの暗黙的選択の有無とを別々に決定することで、様々な応用が可能となる。
なお、図15又は図16を用いた説明の中で、REQBコマンド又はATTRIBコマンドに対するレスポンスでIDmを送信する方法について述べたが、REQBコマンドのAFI252が所定の分野コードかつ/又は小分類コードと一致した場合に限りIDmを送信するようにしてもよい。
上述した実施形態では、制御部5は、ICカード1内に搭載されているアプリケーション識別コードのリストをカード内アプリケーション管理部61への選択コマンドに対するレスポンスとして返す。しかしこのような実施形態には限定されず、アプリケーション識別コードのリストを格納するためのファイルを記憶部6に記憶し、ISO−RW3がアプリケーション識別コードのリストをこのファイルから別のコマンド(例えば、読出しコマンド)で読み出してもよい。
ICカードのハードウェア
図18は、さまざまな実施形態によるICカードのハードウェアのブロック図である。ICカード1は、ICチップ310、及びアンテナ320を含む。
アンテナ320は、ICチップ310に電気的に接続される。ICカード1がFeliCa−RW2又はISO−RW3の近傍にある時、アンテナ320は、FeliCa−RW2又はISO−RW3と電磁的に結合される。通信処理部4は、アンテナ320が受けたFeliCa−RW2又はISO−RW3からの電磁波から直流電圧を発生し、電源電圧としてICチップ310に供給する。
ICチップ310は、通信処理部4、制御部5、及び記憶部6を含む。記憶部6は、ROM312、RAM314、及びEEPROM316を含む。ROM312は、変更する必要のないアプリケーションソフトウェアやプラットフォームとなるOS(operating system)を記憶する。RAM314は、主に制御部5の作業用メモリとしてデータを記憶する。不揮発性メモリであるEEPROM316は、ICカード1の電源電圧が動作電圧より下がってもデータを保持する。よってEEPROM316は、アプリケーションソフトウェアによって用いられるユーザデータなどを記憶する。
上述のように、さまざまな実施形態による通信デバイスは、FeliCaプロトコルで送信されたフレームに含まれるコマンドと、ISOプロトコルで送信されたフレームに含まれるコマンドとを、処理できる。FeliCaプロトコルで使用されるデバイス識別情報と同じ役割を果たす情報がISOの通信プロトコルでも別途規定されているので、デバイス識別情報はISOの通信プロトコルでは使用する必要はない。しかし、デバイス識別情報はこの通信デバイスにユニークな情報であるため、例えば相互認証用の鍵を多様化させる(すなわち通信デバイスごとに異なる鍵データとする)といった目的のため、通信制御より上位のレイヤ(すなわちコマンド処理)で使用することも考えられる。さまざまな実施形態では、ISOプロトコルを使用する場合でもデバイス識別情報を通信デバイスから取得できるため、この情報をコマンド処理で使用できる。
また、ISOプロトコルのアプリケーションと同様、FeliCaのアプリケーションにもアプリケーション識別コードを付与することにより、ISO規格で規定されているアプリケーション選択コマンドにより選択が可能となる。さらに、アンチコリジョン処理で指定されるアプリケーション分野識別コードが所定の条件に合致する場合に、所定のアプリケーションを暗黙的に選択する手段を設けることにより、FeliCaのアプリケーションを選択するためのオーバーヘッドをなくすことができ、高速処理が要求されるIC乗車券としての利用も可能となる。
また、コマンド処理中に異常が発生した場合、ISOプロトコルでは異常を示すレスポンスを外部機器に返すのに対し、FeliCaプロトコルでは無応答とする等の通信プロトコルの違いがあるが、さまざまな実施形態では、同じ処理結果に対しても使用している通信プロトコルによって処理を分けることにより、この差異を吸収できる。
さまざまな実施形態によれば、一つの通信プロトコルだけサポートしている通常のリーダライタを用いてシステムを構築することを前提とした上で、前述したような異なるアプリケーション間の連携を実現するために、ISOプロトコルのフレーム及びコマンド体系を用いてFeliCaアプリケーションのファイルへのアクセスが可能となる。
さまざまな実施形態によれば、通信デバイスがFeliCaのアプリケーションとISOプロトコルのアプリケーションの双方を搭載し、ISOプロトコルのコマンド体系でISOプロトコルのアプリケーションだけではなく、FeliCaプロトコルのアプリケーションをも選択できる。さらに、混雑する改札での利用シーンにも対応できるよう、FeliCaのアプリケーションを短時間で選択できる。
さまざまな実施形態によれば、FeliCaプロトコル及びISOプロトコルの差異を吸収できる。
上述のように、改善されたICカードは格段に多くのシーンで用いられ、その結果、魅力的なアプリケーションが新たに生み出されると期待される。例えば、現在では駅構内の券売機や改札機等でしか行うことができないIC乗車券へのチャージや残高確認が様々な機器で行えるようになる。また、IC乗車券の利用履歴を別の機器で読み出すことが可能となるため、あるイベント会場に公共交通機関を利用した来場者に割引や優先的な座席の確保といった特典を与える等のサービスの導入が容易になってくる。あるいは、カードに記録されたユーザ支援情報(高齢者や障害者等の情報)を券売機や改札機で読み取ることにより、表示を大きくしたり、音声ガイダンスを付けたり、ゲートが閉じるまでの時間を長くしたりする等、きめ細かな人に優しいサービスを提供することも可能となる。
ある実施形態による通信デバイスは、アプリケーション選択器をさらに備え、前記記憶部は、複数のアプリケーションを記憶し、前記アプリケーション選択器は、前記複数のアプリケーションのそれぞれに割り当てられたアプリケーション識別コードを指定するアプリケーション選択コマンドによって、前記複数のアプリケーションのうちの一つを選択し、前記第2プロトコル処理部は、前記アプリケーション選択コマンドを処理する。
ある実施形態による通信デバイスは、アンチコリジョン処理時に外部から指定されるアプリケーション分野識別コードが所定の条件を満たす時には、予め決められたアプリケーションが選択される。
ある実施形態による通信デバイスは、前記コマンド処理部は、前記識別部に保持されている情報に従って、コマンドの処理結果を前記第1プロトコル処理部または前記第2プロトコル処理部のいずれかに出力する。
ある実施形態による通信デバイスは、前記処理結果が異常を示す時には、前記第1送受信部は前記処理結果を外部へ送信せず、前記第2送受信部は前記処理結果を外部へ送信する。
ある実施形態による通信デバイスは、前記第1通信プロトコルはJISX6319−4で規定され、前記第2通信プロトコルはISO/IEC14443で規定される。
さまざまな実施形態を説明したが、本発明はこれら例示的な実施形態に限定されるものではなく、当業者であれば特許請求の範囲に規定される本発明の趣旨を逸脱しない範囲において様々な変更が可能である。
本開示の実施形態は、非接触通信技術を用いたデバイス又はシステムに適用可能である。
1 ICカード
2 FeliCa−RW
3 ISO−RW
4 通信処理部
5 制御部
6 記憶部
51 通信プロトコル識別部
52 FeliCaプロトコル処理部
53 FeliCaコマンド処理部
54 ISOプロトコル処理部
55 アプリケーション選択器
56 ISOコマンド処理部
57 コマンドフォーマット変換部
61 カード内アプリケーション管理部
62 FeliCaアプリケーション管理部
63 ISOアプリケーション管理部
64 カード内アプリケーションリスト
65 FeliCaアプリケーションファイル
66 ISOアプリケーションファイル

Claims (6)

  1. 第1通信プロトコルに準拠する信号を無線で送受信する第1送受信部と、
    前記第1送受信部によって受信された信号に含まれる第1フレームを処理する第1プロトコル処理部と、
    第2通信プロトコルに準拠する信号を無線で送受信する第2送受信部と、
    前記第2送受信部によって受信された信号に含まれる第2フレームを処理する第2プロトコル処理部と、
    前記第1送受信部又は前記第2送受信部によって受信された信号の通信プロトコルを識別する識別部と、
    前記第1フレームから取り出されたコマンドを処理するコマンド処理部と、
    前記第2フレームから取り出されたコマンドを変換して前記コマンド処理部に与える変換部と、
    前記第1通信プロトコルで使用されるデバイス識別情報を記憶する記憶部と、
    アプリケーション選択器と、
    を備える通信デバイスであって、
    前記第2送受信部は、前記デバイス識別情報を外部へ送信し、
    前記記憶部は、複数のアプリケーションを記憶し、
    前記アプリケーション選択器は、前記複数のアプリケーションのそれぞれに割り当てられたアプリケーション識別コードを指定するアプリケーション選択コマンドによって、前記複数のアプリケーションのうちの一つを選択し、
    前記第2プロトコル処理部は、前記アプリケーション選択コマンドを処理す
    信デバイス。
  2. アンチコリジョン処理時に外部から指定されるアプリケーション分野識別コードが所定の条件を満たす時には、予め決められたアプリケーションが選択される
    請求項に記載の通信デバイス。
  3. 第1通信プロトコルに準拠する信号を無線で送受信する第1送受信部と、
    前記第1送受信部によって受信された信号に含まれる第1フレームを処理する第1プロトコル処理部と、
    第2通信プロトコルに準拠する信号を無線で送受信する第2送受信部と、
    前記第2送受信部によって受信された信号に含まれる第2フレームを処理する第2プロトコル処理部と、
    前記第1送受信部又は前記第2送受信部によって受信された信号の通信プロトコルを識別する識別部と、
    前記第1フレームから取り出されたコマンドを処理するコマンド処理部と、
    前記第2フレームから取り出されたコマンドを変換して前記コマンド処理部に与える変換部と、
    前記第1通信プロトコルで使用されるデバイス識別情報を記憶する記憶部と、
    を備える通信デバイスであって、
    前記第2送受信部は、前記デバイス識別情報を外部へ送信し、
    前記コマンド処理部は、前記識別部に保持されている情報に従って、コマンドの処理結果を前記第1プロトコル処理部または前記第2プロトコル処理部のいずれかに出力し、
    前記処理結果が異常を示す時には、前記第1送受信部は前記処理結果を外部へ送信せず、前記第2送受信部は前記処理結果を外部へ送信す
    信デバイス。
  4. 通信デバイスと、第1機器と、第2機器とを備える通信システムであって、
    前記第1機器は、第1通信プロトコルに準拠する信号を前記通信デバイスと無線で送受信し、
    前記第2機器は、第2通信プロトコルに準拠する信号を前記通信デバイスと無線で送受信し、
    前記通信デバイスは、
    前記第1通信プロトコルに準拠する信号を送受信する第1送受信部と、
    前記第1送受信部が受信した信号によって表される第1フレームを処理する第1プロトコル処理部と、
    前記第2通信プロトコルに準拠する信号を送受信する第2送受信部と、
    前記第2送受信部が受信した信号に含まれる第2フレームを処理するための第2プロトコル処理部と、
    前記第1送受信部又は前記第2送受信部によって受信された信号の通信プロトコルを識別する識別部と、
    前記第1フレームから取り出されたコマンドを処理するコマンド処理部と、
    前記第2フレームから取り出されたコマンドを変換して前記コマンド処理部に与える変換部と、
    前記第1通信プロトコルで使用されるデバイス識別情報を記憶する記憶部と、
    アプリケーション選択器と、
    を備え、
    前記第2送受信部は、前記デバイス識別情報を前記第2機器へ送信し、
    前記記憶部は、複数のアプリケーションを記憶し、
    前記アプリケーション選択器は、前記複数のアプリケーションのそれぞれに割り当てられたアプリケーション識別コードを指定するアプリケーション選択コマンドによって、前記複数のアプリケーションのうちの一つを選択し、
    前記第2機器は、前記アプリケーション選択コマンドを前記通信デバイスに送信す
    信システム。
  5. アンチコリジョン処理時に前記第2機器によって指定されるアプリケーション分野識別コードが所定の条件を満たす時には、予め決められたアプリケーションが前記通信デバイスによって選択される
    請求項に記載の通信システム。
  6. 通信デバイスと、第1機器と、第2機器とを備える通信システムであって、
    前記第1機器は、第1通信プロトコルに準拠する信号を前記通信デバイスと無線で送受信し、
    前記第2機器は、第2通信プロトコルに準拠する信号を前記通信デバイスと無線で送受信し、
    前記通信デバイスは、
    前記第1通信プロトコルに準拠する信号を送受信する第1送受信部と、
    前記第1送受信部が受信した信号によって表される第1フレームを処理する第1プロトコル処理部と、
    前記第2通信プロトコルに準拠する信号を送受信する第2送受信部と、
    前記第2送受信部が受信した信号に含まれる第2フレームを処理するための第2プロトコル処理部と、
    前記第1送受信部又は前記第2送受信部によって受信された信号の通信プロトコルを識別する識別部と、
    前記第1フレームから取り出されたコマンドを処理するコマンド処理部と、
    前記第2フレームから取り出されたコマンドを変換して前記コマンド処理部に与える変換部と、
    前記第1通信プロトコルで使用されるデバイス識別情報を記憶する記憶部と、
    を備え、
    前記第2送受信部は、前記デバイス識別情報を前記第2機器へ送信し、
    前記コマンド処理部は、前記識別部に保持されている情報に従って、コマンドの処理結果を前記第1プロトコル処理部または前記第2プロトコル処理部のいずれかに出力し、
    前記処理結果が異常を示す時には、前記第1送受信部は前記処理結果を前記第1機器へ送信せず、前記第2送受信部は前記処理結果を前記第2機器へ送信す
    信システム。
JP2015536436A 2013-09-11 2014-08-19 通信デバイス及び通信システム Expired - Fee Related JP6403122B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013187907 2013-09-11
JP2013187907 2013-09-11
PCT/JP2014/004230 WO2015037187A1 (ja) 2013-09-11 2014-08-19 通信デバイス及び通信システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2018111165A Division JP6516133B2 (ja) 2013-09-11 2018-06-11 通信デバイス及び通信システム

Publications (2)

Publication Number Publication Date
JPWO2015037187A1 JPWO2015037187A1 (ja) 2017-03-02
JP6403122B2 true JP6403122B2 (ja) 2018-10-10

Family

ID=52665320

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2015536436A Expired - Fee Related JP6403122B2 (ja) 2013-09-11 2014-08-19 通信デバイス及び通信システム
JP2018111165A Active JP6516133B2 (ja) 2013-09-11 2018-06-11 通信デバイス及び通信システム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2018111165A Active JP6516133B2 (ja) 2013-09-11 2018-06-11 通信デバイス及び通信システム

Country Status (4)

Country Link
US (1) US10085268B2 (ja)
JP (2) JP6403122B2 (ja)
CN (1) CN105453112B (ja)
WO (1) WO2015037187A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5968501B1 (ja) * 2015-06-01 2016-08-10 三菱電機株式会社 車載電子制御装置
WO2019124445A1 (ja) * 2017-12-20 2019-06-27 凸版印刷株式会社 電子タグデバイス
EP3584948A1 (en) * 2018-06-19 2019-12-25 STMicroelectronics razvoj polprevodnikov d.o.o. Protocol detection and decoding in multiprotocol tag, and corresponding integrated circuit
CN114826884B (zh) * 2022-05-30 2023-08-18 苏州浪潮智能科技有限公司 跨设备协议通信故障定位的方法、装置、设备及可读介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3881844B2 (ja) * 2000-12-18 2007-02-14 Necトーキン株式会社 非接触型icカード
JP2003044801A (ja) * 2001-07-27 2003-02-14 Dainippon Printing Co Ltd 複数の情報伝達手段を備えた可搬情報処理装置
JP2004192253A (ja) * 2002-12-10 2004-07-08 Dainippon Printing Co Ltd Icカード及びicカードプログラム
JP4617683B2 (ja) * 2004-02-24 2011-01-26 ソニー株式会社 半導体集積回路,携帯モジュールおよびメッセージ通信方法。
JP2006099324A (ja) * 2004-09-29 2006-04-13 Matsushita Electric Ind Co Ltd 非接触カード
JP4779653B2 (ja) 2006-01-06 2011-09-28 ソニー株式会社 情報通信システム、情報通信装置及び情報通信方法、並びにコンピュータ・プログラム
KR100692663B1 (ko) * 2006-02-17 2007-03-13 주식회사 케이티프리텔 Ic 카드를 탑재한 단말 및 단말의 초기화 방법
WO2007094624A1 (en) 2006-02-17 2007-08-23 Ktfreetel Co., Ltd. Ic card, terminal with ic card and initializing method thereof
JP2010039913A (ja) * 2008-08-07 2010-02-18 Sony Corp 通信装置、通信方法、及びプログラム
JP4631974B2 (ja) * 2009-01-08 2011-02-16 ソニー株式会社 情報処理装置、情報処理方法、プログラム、および情報処理システム
EP2239926A1 (en) * 2009-04-09 2010-10-13 Gemalto SA Method of detecting a NFC device emulating several contactless cards which may use a plurality of protocols
JP5549854B2 (ja) * 2009-04-14 2014-07-16 ソニー株式会社 情報処理装置および方法、並びにプログラム
JP5310348B2 (ja) 2009-07-17 2013-10-09 ソニー株式会社 受信装置、受信方法、プログラム、及び送信装置
JP5563842B2 (ja) * 2010-02-08 2014-07-30 フェリカネットワークス株式会社 携帯端末、情報送受信方法、サーバ装置、リーダライタ及び会員特典取得システム
US9575777B2 (en) * 2011-03-08 2017-02-21 Sony Corporation Information processing device for performing contactless communication with an external device using multiple communication standards
JP2013109695A (ja) * 2011-11-24 2013-06-06 Systena Corp アプリケーションのロック解除システムおよびロック解除用プログラム
US9288663B2 (en) 2012-02-15 2016-03-15 Panasonic Intellectual Property Corporation Of America Terminal device, and communication method and communication module for the same

Also Published As

Publication number Publication date
WO2015037187A1 (ja) 2015-03-19
JPWO2015037187A1 (ja) 2017-03-02
JP6516133B2 (ja) 2019-05-22
US20160198477A1 (en) 2016-07-07
CN105453112A (zh) 2016-03-30
US10085268B2 (en) 2018-09-25
CN105453112B (zh) 2018-11-06
JP2018152130A (ja) 2018-09-27

Similar Documents

Publication Publication Date Title
US8410936B2 (en) Contactless card that receives power from host device
CN205407821U (zh) 近场通信设备
EP2770782B1 (en) Wireless data communication
US8688929B2 (en) Method for storing data as well as a transponder, a read/write-device, a computer readable medium including a program element and such a program element adapted to perform this method
US9342776B2 (en) Method for storing data as well as transponder, a read/write-device, a computer readable medium including a program element and such a program element adapted to perform this method
JP6516133B2 (ja) 通信デバイス及び通信システム
CN103562937A (zh) 智能卡性能增强电路及系统
US8931705B2 (en) IC card, mobile electronic device and data processing method in IC card
US10931331B2 (en) Communication device and method
JP6241340B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
EP2717193B1 (en) IC card, portable electronic device, and reader/ writer
JP2005293362A (ja) データキャリア及びデータキャリアのプログラム
KR100926364B1 (ko) 스마트 카드에서의 복수의 응용 인터페이스 동시 제공 방법및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180611

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180807

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180903

R151 Written notification of patent or utility model registration

Ref document number: 6403122

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

SZ03 Written request for cancellation of trust registration

Free format text: JAPANESE INTERMEDIATE CODE: R313Z03

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees