hello,
NRR found that the usb communication link with PR533 is broken, if repeatedly calling the ISO/IEC14443 Type A command such as Select(AID) in each 2-3 seconds.
The following is the detailed scenario and PCSC log information of the problem. Please advise to fix the problem, thanks!
Scenario
- Tested NRR (PCD) with mobile phone (PICC)
- NFC-A mobile phone (PICC) with FWTI = 4
- Continuously sending NFC-A commands as follows, and error occurs occasionally (usually within 15 min):
| Normal Case | Error Case |
(NRR) | REQA | REQA |
(mobile) | ATQA | ATQA |
(NRR) | ANTICOLLISION | ANTICOLLISION |
(mobile) | UID CLn | UID CLn |
(NRR) | SELECT | SELECT |
(mobile) | SAK | SAK |
(NRR) | RATS | RATS |
(mobile) | ATS | ATS |
(NRR) | APDU Command (e.g., Select AID) | APDU Command (e.g., Select AID) |
(mobile) (NRR) … | S(WTX) Request S(WTX) Response S(WTX) Request S(WTX) Response … S(WTX) Request S(WTX) Response | S(WTX) Request S(WTX) Response S(WTX) Request S(WTX) Response … S(WTX) Request S(WTX) Response |
(mobile) | APDU Response | S(WTX) Request |
(NRR) | - | No response from PCD for ~1.5s S(DESELECT) after 2s timeout |
(mobile) | - | S(DESELECT) |
- Observation when error case happens:
- No response from NRR
- USB device (PR533) was found to be disconnected
- Related PCSC log:
_[36m00000155_[0m _[35mifdwrapper.c:527:IFDTransmit() Card not transacted: 612_[0m
_[36m00000134_[0m _[35mwinscard.c:1606:SCardTransmit() Card not transacted: 0x80100016_[0m
_[36m00000127_[0m winscard.c:1626:SCardTransmit() UnrefReader() count was: 3
_[36m00000148_[0m winscard_svc.c:606:ContextThread() TRANSMIT rv=0x80100016 for client 9
_[36m00000618_[0m winscard_svc.c:317:ContextThread() Received command: DISCONNECT from client 9
_[36m00000264_[0m readerfactory.c:766:RFReaderInfoById() RefReader() count was: 2
_[36m00000164_[0m winscard.c:851:SCardDisconnect() Active Contexts: 8
_[36m00000132_[0m winscard.c:852:SCardDisconnect() dwDisposition: 0
_[36m00000153_[0m winscard.c:1044:SCardDisconnect() UnrefReader() count was: 3
_[36m00000167_[0m winscard_svc.c:488:ContextThread() DISCONNECT rv=0x0 for client 9
_[36m00000728_[0m winscard_svc.c:317:ContextThread() Received command: CONNECT from client 9
_[36m00000253_[0m winscard.c:235:SCardConnect() Attempting Connect to NXP PR533 (3.70) 00 00 using protocol: 0
_[36m00000158_[0m readerfactory.c:739:RFReaderInfo() RefReader() count was: 2
_[36m00000135_[0m winscard.c:422:SCardConnect() Direct access: no protocol selected
_[36m00000154_[0m winscard.c:429:SCardConnect() hCard Identity: 56653f3b
_[36m00000156_[0m winscard.c:490:SCardConnect() UnrefReader() count was: 3
_[36m00000167_[0m winscard_svc.c:451:ContextThread() CONNECT rv=0x0 for client 9
_[36m00010802_[0m winscard_svc.c:317:ContextThread() Received command: TRANSMIT from client 9
_[36m00000303_[0m readerfactory.c:766:RFReaderInfoById() RefReader() count was: 2
_[36m00000167_[0m winscard.c:1581:SCardTransmit() Send Protocol: T=4
_[36m00000219_[0m _[34mAPDU: FF C2 00 00 07 80 03 01 00 00 81 00 00 _[0m
_[36m00000145_[0m _[34mifdhandler.c:1262:IFDHTransmitToICC() usb:1fc9/010b:libudev:0:/dev/bus/usb/002/003 (lun: 0)_[0m
_[36m00001222_[0m _[01;31mccid_usb.c:660:WriteUSB() write failed (2/3): -99 Invalid argument_[0m
_[36m00000138_[0m _[34mSW: _[0m
_[36m00000146_[0m _[35mifdwrapper.c:527:IFDTransmit() Card not transacted: 612_[0m
_[36m00000130_[0m _[35mwinscard.c:1606:SCardTransmit() Card not transacted: 0x80100016_[0m
_[36m00000129_[0m winscard.c:1626:SCardTransmit() UnrefReader() count was: 3
_[36m00000357_[0m winscard_svc.c:606:ContextThread() TRANSMIT rv=0x80100016 for client 9
_[36m00000655_[0m winscard_svc.c:317:ContextThread() Received command: CONNECT from client 9
_[36m00000430_[0m winscard.c:235:SCardConnect() Attempting Connect to NXP PR533 (3.70) 00 00 using protocol: 0
_[36m00000156_[0m readerfactory.c:739:RFReaderInfo() RefReader() count was: 2
_[36m00000137_[0m winscard.c:422:SCardConnect() Direct access: no protocol selected
_[36m00000355_[0m winscard.c:429:SCardConnect() hCard Identity: 71b586eb
_[36m00000192_[0m winscard.c:490:SCardConnect() UnrefReader() count was: 3
_[36m00000180_[0m winscard_svc.c:451:ContextThread() CONNECT rv=0x0 for client 9
_[36m00008962_[0m _[34mhotplug_libudev.c:587:HPEstablishUSBNotifications() Device removed_[0m
_[36m00005891_[0m winscard_svc.c:317:ContextThread() Received command: TRANSMIT from client 9
_[36m00000314_[0m readerfactory.c:766:RFReaderInfoById() RefReader() count was: 2
_[36m00000164_[0m winscard.c:1581:SCardTransmit() Send Protocol: T=4
_[36m00000220_[0m _[34mAPDU: FF C2 00 00 07 80 03 01 00 00 81 00 00 _[0m
_[36m00000145_[0m _[34mifdhandler.c:1262:IFDHTransmitToICC() usb:1fc9/010b:libudev:0:/dev/bus/usb/002/003 (lun: 0)_[0m
_[36m00000375_[0m _[01;31mccid_usb.c:660:WriteUSB() write failed (2/3): -4 No such device_[0m
_[36m00000126_[0m _[34mSW: _[0m
_[36m00000141_[0m _[35mifdwrapper.c:527:IFDTransmit() Card not transacted: 617_[0m
_[36m00000310_[0m _[34mutils.c:68:SendHotplugSignal() Send hotplug signal to pcscd (pid=1288)_[0m