 |
Разделы |
 |
|
|
|
|
|
|
|
|
|
|
 |
Подключение устройств к PC по протоколу MDB |
 |
|
|
|
|
|
Для подключения к компьютеру платёжных систем работающих по протоколу MDB нужно использовать адаптер.
Мы попробовали в работе много адаптеров доступных в продаже и хотим поделиться опытом с общественностью.
|
|
 |
|
Такие адаптеры делают все кому не лень в разных странах и продают их, почему то за 100-1000$,
Притом, что себестоимость у него не более 15$ и суть его работы состоит в преобразовании уровней RS232 в TTL, т.е. супер-стандартная вещь. Однако в состав адаптера при желании можно ещё включить контроллер для обработки команд по протоколу MDB с тем, чтобы в порт компьютера передавать данные в более удобном для программиста виде. Контроллер при этом выполняет бесполезную функцию буфера, являя собой, чёрный ящик и если писатели прошивки для него были недостаточно добросовестны, то вам, программируя драйвер на верхнем уровне, придётся считаться с допущенными ими просчётами. Но согласно логике продавцов, с контроллером адаптер выглядит более внушительно, поэтому его легче продать за бо’льшие деньги. Даже есть отговорка, для чего нужно использовать контроллер и почему нельзя работать с шиной MDB напрямую программно, она состоит в том, что Windows не может гарантировать время исполнения команды и на базе программы (драйвера) под эту О/С, нельзя реализовать систему разделения времени, в которой бы без сбоев смогли работать периферийные устройства. т.е. допускается возможность того, что данные от периферийных устройств могут быть потеряны или неверно получены. Это было бы правдой, если бы мы не говорили о периферийных устройствах ценой 500$ (например, монетоприёмник CoinCo Global2) с собственной серьезной платой управления. А мы говорим именно о них, о дорогих платёжных системах, для которых и был разработан протокол MDB, разумеется, в протоколе предусмотрены команды RET (повтор данных), ACK(данные приняты корректно), NAK(данные приняты не корректно требуется повтор) в конце серии данных передаётся контрольная сумма, а сами периферийные устройства имеют буферы данных и вообще работают в режиме escrow, т.е. если устройство передаёт данные о принятой монете или купюре, то оно не успокоится, пока не получит подтверждение что данные были приняты VMC (в нашем случае компьютером) и корректно.
(Хотя даже используя простейший импульсный протокол при подключении, например, купюроприёмника к компьютеру нет никаких сложностей, правильно организовав драйвер, дать гарантию на то, что все импульсы будут посчитаны, верно, и вовремя. Или, наоборот, при подключении купюроприёмников по сложному протоколу CCNET (похож на MDB) ни у кого не возникает желания вместо распайки на COM-порт использовать адаптер с контроллером)
Ещё говорят о 9-битном стандарте передачи данных в MDB, когда «бит чётности» используется для указания направления передачи в качестве «бита режима», что якобы сложно реализовать на базе COM-порта компьютера, зато легко на микроконтроллере. Так вот, на самом деле, нет никакой разницы.
Быть может, использование адаптеров со своей системой команд, было бы оправданно если бы это в значительной степени облегчало задачу программисту и позволяло в более сжатые сроки реализовать поддержку того или иного устройства по MDB, но в тех моделях адаптеров, с которыми нам довелось работать, их верхняя система команд была очень похожа на внутрипротокольную, или имелись запутанные библиотеки для универсальной работы с разными устройствами, хотя чаще бывает необходимость реализовать поддержку конкретного устройства, а не стандарт подключения в теории. К тому же на практике разные устройства по MDB работают со своими нюансами, на которые надо делать поправки и универсальность здесь штука относительная.
В итоге, написание драйвера для прямой работы с шиной MDB занимает у программиста 2 дня, а работает надёжнее чем с использованием промежуточных контроллеров т.к. есть целостная связь между логикой верхнего уровня и исполнительным (периферийным устройством) с возможностью оперативного внесения правок в код, при необходимости, на любом уровне.
Для тех, кто не хочет сам заниматься написанием драйвера для связи устройства работающего по MDB с PC, мы можем предложить готовое решение за 50$ - адаптер + драйвер + тестовая утилита.
|
|
| Скачать описание МDB протокола |
|
|
|