ISO / IEC 14443 протокол состоит из 4 частей:
- ISO / IEC 14443-1: Часть 1: Физические характеристики ISO / IEC
- 14443-2: Часть 2: Радиочастотная мощность и интерфейс сигналов
- ISO / IEC 14443-3: Часть 3: Инициализация и антиколлизия
- ISO / IEC 14443-4: Часть 4: Протокол передачи ( ISO / IEC 14443 wiki )
ISO / IEC 14443-3 описывает, как выбрать («активировать») одну карту, ISO / IEC 14443-4 устанавливает протокол передачи.
Как различать ч / б DESFire и Plus :
- Возвращенный SAK равен 0x20
- Активируйте уровень 4 и выполните GET_VERSION. Если ответ успешен, тип карты будет либо Plus EV1, DESFire, DESFire Light или NTAG 4xx
- Если ответ GET_VERSION завершился неудачно, вам необходимо прочитать исторические байты с помощью считывателя IsoDep ( IsoDep : GetHistoricalBytes ). В зависимости от значений исторических байтов, тип карты будет Plus X, Plus S или Plus SE.
Активация уровня 4:
Чтобы активировать уровень 4, вам необходимо выполнить RATS ( Запросить ответ на выбор), которая имеет вид 0xE080.
Например: Отправить на карту: E080
Получено с карты: 0C75778002C1052F2F01BCD6
В качестве ответа, если вы получите 12 байт ATS (Ответить на выбор), это означает, что уровень 4 активирован успешно.
Если вы работаете со смарт-картами NXP, NXP предоставляет открытый API под названием TapLinx , который можно использовать, и он должен сделайте вашу жизнь проще.
Обновление:
0x60 - это команда GetVersion. Он должен выглядеть примерно так:
READER ---> CARD: 60
CARD <--- READER: AF 04 HT XX XX XX XX XX </p>
READER --- > КАРТА: AF
КАРТА <--- СЧИТЫВАТЕЛЬ: AF 04 XX XX XX XX XX XX </p>
СЧИТЫВАТЕЛЬ ---> КАРТА: AF
КАРТА <--- СЧИТЫВАТЕЛЬ: 00 XX XX XX XX XX XX XX XX XX XX XX XX XX XX </p>
Где 04 - идентификатор производителя, а HT - тип оборудования
Ура!