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
Byte
1
2
3
4
5 ... N+4 (N>0)
Header
Status
Data Length = N
Data
01
H
Data Length N
Header
Always
01
H
to indicate the start of the response.
Status
Indicates the command execution status:
00
H
= command successfully executed
Otherwise = error in command data, or command cannot be executed
A table listing the possible values of the status byte and the corresponding meaning is given
in Appendix B.
Data Length
Number of subsequent data bytes, and is encoded in 2 bytes. The first byte (MSB) and
second byte (LSB) represent data length N.
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.
Note: Responses are 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 is idle, i.e., not executing a command, the reader transmits a Card Status Message to notify the host
computer of the change in the card insertion status.
The Card Status Messages have the following structure and contents:
Card Status Message for Card Insertion
Byte 1 2
3
4
Header
Status
Data Length
01
H
C1
H
00
H
00
H
Card Status Message for Card Removal
Byte 1 2
3
4
Header
Status
Data Length
01
H
C0
H
00
H
00
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. After transmitting a status message, the reader waits
for the next command from the computer.
Note: Card status messages are sent from ACR38 to the host computer through INTERRUPT IN endpoint.
ACR38 Reference Manual
Version 2.2 January 2008
Page
10
of 44