INTELLISTRIPE 320
COMMAND REFERENCE MANUAL
Manual Part Number 99875168 Rev 11
FEBRUARY 2009
1710 Apollo Court
Seal Beach, CA 90740
Phone: (562) 546-6400
FAX: (562) 546-6301
Technical Support: (651) 415-6800
www.magtek.com
Copyright © 2000-2009
MagTek, Inc.
Printed in the United States of America
Information in this document is subject to change without notice. No part of this document may
be reproduced or transmitted in any form or by any means, electronic or mechanical, for any
purpose, without the express written permission of MagTek, Inc.
MagTek is a registered trademark of MagTek, Inc.
IntelliStripe is a registered trademark of MagTek, Inc.
REVISIONS
ii
Rev Number
1
2
Date
15 May 00
18 Oct 00
3
13 Nov 00
4
12 Jul 01
5
23 Oct 01
6
2 May 02
7
22 May 02
8
5 Sep 06
9
18 Sep 06
10
01 Jun 08
11
10 Feb 09
Notes
Initial Release
Section 7: Transport cooling mode changed from 10 to 5 secs.
Added Appendix B, Memory Cards. The first is SLE 4442/4432
Memory Card Control.
Added support for SLE 4428/4418 and SLE 4428/4418 Memory
Card Controls.
Sec 7, Notify Indicator Change 0 to 1 Property and Notify
Indicator Change 1 to 0 Property, Values: changes to bits 1-2, 3,
and 4-31; text changed in 1-2 and 4-31.
Section 5. Editorial Corrections throughout. Appendix B. Added
support for the SLE4404 Memory Card and I2C™ Cards families.
Section 4: Added Decode JIS Type 2 Property; Changed
Decode Status Definitions in CMD ID 81 and 82, Added JIS to
Card Encode Type in CMD 81 and 82. Appendix B: Completely
revised SLE 4404 Memory Card Control.
Section 5: Added description at the end of “Card Types”
including list of card types.
Removed Warranty information; added support for: saving
properties, acquiring MagnePrint, adjusting sensor timing for
eject, enabling power fail eject, controlling the buzzer, and
adjusting host communication properties
Added Section 10 for OTI SCI1000 Contactless Smart Card
Application
Included information about the Contactless Smart Cards that are
supported and Mifare commands.
Added description of Warm Reset command for Smart Cards.
The Warm Reset feature has existed for a long time but it had
not been documented in the manual.
TABLE OF CONTENTS
SECTION 1. APPLICATION MESSAGES .................................................................................................. 1 OVERVIEW............................................................................................................................................... 1 MESSAGE FORMAT................................................................................................................................ 1 Message Header .................................................................................................................................. 1 Data Field ............................................................................................................................................. 4 SECTION 2. GENERIC COMMANDS ......................................................................................................... 5 GET PROPERTY COMMAND.................................................................................................................. 5 SET PROPERTY COMMAND .................................................................................................................. 7 SAVE PROPERTY COMMAND ............................................................................................................... 8 SECTION 3. DEVICE APPLICATION ......................................................................................................... 9 GET/SET/SAVE PROPERTY COMMANDS ............................................................................................ 9 MODEL NUMBER PROPERTY.............................................................................................................. 10 SOFTWARE ID PROPERTY .................................................................................................................. 11 SOFTWARE RESET COMMAND .......................................................................................................... 12 SECTION 4. MAGNETIC STRIPE APPLICATION ................................................................................... 13 GET/SET/SAVE PROPERTY COMMANDS .......................................................................................... 13 NOTIFY READ STATE PROPERTY ...................................................................................................... 14 NOTIFY READ TRACK PROPERTY...................................................................................................... 15 DECODE JIS TYPE 2 PROPERTY ........................................................................................................ 16 CLEAR DATA COMMAND ..................................................................................................................... 17 GET TRACK 123 DECODE DATA COMMAND ..................................................................................... 18 GET TRACK DECODE DATA COMMAND ............................................................................................ 20 GET MAGNEPRINT DATA COMMAND................................................................................................. 22 SECTION 5. SMART CARD APPLICATION ............................................................................................ 25 GET/SET/SAVE PROPERTY COMMANDS .......................................................................................... 25 RESPONSE CODES USED THROUGHOUT THE APPLICATION....................................................... 25 NOTIFICATIONS IN THE SMART CARD APPLICATION ..................................................................... 25 Request/Response/Notification Model ............................................................................................... 26 Example Request/Response/Notification Sequence.......................................................................... 26 THE CONDRPT PROPERTY ................................................................................................................. 27 ERROR/WARNING CONDITION TEMPLATES..................................................................................... 27 CARD TYPES ......................................................................................................................................... 29 PROPERTIES......................................................................................................................................... 31 ATR MAP STRUCTURE – MICROPROCESSOR CARDS ONLY......................................................... 39 POWER UP COMMAND ........................................................................................................................ 41 POWER DOWN COMMAND.................................................................................................................. 44 T=0 ERROR / WARNING CONDITION TEMPLATES ........................................................................... 44 T=1 ERROR / WARNING CONDITION TEMPLATES ........................................................................... 45 WARM RESET COMMAND ................................................................................................................... 46 TPDU, CARD TO IFD COMMAND ......................................................................................................... 47 TPDU, IFD TO CARD COMMAND ......................................................................................................... 48 APDU EXCHANGE COMMAND............................................................................................................. 49 SELECT CONNECTOR COMMAND ..................................................................................................... 51 SECTION 6. LED APPLICATION ............................................................................................................. 53 iii
GET/SET/SAVE PROPERTY COMMANDS .......................................................................................... 53 LED STATE PROPERTY ....................................................................................................................... 53 SECTION 7. TRANSPORT APPLICATION .............................................................................................. 55 GET/SET/SAVE PROPERTY COMMANDS .......................................................................................... 55 INDICATORS PROPERTY..................................................................................................................... 55 NOTIFY INDICATOR CHANGE 0 TO 1 PROPERTY ............................................................................ 58 NOTIFY INDICATOR CHANGE 1 TO 0 PROPERTY ............................................................................ 59 AUTO CONSUME PROPERTY.............................................................................................................. 60 MSR DIRECTION PROPERTY .............................................................................................................. 61 EJECT MIDDLE SENSOR TO MOTOR OFF DELAY PROPERTY ....................................................... 62 POWER FAIL DETECT PROPERTY ..................................................................................................... 63 CONSUME CARD COMMAND .............................................................................................................. 64 EJECT CARD COMMAND ..................................................................................................................... 65 SECTION 8. BUZZER APPLICATION ...................................................................................................... 67 GET/SET/SAVE PROPERTY COMMANDS .......................................................................................... 67 TONE SEQUENCE 1 PROPERTY......................................................................................................... 68 TONE SEQUENCE 2 PROPERTY......................................................................................................... 69 TONE SEQUENCE 3 PROPERTY......................................................................................................... 70 TONE SEQUENCE 4 PROPERTY......................................................................................................... 71 PLAYBACK TONE SEQUENCE COMMAND ........................................................................................ 72 SECTION 9. HOST COMMUNICATIONS APPLICATION........................................................................ 73 GET/SET/SAVE PROPERTY COMMANDS .......................................................................................... 73 USB SERIAL NUMBER PROPERTY ..................................................................................................... 74 RS232 PLUG AND PLAY SUPPORT ENABLE PROPERTY ................................................................ 75 USB PRODUCT PROPERTY................................................................................................................. 76 MCP ERROR RECOVERY ENABLE PROPERTY ................................................................................ 77 MCP EDC CHECK ENABLE PROPERTY ............................................................................................. 79 MCP AUTO BAUD ENABLE PROPERTY.............................................................................................. 80 FIXED BAUD RATE PROPERTY........................................................................................................... 81 RESET DETECTED PROPERTY........................................................................................................... 82 PROTOCOL PROPERTY....................................................................................................................... 83 SECTION 10. OTI SCI 1000 CONTACTLESS SMART CARD APPLICATION ....................................... 85 GET/SET/SAVE PROPERTY COMMANDS .......................................................................................... 85 NOTIFY CONTACTLESS MAGSTRIPE PROPERTY............................................................................ 85 CONTACTLESS AUTOMATIC RF CONTROL PROPERTY ................................................................. 86 Auto Mode .......................................................................................................................................... 87 Example Notification Sequence ......................................................................................................... 88 RF ON Command............................................................................................................................... 89 RF OFF COMMAND............................................................................................................................... 89 Sending OTI Module Transparent Commands....................................................................................... 90 APPENDIX A. EXAMPLE HOST APPLICATION ..................................................................................... 91 APPENDIX B. MEMORY CARD SUPPORT ............................................................................................. 93 SLE 4442/4432 MEMORY CARD CONTROL........................................................................................ 93 Properties ........................................................................................................................................... 93 Power Up............................................................................................................................................ 94 APDU Exchange Command............................................................................................................... 94 Read Binary APDU............................................................................................................................. 94 iv
Update Binary APDU.......................................................................................................................... 95 Verify APDU (Programmable Security Code) .................................................................................... 96 SLE 4428/4418 MEMORY CARD CONTROL........................................................................................ 97 Properties ........................................................................................................................................... 97 Power Up............................................................................................................................................ 97 APDU Exchange Command............................................................................................................... 97 Read Binary APDU............................................................................................................................. 98 Read Protection Status APDU ........................................................................................................... 98 Update Binary APDU.......................................................................................................................... 99 Update Binary With Protection APDU .............................................................................................. 100 Verify APDU (Programmable Security Code) .................................................................................. 101 SLE 4404 MEMORY CARD CONTROL............................................................................................... 102 Properties ......................................................................................................................................... 102 Power Up.......................................................................................................................................... 103 APDU Exchange Command............................................................................................................. 103 Special handling for C4 and RST ..................................................................................................... 103 Read Binary APDU........................................................................................................................... 104 Write Binary APDU ........................................................................................................................... 104 Erase Binary APDU .......................................................................................................................... 105 Verify/Erase Application Zone APDU ............................................................................................... 106 I2C™ MEMORY CARD CONTROL........................................................................................................ 107 Properties ......................................................................................................................................... 107 Power Up.......................................................................................................................................... 108 APDU Exchange Command............................................................................................................. 108 Read Binary APDU........................................................................................................................... 109 Update Binary APDU........................................................................................................................ 109 GEMPLUS GAM326 MEMORY CARD CONTROL.............................................................................. 110 Properties ......................................................................................................................................... 110 Power Up.......................................................................................................................................... 111 APDU Exchange Command............................................................................................................. 111 Read Binary APDU........................................................................................................................... 112 Write Binary APDU ........................................................................................................................... 112 Erase Counter APDU ....................................................................................................................... 113 Internal Authenticate APDU ............................................................................................................. 114 APPENDIX C. MIFARE COMMANDS..................................................................................................... 117 INDEX ....................................................................................................................................................... 121 v
vi
SECTION 1. APPLICATION MESSAGES
This section describes the format of application messages and defines the protocol for using
these messages.
OVERVIEW
Application messages are the blocks of information exchanged between two applications. They
consist of a header and data. The message format and contents are independent of the transport
mechanism by which the messages are exchanged. Each message has a length that is provided
by the transport mechanism for messages being received or is supplied to the transport
mechanism for messages being transmitted. The transport mechanism is outside the scope of this
document.
MESSAGE FORMAT
The following diagram illustrates the message format:
MTYP
APPL
CMND
RC
DATA
Message Header
The message header contains four one-byte fields: Message Type, Application ID, Command ID
and Result Code. The header is followed by zero or more bytes of data. The existence and
format of the data depends on the Application ID and Command ID.
The following sections describe each field of the header.
Message Type
This field specifies the message type: request, response or notification. The table below defines
the encoding of the message type:
Bits
7-6
5-0
Value
00
01
10
11
–
Definition
Request message type.
Response message type.
Notification message type.
Reserved for future use.
Reserved for future use.
Requests are the messages sent by a host application to a device application. The device
performs the requested operation and sends a response message to the host application. The
device can service only one request at a time. If a request is pending, no further requests should
be sent to the device until a response is received.
1
IntelliStripe 320 Command Reference
Responses are the messages sent as a reply to a previously sent request. The response contains
the result of the requested operation. The device application must send each response within a
pre-determined finite amount of time from receiving the request. This device will send all
responses within 5 seconds.
Notifications are sent by a device application when it needs to notify the host application that the
device’s state has changed or that some external event has occurred (i.e., a magnetic card has
been inserted). The device can send a notification at any time. The device does not expect a
response or any specific action from the host application.
For device operations that take long or indefinite amount of time, the host application usually
sends a request that initiates the operation. The device sends a response, indicating it has started
the operation. When the operation completes, the device sends a notification message to the host
application.
Application ID
This field specifies the application ID. The application ID identifies the device application that a
message corresponds to. A device application is a functional subsystem in the device. For
example, a device might contain a magnetic stripe, transport, and a smart card functional
subsystem. Each application in a device has a unique application ID and a defined command set.
The following application ID values are defined:
App ID (Hex)
00-7F
80-FF
Definition
This range is for generic applications. A generic application
has a common command set for different device models.
This range is for custom applications. A custom application
has a unique command set for a particular device model.
Command ID
This field specifies the command ID. The Command ID has a different meaning for each of the
three message types:
• For requests, the command ID defines the operation to be carried out by the device
application.
• For responses, the command ID defines the operation that was carried out by the device
application (always the same value as the Command ID from the request).
• For notifications, the command ID specifies the event that has occurred in the device
application.
2
Section 1. Application Messages
The following command ID values are defined:
Value (Hex)
00-7F
80-FF
Definition
This range is for generic commands. A generic command
has a common meaning for different device applications.
The existence of generic commands allows standardizing on
commonly used commands across multiple device
applications. Device applications are not required to support
all generic commands. Generic commands are defined
further elsewhere in this document.
This range is for custom commands. A custom command
has a unique meaning for a particular device application.
Custom commands are defined further elsewhere in this
document.
Result Code
This field specifies the result code. The result code has different meaning for each of the three
message types:
For requests, the result code is currently undefined and should be set to 0.
For responses, the result code defines the result of the operation that was carried out by the
device application.
For notifications, the result code specifies the result of the event that has occurred in the device
application.
3
IntelliStripe 320 Command Reference
The following result codes are defined:
Value (Hex)
00-7F
80-FF
Definition
This range is for generic result codes. A generic result code
has a common meaning for different device applications. The
following values are currently defined:
0 – success
1 – failure
2 – warning
3 – bad message header
4 – bad application id
5 – bad command id
6 – bad parameter
7 – timeout
8 – busy
This range is for custom result codes. A custom result code
has a unique meaning for a particular device application.
Data Field
If there is additional data associated with the application message, it is contained in this field.
The length of this field is equal to the length of the message minus the length of the message
header.
4
SECTION 2. GENERIC COMMANDS
This section defines the commands that are generic to all device applications. Not all device
applications support these commands.
GET PROPERTY COMMAND
Command ID: 00 (Hex)
Description:
This command is used to retrieve the value of an application property.
Request Message Data:
Byte
1
2
Field
Property Type
Property ID
Description
Property Type definition follows
Property ID identifies the property
Property Type definition:
The bits are identified by numbering the least significant bit 0 and the most significant bit 7.
Bits
7-4
3-0
Value
0
0
1
2
3
4
5–15
Definition
Reserved for future use.
Property type – None. The property type is unspecified.
Property type Dword – 32-bit integer.
Property type String – zero-terminated ASCII string.
Property type Boolean – 8-bit integer (1 – TRUE, 0 –
FALSE)
Property type Binary – binary data.
Property types reserved for future use.
If a property type other than NONE is used, the type will be checked with the type of the
property ID being requested. If these types do not match, then the command will fail.
5
IntelliStripe 320 Command Reference
Response Message Data:
Byte
1
2
3
Field
Property Type
Property ID
Property Value
Description
Property Type definition follows
Property ID identifies the property
Value of the property
The property type field is the same as defined in the request message data. Only valid property
types are returned. The property type None is never returned. If the property type is Dword, the
format of the property value is in the Intel LSB,MSB (Little Endian) layout. For example Dword
value 0x12345678 is formatted as 0x78 0x56 0x34 0x12. Four bytes are always returned.
Response Message Result Codes:
Success = 00 (Hex)
The command completed successfully.
Failure = 01 (Hex)
The command failed.
6
Section 2. Generic Commands
SET PROPERTY COMMAND
Command ID: 01 (Hex)
Description:
This command is used to modify the value of an application property.
Request Message Data:
Byte
1
2
3
Field
Property Type
Property ID
Property Value
Description
Property Type definition follows
Property ID identifies the property
Value of the property
Property Type definition:
The bits are identified by numbering the least significant bit 0 and the most significant bit 7.
Bits
7-4
3-0
Value
0
0
1
2
3
4
5–15
Definition
Reserved for future use.
Reserved for Future use.
Property type Dword – 32-bit integer.
Property type String – zero-terminated ASCII string.
Property type Boolean – 8-bit integer (1 – TRUE, 0 –
FALSE)
Property type Binary – binary data.
Property types reserved for future use.
The property type None, defined in the get property command, is not allowed. Valid property
types are required or the command will fail. If the property type is Dword, the format of the
property value is in the Intel LSB,MSB (Little Endian) layout. For example Dword value
0x12345678 is formatted as 0x78 0x56 0x34 0x12. All four bytes are required.
Response Message Data: None
Response Message Result Codes:
Success = 00 (Hex)
The command completed successfully.
Failure = 01 (Hex)
The command failed.
7
IntelliStripe 320 Command Reference
SAVE PROPERTY COMMAND
Command ID: 02 (Hex)
Description:
This command is used to save the current property value as the power up / reset default value.
This command can be used to modify the property default values so that the properties do not
have to be initialized to other values after a power cycle or reset. Typically the set property
command is sent first to set the property to the desired power up / reset value. After which, the
save property command is sent to save the property in non-volatile memory so that it can then be
used as the new default value after a power cycle or reset. Not all properties support this
command. See the description of each property to see if this command is supported or not.
Request Message Data:
Byte
1
2
3
4
Field
Property Type
Property ID
Security Code 1
Security Code 2
Description
Property Type definition follows
Property ID identifies the property
55 (hex)
AA (hex)
Property Type definition:
The bits are identified by numbering the least significant bit 0 and the most significant bit 7.
Bits
7-4
3-0
Value
0
0
1
2
3
4
5–15
Definition
Reserved for future use.
Property type – None. The property type is unspecified.
Property type Dword – 32-bit integer.
Property type String – zero-terminated ASCII string.
Property type Boolean – 8-bit integer (1 – TRUE, 0 –
FALSE)
Property type Binary – binary data.
Property types reserved for future use.
Response Message Data: None
Response Message Result Codes:
Success = 00 (Hex)
The command completed successfully.
Failure = 01 (Hex)
The command failed.
8
SECTION 3. DEVICE APPLICATION
Application ID: 00 (Hex)
Description:
This application deals with device functionality.
GET/SET/SAVE PROPERTY COMMANDS
Get Property Command ID: 00 (Hex)
Set Property Command ID: 01 (Hex)
Save Property Command ID: 02 (Hex)
Description:
These commands are used to get, set and save the value of application properties. Details of
these commands are described in the Generic command section of this document. The following
describes each property this application supports.
9
IntelliStripe 320 Command Reference
MODEL NUMBER PROPERTY
Property ID: 00 (Hex)
Property Type: String
Maximum Length: 33 (including terminating zero)
Power Up/Reset Value: “IntelliStripe 320”
Get/Set/Save support: Get
Description:
This property is used to get the devices model number.
Values:
The value is fixed at “IntelliStripe 320”.
Example Get Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
00
CMND
3
00
RC
4
00
PTYP
5
02
PID
6
00
Example Get Property Response:
Field
Byte
Value (Hex)
10
MTYP
1
40
APPL
2
00
CMND
3
00
RC
4
00
PTYP
5
02
PID
6
00
PVAL
7 - 23
49 6E 74 65 6C 6C 69 53 74
72 69 70 65 20 33 32 30 00
“IntelliStripe 320” (ASCII)
Section 3. Device Application
SOFTWARE ID PROPERTY
Property ID: 01 (Hex)
Property Type: String
Maximum Length: 33 (including terminating zero)
Power Up/Reset Value: Software dependent
Get/Set/Save support: Get
Description:
This property is used to get the devices software ID.
Values:
The value is fixed and is software dependent. For example, the software ID could be
“16051337A01” where “16051337” is the software part number, “A” is the software revision
and “01” is the software version.
Example Get Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
00
CMND
3
00
RC
4
00
PTYP
5
02
PID
6
01
Example Get Property Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
00
CMND
3
00
RC
4
00
PTYP
5
02
PID
6
01
PVAL
7 - 18
31 36 30 35 31 33 33 37 41 30
31 00 “16051337A01” (ASCII)
11
IntelliStripe 320 Command Reference
SOFTWARE RESET COMMAND
Command ID: 80 (Hex)
Description:
This command is used to reset the device. This will put the device in its power up state. The
device should be allowed time to power up before trying to communicate with the device. The
maximum time it would take the device to reset would be 5 seconds.
Request Message Data: None
Response Message Data: None
Response Message Result Codes:
Success = 00 (Hex)
The command completed successfully.
Example Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
00
CMND
3
80
RC
4
00
MTYP
1
40
APPL
2
00
CMND
3
80
RC
4
00
Example Response:
Field
Byte
Value (Hex)
12
SECTION 4. MAGNETIC STRIPE APPLICATION
Application ID: 01 (Hex)
Description:
This application deals with decoding and presenting magnetic stripe card data. This application
works closely with the transport application, which deals with card transportation and magnetic
stripe data acquisition. The transport application must be used to acquire magnetic stripe data
before any data is available to decode and present by the magnetic stripe application.
GET/SET/SAVE PROPERTY COMMANDS
Get Property Command ID: 00 (Hex)
Set Property Command ID: 01 (Hex)
Save Property Command ID: 02 (Hex)
Description:
These commands are used to get, set and save the value of application properties. Details of
these commands are described in the Generic command section of this document. The following
describes each property this application supports.
13
IntelliStripe 320 Command Reference
NOTIFY READ STATE PROPERTY
Property ID: 00 (Hex)
Property Type: Dword
Power Up/Reset Value: 0 (OFF)
Get/Set/Save support: All
Description:
If the notify read state is not set to OFF, then a notification message will be sent to the host when
a card is read. The notification message will have the same syntax as the command response of
the command that corresponds to the notify read state. The only difference is that the message
header will contain a notification message type instead of a response message type. Note that
when the Notify Read State is set to GET TRACK DECODE DATA, the track number is
obtained from the Notify Read Track Property.
Values:
Value
0
1
2
Notify Read State
OFF
GET TRACK 123 DECODE DATA
GET TRACK DECODE DATA
Example Set Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
01
CMND
3
01
RC
4
00
PTYP
5
01
PID
6
00
PVAL
7 - 10
02 00 00 00 (GET TRACK
DECODE DATA)
Example Set Property Response:
Field
Byte
Value (Hex)
14
MTYP
1
40
APPL
2
01
CMND
3
01
RC
4
00
Section 4. Magnetic Stripe Application
NOTIFY READ TRACK PROPERTY
Property ID: 01 (Hex)
Property Type: Dword
Power Up/Reset Value: 2 (Track 2)
Get/Set/Save support: All
Description:
This property contains the track number that is used when the Notify Read State property is set
to the GET TRACK DECODE DATA state. This is the track that is sent in the notification
message when a card is read.
Values:
Value
1
2
3
Notify Read Track
TRACK 1
TRACK 2
TRACK 3
Example Set Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
01
CMND
3
01
RC
4
00
PTYP
5
01
PID
6
01
PVAL
7 - 10
03 00 00 00 (TRACK 3)
Example Set Property Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
01
CMND
3
01
RC
4
00
15
IntelliStripe 320 Command Reference
DECODE JIS TYPE 2 PROPERTY
Property ID: 15 (Hex)
Property Type: Boolean
Power Up/Reset Value: 0 (False)
Get/Set/Save support: All
Description:
If this property is set to true then cards encoded to JIS X 6302 type 2 standards can be decoded.
Values:
Value
0
1
Decode JIS Type 2
False
True
Example Set Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
01
CMND
3
01
RC
4
00
PTYP
5
03
PID
6
15
Example Set Property Response:
Field
Byte
Value (Hex)
16
MTYP
1
40
APPL
2
01
CMND
3
01
RC
4
00
PVAL
7
01 (True)
Section 4. Magnetic Stripe Application
CLEAR DATA COMMAND
Command ID: 80 (Hex)
Description:
This command is used to clear all magnetic stripe data so that the data can no longer be acquired
from the device. After this command is issued, no magnetic stripe data will be available until a
card is read.
After a card is read, the magnetic stripe data is held in the device until:
1.
2.
3.
Another card read occurs.
A Clear Data command is issued.
The device is power cycled or reset.
Request Message Data: None
Response Message Data: None
Response Message Result Codes:
Success = 00 (Hex)
The command completed successfully.
Example Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
01
CMND
3
80
RC
4
00
MTYP
1
40
APPL
2
01
CMND
3
80
RC
4
00
Example Response:
Field
Byte
Value (Hex)
17
IntelliStripe 320 Command Reference
GET TRACK 123 DECODE DATA COMMAND
Command ID: 81 (Hex)
Description:
This command is used to get decoded information related to a magnetic stripe read for tracks 1, 2
and 3. This command always returns data from the most current magnetic stripe data
acquisition. This command is used to get decode status, card encode type, 3 track data lengths
and decoded card data for 3 tracks. Each track of decoded data starts with a start sentinel and
ends with an end sentinel and is converted to ASCII format. The ASCII representation of the
start and end sentinels vary depending on the encode format.
Request Message Data: None
Response Message Data:
Byte
1
2
3
4
5
6-?
Field
Decode Status
Card Encode Type
Track 1 Data Length
Track 2 Data Length
Track 3 Data Length
Track 1, 2, 3 Data
Description
Decode status definition follows
Card Encode Type definition follows
Length of track 1 data
Length of track 2 data
Length of track 3 data
Track 1 followed by track 2 then track 3 decoded data
Decode Status definition:
The bits are identified by numbering the least significant bit 0 and the most significant bit 7.
Bit
0
1
2
3-7
Field
Track 1 error
Track 2 error
Track 3 error
RFU
Description
Indicates track 1 decode error if set to 1
Indicates track 2 decode error if set to 1
Indicates track 3 decode error if set to 1
Reserved for future use
A decode error is only indicated if a valid start sentinel exists on the track and the track cannot
be decoded. If a track cannot be decoded and if it does not have a decode error it is considered
blank.
18
Section 4. Magnetic Stripe Application
Card Encode Type definition:
Value
0
1
2
Encode Type
ISO/ABA
AAMVA
CADL
3
4
Blank
Other
5
Undetermined
6
None
7
JIS Type 2
Description
ISO/ABA encode format
AAMVA encode format
CADL encode format. Note that some versions of this reader
can only read track 2 for this format. They can not read tracks 1
and 3. However, this format is obsolete. There should no
longer be any cards in circulation that use this format. California
is now using the AAMVA format.
The card is blank
The card has a non-standard encode format. For example,
ISO/ABA track 1 format on track 2.
The card encode type could not be determined because no
tracks could be decoded.
No decode has occurred. This type occurs if no magnetic stripe
data has been acquired since the data has been cleared or
since the device was powered on.
JIS X 6302 Type 2 encode format
Response Message Result Codes:
Success = 00 (Hex)
The command completed successfully.
Example Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
01
CMND
3
81
RC
4
00
Example Response:
Field
Byte
Value (Hex)
MTYP
1
40
Field
Byte
Value (Hex)
TK1 LEN
7
37
APPL
2
01
CMND
3
81
TK2 LEN
8
22
RC
4
00
TK3 LEN
9
37
DCD STAT
5
00
ENCD TYP
6
00
TK123 DATA
10 - 153
Track1 Track2 Track3
19
IntelliStripe 320 Command Reference
GET TRACK DECODE DATA COMMAND
Command ID: 82 (Hex)
Description:
This command is used to get decoded information related to a magnetic stripe read for a
single track. This command always returns data from the most current magnetic stripe
data acquisition. This command is used to get decode status, card encode type and
decoded card data for a given track. The track of decoded data starts with a start sentinel
and ends with an end sentinel and is converted to ASCII format. The ASCII
representation of the start and end sentinels vary depending on the encode format.
Request Message Data:
Byte
1
Field
Track Number
Description
Number of desired track. This value should be 1, 2 or 3.
Response Message Data:
Byte
1
2
3
4-?
Field
Track Number
Decode Status
Card Encode Type
Track Data
Description
Number of retrieved track. Always the same as requested track.
Decode status definition follows
Card Encode Type definition follows
Track decoded data
Decode Status definition:
The bits are identified by numbering the least significant bit 0 and the most significant bit 7.
Bit
0
1
2
3-7
Field
Track 1 error
Track 2 error
Track 3 error
RFU
Description
Indicates track 1 decode error if set to 1
Indicates track 2 decode error if set to 1
Indicates track 3 decode error if set to 1
Reserved for future use
A decode error is only indicated if a valid start sentinel exists on the track and the track cannot
be decoded. If a track cannot be decoded and if it does not have a decode error it is considered
blank.
20
Section 4. Magnetic Stripe Application
Card Encode Type definition:
Value
0
1
2
Encode Type
ISO/ABA
AAMVA
CADL
3
4
Blank
Other
5
Undetermined
6
None
7
JIS Type 2
Description
ISO/ABA encode format
AAMVA encode format
CADL encode format. Note that some versions of this reader
can only read track 2 for this format. They can not read tracks 1
and 3. However, this format is obsolete. There should no
longer be any cards in circulation that use this format. California
is now using the AAMVA format.
The card is blank
The card has a non-standard encode format. For example,
ISO/ABA track 1 format on track 2.
The card encode type could not be determined because no
tracks could be decoded.
No decode has occurred. This type occurs if no magnetic stripe
data has been acquired since the data has been cleared or
since the device was powered on.
JIS X 6302 Type 2 encode format
Response Message Result Codes:
Success = 00 (Hex)
The command completed successfully.
Bad Parameter = 06 (Hex)
The command failed due to a bad parameter in the request message data field
Example Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
01
CMND
3
82
RC
4
00
TRACK
5
02
Example Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
01
CMND
3
82
RC
4
00
TRACK
5
02
DCD STAT
6
00
ENCD TYP
7
00
TK DATA
8 - 41
Track2
21
IntelliStripe 320 Command Reference
GET MAGNEPRINT DATA COMMAND
Command ID: 86 (Hex)
Description:
This command is used to get MagnePrint™ information for the most recently read card.
Note 1: This command available only on units with MagnePrint feature.
Request Message Data: None
Response Message Data:
Byte
1-4
5-58
Field
MagnePrint status
MagnePrint™ data
Description
MagnePrint status. Byte 1 LSB is status bit 0. Byte 4 MSB is
status bit 31
MagnePrint status is defined as follows:
Bit 0 = This is a MagnePrint-capable product
Bits 1 through 15 = Product revision & mode
Bit 16 = STATUS-only state
Bit 17 = Noise too high or “move me” away from the noise
source (used only in STATUS-only)
Bit 18 = Swipe too slow
Bit 19 = Swipe too fast
Bit 20 = Unassigned
Bit 21 = Actual Card Swipe Direction (0 = Forward, 1 = Reverse)
Bits 22 thru 31 = Unassigned (always set to Zero)
Note that bits 16 and 17 will never be set because they would
only be set if noise was too high during the swipe and in that
case this command will fail setting the result code to 86 (Hex) to
indicate the noisy condition. In this case, no response message
data will be available.
MagnePrint™ data
Response Message Result Codes:
Success = 00 (Hex)
The command completed successfully.
MagnePrint™ Not Installed = 84 (Hex)
The MagnePrint™ feature is not installed on this device. Note that some versions
of this reader will return result code 05 (Hex) if MagnePrint is not installed.
Result code 05 (Hex) indicates that this command is not available.
Data cleared = 85 (Hex)
MagnePrint™ data was cleared by a Clear Read Data command.
22
Section 4. Magnetic Stripe Application
Excess noise = 86 (Hex)
The MagnePrint™ circuit is sensing excessive electrical noise in the environment,
no MagnePrint™ data is available. Moving the reader away from noise sources
(monitors, speakers, etc.) may solve this problem. Note that this result indicates
that the noisy condition was present at the time the card was swiped. It is not a
real time indication that noise is present. For a real time indication that noise is
present see the Indicators property in the Transport application.
Data not available = 87 (Hex)
There is no MagnePrint™ data available for this card format. This could occur
when swiping a blank card.
Example Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
01
CMND
3
86
RC
4
00
Example Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
01
CMND
3
86
RC
4
00
STATUS
5-8
MagnePrint status
DATA
9-62
MagnePrint™ data
23
IntelliStripe 320 Command Reference
24
SECTION 5. SMART CARD APPLICATION
Application ID: 02 (Hex)
Description:
This application deals with smart card communications.
GET/SET/SAVE PROPERTY COMMANDS
Get Property Command ID: 00 (Hex)
Set Property Command ID: 01 (Hex)
Save Property Command ID: 02 (Hex)
Description:
These commands are used to get, set and save the value of application properties. Details of
these commands are described in the Generic command section of this document. The following
describes each property this application supports.
RESPONSE CODES USED THROUGHOUT THE APPLICATION
Two Response Codes are used throughout most of the application and have the same meaning in
all cases.
80 (Hex) – This Response Code is used in conjunction with the
Request/Response/Notification Model for all commands. It means command has not yet
completed and that a Notification message will be sent later when the command has
completed.
08 (Hex) – This Response Code may be used with any command and indicates either:
- The Smart Card Application can not find hardware to execute on, or
- The Smart Card Application is busy executing a previous command.
NOTIFICATIONS IN THE SMART CARD APPLICATION
The Smart Card Application attempts to respond to all requests in a timely manner. Because
different Smart Cards may take longer than others to respond to a given request, it is not possible
to predict how long it will take to complete a request. Because of this, we have adopted a
Request/Response/Notification model for most commands to the Smart Card Application. The
Get and Set Property commands are excluded from this model.
25
IntelliStripe 320 Command Reference
Request/Response/Notification Model
When the Smart Card Application receives a Request, it initiates the requested action. If the
action completes in a timely manner, a Response message is sent informing the Host Application
of completion. If the request does not complete in a timely manner, a Response message is sent
indicating that the command has not yet completed (Response Code 80 (Hex)) and that a
Notification message will be sent later when the command has completed. The Notification
message is identical in every way except for its Command Type to the Response message that
would have been sent if the request had completed in a timely manner.
Example Request/Response/Notification Sequence
Request message (Power Up Command):
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
02
CMND
3
80
RC
4
80
Response message (RC = 80 means Request Initiated, Notification to follow):
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
02
CMND
3
80
RC
4
80
Notification message (Card Powered Up OK, Data is ATR):
Field
Byte
Value (Hex)
26
MTYP
1
80
APPL
2
02
CMND
3
80
RC
4
00
PVAL
5-8
3B 60 00 0A
Section 5. Smart Card Application
THE CONDRPT PROPERTY
This property is used to give a detailed status of the Power Up Command, the TPDU, Card To
IFD Command, the TPDU, IFD To Card Command, and the APDU Exchange Command. It
consists of the following fields:
Bytes
0
1
2
3–6
7 – 10
11 14
Meaning
Ignore
Primary Status
0x80 = No Errors
0x01 = Parameter Errors, details follow in Secondary Status
0x01 = Header Block less than required length
0x04 = Length of Data not consistent with Lc
0x06 = Requested Data larger than available buffer space
0x82 = Card Handling Errors, details follow in Secondary Status
0x01 = Card Not In Connector
0x02 = Card Not Powered
0x05 = Card Not Responding (I2C™ cards only)
0x03 = Abnormal Condition Report, details follow in Accumulator
Secondary Status, as defined above.
Accumulator is a bit map field documenting the abnormal conditions
encountered during the process. The meaning of the individual bits
depends on the command that produced the accumulator contents, see the
definitions in the corresponding command descriptions.
Error Conditions Template – the actual Error Conditions Template used, in
conjunction with the Warning Conditions Template, to formulate the
Accumulator contents.
Warning Conditions Template – the actual Warnings Conditions Template
used, in conjunction with the Error Conditions Template, to formulate the
Accumulator contents.
ERROR/WARNING CONDITION TEMPLATES
In dealing with Smart Cards, there are numerous situations that can arise in operation that might
be considered abnormal. We define three basic manners of handling these situations:
Errors – These are situations that are considered disastrous. When they are encountered,
the card is deactivated immediately and the Result Code Failure (01 Hex) is returned.
Warnings – These are situations that are considered noteworthy, but may not require the
card to be deactivated. The operation requested was able to complete. When these
situations are encountered the Result Code Warning (02 Hex) is returned.
Ignore – These are situations that are considered of no importance. The operation
requested was able to complete. When these situations are encountered the Result Code
Success (00 Hex) is returned.
27
IntelliStripe 320 Command Reference
Of course the operation requested may complete without encountering any abnormal situations at
all. When this happens the Result Code Success (00 Hex) is returned.
Criteria for treating abnormal situations may change from application to application. One way of
dealing with changing criteria is via Error/Warning Condition Templates. Each template is 4
bytes long. Each bit can be used to define a particular condition. If the bit is set in an Error
Conditions Template and the condition is encountered, it is considered an Error and the card is
deactivated with the Result Code Failure (01 Hex) being returned. Bits set in the Error
Conditions Template override bits set in a corresponding Warning Conditions Template. If the
bit is set in the Warning Conditions Template (and not in the corresponding Error Conditions
Template) and the condition is encountered, it is considered a Warning and the operation is
allowed to proceed, but a Result Code of Warning (02 Hex) will be returned when the operation
completes. If the bit is not set in either the Error or Warning Conditions Template and the
condition is encountered, the condition is Ignored, the operation is allowed to proceed, and a
Response Code of Success (00 Hex) is returned.
As conditions are encountered, they are recorded in an Accumulator bit map. Each bit in the
Accumulator bit map corresponds directly to the bits in the Error and Warning Conditions
Template. The Accumulator bit map does not distinguish between Errors, Warnings, and
Ignored conditions; it simply records the occurrence of the conditions. The Accumulator is part
of the CondRpt property.
Different operations use different Error/Warning Conditions Templates.
28
Section 5. Smart Card Application
CARD TYPES
Multiple card types are supported. The default card type (after power up) is 0x00, which
supports microprocessor cards (T=0/T=1). The card type may be selected by the host application
by setting the desired type in Property 01 (Card Type). The specified card type is used on all
connectors until a new card type is set via the Set Property command.
There are two major categories of card types. The first are ISO 7816-3(1997) Microprocessor
cards. Most Microprocessor cards available today comply with 7816-3 and this manual does not
address their functionality in depth. The second category is Memory or Synchronous cards.
There are numerous Memory cards available in the market. Some of them conform to ISO 781610, some don’t. There are no standards for command sets used to control these cards. The
protocols and commands used to control these cards vary widely. In an effort to promote ease of
use, we attempt to provide a command set similar in appearance and structure to the command
set specified for the control of Microprocessor cards in ISO 7816-4. For the user this means
there will be some consistency of principles of operation between the different Memory cards
and Microprocessor cards.
Memory cards are controlled using three basic commands, Power Up, Power Down, and APDU
Exchange. Some of the operating conditions can be specified via Properties documented in the
Properties table later in this section and in Appendix B. Memory Card Support. The details of
the Power Up and APDU Exchange commands vary somewhat depending on the type of
Memory card being used and are documented in a later section of this manual. The Power Down
command functions identically for Microprocessor and Memory cards.
Control of many memory cards depends on the manufacturer’s specifications for the card, and it
would be challenging/impossible to implement a well designed application without the
manufacturer’s specifications. Many manufacturers release specifications only with Non
Disclosure Agreements, so MagTek may not be able to provide such documentation to users. It
is assumed that the user has access to the manufacturer’s specifications for the card type being
used.
Currently supported values of the Card Type Property are:
Value
0x00
0x01
0x02
0x03
0x05
0x06
Card Type
ISO 7816-3(1997) Microprocessor Cards (T=0/T=1)
SLE 4428/4418 (or compatible) Memory Cards
SLE 4442/4432 (or compatible) Memory Cards
SLE 4404 family Memory Cards (includes many similar cards)
I2C™ Cards
Gemplus GAM326 Memory Card
29
IntelliStripe 320 Command Reference
30
Section 5. Smart Card Application
PROPERTIES
Reset Values marked with * are per ISO 7816-3(1997), or EMV 4.1. Changing these properties is not advisable unless the card you are
operating is non-standard.
General Properties used by the whole application. In order for these properties to influence a card session, they must be set before the card session
begins. Once set, these property values will persist for the current connector until a device reset, or until they are changed by further property
settings.
Name
ID
Type
Length
Reset
Get/Set/ Description
(Hex)
Value
Save
CondRpt
00
Binary
15
N/A
Get
Operation Condition Report. This property only has meaning if the most
recent request was Power Up, Exchange APDU, or Exchange TPDU.
This property gives detailed information on the operation and is most
useful if the RC in the response was either Failure or Warning. See Error
/ Warning Condition Templates section for a detailed explanation of this
property.
CardType
01
Binary
1
0x00
Get/Set
Card Type
See Card Types in this section for values
Volts
02
Binary
1
0x03*
Get/Set
Card Voltages allowed:
0x01 = 5 volts only
0x02 = 3 volts only
0x03 = 5 and 3 volts
UART-ID
03
Binary
11
N/A
Get
ID of Smart Card UART
Microprocessor Card Setup Properties, used to control the Power Up sequence. In order for these properties to influence a card session, they must
be set before the card session begins. Once set, these property values will persist for the current connector until a device reset, or until they are
changed by further property settings.
Name
ID
Type
Length
Reset
Get/Set Description
(Hex)
Value
Initial ETU
15
Dword
2
372*
Get/Set
Initial value for ETU, in card clocks. Used to set bit time.
Initial CWT
16
Dword
2
449*
Get/Set
Maximum time, in 2 ms units, to wait between characters during the ATR.
In EMV Mode this property is set to 472 yielding 10080 etus.
Initial BWT
18
Dword
2
6*
Get/Set
Maximum time, in 2 ms units, to wait for first character of ATR after Reset
Default EGT
19
Dword
1
0*
Get/Set
Default EGT, used if card sends no EGT info in TC1.
Default BGT
1A
Dword
1
22*
Get/Set
Default BGT, always used.
Power Up Error
1B
Binary
4
(Hex)*
Get/Set
Used to define which conditions shall be considered errors when
Conditions
0F 00 00
powering up the card. The options in this bit-map are defined in the
Template
00
description of the Power Up command.
31
IntelliStripe 320 Command Reference
Power Up Warning
Conditions
Template
Power Up Warm
Reset Conditions
Filter Template
1C
Binary
4
1D
Binary
4
PPS Allowed
1E
Boolean
Protocol Selection
Allowed
1F
Speed Selection
Allowed
(Hex)*
70 d0 47
00
(Hex)*
00 00 00
00
Get/Set
1
TRUE*
Get/Set
Boolean
1
TRUE
Get/Set
20
Boolean
1
TRUE
Get/Set
Force PPS1
Transmission
21
Boolean
1
FALSE
Get/Set
Reset Delay
22
Dword
1
2*
Get/Set
Abort on Parity
Error in ATR
23
Boolean
1
FALSE*
Get/Set
32
Get/Set
Used to define which conditions shall be considered warnings when
powering up the card. The options in this bit-map are defined in the
description of the Power Up command.
Used in combination with an EMV Cold / Warm Power Up sequence.
When a warm reset is necessary, the Warning Conditions Template is
ANDed with the inverse of the Warm Reset Conditions Filter Template,
then the resulting Warning Conditions Template is copied to the Error
Conditions Template just before the Warm Reset occurs. The effect is to
allow conditions which were considered warnings during the Cold Reset
to be ignored during the Warm Reset. See the description of the Power
Up command for more information.
If a card sends an ATR allowing more than one protocol and/or speed,
the value of this property indicates whether a PPS sequence should be
performed. If this property is set to TRUE, a PPS will be performed,
otherwise it will not be sent.
This property indicates if a PPS sequence is allowed to select a different
protocol. If it is set TRUE and a PPS sequence is performed, the
sequence will not attempt to select a different protocol.
This property indicates if a PPS sequence is allowed to select a different
speed. If it is set to TRUE and a PPS sequence is performed, the
sequence will not attempt to select a different speed.
This property is only referenced when performing a PPS sequence. If it is
TRUE, the PPS sequence will always include a PPS1 byte. If it is FALSE
a PPS1 byte would only be included if a speed change were required.
This property exists to allow the user to tailor the PPS sequence for cards
with special requirements. Unless your card is having problems with
PPS, we recommend you leave this property FALSE.
Time to hold RST low in either a Cold or Warm Reset sequence. The
units are increments of 200 card clocks. The default value of 2 yields 400
clocks per ISO 7816-3(1997). In EMV Mode this property is set to 205,
yielding 41,000 clocks.
If this property is TRUE and a parity error is detected in the ATR, the card
is powered down immediately and the Power Up request fails. If it is
FALSE and a parity error occurs in the ATR, the IFD will request the byte
from the card again.
Section 5. Smart Card Application
ATR Secondary
Timeout
24
Dword
2
0*
Get/Set
EMV Reset Rules
25
Boolean
1
FALSE*
Get/Set
TC2 Minimum
26
Binary
1
0x01*
Get/Set
TC2 Maximum
27
Binary
1
0xFF*
Get/Set
TA3 Minimum
28
Binary
1
1*
Get/Set
TA3 Maximum
29
Binary
1
254*
Get/Set
BWI Maximum
2A
Binary
1
9*
Get/Set
CWI Maximum
2B
Binary
1
15*
Get/Set
If this property is zero, there is no limit on the total time an ATR takes to
complete. If this property has a non-zero value, it specifies (in 2 ms
intervals) the maximum time allowed from the start of the first byte of the
ATR to the reception of the last byte in the ATR. If this time is exceeded,
the card is deactivated and the Power Up request fails. In EMV Mode
this property is set to 939, which yields 20160 etus.
If this property is TRUE, EMV Reset Rules are followed in the Power Up
sequence. If this property is FALSE, only a Cold Reset is performed. In
EMV Mode this property is TRUE. See EMV specification for details of
operation.
This property gives the minimum value allowed for TC2 in the ATR. A
lower value will cause an Error or Warning depending on the contents of
the Error and Warning Condition Templates.
This property gives the maximum value allowed for TC2 in the ATR. A
higher value w ill cause an Error or Warning depending on the contents of
the Error and Warning Condition Templates. In EMV Mode this property
has the value 10. TC2 is used to calculate the Work Waiting Time in T=0.
This property gives the minimum value allowed for TA3 in the ATR. A
lower value w ill cause an Error or Warning depending on the contents of
the Error and Warning Condition Templates. In EMV Mode this property
has the value 16. TA3 gives IFSC, the maximum number of bytes in the
INF field of a T=1 message.
This property gives the maximum value allowed for TA3 in the ATR. A
higher value w ill cause an Error or Warning depending on the contents of
the Error and Warning Condition Templates. TA3 gives IFSC, the
maximum number of bytes in the INF field of a T=1 message.
This property gives the maximum value allowed for BWI in the ATR. A
higher value w ill cause an Error or Warning depending on the contents of
the Error and Warning Condition Templates. BWI is found in TB3 of the
ATR and is used to calculate the Block Wait Time (BWT) for T=1. In EMV
Mode this property is 4.
This property gives the maximum value allowed for CWI in the ATR. A
higher value w ill cause an Error or Warning depending on the contents of
the Error and Warning Condition Templates. CWI is found in TB3 of the
ATR and is used to calculate the Character Wait Time (CWT) for T=1. In
EMV Mode this property is 5.
33
IntelliStripe 320 Command Reference
EMV TD2 Rules
2C
Boolean
1
FALSE*
Get/Set
Parity Error Repeat
Count
2D
Dword
1
5*
Get/Set
Operating Mode
2E
Binary
1
0
Get/Set
PPS Delay
30
Dword
4
2
Get/Set
This property indicates whether the Power Up sequence should use EMV
rules for screening TD2. If the property is TRUE, the EMV rules are used
(protocol T=14 may be designated, though it will not be used). If the
property is FALSE, TD2 with T=14 will cause an Error or Warning
depending on the contents of the Error and Warning Condition
Templates. This property is TRUE in the EMV Mode.
In T=0 there is a mechanism for requesting retransmission of a character
with incorrect parity. This property sets the total number of
receptions/transmissions allowed for a single character in T=0.
This property defines the Operating Mode for microprocessor cards.
Changing this changes numerous other properties. This property
should only be changed when no cards are currently activated.
Values are as follows:
0 – ISO 7816-3(1997) Mode
1 – EMV 4.1 Mode
Trying to set this property to any other value will get a RC of failure.
Setting this property sets the Operating Mode of all connectors in the
device.
This property defines the delay between receiving an ATR from a card
and transmitting a PPS request to a card. This delay is in 10ms units. So
the default value of 2 is equivalent to 20ms. Valid values for this delay
are 0 – 254 (0 – 2540ms).
Microprocessor Card Operating Properties, used to monitor Microprocessor Card operations. Settings of these properties only apply to the current
card session.
Name
ID
Type
Length
Reset
Get/Set Description
(Hex)
Value
Protocol
38
Binary
1
N/A
Get
This property gives the protocol number in use for the current card
session.
Proposed Protocol
39
Binary
1
N/A
Get
This property gives the protocol number the card proposed for use
pending a PPS sequence.
Speed
3A
Dword
2
N/A
Get
This property gives the speed (in clocks/ETU) for the current card
session.
Proposed Speed
3B
Dword
2
N/A
Get
This property gives the speed (in clocks/ETU) the card proposed for use
pending a PPS sequence.
Proposed FI/DI
3C
Binary
1
N/A
Get
This property gives the FI and DI from TA1 which were used to calculate
the Proposed Speed property.
34
Section 5. Smart Card Application
Actual EGT
3D
Dword
1
N/A
Get
Actual Class
3E
Binary
1
N/A
Get
Actual Specific
Mode
3F
Boolean
1
N/A
Get
ATR Map
40
Binary
67
N/A
Get
This property is the EGT value for the current session. If TC1 was
transmitted in the ATR it was calculated from TC1, otherwise it was
calculated from the Default EGT property.
This property gives the Class Indicator as reported by the card in the
ATR, or in the absence of a Class Indicator from the card, the default
(Class A only).
This property gives the specific mode indication as reported by the card in
the ATR, or in the absence of the Specific Mode byte (TA2), the default
value:
FALSE = Negotiable Mode (default)
TRUE = Specific Mode
This property gives a detailed analysis of the ATR as received from the
card. For details see ATR Map Structure.
T=0 Microprocessor Card Setup Properties, used to control the T=0 protocol operations. In order for these properties to influence a card session,
they must be set before the card session begins. Once set, these property values will persist for the current connector until a device reset, or until
they are changed by further property settings.
Name
ID
Type
Length
Reset
Get/Set Description
(Hex)
Value
Initial T=0 Error
51
Binary
4
(Hex)*
Get/Set Used to define which conditions shall be considered errors when running
Conditions
0F 00 00
with the T=0 protocol. See Error / Warning Condition Templates for
Template
00
further discussion. See T=0 Error / Warning Conditions for specific
coding.
Initial T=0 Warning
52
Binary
4
(Hex)
Get/Set Used to define which conditions shall be considered warnings when
Conditions
00 00 00
running with the T=0 protocol. See Error / Warning Condition Templates
Template
00
for further discussion. See T=0 Error / Warning Conditions for specific
coding.
T=0 INS Mask
53
Binary
1
0xFE*
Get/Set This property defines the mask that is ANDed with an INS byte returned
from the card. If the INS byte, or its inverse, matches the result, the INS
byte is considered to be a valid procedure byte. In the EMV Mode, this
property is set to 0xFF, requiring all bits to match.
T=0 Microprocessor Card Operating Properties, used to control the T=0 protocol operations. Settings of these properties only apply to the current
card session.
35
IntelliStripe 320 Command Reference
Name
ID
(Hex)
60
Type
Length
Dword
2
T=0 Actual Error
Conditions
Template
61
Binary
4
(Hex)*
0F 00 00
00
Get/Set
T=0 Actual Warning
Conditions
Template
62
Binary
4
(Hex)
00 00 00
00
Get/Set
T=0 Actual INS
Mask
63
Binary
1
0xFE*
Get/Set
T=0 Actual WWT
Reset
Value
N/A
Get/Set
Description
Get
This is the Work Wait Time, in units of 2 ms, being used for T=0
operations for this card.
Used to define which conditions shall be considered errors when running
with the T=0 protocol. See Error / Warning Condition Templates for
further discussion. See T=0 Error / Warning Conditions for specific
coding.
Used to define which conditions shall be considered warnings when
running with the T=0 protocol. See Error / Warning Condition Templates
for further discussion. See T=0 Error / Warning Conditions for specific
coding.
This property defines the mask that is ANDed with an INS byte returned
from the card. If the INS byte, or its inverse, matches the result, the INS
byte is considered to be a valid procedure byte. In the EMV Mode, this
property is set to 0xFF, requiring all bits to match.
T=1 Microprocessor Card Setup Properties, used to control the T=1 protocol operations. In order for these properties to influence a card session,
they must be set before the card session begins. Once set, these property values will persist for the current connector until a device reset, or until
they are changed by further property settings.
Initial NAD
6F
Binary
1
0x00*
Get/Set
This property is the NAD byte sent in a T=1 protocol frame. Leave it at
0x00 unless your card is special.
Initial IFSD
70
Boolean
1
TRUE*
Get/Set
This property indicates whether an IFSD adjust S(IFSD Req, 254)
Adjustment Allowed
message will be sent to the card after the ATR has been received (in T=1
Protocol). If TRUE, the message is sent, if FALSE, no message is sent.
If the S(IFSD Req, 254) message is not sent, the card would assume the
default IFSD of 32. This may be undesirable.
Initial Resynch
71
Boolean
1
TRUE*
Get/Set
This property indicates whether T=1 handling is allowed to send a
Allowed
RESYNCH message when it has certain protocol errors (see 78163(1997). If it is TRUE, the RESYNCH message is allowed. If it is FALSE,
the message is not permitted. In EMV Mode this property is set to
FALSE.
Initial Chaining
72
Boolean
1
TRUE*
Get/Set
This property indicates whether T=1 handlind is allowed to chain
Allowed
messages longer than IFSC to the card. If TRUE, chaining is allowed. If
FALSE, chaining is not allowed and any request longer than IFSC will fail.
36
Section 5. Smart Card Application
Initial T=1 Error
Conditions
Template
73
Binary
4
(Hex)*
C1 0B 60
03
Get/Set
Initial T=1 Warning
Conditions
Template
74
Binary
4
(Hex)*
3E F4 9E
00
Get/Set
Initial Use EMV
NAD Rules
75
Boolean
1
FALSE*
Get/Set
IFSD Allowed after
ATR
76
Boolean
1
TRUE*
Get/Set
Used to define which conditions shall be considered errors when running
with the T=1 protocol. See Error / Warning Condition Templates for
further discussion. See T=1 Error / Warning Conditions for specific
coding.
Used to define which conditions shall be considered warnings when
running with the T=1 protocol. See Error / Warning Condition Templates
for further discussion. See T=1 Error / Warning Conditions for specific
coding.
TRUE indicates to validate NAD according to EMV rules. FALSE
indicates to ignore NAD received from cards. In EMV Mode this property
is TRUE.
TRUE indicates an S(Req IFSD(254)) should be sent to the card after the
ATR has been received. FALSE indicates no S(Req IFSD) should be
sent. In all cases, the effective IFSD is 254 as the IFD always accepts
full length messages.
T=1 Microprocessor Card Operating Properties, used to control the T=1 protocol operations. Settings of these properties only apply to the current
card session.
Actual NAD
88
Binary
1
0x00*
Get/Set
This is the NAD byte per ISO 7816-3(1997).
Actual CWT
89
Dword
2
N/A
Get
This is the current CWT, in units of 2 ms, calculated per ISO 78163(1997).
Actual BWT
8A
Dword
2
N/A
Get
This is the current BWT, in units of 2 ms, calculated per ISO 78163(1997).
Actual EDC
8B
Binary
1
N/A
Get
This is the EDC indicator per ISO 7816-3(1997).
Current Session
8C
Boolean
1
N/A
Get/Set
Similar to the Initial Resynch Allowed property, but applies to the current
Resynch Allowed
session only.
Current Chaining
8D
Boolean
1
N/A
Get/Set
Similar to the Initial Chaining Allowed proprety, but applies to the current
Allowed
session only.
Current IFSC
8E
Dword
1
N/A
Get
The IFSC in use for the current session.
Current Output
8F
Dword
1
N/A
Get
This is the sequence number of the next I-block that will be sent to the
Sequence Number
card.
Current Input
90
Dword
1
N/A
Get
This is the sequence number expected in the next I-block that will be
Sequence Number
received from the card.
Current T=1 Error
91
Binary
4
N/A*
Get/Set
Used to define which conditions shall be considered errors when running
Conditions
with the T=1 protocol. See Error / Warning Condition Templates for
Template
further discussion. See T=1 Error / Warning Conditions for specific
coding. The values are initialized from the Initial T=1 Error Conditions
Template property.
37
IntelliStripe 320 Command Reference
Current T=1
Warning Conditions
Template
92
Binary
4
N/A*
Get/Set
Current Use EMV
NAD Rules
93
Boolean
1
N/A
Get/Set
Used to define which conditions shall be considered warnings when
running with the T=1 protocol. See Error / Warning Condition Templates
for further discussion. See T=1 Error / Warning Conditions for specific
coding. The values are initialized from the Initial T=1 Warning Conditions
Template property.
TRUE indicates to validate NAD according to EMV rules. FALSE
indicates to ignore NAD received from cards. In EMV Mode this property
is TRUE. The value is initialized from the Initial Use EMV NAD Rules
property.
Note: Other Property IDs are specified in Appendix B. Memory Card Support.
38
Section 5. Smart Card Application
ATR MAP STRUCTURE – MICROPROCESSOR CARDS ONLY
The ATR Map structure is retrieved by reading property 40 (Hex). This property gives a detailed
analysis of the ATR as received from the card. The structure is as follows:
Bytes
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 – 36
37
38
39
Meaning
TS character, as received from the card
T0 character, as received from the card
TA1 Present? 0 = no, 1 = yes
TA1 value
If TA1 Present = 1, as received from the card
If TA1 not present, set to 0x11
TB1 Present? 0 = no, 1 = yes
TB1 value
If TB1 Present = 1, as received from the card
If TB1 Present = 0, set to 0x25
TC1 Present? 0 = no, 1 = yes
TC1 value
If TC1 Present = 1, as received from the card
If TC1 Present = 0, set to 0X00
TD1 Present? 0 = no, 1 = yes
TD1 value
If TD1 Present = 1, as received from the card
If TD1 Present = 0, ignore the value
TA2 Present? 0 = no, 1 = yes
TA2 value
If TA2 Present = 1, as received from the card
If TA2 Present = 0, ignore the value
TB2 Present? 0 = no, 1 = yes
TB2 value
If TB2 Present = 1, as received from the card
If TB2 Present = 0, ignore the value
TC2 Present? 0 = no, 1 = yes
TC2 value
If TC2 Present = 1, as received from the card
If TC2 Present = 0, set to 0x0A
TD2 Present? 0 = no, 1 = yes
TD2 value
If TD2 Present = 1, as received from the card
If TD2 Present = 0, ignore the value
TCK Present, 0 = no, 1 = yes
TCK value
If TCK Present = 1, as received from the card
If TCK Present = 0, ignore the value
Number of history bytes received from the card
History bytes as received from the card. The bytes start at position 21 and continue
for the count specified in location 20. Ignore additional bytes
T=0 Available? 0 = no, 1 = yes
T=1 Available? 0 = no, 1 = yes
TAi for T=1 Present? 0 = no, 1 = yes
39
IntelliStripe 320 Command Reference
Bytes
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
40
Meaning
TAi for T=1 value
If TAi for T=1 Present = 1, as received from the card
If TAi for T=1 Present = 0, 0x20
TBi for T=1 Present? 0 = no, 1 = yes
TBi for T=1 value
If TBi for T=1 Present = 1, as received from the card
If TBi for T=1 Present = 0, 0x4D
TCi for T=1 Present? 0 = no, 1 = yes
TCi for T=1 value
If TCi for T=1 Present = 1, as received from the card
If TCi for T=1 Present = 0, 0x00
T=15 Present? 0 = no, 1 = yes
TAi for T=15 Present? 0=no, 1=yes
TAi for T=15 value
If T=15 Present = 1, as received from the card
If T=15 Present = 0, 0x01
Convention, 0 = direct, 1 = inverse
FI, see ISO 7816-3(1997)
DI, see ISO 7816-3(1997)
II, see ISO 7816-3(1997)
PI1, see ISO 7816-3(1997)
N, see ISO 7816-3(1997)
Specific Mode Indicator, 0 = Negotiable, 1 = Specific
Specific Protocol
Specific Mode Implicit Parameters Requested? 0 = no, 1 = yes
Specific Mode Changeable, 0 = Changeable, 1 = Not Changeable
PI2 Present? 0 = no, 1 = yes
PI2 value
If PI2 Present = 1, as received from the card
If PI2 Present = 0, ignore the value
WI
Clock Stop Allowed Indication
0 = never
1 = stop clock low
2 = stop clock high
3 = stop clock high or low
Note: This is an indication of what stop clock modes are possible for the card, the
IFD does not put a capable card into the clock stop mode.
Classes supported by the card
1 = 5 volts only
2 = 3 volts only
3 = both 5 and 3 volts
IFSC being supported by the card
CWI
BWI
Error Detection Code
0 = LRC
1 = CRC
Section 5. Smart Card Application
POWER UP COMMAND
Command ID: 80 (Hex)
Description:
This command is used to power up a smart card in the currently selected connector. If it is
available, the ATR from the card is returned.
Request Message Data: None
Response Message Data:
Byte
1-n
Field
ATR
Description
Answer to Reset as received from the card.
Response Message Result Codes
Code (Hex)
00
01
02
Meaning
Success, the command completed without problems
Failure, the command was not able to complete, see CondRpt property for
details. See below for Error/Warning Conditions Template construction.
Warning, the command completed, but some problems arose, see CondRpt
property for details. See below for Error/Warning Conditions Template
construction.
Error/Warning Conditions Template Construction – Microprocessor Cards Only
The Error/Warning Condition Templates (Power Up Error Conditions Template and
Power Up Warning Conditions Template properties respectively) have the following
structure:
Byte
0
Bit
0
0
0
1
2
0
3
0
4
0
5
Meaning
Unrecoverable Receive Error. This condition indicates a receive error that
could not be corrected by the permitted number of parity correction retries.
Timeout On Receive. This condition indicates a receive timeout.
Specific f/d ratio required but not supported. This condition arises when a
card sends the TA2 byte and the values of FI and DI in TA1 require an f/d
ratio the IFD can not support. The IFD supports f/d ratios as low as 31,
which is equivalent to an I/O rate of 129kbs.
Specific protocol required but not supported. The card has required a
protocol which the IFD does not support. The IFD supports T=0 and T=1.
Requested f/d ratio not supported, may be negotiable. The card has
requested an f/d ratio that is not supported, but it has indicated that it may
negotiate via Warm Reset.
Requested protocol not supported, may be negotiable. The card has
requested a protocol that is not supported, but it has indicated that it may
negotiate via Warm Reset.
41
IntelliStripe 320 Command Reference
42
Byte
0
Bit
6
0
7
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
2
0
2
2
1
2
2
3
2
4
2
2
5
6
2
7
3
0-7
Meaning
TCK not present or incorrect. This condition only appears when the
ISO/EMV rules require a TCK and the card does not send it.
Card requests VPP. This condition occurs only if the card requests VPP.
This IFD does not support VPP.
Card started ATR early. This condition occurs when a card starts the ATR
too earlier than allowed by ISO or EMV rules.
Invalid TS. This condition indicates that the TS character had a value other
than 0x3B or 0x3F.
Unknown Interface Byte. This condition occurs when an interface byte not
defined by ISO 7816-3 or EMV is sent as part of the ATR.
Invalid Protocol Sequence. This condition occurs when the ATR specifies
protocols in a non-ascending order.
Specific Mode requesting Implicit Parameters. This condition happens
when the card sends TA2 with bit b5 (see ISO 7816-3(1997)) set.
TC2 present with T=0. This condition indicates that TC2 was sent in an
ATR that does not support T=0.
IFSC out of allowed range. This condition indicates that the card requested
an IFSC out of the range permitted by current rules. The current range is
specified by properties TA3 Minimum and TA3 Maximum.
Invalid EDC type requested. The card has requested an unsupported EDC
type. At this time the IFD only supports LRC.
PPS sequence failed. The IFD was unable to complete a successful PPS
sequence. In order to operate this card, it may be necessary to change
one or more of the following properties:
PPS Allowed
Protocol Selection Allowed
Speed Selection Allowed
Force PPS1 Transmission
See your card’s documentation for more details.
Parity Error in ATR.
EGT out of range. The EGT calculated from N in the ATR is larger than
254 ETUs.
TD2 not according to EMV rules. Indicates that TD2 does not conform to
EMV rules. The condition is only detected if the property EMV TD2 Rules
is set to TRUE.
T=15 received. This condition only indicates that the card sent a byte
specifying T=15.
TB2 received. This condition only indicates that the card sent a TB2 byte.
TC2 outside of allowed range. The card sent a TC2 byte out of the allowed
range. The allowed range is specified in properties TC2 Minimum and TC2
Maximum.
EMV TB3 error. This condition indicates that for a card requesting T=1
either TB3 was absent or the values specified for BWI or CWI were out of
range. See EMV, ICC, I-4.3.3.10
Reserved for Future Use
Section 5. Smart Card Application
Example Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
02
CMND
3
80
RC
4
00
Example Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
02
CMND
3
80
RC
4
00
DATA
5-8
3B 60 00 00
43
IntelliStripe 320 Command Reference
POWER DOWN COMMAND
Command ID: 81 (Hex)
Description:
This command is used to power down a smart card in the currently selected connector.
Request Message Data: None
Response Message Data: None
Response Message Result Codes
Code Meaning
00
Success.
Example Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
02
CMND
3
81
RC
4
00
MTYP
1
40
APPL
2
02
CMND
3
81
RC
4
00
Example Response:
Field
Byte
Value (Hex)
T=0 ERROR / WARNING CONDITION TEMPLATES
44
Byte
0
0
Bit
0
1
0
0
2
3
0
1-3
4-7
All
Meaning
Timeout On Receive. This condition indicates a receive timeout.
Unrecoverable Receive Error. This condition indicates a receive error
that could not be corrected by the permitted number of parity
correction retries.
Invalid Procedure Byte received from card.
Unrecoverable Transmit Error. This condition indicates a transmit
error that could not be corrected by the permitted number of parity
correction retries.
Reserved for Future Use
Reserved for Future Use
Section 5. Smart Card Application
T=1 ERROR / WARNING CONDITION TEMPLATES
Byte
0
0
Bit
0
1
0
2
0
0
0
0
0
1
1
3
4
5
6
7
0
1
1
2
1
3
1
4
1
1
5
6
1
2
7
0
2
1
2
2
2
3
2
2
4
5
2
2
3
3
3
6
7
0
1
2-7
Meaning
Timeout On Receive. This condition indicates a receive timeout.
Parity Error in received data. This condition indicates that there was
a parity error in a message received from the card.
I/O errors in a message received from the card. These errors could
be Length, EDC, or an invalid PCB.
The card rejected a message with the indication: Error Free
The card rejected a message with the indication: EDC Error
The card rejected a message with the indication: Other Error
Reserved for Future Use.
Card Aborted a chain being sent by the IFD.
Card Aborted a chain being sent by the Card.
Input Buffer Overflow. The card tried to send a chain of messages
that is larger than the available buffer space.
The card sent an I-Block message (or chain) with no content in the
INF field.
The card was sending chained data when a Resynch sequence was
required, the chained data from the card was lost.
The IFD was not sending a chained message to the card and the
card sent an R-Block requesting a message other than the one we
are trying to send. This is a protocol error on the part of the card.
Invalid Sequence Number in an I-Block received from a card.
The IFD was sending a chained message to the card and the card
sent an R-Block requesting a message other than the one we are
trying to send.
Reserved for Future Use
Invalid S-Block Response Type from the card. An S-Block was sent
to the card and it responded with an S-Block of the wrong type.
Invalid S-Block Response Data from the card. An S-Block was sent
to the card and it responded with an S-Block with an invalid INF field.
Invalid S-Block Request Type from card. The card sent an S-Block
Request with an invalid Type.
Invalid S-Block Request Data from card. The card sent an S-Block
Request with an invalid INF field.
Resynch needed, completed successfully.
Resynch needed, but not performed because it is disables (property
Initial Resynch Allowed or Current Session Resynch Allowed).
Resynch not attempted, protocol had not yet started.
Reserved for Future Use
Resynch failed.
S-Block exchange failed, no more retries.
Reserved for Future Use
45
IntelliStripe 320 Command Reference
WARM RESET COMMAND
Command ID: 82 (Hex)
Description:
This command is used to perform a Warm Reset on a smart card in the currently selected
connector. If it is available, the ATR from the card is returned.
Request Message Data: None
Response Message Data:
Byte
1-n
Field Description
ATR Answer to Reset as received from the card.
Response Message Result Codes
Code (Hex)
00
01
02
Meaning
Success, the command completed without problems.
Failure, the command was not able to complete, see CondRpt property for
details. See below for Error/Warning Conditions Template construction.
Warning, the command completed, but some problems arose, see CondRpt
property for details. See below for Error/Warning Conditions Template
construction.
Error/Warning Conditions Template Construction – Microprocessor Cards Only
See Error/Warning Conditions Template Construction for the Power Up command.
Example Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
02
CMND
3
82
RC
4
00
Example Response:
Field
Byte
Value (Hex)
46
MTYP
1
40
APPL
2
02
CMND
3
82
RC
4
00
PVAL
5-8
3B 60 00 00
Section 5. Smart Card Application
TPDU, CARD TO IFD COMMAND
Command ID: 83 (Hex)
Description:
Note
Unless your card can not operate in the APDU mode, it is
recommended not to use this command, as it is not compatible with
EMV Rules nor the intended ISO 7816-4 application usage.
This command is used to send a TPDU to a card requesting data from the card. It is the user’s
responsibility to assure that the INS byte specifies a card command which will result in data
being returned to the IFD. The TPDU is sent to the card and the reply is collected according to
ISO 7816-3(1997) rules.
Request Message Data:
Byte
1
2
3
4
5
Field Description
CLA
CLA byte per card’s specification
INS
INS byte per card’s specification
P1
P1 byte per card’s specification
P2
P2 byte per card’s specification
P3
P3, number of bytes expected in response from the card, per ISO
7816-3(1997)
Response Message Data:
Byte
1-n
Field
TPDU Response
Description
Response TPDU received from the card. SW1/SW2 are at
the end.
Response Message Result Codes
Code (Hex)
00
01
02
Meaning
Success, the command completed without problems
Failure, the command was not able to complete, see CondRpt property for
details. See T=0 or T=1 Error/Warning Condition Templates for Template
construction.
Warning, the command completed, but some problems arose, see CondRpt
property for details. See T=0 or T=1 Error/Warning Condition Templates
for Template construction.
47
IntelliStripe 320 Command Reference
Example Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
02
CMND
3
83
RC
4
00
DATA
5-9
00 B0 81 00 02
Example Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
02
CMND
3
83
RC
4
00
DATA
5-8
0B 03 00 00
TPDU, IFD TO CARD COMMAND
Command ID: 84 (Hex)
Description:
Note
Unless your card can not operate in the APDU mode, it is
recommended not to use this command, as it is not compatible with
EMV Rules nor the intended ISO 7816-4 application usage.
This command is used to send a TPDU to a card with data for the card, or with no data for the
card and no data expected in response from the card. It is the user’s responsibility to assure that
the INS byte specifies a card command which will not result in data being returned to the IFD.
The TPDU is sent to the card and the SW1/SW2 reply is collected according to ISO 78163(1997) rules.
Request Message Data:
Byte
1
2
3
4
5
6-n
Field
CLA
INS
P1
P2
P3
Data
Description
CLA byte per card’s specification
INS byte per card’s specification
P1 byte per card’s specification
P2 byte per card’s specification
P3, number of Data bytes to send to the card
Data to be sent to the card
Response Message Data:
Byte
1-2
Field
TPDU Response
Description
SW1/SW2.
Response Message Result Codes:
Code (Hex)
00
48
Meaning
Success, the command completed without problems
Section 5. Smart Card Application
01
Failure, the command was not able to complete, see CondRpt property for
details. See T=0 or T=1 Error/Warning Condition Templates for Template
construction.
Warning, the command completed, but some problems arose, see CondRpt
property for details. See T=0 or T=1 Error/Warning Condition Templates
for Template construction.
03
Example Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
02
CMND
3
84
RC
4
00
DATA
5-11
00 A4 02 0C 02 00 01
Example Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
02
CMND
3
84
RC
4
00
DATA
5-6
90 00
APDU EXCHANGE COMMAND
Command ID: 85 (Hex)
Description:
This command is used to exchange an APDU with a card. See ISO 7816-4 and EMV for
information on APDU structure. This command functions differently for T=0 and T=1
protocols:
For T=0, the Command APDU is mapped onto TPDU’s and the exchange is managed
according to EMV rules, returning a Response APDU.
For T=1, the Command APDU is sent directly to the card and the Response APDU is
returned.
For Memory cards, the Command APDU is interpreted and the appropriate Control
Sequence is sent to the card. A Response APDU is returned.
Request Message Data:
Byte Field
1-n
Command APDU
Description
Command APDU per ISO 7816-4 and EMV
Response Message Data:
Byte Field
1-n
Response APDU
Description
Response APDU per ISO 7816-4 and EMV
49
IntelliStripe 320 Command Reference
Response Message Result Codes:
Code (Hex) Meaning
00
Success, the command completed without problems
01
Failure, the command was not able to complete, see CondRpt property for
details. See T=0 or T=1 Error/Warning Condition Templates for Template
construction.
02
Warning, the command completed, but some problems arose, see CondRpt
property for details. See T=0 or T=1 Error/Warning Condition Templates
for Template construction.
Example Request:
Field
Byte
Value (Hex)
MTYP
1
00
Field
Byte
Value (Hex)
APPL
2
02
CMND
3
85
RC
4
00
DATA
5-11
00 A4 02 0C 02 00 01
Example Response:
Field
Byte
Value (Hex)
50
MTYP
1
40
APPL
2
02
CMND
3
85
RC
4
00
DATA
5-6
90 00
Section 5. Smart Card Application
SELECT CONNECTOR COMMAND
Command ID: 86 (Hex)
Description:
The IFD supports up to 8 connectors numbered 0-7. Connector 0 is the User Connector, and is
used by default when the system starts. Connectors 1-7 may be used for Secure Access Modules
(SAMs) as part of application infrastructure.
This command allows the application to select the connector to be used in commands that follow.
The connector assignment stays in effect until it is changed by another Select Connector
Command or the device is power cycled.
Request Message Data:
Byte
1
Field
Connector Number
Description
The number, in Hex, to be selected
Response Message Data: None
Response Message Result Codes
Code Meaning
00
Success
Example Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
02
CMND
3
86
RC
4
00
DATA
5
02
Example Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
02
CMND
3
86
RC
4
00
51
IntelliStripe 320 Command Reference
52
SECTION 6. LED APPLICATION
Application ID: 81 (Hex)
Description:
This application deals with the host controlled LED.
GET/SET/SAVE PROPERTY COMMANDS
Get Property Command ID: 00 (Hex)
Set Property Command ID: 01 (Hex)
Save Property Command ID: 02 (Hex)
Description:
These commands are used to get, set and save the value of application properties. Details of
these commands are described in the Generic command section of this document. The following
describes each property this application supports.
LED STATE PROPERTY
Property ID: 00 (Hex)
Property Type: Dword
Power Up/Reset Value: 0 (OFF)
Get/Set/Save support: All
Description:
Changing this property changes the LED state. The LED state can be retrieved by getting this
property.
Values:
The lowest order byte governs the color of the LED as follows:
Value
0
1
2
LED State
OFF
RED
GREEN
The next byte signals whether the LED will blink and the frequency of the blink. Blinking will
only be active if the specified color is Red or Green. A value of zero specifies solid color with
no blinking. A value in the range of 1 – 254 specifies, at 10 milliseconds per count, how long
both the on and off period of the LED should be. A value of 255 is not allowed and will result in
an error.
53
IntelliStripe 320 Command Reference
Example Set Property Request: Green LED Blinking, 100 msec on, 100 msec off
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
81
CMND
3
01
RC
4
00
PTYP
5
01
PID
6
00
PVAL
7 – 10
02 64 00 00 (GREEN)
Example Set Property Response:
Field
Byte
Value (Hex)
54
MTYP
1
40
APPL
2
81
CMND
3
01
RC
4
00
SECTION 7. TRANSPORT APPLICATION
Application ID: 82 (Hex)
Description:
This application deals with card transportation and magnetic stripe data acquisition. This
application works closely with the Magnetic Stripe application. The Magnetic Stripe application
deals with decoding and presenting magnetic stripe card data.
GET/SET/SAVE PROPERTY COMMANDS
Get Property Command ID: 00 (Hex)
Set Property Command ID: 01 (Hex)
Save Property Command ID: 02 (Hex)
Description:
These commands are used to get, set and save the value of application properties. Details of
these commands are described in the Generic command section of this document. The following
describes each property this application supports.
INDICATORS PROPERTY
Property ID: 00 (Hex)
Property Type: Dword
Power Up/Reset Value: Dependent on indicator states
Get/Set/Save support: Get
Description:
This property is used to get the transport indicators. These indicators are used to determine the
state of the transport and the location of any cards present in the transport.
Values:
The bits are identified by numbering the least significant bit 0 and the most significant bit 31.
55
IntelliStripe 320 Command Reference
Bits
0
Indicator
Front Card
Present
1
Middle Card
Present
2
Rear Card Present
3
Auto Transporting
4
Transport Cooling
5-6
7
RFU
*MagnePrint Noise
8-31
RFU
Description
Set to 1 if a card is present anywhere in the front (insertion)
end of the card transport, or else cleared to 0. This bit can
be used to indicate the beginning of a card insertion or the
end of a card withdrawal. Note that once a standard sized
card is transported completely to the rear of the reader, this
indicator is no longer set.
Set to 1 if a card is present anywhere in the middle of the
card transport, or else cleared to 0. This bit can be used to
indicate that a card is in a position from which it can be
ejected. If this bit is set, then a standard sized card should
be in contact with the transport rollers and thus be in a
position from which it can be ejected. Note that this bit is still
set once a standard sized card is transported completely to
the rear of the reader.
Set to 1 if a card is present at the rear of the card transport
else cleared to 0. This bit can be used to indicate that the
transport has completely transported the card into the reader,
and that the card is in a position from which smart card
communications can occur.
Set to 1 if the transport is transporting a card automatically,
or else cleared to 0. The transport is automatically
transporting when it transports a card due to an auto
transport property being set such as the Auto Consume
property. The Auto Transporting bit would not be set if the
transport is consuming a card in response to a consume card
command. This bit can be used to verify that the transport is
idle before taking action on the card position indicators.
Set to 1 if the transport is cooling else cleared to 0. When
this bit is set, the transport will temporarily not be functional.
This cooling mechanism is to ensure that the transport is not
damaged by excessive stalling of the motor by the card user
or by the host software. A stall occurs when a card is held in
position while the transport tries to move the card. The
transport will give up trying to move the card in 0.5 to 2
seconds. If 2 stalls or blind ejects occur within a 5-second
period, then the transport goes into a cooling mode in which it
will not function for 5 seconds during which time this bit is set.
Reserved for future use.
Set to 1 if the MagnePrint™ circuit is sensing excessive
electrical noise in the environment, else cleared to 0. If this
bit is set MagnePrint™ data may not be available. Moving
the reader away from noise sources (monitors, speakers,
etc.) may solve this problem. Note that the reader will not
check for noise until after a card swipe occurs. So a card has
to be swiped to initiate noise detection. If noise is detected
after the swipe, the reader will continue to check for noise
until the noise is no longer present. If no noise is detected
after the swipe, the reader will not check for noise again until
after the next swipe.
Reserved for future use
* Available only on units with MagnePrint feature
56
Section 7. Transport Application
Example Get Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
82
CMND
3
00
RC
4
00
PTYP
5
01
PID
6
00
Example Get Property Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
82
CMND
3
00
RC
4
00
PTYP
5
01
PID
6
00
PVAL
7 - 10
06 00 00 00 (Middle and Rear
Card Present)
57
IntelliStripe 320 Command Reference
NOTIFY INDICATOR CHANGE 0 TO 1 PROPERTY
Property ID: 01 (Hex)
Property Type: Dword
Power Up/Reset Value: 0
Get/Set/Save support: All
Description:
This property is used to control notification messages sent in response to a transport indicator
changing from a 0 to a 1 state. If the bit corresponding to an indicator is set, then a notification
message will be sent from the device to the host in response to that indicator changing from a 0
to a 1 state. The notification message will have the same syntax as the get property command
response of the indicator property. The only difference is that the message header will contain a
notification message type instead of a response message type. If more than one indicator
changes state at the same time, only one notification message will be sent that contains the state
of all the indicators.
Values:
The bits are identified by numbering the least significant bit 0 and the most significant bit
31.
Bits
0
Indicator
Front Card
Present
Description
If set to 1, a notification message will be sent in response to a
0 to 1 transition of the front card present indicator. If cleared
to 0, no notification will be sent.
1-2
RFU (0)
Reserved for future use (Must be zero)
3
Auto Transporting If set to 1, a notification message will be sent in response to a
0 to 1 transition of the auto transporting indicator. If cleared
to 0, no notification will be sent.
4 – 6 RFU
Reserved for future use
7
*MagnePrint Noise If set to 1 a notification message will be sent in response to a
0 to 1 transition of the MagnePrint™ noise indicator. If
cleared to 0, no notification will be sent.
8-31
RFU
Reserved for future use
* Available only on units with MagnePrint feature
Example Set Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
82
CMND
3
01
RC
4
00
PTYP
5
01
PID
6
01
PVAL
7 - 10
01 00 00 00 (Front Card
Present)
Example Set Property Response:
Field
Byte
Value (Hex)
58
MTYP
1
40
APPL
2
82
CMND
3
01
RC
4
00
Section 7. Transport Application
NOTIFY INDICATOR CHANGE 1 TO 0 PROPERTY
Property ID: 02 (Hex)
Property Type: Dword
Power Up/Reset Value: 0
Get/Set/Save support: All
Description:
This property is used control notification messages sent in response to a transport indicator
changing from a 1 to a 0 state. If the bit corresponding to an indicator is set, then a notification
message will be sent from the device to the host in response to that indicator changing from a 1
to a 0 state. The notification message will have the same syntax as the get property command
response of the indicator property. The only difference is that the message header will contain a
notification message type instead of a response message type. If more than one indicator
changes state at the same time, only one notification message will be sent that contains the state
of all the indicators.
Values:
The bits are identified by numbering the least significant bit 0 and the most significant bit 31.
Bits
0
Indicator
Front Card
Present
Description
If set to 1, a notification message will be sent in response to a
1 to 0 transition of the front card present indicator. If cleared
to 0, no notification will be sent.
1-2
RFU (0)
Reserved for future use (Must be zero)
3
Auto Transporting If set to 1, a notification message will be sent in response to a
1 to 0 transition of the auto transporting indicator. If cleared
to 0, no notification will be sent.
4 – 6 RFU
Reserved for future use
7
*MagnePrint Noise If set to 1 a notification message will be sent in response to a
1 to 0 transition of the MagnePrint™ noise indicator. If
cleared to 0, no notification will be sent.
8-31
RFU
Reserved for future use
*Available only on units with MagnePrint feature
Example Set Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
82
CMND
3
01
RC
4
00
PTYP
5
01
PID
6
02
PVAL
7 - 10
01 00 00 00 (Front Card
Present)
Example Set Property Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
82
CMND
3
01
RC
4
00
59
IntelliStripe 320 Command Reference
AUTO CONSUME PROPERTY
Property ID: 03 (Hex)
Property Type: Boolean
Power Up/Reset Value: 0 (Disabled)
Get/Set/Save support: All
Description:
This property is used to enable and disable card auto consuming. When auto consuming is
enabled, the reader will attempt to consume a card when the card is being inserted into the mouth
of the reader. The transport attempts to consume a card into the transport to a position where
smart card communications can occur and magnetic stripe reading is complete. The reader will
not attempt to consume a card if a card is already present in the transport. When the reader is
attempting to automatically consume a card, the Auto Transporting indicator is set. If the
consume attempt is successful and the card is standard size, the Rear Card Present indicator and
the Middle Card Present indicator will be set to show that the card is completely consumed. If
the Middle Card Present indicator is set and the consume attempt is unsuccessful, then the card
should be ejected. After a card is ejected or a consume fails, the card needs to be completely
removed from the reader before the reader attempts to automatically consume a card again.
Values:
Value
0
1
State
Disabled
Enabled
Description
Cards will not be automatically consumed.
Cards will be automatically consumed.
Example Set Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
82
CMND
3
01
RC
4
00
PTYP
5
03
PID
6
03
Example Set Property Response:
Field
Byte
Value (Hex)
60
MTYP
1
40
APPL
2
82
CMND
3
01
RC
4
00
PVAL
7
01 (Enabled)
Section 7. Transport Application
MSR DIRECTION PROPERTY
Property ID: 04 (Hex)
Property Type: Dword
Power Up/Reset Value: 1 (Consume)
Get/Set/Save support: All
Description:
This property is used to control the magnetic stripe read direction.
Values:
Value
0
1
2
State
Both
Consume
Eject
Description
The reader can read during both card consuming and ejecting.
The reader can only read during card consuming.
The reader can only read during card ejection.
Note
If the front-gate option is installed, the IntelliStripe 320 Reader
will be incapable of reliably reading mag-stripe cards during the
card-ejection cycle. (Reliable mag-stripe reading will only be
possible during the card-insertion cycle). If mag-stripe reading is
required during the card-ejection cycle, then the product must be
ordered without the front-gate option.
Example Set Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
82
CMND
3
01
RC
4
00
PTYP
5
01
PID
6
04
PVAL
7 - 10
01 00 00 00
(Consume)
Example Set Property Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
82
CMND
3
01
RC
4
00
61
IntelliStripe 320 Command Reference
EJECT MIDDLE SENSOR TO MOTOR OFF DELAY PROPERTY
Property ID: 05 (Hex)
Property Type: Dword
Power Up/Reset Value: 51 (.5 inches)
Get/Set/Save support: All
Description:
This property is used to control the distance that the card ejects past the middle sensor
when using the card eject command with the normal eject type option. The units of this
property is milli-seconds. Once the card unblocks the middle sensor during card ejection,
a timer will start counting down a number of milli-seconds equal to the value of this
property. Once this timer hits zero the motor will be shut off. To convert the distance
you desire the card to stop past the middle sensor to milli-seconds, multiple the desired
number of inches by 100. The card moves at about 1 inch per 100ms. The value of this
property can range from 0 to 255ms.
Example Set Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
82
Field
Byte
Value (Hex)
CMND
3
01
RC
4
00
PTYP
5
01
PVAL
7 - 10
33 00 00 00 (51ms or .5
inches)
Example Set Property Response:
Field
Byte
Value (Hex)
62
MTYP
1
40
APPL
2
82
CMND
3
01
RC
4
00
PID
6
05
Section 7. Transport Application
POWER FAIL DETECT PROPERTY
Property ID: ff (Hex)
Property Type: Boolean
Power Up/Reset Value: 1 (Enabled)
Get/Set/Save support: All
Description:
This property is used to enable and disable power fail detection. When power fail detection is
enabled, the device will monitor its supply voltage. If the supply voltage falls significantly out
of the specified range, the device will eject any cards that are present, provided a power fail eject
capacitor is connected to the device, then it will wait for the supply voltage to return to normal
after which it will perform a power up reset cycle.
Values:
Value
0
1
State
Disabled
Enabled
Description
Power fail detect disabled.
Power fail detect enabled.
Example Set Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
82
CMND
3
01
RC
4
00
Field
PVAL
Byte
Value (Hex)
7
01 (Enabled)
PTYP
5
03
PID
6
ff
Example Set Property Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
82
CMND
3
01
RC
4
00
63
IntelliStripe 320 Command Reference
CONSUME CARD COMMAND
Command ID: 80 (Hex)
Description:
This command attempts to consume a card into the transport to a position where smart card
communications can occur and magnetic stripe reading is complete. A card must be present at
the front (insertion) end of the transport when this command is executed in order for it to
succeed. The reader will not attempt to consume a card if a card is already present in the
transport. If the consume attempt is successful and the card is standard sized, the Rear Card
Present indicator and the Middle Card Present indicator will be set to show that the card is
completely consumed. If the Middle Card Present indicator is set and the consume attempt is
unsuccessful then the card should be ejected.
Request Message Data: None
Response Message Data: None
Response Message Result Codes:
Success = 00 (Hex)
The command completed successfully.
Transporting Failed = 80 (Hex)
The transport operation failed to complete successfully.
Transport Busy = 81 (Hex)
The command failed because the transport is busy transporting a card. This could
occur if the transport is set to Auto Consume.
Transport Cooling = 82 (Hex)
The command failed because the transport is cooling. This occurs if the transport
is temporarily disabled due to too many stalls. See the transport indicators
property for more details.
Example Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
82
CMND
3
80
RC
4
00
MTYP
1
40
APPL
2
82
CMND
3
80
RC
4
00
Example Response:
Field
Byte
Value (Hex)
64
Section 7. Transport Application
EJECT CARD COMMAND
Command ID: 81 (Hex)
Description:
This command attempts to eject a card from inside the transport to a position where the card can
be removed by the user and where magnetic stripe reading is complete. A card must be present
at the middle or rear of the transport when this command is executed in order for it to succeed. If
the eject attempt is successful and the card is standard sized, the Rear Card Present indicator and
the Middle Card Present indicator will be clear to show that the card is completely ejected from
inside the transport. Also the Front Card Present indicator will be set until the user removes the
card from the reader. If the reader is set to auto consume, it will not auto consume a card until
the user removes the ejected card from the reader.
The card can be ejected three different ways. The way the card is ejected is specified by the
optional eject type parameter. If this parameter is omitted, the card will be ejected normally.
The eject type parameter is defined below.
Note
If the front-gate option is installed, the IntelliStripe 320 Reader
will be incapable of reliably reading mag-stripe cards during the
card-ejection cycle. (Reliable mag-stripe reading will only be
possible during the card-insertion cycle). If mag-stripe reading is
required during the card-ejection cycle, then the product must be
ordered without the front-gate option.
Request Message Data: Optional 1 byte eject type field. The eject type field can be 0 for
normal, 1 for long or 2 for blind. If this optional field is omitted, the eject type will default to
normal.
When the eject type is set to normal (0), the reader will attempt to eject the card, using the
sensors, to a final position at which it is located so that it is no longer under the read head and so
that it is still under the motor drive roller. In this position the card can either be pulled out by the
user or consumed back into the reader in case the reader needs to make another read attempt.
This option stops the card in a position where the rear edge of the card is .5 inches in front of the
middle sensor. This distance can be adjusted by modifying the eject middle sensor to motor off
delay property.
When the eject type is set to long (1), the reader will attempt to eject the card, using the sensors,
to a final position at which it is located so that it is no longer under the read head or the motor
drive roller. In this position the card can be pulled out by the user but it can not be consumed
back into the reader without user intervention. This option stops the card in a position where the
rear edge of the card is 1.5 inches in front of the middle sensor or until the card is no longer
under the motor drive roller. This option was added for customers that have bezels too deep for
the normal eject option to eject the card out far enough for the users to grab onto it.
65
IntelliStripe 320 Command Reference
When the eject type is set to blind (2), the reader will attempt to eject the card without using any
sensors. This option can be used to attempt to eject a card that has jammed in the unit or that is
in the unit but is invisible to the sensors. This option will simply run the motor in the eject
direction for a fixed time period that would normally drive a card out of the device. Since no
sensors are used for this option the card may be ejected past the motor driver roller and
depending on the bezel used, it may eject completely out of the unit.
Response Message Data: None
Response Message Result Codes:
Success = 00 (Hex)
The command completed successfully.
Transporting Failed = 80 (Hex)
The transport operation failed to complete successfully.
Transport Busy = 81 (Hex)
The command failed because the transport is busy transporting a card. This could
occur if the transport is set to Auto Consume.
Transport Cooling = 82 (Hex)
The command failed because the transport is cooling. This occurs if the transport
is temporarily disabled due to too many stalls or blind ejects. See the transport
indicators property for more details.
Example Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
82
CMND
3
81
RC
4
00
MTYP
1
40
APPL
2
82
CMND
3
81
RC
4
00
Example Response:
Field
Byte
Value (Hex)
66
SECTION 8. BUZZER APPLICATION
Application ID: 07 (Hex)
Description:
This application deals with the buzzer.
Note
The buzzer is an optional feature intended to be used primarily
with the contact-less smartcard option. It is not installed on all
configurations.
The buzzer is used two distinct ways. First, it is used as a stand-alone application giving the host
the ability to generate tone sequences to guide users through operations on the device. Second, it
is used by the Contactless Card Application to indicate a media being read.
When it is being used by the Contactless Card Application, it is unavailable to the host.
The following table shows the available tones by name, designator, and frequency.
TONE
Silent
Low
Medium
High
DESIGNATOR
0
1
2
3
FREQUENCY
N/A
1500 Hz
2000 Hz
2500 Hz
GET/SET/SAVE PROPERTY COMMANDS
Get Property Command ID: 00 (Hex)
Set Property Command ID: 01 (Hex)
Set Property Command ID: 02 (Hex)
Description:
These commands are used to get, set and save the value of application properties. Details of
these commands are described in the Generic command section of this document. The following
describes each property this application supports.
67
IntelliStripe 320 Command Reference
TONE SEQUENCE 1 PROPERTY
Property ID: 01 (Hex)
Property Type: Binary
Length: 20
Power Up/Reset Value: 0110 0220 0330 0000 0000 0000 0000 0000 0000 0000 (low tone for
160 ms, medium tone for 320 ms, high tone for 480 ms)
Get/Set/Save support: All
Description:
This property specifies an audible tone that may be played when the host chooses. The property
is implemented as ten sets of Tone Information Bytes (TIB) as follows:
Byte
1
2
Usage
TIB0, designates tone
0 = Silent
1 = Low
2 = Medium
3 = High
Other values may not result in a tone
TIB1, duration of tone in units of 10 milliseconds (e.g. 3 = 30
milliseconds). Setting this byte to zero terminates the Tone Sequence
without processing further entries
Example Get Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
07
CMND
3
00
RC
4
00
PTYP
5
04
PID
6
00
APPL
2
07
CMND
3
00
RC
4
00
PTYP
5
04
PID
6
00
Example Get Property Response:
Field
Byte
Value (Hex)
MTYP
1
40
PVAL
7-26
01 10 02 20 03 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00
68
Section 8. Buzzer Application
TONE SEQUENCE 2 PROPERTY
Property ID: 02 (Hex)
Property Type: Binary
Length: 20
Power Up/Reset Value: 0330 0220 0110 0000 0000 0000 0000 0000 0000 0000 (high tone for
480 ms, medium tone for 320 ms, low tone for 160 ms)
Get/Set/Save support: All
Description:
This property specifies an audible tone that may be played when the host chooses. The property
is implemented as ten sets of Tone Information Bytes (TIB) as follows:
Byte
1
2
Usage
TIB0, designates tone
0 = Silent
1 = Low
2 = Medium
3 = High
Other values may not result in a tone
TIB1, duration of tone in units of 10 milliseconds (e.g. 3 = 30
milliseconds). Setting this byte to zero terminates the Tone Sequence
without processing further entries
Example Get Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
07
CMND
3
00
RC
4
00
PTYP
5
04
PID
6
01
CMND
3
00
RC
4
00
PTYP
5
04
PID
6
01
Example Get Property Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
07
PVAL
7-26
03 30 02 20 01 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00
69
IntelliStripe 320 Command Reference
TONE SEQUENCE 3 PROPERTY
Property ID: 03 (Hex)
Property Type: Binary
Length: 20
Power Up/Reset Value: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 (silent)
Get/Set/Save support: All
Description:
This property specifies an audible tone that may be played when the host chooses. The property
is implemented as ten sets of Tone Information Bytes (TIB) as follows:
Byte
1
2
Usage
TIB0, designates tone
0 = Silent
1 = Low
2 = Medium
3 = High
Other values may not result in a tone
TIB1, duration of tone in units of 10 milliseconds (e.g. 3 = 30
milliseconds). Setting this byte to zero terminates the Tone Sequence
without processing further entries
Example Get Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
07
CMND
3
00
RC
4
00
PTYP
5
04
PID
6
02
CMND
3
00
RC
4
00
PTYP
5
04
PID
6
02
Example Get Property Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
07
PVAL
7-26
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70
Section 8. Buzzer Application
TONE SEQUENCE 4 PROPERTY
Property ID: 04 (Hex)
Property Type: Binary
Length: 20
Power Up/Reset Value: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 (silent)
Get/Set/Save support: All
Description:
This property specifies an audible tone that may be played when the host chooses. The property
is implemented as ten sets of Tone Information Bytes (TIB) as follows:
Byte
1
2
Usage
TIB0, designates tone
0 = Silent
1 = Low
2 = Medium
3 = High
Other values may not result in a tone
TIB1, duration of tone in units of 10 milliseconds (e.g. 3 = 30
milliseconds). Setting this byte to zero terminates the Tone Sequence
without processing further entries
Example Get Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
07
CMND
3
00
RC
4
00
PTYP
5
04
PID
6
03
CMND
3
00
RC
4
00
PTYP
5
04
PID
6
03
Example Get Property Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
07
PVAL
7-26
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
71
IntelliStripe 320 Command Reference
PLAYBACK TONE SEQUENCE COMMAND
Command ID: 80 (Hex)
Description:
This command is used playback a specific tone sequence. On receipt of the command, the
playback sequence is started and success is reported.
Request Message Data:
Byte
1
Usage
Specifies which tone sequence to play back. Use the property number of the desired tone
sequence.
Response Message Data: None
Response Message Result Codes:
Success = 00 (Hex)
The command completed successfully.
Example Request: (Playback Tone Sequence 2)
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
07
CMND
3
80
RC
4
00
APPL
2
07
CMND
3
80
RC
4
00
Example Response:
Field
Byte
Value (Hex)
72
MTYP
1
40
DATA
5
02
SECTION 9. HOST COMMUNICATIONS APPLICATION
Application ID: 08 (Hex)
Description:
This application deals with host communications.
GET/SET/SAVE PROPERTY COMMANDS
Get Property Command ID: 00 (Hex)
Set Property Command ID: 01 (Hex)
Save Property Command ID: 02 (Hex)
Description:
These commands are used to get, set and save the value of application properties. Details of
these commands are described in the Generic command section of this document. The following
describes each property this application supports.
73
IntelliStripe 320 Command Reference
USB SERIAL NUMBER PROPERTY
Property ID: 00 (Hex)
Property Type: String
Maximum Length: 32 (including terminating zero)
Power Up/Reset Value: 00 (Null string “”)
Get/Set/Save support: All
Description:
This property is the USB serial number. The USB serial number is reported to the host in the
USB serial number string descriptor during USB device enumeration. This serial number can be
used to distinguish one USB device from another in a system. For example, if two IntelliStripe
65 devices are connected to the same host using USB ports, the USB serial numbers can be used
to distinguish one device from the other as long as the serial numbers are not set to the same
value.
MagTek’s MCP USB driver uses the USB serial number, if present, as part of the device instance
name so that if multiple devices with the same model number are connected to the same system
they can be distinguished from one another. For example, if a device that has its USB product
set to “IntelliStripe 65” has no serial number its device instance name will be “IntelliStripe 65”.
If it has serial number “123”, its device instance name will be “IntelliStripe 65.123”. See the
host communications application’s USB product property for more information.
After setting the USB serial number to a new value, the serial number needs to be saved with the
save property command and then the device needs to be power cycled or reset before the new
serial number value is used as the USB serial number string descriptor. If MagTek’s MCP USB
driver is being used, it needs to be closed and then opened using the new device instance name
before communicating further.
Example Set Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
08
Field
Byte
Value (Hex)
PVAL
7 - 10
31 32 33 00 (“123”)
CMND
3
01
RC
4
00
PTYP
5
02
APPL
2
08
CMND
3
01
RC
4
00
Example Set Property Response:
Field
Byte
Value (Hex)
74
MTYP
1
40
PID
6
00
Section 9. Host Communications Application
RS232 PLUG AND PLAY SUPPORT ENABLE PROPERTY
Property ID: 01 (Hex)
Property Type: Boolean
Power Up/Reset Value: 00 (hex) (False)
Get/Set/Save support: All
Description:
This property enables or disables RS232 plug and play support. This support is enabled if this
property is set to 1 (true) or disabled if this property is set to 0 (false).
This property is typically only enabled if the RS232 interface of this device is being used to
communicate to a PCSC driver on the Windows operating system.
If this property is enabled, the device will transmit a string on the RS232 port when the CTS
signal with respect to the device is asserted (goes from negative to positive) by the host
according to the Plug and Play External COM Device Specification Version 1.00.
The transmitted string will have the following format.
Field Data (hex)
Field Name
28
Begin PnP
01,24
45,4B,41
Pnp Rev
EISA ID
30,30,30,42
Product ID
29
End PnP
Description
“(“ indicates PNP IDs will
follow
Identifies PnP version 1.0
“EKA” MagTek manufacturer
ID
“000B” IntelliStripe 320
product ID
“)” indicates PnP IDs
complete
Example Set Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
08
CMND
3
01
RC
4
00
PTYP
5
03
PID
6
01
PVAL
7
00 (false)
Example Set Property Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
08
CMND
3
01
RC
4
00
75
IntelliStripe 320 Command Reference
USB PRODUCT PROPERTY
Property ID: 02 (Hex)
Property Type: String
Maximum Length: 64 (including terminating zero)
Power Up/Reset Value: 49 6E 74 65 6C 6C 69 53 74 72 69 70 65 20 33 32 30 00 (“IntelliStripe
320”)
Get/Set/Save support: All
Description:
This property is the USB product. The USB product is reported to the host in the USB product
string descriptor during USB device enumeration.
MagTek’s MCP USB driver uses the USB product as part of the device instance name. For
example, if a device has no serial number and it’s USB product is set to “IntelliStripe 320” then
it’s device instance name will be “IntelliStripe 320”. If it has serial number “123”, its device
instance name will be “IntelliStripe 320.123”. See the host communications application’s USB
serial number property for more information.
After setting the USB product to a new value, the USB product needs to be saved with the save
property command and then the device needs to be power cycled or reset before the new USB
product value is used as the USB product string descriptor. If MagTek’s MCP USB driver is
being used, it needs to be closed and then opened using the new device instance name before
communicating further.
Example Set Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
08
CMND
3
01
RC
4
00
PTYP
5
02
Field
Byte
Value (Hex)
PVAL
7 - 23
49 6E 74 65 6C 6C 69 53 74 72 69 70 65 20 33 32 30 00 (“IntelliStripe
320”)
Example Set Property Response:
Field
Byte
Value (Hex)
76
MTYP
1
40
APPL
2
08
CMND
3
01
RC
4
00
PID
6
02
Section 9. Host Communications Application
MCP ERROR RECOVERY ENABLE PROPERTY
Property ID: 03 (Hex)
Property Type: Boolean
Power Up/Reset Value: 01 (hex) (True)
Get/Set/Save support: All
Description:
This property enables or disables the MCP error recovery feature. This feature is enabled if this
property is set to 1 (true) or disabled if this property is set to 0 (false).
Disabling this property will greatly reduce the development effort required to implement the
MCP protocol. In fact, disabling this property will reduce the protocol to simply sending and
receiving I-frames with the exception of the optional auto baud synchronization S-frame
sequence. However, disabling this property will also disable the error recovery feature of the
protocol. The error recovery feature of the protocol allows the protocol to automatically recover
from minor communication channel problems without requiring intervention from the
application layer. Users that have reliable communications channels do not need the error
recovery feature, so most users do not require this feature. Users that are writing their own MCP
USB drivers are encouraged to disable this property to help simplify the driver development
effort. If this property is disabled and it is not made non-volatile by using the Save property
command, then this property should be set as the first I-frame sent to the device after power up to
avoid having to implement any of the error recovery aspects of the protocol.
Disabling this property will change the following aspects of the MCP protocol from the devices
perspective.
• The protocol will no longer automatically recover from minor communications channel
problems.
• The device will no longer check the send and receive sequence numbers received from
the host. The host is no longer required to maintain these sequence numbers. They can
always be set to zero.
• The device will no longer require the host to acknowledge I-frames that it sent. The
device will assume that the host received the I-frame correctly. The host is no longer
required to send R-frames. The device will never send the host a polling R-frame. The
block wait timeout (BWT) is no longer used. The device will no longer send the host an
R-frame if takes longer than 250ms (BWT) to begin sending a response I-frame due to a
request I-frame (command) that takes some time to complete.
• The device will no longer require the host to establish a connection by sending a
RESYNC S-frame request. The device will be ready to accept I-frames as soon as baud
synchronization is completed.
The device will still enforce the protocols character wait timeout (CWT) and so should the host.
This is required to reset the nodes receive handler in case of an error. The host should still
enforce a 5 second message response timeout so that it can detect and handle errors.
77
IntelliStripe 320 Command Reference
Example Set Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
08
CMND
3
01
RC
4
00
PTYP
5
03
PID
6
03
Example Set Property Response:
Field
Byte
Value (Hex)
78
MTYP
1
40
APPL
2
08
CMND
3
01
RC
4
00
PVAL
7
01 (true)
Section 9. Host Communications Application
MCP EDC CHECK ENABLE PROPERTY
Property ID: 04 (Hex)
Property Type: Boolean
Power Up/Reset Value: 01 (hex) (True)
Get/Set/Save support: All
Description:
This property enables or disables MCP EDC (error detection code) checking. This feature is
enabled if this property is set to 1 (true) or disabled if this property is set to 0 (false). Disabling
this property will cause the device to no longer check the header EDC and the frame EDC for Rframes and S-frames. This property has no affect on the I-frame EDC checking because this is
controlled by the I-frames PCB field. When this property is disabled, the EDC fields are still
required, however they can be set to any value.
Disabling this property will simplify the protocol a bit, but it will also reduce the error
detection/recovery feature of the protocol. This property can be useful when sending commands
to the device manually so that the EDC does not have to be calculated manually. This property
can also be useful during MCP protocol driver development.
Example Set Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
08
CMND
3
01
RC
4
00
PTYP
5
03
PID
6
04
PVAL
7
01 (true)
Example Set Property Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
08
CMND
3
01
RC
4
00
79
IntelliStripe 320 Command Reference
MCP AUTO BAUD ENABLE PROPERTY
Property ID: 05 (Hex)
Property Type: Boolean
Power Up/Reset Value: 01 (hex) (True)
Get/Set/Save support: All
Description:
This property enables or disables MCP auto baud synchronization. This feature is enabled if this
property is set to 1 (true) or disabled if this property is set to 0 (false). When this property is
disabled, the device will no longer require the host to perform the auto baud synchronization
sequence. Instead, the device will use the fixed baud rate specified by the host communication
applications fixed baud rate property. After changing this property, the property will also need
to be saved in non-volatile memory (Save property command) and the device will need to be
power cycled or reset before the change will take affect.
Example Set Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
08
CMND
3
01
RC
4
00
PTYP
5
03
PID
6
05
Example Set Property Response:
Field
Byte
Value (Hex)
80
MTYP
1
40
APPL
2
08
CMND
3
01
RC
4
00
PVAL
7
01 (true)
Section 9. Host Communications Application
FIXED BAUD RATE PROPERTY
Property ID: 06 (Hex)
Property Type: Dword
Power Up/Reset Value: 0a (hex) (57600 baud)
Get/Set/Save support: All
Description:
This property contains the value of the RS232 interfaces fixed baud rate. The MCP protocol
does not use this property unless its host communications applications MCP auto baud enable
property is set to false. After changing this property, the property will also need to be saved in
non-volatile memory (Save property command) and the device will need to be power cycled or
reset before the change will take affect.
Values:
Value (hex)
05
06
07
08
09
0A
0B
Baud Rate
9600
14400
19200
28800
38400
57600
115200
Example Set Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
08
CMND
3
01
Field
Byte
Value (Hex)
PVAL
7 - 10
0a 00 00 00 (57600 baud)
RC
4
00
PTYP
5
01
PID
6
06
Example Set Property Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
08
CMND
3
01
RC
4
00
81
IntelliStripe 320 Command Reference
RESET DETECTED PROPERTY
Property ID: 07 (Hex)
Property Type: Boolean
Power Up/Reset Value: 01 (hex) (True)
Get/Set/Save support: Get/Set
Description:
This property can be used to determine if the device has been reset. To use this property, first set
it to false, then monitor it periodically, if its value changes to true, then the device has been reset.
Example Set Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
08
CMND
3
01
RC
4
00
Example Set Property Response:
Field
Byte
Value (Hex)
82
MTYP
1
40
APPL
2
08
CMND
3
01
RC
4
00
PTYP
5
03
PID
6
07
PVAL
7
00 (false)
Section 9. Host Communications Application
PROTOCOL PROPERTY
Property ID: 08 (Hex)
Property Type: Dword
Power Up/Reset Value: 00 (hex) (MCP)
Get/Set/Save support: All
Description:
This property contains the value of the communications protocol used by this device. The
communications protocol is independent of the communications interface that is used. For
example, both the RS232 and USB interfaces can use any protocol. After changing this property,
the property will also need to be saved in non-volatile memory (Save property command) and the
device will need to be power cycled or reset before the change will take affect.
Values:
Value (hex)
00
01
Protocol
MCP
ASCII Hex
MCP Protocol:
This binary protocol is described in MagTek’s MCP Serial Transport Protocol reference manual,
part number 99875163. This is the default protocol used by this device. MagTek’s MCP
Windows Driver for the RS232 and USB interfaces uses this protocol. This protocol is rather
complicated, however, it can be extremely simplified by adjusting some of the other properties
found in this application such as the Error Recovery Enable property.
ASCII Hex Protocol:
This is a very simple ASCII based protocol. This protocol is very simple to implement. For the
RS232 interface, a terminal emulation application such as Window’s HyperTerminal can be used
to communicate to the device using this protocol. USB drivers can be designed to use this
protocol if they follow the pipe structure described in the USB section of MagTek’s MCP Serial
Transport Protocol reference manual, part number 99875163. Since this is an ASCII based
protocol used to send Binary data, it is twice as slow as the binary MCP protocol because it
requires twice as many bytes to be sent.
Only the following ASCII characters are valid for this protocol. All other characters will be
ignored by the device.
83
IntelliStripe 320 Command Reference
Value (Hex)
0D
18
30-39
41-46
a-f
Code/Char
Carriage Return <CR>
Cancel <CAN>
1-9
A-F
a-f
Command requests should be sent to the device as they are defined in this manual followed by a
carriage return. Each binary byte should be sent as two ASCII hex characters. For example, the
binary byte 5A (hex) should be sent as the two ASCII characters 5 (35 hex) and A (41 hex). The
device will send Command responses and notification messages to the host as they are defined in
this manual followed by a carriage return. The device will only send upper case letters A thru F.
The host is free to also send lower case a thru f in addition to upper case A thru F.
The device is also free to send the cancel character (18 hex) at anytime to cancel anything that
may be in the devices receive buffer prior to sending the carriage return. However, this cannot
be used to cancel a command that is in progress. The host should wait at least 50ms before
sending anything else to the device after sending this cancel character. The device will not
respond to the cancel character. The cancel character could be useful when the host application
first starts or after a communications error occurs to make sure that the device is in a known
state.
If the device is using the ASCII protocol, the host would send the following sequence of bytes
(in hex) to send the following example request:
30 30 30 38 30 31 30 30 30 31 30 38 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 0D
If the device is using the ASCII protocol the device would send the following sequence of bytes
(in hex) to send the following example response:
34 30 30 38 30 31 30 30 0D
Example Set Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
08
Field
Byte
Value (Hex)
PVAL
7 - 10
00 00 00 00 (MCP)
CMND
3
01
RC
4
00
CMND
3
01
RC
4
00
Example Set Property Response:
Field
Byte
Value (Hex)
84
MTYP
1
40
APPL
2
08
PTYP
5
01
PID
6
08
SECTION 10. OTI SCI 1000 CONTACTLESS SMART CARD
APPLICATION
Application ID: 0E (Hex)
Description:
This application deals with communications with the OTI module. This module supports
MasterCard-PayPass™, Visa-Wave™ , AMEX-ExpressPay™, Discover and Mifare cards.
GET/SET/SAVE PROPERTY COMMANDS
Get Property Command ID: 00 (Hex)
Set Property Command ID: 01 (Hex)
Save Property Command ID: 02 (Hex)
Description:
These commands are used to retrieve and set the value of application properties. Details of these
commands are described in the Generic Command Section of this document. The following
describes each property this application supports.
NOTIFY CONTACTLESS MAGSTRIPE PROPERTY
Property ID: 00 (Hex)
Property Type: Boolean
Power Up/Reset Value: 1 (ON)
Get/Set support: Both
Description:
If the Notify Contactless Magstripe state is set to ON, then a notification message will be sent to
the host when a Contactless Smart Card enters the operating field.
Values:
Value
0
1
Notify Answer To Request State
OFF
ON
Example Set Property Request:
Field
Byte
Value (Hex)
Field
Byte
Value (Hex)
MTYP
APPL
CMND
RC
PTYP
1
2
3
4
5
00
0E
01
00
03
PVAL
7
01 (NOTIFY ANSWER TO REQUEST STATE - ON)
PID
6
00
85
IntelliStripe 320 Command Reference
Example Set Property Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
0E
CMND
3
01
RC
4
00
CMND
3
00
RC
4
00
PTYP
5
03
PID
6
00
CMND
3
00
RC
4
00
PTYP
5
03
PID
6
00
Example Get Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
0E
Example Get Property Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
0E
Field
Byte
Value (Hex)
PVAL
7
01 (NOTIFY ANSWER TO REQUEST STATE - ON)
CONTACTLESS AUTOMATIC RF CONTROL PROPERTY
Property ID: 01 (Hex)
Property Type: Boolean
Power Up/Reset Value: 0 (OFF)
Get/Set support: Both
Description:
Due to close proximity of the antenna to the magnetic stripe read head, the RF field can prevent
magnetic stripe data from being read correctly. The RF can be turned off automatically by the
reader when reading magnetic stripe data in the withdrawal direction. This only works when the
transport application MSR direction property is not set to non-directional. When the Contactless Automatic RF Control state is set to ON, the RF is automatically turned OFF just prior to
withdrawing a card, after the card withdrawal completes, the RF will be turned back ON. If a
card is partially inserted and pulled back out of the reader, the RF will turn OFF and after a
timeout, will turn back ON.
The reader is not capable of automatically turning the RF off prior to a card insertion. However,
this can be done manually by the host by using the RF OFF and RF ON commands to make sure
the RF does interfere with a read on insertion.
If a command is sent to the reader to turn RF OFF, then the automatic control of the RF will also
be disabled until a command turning ON the RF is received.
86
Section 10. OTI SCI 1000 Contactless Smart Card Application
Values:
Value
0
1
AUTOMATIC RF CONTROL PROPERTY
OFF
ON
Example Set Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
0E
CMND
3
01
RC
4
00
Field
Byte
Value (Hex)
PVAL
7
01 (AUTOMATIC RF CONTROL - ON)
PTYP
5
03
PID
6
01
Example Set Property Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
0E
CMND
3
01
RC
4
00
CMND
3
00
RC
4
00
PTYP
5
03
PID
6
01
CMND
3
00
RC
4
00
PTYP
5
03
PID
6
01
Example Get Property Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
0E
Example Get Property Response:
Field
Byte
Value (Hex)
MTYP
1
40
APPL
2
0E
Field
Byte
Value (Hex)
PVAL
7
01 (AUTOMATIC RF CONTROL – ON)
Auto Mode
The contactless module is always in Auto Mode and will automatically read the card’s
equivalent magnetic stripe data when it comes within reading range. The reader will also sound a
buzzer when the contactless card data is successfully read. This data is also sent to the host
automatically.
87
IntelliStripe 320 Command Reference
Example Notification Sequence
On the assumption that the Notify Contactless Magstripe Property is ON, the application
will send the message when a contactless card comes into the operating field.
Contactless Magstripe Notification message for Paypass, Visa Wave, ExpressPay and
Discover:
On a successful read:
Field
Byte
Value (Hex)
MTYP
1
80
Field
Byte
Value (Hex)
APPL
2
0E
CMND
3
00
RC
4
00
DATA
5 – up to 124 (Variable Length)
DF 23 (LEN) (Track 1 Data) DF 22 (LEN)
(Track 2 Data)
Contactless Magstripe Notification message for Mifare:
On a successful read:
Field
Byte
Value (Hex)
MTYP
1
80
Field
Byte
Value (Hex)
Notes:
(1)
(2)
(3)
(4)
APPL
2
0E
CMND
3
00
RC
4
00
DATA
5 – up to 124 (Variable Length)
DF 0D (LEN) (UID)
DF 23 is the header for Track 1
DF 22 is the header for Track 2
LEN number of bytes available for Track 1 or Track 2.
For Track 2 data, 2 characters are sent using one byte, the application software will have
to convert each character into two bytes.
(5) DF 0D id the header for a Mifare Card’s UID. See appendix D to read Mifare cards.
88
Section 10. OTI SCI 1000 Contactless Smart Card Application
RF ON Command
Command ID: 84 (Hex)
Description:
This command is used to turn the RF field ON.
Request Message Data: None
Response Message Data: None
Response Message Result Codes:
Success = 00 (Hex)
The command completed successfully.
Example Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
0E
CMND
3
84
RC
4
00
MTYP
1
40
APPL
2
0E
CMND
3
84
RC
4
00
Example Response:
Field
Byte
Value (Hex)
RF OFF COMMAND
Command ID: 85 (Hex)
Description:
This command is used to turn the RF field OFF. When this command is accepted by the reader,
the automatic control of the RF will also be disabled
Request Message Data: None
Response Message Data: None
Response Message Result Codes:
Success = 00 (Hex)
The command completed successfully.
Example Request:
Field
Byte
Value (Hex)
MTYP
1
00
APPL
2
0E
CMND
3
85
RC
4
00
MTYP
1
40
APPL
2
0E
CMND
3
85
RC
4
00
Example Response:
Field
Byte
Value (Hex)
89
IntelliStripe 320 Command Reference
SENDING OTI MODULE TRANSPARENT COMMANDS
Command ID: 81 (Hex)
Description:
This command is used to send additional commands to the OTI module through the IntelliStripe
65 interface.
Request Message Data: None
Response Message Data: None
Response Message Result Codes:
Success = 00 (Hex)
The command completed successfully.
Example Request:
This example sends the command to the OTI module to POLL and activate once.
Field
MTYP
APPL
CMND
RC
Byte
1
2
3
4
Value (Hex)
00
0E
81
00
Field
Byte
Value (Hex)
DATA
5 – 10
00 3E DF 7E 01 03
Example Response:
Field
Byte
Value (Hex)
90
MTYP
1
40
APPL
2
0E
CMND
3
81
RC
4
00
DATA
5–7
3E 00 00
APPENDIX A. EXAMPLE HOST APPLICATION
The following is an example of a very simple host application that uses the IntelliStripe 320
command set to read a magnetic stripe and communicate to a smart card. This example would
not be used as a real application because it has no error handling. It is intended only to be used
as a demonstration of how the command set can be used to build an application.
The steps are as follows:
1. Initialize device by setting MSR Direction transport property to Consume and setting Auto
Consume transport property to Enabled.
2. Wait for a card to be consumed completely into the reader. Check Rear Card Present
indicator inside a loop until it is set. The Rear Card Present indicator is obtained by issuing
the Get Indicators transport property. For error handling, also check for the following case
inside the loop. If the Auto Transporting indicator is clear and the Middle Card Present
Indicator is set but the Rear Card Present indicator is not set then a card is stuck in the
transport so go to step 5.
3. Issue the Get Track 123 Decode Data magnetic stripe command to get the magnetic stripe
data.
4. Perform any required smart card communications.
5. Issue the Card Eject transport command to eject the card.
6. Go to step 2 to read another card.
91
IntelliStripe 320 Command Reference
92
APPENDIX B. MEMORY CARD SUPPORT
This appendix defines the commands needed to control supported Memory Cards
SLE 4442/4432 MEMORY CARD CONTROL
This section defines the commands needed to control the SLE 4442 and 4432 card types. It is
assumed that the user has access to the manufacturer’s specifications for this type of card.
According to Siemens, this card is divided into “Memories” which each have different uses. The
word Memory as used in this section (always starting with uppercase M) should be interpreted as
one of the Memories defined by Siemens. For command purposes we equate each Memory with
a Short File ID (read about this in ISO 7816-4 if you like). The Short File IDs are:
00 – Main Memory
01 – Security Memory (4442 only)
04 – Protection Memory
Properties
With the addition of the SLE 4442/4432 support come a few properties the user may need access
to. If the cards you are using are true SLE 4442/4432 cards, you should not need to manipulate
these properties. If you are using a clone with a different mapping, you may need to change
these properties.
Name
ID
(Hex)
Type
Length
Reset
Value
Get/Set Description
/Save
4442ByteSizeMain
A0
Binary
2
256
Get/Set
4442ByteSizeSec
A1
Binary
1
4
Get/Set
4442ByteSizeProt
A2
Binary
1
32
Get/Set
Gives the size of Main
Memory in bytes. Reads and
Writes to Main Memory will
be screened to assure they
stay within these limits.
Gives the size of Security
Memory (4442 only). All
commands directed to this
Memory will be screened to
assure they stay within these
limits.
Gives the size of Protection
Memory. Reads and Writes
to Main Memory will be
screened to assure they stay
within these limits.
93
IntelliStripe 320 Command Reference
Power Up
The Power Up command is issued as with Microprocessor cards and can get same Result Codes.
When the Result Code indicates an Error or Warning, the Primary Status of the CondRpt
Property will never be 0x03.
APDU Exchange Command
The APDU Exchange Command is used to control logical operations of the card between Power
Up and Power Down. The APDU is issued as with Microprocessor cards. The Result Codes are
the same as for Microprocessor cards. When the Result Code indicates an Error or Warning, the
Primary Status of the CondRpt Property will never be 0x03.
Two SW1/SW2 Status Codes may apply to any APDU:
SW1/SW2
6E00
6D00
Meaning
CLA Not Supported
INS Not Supported
Read Binary APDUl:
Command APDU:
CLA
00
INS
B0
P1
Adr1
P2
Adr0
Le
Len
CLA is always 00
INS is always B0
P1 is upper byte of address as follows:
80 reads Main Memory (Short File ID 0)
81 reads Security Memory (Short File ID 1) (SLE 4442 only)
84 reads Protection Memory (Short File ID 4)
P2 is lower byte of address within the requested Memory
Le is the number of bytes to read, 0-256, 0 indicates 256 bytes
Response APDU:
Data Field (from card)
SW1
SW2
When reading from the Protection Memory, the high order bit of the first data byte returned
represents the protection state of byte 0 in the Main Memory. The low order bit of the first data
byte returned represents the protection state of byte 7, etc.
94
Appendix B. Memory Card Support
Possible SW1/SW2 combinations:
SW1/SW2
9000
6A82
6B00
Meaning
Normal completion, no errors
Memory Not Found (P1 is invalid)
Offset outside of the Memory (Combination of P2 and Le is invalid)
Update Binary APDU
Command APDU:
CLA
00
INS
D6
P1
Adr1
P2
Adr0
Lc
Len
Data Field
Data to be written
CLA is always 00
INS is always D6
P1 is upper byte of address as follows:
80 updates Main Memory (Short File ID 0)
81 updates Security Memory (Short File ID 1) (SLE 4442 only)
84 updates Protection Memory (Short File ID 4)
P2 is lower byte of address, address within the requested Memory
Lc is the number of bytes to write, 0-256, 0 indicates 256 bytes
Data Field contains the bytes to write. If the Memory being written is the Protection
Memory, only bytes that are different from the values currently on the card are written,
then protected. If a byte to be written is already protected, a status 6581 will be returned.
Response APDU:
SW1
SW2
Possible SW1/SW2 combinations:
SW1/SW2
9000
6581
6A82
6B00
Meaning
Normal completion, no errors
Memory Failure, some bytes were not written
File Not Found (P1 is invalid)
Offset outside of the Memory (Combination of P2 and Lc is invalid)
95
IntelliStripe 320 Command Reference
Verify APDU (Programmable Security Code)
Command APDU:
CLA
00
INS
20
P1
00
P2
00
Lc
Len
Data Field
Data to be verified
CLA is always 00
INS is always 20
P1 is 00
P2 is 00
Lc is the number of bytes for verification:
If the value is 00, the status 63Cx will be returned where x indicates the number of
further retries allowed. This mode does not use up an attempt!
If the value is the one less than the value of Property A1, the PSC contained in the Data
Field will be presented for verification.
Response APDU:
SW1
SW2
Possible SW1/SW2 combinations:
SW1/SW2
9000
63Cx
6A86
6B00
96
Meaning
Normal completion, no errors (PSC verified OK)
Verification failed, x indicates number of further retries allowed
P1 and/or P2 not zero
Offset outside of the Memory (Lc is invalid)
Appendix B. Memory Card Support
SLE 4428/4418 MEMORY CARD CONTROL
This section defines the commands needed to control the SLE 4428 and 4418 card types. It is
assumed that the user has access to the manufacturer’s specifications for this type of card.
This section will address the memory available on the card as a file. For compatibility of
terminology with ISO 7816-4, we will assume that the memory is in an “implicitly selected” file
after we power up the card.
Properties
With the addition of the SLE 4428/4418 support come a few properties the user may need access
to. If the cards you are using are true SLE 4428/4418 cards, you should not need to manipulate
these properties. If you are using a clone with a different mapping, you may need to change
these properties.
Name
ID
(Hex)
Type
Length
Reset
Value
Get/Set Description
/Save
4428AddressSecurity
A6
Binary
2
1021
Get/Set
4428LenSecurity
A7
Binary
1
3
Get/Set
Gives Byte Address on card
of Security Area. The
Security starts with a one
byte Error Counter and
continues with a
Programmable Security Code
(PSC). The PSC occupies all
remaining bytes of the
Security Area.
Gives the length (in bytes) of
the Security Area
Power Up
The Power Up command is issued as with Microprocessor cards and can get same Result Codes.
When the Result Code indicates an Error or Warning, the Primary Status of the CondRpt
Property will never be 0x03.
APDU Exchange Command
The APDU Exchange Command is used to control logical operations of the card between Power
Up and Power Down. The APDU is issued as with Microprocessor cards. The Result Codes are
the same as for Microprocessor cards. When the Result Code indicates an Error or Warning, the
Primary Status of the CondRpt Property will never be 0x03.
97
IntelliStripe 320 Command Reference
Two SW1/SW2 Status Codes may apply to any APDU:
SW1/SW2
6E00
6D00
Meaning
CLA Not Supported
INS Not Supported
Read Binary APDU
Command APDU:
CLA
00
INS
B0
P1
Adr1
P2
Adr0
Le
Len
CLA is always 00
INS is always B0
P1 is upper byte of address to read and must not be greater than ‘03’
P2 is lower byte of address to read.
Le is the number of bytes to read
Response APDU:
Data Field (from card)
SW1
SW2
Possible SW1/SW2 combinations:
SW1/SW2
9000
6B00
Meaning
Normal completion, no errors
Offset outside of the Memory (Combination of P2 and Le is invalid)
Read Protection Status APDU
This APDU will not be found in ISO 7816-4. That is why it has the CLA of D0 (Proprietary).
Command APDU:
CLA
D0
INS
B8
P1
Adr1
P2
Adr0
Le
Len
CLA is always D0
INS is always B8
P1 is upper byte of address to read protection status and must not be greater than ‘03’
P2 is lower byte of address to read protection status.
Le is the number of bytes of protection status to read
98
Appendix B. Memory Card Support
Response APDU:
Data Field (from card)
SW1
SW2
Data indicates the protection status for the byte located at the corresponding address on the card.
The value ‘00’ indicates the location is protected and cannot be updated. A value ‘01’ indicates
the location is not protected and can be updated.
Possible SW1/SW2 combinations:
SW1/SW2
9000
6B00
Meaning
Normal completion, no errors
Offset outside of the Memory (Combination of P2 and Le is invalid)
Update Binary APDU
Because of card functionality, this APDU should not be sent until at least one Read Binary
APDU has been sent first.
Command APDU:
CLA
00
INS
D6
P1
Adr1
P2
Adr0
Lc
Len
Data Field
Data to be written
CLA is always 00
INS is always D6
P1 is upper byte of address to write and must not be greater than ‘03’
P2 is lower byte of address to write.
Lc is the number of bytes to write, 0-1024
Data Field contains the bytes to write. If a byte to be written is already protected, a status
6581 will be returned.
Response APDU:
SW1
SW2
Possible SW1/SW2 combinations:
SW1/SW2
9000
6581
6B00
Meaning
Normal completion, no errors
Memory Failure, some bytes were not written
Offset outside of the Memory (Combination of P2 and Lc is invalid)
99
IntelliStripe 320 Command Reference
Update Binary With Protection APDU
Because of card functionality, this APDU should not be sent until at least one Read Binary
APDU has been sent first.
This APDU will not be found in ISO 7816-4. That is why it has the CLA of D0 (Proprietary).
Command APDU:
CLA
D0
INS
D8
P1
Adr1
P2
Adr0
Lc
Len
Data Field
Data to be written
CLA is always D0
INS is always D8
P1 is upper byte of address to write and must not be greater than ‘03’
P2 is lower byte of address to write.
Lc is the number of bytes to write, 0-1024
Data Field contains the bytes to write. If a byte to be written is already protected, a status
6581 will be returned. Data is written first, then the Protect bit is written with
comparison, assuring that the data being protected is the data you wanted to
protect.
Response APDU:
SW1
SW2
Possible SW1/SW2 combinations:
SW1/SW2
9000
6581
6B00
100
Meaning
Normal completion, no errors
Memory Failure, some bytes were not written
Offset outside of the Memory (Combination of P2 and Lc is invalid)
Appendix B. Memory Card Support
Verify APDU (Programmable Security Code)
Because of card functionality, this APDU should not be sent until at least one Read Binary
APDU has been sent first.
Command APDU:
CLA
00
INS
20
P1
00
P2
00
Lc
Len
Data Field
Data to be verified
CLA is always 00
INS is always 20
P1 is 00
P2 is 00
Lc is the number of bytes for verification:
If the value is 00, the status 63Cx will be returned where x indicates the number
of further retries allowed. This mode does not use up an attempt!
If the value is the one less than the value of Property A7, the PSC contained in the
Data Field will be presented for verification.
Response APDU:
SW1
SW2
Possible SW1/SW2 combinations:
SW1/SW2
9000
63Cx
6A86
6B00
Meaning
Normal completion, no errors (PSC verified OK)
Verification failed, x indicates number of further retries allowed
P1 and/or P2 not zero
Offset outside of the Memory (Lc is invalid)
101
IntelliStripe 320 Command Reference
SLE 4404 MEMORY CARD CONTROL
This section defines the commands needed to control the SLE 4404 card type. There are many
cards available that are similar to the SLE4404, and this device will support many of them. It is
assumed that the user has access to the manufacturer’s specifications for this type of card.
This section will address the memory available on the card as a file. For compatibility of
terminology with ISO 7816-4, we will assume that the memory is in an “implicitly selected” file
after we power up the card.
Properties
With the addition of the SLE 4404 support comes a property the user may need access to.
Name
4404-BitOrder
ID
(Hex)
AE
Type
Length
Boolean
1
Reset
Value
0
Get/Set/
Save
Get/Set
Description
A value of 0 causes the least
significant bit of each byte to
be sent or received first. A
value of 1 causes the most
significant bit of each byte to
be sent or received first.
This property DOES NOT
APPLY to the Power Up
command, which always
reads the bytes least
significant bit first.
Data is sent and received as bytes. When the 4404-BitOrder property is set to 0, the least
significant bit of each byte represents the lowest addressed bit on the card. If we write the bytes
33 22 11 to a card at address 73, the card will end up with the following bit pattern on the card:
Address
73……….81……….89…….96
11001100 01000100 10001000
When the 4404-BitOrder property is set to 1, the most significant bit of each byte represents the
lowest addressed bit on the card. If we write the bytes 33 22 11 to a card at address 73, the card
will end up with the following bit pattern on the card:
Address
73……….81……….89…….96
00110011 00100010 00010001
102
Appendix B. Memory Card Support
Note: This property is new. Older versions of IntelliStripe products may not have this. The
addition of this property is backwards compatible with such older products. Compatibility is
achieved by having the Reset Value provide the same functionality as the older products. If you
wish to use the msb first option, you will have to set this property to 1.
Power Up
The Power Up command is issued as with Microprocessor cards and can get same Result Codes.
When the Result Code indicates an Error or Warning, the Primary Status of the CondRpt
Property will never be 0x03.
APDU Exchange Command
The APDU Exchange Command is used to control logical operations of the card between Power
Up and Power Down. The APDU is issued as with Microprocessor cards. The Result Codes are
the same as for Microprocessor cards. When the Result Code indicates an Error or Warning, the
Primary Status of the CondRpt Property will never be 0x03.
Two SW1/SW2 Status Codes may apply to any APDU:
SW1/SW2
6E00
6D00
Meaning
CLA Not Supported
INS Not Supported
Special handling for C4 and RST
Some of the cards that are controllable with as this card type use Contact 4 (C4) and the Contact
2 (RST) for special functions. For some cards, C4 may be used to put the card into a special
“test” mode where it simulates an already personalized card, even if it has not completed
personalization. For some cards, RST may be used during write/erase operations to stop the card
internal address from incrementing.
The user is given control of C4 for all APDUs. This is accomplished by manipulating the lowest
bit of the CLA byte. If the bit is 0, C4 will be maintained Low for the duration of the operation.
If the bit is 1, C4 will be set High at the start of the operation and then returned to Low after the
operation is completed.
Some of the APDUs give the user control over the RST contact. For these APDUs a value of 0
will force Contact 2 low, a value of 1 will force it high during selected portions of the operation.
It is expected that the user has access to the technical specifications of the card he is dealing with
and thus knowledge of how to use these contacts.
103
IntelliStripe 320 Command Reference
Read Binary APDU
Command APDU:
CLA
D0/D1
INS
B0
P1
xx
P2
Adr
Le
Len
CLA is always D0 or D1 (the lowest bit specifies the state of C4)
INS is always B0
P1 is ignored
P2 is the address where the read will start
Le is the number of bytes to read, 0 will read 256 bytes
Response APDU:
Data Field (from card)
SW1
SW2
Possible SW1/SW2 combinations:
SW1/SW2
9000
Meaning
Normal completion, no errors
Write Binary APDU
The Write Binary command performs a logical AND of the bits already present in the card with
the bits given in the command APDU. For each bit that is 0 in the command APDU, if the
corresponding bit on the card is 1, it will be written to 0. Bits in the command APDU that are set
to 1 will be ignored, the state of the corresponding bit on the card will not be checked. If there is
a need to set a bit on the card to the value of 1, it must be done using the Erase Binary command
or the Verify command. These commands will cause erasure of more than one bit on the card, so
be careful!
Command APDU:
CLA
D0/D1
INS
D0
P1
See
below
P2
Adr
Lc
Len
Data Field
Data to be written
CLA is always D0 or D1 (the lowest bit specifies the state of C4)
INS is always D0
P1 specifies RST and allows bit addressing within the specified starting byte. The bits
shown with x are ignored.
Bit 7
RST
104
Bit 6
x
Bit 5
x
Bit 4
x
Bit 3
x
Bit 2
Bit 1
Bit address
Bit 0
Appendix B. Memory Card Support
The bit address is added to the byte address to form the address of the first bit to
be affected by the command. For every count over zero, the card internal address
in incremented one. This allows effective addressing of a specific bit and may be
useful for blowing fuses in some cards.
P2 is the address where the write will start
Lc is the number of bytes to write.
Data Field contains the bytes to write. If a bit to be written cannot be changed, a status
6581 will be returned.
Response APDU:
SW1
SW2
Possible SW1/SW2 combinations:
SW1/SW2
9000
6581
Meaning
Normal completion, no errors
Memory Failure, some bits were not written
Erase Binary APDU
The Erase Binary command is used to erase parts of the card. For this type of card erased means
that each bit = 1. Cards of this type are organized as 16 bit “frames”. Typically, if an erase
operation is performed on any bit in the frame, all bits in the frame are erased. In order to erase
successfully, security conditions may have to be met.
This command provides one of two methods for erasing data on the card. The other method is
with the Verify command. When it is used to “verify” the erase password of one of the
application zones, it causes that application zone to be erased (if security requirements have been
satisfied).
Command APDU:
CLA
D0/D1
INS
0E
P1
RST
P2
Adr
Lc
0
CLA is always D0 or D1 (the lowest bit specifies the state of C4)
INS is always 0E
P1 specifies RST, all other bits are ignored
Bit 7
RST
Bit 6
x
Bit 5
x
Bit 4
x
Bit 3
x
Bit 2
x
Bit 1
x
Bit 0
x
P2 is the address where the erase will occur
Lc should be zero, but is ignored (0 is used) if it is not.
105
IntelliStripe 320 Command Reference
Response APDU:
SW1
SW2
Possible SW1/SW2 combinations:
SW1/SW2
9000
6581
Meaning
Normal completion, no errors
Memory Failure, some bits were not erased
Verify/Erase Application Zone APDU
This command is used to do two types of security operations on the card. First, it is used to
present the User Code which unlocks further functionality. Second, it is used to erase/reload
application zones by presenting the Memory Code.
Command APDU:
CLA
D0/D1
INS
20/22
P1
Tries
P2
Adr
Lc
Len
Data Field
Data to be verified
CLA is always D0 or D1 (the lowest bit specifies the state of C4)
INS is either 20(Verify) or 22(Erase Application Zone)
P1 specifies Tries, the maximum number bits which will be searched for a ‘1’ value to
write to ‘0’ in preparation for the erase sub-operation that completes the Verify/Erase
command. For application zones that do not require writing of a bit to cause erasure, use
a 00 in Tries. This will cause the erase operation to be performed on the next bit after
presentation of the Memory Code.
P2 is the byte address of the code to be verified (usually called User Code or Memory
Code). NOTE: WHEN USING Lc=0, THIS ADDRESS MUST BE THE ADDRESS OF
THE COUNTER TO BE EVALUATED (I.E. IN A 4404 THE USER CODE IS AT
ADDRESS 08H AND THE CORRESPONDING ERROR COUNTER IS AT ADDRESS
0AH. TO EVALUATE THIS COUNTER THE COMMAND APDU WOULD BE:
D0 20 04 0A 00).
Lc is the number of bytes for verification:
If the value is 00, the status 63Cx will be returned where x indicates the number
of further retries allowed, if x is F, there may be even more than 15 retries
remaining. This mode does not use up any retries!
Response APDU:
SW1
106
SW2
Appendix B. Memory Card Support
Possible SW1/SW2 combinations:
SW1/SW2
9000
6200
63Cx
Meaning
Normal completion for Verify (INS 20). Verification was successful.
Normal completion for Erase Application Zone (INS 22), no errors, but user must
verify erasure. This status could be returned even though erasure did not occur.
Verification failed, x indicates number of further retries allowed
I2C™ MEMORY CARD CONTROL
This section defines the commands needed to control basic I2C™ types of cards. There are two
types of cards addressed, dependent on the amount of memory they contain.
We call the first type the 3 byte card because a 3 byte command frame is used to control it.
These cards must contain 2048 bytes or less of data (byte address must fit in 11 bits). At this
time we do not know of any cards containing 2048 or less bytes of data that use a 4 byte
command frame, but if such a card is developed later, it would be classed as a 4 byte card.
We call the second type the 4 byte card because a 4 byte command frame is used to control it.
These cards usually contain more than 2048 bytes of data and thus need an additional byte of
address in the control frame.
If you are not sure which type of card you have, check the manufacturer’s specifications to see
how many bytes are used in the control frame for Byte Write, it will be either 3 or 4.
Properties
Support of I2C™ cards requires one property to specify the frame size. The default value for this
property is to support the 3 byte cards. If you wish to work with the 4 byte cards, you should
change this property.
Name
I2C-3ByteCard
ID
(Hex)
AA
Type
Length
Boolean
1
Reset
Value
TRUE
Get/Set/
Save
Get/Set
Description
TRUE specifies a 3 byte
control frame, FALSE
specifies a 4 byte control
frame.
107
IntelliStripe 320 Command Reference
Power Up
The Power Up command is issued as with Microprocessor cards and can get same Result Codes.
When the Result Code indicates an Error or Warning, the Primary Status of the CondRpt
Property will never be 0x03.
Note
When the Primary Status in the CondRpt Property is 0x82, a
Secondary Status of 0x05 indicates that the card is not responding.
This Secondary Status applies only to I2C™ card handling.
A 4 byte ATR is returned when the power up command is successful. Many I2C™ cards do not
deliver an ATR on power up, but some do. If the value FFFFFFFFH is returned, the card did not
deliver an ATR. The presence or absence of an ATR may not positively identify the card in the
reader. If the ATR is different from FFFFFFFFH it probably does identify the card, see
specifications for the various cards to determine which ATR identifies which card. If
FFFFFFFFH is returned, the card may be an I2C™ card that does not deliver an ATR. The only
way to be sure is to send a Read Binary to retrieve known data from a card you are familiar with.
APDU Exchange Command
The APDU Exchange Command is used to control logical operations of the card between Power
Up and Power Down. The APDU is issued as with Microprocessor cards. The Result Codes are
the same as for Microprocessor cards. When the Result Code indicates an Error or Warning, the
Primary Status of the CondRpt Property will never be 0x03.
Two SW1/SW2 Status Codes may apply to any APDU:
SW1/SW2
6E00
6D00
9000
108
Meaning
CLA Not Supported
INS Not Supported
Normal completion, no errors
Appendix B. Memory Card Support
Read Binary APDU
Command APDU:
CLA
00
INS
B0
P1
Adr1
P2
Adr0
Le
Len
CLA is always 00
INS is always B0
P1 is upper byte of address to read.
P2 is lower byte of address to read.
Le is the number of bytes to read
Note that if the address given is outside of the bounds of the card in the reader you may
not get the expected results. If the sum of Le and the address is outside of the bounds of
the card, some of the data will probably represent a wrap-around to the beginning of card
memory.
Response APDU:
Data Field (from card)
SW1
SW2
Update Binary APDU
Command APDU:
CLA
00
INS
D6
P1
Adr1
P2
Adr0
Lc
Len
Data Field
Data to be written
CLA is always 00
INS is always D6
P1 is upper byte of address to write.
P2 is lower byte of address to write.
Lc is the number of bytes to write.
Data Field contains the bytes to write.
Note that if the address given is outside of the bounds of the card in the reader you may
not get the expected results. If the sum of Le and the address is outside of the bounds of
the card, some of the data will probably represent a wrap-around to the beginning of card
memory.
Response APDU:
SW1
SW2
Possible SW1/SW2 combinations:
SW1/SW2
6581
Meaning
Memory Failure, some bytes were not written
109
IntelliStripe 320 Command Reference
GEMPLUS GAM326 MEMORY CARD CONTROL
This section defines the commands needed to control the Gemplus GAM326 card type. There
may be other cards that are similar to the GAM326, and this device may support some of them.
It is assumed that the user has access to the manufacturer’s specifications for this type of card.
This section will address the memory available on the card as a file. For compatibility of
terminology with ISO 7816-4, we will assume that the memory is in an “implicitly selected” file
after we power up the card.
Properties
With the addition of the GAM326 support come properties the user may need access to.
Name
GAM326BitOrder
ID
(Hex)
B2
Type
Length
Boolean
1
Reset
Value
1
Get/Set/
Save
Get/Set
GAM326 value
of M
B3
Dword
1
160
Get/Set
GAM326
Counter Lowest
Address
GAM326
Counter Highest
Address
B4
Dword
1
8
Get/Set
B5
Dword
1
11
Get/Set
Description
A value of 0 causes the least
significant bit of each byte to
be sent or received first. A
value of 1 causes the most
significant bit of each byte to
be sent or received first.
This bit order applies to all
operations, including the
ATR returned from the
Power Up command.
This is the value of M to be
used in the Internal
Authenticate command, see
the card manufacturer’s
documentation for more
information. A value of 0 is
interpreted as 256.
This is the lowest address
that will be accepted in an
Erase Counter command.
This is the highest address
that will be accepted in an
Erase Counter command.
Data is sent and received as bytes. When the GAM326-BitOrder property is set to 0, the least
significant bit of each byte represents the lowest addressed bit on the card. If we write the bytes
33 22 11 to a card at address 72, the card will end up with the following bit pattern on the card:
110
Appendix B. Memory Card Support
Address
72……….80……….88…….95
11001100 01000100 10001000
When the GAM326-BitOrder property is set to 1, the most significant bit of each byte represents
the lowest addressed bit on the card. If we write the bytes 33 22 11 to a card at address 72, the
card will end up with the following bit pattern on the card:
Address
72……….80……….88…….95
00110011 00100010 00010001
Power Up
The Power Up command is issued as with Microprocessor cards and can get same Result Codes.
When the Result Code indicates an Error or Warning, the Primary Status of the CondRpt
Property will never be 0x03.
APDU Exchange Command
The APDU Exchange Command is used to control logical operations of the card between Power
Up and Power Down. The APDU is issued as with Microprocessor cards. The Result Codes are
the same as for Microprocessor cards. When the Result Code indicates an Error or Warning, the
Primary Status of the CondRpt Property will never be 0x03.
Two SW1/SW2 Status Codes may apply to any APDU:
SW1/SW2
6E00
6D00
Meaning
CLA Not Supported
INS Not Supported
111
IntelliStripe 320 Command Reference
Read Binary APDU
Command APDU:
CLA
00
INS
B0
P1
xx
P2
Adr
Le
Len
CLA is always 00
INS is always B0
P1 is ignored
P2 is the address where the read will start
Le is the number of bytes to read, 0 will read 256 bytes
The entire card can be read with one command. Bits that are “unreadable” will be
returned with the electrical value the card imposes on the I/O line at the time of read
sampling.
Response APDU:
Data Field (from card)
SW1
SW2
Possible SW1/SW2 combinations:
SW1/SW2
9000
Meaning
Normal completion, no errors
Write Binary APDU
The Write Binary command performs a logical AND of the bits already present in the card with
the bits given in the command APDU. For each bit that is 0 in the command APDU, if the
corresponding bit on the card is 1, it will be written to 0. Bits in the command APDU that are set
to 1 will be ignored, the state of the corresponding bit on the card will not be checked. Even
though each specified bit will be written, the result of the operation is NOT verified and no errors
are reported. The user may desire to Read the data to assure all intended bits have been written.
If there is a need to set a bit on the card to the value of 1, it must be done using the Erase Counter
command. These commands may cause erasure of more than one bit on the card, so be careful!
Command APDU:
CLA
00
INS
D0
P1
xx
CLA is always 00
INS is always D0
P1 is ignored
112
P2
Adr
Lc
Len
Data Field
Data to be written
Appendix B. Memory Card Support
P2 is the address where the write will start
Lc is the number of bytes to write.
Data Field contains the bytes to write.
Response APDU:
SW1
SW2
Possible SW1/SW2 combinations:
SW1/SW2
9000
Meaning
Normal completion, no errors
Erase Counter APDU
The Erase Counter command is used to erase counter bytes of the card. For this type of card
erased means that each bit = 1.
If the specified address is not in the range specified by the Counter Lowest Address and the
Counter Highest Address properties, the command will not be processed.
This command writes one bit of the addressed byte from 1 to 0 (if there are any 1 bits available)
under control of the Erasure Mask. If a bit was actually written to 0 in the first step, the byte at
the next address on the card is erased.
The Erasure Mask is formulated to indicate one or more bits that can be written to zero to initiate
the erasure. Erasure will only be initiated if at least one zero bit in the Erasure Mask corresponds
to a one bit on the card. The first correspondence will initiate erasure and subsequent
correspondences will be written to zero until the entire Erasure Mask is processed.
The GAM326-BitOrder property dictates the order of bit processing.
If there is a need to erase multiple bytes of the Counter, multiple Erase Counter commands must
be sent in the proper order. Determining the order is the user’s responsibility.
Command APDU:
CLA
D0
INS
0A
P1
xx
P2
Adr
Lc
01
Data
Erasure Mask
CLA is always D0
INS is always 0A
P1 is ignored
P2 is the address where the erase will occur
Lc must be 01
Data contains one byte giving the Erasure Mask.
113
IntelliStripe 320 Command Reference
Response APDU:
SW1
SW2
Possible SW1/SW2 combinations:
SW1/SW2
9000
6300
6700
6B00
Meaning
Normal completion, no errors
No bits to write, couldn’t erase
Lc gives incorrect length
P2 is incorrect
Internal Authenticate APDU
The Internal Authenticate is used to authenticate the card to the hosting terminal.
If the Internal Authenticate is performed with CBC enabled, the CBC mode remains in effect
until the card is powered down.
The specified address is a bit address. It specifies the address of the bit where a Dummy Write is
performed to start the Authentication operation. For more details, see the Gemplus
documentation.
In the Authentication operation a value called M is used. This value is specified by agreement
with Gemplus. The user has control over this value via the GAM326 value of M property
Command APDU:
CLA
D0
INS
88
P1
CBC / Address
P2
Address
Lc
06
Data
xx xx xx xx xx xx
Le
02
CLA is always D0
INS is always 88
P1 gives an indication of Cipher Block Chaining and the upper bits of the bit address to
be used to start the Authentication operation:
Bits Usage
0
CBC indication, 0 = no CBC, 1 = CBC
1-7
Address bits
P2 is the low order byte of the bit address used to start the Authentication operation.
Lc gives the length of the data to be used as the Random Number in the Authentication
operation, its value must always be 6.
Data is the Random Number to be used in the Authentication operation.
Le gives the length of the expected reply, which is always 2.
114
Appendix B. Memory Card Support
Response APDU:
MAC (2 bytes)
SW1 = 90
SW2 = 00
OR
SW1 = 67
SW2 = 00
If SW1/SW2 indicates normal completion (9000), the MAC field is 2 bytes long and is the result
of the Authentication. If SW1/SW2 indicates a wrong length, the MAC is not included in the
message
Possible SW1/SW2 combinations:
SW1/SW2
9000
6700
Meaning
Normal completion, no errors
Wrong length, Lc does not equal 6 or Le does not equal 2
115
IntelliStripe 320 Command Reference
116
APPENDIX C. MIFARE COMMANDS
Tag: DF 78
Len: VAR
Scope: DO
Object description: This object is used in order to send MIFARE command to the PICC. The
Data consists of a 1-byte command Number (Op Code) and optional data bytes. Response will be
in the same format including the Op Code before optional data.
Please note: When referring to “Mode” in the Table below, please use the scheme represented
here:
Mode (binary) 0 0 0 0 0 AB KS1 KS2
AB – 0 authentication with key A, AB – 1 authentication with key B
KS1, KS2 key set: 00-set 0, 01-set1, 10-set2
Table 11 Mifare OPCODEs
OpCode
A5
Name: Read
Description: Read block command
Data structure: Op Code (one byte), Block # (one byte)
Data Response structure: Op Code (one byte), 16 bytes of Read block Data
A6
Name: Write
Description: Write block (16 bytes) command
Data structure: Op Code (one byte), Block # (one byte), 16 bytes of Write to
block Data
Data Response structure: Op Code (one byte)
A7
Name: Write Ultra Light
Description: Write 4 bytes into selected Ultra Light block
Data structure: Op Code (one byte), Block # (one byte), 4 bytes of Write to
block Data
Data Response structure: Op Code (one byte)
A9
Name: Load Key
Description: Replace and load new key
Data structure: Op Code (one byte), Mode (one byte), Sector # (one byte),
Transport key (6 bytes), New key (6 bytes)
Data Response structure: Op Code (one byte)
AA
Name: Increment
Description: Increment value of block in RAM
Data structure: Op Code (one byte), Block # (one byte), Value (4 bytes)
Data Response structure: Op Code (one byte)
117
IntelliStripe 320 Command Reference
OpCode
AB
Name: Decrement
Description: Decrement value of block in RAM
Data structure: Op Code (one byte), Block # (one byte), Value (4 bytes)
Data Response structure: Op Code (one byte)
AC
Name: Transfer
Description: Move RAM value to EE
Data structure: Op Code (one byte), Block # (one byte)
Data Response structure: Op Code (one byte)
AD
Name: HALTA
Description: ISO 14443-3 Type A HALTA command in short frame.
Data structure: Op Code (one byte)
Data Response structure: Op Code (one byte)
AE
Name: Restore
Description: Restore recent value of block
Data structure: Op Code (one byte), Block # (one byte)
Data Response structure: Op Code (one byte)
AF
Name: Decrement & Transfer
Description: Implement the Decrement & Transfer functions together
Data structure: Op Code (one byte), Block # (one byte), Value (4 bytes)
B0
C0
118
Data Response structure: Op Code (one byte)
Name: Authentication2
Description: Authentication versus a PICC
Data structure: Op Code (one byte), Mode (one byte), Key # (one byte), Sector
# (one byte)
Data Response structure: Op Code (one byte)
Name: Read Macro
Description: Enables Read operation of Multiple Blocks of one Sector
Data structure:
Op Code
(one byte),
Address
(one byte)
Bits 0-3 for Sector Number,
Bits 4-7 for Block Mask (Bit 4 for Block 0 up to Bit 7 for Block
3)
Auth2KeySel (one byte)
0 – Use Key A
1 – Use Key B
Data Response structure:
Op Code
(one byte)
Data Sequential Data of all requested Blocks, from Lowest to Highest - Each
Block
16 bytes length.
Appendix C. Mifare Command
OpCode
C1
Name: Write Macro
Description: Enables Write operation of Multiple Blocks of one Sector
Data structure:
Op Code
(one byte),
Address
(one byte)
Bits 0-3 for Sector Number,
Bits 4-7 for Block Mask (Bit 4 for Block 0 up to Bit 7 for Block
3)
Auth2KeySel (one byte)
0 – Use Key A
1 – Use Key B
Data (16,32,48,64 bytes) Sequential Data to Write of all requested Blocks,
from Lowest to
Highest - Each Block must be 16 bytes length.
Data Response structure:
Op Code
(one byte) Approve completion of Write operation
Other
RFU
EXAMPLE:
To use a Mifare 1K Classic Card
(1) Load the key for the sector that will be used into the OTI module, this needs to be performed
only once, it gets saved in the contactless reader’s flash memory.
(2) Send a POLL command in the ACTIVATE ONCE only mode. Note that this will disable
automatic reading of cards that have built-in applications (PayPass, VisaWave, ExpressPay,
Discover)
(3) After a card is detected, the UID will be sent back by the reader.
(4) Send the AUTHENTICATE A command for the sector you want to read.
(5) Read BLOCK.
Follow the same steps above for writing a block.
Examples:
Sending Load Transport key “BD DE 6F 37 83 83” and New key “FF FF FF FF FF FF” for
Sector 0:
00 0E 81 00 3E DF 78 0F A9 00 00 BD DE 6F 37 83 83 FF FF FF FF FF FF
119
IntelliStripe 320 Command Reference
Send POLL – Activate Once:
00 0E 81 00 3E DF 7E 01 03
After a Mifare Card is detected, the reader will respond with the Mifare card’s Unique ID in the
DATA field:
3E FF 01 0D FC 0B DF 16 01 4D DF 0D 04 XX XX XX XX
UID Tag = DF 0D
Len = 04
Send the Authenticate A command for sector 0:
00 0E 81 00 3E DF 78 04 B0 00 00 00
Send the Read Block 0 command:
00 0E 81 00 3E DF 78 02 A5 00
Send the Read Block 2 command:
00 0E 81 00 3E DF 78 02 A5 02
Send the Write Block 2 command:
00 0E 81 00 3E DF 78 12 A6 02 00 00 00 00 00 00 00 00 11 11 11 11 11 11 11 11
120
INDEX
A
D
APDU Exchange Command, GAM326,
Memory Card Control ......................... 111
APDU Exchange Command, I2C, Memory
Card Control ........................................ 108
APDU Exchange Command, Memory Card
Control
SLE 4442/4432 .................................... 94
APDU Exchange Command, SLE 4404,
Memory Card Control ......................... 103
APDU Exchange Command, SLE
4428/4418, Memory Card Control ........ 97
APDU Exchange Command, Smart Card
Application ............................................ 49
Application ID, Application Messages ....... 2
Application Messages ................................. 1
ATR Map Structure, Smart Card
Application ............................................ 39
Auto Consume Property, Transport
Application ............................................ 60
Auto Transporting, Transport Application 56
Data Field.................................................... 4
Decode JIS, Magnetic Stripe Application. 16
Device Application ..................................... 9
B
Buzzer Application ................................... 67
C
Card Types, Smart Card Application........ 29
Clear Data Command, Magnetic Stripe
Application ............................................ 17
Command ID, Application Messages ......... 2
CondRpt Property, Smart Card Application
............................................................... 27
Consume Card Command, Transport
Application ............................................ 64
Contactless Auto Mode............................. 87
Contactless Automatic RF Control Property
............................................................... 86
Contactless Smart Card Application......... 85
Custom Applications, Application Messages
................................................................. 2
Custom Commands, Application Messages 3
E
Eject Card Command, Transport
Application ............................................ 65
Eject Middle Sensor to Motor Off Delay
Property, Transport Application............ 62
Erase Binary APDU, SLE 4404, Memory
Card Control ........................................ 105
Erase Counter APDU, GAM326, Memory
Card Control ........................................ 113
Error/Warning Condition Templates, Smart
Card Application ................................... 27
Example Host Application........................ 91
F
Fixed Baud Rate Property, Host
Communications Application................ 81
Front Card Present, Transport Application56
G
GAM326, Memory card control ............. 110
Generic Commands..................................... 5
Generic Commands, Application Messages 3
Generic Result Codes.................................. 4
Get MagnePrint Data Command............... 22
Get Property Command, Generic
Commands............................................... 5
Get Track 123 Decode Data Command,
Magnetic Stripe Application ................. 18
Get Track Decode Data Command,
Magnetic Stripe Application ................. 20
Get/Set/Save Property Commands Device
Application .............................................. 9
Get/Set/Save Property Commands, Buzzer
Application ............................................ 67
Get/Set/Save Property Commands,
Contactless Application......................... 85
121
IntelliStripe 320 Command Reference
Get/Set/Save Property Commands,Transport
Application ............................................ 55
Get/Set/Save Property Commands, Host
Communications Application................ 73
Get/Set/Save Property Commands, LED
Application ............................................ 53
Get/Set/Save Property Commands, Magnetic
Stripe Application ................................. 13
Get/Set/Save Property Commands, Smart
Card Application ................................... 25
H
Host Communications Application........... 73
I
I2C Memory card control ......................... 107
Indicators Property, Transport Application
............................................................... 55
Internal Authenticate APDU, GAM326,
Memory Card Control ......................... 114
J
JIS ................................................. 16, 19, 21
L
LED Application....................................... 53
LED State Property, LED Application ..... 53
M
Magnetic Stripe Application ..................... 13
MCP auto baud enable Property, Host
Communications Application................ 80
MCP EDC check enable Property,
Host Communications Application....... 79
MCP Error recovery enable Property, Host
Communications Application................ 77
Memory Cards .......................................... 93
Message Format, Application Messages..... 1
Message Header, Application Messages..... 1
Message Type, Message Application ......... 1
Middle Card Present, Transport Application
............................................................... 56
Mifare Commands .................................. 117
122
Model Number Property, Device
Application ............................................ 10
MSR Direction Property, Transport
Application ............................................ 61
N
Notification Message Type, Application
Messages ................................................. 1
Notifications, Application Messages .......... 2
Notifications, Smart Card Application ..... 25
Notify Contactless MagStripe Property .... 85
Notify Indicator Change 0 To 1 Property,
Transport Application ........................... 58
Notify Indicator Change 1 To 0 Property,
Transport Application ........................... 59
Notify Read State Property, Magnetic Stripe
Application ............................................ 14
Notify Read Track Property, Magnetic
Stripe Application ................................. 15
O
Overview, Application Messages ............... 1
P
Playback Tone Sequence Command, Buzzer
Application ............................................ 72
Power Down Command, Smart Card
Application ............................................ 44
Power Fail Detect Property, Transport
Application ............................................ 63
Power Up Command, Smart Card
Application ............................................ 41
Power Up, GAM326, Memory Card Control
............................................................. 111
Power Up, I2C, Memory Card Control ... 108
Power Up, Memory Card Control
SLE 4428/4418, ................................... 97
SLE 4442/4432 ..................................... 94
Power Up, SLE 4404, Memory Card Control103
Properties, GAM326, Memory Card Control
............................................................. 110
Properties, I2C, Memory Card Control ... 107
Properties, Memory Card Control
SLE 4442/4432 .................................... 93
Index
Properties, Memory Card Control
SLE 4428/4418, ................................... 97
Properties, SLE 4404, Memory Card
Control................................................. 102
Properties, Smart Card Application .......... 31
Property ID, Generic Commands........ 5, 6, 7
Property Type definition, Generic
Commands........................................... 5, 7
Property Type, Generic Commands.... 5, 6, 7
Property Value, Generic Commands ...... 6, 7
Protocol Property, Host Communications
Application ............................................ 83
R
Read Binary APDU, GAM326, Memory
Card Control ........................................ 112
Read Binary APDU, I2C, Memory Card
Control................................................. 109
Read Binary APDU, Memory Card Control
SLE 4442/4432 ..................................... 94
Read Binary APDU, SLE 4404, Memory
Card Control ........................................ 104
Read Binary APDU, SLE 4428/4418,
Memory Card Control ........................... 98
Read Protection Status APDU, SLE
4428/4418, Memory Card Control ........ 98
Rear Card Present, Transport Application 56
Request Message Type, Application
Messages ................................................. 1
Request/Response/Notification Model ..... 26
Requests, Application Messages................. 1
Reset Detected Property, Host
Communications Application................ 82
Response Codes, Smart Card Application 25
Response Message Type, Application
Messages ................................................. 1
Result Code, Application Messages ........... 3
RF OFF Command.................................... 89
RF ON Command ..................................... 89
RS232 plug and play support enable
Property, Host Communications
Application ............................................ 75
S
Save Property Command, Generic
Commands............................................... 8
Select Connector Command, Smart Card
Application ............................................ 51
Sending OTI Module Transparent
Commands............................................. 90
Set Property Command, Generic Commands
................................................................. 7
SLE 4404, Memory card control ............ 102
SLE 4428/4418 Memory Card Control..... 97
SLE 4442/4432 Memory Card Control..... 93
Smart Card Application ............................ 25
Software ID Property, Device Application11
Software Reset Command, Device
Application ............................................ 12
Special handling for C4 and RST, SLE
4404, Memory Card Control ............... 103
T
T=0 Error / Warning Condition Templates,
Smart Card Application......................... 44
T=1 Error / Warning Condition Templates,
Smart Card Application......................... 45
Tone Sequence 1 Property, Buzzer
Application ............................................ 68
Tone Sequence 2 Property, Buzzer
Application ............................................ 69
Tone Sequence 3 Property, Buzzer
Application ............................................ 70
Tone Sequence 4 Property, Buzzer
Application ............................................ 71
TPDU, Card To IFD Command, Smart Card
Application ............................................ 47
TPDU, IFD To Card Command, Smart Card
Application ............................................ 48
Transport Application ............................... 55
Transport Cooling, Transport Application 56
U
Update Binary APDU, I2C, Memory Card
Control................................................. 109
Update Binary APDU, Memory Card
Control
123
IntelliStripe 320 Command Reference
SLE 4442/4432 ..................................... 95
Update Binary APDU, SLE 4428/4418,
Memory Card Control ........................... 99
Update Binary With Protection APDU, SLE
4428/4418, Memory Card Control ...... 100
USB product Property, Host
Communications Application................ 76
USB Serial Number Property, Host
Communications Application................ 74
Verify APDU (Programmable Security
Code, SLE 4442/4432, Memory card
control.................................................... 96
Verify APDU, Memory card control
SLE 4442/4432, (Programmable Security
Code)................................................. 96
Verify/Erase Application Zone APDU, SLE
4404, Memory card control ................. 106
V
Warm Reset Command ............................. 46
Write Binary APDU, GAM326, Memory
Card Control ........................................ 112
Write Binary APDU, SLE 4404, Memory
Card Control ........................................ 104
Verify APDU (Programmable Security
Code, SLE 4428/4418, Memory Card
Control................................................. 101
124
W
Open as PDF
Similar pages