Multi-Drop Bus / Internal Communication Protocol
Multi-Drop Bus / Internal Communication Protocol (MDB/ICP) — это новейшая американо-европейская версия протокола многоточечной шины, используемая в индустрии торговых автоматов, в настоящее время опубликованная Американской национальной ассоциацией автоматической торговли и поддерживаемая Европейской ассоциацией торговых автоматов и Европейской ассоциацией производителей торговых автоматов. Она основана на более ранних версиях схожего протокола (также известных как MDB в США), датируемых по крайней мере 1980-ыми годами[1][2].
Внутреннее устройство[править | править код]
Многоточечная шина, используемая контроллерами торговых автоматов для связи с компонентами торгового автомата, такими как купюроприёмник, также называется MDB (Multi-Drop Bus).
Используется с 1980-х годов и в настоящее время является открытым стандартом Национальной ассоциации автоматической торговли (NAMA).
Устройства взаимодействуют в конфигурации с одним ведущим устройством и несколькими ведомыми устройствами, используя протокол, который основан на 9-битном UART Motorola, использующем 8-битное значение данных с дополнительным битом режима.
Бит режима обеспечивает распознавание байтов адреса и байтов данных.
Ведущее устройство отправляет сообщения, содержащие один байт адреса и переменное количество байтов данных.
Ведомые устройства шины прослушивают адрес, и если он совпадает с их адресом, то ведомое устройство обрабатывает сообщение и отвечает ведущему устройству[3].
Хотя 9-битные совместимые UART не популярны в ПК, их можно найти во многих микроконтроллерах. Физическое соединение реализовано как последовательная шина с фиксированной скоростью передачи данных 9600 бод. Есть всего 2 сигнала связи плюс необходимый опорный сигнал общего заземления.
Сигнал TX идет от ведущего устройства к каждому ведомому устройству. Сигнал RX идет от каждого ведомого устройства к ведущему устройству.
На линиях обоих сигналов имеются подтягивающие резисторы. Шина управляется на каждом передатчике драйвером транзистора с открытым коллектором и изолируется на каждом приемнике с помощью оптоизолятора - хотя кабельные жгуты, передающие сигналы связи, могут также передавать 24-вольтовые сигналы питания и заземления к устройствам, что означает, что устройства могут не быть изолированы друг от друга, поскольку они используют одну и ту же шину питания.
Однако некоторые устройства могут иметь альтернативные источники питания, особенно устройства с двигателями и высокими потребностями в токе, такие как старые купюроприемники.
Различные элементы торгового автомата обмениваются между собой на скорости 9600 бод. Уровень сигналов TTL, но рекомендуется оптронная развязка.
Физически все компоненты подключаются по одному проводу (для чего, обычно, у устройства или его кабеля есть 2 разъема, что позволяет включать его в разрыв шины, наращивать количество устройств.) Используются 2 линии данных RX и TX, общий, а также отдельно питание +34 вольта сглаженное и его общий, который можно соединять с сигнальным общим проводом. Некоторые устройства допускают использование несглаженного выпрямленного пульсирующего напряжения 24 вольта, из которого в устройстве получается 34 вольта сглаживающими конденсаторами.
Поскольку линии шины едины для всех устройств, вендинговый автомат использует адресацию, предопределённую для разных типов устройств (таким образом, на шине может находиться только одно устройство одного типа). По стандарту версии 3.0, доступны следующие устройства по следующим адресам:
Адрес Назначение
00000xxxB (00H) Reserved for VMC
00001xxxB (08H) Changer
00010xxxB (10H) Cashless Device #1
00011xxxB (18H) Communications Gateway
00100xxxB (20H) Display
00101xxxB (28H) Energy Management System
00110xxxB (30H) Bill Validator
00111xxxB (38H) Reserved for Future Standard Peripheral
01000xxxB (40H) Universal Satellite Device #1
01001xxxB (48H) Universal Satellite Device #2
01010xxxB (50H) Universal Satellite Device #3
01011xxxB (58H) Coin Hopper or Tube - Dispenser
01100xxxB (60H) Cashless Device #2
01101xxxB (68H) Reserved for Future Standard Peripherals
. . .
. . .
. . .
11011xxxB (D8H) Reserved for Future Standard Peripherals
11100xxxB (E0H) Experimental Peripheral #1
11101xxxB (E8H) Experimental Peripheral #2
11110xxxB (F0H) Vending Machine Specific Peripheral #1
11111xxxB (F8H) Vending Machine Specific Peripheral #2
Обратите внимание, что:
- чистого монетоприемника в стандарте нет, только монетоприемник с выдачей сдачи - Changer - и он может быть только один. Хотя само устройство может и не иметь функции сдачи, вендинговый автомат может требовать от него выдавать сдачу;
- Coin Hopper or Tube - Dispenser - не монетоприемник, а исключительно устройство выдачи монет (сдачи). Хотя конструктивно иногда делают так, что монеты из Changer, не имеющего сдачи, падают в бункер-накопитель Coin Hopper и могут быть выданы клиенту автомата;
- Bill Validator - купюроприемник - может быть только один, а вот устройств безналичного приема денег Cashless Device (например, терминалов эквайринга банковских карт) - два в одной системе;
- для обхода этих ограничений, выделены диапазоны адресов Experimental Peripheral #1 и Experimental Peripheral #2, которые могут быть присвоены второму монетоприемнику или купюроприемнику, однако для этого во-первых, они должны иметь возможность быть запрограммированы на ответ по этим адресам, венддинговый автомат должен знать, что эти адреса задействованы именно под этот тип устройства, и надо учитывать, что система становится нестандартной для ремонта заменой стандартно прошитого оборудования.
- в стандарте предусмотрен адрес для устройства проверки возраста покупателя через проверку наличия у него водительских прав американского образца. Эксперименты с этим оборудованием проводились в 80-е годы 20-го века, но большого развития не получили, в большинстве стран мира продажа алкоголя, табака через вендинговые автоматы запрещена законом.
История[править | править код]
MDB изначально был фирменной шиной, используемой CoinCo для своих монетоприемников в конце 1980-х годов, и был развернут в больших объемах в торговых автоматах для Coca-Cola.
Компания Coca-Cola заставила CoinCo сделать его открытым исходным кодом в 1992 году, чтобы повысить конкуренцию, а NAMA выпустила первую версию стандарта в 1995 году, что позволило другим поставщикам конкурировать за часть монетоприемников торговых автоматов (CoinCo и Mars были двумя основными поставщиками в Северной Америке в то время), а также позволило подключать альтернативные схемы оплаты (например, на основе смарт-карт) к существующим торговым автоматам.
Адресация шины основана только на типе устройства, что позволяет использовать очень простой стек протоколов, не проводя первоначальной инициализации имеющихся устройств и назначения им адресов.
Таймлайн развития[править | править код]
- Август 2019 г.: Выпущена версия 4.3 (седьмой выпуск MDB)[4]
- Февраль 2011 г.: Выпущена версия 4.2 (шестой выпуск MDB/ICP)[1]
- Июль 2010 г.: Выпущена версия 4.1 (пятый выпуск MDB/ICP)
- Апрель 2009 г.: Выпущена версия 4.0 (четвертый выпуск MDB/ICP)
- Март 2003 г.: Выпущена версия 3.0 (третий выпуск MDB/ICP)[5]
- Октябрь 2002 г.: Выпущена версия 2.0 (второй выпуск MDB/ICP)
- Октябрь 1998 г.: Выпущена версия 1.0 (первый выпуск MDB/ICP)
- 1994 г.: Пересмотренный документ EVMMA.
- Август 1994 г.: Пересмотренный документ NAMA.
- 1994 г.: Оригинальный документ EVMMA.
- Октябрь 1993 г.: Оригинальный документ NAMA.
- Более ранние версии в США были известны как MDB, а не MDB/ICP. До этого это был фирменный протокол, разработанный CoinCo.
См. также[править | править код]
- Документация MDB/ICP
- National Automatic Merchandising Association
- European Vending Association
- European Vending Machine Manufacturers Association
- Multidrop bus
- EIA-485
- 1-Wire
Внещние ссылки[править | править код]
Примечания[править | править код]
- ↑ 1,0 1,1 "Multi-Drop Bus / Internal Communication Protocol - MDB / ICP - Version 4.2" (PDF).
- ↑ "Overview of Vending Machine Interfaces" (PDF). European Vending Association. 2012.
- ↑ "MDB Specification Version 4.2" (PDF). NAMA. Архивировано из оригинала (PDF) 27 июня 2015. Дата обращения: 11 октября 2018.
- ↑ "MDB v4.3" (PDF).
- ↑ "Multi-Drop Bus / Internal Communication Protocol - MDB / ICP - Version 3.0" (PDF). Архивировано из оригинала (PDF) 17 мая 2018.