Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Какова реальная скорость чтения считывателя nfc (PN532)?

Автор вопроса: crossmaxОтветов: 1

Я потратил много времени, пытаясь улучшить скорость чтения для Desfire EV1 с помощью считывателя SPI PN532, и время, которое я получаю, слишком велико по сравнению с MFRC531. Я использую libnfc для PN532 и собственные команды NXP для MFRC531.

Может ли кто-нибудь сказать мне, сколько времени требуется для выполнения следующих команд над Desfire EV1?

Я не могу уменьшить более 92,76 миллисекунд. У меня есть файлы размером 144 байта внутри desfire, и для чтения требуется 102,63 миллисекунды, что составляет скорость 11 кбит / с. Если скорость передачи данных протокола Desfire составляет 424 кбит/с, что со мной происходит? Возможно ли, что это связано с внутренним микропроцессором, который монтирует pn532, а у rc531 его нет?

*** mifare_desfire_select_application ***
===> 0000   90 5a 00 00 03 00 00 00 00
<=== 0000   91 00
PICC replied OPERATION_OK
*** mifare_desfire_get_version ***
===> 0000   90 60 00 00 00
<=== 0000   04 01 01 01 00 18 05 91 af
*** mifare_desfire_get_version ***
===> 0000   90 af 00 00 00
<=== 0000   04 01 01 01 04 18 05 91 af
*** mifare_desfire_get_version ***
===> 0000   90 af 00 00 00
<=== 0000   04 60 75 1a 5f 28 80 ba 25 51 9e 10 51 11 91 00
PICC replied OPERATION_OK
*** mifare_desfire_select_application ***
===> 0000   90 5a 00 00 03 00 00 01 00
<=== 0000   91 00
PICC replied OPERATION_OK

Time elapsed: 0.092768s
  • Я предполагаю, что он должен читать миллисекунды вместо микросекунд. Кажется несколько оптимистичным ожидать, что скорость передачи данных будет постоянной, игнорируя все накладные расходы протокола. Также я считаю, что 92 мс достаточно быстро, если сценарий предполагает, что тег представляет человек. guidot 01.06.2018
  • Какова ваша настройка измерения для двух устройств? Какой временной интервал вы измеряете для оценки скорости передачи? Какими командами вы обмениваетесь? Michael Roland 04.06.2018
  • @guidot Ты прав, это миллисекунды, моя вина. Я вставил эти кадры обмена, чтобы можно было сравнить с другими пользователями, но в моем приложении я прочитал около 11 файлов Desfire, и это занимает примерно 1 секунду. Когда я читаю один файл (144 байта с командой 0xBD Desfire), это занимает 102 миллисекунды (около 11 кбит/с), и процесс полной проверки становится медленным и для человека. Это время значительно сократилось, когда я использовал считыватель MFRC531. crossmax 04.06.2018
  • @MichaelRoland Я измеряю время с помощью функции Linux gettimeofday (/sys/time.h). Я рассчитываю скорость передачи при чтении 144 байт (один файл dedfire) с помощью команды 0xBD Desfire. Внутренне PCD и PICC обмениваются более чем 1 кадром (пакетом), потому что файл разбит на несколько частей (отправка команды 0xAF), но я думаю, что это вполне реальная оценка скорости. crossmax 04.06.2018

spismartcardmifarelib-nfc

Ответы

Ответ 1 · рейтинг -1 · Mahmoud Hosseinipour

скорость передачи данных зависит от скорости передачи данных PCD-MCU и скорости передачи данных PCD-PICC и в основном ограничивается вторым (также известным как бесконтактный UART). Чипы PCD по умолчанию работают с низкой скоростью передачи данных (например, 106 Кбит/с). Как я знаю, для доступа к более высоким скоростям передачи требуется гораздо лучшая конструкция антенны и линии передачи.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы