Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CP2102
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
Eltex
Добрый день.
Столкнулся со следующей проблемой:
Наше железо ранее обменивалось с компом по стандартному 232 порту. В дежурном режиме идет постоянный обмен короткими пакетами (8 байт). После перехода на СР2102 с стандартными драйверами виртуального порта оказалось что между посылкой/приемом пакета идут довольно большие паузы.(около 40мс) как следствие фактическая скорость обмена упала примерно в 50раз. На стандарном ком-порте пауз нет вообще. Изменения таймаутов не влияют.
С чем связана такая проблема? Возможно ее побороть или хотя бы немного уменьшить задержку между пакетами?
Пакеты посылаются в цикле , после ответа железки сразу посылается новый запрос, ни каких специальных пауз в программе нет, но чтение данных из порта стандартными АРІ длится гараздо больше установленных таймаутов с передачей тоже самое, на обычном ком-порте тоже ПО работает нормально.
Спасибо.

ПС: О данной проблеме уже слышал но ответа не в форуме не в интернете не нашел.
KRS
По опыту общения с FTDI
таймауты которые устанавливаются виндоватыми функциями SetCommTimeouts...
не работают на USB (или работают не так как ожидается)
это конечно связано с тем что реально данные идут пакетами и на прием приходят пачками, причем чаще чем 2 ms меду такими пакетами сделать не получатеся.
в FTDI есть настройка LatencyTimer которая позволяет менять частоту опроса USB
Наверное у Silabs есть что то подобное.
В любом случае нельзя полагаться на тамауты установленные SetCommTimeouts, они будут только мешать. Таймауты придется делать по другому.
Eltex
Цитата(KRS @ Apr 24 2007, 22:42) *
По опыту общения с FTDI
таймауты которые устанавливаются виндоватыми функциями SetCommTimeouts...
не работают на USB (или работают не так как ожидается)
это конечно связано с тем что реально данные идут пакетами и на прием приходят пачками, причем чаще чем 2 ms меду такими пакетами сделать не получатеся.
в FTDI есть настройка LatencyTimer которая позволяет менять частоту опроса USB
Наверное у Silabs есть что то подобное.
В любом случае нельзя полагаться на тамауты установленные SetCommTimeouts, они будут только мешать. Таймауты придется делать по другому.


У FTDI действительно есть LatencyTimer, а вот у Silabs в настройках порта ее нет и вообще нигде в доке не упоминается.
Но, интерестно другое, после открытия порта в трафике УСБ явно видны осцилографом пакеты через каждую 1мс. При этом паузы между пакетами УАРТ не всегда стабильны но, всегда кратны 1мс и колебаются тоже ровно на 1мс, при этом на втором луче явно видно что они засинхронизированы с пакетами УСБ.
Т.е. получается что опрос УСБ на моем компе идет 1мс вот только прием/передача происходят не в первом запросе УСБ а на каком-то другом попозже.

На другом компе вообще скорость упала раз в 200, но посмотреть осцилографом паузы и пакеты там возможности нет.
Седой
Такое поведение CP2102 скорее всего связано с его firmware (насколько я понял - это фабрично прошитый С8051F327) и драйвером виртуального СОМ-порта.
Если позволяют условия задачи, то попробуйте с драйвером USBXpress.

PS. Лучше реализовать ваш протокол на том же С8051F327.
Для облегчения задачи можно применить USBXpress.
Лев Александрович
Цитата(Eltex @ Apr 24 2007, 21:06) *
Добрый день.
Столкнулся со следующей проблемой:
Наше железо ранее обменивалось с компом по стандартному 232 порту. В дежурном режиме идет постоянный обмен короткими пакетами (8 байт). После перехода на СР2102 с стандартными драйверами виртуального порта оказалось что между посылкой/приемом пакета идут довольно большие паузы.(около 40мс) как следствие фактическая скорость обмена упала примерно в 50раз. На стандарном ком-порте пауз нет вообще. Изменения таймаутов не влияют.
С чем связана такая проблема? Возможно ее побороть или хотя бы немного уменьшить задержку между пакетами?
Пакеты посылаются в цикле , после ответа железки сразу посылается новый запрос, ни каких специальных пауз в программе нет, но чтение данных из порта стандартными АРІ длится гараздо больше установленных таймаутов с передачей тоже самое, на обычном ком-порте тоже ПО работает нормально.
Спасибо.

ПС: О данной проблеме уже слышал но ответа не в форуме не в интернете не нашел.


Посылаю Вам свой перевод AN232B-03 FTDI Нажмите для просмотра прикрепленного файла
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.