Advanced Card Systems ACR122L Contactless Smart Card Reader and Writer User Manual
Advanced Card Systems Limited Contactless Smart Card Reader and Writer Users Manual
Users Manual
Design Specification ACR122L-ACS Advanced Card Systems Ltd. Website: www.acs.com.hk Email: info@acs.com.hk ACR122L-ACS Revision History Version Date Prepared By V0.01 16.Oct.2009 Macross Ng, Kit Au V0.02 23.Nov.2009 V0.03 19.May.2010 Macross Ng Update the product photo V0.04 20.Sept.2010 Macross Ng Add the Technical Specification ACR122L-ACS Design Specification Version 0.03 19/05/2010 Description Initial Release Updated LCD command Page 2 of 50 ACR122L-ACS Table of Contents 1.0. Introduction ............................................................................................................. 4 2.0. Feature ..................................................................................................................... 5 3.0. Hardware Interfaces ................................................................................................ 6 3.1. Serial Interface .............................................................................................................................6 3.2. LEDs.............................................................................................................................................6 3.3. Buzzer ..........................................................................................................................................6 3.4. SAM Interface...............................................................................................................................6 3.5. LCD ..............................................................................................................................................6 3.6. Built-in Antenna ............................................................................................................................6 4.0. Implementation........................................................................................................ 7 4.1. The ACR122L is built based on the AC1038-2, AC1038s and PN5321 chips.............................7 4.2. Communication between the Host and the Contactless interface, SAM and Peripherals. ..........8 5.0. Serial Interface (CCID-liked FRAME Format) ......................................................... 9 5.1. Direct Transmit ...........................................................................................................................18 5.2. Pseudo APDU for LEDs and Buzzer Control .............................................................................24 5.3. Pseudo APDU for LEDs Control Enable ....................................................................................30 5.4. Pseudo APDU for LEDs Control ................................................................................................30 5.5. Pseduo APDU for Buzzer Control ..............................................................................................31 5.6. Pseudo APDU for Clear LCD .....................................................................................................32 5.7. Pseudo APDU for LCD Display (ASCII Mode) ...........................................................................33 5.8. Pseudo APDU for LCD Display (GB Mode) ...............................................................................35 5.9. Pseudo APDU for LCD Display (Graphic Mode)........................................................................36 5.10. Pseudo APDU for Scrolling LCD Current Display ................................................................37 5.11. Pseudo APDU for Pause LCD Scrolling ...............................................................................38 5.12. Pseudo APDU for Stop LCD Scrolling ..................................................................................39 5.13. Pseudo APDU for LCD Contrast Control ..............................................................................39 5.14. Pseudo APDU for LCD Backlight Control .............................................................................40 5.15. Pseudo APDU for changing the communication speed........................................................41 5.16. Get the Firmware Version of the reader ...............................................................................47 5.17. Basic Program Flow for FeliCa Applications ........................................................................48 6.0. Mechanical Design ................................................................................................ 49 7.0. TECHNICAL SPECIFICATION ............................................................................... 50 ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 3 of 50 ACR122L-ACS 1.0. Introduction The ACR122L is a module for accessing both contact and contactless cards with LCD Display. It can support 3 SAMs access and ISO14443 Part 4 Type A & B, MIFARE, FeliCa and NFC tags. ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 4 of 50 ACR122L-ACS 2.0. Feature • Serial Interface. Baud Rate = 9600 bps (default) or 115200 bps, 8-N-1. Initial Baud Rate is determined by the existence of R12. A command is also provided for changing the baud rate while the reader is running. • CCID-liked Frame Format. • Support ISO14443 Part 4 Type A & B, MIFARE, FeliCa and NFC tags. • Built-in Antenna for contactless tags access. • Support ISO7816 T=0 cards. (SAM Socket) • 3 X SAM Interface • 4 LEDs. • Buzzer. ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 5 of 50 ACR122L-ACS 3.0. Hardware Interfaces 3.1. Serial Interface The ACR122L is connected to a Host through the RS232C Serial Interface at 9600 bps and 115200 bps. 8-N-1 Pin Signal Function VCC +5V power supply for the reader (Max 200mA, Normal 100mA) TXD The signal from the reader to the host. RXD The signal from the host to the reader. GND Reference voltage level for power supply 3.2. LEDs • 4 x User-controllable single color LEDs • Can select control by firmware or by User • From Left to right, the color of the LED is: Green, Blue, Yellow and Red 3.3. Buzzer • User-controllable Mono-Tone buzzer. • The default Buzzer State is OFF 3.4. SAM Interface • 3 x SAMs socket is provided. • Support ISO7816 Parts 1-3 T=0 cards 3.5. LCD • User-controllable LCD • User-controllable Yellow-Green Backlight • 2 Line x 16 Character, 5 x 8 dot matrix, STN Yellow Green LCD Type • 6 O’clock view angle 3.6. Built-in Antenna • 3 turns symmetric loop antenna. Center tapped. • The estimated size = 46mm x 64mm. • The loop inductance should be around ~ 1.6uH to 2.5uH • Operating Distance for different Tags ~ up to 50mm (depend on the Tag) • Only one Tag can be accessed at any one time. ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 6 of 50 ACR122L-ACS 4.0. Implementation 4.1. The ACR122L is built based on the AC1038-2, AC1038s and PN5321 chips. Built-In PN5321 AC1038-2 Antenna NFC Interface Chip Controller Contactless Interface Carrier = 13.56MHz Serial Interface 115200 KbpsContactless Tag Serial Interface 9600 bps SAM 1 - 4 x LEDs - Buzzer - LCD - I/O Ports Main Controller Host Controller AC1038 SAM 2 Controller Second SAM Controller AC1038 SAM 3 Controller Third SAM Controller Figure 1.ACR122L System Block Diagram ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 7 of 50 ACR122L-ACS 4.2. Communication between the Host and the Contactless interface, SAM and Peripherals. The Contactless interface & Peripherals are accessed through the use of Pseduo-APDUs. The SAM interface are accessed through the use of standard APDUs. Host Serial Interface (CCID-liked protocol) PCSC Layer ACR122L ISO 7816 Parts 1-3 Peripherals Contactless Interface T=0 SAM Interfaces SAM 1 SAM 2 SAM 3 RF Interface Contactless Tag (Built-In Antenna) ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 8 of 50 ACR122L-ACS 5.0. Serial Interface (CCID-liked FRAME Format) Communication setting: 9600 bps, 8-N-1 The communication protocol between the Host and ACR122L is very similar to the CCID protocol. ACR122L Command Frame Format STX Bulk-OUT Header APDU Command Checksum ETX 1 Byte 1 Byte Checksun ETX 1 Byte 1 Byte Or Parameters 1 Byte 10 Bytes M Bytes (If applicable) ACR122L Status Frame Format STX Status Checksun ETX 1 Byte 1 Byte 1 Byte 1 Byte ACR122L Response Frame Format STX Bulk-IN Header APDU Response Or abData 1 Byte 10 Bytes N Bytes (If applicable) Checksum = XOR {Bulk-OUT Header, APDU Command or Parameters} Checksum = XOR {Bulk-IN Header, APDU Response or abData} For control SAM Socket 1, the STX must be equal to 0x02 and ETX must be equal to 0x03. For control SAM Socket 2, the STX must be equal to 0x12 and ETX must be equal to 0x13. For control SAM Socket 3, the STX must be equal to 0x22 and ETX must be equal to 0x23. For control access contactless interface, peripherals (i.e. LEDs, LCD and Buzzer), the STX must be equal to 0x02 and ETX must be equal to 0x03, which is the same with control SAM Socket1. In general, we would make use of three types of Bulk-OUT Header. • HOST_to_RDR_IccPowerOn: To activate the SAM interface. The ATR of the SAM will be returned if available. • HOST_to_RDR_IccPowerOff: To deactivate the SAM interface. • HOST_to_RDR_XfrBlock: To exchange APDUs between the Host and ACR122L. #The SAM1 interface must be activated in order to use the Contactless interface and Peripherals. In short, all the APDUs are exchanged through the SAM1 Interface. Similarly, two types of Bulk-IN Header are used. • RDR_to_HOST_DataBlock: In response to the “HOST_to_RDR_IccPowerOn” and “HOST_to_RDR_XfrBlock” Frames. • RDR_to_HOST_SlotStatus: In response to the “HOST_to_RDR_IccPowerOff” Frame. ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 9 of 50 ACR122L-ACS RDR = ACR122L; HOST = Host Controller. HOST_to_RDR = Host Controller -> ACR122L RDR_to_HOST = ACR122L -> Host Controller Protocol Flow Examples(Use SAM Interface 1 as Example) 1) Activate a SAM HOST 1. HOST sends a frame 2. RDR sends back a positive status frame immediately RDR 02 62 00 00 [Checksum] 03 00 00 00 01 01 00 00 02 00 00 03 (positive status frame) .. After some processing delay... 3. RDR sends back the response of the command 02 80 0D 00 00 00 00 01 00 00 00 3B 2A 00 80 65 24 B0 00 02 00 82 90 00 [Checksum] 03 2) Activate a SAM (Incorrect Checksum, HOST) HOST 1. HOST sends corrupted frame 2. RDR sends back a negative status frame immediately 3. HOST sends the frame again. 4. RDR sends back a positive status frame immediately RDR 02 62 00 00 00 00 00 [Incorrect Checksum] 03 01 01 00 00 02 FF FF 03 (negative status frame) 02 62 00 00 [Checksum] 03 00 00 00 01 01 00 00 02 00 00 03 (positive status frame) .. After some processing delay... 5. RDR sends back the response of the command ACR122L-ACS Design Specification Version 0.03 19/05/2010 02 80 0D 00 00 00 00 01 00 00 00 3B 2A 00 80 65 24 B0 00 02 00 82 90 00 [Checksum] 03 Page 10 of 50 ACR122L-ACS 3) Activate a SAM (Incorrect Checksum, RDR) HOST 1. HOST sends a frame 2. RDR sends back a positive status frame immediately RDR 02 62 00 00 [Checksum] 03 00 00 00 01 01 00 00 02 00 00 03 (positive status frame) .. After some processing delay... 3. RDR sends back the response (corrupted) of the command 4. HOST sends a frame to get response again. 02 80 0D 00 00 00 00 01 00 00 00 3B 2A 00 80 65 24 B0 00 02 00 82 90 00 [Incorrect Checksum] 03 NAK the 02 00 00 00 00 00 00 00 00 00 00 00 03 (NAK) 5. RDR sends back the response of the command 02 80 0D 00 00 00 00 01 00 00 00 3B 2A 00 80 65 24 B0 00 02 00 82 90 00 [Checksum] 03 Remarks: If the frame sent by the HOST is correctly received by the RDR, a positive status frame = {02 00 00 03} will be sent to the HOST immediately to inform the HOST the frame is correctly received. The HOST has to wait for the response of the command. The RDR will not receive any more frames while the command is being processed. In case of errors, a negative status frame will be sent to the HOST to indicate the frame is either corrupted or wrong formatted. - CheckSum Error Frame = {02 FF FF 03} - Length Error Frame = {02 FE FE 03}. The length “dDwLength” is greater than 0x0105 bytes. - ETX Error Frame = {02 FD FD 03}. The last byte is not equal to ETX “0x03”. - TimeOut Error Frame = {02 FC FC 03}. Not Complete Package Received. The NAK Frame is only used by the HOST to get the last response. {02 00 00 00 00 00 00 00 00 00 00 00 03} // 11 zeros ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 11 of 50 ACR122L-ACS To activate the SAM Interface ACR122L Command Frame Format STX Bulk-OUT Header Parameters Checksum ETX 0 Byte 1 Byte 1 Byte (HOST_to_RDR_IccPowerOn) 1 Byte 10 Bytes For SAM Interface 1, STX = 0x02 and ETX = 0x03 For SAM Interface 2, STX = 0x12 and ETX = 0x13 For SAM Interface 3, STX = 0x22 and ETX = 0x23 HOST_to_RDR_IccPowerOn Format Offset Field Size Value Description bMessageType 62h dDwLength 00000000h Message-specific data length bSlot 00-FFh Identifies the slot number command. Default=00h for bSeq 00-FFh Sequence number for command bPowerSelect 00h, 01h, Voltage that is applied to the ICC 02h, or 03h 00h – Automatic Voltage Selection this 01h – 5.0 volts 02h – 3.0 volts 03h – 1.8 volts abRFU Reserved for Future Use ACR122L Response Frame Format STX Bulk-IN Header abData Checksum ETX N Bytes 1 Byte 1 Byte (RDR_to_HOST_DataBlock) 1 Byte 10 Bytes (ATR) For SAM Interface 1, STX = 0x02 and ETX = 0x03 For SAM Interface 2, STX = 0x12 and ETX = 0x13 For SAM Interface 3, STX = 0x22 and ETX = 0x23 ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 12 of 50 ACR122L-ACS RDR_to_HOST_DataBlock Format Offset Field Size Value Description bMessageType 80h Indicates that a data block is being sent from the ACR122L dwLength Size of abData field. (N Bytes) bSlot Same as BulkOUT Identifies the command slot number for this bSeq Same as BulkOUT Sequence number for corresponding command bStatus bError bChainParameter Example1. To activate the SAM Interface 1 slot 0 (default), sequence number = 1, 5V card. HOST -> 02 62 00 00 00 00 00 01 01 00 00 [Checksum] 03 RDR -> 02 00 00 03 RDR -> 02 80 0D 00 00 00 00 01 00 00 00 3B 2A 00 80 65 24 B0 00 02 00 82 90 00 [Checksum] 03 The ATR = 3B 2A 00 80 65 24 B0 00 02 00 82; SW1 SW2 = 90 00 Example2. To activate the SAM Interface 2 slot 0 (default), sequence number = 1, 5V card. HOST -> 12 62 00 00 00 00 00 01 01 00 00 [Checksum] 13 RDR -> 12 00 00 13 RDR -> 12 80 0D 00 00 00 00 01 00 00 00 3B 2A 00 80 65 24 B0 00 02 00 82 90 00 [Checksum] 13 The ATR = 3B 2A 00 80 65 24 B0 00 02 00 82; SW1 SW2 = 90 00 Example3. To activate the SAM Interface 3 slot 0 (default), sequence number = 1, 5V card. HOST -> 22 62 00 00 00 00 00 01 01 00 00 [Checksum] 23 RDR -> 22 00 00 23 RDR -> 22 80 0D 00 00 00 00 01 00 00 00 3B 2A 00 80 65 24 B0 00 02 00 82 90 00 [Checksum] 23 The ATR = 3B 2A 00 80 65 24 B0 00 02 00 82; SW1 SW2 = 90 00 ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 13 of 50 ACR122L-ACS To deactivate the SAM Interface ACR122L Command Frame Format STX Bulk-OUT Header Parameters Checksum ETX 0 Byte 1 Byte 1 Byte (HOST_to_RDR_IccPowerOff) 1 Byte 10 Bytes For SAM Interface 1, STX = 0x02 and ETX = 0x03 For SAM Interface 2, STX = 0x12 and ETX = 0x13 For SAM Interface 3, STX = 0x22 and ETX = 0x23 HOST_to_RDR_IccPowerOff Format Offset Field Size Value Description bMessageType 63h dDwLength 00000000h Message-specific data length bSlot 00-FFh Identifies the slot number command. Default=00h for bSeq 00-FFh Sequence number for command abRFU this Reserved for Future Use ACR122L Response Frame Format STX Bulk-IN Header abData Checksum ETX 0 Byte 1 Byte 1 Byte (RDR_to_HOST_SlotStatus) 1 Byte 10 Bytes For SAM Interface 1, STX = 0x02 and ETX = 0x03 For SAM Interface 2, STX = 0x12 and ETX = 0x13 For SAM Interface 3, STX = 0x22 and ETX = 0x23 RDR_to_HOST_DataBlock Format Offset Field Size Value Description bMessageType 81h Indicates that a data block is being sent from the ACR122L dwLength Size of abData field. (0 Bytes) bSlot Same as BulkOUT Identifies the command bSeq Same as BulkOUT Sequence number for corresponding command bStatus bError bClockStatus ACR122L-ACS Design Specification Version 0.03 19/05/2010 slot number for this Page 14 of 50 ACR122L-ACS Example1. To deactivate the SAM Interface 1 slot 0 (default), sequence number = 2. HOST -> 02 63 00 00 00 00 00 02 00 00 00 [Checksum] 03 RDR -> 02 00 00 03 RDR -> 02 81 00 00 00 00 00 02 00 00 00 [Checksum] 03 Example2. To deactivate the SAM Interface 2 slot 0 (default), sequence number = 2. HOST -> 12 63 00 00 00 00 00 02 00 00 00 [Checksum] 13 RDR -> 12 00 00 13 RDR -> 12 81 00 00 00 00 00 02 00 00 00 [Checksum] 13 Example3. To deactivate the SAM Interface 3 slot 0 (default), sequence number = 2. HOST -> 22 63 00 00 00 00 00 02 00 00 00 [Checksum] 23 RDR -> 22 00 00 23 RDR -> 22 81 00 00 00 00 00 02 00 00 00 [Checksum] 23 To do data-exchange through the SAM Interface ACR122L Command Frame Format STX Bulk-OUT Header Parameters Checksum ETX M Byte 1 Byte 1 Byte (HOST_to_RDR_XfrBlock) 1 Byte 10 Bytes For SAM Interface 1, STX = 0x02 and ETX = 0x03 For SAM Interface 2, STX = 0x12 and ETX = 0x13 For SAM Interface 3, STX = 0x22 and ETX = 0x23 HOST_to_RDR_XfrBlock Format Offset Field Size Value Description bMessageType 6Fh dDwLength Message-specific data length bSlot 00-FFh Identifies the slot number command. Default=00h bSeq 00-FFh Sequence number for command bBWI 00-FFh Used to extend the Block Waiting Timeout. wLevelParameter 0000h ACR122L-ACS Design Specification Version 0.03 19/05/2010 for this Page 15 of 50 ACR122L-ACS ACR122L Response Frame Format STX Bulk-IN Header abData Checksum ETX N Bytes 1 Byte 1 Byte (RDR_to_HOST_DataBlock) 1 Byte 10 Bytes (ATR) For SAM Interface 1, STX = 0x02 and ETX = 0x03 For SAM Interface 2, STX = 0x12 and ETX = 0x13 For SAM Interface 3, STX = 0x22 and ETX = 0x23 RDR_to_HOST_DataBlock Format Offset Field Size Value Description bMessageType 80h Indicates that a data block is being sent from the ACR122L dwLength Size of abData field. (N Bytes) bSlot Same as BulkOUT Identifies the command slot number for this bSeq Same as BulkOUT Sequence number for corresponding command bStatus bError bChainParameter Example1. To send an APDU “80 84 00 00 08” to the SAM Interface 1 slot 0 (default), sequence number = 3. HOST -> 02 6F 05 00 00 00 00 03 00 00 00 80 84 00 00 08 [Checksum] 03 RDR -> 02 00 00 03 RDR -> 02 80 0A 00 00 00 00 03 00 00 00 E3 51 B0 FC 88 AA 2D 18 90 00 [Checksum] 03 Response = E3 51 B0 FC 88 AA 2D 18; SW1 SW2 = 90 00 Example2. To send an APDU “80 84 00 00 08” to the SAM Interface 2 slot 0 (default), sequence number = 3. HOST -> 12 6F 05 00 00 00 00 03 00 00 00 80 84 00 00 08 [Checksum] 13 RDR -> 12 00 00 13 RDR -> 12 80 0A 00 00 00 00 03 00 00 00 E3 51 B0 FC 88 AA 2D 18 90 00 [Checksum] 13 Response = E3 51 B0 FC 88 AA 2D 18; SW1 SW2 = 90 00 ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 16 of 50 ACR122L-ACS Example3. To send an APDU “80 84 00 00 08” to the SAM Interface 3 slot 0 (default), sequence number = 3. HOST -> 22 6F 05 00 00 00 00 03 00 00 00 80 84 00 00 08 [Checksum] 23 RDR -> 22 00 00 23 RDR -> 22 80 0A 00 00 00 00 03 00 00 00 E3 51 B0 FC 88 AA 2D 18 90 00 [Checksum] 23 Response = E3 51 B0 FC 88 AA 2D 18; SW1 SW2 = 90 00 ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 17 of 50 ACR122L-ACS Pseudo APDUs for Contactless Interface and Peripherals Control ACR122L comes with two primitive commands for this purpose. **Remark: For all the Pseduo APDUs below (except Section 5.9 “GET the Firmware Version of the Reader” and “5.8 Pseduo APDU for changing the communication speed”), STX MUST EQUAL to 0x02 and ETX MUST EQUAL to 0x03 5.1. Direct Transmit To send a Pseudo APDU (PN532 and TAG Commands), and the Response Data will be returned. Table 1.0A: Direct Transmit Command Format (Length of the PN532_TAG Command + 5 Bytes) Command Class INS P1 P2 Lc Data In Direct Transmit 0xFF 0x00 0x00 0x00 Number of Bytes to send PN532_TAG Command Lc: Number of Bytes to Send (1 Byte) Maximum 255 bytes Data In: PN532_TAG Command The data to be sent to the PN532 and Tag. Table 1.0B: Direct Transmit Response Format (Response Length + 2 Bytes) Response Result Data Out PN532_TAG Response SW1 SW2 Data Out: PN532_TAG Response PN532_TAG Response returned by the reader. Data Out: SW1 SW2 Status Code returned by the reader. Table 1.0C: Status Code Results SW1 SW2 Meaning Success 90 00 The operation is completed successfully. Error 63 00 The operation is failed. Time Out Error 63 01 The PN532 does not response. Checksum Error 63 27 The checksum of the Response is wrong. Parameter Error 63 7F The PN532_TAG Command is wrong. ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 18 of 50 ACR122L-ACS Example 1. How to access MIFARE Classic Tags? Typical sequence may be: Scanning the tags in the field (Polling) Authentication Read / Write the memory of the tag Halt the tag (optional) Step 1) Polling for the MIFARE 1K/4K Tags, 106 kbps << 02 6F 09 00 00 00 00 01 00 00 00 FF 00 00 00 04 D4 4A 01 00 [Checksum] 03 >> 02 00 00 03 >> 02 80 0E 00 00 00 00 01 01 00 00 D5 4B 01 01 00 02 18 04 F6 8E 2A 99 90 00 [Checksum] 03 In which, Number of Tag found = [01]; Target number = 01 SENS_RES = 00 02; SEL_RES = 18, Length of the UID = 4; UID = F6 8E 2A 99 Operation Finished = 90 00 Tip: The tag type can be determined by recognizing the SEL_RES. SEL_RES of some common tag types. 00 = MIFARE Ultralight 08 = MIFARE 1K 09 = MIFARE MINI 18 = MIFARE 4K 20 = MIFARE DESFIRE 28 = JCOP30 98 = Gemplus MPCOS Step 2) KEY A Authentication, Block 04, KEY = FF FF FF FF FF FF, UID = F6 8E 2A 99 << 02 6F 14 00 00 00 00 00 01 00 00 00 FF 00 00 00 0F D4 40 01 60 04 FF FF FF FF FF FF F6 8E 2A 99 [Checksum] 03 >> 02 00 00 03 >> 02 80 05 00 00 00 00 01 01 00 00 D5 41 [00] 90 00 [Checksum] 03 ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 19 of 50 ACR122L-ACS Tip: If the authentication failed, the error code [XX] will be returned. [00] = Valid, other = Error. Please refer to Error Codes Table for more details. Tip: For KEY B Authentication << 02 6F 14 00 00 00 00 00 01 00 00 00 FF 00 00 00 0F D4 40 01 61 04 FF FF FF FF FF FF F6 8E 2A 99 [Checksum] 03 Step 3) Read the content of Block 04 << 02 6F 0A 00 00 00 00 01 00 00 00 FF 00 00 00 05 D4 40 01 30 04 [Checksum] 03 >> 02 00 00 03 >> 02 80 05 00 00 00 00 01 01 00 00 D5 41 [00] 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 90 00 [Checksum] 03 In which, Block Data = 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 Step 4) Update the content of Block 04 << 02 6F 1A 00 00 00 00 01 00 00 00 FF 00 00 00 15 D4 40 01 A0 04 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 [Checksum] 03 >> 02 00 00 03 >> 02 6F 0A 00 00 00 00 01 00 00 00 FF 00 00 00 05 D5 41 [00] 90 00 [Checksum] 03 Step 5) Halt the tag (optional) << 02 6F 08 00 00 00 00 01 00 00 00 FF 00 00 00 03 D4 44 01 [Checksum] 03 >> 02 00 00 03 >> 02 80 05 00 00 00 00 01 01 00 00 D5 45 [00] 90 00 [Checksum] 03 ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 20 of 50 ACR122L-ACS MIFARE 1K Memory Map. Sectors Data Blocks Trailer Block (Total 16 sectors. Each sector consists of 4 consecutive blocks) (3 blocks, 16 bytes per block) (1 block, 16 bytes) Sector 0 0x00 ~ 0x02 0x03 Sector 1 0x04 ~ 0x06 0x07 Sector 14 0x38 ~ 0x0A 0x3B Sector 15 0x3C ~ 0x3E 0x3F Sectors Data Blocks Trailer Block (Total 32 sectors. Each sector consists of 4 consecutive blocks) (3 blocks, 16 bytes per block) (1 block, 16 bytes) Sector 0 0x00 ~ 0x02 0x03 Sector 1 0x04 ~ 0x06 0x07 Sector 30 0x78 ~ 0x7A 0x7B Sector 31 0x7C ~ 0x7E 0x7F Sectors Data Blocks Trailer Block (Total 8 sectors. Each sector consists of 16 consecutive blocks) (15 blocks, 16 bytes per block) (1 block, 16 bytes) Sector 32 0x80 ~ 0x8E 0x8F Sector 33 0x90 ~ 0x9E 0x9F Sector 38 0xE0 ~ 0xEE 0xEF Sector 39 0xF0 ~ 0xFE 0xFF 1K Bytes .. .. MIFARE 4K Memory Map. 2K Bytes .. .. 2K Bytes .. .. Tip: Once the authentication is done, all the data blocks of the same sector are free to access. For example, once the data block 0x04 is successfully authenticated (Sector 1), the data blocks 0x04 ~ 0x07 are free to access. ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 21 of 50 ACR122L-ACS Example 2. How to handle Value Blocks of MIFARE 1K/4K Tag? The value blocks are used for performing electronic purse functions. E.g. Increment, Decrement, Restore and Transfer .. etc. The value blocks have a fixed data format which permits error detection and correction and a backup management. Byte Number 10 11 12 ______ Description Value Value 13 14 ___ Value Adr Adr 15 ___ Adr Adr Value: A signed 4-Byte value. The lowest significant byte off a value is stored in the lowest address byte. Negative values are stored in standard 2’s complement format. Adr: 1-Byte address, which can be used to save the storage address of a block. (optional) e.g. Value 100 (decimal) = 64 (Hex), assume Block = 0x05 The formatted value block = 64 00 00 00 9B FF FF FF 64 00 00 00 05 FA 05 FA Step 1) Update the content of Block 05 with a value 100 (dec) << 02 6F 1A 00 00 00 00 01 00 00 00 FF 00 00 00 15 D4 40 01 A0 05 64 00 00 00 9B FF FF FF 64 00 00 00 05 FA 05 FA [Checksum] 03 >> 02 6F 0A 00 00 00 00 01 00 00 00 FF 00 00 00 05 D5 41 [00] 90 00 [Checksum] 03 Step 2) Increment the value of Block 05 by 1 (dec) << 02 6F 0E 00 00 00 00 01 00 00 00 FF 00 00 00 09 D4 40 01 C1 05 01 00 00 00 [Checksum] 03 >> 02 6F 0A 00 00 00 00 01 00 00 00 FF 00 00 00 05 D5 41 [00] 90 00 [Checksum] 03 Tip: Decrement the value of Block 05 by 1 (dec) << 02 6F 0E 00 00 00 00 01 00 00 00 FF 00 00 00 09 D4 40 01 C0 05 01 00 00 00 [Checksum] 03 Step 3) Transfer the prior calculated value of Block 05 (dec) << 02 6F 0A 00 00 00 00 01 00 00 00 FF 00 00 00 05 D4 40 01 B0 05 [Checksum] 03 ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 22 of 50 ACR122L-ACS >> 02 6F 0A 00 00 00 00 01 00 00 00 FF 00 00 00 05 D5 41 [00] 90 00 [Checksum] 03 Tip: Restore the value of Block 05 (cancel the prior Increment or Decrement operation) << 02 6F 0A 00 00 00 00 01 00 00 00 FF 00 00 00 05 D4 40 01 C2 05 [Checksum] 03 Step 4) Read the content of Block 05 << 02 6F 0A 00 00 00 00 01 00 00 00 FF 00 00 00 05 D4 40 01 30 05 [Checksum] 03 >> 02 6F 1A 00 00 00 00 01 00 00 00 FF 00 00 00 05 D5 41 [00] 65 00 00 00 9A FF FF FF 65 00 00 00 05 FA 05 FA 90 00 [Checksum] 03 In which, the value = 101 (dec) Step 5) Copy the value of Block 05 to Block 06 (dec) << 02 6F 0A 00 00 00 00 01 00 00 00 FF 00 00 00 05 D4 40 01 C2 05 [Checksum] 03 >> 02 6F 0A 00 00 00 00 01 00 00 00 FF 00 00 00 05 D5 41 [00] 90 00 [Checksum] 03 << 02 6F 0A 00 00 00 00 01 00 00 00 FF 00 00 00 05 D4 40 01 B0 06 [Checksum] 03 >> 02 6F 0A 00 00 00 00 01 00 00 00 FF 00 00 00 05 D5 41 [00] 90 00 [Checksum] 03 Step 6) Read the content of Block 06 << 02 6F 0A 00 00 00 00 01 00 00 00 FF 00 00 00 05 D4 40 01 30 06 [Checksum] 03 >> 02 6F 1A 00 00 00 00 01 00 00 00 FF 00 00 00 15 D5 41 [00] 65 00 00 00 9A FF FF FF 65 00 00 00 05 FA 05 FA 90 00 [Checksum] 03 In which, the value = 101 (dec). The Adr “05 FA 05 FA” tells us the value is copied from Block 05. ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 23 of 50 ACR122L-ACS 5.2. Pseudo APDU for LEDs and Buzzer Control This APDU is used to control the states of the LED_0, LED_1 and Buzzer. Table 2.0A: LED_0, LED_1 and Buzzer Control Command Format (9 Bytes) Command Class INS P1 P2 Lc Data In (4 Bytes) LEDs and Buzzer 0xFF 0x00 0x40 LED 0x04 Blinking Duration Control State Control LED Control P2: LED State Control Table 2.0B: LED_0, LED_1 and Buzzer Control Format (1 Byte) CMD Item Description Bit 0 Final LED_1 State 1 = On; 0 = Off Bit 1 Final LED_0 State 1 = On; 0 = Off Bit 2 LED_1 State Mask 1 = Update the State 0 = No change Bit 3 LED_0 State Mask 1 = Update the State 0 = No change Bit 4 Initial LED_1 Blinking State 1 = On; 0 = Off Bit 5 Initial LED_0 Blinking State 1 = On; 0 = Off Bit 6 LED_1 Blinking Mask 1 = Blink 0 = Not Blink Bit 7 LED_0 Blinking Mask 1 = Blink 0 = Not Blink Data In: Blinking Duration Control Table 2.0C: LED_0, LED_1 Blinking Duration Control Format (4 Bytes) Byte 0 Byte 1 Byte 2 Byte 3 T1 Duration T2 Duration Link to Buzzer Initial Blinking State Toggle Blinking State Number of repetition (Unit = 100ms) (Unit = 100ms) Byte 3: Link to Buzzer. Control the buzzer state during the LED Blinking. 0x00: The buzzer will not turn on 0x01: The buzzer will turn on during the T1 Duration ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 24 of 50 ACR122L-ACS 0x02: The buzzer will turn on during the T2 Duration 0x03: The buzzer will turn on during the T1 and T2 Duration. Data Out: SW1 SW2. Status Code returned by the reader. Table 2.0D: Status Code Results SW1 SW2 Meaning Success 90 Current LED State The operation is completed successfully. Error 63 00 The operation is failed. Table 3.0E: Current LED State (1 Byte) Status Item Description Bit 0 Current LED_1 LED 1 = On; 0 = Off Bit 1 Current LED_0 LED 1 = On; 0 = Off Bits 2 – 7 Reserved Remark: 1. The LED State operation will be performed after the LED Blinking operation is completed. 2. The LED will not be changed if the corresponding LED Mask is not enabled. 3. The LED will not be blinking if the corresponding LED Blinking Mask is not enabled. Also, the number of repetition must be greater than zero. 4. T1 and T2 duration parameters are used for controlling the duty cycle of LED blinking and Buzzer Turn-On duration. For example, if T1=1 and T2=1, the duty cycle = 50%. #Duty Cycle = T1 / (T1 + T2). 5. To control the buzzer only, just set the P2 “LED State Control” to zero. 6. The make the buzzer operating, the “number of repetition” must greater than zero. 7. To control the LED only, just set the parameter “Link to Buzzer” to zero. ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 25 of 50 ACR122L-ACS Example 1: To read the existing LED State. // Assume both LED_0 and LED_1 are OFF initially // // Not link to the buzzer // APDU = “FF 00 40 00 04 00 00 00 00” Response = “90 00”. LED_0 and LED_1 LEDs are OFF. Example 2: To turn on LED_0 and LED_1 // Assume both LED_0 and LED_1 are OFF initially // // Not link to the buzzer // APDU = “FF 00 40 0F 04 00 00 00 00” Response = “90 03”. LED_0 and LED_1 are ON, #To turn off both LED_0 and LED_1, APDU = “FF 00 40 0C 04 00 00 00 00” Example 3: To turn off the LED_1 only, and left the LED_0 unchanged. // Assume both LED_0 and LED_1 are ON initially // // Not link to the buzzer // APDU = “FF 00 40 04 04 00 00 00 00” Response = “90 02”. LED_0 is not changed (ON); LED_1 is OFF, LED_1 On LED_1 Off LED_0 On LED_0 Off ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 26 of 50 ACR122L-ACS Example 4: To turn on the LED_1 for 2 sec. After that, resume to the initial state // Assume the LED_1 is initially OFF, while the LED_0 is initially ON. // // The LED_1 and buzzer will turn on during the T1 duration, while the LED_0 will turn off during the T1 duration. // LED_1 On T1 = 2000ms T2 = 0ms LED_1 Off LED_0 On LED_0 Off Buzzer On Buzzer Off 1Hz = 1000ms Time Interval = 500ms ON + 500 ms OFF T1 Duration = 2000ms = 0x14 T2 Duration = 0ms = 0x00 Number of repetition = 0x01 Link to Buzzer = 0x01 APDU = “FF 00 40 50 04 14 00 01 01” Response = “90 02” Example 5: To blink the LED_1 of 1Hz for 3 times. After that, resume to initial state // Assume the LED_1 is initially OFF, while the LED_0 is initially ON. // // The Initial LED_1 Blinking State is ON. Only the LED_1 will be blinking. // The buzzer will turn on during the T1 duration, while the LED_0 will turn off during both the T1 and T2 duration. // After the blinking, the LED_0 will turn ON. The LED_1 will resume to the initial state after the blinking // ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 27 of 50 ACR122L-ACS LED_1 On LED_1 Off LED_0 On T1 = 500ms T2 = 500ms LED_0 Off Buzzer On Buzzer Off 1Hz = 1000ms Time Interval = 500ms ON + 500 ms OFF T1 Duration = 500ms = 0x05 T2 Duration = 500ms = 0x05 Number of repetition = 0x03 Link to Buzzer = 0x01 APDU = “FF 00 40 50 04 05 05 03 01” Response = “90 02” Example 6: To blink the LED_1 and LED_0 of 1Hz for 3 times // Assume both the LED_0 and LED_1 are initially OFF. // // Both Initial LED_0 and LED_1 Blinking States are ON // // The buzzer will turn on during both the T1 and T2 duration// LED_1 On LED_1 Off T1 500ms = T2 500ms LED_0 On LED_0 Off Buzzer On Buzzer Off 1Hz = 1000ms Time Interval = 500ms ON + 500 ms OFF ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 28 of 50 ACR122L-ACS T1 Duration = 500ms = 0x05 T2 Duration = 500ms = 0x05 Number of repetition = 0x03 Link to Buzzer = 0x03 APDU = “FF 00 40 F0 04 05 05 03 03” Response = “90 00” Example 7: To blink the LED_1 and LED_0 in turn of 1Hz for 3 times // Assume both LED_0 and LED_1 LEDs are initially OFF. // // The Initial LED_1 Blinking State is ON; The Initial LED_0 Blinking States is OFF // // The buzzer will turn on during the T1 duration// LED_1 On LED_1 Off T1 500ms = T2 500ms LED_0 On LED_0 Off Buzzer On Buzzer Off 1Hz = 1000ms Time Interval = 500ms ON + 500 ms OFF T1 Duration = 500ms = 0x05 T2 Duration = 500ms = 0x05 Number of repetition = 0x03 Link to Buzzer = 0x01 APDU = “FF 00 40 D0 04 05 05 03 01” Response = “90 00” ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 29 of 50 ACR122L-ACS 5.3. Pseudo APDU for LEDs Control Enable This APDU is used to set the LEDs Control Enable/ Disable by user. Default “Disable”, the LED perform by the firmware Table 3.0A: Clear LCD Command Format (5 Bytes) Command Class INS P1 P2 Lc LED Control 0xFF 0x00 0x43 bLEDCtrl 0x00 P2: bLEDCtrl (1 Byte) CMD Description 0x00 Disable LEDs Control by user 0xFF Enable LEDs Control by user Data Out: SW1 SW2. Table 3.0B: Status Code Results SW1 SW2 Meaning Success 90 00 The operation is completed successfully. Error 63 00 The operation is failed. 5.4. Pseudo APDU for LEDs Control This APDU is used to control 4 LEDs Table 4.0A: Clear LCD Command Format (5 Bytes) Command Class INS P1 P2 Lc LED Control 0xFF 0x00 0x41 bLEDsState 0x00 P2: bLEDsState LED_0, LED_1, LED_2 and LED_3 Control Format (1 Byte) CMD Item Description Bit 0 LED_0 State 1 = On; 0 = Off Bit 1 LED_1 State 1 = On; 0 = Off Bit 2 LED_2 State 1 = On; 0 = Off ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 30 of 50 ACR122L-ACS Bit 3 LED_3 State Bits 4 – 7 Reserved 1 = On; 0 = Off Data Out: SW1 SW2. Table 4.0B: Status Code Results SW1 SW2 Meaning Success 90 00 The operation is completed successfully. Error 63 00 The operation is failed. 5.5. Pseduo APDU for Buzzer Control This APDU is used to control Buzzer Table 5.0A: Buzzer Control Command Format (5 Bytes) Command Class INS P1 P2 Lc Data In (3 Bytes) Buzzzer Control 0xFF 0x00 0x42 0x00 0x03 Buzzer Control Data In: Buzzer Control Table 5.0B: Buzzer On/Off Duration Control Format (4 Bytes) Byte 0 Byte 1 Byte 2 T1 Duration T2 Duration On State Off State Number of repetition (Unit = 100ms) (Unit = 100ms) Data Out: SW1 SW2. Table 5.0C: Status Code Results SW1 SW2 Meaning Success 90 00 The operation is completed successfully. Error 63 00 The operation is failed. ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 31 of 50 ACR122L-ACS 5.6. Pseudo APDU for Clear LCD This APDU is used to clear all content show on the LCD Table 6.0A: Clear LCD Command Format (5 Bytes) Command Class INS P1 P2 Lc Clear LCD 0xFF 0x00 0x60 0x00 0x00 Data Out: SW1 SW2. Table 6.0B: Status Code Results SW1 SW2 Meaning Success 90 00 The operation is completed successfully. Error 63 00 The operation is failed. ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 32 of 50 ACR122L-ACS 5.7. Pseudo APDU for LCD Display (ASCII Mode) This APDU is used to Display LCD Message in ASCII Mode Table 7.0A: LCD Display Command Format (5 Bytes + LCD Message Length) Command Class INS P1 P2 Lc Data In (Max. 16Bytes) LCD Display 0xFF Option Byte 0x68 LCD XY Position LCD Message LCD Message Length INS: Option Byte (1 Byte) CMD Item Description Bit 0 Character Bold Font 1 = Bold; 0 = Normal Bit 1 - 3 Reserved Bit 4 - 5 Table Index Bits 6 – 7 Reserved 00 = Fonts Set A 01 = Fonts Set B 10 = Fonts Set C P2: LCD XY Position The Character to be displayed on the LCD position specified by DDRAM Address Please follow the DDRAM table below for the LCD character position’s representation For Fonts Set 1 and 2, 10 11 12 13 14 15 16 DISPLAY POSITION 1st LINE 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F LCD XY POSITION 2nd LINE 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F For Fonts Set 3, 10 11 12 13 14 15 16 DISPLAY POSITION 1st LINE 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F LCD XY POSITION 2nd LINE 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 3rd LINE 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 4th LINE 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F Lc: LCD Message Length The length of the LCD message (max. 0x10); If the message length is longer than the number of character that the LCD screen’s can be shown, then the redundant character will not be shown on the LCD ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 33 of 50 ACR122L-ACS Data In: LCD Message The data to be sent to LCD, maximum 16 Character for each line Please follow the Fonts tables (selected by INS Bit 4 - 5) below for the LCD Character Index Remarks: Size of the Characters in Fonts Set A and Fonts Set B is 8x16, but size of the Characters in Fonts Set C is 8x8 Character Set A Character Set B Character Set C Data Out: SW1 SW2. Table 7.0B: Status Code Results SW1 SW2 Meaning Success 90 00 The operation is completed successfully. Error 63 00 The operation is failed. ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 34 of 50 5.8. Pseudo APDU for LCD Display (GB Mode) This APDU is used to Display LCD Message in GB Mode Table 8.0A: LCD Display Command Format (5 Bytes + LCD Message Length) Command Class INS P1 P2 Lc Data In (Max. 16 Bytes) LCD Display 0xFF Option Byte 0x69 LCD XY Position LCD Message LCD Message Length INS: Option Byte (1 Byte) CMD Item Description Bit 0 Character Bold Font 1 = Bold; 0 = Normal Bit 1 - 7 Reserved P2: LCD XY Position The Character to be displayed on the LCD position specified by DDRAM Address Please follow the DDRAM table below for the LCD character position’s representation 10 11 12 13 14 15 16 FIRST LINE 00 01 02 03 04 05 06 07 SECOND LINE 40 41 42 43 44 45 46 47 DISPLAY POSITION LCD XY POSITION Lc: LCD Message Length The length of the LCD message (max. 0x10); If the message length is longer than the number of character that the LCD screen’s can be shown, then the redundant character will not be shown on the LCD The length of the LCD message should multiple of 2 because each Chinese Character (GB code) should be contain two bytes Data In: LCD Message The data to be sent to LCD, maximum 8(2 x 8bit each character) Character for each line Please follow the Fonts table of GB Coding Data Out: SW1 SW2. Table 8.0B: Status Code Results SW1 SW2 Meaning Success 90 00 The operation is completed successfully. Error 63 00 The operation is failed. Advanced Card Systems Ltd. Website: www.acs.com.hk Email: info@acs.com.hk ACR122L-ACS 5.9. Pseudo APDU for LCD Display (Graphic Mode) This APDU is used to Display LCD Message in Graphic Mode Table 9.0A: LCD Display Command Format (5 Bytes + LCD Message Length) Command Class INS P1 P2 Lc Data In (max. 128 Bytes) LCD Display 0xFF 0x00 0x6A Pixel Data Line Index Pixel Data Length P2: Line Index To set which line to start to update the LCD Display Refer to Below LCD Display Position Lc: Pixel Data Length The length of the pixel data (max. 0x80) Data In: Pixel Data The pixel data to be sent to LCD for display LCD Display Position (Total LCD Size: 128x32): X-axis Line Index Byte 0x00 (X = 0x00) Byte 0x01 (X = 0x01) … … Byte 0x0F (X = 0x0F) 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 … … 0x1F Data Out: SW1 SW2. Table 9.0B: Status Code Results SW1 SW2 Meaning Success 90 00 The operation is completed successfully. Error 63 00 The operation is failed. ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 36 of 50 ACR122L-ACS 5.10. Pseudo APDU for Scrolling LCD Current Display This APDU is used to set scrolling feature of the Current LCD Display Table 10.0A: Scrolling LCD Command Format (5 Bytes + LCD Message Length) Command Class INS P1 P2 Lc Data In (6 Bytes) LCD Display 0xFF 0x00 0x6D 0x06 0x00 Scroll Ctrl Data In: Scroll Ctrl Table 10.0B: Scrolling Control Format (6 Bytes) Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 X Position Y Position Scrolling Range (Horizontal) Scrolling Range (Vertical) Refresh Speed Ctrl Scrolling Direction X Position: Horizontal Start Up Position, Ref to LCD Display Position Below Y Position: Vertical Start Up Position, Ref to LCD Display Position Below LCD Display Position (Total LCD Size: 128x32): Byte 0x00 (X = 0x00) Byte 0x01 (X = 0x01) … … Byte 0x0F (X = 0x0F) 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 … … 0x1F Scrolling Range (Horizontal): How many 8 pixels in Horizontal after X position will be scrolled Scrolling Range (vertical): How many pixels in Vertical after Y position will be scrolled Refresh Speed Ctrl: Bit0~Bit3 – how many pixel move pre scrolling Bit4~Bit7 – Scrolling period Bit7 ACR122L-ACS Design Specification Version 0.03 19/05/2010 Bit6 Bit5 Bit4 Scrolling period 1 Unit 3 Units 5 Units 7 Units 17 Units Page 37 of 50 ACR122L-ACS 19 Units 21 Units 23 Units 129 Units 131 Units 133 Units 135 Units 145 Units 147 Units 149 Units 151 Units Scrolling Direction: the Scrolling Direction Bit1 Bit0 Scrolling Direction From Left to Right From Right to Left From Top to Bottom From Bottom to Top Data Out: SW1 SW2. Table 10.0C: Status Code Results SW1 SW2 Meaning Success 90 00 The operation is completed successfully. Error 63 00 The operation is failed. 5.11. Pseudo APDU for Pause LCD Scrolling This APDU is used to Pause the LCD Scrolling set before To resume the scrolling, send again the scrolling LCD command (5.10) to perform Table 11.0A: Pause Scrolling Command Format (5 Bytes) Command Class INS P1 P2 Lc Clear LCD 0xFF 0x00 0x6E 0x00 0x00 Data Out: SW1 SW2. Table 11.0B: Status Code Results SW1 SW2 Meaning Success 90 00 The operation is completed successfully. Error 63 00 The operation is failed. ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 38 of 50 ACR122L-ACS 5.12. Pseudo APDU for Stop LCD Scrolling This APDU is used to stop the LCD Scrolling set before, the LCD display will back to normal display position Table 12.0A: Stop Scrolling LCD Command Format (5 Bytes) Command Class INS P1 P2 Lc Clear LCD 0xFF 0x00 0x6F 0x00 0x00 Data Out: SW1 SW2. Table 12.0B: Status Code Results SW1 SW2 Meaning Success 90 00 The operation is completed successfully. Error 63 00 The operation is failed. 5.13. Pseudo APDU for LCD Contrast Control This APDU is used to Control the LCD Contrast Table 13.0A: LCD Contrast Control Command Format (5 Bytes) Command Class INS P1 P2 Lc LCD Contrast Control 0xFF 0x00 0x6C Contrast Control 0x00 P2: Contrast Control The value range is between 0x00 to 0x0F. It is as large as brighten on contrast. Otherwise the contrast will been darken. Data Out: SW1 SW2. Table 13.0B: Status Code Results SW1 SW2 Meaning Success 90 00 The operation is completed successfully. Error 63 00 The operation is failed. ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 39 of 50 ACR122L-ACS 5.14. Pseudo APDU for LCD Backlight Control This APDU is used to Control the LCD Backlight Table 14.0A: LCD Backlight Control Command Format (5 Bytes) Command Class INS P1 P2 Lc LCD Backlight Control 0xFF 0x00 0x64 Backlight Control 0x00 P2: Backlight Control Table 14.0B: Backlight Control Format (1 Byte) CMD Description 0x00 LCD Backlight Off 0xFF LCD Backlight On Data Out: SW1 SW2. Table 14.0C: Status Code Results SW1 SW2 Meaning Success 90 00 The operation is completed successfully. Error 63 00 The operation is failed. ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 40 of 50 ACR122L-ACS 5.15. Pseudo APDU for changing the communication speed This APDU is used to change the baud rate. **Remark: STX = 0x32 and ETX = 0x33 Table 15.0A: Baud Rate Control Command Format (9 Bytes) Command Class INS P1 P2 Lc Baud Rate Control 0xFF 0x00 0x44 New Baud Rate 0x00 P2: New Baud Rate 0x00: Set the new baud rate to 9600 bps. 0x01: Set the new baud rate to 115200 bps. **Remark: The feedback’s STX = 0x02 and ETX = 0x03 Data Out: SW1 SW2. Table 15.0B: Status Code Results SW1 SW2 Meaning Success 90 Current Baud Rate The operation is completed successfully. Error 63 00 The operation is failed. SW2: Current Baud Rate 0x00: The current baud rate is 9600 bps. 0x01: The current baud rate is 115200 bps. Remark: After the communication speed is changed successfully, the program has to adjust its communication speed so as to continue the rest of the data exchanges. The initial communication speed is determined by the existence of R12 (0 ohm). • With R12 = 115200 bps • Without R12 = 9600 bps (default) ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 41 of 50 ACR122L-ACS Example 1: To initialize a FeliCa Tag (Tag Polling) Step 1: Issue a “Direct Transmit” APDU. The APDU Command should be “FF 00 00 00 09 D4 4A 01 01 00 FF FF 01 00” #In which, Direct Transmit APDU = “FF 00 00 00” Length of the PN532_Tag Command = “09” PN532 Command (InListPassiveTarget 212Kbps) = “D4 4A 01 01” Tag Command (System Code Request) = “00 FF FF 01 00” To send an APDU to the slot 0 (default), sequence number = 1. HOST -> 02 6F 0E 00 00 00 00 01 00 00 00 FF 00 00 00 09 D4 4A 01 01 00 FF FF 01 00 [Checksum] 03 RDR -> 02 00 00 03 RDR -> 02 81 1A 00 00 00 00 01 00 00 00 D5 4B 01 01 14 01 01 01 05 01 86 04 02 02 03 00 4B 02 4F 49 8A 8A 80 08 90 00 [Checksum] 03 The APDU Response is “D5 4B 01 01 14 01 01 01 05 01 86 04 02 02 03 00 4B 02 4F 49 8A 8A 80 08 90 00” #In which, Response returned by the PN532 = “D5 4B 01 01 14 01 01 01 05 01 86 04 02 02 03 00 4B 02 4F 49 8A 8A 80 08” NFCID2t of the FeliCa Tag = “01 01 05 01 86 04 02 02” Status Code returned by the reader = “90 00” ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 42 of 50 ACR122L-ACS Example 2: To write 16 bytes data to the FeliCa Tag (Tag Write) Step 1: Issue a “Direct Transmit” APDU. The APDU Command should be “FF 00 00 00 23 D4 40 01 20 08 01 01 05 01 86 04 02 02 01 09 01 01 80 00 00 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA” #In which, Direct Transmit APDU = “FF 00 00 00” Length of the PN532_Tag Command = “23” PN532 Command (InDataExchange) = “D4 40 01” Tag Command (Write Data) = “20 08 01 01 05 01 86 04 02 02 01 09 01 01 80 00 00 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA”. To send an APDU to the slot 0 (default), sequence number = 2. HOST -> 02 6F 28 00 00 00 00 02 00 00 00 FF 00 00 00 00 23 D4 40 01 20 08 01 01 05 01 86 04 02 02 01 09 01 01 80 00 00 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA [Checksum] 03 RDR -> 02 00 00 03 RDR -> 02 81 11 00 00 00 00 02 00 00 00 D5 41 00 0C 09 01 01 05 01 86 04 02 02 00 00 90 00 [Checksum] 03 The APDU Response would be “D5 41 00 0C 09 01 01 05 01 86 04 02 02 00 00 90 00” #In which, Response returned by the PN532 = “D5 41” Response returned by the FeliCa Tag = “00 0C 09 01 01 05 01 86 04 02 02 00 00” Status Code returned by the reader = “90 00” ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 43 of 50 ACR122L-ACS Example 3: To read 16 bytes data from the FeliCa Tag (Tag Write) Step 1: Issue a “Direct Transmit” APDU. The APDU Command should be “FF 00 00 00 13 D4 40 01 10 06 01 01 05 01 86 04 02 02 01 09 01 01 80 00” #In which, Direct Transmit APDU = “FF 00 00 00” Length of the PN532_Tag Command = “13” PN532 Command (InDataExchange) = “D4 40 01” Tag Command (Read Data) = “10 06 01 01 05 01 86 04 02 02 01 09 01 01 80 00” To send an APDU to the slot 0 (default), sequence number = 3. HOST -> 02 6F 18 00 00 00 00 03 00 00 00 FF 00 00 00 13 D4 40 01 10 06 01 01 05 01 86 04 02 02 01 09 01 01 80 00 FF [Checksum] 03 RDR -> 02 00 00 03 RDR -> 02 81 22 00 00 00 00 03 00 00 00 D5 41 00 1D 07 01 01 05 01 86 04 02 02 00 00 01 00 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 90 00 [Checksum] 03 The APDU Response would be “D5 41 00 1D 07 01 01 05 01 86 04 02 02 00 00 01 00 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 90 00” #In which, Response returned by the PN532 = “D5 41” Response returned by the FeliCa Tag = “00 1D 07 01 01 05 01 86 04 02 02 00 00 01 00 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA 55 AA” Status Code returned by the reader = “90 00” ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 44 of 50 ACR122L-ACS Example 4: To initialize an ISO 14443-4 Type B Tag (Tag Polling) Step 1: Issue a “Direct Transmit” APDU. The APDU Command should be “FF 00 00 00 05 D4 4A 01 03 00” #In which, Direct Transmit APDU = “FF 00 00 00” Length of the PN532_Tag Command = “05” PN532 Command (InListPassiveTarget Type B 106Kbps) = “D4 4A 01 03 00” To send an APDU to the slot 0 (default), sequence number = 4. HOST -> 02 6F 0A 00 00 00 00 04 00 00 00 FF 00 00 00 05 D4 4A 01 03 00 [Checksum] 03 RDR -> 02 00 00 03 RDR -> 02 81 14 00 00 00 00 04 00 00 00 D5 41 01 01 50 00 01 32 F4 00 00 00 00 33 81 81 01 21 90 00 [Checksum] 03 The APDU Response is “D5 4B 01 01 50 00 01 32 F4 00 00 00 00 33 81 81 01 21 90 00” #In which, Response returned by the PN532 = “D5 4B 01 01” ATQB of the Type B Tag = “50 00 01 32 F4 00 00 00 00 33 81 81” CRC-B = “01 21” Status Code returned by the reader = “90 00” ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 45 of 50 ACR122L-ACS Example 5: To send an APDU to an ISO 14443-4 Type B Tag (Data Exchange) Step 1: Issue a “Direct Transmit” APDU. The USER APDU Command should be “00 84 00 00 08” The Composed APDU Command should be “FF 00 00 00 08 D4 40 01 00 84 00 00 08” #In which, Direct Transmit APDU = “FF 00 00 00” Length of the PN532_Tag Command = “08” PN532 Command (InDataExchange) = “D4 40 01” Tag Command (Get Challenge) = “00 84 00 00 08” To send an APDU to the slot 0 (default), sequence number = 5. HOST -> 02 6F 0D 00 00 00 00 05 00 00 00 FF 00 00 00 08 D4 40 01 00 84 00 00 08 [Checksum] 03 RDR -> 02 00 00 03 RDR -> 02 81 0F 00 00 00 00 05 00 00 00 D5 41 00 01 02 03 04 05 06 07 08 90 00 90 00 [Checksum] 03 The APDU Response is “D5 41 00 0B 01 02 03 04 05 06 07 08 90 00” #In which, Response returned by the PN532 = “D5 41 00” Response from the Type B Tag = “01 02 03 04 05 06 07 08 90 00” Status Code returned by the reader = “90 00” ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 46 of 50 ACR122L-ACS 5.16. Get the Firmware Version of the reader To retrieve the firmware versions of the reader. For SAM Interface 1 controller, STX = 0x02 and ETX = 0x03 For SAM Interface 2 controller, STX = 0x12 and ETX = 0x13 For SAM Interface 3 controller, STX = 0x22 and ETX = 0x23 Table 16.0A: Get Firmware Version Command Format (5 Bytes) Command Class INS P1 P2 Le Get Response 0xFF 0x00 0x48 0x00 0x00 Le: Number of Bytes to Retrieve (1 Byte) Maximum 255 bytes For SAM Interface 1 controller, the feedback’s STX = 0x02 and ETX = 0x03 For SAM Interface 2 controller, the feedback’s STX = 0x12 and ETX = 0x13 For SAM Interface 3 controller, the feedback’s STX = 0x22 and ETX = 0x23 Table 16.0B: Get Firmware Version Response Format (14 bytes) Response Data Out Result Firmware Version E.g. 1 Response for SAM Interface 1 controller = 41 43 52 31 32 32 4C 31 30 31 53 41 4D 31(Hex) = ACR122L101SAM1 (ASCII) E.g. 2 Response for SAM Interface 2 controller = 41 43 52 31 32 32 4C 31 30 31 53 41 4D 32(Hex) = ACR122L101SAM2 (ASCII) E.g. 3 Response for SAM Interface 3 controller = 41 43 52 31 32 32 4C 31 30 31 53 41 4D 33(Hex) = ACR122L101SAM3 (ASCII) ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 47 of 50 ACR122L-ACS 5.17. Basic Program Flow for FeliCa Applications Step 0. Start the application. The first thing is to activate the “SAM Interface”. The ATR of the SAM (if a SAM is inserted) or a Pseduo-ATR “3B 00” (if no SAM is inserted) will be returned. In other word, the SAM is always existed from the view of the application. Step 1. The second thing to do is to change the operating parameters of the PN531. Set the Retry Time to one. Step 2. Poll a FeliCa Tag by sending “Direct Transmit” and “Get Response” APDUs (Tag Polling). Step 3. If no tag is found, go back to Step 2 until a FeliCa Tag is found. Step 4. Access the FeliCa Tag by sending APDUs (Tag Read or Write) Step 5. If there is no any operation with the FeliCa Tag, then go back to Step 2 to poll the other FeliCa Tag. .. Step N. Deactivate the “SAM Interface”. Shut down the application. Remark: 1. The default Retry Time of the PN532 command “InListPassiveTarget” is infinity. Send the APDU “FF 00 00 00 06 D4 32 05 00 00 00” to change the Retry Time to one. 2. It is recommended to turn off the Antenna if there is no contactless access. APDU for turning on the Antenna Power = APDU “FF 00 00 00 04 D4 32 01 03” APDU for turning off the Antenna Power = APDU “FF 00 00 00 04 D4 32 01 02” FCC Warning: Any Changes or modifications not expressly approved by the party responsible for compliance could void the user's authority to operate the equipment. This device complies with part 15 of the FCC Rules. Operation is subject to the following two conditions: (1) This device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation. ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 48 of 50 ACR122L-ACS 6.0. Mechanical Design ACR122L-ACS Design Specification Version 0.03 19/05/2010 Page 49 of 50 7.0. Technical Specification Serial Interface Power source ....................................... 7V AC/DC Switching Power Supply Speed................................................... 9.6Kbps, 115.2Kbps (default) Supply Voltage ..................................... Regulated 5V DC Supply Current ..................................... 350mA (maximum); 200mA (normal) Contactless Smart Card Interface Standard............................................... MIFARE Classic, ISO14443-4 Type A & B, FeliCa, ISO/IEC 18092 NFC Operating Frequency ............................ 13.56 MHz Smart card read / write speed ............... 106, 212, 424 kbps SAM Interface Standard............................................... ISO 7816 Protocol ................................................ T=0 protocol Operating Frequency ............................ 4 MHz Smart card read / write speed ............... 9600 - 115200 bps Case Dimensions........................................... 133 mm (L) x 88.66 mm (W) x 19 mm (H) Material ................................................ ABS Color..................................................... Black Antenna Size ........................................ 64mm x 46mm Operating distance ............................... up to 50 mm (depended on tag type) Modulation............................................ ASK and BPSK Built-in peripherals LED ...................................................... Green, Blue Orange and Red Buzzer .................................................. Monotone Operating Conditions Temperature......................................... 0 - 50° C Humidity ............................................... 10% - 80% Cable Connector Length .................................................. 1.5 M (DB9 + DC Plug) Standard/Certifications CE, FCC, VCCI OS Windows 98, ME, 2K, XP, Vista, 7 OEM OEM-Logo possible, customer-specific colors, casing, and card connector Advanced Card Systems Ltd. Website: www.acs.com.hk Email: info@acs.com.hk
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.5 Linearized : Yes Encryption : Standard V2.3 (128-bit) User Access : Print, Extract, Print high-res Page Count : 50 XMP Toolkit : XMP toolkit 2.9.1-13, framework 1.6 About : uuid:2b9d688e-81a0-4ef1-b775-6b4ccb0f6aab Producer : GPL Ghostscript 8.15 Modify Date : 2010:09:29 12:01:56-07:00 Create Date : 2010:09:20 17:47:48Z Creator Tool : PScript5.dll Version 5.2.2 Metadata Date : 2010:09:29 12:01:56-07:00 Document ID : uuid:a3cd1f28-ba0b-420d-8560-0538b25bf52b Format : application/pdf Title : Microsoft Word - ACR122L-ACS Design Specification_V0.04.doc Creator : macross Author : macrossEXIF Metadata provided by EXIF.tools