background image

 

Subject to change without prior notice

 

[email protected]

 

 

www.acs.com.hk

 

 

Reference Manual V1.04 

ACR89U-A1 

Handheld 

Smart Card Reader 

Summary of Contents for ACR89U-A1

Page 1: ...Subject to change without prior notice info acs com hk www acs com hk Reference Manual V1 04 ACR89U A1 Handheld Smart Card Reader...

Page 2: ...T Message 18 3 5 2 Commands Detail 18 3 5 3 Extended Command Pipe Bulk IN Message 25 3 5 4 Messages Detail 26 3 5 5 Extended Command Response Codes and Return States 28 3 6 CCID Interrupt IN Message 2...

Page 3: ...erence Manual info acs com hk Version 1 04 www acs com hk Page 3 of 57 List of Tables Table 1 USB Interface Wiring 5 Table 2 CCID Error and Status Code 31 Table 3 Keypad Input Format 52 Table 4 DLL Er...

Page 4: ...ol the ACR89 peripherals 2 Dynamic link library or DLL We will use the term ACR89 DLL to refer to this interfaces in the following text The ACR89 DLL is based on the C programming language and is avai...

Page 5: ...US 5 V power supply for the reader 2 D Differential signal transmits data between ACR89U A1 and PC 3 D Differential signal transmits data between ACR89U A1 and PC 4 GND Reference voltage level for pow...

Page 6: ...higher than 50 mA 2 5 2 Card Type Selection Before activating the inserted card the controlling PC always needs to select the card type through the proper command sent to the ACR89U A1 For MCU based c...

Page 7: ...mmands can also have intermediate responses 4 CCID Responses are sent on BULK IN endpoint All commands sent to ACR89 have to be sent synchronously i e bMaxCCIDBusySlots is equal to 1 for ACR89 The sup...

Page 8: ...1 03h ACR89 supports PIN Verification and PIN Modification 53 bMaxCCIDBusySlots 1 01h Only 1 slot can be simultaneously busy Note Standard CCID adopts little endian mode 3 2 CCID Class Specific Reques...

Page 9: ...lock message and the data returned is the Answer To Reset ATR data 3 3 1 2 PC_to_RDR_IccPowerOff Deactivates the card slot Offset Field Size Value Description 0 bMessageType 1 63h 1 dwLength 4 0000000...

Page 10: ...s to the ICC short APDU level The response to this message is the RDR_to_PC_DataBlock message 3 3 1 5 PC_to_RDR_GetParameters Gets the slot parameters Offset Field Size Value Description 0 bMessageTyp...

Page 11: ...re for 3 wire protocol 82h Structure for I2C protocol 8 abRFU 2 Reserved for future use 10 abProtocolDataStructure Byte array Protocol Data Structure Protocol Data Structure for Protocol T 0 dwLength...

Page 12: ...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 12 BGuardTimeT1 1 Extra Guardtime 0 to 254 etu between two characters If value is FFh...

Page 13: ...in ACR89 response 3 1 INVALID_MODE ACR89 is operating in a mode that does not support this command 3 1 DEVICE_VOID ACR89 is not initialized 3 3 1 9 PC_to_RDR_Secure RFU The command is reserved for fut...

Page 14: ...Data Structure and PIN Modification Data Structure 3 3 1 10 PC_to_RDR_Abort This command is used with the Control pipe Abort request to tell the CCID to stop any current transfer at the specified slot...

Page 15: ...r register as defined in Section 3 7 8 bError 1 Slot status and error register as defined in Section 3 7 9 bChainParameter 1 00h RFU short APDU level 10 AbData Byte array This field contains the data...

Page 16: ...Type 1 82h 1 dwLength 4 Size of abProtocolDataStructure field 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 and error r...

Page 17: ...e command PC_to_RDR_Escape Bulk Out message and responded with RDR_to_PC_Escape Bulk IN message PC Request Message Code ACR89 Response Message Code PC_to_ACR89_InputKey 0x12h ACR89_to_PC_DataBlock 0x8...

Page 18: ...er and variable length Command Data portion The command header is fixed to 5 bytes in length In contrast to CCID USB practice big endian will be adopted in extended command portion Figure 2 CCID PC_to...

Page 19: ...plaintext transfer b5 1 for encrypted key transfer This bit is reserved for future implementation B6 0 1 disable enable control key b7 RFU 16 bTimeoutValue Hex 1 Key input timeout time value counted...

Page 20: ...the character position and character size The cursor will move accordingly This command context is slot dependent Offset Field Name Type Size Value Description 10 BCmdCode Hex 1 1Bh 11 wCmdLength Hex...

Page 21: ...3 PC_to_ACR89_DisplayGraphic Bitmap Format The response to this command is the ACR89_to_PC_DisplayStatus message 3 5 2 6 PC_to_ACR89_SetContrast This command sets the contracts level of the LCD This c...

Page 22: ...ClearMode 01h Number of rows to be cleared For bClearMode 02h Number of columns to be cleared Not significant otherwise The response to this command is the ACR89_to_PC_DisplayStatus message 3 5 2 8 PC...

Page 23: ...illiseconds Effective only when bBuzzerState field is 01h 00h Activate buzzer and do not turn off the buffer Other value Activate buzzer for number of hundredth milliseconds and then turn off the buzz...

Page 24: ...w color Bit7 0 OFF 1 ON e g Turn ON red color 10000001b Turn OFF green color 00000010b Ignore xxxx0000b 16 Slot1 LED Hex 1 Bit0 1 Selects Red color Bit1 1 Selects Green color Bit2 1 Selects Yellow col...

Page 25: ...de 11 AbAddress Hex 4 xxxxxx00h Start address of flash page in little endian The response to this command is the ACR89_to_PC_MemoryPage message 3 5 2 16 PC_to_ACR89_GetVersion This command reads boot...

Page 26: ...PC_to_ACR89_InputKey command the data returned is the single key or key string captured from the keypad depending on the key input mode chosen Offset Field Name Size Value Description 10 BrespType 1 8...

Page 27: ...ption 10 bRespType 1 90h 11 wReturnCode 2 9000h Command response code If command success it returns 90 00h in big endian 13 wRespLength 2 0000 Size of response data in big endian 3 5 4 5 ACR89_to_PC_E...

Page 28: ...bInfoData Var Firmware version information ASCII Note The wInfoLength is zero when there is no valid version information 3 5 4 8 ACR89_to_PC_AuthInfo This message is sent by ACR89 in response to PC_to...

Page 29: ...d HARDWARE_ERROR 01h Hardware error occurred ACCESS_DENIED 02h Function is denied according to current configuration ADDRESS_ERROR 03h Address parameter is not correct FRAME_ERROR 04h Command frame fo...

Page 30: ...Bit 3 Slot 1 changed status Bit 4 Slot 2 current state Bit 5 Slot 2 changed status Bit 6 0b Bit 7 0b 3 7 CCID Error and Status Code This section is the extension of standard CCID session 12 to tabula...

Page 31: ..._ERROR 10h Error code defined in ACR89 response header instead of this error register DEVICE_VOID 11h ACR89 is not initialized Either in manufacturer mode waiting for vendor personalization or the dev...

Page 32: ...rt where the ACR89 reader is connected Up to eight USB ports can be selected 4 1 1 2 LCD_CLEAR MODE typedef enum _LCD_CLEAR_MODE LCD_CLR_FULL 0x00 LCD_CLR_ROWS 0x01 LCD_CLR_COLS 0x02 LCD_CLEAR_MODE Us...

Page 33: ...AD_EEPROM 00h Read data from the EEPROM RITE_EEPROM 01h Write data from the EEPROM 4 1 1 4 SERIAL_ACCESS typedef enum _SERIAL_ACCESS READ_SERIALFLASH 0x00 WRITE_SERIALFLASH 0x01 ERASE_SERIALFLASH 0x02...

Page 34: ...INPUT PKEYPADINPUT Used by AS_GetKeyInput Data Member Value Description BEnableKeyString 0 or 1 Input Mode 0 single key input 1 key string input In key string input mode the key string input is comple...

Page 35: ...position 4 1 2 4 LCDBACKLIGHT typedef struct _LCD_BACKLIGHT BOOLEAN bEnableBackLight LCDBACKLIGHT PLCDBACKLIGHT Used by AS_SetLcdBacklight to enable or disable the LCD backlight Data Member Value Des...

Page 36: ...he number of characters stored in pMessage 4 1 2 7 LCDCONTRAST typedef struct _LCD_CONTRAST BYTE cbContrastLevel LCDCONTRAST PLCDCONTRAST Used by AS_SetLcdSetContrast to set the contrast of the LCD sc...

Page 37: ...ED_OFF Turn LED off LED_RED Turn LED red LED_GREEN Turn LED green LED_YELLOW Turn LED yellow cbLedSlot1 LED_OPTION Control the LED of card slot 1 For possible options see LED_OPTION and above cdLedSlo...

Page 38: ...null terminated szFirmwareSDKVersion 64 bytes ACSII Firmware SDK version in ASCII with null terminated 4 1 3 3 KEYPADSTATUS typedef struct _KEYPAD_STATUS BYTE cbMaxKeyString BYTE cbKeyDisplayMode KEY...

Page 39: ...DATABLOCK PDATABLOCK Returned by nangi contains the data returned by those functions Data Member Value Description wDataLen The length of the size of pDataBlock before command execution Stores the le...

Page 40: ...the read EEPROM data Write EEPROM pointer to buffer containing data to write to EEPROM 4 1 4 3 ACCESSSERIALFLASH typedef struct _ACCESS_SERIALFLASH BYTE cbFunction DWORD dwAddress USHORT wDataLength...

Page 41: ...according to the type of accessories they will control as follows Port Functions Device Functions LCD Functions Keypad Functions Real Time Clock Functions Script Functions Other Functions 4 2 2 Port...

Page 42: ...S_STATUS DllError contains the status as returned by the DLL AS_STATUS W32Error contains the Win32 error code associated with the DLL error if any See also Appendix A or the possible return codes Exam...

Page 43: ...ection 4 1 3 2 for more information about the INFO structure Return Values AS_STATUS This functions returns different values depending on whether it succeeds or fails AS_STATUS DllError contains the s...

Page 44: ...it succeeds or fails AS_STATUS DllError contains the status as returned by the DLL AS_STATUS W32Error contains the Win32 error code associated with the DLL error if any See also Appendix A for the po...

Page 45: ...nd the cursor position of the LCD panel They are also used to display graphics and text on the LCD panel 4 2 4 1 AS_SetLcdCursor This function sets the LCD position cursor to a new position AS_STATUS...

Page 46: ...andle returned by a previous call to AS_Open pLcdBacklight in Pointer to a LCDBACKLIGHT structure that includes the cursor position parameters to be set See also Section 4 1 2 4 for more information a...

Page 47: ...returned by a previous call to AS_Open pLcdGraphics in Pointer to a LCDGRAPHICS structure that specifies the path to the bitmap file See also Section 4 1 2 5 for more information about the LCDGRAPHICS...

Page 48: ...re pDisplayStatus out Pointer to a DISPLAYSTATUS structure containing the cursor position after displaying the message See also Section 4 1 3 4 for more information about the DISPLAYSTATUS structure R...

Page 49: ...S W32Error contains the Win32 error code associated with the DLL error if any See also Appendix A for the possible return codes Example 4 2 4 6 AS_ClearLcdDisplay This function clears one or more rows...

Page 50: ...S AS_DECL AS_GetKeyPadConfig IN INT nDevId OUT PKEYPADSTATUS pKeypadStatus Parameters nDevId in Handle returned by a previous call to AS_Open pKeypadStatus out Pointer to a KEYPADSTATUS structure that...

Page 51: ...r to KEYPADCONFIG structure that specifies keypad configuration to set in ACR89 keypad See also Section 4 1 2 1 for more information about the KEYPADCONFIG structure pKeypadStatus out Pointer to KEYPA...

Page 52: ...ter 0x0Dh F1 0x3Dh F2 0x3Eh F3 0x3Fh F4 0x0Ch Table 3 Keypad Input Format Notes When a function key is pressed while in string input mode the input is cancelled and the function code is returned inste...

Page 53: ...n Time Clock of the ACR89 4 2 6 1 AS_ReadRTC This function reads the current real time clock value from the built in real time clock The real time clock increments the value every half second AS_STATU...

Page 54: ...ime clock See also Section 4 1 4 1 for more information about the TIMESTAMP structure pTimeStamp out Pointer to TIMESTAMP structure that contains the newly set time value See also Section 4 1 4 1 for...

Page 55: ...US This functions returns different values depending on whether it succeeds or fails AS_STATUS DllError contains the status as returned by the DLL AS_STATUS W32Error contains the Win32 error code asso...

Page 56: ...urn Values AS_STATUS This functions returns different values depending on whether it succeeds or fails AS_STATUS DllError contains the status as returned by the DLL AS_STATUS W32Error contains the Win...

Page 57: ...ERROR_LCD_INVALID_BITMAP_SIZE 0x09h CMD_ERROR_BUFFER_TOO_SMALL 0x0Ah CMD_ERROR_BUFFER_ALLOCATION_FAILED 0x0Bh CMD_ERROR_COMM_PORT_OCCUPIED 0x0Ch CMD_ERROR_COMM_PORT_CANNOT_OPEN 0x0Dh CMD_ERROR_COMM_PO...

Reviews: