MSR206-7HL Programmer`s Manual - the section for Delfi

MSR206-7HL Programmer`s Manual - the section for Delfi
MSR206-7HL
Magnetic Stripe Card Reader/Writer
(High & Low Coercivity)
Programmer’s Manual
Document #: PM036
Revision F
Jul. 27, 2005
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
NOTICE
The issuer of this manual has made every effort to provide accurate information. The issuer will not be held liable
for any technical and editorial omission or errors made herein; nor for incidental consequential damages resulting
from the furnishing, performance or use of this material. This document contains proprietary information that is
protected by copyright. All rights are reserved. No part of this document may be photocopied, reproduced, or
translated without the prior written consent of the issuer. The information provided in this manual is subject to
change without notice.
AGENCY APPROVAL
Specification for FCC Class B
Specification for CE Class B
Product Certificate by Taiwan BSMI (Bureau of Standards, Metrology and Inspection)
NOTE: This equipment has been tested and found to comply with the limits for a Class B digital device, pursuant
to part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful
interference in a residential installation.
This equipment generates, uses and can radiate radio frequency energy and, if not installed and used in
accordance with the instructions, may cause harmful interference to radio communications. However, there is no
guarantee that interference will not occur in a particular installation. If this equipment does cause harmful
interference to radio or television reception, which can be determined by turning the equipment off and on, the
user is encouraged to try to correct the interference by one or more of the following measures:
—Reorient or relocate the receiving antenna.
—Increase the separation between the equipment and receiver.
—Connect the equipment into an outlet on a circuit different from that to which the receiver
is connected.
—Consult the dealer or an experienced radio/ TV technician for help.
You are cautioned that any change or modifications to the equipment not expressly approve by the party
responsible for compliance could void your authority to operate such equipment.
警告使用者:
這是甲類的資訊產品,在居住的環境中使用時,可能會造成射頻干擾,在這種情況下,使用者會被要求採取某
些適當的對策.
I
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
WARRANTY
This product is served under one-year warranty to the original purchaser. Within the warranty period,
merchandise found to be defective would be repaired or replaced. This warranty applies to the products only
under the normal use of the original purchaser, and in no circumstances covers incidental or consequential
damages through consumers’ misuse or modification of the products.
PREFACE
This manual provides detailed information relating to the overall operational, electrical, mechanical,
environmental and functional aspects of the MSR206-7HL. This document should be read and understood prior to
initial operation of the product. For ease of installation and programming use, we have addressed everything from
its attractive features to its various configurations. When designing the MSR206-7HL, we selected what we feel
are the most useful features and functions. If in some cases you find that your specific needs differ from our
existing products, we welcome your comments and suggestions. Custom-designed models are also available.
If further questions do arise, please call for technical support, our FAE will assist you in any way we can.
II
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
Table of Contents
Section 1:
Introduction................................................................................................................ 1-1
1.1
Accessories of MSR206-7HL................................................................................................................ 1-1
1.2
Features ................................................................................................................................................. 1-1
Section 2:
General Description ................................................................................................... 2-1
Section 3:
Technical Specifications ............................................................................................ 3-1
Section 4:
Setup............................................................................................................................ 4-1
Section 5:
Communications......................................................................................................... 5-1
5.1
Transmission Rates............................................................................................................................... 5-1
5.2
Transmission Format ........................................................................................................................... 5-1
5.3
USI Protocols......................................................................................................................................... 5-1
5.4
Protocol Selection ................................................................................................................................. 5-2
5.5
Flow Control ......................................................................................................................................... 5-2
Section 6:
Commands and Responses ........................................................................................ 6-1
6.1
Reader Commands ............................................................................................................................... 6-1
6.2
Magstripe Card Read Commands....................................................................................................... 6-5
6.3
Magstripe Card Write Commands ................................................................................................... 6-10
6.4
Reader Responses ............................................................................................................................... 6-17
Section 7:
Detailed Card Operations ......................................................................................... 7-1
7.1
Reading Cards....................................................................................................................................... 7-1
7.2
Writing Cards ....................................................................................................................................... 7-4
7.3
Working with different media coercivities ......................................................................................... 7-8
7.4
Working with non-ISO length media.................................................................................................. 7-9
7.5
Encoding a Series of Cards .................................................................................................................. 7-9
7.6
Considerations for encoding non-ISO formats .................................................................................. 7-9
7.7
Working with California Driver’s License/Identification Cards...................................................... 7-9
7.8
Data Security Considerations ............................................................................................................ 7-10
7.9
Examples ............................................................................................................................................. 7-10
Section 8:
Configuration Commands......................................................................................... 8-1
III
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
8.1
Appendix A: Card Formats ................................................................................................................. 8-3
8.2
Appendix B: Magstripe Fundamentals............................................................................................... 8-6
IV
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
Section 1: Introduction
Thank you for purchasing the MSR206-7HL Manual Swipe Magnetic Card Reader/Writer. It is ideal for access
control, time keeping, banking, ID recognition & credit verification and related applications. In fact, wherever a
magnetic stripe ID or transaction card is used, one can find a related use for the versatile, user-friendly
MSR206-7HL reader/writer.
The MSR206-7HL is designed to offer a reading and writing solution of high and/or low coercivity cards that will
attractively complement an existing system.
1.1 Accessories of MSR206-7HL
Make sure all the following accessories are contained in your package:
Switch power Supply, AC 110~240V in / DC 24V, 2.2A out.
Power cord.
Signal cable (DB9 to RJ45, 1.5m).
Utility disk (A/P S/W).
Blank Hi-Co test card.(or and Low-Co test card)
Programmer’s manual.
1.2 Features
Can encode cards with media coercivities from 250 through 4000+ Oersted.
Can read and write up to three tracks of Magstripe data simultaneously. (ISO, AAMVA and Custom)
Read after write verification for single pass encoding.
Any ISO standard track format can be read to, or written from, any track location (1, 2 or 3).
All tracks have independent, selectable write densities (75 / 210 bpi) that can be controlled via host
software.
Three LED that is host controlled.
RS232 compatible serial interface.
Firmware speed governor to help prevent encoding cards with higher than allowed jitter.
Rugged, die cast steel enclosure.
1-1
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
Section 2: General Description
The MSR206-7HL series is designed to read and/or write high or low coercivity magnetic cards. It can encode
and verify up to 3 tracks of data simultaneously. It communicates with a host computer or other terminal using a
standard RS-232 interface.
2-1
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
Section 3: Technical Specifications
ITEM
SPECIFICATION
Standard
ISO7811
Electrical
Consumption
Current/operating Typical 350mA Max
600mA plus for each writing track
Communication
Standard RS232 signal voltage levels. Default, 9600 Baud, Odd Parity, 7 bits
Power supply
External switching Power 24V/2.2A regulated
Interconnection
Cable
RJ45->DB9, 5 feet
1.shield
2.TXD / MSR206-7HL data transmit
Pin Assignment DB-9
3.RXD / MSR206-7HL data receive
4,6,7,8,9, no connection
5. circuit ground
Mechanical
Body
ABS 94V-0
Swipe
Manual, single direction
Outline
210Lx68Wx60H mm
Weight
1.5Kg approx.
Environment
Operation
Storage
-10ºC to 60ºC
10 to 85% humidity, non condensing
-30ºC to 70ºC
10 to 90% humidity, non condensing
Performance
Read Circuit
Bit per Char
Media Speed
Track 1&3 210bpi
Track 2,75 or 210 bpi
5-7 bit per char.
Read, 5-50 ips (read speed 5-40 ips for track 2 at 210bpi)
Write, 5-30
Read 300-4000 Oe Mag. Card
Media Coercivity
MSR206-7HL write 2750-4000 Oe Mag. Card
MSR206-7HL write 300-4000 Oe Mag. Card
Media Thickness
0.76-1.2mm
3-1
MSR206-7HL Programmer’s Manual
Jitter Card
UDN PM036 Rev. F
Read bit to bit interval <+/-15% card
Write bit to bit interval <+/-10%, Sub interval<+/-12% at 30ips
Low amplitude Card
Read 60% for both 75& 210bpi
Read < 0.5%
Error Rate
Write < 0.8%
Media Swipe
Head life 1,000,000 passes for both read & write head
Configuration
Model
Read/Write Track
Hi-C
Lo-C
Available Model
MSR206-7HL
1,2&3
R/W
R/W
3-2
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
Section 4: Setup
(1) Power off your system (PC).
(2) Connect PC and MSR206-7HL as below.
(3) Connect DB9 of
signal cable to a free serial port then connect RJ45 at the other end of the cable to
MSR206-7HL.
(4) Connect outer plug of
(5) Connect
Power-out cable to the power inlet of MSR206-7HL.
Power-in cable to Power supply and AC receptacle (110V~240V).
(6) Power on your system (PC).
4-1
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
Section 5: Communications
The communications interface transmits and receives asynchronous serial data, using an industry standard UART,
at voltage levels compatible with the EIA RS-232D specification.
5.1 Transmission Rates
The following baud rates are supported:
1200, 2400, 4800, 9600, 19.2K baud
Default = 9600
5.2 Transmission Format
Each character is transmitted using a ten-bit character frame in the following order:
1 Start bit
7 Data bits, lsb first
1 Parity bit, selectable: odd, even, zero or one (none when Data bits = 8)
1 Stop bit
5.3 USI Protocols
The USI protocol is used for information exchange. The user may select from 2 different variations for
communicating with the unit.
USI0 (Protocol 0)
In USI0, all characters are transmitted and received using exactly the command characters listed in the section on
Commands and Responses found later in this manual. There are no Headers, Trailers or Block Check Characters.
Protocol 0 presumes no transmission errors. This is the default protocol after a reader reset, although the reader
may be configured to respond in USI0 or USI1 for the power-on message. This protocol also enforces a five (5)
second maximum timeout between characters.
USI1 (Protocol 1)
In USI1, all messages are preceded by the ASCII character STX, and followed by the ASCII character ETX and
one Block Check Character (BCC). The BCC is an XOR of the data bits of the entire message including the STX
and ETX characters. (It does not include the BCC itself.)The parity of the BCC is the selected parity, if any. This
protocol also enforces a 65ms maximum timeout between characters.
If the Interface detects an error in an incoming transmission, it will respond with a "Retransmit". If the host
detects transmission error, it may, at its option request a retransmission.
5-1
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
5.4 Protocol Selection
After a power-on or reset, the unit is initialized to use USI0. After the unit receives a valid USI1 message from
the host, it will continue to operate in USI1 until it experiences a power reset or receives a WARM RESET
command.
5.5 Flow Control
For both protocols, the host may at any time stop/start the unit transmission by using the XOFF/XON commands.
After a power-on or reset, the unit is initialized to XON (communications enabled) mode.
5-2
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
Section 6: Commands and Responses
The following sections describe the commands that the host can send to the reader, this is followed by a section
describing the reader responses to the host. There are three groups of commands that can be sent to the reader.
The first is used to manipulate the reader (LED’s, status, etc.). The second is used to read and process magnetic
stripe data. The third group is used to write magnetic stripe data. Tables summarize the commands of each group.
The unit executes commands received from the host one at a time and cannot execute a new command until the
previous command has been completed. Once the unit receives a command, it performs the requested action and
reports the results back to the host.
Unless otherwise specified, the examples shown assume that the unit uses the default settings.
6.1 Reader Commands
USI Reader Command Summary
ASCII
HEX Name
Use
Length*
<XON>
11
Resume transmission
Resume transmission to host
1
<XOFF>
13
Pause Transmission
Pause Transmission to host
1
%
25
Reproduce
Reproduce the last Command again
1
9
39
Version Report
Transmits Version String
1
<ESC>
1B
Abort
Abort command
1
<DEL>
7F
Warm Reset
Simulates power cycle
1
#
23
Configuration Request
Sends Reader Configuration Byte
1
K
4B
Yellow LED ON
Turns on Yellow LED
1
k
6B
Yellow LED OFF
Turns on Yellow LED
1
L
4C
Green LED ON
Turns on Green LED
1
l
6C
Green LED OFF
Turns off Green LED
1
M
4D
Red LED ON
Turns on Red LED
1
m
6D
Red LED OFF
Turns off Red LED
1
(
28
Green LED Flash
Start flashing Green LED
1
|
7C
Yellow LED Flash
Start flashing Yellow LED
1
)
29
Red LED Flash
Start flashing Red LED
1
*Length does not include protocol overhead characters, if any.
6-1
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
Reader Command Description
ASCII Char
Definition of Instruction
<XON> (11H)
Resume Reader Transmission
ACTION: Resume transmission of data by the unit.
<XOFF> (13H) Pause Reader Transmission
ACTION: Stops transmission of data by the unit.
% (25H)
Reproduce
ACTION: Reproduce the last Command by the reader.
Use this command when you detect a communication error in a message received from the reader. The reader will
re-produce the last command it transmitted before this request. The host may request reproduce as many times as
needed.
9 (39H)
Version Report
ACTION: Transmit version information.
Send this when you want to know the version of the Model MSR206-7HL firmware currently loaded. The
response is an ASCII string giving the firmware date, reader type, the firmware version number and check sum.
Example: “ 206AM1XX dd-mm-yy”.
<ESC> (1BH)
Abort
ACTION: Abort current command and transmit an Acknowledge response (“^” 5EH) if issued:
After a single character “Load Encode Data” command (A, B, C) has been responded to
by the unit.
After the first character of a double character “Read” or “Load Encode Data” command (q,
u, a, E, …) has been issued to the unit.
After the first or second character of a triple character “Read Custom” or “Load Custom
Encode Data” command (E_, U_, …) has been issued to the unit.
After a double or triple character “Load Encode Data” command (a3, E_, …) has been
responded to by the unit.
After the download of encode data for a particular track has been responded to by the unit.
(In this case only the “Load Encode Data” command associated with the last download of
data will be aborted.)
After the “Arm to Read” or “Encode data” commands have been responded to by the unit.
(The unit would be waiting for a card swipe to read or encode.)
6-2
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
Note: This command byte is not recognized as a command within data strings. It will be
processed as a data character instead.
DEL (7FH)
Warm Reset
ACTION: Abort all current actions and cause the device to execute all initialization functions.
The unit will respond exactly as it would for a “power up” cycle. It does not send the typical
acknowledge response (“^” 5EH). See section Reader Responses for details.
Note: This command byte is not recognized as a command within data strings.
This is the command version of power cycling the reader.
# (23H)
Configuration Request
ACTION: Transmit a byte representing the configuration of the unit as follows:
Configuration Byte
Bit Position*
Bit = 0
Bit = 1
0
Track 1 Read not present
Track 1 Read present
1
Track 2 Read not present
Track 2 Read present
2
Track 3 Read not present
Track 3 Read present
3
not used – should be 0
not used
4
Track 3 Write not present
Track 3 Write present
5
Track 2 Write not present
Track 2 Write present
6
Track 1 Write not present
Track 1 Write present
7
parity bit**
parity bit**
* bit 0 = lsb, bit 7 = msb
** is = 0 for units configured for 8 data bit transmission
Obtain details of the current unit configuration
EXAMPLE: The following byte (in hex) was returned: 63
It indicates a unit capable of reading magnetic data on tracks 1 and 2; and writing magnetic data
on to tracks 1 and 2.
6-3
MSR206-7HL Programmer’s Manual
& (26H)
UDN PM036 Rev. F
Card Edge Detect
ACTION: The unit will perform the following sequence:
Transmit command acknowledge (“^” 5EH). If not a reader/writer, then a Can’t Execute
“~” reply will be sent from the unit.
Wait for card swipe.
Transmit Card Edge Acknowledge (“>” 3EH) after the unit detects the card edge at the
encode head.
After a “Card Edge Detect” command is received and acknowledged the only valid commands that will be
accepted for execution are the “Abort” <ESC> and “Warm Reset” <DEL> commands. All other commands will
result in an “Invalid Command” “!” response.
LED Commands. Use these commands to manipulate the reader’s LED.
ASCII Char
Definition of Instruction
K (4BH)
Yellow LED ON
k (6BH)
Yellow LED OFF
L (4CH)
Green LED ON
l (6CH)
Green LED OFF
M (4DH)
Red LED ON
m (6DH)
Red LED OFF
ACTION: The unit will perform the following operations:
Turn Yellow/green/red LED colors ON or OFF, as specified.
Transmits an acknowledge response “^” (5EH).
( (28H)
Green LED flash
) (29H)
Red LED flash
| (7CH)
Yell LED flash
ACTION: The unit will perform the following operations:
Begin flashing the specified LED color ON and OFF
Transmits an acknowledge response “^” (5EH).
The LED flashes approximately .25 seconds ON and .25 seconds OFF. The flashing continues until changed by
another LED command. A single, bicolor LED is used on the unit. If both red and green are turned ON, the LED
appears amber/yellow.
6-4
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
6.2 Magstripe Card Read Commands
Magstripe Card Read Command Summary
ASCII
HEX Name
Use
P
50
Arm to Read
P
70
Q
51
R
52
S
53
q
71
r
72
s
73
I
49
U
45
V
46
W
47
X
58
Transmit Passbook Data
x
78
Transmit Passbook Data
?
3F
Write Verify
Arm
to
Read
Clear buffers, wait for card read
with
prompts
speed Same as P but send “(“ at start of Magstripe data and “)”
at end. (Test Tool)
Length*
1
1
Transmit ISO standard data, Process and send track 1 data after card read using ISO
Track 1
track 1 decoding
Transmit ISO standard data, Process and send track 2 data after card read using ISO
Track 2
track 2 decoding
Transmit ISO standard data, Process and send track 3 data after card read using ISO
Track 3
track 3 decoding
Transmit ISO standard data, Process and send track 1 data after card read using
Track 1
selected ISO track decoding
Transmit ISO standard data, Process and send track 2 data after card read using
Track 2
selected ISO track decoding
Transmit ISO standard data, Process and send track 3 data after card read using
Track 3
selected ISO track decoding
Transmit “Error Data”
Sends data after a data error is returned 1
Transmit custom data, forward - Sends data with/without nulls parsed using specified bits
Track 1
per custom character 2,3
Transmit custom data, forward - Sends data with/without nulls parsed using specified bits
Track 2
per custom character 2,3
Transmit custom data, forward - Sends data with/without nulls parsed using specified bits
Track 3
per custom character 2,3
Process and send passbook data using0CH or 0FH as the
allowed End Sentinel
Process and send passbook data using the specified End
Sentinel
Perform a Read-After-Write check on data in the read
buffers 1
2
2
2
2 or 3
2 or 3
2 or 3
1
2
1
*Length does not include protocol overhead characters, if any.
6-5
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
Magstripe Card Read Command Description
ASCII Char
Definition of Instruction
P (50H, uppercase)
Arm to Read
ACTION: The unit will perform the following sequence:
Clear the read data buffers and Load buffers for all tracks.
Transmit command acknowledge (“^” 5EH).
Wait for card swipe.
Transmit read acknowledge (“^” 5EH) after card swipe.
After an “Arm to Read” command is received and acknowledged the only valid commands that will be accepted
for execution are: “Abort” <ESC>, “Warm Reset” <DEL>, and LED control commands. All other commands will
result in an “Invalid Command” “!” response.
p (70H, lowercase)
Arm to Read with speed prompts
ACTION: The unit will perform the following sequence:
Clear the read data buffers and Load buffers for all tracks.
Transmit command acknowledge (“^” 5EH).
Wait for card swipe.
If Magstripe media is detected a “(" (28H) byte is sent, when media detect goes inactive a
“)” (29H) byte is sent.
This is similar to the 'P' command, except an extra response '(' is reported when a media is detected through the
read head. A ')' response is reported when media detect goes inactive. Mainly used as a tool for determining
average swipe speed. Most applications should not use this command. They should use the upper case P
command instead.
Q (51H)
Transmit ISO standard data, track 1
R (52H)
Transmit ISO standard data, track 2
S (53H)
Transmit ISO standard data, track 3
ACTION: The unit will perform the following sequence:
Process data in the read buffer for the specified track according to ISO standard.
If error is detected in card data, transmit proper error response ('*' or '+'). (Refer to Reader
Responses)
Else, transmit data in ASCII
Note: Q, R, and S are special single byte commands for the corresponding cases of double
byte commands, e.g. Q has the same effect as q1.
6-6
MSR206-7HL Programmer’s Manual
q (71H)
Transmit track 1 data
r (72H)
Transmit track 2 data
s (73H)
Transmit track 3 data
UDN PM036 Rev. F
FORMAT: 2-byte command - Command character (q, r, s) is followed by an ASCII number (1,
2 or 3) representing the ISO track format for processing the Magstripe data.
ACTION: The unit will perform the following sequence:
Process data in the read buffer for the specified track and format.
If no card data errors, transmit data in ASCII.
If error is detected in card data, transmit proper error response ('*' or '+'). Refer to Reader
Responses.
These commands allow a track to be transmitted with a different track’s ISO format. For example to transmit
track 1's data using ISO track 2 format send “q2” (71H, 32H). The uppercase equivalents (Q, R, and S) are
equivalent to q1, r2, and s3.
Note: The s1 command will decode track 3 using AAMVA format if the unit is configured
for ISO and AAMVA decoding.
I (49H)
Transmit “Error Data”
ACTION: The unit will perform the following sequence:
If the previous read command resulted in an error (response was ’*’, e.g. no end sentinel,
parity or LRC error), transmit the data regardless of the error(s).
If there was no error, transmit ’+’.
The “I” command allows you to recover data even if the reader detects data errors. This command will not work
for a no start sentinel '+' response.
U (55H)
Transmit Custom Data, forward swipe, track 1
V (56H)
Transmit Custom Data, forward swipe, track 2
W (57H)
Transmit Custom Data, forward swipe, track 3
FORMAT: These commands may be either 2 or 3 bytes long.
2-byte command – Used to request custom data with no internal null characters allowed. The
command character is followed by an ASCII number (3,4,5,6 or 7) which specifies the number
of bits per custom character.
3-byte command – Used to request custom data with internal null characters. The command
character is followed by the underline character (5FH) and the ASCII number (3,4,5,6 or 7)
which specifies the number of bits per custom character.
6-7
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
ACTION: The unit will perform the following sequence:
Process data in the read buffer for the specified track, based upon the “number of bits”
character.
Transmits data formatted one byte per character with the unused most significant bits in
each byte set to '0'.
Note: Use the appropriate 2 or 3 byte form depending on the presence or absence of null
(00H) characters. Data is returned in the low order bits for 3,4,5,6, or 7 bits per character.
X (58H)
Transmit passbook data
ACTION: The unit will perform the following sequence:
Process data in the read buffer for tracks 2 and 3 using 0FHor 0CH as the end sentinel.
The unit will try to decode up to four fields, two fields from each track location, one at a
time. It will stop at the first field found to have no errors.
If error is detected, transmit proper error response ('*' or '+')(Refer to Reader Responses.)
Else, transmit data in ASCII. Only one of the redundant fields will be transmitted.
x (78H)
Transmit passbook data with specified end sentinel
FORMAT: 2-byte command – The command character (x) is followed by an ASCII character
representing the end sentinel used for decoding. Only the lower four bits of the ASCII character
will be used for the end sentinel.
ACTION: The unit will perform the following sequence:
Process data in the read buffer for tracks 2 and 3 using the end sentinel specified in the
second character. The unit will try to decode up to four fields, two fields from each track
location, one at a time. It will stop at the first field found to have no errors.
If error is detected, transmit proper error response ('*' or '+')(Refer to Reader Responses.)
Else, transmit data in ASCII. Only one of the redundant fields will be transmitted.
Note: Use this command when you only want to decode data with a single specific end
sentinel.
? (3FH)
Write verify
ACTION: The unit will perform the following sequence:
Check that valid write data exists in Encode Data storage buffer. Send “*” error if not.
Else…
Clear the read data buffers for all tracks.
Transmit command acknowledge (“^” 5EH).
Wait for card swipe.
6-8
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
Transmit acknowledge (“^” 5EH) after card swipe if card passes the Read After Write
checks on all tracks that were previously encoded. Otherwise send the proper RAW (1, 2
and/or 3) error response in ASCII.
After a “Write Verify” command is received and acknowledged the only valid commands that will be accepted for
execution are: “Abort” <ESC>, “Warm Reset” <DEL>, and LED control commands. All other commands will
result in an “Invalid Command” “!” response.
6-9
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
6.3 Magstripe Card Write Commands
Magstripe Card Write Command Summary
ASCII HEX Name
Load ISO Standard Data for writing
A
41
B
42
C
43
a
61
Load ISO Data for writing Track 1
b
62
Load ISO Data for writing Track 2
c
63
Load ISO Data for writing Track 3
j
6A
Load passbook data for writing
E
45
F
46
G
47
;
3B
O
4F
o
6F
N
4E
n
6E
[
Track 1
Load ISO Standard Data for writing
Track 2
Load ISO Standard Data for writing
Track 3
Load Custom Data for Writing
Track 1
Load Custom Data for Writing
Track 2
Load Custom Data for Writing
Track 3
Use
To encode cards with standard ISO format
1
To encode cards with standard ISO format
1
To encode cards with standard ISO format
1
Allows for ISO track formats in nonstandard track
assignments
Allows for ISO track formats in nonstandard track
assignments
Allows for ISO track formats in nonstandard track
assignments
tracks 2 and 3 To encode passbooks with the IBM
Passbook format.
Set Write density to 75 bpi on
Tracks 1 and 3
Set Write density to 210 bpi on
Track 2
2
2
2
2 or 3
To encode cards using a user defined data format.
2 or 3
To encode cards using a user defined data format.
2 or 3
specified track.
Set Write density to 210 bpi on Returns tracks 1 & 3 encoding density settings to ISO
Tracks 1 and 3
2
To encode cards using a user defined data format.
Set Write Density (for individual Change the density of data that is written to the card for the
tracks)
Length*
standard for those tracks.
3
1
Change encoding density on tracks 1 & 3
1
Change encoding density on track 2 .
1
Set Write density to 75 bpi on Returns track 2 encoding density setting to ISO standard
1
Track 2
for track 2.
5B
Set Default Write Current
Change default write current setting in EEPROM.
4
]
5D
View Default Write Current
View default write current setting in EEPROM.
1
<
3C
Set Temporary Write Current
Change setting of write current used to encode cards.
4
>
3E
View Temporary Write Current
Check setting of write current used to encode cards.
1
@
40
Arm to Write with RAW
Encode cards and perform Read After Write (RAW)
verification.
1
6-10
MSR206-7HL Programmer’s Manual
Z
5A
z
7A
Arm to Write, no RAW
UDN PM036 Rev. F
Required for encoding Extended length media on VC units.
Arm to Write with RAW and speed Same as @ but send “(“ at start of write and “)” at end of
prompts
read. (Test tool)
1
1
*Length does not include protocol overhead characters, if any.
Load Data Commands Use these commands to load data into the unit‘s encode storage.
ASCII Char
Definition of Instruction
A (41H)
Load ANSI/ISO standard data for encoding track 1
B (42H)
Load ANSI/ISO standard data for encoding track 2
C (43H)
Load ANSI/ISO standard data for encoding track 3
ACTION: The unit will perform the following sequence:
Clear the Encode Data storage for the specified track.
Transmit Command acknowledge (“^” 5EH)
Wait for download of the encode data in ASCII, terminated by the ASCII EOT character
(04H).
If data is good, transmit acknowledge (“^” 5EH).
Else, transmit “*” error response
Note: Commands A, B and C are special cases of the two byte commands a, b, and c.
Example: A = a1, B = b2, and C = c3.
a (61H)
Load ISO data for encoding track 1
b (62H)
Load ISO data for encoding track 2
c (63H)
Load ISO data for encoding track 3
FORMAT: 2-byte command – Command character (a, b, c) is followed by an ASCII number (1,
2 or 3) representing the ISO track format for processing the Magstripe data.
ACTION: The unit will perform the following sequence:
Clear the Encode Data storage for the specified track.
Transmit Command acknowledge (“^” 5EH)
Wait for download of the encode data in ASCII, terminated by the ASCII EOT character
(04H).
If data is good, transmit acknowledge (“^” 5EH).
Else, transmit “*” error response
j (6AH)
Load Passbook data for encoding track 2/3
FORMAT: 2-byte command – The command character (j), is followed by an ASCII character
representing the end sentinel used for IBM Passbook encoding. Only the lower four bits of the
6-11
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
ASCII character will be used for the end sentinel. If the <ESC> character is sent for the end
sentinel, then the command is aborted and the unit will send an acknowledge (“^” 5EH).
ACTION: The unit will perform the following sequence:
Clear the Encode Data storage for tracks 2 and 3.
Transmit Command acknowledge (“^” 5EH)
Wait for download of the encode data in ASCII, terminated by the ASCII EOT character
(04H).
If data is good, transmit acknowledge (“^” 5EH).
Else, transmit “*” error response
Note:
(1)Use this command when you only want to write passbook formatted data to a card.
Two redundant data fields will be encoded on tracks 2 and 3.
(2) Tracks 2 and 3 write data buffers will be loaded with the passbook formatted data.
(3) The encoding density for tracks 2 and 3 will always beset to 210 bpi when this
command is used and completed.
(4) After this command is completed, arming the unit to write will always write over
tracks 2 and 3.
(5) Command is only supported on reader/writer units with tracks 2 and 3.
Reader/Writers that have track 1 and 2 only will respond with a Can’t Execute (“~” 7EH).
E (45H)
Load Custom data for encoding track 1
F (46H)
Load Custom data for encoding track 2
G (47H)
Load Custom data for encoding track 3
FORMAT: These commands may be either 2 or 3 bytes long.
2 byte command – Used to load custom data with no internal null characters allowed. The
command character is followed by an ASCII number (3,4,5,6 or 7) which specifies the number
of bits per custom character.
3 byte command – Used to load custom data with internal null characters. The command
character is followed by the underline character (“_” 5FH) and the ASCII number (3,4,5,6 or
7) which specifies the number of bits per custom character.
ACTION: The unit will perform the following sequence:
Clear the Encode Data storage for the specified track. If an invalid track number is sent
the unit will send an Invalid Command (“!” 21H) response.
Transmit Command acknowledge (“^” 5EH)
6-12
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
Wait for download of the Encode Data string in ASCII, terminated by the ASCII EOT
character (04H).
If data is good, transmit Acknowledge (“^” 5EH).
Else, transmit “*” error response
Density Commands: Use these commands to set the bit density of the encoded data
; (3BH)
Set Write Density
FORMAT: 3-byte command - “;TD” where:
; = Command character (3BH)
T = ASCII character (1, 2 or 3) representing the track number being configured.
D = ASCII character (H or h) for 210bpi; ASCII character (L or l) for 75bpi
ACTION: The unit will perform the following sequence:
Set density for the specified track. If an invalid track number or density parameter is sent
the unit will send a “*” reply.
Transmit Command acknowledge (“^” 5EH)
This command allows for full independence in setting the densities for each track. Tracks 1 and 3 are not forced
to be the same as in previous models.
Notes:
On Power-up/Reset, Tracks 1 and 3 default to 210bpi and Track 2 to 75bpi.
These commands must be sent prior to any Load Data commands. Errors may occur
otherwise.
O (4FH)
Set Write Density to 210bpi on tracks 1 and 3
o (6FH)
Set Write Density to 75bpi on tracks 1 and 3
N (4EH)
Set Write Density to 210bpi on track 2
n (6EH)
Set Write Density to 75bpi on track 2
ACTION: The unit will perform the following sequence:
Set density for the specified track(s).
Transmit Command acknowledge (“^” 5EH)
If track 1 and 3 require different density settings, use the more general Set Write Density (“;” 3BH) command.
Note:
On Power-up/Reset, Tracks 1 and 3 default to 210bpi and Track 2 to 75bpi.
6-13
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
These commands must be sent prior to any Load Data commands. Errors may occur
otherwise.
Write Current Commands: Use these commands to set and review the write current used to encode data on to
cards. (VC units only)
[ (5BH)
Set Default Write Current
FORMAT: 4-byte command – Command character ([], is followed by three ASCII number
characters (0 thru 9) representing the write current used for encoding.
ACTION: The unit will perform the following sequence:
Change the write current setting in EEPROM and RAM to the specified value. Valid
values are 000 to 255 only. Any other values outside this range will get a “*” reply from
the unit. If not a VC unit, then a “~” reply will be sent from the unit.
Transmit Command acknowledge (“^” 5EH)
This command may be sent anytime prior to an “Arm to Write” command.
Notes:
(1) In USI0 there is a 5-second inter-character timeout
(2) On Power-up/Reset, this value will be used for encoding cards.
(3) The previous default current value will be lost.
(4) Recommended values:
Typical low coercivity (~300 Oersted) setting = 036
Typical high coercivity (4140 Oersted) setting = 255
] (5DH)
Review Default Write Current
ACTION: The unit will return a 3 ASCII character response representing the default write
current setting stored in EEPROM, MSD first. If not a VC unit, then a “~” reply will be sent
from the unit.
Note: The value returned is not necessarily the value used to presently encode cards with;
i.e. the temporary value could be different.
< (3CH)
Set Temporary Write Current
FORMAT: 4-byte command – Command character ([], is followed by three ASCII number
characters (0 thru 9) representing the write current used for encoding.
6-14
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
ACTION: The unit will perform the following sequence:
Change the write current setting RAM to the specified value. Valid values are 000 to 255
only. Any other values outside this range will get a “*” reply from the unit. If not a VC
unit, then a “~” reply will be sent from the unit.
Transmit Command acknowledge (“^” 5EH)
This command may be sent anytime prior to an “Arm to Write” command.
Notes:
(1) In USI0 there is a 5-second inter-character timeout
(2) On Power-up/Reset the unit will set the write current to the default value read from
the on-board EEPROM. The temporary value will be lost.
(3) Recommended values:
Typical low coercivity (~300 Oersted) setting = 036
Typical high coercivity (4140 Oersted) setting = 255
> (3EH)
Review Temporary Write Current
ACTION: The unit will return a 3 ASCII character response representing the temporary write
current setting stored in RAM, MSD first. If not a VC unit, then a “~” reply will be sent from
the unit.
Note: The value returned is the value presently used to encode cards with. This value
could be different from the default write current value stored in EEPROM.
Arm to Write Commands: Use these commands to write cards.
ASCII Char
Definition of Instruction
@ (40H)
Arm to Write with RAW verification
ACTION: The unit will perform the following sequence:
Check that valid write data exists in Encode Data storage buffer. Send “*” error if not.
Else…
Clear read buffers
Transmit Command acknowledge (“^” 5EH)
Wait for card swipe.
Transmit acknowledge (“^” 5EH) after card swipe if card passes the Read After Write
checks on all tracks that were encoded. Otherwise send the proper RAW (1, 2 and/or 3)
error response.
6-15
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
After a “Arm to Write” command is received and acknowledged the only valid commands that will be accepted
for execution are: “Abort” <ESC> and “Warm Reset” <DEL> commands. All other commands will result in an
“Invalid Command” “!” response.
Z (5AH)
Arm to Write, no RAW verification
ACTION: The unit will perform the following sequence:
Check that valid write data exists in Encode Data storage buffer. Send “*” error if not.
Else…
Clear read buffers
Transmit Command acknowledge (“^” 5EH)
Wait for card swipe.
Transmit acknowledge (“^” 5EH) after card swipe.
After a “Arm to Write” command is received and acknowledged the only valid commands that will be accepted
for execution are: “Abort” <ESC> and “Warm Reset” <DEL> commands. All other commands will result in an
“Invalid Command” “!” response.
z (7AH)
Arm to Write, with RAW and speed prompts
ACTION: The unit will perform the following sequence:
Check that valid write data exists in Encode Data storage buffer. Send “*” error if not.
Else…
Clear read buffers
Transmit Command acknowledge (“^” 5EH)
Wait for card swipe.
A “(" (28H) byte is sent when the media is first detected at the write head. After the card
passes the read head and the media detect goes inactive, a “)” (29H) byte is sent if the
card passes the Read After Write checks on all tracks that were encoded.
Transmit acknowledge (“^” 5EH) after card swipe.
After a “Arm to Write” command is received and acknowledged the only valid commands that will be accepted
for execution are “Abort” <ESC> and “Warm Reset” <DEL> commands. All other commands will result in an
“Invalid Command” “!” response.
This is similar to the '@' command, except an extra response '(' is reported when a media is detected at the write
head. A ')' response is reported when media detect goes inactive. Mainly used as a tool for determining average
swipe speed. Most applications should not use this command. They should use the ‘@’ command instead.
6-16
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
6.4 Reader Responses
There are two types of responses from the unit, solicited and unsolicited. The unit produces a solicited response
after receiving a command from the host. This includes command acknowledgements, card data, etc. The unit
produces an unsolicited response normally due to a user’s action or a power on situation.
Solicited Responses
Solicited Response Summary
ASCII
HEX
Name
Use
^
5E
Command Completed (ACK)
!
21
Invalid Command
*
2A
Error
+
2B
No data found
-
2D
Insufficient leading zeros for custom writing
/
2F
lsb of first character not a “1” for custom writing
?
3F
Communications error
~
7E
Can’t Execute, hardware does not support command
Length*
*Length does not include protocol overhead characters, if any.
Unsolicited Responses
Unsolicited Response Summary
ASCII
HEX
Name
Use
Length*
:
3A
Power On Report
1
^
5E
Card swipe occurred when armed to read or write
1
1
31
Unsuccessful read after write – Track 1
1,2 or 3**
2
32
Unsuccessful read after write – Track 2
1,2 or 3**
3
33
Unsuccessful read after write – Track 3
1,2 or 3**
(
28
Card speed measurement – start
1
)
29
Card speed measurement - end
1
>
3E
Card edge detected
1
*Length does not include protocol overhead characters, if any.
** Responses combined into one message back to the host.
6-17
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
Section 7: Detailed Card Operations
This section goes into the required details for reading and writing cards using the MSR206-7HL. Various
examples are provided at the end of this section.
7.1 Reading Cards
As mentioned previously above, reading cards is a three-step process.
Step 1: Reader arming phase
The host starts by sending an ARM TO READ command (“P”) to the unit. (A second command “p” is available
but it is meant only for use as a test tool.) This command causes the unit to clear its Read buffers and to enter the
Armed-to-Read state where it waits for data from the read heads. Any visual or audio cues for the user must be
sent to the unit prior to this command. The unit will respond to the command with an acknowledgement. The unit
will now remain in this state until a card is swiped, an ABORT command is received or the unit is reset.
Step 2: Card data collection phase
When the user swipes a card past the read head, card data is collected and stored in the unit’s read buffers until the
card swipe is completed or if the card stops mid-swipe. An acknowledgement is then sent to the host. This
acknowledgement only implies that data is available in the read buffers. The integrity of the data has not yet been
verified. The unit then exits the Armed-to-Read state. It will not accept any further data from a card.
If a card is swiped such that it’s magnetic stripe does not come into contact with the read head, or if there is no
data on the magnetic stripe because it is blank, no response will be sent back to the host. The unit will remain in
the “Armed to Read” state since it did not detect the card swipe.
Step 3: Transmit card data phase
With data now stored in the unit’s Read buffers, the next phase is for the host to retrieve it from the unit one track
at a time using the various Transmit Card Data commands. There are two types of Transmit Card Data commands;
those that verify and decode the data according to a supported format, and the Transmit Custom Data commands
that just transmit the track data with no checking.
The Transmit Card Data commands for supported formats (“Q”, ”R”, “S”, “q”, “r”, “s”, “X”, and “x”) will verify
integrity of the data, strip off all leading zeros, trailing zeros, parity bits and special characters. (Special characters
are defined as the start sentinel, end sentinel and LRC.) The data is then converted to ASCII characters and
transmitted to the host. If an error is found, the appropriate ERROR message is returned to the host instead. The
host has the option of requesting the error data using the TRANSMIT ERROR DATA (“I” 49H) command. See
the following sections for details on each of the supported formats.
7-1
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
The Transmit Custom Data commands (“U”, “V”, and “W”) gives the user the ability to read any data pattern
from a card and transmit it to the host. Depending on the command used the data may or may not contain nulls.
See the section Custom Data Decoding/Transmission later in this section for further details.
ISO Format Decoding/Transmission
The unit starts the decoding process by searching the read buffer for the start sentinel character for the specified
decoding format. If the unit can’t locate the start sentinel it ceases the decoding process and transmits the “+”
ERROR response. After locating the start sentinel, all succeeding data characters are decoded and their parity
checked until the end sentinel character is reached. The next character should be the LRC character. No further
characters are decoded after that point. The LRC character is compared to the value that the unit has calculated. If
the card data passes all of the verification checks, then the unit converts it to ASCII characters and transmits it to
the host. The unit will return a “*” ERROR response for the following problems; no end sentinel found, LRC
character does not match calculated value, or a parity error on any of the data or special characters.
There are two types of Transmit ISO data commands, single byte and double byte. The single byte commands
(“Q”, “R”, and “S”) are used when standard ISO card data is read from the corresponding track location. (Track 1
format from track 1 on the card.) The double byte commands (“q1”, “q2”, “q3”, “r1”, “r2”, “r3”, “s1”, “s2”, and
“s3”) are used for reading a particular track format from a different track location. (Track 1 format from tracks 2
or 3.) For further information on these commands, see the Magstripe Card Read Commands section of Commands
and Responses.
For additional details on the ISO track formats see Appendix B: Card Formats.
AAMVA Format Decoding/Transmission
The MSR206-7HL must be configured to decode ISO and AAMVA data on track 3. Data integrity checks consist
of verifying the existence or the start and end sentinels, the parity of each Magstripe character and that the
calculated LRC matches the LRC read from the card. If a problem is found then the unit sends an ERROR
response back to the host. If the data passes all of the verification checks then the unit then strips off the leading
and trailing zero bits, the start sentinel, end sentinel and LRC characters. The unit then converts the data
characters to ASCII format and transmits it back to the host.
AAMVA uses the same format as ISO for data on tracks 1 and 2. Therefore the same Transmit ISO Data
commands (“Q”, “q1”, “R”, and “r2”) are used. These commands operate the same as detailed above in the ISO
Format Decoding section. To decode and transmit AAMVA data from track 3, the “s1” command must be issued
from the host to the unit. This command does the same checking as the ISO format commands but allows the end
sentinel to be processed as a data character.
For additional details on the AAMVA track formats see Appendix B: Card Formats.
7-2
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
IBM-Passbook Format Decoding/Transmission
Passbook format consists of two redundant data fields that are separated by a field of zero bits. Since passbook
data can span tracks 2 and 3, the unit attempts to decode the data from both tracks’ read buffers. At two fields per
track, the unit has up to four chances of extracting good data from the card in a single swipe. The unit starts the
decoding operation by searching for the start sentinel character. If a start sentinel character can not be found in
either track’s read buffer, the unit ceases the decoding operation and sends a “+” ERROR response. After locating
the start sentinel, all succeeding data characters are decoded and their parity checked until the end sentinel
character is reached. The next character should be the LRC character that is verified against the value calculated
by the unit. If the data in the field passes all of the verification checks, it is converted to ASCII and transmitted to
the host. If an error is found, then the unit continues on to the next field and tries decoding the data without errors.
The decoding operations ends with either good data being found in one of the fields and transmitted to the host or
with an “*” ERROR response being sent.
There are two Transmit Passbook data commands, TRANSMIT PASSBOOK DATA (“X” 58H) and TRANSMIT
PASSBOOK DATA USING SPECIFIED END SENTINEL (“x” 78H). The decoding operations are the same for
both with the exception of the end sentinel decoding. The TRANSMIT PASSBOOK DATA command will check
for an end sentinel value of either 0FH or 0CH. The TRANSMIT PASSBOOK DATA USING SPECIFIED END
SENTINEL command will check for an end sentinel that matches the specified value. If that value is not found,
the unit responds with a “*” ERROR. See the Reader Commands section of Commands and Responses for further
information on these two commands.
For additional details on the IBM-Passbook format see Appendix B: Card Formats.
Custom Data Decoding/Transmission
The Transmit Custom Data commands (“U”, “V”, and “W”) are used where the card data may not conform to a
supported standard. Data integrity is not verified when decoding. The unit assumes that the data in the read buffer
is stored lsb first. It also assumes that the lsb of the first character to be read is a “one”. The decoding operation
starts when the unit locates the first “one” bit in the read buffer. The unit then parses the data into characters
determined by the specified number of bits. Custom data is not formatted into ASCII characters for transmission
to the host. Characters are returned to the host in the least significant bits of the transmitted character frame. The
unused higher order data bits (if any) are set to zero. (See Section Communications) Where the decode operation
ends depends on whether a 2-byte or 3-byte command was received. If the 2-byte commands are used (for
example U7, V5, W6, etc) then the unit stops decoding data when it comes across the first character that has no
“ones” in it (i.e. a null character). Any data past that point in the read buffer is ignored. If the 3-byte commands
are used (for example U_7, V_5, W_6, etc) then card data from the first “one” bit found to the last 10 bits from
the end of the card will be processed and transmitted.
7-3
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
7.2 Writing Cards
This section only applies to units that are reader/writers. If a unit is a reader only, a CAN’T EXECUTE “~” error
response will be returned to the host.
Step 1: Unit setup phase
This phase is not required if the default parameters for write current (card coercivity) and track density are used.
Of these two parameters changing the track density if required must occur in this phase. If a change density
command is sent later, errors could occur during the encode operation. Some errors that could occur are that the
start sentinel is placed in the wrong position or incomplete data could be written to the card among others.
The unit supports the two standard track densities, 75bpi and 210bpi. Encoding density is a track attribute, that is
different tracks can have different densities. During an encode operation the chosen density is maintained across
the chosen track; i.e. it cannot be changed halfway through the card.
The host can change the encoding density using the set density commands “;”, “O”, “o”, “N”, and “n”. The unit
will retain any change in densities until either another density command is sent or a reset operation is performed.
Changing the track density will affect the amount of data that can be written to a card.
VC units have the capability writing to cards of different coercivities. The unit does this by adjusting the amount
of write current used for encoding. For further important information on changing and viewing the write current
settings see the Working with different media coercivities section later in this section.
Step 2: Data loading phase
Data is loaded into the unit on an individual track basis. Only tracks that have data loaded in this phase will be
written to the card. For example, if data for track 2 is loaded into a triple track unit and a card is then encoded,
only track 2 will be written to on the card. All other tracks will remain untouched.
There are two types of Load Data commands; those that load data for a supported format and those that load
custom data. Using a supported format command (“A”, “B”, “C”, “a”, “b”, “c” and “j”), the host is only required
to provide the unit with the data field in ASCII. The unit verifies that the downloaded data uses only the allowed
characters for the specified format. It then proceeds to convert the downloaded data by converting the ASCII data
to the proper character format with the correct parity and adding the start sentinel and end sentinel characters. It
will calculate the value of the LRC character that is also appended to the data. The unit will also add in the
required number of leading zero bits so that the start sentinel character will be properly located on the card. See
the following sections for details on each of the supported formats.
The Load Custom Data commands (“E”, “F” and “G”) give the user the ability to write almost any data pattern to
a card. Depending on the command used the data may or may not contain nulls.
See the section Loading Custom Data later in this section for further details.
7-4
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
Step 3: Card encoding phase
After the encode data is loaded into the write data buffers, the unit can now be armed to write. Any visual or
audio cues for the user must be sent at this time. A flashing green LED is suggested as an indication to the user
that the unit is ready to encode their card. Since the LED’s are host controlled this is left to the applications
software to initiate.
There are mainly two “Arm to Write” commands available. They are ARM TO WRITE WITH RAW
VERIFICATION “@”, and the ARM TO WRITE NO RAW VERIFICATION “Z”. (A third command “z” is
available but it is meant only for use as a test tool.) The card length and type of reader/writer unit being used
determine which command to use. Only one of these commands may be used at a time. If a MSR206-7HL unit is
being used, then the “@” command can be used all the time without regard to card length. If a MSR206-7HL unit
is being used, then the length of the card determines if the “@” command can be used. If the card is ISO standard
length (3.370”/ 85.60mm) or shorter, the “@” command can be used. If the card is longer than ISO standard
length then the “Z” command must be used. When using the “@” command, the VC unit stops writing to a card
after it has written an ISO length of data.
Upon reception of the Arm to Write command, the unit will respond with an acknowledgement. The unit will now
remain in this state until a card is swiped, an ABORT command is received or the unit is reset. When the user
swipes the card past the write head, the unit encodes the magnetic stripe on the card with the information stored in
the write buffers. The unit will provide the necessary trailing zero bits after the last data character to complete the
card. Only tracks that have data in the write buffers will be written to.
If the ARM TO WRITE WITH RAW VERIFICATION “@” command was used to arm the unit, data that is on
the card will be collected as it passes the read head. This data is stored in the units read buffers for later analysis.
If the “Z” command is used instead, no data is collected from the card during the encode swipe.
Step 4: Verification and acknowledgement phase
Depending on which “Arm to Write” command that was used, data verification would occur either on the same
swipe as the encode operation or on a second swipe. If the ARM TO WRITE WITH RAW VERIFICATION “@”
command was used to arm the unit, data that is on the card would be collected as it passed the read head and
stored in the unit’s read buffers. The Read After Write (RAW) function performs a 100% check on the magnetic
data written on a card. Any bit errors outside the data field will be flagged as an error. If all written tracks pass the
RAW verification checks, then the unit responds with an acknowledgement. If errors are found on one or more
tracks, the unit sends a RAW ERROR character (“1”, “2” and/or “3”) for each track that contains errors.
If the ARM TO WRITE NO RAW VERIFICATION “Z” command is used instead, no data was collected from
the card during the encode swipe. A second verification swipe would be necessary. The host would send the
WRITE VERIFY (“?”) command to the unit. The unit would send back a command acknowledgement and wait
for a card swipe. After the user swipes the card, the unit performs a Read After Write check on the data the same
as for the @ command. The unit then responds back appropriately to the host.
7-5
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
The unit implements a speed governor to help ensure that cards are encoded within the ISO specification for
allowed jitter. The unit does this by measuring the speed of the card during an encode operation. If the card
exceeds the maximum specified encode speed, the unit reports a Read After Write error for all tracks that it was
writing to. The unit also causes the LED to display an amber color for one second. If a card is swiped too slowly,
i.e. below the minimum allowed encode speed, the unit will timeout and consider the write operation completed.
This would result in a partially encoded card.
Step 5: Re-encoding phase
Loading ISO Format Data
There are two types of Load ISO data commands, single byte and double byte. The single byte commands (“A”,
“B”, and “C”) are used when standard ISO card data is to be written to the corresponding track location. (Track 1
format to track 1 on the card.) The double byte commands (“a1”, “a2”, “a3”, “b1”, “b2”, “b3”, “c1”, “c2”, and
“c3”) are used for writing a particular ISO track format to a different track location. (e.g. Track 1 format to tracks
2 or 3.) For further information on these commands, see the Magstripe Card Write Commands section of
Commands and Responses.
Loading AAMVA Format Data
The MSR206-7HL must be configured to decode ISO and AAMVA data on track 3.
AAMVA uses the same format as ISO for data on tracks 1 and 2. Therefore the same Load ISO Data commands
(“A”, “a1”, “B”, and “b2”) are used. These commands operate the same as detailed above in the Loading ISO
Format Data section. To load AAMVA data to track 3, the “c1” command must be issued from the host to the unit.
This command does the same data conversion as the other Load ISO Format commands but allows the end
sentinel to be processed as a data character without generating an error.
Loading IBM-Passbook Format Data
In the case of passbook data the unit automatically creates the duplicate data fields.
Use the two byte Load Passbook Data command (“j”) when that format is two be written to the card. The host
must supply the end sentinel to be used when issuing the command.
Loading Custom Data
Two selectable modes are available for custom writing. In Mode 1, the data string cannot include an EOT (04H)
that is used as a string terminator. In Mode 2, EOT characters can be written on the card.
7-6
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
The following steps must be followed to write custom data:
Issue the command “CUSTOM WRITE TRK X,” followed by one ASCII character in the range of 3-7, indicating
the number of bits per character to be written. If the interface is capable of executing the command, it
acknowledges with an “ACK” response. If the interface is not configured to execute the command, it responds
with a “CAN'T EXECUTE.”
Upon receiving the “ACK” response, the host should send the following:
Command Syntax for Mode 1 & 2
Mode 1
Mode 2
Leading Zeros*
3 digits for character count**
Card Data
Leading Zeros*
EOT
Card Data
*Refer to “Leading Zero Bits for Custom Encoding table” for number of leading zeros
**For example: “097” is sent as <30H><39H><37H>. A Character that is not in the 0-9 range will receive an
error message from the reader. The count is the sum of the number of Leading Zero characters and the number of
the Card Data characters.
For Mode 2, when operating in USI0, a five-second delay between characters (before the count is satisfied) will
terminate the message.
The LSB of the first data character to be written must be a “ONE.” If not, the reader will respond with a “/” (2FH)
as an error message.
The reader extracts the number of LSB’s from each byte downloaded, even from the leading zeros, and will place
them in storage to be written on the card, LSB first. The number of characters written must not exceed what can
be physically written onto the card and that enough clocking bits (zeros) must be written before and after the data.
Refer to below table.
Leading Zero Bits for Custom Encoding
Density
Leading Zero Bits
Recommended # Of Zero Bits
Data Bits Allowed
75 BPI
20 Min
24
1024 Max
210 BPI
40 Min
68
1024 Max
The reader provides the necessary trailing zeros to completely fill the card. Data characters downloaded for
custom writing need not be in ASCII format.
7-7
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
If the reader is capable of executing the command, it acknowledges with an “ACK” response, if any error is
detected, it responds with an “ERROR.” Upon receiving the “ACK” response, the host should proceed to send the
command to Load Data to Write additional tracks or to “EXECUTE WRITE.”
After the card has been swiped, the read after write function verifies the successful recording of the data and
notifies the host with an “ACK” or one or more errors identifying the Track(s) where the error(s) was/were found.
Proper command sequence
Since the unit enforces certain encoding rules, the sequence of the commands used
Set coercivity (for entire card, not track)
Set Track density
Load data command (format)
Encode card (Arm to Write) command
7.3 Working with different media coercivities
Reading
The MSR206-7HL, by the nature of its read electronics, can read cards of varying coercivities automatically.
Therefore no special considerations are required. See Technical Specifications for specified range.
Writing
Variable current (VC) units only
There are two types of write current values that the unit can contain, the default value and a temporary value.
The unit stores the write current values in two different locations, in the serial EEPROM and in RAM. The serial
EEPROM is by its nature non-volatile storage. It is used to store the default write current value that is to be used
after all reset operations. RAM is volatile storage and will lose any value stored in it due to loss of power. The
RAM is loaded with the default write current value after any reset operation.
There are two commands that allow the host to change the write current value used to encode data on to the
Magstripe media. These are the SET DEFAULT WRITE CURRENT “[” (5Bh) command and the SET
TEMPORARY WRITE CURRENT ”<” (3Ch), command. The SET DEFAULT WRITE CURRENT command
will update the stored values in both the serial EEPROM and the RAM. The unit will encode all further Magstripe
media using this value for the write current until either of the “Set Write Current” commands are received from
the host. The SET TEMPORARY WRITE CURRENT command will update only the value stored in RAM. The
unit will use this value to encode all further Magstripe media until either a new “Set Write Current” command is
received or the unit undergoes a reset operation.
7-8
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
There are two commands that allow the host to review the current value(s) stored by the unit. These are the
REVIEW DEFAULT WRITE CURRENT, “]” (5Dh), command and the REVIEW TEMPORARY WRITE
CURRENT,”>” (3Eh), command. The REVIEW DEFAULT WRITE CURRENT command returns the value
stored in the serial EEPROM. This value is not necessarily the value used to encode cards. The REVIEW
TEMPORARY WRITE CURRENT command returns the value stored in RAM. This is the value that is presently
being used to encode cards. This value could be the same as the default value. It would be different if the unit has
received a “Set Temporary Write Current” command with a non-default value specified since the last reset
operation.
7.4 Working with non-ISO length media
7.5 Encoding a Series of Cards
7.6 Considerations for encoding non-ISO formats
7.7 Working with California Driver’s License/Identification Cards
The DMV California Driver’s License/Identification card is written on all three tracks. Track 2 is read by using
the “R” (52H, read track 2, ISO standard format) command. Tracks 1 and 3 are read by using custom data read
commands. However, user software is required to convert custom data into ASCII format.
Decoding DMV California Driver's License/Identification Cards – Track 1
The DMV data format in track 1 is using 6 data bits with no parity. Null characters are also part of the data field.
To read this format the 3-byte command “U_6” (55H, 5FH, 36H) must be used. The user software should first
check the data integrity by looking for the start sentinel (05H). Then, calculate the LRC by doing an exclusive-OR
on every byte beginning with the start sentinel up to and including the end sentinel (1FH). Compare the computed
LRC to the encoded LRC. The encoded LRC is the data immediately following the end sentinel. If the LRC is
correct, the data read can be converted to ASCII by adding 20H to each byte.
Decoding DMV California Driver's License/Identification Cards – Track 3
DMV data format on Track 3 can be converted to ASCII format by using the same procedure as described above
with one exception. The command required to get the data from the reader is “W_6” (57H, 5FH, 36H) and the
start sentinel is 01H.
CDL Start/End Sentinels for Tracks 1 &3
Track 1
Track 3
Start Sentinel
05H
01H
End Sentinel
1FH
1FH
7-9
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
7.8 Data Security Considerations
In applications involving sensitive information the following factors should be taken into consideration. After a
card is read, the data remains in the unit’s read buffers indefinitely until it experiences a reset cycle, or either an
ARM TO READ command or an ARM TO WRITE command is received and acknowledged. After a card is
encoded the data remains in both the read and write buffers until the unit once again experiences a reset cycle, an
ARM TO READ command or an ARM to Write command is received and acknowledged.
The suggested method for protecting data would be to issue an ARM TO READ command, wait for the command
acknowledgment and then immediately issue an ABORT command and wait for its acknowledgment. This
sequence will fully clear the data from the read and write buffers for all tracks.
7.9 Examples
Reading ISO cards
Writing ISO cards
Reading Custom Data
Writing Custom Data
Encoding multiple cards
Encoding extended length media
7-10
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
Section 8: Configuration Commands
<09><09><09>Q 00~7E ASCII address for reader
<09><09><09>A 00~7E ASCII data 00~FF ASCII address for write
00H MODEL TYP
TK2/1 READER ONLY
01H
TK2/3 READER ONLY
02H
TK1/2/3 READER ONLY 03H
TK2/1 R/W
04H
TK2/3 R/W
05H
TK1/2/3 R/W
06H
TK 2/3 R/W
07H
TK2/1 R/W VC
18H
TK2/3 R/W VC
19H
TK1/2/3 R/W VC
1AH
01H 75 BPI LEADING ZEROS
02H 210 BPI LEADING ZEROS
03H RS232 SETING
19200 7.O.1
00H
9600 7.O.1
01H
4800 7.O.1
02H
2400 7.O.1
03H
1200 7.O.1
04H
19200 7.E.1
08H
19200 7.M.1
10H
192007.S.1
18H
19200.7.O.1
00H
04H
PROTOCOL 0 <04H> ISO
00H
PROTOCOL 1 <04H> ISO
06H
PROTOCOL 0 <LEN> ISO
05H
PROTOCOL 0 <04H> AAMVA 04H
05H~18H reserve
19H~1AH WRIT CLOCK (1” 510CLOCK)
1BH SPEED
1CH WRITE CURRENT (over 170 co is Hi-Co)
1DH~7CH reserve
7EH compare with 1C
8-1
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
7FH CHECKSUM
8-2
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
8.1 Appendix A: Card Formats
ISO
ISO Card Format
Track
Density
Total
Bits/Char*
(bpi)
Characters**
Character Set
Start
Sentinel
End Sentinel
Field Separator
1
210
7
79
Alphanumeric
%
?
^
2
75
5
40
Numeric only
; (1BH)
? (1FH)
= (0DH)
3
210
5
107
Numeric only
; (1BH)
? (1FH)
= (0DH)
* Includes ODD parity bit.
** Includes Start Sentinel, End Sentinel and LRC characters.
Track 1 allowed characters
Alphanumeric Character Set
b
0
0
1
1
b
0
1
0
1
0
1
2
3
6
5
b
COL
4
b
3
b
2
b
0
0
0
0
0
SP
0
@(1)
P
0
0
0
1
1
! (1)
1
A
Q
(1)
2
B
R
1
ROW
0
0
1
0
2
“
0
0
1
1
3
# (2)
3
C
S
0
1
0
0
4
$
0
0
1
1
0
1
1
0
5
6
4
D
T
(3)
5
E
U
(1)
6
F
V
(1)
7
G
W
%
&
0
1
1
1
7
/
1
0
0
0
8
(
8
H
X
1
0
0
1
9
)
9
I
Y
1
0
1
0
10
*(1)
: (1)
J
Z
(1)
(1)
K
[(4)
1
0
1
1
11
+
;
1
1
0
0
12
, (1)
<(1)
L
\(4)
1
1
0
1
13
-
=(1)
M
](4)
1
1
1
0
14
.
>(1)
N
^(3)
1
1
1
1
15
/
? (3)
O
DEL(1)
(1) These characters are for hardware control purposes only and cannot contain information characters.
(2) This character is reserved for optional additional graphic symbols.
(3) These characters have the following meanings: Position 0/5 % represents “start sentinel”
1/15 ? represents “end sentinel”
8-3
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
3/14 ^ represents “field separator”
(4) These characters are reserved for additional national characters when required. They are not to be used
internationally.
Track 2 and 3 allowed characters
Numeric Character Set
Bits
P
b
4
b
3
b
2
b
1
Row
Character
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
2
2
1
0
0
1
1
3
3
0
0
1
0
0
4
4
1
0
1
0
1
5
5
1
0
1
1
0
6
6
0
0
1
1
1
7
7
0
1
0
0
0
8
8
1
1
0
0
1
9
9
1
1
0
1
0
10
: (1)
0
1
0
1
1
11
; (2)
1
1
1
0
0
12
< (1)
0
1
1
0
1
13
= (3)
0
1
1
1
0
14
> (1)
1
1
1
1
1
15
? (4)
(1) These characters are for hardware control purposes only and cannot contain information characters.
(2) Start sentinel
(3) Field separator
(4) End sentinel
AAMVA
AAMVA Card Format
Track
Density
(bpi)
Bits/ Char*
Total
Characters**
Character Set
Start
Sentinel
End Sentinel
Field
Separator
1
210
7
82
Alphanumeric
%
?
^
2
75
5
40
Numeric only
; (1BH)
? (1FH)
= (0DH)
3
210
7
82
Alphanumeric
%
?
^
* Includes ODD parity bit.
** Includes Start Sentinel, End Sentinel and LRC characters.
8-4
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
IBM-Passbook
IBM-Passbook Card Format
Track
2&3
Wide
Density
(bpi)
210
Bits/Char*
5
Total
Characters**
48
Character Set
Numeric only
Start
Sentinel
; (1BH)
End Sentinel
< (1CH) or ?
(1FH)
Field
Separator
= (0DH)
* Includes ODD parity bit.
** Includes Start Sentinel, End Sentinel and LRC characters.
8-5
MSR206-7HL Programmer’s Manual
UDN PM036 Rev. F
8.2 Appendix B: Magstripe Fundamentals
Track locations
Related Documents
ISO 7810:1995 Identification Cards - Physical characteristics
ISO/IEC 7811-2:1995 Identification Cards - Recording technique - Part 2: Magnetic stripe
ISO/IEC 7811-3:1995 Identification Cards - Recording technique - Part 3: Location of embossed characters
on ID-1 cards
ISO/IEC 7811-4:1995 Identification Cards - Recording technique - Part 4: Location of read-only magnetic
tracks - Tracks 1 and 2
ISO/IEC 7811-5:1995 Identification Cards - Recording technique - Part 5: Location of read-write magnetic
track - Track 3
ISO/IEC 7811-6:1996 Identification Cards - Recording technique - Part 6: Magnetic stripe - High coercivity
Write current setting versus media coercivity table
Write Current Settings vs. Media Coercivties
Media Coercivity (Oersteds)
Write Current Setting*
Typical Usage
300
36
Low coercivity
255
Typical high corcivity
600
1800
3600+
8-6
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertising