background image

 

A C R 3 8   S m a r t   C a r d   R e a d e r / W r i t e r

 

Commands 

The commands executed by the ACR38 can generally be divided into two categories, namely, Control 

Commands and Card Commands. 

Control Commands control the internal operation of the ACR38. 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 ACR38. The structure of these commands and the data 

transmitted in the commands and responses depend on the selected card type. 

 

      Control Commands 

GET_ACR_STAT 

This command returns relevant information about the particular ACR38 model and the current operating status, such as, the 
firmware revision number, the maximum data length of a command and response, the supported card types, and whether a 

card is inserted and powered up. 

Command format 

Header 

Instruction 

Data length 

01

 H

  

01

 H

 00

 H

 00

 H

 

Response data format 

Header 

Status 

Data length 

INTERNAL 

MAX_C 

MAX_R 

C_TYPE 

C_SEL 

C_STAT 

 

 

LEN 

 

 

 

 

 

 

01

 H

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

INTERNAL

   

10 bytes data for internal use only 

MAX_C

 

 

The maximum number of command data bytes. 

MAX_R

 

The maximum number of data bytes that can be requested to be transmitted in a response. 

C_TYPE

 

The card types supported by the ACR38. This data field is a bitmap with each bit 

representing a particular card type. A bit set to '1' means the corresponding card type is 

supported by the reader and can be selected with the 

SELECT_CARD_TYPE

 command. 

The bit assignment is as follows: 

Byte 1 

card type  

15 

14 13 12 

11 10 9 8 7 6 5 4 3 2 1 0 

See Appendix A for the correspondence between these bits and the respective card types. 

C_SEL

 

The currently selected card type as specified in a previous 

SELECT_CARD_TYPE

 command. 

A value of 00

H

 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: 

00

H

: no card inserted 

ACR38 Reference Manual 

Version 2.2   January 2008

 

 

 

 

                                                               Page

 

11

 

of 44 

 

 

Summary of Contents for ACR 38

Page 1: ...Reference Manual ACR38 Smart Card Reader Writer Advanced Card Systems Ltd Website www acs com hk Email info acs com hk...

Page 2: ...ACR_STAT 11 8 1 2 SELECT_CARD_TYPE 12 8 1 3 SET_OPTION 12 8 1 4 SET_CARD_PPS 13 8 1 5 SET_READER_PPS 13 8 2 Card Commands 15 8 2 1 MCU based Card 15 8 2 1 1 RESET_WITH_5_VOLTS_DEFAULT 15 8 2 1 2 RESET...

Page 3: ...READ_PRESENTATION_ERROR_COUNTER_MEMORY_CARD only SLE 5528 31 8 2 7 Memory Card SLE4432 5542 33 8 2 7 1 SELECT_CARD_TYPE 33 8 2 7 2 READ_MEMORY_CARD 33 8 2 7 3 WRITE_MEMORY_CARD 34 8 2 7 4 WRITE_PROTEC...

Page 4: ...mart card system The ACR38 Smart Card Reader Writer is connected to the computer through USB interface The reader accepts commands from the computer carries out the specified function at the smart car...

Page 5: ...d communication parameters other than the default parameters the ACR38 will execute the PPS and try to use the communication parameters that the card suggested in its ATR If the card does not accept t...

Page 6: ...s the reader allows to select the preferred protocol T 0 or T 1 However this selection is only accepted and carried out by the reader through the PPS when the card inserted in the reader supports both...

Page 7: ...tatus of the smart card interface Flashing slowly turns on 200ms for every 2 seconds Indicates that the ACR38 is powered up and is in the standby state Either the smart card has not been inserted or t...

Page 8: ...PC 4 GND Reference voltage level for power supply NOTE In order for the ACR38 to function properly through USB interface either ACS proprietary device driver or ACS PC SC device driver has to be inst...

Page 9: ...lways 01H to indicate the start of a command Instruction The instruction code of the command to be carried out by the ACR38 Data Length Number of subsequent data bytes and is encoded in 2 bytes The fi...

Page 10: ...re sent from ACR38 to the host computer through BULK IN endpoint Card Status Message When a card is being inserted into the reader or an inserted card is being removed from the reader while the reader...

Page 11: ...ta length 01 H 01 H 00 H 00 H Response data format Header Status Data length INTERNAL MAX_C MAX_R C_TYPE C_SEL C_STAT LEN 01 H INTERNAL 10 bytes data for internal use only MAX_C The maximum number of...

Page 12: ...d in this command for a particular card to be used Response data format Header Status Data length LEN 01 H SET_OPTION This command selects the options for the reader Command format Header Instruction...

Page 13: ...SO IEC 7816 3 1997 Section 7 for details of PPS request A typical PPS request to select T 1 protocol and FD 0x94 62500 baud at 4MHz is 0xFF 0x11 0x94 0x7A Response data format Header Status Data lengt...

Page 14: ...ls of PPS response After the driver or the application validates the PPS Response it should send the PPS Response to the reader The reader can then switch the protocol and or speed A typical PPS respo...

Page 15: ...01 H ATR Answer To Reset as transmitted by the card according to ISO7816 3 NOTE The ATR is only returned in the ACR38 response if the communication protocol of the card is compatible with the reader i...

Page 16: ...in the card reader Command format Header Instruction Data length LEN 01 H 81 H 00 H 00 H Response data format Header Status Data length LEN 01 H EXCHANGE_TPDU_T0 To exchange an APDU Application Proto...

Page 17: ...data N Data T1 TPDU frame to be sent to the card It should include NAD PCB LEN INF and EDC fields Please refer to ISO IEC 7816 3 1997 E Section 9 4 for detailed information Response data format Header...

Page 18: ...ead the smart card The default value is 8 byte page write It will reset to default value whenever the card is removed or the reader is powered off Command format Header Instruction Data length Data LE...

Page 19: ...N SW1 SW2 LEN 01 H BYTE x Data read from memory card SW1 SW2 90 H 00 H if no error WRITE_MEMORY_CARD Command format Header Instruction Data length Data LEN CLA INS Byte Address MEM_L Byte 1 Byte n MS...

Page 20: ...BYTE 1 BYTE N SW1 SW2 LEN 01 H BYTE x ATR from card if any SW1 SW2 90 H 00 H if no error SELECT_PAGE_SIZE This command will choose the page size to read the smart card The default value is 8 byte page...

Page 21: ...ata to be read from the memory card Response data format Header Status Data length BYTE 1 BYTE N SW1 SW2 LEN 01 H BYTE x Data read from memory card SW1 SW2 90 H 00 H if no error WRITE_MEMORY_CARD Comm...

Page 22: ...Data LEN CLA INS P1 P2 Lc Card Type 01 H A0 H 00 H 06 H FF H A4 H 00 H 00 H 01 H 03 H Response data format Header Status Data length BYTE 1 BYTE 2 BYTE 3 BYTE 4 SW1 SW2 LEN 01 H BYTE x ATR from card S...

Page 23: ...D1 H for writing zone 01 b D2 H for writing zone 10 b D3 H for writing zone 11 b D4 H for writing fuse Byte Address Memory address location of the memory card LEN 5 MEM_L MEM_L Length of data to be wr...

Page 24: ...eader Instruction Data length Data LEN CLA INS P1 P2 Lc Q 0 Q 1 Q 7 01 H A0 H 00 H 0D H FF H 84 H 00 H 00 H 08 H Q 0 Q 1 Q 7 Host random number 8 bytes Response data format Header Status Data length S...

Page 25: ...a format Header Status Data length BYTE 1 BYTE 2 BYTE 3 BYTE 4 SW1 SW2 LEN 01 H BYTE x ATR from card SW1 SW2 90 H 00 H if no error READ_MEMORY_CARD Command format Header Instruction Data length Data L...

Page 26: ...H for writing user zone D1 H for writing configuration zone or writing fuse Zone Address 0000 0A10A9A8 b where A10 is the MSB of zone address don t care for writing fuse Byte Address A7A6A5A4 A3A2A1A...

Page 27: ...p1p0 0111 for the secure code Response data format Header Status Data length ErrorCnt SW1 SW2 LEN 01 H 00 H 03 H ErrorCnt Error Counter FFH if the verification is correct SW1 SW2 90 H 00 H if no error...

Page 28: ...powers down and up the selected card inserted in the card reader and performs a card reset Notes This command must be the first command after card insertion Command format Header Instruction Data len...

Page 29: ...e is determined by the number N of data bytes read from the card as follows L 1 INT N 8 The arrangement of the protection bits in the PROT bytes is as follows PROT 1 PROT 2 P8 P7 P6 P5 P4 P3 P2 P1 P16...

Page 30: ...o the memory card Byte x Data to be written to the memory card Response data format Header Status Data length SW1 SW2 LEN 01 H SW1 SW2 90 H 00 H if no error WRITE_PROTECTION_MEMORY_CARD Each of the by...

Page 31: ...resent the specified code to the card try to erase the presentation error counter Command format Header Instruction Data length Data LEN CLA INS P1 P2 MEM_L CODE MSB LSB Byte 1 Byte 2 01 H A0 H 00 H 0...

Page 32: ...SB LSB 01 H A0 H 00 H 05 H FF H B1 H 00 H 00 H 00 H Response data format Header Status Data length ERRCNT DUMMY 1 DUMMY 2 SW1 SW2 LEN 01 H ERRCNT The value of the presentation error counter DUMMY Two...

Page 33: ...ard Type 01 H A0 H 00 H 06 H FF H A4 H 00 H 00 H 01 H 06 H Response data format Header Status Data length BYTE 1 BYTE 2 BYTE 3 BYTE 4 SW1 SW2 LEN 01 H BYTE x ATR from card SW1 SW2 90 H 00 H if no erro...

Page 34: ...RITE_MEMORY_CARD Command format Header Instruction Data length Data LEN CLA INS P1 Byte Address MEM_L Byte 1 Byte N MSB LSB 01 H A0 H FF H D0 H 00 H Byte Address A7A6A5A4 A3A2A1A0 b is the memory addr...

Page 35: ...d with the data at Byte Address N 1 Response data format Header Status Data length SW1 SW2 LEN 01 H SW1 SW2 90 H 00 H if no error PRESENT_CODE_MEMORY_CARD only SLE 5542 To submit the secret code to th...

Page 36: ...d format Header Instruction Data length Data LEN CLA INS P1 P2 MEM_L MSB LSB 01 H A0 H 00 H 08 H FF H B1 H 00 H 00 H 00 H Response data format Header Status Data length ERRCNT DUMMY 1 DUMMY 2 DUMMY 3...

Page 37: ...R 3 8 S m a r t C a r d R e a d e r W r i t e r Response data format Header Status Data length SW1 SW2 LEN 01 H SW1 SW2 90 H 00 H if no error ACR38 Reference Manual Version 2 2 January 2008 Page 37 of...

Page 38: ...format Header Instruction Data length Data LEN CLA INS P1 P2 Lc Card Type 01 H A0 H 00 H 06 H FF H A4 H 00 H 00 H 01 H 07 H Response data format Header Status Data length BYTE 1 BYTE 2 BYTE 3 BYTE 4 S...

Page 39: ...rite mode can therefore only be used for updating the counter value in the card c Write with backup enabled SLE4436 and SLE5536 only The byte value specified in the command is written to the specified...

Page 40: ...W1 SW2 90 H 00 H if no error PRESENT_CODE_MEMORY_CARD To submit the secret code to the memory card to enable the card personalization mode The following actions are executed search a 1 bit in the pres...

Page 41: ...ed by the card in the response Command format Header Instruction Data length Data LEN CLA INS P1 P2 MEM_L CODE MSB LSB KEY CLK_CNT Byte1 Byte 2 Byte 5 Byte 6 01 H A0 H 00 H 08 H FF H 84 H 00 H 00 H 08...

Page 42: ...ard type code Card Type 00H Auto select T 0 or T 1 communication protocol 01H I2C memory card 1k 2k 4k 8k and 16k bits 02H I2C memory card 32k 64k 128k 256k 512k and 1024k bits 03H Atmel AT88SC153 sec...

Page 43: ...K command successfully executed F4 SLOTERROT_PROCEDURE_BYTE_CONFLICT F6 SLOTERROR_BAD_LENGTH F7 SLOTERROR_BAD_FIDI F8 SLOTERROR_BAD_ATR_TS F9 SLOTERROR_ICC_NOT_POWERED_UP FA SLOTERROR_ICC_NOT_INSERTED...

Page 44: ...on the reader CLK frequency 4 MHz Card connector Contact Card insertion cycles min 100 000 Optional SAM Card Interface Card connector Landing Location Under the removable dark lid Physical Specificati...

Reviews: