Обзор протоколов обмена данными для сетей домашней и промышленной автоматизации

Для обмена информацией взаимодействующие устройства должны иметь одинаковый протокол обмена. В простейшей форме протокол — это набор правил, которые управляют обменом информацией. Он определяет синтаксис и семантику сообщений, операции управления, синхронизацию и состояния при коммуникации. Протокол может быть реализован аппаратно, программно или программно-аппаратно. Название сети обычно совпадает с названием протокола, что объясняется его определяющей ролью при создания сети.

1.1 Описание протокола MODBUS.

Стандартные MODBUS-порты в контроллерах MODICON используют RS-232C совместиимый последовательный интерфейс. Контроллеры могут быть соединены на прямую или через модем.

Контроллеры соединяются используя технологию главный-подчиненный, при которой только одно устройство (главный) может инициировать передачу (сделать запрос). Другие устройства (подчиненные) передают запрашиваемые главным устройством данные, или производят запрашиваемые действия. Типичное главное устройство включает в себя ведущий (HOST) процессор и панели программирования. Типичное подчинненое устройство — программируемый контроллер.

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

1.2 Описание протокола DMX512

Стандарт DMX512 позволяет управлять по одной линии связи одновременно 512 каналами, (канал-это не приемный прибор). Несколько включенных одновременно приборов, поддерживающих DMX512, позволяют создавать световые картины и элементы оформления самой различной сложности, как внутри помещений, так и снаружи. По одному каналу передаётся информация для управления одним параметром прибора, например в какой цвет окрасить луч прожектора или на какой угол повернуть зеркало по горизонтали в данный момент чтобы изменить направление лазерного луча.

Протокол DMX512 имеет ряд преимуществ и недостатков, но он получил широкое распространение и сейчас де-факто является главным стандартом создания большинства светотехнических систем. Он отличается простотой и универсальностью.

Основа протокола связи DMX– множественность кодов. Каждый код — это уникальная последовательность высоких и низких уровней сигнала, которые называются битами и посылаются через определенные интервалы времени (4 µs для DMX512). Все коды в DMX512 содержат 8 бит. Группа из8 бит называется байтом. Байт содержит256 различных кодов от 0 до 255. Для определения начал а байта, к нему добавляется 3 бита – стартовый (логический 0), и 2 стоповых (логическая 1). Если по линии не передается никакой информации, то она находится в состоянии с высоким уровнем (логическая 1). Чтобы переслать байт информации передатчик посылает стартовый бит, сообщающий приемнику о начале обмена. Приемник считывает биты с интервалом в 4 µs до тех пор, пока не примет все 8, а затем сканирует линию, ожидая высокого сигнала для принятия стоповых битов. В конце второго стопового бита линия может перейти в состояние ожидания (уровень у нее уже высокий), либо новый стартовый бит начнет передачу следующего байта. Если передача информации в линии происходит непрерывно без промежутков между кадрами, то интервал в 4 µs позволяет передать 250 000 бит в секунду.

Стандарт передачи данных DMX512 реализуется асинхронным протоколом (кадры могут быть посланы в любой момент времени, когда линия находится в состоянии ожидания). На практике, большинство световых устройств делают промежутки между кадрами, потому что быстродействие консоли не позволяет подготовить к передаче следующий кадр к моменту отправки предыдущего.

Протокол DMX512 содержит 512 каналов, последовательно пересылающих данные, начиная с канала 1 и заканчивая самым большим номером канала (512), содержащимся в данном устройстве. Не допускается более 512 связанных каналов.

1.3 Описание протокола WAKE

Протокол WAKE является логическим уровнем интерфейса управления оборудованием с помощью асинхронного последовательного канала. Физический уровень интерфейса протоколом не определяется, может использоваться, например, RS-232, RS-485 или USB. Протокол позволяет производить обмен пакетами данных (data frames) длиной до 255 байт с адресуемыми устройствами, которых может быть до 127. Последовательный канал должен быть сконфигурирован следующим образом:

  • число бит в посылке — 8
  • количество стоп-бит — 1
  • бит четности — нет
  • скорость обмена — 300…115200 бод

Основой протокола WAKE является протокол SLIP (UNIXTM Serial Link Interface Protocol). Передача данных осуществляется в двоичном виде, т.е. используются все возможные значения байта (00h…FFh). Для передачи служебной информации зарезервированы два кода: FEND = C0h (Frame End) и FESC = DBh (Frame Escape). Управляющий код FEND служит для обозначения начала посылки, а код FESC служит для передачи ESC-последовательностей. Если в потоке данных встречаются байты, значения которых совпадают с управляющими кодами, производится подмена этих байт ESC-последовательностями. Такой механизм называют байт-стаффингом (byte stuffing). Код FEND заменяется последовательностью <FESC>, <TFEND>, а код FESC — последовательностью <FESC>, <TFESC>, где TFEND = DCh (Transposed FEND), TFESC = DDh (Transposed FESC). Коды TFEND и TFESC являются управляющими только в ESC-последовательностях, поэтому при передаче данных они в подмене не нуждаются.

Структура пакета WAKE следующая: пакет всегда начинается управляющим кодом FEND (C0h). Затем следует необязательный байт адреса, после которого идет байт команды. За ним следует байт количества данных и собственно байты данных. Завершает пакет необязательный байт контрольной суммы CRC-8.

Таким образом, код команды занимает 7 бит, что позволяет передавать до 128 различных команд. Коды команд выбираются произвольно в зависимости от нужд приложения. Рекомендуется использовать несколько стандартных кодов команд. Коды остальных команд выбираются в зависимости от нужд приложения. Команды обычно имеют несколько параметров, которые передаются далее в виде пакета данных.
Поскольку код команды всегда имеет нулевой старший бит, этот код никогда не совпадает с управляющими кодами. Поэтому при передаче команды стаффинг никогда не производится.

1.3 Описание протокола DCON

Протокол DCON, использованный в модулях фмрмы ICP DAS не относится к стандартным, однако очень широко распространен в России благодаря популярности модулей RealLab. Этот протокол использует только физический и прикладной уровень модели OSI. На физическом уровне используется прямое двоичное кодирование, когда логический ноль представлен низким уровнем напряжения в шине RS-485, логическая единица — высоким уровнем. Требования к среде передачи (витая пара) определяются стандартом на интерфейс RS-485.

Широкая популярность протокола DCON обусловлена отсутствием необходимости в специализированных микросхемах для реализации стека протоколов, что существенно снижает себестоимость устройств, а, следовательно, цену для конечного потребителя. С другой стороны, у системного интегратора уменьшаются затраты на обучение, поскольку применение протокола предельно простое.

Протокол DCON используется в архитектуре «ведущий — ведомый». В сети может быть 255 ведомых устройств, но только одно ведущее, что в принципе исключает возможность конфликтов.

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

Каждый кадр начинается с разделителя, в качестве которого могут быть использованы знаки: $, #, %, @, *, в ответах ведомого устройства используются символы ~, !, ?, >.

За некоторыми командами следуют данные, но их может и не быть. Контрольная сумма, состоящая из двух символов, может отсутствовать. Каждый кадр должен оканчиваться символом возврата каретки cr (ASCII код 0Dh).

Контрольная сумма (CHK) состоит из двух символов (в нее не включается код символа возврата каретки) и позволяет обнаружить ошибки в командах, посланных из ведущего устройства, а также в ответах ведомого.

Вся информация, содержащаяся в кадре, включая адрес модуля и данные, передается в ASCII кодах.

Контрольная сумма представляется двумя ASCII символами шестнадцатеричного формата и передается непосредственно перед «возвратом каретки» (cr). Она должна быть равна сумме кодовых значений всех ASCII символов команды и быть представлена в шестнадцатеричной системе счисления. Если сумма больше FFh, то в качестве контрольной суммы используется только ее младший байт.

You may also like...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>