RFID- и NFC-считыватели
ACR122U NFC-считыватель
ACR122U — эталонный USB NFC-считыватель отрасли, устройство PC/SC, под которое писалось программное обеспечение контроля доступа и NFC целого поколения, — теперь снят с производства компанией ACS, но по-прежнему поставляется для поддержки существующих внедрений.
ACS ACR122U — это USB PC/SC-считыватель/записывающее устройство для карт и меток 13.56 МГц, для программного обеспечения, которое уже работает с PC/SC или libnfc. Он обрабатывает карты ISO 14443-4, MIFARE Classic и Ultralight, метки NFC Forum и FeliCa, но не метки 125 кГц, ISO 15693 или UHF. Компания ACS указывает модель как снятую с производства; Proud Tek по-прежнему поставляет её, а для новых разработок — две актуальные модели ACS: ACR1252U и ACR1552U.
Бесплатные образцы стандартных товаров · Коммерческое предложение в течение одного рабочего дня
Подробности о товаре
Поставка: Proud Tek поставляет ACR122U; при заказе подтвердите количество. Компания ACS указывает его как снятый с производства, поэтому для новой разработки, которая должна оставаться в производстве годами, можно начать с одного из актуальных USB NFC-считывателей ACS — ACR1252U (USB NFC Reader III) или ACR1552U (USB NFC Reader IV), которые мы также поставляем; сравнение ниже перечисляет, что следует проверить в вашем коде PC/SC перед переходом. Если ваше программное обеспечение ещё не написано и вы предпочитаете вызывать функции библиотеки, а не отправлять APDU, другой путь — µFR Classic CS с бесплатным SDK.
Что такое ACR122U
ACR122U — это настольный USB-считыватель/записывающее устройство производства компании Advanced Card Systems (ACS). Компания ACS описывает его как соответствующее PC/SC и CCID, для карт ISO 14443-4 Type A и B, MIFARE, меток ISO 18092 (NFC) и FeliCa на частоте 13.56 МГц. Внутри бесконтактный контроллер NXP PN532 находится за вторым контроллером, который предоставляет USB-интерфейс CCID, поэтому хост видит стандартный бесконтактный смарт-карт-ридер под именем «ACR122U PICC Interface». Его красно-зелёным светодиодом и зуммером можно управлять из вашего приложения.
Из этой конструкции следуют три вещи. Программное обеспечение, написанное для PC/SC, например скрипт pyscard или приложение WinSCard, работает без фирменного SDK. Карты, которые не принимают APDU ISO 7816-4, например MIFARE Classic, доступны через команды с байтом класса FF, которые считыватель преобразует в команды карты (см. таблицу команд ниже). И считыватель работает одновременно только с одной картой: его антиколлизия выбирает одну карту, поэтому предъявляйте карты по одной.
Настройка хоста в Windows, macOS и Linux
| Хост | Драйвер | Проверка работоспособности | На что обратить внимание |
| Windows | Встроенные драйверы Microsoft USB CCID и PC/SC; компания ACS заявляет, что драйвер ACS не требуется. В спецификации ACS перечислены версии Windows до Windows 10 | В диспетчере устройств отображается «ACR122U PICC Interface» | Команды считывателя, отправляемые при отсутствии карты (escape-команды, SCARD_CTL_CODE(3500)), требуют значения DWORD EscapeCommandEnable = 1 в разделе Device Parameters считывателя (VID_072F&PID_2200) |
| macOS | Открытый драйвер acsccid PC/SC от ACS, в котором перечислен ACR122U и который поддерживает OS X 10.7 и более поздние версии | Ваш инструмент PC/SC перечисляет считыватель, например readers() в pyscard | Проверьте на той версии macOS, на которой вы будете развёртывать систему |
| Linux | pcscd (pcsc-lite) с драйвером CCID libccid или acsccid от ACS | lsusb показывает 072f:2200; pcsc_scan перечисляет считыватель и карту | Ядерный драйвер pn533 NFC захватывает считыватель первым (следующий абзац); escape-команды требуют ifdDriverOptions 0x0001 в файле Info.plist библиотеки libccid |
| Android | Компания ACS указывает Android 3.1 и более поздние версии, через собственную библиотеку Android от ACS | Проверьте с помощью вашего приложения на целевом устройстве | Маршрут Android использует библиотеку ACS, а не PC/SC |
Конфликт pn533 в Linux. Ядро Linux имеет собственный драйвер NFC pn533_usb, и его таблица устройств включает USB-идентификатор ACR122U (072f:2200). Ядро подключает считыватель сразу после его подсоединения, раньше, чем pcscd: драйвер CCID в pcsc-lite затем завершается ошибкой «Can't claim interface», и libnfc также не может открыть устройство. Выгрузите модули pn533_usb и pn533, внесите в чёрный список nfc, pn533 и pn533_usb в /etc/modprobe.d (libnfc поставляет именно такой файл чёрного списка), затем повторно подключите считыватель и перезапустите pcscd. Внесение в чёрный список отключает ядерный стек NFC, поэтому делайте это только на хостах, которые не используют его для другого устройства.
Команды PC/SC и ACS, которые отправляет ваше программное обеспечение
Карты ISO 14443-4, такие как DESFire и Java Cards, принимают собственные APDU ISO 7816-4, которые ACR122U пропускает сквозь себя. Другие карты доступны через команды с байтом класса FF, а метки FeliCa и Topaz также принимают свои собственные команды. FF CA, FF 82, FF 86, FF B0 и FF D6 — это команды для карт памяти, определённые в части 3 спецификации PC/SC, поэтому код MIFARE Classic, построенный на них, можно перенести на другой считыватель, который их реализует, хотя слоты ключей и поддерживаемые карты различаются в зависимости от считывателя. Команды для блоков значений FF D7 и FF B1 принадлежат самой компании ACS, как и команды считывателя FF 00, которые ACS называет псевдо-APDU. Все они задокументированы в документе ACS «ACR122U Application Programming Interface (V2.04)». Те из них, которые чаще всего нужны интеграциям, в шестнадцатеричном виде:
| Задача | APDU | Примечания |
| Чтение UID | FF CA 00 00 00 | Возвращает UID и 90 00; 63 00 означает, что операция не удалась. FF CA 01 00 00 возвращает ATS карты ISO 14443-4 Type A. |
| Загрузка ключа MIFARE Classic | FF 82 00 [slot] 06 [6-byte key] | Два слота ключей, 00 и 01, в энергозависимой памяти: ключи теряются при отключении считывателя от компьютера. |
| Аутентификация | FF 86 00 00 05 01 00 [block] [60 or 61] [slot] | 60 использует ключ как ключ A, 61 — как ключ B. Одна аутентификация охватывает блоки этого сектора. Более старая форма FF 88 помечена как устаревшая. |
| Чтение | FF B0 00 [block] 10 | До 16 байт. На MIFARE Ultralight 16 байт — это четыре страницы, начиная с указанной страницы. |
| Запись | FF D6 00 [block] 10 [16 bytes] | 16 байт для MIFARE Classic; Lc 04 и 4 байта для одной страницы MIFARE Ultralight. |
| Блоки значений | FF D7 00 [block] 05 [00, 01 or 02] [4-byte value]; FF B1 00 [block] 04 | Сохранение, увеличение или уменьшение знакового 4-байтового значения, затем его обратное чтение. FF D7 00 [source] 02 03 [target] копирует блок значений внутри его сектора. |
| Передача команды контроллеру | FF 00 00 00 [length] [payload] | Direct Transmit, до 255 байт. Компания ACS использует её для команд FeliCa и Topaz, а также для выключения антенны (полезная нагрузка D4 32 01 00) или включения (D4 32 01 01). |
| Светодиод и зуммер | FF 00 40 [LED state] 04 [T1] [T2] [repeats] [buzzer] | T1 и T2 в единицах по 100 мс; последний байт связывает зуммер с T1, T2 или обоими. FF 00 40 50 04 05 05 03 01 мигает красным светодиодом три раза с частотой 1 Гц вместе с зуммером. |
| Версия прошивки | FF 00 48 00 00 | Возвращает версию в виде текста ASCII, например ACR122U201. |
| Звуковой сигнал при обнаружении карты | FF 00 52 00 00 | Отключает звуковой сигнал, который по умолчанию звучит при каждом обнаружении карты; FF 00 52 FF 00 включает его обратно. |
| Настройки опроса | FF 00 50 00 00 для чтения; FF 00 51 [bits] 00 для установки | Выбирает опрашиваемые типы карт (ISO 14443 A и B, Topaz, FeliCa на скоростях 212 и 424 кбит/с), интервал опроса и автоматический ATS. Значение по умолчанию — FF. |
При наличии карты на считывателе отправляйте их как обычные передачи (SCardTransmit) на ACR122U PICC Interface. Команды считывателя, такие как светодиод, версия прошивки или настройки опроса, также можно отправлять до предъявления карты, но только через escape-канал PC/SC (SCardControl с SCARD_CTL_CODE(3500) в Windows), который остаётся выключенным, пока вы не включите его, как показано в таблице настройки хоста.
Карты, которые он обрабатывает, и карты, которые он не может обрабатывать
| Карта или метка | ACR122U | Как |
| ISO 14443-4 Type A и B: MIFARE DESFire, JCOP Java Cards | Да | Собственные APDU ISO 7816-4 вашего приложения, пропускаемые сквозь считыватель. DESFire принимает собственные команды или команды в обёртке ISO; первая команда после активации задаёт формат для остальной части сессии. |
| MIFARE Classic 1K, 4K и Mini | Да | Команды PC/SC для карт памяти (загрузка ключа, аутентификация, чтение и запись блоков) и команды ACS для блоков значений |
| MIFARE Ultralight и метки NFC Forum Type 2, такие как NTAG213 в наших NFC-наклейках | Да | Компания ACS перечисляет все четыре типа меток NFC Forum. Ultralight читается командой Read Binary и записывается командой Update Binary и не требует аутентификации; проверьте функции NTAG, такие как защита паролем, на образце |
| FeliCa (NFC Forum Type 3), например наши карты FeliCa | Да | Собственные команды FeliCa или в обёртке Direct Transmit |
| Topaz и Jewel (NFC Forum Type 1) | Да | Собственные команды или в обёртке Direct Transmit |
| Двухынтерфейсные карты: один чип с контактной площадкой и антенной | Только бесконтактная сторона | У ACR122U нет контактного слота; для контактного интерфейса нужен контактный считыватель |
| Комби-карты: многочиповые карты, обычно два или более бесконтактных чипа в одном корпусе карты | Только её чип ISO 14443 или FeliCa | Чипу 125 кГц, ISO 15693 или UHF в той же карте нужен собственный считыватель |
| Метки ISO 15693 vicinity, такие как ICODE SLIX | Нет | Не входит в число типов карт, перечисленных компанией ACS, ни в число типов, которые опрашивает считыватель |
| 125 кГц и 134.2 кГц LF: EM4100, EM4305, T5577, HITAG 2, животные метки FDX-B | Нет | LF-считыватель, например Bluetooth-считыватель R901 для ушных бирок FDX-B |
| UHF EPC Gen2, 860–960 МГц | Нет | UHF-считыватель и антенна |
Библиотеки и инструменты, которые с ним работают
- pyscard (Python), API WinSCard (C, C++ и .NET в Windows) и javax.smartcardio (Java) — это уровни PC/SC: откройте ACR122U PICC Interface, отправляйте приведённые выше APDU как передачи, а команды считывателя — через управляющий вызов после включения escape-канала.
- libnfc имеет два драйвера для считывателя: acr122_pcsc, который работает через pcsc-lite, и acr122_usb, который открывает USB-устройство напрямую. В любом случае ядерные модули pn533 не должны быть загружены. Для режимов NFCIP или эмуляции карты без карты на считывателе в README библиотеки libnfc сказано разрешить команду CCID Exchange в libccid (ifdDriverOptions 0x0001). Драйвер acr122_usb сам занимает USB-интерфейс считывателя, как и драйвер CCID в pcscd, поэтому считыватель может удерживать только один из них: остановите pcscd, пока вы используете acr122_usb, или используйте acr122_pcsc.
- nfcpy перечисляет ACR122U в своей таблице оборудования, с поддержкой чтения и записи меток NFC Forum Type 2, 3 и 4 и в качестве инициатора peer-to-peer, но без эмуляции меток и без роли цели peer-to-peer. В его документации не рекомендуется покупать ACR122U для nfcpy, поскольку контроллер CCID перед PN532 препятствует полному использованию чипа; для работы с nfcpy выберите считыватель, который nfcpy поддерживает без этих ограничений.
Распространённые ошибки
- Ключи исчезают после отключения. Ключи, загруженные командой FF 82, находятся в энергозависимой памяти, поэтому загружайте их в начале каждой сессии. Повторно выполняйте аутентификацию всякий раз, когда вы переходите к блоку в другом секторе.
- Запись трейлера сектора. Последний блок каждого сектора MIFARE Classic содержит ключ A, биты доступа и ключ B, поэтому запись в этот блок заменяет ключи и биты доступа. Сначала опробуйте записи трейлера на запасной карте.
- Звуковой сигнал при каждом касании. Зуммер по умолчанию звучит при каждом обнаружении карты; FF 00 52 00 00 отключает его.
- Длинные или большие команды. В списке считывателей драйвера CCID отмечается, что ACR122U не поддерживает расширенные APDU и запросы продления времени, и фиксируются сбои в некоторых версиях прошивки. Проверьте вашу самую большую команду и самую медленную операцию с картой и запишите версию прошивки вместе с результатом.
- MIFARE Classic 4K и NDEF. Компания ACS рекомендует задержку 2 секунды при чтении сообщений NDEF с карт MIFARE Classic 4K.
Как проверить образец
- Подключите считыватель к компьютеру и сборке операционной системы, на которой вы будете развёртывать систему, и проверьте, что хост его видит: диспетчер устройств в Windows, lsusb и pcsc_scan в Linux.
- Прочитайте версию прошивки командой FF 00 48 00 00 и запишите её вместе с версией операционной системы и драйвера.
- Поместите одну карту-образец на считыватель и прочитайте ATR. Для карт памяти и меток его байты имени карты показывают тип, обнаруженный считывателем: 00 01 MIFARE Classic 1K, 00 02 Classic 4K, 00 03 Ultralight, 00 26 Mini, F0 04 Topaz, F0 11 или F0 12 FeliCa. Карты ISO 14443-4 вместо этого несут исторические байты из ATS (Type A) или ATQB (Type B).
- Прочитайте UID командой FF CA 00 00 00 и сравните его с порядком байтов и числовым форматом, которые хранит ваша система, шестнадцатеричным или десятичным, прежде чем регистрировать партию.
- Выполните каждую операцию, нужную вашему приложению, на настоящей карте. Для MIFARE Classic: загрузите ключ, выполните аутентификацию, затем прочитайте и запишите тестовый блок, а не трейлер сектора. Для DESFire или Java Card: собственная последовательность команд вашего приложения, включая его самую длинную команду и ответ.
- Отключите считыватель, подключите его снова и повторите, чтобы вы знали, что ваше программное обеспечение само перезагружает ключи и настройки.
Запросите карты-образцы именно того чипа вместе со считывателем, чтобы тест проводился на том запасе, который вы закажете; стандартные образцы бесплатны.
Характеристики, указанные компанией ACS
| Размеры и вес | 98.0 мм (Д) x 65.0 мм (Ш) x 12.8 мм (В); 70 г |
| USB | USB CCID, Full Speed (12 Мбит/с); стандартный разъём Type A на фиксированном кабеле длиной 1.0 м; питание от USB-порта, 5 В, максимум 200 мА |
| Бесконтактный интерфейс | 13.56 МГц; ISO/IEC 18092 NFC, ISO 14443 Type A и B, MIFARE, FeliCa; 106, 212 и 424 кбит/с; одна карта за раз |
| Рабочее расстояние | До 50 мм, в зависимости от типа метки; антенна 50 мм x 40 мм |
| Встроенная периферия | Один двухцветный красно-зелёный светодиод; монотонный зуммер |
| Условия эксплуатации | От 0 до 60 °C; относительная влажность до 90%, без конденсации |
| Поддержка драйверов | Windows XP – Windows 10 и Windows Server 2003–2016; Windows CE и Embedded Compact; Linux; Mac OS; Solaris; Android 3.1 и более поздние версии (с библиотекой Android от ACS) |
| Соответствие | EN 60950/IEC 60950, ISO 14443, ISO 18092, PC/SC, CCID, CE, FCC, RoHS 2, REACH, VCCI, KC, Microsoft WHQL |
ACR122U, ACR1252U или ACR1552U
Все три — USB-считыватели ACS, которые программное обеспечение PC/SC открывает как смарт-карт-ридеры CCID, и все три принимают команды для карт памяти из таблицы команд выше. ACR1552U перечисляет больше типов карт, чем два других, и эти три модели различаются командами считывателя и несколькими ограничениями. Каждая цифра в этой таблице взята из собственных документов ACS для этой модели, ссылки на которые приведены под ней.
| Функция | ACR122U | ACR1252U | ACR1552U |
| USB-подключение | CCID, Full Speed; штекер Type A на фиксированном кабеле длиной 1.0 м | CCID, Full Speed; штекер Type-A (ACR1252U-M1) или Type-C (ACR1252U-MF) на фиксированном кабеле длиной 1 м | CCID, Full Speed; артикулы ACR1552U-M1 (Type-A) и ACR1552U-MF (Type-C), фиксированный кабель длиной 1 м |
| Карты, перечисленные ACS | ISO 14443 A и B, MIFARE, FeliCa, все четыре типа меток NFC Forum (ISO/IEC 18092) | ISO 14443 A и B, MIFARE, FeliCa, все четыре типа меток NFC Forum (ISO/IEC 18092) | ISO 14443 A и B, MIFARE, FeliCa, ISO/IEC 18092 NFC и Topaz, а также ISO 15693, SRI/SRIX, Picopass, CTS и Innovatron |
| Метки ISO 15693, такие как ICODE SLIX | Не перечислены | Не перечислены | Да |
| Расширенные APDU | Не перечислены | До 64 КБ | До 64 КБ |
| Скорость; рабочее расстояние, в зависимости от метки | До 424 кбит/с; до 50 мм | До 424 кбит/с; до 50 мм | До 848 кбит/с для ISO 14443; до 70 мм |
| Слот SAM | Не перечислен | Один слот ISO 7816 Class A размера SIM для SAM, а не для полноразмерной карты | Один слот ISO 7816 Class A размера SIM для SAM, а не для полноразмерной карты |
| Светодиод; рабочая температура | Красный и зелёный; от 0 до 60 °C | Красный и зелёный; от 0 до 60 °C | Синий и зелёный; от −20 до 70 °C |
Источники: техническая спецификация ACR1252U и руководство по API от ACS, техническая спецификация ACR1552U и справочное руководство, а также руководство по API ACR122U (загрузки PDF).
Проверки кода PC/SC при переходе с ACR122U:
- Имя считывателя. Программное обеспечение, которое выбирает ACR122U по имени считывателя, придётся изменить. Каждый более новый считыватель представляет бесконтактный (PICC) считыватель и считыватель SAM, а в примерах ACS открываются «ACS ACR1252 1S CL Reader PICC 0» или «ACS ACR1552 1S CL Reader PICC 0». Выберите считыватель PICC, а не слот SAM.
- Команды карты переносятся. Get Data (FF CA), Load Keys (FF 82, два энергозависимых слота ключей), Authenticate (FF 86), Read и Update Binary (FF B0, FF D6), команды ACS для блоков значений (FF D7, FF B1) и прозрачная сессия PC/SC 2.0 Part 3 (FF C2) задокументированы для обоих более новых считывателей.
- Команды считывателя меняются. ACR1252U сохраняет четыре псевдо-APDU FF 00 от ACR122U как «команды, совместимые с ACR122U»: FF 00 40 (светодиод и зуммер), FF 00 48 (версия прошивки), FF 00 50 и FF 00 51 (настройки опроса). В остальном оба более новых считывателя принимают escape-команды, начинающиеся с E0 00, отправляемые через SCardControl по escape-каналу (следующий пункт); например, E0 00 00 18 00 возвращает версию прошивки. Звуковой сигнал при обнаружении карты, которым ACR122U управляет командой FF 00 52, — это бит 3 байта поведения, который также задаёт светодиоды, на обоих: прочитайте байт командой E0 00 00 21 00 и запишите его обратно командой E0 00 00 21 01 с очищенным битом 3, чтобы настройки светодиодов остались прежними. ACR1252U сохраняет новую настройку после выключения питания.
- Включите escape-канал для нового считывателя. На ACR122U команды считывателя могут передаваться как обычные передачи, пока карта находится на считывателе, поэтому существующее программное обеспечение могло никогда не использовать escape-канал. На более новых считывателях команды E0 00 передаются только через него. При использовании драйвера CCID от Microsoft в Windows установите EscapeCommandEnable под собственным USB-идентификатором нового считывателя, а не под идентификатором ACR122U VID_072F&PID_2200, или установите драйвер ACS, который, по словам руководства по ACR1552U от ACS, следует установить. В Linux драйвер acsccid от ACS принимает SCARD_CTL_CODE(3500), а драйвер CCID (libccid) из pcsc-lite требует ifdDriverOptions 0x0001 и принимает escape как SCARD_CTL_CODE(1); в macOS установите драйвер acsccid от ACS.
- Без команд PN532. На ACR122U Direct Transmit (FF 00 00 00) передаёт команды его контроллеру PN532, например переключение антенны. Ни один более новый считыватель не документирует команды PN532. Они используют заголовок FF 00 00 00 для команд FeliCa, а ACR1552U — также для команд ISO 14443-3. Радиополе переключается внутри прозрачной сессии PC/SC 2.0 Part 3: FF C2 00 00 02 81 00 начинает сессию, FF C2 00 00 02 83 00 выключает поле, а FF C2 00 00 02 84 00 включает, и FF C2 00 00 02 82 00 завершает сессию. Автоматический опрос остаётся выключенным до завершения сессии, а в руководстве по ACR1552U от ACS предупреждается, что неправильно использованная сессия может остановить обнаружение карт считывателем. Для экономии энергии используйте настройку автоматического опроса ACR1252U (E0 00 00 23), которая может выключать антенну, когда карта не найдена, или команду управления радиочастотным полем ACR1552U (E0 00 00 25).
- Имена карт в ATR. MIFARE Classic 1K и 4K, Ultralight и Mini сохраняют свои байты имени карты (00 01, 00 02, 00 03, 00 26). FeliCa и Topaz меняются: более новые считыватели сообщают 00 3B и 00 30, тогда как ACR122U сообщает F0 11 или F0 12 и F0 04. ACR1552U опрашивает Topaz только после его включения командой Set PICC Polling Type.
- Прошивка. Запишите версию прошивки вашего образца. Компания ACS указывает минимальную версию прошивки для некоторых команд ACR1552U, включая сквозные команды ISO 14443-3 и ISO 15693.
Что поставляет Proud Tek
Мы поставляем ACR122U, количество которого подтверждается для каждого заказа, две актуальные модели ACS, приведённые в сравнении выше, а также карты, метки и наклейки, с которыми вы их тестируете; наши считыватели перечислены в разделе RFID-считыватели. Компания ACS производит все три считывателя и является источником их драйверов, прошивок и руководств; наша часть — поставка, и мы не пишем и не поддерживаем прикладное программное обеспечение. Сообщите нам чип карты, операционную систему хоста и команды, которые отправляет ваше программное обеспечение. Партии, которые вы предпочли бы не кодировать самостоятельно, могут пройти через нашу службу кодирования RFID: мы считываем каждую закодированную карту обратно перед отправкой, каждый закодированный заказ сопровождается отчётом о данных, а для номерных карт мы добавляем UID каждой карты рядом с её напечатанным номером в файле Excel, CSV или XML, что оставляет считыватель для выборочных проверок.
Часто задаваемые вопросы
Нужен ли ACR122U драйвер?
В Windows — нет: компания ACS заявляет, что используются встроенные драйверы Microsoft USB CCID и PC/SC, а считыватель отображается как ACR122U PICC Interface. В Linux используйте pcscd с libccid или драйвер acsccid от ACS; в macOS acsccid поддерживает OS X 10.7 и более поздние версии. Чтобы отправлять команды считывателя при отсутствии карты, сначала включите escape-канал: значение реестра в Windows, ifdDriverOptions 0x0001 для libccid.
Почему Linux сообщает «Can't claim interface» для ACR122U?
Ядерный драйвер NFC pn533_usb включает USB-идентификатор ACR122U (072f:2200) и подключает считыватель раньше, чем pcscd или libnfc. Выгрузите модули pn533_usb и pn533, внесите в чёрный список nfc, pn533 и pn533_usb в /etc/modprobe.d, затем повторно подключите считыватель и перезапустите pcscd.
Какой APDU считывает UID карты на ACR122U?
FF CA 00 00 00. Считыватель возвращает UID, за которым следует 90 00, или 63 00, если операция не удалась. FF CA 01 00 00 возвращает ATS карты ISO 14443-4 Type A. Обе команды определены в документе ACS «ACR122U Application Programming Interface».
Как читать и записывать MIFARE Classic с помощью ACR122U?
Загрузите ключ командой FF 82 00 00 06 и 6-байтовым ключом, выполните аутентификацию блока командой FF 86 00 00 05 01 00, номером блока, 60 для ключа A или 61 для ключа B и слотом ключа. Затем читайте командой FF B0 00, блоком и 10 или записывайте 16 байт командой FF D6 00, блоком, 10 и данными. Два слота ключей энергозависимы, поэтому перезагружайте ключи после повторного подключения считывателя. Чтение UID никогда не означает доступ к защищённым секторам.
Какие карты ACR122U не может читать?
Всё, что выходит за рамки 13.56 МГц ISO 14443, ISO 18092 и FeliCa: метки LF 125 кГц и 134.2 кГц, метки UHF EPC Gen2 и метки vicinity ISO 15693, такие как ICODE SLIX. У него также нет контактного слота, поэтому двухынтерфейсную карту он достигает только через её бесконтактную сторону, а у многочиповой комби-карты — только чип ISO 14443 или FeliCa.
Как проверить, читает ли ACR122U мои существующие карты?
Поместите одну карту на считыватель и прочитайте ATR. Его байты имени карты показывают, что обнаружил считыватель: 00 01 MIFARE Classic 1K, 00 02 Classic 4K, 00 03 Ultralight, 00 26 Mini, F0 04 Topaz, F0 11 или F0 12 FeliCa; карта ISO 14443-4 вместо этого возвращает исторические байты. Если ничего не обнаружено, проверьте, не является ли карта картой 125 кГц, ISO 15693 или UHF, которые ACR122U читать не может. Затем FF CA 00 00 00 считывает UID без ключей, но UID — это не защищённые данные: секторы и приложения нуждаются в ключах системы. Для карты из существующей системы доступа или членства запросите у поставщика системы формат карты и ключи и проверьте авторизованный образец.
Работает ли ACR122U с pyscard, libnfc и nfcpy?
pyscard и другие привязки PC/SC работают через стандартный интерфейс считывателя. libnfc поддерживает его через pcsc-lite или напрямую по USB, после выгрузки ядерных модулей pn533. nfcpy перечисляет поддержку чтения и записи меток NFC Forum Type 2, 3 и 4, но в его документации не рекомендуется покупать ACR122U для nfcpy.
Доступен ли ACR122U по-прежнему?
Да. Proud Tek поставляет его; при заказе подтвердите количество. Компания ACS указывает модель как снятую с производства, поэтому для новой разработки, которая должна оставаться в производстве годами, мы также поставляем актуальные модели ACS ACR1252U (USB NFC Reader III) и ACR1552U (USB NFC Reader IV). Обе принимают те же команды PC/SC для карт памяти, но их команды считывателя и имена карт ATR для FeliCa и Topaz различаются, а из трёх моделей только ACR1552U перечисляет метки ISO 15693. Если вы предпочитаете строить на SDK производителя, спросите, какую актуальную модель µFR мы можем поставить. Проверьте любой считыватель с вашими собственными картами и программным обеспечением.