Vending Machine/MDB-ICP protocol

From Nottinghack Wiki
Jump to navigation Jump to search

The Multi-Drop Bus/Internal Communications Protocol (MDB/ICP protocol) is a voluntary standard for vending machine communication. This is a serial bus interface working at 9600baud in a master-slave arrangement, where the vending machine controller is the master. Each peripheral is assigned a unique address and command set.

MDB has support for the following devices:-

  • Coin Changer
  • Bill Validator
  • Cashless devices
  • Communications Gateway
  • Universal Satellite Device
  • Coin Hopper or Tube Dispenser

In order to operate the serial line as a bus with multiple devices attached MDB uses a 9bit serial over the traditional 8bit, 9n1 vs 8n1 The master polls each device for activity, all communication sessions are initiated by the master addressing a slave, slaves are only allowed to respond when addressed, this prevents bus collisions.

The master indicates an address byte/start of session by setting the 9th bit, the correct slave responds as needed and on sending it's last byte it also sets the 9th bit to indicated end of it's session (although the master will ACK this)