Advanced Card Systems ACR1222LD1 Contactless Smart Card Reader and Writer User Manual

Advanced Card Systems Limited Contactless Smart Card Reader and Writer

User Manual

Download: Advanced Card Systems ACR1222LD1 Contactless Smart Card Reader and Writer User Manual
Mirror Download [FCC.gov]Advanced Card Systems ACR1222LD1 Contactless Smart Card Reader and Writer User Manual
Document ID1418098
Application IDctlL9JXo74IU5J/sMW/uKg==
Document DescriptionUser Manual
Short Term ConfidentialNo
Permanent ConfidentialNo
SupercedeNo
Document TypeUser Manual
Display FormatAdobe Acrobat PDF - pdf
Filesize114.63kB (1432890 bits)
Date Submitted2011-02-17 00:00:00
Date Available2011-02-17 00:00:00
Creation Date2011-02-14 17:25:53
Producing SoftwareGPL Ghostscript 8.15
Document Lastmod2011-02-15 17:09:15
Document TitleMicrosoft Word - ACR1222LU Design Specification_V1.01.doc
Document CreatorPScript5.dll Version 5.2.2
Document Author: macross

ACR122L-USB-ACS
Design Specification
ACR1222L-D1
Revision History
ACR122L-USB-ACS
Version
Date
Prepared By
V1.00
2010-6-24
Nathan.Li, Kit Au
V1.01
2011-1-20
Kit Au
Description
Initial Release
Table of Contents
ACR122L-USB-ACS
Table of Contents ............................................................................................................... 3
1.0.
Introduction ............................................................................................................. 5
2.0.
Feature..................................................................................................................... 5
3.0.
Hardware Interfaces................................................................................................ 6
3.1.
USB Interface......................................................................................................................... 6
3.2.
LEDs ...................................................................................................................................... 6
3.3.
Buzzer .................................................................................................................................... 6
3.4.
SAM Interface ........................................................................................................................ 6
3.5.
LCD ........................................................................................................................................ 6
3.6.
PICC Interface (Contactless Smart Card).............................................................................. 6
4.0.
Implementation ....................................................................................................... 7
4.1.
The ACR122L-USB is built based on the ST221 and PN5321 chips. ................................... 7
4.2.
Communication between the Host and the Contactless interface, SAM and Peripherals..... 8
5.0.
Firmware Upgrade................................................................................................... 9
5.1.
With Press FW Key ................................................................................................................ 9
5.2.
Without Press FW Key......................................................................................................... 11
6.0.
PICC Interface Description ................................................................................... 13
6.1.
ATR Generation ................................................................................................................... 13
6.2.
Pseudo APDUs for Contactless Interface ............................................................................ 15
6.2.1.
Direct Transmit via ScardTransmit............................................................................. 15
6.2.2.
Direct Transmit via ScardControl ............................................................................... 16
6.3.
Pseudo APDU for Peripherals Control................................................................................. 16
6.3.1.
Pseudo APDU for LEDs and Buzzer Control ............................................................. 16
6.3.2.
Pseudo APDU for LEDs Control Enable .................................................................... 23
6.3.3.
Pseudo APDU for LEDs Control ................................................................................ 23
6.3.4.
Pseduo APDU for Buzzer Control .............................................................................. 24
6.3.5.
Pseudo APDU for Clear LCD ..................................................................................... 25
6.3.6.
Pseudo APDU for LCD Display (ASCII Mode) ........................................................... 26
6.3.7.
Pseudo APDU for LCD Display (GB Mode) ............................................................... 27
6.3.8.
Pseudo APDU for LCD Display (Graphic Mode)........................................................ 28
6.3.9.
Pseudo APDU for Scrolling LCD Current Display...................................................... 29
6.3.10.
Pseudo APDU for Pause LCD Scrolling..................................................................... 31
6.3.11.
Pseudo APDU for Stop LCD Scrolling ....................................................................... 31
6.3.12.
Pseudo APDU for LCD Contrast Control ................................................................... 31
6.3.13.
Pseudo APDU for LCD Backlight Control .................................................................. 32
6.4.
Escape APDU for Peripherals Control ................................................................................. 33
6.4.1.
Escape APDU for LEDs and Buzzer Control ............................................................. 33
6.4.2.
Escape APDU for LEDs Control Enable .................................................................... 38
6.4.3.
Escape APDU for LEDs Control................................................................................. 39
6.4.4.
Escape APDU for Buzzer Control .............................................................................. 40
6.4.5.
Escape APDU for Store Data one at Reader ............................................................. 40
6.4.6.
Escape APDU for Store Data two at Reader ............................................................. 41
6.4.7.
Escape APDU for Read Data one from Reader......................................................... 41
6.4.8.
Escape APDU for Read Data two from Reader ......................................................... 42
6.4.9.
Escape APDU for Clear LCD ..................................................................................... 42
6.4.10.
Escape APDU for LCD Display (ASCII Mode) ........................................................... 43
6.4.11.
Escape APDU for LCD Display (GB Mode) ............................................................... 45
6.4.12.
Escape APDU for LCD Display (Graphic Mode) ........................................................ 45
6.4.13.
Escape APDU for Scrolling LCD Current Display ...................................................... 46
6.4.14.
Escape APDU for Pause LCD Scrolling..................................................................... 48
6.4.15.
Escape APDU for Stop LCD Scrolling........................................................................ 48
6.4.16.
Escape APDU for LCD Contrast Control.................................................................... 48
6.4.17.
Escape APDU for LCD Backlight Control................................................................... 49
ACR122L-USB-ACS
6.5.
Escape APDU for getting the Firmware Version.................................................................. 50
6.6.
PICC Commands for General Purposes.............................................................................. 50
6.6.1.
6.7.
1. Get Data ................................................................................................................. 50
PICC Commands (T=CL Emulation) for MIFare 1K/4K MEMORY Cards ........................... 51
6.7.1.
Load Authentication Keys .......................................................................................... 51
6.7.2.
Authentication for MIFARE 1K/4K.............................................................................. 52
6.7.3.
Read Binary Blocks .................................................................................................... 56
6.7.4.
Update Binary Blocks ................................................................................................. 57
6.7.5.
Value Block Related Commands ............................................................................... 58
7.0.
Basic Program Flow for Contactless Applications............................................. 62
7.1.
How to access PCSC Compliant Tags (ISO14443-4)? ....................................................... 63
7.2.
How to access DESFIRE Tags (ISO14443-4)? ................................................................... 66
7.3.
How to access FeliCa Tags (ISO18092)?............................................................................ 68
7.4.
How to access NFC Forum Type 1 Tags (ISO18092)? E.g. Jewel and Topaz Tags .......... 69
8.0.
Basic Program Flow for SAM Applications ........................................................ 72
8.1.
How to access ACOS3 SAM Cards (ISO7816)? ................................................................. 73
9.0.
Mechanical Design................................................................................................ 75
1.0. Introduction
The ACR122L-USB is a module for accessing both contact and contactless cards with LCD Display. It
can support 3 SAMs access and ISO14443 Part1 - 4 Type A & B, MIFARE, FeliCa and NFC tags.
2.0. Feature
ISO 7816 Parts 1-4 Compliant for SAM Socket.
ISO 14443 Parts 1-4 Compliant for Contactless Smart Card Interface.
Support ISO14443 Part 4 Type A & B, MIFARE, FeliCa and NFC tags.
Built-in Antenna for contactless tags access.
3 X SAM Interface
4 LEDs.
Buzzer.
CCID Compliant for both SAM and PICC interface.
PCSC Compliant for Contact and Contactless Interfaces.
USB V2.0 Interface. (12M bps)
Device Firmware Upgradeable through the USB Interface.
3.0. Hardware Interfaces
ACR122L-USB-ACS
3.1. USB Interface
The ACR122L-USB is connected to computer through USB as specified in the USB Specification 2.0.
ACR122L-USB is working in Full speed mode, i.e. 12 Mbps.
Pin
Signal
Function
VBUS
+5V power supply for the reader (~ 200mA)
D-
Differential signal transmits data between ACR122L-USB and PC.
D+
Differential signal transmits data between ACR122L-USB and PC.
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 ,T=1 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. PICC Interface (Contactless Smart Card)
•
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-USB-ACS
4.0. Implementation
4.1. The ACR122L-USB is built based on the ST221 and PN5321
chips.
LCD
Buzzer
&LED1
&LED2
&LED3
&LED4
Built-In
Antenna
PN532
NFC Interface
Chip
USB2.0
USB
ST2211U
Host Controller
SPI
Contactless Interface
Carrier=13.56MHz
USB
Firmware
Upgrade
ISO7816 Interface
PICC
Contactless Card
Logic switch
SAM1
SAM2
SAM3
PC
Windows
operating
system
4.2. Communication between the Host and ACR122L-USB-ACS
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.
PCSC
Driver
ACR122L-USB
PCSC SAM1
Interface
ACR122L-USB
PCSC SAM2
Interface
ACR122L-USB
PCSC SAM3
Interface
ACR122L-USB
PCSC PICC
Interface
USB
Interface
(CCID)
PCSC Layer
ACR122L-USB
T=CL &T=1
Emulation
ISO 7816 Part1-4
T=0,T=1 SAM Interfaces
SAM1
(Socket)
SAM2
(Socket)
SAM3
(Socket)
Peripherals
ISO 14443 Part1-4&
FeliCa
PICC Interface
RF
Interface
PICC
(Built-In Antenna)
5.0. Firmware Upgrade
ACR122L-USB-ACS
5.1. With Press FW Key
Step 1: Unplug the USB Cable from the PC.
Step 2: Press and Hold the FW Key
Step3: Plug the USB Cable to the PC.
Step 4: The USB Mass Storage Device can be found in Device Manager, release the FW Key
Step 5: Execute the Firmware Upgrade Program:
“FW Upgrade Tool.exe”
Step 6: Pressing the “Load BIN” Button.
Select the “Firmware” file for Upload to the Reader
Step 7: Pressing the “Start Program” Button.
ACR122L-USB-ACS
The firmware is being uploaded to the reader
The firmware upgrade is completed.
Step 8: Close the plastic covers. After that, reconnect the USB cord.
Noted:
If the upgrade firmware “fail”, please repeat do from steps 3 to 7.
5.2. Without Press FW Key
ACR122L-USB-ACS
Step 1: Plug the USB Cable from the PC.
Step 2: Send EscapeCommand for Enter FW upgrade mode
Command = {E0 00 00 E0 00}.
Response = {E1 00 00 00 01 “Status”}
Step 3: The USB Mass Storage Device can be found in Device Manager, release the FW Key
Step 4: Execute the Firmware Upgrade Program:
“FW Upgrade Tool.exe”
Step 5: Pressing the “Load BIN” Button.
Select the “Firmware” file for Upload to the Reader
Step 6: Pressing the “Start Program” Button.
ACR122L-USB-ACS
The firmware is being uploaded to the reader
The firmware upgrade is completed.
Step 7: Close the plastic covers. After that, reconnect the USB cord.
Noted:
If the upgrade firmware “fails”, please using “5.1 With Press FW Key” Steps to do the upgrade
Pseudo APDUs for Contactless Interface and Peripherals
Control
ACR122L-USB-ACS
6.0. PICC Interface Description
6.1. ATR Generation
If the reader detects a PICC, an ATR will be sent to the PCSC driver for identifying the PICC.
1.1 ATR format for ISO 14443 Part 3 PICCs.
Byte
Value
Designation
Description
(Hex)
3B
Initial Header
8N
T0
Higher nibble 8 means: no TA1, TB1, TC1 only
TD1 is following.
Lower nibble N is the number of historical bytes
(HistByte 0 to HistByte N-1)
80
TD1
Higher nibble 8 means: no TA2, TB2, TC2 only
TD2 is following.
Lower nibble 0 means T = 0
01
TD2
Higher nibble 0 means no TA3, TB3, TC3, TD3
following.
Lower nibble 1 means T = 1
80
T1
Category indicator byte, 80 means A status
indicator may be present in an optional
COMPACT-TLV data object
4F
Tk
Application identifier Presence Indicator
To
0C
Length
RID
Registered Application Provider Identifier (RID) #
A0 00 00 03 06
SS
Byte for standard
3+N
C0 .. C1
Bytes for card name
00 00 00 00
RFU
RFU # 00 00 00 00
UU
TCK
Exclusive-oring of all the bytes T0 to Tk
4+N
e.g. ATR for MIFare 1K = {3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 01 00 00 00 00 6A}
Length (YY) = 0x0C
RID = {A0 00 00 03 06} (PC/SC Workgroup)
Standard (SS) = 03 (ISO14443A, Part 3)
Card Name (C0 .. C1) = {00 01} (MIFare 1K)
ACR122L-USB-ACS
Card Name (C0 .. C1)
00 01: Mifare 1K
00 02: Mifare 4K
00 03: Mifare Ultralight
00 26: Mifare Mini
F0 04: Topaz and Jewel
F0 11: FeliCa 212K
F0 12: FeliCa 424K
FF [SAK]: undefined tags
1.2 ATR format for ISO 14443 Part 4 PICCs.
Byte
Value
Designation
Description
(Hex)
3B
Initial Header
8N
T0
Higher nibble 8 means: no TA1, TB1, TC1 only
TD1 is following.
Lower nibble N is the number of historical bytes
(HistByte 0 to HistByte N-1)
80
TD1
Higher nibble 8 means: no TA2, TB2, TC2 only
TD2 is following.
Lower nibble 0 means T = 0
01
TD2
Higher nibble 0 means no TA3, TB3, TC3, TD3
following.
Lower nibble 1 means T = 1
XX
T1
Historical Bytes:
to
XX
Tk
3+N
XX
ISO14443A:
XX
The historical bytes from ATS response. Refer to
the ISO14443-4 specification.
ISO14443B:
The higher layer response from the ATTRIB
response (ATQB). Refer to the ISO14443-3
specification.
4+N
UU
TCK
Exclusive-oring of all the bytes T0 to Tk
E.g 1. ATR for DESFire = { 3B 81 80 01 80 80 } // 6 bytes of ATR
ACR122L-USB-ACS
Hint: Use the APDU “FF CA 01 00 00” to distinguish the ISO14443A-4 and ISO14443B-4 PICCs, and
retrieve the full ATS if available. ISO14443A-3 or ISO14443B-3/4 PICCs do have ATS returned.
APDU Command = FF CA 01 00 00
APDU Response = 06 75 77 81 02 80 90 00
ATS = {06 75 77 81 02 80}
E.g 2. ATR for ST19XRC8E = { 3B 8C 80 01 50 12 23 45 56 12 53 54 4E 33 81 C3 55}
// 12 bytes of ATQB, No CRC-B
ATQB = {50 12 23 45 56 12 53 54 4E 33 81 C3}
6.2. Pseudo APDUs for Contactless Interface
ACR128MiniU comes with two primitive commands for this purpose. 
6.2.1.
Direct Transmit via ScardTransmit
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.
ACR122L-USB-ACS
Table 1.0C: Status Code
Results
SW1
SW2
Meaning
Success
90
00
The operation is completed successfully.
Error
63
00
The operation is failed.
Checksum Error
63
27
The checksum of the Response is
wrong.
6.2.2.
Direct Transmit via ScardControl
Command = {E0 00 00 24 XX “PN532_TAG Command”}
Response = {E1 00 00 00 YY “PN532_TAG Response”}
XX = Length of the “PN532_TAG Command”
YY= Length of the “PN532_TAG Response”
6.3. Pseudo APDU for Peripherals Control
6.3.1.
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 ACR122L-USB-ACS
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
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
ACR122L-USB-ACS
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.
Example 1: To read the existing LED State.
ACR122L-USB-ACS
// 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-USB-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 //
LED_1 On
LED_1 Off
LED_0 On
T1 = 500ms T2 = 500ms
LED_0 Off
Buzzer On
Buzzer Off
ACR122L-USB-ACS
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
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//
ACR122L-USB-ACS
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”
6.3.2.
Pseudo APDU for LEDs Control Enable
ACR122L-USB-ACS
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.
6.3.3.
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
Bit 3
LED_3 State
1 = On; 0 = Off
Bits 4 – 7
Reserved
ACR122L-USB-ACS
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.
6.3.4.
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.
6.3.5.
Pseudo APDU for Clear LCD
ACR122L-USB-ACS
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-USB-ACS
6.3.6.
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
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
LINE
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
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
LINE
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
Data In: LCD Message
ACR122L-USB-ACS
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.
6.3.7.
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
Length
LCD Message
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
ACR122L-USB-ACS
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.
6.3.8.
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):
Byte 0x00 (X = 0x00)
0x00
Byte 0x01 (X = 0x01)
…
…
Byte 0x0F (X = 0x0F)
X-axis
Line Index
ACR122L-USB-ACS
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.
6.3.9.
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)
0x00
0x01
0x02
0x03
0x04
Byte 0x01 (X = 0x01)
…
…
Byte 0x0F (X = 0x0F)
ACR122L-USB-ACS
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
Bit6
Bit5
Bit4
Scrolling period
1 Unit
3 Units
5 Units
7 Units
17 Units
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
6.3.10.
63
00
ACR122L-USB-ACS
The operation is failed.
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.
6.3.11.
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.
6.3.12.
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)
ACR122L-USB-ACS
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.
6.3.13.
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.
6.4. Escape APDU for Peripherals Control
ACR122L-USB-ACS
All the command is the same as Part 5.3 for Terminal Application Layer, but the command is
sent by Escape APDU.
6.4.1.
Escape 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-USB-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:
8. The LED State operation will be performed after the LED Blinking operation is completed.
9. The LED will not be changed if the corresponding LED Mask is not enabled.
10. 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.
11. 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).
12. To control the buzzer only, just set the P2 “LED State Control” to zero.
13. The make the buzzer operating, the “number of repetition” must greater than zero.
14. To control the LED only, just set the parameter “Link to Buzzer” to zero.
Example 1: To read the existing LED State.
ACR122L-USB-ACS
// 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-USB-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 //
LED_1 On
LED_1 Off
LED_0 On
T1 = 500ms T2 = 500ms
LED_0 Off
Buzzer On
Buzzer Off
ACR122L-USB-ACS
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
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//
ACR122L-USB-ACS
LED_1 On
LED_1 Off
= T2
500ms
T1
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”
6.4.2.
Escape 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
ACR122L-USB-ACS
The operation is completed
successfully.
Error
63
00
The operation is failed.
6.4.3.
Escape 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
Bit 3
LED_3 State
1 = On; 0 = Off
Bits 4 – 7
Reserved
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.
6.4.4.
Escape APDU for Buzzer Control
ACR122L-USB-ACS
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.
6.4.5.
Escape APDU for Store Data one at Reader
This APDU is used to store a data up to 256 byte to the reader.
Table 5.0A: Store Data One Command Format (5 Bytes)
Command
Class
INS
P1
P2
Lc
Buzzzer Control
0xFF
0x00
0x4a
0x00
0x00
Data
LenH
Data
LenL
Data
data
Data LenH : The high byte of the data length
Data LenL : The low byte of the data length
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.
6.4.6.
Escape APDU for Store Data two at Reader
ACR122L-USB-ACS
This APDU is used to store a data up to 256 byte to the reader.
Table 5.0A: Store Data One Command Format (5 Bytes)
Command
Class
INS
P1
P2
Lc
Buzzzer Control
0xFF
0x00
0x4b
0x00
0x00
Data
LenH
Data
LenL
Data
data
Data LenH : The high byte of the data length
Data LenL : The low byte of the data length
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.
6.4.7.
Escape APDU for Read Data one from Reader
This APDU is used to store a data up to 256 byte to the reader.
Table 5.0A: Store Data One Command Format (5 Bytes)
Command
Class
INS
P1
P2
Lc
Buzzzer Control
0xFF
0x00
0x4c
0x00
0x00
Data
LenH
Data
LenL
Data
data
Data LenH : The high byte of the data length
Data LenL : The low byte of the data length
Data Out: SW1 SW2.
Table 5.0C: Status Code
Results
data
data
the data return for the reader
ACR122L-USB-ACS
6.4.8.
Escape APDU for Read Data two from Reader
This APDU is used to store a data up to 256 byte to the reader.
Table 5.0A: Store Data two Command Format (5 Bytes)
Command
Class
INS
P1
P2
Lc
Data
LenH
Buzzzer Control
0xFF
0x00
0x4d
0x00
0x00
Data
LenL
Data
data
Data LenH : The high byte of the data length
Data LenL : The low byte of the data length
Data Out:
Results
data
data
the data return for the reader
6.4.9.
Escape 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.
6.4.10.
Escape APDU for LCD Display (ASCII Mode)
ACR122L-USB-ACS
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
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
11
12
13
14
15
16
DISPLAY
POSITION
LCD XY
POSITION
LINE
For Fonts Set 3,
10
1st LINE
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
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
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
LINE
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
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
ACR122L-USB-ACS
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.
6.4.11.
Escape 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.
6.4.12.
Escape 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
Line Index
Pixel Data
Length
Pixel Data
P2: Line Index
To set which line to start to update the LCD Display
ACR122L-USB-ACS
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.
6.4.13.
Escape 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
0x00
0x06
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
ACR122L-USB-ACS
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
Bit6
Bit5
Bit4
Scrolling period
1 Unit
3 Units
5 Units
7 Units
17 Units
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
ACR122L-USB-ACS
Results
SW1
SW2
Meaning
Success
90
00
The operation is completed successfully.
Error
63
00
The operation is failed.
6.4.14.
Escape 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.
6.4.15.
Escape 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.
6.4.16.
Escape 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
ACR122L-USB-ACS
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.
6.4.17.
Escape 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.
6.5. Escape APDU for getting the Firmware Version
This APUD is used to get the version of the reader
ACR122L-USB-ACS
Get Firmware Version Command Format (5 Bytes)
Command
Class
INS
P1
P2
Le
Get Response
0XE0
0x00
0x00
0x18
0x00
Maximum 255 bytes
Table 16.0B: Get Firmware Version Response Format (16 bytes)
Response
Result
0XE1
0x00
0x00
0x00
Data length
data
Len
Firmware Version
Example:
Command: e0 00 00 18 00
Response: E1 00 00 00 10 41 43 52 31 32 32 4C 2D 55 53 42 20 56 33 30 31
Length of the Version:10
( ): 41 43 52 31 32 32 4C 2D 55 53 42 20 56 33 30 31
Firmware Version(ASCII): ACR122L-USB V301
Firmware Version HEX
6.6. PICC Commands for General Purposes
6.6.1.
1. Get Data
The “Get Data command” will return the serial number or ATS of the “connected PICC”.
Table 1.1-1a: Get UID APDU Format (5 Bytes)
Command
Class
INS
P1
P2
Le
Get Data
FF
CA
00
00
00
01
(Max
Length)
Table 2.1-1b: Get UID Response Format (UID + 2 Bytes) if P1 = 0x00
Response
Result
Data Out
UID
UID
(LSB)
(MSB)
SW1
SW2
Table 2.1-1c: Get ATS of a ISO 14443 A card (ATS + 2 Bytes) if P1 = 0x01
Response
Result
Data Out
ATS
SW1
SW2
ACR122L-USB-ACS
Table 2.1-1d: Response Codes
Results
SW1
SW2
Meaning
Success
90
00
The operation is completed successfully.
Warning
62
82
End of UID/ATS reached before Le bytes (Le
is greater than UID Length).
Error
6C
XX
Wrong length (wrong number Le: ‘XX’
encodes the exact number) if Le is less than
the available UID length.
Error
63
00
The operation is failed.
Error
6A
81
Function not supported
Examples:
// To get the serial number of the “connected PICC”
UINT8 GET_UID[5]={0xFF, 0xCA, 0x00, 0x00, 0x00};
// To get the ATS of the “connected ISO 14443 A PICC”
UINT8 GET_ATS[5]={0xFF, 0xCA, 0x01, 0x00, 0x00};
6.7. PICC Commands (T=CL Emulation) for MIFare 1K/4K MEMORY
Cards
6.7.1.
Load Authentication Keys
The “Load Authentication Keys command” will load the authentication keys into the reader. The
authentication keys are used to authenticate the particular sector of the Mifare 1K/4K Memory Card. Two
kinds of authentication key locations are provided, volatile and non-volatile key locations respectively.
Table 2.1-1a: Load Authentication Keys APDU Format (11 Bytes)
Command
Load
Authentication
Class
INS
P1
FF
82
Key
Structure
P2
Key
Number
Lc
Data In
06
Key
(6 bytes)
Keys
Key Structure (1 Byte):
0x00 = Key is loaded into the reader volatile memory.
Other = Reserved.
Key Number (1 Byte):
0x00 ~ 0x01 = Key Location. The keys will be disappeared once the reader is disconnected from the PC.
Key (6 Bytes):
The key value loaded into the reader. E.g. {FF FF FF FF FF FF}
ACR122L-USB-ACS
Table 2.1-1b: Load Authentication Keys Response Format (2 Bytes)
Response
Data Out
Result
SW1
SW2
Table 2.1-1c: Load Authentication Keys Response Codes
Results
SW1
SW2
Meaning
Success
90
00
The operation is completed successfully.
Error
63
00
The operation is failed.
Examples:
// Load a key {FF FF FF FF FF FF} into the key location 0x00.
APDU = {FF 82 00 00 06 FF FF FF FF FF FF}
6.7.2.
Authentication for MIFARE 1K/4K
The “Authentication command” uses the keys stored in the reader to do authentication with the MIFARE
1K/4K card (PICC). Two types of authentication keys are used, TYPE_A and TYPE_B respectively.
Table 2.2-1a: Load Authentication Keys APDU Format (6 Bytes) #Obsolete
Command
Authentication
Class
INS
P1
P2
P3
Data In
FF
88
00
Block
Number
Key
Key Number
Type
Table 2.2-1b: Load Authentication Keys APDU Format (10 Bytes)
Command
Authentication
Class
INS
P1
P2
Lc
Data In
FF
86
00
00
05
Authenticate Data
Bytes
Authenticate Data Bytes (5 Byte):
Byte1
Version
0x01
Byte 2
0x00
Byte 3
Byte 4
Byte 5
Block
Key
Type
Key
Number
Number
Block Number (1 Byte):
The memory block to be authenticated.
ACR122L-USB-ACS
For MIFARE 1K Card, it has totally 16 sectors and each sector consists of 4 consecutive blocks. E.g. Sector
0x00 consists of Blocks {0x00, 0x01, 0x02 and 0x03}; Sector 0x01 consists of Blocks {0x04, 0x05, 0x06 and
0x07}; the last sector 0x0F consists of Blocks {0x3C, 0x3D, 0x3E and 0x3F}. Once the authentication is
done successfully, there is no need to do the authentication again provided that the blocks to be accessed
are belonging to the same sector. Please refer to the MIFARE 1K/4K specification for more details.
#Once the block is authenticated successfully, all the blocks belonging to the same sector are accessible.
Key Type (1 Byte):
0x60 = Key is used as a TYPE A key for authentication.
0x61 = Key is used as a TYPE B key for authentication.
0x00 ~ 0x01 = Key Location.
Table 2.2-1b: Load Authentication Keys Response Format (2 Bytes)
Response
Result
Data Out
SW1
SW2
Table 2.2-1c: Load Authentication Keys Response Codes
Results
SW1
SW2
Meaning
Success
90
00
The operation is completed successfully.
Error
63
00
The operation is failed.
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
..
..
MIFARE 4K Memory Map.
1K
Bytes
Sectors
Data Blocks
Trailer Block
(Total 32 sectors. Each sector
consists of 4 consecutive
blocks)
(3 blocks, 16 bytes per
block)
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
ACR122L-USB-ACS
(1 block, 16 bytes)
2K
Bytes
..
..
..
..
Examples:
// To authenticate the Block 0x04 with a {TYPE A, key number 0x00}.
// PC/SC V2.01, Obsolete
APDU = {FF 88 00 04 60 00};

// To authenticate the Block 0x04 with a {TYPE A, key number 0x00}.
// PC/SC V2.07
APDU = {FF 86 00 00 05 01 00 04 60 00}
Hints:
MIFARE Ultralight does not need to do any authentication. The memory is free to access.
MIFARE Ultralight Memory Map.
Byte Number
Page
Serial Number
SN0
SN1
SN2
BCC0
2K
Bytes
Serial Number
SN3
SN4
SN5
SN6
Internal / Lock
BCC1
Internal
Lock0
Lock1
OTP
OPT0
OPT1
OTP2
OTP3
Data read/write
Data0
Data1
Data2
Data3
Data read/write
Data4
Data5
Data6
Data7
Data read/write
Data8
Data9
Data10
Data11
Data read/write
Data12
Data13
Data14
Data15
Or
Data read/write
Data16
Data17
Data18
Data19
64 bytes
Data read/write
Data20
Data21
Data22
Data23
Data read/write
Data24
Data25
Data26
Data27
10
Data read/write
Data28
Data29
Data30
Data31
11
Data read/write
Data32
Data33
Data34
Data35
12
Data read/write
Data36
Data37
Data38
Data39
13
Data read/write
Data40
Data41
Data42
Data43
14
Data read/write
Data44
Data45
Data46
Data47
15
ACR122L-USB-ACS
512 bits
6.7.3.
Read Binary Blocks
The “Read Binary Blocks command” is used for retrieving a multiple of “data blocks” from the PICC. The
data block/trailer block must be authenticated first before executing the “Read Binary Blocks command”.
Table 2.3-1a: Read Binary APDU Format (5 Bytes)
Command
Read
Blocks
Binary
Class
INS
P1
P2
Le
FF
B0
00
Block
Number
Number
of Bytes
to Read
Block Number (1 Byte):
The starting block.
Number of Bytes to Read (1 Byte):
Multiply of 16 bytes for MIFARE 1K/4K or Multiply of 4 bytes for MIFARE Ultralight
• Maximum 16 bytes for MIFARE Ultralight.
• Maximum 48 bytes for MIFARE 1K. (Multiple Blocks Mode; 3 consecutive blocks)
• Maximum 240 bytes for MIFARE 4K. (Multiple Blocks Mode; 15 consecutive blocks)
Example 1: 0x10 (16 bytes). The starting block only. (Single Block Mode)
Example 2: 0x40 (64 bytes). From the starting block to starting block+3. (Multiple Blocks Mode)
#For safety reason, the Multiple Block Mode is used for accessing Data Blocks only. The Trailer Block is not
supposed to be accessed in Multiple Blocks Mode. Please use Single Block Mode to access the Trailer
Block.
Table 2.3-1b: Read Binary Block Response Format (Multiply of 4/16 + 2 Bytes)
Response
Result
Data Out
Data (Multiply of 4/16 Bytes)
SW1
SW2
Table 2.3-1c: Read Binary Block Response Codes
Results
SW1
SW2
Meaning
Success
90
00
The operation is completed successfully.
Error
63
00
The operation is failed.
Examples:
// Read 16 bytes from the binary block 0x04 (MIFARE 1K or 4K)
APDU = {FF B0 00 04 10}
// Read 240 bytes starting from the binary block 0x80 (MIFARE 4K)
// Block 0x80 to Block 0x8E (15 blocks)
ACR122L-USB-ACS
APDU = {FF B0 00 80 F0}
6.7.4.
Update Binary Blocks
The “Update Binary Blocks command” is used for writing a multiple of “data blocks” into the PICC. The data
block/trailer block must be authenticated first before executing the “Update Binary Blocks command”.
Table 2.3-1a: Update Binary APDU Format (Multiple of 16 + 5 Bytes)
Command
Update
Blocks
Binary
Class
INS
P1
P2
Lc
Data In
FF
D6
00
Block
Number
Number
of Bytes
to Update
Block Data
(Multiple of 16 Bytes)
Block Number (1 Byte):
The starting block to be updated.
Number of Bytes to Update (1 Byte):
• Multiply of 16 bytes for MIFARE 1K/4K or 4 bytes for MIFARE Ultralight.
• Maximum 48 bytes for MIFARE 1K. (Multiple Blocks Mode; 3 consecutive blocks)
• Maximum 240 bytes for MIFARE 4K. (Multiple Blocks Mode; 15 consecutive blocks)
Example 1: 0x10 (16 bytes). The starting block only. (Single Block Mode)
Example 2: 0x30 (48 bytes). From the starting block to starting block+2. (Multiple Blocks Mode)
#For safety reason, the Multiple Block Mode is used for accessing Data Blocks only. The Trailer Block is not
supposed to be accessed in Multiple Blocks Mode. Please use Single Block Mode to access the Trailer
Block.
Block Data (Multiply of 16 + 2 Bytes, or 6 bytes):
The data to be written into the binary block/blocks.
Table 2.3-1b: Update Binary Block Response Codes (2 Bytes)
Results
SW1
SW2
Meaning
Success
90
00
The operation is completed successfully.
Error
63
00
The operation is failed.
Examples:
// Update the binary block 0x04 of MIFARE 1K/4K with Data {00 01 .. 0F}
APDU = {FF D6 00 04 10 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F}
// Update the binary block 0x04 of MIFARE Ultralight with Data {00 01 02 03}
APDU = {FF D6 00 04 04 00 01 02 03}
6.7.5.
Value Block Related Commands
The data block can be used as value block for implementing value-based applications.
6.7.5.1.
Value Block Operation
The “Value Block Operation command” is used for manipulating value-based transactions. E.g. Increment a
value of the value block etc.
Table 2.5.1-1a: Value Block Operation APDU Format (10 Bytes)
Command
Class
INS
P1
P2
Lc
Value
Block
Operation
FF
D7
00
Block
Number
05
Data In
VB_OP
VB_Value
(4 Bytes)
{MSB .. LSB}
Block Number (1 Byte):
The value block to be manipulated.
VB_OP (1 Byte):
0x00 = Store the VB_Value into the block. The block will then be converted to a value block.
0x01 = Increment the value of the value block by the VB_Value. This command is only valid for value block.
0x02 = Decrement the value of the value block by the VB_Value. This command is only valid for value block.
VB_Value (4 Bytes):
The value used for value manipulation. The value is a signed long integer (4 bytes).
E.g. 1: Decimal –4 = {0xFF, 0xFF, 0xFF, 0xFC}
VB_Value
MSB
FF
LSB
FF
FF
FC
E.g. 2: Decimal 1 = {0x00, 0x00, 0x00, 0x01}
VB_Value
MSB
00
LSB
00
00
01
Table 2.5.1-1b: Value Block Operation Response Format (2 Bytes)
Response
Result
Data Out
SW1
SW2
Table 2.5.1-1c: Value Block Operation Response Codes
Results
SW1
SW2
Meaning
Success
90
00
The
operation
successfully.
Error
63
00
The operation is failed.
6.7.5.2.
is
ACR122L-USB-ACS
completed
Read Value Block
The “Read Value Block command” is used for retrieving the value from the value block. This command is
only valid for value block.
Table 2.5.2-1a: Read Value Block APDU Format (5 Bytes)
Command
Read
Block
Value
Class
INS
P1
P2
Le
FF
B1
00
Block
Number
00
Block Number (1 Byte):
The value block to be accessed.
Table 2.5.2-1b: Read Value Block Response Format (4 + 2 Bytes)
Response
Data Out
Result
Value
SW1
SW2
{MSB .. LSB}
Value (4 Bytes):
The value returned from the card. The value is a signed long integer (4 bytes).
E.g. 1: Decimal –4 = {0xFF, 0xFF, 0xFF, 0xFC}
Value
MSB
FF
LSB
FF
FF
FC
E.g. 2: Decimal 1 = {0x00, 0x00, 0x00, 0x01}
Value
MSB
00
LSB
00
00
01
Table 2.5.3-1c: Read Value Block Response Codes
Results
SW1
SW2
Meaning
Success
90
00
The operation is completed successfully.
Error
63
00
The operation is failed.
6.7.5.3.
ACR122L-USB-ACS
Restore Value Block
The “Restore Value Block command” is used to copy a value from a value block to another value block.
Table 2.5.3-1a: Restore Value Block APDU Format (7 Bytes)
Command
Class
INS
P1
P2
Lc
Value
Block
Operation
FF
D7
00
Source
02
Block
Number
Data In
03
Target
Block
Number
Source Block Number (1 Byte): The value of the source value block will be copied to the target value
block.
Target Block Number (1 Byte): The value block to be restored. The source and target value blocks must
be in the same sector.
Table 2.5.3-1b: Restore Value Block Response Format (2 Bytes)
Response
Result
Data Out
SW1
SW2
Table 2.5.3-1c: Restore Value Block Response Codes
Results
SW1
SW2
Meaning
Success
90
00
The operation is completed successfully.
Error
63
00
The operation is failed.
Examples:
// Store a value “1” into block 0x05
APDU = {FF D7 00 05 05 00 00 00 00 01}
// Read the value block 0x05
APDU = {FF B1 00 05 00}
// Copy the value from value block 0x05 to value block 0x06
APDU = {FF D7 00 05 02 03 06}
// Increment the value block 0x05 by “5”
APDU = {FF D7 00 05 05 01 00 00 00 05}
ACR122L-USB-ACS
7.0. Basic Program Flow for Contactless Applications
ACR122L-USB-ACS
Step 0. Start the application. The reader will do the PICC Polling and scan for tags continuously.
Once the tag is found and detected, the corresponding ATR will be sent to the PC.
Step 1. Connect the “ACR122L PICC Interface” with T=1 protocol.
Step 2. Access the PICC by exchanging APDUs.
..
Step N. Disconnect the “ACR122L PICC Interface”. Shut down the application.
7.1. How to access PCSC Compliant Tags (ISO14443-4)?
Basically, all ISO 14443-4 complaint cards (PICCs) would understand
the ISO 7816-4 APDUs. The
ACR122L-USB-ACS
ACR122L-USB Reader just has to communicate with the ISO 14443-4 complaint cards through exchanging
ISO 7816-4 APDUs and Responses. ACR122L-USB will handle the ISO 14443 Parts 1-4 Protocols
internally.
MIFARE 1K, 4K, MINI and Ultralight tags are supported through the T=CL emulation. Just simply treat the
MIFARE tags as standard ISO14443-4 tags. For more information, please refer to topic “PICC Commands
for MIFARE Classic Memory Tags”
Table 3.1-1a: ISO 7816-4 APDU Format
Command
Class
INS
P1
P2
ISO 7816 Part
4 Command
Lc
Data In
Length of
the Data
In
Table 3.1-1b: ISO 7816-4 Response Format (Data + 2 Bytes)
Response
Result
Data Out
Response Data
SW1
SW2
Table 3.1-1c: Common ISO 7816-4 Response Codes
Results
SW1
SW2
Meaning
Success
90
00
The operation is completed successfully.
Error
63
00
The operation is failed.
Le
Expected
length of
the
Response
Data
Typical sequence may be:
- Present the Tag and Connect the PICC Interface
- Read / Update the memory of the tag
Step 1) Connect the Tag
The ATR of the tag is 3B 8C 80 01 50 57 26 34 D9 1C 2D 94 11 F7 71 85 76
In which,
The ATQB = 50 57 26 34 D9 1C 2D 94 11 F7 71 85. It is an ISO14443-4 Type B tag.
Step 2) Send an APDU, Get Challenge.
<< 00 84 00 00 08
>> 44 70 3D A2 6C DA 43 D5 [90 00]
Hint:
For ISO14443-4 Type A tags, the ATS can be obtained by using the APDU “FF CA 01 00 00”
Website: www.acs.com.hk
Email:
info@acs.com.hk
For Example: ISO7816-4 APDU
// To read 8 bytes from an ISO 14443-4 TypeA PICC
APDU ={80 B2 80 00 08}
Class = 0x80
INS = 0xB2
P1 = 0x80
P2 = 0x00
Lc = None
Data In = None
Le = 0x08
Answer: 01 02 03 04 05 06 07 08 [90 00]
Website: www.acs.com.hk
Email:
info@acs.com.hk
7.2. How to access DESFIRE Tags (ISO14443-4)?
The DESFIRE supports ISO7816-4 APDU Wrapping and Native modes. Once the DESFire Tag is
activated, the first APDU sent to the DESFire Tag will determine the “Command Mode”. If the first
APDU is “Native Mode”, the rest of the APDUs must be in “Native Mode” format. Similarly, If the first
APDU is “ISO7816-4 APDU Wrapping Mode”, the rest of the APDUs must be in “ISO7816-4 APDU
Wrapping Mode” format.
Example 1: DESFIRE ISO7816-4 APDU Wrapping.
// To read 8 bytes random number from an ISO 14443-4 Type A PICC (DESFIRE)
APDU = {90 0A 00 00 01 00 00}
Class = 0x90; INS = 0x0A (DESFire Instruction); P1 = 0x00; P2 = 0x00
Lc = 0x01; Data In = 0x00; Le = 0x00 (Le = 0x00 for maximum length)
Answer: F2 84 A2 42 E1 3B C4 66 91 AF[$91AF]
# Status Code{91 AF} is defined in DESFIRE specification. Please refer to the DESFIRE specification
for more details.
Example 2: DESFIRE Frame Level Chaining (ISO 7816 wrapping mode)
// In this example, the application has to do the “Frame Level Chaining”.
Website: www.acs.com.hk
Email:
info@acs.com.hk
// To get the version of the DESFIRE card.
ACR122L-USB-ACS
Step 1: Send an APDU {90 60 00 00 00} to get the first frame. INS=0x60
Answer: 04 01 01 01 00 1A 05 91 AF[$91AF]
Step 2: Send an APDU {90 AF 00 00 00} to get the second frame. INS=0xAF
Answer: 04 01 01 01 00 1A 05 91 AF[$91AF]
Step 3: Send an APDU {90 AF 00 00 00} to get the last frame. INS=0xAF
Answer: 04 2C 46 71 E6 23 80 CD 64 51 65 60 50 07 91 00[$9100]
Example 3: DESFIRE Native Command.
// We can send Native DESFire Commands to the reader without ISO7816 wrapping if we find that the
Native DESFire Commands are more easier to handle.
// To read 8 bytes random number from an ISO 14443-4 Type A PICC (DESFIRE)
APDU = {0A 00}
Answer: AF 53 44 D1 69 4C 20 B6 2B[$B62B]
In which, the first byte “AF” is the status code returned by the DESFire Card.
The Data inside the blanket [$B62B] can simply be ignored by the application.
Example 4: DESFIRE Frame Level Chaining (Native Mode)
// In this example, the application has to do the “Frame Level Chaining”.
// To get the version of the DESFIRE card.
ACR122L-USB-ACS
Step 1: Send an APDU {60} to get the first frame. INS=0x60
Answer: AF 04 01 01 01 00 1A 05[$1A05]
Step 2: Send an APDU {AF} to get the second frame. INS=0xAF
Answer: AF 04 01 01 01 00 1A 05[$1A05]
Step 3: Send an APDU {AF} to get the last frame. INS=0xAF
Answer: 00 04 2C 46 71 E6 23 80 CD 64 51 65 60 50 07[$5007]
Hints:
In DESFIRE Native Mode, the status code [90 00] will not be added to the response if the response
length is greater than 1. If the response length is less than 2, the status code [90 00] will be added in
order to meet the requirement of PCSC. The minimum response length is 2.
7.3. How to access FeliCa Tags (ISO18092)?
Typical sequence may be:
- Present the FeliCa Tag and Connect the PICC Interface
- Read / Update the memory of the tag
Step 1) Connect the Tag
The ATR = 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 F0 11 00 00 00 00 8A
ACR122L-USB-ACS
In which,
F0 11 = FeliCa 212K
Step 2) Read the memory block without using Pseudo APDU.
<< 10 06 [8-byte NFC ID] 01 09 01 01 80 00
>> 0C 07 01 10 13 00 D9 09 B0 03 01 A6 90 00[$9000]
Or
Step 2) Read the memory block using Pseudo APDU.
<< FF 00 00 00 [13] D4 40 01 10 06 [8-byte NFC ID] 01 09 01 01 80 00
In which,
[13] is the length of the Pseudo Data “D4 40 01.. 80 00”
D4 40 01 is the Data Exchange Command
>> D5 41 00 0C 07 01 10 13 00 D9 09 B0 03 01 A6 90 00[$9000]
In which, D5 41 00 is the Data Exchange Response
Hint:
The NFC ID can be obtained by using the APDU “FF CA 00 00 00”
#please refer to the FeliCa specification for more detailed information.
7.4. How to access NFC Forum Type 1 Tags (ISO18092)? E.g.
Jewel and Topaz Tags
Typical sequence may be:
- Present the Topaz Tag and Connect the PICC Interface
- Read / Update the memory of the tag
Step 1) Connect the Tag
ACR122L-USB-ACS
The ATR = 3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 F0 04 00 00 00 00 9F
In which,
F0 04 = Topaz
Step 2) Read the memory address 08 (Block 1: Byte-0) without using Pseudo
APDU
<< 01 08
>> 18 [90 00]
In which, Response Data = 18
Or
Step 2) Read the memory address 08 (Block 1: Byte-0) using Pseudo APDU
<< FF 00 00 00 [05] D4 40 01 01 08
In which,
[05] is the length of the Pseudo APDU Data “D4 40 01 01 08”
D4 40 01 is the DataExchange Command.
01 08 is the data to be sent to the tag.
>> D5 41 00 18 [90 00]
In which, Response Data = 18
Tip: To read all the memory content of the tag
ACR122L-USB-ACS
<< 00
>> 11 49 18 26 .. 00 [90 00]
Step 3) Update the memory address 08(Block 1: Byte-0)with the data FF
<< 53 08 FF
>> FF [90 00]
In which, Response Data = FF
Topaz Memory Map.
Memory Address = Block No * 8 + Byte No
e.g. Memory Address 08 (hex) = 1 x 8 + 0 = Block 1: Byte-0 = Data0
e.g. Memory Address 10 (hex) = 2 x 8 + 0 = Block 2: Byte-0 = Data8
#please refer to the Jewel and Topaz specification for more detailed information.
ACR122L-USB-ACS
8.0. Basic Program Flow for SAM Applications
Step 0. Start the application. The reader will do the PICC Polling and scan for tags
continuously. Once the tag is found and detected, the corresponding ATR will be sent to the
PC.
Step 1. Connect the “ACR122L SAM Interface N( N = 0, 1, 2 )” with T=0 or T=1protocol.
Step 2. Access the PICC by exchanging APDUs.
..
Step N. Disconnect the “ACR122L SAM Interface N( N = 0, 1, 2 )”. Shut down the application.
8.1. How to access ACOS3 SAM Cards (ISO7816)?
ACR122L-USB-ACS
Step 1) Connect the Tag
The ATR of the tag is 3B BE 18 00 00 41 01 38 00 00 01 00 12 34 56 78 01 90
00
In which,
TD1 = 00 and TD2 is absent ,So the SAM Card is a T=0 SAM Card
2) Get a random for the SAM Card
<< 80 84 00 00 08
>> 5F 9F 97 C6 93 61 B5 AD 90 00[$9000]
3) Create a file at the SAM Card and Open it
<<80 20 07 00 08 41 43 4F 53 54 45 53 54
>>90 00[$9000]
<<80 A4 00 00 02 FF 02
>>90 00[$9000]
<<80 D2 00 00 04 00 00 01 00
>>90 00[$9000]
<<80 A4 00 00 02 FF 04
>>90 00[$9000]
<<80 D2 00 00 06 ff 01 00 00 55 55
>>90 00[$9000]
<<80 A4 00 00 02 55 55
>>91 00[$9000]
File name is 55 55
4)Write a date to the file in 3)step
<<80 d2 00 00 08 01 02 03 04 05 06 07 08
>>90 00[$9000]
5) Read a date from a file
<<80 b2 00 00 08
>>01 02 03 04 05 06 07 08 90 00[$9000]
ACR122L-USB-ACS
9.0. Mechanical Design
ACR122L-USB-ACS
10.0. Technical Specification
ACR122L-USB-ACS
Universal Serial Bus Interface
Power source ....................................... From USB
Speed................................................... 12 Mbps (Full Speed)
Supply Voltage ..................................... Regulated 5V DC
Supply Current ..................................... 250mA (max); 150mA (normal)
Contactless Smart Card Interface
Standard............................................... ISO 14443 A & B Parts 1-4
Protocol ................................................ ISO14443 T=CL for ISO14443-4 compliant cards and T=CL Emulation for MIFARE
1K/4K, FeliCa, ISO18092.
Smart card read / write speed ............... 106 kbps for ISO14443 Type A & Type B, 212 kbps and 424 kbps for FeliCa,
Contact Smart Card Interface
Standard............................................... ISO 7816 1/2/3, Class A, B (5V, 3V), T=0 and T=1
Supply current ...................................... max. 60mA
Smart card read / write speed ............... 9,600 – 115,200 bps
Short circuit protection ......................... +5V / GND on all pins
CLK frequency...................................... 3.58 MHz
Card connector ..................................... Landing
Card insertion cycles ............................ min. 300,000
SAM Card Interface
Standard SAM Socket
Case
Dimensions........................................... 133 mm (L) x 88.66 mm (W) x 19 mm (H)
Material ................................................ ABS
Color..................................................... Black
Modulation............................................ ASK and BPSK
Antenna
Antenna Size ........................................ 64mm x 46mm
Operating distance ............................... up to 50 mm (depended on tag type)
Operating Frequency for Contactless Cards Access
Operating Frequency ............................ 13.56 MHz
Built-in peripherals
LED ...................................................... Green, Blue Orange and Red
Buzzer .................................................. Monotone
Operating Conditions
Temperature......................................... 0 - 50° C
Humidity ............................................... 10% - 80%
Cable Connector
Length .................................................. 1.5M (USB)
Standard/Certifications
CE, FCC, VCCI
OS
Windows 98, ME, 2K, XP
OEM
OEM-Logo possible, customer-specific colors, casing, and card connector
FCC Caution:
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.
Note: This equipment has been tested and found to comply with the limits for a Class B digital
device, pursuant to part 15 of the FCC Rules. These limits are designed to provide reasonable
protection against harmful interference in a residential installation. This equipment generates,
uses and can radiate radio frequency energy and, if not installed and used in accordance with
the instructions, may cause harmful interference to radio communications. However, there is
no guarantee that interference will not occur in a particular installation. If this equipment does
cause harmful interference to radio or television reception, which can be determined by turning
the equipment off and on, the user is encouraged to try to correct the interference by one or
more of the following measures:
—Reorient or relocate the receiving antenna.
—Increase the separation between the equipment and receiver.
—Connect the equipment into an outlet on a circuit different from that to which the receiver is
connected.
—Consult the dealer or an experienced radio/TV technician for help.

Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.6
Linearized                      : Yes
Encryption                      : Standard V2.3 (128-bit)
User Access                     : Print, Extract, Print high-res
XMP Toolkit                     : Adobe XMP Core 4.0-c316 44.253921, Sun Oct 01 2006 17:14:39
Create Date                     : 2011:02:14 17:25:53Z
Creator Tool                    : PScript5.dll Version 5.2.2
Modify Date                     : 2011:02:15 17:09:15-08:00
Metadata Date                   : 2011:02:15 17:09:15-08:00
Format                          : application/pdf
Creator                         : macross
Title                           : Microsoft Word - ACR1222LU Design Specification_V1.01.doc
Producer                        : GPL Ghostscript 8.15
Document ID                     : uuid:54d4c2e5-8860-437d-9744-a7c48a4d12cc
Instance ID                     : uuid:2f7d90fe-e6b5-4034-a146-7a4bf62b83cb
Has XFA                         : No
Page Count                      : 77
Author                          : macross
EXIF Metadata provided by EXIF.tools
FCC ID Filing: V5MACR1222LD1

Navigation menu