4. プログラミング上の注意点
4.3 検索方式について
多段起動 2 を使用する
Mifare(Standard)カードと通信する
1. NFCSetPollingMode関数により、検索方式に多 段起動(NFC_PLMODE_MULTISTEP2)を、段 数に連続起動するカード枚数CARD_NUMを 指定します。
2. iCount=0をセットします。
3. iCount<CARD_NUMの場合、次の処理に進み ます。CARD_NUMは連続起動するICカードの 枚数を表します。
4. NFCPollingCard関数により通信範囲内のカー ドを検索します。
5. カードの起動に失敗し、NFCPollingCard関数 の戻り値が重複起動を表す場合、必要に応じ てLED等により重複起動を通知します。その後、
3.に戻って処理を繰り返します。
6. 起動に成功したICカードのボーレートがMifare カードのボーレートと一致しているかを確認しま す。一致している場合は、
NFCGetCardResponse関数によりMifareカード のUIDを取得します。
7. 次にNFCExchangeData関数により、Mifareコ マンドを送信し、カードとのデータアクセスを行 います。(必要な動作に応じて各種コマンドを 送信)
8. セクターを変更せずに処理を続行する場合、7.
に戻って処理を繰り返します。
9. セクターを変更して処理を続行する場合、6.に 戻って処理を繰り返します。
10. 次のカードを起動する場合、iCountに1を加算 し、3.に戻って同様の処理を繰り返します。
11. 3.において、iCountがCARD_NUMより大きい 場合、ループ処理を終了します。
12. NFCRadioOff関数により、電波を停止します。
(電波を自動で停止する場合は、本手順は必 要ありません。)
NFCExchangeData
処理終了
セクター変更 NFCExchangeData
Yes
No
Yes No
(データアクセス)
ボーレート確認 Yes
(アクセス許可)
No NFCPollingCard
カード起動 Yes
No
NFCGetCardResponse iCount=0
iCount<CARD_NUM NFCSetPollingMode
処理続行
セクター変更 No
NFCRadioOff 次のカード起動
iCount+=1 Yes
No Yes
No
重複カード起動
必要に応じて 重複起動を通知
Yes No
一括起動を使用する
Mifare(Standard)カードと通信する
1. NFCSetPollingMode関数により、検索方式に一括起動
(NFC_PLMODE_PACKAGE)を、段数に一括起動する枚数 を指定します。
2. NFCPollingCard関数により通信範囲内のカードを検索しま す。
3. 起動に成功したICカードのボーレートがMifareカードのボ ーレートと一致しているかを確認します。一致している場合 は、NFCGetCardResponse関数によりMifareカードのUID を取得します。
4. kに起動した枚数を、dwTargetNoに0をセットします。
(NFCExchangeData関数の引数)
5. dwTargetNoがkよりも小さい場合、次の処理に進みます。
6. NFCExchangeData関数により、Mifareコマンドを送信し、セ クターへのアクセス許可を行います。
7. 次にNFCExchangeData関数により、Mifareコマンドを送信 し、カードとのデータアクセスを行います。(必要な動作に応 じて各種コマンドを送信)
8. セクターを変更せずに処理を続行する場合、7.に戻って処 理を繰り返します。
9. セクターを変更して処理を続行する場合、6.に戻って処理 を繰り返します。
10. 次のカードと通信する場合、dwTargetNoに1加算し、5.に 戻って同様の処理を繰り返します。
11. 5.において、dwTargetNoがkよりも大きい場合、ループ処 理を終了します。
12. NFCRadioOff関数により、電波を停止します。
NFCPollingCard
NFCPollingCard
ボーレート確認 カード起動
NFCGetCardResponseEx
k=起動枚数 dwTargetNo=0
dwTargetNo<k
NFCExchangeData NFCExchangeData
(データアクセス)
(アクセス許可)
処理続行
セクター変更
NFCRadioOff 次のカード起動
dwTargetNo+=1 No
Yes
No
Yes
No Yes
Yes
No
Yes
No
No Yes