Например TDA7294

Форум РадиоКот • Просмотр темы - Что обозначает последовательность битов в DMX512 протоколе?
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср апр 15, 2026 02:20:11

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 17 ] 
Автор Сообщение
 Заголовок сообщения: Что обозначает последовательность битов в DMX512 протоколе?
СообщениеДобавлено: Пт сен 04, 2015 14:26:59 
Родился

Зарегистрирован: Пт сен 04, 2015 14:12:34
Сообщений: 4
Рейтинг сообщения: 0
Здравствуйте, уважаемые!


Столкнулся с проблемой сложной, и, наверное, требующей определенного опыта. Google, Yandex, Bing и иже с ними уже не помощники в силу недостаточности моих познаний, поэтому решил пойти на форумы, к людям. Поиск по тегу DMX ничего, меня интересующего, не выдал, посему я здесь и создаю эту тему.
Мне необходимо понять, что обозначает каждый бит (и их последовательность) в протоколе передачи информации DMX512, хорошо подходящего для систем управления светом. Собственно, сейчас я расскажу, что уже накопал, но с чем не до конца разобрался.
Вот кусок информации, полученной сканированием Последовательного (COM) порта (получено с помощью программы Advanced Serial Port Monitor).
Спойлер<20150904174716.768 SYS>
COM открыт
<20150904174716.768 SYS>
Скорость передачи 250000
<20150904174716.768 SYS>
RTS включен
<20150904174716.768 SYS>
DTR включен
<20150904174716.769 SYS>
Биты данных=8, Стоповые биты=1, Четность=None
<20150904174716.769 SYS>
Служ. символы: Eof=0x00, Error=0x00, Break=0x00, Event=0x00, Xon=0x11, Xoff=0x13
<20150904174716.769 SYS>
Контроль передачи: ControlHandShake=(DTR_CONTROL), Замена=(TRANSMIT_TOGGLE, RTS_CONTROL), Лимит Xon=2048, Лимит Xoff=512
<20150904174716.769 SYS>
Таймауты: ReadInterval=-1, ReadTotalTimeoutMultiplier=0, ReadTotalTimeoutConstant=0, WriteTotalTimeoutMultiplier=0, WriteTotalTimeoutConstant=0
<20150904174716.796 TX>
9591 bytes trial version limit
<20150904174716.837 TX>
9591 bytes trial version limit
<20150904174716.876 TX>
9591 bytes trial version limit
<20150904174716.917 TX>
9591 bytes trial version limit
<20150904174716.957 TX>
9591 bytes trial version limit
<20150904174716.997 TX>
9591 bytes trial version limit
<20150904174717.037 TX>
9591 bytes trial version limit
<20150904174717.077 TX>
9591 bytes trial version limit
<20150904174717.117 TX>
9591 bytes trial version limit
<20150904174717.157 TX>
9591 bytes trial version limit
<20150904174717.197 TX>
9591 bytes trial version limit
<20150904174717.237 TX>
9591 bytes trial version limit
<20150904174717.277 TX>
9591 bytes trial version limit
<20150904174717.316 TX>
9591 bytes trial version limit
<20150904174717.356 TX>
9591 bytes trial version limit
<20150904174717.397 TX>
9591 bytes trial version limit
<20150904174717.436 TX>
9591 bytes trial version limit
<20150904174717.477 TX>
9591 bytes trial version limit
<20150904174717.517 TX>
9591 bytes trial version limit
<20150904174717.557 TX>
9591 bytes trial version limit
<20150904174717.596 TX>
9591 bytes trial version limit
<20150904174717.636 TX>
9591 bytes trial version limit
<20150904174717.676 TX>
9591 bytes trial version limit
<20150904174717.716 TX>
9591 bytes trial version limit
<20150904174717.756 TX>
9591 bytes trial version limit
<20150904174717.796 TX>
9591 bytes trial version limit
<20150904174717.836 TX>
9591 bytes trial version limit
<20150904174717.876 TX>
9591 bytes trial version limit
<20150904174717.916 TX>
9591 bytes trial version limit
<20150904174717.957 TX>
9591 bytes trial version limit
<20150904174717.996 TX>
9591 bytes trial version limit
<20150904174718.036 TX>
9591 bytes trial version limit
<20150904174718.076 TX>
9591 bytes trial version limit
<20150904174718.117 TX>
9591 bytes trial version limit
<20150904174718.157 TX>
9591 bytes trial version limit
<20150904174718.196 TX>
9591 bytes trial version limit
<20150904174718.237 TX>
9591 bytes trial version limit
<20150904174718.277 TX>
9591 bytes trial version limit
<20150904174718.317 TX>
9591 bytes trial version limit
<20150904174718.357 TX>
9591 bytes trial version limit
<20150904174718.397 TX>
9591 bytes trial version limit
<20150904174718.437 TX>
9591 bytes trial version limit
<20150904174718.477 TX>
9591 bytes trial version limit
<20150904174718.517 TX>
9591 bytes trial version limit
<20150904174718.556 TX>
9591 bytes trial version limit
<20150904174718.597 TX>
9591 bytes trial version limit
<20150904174718.637 TX>
9591 bytes trial version limit
<20150904174718.677 TX>
9591 bytes trial version limit
<20150904174718.717 TX>
9591 bytes trial version limit
<20150904174718.757 TX>
9591 bytes trial version limit
<20150904174718.796 TX>
9591 bytes trial version limit
<20150904174718.837 TX>
9591 bytes trial version limit
<20150904174718.877 TX>
9591 bytes trial version limit
<20150904174718.916 TX>
9591 bytes trial version limit
<20150904174718.956 TX>
9591 bytes trial version limit
<20150904174718.997 TX>
9591 bytes trial version limit
<20150904174719.008 TX>
9591 bytes trial version limit
<20150904174719.108 TX>
9591 bytes trial version limit
<20150904174719.311 SYS>
COM закрыт


А также http://ros-spb.ru/catalog/Telecom/statii/dmx-512/

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


Вернуться наверх
 
 Заголовок сообщения: Re: Что обозначает последовательность битов в DMX512 протоко
СообщениеДобавлено: Пт сен 04, 2015 15:57:32 
Вымогатель припоя

Карма: 3
Рейтинг сообщений: 48
Зарегистрирован: Пн авг 31, 2009 22:10:50
Сообщений: 506
Откуда: СК
Рейтинг сообщения: 0
Проблема не сложная, вполне себе решаемая, информации в открытых источниках много.
1. Напишите, какое устройство с каким соединено по этой шине (подозреваю что с одной стороны комп - со второй стороны ничего нет, т.к. протокол только на передачу без квитирования)
2. Сканировалось на компе или в физической линии? Если на компе, то какая программа (название, версия) осуществляла передачу по протоколу DMX512?
3. тот ли порт сканировался?
4. Нужна версия программы-сканера. Найдите не триал версию.

навскидку:
1. DMX512 физически это RS485, логическая часть протокола есть в описании.
2. при сканировании надо все старт и стоп биты не учитывать, у вас при сканировании установлено наличие стоп-бита


Вернуться наверх
 
 Заголовок сообщения: Re: Что обозначает последовательность битов в DMX512 протоко
СообщениеДобавлено: Пт сен 04, 2015 16:38:38 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
Здесь есть ещё одна "подлянка":
Не факт, что компьютерный порт RS-232 (с переходником на RS-485) реально удастся сконфигурить на скорость 250000 бит/с.
Без этого - любые программы анализа протокола не имеют смысла.


Вернуться наверх
 
 Заголовок сообщения: Re: Что обозначает последовательность битов в DMX512 протоко
СообщениеДобавлено: Пт сен 04, 2015 16:51:41 
Вымогатель припоя

Карма: 3
Рейтинг сообщений: 48
Зарегистрирован: Пн авг 31, 2009 22:10:50
Сообщений: 506
Откуда: СК
Рейтинг сообщения: 0
эт точно. Сейчас Putty в связке с монитором помучаю, будет видно...

Есть один момент. Если используется компьютерная программа с адаптером, то, скорее всего будет передача rs232 -> адаптер. Здесь уже будет передача на осмысленной скорости и на этой врезке можно посмотреть.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
 Заголовок сообщения: Re: Что обозначает последовательность битов в DMX512 протоко
СообщениеДобавлено: Пт сен 04, 2015 17:28:11 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
Сейчас можно только гадать что делал ТС.
Пока что, он не ответил на вопросы по программно-аппаратной части.
По моему опыту, мне не попадались контроллеры RS-232, (на MB), которым можно было бы установить нестандартную скорость.
Лично себе я брал PCI-E плату портов на контроллере MCS9901.
Вот у неё можно выставить нестандартную скорость.


Вернуться наверх
 
 Заголовок сообщения: Re: Что обозначает последовательность битов в DMX512 протоко
СообщениеДобавлено: Пт сен 04, 2015 17:31:27 
Вымогатель припоя

Карма: 3
Рейтинг сообщений: 48
Зарегистрирован: Пн авг 31, 2009 22:10:50
Сообщений: 506
Откуда: СК
Рейтинг сообщения: 0
Опять же согласен, поэтому нужен ответ ТС. Или можно вклиниться программно, или сниффер городить...


Вернуться наверх
 
 Заголовок сообщения: Re: Что обозначает последовательность битов в DMX512 протоко
СообщениеДобавлено: Пт сен 04, 2015 22:35:01 
Друг Кота

Карма: 13
Рейтинг сообщений: 81
Зарегистрирован: Чт сен 20, 2007 14:08:00
Сообщений: 13796
Рейтинг сообщения: 0
дмх тут не при чем, т.к. базируется на другом протоколе, а он еще на третьем
а те биты это стандартные биты любого трансивера юарт и для разных протоколов они разные
зачем такой гимор - хер знает, раньше особых стандартов не было и каждый клепал как хочет

старт-стоповые биты сигнализируют о начале и конце данных, т.к. юарт имеет только один провод и синхронизируется только за счет заранее известной скорости на обоих концах
поэтому там используются импульсы определенной длительности, и эту длительность отмеряет счетчик в самом модуле юарт
конкретно для дмх там эта длительность нестандартная и скорость в 250кбит тоже нестандартная, поэтому используют адаптеры

что касается самого дмх, то там передается 512 байт максимум
каждый байт несет инфу о яркости одного канала
номер байта и есть адрес, а передается число от 0 до 255, типа 255 градаций яркости можно использовать

например у меня есть лента ргб светодиодов и их там 50 штук
т.к. цвета у нас 3 и 50 диодов, то 3*50 = 150 каналов света и на каждый можно выставить свою яркость
так что если ты правильно настроеш сниффер, то увидиш просто кучу цифр

_________________
тематические ответы только в форуме, в приват не пишите


Вернуться наверх
 
 Заголовок сообщения: Re: Что обозначает последовательность битов в DMX512 протоко
СообщениеДобавлено: Пт сен 04, 2015 22:55:46 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
kalobyte писал(а):
....что касается самого дмх, то там передается 512 байт максимум...
....типа 255 градаций яркости можно использовать....

Не надо так шутить. :)
Неужели вам не попадались световые приборы, которые после 512-го адреса (байта) занимают ещё пару десятков байт для своих параметров?
Да и значения параметров, очень часто, уже передаются в два байта...
Почти все (современные) световые пульты могут работать с адресацией до 1024.
Я уже не говорю про системы, где пульт может получать полную информацию о световых приборах (серийник, имя, состояние и т.д.).
Ушли те времена, когда DMX-512 ограничивался только односторонней передачей данных и 512-ью байтами в посылке...
/Обычно, в документации на такие системы пишут "DMX-512 Compatible"/......


Вернуться наверх
 
 Заголовок сообщения: Re: Что обозначает последовательность битов в DMX512 протоко
СообщениеДобавлено: Сб сен 05, 2015 09:46:29 
Друг Кота

Карма: 13
Рейтинг сообщений: 81
Зарегистрирован: Чт сен 20, 2007 14:08:00
Сообщений: 13796
Рейтинг сообщения: 0
это уже идут расширения протокола, вплоть до 2х сторонней передачи и передачи по сети
я тоже знаю много умных вещей и словей 8)

_________________
тематические ответы только в форуме, в приват не пишите


Вернуться наверх
 
 Заголовок сообщения: Re: Что обозначает последовательность битов в DMX512 протоко
СообщениеДобавлено: Сб сен 05, 2015 11:11:29 
Родился

Зарегистрирован: Пт сен 04, 2015 14:12:34
Сообщений: 4
Рейтинг сообщения: 0
Шурики писал(а):
Проблема не сложная, вполне себе решаемая, информации в открытых источниках много.
1. Напишите, какое устройство с каким соединено по этой шине (подозреваю что с одной стороны комп - со второй стороны ничего нет, т.к. протокол только на передачу без квитирования)
2. Сканировалось на компе или в физической линии? Если на компе, то какая программа (название, версия) осуществляла передачу по протоколу DMX512?
3. тот ли порт сканировался?
4. Нужна версия программы-сканера. Найдите не триал версию.

навскидку:
1. DMX512 физически это RS485, логическая часть протокола есть в описании.
2. при сканировании надо все старт и стоп биты не учитывать, у вас при сканировании установлено наличие стоп-бита

1. Соединен ПК и Rainbowduino
2. Сканировалось с помощью программы, в стартовом посту написано, какой именно. Программа контроллер Jinx! Версию сейчас, к сожалению, добыть не смогу.
3. Порт сканировался 100% тот, что нужен.
4. С версией программы сканера тоже напряги, т.к. я ненадолго уехал с места работы.
Подскажите, пожалуйста, что именно вы хотите найти в описаниях программ? Алгоритм считывания\отправления?


Вернуться наверх
 
 Заголовок сообщения: Re: Что обозначает последовательность битов в DMX512 протоко
СообщениеДобавлено: Сб сен 05, 2015 14:56:42 
Друг Кота
Аватар пользователя

Карма: 77
Рейтинг сообщений: 1247
Зарегистрирован: Вс мар 29, 2009 22:09:05
Сообщений: 7518
Рейтинг сообщения: 0
Цитата:
Почти все (современные) световые пульты могут работать с адресацией до 1024.


Это уже все расширения, а иногда и раскидывание по разным физическим каналам. Есть такое понятие, как "вселенная DMX" - 512 individual device addresses available per universe.

Классический DMX-512 представляет собой UART, дополненный состоянием BREAK, немного нестандартным для "обычного" UART'а. Скорость линии - 250 кБод, mark-after-break + стартовый бит, восемь бит данных, два стоповых бита, физический уровень - RS-485. Я как-то раз делал DMX-диммер. :)

Ведущий в цикле передает посылку из 516 байт.

Первый байт - тип посылки. В 99% случаев - ноль, означающий данные для диммеров. Дальше идут данные, соответствующие последовательным адресам. Ведомое устройство читает сколько ему надо байт, начиная с байта N, где N - стартовый адрес устройства, и интерпретирует их как хочет. Вот, тут даже с анимацией показано, как все происходит.

Цитата:
Мне необходимо понять, что обозначает каждый бит (и их последовательность) в протоколе передачи информации DMX512, хорошо подходящего для систем управления светом. ... Соединен ПК и Rainbowduino


В свете сказанного, берите документацию на Rainbowduino и смотрите, как она интерпретирует данные по своим каналам. Это и будет то, что вас интересует. Другое устройство будет интерпретировать данные по-своему, единого стандарта на это нет.

_________________
Разница между теорией и практикой на практике гораздо больше, чем в теории.


Вернуться наверх
 
 Заголовок сообщения: Re: Что обозначает последовательность битов в DMX512 протоко
СообщениеДобавлено: Сб сен 05, 2015 18:49:37 
Вымогатель припоя

Карма: 3
Рейтинг сообщений: 48
Зарегистрирован: Пн авг 31, 2009 22:10:50
Сообщений: 506
Откуда: СК
Рейтинг сообщения: 0
Noob_forever писал(а):
...Мне необходимо понять, что обозначает каждый бит (и их последовательность)...


COM открыт //событие
<20150904174716.768 SYS> //20150904 - дата 04,09,2015 174716 - время; 17:47:17.768 в миллисекундах; SYS - признак системного сообщения
Скорость передачи 250000
...
...
9591 bytes trial version limit //напоминание о пробной версии о её ограничениях
<20150904174716.796 TX> //то же самое дата время и TX - признак передачи
9591 bytes trial version limit
<20150904174716.837 TX>
...
...
<20150904174719.311 SYS> //здесь уже понятно
COM закрыт //закрыли порт

спешу обрадовать, в этом куске нет никаких данных. Лучше просматривать данные в режиме HEX, там будет видно всё. Интересует подсвеченное желтым. Или сохранить в файл протокол обмена.
Изображение

Далее, программа Advansed как там её, перехватывает на уровне драйвера. Поэтому программа-инициатор передачи, при указании параметров порта пишет все свои хотелки, которые монитор и мониторит. Т.е. отобразит любую лабуду, любые скорости обмена. В связке PUTTY - монитор выставлял произвольные скорости: и 250000 и 9000 и 9001 и всё это видел в мониторе. как реально ведет себя физическое устройство, пока не смотрел, но по кольцу возвращает значения в терминал.

Если используется Rainbowduino - то это клон Arduino с ATMega168/328 + FT232RL. Это к тому, что чудес не бывает данные к Rainbowduino должны идти в нормальном виде.
Это был раз.

Два:
Noob_forever писал(а):
Подскажите, пожалуйста, что именно вы хотите найти в описаниях программ? Алгоритм считывания\отправления?

Возник один странный вопрос: как этот Rainbowduino подключен к компу? не обычным ли USB шнуром? И что, на словах, представляет из себя всё устройство целиком. Где было в устройстве указано DMX512?


Вернуться наверх
 
 Заголовок сообщения: Re: Что обозначает последовательность битов в DMX512 протоко
СообщениеДобавлено: Сб сен 05, 2015 20:39:09 
Друг Кота

Карма: 13
Рейтинг сообщений: 81
Зарегистрирован: Чт сен 20, 2007 14:08:00
Сообщений: 13796
Рейтинг сообщения: 0
скорей всего обычный шнурок и юарт, а контроллер упавляет светодиодами
я так и делал без рс485
трансивер меги может работать на 250кбит

_________________
тематические ответы только в форуме, в приват не пишите


Вернуться наверх
 
 Заголовок сообщения: Re: Что обозначает последовательность битов в DMX512 протоко
СообщениеДобавлено: Пн сен 07, 2015 04:24:28 
Родился

Зарегистрирован: Пт сен 04, 2015 14:12:34
Сообщений: 4
Рейтинг сообщения: 0
Вообще говоря, для исполнения моих замыслов не обязательно использовать именно DMX512. Просто в программах-контроллерах есть возможность выбрать тип Output device'a. Там есть DMX, Art-net, tpm2, tpm2-net, glediator от solderlab, и так далее. При выборе любого протокола данные на плату идут, но что с ними делать, контроллер не знает. Поэтому я и хотел разобраться с тем, что именно и в каком порядке шлет Jinx! чтобы попробовать как-то это контроллеру объяснить...


Вернуться наверх
 
 Заголовок сообщения: Re: Что обозначает последовательность битов в DMX512 протоко
СообщениеДобавлено: Пн сен 07, 2015 06:14:03 
Вымогатель припоя

Карма: 3
Рейтинг сообщений: 48
Зарегистрирован: Пн авг 31, 2009 22:10:50
Сообщений: 506
Откуда: СК
Рейтинг сообщения: 0
Ну тогда вот мануал на Jinx! и сама программа.

http://www.live-leds.de/downloads/
Поддерживаемые протоколы на странице 23.

Там есть протокол, например, MiniDMX. Находим пример реализации устройства с разжёвыванием.
http://www.dzionsko.de/index.php?n=MiniDMX.Startseite

Ну как-то так...


Вернуться наверх
 
 Заголовок сообщения: Re: Что обозначает последовательность битов в DMX512 протоко
СообщениеДобавлено: Пн сен 07, 2015 13:45:46 
Друг Кота

Карма: 13
Рейтинг сообщений: 81
Зарегистрирован: Чт сен 20, 2007 14:08:00
Сообщений: 13796
Рейтинг сообщения: 0
Noob_forever писал(а):
При выборе любого протокола данные на плату идут, но что с ними делать, контроллер не знает.

естественно, нужно же понимать, что ожидает твоя плата на входе
http://www.seeedstudio.com/wiki/Rainbowduino_v3.0

это просто контроллер со светодиодами, там нет никакой прошивки по дефолту и подразумевается, что ты сам пишеш
:facepalm:

_________________
тематические ответы только в форуме, в приват не пишите


Вернуться наверх
 
 Заголовок сообщения: Re: Что обозначает последовательность битов в DMX512 протоко
СообщениеДобавлено: Вт сен 08, 2015 09:42:19 
Родился

Зарегистрирован: Пт сен 04, 2015 14:12:34
Сообщений: 4
Рейтинг сообщения: 0
kalobyte писал(а):
там нет никакой прошивки по дефолту и подразумевается, что ты сам пишеш
:facepalm:

Noob_forever писал(а):
Поэтому я и хотел разобраться с тем, что именно и в каком порядке шлет Jinx! чтобы попробовать как-то это контроллеру объяснить...

Спасибо за ценный комментарий


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 17 ] 

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y