воскресенье, 13 октября 2013 г.

Кое-что о протоколе ccTalk

Используется такой протокол во всевозможных аппаратах, работающих с приёмом/выдачей денег для связи контроллера с устройствами приёма/выдачи денег. Это торговые автоматы, игровые, терминалы оплаты. Это не единственный протокол у них, но один из стандартных. Однако ничто не запрещает использовать его и в других применениях, например для опроса клавиатуры, связи с ЖК-дисплеем и т.д. (такие варианты спецификацией даже предусмотрены).

Позволяет подключать на одну шину много устройств, прост в реализации. Подробные спецификации есть на сайте http://www.cctalk.org/ в 4 pdf-файлах, причём с примерами реализации для популярных устройств (монетоприёмники, купюроприёмники).

В этой записи я расскажу про некоторые основные моменты, которые не становятся понятны с первого прочтения спецификации.

Для передачи используются 2 провода (сигнал и земля). Дальше - обычный UART. Линии приёма и передачи объединены в одну (как в 1-wire и аналогичных однопроводных последовательных асинхронных интерфейсах). Схема преобразователя (из спецификации):
Активное состояние на шине - 0. В отсутствии передачи - 1.
Логические уровни "0" - от 0В то 1В. "1" - от 3.5В до 5В. Хотя некоторые девайсы могут подтягивать шину до своего питания (а это до 24В) и это тоже должно работать.
Скорость стандартно 9600 бод, 8 бит данных, без паритета и управления потоком.

На сетевом уровне лежит простой протокол мастер-слейв. У всех устройств на шине есть свой уникальный адрес. Стандартно адреса заданы в соответствие со спецификацией для каждого типа устройств. Например, монетоприёмники имеют адрес 2. Обычно у всех устройств должна быть настройка для выбора адреса на случай если нужно повесить несколько одинаковых устройств на одну шину (либо через программу на ПК, либо выставлением перемычек). Мастер на шине всегда один и его адрес 1. Устройство (слейв) может отправить данные только в ответ на запрос от мастера т.о. вся сеть контролируется мастером. Так же как в Modbus или USB. В ответ на запрос мастера слейв отвечает либо подтверждением, либо ответной посылкой с данными (если были запрошены данные). Вообще спецификация допускает несколько устройств с одним адресом и различать их по задержкам, но это уже костыли для поддержки примитивных девайсов без смены адреса.

При нормальной работе мастер периодически опрашивает всех слейвов (раз в 100-200мс). Для купюро- монетоприёмников это команда чтения новых событий (вставлена монета, купюра). Пока слейв получает какие-то запросы от мастера (это могут быть и simple poll) он знает что мастер жив и можно принимать монеты/купюры. Как только слейв перестаёт принимать запросы от мастера некоторое время (несколько сек, по разному у всех), то он решает что мастер мёртв и перестаёт принимать монеты/купюры (или для других типов какая-то своя логика, не позволяющая устройству более взаимодействовать с пользователем). Например, купюрники сначала заглатывают купюру, отправляют информацию о ней и ждут в ответ следующей команды: принять или вернуть. Если мастер отвалился после заглатывания купюры и ответ что с ней делать не был получен, то через несколько секунд купюрник её возвращает. Так во всех устройствах реализуется защита от неприятных для пользователя ситуаций, например как эта:
Если есть несколько слейвов и их опрос выполнен в одном цикле, то нужно следить чтобы никто не блокировал этот цикл. Например, если при опросе устройства А возникает задержка более таймаута опросов у устройства Б, то устройство Б решит что мастер умер и нужно будет повторно инициализировать это устройтсво когда мастер дойдёт до опроса Б.

Для типичных устройств ccTalk (монетники, купюрники, хопперы) стандартизированы все команды и весь процесс работы с ними, так что не нужно разбираться с особенностями конкретного производителя. Хотя особенности могут быть, но не значительные так что можно в работающем автомате поменять монетник на другого производителя и всё должно продолжить работу. Особенности инициализации и опроса отдельных типов устройств подробно описаны в спецификации или может попасться в даташите на устройство.

Программные реализации протокола можно встретить готовые, или почти готовые. Впрочем, простота протокола позволяет реализовать его на любом языке довольно быстро. Я использовал Python и за основу взял этот проект: https://bitbucket.org/schryer/cctalk. Пришлось исправить горстку багов и дописать много кода для поддержки всех нужных устройств. Самая досадная ошибка (или по замыслу автора - фича т.к. он использовал USB2UART преобразователь) - это программное управление потоком включено. Из-за него были жуткие глюки, например строго на 16-м сообщении о внесении монеты терялся 1 байт и всё переставало работать. Помогло xonxoff=False при инициализации последовательного порта.

Так же пригодился сниффер: https://github.com/Baldanos/ccTools. Тоже на питоне.

Вот и всё что я хотел бегло рассказать про этот протокол. Оказался он лучше чем я представлял когда только начинал с ним работать. По крайней мере количество проблем оказалось меньше чем ожидалось в начале.

-=update=-
Что-то странное творится с сайтом и загрузкой спецификаций. На всякий случай дублирую спеку версии 4.7: part 1, part 2, part 3, part 4

21 комментарий:

  1. Если честно, не увидел отличий от Modbus. Непонятно же! Фишка в чем?

    ОтветитьУдалить
    Ответы
    1. Фишка в том что девайсы для работы с деньгами не имеют модбаса, а имеют ццтолк :)

      На самом деле отличия в реализации довольно существенные. Модбас по-сложнее и навороченее. Ещё определяет только сетевой и транспортный уровни, а физический может быть любым (RS485 самый популярный, бывает и поверх TCP или вообще чего угодно). ccTalk же определяет и физический уровень, хотя в принципе ничто не запрещает его использовать и на других физ.уровнях. Модбас определяет набор регистров доступных приложению, а их использование - на усмотрение приложения. ccTalk определяет весь набор команд, данных и алгоритмов для работы с определёнными устройствами. По Модбасу так же есть стандарты для различных девайсов, но это не часть самого протокола, а фишки отдельных девайсов/производителей.

      Удалить
  2. а подскажите рабочая ли это схема? у меня в руках хоппер с си си толк протоколом. Вот хочу поиграться с ним. Пробовали эту схему? думю подключить к компу через переходник усб-ком (ttl уровня).

    ОтветитьУдалить
  3. Да, рабочая, в 2-х экземплярах в т.ч. с преобразователем на усб-юарт

    ОтветитьУдалить
  4. а стабилитрончик какой стоит?

    ОтветитьУдалить
    Ответы
    1. Это диод Шоттки. Я вообще ставил первый что попался. В пдфке спецификации есть рекомендация по выбору транзисторов и диода в этой схеме

      Удалить
  5. всем привет. Может ктото подскажет как с помощью ссtalk (или любым другим способом :)) переключить передачу данных между программой и устройством на 8bit(no encrypted) . Какая команда за это отвечает и что нужно передать в ее параметрах. Я не специалист в это области поэтому могу что-то не так спросить, но суть в том что в спецификации передачи команд устройству таких как simple poll , опрос состояния и т.д все происходит с помощью 16bit шифрованных команд(если я правильно понял) , нигде в описании устройства или протокола cctalk не описывается как генерировать checksum.

    ОтветитьУдалить
  6. Добрый день. Это настраивается в девайсе. Может быть перемычками, может спец.софтом, может ещё как-то (у купюрников бывает специально распечатанными картами).
    16 битных команд нет. Все данные побайтно передаются. Команда может состоять из 2 байт, но это именно 2 байта, а не одна команда на 16 бит. Из 16 бит может состоять CRC, которая бьётся на 2 байта: перед хедером и в конце пакета. При шифровании шифруется всё сообщение с чексумами несредственно перед отправкой на физ.уровень.
    Алгоритм генерации чексум написан в первой пдфке специфификации:

    7.10 Simple Checksum
    This is a simple zero checksum such that the 8-bit addition ( modulo 256 ) of all the
    bytes in the message from the start to the checksum itself is zero. If a message is
    received and the addition of all the bytes is non-zero then an error has occurred. See
    'Action on Error' heading.
    For example, the message [ 1 ] [ 0 ] [ 2 ] [ 0 ] would be followed by the
    checksum [ 253 ] because 1 + 0 + 2 + 0 + 253 = 256 = 0.
    If a slave device receives a message intended for another device ( destination address
    does not match ) then it should ignore the checksum.
    7.11 CRC Checksum
    The CRC checksum used in ccTalk is the 16-bit CRC-CCITT checksum based on a
    polynomial of x^16+x^12+x^5+1 and an initial crc register of 0x0000.
    Refer to Appendix 9 for more details.

    ОтветитьУдалить
  7. Скажите, а типы ьоанзисторов можно уточнить? У меня с монетоприемником не завелась почему-то...

    ОтветитьУдалить
    Ответы
    1. Я пробовал 2SC945+2SA1015, 2N4401+2N4403. Тут оно не критично, у меня не было проблем с преобразователем за исключением необходимости использовать с уровнями 3.3В, но это отдельная легко решаемая проблема

      Удалить
    2. Спасибо большое. А то в местном радиомагазине какая - то профанация. Я понимаю, что не критично главное, чтобы токи были в пределах 0.1-0.2. В радиомагазине подобрать не смогли транзистор - вроде вы мне название притащите. В результате нашел у тестя каробку П416 для pnp, а npn у меня стоит С945. Схему протестил повесив ноги на + и 0 - вроде все открывается. Нашел схему подобную приведенной, вроде наш брат китаец делает такие изделия, но пока на микроконтроллере, работа не очень получилась. Странные значения возвращаются периодически.Буду продолжать биться.

      Удалить
    3. Олег! А вот еще вопрос, ежли не надоел. Диод шоттки. Я как понял, подойдет не любой, а маломощный с прямым током где-то 0.2А. Все дело в том, что я тут прочел "любой" и взял любой 1N5819. А у него ток 1А и мне сдаётся, что он банально не открывается. У братьев китайцев стоит bat54. Но там корпус такой маленький....просто ужас..... Я тут прочел, что по выбору элементов есть мануал к схеме, но в доке к cctalk я ее не нашел....Помогите пожалуйста с источником или подбором.

      Удалить
    4. Ну так больше - не меньше. Прямой ток 1А - это максимальный ток, который диод может пропустить, следовательно пойдёт за глаза. От диода тут требуется только низкое падение напряжения, собственно поэтому и Шоттки.
      Рекомендации есть в спеке 4 части, страница 82 https://drive.google.com/file/d/0B5ZizRCshX-wUE5FNXc4UHg4STg/edit?usp=sharing

      Удалить
  8. VarangaOfficial - варанга казань - проверенные и достоверные факты. Воспользовавшись нашим порталам, вы сможете узнать полную, всеисчерпывающую информацию касательно данного лекарственного средства. Увидеть данные о клиническом тестировании геля, прочесть реальные отзывы пациентов и врачей, использующих крем в своей лечебной практике. Изучить инструкцию по использованию, прочитать особенности и методы работы комплекса, уяснить, как работает крем Варанга, где можно заказать оригинальный сертифицированный препарат и, как избежать покупки подделки. Мы скурпулезно проверяем публикуемые данные. Предоставляем нашим пользователям сведения, взятые исключительно из достоверных источников. Если вы нашли у себя признаки развития грибка или уже довольно продолжительное время, без ощутимых результатов пытаетесь излечиться от этого коварного недуга, на нашем сайте вы отыщете быстрый и легкий способ устранения проблемы. Приобщайтесь и живите полноценной, здоровой жизнью. Теперь все ответы на самые популярные и волнующие пользователей вопросы, собраны на одном ресурсе.

    ОтветитьУдалить
  9. Интимный чат зрелых - это позиция, где любители зрелых зрелых дам находят своих поклонников. Очаровательные женщины в преклонном возрасте интересны разным аудиториям, но определенно, абсолютно любой выберет здесь покровительницу. Порно чаты не очень, цыпочки помогут не просто пофлиртовать, но и провести как интеллектуальную, так и интимную беседу. Опытные представительницы прекрасного пола глубоко и в полной мере понимают, как удовлетворить своего мужа и показать свои навыки в активном чате для зрелых. От контакта с пожилыми людьми можно добиться разных продуктов, очень часто, благодаря своей находчивости и изобретательности, дамы способны превзойти даже оригинальность и креативность молодых девушек. Эротический чат не очень, дамы накопили в мужской силе самых профессиональных и громких львиц, которые готовы сразу же начать возбужденно болтать на любые темы, и жаждут покорить сердца представителей сильной половины человечества своим незабываемым эротическим порно шоу. Присоединяйтесь к нам, чтобы посмотреть запись чатов не совсем, цыпочки прямо с этой минуты. Отправляйтесь в магазин, где очаровательные опытные куртизанки занимаются крайне непристойными делами. Зрелые на сайте - это категория, предназначенная для наших уважаемых и добрых старушек, сочных мам и старших сестер. Видеочат позволяет вам самим наблюдать за животным трахом матрон женщин на видео. Общайтесь, заводите необходимые знакомства в разделах "русские матроны чата", и проводите свое свободное время с удовольствием. Зарегистрируйтесь в интернете, чтобы в числе первых посмотреть запись чатов, если у вас вдруг не хватило времени на показ любимой модели. Зрелые люди на сайте пользуются спросом, как среди статной и состоятельной молодежи, так и среди неопытных юношей. Онлайн-чат даст вам возможность начать диалог с опытной дамой без каких-либо проблем, а для некоторых вариантов это поможет преодолеть ваши комплексы и нерешительность. Порно чаты не очень, дамы - это именно то место, где вы, несомненно, получите хорошую консультацию и никогда не будете обижены. Чат с опытными подготовил десятки уникальных нимф, жаждущих поделиться личным эротическим опытом с подрастающим поколением. В каталоге нашего видеочата нет примитивно одиноких зрелых дам, в то же время он представляет собой пару очаровательных красавиц. Зрелый онлайн чат поможет разнообразить их эротические ощущения, потому что только здесь опытные зрелые барышни показывают по веб-камере, как они развлекаются со страпонами, демонстрируют на заводные и сексуальные темы, дают ответы на непристойные вопросы. Если трансляция любимого актера была пропущена, легко посмотреть запись чатов, накануне того, как модель снова будет стоить. Не упустите возможность посмотреть интимные видео чаты не очень, я дам круглосуточно из любой точки земли. Незабываемое и интенсивное удовольствие от посещения нашего видеочата гарантировано! Не тратьте свое время, начните общаться сегодня! Когда вы лелеяли этот материал, и все спокойно хотели бы получить более подробную информацию о порно чат бесплатно Пожалуйста, посетите нашу собственную страницу.

    ОтветитьУдалить
  10. �� Все предложения по микрокредитам содержатся в описаниях мфо, нажав на символ предприятия в каталоге - вы сможете ознакомиться с самыми маленькими требованиями. ✅ Чтобы получить онлайн-кредит, нажмите "подробнее" - вы перейдете на сайт корпорации, где сможете заполнить заявку на обработку денежных средств. Все займы на карту в 2021 году выдаются круглосуточно, чаще всего на банковскую кредитную карту, но есть и вспомогательные способы дубляжа и варианты возврата: специализированные специализированные дизайны и виртуальные кошельки. �� Обязательно посетите страницы: Выгодно занять на кредитную карту (под доступную комиссию); беспроцентный микрозайм (0% до 30 дней); без проверки кредитной истории); без отказов (наиболее одобренный); Здесь вы быстро, за пять минут, найдете мгновенный займ онлайн, Особенно когда вы впервые берете долг онлайн. �� Чтобы срочно получить деньги в долг, пользователю потребуется удостоверение личности и телефон, однако подготовьте снилс или права. Некоторые мфо запрашивают дополнительные

    ОтветитьУдалить
  11. Тем, кто желает получить деньги под залог машины или ПТС, рекомендуем не спешить обращаться в банк. Проанализирует предложения по залоговым кредитам не только от банков, но и от специальных фирм кредит под залог авто. Займ в таких организациях выдаются в залог авто разных марок и моделей без строгих притязаний к заемщику.

    ОтветитьУдалить
  12. Курортная компания "байкальская империя" предлагает интересные туристические поездки на байкал зимой 2021-2022 годов. Для homo sapiens, туры на байкал из самары Ценящего динамичное долгое время, в случае щедрого отдыха с мыслями. Сибирская зима - здесь ледяной кислород, снежные шапки на вершинах гор, океан, закованный в ледяную броню. Низкотемпературные туристические поездки на байкал 2022 года позволяют ощутить колоссальную мощь давних времен, ну и элегантность каталонии, получить ни с чем не сравнимые ощущения от катания на собачьих упряжках, снегоходах в течение длительного времени, а также на лыжах, почувствовать непередаваемый дух гигиенических процедур на самых теплых площадках и чарующие впечатления от активного отдыха. Туристические пакеты, предлагаемые на нашей странице на байкал зимой 2022 года - есть несколько приложений для очень эксклюзивных, ну, хороших способов. Кроме того, на портале можно просмотреть исчерпывающий ассортимент ваучеров, а также их цену. Компания "байкальская империя" делает все, что в наших силах, чтобы, по возможности, больше наших и иностранных гостей ознакомилось с многовековой историей в случае невероятной красоты предлагаемых концов, так что прайс-лист на отдых на куршской косе зимой этого года наша компания постаралась скорректировать в соответствии с перспективами любого активного туриста любой категории. При расчете поезда на куршской косе зимой 2021-2022 годов также следует помнить, что будут проходить новогодние праздники! Успейте забронировать турпакет на байкал не позднее 2022 года. Торжественное давнее время, как и новогодняя программа, сопровождают общение с родной кухней, необычное свободное время, это подарит человеку самые яркие ощущения от рождественских поездок на байкал. Предприимчивым и любознательным людям в пустыне нравится величественное озеро байкал и зимние каникулы. Любые туристические пакеты рассчитываются до мелочей, включая питание, лыжное снаряжение, гостиницу, поездки и возможность обучения у опытных инструкторов. Посмотрите отзывы посетителей об отдыхе зимой на куршской косе. Мы верим, что тогда вы непременно захотите приехать в это место, чтобы ощутить своеобразную магию каталонии.

    ОтветитьУдалить
  13. Плакат - довольно распространенная разновидность рекламных щитов баннер недорого. Такой элемент является оптимальным методом привлечения внимания многих возможных покупателей, а также клиентов. В это время щиты вообще можно увидеть повсюду. Для того, чтобы печать рисунка была хорошей, в случае, если цена составляет внушительный ассортимент кальянной продукции, можно получить услугу печати в socks://xn----7sbbbhq0bpgaovq.Xn/. Типы врезок: 1. Щит. Самостоятельное устройство с перспективой крепления на фасадах любых домов. Два|2|два>>|два|2|два>>>. Мозаика. Только процент от этого процента может быть сохранен на фасаде, и таким образом независимый дизайн еще не был применен. Для установки понадобятся дюбели. Три. Лайтбокс. Устройство похоже на контейнер с корпоративным освещением. Четыре. Стена прессы. Рамка металлическая, в нее натянут рекламный щит с графикой. Пять. Брандмауэр. Их размещают на перегородках зданий, для освещения используют прожекторы. Печать в различных производствах Особенности штампы привязаны к сырью, из него сделан рекламный щит. Бумага. Нам нужна специальная бумага. Сайты с таким типом информации идеально подходят для рекламной информации в глубине квартиры или для еще не длинных наружных. Виниловая пленка для бронирования. Классный магазин для наружной рекламы. Картинки необычные, четкие, ну, высококлассные. Имеет значение. Он идеально подходит как для внешней, так и для дополнительной рекламной информации. Новая степень устойчивости к неблагоприятным климатическим требованиям во всем мире. Светопропускающая материя. Отличный выход для лайтбоксов в случае продвижения сайта на освещенных полках универмагов. Сетка. Подходит для штамповки крупногабаритных окон. Вы можете выставить его за пределы комнаты, попросив о любом виде эпиляции узкопрофильным веществом. Бросок. Влагостойкий ресурс. Печать хорошо продумана, но всегда хороша. Этапы производства Производство врезок происходит по хорошей современной технологии, это помогает готовить изделия с достаточно большим качеством. Только продвинутые профессионалы смогут сформировать эту деятельность. Прежде всего, формируется дизайн. На этом этапе они выясняют, что именно будет показано на баннере. Затем выбираются ресурсные материалы, оплата производится в зависимости от задач, к которым она может быть применена. Затем, в печатном станке, мастер наносит выбранную фотографию, хотя это далеко не так много. В конце нанесения изображений вам также понадобится список работ: отделка концов, слой с веществом при необходимости, склеивание нескольких материалов в один.

    ОтветитьУдалить
  14. На сайте нашей компании остается возможность купить аэрофотосъемку (резервную аэрофотосъемку), выполненную с использованием новейшего авиационного оборудования. Мы создаем качественные идеи различной сложности, предлагаем дизайн земельных участков, строительных блоков, небоскребов, мест для отдыха. Кроме того, наша компания проводит мероприятия в рамках торжеств, праздников. Широкий ассортимент беспилотных летательных аппаратов в загородном парке позволяет гарантированно выполнять запросы любой сложности, иметь опыт работы в условиях разнообразного сезона. Команда квалифицированных технологов работает в области предварительного зондирования и распределения конструкций. Как приобрести аэрофотосъемку Оформить партнерство с предоставленной нами студией довольно элементарно. У вас есть возможность перейти на нашу платформу - здесь посмотрите список наших работ, промежуточный бюджет. Связаться с оператором компании можно на сайте. В форме вы сможете приобрести дизайн из воздуха, сделать межевание земельного участка цена И рассчитайте цену работы. Как должна проходить фотосессия с воздуха Каждое событие или годовщину кто-то должен провести с помощью веб-сайтов или фотографий. Аэрофотосъемка, несомненно, считается наиболее распространенной в настоящее время при регистрации инцидентов. Резидент соглашается найти его в данный момент, для регистрации не всегда потребуется ни малейших дополнительных специальных навыков, однако есть только намерение, а также некоторые версии. В мастерской работают различные квалифицированные специалисты, что позволит проектировать симпатичный персонал с воздуха с помощью дрона. Потому что с высоты откроются все представленные великолепные формы изображения. Также можно будет выделить самые суперсовременные за долгое время и выгодные моменты. Идеи разрабатываются, а также готовятся индивидуально. Наша компания специализируется на топографической, кадастровой версии веб-камеры, но помимо этого мы снимаем различные общегородские, деловые мероприятия, торжества. Деятельность осуществляется в столице и регионах. Вы сможете купить аэрофотосъемку в офисе студии.

    ОтветитьУдалить
  15. Проверенные казино интернет содержат круглосуточный саппорт. Клубы поддерживают минимум 3 способа связи — e-mail, онлайн-чат, жаркую линию. Некоторые активно развивают каналы, группы в знаменитых социальных сетях. Клиенты все задавать вопросы, обращаться с неуввязками. Операторы техподдержки консультируют и подскажут лучшие забавы игровые автоматы топ 10, разъяснят верховодила, помогут с выводом выигрышей.

    ОтветитьУдалить