Документация

Протокол MDB: как работи

MDB (Multi-Drop Bus) е интерфейсът, чрез който контролерът на вендинг машина общува с платежната си периферия. Тази страница обяснява частите от него, които са нужни, за да добавите платежен или фискален модул.

За какво служи MDB

Вендинг машината има един контролер — VMC — и около него набор платежни устройства: монетник, банкнотоприемник, картов или безконтактен четец. MDB е общият език между тях. Тъй като е публикуван отраслов интерфейс, а не протокол на конкретен производител, четец от един доставчик може да се монтира в машина от друг.

Точно това прави шината важна за интегратора: тя е шевът, по който съществуваща машина може да се модернизира, без да се сменя самата машина.

Master и slave устройства

MDB е строго master-slave. VMC е master и е единственото устройство, което може да започне обмен; всяка периферия е slave, който отговаря при запитване и никога не говори пръв. Slave, който има какво да съобщи — пусната монета, поднесена карта — изчаква следващото запитване.

Следствието за всеки, който пише фърмуер за шината, е че отзивчивостта се определя от интервала на запитване, а не от вашия код. Решение, което предполага, че може да прекъсне master-а, няма да работи.

Формат на серийния кадър

MDB работи като асинхронна серийна връзка на 9600 bit/s с девет бита данни, без паритет и с един стоп бит. Деветият бит е това, което кара шината да работи: master-ът го вдига, за да отбележи първия байт на съобщението като адрес, и го сваля за следващите байтове с данни. Така всеки slave веднага знае дали байтът започва нова транзакция, или продължава текуща.

Това е най-честото препятствие, когато някой се опита да реализира MDB на универсален микроконтролер: стандартен UART с осем бита данни не може да предаде mode бита, а обичайното решение е паритетният бит да се използва като девети.

Адреси на периферията

Всеки клас периферия има фиксиран адрес на шината, така че master-ът знае с какво говори, без стъпка на откриване. Адресите, които интеграторът среща най-често:

АдресПериферия
0x08Монетник
0x10Безкасово устройство №1
0x30Банкнотоприемник
0x60Безкасово устройство №2

Двата адреса за безкасови устройства съществуват именно за да може машината да носи два независими четеца — така фискален модул може да се добави към машина, която вече има картов терминал.

Как протича безкасова продажба

Последователността е кратка и си струва да се знае, защото повечето грешки при интеграция са стъпка, изпълнена не по ред:

  • Master-ът нулира четеца, прочита конфигурацията му и го разрешава.
  • Четецът изчаква, запитван непрекъснато, докато клиент поднесе плащане.
  • Master-ът иска от четеца да одобри конкретен артикул и цена.
  • Четецът отговаря одобрено или отказано; едва тогава машината издава продукта.
  • Master-ът потвърждава резултата, за да може четецът да финализира или анулира плащането.

Последната стъпка е тази, която най-често се пропуска — и точно заради това клиентите биват таксувани за продукт, който не са получили.

Къде се вписват нашите модули

FisLight се вгражда в снопа между контролера на машината и серийната ѝ периферия: носи два независими UART канала и inhibit линия, така че фискално устройство или принтер може да се добави и към машина с един свободен порт. Свързва се към съществуващия IDC сноп, без преправяне на окабеляването.

Документация на ниво платка

Разположението на конекторите, клемите, изискванията към захранването и бележките по фърмуера се издават за конкретна платка и ревизия на фърмуера, затова се изпращат при запитване, а не се публикуват като страница, която може незабелязано да остарее. Кажете ни машината и платката, около която проектирате, и ще изпратим съответния комплект.

Изводите, клемите и бележките по фърмуера са обвързани с конкретна ревизия на платката, затова ги изпращаме директно, вместо да публикуваме страница, която може да остарее. Кажете ни машината и ще изпратим съответния комплект.

Заявете даташит

Заявка за оферта

Кажете ни каква е машината и какво трябва да прави. Отговаряме с подходящата платка, нейната документация и цена за вашия обем.

Заявка за оферта