CcTalk

Last updated

ccTalk is a serial protocol in widespread use throughout the money transaction and point-of-sale industry. Peripherals such as the currency detectors for coins and banknotes found in a diverse range of automatic payment equipment such as transportation, ticketing, payphones, amusement machines, and retail cash management use ccTalk to talk to the host controller. The ccTalk protocol is an open standard. [1] :13

Contents

ccTalk is one of 2 protocols specified by BACTA for use in all AWP machines with serial coin acceptors. (The other is the Host Intelligent Interface protocol developed by Mars Electronics International). [1] :20 It was developed at a company called Coin Controls (hence "cc") on the outskirts of Manchester in north-west England mainly by Engineer Andrew William Barson. The first release of the protocol was in 1996. Coin control would later be renamed Money Controls and from 2010, Crane Payment Solutions. [2]

The protocol uses an asynchronous transfer of character frames in a similar manner to RS232. The main difference is that it uses a single two-way communication data line for half-duplex communication rather than separate transmit and receives lines. It operates at TTL voltages and is ‘multi-drop’ i.e. peripherals can be connected to a common bus and are logically separated by a device address. Each peripheral on the ccTalk bus must have a unique address. The original protocol operated at 4800 baud with subsequent releases standardising on 9600 baud. Low cost bridge chips are now available from a number of manufacturers to allow ccTalk to run over USB at baud rates of at least 1 Mbit/s.

ccTalk protocol stacks have been implemented on a range of devices from tiny Microchip microcontrollers with 512 bytes of ROM to powerful ARM7 32-bit processors. [1] :12–13 The protocol supports all standard operations for electronic devices such as flash upgrading of firmware, secure transfer of data and detailed diagnostic information.

Advantages of ccTalk include low cost UART technology, a simple-to-understand packet structure, an easily expandable command interface and no licensing requirements. The latter affords the protocol a good deal of popularity in a crowded and highly competitive field similar to open-source software.

Details

The ccTalk protocol is a byte-oriented protocol. The series of bytes in a message—represented above as a series of decimal numbers—is transmitted as 8-N-1.

Many devices have single electrical connector that carries both power (typically +12 V or +24 V) and the ccTalk data over a total of 4 wires.

To reduce cost, for short interconnection distances CPI recommends sending ccTalk data over an unbalanced multi-drop open-collector interface: both transmit and receive messages occur on the same bi-directional serial DATA line at TTL level, driven through an open-collector NPN transistor. The pull-up resistor at the host pulls the DATA line to +5 V, so logical 1 (and idle) is nominally +5 V, and logical 0 (and start bit) is nominally 0 V. [1] :15,17 For longer distances, CPI recommends sending ccTalk data over a balanced multi-drop RS-485 driver interface, also nominally +5 V and 0 V. [1] :17

Secure peripherals require all bytes of a message to be encrypted, except for the first two bytes—the destination address byte and the data-length byte are never encrypted to allow standard and secure peripherals to be mixed on the same bus. [1] :26

The total length of a message packet can range from a minimum of 5 bytes (data-length byte equal to 0) to 260 bytes (data-length byte equal to 255). Longer transfers require a series of message packets. [1] :28

An Example ccTalk Message Packet

TX data = 2 0 1 245 8

This is a message from address 1 ( the host ) to peripheral address 2 to find out what it is.

RX data = 1 13 2 0 67 111 105 110 32 65 99 99 101 112 116 111 114 22

The reply from address 2 back to address 1 identifies it as a coin acceptor.

Secure extensions

In 2010, DES encryption was added to certain commands so that it could be made more resilient against attacks on the bus. [2] Each peripheral has its own unique DES key, which it communicates to the Game Machine on a "trusted key exchange mode". Key rotation is available. The intention is that cracking one peripheral does not compromise the whole system, and that a cracked one could change its keys. [3] [4] DES is considered insecure right from the start due to the small key size and has been further analyzed, but it does slow down fraudsters who might insert devices to tap onto the communication wire.

A much stronger encryption protocol is found in Italian NewSlot machines. This scheme uses Diffie–Hellman key exchange and AES-256. The use of DH prevents eavesdropping of the key exchange, while AES is still unbroken meaning an impossibly long brute-force process would be required. [5]

Coin and Note Naming

A number of associated standards have emerged over the years from within the ccTalk specification. For example, the global tags to identify the world’s forever changing coins and notes.

In ccTalk a coin has a 6 character identifier of the format

<2-letter country code><3-digit value><1-letter issue code>

The country code conforms to ISO 3166. The issue code is assigned to different issue dates or special mint variations of the same coin.

e.g.

Bank notes follow the same pattern but 4 characters are allocated to the value and there is an associated scaling factor, usually x100, with the country.

e.g.

Related Research Articles

The Internet Control Message Protocol (ICMP) is a supporting protocol in the Internet protocol suite. It is used by network devices, including routers, to send error messages and operational information indicating success or failure when communicating with another IP address, for example, an error is indicated when a requested service is not available or that a host or router could not be reached. ICMP differs from transport protocols such as TCP and UDP in that it is not typically used to exchange data between systems, nor is it regularly employed by end-user network applications.

<span class="mw-page-title-main">Internet Protocol version 4</span> Fourth version of the Internet Protocol

Internet Protocol version 4 (IPv4) is the fourth version of the Internet Protocol (IP). It is one of the core protocols of standards-based internetworking methods in the Internet and other packet-switched networks. IPv4 was the first version deployed for production on SATNET in 1982 and on the ARPANET in January 1983. It is still used to route most Internet traffic today, even with the ongoing deployment of Internet Protocol version 6 (IPv6), its successor.

In computer networking, Point-to-Point Protocol (PPP) is a data link layer communication protocol between two routers directly without any host or any other networking in between. It can provide loop detection, authentication, transmission encryption, and data compression.

<span class="mw-page-title-main">SCSI</span> Set of computer and peripheral connection standards

Small Computer System Interface is a set of standards for physically connecting and transferring data between computers and peripheral devices, best known for its use with storage devices such as hard disk drives. SCSI was introduced in the 1980s and has seen widespread use on servers and high-end workstations, with new SCSI standards being published as recently as SAS-4 in 2017.

Telnet is a client/server application protocol that provides access to virtual terminals of remote systems on local area networks or the Internet. It is a protocol for bidirectional 8-bit communications. Its main goal was to connect terminal devices and terminal-oriented processes.

<span class="mw-page-title-main">Universal asynchronous receiver-transmitter</span> Computer hardware device

A Universal Asynchronous Receiver-Transmitter is a peripheral device for asynchronous serial communication in which the data format and transmission speeds are configurable. It sends data bits one by one, from the least significant to the most significant, framed by start and stop bits so that precise timing is handled by the communication channel. The electric signaling levels are handled by a driver circuit external to the UART. Common signal levels are RS-232, RS-485, and raw TTL for short debugging links. Early teletypewriters used current loops.

<span class="mw-page-title-main">I²C</span> Serial communication bus

I2C (Inter-Integrated Circuit; pronounced as “eye-squared-C” or “eye-two-C”), alternatively known as I2C or IIC, is a synchronous, multi-master/multi-slave (controller/target), single-ended, serial communication bus invented in 1982 by Philips Semiconductors. It is widely used for attaching lower-speed peripheral ICs to processors and microcontrollers in short-distance, intra-board communication.

Serial Peripheral Interface (SPI) is a de facto standard for synchronous serial communication, used primarily in embedded systems for short-distance wired communication between integrated circuits.

The System Management Bus is a single-ended simple two-wire bus for the purpose of lightweight communication. Most commonly it is found in chipsets of computer motherboards for communication with the power source for ON/OFF instructions. The exact functionality and hardware interfaces vary with vendors.

A human interface device or HID is a type of computer device usually used by humans that takes input from or provides output to humans.

Modbus or MODBUS is a client/server data communications protocol in the application layer. It was originally published by Modicon in 1979 for use with its programmable logic controllers (PLCs). Modbus has become a de facto standard communication protocol for communication between industrial electronic devices in a wide range of buses and network.

LIN is a network protocol used for communication between components in modern vehicles. It is a low-cost single-wire serial protocol that supports communications up to 19.2 Kbit/s with a maximum bus length of 40 metres (131.2 ft).

The HART Communication Protocol (Highway Addressable Remote Transducer) is a hybrid analog+digital industrial automation open protocol. Its most notable advantage is that it can communicate over legacy 4–20 mA analog instrumentation current loops, sharing the pair of wires used by the analog-only host systems. HART is widely used in process and instrumentation systems ranging from small automation applications up to highly sophisticated industrial applications.

SDI-12 is an asynchronous serial communications protocol for intelligent sensors that monitor environment data. These instruments are typically low-power, are used at remote locations, and usually communicate with a data logger or other data acquisition device. The protocol follows a client-server configuration whereby a data logger requests data from the intelligent sensors, each identified with a unique address.

<span class="mw-page-title-main">Digital Addressable Lighting Interface</span> Trademark for network-based product

Digital Addressable Lighting Interface (DALI) is a trademark for network-based products that control lighting. The underlying technology was established by a consortium of lighting equipment manufacturers as a successor for 1-10 V/0–10 V lighting control systems, and as an open standard alternative to several proprietary protocols. The DALI, DALI-2 and D4i trademarks are owned by the lighting industry alliance, DiiA.

Internet 0 is a low-speed physical layer designed to route 'IP over anything'. It was developed at MIT's Center for Bits and Atoms by Neil Gershenfeld, Raffi Krikorian, and Danny Cohen. When it was invented, a number of other proposals were being labelled as "internet 2". The name was chosen to emphasize that this was designed to be a slow, but very inexpensive internetworking system, and forestall "high-performance" comparison questions such as "how fast is it?"

In building automation, eBUS is a 2-wire digital serial data-bus communication interface used in heating and solar energy appliances, by mainly German manufacturers. It was originally proposed by the Karl Dungs company, and has since been adopted by several other manufacturers. The eBUS interface has also been used by home-automation enthusiasts to connect their domestic solar or heating system to a networked PC for monitoring or remote control.

<span class="mw-page-title-main">Atari SIO</span>

The Serial Input/Output system, universally known as SIO, was a proprietary peripheral bus and related software protocol stacks used on the Atari 8-bit family to provide most input/output duties for those computers. Unlike most I/O systems of the era, such as RS-232, SIO included a lightweight protocol that allowed multiple devices to be attached to a single daisy-chained port that supported dozens of devices. It also supported plug-and-play operations. SIO's designer, Joe Decuir, credits his work on the system as the basis of USB.

<span class="mw-page-title-main">I3C (bus)</span> Serial bus specification

I3C is a specification to enable communication between computer chips by defining the electrical connection between the chips and signaling patterns to be used. Short for "Improved Inter Integrated Circuit", the standard defines the electrical connection between the chips to be a two wire, shared (multidrop), serial data bus, one wire (SCL) being used as a clock to define the sampling times, the other wire (SDA) being used as a data line whose voltage can be sampled. The standard defines a signalling protocol in which multiple chips can control communication and thereby act as the bus controller.

Multi-Drop Bus / Internal Communication Protocol (MDB/ICP) is the latest, US-European iteration of a multidrop bus computer networking protocol used within the vending machine industry, currently published by the American National Automatic Merchandising Association and supported by the European Vending Association and the European Vending Machine Manufacturers Association. It is based on earlier protocols dating back to at least the early 1990s.

References

  1. 1 2 3 4 5 6 7 "ccTalk Serial Communication Protocol: Generic Specification" Archived 2017-10-16 at the Wayback Machine . Issue 4.7
  2. 1 2 "Money Controls"
  3. ""DES Encryption for Coin Acceptors and Bill Validators"". Archived from the original on 2017-08-08. Retrieved 2017-08-08.
  4. ""DES Encryption for Hoppers"". Archived from the original on 2017-07-21. Retrieved 2017-08-08.
  5. "HOPPER CD ccTalk + AES Operator's Manual" (PDF). Alberici. June 28, 2019. Retrieved 13 May 2023. The ccTalk commands implemented in this device are the ones reported on the document "List of the commands of the ccTalk protocol for the Italian market", law 289 - comma 6", which specifies the ccTalk Italy package of commands currently in use (see "ccTalk Italy communication protocol"), but modified so as to make the peripheral compliant with the new security requirements established by the document "Technical Table Report 2012, 3.3, 2nd edition - Peripheric 27.02.2013", to which the reader is referred for details.