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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Китайский "USB2.0 TO RS232 Convertor"
MrYuran
сообщение Jan 21 2011, 09:34
Сообщение #16


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Muscat @ Jan 21 2011, 12:19) *
Вот именно так у меня и происходит. Битовая скорость внутри посылок 1.5Мбита, так как физически RS232 не существует нигде, то и ограничение на скорость от USB. А вот изза пауз реальная скорость передачи данных составляет 30 кБит/сек

Скорее всего, дело в вашей программе.
Вы точно пакетами данные передаёте или побайтно?
Дело в том, что ваш пакет (или байт) должен упаковаться во фрейм USB, передаться (с возможными задержками в несколько мс), потом распаковаться и выйти наружу в виде RS-232.
Если вы передаёте пакет, он просто упакуется в фрейм и передастся.
Если каждый байт по отдельности - получите отдельный фрейм для каждого байта и соответственно, задержки тоже.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Muscat
сообщение Jan 21 2011, 10:18
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



MrYuran пакетами по 1024 байта по 6 бит. Да, пакетная передача работает нормально. При больше длине пакета возникают некоторые задержки внутри пакета (появляются промежутки между байтами), но все в пределах нормы.
То есть если я выполняю запись в порт s
>>fwrite(s,STR)
Где STR - строка на 1024 символа, то на осциллографе я увижу пакет из 1024 байт, с битовой скоростью 1.5 МБита

Если же я запущу
fwrite(s,STR1)
fwrite(s,STR2)
То между пакетами будет интервал в 100мс, а внутри пакетов все по прежнему хорошо. Условно говоря возникает задержка при переходе от строчки к строчке



--------------------
Because it's there
Go to the top of the page
 
+Quote Post
Dima_G
сообщение Jan 21 2011, 10:21
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 279
Регистрация: 2-07-08
Из: Новосибирск
Пользователь №: 38 699



Цитата(Muscat @ Jan 21 2011, 16:18) *
Если же я запущу
fwrite(s,STR1)
fwrite(s,STR2)
То между пакетами будет интервал в 100мс, а внутри пакетов все по прежнему хорошо. Условно говоря возникает задержка при переходе от строчки к строчке


Так что вас собственно удивляет? Между вызовом fwrite и реальной передачей может пройти неопределенное количество времени (кто знает как их драйвер устроен и чем сейчас система занята)
Go to the top of the page
 
+Quote Post
Muscat
сообщение Jan 21 2011, 10:46
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



А меня и не удивляет, меня интересует как решить эту проблему
1) Как устроен драйвер и в какую сторону нужно копать?
2) Как разгрузить систему? Пробовал работать в безопасном режиме, но не дает открыть ком-порта.


--------------------
Because it's there
Go to the top of the page
 
+Quote Post
gwii
сообщение Jan 21 2011, 20:30
Сообщение #20





Группа: Участник
Сообщений: 7
Регистрация: 22-01-10
Пользователь №: 54 992



Вообще, реальная скорость передачи - это ответственность программиста, который это написал. Передающая сторона сваливает данные в передающий буфер, вполне реального размера. Дальше передающий драйвер дует этот буфер, на скорости стремящейся к максимальной, в канал. А там заполняется приемный буфер. Драйвера как правило пишут профессионалы и тут все в порядке. А вот сколько времени нужно передающей программе, чтобы сформировать буфер. И приемной стороне, чтобы обработать принятый массив. В 95% случаев, которые я встречал, тормозило именно здесь. И многозадачность винды тоже добавляет тормозов.

Вообще, самая тяжелая ситуация, когда данные идут из примитивно девайса (типа меги или TMS) в персоналку. Тут приходится контролировать, что все данные приняты. А иначе можно не только байты, а целые пакеты потерять.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 31st August 2025 - 05:03
Рейтинг@Mail.ru


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