ccTalk
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
ccTalk — это последовательный протокол, широко используемый в сфере денежных операций и в точках продаж . Периферийные устройства, такие как детекторы монет и банкнот, встречающиеся в разнообразном автоматическом платежном оборудовании, таком как транспорт, билетная касса, таксофоны, развлекательные автоматы и системы управления наличностью в розничной торговле, используют ccTalk для связи с хост-контроллером. Протокол ccTalk является открытым стандартом . [1] : 13
ccTalk — это один из двух протоколов, рекомендованных BACTA для использования во всех автоматах AWP с последовательными монетоприемниками. (Второй — протокол Host Intelligent Interface, разработанный Mars Electronics International ). [1] : 20 Он был разработан в компании Coin Controls (отсюда и «cc») на окраине Манчестера на северо-западе Англии, главным образом инженером Эндрю Уильямом Барсоном. Первый выпуск протокола состоялся в 1996 году. Позже Coin Control будет переименован в Money Controls, а с 2010 года — в Crane Payment Solutions. [2]
Протокол использует асинхронную передачу символьных кадров аналогично RS232. используется одна линия двусторонней связи, Основное отличие состоит в том, что для полудуплексной связи а не отдельные линии передачи и приема. Он работает при напряжении TTL и является «многоточечным», т.е. периферийные устройства могут быть подключены к общей шине и логически разделены адресом устройства. Каждое периферийное устройство на шине ccTalk должно иметь уникальный адрес. Исходный протокол работал на скорости 4800 бод , а последующие версии стандартизировали скорость 9600 бод. В настоящее время ряд производителей предлагают недорогие мостовые чипы, позволяющие ccTalk работать через USB со скоростью передачи данных не менее 1 Мбит/с.
Стеки протоколов ccTalk реализованы на самых разных устройствах: от крошечных Microchip микроконтроллеров с 512 байтами ПЗУ до мощных ARM7 . 32-разрядных процессоров [1] : 12–13 Протокол поддерживает все стандартные операции для электронных устройств, такие как флэш- обновление прошивки, безопасную передачу данных и подробную диагностическую информацию.
Преимущества ccTalk включают недорогую технологию UART , простую для понимания структуру пакетов, легко расширяемый командный интерфейс и отсутствие требований к лицензированию. Последнее обеспечивает протоколу большую популярность в многолюдной и высококонкурентной сфере, подобной программному обеспечению с открытым исходным кодом.
Подробности
[ редактировать ]Протокол ccTalk — это байт-ориентированный протокол . Последовательность байтов в сообщении, представленная выше как серия десятичных чисел, передается как 8-N-1 .
Многие устройства имеют один электрический разъем, через который передается питание (обычно +12 В или +24 В) и данные ccTalk по 4 проводам.
Чтобы снизить затраты, для коротких расстояний межсоединений CPI рекомендует отправлять данные ccTalk через несбалансированный многоабонентский интерфейс с открытым коллектором: как передача, так и прием сообщений происходят по одной и той же двунаправленной последовательной линии ДАННЫХ на уровне TTL , управляемой через NPN с открытым коллектором. транзистор. Подтягивающий резистор на хосте подтягивает линию DATA до +5 В, поэтому логическая 1 (и холостой режим) номинально равна +5 В, а логический 0 (и стартовый бит) номинально равен 0 В. [1] : 15, 17 На большие расстояния CPI рекомендует отправлять данные ccTalk через симметричный многоточечный интерфейс драйвера RS-485 , также номинально +5 В и 0 В. [1] : 17
Безопасные периферийные устройства требуют, чтобы все байты сообщения были зашифрованы, за исключением первых двух байтов — байт адреса назначения и байт длины данных никогда не шифруются, чтобы обеспечить возможность одновременного использования стандартных и безопасных периферийных устройств на одной шине. [1] : 26
Общая длина пакета сообщения может варьироваться от минимум 5 байт (байт длины данных равен 0) до 260 байтов (байт длины данных равен 255). Для более длительных передач требуется серия пакетов сообщений. [1] : 28
Пример пакета сообщения ccTalk
[ редактировать ]Этот раздел может потребовать очистки Википедии , чтобы соответствовать стандартам качества . Конкретная проблема: используйте шестнадцатеричный формат. ( Май 2023 г. ) |
Данные передачи = 2 0 1 245 8
- 2 = адрес назначения
- 0 = ноль байтов данных
- 1 = адрес источника
- 245 = заголовок команды «Запросить идентификатор категории оборудования»
- 8 = контрольная сумма (2 + 0 + 1 + 245 + 8 = 256 = 0 по модулю 256)
Это сообщение с адреса 1 (хост) на периферийный адрес 2, чтобы узнать, что это такое.
Данные RX = 1 13 2 0 67 111 105 110 32 65 99 99 101 112 116 111 114 22
- 1 = адрес назначения
- 13 = 13 байт данных
- 2 = адрес источника
- 0 = заголовок ответа
- 67…114 = ASCII для «Монетоприемника»
- 22 = контрольная сумма (сумма всех байтов пакета равна нулю)
Ответ от адреса 2 обратно на адрес 1 идентифицирует его как монетоприемник.
Безопасные расширения
[ редактировать ]В 2010 году к некоторым командам было добавлено шифрование DES , чтобы сделать их более устойчивыми к атакам на шину. [2] Каждое периферийное устройство имеет свой собственный уникальный ключ DES, который оно передает игровому автомату в «режиме доверенного обмена ключами». Возможна ротация ключей. Цель состоит в том, чтобы взлом одного периферийного устройства не поставил под угрозу всю систему и чтобы взломанное устройство могло изменить свои ключи. [3] [4] DES с самого начала считается небезопасным из-за небольшого размера ключа и подвергается дальнейшему анализу, но он замедляет работу мошенников, которые могут вставить устройства для подсоединения к проводу связи.
Гораздо более надежный протокол шифрования используется в итальянских автоматах NewSlot. В этой схеме используется обмен ключами Диффи-Хеллмана и AES-256 . Использование DH предотвращает перехват обмена ключами, в то время как AES все еще не взломан, а это означает, что потребуется невероятно длительный процесс грубой силы. [5]
Именование монет и банкнот
[ редактировать ]За прошедшие годы в рамках спецификации ccTalk возник ряд связанных стандартов. Например, глобальные теги для идентификации постоянно меняющихся монет и банкнот мира.
В ccTalk монета имеет 6-значный идентификатор формата
<2-letter country code><3-digit value><1-letter issue code>
Код страны соответствует стандарту ISO 3166 . Код выпуска присваивается разным датам выпуска или особым вариантам монетного двора одной и той же монеты.
например
- US025A США 25c
- GB010B Великобритания 10 пенсов
- EU200A Евро 2 €
Банкноты следуют тому же шаблону, но номиналу присваивается 4 символа, и для страны существует соответствующий коэффициент масштабирования, обычно x100.
например
- US0001A 1 доллар США
- GB0020A Великобритания £20
- EU0005A 5 евро
Ссылки
[ редактировать ]- ^ Jump up to: а б с д и ж г «Протокол последовательной связи ccTalk: общая спецификация». Архивировано 16 октября 2017 г. на Wayback Machine . Выпуск 4.7
- ^ Jump up to: а б «Денежный контроль»
- ^ " "Шифрование DES для монетоприемников и банкнотоприемников" " . Архивировано из оригинала 8 августа 2017 г. Проверено 8 августа 2017 г.
- ^ " "Шифрование DES для хопперов" " . Архивировано из оригинала 21 июля 2017 г. Проверено 8 августа 2017 г.
- ^ «HOPPER CD ccTalk + Руководство оператора AES» (PDF) . Альберичи . 28 июня 2019 г. Проверено 13 мая 2023 г.
Команды ccTalk, реализованные в этом устройстве, указаны в документе «Список команд протокола ccTalk для итальянского рынка», закон 289 – запятая 6», в котором указан пакет команд ccTalk Italy, используемый в настоящее время (см. « протокол связи ccTalk Italy»), но измененный таким образом, чтобы периферийное устройство соответствовало новым требованиям безопасности, установленным документом «Технический табличный отчет 2012, 3.3, 2-е издание – Периферийное устройство от 27.02.2013», к которому за подробностями отсылаем читателя. .