||This article includes a list of references, but its sources remain unclear because it has insufficient inline citations. (August 2013)|
A multidrop bus (MDB) is a computer bus in which all components are connected to the electrical circuit. A process of arbitration determines which device sends information at any point. The other devices listen for the data they are intended to receive.
Multidrop buses have the advantage of simplicity and extensibility. However, modern SDRAM chips exemplify the problem of electrical impedance discontinuity.[clarification needed] Fully Buffered DIMM is an alternative approach to connecting multiple DRAM modules to a memory controller. Since 2000, multidrop standards such as PCI and Parallel ATA are increasingly being replaced by point-to-point systems such as PCI Express and SATA.
The multidrop bus used by vending machine controllers to communicate with the vending machine's components, such as a currency detector, is also called MDB (for MultiDropBus). In use since the 1980s, it is now an open standard of the National Automatic Merchandising Association, or NAMA. The devices communicate in a single-master, multiple-slave configuration using the MDB protocol, which is based on a Motorola[specify] 9-bit UART implemented as an 8-bit data value with an additional mode bit. The mode bit differentiates between ADDRESS and DATA bytes. The master sends messages containing one address byte and a variable number of data bytes. The bus "slave devices" listen for an address, and if it matches their address that slave device will process the message and respond to the master. Though 9-bit compliant UARTs are not popular in PCs, they can be found in many microcontrollers.
The physical connection is realized as a serial bus with a fixed data rate of 9600 baud. There are just 2 communications signals plus the essential common-ground reference signal. The TX signal goes from the MASTER to every SLAVE device. The RX signal goes from every SLAVE device to the MASTER device. Both signals have pull-ups. The bus is driven at every transmitter by an open collector transistor driver, and isolated at each receiver with an opto-isolator - though cable harnesses carrying the communication signals may also carry 24-volt power and ground signals to devices, meaning the devices may not be isolated from each other as they share the same power bus. Some devices, however, may have alternate power supplies, especially devices with motors and high current needs such as vintage bill acceptors or currency detector devices.
MDB originated as a proprietary bus used by CoinCo for their coin-acceptors in the late 1980s and was deployed in high volume in vending machines for Coca-Cola. Coke forced CoinCo to "open-source it" in 1992 to increase competition, and NAMA released the first version of the standard in 1995, allowing other vendors to compete for the coin-acceptor portion of the vending machines (CoinCo and Mars were the 2 major suppliers in North America at the time) and also enabled alternative payment schemes (e.g. Smartcard based) to be connected to existing vending machines.
Bus addressing is based on the device type only, which allows for a very simple protocol stack, as no initial enumeration needs to be performed.
The ccTalk multidrop bus protocol uses an 8 bit TTL-level asynchronous serial protocol. It uses address randomization to allow multiple similar devices on the bus (after randomisation the devices can be distinguished by their serial number). ccTalk was developed by CoinControls, but is used by multiple vendors.