JP2005141677A - Icカード用通信ライブラリ及びicカード - Google Patents

Icカード用通信ライブラリ及びicカード Download PDF

Info

Publication number
JP2005141677A
JP2005141677A JP2003380151A JP2003380151A JP2005141677A JP 2005141677 A JP2005141677 A JP 2005141677A JP 2003380151 A JP2003380151 A JP 2003380151A JP 2003380151 A JP2003380151 A JP 2003380151A JP 2005141677 A JP2005141677 A JP 2005141677A
Authority
JP
Japan
Prior art keywords
data
card
connection device
application
communication library
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.)
Pending
Application number
JP2003380151A
Other languages
English (en)
Inventor
Ataru Yomo
中 四方
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.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to JP2003380151A priority Critical patent/JP2005141677A/ja
Publication of JP2005141677A publication Critical patent/JP2005141677A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 ICカードが連鎖送受信する時の通信プロトコルの効率を改善する方法を提供する。
【解決手段】 ICカードからの送信時に、アプリケーション30から接続装置に送信するデータの情報長が接続装置の最大情報フィールド長(IFSD)より長い場合、ICカードの制御を行うシステムプログラム20の通信ライブラリ21がデータをIFSD以下のデータ長に分割し、接続装置に連鎖送信を行う。また、ICカードの受信時に、ICカードの最大情報フィールド長(IFSC)より短い情報長のデータを受信した場合、通信ライブラリ21によりデータを一時的にバッファに格納し、データを通信ライブラリ20で結合してからアプリケーション30に渡すことでアプリケーション30の連鎖送受信に係る負担を軽減する。
【選択図】 図1

Description

本発明は、不揮発性メモリやCPUを搭載したICカードに搭載するシステムプログラムに関し、より詳細には、当該システムプログラム上で動作するICカードに搭載されたアプリケーションと、ICカードと接続する接続装置との間のデータ通信を行うための通信ライブラリに関する。
不揮発性メモリ、CPU等を搭載したICカードは、磁気カードに比べ大量のデータを扱うことができ、セキュリティに優れていることから今後普及していくことが考えられる。
ICカードと接続しデータの送受信を行う装置(以下、接続装置)との通信にはISO/IEC7816‐3で規格化されているT=1プロトコル(以下、「T=1プロトコル」と称す。)が広く用いられている。
T=1プロトコルでは、接続装置とICカードの間を非同期半二重のブロック伝送で通信を行う。ブロックは先頭フィールド、情報フィールド、最終フィールドで構成されており、情報フィールドにICカード、接続装置から伝送するデータを含めるよう構成されている。ICカード、接続装置が送信する通信ブロックには接続装置それぞれに応じた情報フィールドの最大長の制限があり、受け取ることのできるブロックの最大の情報フィールド長を表している。このため、受信側の最大情報フィールド長よりも長いデータを送信する場合は、同規格に規定されている連鎖機能といわれる通信機能によってデータを伝送する必要がある。つまり、連鎖送信では、送信するデータを、受信側である接続装置の最大情報フィールド長以下の情報長に分割して、分割した情報をそれぞれ異なるブロックの情報フィールドに格納して送信を行うことが規定されている。その際、情報フィールドは最大情報フィールド長以下ならどのような値でも伝送できる。
ICカードからIFSD(maximum information field size for the interface device、接続装置の最大情報フィールド長)を超える情報長のデータを送信する場合、データの情報長をIFSD以下に分割し、ブロック連鎖機能を使用して接続装置にデータを送信する。従来技術において、この送信データの分割処理は、システムプログラム上のアプリケーションプログラムによって行われ、分割されたデータをシステムプログラムの通信ライブラリに渡していた。
図8に、従来技術において、データ「ABCDEFGHI」をIFSD以下の「ABC」、「DEF」、「GHI」に分割してICカードから接続装置に送信する場合の通信処理のフローを示す。以下の処理(1)〜(4)は、図8中の(1)〜(4)に夫々対応する。
(1) ICカードは接続装置からコマンドを受信する。
(2) アプリケーションは「ABC」のデータを通信ライブラリに渡し、通信ライブラリから連鎖送信で送信先である接続装置に「ABC」を送信する。
(3) アプリケーションは「DEF」のデータを通信ライブラリに渡し、通信ライブラリから連鎖送信で接続装置に「DEF」を送信する。
(4) アプリケーションは「GHI」のデータを通信ライブラリに渡し、通信ライブラリから接続装置に「GHI」を送信する。
尚、図8において、アプリケーションの情報伝達に使用される情報ブロック(Iブロック)は、I(N(S),M)の書式で表されており、N(S)はブロックの送信シーケンス番号、Mはブロック連鎖ビットを表す。また、接続装置からの肯定または否定応答の伝達に使用される受信準備完了ブロック(Rブロック)は、R(N(R))の書式で表されており、N(R)は次に期待するIブロックの送信シーケンス番号を表す。
従来技術において、接続装置から連鎖送信されるブロックのデータはシステムプログラムによってバッファリングされることなく、受信する度にシステムプログラム上のアプリケーションに渡していた。ISO/IEC7816‐4において、接続装置とICカードで送受信するアプリケーションデータの構造が規定されており、接続装置からICカードに送信するコマンドは、4バイトのコマンドヘッダと可変長のデータ部で構成されると規定されている。ICカード上のアプリケーションは、接続装置から送信されるコマンドヘッダを判定して処理を行う。接続装置から連鎖送信されたデータの情報長がコマンドの判定に必要なコマンドヘッダのサイズ4バイトより短い場合、アプリケーション側でコマンドの判別に必要なコマンドヘッダを受信するまで受信データをRAM上にバッファリングする必要がある。
尚、ICカードが受信し得る電文の最大長(IFSC値)に変更が生じた場合でも、それに伴う面倒な処理を不要として係員にかかる負担を軽減し得るICカード処理装置(接続装置)を提供する技術として、下記の特許文献1に開示されているICカード処理装置がある。
特開2000‐113118号公報
しかしながら、従来の技術では以下の問題点を含んでいる。つまり、IFSDの値は接続装置によって異なり、ICカード上のアプリケーションがIFSD以下にデータを分割し、接続装置に送信する処理をICカード上に搭載するアプリケーションそれぞれに組み込む必要があり、アプリケーション作成者にとって面倒であった。
また、受信時のバッファ処理はアプリケーション毎にバッファメモリを必要とし、RAMの記憶容量の小さいICカード上のアプリケーションにとってバッファメモリを確保するのは負担である。また、バッファ処理をアプリケーション毎に組み込むのは面倒であった。
本発明は、上記問題点に鑑みてなされたもので、アプリケーション毎に作成していたブロック連鎖送受信処理をシステムプログラム上で実行可能とし、アプリケーション作成者の負担を軽減し、それぞれのアプリケーション毎に組み込まれていたブロック連鎖送受信処理を不要とすることでICカードに搭載するアプリケーションのプログラムサイズの削減を可能とすることを目的とする。
上記目的を達成するための本発明に係るICカード用通信ライブラリは、ICカードのシステムプログラム上で動作するアプリケーションと、前記ICカードと接続する接続装置との間のデータ通信を行うための前記システムプログラムに含まれる通信プログラムの集合体としての通信ライブラリであって、前記アプリケーションから前記接続装置へ送信するデータの情報長が前記接続装置の最大情報フィールド長より長い場合、送信する前記データを前記アプリケーションから受け取り、前記最大情報フィールド長以下のデータ長に分割し、前記接続装置にブロック連鎖送信を行う一連の処理を実行するプログラムを含むことを第1の特徴とする。
上記第1の特徴の本発明に係るICカード用通信ライブラリによれば、アプリケーションから渡されるデータの情報長を接続装置のIFSD(最大情報フィールド長)と比較し、IFSDより長い情報長のデータをIFSD以下のデータに分割し接続装置へ連鎖送信することができる。この結果、アプリケーション側でデータ分割や連鎖送信の処理を行わずともよく、当該処理をアプリケーション作成時に組み込む必要がなく、アプリケーション作成者の負担を軽減できるとともに、アプリケーションのプログラムサイズの削減も可能となる。
また、好ましくは、上記第1の特徴の本発明に係るICカード用通信ライブラリにおいて、前記接続装置から送信された最大情報フィールド長変更要求を受信すると、前記最大情報フィールド長情報を変更して保持する処理と、前記アプリケーションから前記接続装置へ送信するデータの情報長が前記変更後の最大情報フィールド長より長い場合、送信する前記データを前記アプリケーションから受け取り、前記変更後の最大情報フィールド長以下のデータ長に分割し、前記接続装置にブロック連鎖送信を行う一連の処理を実行するプログラムを含むことを第2の特徴とする。
この第2の特徴によれば、接続装置のIFSDを保持し、接続装置からの最大情報フィールド長変更要求を処理することができるので、ICカードに接続する接続装置のIFSDが異なっても、対応可能となり、IFSDの異なる種々の接続装置に対して上記第1の特徴の作用効果を奏することができる。
更に好ましくは、上記何れかの特徴の本発明に係るICカード用通信ライブラリにおいて、前記接続装置から連鎖送信された各データを、一時的にバッファに格納し、連鎖送信された前記各データを結合してから前記アプリケーションに渡す一連の処理を実行するプログラムを含むことを第3の特徴とする。
この第3の特徴によれば、接続装置から送信されるIFSC(maximum information field size for the card、ICカードの最大情報フィールド長)より短いデータを通信ライブラリでバッファし、連鎖ブロックのデータを結合してからアプリケーションに渡す通信ライブラリを提供できる。このようなバッファ処理をシステムプログラムで処理すれば、受信時のアプリケーションの負担を軽減できる。システムプログラムでバッファできるデータサイズが大容量であればプロトコル処理の効率は上がるが、ICカードのコストの面から大容量のRAMをICカードに搭載することは困難である。接続装置からの受信データを、IFSCを超える値までバッファするにはIFSCのサイズ分のデータを格納するRAMが、受信RAMとは別に必要になる。アプリケーションがコマンド判別に必要なバイト数バッファできれば、アプリケーションのコマンド判別処理の負担は軽減されるため、IFSCに満たないデータ長でも、ある程度の情報長のデータがバッファされた段階で、アプリケーションにバッファしたデータを渡すことは通信の効率改善に効果がある。
本発明に係るICカードは、上記第1〜第3の何れかの特徴のICカード用通信ライブラリをシステムプログラムに含むことを特徴とする。これにより、上記第1〜第3の何れかの特徴のICカード用通信ライブラリによる作用効果を奏することができるICカードを提供できる。
本発明に係るICカード用通信ライブラリ(以下、単に「通信ライブラリ」という。)、及び、その通信ライブラリをシステムプログラムに含む本発明に係るICカードの一実施の形態につき、図面に基づいて説明する。
本実施形態に係るICカードシステムは、図1に示すように、CPU11、RAM(ランダムアクセスメモリ)12、通信回路13、不揮発性メモリ14等のICカードハードウェア10と、その上で動作するシステムプログラム20、システムプログラム20に含まれる通信プログラムの集合である通信ライブラリ21、システムプログラム20上で動作するアプリケーションプログラム30で構成される。通信ライブラリ20で、ICカード活性化後に接続装置から送信される最大情報フィールド長変更要求を処理し、ブロック分割処理、連鎖送信処理、受信データバッファ処理を行う。
図2に、T=1プロトコルのブロックの構成を示す。ブロックは先頭フィールド、情報フィールドINF(information field)、最終フィールドEDC(error detection code)から構成されている。尚、先頭フィールドはNAD(node address byte)、PCB(protocol control byte)、LEN(length byte)で構成されている。NADはブロックの送信元及び宛先を識別し、PCBは送受信の制御に必要な情報を送るために使用し、LENはブロックの情報フィールドのバイト数を示す。ブロックは用途によりIブロック、Rブロック、Sブロックの3種類があり、IブロックはICカードと接続装置との間でアプリケーションデータの送受信を行うのに使用され、Rブロックは肯定または否定応答を行うのに使用され、Sブロックは接続装置とICカード間で制御情報を交換するのに使用される。
図3に、連鎖送信の手順を示す。連鎖送信はIブロックで行われる。IブロックのPCBバイトは図4のように構成されている。PCBバイトのb6(ブロック連鎖ビット)によって連鎖送信が制御される。PCBバイトのb6が「1」の時には、ブロックは連鎖送信中であり、更にブロックが続くことを示している。また、PCBバイトのb7は送信シーケンス番号を表す。
図3は、より具体的には、ICカードから「ABCDEFGHI」のデータを「ABC」、「DEF」、「GHI」に分割して接続装置に連鎖送信する手順を示すものである。PCBのブロック連鎖ビットを「1」にして「ABC」を情報フィールドとして送信する。次に「DEF」を前記と同様にブロック連鎖ビットを「1」にして送信する。最後に「GHI」をPCBのブロック連鎖ビットを「0」にして送信する。尚、図3中、I(N(S),M)の書式で表されているIブロックのN(S)がブロックの送信シーケンス番号、Mがブロック連鎖ビットを表す。また、R(N(R))の書式で表されているRブロックのN(R)は次に期待するIブロックの送信シーケンス番号を表す。また、後述する図6中の記載において同じである。
ICカードでは、接続装置のIFSDの初期値はISO/IEC7816‐3で「32」に設定するよう規定されているので、接続装置はIFSDを変更するためIFS変更要求をICカードに送信して、これを受けたICカード側ではIFSDの変更を行う。
図5に、ICカードのシステムプログラムがICカードに搭載されているアプリケーションプログラムから送信データを受け取り、前記システムプログラムの一部である通信ライブラリから接続装置にデータを送信する手順を示す。通信ライブラリはアプリケーションからデータを受け取り(S11)、受け取ったデータの情報長がIFSD以下かどうか判定を行い(S12)、送信データ長がIFSD以下の場合、通信ライブラリはデータをそのまま送信データの情報フィールドデータとして接続装置に送信し(S13)、通信処理を終了する。
一方、S12の判定において送信情報長がIFSDより長い場合、IFSD以下のデータと残りのデータに分割し(S14)、分割したデータを送信データとして、S14と同様の手順で送信する(S15)。残りのデータについて前記と同様に情報長をIFSDと比較し(S16)、IFSDより長い場合は分割送信を繰り返す。残りデータの情報長がIFSD以下になったら、残りデータを送信データとして接続装置に送信し(S17)、通信処理を終了する。
図6に、アプリケーションから「ABCDEFGHI」のデータを通信ライブラリに渡し、通信ライブラリから接続装置に連鎖送信を行う処理フローを示す。以下の処理(1)〜(3)は、図6中の(1)〜(3)に夫々対応する。
(1) ICカードは接続装置からコマンドI(0,0)を受信する。
(2) アプリケーションは「ABCDEFGHI」の送信データを通信ライブラリに渡す。
(3) 通信ライブラリが「ABCDEFGHI」の送信データを「ABC」、「DEF」、「GHI」に分割して、連鎖送信で接続装置に送信する。
図7に、通信ライブラリで接続装置からの送信データを受信する受信手順を示す。本実施形態において、連鎖受信処理のためのバッファのサイズは16バイトとしている。接続装置から送信された通信ブロックを受け取る(S21)。受信したブロックが連鎖ブロックかどうかを情報フィールドのブロック連鎖ビットにて判定を行い(S22)、連鎖ブロックでない場合は、受信データとバッファのデータをアプリケーションに渡して(S25)終了する。
一方、S22の判定において連鎖ブロックである場合は、受信データとバッファにあるデータの合計サイズが16バイト以上か判定を行い(S23)、合計サイズが16バイト以上の場合は、アプリケーションに受信データとバッファデータを渡して(S25)受信を終了する。S23の判定において16バイト未満の場合は、受信データをバッファに追加して(S24)、更に、連鎖ブロックのデータを受信するため、アプリケーションにデータを渡さずにデータ受信処理を続ける。
以上説明したように、この発明に係る通信ライブラリを用いれば、アプリケーションからIFSDより長いデータを送信する場合にブロック分割、連鎖送信の処理をアプリケーションが行う必要が無くなり、アプリケーション作成における負担を軽減できる。
更に、受信バッファ処理によりアプリケーションにおける連鎖受信処理の作成に係る負担を軽減し、バッファリングに必要なRAMをアプリケーションが確保する必要がなくなり、ICカード上のRAMを有効に利用することができる。また、アプリケーションでコマンド判定に必要な情報長以下のデータに対する処理に係る負担を軽減することができるという効果を奏する。
本発明に係るICカードの一実施形態におけるハードウェア及びソフトウェアの構成例を示すブロック図 ICカードシステムのISO/IEC7816‐3で規格化されているT=1プロトコルのブロックデータ転送フォーマットを示す説明図 本発明に係るICカード用通信ライブラリによるブロック連鎖送信を示す説明図 図2に示すブロックデータ転送フォーマットにおけるIブロックのPCBバイトの構成を示す説明図 本発明に係るICカード用通信ライブラリによる分割送信処理の一例を示すフローチャート 本発明に係るICカードから接続装置へのブロック連鎖送信の一例を模式的に説明する図 本発明に係るICカード用通信ライブラリによるデータバッファ処理の一例を示すフローチャート 従来のICカードにおけるブロック連鎖送信の一例を模式的に説明する図
符号の説明
10. ICカードハードウェア
11. CPU
12. RAM
13. 通信回路
14. 不揮発性メモリ
20. システムプログラム
21. 通信ライブラリ
30. アプリケーションプログラム

Claims (4)

  1. ICカードのシステムプログラム上で動作するアプリケーションと、前記ICカードと接続する接続装置との間のデータ通信を行うための前記システムプログラムに含まれる通信プログラムの集合体としての通信ライブラリであって、
    前記アプリケーションから前記接続装置へ送信するデータの情報長が前記接続装置の最大情報フィールド長より長い場合、送信する前記データを前記アプリケーションから受け取り、前記最大情報フィールド長以下のデータ長に分割し、前記接続装置にブロック連鎖送信を行う一連の処理を実行するプログラムを含むことを特徴とするICカード用通信ライブラリ。
  2. 前記接続装置から送信された最大情報フィールド長変更要求を受信すると、前記最大情報フィールド長情報を変更して保持する処理と、
    前記アプリケーションから前記接続装置へ送信するデータの情報長が前記変更後の最大情報フィールド長より長い場合、送信する前記データを前記アプリケーションから受け取り、前記変更後の最大情報フィールド長以下のデータ長に分割し、前記接続装置にブロック連鎖送信を行う一連の処理を実行するプログラムを含むことを特徴とする請求項1に記載のICカード用通信ライブラリ。
  3. 前記接続装置から連鎖送信された各データを、一時的にバッファに格納し、連鎖送信された前記各データを結合してから前記アプリケーションに渡す一連の処理を実行するプログラムを含むことを特徴とする請求項1または2に記載のICカード用通信ライブラリ。
  4. 請求項1〜3の何れか1項に記載のICカード用通信ライブラリをシステムプログラムに含むことを特徴とするICカード。
JP2003380151A 2003-11-10 2003-11-10 Icカード用通信ライブラリ及びicカード Pending JP2005141677A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003380151A JP2005141677A (ja) 2003-11-10 2003-11-10 Icカード用通信ライブラリ及びicカード

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003380151A JP2005141677A (ja) 2003-11-10 2003-11-10 Icカード用通信ライブラリ及びicカード

Publications (1)

Publication Number Publication Date
JP2005141677A true JP2005141677A (ja) 2005-06-02

Family

ID=34689983

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003380151A Pending JP2005141677A (ja) 2003-11-10 2003-11-10 Icカード用通信ライブラリ及びicカード

Country Status (1)

Country Link
JP (1) JP2005141677A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122451A (ja) * 2005-10-28 2007-05-17 Toshiba Corp 通信媒体及び通信媒体処理装置
JP2012089152A (ja) * 2011-12-13 2012-05-10 Toshiba Corp 通信媒体及び通信媒体処理装置
WO2018155205A1 (ja) * 2017-02-22 2018-08-30 株式会社ワコム アクティブスタイラス及びセンサコントローラを含むシステムで実行される方法、センサコントローラ、並びにアクティブスタイラス

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007122451A (ja) * 2005-10-28 2007-05-17 Toshiba Corp 通信媒体及び通信媒体処理装置
JP2012089152A (ja) * 2011-12-13 2012-05-10 Toshiba Corp 通信媒体及び通信媒体処理装置
WO2018155205A1 (ja) * 2017-02-22 2018-08-30 株式会社ワコム アクティブスタイラス及びセンサコントローラを含むシステムで実行される方法、センサコントローラ、並びにアクティブスタイラス
US11004330B2 (en) 2017-02-22 2021-05-11 Wacom Co., Ltd. Method carried out in system including active stylus and sensor controller, sensor controller, and active stylus
US11132895B2 (en) 2017-02-22 2021-09-28 Wacom Co., Ltd. Method carried out in system including active stylus and sensor controller, sensor controller, and active stylus
US11600169B2 (en) 2017-02-22 2023-03-07 Wacom Co., Ltd. Method carried out in system including active stylus and sensor controller, sensor controller, and active stylus

Similar Documents

Publication Publication Date Title
US7502826B2 (en) Atomic operations
US7643511B2 (en) Frame alteration logic for network processors
CN111930676B (zh) 多处理器间的通信方法、装置、系统及存储介质
US7200641B1 (en) Method and system for encoding SCSI requests for transmission using TCP/IP
KR102173089B1 (ko) 인터페이스 회로 및 그것의 패킷 전송 방법
JP4452690B2 (ja) 電子装置、その制御方法、ホスト装置及びその制御方法
US7764613B2 (en) Communication control method and system
JP5094482B2 (ja) 処理装置及びその処理方法
US10701041B2 (en) Calculation device, calculation method, communication apparatus, and storage medium
US7929536B2 (en) Buffer management for communication protocols
JP2006270469A (ja) 通信データ制御装置
US7181675B2 (en) System and method for checksum offloading
JP2005141677A (ja) Icカード用通信ライブラリ及びicカード
US20060013397A1 (en) Channel adapter managed trusted queue pairs
CN114629891A (zh) 文件传输方法、装置、电子设备及计算机可读存储介质
JP4212508B2 (ja) パケット生成装置
JP2008107991A (ja) 情報処理媒体とそのプログラム、情報処理媒体のエラー処理方法、及び、情報処理システム
JP3914398B2 (ja) Icカードリーダライタの通信方法
JP2010140503A (ja) 統一データ交換および記憶フォーマットを供給するための方法とシステム
US20010018732A1 (en) Parallel processor and parallel processing method
JP2019114947A (ja) 通信装置、通信装置の制御方法およびプログラム
JP2008099139A (ja) 通信方法
CN114338826A (zh) 数据传输方法、装置、系统及相关设备
CN116610623A (zh) 一种数据读取方法、装置、电子设备及存储介质
KR20220135562A (ko) 메모리 액세스를 위한 직렬 통신 방법 및 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080805

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081202