NOTE - Although the ACR30 is a true card reader/writer as it can read and write smart cards, the terms card reader or reader will be used indifferently to refer to the ACR30, for the sake of readability and because these designations are commonly in use for this kind of devices.
0) and that particular mode is not supported by the ACR30, the reader will reset the card to set it to negotiable mode. If the card cannot be set to negotiable mode, the reader will reject the card.
NOTE - The ACR30 does never by itself switch on the power supply to the inserted card. This must explicitly be done by the controlling computer through the proper command sent to the reader.
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.
Parity none Data Bits Stop Bits The ACR30 provides two means to select the transmission speed (baud rate) used by the reader in the normal operation, by hardware and/or by software. 6.1.1. Hardware Baud Rate The default hardware baud rate setting is 9600 bps.
Page 11
PC send a command to the ACR30. NOTE - Communication problems between the ACR30 and a PC can occur if a 25 pin to 9 pin RS-232 adapter or a cable is used in which not all 9 signal lines are connected. Adapters supplied with computer mouse frequently have not all lines connected.
Reference voltage level for power supply NOTE - In order for the ACR30 functioning properly through USB interface, either ACS proprietary device drive or ACS PC/SC device driver has to be installed. Please refer to the Device Driver Installation Guide for more detail.
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 command- response exchanges. The computer transmits a command to the reader and receives a response from the reader after the command has been executed.
The checksum is computed by XORing all command bytes including header, instruction, data length and all data bytes. 8.2. Response The response from the ACR30 to any command depends if the command where received by the reader without error (e.g., checksum error). 8.2.1.
8.2.2. No transmission error with extended response The response by the ACR30 to a correctly received command consists of three protocol bytes, two status bytes and a variable number of data bytes and has the following structure: byte 7 ... N+6 (N>0)
8.2.3. 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"...
ACR30 Card Status Message for Card Insertion byte Header Data Checksu length Card Status Message for Card Removal byte Header Data Checksu length 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.
Page 18
) and lower case characters 'a' ... 'f' (61 ... 66 byte ... is equivalent to: byte In its response messages, the ACR30 uses upper case characters 'A' ... 'F'. ACR30 Reference Manual Page 18 of 44 Version 3.3 January 2009...
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.
9.1.2. SET_PROTOCOL This command is used to control the line speed of the communication channel between ACR30 reader and host device. The line speed of the communication is controlled by two factors, namely, the Delay Factor and the Baud Rate.
ACR30 has sent out the response string to the SET_PROTOCOL command. 9.1.3. SELECT_CARD_TYPE This command sets the required card type. The firmware in the ACR30 adjusts the communication protocol between reader and the inserted card according to the selected card type. Command format Instruction Code...
ACR30 Command format Instruction Data length Code Response data format The answer-to-reset string returned by the card. The return status code for this command is 90 00 when the inserted card is a T=0 card, 90 01 when the inserted card is a T=1 card, and 90 10 when the inserted card is a memory card;...
9.2. Card Commands The available commands and the parameters specified in the card commands as well as the data transmitted in the response from the ACR30 depend on the selected card type. '104' - type non-reloadable Token Counter Cards (*) 9.2.1.1.
ACR30 9.2.1.2. POWER_OFF (*) This command powers off the card inserted in the card reader. Command format Instruction Data length Code 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.
'1' bit in the presentation counter and write the bit to '0' present the specified code to the card The ACR30 does not try to erase the presentation counter after the code submission! The application software through a separate ‘Write with carry’ command must do this.
16 bits of authentication data from the card reset the card to normal operation mode The ACR30 returns the 16 bits of authentication data calculated by the card in the response. Command format Instructio Data...
16 bits of authentication data from the card reset the card to normal operation mode The ACR30 returns the 16 bits of authentication data calculated by the card in the response. Command format Instructio Data...
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...
ACR30 Response data format BYTE BYTE BYTE BYTE BYTE x Data bytes read from the card memory 9.2.2.4. WRITE_DATA (*) To write the specified data bytes to the specified address of the card inserted. Command format Instruction Data length Data...
ACR30 Command format Instruction Data Code length Response data format 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.
ACR30 The protection bits are only returned in the response data if the start address ADDR specified in the command is < 20 , i.e., it is lying within the first 32 bytes of card memory which can be write protected.
To submit the secret code to the card to enable the write operation with the SLE 4442 card. The following actions are executed by the ACR30: search a '1' bit in the presentation error counter and write the bit to '0'...
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!
ACR30 Command format Instruction Data length Code 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 Data Data tion length Code ADDR ADDR Byte address of first byte to be read from the card.
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 Data length Data Code ADDR BYTE BYTE...
To submit the secret code to the card to enable the write operation with the SLE 4442 card. The following actions are executed by the ACR30: search a '1' bit in the presentation error counter and write the bit to '0'...
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.
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. Command format Instruction Data length...
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.
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...
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.
ACR30 Appendix B: Response Status Codes The following table summarizes the possible status code bytes SW1, SW2 returned by the ACR30: Status OK – command successfully executed OK – using T=1 protocol (only in response to the RESET command) OK – synchronous protocol is used (only in response to the RESET command).
Need help?
Do you have a question about the ACR30 and is the answer not in the manual?
Questions and answers