ccTalk (pronounced see-see-talk) 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 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
Interfacing with a coin acceptor. In the previous article, we saw how to create ccTalk packets and requests.Now, let's interface a coin acceptor, handle its returned data and process it!
The protocol was developed at a company called Coin Controls (hence coin-controls-talk, later called Money Controls and from 2010 Crane Payment Solutions) on the outskirts of Manchester in north-west England mainly by Engineer Andrew William Barson. The first release of the protocol was in 1996.[2]
The ccTalk protocol is an open standard.[1]:13
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 Flow hopper is available in two interfaces. Standard parallel interface or ccTalk serial interface. Supplied with standard quick-fit and release plate. Features: Compatible with other popular hopper devices. One configuration for euro coins. 10ct to 2 euro coins. Disk can reach a payout speed of 7 coins per second for euro's.
- Multi ccTalk Interface. The SuzoHapp Multi ccTalk is an Interface board between ccTalk peripheral devices and PC, vending or gaming machines. Features a USB-B and RS232 Serial connector to connect with any device. Has a TTL connector, four 3-pin ccTalk connectors and connectors for Hoppers, Coin Acceptors and Bill Acceptors.
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 Serial Interface Download
ccTalk protocol stacks have been implemented on a range of devices from tiny Microchipmicrocontrollers 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.
Cctalk Serial Interface Software
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.[3][4]
An Example ccTalk Message Packet[edit]
TX data = 2 0 1 245 8
- 2 = destination address
- 0 = zero data bytes
- 1 = source address
- 245 = command header ‘Request equipment category id’
- 8 = checksum ( 2 + 0 + 1 + 245 + 8 = 256 = 0 mod 256 )
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
- 1 = destination address
- 13 = 13 data bytes
- 2 = source address
- 0 = reply header
- 67…114 = ASCII for ‘Coin Acceptor’
- 22 = checksum ( sum of all packet bytes is zero )
The reply from address 2 back to address 1 identifies it as a coin acceptor.
Details[edit]
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,17For 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 theArchived 2017-10-16 at the Wayback Machine.Issue 4.7