2016-06-09 3 views
0

У меня есть апплет, который отлично работает на карточке контакта. Теперь у меня есть двойная интерфейсная карта (IDCore 3020), и я загружаю свой апплет через контактный интерфейс. Также у меня есть бесконтактный считыватель смарт-карт (acr122u), и я хочу отправить команду APDU через бесконтактный интерфейс и получить ответ APDU. я послал SelectApplet APDU на карту, как это, но я не смог (SW = 6300):Как отправить апду на бесконтактную смарт-карту

00 A4 04 00 09 [A0,00,00,03,08,00,00,10,00] 00 

У меня есть три вопроса:

1 Могу ли я использовать мой апплет в бесконтактном режиме, как контакт с таким же ПБДП?

2- должен ли я что-либо делать, чтобы бесконтактный считыватель распознал мою карточку?

3- ли текущий мини-ресивер, который работает с карточкой контакта, также работает с бесконтактной картой?

+1

'63 00' - довольно необычный код ошибки в ответ на команду SELECT, но это код ошибки, который часто используется ACR122U для указания общей ошибки. Может быть, ваш читатель еще не обнаружил карту? Является ли «Auto PICC polling» и «Auto ATS generation» для ISO 14443 Type A/Type B включенным на вашем считывателе (некоторые версии ACR122U не включают это по умолчанию)? –

+1

Используете ли вы 'APDU.getProtocol()' во время выбора апплета для фильтрации доступа? В вашей карте реализована глобальная платформа C (AFAIK IDCore 3020), но я не уверен, что ...)? Выбирает ли какое-либо другое приложение (например, ISD) работу с бесконтактным интерфейсом? – vlp

+0

Спасибо, Майкл за ответ. Это правда, и мой читатель еще не обнаружил карту. я могу получить прошивку для читателя by followong apdu: FF 00 48 00 00 [] 00, но когда я хочу получить параметр picc следующей командой: FF 00 50 00 00 [] 00, я потерпел неудачу, и он возвращает 6300, также когда я хочу для установки этих параметров, следуя команде: FF 00 51 00 00 [] 00, он также возвращает 6300. почему это происходит? –

ответ

1

1- Могу ли я использовать свой апплет в бесконтактном режиме, как контакт с теми же APDU?

Да, конечно, если вы явно не запретить его в коде (с помощью getProtocol.

2- я должен сделать что-нибудь, чтобы бесконтактный считыватель признать мою карту?

Нет, если у вас есть совместимый с PCSC & совместимый с ISO/IEC 14443 читатель, с которым вы сможете общаться (и у вас есть). Я не уверен, что вы имеете в виду «признать» здесь, но он, безусловно, должен его видеть.

Это может привести к другому ATS, чем ATR, заданному контактным интерфейсом. ATR/ATS генерируется до может использоваться более общий интерфейс APDU.

3- ли текущий мини-ресивер, который работает с карточкой контакта, также работает с бесконтактной картой?

Это может быть, но обратите внимание на замечание о ATR/ATS выше.

+0

Спасибо Маартан за ваш ответ. Но почему мой читатель (ACR 122U) не видит мои карты. Я проверил читателя с Mifare1K по следующей команде: FF 00 00 00 02 [D4,04] 00, чтобы получить текущую настройку бесконтактного интерфейса и считывателя, возвращаемого D5 05 00 00 00 80 90 00, что означает, что в поле нет метки. Кажется, читатель не проводит опрос для обнаружения карт. –

+0

Может быть, проблема с самой картой? Есть ли у него антенна? Использование команд MIFARE для проверки других карт, вероятно, не очень хорошая идея; это может быть спецификой реализации, которую вы вернетесь. Обычно я предлагаю и другого читателя; может быть, у вашего мобильного телефона есть NFC-ридер, который вы можете использовать для проверки тегов? –

+0

У меня есть другая бесконтактная карта. Моя транспортная карта - карта Mifare1K. Я тестировал его с помощью своего телефона, и он мог успешно обнаружить карту, поэтому карта (MIFARE1K) работает правильно. предыдущие команды были протестированы картой MIFARE1K. Я думаю, что проблема с кардридером ACR122U. Как проверить, работает ли читатель правильно или нет? Должен отметить, что команда прошивки работает некорректно, но не может обнаружить какую-либо карту. –

Смежные вопросы