Cashcode Net Interface PDF
Cashcode Net Interface PDF
CashCode NET
Interface
1 General Information............................................................................................................. 4
1.1 Introduction .................................................................................................................................................... 4
1.2 Operational and Application Notes ................................................................................................................ 4
2 Communication Format. ..................................................................................................... 5
2.1 Data format .................................................................................................................................................... 5
2.2 Message Format ............................................................................................................................................ 5
2.3 Transmission and reception message formats .............................................................................................. 8
2.4 Peripheral Addresses .................................................................................................................................... 9
2.5 Software Operational Rules ........................................................................................................................... 9
2.6 Typical Session Examples ........................................................................................................................... 10
2.7 Timing Definitions ........................................................................................................................................ 12
2.8 Timing Specifications ................................................................................................................................... 12
3 CONTROLLER/BILL-TO-BILL UNIT Communication Specification ............................... 13
3.1 Introduction .................................................................................................................................................. 13
3.2 Command Protocol ...................................................................................................................................... 13
3.3 Controller Commands .................................................................................................................................. 13
3.4 Controller Command Format ....................................................................................................................... 14
4 CONTROLLER/COIN CHANGER Communication Specification .................................... 25
4.1 Introduction. ................................................................................................................................................. 25
4.2 Command Protocol ...................................................................................................................................... 25
4.3 Controller Commands .................................................................................................................................. 25
4.4 Controller Command Format ....................................................................................................................... 25
5 CONTROLLER/BILL VALIDATOR Communication Specification .................................. 32
5.1 Introduction. ................................................................................................................................................. 32
5.2 Command Protocol ...................................................................................................................................... 32
5.3 Controller Commands .................................................................................................................................. 32
5.4 Controller Command Format ....................................................................................................................... 33
6 CONTROLLER/ Card Reader Communication Specification ......................................... 45
6.1 Introduction .................................................................................................................................................. 45
6.2 Card Reader States ..................................................................................................................................... 45
6.3 Command Protocol ...................................................................................................................................... 46
6.4 Controller Commands .................................................................................................................................. 46
6.5 Controller Command Format ....................................................................................................................... 46
6.6 Non-Response Time .................................................................................................................................... 52
7 APPENDIX Example CCNET Message Sequences ....................................................... 53
This document defines a serial network interface. The interface is Master-Slave arrangement where all
peripherals are Slave to a Master Controller.
The serial network interface, or serial bus interface, is configured for Master- Slave operation. There is
one Master with the capability of communicating with some peripherals. The Master is defined as
Controller and Slave as Peripheral.
Each peripheral is assigned a unique address and command set. The Controller will “poll” the Bus for
Peripheral activity. That is, each Peripheral is asked for activity, and responds with either acknowledge,
negative acknowledge, invalid command acknowledge, or specific data dependent on its current activity. If
a Peripheral does not respond within a predefined time, (t-non-response as defined in the peripheral
sections) it is assumed that it is not present on the Bus.
Bus interference or “crashes” are prevented because each Peripheral only responds upon being polled.
* if a package cannot be fitted into 250-byte frame a wider frame may be used by setting LNG to 0; the
actual packet length is inserted into DATA block bytes 0 and 1 if CMD (if present in the frame) does not
require subcommand, otherwise in DATA block bytes 1 and 2; two-byte LNG always follows MSB first.
SYNC ADR 0 CMD SUBCMD LNG HIGH LNG LOW DATA CRC
This allows accommodation of data packages of up to 65528 bytes; please keep in mind that lengthy
exchanges compromise bus bandwidth.
SYNC : [02H]
ADR : Peripheral address
LNG : Data length
CMD : Command
DATA : Data necessary for command (omitted if not required by CMD)
CRC : Check code by CRC method
SYNC : [02H]
ADR : Peripheral address
LNG : [06H]
DATA : [00H]
CRC : Check code by CRC method
SYNC : [02H]
ADR : Peripheral address
LNG : [06H]
DATA : [FFH]
CRC : Check code by CRC method
Sent in PERIPHERAL to CONTROLLER direction if command from controller was not correctly received.
SYNC : [02H]
ADR : Peripheral address
LNG : Data length
DATA : Response’s Data
CRC : Check code by CRC method
SYNC : [02H]
ADR : Peripheral address
LNG : [06]
DATA : [30H]
CRC : Check code by CRC method
Sent by the PERIPHERAL if command from CONTROLLER is not valid in reference to the current
peripheral state.
00H Forbidden
01H Bill-to-Bill unit
02H Coin Changer
03H Bill Validator
04H Card Reader
05H Reserved for Future Standard Peripherals
. .
. .
. .
0DH Reserved for Future Standard Peripherals
0EH Reserved for Future Broadcast Transmissions
0FH Reserved for Future Standard Peripherals
The Controller must respond to data from a Peripheral with an Acknowledgment (ACK) or Negative
Acknowledgment (NAK) message. The 10 mS time-out (t-response) described in the Timing section of this
document is the equivalent of a NAK message.
A Peripheral must respond to command from the Controller with response message, or ACK message, or
NAK message. The 10 mS time-out (t-response) described in the Timing section of this document is the
equivalent of a NAK message.
The tfree must be obeyed by the Controller between the end of any ACK or NAK confirmation response and
start of the next command transmission. Currently tfree is defined as 10 mS of Bus silence, but for reliable
operation of future multi-device buses the recommended value of tfree is 20mS.
2.6.1 The diagram below represents a typical transmission when PERIPHERAL has no data to return.
Controller Peripheral
ller Command
r
l ACK message
er Less or
d
equal to 10
mS
2.6.2 The diagram below represents a typical transmission when PERIPHERAL has data to return.
Controller Peripheral
Poll command
Status
Less or
equal to 10
ACK message
mS
From 100 to
200 mS Poll command
Bus silence
of tfree msec
Status
ACK message
Controller Peripheral
Poll Command
command
Status
Less or
equal to 10
NAK message
mS
From 100
to 200 mS Poll command
Bus silence
of tfree msec
Status
ACK message
2.6.4 The diagram below represents a typical transmission when Peripheral determines a CRC is not
correct. The Peripheral responds by sending a NAK message to the Controller to indicate that the
information was not received correctly.
Controller Peripheral
Poll Command
command
NAK message
Less or
equal to 10
Poll command mS
From 100
to 200 mS Status data
ACK message
3.1 Introduction
This section defines the communication bytes sent and received between Bill-to-Bill unit and the
Controller. Unless stated otherwise, all information is assumed to be in a hexadecimal format. The Bill-to-
Bill unit’s address is 01H.
RESET
Controller Command Code Controller Data
RESET 30H No data bytes
This command is used to tell the Bill-to-Bill unit that it must return to its default operating mode. It must
abort all communication, reject any bills in the validation process, return any bills in the escrow position,
and disable all other activity until otherwise instructed by the Controller.
GET STATUS
Controller Command Code Bill-to-Bill unit Response Data
GET STATUS 31H 9 bytes: Z1 – Z9
Z1-Z3 Bill Type, 3 bytes. Indicates the bill enables for bill types 0 to 23.
Z4-Z6 Bill Security Levels, 3 bytes. Indicates the security level for bill types 0 to 23.
Z7-Z9 Bill Type Routing, 3 bytes. Indicates what bill types can be routed to the Bill-to-Bill unit’s
cassettes. Valid bill types are 0 to 23.
Bill Type
Byte Z1 bits Byte Z2 bits Byte Z3 bits
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
Bill types enabled if bits set
2 2 2 2 1 1 1 1 1 1 1 1 1 1 9 8 7 6 5 4 3 2 1 0
3 2 1 0 9 8 7 6 5 4 3 2 1 0
A bit is set to indicate the type of bill(s), which are set to a “high” security level.
POLL
Controller Command Code Bill-to-Bill unit Response Data
POLL 33H 1 or 2 bytes: Z1 or Z1- Z2
Indicates status of the Bill-to-Bill unit and its activity. The Bill-to-Bill unit may send 1or 2 of the following
data bytes:
NOTE: On power-up or reset all bill acceptance and escrow are disabled.
STACK
Controller Command Code Controller Data
STACK 35H No data bytes
This command forces a bill in escrow position to be sent to drop cassette or one of the recycling
cassettes.
NOTE: After a STACK command the Bill-to-Bill unit should respond to a POLL command with the BILL
STACKED message within 30 seconds. If this command is sent when the Bill-to-Bill unit is not in
ESCROW state the ILLEGAL COMMAND message is returned.
RETURN
Controller Command Code Controller Data
RETURN 36H No data bytes
This command causes the Bill-to-Bill unit to return a bill in escrow position to the customer.
NOTE: After a RETURN command the Bill-to-Bill unit should respond to a POLL command with the
BILL RETURNED message within 30 seconds. If this command is sent when the Bill-to-Bill unit is not in
ESCROW state the ILLEGAL COMMAND message is returned.
Bytes Description
Z1-Z15 Part Number – 15 bytes, ASCII characters
Z16-Z27 Serial Number – 12 bytes Factory assigned serial number, ASCII characters
Z28-Z34 Asset Number – 7 bytes, unique to every Bill Validator, binary data
Bytes Z1-Z27 must be sent as ASCII Characters. Zero (30H) and Blank (20H) are acceptable. Asset
Number must be sent as binary code.
15 bytes 12 bytes 7 bytes
BB-US1701 00K038AS3419 Binary code
Asset Number
Serial Number
Part Number
HOLD
Controller Command Code Controller Data
HOLD 38H No data bytes
This command allows the Controller to hold Bill-to-Bill unit in a state Escrow during 10 s. After this time the
Controller should send the STACK or RETURN command. For continued holding in an Escrow state it is
necessary to resend this command. Otherwise Bill-to-Bill unit will execute return of a bill.
DISPENSE
Controller Command Code Controller Data
DISPENSE 3CH 27 bytes: Y1-Y27
Y1-Y3 Bill Type to be dispensed - 3 bytes. A bit is set to indicate bill type to be dispensed.
Byte Y1 bits Byte Y2 bits Byte Y3 bits
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
Bill Types to be dispensed if bits set
2 2 2 2 1 1 1 1 1 1 1 1 1 1 9 8 7 6 5 4 3 2 1 0
3 2 1 0 9 8 7 6 5 4 3 2 1 0
Y4-Y27 These bytes contain number of bills to dispense for those types, which are specified in
bytes Y1-Y3. Zero bytes are not sent. For example, if in bytes Y1-Y3 two bits are set, Y4
and Y5 will be sent only.
NOTE: The total number of bills to dispense must not exceed 20 bills.
This command unloads the bills from the recycling cassettes to drop cassette.
Y1 Cassette number code
Y2 Iindicates the number of bills to be unloaded.
RECYCLING CASSETTE
STATUS
Controller Command Code Bill-to-Bill unit Response Data
RECYCLING CASSETTE 3EH 1 byte: Z1
Z1 (Fyyy yyyy)
F = Recycling Cassette Full Status.
yyy yyyy = number of bills in the recycling cassette.
NOTE: If a Bill-to-Bill unit can detect a cassette jam, defective cassette sensor, or
other malfunction, it will indicate the cassette is “bad” by sending a recycling
cassette full status and a count of zero.
RECYCLING CASSETTE
UNLOAD
Controller Command Code Controller Data
RECYCLING CASSETTE 3FH 1 byte: Y1
Y1 (Dyyy yyyy)
If Y1 = 1yyy yyyy; yyyy yyy = Number of bills to return to customer.
If Y1 = 0; Unload one bill to recycling cassette of appropriate bill type or drop cassette
Command for routing bills from recycling cassette. This command allows returning
customer bills in case of cancelling.
Command for assigning recycling cassette bill type. If the cassette is not empty, the command forces
complete unloading of the cassette.
Notes: It is strongly recommended to send RECYCLING CASSETTE STATUS command before sending
SET RECYCLING CASSETTE STATUS TYPE command to assure proper cassette type assignment.
Example:
Denomination Country Denomination
Bill Type Code Code Code Denomination
First Byte 3 bytes Second Byte
0 0x1 ITL 0x3 1,000 Lira
1 0x2 ITL 0x3 2,000 Lira
2 0x5 ITL 0x3 5,000 Lira
3 0x5 NLC 0x82 .05 Crown
4 0x19 NLC 0x82 .25 Crown
5 0x19 NLC 0x81 2.5 Crown
6 0x19 NLC 0x0 25 Crown
7 0x19 NLC 0x2 2500 Crown
CashCode Company Inc Page 23 of 60
PT# MAN_CCNET Rev.2.3.1 NOV 2002
8 0x1 USA 0x0 1 Dollar
9 0x5 USA 0x0 5 Dollar
10 0x1 USA 0x1 10 Dollar
11 0x2 USA 0x1 20 Dollar
Unsent bytes are assumed to be zero.
DOWNLOAD
Controller Command Code Controller Data
DOWNLOAD 50H 1 byte: Y1
Y1 – subcommand byte.
This command is not implemented in current Bill-to-Bill unit software releases and will always return an
INV response.
The coin changer must be compatible with Controller that is designed according to the operational rules
defined earlier in this document.
The commands IDENTIFICATION, GET COIN TABLE, and DOWNLOAD should be sent by the
Controller, when Coin Changer is in the following states: Power up, Initialize or Unit Disabled.
If the Coin Changer, which is not executable in its present state, receives a Controller command Coin
Changer issues ILLEGAL COMMAND message.
RESET
Controller Command Code Controller Data
RESET 08H No data bytes
This command is used to tell the Coin Changer that it must return to its default-operating mode. It must
abort all communication and disable all acceptance until otherwise instructed by the Controller.
Z1-Z3 Coin Type, 3 bytes. Indicates the coin enables for coin types 0 to 23.
Coin Type Routing, 3 bytes. Indicates what coin types can be routed to the Coin
Z4-Z6
Changer’s tubes. Valid coin types are 0 to 23.
Coin Type
Byte Z1 bits Byte Z2 bits Byte Z3 bits
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
Coin types enabled if bits set
2 2 2 2 1 1 1 1 1 1 1 1 1 1 9 8 7 6 5 4 3 2 1 0
3 2 1 0 9 8 7 6 5 4 3 2 1 0
NOTE: Coin type credits sent as FFH are assumed to be Free Vend tokens and their value is assumed to
be worth one vend.
TUBE STATUS
Controller Command Code Coin Changer Response Data
TUBE STATUS 0AH 18 byte: Z1-Z27
Indicates the greatest number of coins that the changer “knows” reliably can be paid
out. A bytes position in the 24-byte string indicates the number of coins in a tube for a
particular coin type. For example, the first byte sent indicates the number of coins in a
tube for coin type 0. Bytes not sent are assumed to be zero.
CashCode Company Inc Page 26 of 60
PT# MAN_CCNET Rev.2.3.1 NOV 2002
NOTE: If a Coin Changer can detect a tube jam, defective tube sensor, or other malfunction, it will indicate
the tube is “bad” by sending a tube full status and a count of zero for the malfunctioning coin type.
Indicates state of the Coin Changer and its activity. The Coin Changer may send 1or 2 of the following
data bytes:
Response data
Description
bytes
Z1 Z2
10H Power Up The state of Coin Changer after power up
The state, in which Coin Changer executes initialization
11H Initialize
on the RESET command of the Controller.
In this state Coin Changer waits for an inserting of coin
12H Idling
into its front bezel.
In this state Coin Changer validates a coin and
13H Accepting
determines its denomination.
The Coin Changer has been disabled by the Controller
14H Unit Disable and also the state in which Coin Changer is after
initialization
The Coin Changer is busy and cannot answer a
14H Changer Busy
detailed command right now.
16H Changer Pay Out Busy The Coin Changer is busy activating Pay Out devices.
17H Escrow request An escrow lever activation has been detected.
Two coins were detected too close together to validate
18H Double Arrival
either one.
A coin was validated but did not get to the place in the
19H No Credit
system when credit is given.
A coin has been validated, but did not follow the
13H Coin Routing Error
intended routing.
The Coin Changer has detected that the validator has
13H Generic Acceptor Error
been removed or not responding.
The Coin Changer has detected one of the tube
13H Defective Tube Sensor
sensors behaving abnormally.
13H Coin Jam A coin(s) has jammed in the acceptance path.
A tube Pay Out attempt has resulted in jammed
13H Tube Jam
condition.
xxxx = coin type deposited (0 to 15).
40 - 4FH Coin accepted to cash
Z Z = number of coins in the tube for the coin type
(0100xxxx) box
accepted.
xxxx = coin type deposited (0 to 15).
50 - 5FH
Z Coin accepted to tube Z = number of coins in the tube for the coin type
(0101xxxx)
accepted.
60 - 6FH Not used
xxxx = coin type deposited (0 to 15).
70 - 7FH
Z Coin was rejected Z = number of coins in the tube for the coin type
(0111xxxx)
accepted.
A bit is set to indicate a coin type is accepted. For example, bit 6 is set to indicate coin type 6, bit 15 is set
to indicate coin type 15, and so on. To disable the changer, disable all coin types by sending a data block
containing 000000H. All coins are automatically disabled upon reset.
A bit is set to indicate dispense enable. For example, bit 2 is set to enable dispensing of coin type 2. This
command enables/disables manual dispensing using optional inventory switches. All manual dispensing
must be disabled while in the sales mode.
DISPENSE
Controller Command Code Controller Data
DISPENSE 0DH 2 bytes: Y1-Y2
If two coin types have the same value, the highest coin type must be paid out first.
Bytes Description
Z1-Z5 Model No. & Model Code – 5 bytes
Z6-Z12 Serial Number – 7 bytes Factory assigned serial number
Z13-Z16 Version – 4 bytes Current software version
Z17-Z19 Country – 3 bytes ISO code
Bytes Z1-Z19 must be sent as ASCII Characters zero (30H) and blanks (20H) are acceptable.
DOWNLOAD
Controller Command Code Controller Data
This command is not implemented in current Coin Changer software releases and will always return an
INV response.
5.1 Introduction.
This section defines the communication bytes sent and received between the Bill Validator and the
Controller. Unless stated otherwise, all information is assumed to be in a hexadecimal format. The Bill
Validator’s address is 03H.
If a Controller command is received by the Bill Validator, which is not executable in its present state, the
Bill Validator issues ILLEGAL COMMAND message.
The IDENTIFICATION, GET BILL TABLE, DOWNLOAD and REQUEST STATISTICS commands should
be sent by the Controller when Bill Validator is in the following states: Power up, Initialize, one of the
Failure states (41H-47H) or Unit Disabled. Otherwise an ILLEGAL COMMAND response will be returned.
RESET
Controller Command Code Controller Data
RESET 30H No data bytes
This command is used to tell the Bill Validator that it must return to its default operating mode. It must
abort all communication, reject any bills in the validation process, return any bills in the escrow position,
and disable all other activity until otherwise instructed by the Controller.
GET STATUS
Controller Command Code Validator Response Data
GET STATUS 31H 6 bytes: Z1 – Z6
Z1-Z3 Bill Type, 3 bytes. Indicates the bill enables for bill types 0 to 23.
Z4-Z6 Bill Security Levels, 3 bytes. Indicates the security level for bill types 0 to 23.
Bill Type
Byte Z1 bits Byte Z2 bits Byte Z3 bits
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
Bill types enabled if bits set
2 2 2 2 1 1 1 1 1 1 1 1 1 1 9 8 7 6 5 4 3 2 1 0
3 2 1 0 9 8 7 6 5 4 3 2 1 0
SET SECURITY
Controller Command Code Controller Data
SET SECURITY 32H 3 Bytes: Y1 – Y3
A bit is set to indicate the type of bill(s), which are set to a “high” security level.
Indicates state of the Bill Validator and its activity. The Bill Validator may send 1or 2 of the following data
bytes:
Response data
Description
bytes
Z1 Z2
10H Power Up The state of the Bill Validator after power up
Power up with bill in the Bill Validator. After a RESET
Power Up with Bill in
11H command from the Controller Bill Validator returns the
Validator
bill and continues initializing.
Power up with bill in Stacker (Bill was transported too
Power Up with Bill in far to be returned). After the Bill Validator is reset and
12H
Stacker INITIALIZING is complete, status will immediately
change to STACKED(81H) (Credit Recovery feature).
Bill Validator executes initialization after the RESET
13H Initialize
command from Controller.
Bill Validator waits for an inserting of bill into its bill
14H Idling
path.
Bill Validator executes scanning of a bill and
15H Accepting
determines its denomination.
Bill Validator transports a bill from Escrow position to
drop cassette and remains in this state until the bill is
17H Stacking
stacked or jammed.
NOTE: On power-up or reset all bill acceptance and escrow are disabled.
STACK
Controller Command Code Controller Data
STACK 35H No data bytes
This command causes the Bill Validator to send the bill in escrow position to the drop cassette.
NOTE: After a STACK command the Bill Validator should respond to a POLL command with the BILL
STACKED message within 30 seconds. If this command is sent when the Bill Validator is not in ESCROW
state the ILLEGAL COMMAND message is returned.
RETURN
Controller Command Code Controller Data
RETURN 36H No data bytes
This command causes the Bill Validator to return bill in escrow position to the customer.
NOTE: After a RETURN command the Bill Validator should respond to a POLL command with the BILL
RETURNED message within 30 seconds. If this command is sent when the Bill Validator is not in
ESCROW state the ILLEGAL COMMAND message is returned.
Bytes Description
Z1-Z15 Part Number – 15 bytes, ASCII characters
Z16-Z27 Serial Number – 12 bytes Factory assigned serial number, ASCII characters
Z28-Z34 Asset Number – 7 bytes, unique to every Bill Validator, binary data
Bytes Z1-Z27 must be sent as ASCII Characters. Zero (30H) and Blank (20H) are acceptable. Asset
Number must be sent as binary code.
15 bytes 12 bytes 7 bytes
FL-US1701 00K038AS3419 Binary code
Asset Number
Serial Number
Model
This command is valid in the following states only: Power up, Initialize, one of the Failure states (41H-47H)
or Unit Disabled.
HOLD
Controller Command Code Controller Data
HOLD 38H No data bytes
This command allows the controller to hold Bill Validator in Escrow during 10 s. After this time the
Controller should send the STACK or RETURN command. For continued holding in an Escrow state it is
necessary to resend this command. Otherwise the Bill Validator will execute return of a bill.
Z1-Zn - n bytes ASCII of barcode data, n is equal min 6 bytes, max 18 bytes. Data is sent most significant
byte first. Parameter n is assigned by command SET BARCODE PARAMETERS.
This command may be sent at any time after the Bill Validator responds to the Poll command by event
80H, 81H or 82H and the bill type indicates barcode token presence (23). Barcode data of a successful
reading is preserved until next bill will be inserted. Otherwise an ILLEGAL COMMAND response will be
returned.
Example:
Denomination Country Denomination
Bill Type Code Code Code Denomination
First Byte 3 bytes Second Byte
0 0x1 ITL 0x3 1,000 Lira
1 0x2 ITL 0x3 2,000 Lira
2 0x5 ITL 0x3 5,000 Lira
3 0x5 NLC 0x82 .05 Crown
4 0x19 NLC 0x82 .25 Crown
5 0x19 NLC 0x81 2.5 Crown
6 0x19 NLC 0x0 25 Crown
7 0x19 NLC 0x2 2500 Crown
8 0x1 USA 0x0 1 Dollar
9 0x5 USA 0x0 5 Dollar
10 0x1 USA 0x1 10 Dollar
11 0x2 USA 0x1 20 Dollar
This command is valid in the following states only: Power up, Initialize, one of the Failure
states (41H-47H) or Unit Disabled.
This command is valid in the following states: Power up, Initialize, one of the Failure states (41H-47H) or
Unit Disabled.
DOWNLOAD
Controller Command Code Controller Data
DOWNLOAD 50H NONE
Upon receipt of this command and issuing of confirmation ACK the Bill Validator transits to download
mode. In this mode the Bill Validator receives DOWNLOAD command with sub-commands only. All other
commands will be ignored.
Issuing of confirmation ACK by Bill Validator to the DOWNLOAD command is delayed for up to the time of
command execution (200 ms).
This command is valid in the following states: Power up, Initialize, one of the Failure states (41H-47H) or
Unit Disabled.
Command for polling boot loader program status. This command should be send for transition to
download mode and after issuing operation command.
Z1 If Z1= 00H boot loader program is ready to execute download commands;
If Z1= E0H boot loader program has executed previous operation command successfully;
If Z1= E1H boot loader program has executed previous operation command with error.
Request for memory block size. Further programming with “DOWNLOAD – Write To Memory” must be
performed with blocks of this size. No defaults are defined for data block size, and no assumptions should
be made – valid response to block size request is the only way of evaluating the actual block size for the
session given.
Z1 If Z1= E0H - CRC of freshly written code matched the one supplied with code itself;
If Z1= E2H - CRC of freshly written code did not match the one supplied with code itself;
REQUEST STATISTICS
Controller Command Code Bill Validator Response Data
REQUEST STATISTICS 60H 4358bytes: Y1-Y4358
To describe the Bill Validator performance characteristics more meaningfully all cumulative data are
grouped into three aggregates of counters. The first aggregate is formed by 16 sets of 96 counters each.
The second aggregate is formed by 20 sets of 46 counters each. The third aggregate is formed by 20 sets
of one counter each. Each aggregate keeps track of Bill Validator events on a different statistical basis.
In the first aggregate sets are averaged by 10000 inserted bills, in the second aggregate sets are
averaged by 500 inserted bills, and in the third aggregate – by 50 inserted bills.
The first aggregate counters are populated after insertion of every 10000 bills is completed, second - after
insertion of 500 bills, third - after insertion of 50 bills. Aggregates contain circular buffers, i.e. one set of
counters in every aggregate always contains current results. For every aggregate counter sets are output
the most recent set last, therefore if circular buffer is not full zeroes will precede normal statistic data.
Such organization of the statistical data allows analyzing change of the characteristics of Bill Validator
depending on number of the inserted bills for various scales with point’s 10000 bills, 500 bills and 50 bills.
Below as an example the diagrams of change of some characteristics for these three scales are given.
98%
97%
96%
95%
94%
93% n=10000
Number of
n 2n 3n 4n 5n 6n 7n 13n 14n 15n 16n 17n 18n 19n 20n
n inserted bills
Diagram 2
Total number
of jams
6
5
4
3
2
1 n=50
Bytes Description
Z1-Z3 Country Code – 3 bytes, ASCII characters
Z4 Denomination count – 1 byte (number of denominations accepted), binary
Z5 Data format version – 1 byte, RESERVED FOR FACTORY USE
Last statistics reset Date and Time – 8 bytes, format shown below:
- LSB of year (ex: for year 2002, it’s 210 decimal), 1 byte (Z6);
- MSB of year (ex. for year 2002, it’s 7 decimal), 1 byte (Z7);
- Month, 1 byte (Z8);
Z6-Z12
- Day, 1 byte (Z9);
- Hour (24-hour based), 1 byte (Z10);
- Minutes, 1 byte (Z11);
Seconds, 1 byte (Z12).
Z13 Reserved
Z14-Z25 Serial Number – 12 bytes, ASCII
Z26-Z32 Reserved
Other bits of first byte – hex representation of the most significant digit of the denomination.
Example:
Denomination Country Denomination Denomination
Code Code Code
First Byte 3 bytes Second Byte
0x1 USA 0x0 1 Dollar
0x5 USA 0x0 5 Dollars
0x1 USA 0x1 10 Old Dollars
0x41 USA 0x1 10 New Dollars
0x2 USA 0x1 20 Old Dollars
0x42 USA 0x1 20 New Dollars
0x5 USA 0x1 50 Old Dollars
0x45 USA 0x1 50 New Dollars
0x1 USA 0x2 100 Old Dollars
0x41 USA 0x2 100 New Dollars
0x1 MXN 0x1 10 Pesos
0x2 MXN 0x1 20 Old Pesos
0x42 MXN 0x1 20 New Pesos
0x5 MXN 0x1 50 Old Pesos
0x45 MXN 0x1 50 New Pesos
0x1 MXN 0x2 100 Pesos
0x2 MXN 0x2 200 Pesos
0x5 MXN 0x2 500 Pesos
Names of currencies comprise a formatted ASCII data string where currency names appear in a sequence
corresponding to the table of denominations. Currency names are separated by slash. String is terminated
with dot.
Example:
Dollar/Peso.
Command REQUEST STATISTICS is valid in the following states: Power up, Initialize, one of the Failure
states (41H-47H) or Unit Disabled.
If statistic data is not correct Bill Validator sends an error response with data field set to 31H (INVALID
STATISTIC DATA).
6.1 Introduction
This section defines the communications bytes sent and received between Card Reader and the
Controller. The Card Reader ‘s address is 04H.
Unless stated otherwise, all information is assumed to be in hexadecimal format. The numbers will be sent
most significant byte first.
6.2.1 Inactive
This is the state of the card reader at power up or after a reset. All cards except for stored value cards (for
balance inquiry after internal initialization completes) will not be accepted. The card reader cannot leave
this state until all SETUP information is received from the Controller.
6.2.2 Disabled
The card reader automatically enters this state from the Inactive state when it has received all SETUP
information from the Controller and completes its internal initialization. It will also enter the Disabled state
from the Idling state when it receives the READER/DISABLE command. While in the Disabled state,
stored value cards will be accepted (for balance inquiries), but no vending requests will be granted.
6.2.3 Idling
In this state, cards may be used for transactions. The card reader will remain in this state until a valid card
is read (when it will enter the Ready for Transaction state), a READER/DISABLE command is received
(when it will return to the Disabled state) or a RESET is received (when it will enter the Inactive state).
Other VEND subcommands will cause the card reader to leave the Ready for Transaction state and enter
the Vending state when products are purchased.
6.2.6 Busy
This state is entered when Card Reader starts performing internal operations and exited upon completion
of internal operations. Exit is done to the state present before entering Busy, except for error conditions
appeared while in Busy.
RESET
Controller Command Code Controller Data
RESET 30H No data bytes
This command is the vehicle that the Controller must use to tell the Card Reader that it must return to the
Inactive state. With the exception of the ACK response, it must abort all communication, terminate any
ongoing transaction (with a refund, if appropriate), eject the card (if applicable), and go to the Inactive
state until otherwise instructed by the Controller.
The Controller must follow the RESET command with the SETUP and ENABLE/DISABLE commands to
enable vending transactions. RESET command is not valid for Vending, Busy and Vend OK/Vend Failed
states. If received with any of these states active, a COMMAND INVALID response is issued.
Indicates the Card Reader is responding to a SETUP request from the Controller. This
response includes the following data:
Z2 = Miscellaneous options
b0 Fund Restoring capable
0= the card reader is NOT capable of restoring funds to
the user’s card or account. Do not request refunds.
1= the card reader is capable of restoring funds to the
user’s card or account. Refunds may be requested.
b1 Continuous Payment capable
0= the card reader is NOT capable of collecting funds
from multiple cards for single payment. Money
withdraw request will be denied if funds are insufficient
in authorized card.
1= the card reader is capable of collecting funds from
multiple cards for single payment. Money withdraw
request will be approved even if funds are insufficient
in authorized card
Other bits are ignored (under card reader capabilities level 01) and may be
set to any value.
POLL
Controller Command Code Controller Data Response Data
POLL 33H No data Z1 up to Z2
The POLL command is used by the Controller to obtain information from the Card Reader. This
information may include user actions, hardware malfunctions, software malfunctions or information
explicitly requested by the controller.
Controller may receive the following POLL responses from the Card Reader:
Z1 = 01H INACTIVE:
Indicates the Card Reader has been reset, due to either an external RESET or an
internally detected condition.
Z1 = 05H DISABLED:
Indicates the Card Reader has received all SETUP information from the Controller and
completed its internal initialization. Card Reader will also enter the Disabled state from
the Idling state when it receives the ENABLE/DISABLE command.
Z1 = 06H IDLING:
In this state cards may be used for transactions. Card Reader will enter the Idling state
from the Disabled state when it receives the ENABLE/DISABLE command.
Z1 = 08H VENDING:
This state is entered from the Idling state upon reception of a VEND REQUEST
command from the Controller.
Z1 = 09H MALFUNCTION/ERROR:
The Card Reader is reporting a malfunction or error. This response includes the
following information:
xxxx =
0010: Card Error (e.g. stored value card removed while transaction is in progress,
or a no-value card read incomplete)1 or 2
0100: Communications Error (checksum error/data frame inconsistent)2
1000: Reader Failure3
Other values not defined under card reader capabilities level 01.
VEND/BEGIN SESSION
Controller Command Code/Subcommand Controller Data Response Data
VEND/BEGIN SESSION 13H Y1 none
Y1 = 10H VEND BEGIN SESSION - subcommand.
Indicates that VMC is requesting card authentication from the Card Reader. This
command may only be issued in Idling state, otherwise a COMMAND INVALID will be
returned. If a stored value card is already authenticated, the Ready for Transactions
state will be entered immediately. For the no stored value card an invitation is issued for
the user to insert/swipe a card, and after completed, Ready for Transactions state is
entered. It’s at Controllers discretion to terminate this condition if a time-out occurs
without a card being authenticated, as this state is never left on Card Reader’s initiative
for no stored value cards and left on Card Reader’s initiative when card is removed for
stored-value cards.
VEND/GET FUNDS
Controller Command Code/Subcommand Controller Data Response Data
VEND/GET FUNDS 13H Y1 Z1-Zn
Y1 = 00H VEND GET FUNDS - subcommand.
All subsequent data exists for stored value cards only and consists of N 8-byte blocks, one block
per each “wallet” with different currency in the card. Wallets are numbered sequentially as they
arrive in response to VEND/GET FUNDS, starting from 0.
Z5-Z8 = Wallet balance in “composite” format, i.e. binary unsigned integer value; Z9 least
significant bits compose the fractional part – to obtain the exact value Z5…Z8 should be
treated as a 32-bit binary value, then divided by 10^Z9; the division result is the integer
part of funds value, the remainder stays for the fractional part.
Z9 = Number of decimal places.
VEND/VEND REQUEST
Controller Command Code/Subcommand Controller Data Response Data
VEND/
VEND REQUEST 13H Y1 – Y10 none
Y1 = 01H VEND REQUEST - subcommand.
Indicates the customer has made a selection. The Controller is requesting vend
approval from the Card Reader before dispensing the product. The Card Reader enters
state Vending after reception of this command and keeps it until transaction is finalized
(state Vend OK is entered) or error occurs (state Vend Fail is entered). The state is
preserved until successful read-out.
Y1 = 02H VEND REQUEST REFUND - subcommand.
Indicates the controller is requesting a refund for the given wallet with amount given.
The Card Reader enters state Vending after reception of this command and keeps it
until transaction is finalized (state Vend OK is entered) or error occurs (state Vend Fail
is entered). The state is preserved until successful read-out.
VEND REQUEST and VEND REQUEST REFUND commands are valid only in Ready
For Transaction state, otherwise COMMAND INVALID is issued.
VEND/VEND CANCEL
Controller Command Code/Subcommand Controller Data Response Data
VEND/ 13H Y1 Z1
VEND CANCEL
Y1 = 03H VEND CANCEL - subcommand.
This command can be issued by the Controller to cancel a VEND REQUEST command
before the Card Reader has sent a VEND APPROVED/DENIED. The Card Reader will
respond to VEND CANCEL with a VEND DENIED or VEND CANCEL FAILED and
return to the Idling state. State preserved until successful read-out. This command is
valid only in Vending state, otherwise COMMAND INVALID response is issued.
VEND/SESSION COMPLETE
Controller Command Code/Subcommand Controller Data
VEND/
SESSION COMPLETE 13H/04H Y1
Y1 = 04H SESSION COMPLETE – subcommand.
This tells the Card Reader that the session is complete and to return to Idling state.
ENABLE/DISABLE
Controller Command Code/Subcommand Controller Data
READER/DISABLE 14H Y1
Any transaction in progress will not be affected and must continue to its normal completion.
IDENTIFICATION
Controller Command Code Card Reader Response Data
IDENTIFICATION 15H Z1 – Z34
Bytes Description
Z1-Z15 Part Number – 15 bytes, ASCII characters
Z16-Z27 Serial Number – 12 bytes Factory assigned serial number, ASCII characters
Z28-Z34 Asset Number – 7 bytes, unique to every Card Reader, binary data
Bytes Z1-Z27 must be sent as ASCII Characters. Zero (30H) and Blank (20H) are acceptable. Asset
Number must be sent as binary code.
15 bytes 12 bytes 7 bytes
FL-US1701 00K038AS3419 Binary code
Asset Number
Serial Number
Model
DOWNLOAD
Controller Command Code Controller Data
DOWNLOAD 50H No data bytes
Command for transition Card Reader to download mode. Currently not defined and returns COMMAND
INVALID response.
POLL ------>
<------ INITIALIZE Bill-to-Bill unit is initializing
ACK ------>
POLL ------>
<------ INITIALIZE Bill-to-Bill unit is initializing
ACK ------>
POLL ------>
<------ UNIT DISABLE All bill types are disabled
ACK ------>
Enable sequence
Controller Bill-to-Bill unit Comments
ENABLE BILL TYPES ------> Enable appropriate bill types
<------ ACK
POLL ------>
<------ IDLING Bill-to-Bill unit is waiting accepting of
bill
ACK ------>
POLL ------>
<------ ESCROW POSITION Bill type in escrow position
ACK ------>
.
.
.
POLL ------>
<------ ESCROW POSITION Bill type in escrow position
ACK ------>
POLL ------>
<------ STACKING Bill is stacking
ACK ------>
.
.
.
POLL ------>
<------ BILL STACKED Bill has been stacked
ACK ------>
POLL ------>
<------ IDLING Bill-to-Bill unit is waiting accepting of
bill
ACK ------>
POLL ------>
<------ ESCROW POSITION Bill type in escrow position
.
.
.
POLL ------>
<------ ESCROW POSITION Bill type in escrow position
ACK ------>
POLL ------>
<------ RETURNING Bill is returning
ACK ------>
.
.
.
POLL ------>
<------ BILL RETURNED Bill has been returned
ACK ------>
POLL ------>
<------ IDLING Bill-to-Bill unit is waiting acceptance of
bill
ACK ------>
POLL ------>
<------ BILL DISPENSING Bill transporting to dispenser
ACK ------>
.
.
.
POLL ------>
<------ BILL DISPENSED Dispense is completed. Bills pay to
customer.
ACK ------>
POLL ------>
<------ IDLING Bill-to-Bill unit is waiting accepting of
bill
ACK ------>
POLL ------>
<------ BILL UNLOADING Bill transporting to drop cassette.
ACK ------>
.
.
.
POLL ------>
<------ BILL UNLOADED Unload is completed. All Recycling
Cassettes are empty. (All banknotes
stacked in drop cassette.
ACK ------>
POLL ------>
<------ IDLING Bill-to-Bill unit is waiting acceptance
of bill
ACK ------>
POLL ------>
<------ SETTING Bills transporting to drop cassette.
CASSETTE TYPE
ACK ------>
.
.
.
POLL ------>
<------ SET CASSETTE Setting recycling cassette type is
TYPE completed.
ACK ------>
POLL ------>
<------ IDLING Bill-to-Bill unit is waiting acceptance
of bill
ACK ------>
POLL ------>
<------ INITIALIZE Bill Validator is initializing
ACK ------>
POLL ------>
<------ INITIALIZE Bill Validator is initializing
ACK ------>
POLL ------>
<------ BILL STACKED Bill Validator confirmation signal
ACK ------>
POLL ------>
<------ UNIT DISABLE All bill types are disabled
ACK ------>