This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
r502spy-usermanual [2017/05/11 02:15] 127.0.0.1 外部编辑 |
r502spy-usermanual [2017/05/15 08:43] (current) JavaCardOS |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== R502 SPY Reader Debug User Manual ====== | ||
- | R502 SPY reader is developed by JavaCardOS Technologies. It is based on Feitian R502 smart card reader. It supports not only contact cards compliant with ISO 7816 but also contactless cards compliant with ISO 14443,and has ISO14443 TypeA protocol debug function and Mifare command debug function. It also provides the online update feature. We will launch more protocol debug function in the future. | + | R502 SPY reader is developed by JavaCardOS Technologies. It is based on Feitian R502 smart card reader. It supports not only contact cards compliant with ISO 7816 but also contactless cards compliant with ISO 14443,and has ISO14443 TypeA protocol debug function and Mifare command debug function. It also provides the online update feature. We will launch more protocol debug function in the future. |
- | ===== Contactless command===== | + | ===== Contactless command ===== |
- | ==== 1. RF_ON==== | + | ==== 1. RF_ON ==== |
- | Open electromagnetic field. | + | Open electromagnetic field. |
- | ==== 2. RF_OFF==== | + | ==== 2. RF_OFF ==== |
- | Close electromagnetic field. | + | Close electromagnetic field. |
- | ==== 3. RF_AUTO==== | + | ==== 3. RF_AUTO ==== |
- | Set to automatic communication status. In this status, anti-collision will be completed automatically. | + | Set to automatic communication status. In this status, anti-collision will be completed automatically. |
- | ==== 4. RF_MANUAL==== | + | ==== 4. RF_MANUAL ==== |
- | Set to manual operation status. In this status, all the commands will be sent by artificial, anti-collision program will not be executed automatically. | + | Set to manual operation status. In this status, all the commands will be sent by artificial, anti-collision program will not be executed automatically. |
- | ===== ISO14443-TypeA Debug===== | + | ===== ISO14443-TypeA Debug ===== |
- | ==== 1. REQA==== | + | ==== 1. REQA ==== |
+ | |||
+ | {{ Editor/2016-08-11/57abd6ec88efc.png?300 }} | ||
+ | Command value is REQA . As the specification said, the command value is 0x26. | ||
+ | ==== 2. WUPA ==== | ||
+ | |||
- | {{ https://javacardos.com//wiki/Uploads/Editor/2016-08-11/57abd6ec88efc.png}} | + | {{ :wupa.png?300 }}\\ |
- | Command value is REQA . As the specification said, the command value is 0x26. | ||
+ | Command value is WUPA. This command value is 0x52. | ||
- | ==== 2. WUPA==== | ||
- | {{ https://javacardos.com//wiki/Uploads/Editor/2016-08-11/57abd75ff1ea5.png}} | + | ==== 3. ANTICOLLISION ==== |
- | Command value is WUPA. This command value is 0x52. | ||
+ | {{ Editor/2016-08-11/57abd786cbe41.png?300 }} | ||
- | ==== 3. ANTICOLLISION==== | ||
- | {{ https://javacardos.com//wiki/Uploads/Editor/2016-08-11/57abd786cbe41.png}} | ||
+ | * Level: Cascade level. Select cascade level 1, SEL is 0x93; Select cascade level 2, SEL is 0x95; Select cascade level 3, SEL is 0x97. | ||
+ | * Byte Count: Specify the integer part of the number of all valid data bits transmitted by the PCD (including SEL and NVB) divided by 8.Consequently, the minimum value of “Byte count” is 2 and the maximum value is 7. | ||
+ | |||
- | *Level: Cascade level. Select cascade level 1, SEL is 0x93; Select cascade level 2, SEL is 0x95; Select cascade level 3, SEL is 0x97. | + | * Bit Count: Specify the number of all valid data bits transmitted by the PCD (including SEL and NVB) modulo 8. |
- | \\ | + | |
+ | ==== 4. SELECT ==== | ||
- | *Byte Count: Specify the integer part of the number of all valid data bits transmitted by the PCD (including SEL and NVB) divided by 8.Consequently, the minimum value of “Byte count� is 2 and the maximum value is 7. | ||
- | \\ | ||
- | *Bit Count: Specify the number of all valid data bits transmitted by the PCD (including SEL and NVB) modulo 8. | + | {{ Editor/2016-08-11/57abd79f40650.png?300 }}\\ |
- | \\ | + | |
- | ==== 4. SELECT==== | ||
- | {{ https://javacardos.com//wiki/Uploads/Editor/2016-08-11/57abd79f40650.png}} | ||
+ | * Level: Cascade level. Select cascade level 1, SEL is 0x93;Select cascade level 2, SEL is 0x95;Select cascade level 3,SEL is 0x97. | ||
+ | * Byte Count: Specify the integer part of the number of all valid data bits transmitted by the PCD (including SEL and NVB) divided by 8.Consequently, the minimum value of “Byte count” is 2 and the maximum value is 7. | ||
+ | |||
+ | * Bit Count: Specify the number of all valid data bits transmitted by the PCD (including SEL and NVB) modulo 8. | ||
+ | |||
- | *Level: Cascade level. Select cascade level 1, SEL is 0x93;Select cascade level 2, SEL is 0x95;Select cascade level 3,SEL is 0x97. | + | * UID: Unique Identifier. |
- | \\ | + | |
- | *Byte Count: Specify the integer part of the number of all valid data bits transmitted by the PCD (including SEL and NVB) divided by 8.Consequently, the minimum value of “Byte count� is 2 and the maximum value is 7. | ||
- | \\ | ||
- | *Bit Count: Specify the number of all valid data bits transmitted by the PCD (including SEL and NVB) modulo 8. | ||
- | \\ | ||
- | *UID: Unique Identifier. | + | ==== 5. RATS ==== |
- | \\ | + | |
+ | {{ Editor/2016-08-11/57abd7b6d2cee.png }}\\ | ||
- | ==== 5. RATS==== | ||
- | {{ https://javacardos.com//wiki/Uploads/Editor/2016-08-11/57abd7b6d2cee.png}} | ||
+ | * Header: Start byte. | ||
+ | |||
+ | * FSDI: Defines the maximum size of a frame the PCD is able to receive. | ||
+ | |||
+ | * CID: Defines the logical number of the addressed PICC in the range from 0 to 14. The value 15 is RFU. | ||
+ | |||
- | *Header: Start byte. | + | ==== 6. HLTA ==== |
- | \\ | + | |
- | *FSDI: Defines the maximum size of a frame the PCD is able to receive. | + | {{ Editor/2016-08-11/57abd8072aa9c.png }} |
- | \\ | + | |
- | *CID: Defines the logical number of the addressed PICC in the range from 0 to 14. The value 15 is RFU. | + | Command value is HLTA. This value is 0x5000, provided by specification. |
- | \\ | + | |
+ | ==== 7. PPS ==== | ||
+ | {{ Editor/2016-08-11/57abd81a7ecc9.png }} | ||
- | ==== 6. HLTA==== | ||
- | {{ https://javacardos.com//wiki/Uploads/Editor/2016-08-11/57abd8072aa9c.png}} | ||
- | Command value is HLTA. This value is 0x5000, provided by specification. | ||
+ | * CID: Defines the logical number of the addressed PICC. | ||
+ | |||
- | ==== 7. PPS==== | + | * PPS1: Check V mark if there is PPS1 byte. |
- | {{ https://javacardos.com//wiki/Uploads/Editor/2016-08-11/57abd81a7ecc9.png}} | + | |
+ | * DSI: Bit 4 and 3 of PPS1. Code the selected divisor integer from PICC to PCD. | ||
+ | |||
+ | * DRI: Bit 2 and 1 of PPS1.Code the selected divisor integer from PCD to PICC. | ||
+ | |||
+ | ===== ISO14443-Block Transmission Debug ===== | ||
+ | ==== 1. I-BLOCK ==== | ||
+ | {{ Editor/2016-08-11/57abd82c7811a.png }} | ||
- | *CID: Defines the logical number of the addressed PICC. | ||
- | \\ | ||
- | *PPS1: Check V mark if there is PPS1 byte. | ||
- | \\ | ||
- | *DSI: Bit 4 and 3 of PPS1. Code the selected divisor integer from PICC to PCD. | ||
- | \\ | ||
- | *DRI: Bit 2 and 1 of PPS1.Code the selected divisor integer from PCD to PICC. | + | * Chaining: If it’s not the last block of chain transmission, set it to 1, and set the last block to 0.. |
- | \\ | + | |
+ | * CID: Card IDentifier. | ||
+ | |||
+ | * NAD: Node ADdress. | ||
+ | * Block Number | ||
- | ===== ISO14443-Block Transmission Debug===== | + | * INF |
- | ==== 1. I-BLOCK==== | + | * EDC |
- | {{ https://javacardos.com//wiki/Uploads/Editor/2016-08-11/57abd82c7811a.png}} | + | |
+ | ==== 2. R-BLOCK ==== | ||
+ | {{ Editor/2016-08-11/57abd8412a094.png }} | ||
+ | * Type: R-Block type, ACK or NAK. | ||
+ | * CID: Card IDentifier. | ||
+ | * Block Number | ||
+ | * INF | ||
+ | * EDC | ||
+ | ==== 3. S-BLOCK ==== | ||
+ | {{ Editor/2016-08-11/57abd8538391b.png }} | ||
+ | |||
+ | * Type: If it’s not the last block of chain transmission, set it to 1, and set the last block to 0. | ||
+ | * CID: Card Identifier. | ||
+ | * INF | ||
+ | * EDC | ||
+ | ===== Mifare Debug ===== | ||
+ | ==== 1. AUTHENTICATION ==== | ||
- | *Chaining: If it’s not the last block of chain transmission, set it to 1, and set the last block to 0. | + | {{ Editor/2016-08-11/57abd8671c32a.png }} |
- | \\ | + | |
- | *CID: Card IDentifier. | ||
- | \\ | ||
- | *NAD: Node ADdress. | ||
- | \\ | ||
- | *Block Number | ||
- | \\ | ||
- | *INF | ||
- | \\ | ||
- | *EDC | + | * Mode: If it’s not the last block of chain transmission, set it to 1, and set the last block to 0. |
- | \\ | + | * Block Number: MIFARE Block address. |
+ | * Key: Key value. | ||
+ | * UID: Card Unique Identifier. | ||
+ | ==== 2. READ BLOCK ==== | ||
+ | {{ Editor/2016-08-11/57abd880058b3.png }} | ||
- | ==== 2. R-BLOCK==== | ||
- | {{ https://javacardos.com//wiki/Uploads/Editor/2016-08-11/57abd8412a094.png}} | ||
+ | * Block Number: MIFARE Block address. | ||
+ | ==== 3. WRITE BLOCK ==== | ||
- | *Type: R-Block type, ACK or NAK. | + | {{ Editor/2016-08-11/57abd8919b51f.png }} |
- | \\ | + | |
- | *CID: Card IDentifier. | ||
- | \\ | ||
- | *Block Number | ||
- | \\ | ||
- | *INF | ||
- | \\ | ||
- | *EDC | ||
- | \\ | ||
+ | * Block Number: MIFARE Block address. | ||
+ | * Data: Data to write. The length of data is block size 16 bytes. | ||
+ | ==== 4. INCREMENT ==== | ||
+ | {{ Editor/2016-08-11/57abd8a8bdb9f.png }} | ||
- | ==== 3. S-BLOCK==== | ||
- | {{ https://javacardos.com//wiki/Uploads/Editor/2016-08-11/57abd8538391b.png}} | ||
+ | * Block Number: MIFARE Block address. | ||
+ | * Operand: Operand (4 byte signed integer). | ||
+ | ==== 5. DECREMENT ==== | ||
- | *Type: If it’s not the last block of chain transmission, set it to 1, and set the last block to 0. | + | {{ Editor/2016-08-11/57abd8ba98f1b.png }} |
- | \\ | + | |
- | *CID: Card Identifier. | ||
- | \\ | ||
- | *INF | ||
- | \\ | ||
- | *EDC | ||
- | \\ | ||
+ | * Block Number: MIFARE Block address. | ||
+ | * Operand: Operand (4 byte signed integer). | ||
+ | ==== 6. TRANSFER ==== | ||
- | ===== Mifare Debug===== | + | {{ Editor/2016-08-11/57abd8cef0b98.png }} |
- | ==== 1. AUTHENTICATION==== | + | |
- | {{ https://javacardos.com//wiki/Uploads/Editor/2016-08-11/57abd8671c32a.png}} | + | |
+ | * Block Number: MIFARE Block address. | ||
+ | ==== 7. RESTORE ==== | ||
+ | {{ Editor/2016-08-11/57abd8e47bfe9.png }} | ||
+ | * Block Number: MIFARE Block address. | ||
- | *Mode: If it’s not the last block of chain transmission, set it to 1, and set the last block to 0. | + | ===== Script operation ===== |
- | \\ | + | |
- | *Block Number: MIFARE Block address. | + | ==== 1. Load script file ==== |
- | \\ | + | |
- | *Key: Key value. | + | Select script directory and load script content. The script file extension is scd. |
- | \\ | + | |
- | *UID: Card Unique Identifier. | ||
- | \\ | ||
+ | ==== 2. Save script file ==== | ||
+ | Save the current editing script. | ||
+ | If the script file directory is selected, this script will cover the script file under the current directory. | ||
+ | If the script file directory is not selected, the window “Save” will pop up for you to save the file. | ||
- | ==== 2. READ BLOCK==== | ||
- | {{ https://javacardos.com//wiki/Uploads/Editor/2016-08-11/57abd880058b3.png}} | ||
+ | ==== 3. Script operation ==== | ||
+ | * Forward: The current selected command moves forward 1 position. | ||
+ | * Backward: The current selected command moves backward 1 position. | ||
+ | * Delete: Delete the current command. | ||
+ | ==== 4. Script execution ==== | ||
- | *Block Number: MIFARE Block address. | + | * Execute: Execute the current script from behind. |
- | \\ | + | |
+ | * Step over: From the current position, step over command.If there is no current selected item, execute the script from the first command. | ||
- | + | * Stop: Stop current operation. | |
- | ==== 3. WRITE BLOCK==== | + | |
- | {{ https://javacardos.com//wiki/Uploads/Editor/2016-08-11/57abd8919b51f.png}} | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | *Block Number: MIFARE Block address. | + | |
- | \\ | + | |
- | + | ||
- | *Data: Data to write. The length of data is block size 16 bytes. | + | |
- | \\ | + | |
- | + | ||
- | + | ||
- | + | ||
- | ==== 4. INCREMENT==== | + | |
- | {{ https://javacardos.com//wiki/Uploads/Editor/2016-08-11/57abd8a8bdb9f.png}} | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | *Block Number: MIFARE Block address. | + | |
- | \\ | + | |
- | + | ||
- | *Operand: Operand (4 byte signed integer). | + | |
- | \\ | + | |
- | + | ||
- | + | ||
- | + | ||
- | ==== 5. DECREMENT==== | + | |
- | {{ https://javacardos.com//wiki/Uploads/Editor/2016-08-11/57abd8ba98f1b.png}} | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | *Block Number: MIFARE Block address. | + | |
- | \\ | + | |
- | + | ||
- | *Operand: Operand (4 byte signed integer). | + | |
- | \\ | + | |
- | + | ||
- | + | ||
- | + | ||
- | ==== 6. TRANSFER==== | + | |
- | {{ https://javacardos.com//wiki/Uploads/Editor/2016-08-11/57abd8cef0b98.png}} | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | *Block Number: MIFARE Block address. | + | |
- | \\ | + | |
- | + | ||
- | + | ||
- | + | ||
- | ==== 7. RESTORE==== | + | |
- | {{ https://javacardos.com//wiki/Uploads/Editor/2016-08-11/57abd8e47bfe9.png}} | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | *Block Number: MIFARE Block address. | + | |
- | \\ | + | |
- | + | ||
- | + | ||
- | + | ||
- | ===== Script operation===== | + | |
- | + | ||
- | ==== 1. Load script file==== | + | |
- | + | ||
- | Select script directory and load script content. The script file extension is scd. | + | |
- | + | ||
- | + | ||
- | ==== 2. Save script file==== | + | |
- | + | ||
- | Save the current editing script. | + | |
- | If the script file directory is selected, this script will cover the script file under the current directory. | + | |
- | If the script file directory is not selected, the window “Save� will pop up for you to save the file. | + | |
- | + | ||
- | + | ||
- | ==== 3. Script operation==== | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | *Forward: The current selected command moves forward 1 position. | + | |
- | \\ | + | |
- | + | ||
- | *Backward: The current selected command moves backward 1 position. | + | |
- | \\ | + | |
- | + | ||
- | *Delete: Delete the current command. | + | |
- | \\ | + | |
- | + | ||
- | + | ||
- | + | ||
- | ==== 4. Script execution==== | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | *Execute: Execute the current script from behind. | + | |
- | \\ | + | |
- | + | ||
- | *Step over: From the current position, step over command.If there is no current selected item, execute the script from the first command. | + | |
- | \\ | + | |
- | + | ||
- | *Stop: Stop current operation. | + | |
- | \\ | + | |
- | ===== Error value check list===== | + | ===== Error value check list ===== |
Line 358: | Line 264: | ||
| No.| Value| Explanation | | No.| Value| Explanation | ||
- | | 1| 0x02| Err_Frm_Format Data frame format error | + | | 1| 0x02| Err_Frm_Format Data frame format error |
- | | 2| 0x03| Err_Frm_Para Data parameters error | + | | 2| 0x03| Err_Frm_Para Data parameters error |
- | | 3| 0x04| Err_Picc_Reset RF module failed to reset | + | | 3| 0x04| Err_Picc_Reset RF module failed to reset |
- | | 4| 0x05| Err_Picc_Interface RF module interface error | + | | 4| 0x05| Err_Picc_Interface RF module interface error |
- | | 5| 0x06| Err_Unknow_Cmd Unknown command | + | | 5| 0x06| Err_Unknow_Cmd Unknown command |
- | | 6| 0x0F| Err_Exit Force quit | + | | 6| 0x0F| Err_Exit Force quit |
- | | 7| 0x1B| Err_NoUseCard No available card | + | | 7| 0x1B| Err_NoUseCard No available card |
- | | 8| 0x40| Err_Picc_Key M1 Private key format error | + | | 8| 0x40| Err_Picc_Key M1 Private key format error |
- | | 9| 0x41| Err_Picc_Auth M1 Authentication error | + | | 9| 0x41| Err_Picc_Auth M1 Authentication error |
- | | 10| 0x42| Err_Picc_NotAuth M1 Un-authentication card | + | | 10| 0x42| Err_Picc_NotAuth M1 Un-authentication card |
- | | 11| 0x43| Err_Picc_Write Write M1 block error | + | | 11| 0x43| Err_Picc_Write Write M1 block error |
- | | 12| 0x45| Err_Picc_Val Wrong value | + | | 12| 0x45| Err_Picc_Val Wrong value |
- | | 13| 0x46| Err_Picc_Parity A Card parity check error | + | | 13| 0x46| Err_Picc_Parity A Card parity check error |
- | | 14| 0x47| Err_Picc_Code Error code | + | | 14| 0x47| Err_Picc_Code Error code |
- | | 15| 0x48| Err_Picc_Sernr A Card serial number error | + | | 15| 0x48| Err_Picc_Sernr A Card serial number error |
- | | 16| 0x49| Err_Picc_Coll Card conflict | + | | 16| 0x49| Err_Picc_Coll Card conflict |
- | | 17| 0x4A| Err_Picc_BitCnt Bit error | + | | 17| 0x4A| Err_Picc_BitCnt Bit error |
- | | 18| 0x4B| Err_Picc_BytCnt Byte error | + | | 18| 0x4B| Err_Picc_BytCnt Byte error |
- | | 19| 0x4C| Err_Picc_Para Command parameter error | + | | 19| 0x4C| Err_Picc_Para Command parameter error |
- | | 20| 0x4D| Err_Picc_OvFlw FIFO overflow | + | | 20| 0x4D| Err_Picc_OvFlw FIFO overflow |
- | | 21| 0x4E| Err_Picc_Unknowncmd Unknown command | + | | 21| 0x4E| Err_Picc_Unknowncmd Unknown command |
- | | 22| 0x4F| Err_Picc_NYImplement Failed to execute command | + | | 22| 0x4F| Err_Picc_NYImplement Failed to execute command |
- | | 23| 0x60| Err_Dev_TmOut RF module tiemout | + | | 23| 0x60| Err_Dev_TmOut RF module tiemout |
- | | 24| 0x61| Err_Picc_AccessTimeout Processor timing timeout | + | | 24| 0x61| Err_Picc_AccessTimeout Processor timing timeout |
- | | 25| 0x62| Err_Picc_Framing Card response frame format error | + | | 25| 0x62| Err_Picc_Framing Card response frame format error |
- | | 26| 0x63| Err_Picc_Crc Card response CRC error | + | | 26| 0x63| Err_Picc_Crc Card response CRC error |
- | | 27| 0x64| Mf_NoTag Card not present | + | | 27| 0x64| Mf_NoTag Card not present |
- | ===== Technical support===== | + | ===== Technical support ===== |
- | 1. Product introduction: [[https:/http://www.javacardos.com/store/java_R502_SPY.php|http://www.javacardos.com/store/java_R502_SPY.php]] | + | 1. Product introduction: [[https://www.javacardos.com/store/java_R502_SPY.php|http://www.javacardos.com/store/java_R502_SPY.php]] |
- | 2. Technology forum: [[https://javacardforum|http://www.javacardos.com/javacardforum/]] | + | 2. Technology forum: [[https://www.javacardos.com/javacardforum|http://www.javacardos.com/javacardforum/]] |
- | 3. Online manual: [[https:/http://www.javacardos.com/wiki/|http://www.javacardos.com/wiki/]] | + | 3. Online manual: [[https://www.javacardos.com/wiki/|http://www.javacardos.com/wiki/]] |