ACR1283L Standalone Contactless Reader Reference Manual V1.00 Subject to change without prior notice info@acs.com.hk www.acs.com.
Table of Contents 1.0. Introduction ............................................................................................................... 4 2.0. Features ..................................................................................................................... 5 3.0. Architecture ............................................................................................................... 7 4.0. Hardware Design ....................................................................
List of Tables Table 1 : USB Interface Wiring ............................................................................................................... 8 Table 2 : Mifare 1K Memory Map ......................................................................................................... 23 Table 3 : Mifare 4K Memory Map ......................................................................................................... 23 Table 4 : Mifare Ultralight Memory Map .................................
1.0. Introduction The ACR1283L Standalone Contactless Reader is a device that is used for accessing contactless cards. Its contactless interface is used to access ISO 14443 Types A and B cards and Mifare series. ACR1283L also has Secure Access Module (SAM) interface that ensures a high level of security in contactless smart card applications. ACR1283L can operate in both PC-linked and Standalone mode. In PC-linked application, the ACR1283L serves as an intermediary device between the PC and the smart card.
2.0. Features • • • • • Dual Operation Modes: o PC-linked o Standalone PC-linked Operation: o USB 2.0 Full Speed Interface o CCID Compliance o Supports PC/SC o Supports CT-API (through wrapper on top of PC/SC) Standalone Operation: o Support for third-party application programming o Over 400 KB memory space for third-party application o Over 500 KB memory space for data storage o Supported development platform: IAR Embedded Workbench, Version 5.
• Compliant with the following standards: o ISO 14443 o CE o FCC o PC/SC o CCID o Microsoft® WHQL o RoHS Page 6 of 55 ACR1283L – Reference Manual Version 1.00 info@acs.com.hk www.acs.com.
3.0. Architecture The protocol between ACR1283L and the PC is using CCID protocol. All the communication between PICC and SAM are PCSC-compliant. Figure 1: ACR1283L Architecture Page 7 of 55 ACR1283L – Reference Manual Version 1.00 info@acs.com.hk www.acs.com.
4.0. Hardware Design 4.1. USB The ACR1283L is connected to a computer through a USB following the USB standard. 4.1.1. Communication Parameters The ACR1283L is connected to a computer through USB as specified in the USB Specification 2.0. The ACR1283L is working in full speed mode, i.e. 12 Mbps. Pin Signal Function 1 VBUS 2 D- Differential signal transmits data between ACR1283L and PC. 3 D+ Differential signal transmits data between ACR1283L and PC. 4 GND +5 V power supply for the reader.
and C7 (I/O) are used. A frequency of 4.8 MHz is applied to the CLK signal (C3). 4.3. Contactless Smart Card Interface The interface between the ACR1283L and the contactless interface follows the specifications of ISO 14443 with certain restrictions or enhancements to increase the practical functionality of the ACR1283L. 4.3.1. Carrier Frequency The carrier frequency for ACR1283L is 13.56 MHz. 4.3.2. Card Polling The ACR1283L automatically polls the contactless cards that are within the field.
5.0. Software Design 5.1. CCID Protocol ACR1283L shall interface with the host with USB connection. A specification, namely CCID, has been released within the industry defining such a protocol for the USB chip-card interface devices. CCID covers all the protocols required for operating smart cards and PIN. The configurations and usage of USB endpoints on ACR1283L shall follow CCID section 3. An overview is summarized below: • Control Commands are sent on control pipe (default pipe).
Offset Field Size Value Description 32 dwSynchProtocols 4 00000000h ACR1283L does not support synchronous card. 36 dwMechanical 4 00000000h ACR1283L does not support special mechanical characteristics. ACR1283L supports the following features: 40 4 dwFeatures 00040040h • Automatic parameters negotiation made by the CCID • Short and Extended APDU level exchange with CCID 44 dwMaxCCIDMessageLength 4 0000020Ah Maximum message length accepted by ACR1283L is 522 bytes.
The response to this message is the RDR_to_PC_DataBlock message and the data returned is the Answer To Reset (ATR) data. 5.2.1.2. PC_to_RDR_IccPowerOff This command is used to deactivate the card slot. Offset Field Size Value Description 0 bMessageType 1 63h 1 dwLength 4 00000000h 5 bSlot 1 Identifies the slot number for this command. 6 bSeq 1 Sequence number for command. 7 abRFU 3 Reserved for future use. Size of extra bytes of this message.
The response to this message is the RDR_to_PC_DataBlock message. 5.2.1.5. PC_to_RDR_Escape This command is used to access extended features. Offset Field Size Value Description 0 bMessageType 1 6Bh 1 dwLength 4 Size of abData field of this message. 5 bSlot 1 Identifies the slot number for this command. 6 bSeq 1 Sequence number for command. 7 abRFU 3 Reserved for Future Use. 10 abData Byte array Data block sent to the CCID.
Offset Field Size Value Description 1 dwLength 4 Size of extra bytes of this message. 5 bSlot 1 Identifies the slot number for this command. 6 bSeq 1 Sequence number for command. 7 bProtocolNum 1 Specifies what protocol data structure follows.
Protocol Data Structure for Protocol T=1 (dwLength=00000007h) Offset 10 Field bmFindexDindex Size Value Description 1 B7-4 – FI – Index into the table 7 in ISO/IEC 7816-3:1997 selecting a clock rate conversion factor B3-0 – DI - Index into the table 8 in ISO/IEC 7816-3:1997 selecting a baud rate conversion factor 11 BmTCCKST1 1 B7-2 – 000100b B0 – Checksum type (b0=0 for LRC, b0=1 for CRC B1 – Convention used (b1=0 for direct, b1=1 for inverse) Note: The CCID ignores this bit.
Offset Field Size 8 bError 1 9 bChainParameter 1 10 abData Byte array 5.2.2.2. Value Description Slot error register as defined in CCID section 4.2.1 and this specification section 5.2.8. 00h RFU (TPDU exchange level). This field contains the data returned by the CCID. RDR_to_PC_Escape This message is sent by ACR1283L in response to PC_to_RDR_Escape messages. Offset Field Size Value 0 bMessageType 1 83h 1 dwLength 4 Size of abData field of this message.
5.2.2.4. RDR_to_PC_Parameters This message is sent by ACR1283L in response to PC_to_RDR_GetParameters, PC_to_RDR_ResetParameters and PC_to_RDR_SetParameters messages. Offset Field Size Value 0 bMessageType 1 82h 1 dwLength 4 Size of extra bytes of this message. 5 bSlot 1 Same value as in Bulk-OUT message. 6 bSeq 1 Same value as in Bulk-OUT message. 7 bStatus 1 Slot status register as defined in CCID section 4.2.1. 8 bError 1 Slot error register as defined in CCID section 4.2.
Byte Value (Hex) Designation Description 80 T1 Category indicator byte, 80 means A status indicator may be present in an optional COMPACT-TLV data object. 4 to 3+N 4F Application identifier Presence Indicator. 0C Length. RID Tk SS Registered Application Provider Identifier (RID) # A0 00 00 03 06 Byte for standard. C0 .. C1 Bytes for card name.
Byte Value (Hex) XX XX Designation Description ISO 14443-A: The historical bytes from ATS response. Refer to the ISO 14443-4 specification.
If P1 = 0x01h, Get ATS of a ISO 14443 A card (ATS + 2 Bytes) Response Data Out Result ATS SW1 SW2 Response Codes Results SW1 SW2 Meaning Success 90 00h The operation is completed successfully. Warning 62 82h End of UID/ATS reached before Le bytes (Le is greater than UID Length). Error 6C XXh Wrong length (wrong number Le: ‘XXh’ encodes the exact number) if Le is less than the available UID length. Error 63 00h The operation is failed. Error 6A 81h Function not supported.
0x20h (Session Key) = Volatile memory for storing a temporally key. The key will be disappeared once the reader is disconnected from the PC. Only 1 volatile key is provided. The volatile key can be used as a session key for different sessions. Note: Default Value = {FF FF FF FF FF FFh} Key (6 Bytes): The key value loaded into the reader, e.g.
Load Authentication Keys APDU Format (10 Bytes) Command Class INS P1 P2 Lc Data In Authentication FFh 86h 00h 00h 05h Authenticate Data Bytes Authenticate Data Bytes (5 Byte) Byte1 Byte 2 Byte 3 Byte 4 Byte 5 Version 0x01h 0x00h Block Number Key Type Key Number Where: Block Number (1 Byte): The memory block to be authenticated. For Mifare 1K card, it has totally 16 sectors and each sector consists of 4 consecutive blocks.
Sectors (Total 16 sectors. Each sector consists of 4 consecutive blocks) Data Blocks (3 blocks, 16 bytes per block) Trailer Block (1 block, 16 bytes) Sector 0 0x00h ~ 0x02h 0x03h Sector 1 0x04h ~ 0x06h 0x07h .. 1K Bytes .. Sector 14 0x38h ~ 0x0Ah 0x3Bh Sector 15 0x3Ch ~ 0x3Eh 0x3Fh Table 2: Mifare 1K Memory Map Sectors (Total 32 sectors.
// To authenticate the Block 0x04h with a {TYPE A, key number 0x00h}. // PC/SC V2.07 APDU = {FF 86 00 00 05 01 00 04 60 00h} Note: Mifare Ultralight does not need to do any authentication. The memory is free to access.
• 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: 0x10h (16 bytes). The starting block only. (Single Block Mode) Example 2: 0x40h (64 bytes). From the starting block to starting block+3. (Multiple Blocks Mode) Note: For safety reason, the Multiple Block Mode is used for accessing Data Blocks only.
• 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: 0x10h (16 bytes). The starting block only. (Single Block Mode) Example 2: 0x30h (48 bytes). From the starting block to starting block+2. (Multiple Blocks Mode) Note: 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.
integer (4 bytes). Example 1: Decimal –4 = {0xFFh, 0xFFh, 0xFFh, 0xFCh} VB_Value MSB FFh LSB FFh FFh FCh Example 2: Decimal 1 = {0x00h, 0x00h, 0x00h, 0x01h} VB_Value MSB 00h LSB 00h 00h 01h Value Block Operation Response Format (2 Bytes) Response Result Data Out SW1 SW2 Value Block Operation Response Codes Results SW1 SW2 Meaning Success 90 00h The operation is completed successfully. Error 63 00h The operation is failed. 5.3.2.2.6.
bytes). Example 1: Decimal –4 = {0xFFh, 0xFFh, 0xFFh, 0xFCh} Value MSB FFh LSB FFh FFh FCh Example 2: Decimal 1 = {0x00h, 0x00h, 0x00h, 0x01h} Value MSB 00h LSB 00h 00h 01h Read Value Block Response Codes Results SW1 SW2 Meaning Success 90 00h The operation is completed successfully. Error 63 00h The operation is failed. 5.3.2.2.7. Copy Value Block This command is used to copy a value from a value block to another value block.
Examples: // Store a value “1” into block 0x05h APDU = {FF D7 00 05 05 00 00 00 00 01h} // Read the value block 0x05h APDU = {FF B1 00 05 00h} // Copy the value from value block 0x05h to value block 0x06h APDU = {FF D7 00 05 02 03 06h} // Increment the value block 0x05h by “5” APDU = {FF D7 00 05 05 01 00 00 00 05h} 5.3.2.3. Access PCSC-compliant Tags (ISO 14443-4) Basically, all ISO 14443-4 compliant cards (PICCs) would understand the ISO 7816-4 APDUs.
Step 1: Connect the Tag. The ATR of the tag is 3B 88 80 01 00 00 00 00 33 81 81 00 3Ah In which, The Application Data of ATQB = 00 00 00 00h, protocol information of ATQB = 33 81 81h. It is an ISO 14443-4 Type B tag. Step 2: Send an APDU, Get Challenge. << 00 84 00 00 08h >> 1A F7 F3 1B CD 2B A9 58h [90 00h] Note: For ISO 14443-4 Type A tags, the ATS can be obtained by using the APDU “FF CA 01 00 00h.
5.4. Peripherals Control The reader’s peripherals control commands are implemented by using PC_to_RDR_Escape. The vendor IOCTL for the escape commands is 3500. 5.4.1. Get Firmware Version This command is used to get the reader’s firmware message.
5.4.2. Set Default LED and Buzzer Behaviors This command is used to set the set the default behaviors for LEDs and Buzzer. Set Default LED and Buzzer Behaviors Format (6 Bytes) Command Class INS P1 P2 Lc Data In Set Default LED and Buzzer Behaviors 0xE0h 0x00h 0x00h 0x21h 0x01h Default Behaviors Default Behaviors (1 Byte) Default Behaviors Mode Bit 0 RFU Bit 1 PICC Polling Status LED Bit 2 PICC Activation Status LED To show the activation status of the PICC interface.
5.4.3. Read Default LED and Buzzer Behaviors This command is used to set the read the current default behaviors for LEDs and Buzzer.
5.4.4. Set Automatic PICC Polling This command is used to set the reader’s polling mode. Whenever the reader is connected to the PC, the PICC polling function will start the PICC scanning to determine if a PICC is placed on/removed from the built-in antenna. We can send a command to disable the PICC polling function. The command is sent through the PC/SC Escape Command interface.
time of PICC Polling will become longer. The Idle Current Consumption in Power Saving Mode is about 60 mA, while the Idle Current Consumption in Non-Power Saving mode is about 130 mA. Idle Current Consumption = PICC is not activated. 3. The reader will activate the ISO 14443A-4 mode of the “ISO 14443A-4 compliant PICC” automatically. Type B PICC will not be affected by this option. 4. The JCOP30 card comes with two modes: ISO 14443A-3 (Mifare 1K) and ISO 14443A-4 modes.
5.4.5. Read Automatic PICC Polling This command is used to check the current automatic PICC polling setting.
5.4.6. Set the PICC Operating Parameter This command is used to set the PICC operating parameter.
5.4.7. Read the PICC Operating Parameter This command is used to check current PICC operating parameter.
5.4.8. Set Auto PPS This command is used to set the reader’s PPS setting. Whenever a PICC is recognized, the reader tries to change the communication speed between the PCD and PICC defined by the maximum connection speed. If the card does not support the proposed connection speed, the reader tries to connect the card with a slower speed setting.
5.4.9. Read Auto PPS This command is used to check current auto PPS setting.
5.4.10. Set Antenna Field This command is used for turning on/off the antenna field.
5.4.11. Read Antenna Field Status This command is used to check current status of the antenna field.
5.4.12. Two LEDs Control This command is used to control the LEDs output.
5.4.13. LED Status This command is used to check the status of the existing LEDs.
5.4.14. Four LEDs Control This command is used to control the four LEDs.
5.4.15. Buzzer Control This command is used to control the buzzer output.
5.4.16. LCD Control Command 5.4.16.1. Clear LCD This command is used to clear all contents shown in the LCD. Clear LCD Command Format (5 Bytes) Command Class INS P1 P2 Lc Clear LCD 0xFFh 0x00h 0x60h 0x00h 0x00h Where: Data Out: SW1 SW2 Status Code Results SW1 SW2 Meaning Success 90 00h The operation is completed successfully. Error 63 00h The operation is failed. 5.4.16.2. LCD Display (ASCII Mode) This command is used to display LCD message in ASCII mode.
Please follow the DDRAM table below for the LCD character position’s representation.
Please follow the fonts tables (selected by INS Bit 4 - 5) below for the LCD character index. Note: 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 C Character Set B Figure 2: LCD Display Font Table Where: Data Out: SW1 SW2 Status Code Results SW1 SW2 Meaning Success 90 00h The operation is completed successfully. Error 63 00h The operation is failed. 5.4.16.3.
P2: CMD Item Description Bit 0 Character Bold Font 1 = Bold; 0 = Normal Bit 1 - 7 Reserved - 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. 1 2 3 4 5 6 7 8 9 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 Where: Lc: The length of the LCD message (max.
Please refer to below LCD display position. Lc: Pixel Data Length. The length of the pixel data (max. 0x80h) Data In: Pixel Data. The pixel data to be sent to LCD for display.
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 Where: X Position: Horizontal start up position. Please refer to the LCD display position below. Y Position: Vertical start up position. Please refer to the LCD display position below.
Bit7 Bit6 Bit5 Bit4 Scrolling Period 0 1 1 1 23 Units 1 0 0 0 129 Units 1 0 0 1 131 Units 1 0 1 0 133 Units 1 0 1 1 135 Units 1 1 0 0 145 Units 1 1 0 1 147 Units 1 1 1 0 149 Units 1 1 1 1 151 Units Table 5: Scrolling Period Bit1 Bit0 Scrolling Direction 0 0 From Left to Right 0 1 From Right to Left 1 0 From Top to Bottom 1 1 From Bottom to Top Table 6: Scrolling Direction Where: Data Out: SW1 SW2 Status Code Results SW1 SW2 Meaning Success
Status Code Results SW1 SW2 Meaning Success 90 00h The operation is completed successfully. Error 63 00h The operation is failed. 5.4.16.7. Stop LCD Scrolling This command is used to stop the LCD scrolling set before the LCD display goes back to normal display position.
5.4.16.9. LCD Backlight Control This command is used to control the LCD backlight. LCD Backlight Control Command Format (5 Bytes) Command Class INS P1 P2 Lc LCD Backlight Control 0xFFh 0x00h 0x64h Backlight Control 0x00h Where: P2: Backlight Control Backlight Control Format (1 Byte) CMD Description 0x00h LCD Backlight Off 0xFFh LCD Backlight On Where: Data Out: SW1 SW2 Status Code Results SW1 SW2 Meaning Success 90 00h The operation is completed successfully.