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

 
 
> Существуют ли простые решения для USB slave?, FTDI FT232RL делает слишком долгую задержку перед передачей
Гвоздик
сообщение Nov 15 2008, 05:00
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 153
Регистрация: 2-12-04
Из: Чебоксары
Пользователь №: 1 289



Здравствуйте, уважаемые форумчане!
Сначала кратко опишу существующее оборудование: преобразователь сигналов из USB в RS-485, созданный на основе микросхемы FTDI RS232RL; внешний аппаратный блок, отвечающий на запросы по шине RS-485; персональный компьютер с интерфейсом USB. Скорость обмена на шине равна 1 Мбит/с, что нас вполне устраивает.
Суть загвоздки в следующем: при замере времени от выдачи команды с ПК до приема ответа на него проходит не менее 15 мс, причем внешний аппаратный контроллер вносит задержку не более 1 мс. В пачке содержится 8 байт запроса и 8 байт ответа. При уменьшении скорости обмена по шине RS-485 время между запросом и ответом увеличивается, но незначительно. Основная задержка остается примерно одинаковой (15 мс).
Мы пробовали сначала использовать виртуальный последовательный порт для работы с компьютера, потом переписали ПО под использование динамических библиотек, пытаясь увеличить скорость обмена, все безрезультатно. Похоже, что микросхема от FTDI упорно вносит эту задержку выдачи первых данных в шину.
Скажите, пожалуйста, уважаемые форумчане, какие еще существуют наиболее простые в исполнении решения для ведомого устройства на шине USB? Скорости в 1 Мбит/с нам вполне достаточно, необходимо лишь уменьшить время отклика хотя бы до 5 мс.
Если использовать микроконтроллер с USB "на борту", какая задержка приемопередачи данных будет в этом случае?
Идеальным решением было бы применение готовой микросхемы, принимающей данные из USB-шины и выдающую их в параллельном или последовательном виде, и наоборот. Это для того, чтобы избежать дополнительных иженерных усилий по программированию и технологических операций при изготовлении.
Буду рад совету.
Go to the top of the page
 
+Quote Post
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 21)
Седой
сообщение Nov 17 2008, 12:37
Сообщение #16


Местный
***

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



Цитата(galjoen @ Nov 17 2008, 16:53) *
Тут, кстати, хочу сказать, что запрос (от компьютера) - ответ (устройства компьютеру) в одном фрейме (кадре) USB сделать можно без проблем, а вот как сделать наоборот - запрос (от устройства) ответ (компьютера устойству) в одном кадре я не знаю. А в режиме слейва RS485 нужен именно такой вариант. Отсюда и вопросы.

Невозможно, даже на уровне драйвера устройства.
PS. Хотя если делать свой драйвер корневого концентратора с планировщиком, то может быть... Нужно посмотреть документацию на конкретные чипы.

Цитата(galjoen @ Nov 17 2008, 16:53) *
Кстати дайте ссылочку на ваш вариант (можно и в личку) если не жалко. Я не из-за конкуренции, просто любопытно. А если вам интересно, я на свою железку ссылку дам.


Один из вариантов железки - обыкновенный USB-RS485, где вместо CP2103 впаян С8051F326 http://www.slavna.ru/stran/urs485.htm
Драйвер свой, механизм работы - в теме http://electronix.ru/forum/index.php?showt...=37919&st=0
Go to the top of the page
 
+Quote Post
galjoen
сообщение Nov 17 2008, 13:28
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(Седой @ Nov 17 2008, 15:37) *
Невозможно, даже на уровне драйвера устройства.
PS. Хотя если делать свой драйвер корневого концентратора с планировщиком, то может быть... Нужно посмотреть документацию на конкретные чипы.

Согласен.

А вот моя железка:
http://www.antel.info/index.php?option=com...=3&Itemid=4
Хотя это, конечно, побочный продукт. Основной тот, что с CAN, но CAN там не универсальный, а только под нашу технику.
Go to the top of the page
 
+Quote Post
Гвоздик
сообщение Nov 19 2008, 04:15
Сообщение #18


Частый гость
**

Группа: Свой
Сообщений: 153
Регистрация: 2-12-04
Из: Чебоксары
Пользователь №: 1 289



Цитата(Гвоздик @ Nov 17 2008, 07:11) *
Спасибо за совет по таймауту. Однако, это мы уже пробовали и неоднократно. На самом деле изменение значения таймаута таймера в драйвере не помогает, квалификации виндового программиста я доверяю.
Подергать ножкой попробуем, может и поможет.
Если не секрет, то какова задержка от отправки до приема пакета с применением микроконтроллера с USB "на борту"?

Ножками "подрыгали", толку нет, задержка таже - 15 мс и более.
Для сведения пробовали мы измерять задержку с использованием аппаратного последовательного порта RS-232C на том же оборудовании с тем же ПО. Задержка от отправки 8 байт запроса до приема 8 байт ответа составила 3..5 мс в зависимости от материнской платы ПК. Т.е. в три раза быстрее, чем по УСБ с микросхемой от FTDI, вот такие вот пирожки печет FTDI.
Придется на микроконтроллере с УСБ "на борту" делать заново, пока смотрю в сторону Майкрочипа, драйверы и АПИшные библиотеки для Винды они прилагают.
Go to the top of the page
 
+Quote Post
Седой
сообщение Nov 19 2008, 05:21
Сообщение #19


Местный
***

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



Цитата(Гвоздик @ Nov 19 2008, 09:15) *
... драйверы и АПИшные библиотеки для Винды они прилагают.


Очередной костыль.
Библиотекой USB от Microchip рекомендую пользоваться только с целью изучения.
Go to the top of the page
 
+Quote Post
Гвоздик
сообщение Dec 3 2008, 10:35
Сообщение #20


Частый гость
**

Группа: Свой
Сообщений: 153
Регистрация: 2-12-04
Из: Чебоксары
Пользователь №: 1 289



Цитата(Седой @ Nov 19 2008, 08:21) *
Очередной костыль.
Библиотекой USB от Microchip рекомендую пользоваться только с целью изучения.

Что ж, смелое утверждение на мой взгляд. А не могли бы Вы подробнее сказать почему? И что на Ваш взгляд более предпочтительно Майкрочипу?
Go to the top of the page
 
+Quote Post
_3m
сообщение Dec 8 2008, 13:11
Сообщение #21


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(Гвоздик @ Nov 19 2008, 07:15) *
Ножками "подрыгали", толку нет, задержка таже - 15 мс и более.
Для сведения пробовали мы измерять задержку с использованием аппаратного последовательного порта RS-232C на том же оборудовании с тем же ПО. Задержка от отправки 8 байт запроса до приема 8 байт ответа составила 3..5 мс в зависимости от материнской платы ПК. Т.е. в три раза быстрее, чем по УСБ с микросхемой от FTDI, вот такие вот пирожки печет FTDI.
Придется на микроконтроллере с УСБ "на борту" делать заново, пока смотрю в сторону Майкрочипа, драйверы и АПИшные библиотеки для Винды они прилагают.

Что-то в вашей консерватори не так.
Использую FT232BM. Изменением значения Latency Timer до 2-4мс получаю задержку запрос-ответ 3-5мс на скорости 1000килобит/с, мое устройство отвечает мгновенно. Коммуникационная часть на писюке крутится в отдельном потоке.
Ваши цифры характерны для дефолтного значения Latency Timer, которое составляет 16мс. Кстати, старые чипы FTDI не позволяют менять задержку, у старых чипов Latency Timer фиксированный на 16мс.
У чипов FTDI конечно есть проблемы, но именно с задержками у них ситуация лучше чем у всех остальных производителей USB-UART.
И не факт что на МК с USB на борту у вас с ходу обмен получится быстрее.

Сообщение отредактировал _3m - Dec 8 2008, 13:12
Go to the top of the page
 
+Quote Post
Седой
сообщение Dec 13 2008, 13:55
Сообщение #22


Местный
***

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



Цитата(Гвоздик @ Dec 3 2008, 15:35) *
Что ж, смелое утверждение на мой взгляд. А не могли бы Вы подробнее сказать почему? И что на Ваш взгляд более предпочтительно Майкрочипу?


Еще раз повторю - имеется в виду библиотека. К самим чипам претензий нет.

PS. Почему? Скомпилируйте для PIC24 и посмотрите ассемблерный код.

Цитата(_3m @ Dec 8 2008, 18:11) *
Что-то в вашей консерватори не так.
.....
И не факт что на МК с USB на борту у вас с ходу обмен получится быстрее.


А может быть не нужно "с ходу", а нужно быстрее ( в смысле задержку покороче).
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 07:53
Рейтинг@Mail.ru


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