В этом курсе мы в основном работаем с IP-управлением видеооборудованием (ONVIF), но техника, с которой мы сталкиваемся, имеет и другие интерфейсы (VISCA, PELCO) и порой бывает удобнее и дешевле использовать их с подключением через соответствующие аппаратные интерфейсы: RS232, RS485.
Также нам могут пригодиться протоколы и интерфейсы из близких соседних областей - звук, свет.
MIDI -- это протокол и интерфейс, изначально используемый в звуковой индустрии,
DMX -- протокол и интерфейс родом из сценического и студийного света.
В нашей жизни оба интерфейса и соответствующие протоколы могут быть задействованы в других целях. Но прежде стоит изучить их возможности и ограничения, чтобы не создавать неоправданных ожиданий.
Презентация -- в предыдущей встрече про аппаратные интерфейсы.
RS-232 (англ. Recommended Standard 232 или другое название EIA232 ) — стандарт физического уровня для асинхронного интерфейса UART
(UniversalAsynchronousReceiver-Transmitter – «универсальный асинхронный приемопередатчик»).
Интерфейс RS-232 (или EIA-232) предназначен для организации приема-передачи данных между передатчиком или терминалом (англ. Data Terminal Equipment, DTE
) и приемником или коммуникационным оборудованием (англ. Data Communications Equipment, DCE
) по схеме точка-точка.
Зависимость скорости передачи данных (б/с) от длины линии связи (м):
Последовательный дифференциальный интерфейс RS-422 (Recommended Standard 422) по своим особенностям очень походит на другой интерфейс передачи данных в сети - RS-485.
RS-422 является полностью дуплексным интерфейсом (full duplex), поэтому передача данных может одновременно осуществлять в обоих направлениях. Например, подтверждение приёма пакетов данных происходит одновременно с приёмом последующих пакетов.
Дуплексность обеспечивается за счёт того, что используется одновременно два приёмопередатчика, один из которых работает на приём, другой - на передачу.
В то время как RS-485 применяется для организации сети со множеством абонентов, RS-422 используется обычно для налаживания передачи данных между двумя устройствами на длинных дистанциях. RS-422 поддерживает создание только одномастерных сетей
, в которых в качестве передатчика может выступать только одно устройство, а остальные способны лишь принимать сигнал.
RS-485 (Recommended Standard 485), также EIA-485 (Electronic Industries Alliance-485) - один из наиболее распространенных стандартов физического уровня для асинхронного интерфейса связи.
Стандарт определяет следующие линии для передачи сигнала:
A - неинвертирующая
B - инвертирующая
C - необязательная общая линия (ноль)
Несмотря на недвусмысленное определение, иногда возникает путаница, по поводу того какие обозначения ("A" или "B") следует использовать для инвертирующей и неинвертирующей линии. Для того, чтобы избежать этой путаницы часто используются альтернативные обозначения, например: "+" / "-"
Сеть, построенная на интерфейсе RS-485, представляет собой приемопередатчики, соединенные при помощи витой пары - двух скрученных проводов.
В основе интерфейса RS-485 лежит принцип дифференциальной (балансной) передачи данных. Суть его заключается в передаче одного сигнала по двум проводам. Причем по одному проводу (условно A) идет оригинальный сигнал, а по другому (условно B) - его инверсная копия. Другими словами, если на одном проводе "1", то на другом "0" и наоборот. Таким образом, между двумя проводами витой пары всегда есть разность потенциалов: при "1" она положительна, при "0" - отрицательна.
Именно этой разностью потенциалов и передается сигнал.
RS-485 - полудуплексный интерфейс. Прием и передача идут по одной паре проводов с разделением по времени. В сети может быть много передатчиков, так как они могут отключаются в режиме приема.
Несмотря на то, что интерфейс RS-485 двухпроводной, существует его четырехпроводная реализация.
При этом интерфейс не становится полнодуплексным, он также является полудуплексным.
Четырехпроводная версия выделяет задающий узел (master), передатчик которого работает на приемники всех остальных.
Передатчик задающего узла всегда активен — переход в третье состояние ему не нужен.
Передатчики остальных ведомых (slave) узлов должны иметь тристабильные выходы, они объединяются на общей шине с приемником ведущего узла. В двухпроводной версии все узлы равноправны.
Сеть построенная на базе RS-485 поддерживает по стандарту до 32 устройств "единичной нагрузки"
На рынке широко представлены устройства с другими значениями "нагрузки" - 1/2(т.е. уже 64 устройства), 1/4 (128 устройств) от единичной нагрузки.
При построении таких линий, возникает достаточно много сложностей, поэтому необходимо обладать должными знаниями для их проектирования.
Несмотря на то, что это музыкальный протокол, вы можете встретить MIDI в тех местах, где требуются пульты управления. Например, видеомикшер VMix штатно принимает подключенные USB/MIDI клавиатуры в качестве пультов управления микшером.
Но есть и сложности -- обратная связь (подсветка выбранных каналов) не работает, не все кнопки/енкодеры/тачпады считываются корректно.
Стандарт DMX512 позволяет управлять по одной линии связи одновременно 512 каналами, (канал-это не приемный прибор). Несколько включенных одновременно приборов, поддерживающих DMX512, позволяют создавать световые картины и элементы оформления самой различной сложности, как внутри помещений, так и снаружи. По одному каналу передаётся информация для управления одним параметром прибора, например в какой цвет окрасить луч прожектора или на какой угол повернуть зеркало по горизонтали в данный момент чтобы изменить направление лазерного луча.
Протокол DMX512 имеет ряд преимуществ и недостатков, но он получил широкое распространение и сейчас де-факто является главным стандартом создания большинства светотехнических систем. Он отличается простотой и универсальностью.
Все коды в DMX512 содержат 8 бит. Байт содержит 256 различных кодов от 0 до 255. Для определения начала байта, к нему добавляется 3 бита - стартовый (логический 0), и 2 стоповых (логическая 1). Если по линии не передается никакой информации, то она находится в состоянии с высоким уровнем (логическая 1). Чтобы переслать байт информации передатчик посылает стартовый бит, сообщающий приемнику о начале обмена. Приемник считывает биты с интервалом в 4 µs до тех пор, пока не примет все 8, а затем сканирует линию, ожидая высокого сигнала для принятия стоповых битов. В конце второго стопового бита линия может перейти в состояние ожидания (уровень у нее уже высокий), либо новый стартовый бит начнет передачу следующего байта. Если передача информации в линии происходит непрерывно без промежутков между кадрами, то интервал в 4 µs позволяет передать 250 000 бит в секунду.
Стандарт передачи данных DMX512 реализуется асинхронным протоколом (кадры могут быть посланы в любой момент времени, когда линия находится в состоянии ожидания). На практике, большинство световых устройств делают промежутки между кадрами, потому что быстродействие консоли не позволяет подготовить к передаче следующий кадр к моменту отправки предыдущего.
Протокол DMX512 содержит 512 каналов, последовательно пересылающих данные, начиная с канала 1 и заканчивая самым большим номером канала (512), содержащимся в данном устройстве. Не допускается более 512 связанных каналов. Устройства, способные работать с более чем 512 диммерными выходами (декодерами), имеют больше одного порта DMX512. Каналы DMX512 нельзя путать с каналами устройства или диммера. Канал приемника (декодера) может использовать несколько каналов DMX512 или ни одного.
Для определения приемным устройством информации, предназначенной для первого канала, в линию посылается специальный сигнал - прерывание (все 256 кодов отведены для определения уровней). Условие наступления прерывания - продолжительный сигнал низкого уровня длительностью не менее 88 µs (два полных кадра), являющийся сигналом для принимающего устройства о начале передачи пакета данных.
После окончания сигнала прерывания линия переходит на некоторое время в состояние высокого уровня сигнала. Этот промежуток времени называется “метка после прерывания” (Mark-after-break). После сигнала “метка после прерывания” посылается специальный код. В протоколе DMX512 первый байт, посланный после прерывания, называется стартовым кодом. Для декодера уровень данных этого байта имеет нулевое значение. Стартовый байт с нулевым значением говорит о том, что передаваемые далее байты будут содержать 8-битную информацию об уровнях диммера. Стартовый байт также называют байтом режима, кодом типа, заглавным байтом или заголовком пакета. Остальные 255 возможных стартовых кодов в DMX512 не используются, хотя некоторые из них зарезервированы. Ряд производителей использует ненулевой стартовый код, чтобы сообщить дополнительную информацию, уникальную для конкретных приборов.
Изначально стандарт DMX512 был разработан для управления диммерами. Но в настоящее время широко используется для управления движущимися и интеллектуальными приборами и скроллерами. По существу, не имеет значения чем управлять в системе «передатчик-приемник» протокола DMX512, потому что на декодер можно подключить любую нагрузку.
Использование DMX512 позволяет объединять приборы в линии с рекомендуемой максимальной длиной до 1 км. Практически же следует ограничить длину линии до 500 м или использовать усилители сигнала (повторители).
Все приборы, декодирующие сигнал протокола DMX512, за исключением тех, которые принимают все 512 каналов, имеют средства определения адреса (адресов), на которые данный прибор будет реагировать. Наиболее часто используемый метод адресации – базовый. Выбранный адрес является первым адресом блока последовательно пронумерованных каналов, которые будет воспринимать данное устройство.