71
1 RFID リーダーライターモジュール RB-101 Ver2.0 コマンドリファレンス 2013-04-04 版数 2.0a

RFID リーダーライターモジュール...AFI (Application family identifier) アプリケーションファミリ識別子 DSFID (Data storage format identifier) データ保存形式識別子

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

1

RFID リーダーライターモジュール RB-101 Ver2.0

コマンドリファレンス

2013-04-04 版数 2.0a

2

目次 1 VCDホスト通信プロトコル ....................................................................................................................... 5

1.1 通信仕様 ............................................................................................................................................. 5

2 VCDコマンド書式...................................................................................................................................... 5

2.1 コマンド仕様...................................................................................................................................... 5

2.2 通信電文 ............................................................................................................................................. 5

2.3 コマンドコード書式........................................................................................................................... 6

2.4 応答電文書式...................................................................................................................................... 6

3 ISO 通信プロトコル別説明........................................................................................................................... 8

3.1 ISO15693 VICCのUID.............................................................................................. 8

3.2 ISO15693 VICCのブロックデータ ............................................................................... 9

3.3 ISO15693 TI製とNXP製ICタグのメーカーによる違い........................................... 9

3.4 ISO15693 VICC製造者(メーカー)判別機能............................................................. 9

3.5 Felica ISO18092 TargetのManufacturer ID ............... 10

3.7 Felica IDm読み取り確認済カード一覧 ......................................................................... 10

3.8 ISO14443A PICCのUID ........................................................................................ 11

4 コマンド一覧............................................................................................................................................... 12

4.1 システムコマンド 一覧 (詳細は6.2を参照) .................................................................. 12

4.2 エラーコード 一覧 (詳細は5.1を参照) ............................................................................. 12

4.3 ISO15693コマンド 一覧 (詳細は6.3を参照) ................................................... 13

IS~CQは必須コマンド(全ての ISO15693 対応 VICC がコマンドをサポート)................................. 13

4.4 TI Tag-it拡張コマンド 一覧 (詳細は6.4を参照)......................................... 13

4.5 Felica ISO18092コマンド 一覧 (詳細は6.5を参照) .......................... 14

4.6 ISO14443Aコマンド 一覧 (詳細は6.6を参照)..................................... 14

5 エラー応答 .................................................................................................................................................. 15

5.1 エラーコード説明 ............................................................................................................................ 15

・#ERCM コマンド文法エラー ...................................................................................................... 15

・#ERVC VICCエラー.............................................................................................................. 16

・#ERVD VCDエラー ................................................................................................................. 17

・#ERTO タイムアウトエラー ...................................................................................................... 18

・#ERLF ロックフラグエラー ...................................................................................................... 19

3

6 VCDコマンドリファレンス ..................................................................................................................... 20

6.1 コマンド解説の見方......................................................................................................................... 20

6.2 コマンド説明(システムコマンド) ............................................................................................... 21

・周期タイマー開始.................................................................................................................................... 21

・周期タイマー停止.................................................................................................................................... 23

・システムリセット.................................................................................................................................... 24

・ロックフラグセット ................................................................................................................................ 25

・ISOモードセット ................................................................................................................................ 26

・インベントリ Inventory....................................................................................................................... 33

・静止状態 Stay quiet ............................................................................................................................. 36

・単独ブロック読み取り Read single block ........................................................................................... 38

・単独ブロック書き込み Write single block........................................................................................... 39

・ブロックロック Lock block.................................................................................................................. 40

・複数ブロック読み取り Read multiple blocks ..................................................................................... 42

・複数ブロック書き込み Write multiple blocks..................................................................................... 43

・選択 Select............................................................................................................................................ 44

・レディへリセット Reset to ready........................................................................................................ 45

・AFI 書き込み Write AFI ...................................................................................................................... 46

・AFI ロック Lock AFI ........................................................................................................................... 47

・DSFID 書き込み Write DSFID............................................................................................................ 48

・DSFID ロック Lock DSFID................................................................................................................. 49

・システム情報入手 Get system infomation.......................................................................................... 50

・複数ブロックセキュリティ状況入手 ...................................................................................................... 53

・2ブロック書き込み Write 2 blocks .................................................................................................... 54

・2ブロックロック Lock 2 blocks ......................................................................................................... 55

・キル Kill............................................................................................................................................ 56

・パスワード付ブロック書き込み Write single block pwd.................................................................... 57

6.5 コマンド説明(Felica ISO18092)...................................................................... 59

・ポーリング1枚読み Polling One Slot................................................................................................... 59

・ポーリング Polling................................................................................................................................. 60

・リクエストサービス Request Service ................................................................................................... 61

・リクエストレスポンス Request Responce ............................................................................................ 62

・非暗号化読み出し Read Without Encryption....................................................................................... 63

・非暗号化書き込み Write Without Encryption...................................................................................... 64

・リクエストシステムコード Request System Code............................................................................... 65

6.5 コマンド説明(ISO14443A)............................................................................................ 66

・REQA...................................................................................................................................................... 66

・Anticollision............................................................................................................................................ 68

4

本書について RFID リーダーライターRB-101(VCD)と PC、マイコン等で通信するコマンド一覧です。 (ISO コマンドの詳細な内容は国際規格ドキュメントを参照して下さい)

本説明に疑義があるときは国際規格ISO原文に準拠して下さい。

用語集 ホスト VCD と接続しコマンド通信する PC、マイコン等のユーザーシステム <ISO15693>

VCD (Vicinity coupling device) 近接結合装置(本書では RFID リーダーライターRB-101) 本書では VCD と表記します。

VICC (Vicinity integrated circuit card) 近傍型 IC カード(IC タグ)

AFI (Application family identifier) アプリケーションファミリ識別子

DSFID (Data storage format identifier) データ保存形式識別子

UID (Unique identifier)独自の識別子

<Felica ISO18092> Initiator (本書では RFID リーダーライターRB-101)

説明上 VCD と表記を統一します。 Target (IC タグ)

IDm (Manufacturer ID) This is a 8 bytes number used for addressing a Type 3 Tags.

PMm (Manufacturer Parameter) That is pre-configured by the Type 3 Tag manufacturer.

<ISO14443A>

PCD (Proximity coupling device) (本書では RFID リーダーライターRB-101) 説明上 VCD と表記を統一します。

PICC (Proximity card) (IC タグ)

UID (Unique IDentification) その他については各 ISO を参照してください

5

1 VCDホスト通信プロトコル

1.1 通信仕様

以下は標準的な仕様です。 特別仕様等では変更される場合があります。 通信方式: 3線式シリアル(UART)インターフェース

バッファIC SN74LVC2G17(3.3V 動作)を入出力に使用 (変換アダプタ各種(別売)により RS232C 標準レベル入出力、USB、LAN などに変更可)

通信設定: 19200bps、ノンパリティ、8ビットデータ、1ストップビット、

ハンドシェークなし 受信バッファ容量: 320バイト 送信バッファ容量: 512バイト ※VCDのバッファ容量はISO等に定義された要件を満たすよう多少余裕のある設定としています。

ホスト側の容量に制約がある場合、使用するコマンドや内容を選択して最大電文長を調節して下さい。

2 VCDコマンド書式

2.1 コマンド仕様

コマンドを構成するテキストの大文字小文字を問いませんが、2バイト文字は送らないで下さい。 VCDに送信可能な信号は テキスト 0~9 、A~Z、 a~z の英数字、 :(コロン)、 ,(カンマ)と CRLF(0x0D0x0A キャリッジリターンラインフィード)です。 CRLF 以外の制御コードは受け付けません。 VCDが応答する信号は テキスト 0~9 、A~Z、 a~z の英数字、 :(コロン)、 ,(カンマ)と CRLF(0x0D0x0A キャリッジリターンラインフィード)、 _(アンダーバー) ―(ハイフン)です。 ただし、ノイズが混入する可能性がありますのでエラーが起きないよう配慮して下さい。 本コマンド説明でバイナリ表記になっている部分は全て2バイトのテキストで送信しています。 コマンド中のバイナリデータはテキスト 0~9 、A~F、 a~f で表現しています。

(弊社「RFID 学習キット」用コマンドと基本構造は同じですがコマンド体系や制御コードが違うので ご注意ください) コマンドの終了はキャリッジリターンラインフィード CRLF(0x0D0x0A)を送信します。 コマンドは以下の方式で送信できます。

「コマンドコード方式」 簡単なコマンドで送信できます。ISOの標準的な設定で送信します。 手入力で使うとき簡単に入力できます。 各書式、コマンド解説での{ }内数字はバイト数、 [ ]内数字はビット数となります

2.2 通信電文

コマンド電文は、前のコマンド電文の応答を受信してから次を送信するようにしてください。 もし本モジュールがバッファオーバーフローした場合暴走やリセット動作する場合がありますので

オーバーフローさせないようご注意ください。 ※暴走などでコマンド応答がない、万一リセットコマンドも反応しない状態になった場合は 任意の文字列をバッファオーバーランするまで送りつづけることで強制的にリセットさせて 復帰できる可能性があります。またはモジュールの電源を切ることで確実にリセットできます。

6

2.3 コマンドコード書式

コマンドの先頭1・2文字目に[コマンド]、3文字目には:(コロン)、以降オプションが続き、 コマンド電文の最後は CR LF (0x0D 0x0A)です。

オプション引数に CRC をつける必要はありません。 は内容によって付けない場合があります

コマンドコード : コマンドオプション CR(0x0D) LF(0x0A)

{2} {1} コマンドにより長さが異なる {1} {1}

コマンドの終了は CRLF で判定します。 新規に作成されるアプリケーションでは終了を CRLF としてください。

コマンドオプションが使用可能なコマンドには、コマンドオプションの中に ,(カンマ)を 入れることができます。 ,は VCD 側で削除しますので VICC には送信されません。 UID、データの境界に挿入することでオンラインモニター等でのチェックに役立ちます。 ただしバイナリデータ1バイトを表現する2バイトテキストの間に挿入することはできません。

'D' '3' '2' '4' ',' 'F' '4' '1' '9' ←バイナリデータが切れていないので正常 'D' '3' '2' '4' 'F' ',' '4' '1' '9' ←バイナリデータの間にあるので変換エラー

実際の使用例:

Write Single Block UID 付 UID:E00700001318F221 ブロック番号:0x00 データ:0x31323334 ① UID、ブロック番号、データを ,で分けた例

WU:21F21813000007E0,00,34333231 ② ①と同じコマンドでコマンドオプションを全て ,で分けた例

WU:21,F2,18,13,00,00,07,E0,00,34,33,32,31 ③ エラー例 ①と同じだが UID のバイナリデータ 0x18 の間に ,を挿入してしまった例

VCD はコマンドエラー検出を応答します。 WU:21F21,813000007E0,00,34333231

2.4 応答電文書式

{ }内の数字はバイト数です。応答電文の最後は CR LF(0x0D 0x0A)です。

<起動メッセージ> 電源オン時、リセット時の起動メッセージは以下のように表現されます。 ハードウェア名は特別仕様等の場合、名称が変更される場合があります。(御打合せにより決定します) SR(システムリセット)コマンドの応答も起動メッセージとなります。

ハードウェア名 アンダーバー ファームウェア バージョン記号

ファームウェア バージョン値

キャリッジ リターン

ライン フィード

RB-101 _ V xx.xx CR(0x0D) LF(0x0A)

{6} {1} {1} 不定長

数値と.でなく 文字列で扱います

{1} {1}

例: RB-101_V1.2

7

<応答メッセージ> 応答メッセージは以下のように表現されます。 は応答内容によって付かない場合があります

エラーのある場合はエラーメッセージが追加されます。

応答メッセージの書式

コマンド コード

: 応答データ エラーメッセージ CR(0x0D) LF(0x0A)

{2} {1} コマンドにより 長さが異なる

エラーにより 長さが異なる

{1} {1}

特に注記のない限り、各コマンド解説でのコマンド応答は応答データのみ解説します。

エラーメッセージの書式

#ER エラー内容 エラーフラグ

{3} {2} フラグがある場合 hh {2}

エラーフラグはバイナリデータ 1 バイトで表現され、テキスト 2 バイトに変換されて送信されます。 インベントリ 16slots コマンドの場合は、エラー発生したスロットにエラーフラグが付きます。

文法エラー等でコマンドが不明なエラーの場合、応答メッセージのコマンドコードが ER となります。

各応答データとエラーメッセージの内容は本書の各解説を参照してください。 RFID データ通信中にエラーが発生した場合、VICC から途中まで受信した応答データも添付します。

この場合、応答データの正確さは保証されません。 データを捨てるか、利用するかの判断はホスト側で決定してください。

<RSSIレベルデータ(オプション)> RB-101のファームウェアの種類によっては、データの後ろにRSSIレベルデータが付く

場合があります。データ本文とRSSIレベルとの区切り文字は _ (アンダーバー)です。 インベントリ 16slots コマンドの場合は、各スロットにそれぞれRSSIが付きます。 通常の RFID 通信では使用しません。 特別仕様の場合、御要望により機能追加可能です。 RSSIレベル付データの書式(例)

コマンド コード

: 応答データ エラーメッセージ _ RSSI レベル

CR(0x0D) LF(0x0A)

{2} {1} コマンドにより 長さが異なる

エラーにより 長さが異なる

{1} {2} {1} {1}

8

3 ISO 通信プロトコル別説明

3.1 ISO15693 VICCのUID

ISO15693 VICC ICタグのUIDについて説明します。 UID 形式の定義は以下の通りです。(ISO15693) MSB LSB

64 57 56 49 48 1

'E0' IC 製造者コード IC 製造者通し番号

TI製ICタグのUID例:E00700002425E648 (16進) RB-101コマンドでは UIDは定義と逆のバイトオーダーで取り扱います。 これはICタグ = トランシーバIC = マイコン間でのUID取り扱いと同じです。 インベントリコマンドのマスク処理、ブロックデータ(次章参照)も同様となります。

8 1 16 9 24 17 ・・・・・・・・・ 56 49 64 57

'48' 'E6' '25' ・・・・・・・・・ '07' 'E0'

上記タグ例のコマンド上でのUID:(テキストデータ) ’4’’8’’E’’6’’2’’5’’2’’4’’0’’0’’0’’0’’0’’7’’E’’0’ 上記タグ例のインベントリ 16 ビット長マスク:(テキストデータ、先頭の 0x0F はマスク長) ’0’’F’’4’’8’’E’’6’

9

3.2 ISO15693 VICCのブロックデータ

RB-101コマンドでは データブロックのデータは定義と逆のバイトオーダーで取り扱います。 これはICタグ = トランシーバIC = マイコン間でのデータブロック取り扱いと同じです。

例: ’ABCD’(テキストデータ、 =0x41 0x42 0x43 0x44) コマンド上でのデータ:44434241 (16進)

8 1 16 9 24 17 32 25

'44' '43' '42' '41'

3.3 ISO15693 TI製とNXP製ICタグのメーカーによる違い

主な例では、NXP製ICタグの場合では Write 系、Lock 系コマンドの Option_flag (フラグの Bit7)が 1 の場合、正常に書き込まれないことがあります。

逆にTI製ICタグで Option_flag が 0 の場合も正常に書き込まれないことがあります。

3.4 ISO15693 VICC製造者(メーカー)判別機能

RFIDリーダーライターRB-101はUIDを指定する Write 系、Lock 系コマンドでは TI製、NXP製の ISO15693 VICC を自動判別します。

本VCDでメーカー不明のVICCの場合、設定されるフラグはNXP製ICタグ用に

最適化されます。Write 系、Lock 系コマンドで Option_flag が0設定で使用可能なメーカー製 VICC向けに設定されたコマンドとなりますのでご注意ください。 (対応メーカーは随時追加予定です 対応追加情報などを参照してください)

10

3.5 Felica ISO18092 TargetのManufacturer ID

Target ICタグの Manufacturer IDについて説明します。 Manufacturer ID 形式の定義は以下の通りです。(NFCForum-TS-Type3)

Manufacturer ID (16 Bytes)

IDm (Manufacturer ID) PMm (Manufacturer Parameter)

D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF

Manufacturer IDは消去、書換えはできません。 Manufacturer ID Information Manufacturer ID Information consists of the Manufacturer ID (IDm) and the Manufacturer Parameter (PMm). The Manufacturer ID Information cannot be deleted or re-written by users.

3.6 Felica ブロック読み書き動作について

RB-101 Ver1.1はFelicaのIDm/PMmの読み取りと各種コマンド送信ができます。

Felicaのデータ読み書きコマンドには引数に使用用途別に決められたシステム・サービスコード等の 詳細な情報が必要です。Suica等の一般的に入手できるFelicaのサービスコード等読み書きに 必要な詳細情報は非公開になっています。これら詳細情報が不明なカードのデータ読み書きができません。 Felicaのデータ読み書きが必要な場合は情報公開されたカードを使用するか オリジナルのカード購入時に情報を入手してください。

3.7 Felica IDm読み取り確認済カード一覧

2010年2月現在 最新情報は弊社 Web サイトを参照して下さい。 未記載の対応情報などのご協力をお願いします。

カード型 SUICA・SUICA(キャッシュカード一体型) ICOCA EX-IC PiTaPa(PiTaPaクレジットタイプ) Edy VISATOUCH(小型カードタイプ) QUICPay WAON 携帯電話 DOCOMO P903iTV N906iμ SOFTBANK 911T

11

3.8 ISO14443A PICCのUID

ISO14443A PICC ICタグのUIDについて説明します。 UID は 4、7、10 バイトの 3 種類で REQA コマンド応答の UID Size bit flame に従います。 各カスケードレベルによって電文は 5 バイトごとに分割されます。 受信データは、IC タグから送信されるバイトオーダーで出力されます。

UID サイズ

最大 cascade level UID size Number of UID bytes

1 single 4

2 double 7

3 triple 10

カスケードレベルの取り扱い方法

single PICC 0x93 CT = Cascade Tag = 0x88

PCD uid0 uid1 uid2 uid3 BCC BCC = UID Check Byte

uidx = Byte number x

double PICC 0x93 PICC 0x95

PCD CT uid0 uid1 uid2 BCC PCD uid3 uid4 uid5 uid6 BCC

triple PICC 0x93 PICC 0x95 PICC 0x97

PCD CT uid0 uid1 uid2 BCC PCD CT uid3 uid4 uid5 BCC PCD uid6 uid7 uid8 uid9 BCC

CT は 0x88 です。 BCC は前 4 バイトを排他的論理和(XOR)した値です。

single size UID uid0(16 進) 説明

08 uid1 to uid3 is a random number which is dynamically generated

x0~x7 x9~xE

proprietary fixed number

18~F8 xF

RFU

uid0 が 0x88 の場合は CT となります。single size UID では使用しません。

double and triple size UID uid0(16 進) 説明

Manufacturer ID according to ISO/IEC

7816-6/AM1

Each manufacturer is responsible for the uniqueness of the value of the other bytes of the unique number.

uid0 が 0x81~0xFE の場合は ISO(AM1)/IEC 7816-6 で「私的使用」のために示されています。 このコンテキストの中で許可されないものとします。

12

4 コマンド一覧

4.1(1) システムコマンド 一覧 (詳細は6.2を参照)

コマンドコード コマンド名 意味

ST SP SR SL SI SM SF

周期タイマー起動 周期タイマー停止 システムリセット

ロックフラグセット ISOモードセット マルチ出力セット RF出力セット

周期タイマーを開始させます 動作中の周期タイマーを終了させます

VCDをリセットさせます ロック系コマンドの許可を設定します

ISO通信モードを切り替えます RF出力ポートを切り替え(マルチプレクサ機のみ)

RF出力ON/OFF切り替え

(2) オート動作コマンド 一覧 (詳細は6.3を参照)

コマンドコード コマンド名 意味

IB

IA

WV

インベントリ(1 スロット) マルチプレックス

アンチコリジョン

シーケンス(16 スロット) ベリファイ付書き込み

ISO15693 インベントリ 1 スロットを RF出力ポートを切り替えながら連続動作

(マルチプレクサ機のみ) ISO15693 アンチコリジョンシーケンスを実行

ISO15693 任意のブロックに書き込み

正しく書き込まれたか検証する

4.2 エラーコード 一覧 (詳細は5.1を参照)

エラーコード コマンド名 意味

#ERCM #ERVD #ERVC #ERTO #ERLF

コマンドエラー VCDエラー

VICCエラー タイムアウトエラー ロックフラグエラー

コマンド文法エラー検出 VCDエラー検出

VICCエラー検出 タイムアウト検出

ロックコマンド使用違反検出

13

4.3 ISO15693コマンド 一覧 (詳細は6.3を参照)

コマンド コード

ISO コマンドコード

ISO コマンド名(原文) ISO コマンド名(和訳) 備考

IS

IM

AS

AM

CQ

0x01

0x01

0x01

0x01

0x02

Inventory (1Slot)

Inventory (16Slots)

Inventory (1Slot)

Inventory (16Slots)

Stay quiet

インベントリ (1 スロットフラグ)

インベントリ (16 スロットフラグ)

インベントリ (1 スロットフラグ)

インベントリ (16 スロットフラグ)

静止状態

AFI マスク

AFI マスク

RS

RU

WU

LB

RM

WM

CS

CR

WA

LA

WD

LD

RI

RG

0x20

0x20

0x21

0x22

0x23

0x24

0x25

0x26

0x27

0x28

0x29

0x2A

0x2B

0x2C

Read single block

Read single block

Write single block

Lock block

Read multiple blocks

Write multiple blocks

Select

Reset to ready

Write AFI

Lock AFI

Write DSFID

Lock DSFID

Get system information

Get multiple block

security status

単独ブロック読み取り

単独ブロック読み取り

単独ブロック書き込み

ブロックロック

複数ブロック読み取り

複数ブロック書き込み

選択

レディへリセット

AFI 書き込み

AFI ロック

DSFID 書き込み

DSFID ロック

システム情報入手

複数ブロックセキュリティ

状況入手

(UID なし)

(UID 付)

(UID 付)

(UID 付)

(UID 付)

IS~CQは必須コマンド(全ての ISO15693 対応 VICC がコマンドをサポート)

RS以降はオプションコマンド(VICC 種類によってコマンドをサポートしていない場合がある)

お持ちの VICC がどのオプションコマンドをサポートするかは VICC の資料を参照して下さい。

4.4 TI Tag-it拡張コマンド 一覧 (詳細は6.4を参照)

コマンド コード

拡張 コマンドコード

拡張コマンド名(原文) 拡張コマンド名(和訳) 備考

W2

L2

LK

WP

0xA2

0xA3

0xA4

0xA5

Write 2 blocks

Lock 2 blocks

Kill

Write Single Block

Password

2ブロック書き込み

2ブロックロック

TI 製 ISO15693 VICC 専用コマンドです。

14

4.5 Felica ISO18092コマンド 一覧 (詳細は6.5を参照)

コマンド コード

ISO コマンドコード

コマンド名 コマンド名(和訳) 備考

FP 0x00 Polling ポーリング

4.6 ISO14443Aコマンド 一覧 (詳細は6.6を参照)

コマンド コード

ISO コマンド名(原文) ISO コマンド名(和訳) 備考

AR

AA

REQA

Anticollision

15

5 エラー応答

5.1 エラーコード説明

・#ERCM コマンド文法エラー ・ホストから送信したコマンドの文法が間違っていた ・応答

コマンド検出まで正常だった場合 コマンドを付けて応答します。

コマンド : #ERCM フラグ

{2} {1} {5} hh {1}

コマンドが不明なエラーの場合 コマンド変換エラーを意味するERを付けて応答します。

ER : #ERCM フラグ

{2} {1} {5} hh {1}

・フラグ

16進表記の値を2バイトテキスト化したものを応答します。 フラグでコマンドエラー理由を応答します。一覧は下表のとおりです。

フラグ フラグ名 意味

01 02 03 04 05

コマンド変換エラー コマンド抽出エラー

オプション変換エラー VICC オプションエラー

システムオプションエラー

コマンドコードが検出できなかった(電文に:がない等) コマンドコードが不完全だった

該当するコマンドコードがなかった VICC コマンドのオプションデータが異常だった

システムコマンドのオプションデータが異常だった

16

・#ERVC VICCエラー ・VICCからの応答でエラーコードを受け取った(ISO15693のみ) ・応答

コマンドと受け取ったエラーコードを付けて応答します。

コマンド : #ERVC フラグ

{2} {1} {5} hh {1}

・フラグ

16進表記の値を2バイトテキスト化したものを応答します。 フラグでエラー理由を応答します。一覧は下表のとおりです。

フラグ 意味

01 02 03 0F 10 11 12 13 14

その他

コマンドがサポートされない コマンド書式エラー

オプションがサポートされない 情報のないエラー

指定ブロックが存在しない 指定ブロックはロック済で再ロックできない

指定ブロックはロック済で内容を変更できない 指定ブロックが正常にプログラムできなかった

指定ブロックが正常にロックされなかった カスタムコマンドエラーまたは不明

A1 A2

※以下カスタムコマンドエラー 指定ブロックの始まりを奇数ブロックで指定した(Tag-it 拡張)

指定ブロックにロック済みブロックがあった(Tag-it 拡張)

17

・#ERVD VCDエラー ・RFID送受信の通信エラーをVCDが検出した ・応答

コマンドと検出したエラーコードを付けて応答します。 RFID データ通信中にエラーが発生した場合、VICC から途中まで受信した応答データも 添付します。この場合、データの正確さは保証されません。 (2.6 応答電文書式も参照してください)

コマンド : 受信データ #ERVD フラグ

{2} {1} {不定長} {5} hh {1}

・フラグ

16進表記の値を2バイトテキスト化したものを応答します。 フラグでエラー理由を応答します。各エラーはビットで表現され、複数発生した場合は 加算して応答します。一覧は下表のとおりです。

ビット フラグ加算値 意味

bit1 bit2 bit3 bit4 bit5 bit6 bit7 bit8

02 04 08 10

(使用しない) コリジョン(衝突)エラー(ISO15693/14443A のみ)

バイトフレーミングエラー パリティエラー CRCエラー

(使用しない) (使用しない) (使用しない)

・例 IS:#ERVD04 バイトフレーミングエラー検出 IS:#ERVD06 コリジョンエラーとバイトフレーミングエラー検出 IS:#ERVD12 CRC エラーとコリジョンエラー検出

IS: 00FF21F21813FFFF#ERVD10 受信途中で CRC エラー検出

18

・#ERTO タイムアウトエラー ・RFID送受信のタイムアウトをVCDが検出した

・ISO15693 静止状態コマンドを送信した ・応答

コマンドを付けて応答します。 RFID データ通信中にタイムアウトした場合、VICC から途中まで受信した応答データも 添付します。この場合、データの正確さは保証されません。 (2.6 応答電文書式も参照してください)

コマンド : 受信データ #ERTO

{2} {1} {不定長} {5}

・静止状態コマンドのタイムアウトについて

ISO15693 静止状態コマンドはいかなる場合も応答しないと ISO15693 で規定されています。 そのため、静止状態コマンドの応答は必ずタイムアウトとなります。 タイムアウト応答があったときのコマンドが CM の場合はご注意ください。 (静止状態コマンド も参照して下さい。)

19

・#ERLF ロックフラグエラー ・コマンド使用許可のないロックコマンドを送信しようとした ・応答

コマンドを付けて応答します。 (ブロックロック コマンドも参照してください)

コマンド : #ERLF フラグ

{2} {1} {5} hh {1}

“フラグ” どのロックコマンドで許可のないエラーが発生したかを示します。 ロックフラグセット コマンドも参照して下さい。 フラグ一覧表

ビット ブロック系

ロックコマンド AFI ロック

DSFID ロック

KILL系 コマンド

0x10 ○

0x20 ○

0x30 ○

0x50 ○

その他 予約

20

6 VCDコマンドリファレンス

6.1 コマンド解説の見方

・コマンドメッセージ

・動作内容

・コマンド(テキストコマンド方式) ・標準書式

・オプション ・応答書式 ・例文

各書式、コマンド解説での{ }内数字はバイト表記、 [ ]内数字はビット表記となります データ長の説明はビット表記とします。

解説上の注意 コマンドは大文字小文字を問いませんが、全角文字は送らないで下さい。

h はテキスト 0~9 A~F a~f のいずれか一文字です。 本コマンド説明でバイナリ表記になっている部分は全て2バイトのテキストで送信しています。 (hh で1バイトデータとなります) 例 hh[8] 仮に 0x0A 8ビットデータの場合、コマンド上はテキストで 0A 2バイトとなる

hh・・・hh [64] 64 ビット長(8 バイト)のデータです。

hh・・・hh [0~64]や[不定長]は 0~64 ビットの範囲内や不定長のデータです。 hh・・・hh [ブロック長]は VICC の品種、種類により長さが異なるデータです。

21

6.2 コマンド説明(システムコマンド) ・周期タイマー開始 ・周期タイマーを開始させる

(テキストコマンド方式) オプション必須

S T : ”周期”

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “周期” 繰り返すタイミングを設定します。

周期

hh [8]

周期の単位は 0.1 秒です。1~99 の範囲(0.1~9.9 秒)で入力できます。 入力値は 16 進数で表現します。(1~99 = 0x01~0x63)

・動作

周期タイマーを開始させると、最後に依頼したICタグへのコマンドを一定の周期で 自動的に繰り返し動作をして結果を応答します。

RFID 通信中に周期が来た場合は、RFID 通信終了まで待ってから次の動作をします。 ICタグへのコマンドを依頼していない(ICタグコマンドの履歴がない)場合は

何もせず周期タイマーを停止します。 詳しくは例:(2)を参照してください。

・応答

周期タイマー開始応答 S T : を返します。 周期ごとに繰り返し動作するICタグへのコマンドの応答メッセージを返信します。

・周期タイマー停止方法

周期タイマー停止コマンドを参照してください。

22

・例 (1)通常のタイマー動作 IS:00 インベントリ 1slot コマンド依頼 IS:00FF21F21813000007E0 応答 ST:01 0.1 秒間隔で周期タイマー開始 インベントリ 1slot コマンドを繰り返す IS:#ERTO タグが見つからない IS:#ERTO IS:00FF21F21813000007E0 タグがあった IS:00FF21F21813000007E0 IS:#ERTO タグが見つからない IS:00FF21F21813000007E0 タグがあった IS:#ERTO タグが見つからない ・・・・・・ SP: 周期タイマー停止コマンド依頼 SP: 周期タイマー停止応答 (2)ISO コマンドがない場合の動作 SR: システムリセットコマンド依頼 RB-101_V1.0 VCD 起動メッセージ (ISO15693 コマンド履歴消去) ST:0D 1.3 秒間隔で周期タイマー開始 ISO15693 コマンドがないので周期タイマーが動作しない RU:21F21813000007E000 ISO15693 コマンドを依頼 RU:000034333231 応答 ST:0D 1.3 秒間隔で周期タイマー開始 RU:000034333231 タイマー動作 応答 ・・・・・・ SP: 周期タイマー停止コマンド依頼 SP: 周期タイマー停止応答 (3)他のコマンドでタイマー停止 ST:01 0.1 秒間隔で周期タイマー開始 インベントリ 1slot コマンドを繰り返す IS:#ERTO タグが見つからない ・・・・・・ RU:21F21813000007E000 RU コマンドを依頼 VCD は受け取ったが RFID 通信中で

タイマー動作の通信が終わるまで RU コマンドは待っている IS:00FF21F21813000007E0 周期タイマー最後のインベントリが通信中だったため応答 RU:000034333231 インベントリが終わってから RU コマンド動作、応答

23

・周期タイマー停止 ・周期タイマーを停止させる

(テキストコマンド方式) オプションなし

S P :

・動作

周期タイマーを停止させます。周期タイマー停止コマンド受信時に VCD が RFID 通信中の場合は、RFID 通信終了後タイマーを停止します。

周期タイマー停止以外の各種コマンドを受信してもタイマーを停止します。

もし新しい依頼を受信した時 VCD が RFID 通信中だった場合、VCD は RFID 通信終了後に

周期タイマーを停止し、新しいコマンドの処理をします。 そのためホストが新しいコマンドを依頼しても、新しいコマンド応答電文の前に タイマー動作の応答電文を返すことがありますのでご注意ください。

もしホストの受信処理上問題がある場合は必ず周期タイマー停止コマンドを 依頼してタイマーを停止させてから次のコマンドを送るようにしてください。 詳しくは周期タイマー開始コマンドの 例:(3)を参照してください。

・応答

周期タイマー停止応答 S P : を返します。

・例

周期タイマー開始コマンドの例を参照してください。

24

・システムリセット ・VCD(RB-101)をリセットさせる

(テキストコマンド方式) オプションなし

S R :

・動作

VCD を初期状態にリセットします。 ISO 設定、ロックフラグも初期状態にリセットされます。 リセット動作中、RFIDフィールドの出力を一時停止させます。 RFIDフィールドはVCD起動後再出力します。 リセット処理開始後、再起動までには少なくとも5ms以上かかります。

・応答

VCD起動メッセージを応答します。 システムリセットコマンドに対する固有の応答はありません。

・例 SR: システムリセットコマンド送信 RB-101_V1.0 VCD 起動メッセージ応答 CQ:21F21813000007E0 静止状態コマンド CQ:#ERTO 静止状態は必ずタイムアウト IM:00 インベントリ 16Slots IM:000040E86518000007E0,,,,,,,,,,,,,,, 静止状態になった SR: VCD リセットコマンド (RFID フィールド停止)静止解除 RB-101_V1.0 VCD リセット完了 (RFID フィールド再起動) IM:00 インベントリ 16Slots IM:000040E86518000007E0,00FF21F21813000007E0,,,,,,,,,,,,,, 静止状態が解除された 注:タグの種類、お使いの環境等によりリセットコマンドでタグの静止状態が解除されないことがあります。

25

・ロックフラグセット ・ロック系コマンドの使用許可を設定する

(テキストコマンド方式) オプション必須

S L : ”フラグ”

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “フラグ” どのロックコマンドを使用許可するかを設定します。

フラグ

hh [8]

値は各ビットで表し、1で許可します。 ビット3、5~7は常に0です。

フラグ一覧表

フラグ ビット値

単独・2 ブロックロック

AFI ロック

DSFID ロック

KILL系 コマンド

b0 ○

b1 ○

b2 ○

b3 予約

b4 ○

b5 予約

b6 予約

b7 予約

・動作

VCD内部のロック系コマンド使用許可設定を変更します。 使用許可されているロック系コマンドが RFID 通信可能となります。

もし許可されていない状態でロック系コマンドを使用した場合は RFID 通信をせず、 ロックフラグ許可エラーを応答として返します。

VICCのロックは一度使用するとロック取り消しや値の変更はできません。 ロック系コマンドは使用するときに許可し、使用し終わったら解除することをお勧めします。

・応答

正常に変更するとロックフラグセット応答 S L : を返します。 フラグ値は返しません。

・例

ブロックロックコマンドの例を参照してください。

26

・ISOモードセット ・ISO通信モードを切り替えます

(テキストコマンド方式) オプション必須

S I : ”フラグ”

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “フラグ” どのISOモードに変更するかを設定します。

フラグ

hh [8]

設定は以下のとおりです 設定可能値以外の値にしないで下さい。暴走やリセットの原因となります。 フラグ一覧表

フラグ値 ISOモード

00 ISO15693

01 Felica(ISO18092)

02 ISO14443A

・動作

VCD内部通信設定を各ISOに最適化します。 設定したISO通信モードと異なるISOコマンドを送信しても正常に通信しません。 使用したいコマンドのISOを切り替えるときは必ずモード変更をしてください。

・応答

正常に変更するとISOモードセット応答 S I : を返します。 フラグ値は返しません。

27

・RF出力セット ・RF出力ON/OFFを切り替えます

(テキストコマンド方式) オプション必須

S F : ”フラグ”

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “フラグ” ON OFF 再起動のいずれにするかを設定します。

フラグ

hh [8]

設定は以下のとおりです 設定可能値以外の値にした場合、リーダーは00とみなします。 フラグ一覧表

フラグ値 RF出力状態

00 OFF

01 ON

02 OFF後ON(再起動)

・動作

VCD内部のRF出力をON/OFFします。 再起動は出力OFFから1ms程度待ってONにします。再起動はISO15693

静止コマンドやオートアンチコリジョンの静止状態を解除するために利用できます。

・応答

正常に変更するとRF出力セット応答 S F : を返します。 フラグ値は返しません。

28

6.3 コマンド説明(システムコマンド)

・オート動作コマンドの注意事項

・コマンド送信後、次コマンドの送信は終了応答を待つか充分な時間を確保して下さい。 オート動作コマンドはVICCとのコマンド送受信、受信後のデータやエラー判定、判定後の処理等を

リーダー内部で繰り返し動作します。そのため通常のコマンドと比較して時間がかかることがあります。 充分な時間を確保していないと暴走の原因となりますのでご注意ください。

・同じUIDが複数回送信されることがあります(アンチコリジョン) アンチコリジョンシーケンス動作はVICCを静止状態にしているため通常UIDの読み取りは

1回です。しかしVICCが読み取り限界に近い位置にある、多数のVICCがフィールド上にある 等の様々な条件でVICCへの電力供給が不足し、VICCがリセット(静止状態が解除)されて その結果同じUIDを再び検出することがあります。 読み取ったタグの枚数を数える場合は受信したUIDの数=タグの数という処理にせず、必ず UIDの受信後に同じUIDが重複していないか比較処理してください。

・ VICCが読み取り限界に近い位置にある、多数のVICCを積み重ねた場合等、条件によっては

一見暴走と判断される程の長時間応答のない現象が発生することがあります。 これはVICCとの通信がエラー⇔復帰の処理を繰り返すことで動作終了ができない 現象です。この状態になった場合アンテナとVICCの位置関係が微妙に変化することで エラーがなくなり応答されます。 ※手持ちの場合は手ブレで微妙に動くため問題になりませんが据置きの場合で発生する事があります。

・同じUIDが複数回送信されることがあります(アンチコリジョン) アンチコリジョンシーケンス動作はVICCを静止状態にしているため通常UIDの読み取りは 1回です。しかしVICCが読み取り限界に近い位置にある、多数のVICCがフィールド上にある

29

・インベントリ(1 スロット)マルチプレックス ・ISO15693 インベントリ 1 スロット AFI を連続動作します

(テキストコマンド方式) オプション必須

IB : ”AFI” ”UIDmask” (1slot)

本コマンドはマルチプレクサ対応リーダーのみサポートしています。

非対応リーダーにコマンドを送信しないでください。 ・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “AFI” AFI マスクを指定します。 “UIDmask” UID マスクを指定します。

AFI UID マスク長 UID マスク値

hh [8] hh [8] hh・・・hh [0~64]

・動作

オプションを引数にしてASコマンドを送信します。 VICCからデータがあればすぐに応答を返します。 データが無い場合は何も応答しません。 1 つのポートでコマンド動作が終了すると次のポートに切り替えます。 最後のポートが終了したら最初のポートに戻って繰り返します。 周期タイマー停止コマンドを受信すると繰り返しを停止します。 もし繰り返し停止の時点でVICCと通信中の場合は通信終了まで待ってから

繰り返しを停止します。

・応答

VICCからデータを受信すると応答 AS :の後ろに結果を返します。 ASと同じ応答ですがポート番号がついていますので注意してください。 VICCエラーの場合は応答しません

フラグ DSFID UID アンダーバー 現在のポート番号

hh [8] hh [8] hh・・・hh [64] [8] hh [8]

30

・アンチコリジョンシーケンス(16 スロット) ・ISO15693 アンチコリジョンシーケンスを実行します

(テキストコマンド方式) オプション必須

IA : ”AFI” IC : ”AFI”

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “AFI” AFI マスクを指定します。 UIDマスク長とマスク値は自動で決定します。

AFI

hh [8]

AFI マスクはタグの AFI とマスクが一致するタグのみ応答するよう指定します。

0は1~F のいずれかとして扱われます。

・動作

オプションを引数にしてAMコマンドを送信します。 VICCのUIDを検出したら随時ホストにUIDを応答し、CQコマンドを 送信してVICCを静止状態にします。 (アンチコリジョン1動作中に同じUIDを再検出しないようにします) コリジョン(衝突)を検出した場合は必要な処置を行い、再びUIDを取得します。 アンチコリジョンの動作終了はEND応答を送信します。 動作終了後、検出したタグに対しての動作が異なります。 IC 動作終了後もVICCの静止状態を維持します。 IA 動作終了時にVICCの静止状態を解除します。

ホスト側でから送信されるアンチコリジョン動作の例

・ICコマンドを繰り返し、最後にRF出力セット(SF:)で静止解除する ・ICコマンドを繰り返し、IAで最後の読み込み後 静止解除する ※一度読んだタグを再読込しませんが、ホスト側で解除するタイミングを 決定する必要があります。

(静止解除は読み込み結果、回数、時間等の一定の条件で判断してください) 使用例:VICCのUID等を読み取り、2回目以降は検出を必要としない場合

・IAコマンドを繰り返す ※ホスト側で解除タイミングを考慮する必要がありません。

毎回静止状態解除して同じタグを毎回読むため、一連動作の上記手順より速度が 若干遅れる傾向があります。

使用例:一度読み取ったVICCがフィールド内に存在するか常に監視する場合

31

※オート動作コマンドの注意事項を必ず参照してください

・応答(UID報告)

VICCからのエラー応答は内部で処理します。ホストにエラーを送信しません。

フラグ DSFID UID ,(カンマ) フラグ DSFID UID

hh [8] hh [8] [64] {1}バイト hh [8] hh [8] [64]

(以降はカンマ~UID を受信したUID数分繰り返します)

・応答(終了) シーケンス動作終了はENDと送信します。

E N D

{1}バイト {1}バイト {1}バイト

エラー、衝突、タグが存在しない場合は DSFID、UID が空欄となり、カンマのみで区切られます。 終了は 16Slots であっても通常の通信ではタイムアウトせず

IA:END またはIC:END と応答します。

32

アンチコリジョンシーケンスの概要 フローチャート

UIDあり?

受信できたVICCのUIDをホストに送信

アンチコリジョン

終了 ※2

インベントリ16スロットAFI  AMコマンド実行

アンチコリジョン動作初期化

コリジョン(衝突)検出?

アンチコリジョン処理

受信できたVICCに対し静止状態  CQコマンド実行

次のコマンド実行が必要?

UID or コリジョン検出が

1件以上あった?

次の実行に

次の実行に

終了

全てのVICCに対し静止状態を解除 ※1

動作終了したことを ホストに送信

※1 特別仕様では静止状態を解除する動作をしない(アンチコリジョン終了後も

   VICCの静止状態を維持させる)よう変更される場合があります

※2 特別仕様では終了後に再度アンチコリジョンを開始するよう変更される場合があります

静止状態を解除する?

IAコマンド

ICコマンド

33

6.3 コマンド説明(ISO15693) ・インベントリ Inventory ・衝突防止(アンチコリジョン)シーケンスを実行する

(テキストコマンド方式)

I S : ”UIDmask” (1slot)

I M : ”UIDmask” (16slots) A S : ”AFI” ”UIDmask” (1slot)

A M : ”AFI” ”UIDmask” (16slots)

・オプション(IS 1Slot)

16進表記の値を2バイトテキスト化したものをセットします。 “UIDmask” UID マスクを指定します。

UID マスク長 UID マスク値

hh [8] hh・・・hh [0~64]

・オプション(IM 16slots)

16進表記の値を2バイトテキスト化したものをセットします。 “UIDmask” UID マスクを指定します。

UID マスク長 UID マスク値

hh [8] hh・・・hh [0~60]

・オプション(AS 1Slot)

16進表記の値を2バイトテキスト化したものをセットします。 “AFI” AFI マスクを指定します。 “UIDmask” UID マスクを指定します。

AFI UID マスク長 UID マスク値

hh [8] hh [8] hh・・・hh [0~64]

・オプション(AM 16slots)

16進表記の値を2バイトテキスト化したものをセットします。 “AFI” AFI マスクを指定します。 “UIDmask” UID マスクを指定します。

AFI UID マスク長 UID マスク値

hh [8] hh [8] hh・・・hh [0~60]

AFI マスクはタグの AFI とマスクが一致するタグのみ応答するよう指定します。

0は1~F のいずれかとして扱われます。

34

UID マスクはタグの UID とマスクが LSB から一致するタグのみ応答するよう指定します。

UID マスク長は 16 進表記です。 12 ビット = 0x0C もし UID マスクの長さが1バイト(8ビット)単位で端数となる場合は、

UID マスク値データを0でパディングします。 12ビットの UID マスク例を下記に記します。 0xF32 → 0x0F32

MSB LSB

パディング マスク値

0000 1111 0011 0010

上記の 12 ビットマスク0F32を加えた 16slots コマンド例: IM:0C320F UID マスクを使用しない場合、UID マスク長は00と設定し、UID マスク値は入力しません。 例: IS:00

・応答(1Slot)

VICCエラーの場合は応答しません

フラグ DSFID UID

hh [8] hh [8] hh・・・hh [64]

・応答(16slots)

VICCエラーの場合は応答しません UID の構成は 1slot の UID と同じです。

フラグ DSFID UID ,(カンマ) フラグ DSFID UID

hh [8] hh [8] [64] {1}バイト hh [8] hh [8] [64]

(カンマ~UID を繰り返します) エラー、衝突、タグが存在しない場合は DSFID、UID が空欄となり、カンマのみで区切られます。 16Slots の場合は全てのスロットが空欄であっても通常の通信ではタイムアウトせず

IM:,,,,,,,,,,,,,,, と応答します。 16slots 動作でエラーがあった場合は、スロットごとにエラーを検出します。

カンマで区切られた中にそれぞれエラーコードが生成されます。

・注意事項(16slots)

コマンド間の送信タイミングは充分な時間を確保して下さい。 タグが多数存在する状態やタグの衝突などがあった場合、充分な時間を確保していないと 暴走などの原因となります。ご注意ください。

35

・例 40E86518000007E0 AFI=00 DSFID=00 21F21813000007E0 AFI=52 DSFID=60 IS:00 1slot (1個のみフィールドに置いています) IS:005021F21813000007E0 IS:0C2102 1slotUID マスクあり (複数個フィールドに置いています) IS:006021F21813000007E0 UID マスクに該当するタグがあった IS:0C0221 1slotUID マスクあり (複数個フィールドに置いています) IS:#ERTO どれも UID マスクに該当しないためタイムアウト IM:00 16slots IM:000040E86518000007E0,006021F21813000007E0,,,,,,,,,,,,,, 0slot と 1slot タグが 2 個あった IM:0C2102 IM:,,,,,,,,,,,,,,,006021F21813000007E0 15slot に UID マスクに該当するタグが 1 個あった IM:0CFF0F IM:,,,,,,,,,,,,,,, どれも UID マスクに該当しなかった IM:00 IM:,,,,,,#ERVC01,,,,,,,,, 6slot にエラーを検出した AM:0000 AFI マスク 00 = xx AM:000040E86518000007E0,006021F21813000007E0,,,,,,,,,,,,,, AFI マスク xx のため 2 個とも応答 AM:5000 AFI マスク 50 = 5x AM:,006021F21813000007E0,,,,,,,,,,,,,, AFI マスク 5x のため 52 の1個は応答 AS:5000 AS:006021F21813000007E0 該当するタグが 1 個のため 1Slot にも応答 AS:5100 AS:#ERTO AFI マスク 51 は該当しないためタイムアウト AS:5200 AS:006021F21813000007E0 AFI マスク 52 を指定すれば応答

36

・静止状態 Stay quiet ・指定タグを静止状態にする

(テキストコマンド方式) UID必須

C Q ”UID” (UIDあり)

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “UID” UID をセットします。

UID

hh・・・hh [64]

・応答

静止状態コマンドは、いかなる場合も応答しません。必ずタイムアウトします。 CQ:#ERTO

・動作

タグが静止状態にあるとき、 ○ タグはインベントリコマンドに応答しない ○ タグ自身の UID を指定したコマンドには応答する タグは、次のときに静止状態を終了する ○ タグのリセット(電源オフ =タグがRFIDフィールドから離れた) ○ 選択要求を受信した 選択をサポートするタグであれば選択状態に移行 ○ レディへリセットを受信した レディ状態に移行

37

・例

フィールド上にタグを2枚おいて静止状態を利用したアンチコリジョン動作の例 IS:00 インベントリ 1slot IS:#ERTO レディなタグが2個以上のため衝突した IM:00 インベントリ 16slots IM:000040E86518000007E0,005021F21813000007E0,,,,,,,,,,,,,, 0slot と 1slot タグが 2 個あった CQ:21F21813000007E0 1slot のタグを静止状態にする CQ:#ERTO 常にタイムアウト IS:4021F21813000007E0 静止を確認する場合は 64bit マスク インベントリ 1Slot で確認 IS:#ERTO 静止状態コマンド成功の場合タイムアウト (IS:005021F21813000007E0) もし静止状態失敗していた場合はタイムアウトせず応答する IM:00 インベントリ 16slots で確認 IM:000040E86518000007E0,,,,,,,,,,,,,,, 0slot のみになった IS:00 インベントリ 1slot IS:000040E86518000007E0 レディなタグが 1 個のみのため応答した CR:21F21813000007E0 レディへリセットコマンド CR:00 成功 IM:00 インベントリ 16slots IM:000040E86518000007E0,005021F21813000007E0,,,,,,,,,,,,,, また応答するようになった

38

・単独ブロック読み取り Read single block ・指定ブロックの値を読む

(テキストコマンド方式) UID 任意

R S ”ブロック番号” (UIDなし)

R U ”UID” ”ブロック番号” (UIDあり)

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “UID” UID を指定する場合は UID をセットします。 “ブロック番号” ブロック番号を指定します。

UID ブロック番号

hh・・・hh [64] hh [8]

ブロック番号は 16 進表記です。0 番目ブロック = 00 10 番目ブロック = 0A

・応答

エラーの場合はフラグとエラーコードを応答します 正常な場合はフラグとブロックセキュリティ状況、データを応答します。

フラグ ブロックセキュリティ状況 データ

hh[8] hh [8] hh・・・hh [ブロック長]

・例 RS:00 ブロック 00 を読み取る(1個のみフィールドに置いています) RS:000034333231 応答

(タグを1個フィールドに追加) RS:00 ブロック 00 を読み取る RS: #ERTO 衝突して応答しない タイムアウト RU:21F21813000007E001 UID 指定してブロック 01 を読み取る RU:000044434241 応答

39

・単独ブロック書き込み Write single block ・指定ブロックに値を書く

(テキストコマンド方式) UID 必須 W U ”UID””ブロック番号” ”データ” (UIDあり)

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “UID” UID を指定する場合は UID をセットします。 “ブロック番号” ブロック番号を指定します。 “データ” ブロック長にあわせた長さでセットします。

UID ブロック番号 データ

hh・・・hh [64] hh[8] hh・・・hh [ブロック長]

ブロック番号は 16 進表記です。0 番目ブロック = 00 10 番目ブロック = 0A

・応答

エラーの場合はフラグとエラーコードを応答します。ロックされている場合も同様です。 正常な場合はフラグを応答します。

フラグ

hh[8]

・例 WU:21F21813000007E00D44434241 UID 指定してブロック 0D に 0x41424344 を書き込む WU:00 フラグ 00 正常応答 WU:21F21813000007E03F44434241 UID 指定、ブロック 3F(ロック済)ブロックに書き込み WU:#ERVC12 VICC エラー フラグ 0x12

(指定ブロックはロック済 書き換え不可)

40

・ブロックロック Lock block ・指定ブロックを永続的にロックする

(テキストコマンド方式) UID 必須

L B ”UID””ブロック番号” (UIDあり)

・注意事項

ロックコマンドは一度ロックするとロック解除、データ変更はできません。 VCDは安全のためシステムコマンド SL: でロックコマンドの使用許可を設定すると ロックコマンドを使用できるようになります。(システムコマンド SLも参照)

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “UID” UID を指定する場合は UID をセットします。 “ブロック番号” ブロック番号を指定します。

UID ブロック番号

hh・・・hh [64] hh [8]

ブロック番号は 16 進表記です。0 番目ブロック = 00 10 番目ブロック = 0A

・応答

エラーの場合はフラグとエラーコードを応答します。ロックされている場合も同様です。 正常な場合はフラグを応答します。

フラグ

hh[8]

41

・例 (AFI ロック、DSFID ロックコマンドを含む) LB:21F21813000007E03F ブロック 3F をロックする LB:#ERLF00 ロックコマンド使用許可を設定していないためエラー SL:01 ロックコマンド使用許可を設定 ブロックのみ許可 SL: 使用許可を変更した応答 LB:21F21813000007E03F ブロック 3F をロックする LB:00 フラグ 00 正常応答 LB:21F21813000007E03F もう一度ブロック 3F をロックする LB:#ERVC11 VICC エラー フラグ 0x11

(指定ブロックはロック済 再ロック不可) LA:21F21813000007E06 AFI をロックする LA:#ERLF01 ロックコマンド使用許可を設定していないためエラー (0x01 = ブロックロックのみ許可) SL:03 ロックコマンド使用許可を設定 ブロックと AFI 許可 SL: 使用許可を変更した応答 LA:21F21813000007E060 AFI をロックする LA:00 フラグ 00 正常応答 LD:21F21813000007E06 DSFID をロックする LD:#ERLF03 ロックコマンド使用許可を設定していないためエラー (0x03 = 0x01+0x02 ブロックと AFI 許可) SL:04 ロックコマンド使用許可を設定 DSFID のみ許可 (ブロックと AFI は解除 全て許可の場合は 07) SL: 使用許可を変更した応答 LD:21F21813000007E060 DSFID をロックする LD:00 フラグ 00 正常応答 LB:21F21813000007E03F ブロック 3F をロックする LB:#ERLF04 ロックコマンド使用許可を設定していないためエラー LA:21F21813000007E06 AFI をロックする LA:#ERLF04 ロックコマンド使用許可を設定していないためエラー (0x04 = DSFID ロックのみ許可)

42

・複数ブロック読み取り Read multiple blocks ・指定ブロックの値を読む

(テキストコマンド方式) UID 必須

R M ”UID””第一ブロック番号” ”ブロック数” (UIDなし)

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “UID” UID を指定する場合は UID をセットします。 “第一ブロック番号” 読み取りを開始する最初のブロック番号を指定します。 “ブロック数” 読み取るブロックの数を指定します。

ブロック数は 16 進数値に 1 を足した数を読み取ります。 ブロック数の値06は7ブロック、値00は単独(1)ブロックを指定

UID 第一ブロック番号 ブロック数

hh・・・hh [64] hh [8] hh [8]

ブロック番号は 16 進表記です。0 番目ブロック = 00 10 番目ブロック = 0A

・応答

エラーの場合はフラグとエラーコードを応答します 正常な場合はフラグとブロックセキュリティ状況、データを応答します。

フラグ ブロックセキュリティ状況 データ

hh[8] hh [8] hh・・・hh [ブロック長]

(指定したブロック分繰り返します)

一度に読み出すブロック数に制限があります。1ブロックあたり4バイトの場合 36ブロック以下として下さい。 それ以外の VICC の場合は応答電文のフラグ+ブロックセキュリティ状況+データの合計が 181バイトを超えないようにして下さい。

・例 Block0 : 0x00010203 Block1 : 0x04050607 Block2 : 0x08090A0B Block3: 0x0C0D0E0F Block4 : 0x30313233(’0’’1’’2’’3’) Block5 : 0x34353637(’4’’5’’6’’7’) Block6 : 0x38394142(’8’’9’’A’’B’) Block7: 0x43444546(’C’’D’’E’’F’) のデータが入っているものとする RU:21F21813000007E00003 UID 指定してブロック 00 から 4 ブロックを読み取る RM:0000030201000007060504000B0A0908000F0E0D0C 応答

ブロック読取は[00] [00 00010203] [00 04050607] [00 08090A0B] [00 0C0D0E0F] RM: 21F21813000007E00403 UID 指定してブロック 04 から 4 ブロックを読み取る RM:000033323130003736353400424139380046454443 応答

ブロック読取は[00] [00 30313233] [00 34353637] [00 38394142] [00 43444546]

43

・複数ブロック書き込み Write multiple blocks ・指定ブロックに値を書く

(テキストコマンド方式) UID 必須

W M ”UID””第一ブロック番号” ”ブロック数” ”データ” (UIDあり)

・注意事項

弊社で販売しているTI製Tag-itPlus/Tag-itPro ICタグは 複数ブロック書き込みコマンドに対応していません。

お持ちのVICCがコマンドに対応しているか確認してからご使用下さい。 ・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “UID” UID を指定する場合は UID をセットします。 “第一ブロック番号” 読み取りを開始する最初のブロック番号を指定します。 “ブロック数” 読み取るブロックの数を指定します。

ブロック数は 16 進数値に 1 を足した数を読み取ります。 ブロック数の値06は7ブロック、値00は単独(1)ブロックを指定 “データ” ブロック長xブロック数にあわせた長さでセットします。

UID 第一ブロック番号 ブロック数 データ

hh・・・hh [64] hh [8] hh [8] hh・・・hh

[ブロック長]

第一ブロック番号、ブロック数は 16 進表記です。 (指定したブロック分繰り返します)

・応答

エラーの場合はフラグとエラーコードを応答します。ロックされている場合も同様です。 正常な場合はフラグを応答します。

フラグ

hh[8]

一度に書き込むブロック数に制限があります。1ブロックあたり4バイトの場合 36ブロック以下として下さい。 それ以外の VICC の場合はコマンド電文のコマンド+オプションの合計が 313バイトを超えないようにして下さい。(通信仕様 項目のバッファ容量 参照)

44

・選択 Select ・指定タグを選択状態にする

(テキストコマンド方式) UID 必須

C S ”UID” (UIDあり)

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “UID” UID を指定する場合は UID をセットします。

UID

hh・・・hh [64]

・応答

UID が異なる場合は何も応答しません。 エラーの場合はフラグとエラーコードを応答します。 正常な場合はフラグを応答します。

フラグ

hh[8]

・例 CS:21F21813000007E0 select コマンド送信 CS:00 応答

45

・レディへリセット Reset to ready ・指定タグを選択状態にする

(テキストコマンド方式) UID 必須

C R ”UID” (UIDあり)

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “UID” UID を指定する場合は UID をセットします。

UID

hh・・・hh [64]

・応答

UID が異なる場合は何も応答しません。 エラーの場合はフラグとエラーコードを応答します。 正常な場合はフラグを応答します。

フラグ

hh[8]

・例

詳細な使い方は 静止状態 コマンドコード 0x02 の例を参照してください。 CR:21F21813000007E0 CR:00

46

・AFI 書き込み Write AFI ・AFIに値を書く

(テキストコマンド方式) UID必須

W A”UID” ”AFI” (UIDあり)

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “UID” UID を指定する場合は UID をセットします。 “AFI” AFI データをセットします。

UID AFI

hh・・・hh [64] hh[8]

AFI 各値の詳細な内容は、ISO15693-3 AFI を参照してください。

・応答

エラーの場合はフラグとエラーコードを応答します。ロックされている場合も同様です。 正常な場合はフラグを応答します。

フラグ

hh[8]

・例

詳細な使い方は システム情報入手 コマンドコード 0x2B の例を参照してください。

47

・AFI ロック Lock AFI ・AFIを永続的にロックする

(テキストコマンド方式) UID必須

L A”UID” (UIDあり)

・注意事項

ロックコマンドは一度ロックするとロック解除、データ変更はできません。 VCDは安全のためシステムコマンド SL: でロックコマンドの使用許可を設定すると ロックコマンドを使用できるようになります。(システムコマンド SLも参照)

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “UID” UID を指定する場合は UID をセットします。

UID

hh・・・hh [64]

・応答

エラーの場合はフラグとエラーコードを応答します。すでにロック済の場合も同様です。 正常な場合はフラグを応答します。

フラグ

hh[8]

・例

詳細な使い方は ブロックロック コマンドコード 0x22 の例を参照してください。

48

・DSFID 書き込み Write DSFID ・DSFIDに値を書く

(テキストコマンド方式) UID必須

W D ”UID””DSFID” (UIDあり)

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “UID” UID を指定する場合は UID をセットします。 “DSFID” DSFID データをセットします。

UID DSFID

hh・・・hh [64] hh[8]

DSFID 各値の詳細な内容は、ユーザーで定義できます。

・応答

エラーの場合はフラグとエラーコードを応答します。 正常な場合はフラグを応答します。

フラグ

hh[8]

・例 IS:00 インベントリで DSFID を取得 IS:000021F21813000007E0 応答 2バイト目 00 WD:21F21813000007E050 DSFID 書き込み 50 WD:00 正常応答 IS:00 インベントリで DSFID を取得 IS:005021F21813000007E0 応答 2バイト目 50

49

・DSFID ロック Lock DSFID ・DSFIDを永続的にロックする

(テキストコマンド方式) UID必須

L D ”UID” (UIDあり)

・注意事項

ロックコマンドは一度ロックするとロック解除、データ変更はできません。 VCDは安全のためシステムコマンド SL: でロックコマンドの使用許可を設定すると ロックコマンドを使用できるようになります。(システムコマンド SLも参照)

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “UID” UID を指定する場合は UID をセットします。

UID

hh・・・hh [64]

・応答

エラーの場合はフラグとエラーコードを応答します。 正常な場合はフラグを応答します。

フラグ

hh[8]

・例

詳細な使い方は ブロックロック コマンドコード 0x22 の例を参照してください。

50

・システム情報入手 Get system infomation ・ICタグのシステム情報の値を読む

(テキストコマンド方式) UID必須

R I ”UID””ブロック番号” (UIDあり)

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “UID” UID を指定する場合は UID をセットします。

UID

hh・・・hh [64]

・応答

エラーの場合はフラグとエラーコードを応答します 正常な場合はフラグとブロックセキュリティ情報、データを応答します。

フラグ 情報

フラグ UID

(必須) DSFID AFI

その他の フィールド

hh [8] hh [8] hh・・・hh [64] hh [8] hh [8] 下記参照

DSFID、AFI、その他のフィールドについては、 情報フラグ内でサポートされているデータのみセットされます。

51

情報フラグの定義

ビット フラグ名 値 説明

0 DSFIDがサポートされていない b1 DSFID

1 DSFIDがサポートされている

0 AFIがサポートされていない b2 AFI

1 AFIがサポートされている

0 VICCメモリサイズがサポートされていない b3

VICC

メモリサイズ 1 VICCメモリサイズがサポートされている

0 IC基準の情報がサポートされていない b4 IC基準

1 IC基準の情報がサポートされている

b5 RFU 0

b6 RFU 0

b7 RFU 0

b8 RFU 0

その他のフィールド VICCメモリサイズの定義

MSB LSB

16 14 13 9 8 1 RFU バイト単位のブロックサイズ(注 1 ブロック数

ブロックサイズは5ビットで表すバイト数です。最大で32(256ビット)を 指定できます。値は実際のバイト数より1少なくなります。

ブロック数は 8 ビットで、最大256ブロックを指定できます。 値は実際のバイト数より1少なくなります。 ブロックサイズ 例:'1F’=32バイト '00’=1 バイト ブロック数 例:'FF’=256ブロック '00’=1 ブロック 上位3ビットは将来のための予約(RFU)で、0をセットする。 (注 1「バイト単位のブロックサイズ」は ISO15693 日本語版での表現です。 わかりやすい意訳は「1 ブロックあたりのバイト数」です。

52

・例 RI:21F21813000007E0 システム情報入手コマンド RI:000F21F21813000007E050003F038B システム情報応答 WA:21F21813000007E060 AFI 書き込み 60 WA:00 正常応答 RI:21F21813000007E0 システム情報入手コマンドで確認 RI:000F21F21813000007E050603F038B AFI が 60 になっている WD:21F21813000007E0FF DSFID 書き込み FF WD:00 正常応答 RI:21F21813000007E0 システム情報入手コマンドで確認 RI:000F21F21813000007E0FF603F038B DSFID が FF になっている RG:21F21813000007E03F00 複数ブロック状況 0x3F から 1 ブロック RG:0001 応答 01 = ロックされている RG:21F21813000007E00000 複数ブロック状況 0x00 から 1 ブロック RG:0000 応答 00 = ロックされていない RG:21F21813000007E00211 複数ブロック状況 0x02 から 18 ブロック RG:00000000000000000000000000000000000000

応答 すべてロックされていない RG:21F21813000007E0003F 複数ブロック状況 0x00 から 64 ブロック RG:0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101 3E 3F がロックされている

・詳細不明なタグを扱いたい場合の確認手順例

IM:00 インベントリ 16Slots IM:000040E86518000007E0,00FF21F21813000007E0,,,,,,,,,,,,,, 2個応答あり RI:21F21813000007E0 E00700001318F221 の情報取得 RI:000F21F21813000007E0FF603F038B 応答

(情報フラグ=0F UID=E00700001318F221 DSFID=FF AFI=60 バイト単位のブロックサイズ=3F ブロック数=03) ブロック数とブロックサイズが判明 =VICC データ容量取得 RG:21F21813000007E0003F 複数ブロック状況 00 から 3F ブロック RG:0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101 応答 3E 3F がロックされている (以後 Read Write Lock 等処理をする)

53

・複数ブロックセキュリティ状況入手 Get multiple block security status

・VICCの複数ブロックのセキュリティ状況を読む

(テキストコマンド方式) UID必須

R G ”UID” ”第一ブロック番号” ”ブロック数” (UIDあり)

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “UID” UID を指定する場合は UID をセットします。 “第一ブロック番号” 読み取りを開始する最初のブロック番号を指定します。 “ブロック数” 読み取るブロックの数を指定します。

ブロック数は 16 進数値に 1 を足した数を読み取ります。 ブロック数の値06は7ブロック、値00は単独(1)ブロックを指定します。

UID 第一ブロック番号 ブロック数

hh・・・hh [64] hh [8] hh [8]

・応答

エラーの場合はフラグとエラーコードを応答します 正常な場合はフラグとブロックセキュリティ状況を応答します。

フラグ ブロックセキュリティ状況

hh [8] hh [8]

(指定したブロック分繰り返します)

一度に読むブロックセキュリティ状況は64ブロック以下として下さい。

・例 詳細な使い方は システム情報入手 コマンドコード 0x2B の例を参照してください。

54

6.4 コマンド説明(ISO15693 Tag-it Plus/Pro専用カスタムコマンド) 本項記載のカスタムコマンドは、特定の種類のVICCのみサポートされています。 お持ちのVICCが各コマンドに対応しているか必ず確認して下さい。

・2ブロック書き込み Write 2 blocks ・指定ブロックから始まる2ブロックに値を書く

(テキストコマンド方式) UID 必須

W 2 ”UID”” 開始ブロック番号” ”データ” (UIDあり)

・注意事項

ロックエラーが起きないよう必ず事前に複数ブロックセキュリティ状況入手コマンド等で 確実に実行できることを確認して下さい。

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “UID” UID を指定する場合は UID をセットします。 “開始ブロック番号” 開始ブロック番号を指定します。

開始ブロック番号は、偶数アドレスから始まるよう指定します。 “データ” ブロック長にあわせた長さでセットします。 偶数ブロック、奇数ブロックの順でセットします。

UID 開始ブロック番号 データ

(偶数ブロック) データ

(奇数ブロック)

hh・・・hh [64] hh[8] hh・・・hh [ブロック長] hh・・・hh [ブロック長]

ブロック番号は 16 進表記です。0 番目ブロック = 00 10 番目ブロック = 0A

・応答

エラーの場合はフラグとエラーコードを応答します。ロックされている場合も同様です。 正常な場合はフラグを応答します。 奇数アドレスを指定した場合は、処理が実行されずエラーコード 0xA1 を返します。 1つまたは両方のブロックがロックされている場合はエラーコード 0xA2 を返します。 ロックエラー0xA2 時の動作は応答以外 VICC 説明書に定義されていません。 エラーであっても未ロック側ブロックの処理が実行される場合がありますのでご注意ください。

フラグ

hh[8]

55

・2ブロックロック Lock 2 blocks ・指定ブロックから始まる2ブロックを永続的にロックする

(テキストコマンド方式) UID必須

L 2 ”UID” ” 開始ブロック番号” (UIDあり)

・注意事項

ロックコマンドは一度ロックするとロック解除、データ変更はできません。 VCDは安全のためシステムコマンド SL: でロックコマンドの使用許可を設定すると ロックコマンドを使用できるようになります。(システムコマンド SLも参照)

ロックエラーが起きないよう必ず事前に複数ブロックセキュリティ状況入手コマンド等で 確実に実行できることを確認して下さい。

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “UID” UID を指定する場合は UID をセットします。 “開始ブロック番号” 開始ブロック番号を指定します。

開始ブロック番号は、偶数アドレスから始まるよう指定します。

UID 開始ブロック番号

hh・・・hh [64] hh [8]

ブロック番号は 16 進表記です。0 番目ブロック = 00 10 番目ブロック = 0A

・応答

エラーの場合はフラグとエラーコードを応答します。ロックされている場合も同様です。 正常な場合はフラグを応答します。 奇数アドレスを指定した場合は、処理が実行されずエラーコード 0xA1 を返します。 1つまたは両方のブロックがロックされている場合はエラーコード 0xA2 を返します。 ロックエラー0xA2 時の動作は応答以外 VICC 説明書に定義されていません。 エラーであっても未ロック側ブロックの処理が実行される場合がありますのでご注意ください。

フラグ

hh[8]

56

・キル Kill ・VICC を永続的に無効化する

(テキストコマンド方式) UID必須

L K ”UID” ”パスワード” (UIDあり)

・注意事項

キルコマンドは一度実行すると取り消しは出来ません。 VCDは安全のためシステムコマンド SL: でキルコマンドの使用許可を設定すると コマンドを使用できるようになります。(システムコマンド SLも参照)

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “UID” UID を指定する場合は UID をセットします。 “パスワード” パスワードを指定します。

UID パスワード

hh・・・hh [64] hh・・・hh [32]

・動作

実行されるとVICC内部のキルビットに記憶され、以後VCDからの全ての問い合わせに 一切応答しません。

パスワードの変更は Write Single Block コマンドで書き込むことができ、 ロックビット=0(パスワード機能なし)の場合 Read Single Block コマンドを使用して パスワードを後で確認することができます。 キルコマンドを実行し、パスワードとの照合に成功するためにはブロックロックコマンドで パスワードブロックのロックビット=1とし、パスワードブロックの Read Single Block 読み出しをできないようにしておく必要があります。

・応答

エラーの場合はフラグとエラーコードを応答します。 正常な場合はフラグを応答します。

フラグ

hh[8]

57

・パスワード付ブロック書き込み Write single block pwd ・パスワード保護されたブロックに値を書く

(テキストコマンド方式) UID 必須 W P ”UID” ”パスワード” ”ブロック番号” ”データ”

(UIDあり)

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “UID” UID を指定する場合は UID をセットします。 “パスワード” パスワードを指定します。 “ブロック番号” ブロック番号を指定します。 “データ” ブロック長にあわせた長さでセットします。

UID パスワード ブロック番号 データ

hh・・・hh [64] hh・・・hh [32] hh[8] hh・・・hh [ブロック長]

ブロック番号は 16 進表記です。0 番目ブロック = 00 10 番目ブロック = 0A

・動作

VICCによって動作が異なる場合があります。 TI製Tag-it Proの動作例 実行するにはパスワードブロックと書き込みブロックが共にロックフラグ=1でなければなりません。 実行すると、書き込みブロックのロックフラグ=1であってもWrite動作が可能となります。 パスワードブロックを書き込みブロックに指定することもできますのでパスワード変更も可能です。 パスワードブロックのロックフラグ=0の場合、VICCのパスワード機能は無効でコマンドは動作しません。 ロックフラグは通常のロックとして扱われます。 通常のロックフラグ同様、一度ロックフラグ=1にすると戻すことはできません。

TI製Tag-it Proの動作表

パスワードブロック ロックフラグ=0

パスワードブロック ロックフラグ=1

Read Write WritePwd Read Write WritePwd

パスワードブロック ○ ○ × × × ○

ユーザーブロック ロックフラグ=0

○ ○ × ○ ○ ×

ユーザーブロック ロックフラグ=1

○ × × ○ × ○

58

・パスワードの扱いについて

VCD-VICC 間の RFID 通信でパスワードは平文で送られます(暗号化されていません)。 運用では 3DES 等、VICC 別にユニークで多様化したパスワードの使用をお勧めします。 VCD は暗号機能がありません。ホスト側で暗号・復号の処理をして下さい。 パスワードは一度保護されると読み出す方法がありません。 設定したパスワードを失わないよう十分ご注意ください。

・応答

エラーの場合はフラグとエラーコードを応答します。ロックされている場合も同様です。 正常な場合はフラグを応答します。

フラグ

hh[8]

59

6.5 コマンド説明(Felica ISO18092) 詳細はISO18092やNFC Type3、Felica ユーザーマニュアル等を 参照して下さい。本説明に疑義があるときは上記文書に準拠して下さい。

・ポーリング1枚読み Polling One Slot ・全システムコード、スロット数1を指定して Polling を実行する

(テキストコマンド方式)

F P :

FM:FFFF0000 と同じコマンド動作を行います。 全てのターゲットが応答し、常にシステム0が応答します。リクエスト要求なしです。 スロット数は1固定でフィールド上に応答可能なターゲットが複数ある場合は衝突します。

・応答

ターゲットエラーの場合は応答しません

電文長 レスポンス

コード Manufacturer ID リクエストデータ

hh[8] 0x01 hh・・・hh [128] [0]または[16]

レスポンスコードは 0x01 となります。 Manufacturer ID は IDm と PMm で構成され16バイトです。

Manufacturer ID が16バイトに満たない場合、応答データの正確さは保証されません。 データを捨てるか、利用するかの判断はホスト側で決定してください。

・例 SI:01 ISO 変更コマンド ISO18092 SI: ISO 変更コマンド応答 FP: Polling FP:120101010501F602C32102004B024F4993FF Polling 応答 SI:00 ISO 変更コマンド ISO15693 SI: ISO 変更コマンド応答 FP: Polling FP:#ERTO ISO が違うため正常に通信できない タイムアウト

60

・ポーリング Polling ・Polling を実行する

(テキストコマンド方式)

F M ”システムコード””リクエストコード””タイムスロット”

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “システムコード” 補足するカードのシステムコードを指定します。 “リクエストコード” リクエストデータを指定します。 “タイムスロット” 応答可能な最大スロットの指定します。

システムコード リクエストコード タイムスロット

hh[16] hh[8] hh[8]

システムコードは、ターゲット製造時に登録されたシステムコードを指定し、 目的のターゲットのみ応答させるように指定できます。 上位、下位バイトのいずれかまたは両方をワイルドカード(0xFF)とすることもできます。 ターゲットのシステムが 0x0123 の場合、コマンドのシステムコードが完全一致(0x0123)、 上位ワイルド(0xFF23)、下位ワイルド(0x01FF)、全てワイルド(0xFFFF)に応答します。 ターゲットのシステムが分割されている場合は、システム0から順に比較します。 ワイルドカード 0xFFFF の場合は全てのターゲットが応答し、常にシステム0が応答します。

リクエストコード リクエストデータ 備考

0x00 なし リクエストデータは返送されません(0バイト)

0x01 システムコード 補足したシステムのシステムコード

(2 バイト)が返送されます

0x02 通信性能 通信性能(2 バイト)が返送されます

(Felica カードユーザーマニュアル参照)

システムコード要求、通信性能要求に対応しないカードはリクエストデータを返送しません。 リクエストコード 0x00 が指定場合と同様に扱います。

・応答

ポーリング1枚読み Polling One Slot と同じです。

61

・リクエストサービス Request Service ・Request Service を実行する

(テキストコマンド方式)

F V ”システムコード””リクエストコード””タイムスロット”

エリアコード・サービスコードで指定するエリアサービスの存在を調べるためのコマンドです。

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “IDm” コマンドの対象となるシステムの製造 ID。 “エリアサービス数” 鍵バージョン取得対象のエリアサービス数を指定します。 “エリアコード・サービスコードリスト” 鍵バージョン取得対象のエリアコード・

サービスコードを指定します。

IDm エリアサービス数 エリアコード

サービスコードリスト

hh・・・hh [64] hh[8] (1≦n≦32) hh[16]

(リトルエンディアン)

(n 回繰り返します)

・応答

ターゲットエラーの場合は応答しません

電文長 レスポンス

コード IDm エリアサービス数

取得した 鍵バージョンリスト

hh[8] 0x03 hh・・・hh [64] hh[8] (1≦n≦32) hh[16]

(リトルエンディアン)

(n 回繰り返します) レスポンスコードは 0x03 となります。

コマンドパケットのエリアコード・サービスコードには、鍵バージョン取得対象の エリアコードまたはサービスコードをそれぞれリトルエンディアンで列挙します。 システム鍵を取得対象とする場合は 0xFFFF を指定します。

エリア・サービス鍵バージョンリスト内の鍵バージョンの順番は、エリアコード・ サービスコードリストの順番と一致します。 コマンドパケットのエリアコード・サービスコードで指定されたエリア・サービスが ターゲット内に存在しない場合には、エリア・サービス鍵バージョンリスト内の該当箇所には 0xFFFF が返送されます。

62

・リクエストレスポンス Request Responce ・Request Responce を実行する

(テキストコマンド方式)

F Q ”システムコード””リクエストコード””タイムスロット”

ターゲットの存在を調べるためのコマンドです。ターゲットの現在のモードを返送します。

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “IDm” コマンドの対象となるシステムの製造 ID。

IDm

hh・・・hh [64]

・応答

ターゲットエラーの場合は応答しません

電文長 レスポンス

コード IDm モード

hh[8] 0x05 hh・・・hh [64] hh[8]

レスポンスコードは 0x05 となります。

モード システムの現在のモードを返送します。 0x00 モード0 0x01 モード1 0x02 モード2 0x03 モード3

63

・非暗号化読み出し Read Without Encryption ・認証を必要としないサービスのブロックから読み出す

(テキストコマンド方式)

F R ”サービス数””サービスコードリスト” ”ブロック数””ブロックリスト”

非暗号化ブロックのデータを読出します。

・注意事項

サービスコードが不明なターゲットの読み出しはできません。

ターゲット製造メーカーから詳細な情報を入手して下さい。 ・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “IDm” コマンドの対象となるシステムの製造 ID。 “サービス数” サービス数を指定します。 “サービスコードリスト” サービスコードを指定します。 “ブロック数” ブロック数を指定します。 “ブロックリスト” ブロックリストを指定します。

IDm サービス数 サービスコード

リスト

ブロッ

ク数 ブロックリスト

hh・・・hh [64] hh[8]

(1≦m≦16) hh[16]

(リトルエンディアン) hh[8]

n hh[16 または 24]

(m 回繰り返します) (n 回繰り返します)

一度に読み出すブロック数に制限があります。最大12ブロック以下として下さい。

・応答

ターゲットエラーの場合は応答しません

電文長 レスポンス

コード IDm

ステータス

フラグ1 ステータス

フラグ2 ブロック数 データ

hh[8] 0x07 hh・・・hh [64] hh[8] hh[8] hh[8]

n hh[108]

(16 バイト)

(n 回繰り返します) レスポンスコードは 0x07 となります。

64

・非暗号化書き込み Write Without Encryption ・認証を必要としないサービスのブロックに書き込む

(テキストコマンド方式)

F W ”サービス数””サービスコードリスト” ”ブロック数””ブロックリスト” ”ブロックデータ”

非暗号化ブロックのデータを書き込みます。

・注意事項

サービスコードが不明なターゲットの書き込みはできません。

ターゲット製造メーカーから詳細な情報を入手して下さい。 ・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “IDm” コマンドの対象となるシステムの製造 ID。 “サービス数” サービス数を指定します。 “サービスコードリスト” サービスコードを指定します。 “ブロック数” ブロック数を指定します。 “ブロックリスト” ブロックリストを指定します。

IDm サービス数 サービスコード

リスト

hh・・・hh [64] hh[8]

(1≦m≦16) hh[16]

(リトルエンディアン)

左下に続きます

(m 回繰り返します)

ブロック数 ブロックリスト ブロックデータ

hh[8] n

hh[16] hh・・・hh [108] (16 バイト)

(n 回繰り返します) (n 回繰り返します) 一度に書き込むブロック数に制限があります。最大8ブロック以下として下さい。 ・応答

ターゲットエラーの場合は応答しません

電文長 レスポンス

コード IDm

ステータス

フラグ1 ステータス

フラグ2

hh[8] 0x09 hh・・・hh [64] hh[8] hh[8]

レスポンスコードは 0x09 となります。

65

・リクエストシステムコード Request System Code ・ターゲット内システムのシステムコードを取得する

(テキストコマンド方式)

F Y ”IDm”

ターゲットが複数のシステムに分割されていた場合はカード内に存在する 全てのシステムのシステムコードを取得します。

・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “IDm” コマンドの対象となるシステムの製造 ID。

IDm

hh・・・hh [64]

・応答

ターゲットエラーの場合は応答しません

電文長 レスポンス

コード IDm システムコード数 システムコードリスト

hh[8] 0x0d hh・・・hh [64] hh[8] hh[16]

(n 回繰り返します) レスポンスコードは 0x0d となります。

コマンドパケットのエリアコード・サービスコードには、鍵バージョン取得対象の エリアコードまたはサービスコードをそれぞれリトルエンディアンで列挙します。 システム鍵を取得対象とする場合は 0xFFFF を指定します。

エリア・サービス鍵バージョンリスト内の鍵バージョンの順番は、エリアコード・ サービスコードリストの順番と一致します。 コマンドパケットのエリアコード・サービスコードで指定されたエリア・サービスが ターゲット内に存在しない場合には、エリア・サービス鍵バージョンリスト内の該当箇所には 0xFFFF が返送されます。

66

6.5 コマンド説明(ISO14443A) ・REQA ・REQA を実行する

(テキストコマンド方式)

A R :

詳細はISO14443-3を参照して下さい。

本説明に疑義があるときはISO原文に準拠して下さい。 ・応答

ATQAを応答します。 エラーの場合は応答しません 受信データは、IC タグから送信されるバイトオーダーで出力されます。

Byte0 Byte1

hh[8] hh[8]

ビット構成

b8 b7 b6 b5 b4 b3 b2 b1 b

16 b

15 b

14 b

13 b

12 b

11 b

10 b9

UID Size bit flame

RFU bit flame Anticollision RFU

ビット8と7は UID のサイズを表します。 ビット1~5はビットフレームアンチコリジョンを表します。

67

フラグ一覧表

UID Size bit flame

b8 b7 意味

0 0 UID size : single

0 1 UID size : double

1 0 UID size : triple

1 1 RFU

Coding of b1 - b5 for bit frame anticollision

b5 b4 b3 b2 b1 意味

1 0 0 0 0 bit frame anticollision

0 1 0 0 0 bit frame anticollision

0 0 1 0 0 bit frame anticollision

0 0 0 1 0 bit frame anticollision

0 0 0 0 1 bit frame anticollision

All other values RFU

・例

次の Anticollision コマンドを参照して下さい。

68

・Anticollision ・Anticollision を実行する

(テキストコマンド方式)

A A : ”SEL” ”NVB” ”UID CLn ”

詳細はISO14443-3を参照して下さい。

本説明に疑義があるときはISO原文に準拠して下さい。 ・オプション

16進表記の値を2バイトテキスト化したものをセットします。 “SEL” カスケードレベルをセットします。

値 意味

0x93 カスケードレベル1

0x95 カスケードレベル2

0x97 カスケードレベル3

“NVB” Number of Valid bits を指定します。 SEL、NVB を含むすべての有効データバイト数を指定します。 通常は最小値の 0x20 から開始します。 最大値は 0x70 です。

b8 b7 b6 b5 意味

0 0 1 0 Bytecount = 2

0 0 1 1 Bytecount = 3

0 1 0 0 Bytecount = 4

0 1 0 1 Bytecount = 5

0 1 1 0 Bytecount = 6

0 1 1 1 Bytecount = 7

下位の 4 ビットはバイト数で余ったビットカウントを表します。

b4 b3 b2 b1 意味

0 0 0 0 bitcount = 0

0 0 0 1 bitcount = 1

0 0 1 0 bitcount = 2

0 0 1 1 bitcount = 3

69

0 1 0 0 bitcount = 4

0 1 0 1 bitcount = 5

0 1 1 0 bitcount = 6

0 1 1 1 bitcount = 7

”UID CLn ” UID カスケードレベルを指定します。 詳細は ISO14443-3 を参照して下さい。

・応答

UID を応答します。エラーの場合は応答しません。 UID の詳細は 3.7 を参照して下さい。

70

・例 (1) SI:02 ISO 変更コマンド ISO14443A SI: ISO 変更コマンド応答 AR: REQA AR:#ERTO 応答なし AR: REQA を何度か試す AR:0400 応答あり ATQA を返す UID サイズはシングル ビットフレームアンチコリジョンは 0x04 AA:9320 応答があったので Anticollision レベル 1 AA:312CF7E10B UID を応答 シングルなのでレベル 1 のみ パリティ 0x0B とデータを比較し チェック OK AA:9320 もう一度送信(パリティエラー等時以外は不要) AA:312CF7E10B もう一度送っても応答する AR: REQA でタグを探す AR:#ERTO 応答なし AR: REQA を何度か試す AR:0400 応答あり ATQA を返す AA:9320 応答があったので Anticollision レベル 1 AA:312CF7E10B UID を応答 先と同じタグだった (2) AR: REQA を何度か試す AR:0400 応答あり ATQA を返す AA:9320 応答があったので Anticollision レベル 1 AA:312CF7E10B UID を応答 シングルなのでレベル 1 のみ AA:9520 UID サイズがシングルなのにAnticollision レベル 2を送る AA:#ERTO 応答なし (3) AR: REQA を何度か試す AR:0400 応答あり ATQA を返す AA:933031 Anticollision レベル 1 UIDCLn = 0x31 1バイト AA:2CF7E10B 応答あり UIDCLn の 1 バイトは送信していないが パリティが同じである 注意

71

○使用条件、著作権 RFID リーダーライターと付属の資料 CDROM、サンプルプログラムの著作権は(株)雪岡製作所にあります。 無断での転載、資料の内容を他人が閲覧可能な場所へ記載することを禁止します。 ○注意 この機器と添付するソフトウェアは一般的な機器の組み込み用途に使用されることを前提としています。 本機の不具合、故障や誤動作が人体を脅かしたり人体に危害を及ぼしたりする恐れのある用途にはお客様の 責任でご使用ください。またこの機器と添付するソフトウェアを使用したことにより生じた故障や事故、損害に つきましては、弊社はその責を負いません。 RFID 通信はお客様の環境によっては正常に動作しないこともあります。 RFID の特性上、周囲に強力な電磁波、磁力線、金属がある、または金属に覆われている場所では正常に動作しな

いことがあります。 ○関連資料ダウンロード、入手先(入手先やアドレスなどは予告なく変更されることがあります) IC タグの仕様、各種コマンドや通信手順 文書ダウンロード Texas Instruments Tag-it HF-I Transponder Inlays Reference Guide (英文)

TI http://www.ti.com/rfid/ から Document Center | Reference Guides を開き Tag-It HF-I Transponder Inlays ISO15693 の通信、衝突防止と通信プロトコル

国際規格 ISO/IEC 15693-3:2001 Identification cards - Contactless integrated circuit(s) cards

Vicinity cards - Part3: Anticollision and transmission protocol (英語版または和訳版)

日本規格協会 http://www.jsa.or.jp/ でご購入ください。 ISO/IEC 規格 | ISO 検索 |規格番号に 15693 と入力して検索すると見つかります。 また、海外のサイトからダウンロード等で購入することもできます。

Felica カード ユーザーズマニュアル Version1.0 日本語

ソニー株式会社 http://www.sony.co.jp/Products/felica/tech-support/

RFID リーダーライターモジュール RB-101 コマンドリファレンス 開発販売元 ㈱雪岡製作所 www.yukioka.co.jp [email protected] 〒530-0035 大阪府大阪市北区同心 2-2-5 ウツミビル ㈱雪岡製作所