0
votes

I have spent a lot of time trying to improve reading speed for a Desfire EV1 with a PN532 SPI reader and the times I get are too high compared with a MFRC531. I'm using libnfc for PN532 and I used NXP native commands for MFRC531.

Could someone tell me how long it takes to do the following commands over a Desfire EV1?

I can't reduce more than 92.76 milisecons. I've 144 bytes files inside the desfire and for read it takes 102.63 miliseconds what is a speed of 11 kbps. If Desfire's protocol baud rate is 424kbps, what is happening me? Is it possible that it is due to the internal microprocessor that mounts the pn532 and the rc531 lacks it?

*** 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
1
I guess it should read milliseconds instead of microseconds. It seems somewhat optimistic to expect the communication baudrate as constant data capacity ignoring all protocol overhead. Also I consider 92 ms as fast enough if the scenario involves a human presenting the tag.guidot
What is your measurement setup for the two devices? What time interval do you measure to estimate the transfer speed? What commands do you exchange?Michael Roland
@guidot You're right, are miliseconds, my fault. I've paste this exchange frames to can compare with other users, but in my app I've read about 11 Desfire files and it takes 1 seconds aprox. When I read a one file (144bytes with 0xBD Desfire command) it take 102 miliseconds (about 11kbps) and the full validation process becames in slow for human too. These times were much reduced when I used an MFRC531 readercrossmax
@MichaelRoland I measure the times with the linux function gettimeofday (/sys/time.h). I'm calculating transfer speed when read 144bytes (one dedfire file) with 0xBD Desfire command. Internally PCD and PICC exchange more than 1 frame (packet) because the file is divided into several parts (sending 0xAF command), but I think it's a pretty real estimate of the speed.crossmax

1 Answers

-1
votes

data transfer speed is depended on PCD-MCU transmission baud rate and PCD-PICC transmission baud rate and is mostly limited by the second one (also known as contact-less uart). PCD chips operate in low baud rate in default(e.g. 106 K). Accessing higher baud rates need much better Antenna and transmission line network design as I know.