Таймер для купюрника Taiko
 

Еще одна разработка на тему купюрников. Таймер имеет кодовое название PayLock. Он работает по протоколу ID-003. Стандартные функции: опрос и настройка купюрника, прием платежа, включение нагрузки и ее отключение по истечении времени.

На матричный ЖКИ выводится информация об общей сумме платежей и оставшемся времени работы.  Таймер собран на контроллере Atmega48.

Обмен данных по протоколу ID-003 идет пакетами по принципу запрос-ответ. Инициатором запросов всегда выступает контроллер(т.е. хост). Купюрник в ответ посылает данные о своем статусе. Пакет(или сообщение) состоит из стартового байта 0xFC и данных(длина пакета, команда и служебные данные). Пакет закрывается своим CRC16. Порядок байтов CRC: LSB, MSB.

Физически данные передаются через интерфейс UART с параметрами 9600, 8E1. На выходе стоят оптопары для гальванической развязки. По сети гуляет не совсем корректная схема некоего адаптера для подключения к купюрнику на MAX232. Лучше на нее не смотреть и для связи с контроллером(TTL-уровни) сразу использовать следующую схему:

Особенность разработки была в том, что в наличии у меня не было самого купюрника. На этапе отладки мы использовали программу TCP-COM. Она позволяет через интернет напрямую соединять COM-порты компьютеров. В результате получилось подобие гигантского кабеля протяженностью в несколько тысяч километров, а я получил прямой доступ к живому аппарату. Недостаток в том, что пакеты данных могут запаздывать на 1-2 сек, но для отладки было терпимо. 
Комапния JCM выпустила полезную утилиту JCM003 Host Simulator. Она позволяет поуправлять купюрником с компьютера и изучить правильную последовательность конфигурации. Но в моем случае потребовался еще и симулятор купюрника для общения с контроллером-таймером. Поскольку такой программы у JCM нет, то я ее написал.

Т.к. мне не нужно было делать полный симулятор, то программа имеет некоторые ограничения:
-не проверяется CRC16 входных данных;
-симулируются не все возможные состояния аппарата;
-ограничен набор входных команд.
Команды установки ENABLE(DISABLE), DIRECTION, FUNCTION и MODE принимаются и подтверждаются, но на симулятор влияния не оказывают. Неподдерживаемые команды также не влияют на работу.

    Скачать:

    Спецификация протокола ID-003.

    Подпрограмма расчета CRC16 для AVR.

     Мой симулятор купюроприемника.

    Логи обмена данных с купюрником.
 

На главную

Hosted by uCoz