ACR128 Dual Interface Smart Card Reader Table of Contents 1.0 Introduction ..............................3 Features ............................3 2.0 Terms Used..............................4 3.0 Architecture of ACR128 ..........................5 3.1 Communication between the PCSC Driver and the ICC, PICC & SAM..........5 3.2 Communication between the PCSC Driver and the ACR128U Peripherals ..........6 3.3 ACR128 Escape Command ........................6...
ACR128 Dual Interface Smart Card Reader 1.0 Introduction The ACR128 is a powerful and efficient dual interface smart card reader which can be used to access ISO 7816 MCU cards and Mifare, ISO14443 Type A and B Contactless Cards. It makes use of the Microsoft CCID class driver and USB interface to connect to a PC and accept card commands from the computer application.
ACR128 Dual Interface Smart Card Reader 2.0 Terms Used APDU: This term stands for Application Protocol Data Unit. An APDU is a communication unit, or a packet of data exchanged between two applications, in this case, a reader and a card.
ACR128 Dual Interface Smart Card Reader 3.0 Architecture of ACR128 3.1 Communication between the PCSC Driver and the ICC, PICC & SAM Figure 1.0 ACR128 Architecture ACR128 API Version 1.7 May 2008 Page 5 of 36...
ACR128 Dual Interface Smart Card Reader 3.2 Communication between the PCSC Driver and the ACR128U Peripherals Figure 2.0 ACR128 Peripherals and PC/SC Drivers 3.3 ACR128 Escape Command To send a direct command to the device, the driver uses the PC/SC SCardControl API. The...
ACR128 Dual Interface Smart Card Reader 4.0 Hardware Description 4.1 Reader Firmware Version To retrieve the reader firmware version of the device, issue the following command: ACR128 Escape Command Read Firmware Version Response Response Data Firmware Version [14h bytes] [0Ah bytes]...
Page 8
ACR128 Dual Interface Smart Card Reader Table 1: LED Indicator Reader States Red LED Green LED PICC Indicator Indicator 1. No PICC is found A single pulse per ~ 10 seconds 2. PICC is present but not activated Toggling ~ 0.3 Hz 3.
ACR128 Dual Interface Smart Card Reader 4.3 Buzzer A monotone buzzer is used to show the “Card Insertion” and “Card Removal” events. Table 3: Buzzer Event Events Buzzer 1. Card Insertion Event (ICC or PICC) Beep 2. Card Removal Event (ICC or PICC) Beep 3.
Page 10
ACR128 Dual Interface Smart Card Reader Table 5: Default LED and Buzzer Behaviors MODE Description Bit 0 ICC Activation Status LED To show the activation status of the ICC interface. 1 = Enable; 0 =Disable Bit 1 PICC Polling Status LED To show the PICC Polling Status.
Reference voltage level for power supply NOTE: In order for the ACR128U to function properly through USB interface, the ACS proprietary device driver has to be installed. Please refer to the Device Driver Installation Guide for more details. [VID = 0x072F; PID = 0x2100] 4.5 ICC Interface (Contact Smart Card)
ACR128 Dual Interface Smart Card Reader 5.0 PICC Interface Description 5.1 ATR Generation If the reader detects a PICC, an ATR will be sent to the PCSC driver for identifying the PICC. 5.1.1 ATR format for ISO 14443 Part 3 PICCs.
ACR128 Dual Interface Smart Card Reader 5.1.2 ATR format for ISO 14443 Part 4 PICCs. Table 8: ISO 14443 Part 4 ATR Format Byte Value Designation Description (Hex) Initial Header Higher nibble 8 means there are no TA1, TB1 and TC1.
ACR128 Dual Interface Smart Card Reader 5.2 ICC and PICC Interfaces Conflict Handling There are three different card interfaces available for ACR128 – one contact card interface (ICC), one contactless card interface (PICC) and one SAM card interface (SAM). Basically, all interfaces can operate at the same time.
ACR128 Dual Interface Smart Card Reader To enforce ICC and PICC Exclusive Mode, issue the following command: ACR128 Escape Command Enforce ICC & PICC Exclusive New Mode Mode Configuration Table 9: Mode Configuration Setting Mode Description Both ICC & PICC interfaces can be activated at the same...
Page 16
ACR128 Dual Interface Smart Card Reader Table 11: Register 0x23 –Automatic PICC Polling (Default value = 0x97 or 0x99 or 9F) Description Description Bit 0 Auto PICC Polling 1 = Enable; 0 =Disable Bit 1 Turn off Antenna Field if no PICC is found 1 = Enable;...
ACR128 Dual Interface Smart Card Reader 5.4 Manual PICC Polling If automatic PICC Polling is disabled, this command can be issued to determine if any PICC is within the detection range of the reader. To manually detect PICC within range of the built-in antenna, issue the following command:...
ACR128 Dual Interface Smart Card Reader To read the existing FWI, Polling Timeout and Frame Size of the activated PICC, issue the following command: ACR128 Escape Command Change the FWI & FRAME SIZE Response Response Data Polling Frame Timeout Size NOTE: Only the activated PICC will be affected by this command.
ACR128 Dual Interface Smart Card Reader Status Antenna is turned off Antenna if turned on NOTE: Make sure that the Auto PICC Polling is disabled first before turning off the antenna field. To execute the manual PICC Polling, the antenna field must be enabled first.
ACR128 Dual Interface Smart Card Reader Response Response Data Antenna Setting Gain Mode NOTE: The ANT_SETTING and RX_GAIN may have to be modified to access some non-standard PICCs. 5.8 PICC Setting To modify the PICC setting of the device, issue the following command:...
ACR128 Dual Interface Smart Card Reader 5.9 PICC Polling For Specific PICC Types The PICC polling function can be configured to specifically detect ISO14443 Type A PICCs, ISO14443 Type B PICCs, or both types. To configure the device to detect specific PICC within antenna range, issue the following command:...
ACR128 Dual Interface Smart Card Reader Table 18: Error Handling Level Values MODE Description Bit5– Bit4 From PCD to PICC Bit1 – Bit 0 From PICC to PCD Default Value, Maximum Level Minimum Value No Error Handling To read the existing Error Handling Level of the device, issue the following command:...
ACR128 Dual Interface Smart Card Reader Response Response Data Max Conn Current Conn Speed Speed Use Table 19 to format and interpret the Maximum and Current Connection Speed values, respectively. NOTE: Normally, the application should know the maximum connection speed of the PICCs being used. The environment also affects the maximum achievable speed.
ACR128 Dual Interface Smart Card Reader 5.13 Refresh the Interface Status To refresh the reader interface status in the device, issue the following command: ACR128 Escape Command Refresh Interface Status Response Response Data Table 20: Reader Interface Values Description Bit0...
ACR128 Dual Interface Smart Card Reader 6.0 PICC Commands for General Purposes 6.1 Get Data The “Get Data command” will return the serial number or ATS of the connected PICC. Table 21-a: Get UID APDU Format (5 Bytes) Command Class...
ACR128 Dual Interface Smart Card Reader 7.0 PICC Commands (T=CL Emulation) for MiFare 1K/4K MEMORY Cards 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.
ACR128 Dual Interface Smart Card Reader 7.2 Authentication 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. Table 23-a: Load Authentication Keys APDU Format (6 Bytes) #Obsolete...
ACR128 Dual Interface Smart Card Reader 7.3 Read Binary Blocks The Read Binary Blocks command is used for retrieving multiple data blocks from the PICC. The data block/trailer block must be authenticated first before executing the Read Binary Blocks command.
ACR128 Dual Interface Smart Card Reader 7.4 Update Binary Blocks The Update Binary Blocks command is used for writing multiple data blocks into the PICC. The data block/trailer block must be authenticated first before executing the Update Binary Blocks command.
ACR128 Dual Interface Smart Card Reader 7.5 Value Block Related Commands The data block can be used as value block for implementing value-based applications. 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.
ACR128 Dual Interface Smart Card Reader 7.5.2 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 27-a: Read Value Block APDU Format (5 Bytes)
ACR128 Dual Interface Smart Card Reader 7.5.3 Restore Value Block The Restore Value Block command is used to copy a value from a value block to another value block. Table 28-a: Restore Value Block APDU Format (7 Bytes) Command Class...
ACR128 Dual Interface Smart Card Reader 8.0 PICC Commands for ISO 14443-4 Compliant Cards Basically, all ISO 14443-4 complaint cards (PICCs) can interpret the ISO 7816-4 APDUs. The ACR128U Reader has to communicate with the ISO 14443-4 complaint cards by using ISO 7816-4 APDUs and responses.
Page 35
ACR128 Dual Interface Smart Card Reader Example 3: DESFIRE Frame Level Chaining (ISO 7816 wrapping mode). In this example, the application has to do the “Frame Level Chaining” to get the version of the DESFIRE card. Step 1: Send an APDU {90 60 00 00 00} to get the first frame. INS=0x60 Answer: 04 01 01 00 02 18 05 91 AF [$91AF] Step 2: Send an APDU {90 AF 00 00 00} to get the second frame.
ACR128 Dual Interface Smart Card Reader Appendix A: E-passport 1. Recommended ICAO E-Passport Placement 2. In case the E-Passport is not accessible, try to place the E-Passport by 5~10mm above the reader. 3. In case the E-Passport is still not accessible, please change operating speed to 106kbps. Set the Connection Speed to default 106k bps = {24 01 FF}.
Need help?
Do you have a question about the ACR128 and is the answer not in the manual?
Questions and answers