реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> СОМ порт, тормозит SetCommState., передача DMX512 серез СОМ порт
TONAL
сообщение Jun 1 2009, 10:26
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 16-10-07
Пользователь №: 31 405



Hi all!
Решил на базе моста USB->COM соорудить передатчик для DMX512.
Из особенностей протокола DMX512 следует отметить нестандартную скорость (250Кбит/с) и наличие маркера начала пакета BREAK (импульс низкого уровня t=88мкс).
С нестандартной скоростью проблем не возникло, мой мост (ОTI6858) поддерживает такую скорость.
А вот с передачей маркера BREAK возникла проблемка, длительность передачи байта на скорости 250Кбит/с составляет 44мкс, то есть BREAK так не передать...
Я решил на время передачи BREAK снизить скорость передачи до 115,2Кбит/с через SetCommState, но SetCommState жестко тормознутая функция(выполняется 30мс!).
Таким образом для передачи пакета 2-а вызова SetCommState занимают 60мс!, это ни куда не годиться.

Вопрос к тем кто заморачивался с СОМ портами и DMX512, как малой кровью без тормозов передать BREAK?
Go to the top of the page
 
+Quote Post
Седой
сообщение Jun 2 2009, 20:05
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 244
Регистрация: 21-02-05
Из: Урал
Пользователь №: 2 806



Цитата(TONAL @ Jun 1 2009, 16:26) *
Hi all!
Решил на базе моста USB->COM соорудить передатчик для DMX512.
.....
Таким образом для передачи пакета 2-а вызова SetCommState занимают 60мс!, это ни куда не годиться.

Вопрос к тем кто заморачивался с СОМ портами и DMX512, как малой кровью без тормозов передать BREAK?


Вопрос. Лучшее средство от головной боли?
Ответ. АПСТЕНУ!!

Так и здесь, выкинуть мост - поставить МК.
Go to the top of the page
 
+Quote Post
TONAL
сообщение Jun 2 2009, 20:16
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 16-10-07
Пользователь №: 31 405



Цитата(Седой @ Jun 2 2009, 23:05) *
Вопрос. Лучшее средство от головной боли?
Ответ. АПСТЕНУ!!

Так и здесь, выкинуть мост - поставить МК.


Ничего не скажешь, хороший совет. До такого и сам додуматься могу.
Дело не в том что мне сложно поставить МК, передатчик DMX512 для МК у меня написан и работает.
Просто я считаю глупо ставить целый контроллер для передачи одного импульса.

Вобщем вопрос остается в силе.
Go to the top of the page
 
+Quote Post
TONAL
сообщение Jun 3 2009, 17:12
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 16-10-07
Пользователь №: 31 405



Решил вопрос использованием EscapeCommFunction, выполняется ~1мс, сигнал подмешал в линию через К155ЛА3 =)
Теперь BREAK передается так:
CODE
EscapeCommFunction(hComPort,SETRTS);
EscapeCommFunction(hComPort,CLRRTS);

Всю работу с СОМ портом вынес в отдельный поток, полет нормальный.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Jun 3 2009, 17:59
Сообщение #5


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(TONAL @ Jun 3 2009, 20:12) *
Решил вопрос использованием EscapeCommFunction, выполняется ~1мс, сигнал подмешал в линию через К155ЛА3 =)
Теперь BREAK передается так:
Код
EscapeCommFunction(hComPort,SETRTS);
EscapeCommFunction(hComPort,CLRRTS);
А SetCommBreak(hComPort)/ClearCommBreak(hComPort) пробовали?
А EscapeCommFunction(hComPort,SETBREAK) / EscapeCommFunction(hComPort,CLRBREAK)? У меня эта пара работала.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
TONAL
сообщение Jun 3 2009, 18:41
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 16-10-07
Пользователь №: 31 405



Цитата(ReAl @ Jun 3 2009, 20:59) *
А SetCommBreak(hComPort)/ClearCommBreak(hComPort) пробовали?
А EscapeCommFunction(hComPort,SETBREAK) / EscapeCommFunction(hComPort,CLRBREAK)? У меня эта пара работала.


Попробовал, так не работает. sad.gif
Go to the top of the page
 
+Quote Post
TONAL
сообщение Jun 4 2009, 06:48
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 16-10-07
Пользователь №: 31 405



ReAl
А на каком мосте работало?
Go to the top of the page
 
+Quote Post
ReAl
сообщение Jun 4 2009, 12:39
Сообщение #8


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(TONAL @ Jun 4 2009, 09:48) *
ReAl
А на каком мосте работало?
На "обычных" портах и на FT232B-мосте


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
Седой
сообщение Jun 6 2009, 06:18
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 244
Регистрация: 21-02-05
Из: Урал
Пользователь №: 2 806



Цитата(TONAL @ Jun 3 2009, 02:16) *
Просто я считаю глупо ставить целый контроллер для передачи одного импульса.


Просто для данной задачи "целый контроллер" будет и дешевле и надежней, да и несколько каналов сделать можно простым "ногодрыжеством".
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 20:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.01414 секунд с 7
ELECTRONIX ©2004-2016