REFERENCE MANUAL ACR30 Advanced Card Systems Ltd. Website: www.acs.com.hk Email: info@acs.com.
ACR30 Table of Contents 1.0. Introduction ............................................................................................................... 5 2.0. Features ..................................................................................................................... 6 3.0. Supported Card Types .............................................................................................. 7 3.1. Memory-based smart cards (synchronous interface) (*) .................................
ACR30 9.1.3. SELECT_CARD_TYPE ..............................................................................................21 9.1.4. RESET ........................................................................................................................21 9.1.5. SET_NOTIFICATION ..................................................................................................22 9.1.6. SET_OPTION ...................................................................................................
ACR30 9.2.6. Security Application Module (SAM) (**) ......................................................................38 9.2.6.1. ACTIVATE_SAM (**) .................................................................................................. 38 9.2.6.2. DEACTIVATE_SAM (**) ............................................................................................. 39 9.2.6.3. EXCHANGE_SAM_APDU (**) ................................................................................... 39 9.2.
ACR30 1.0. Introduction The ACS Smart Card Reader/Writer ACR30 is an interface for the communication between a computer (for example, a PC) and a smart card. Different types of smart cards have different commands and different communication protocols. This prevents in most cases the direct communication between a smart card and a computer. The ACR30 Reader/Writer establishes a uniform interface from the computer to the smart card for a wide variety of cards.
ACR30 2.0. Features ISO7816-1/2/3 compatible smart card interface Supports CPU-based cards with T=0 and/or T=1 protocol (*) Supports commonly used memory cards (I2C, SLE4406, SLE4418/28, SLE4432/42) Support PPS (Protocol and Parameters Selection) with 9600 – 96000 bps in reading and writing smart cards RS-232 interface or USB interface to PC with simple command structure Supports memory cards SLE4436 and SLE5536 (firmware 2.
ACR30 3.0. Supported Card Types The ACR30 can operate MCU card with T=0 and T=1 protocol. The table presented in Appendix A explains which card type selection value must be specified for the various card types supported by the reader. 3.1. Memory-based smart cards (synchronous interface) (*) '104' type EEPROM non-reloadable token counter cards, including: Gemplus GPM103, Siemens SLE 4406 Siemens SLE4436 and SLE5536 (firmware 2.
ACR30 4.0. Smart Card Interface The interface between the ACR30 and the inserted smart card follows the specifications of ISO7816-3 with certain restrictions or enhancements to increase the practical functionality of the ACR30. 4.1. Smart Card Power Supply VCC (C1) The current consumption of the inserted card must not be higher than 50mA. 4.2. Programming Voltage VPP (C6) According to ISO 7816-3, the smart card contact C6 (VPP) supplies the programming voltage to the smart card.
ACR30 5.0. Power Supply The ACR30 requires a voltage of 5V DC, 100mA regulated power supply. The ACR30 gets the power supply from PC (through the cable supplied along with each type of reader). Status LEDs- Green LED on the front of the reader indicates the activation status of the smart card interface. Green LED - Indicates power supply to the smart card is switched on, i.e., the smart card is activated. ACR30 Version 3.
ACR30 6.0. Serial Interface The ACR30 is connected to a computer through a serial asynchronous interface following the RS-232 standard. 6.1.
ACR30 RS-232 Interface Wiring Pin PC Cybermouse Function 2 RxD TxD Data transmitted from PC to ACR30. 3 TxD RxD Data transmitted from ACR30 to PC. 4 DTR RESET RESET input signal. Allows performing hardware reset of the reader module through the RS-232 interface. Applying a logic '1' signal (negative voltage according to the RS-232 convention) to this pin causes a hardware reset of the ACR30. 5 GND GND Reference voltage level for power supply and serial interface.
ACR30 7.0. USB Interface The ACR30 is connected to a computer through a USB following the USB standard. 7.1. Communication Parameters The ACR30 is connected to a computer through USB as specified in the USB Specification. The ACR30 is working in low speed mode, i.e. 1.5 Mbps. USB Interface Wiring Pin Signal Function 1 VBUS +5V power supply for the reader 2 D- Differential signal transmits data between ACR30 and PC. 3 D+ Differential signal transmits data between ACR30 and PC.
ACR30 8.0. Communication protocol In the normal operation, the ACR30 acts as a slave device with regard to the communication between a computer and the reader. The communication is carried out in the form of successive commandresponse exchanges. The computer transmits a command to the reader and receives a response from the reader after the command has been executed. A new command can be transmitted to the ACR30 only after the response to the previous command has been received.
ACR30 byte 1 2 3 Header Instruction 4 5 6 ... N+5 (N>0) N+6 Data Checksum Data Length = N FFH Data Length N Header Always 01H to indicate the start of a command. Instruction The instruction code of the command to be carried out by the ACR30. Data Length Number of subsequent data bytes, and is encoded in 3 bytes. The first byte is FFH. The second byte and the third byte represent data length N. Data Data contents of the command.
ACR30 Data Length Number of subsequent data bytes (0 < N < 255) Data Data contents of the command. For a READ_DATA command, for example, the data bytes would contain the contents of the memory addresses read from the card. The data bytes can represent values read from the card and/or status information. Checksum The checksum is computed by XORing all response bytes including header, status bytes, data length and all data bytes.
ACR30 Checksum 8.2.3. The checksum is computed by XORing all response bytes including header, status bytes, data length and all data bytes. Transmission error If the receiving party of a command (i.e., the ACR30) or a response (i.e., the computer) detects an error in the data length or the checksum of a command, it disregards the received data and sends a "NOT ACKNOWLEDGE" message to the transmitting party upon completion of the faulty transmission.
ACR30 Card Status Message for Card Insertion byte 1 2 3 Header SW1 SW2 01 H FF H 01 H 4 5 Data Checksu length m 00 H FF H 4 5 Card Status Message for Card Removal byte 1 2 3 Header SW1 SW2 01 H FF H 02 H Data Checksu length m 00 H FC H A card status message is transmitted only once for every card insertion or removal event. The reader does not expect an acknowledge signal from the computer.
ACR30 byte 1 2 3 4 5 Header Instructio n Data length Data Checksu m 01H A2H 01H 3DH 9FH This command is transmitted on the serial interface in 12 bytes as follows: byte 1 2 3 4 5 6 7 8 9 10 11 12 STX '0' '1' 'A' '2' '0' '1' '3' 'D' '9' 'F' ETX 02H 30H 31H 41H 32H 30H 31H 33H 44H 39H 46H 03H For the representation of the hex halfbyte values as the corresponding ASCII characters in commands, the ACR30 accepts both upper case characters 'A' ... 'F' (41H ...
ACR30 9.0. Commands The commands executed by the ACR30 can generally be divided into two categories, namely, Control Commands and Card Commands. Control Commands control the internal operation of the ACR30. They do not directly affect the card inserted in the reader and are therefore independent of the selected card type. Card Commands are directed toward the card inserted in the ACR30. The structure of these commands and the data transmitted in the commands and responses depend on the selected card type.
ACR30 C_SEL The currently selected card type as specified in a previous SELECT_CARD_TYPE command. A value of 00H means that no card type has been selected. C_STAT Indicates whether a card is physically inserted in the reader and whether the card is powered up: 00H : no card inserted 01H : card inserted, not powered up 03H : card powered up 9.1.2. SET_PROTOCOL This command is used to control the line speed of the communication channel between ACR30 reader and host device.
ACR30 BAUD RATE Selects the baud rate (bps) of the serial interface between reader and host system. The default hardware baud rate is 9600 bps. (baud rate changes only valid on RS232 reader).
ACR30 Command format Instruction Code Data length 80 H 00 H Response data format ATR ATR The answer-to-reset string returned by the card. The return status code for this command is 90 00H when the inserted card is a T=0 card, 90 01H when the inserted card is a T=1 card, and 90 10 H when the inserted card is a memory card; otherwise the status code is 60 20H. 9.1.5.
ACR30 Option Bit 0 (LSB bit): Select for PPS mode Specifies reader Ù card communication speed 0 : baud rate to/from the card is from 9600 bps to 96000 bps (default) 1 : baud rate to/from the card is at 9600 bps only Bit 4 : Select for EMV mode Specifies whether the reader is in EMV mode 0 : reader not in EMV mode (default) 1 : reader in EMV mode Bit 2, 3, 5, 6 and 7 Reserved Response data format No response data 9.2.
ACR30 9.2.1.2. POWER_OFF (*) This command powers off the card inserted in the card reader. Command format Instruction Code Data length 81 H 00 H Response data format No response data 9.2.1.3. READ_DATA (*) To read the specified number of bytes from the specified address of the card inserted. The bytes are read from the card with LSB first, i.e., the bit at card address 0 is regarded as the LSB of byte 0.
ACR30 b) Write with carry The byte value specified in the command is written to the specified address and the command is sent to the card to erase the next lower counter stage. This write-mode can therefore only be used for updating the counter value in the card. With either write mode, the byte at the specified card address is not erased prior to the write operation and, hence, memory bits can only be programmed from '1' to '0'.
ACR30 Command format Instruction Code Data length LEN Data ADDR BYTE 1 BYTE 2 ... ... BYTE N 92 H LEN Number of transport code bytes, N, + 1 ADDR Byte address of the presentation counter in the card BYTE x Transport code Response data format No response data 9.2.1.6. AUTHENTICATE_CARD_SLE4436 (firmware 2.10 onwards) (*) To read a card authentication certificate from SLE4436 card.
ACR30 Response data format CERT CERT 16 bits of authentication data computed by the card. The LSB of BYTE 1 is the first authentication bit read from the card. 9.2.1.7. AUTHENTICATE_CARD_SLE5536 (firmware 2.10 onwards) (*) To read a card authentication certificate from SLE5536 card.
ACR30 9.2.2. I2C-Bus cards (standard and extended addressing) (*) 9.2.2.1. RESET (*) This command powers up the card inserted in the card reader. No action is taken if the card is powered up when the command is being issued. Command format Instruction Code Data length 80 H 00 H Response data format No response data 9.2.2.2. POWER_OFF (*) This command powers off the card inserted in the card reader. Command format Instruction Code Data length 81 H 00 H Response data format No response data 9.
ACR30 Response data format BYTE 1 BYTE 2 BYTE 3 BYTE x Data bytes read from the card memory 9.2.2.4. WRITE_DATA (*) ... ... BYTE N To write the specified data bytes to the specified address of the card inserted. Command format Instruction Code Data length LEN Data ADDR BYTE 1 ... ... BYTE N 91 H LEN Number of data bytes to be written to the card, N, + 2 ADDR Byte address in the card of the first byte to be written. The high byte of the address is specified as the first byte of ADDR.
ACR30 Command format Instruction Code Data length 80 H 00 H Response data format ATR ATR Four bytes Answer-To-Reset read from the card. The ATR bytes are read from the card with LSB first, i.e., the first bit read from the card is the LSB of the first ATR byte. 9.2.3.2. POWER_OFF (*) This command powers off the card inserted in the card reader. Command format Instruction Code Data length 81 H 00 H Response data format No response data 9.2.3.3.
ACR30 The protection bits are only returned in the response data if the start address ADDR specified in the command is < 20H, i.e., it is lying within the first 32 bytes of card memory which can be write protected. Accordingly, the number of PROT bytes returned depends on how many of the data bytes read lie within the protectable area. If all data bytes read are outside the protectable area, only the data bytes read from the card are returned in the response, no PROT bytes are returned.
ACR30 Command format Instruction Code Data length Data LEN ADDR BYTE 1 ... ... BYTE N 94 H LEN Number of data bytes to be write protected, N, + 2 ADDR Byte address in the card of the first byte to be write protected. The high byte of the address is specified as the first byte of ADDR. Byte values to be compared with the data in the card starting at address ADDR. BYTE 1 is compared with the data at address ADDR; BYTE N is compared with the data at address ADDR+N-1.
ACR30 9.2.3.7. CHANGE_CODE (only SLE 4442) (*) To write the specified data as new secret code in the card. The current secret code must have been presented to the card with the PRESENT_CODE command prior to the execution of this command! Command format Instruction Code Data length Data CODE 93 H CODE 03 H The three bytes new secret code (PIN) Response data format No response data Note (*) – SAM Reader does not support for memory cards 9.2.4.
ACR30 Command format Instruction Code Data length 81 H 00 H Response data format No response data 9.2.4.3. READ_DATA (*) To read the specified number of bytes from the specified address of the card inserted. Command format Instruc tion Code Data length Data ADDR 90 H LEN 03 H ADDR Byte address of first byte to be read from the card. The high byte of the address is specified as the first byte of ADDR.
ACR30 '0' : byte is write protected '1' : byte can be written 9.2.4.4. WRITE_DATA (*) To write the specified data bytes to the specified address of the card inserted. Command format Instruction Code Data length LEN Data ADDR BYTE 1 ... ... BYTE N 91 H LEN Number of data bytes to be written to the card, N, + 2 ADDR Byte address in the card of the first byte to be written. The high byte of the address is specified as the first byte of ADDR.
ACR30 9.2.4.6. PRESENT_CODE (only SLE 4428) (*) To submit the secret code to the card to enable the write operation with the SLE 4442 card.
ACR30 Response data format ATR ATR Answer-To-Reset as transmitted by the card according to ISO7816-3. NOTE The ATR is only returned in the ACR30 response if the communication protocol of the card is compatible with the reader, i.e., if the card can be processed by the ACR30. Otherwise, the ACR30 returns an error status and deactivates the smart card interface. 9.2.5.2. POWER_OFF This command powers off the card inserted in the card reader.
ACR30 Response data format BYT E1 BYTE x ... ... BYT EN SW1 SW2 Response data from card (if any) SW1, SW2 Status code returned by the card. 9.2.5.4. EXCHANGE_T1_FRAME To exchange an APDU (Application Protocol Data Unit) command/response pair between the MCU card inserted in the ACR30 and the host computer using T1 protocol.
ACR30 Response data format ATR ATR Answer-To-Reset as transmitted by the card according to ISO7816-3. NOTE The ATR is only returned in the ACR30 response if the communication protocol of the SAM is compatible with the reader, i.e., if the SAM can be processed by the ACR30. Otherwise, the ACR30 returns an error status and deactivates the SAM. 9.2.6.2. DEACTIVATE_SAM (**) This command powers off the SAM Command format Instruction Code Data length 89 H 00 H Response data format No response data 9.2.
ACR30 NOTE With the T=0 communication protocol it is not possible to transmit data to the card and from the card in a single command-response pair. Hence, only either Lc or Le can be greater than 0 in an EXCHANGE_SAM_APDU command when a T=0 card is in the reader. If both parameters have a value greater than 0, the ACR30 does not execute the command and returns an error status. Response data format BYT E1 BYTE x ... ...
ACR30 Appendix A: Supported Card Types The following table summarizes which values must be specified in the SET_CARD_TYPE command for a particular card type to be used, and how the bits in the response to the GET_ACR_STAT command correspond with the respective card types. Cyber-mouse card type code Card Type 00H Auto-select T=0 or T=1 communication protocol 01H (*) GPM103, SLE4406 SLE4436, SLE5536 (firmware 2.
ACR30 Appendix B: Response Status Codes The following table summarizes the possible status code bytes SW1, SW2 returned by the ACR30: ACR30 Version 3.3 SW1 SW2 Status 90 00 OK – command successfully executed 90 01 OK – using T=1 protocol (only in response to the RESET command) 90 10 OK – synchronous protocol is used (only in response to the RESET command). The exact card type should be selected by using the SELECT_CARD_TYPE command.
ACR30 67 56 91 16 Appendix C: Technical Specifications Device ACR30 Smart Card Reader/Writer Power supply Supply voltage................................ Regulated 5V DC Supply current ................................ < 100mA (without smart card) Serial Communication Interface Type ............................................... RS-232C, five lines: RxD, TxD, CTS, DTR, GND Power source ................................. From PS/2 mouse interface Speed.............................................
ACR30 Weight ............................................ 85g (± 5g allowance for cable) – Cyberfrog casing Cable length, cord, connector ........ 1.5 meters, Fixed (non-detachable), USB A / RS-232C Operating Conditions Temperature .................................. 0 - 50° C Humidity ......................................... 40% - 90% Standard/Certifications EMV Level 1, ISO7816-1/2/3, PC/SC, CE, FCC, NETS, Microsoft WHQL 98, ME, 2K, NT 4.