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

Я потратил много времени, пытаясь улучшить скорость чтения для 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

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


Ответы (1)


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

person Mahmoud Hosseinipour    schedule 26.06.2018