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">IPv4</span> Fourth version of the Internet Protocol

Internet Protocol version 4 (IPv4) is the first version of the Internet Protocol (IP) as a standalone specification. 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.

<span class="mw-page-title-main">Point-to-Point Protocol</span> Data link layer communication protocol

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.

ping (networking utility) Network utility used to test the reachability of a host

ping is a computer network administration software utility used to test the reachability of a host on an Internet Protocol (IP) network. It is available for virtually all operating systems that have networking capability, including most embedded network administration software.

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.

In computer networking, the User Datagram Protocol (UDP) is one of the core communication protocols of the Internet protocol suite used to send messages to other hosts on an Internet Protocol (IP) network. Within an IP network, UDP does not require prior communication to set up communication channels or data paths.

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

I2C (Inter-Integrated Circuit; pronounced as “eye-squared-see” or “eye-two-see”), alternatively known as I2C or IIC, is a synchronous, multi-controller/multi-target (historically termed as multi-master/multi-slave), single-ended, serial communication bus invented in 1982 by Philips Semiconductors. It is widely used for attaching lower-speed peripheral integrated circuits (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.

<span class="mw-page-title-main">1-Wire</span> Device communications bus system

1-Wire is a wired half-duplex serial bus designed by Dallas Semiconductor that provides low-speed (16.3 kbit/s) data communication and supply voltage over a single conductor.

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

<span class="mw-page-title-main">Modbus</span> Serial communications protocol

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

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).

<span class="mw-page-title-main">Display Serial Interface</span> Specification by MIPI

The Display Serial Interface (DSI) is a specification by the Mobile Industry Processor Interface (MIPI) Alliance aimed at reducing the cost of display controllers in a mobile device. It is commonly targeted at LCD and similar display technologies. It defines a serial bus and a communication protocol between the host, the source of the image data, and the device which is the destination. The interface is closed source, which means that the specification of the interface is not open to the public. The maintenance of the interface is the responsibility of the MIPI Alliance. Only legal entities can be members. These members or the persons commissioned and approved by them have access to the specification in order to use it in their possible applications.

M-Bus or Meter-Bus is a European standard for the remote reading of water, gas or electricity meters. M-Bus is also usable for other types of consumption meters, such as heating systems or water meters. The M-Bus interface is made for communication on two wires, making it cost-effective. A radio variant of M-Bus Wireless M-Bus is also specified in EN 13757–4.

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 computers 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, also known as SenseWire, 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.