Новичок
Регистрация: 02.06.2009
Сообщений: 3
Репутация: 10
![]() |
Решил на базе моста USB->COM соорудить передатчик для DMX512.
Из особенностей протокола DMX512 следует отметить нестандартную скорость (250Кбит/с) и наличие маркера начала пакета BREAK (импульс низкого уровня t=88мкс). С нестандартной скоростью проблем не возникло, мой мост (ОTI6858) поддерживает такую скорость. А вот с передачей маркера BREAK возникла проблемка, длительность передачи байта на скорости 250Кбит/с составляет 44мкс, то есть BREAK так не передать... Я решил на время передачи BREAK снизить скорость передачи до 115,2Кбит/с через SetCommState, но SetCommState жестко тормознутая функция(выполняется 30мс!). Таким образом для передачи пакета 2-а вызова SetCommState занимают 60мс!, это ни куда не годиться. Вопрос к тем кто заморачивался с СОМ портами и DMX512, как малой кровью без тормозов передать BREAK?
Последний раз редактировалось Tonal; 04.06.2009 в 09:32.
|
||
Оценка
|
Новичок
Регистрация: 13.02.2008
Адрес: Ставрополь
Сообщений: 493
Репутация: 39
![]() |
Для формирования сигнала Break можно использовать линии управления передачей данных СОМ порта. Можно объединить один из упр выходов RTS или DTR с выходом TxD по схеме "монтажное ИЛИ" . Тогда устанавливая RTS или DTR в низкий уровень можно сформировать необходимый сигнал Break. Чтобы правильно сформировать уровни учитывайте инверсную логику работы порта.
|
||
Оценка
|
Новичок
Регистрация: 02.06.2009
Сообщений: 3
Репутация: 10
![]() |
Спасибо, вопрос решен, так и сделал.
http://electronix.ru/forum/index.php?showtopic=63535 |
||
Оценка
|
Новичок
Регистрация: 25.03.2010
Сообщений: 1
Репутация: 10
![]() |
Подскажите, есть ведь такое понятие как 'BREAK' и 'LONG BREAK'.
int tcsendbreak(int fildes, int duration); /* tcsendbreak() shall cause transmission of a continuous stream of zero-valued bits for a specific duration. If duration is 0, it shall cause transmission of zero-valued bits for at least 0.25 seconds, and not more than 0.5 seconds. */ Т.е. допустимый диапазон от 1/4 до 1/2 с. Так вот, какая длительность удержания принята стандартной для сигнала 'BREAK' а какая уже считается 'LONG BREAK'? |
||
Оценка
|
Обратная связь РадиоЛоцман Вверх |