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

 
 
> Существуют ли простые решения для 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
 
Start new topic
Ответов
SSerge
сообщение Nov 15 2008, 15:56
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Дык, USB передаёт данные пакетами, поэтому то, что приходит с RxD сначала буферизуется внутри микросхемы и потом передаётся по таймауту или при заполнении буфера. Время таймаута можно настраивать.
Вот, прямо на 4-й странице пишут:
Цитата
Programmable Receive Buffer Timeout - The receive buffer timeout is used to flush remaining data from the receive buffer. This time defaults to 16ms, but is programmable over USB in 1ms increments from 1ms to 255ms, thus allowing the device to be optimised for protocols that require fast response times from short data packets.

Ещё один способ - по окончании передачи пакета "подёргать ножкой" CTS или DSR чтобы спровоцировать передачу буфера. Смотрите AN232B-04 Data Throughput, Latency and Handshaking.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
Гвоздик
сообщение Nov 17 2008, 04:11
Сообщение #3


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

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



Цитата(SSerge @ Nov 15 2008, 18:56) *
Дык, USB передаёт данные пакетами, поэтому то, что приходит с RxD сначала буферизуется внутри микросхемы и потом передаётся по таймауту или при заполнении буфера. Время таймаута можно настраивать.
Вот, прямо на 4-й странице пишут:

Ещё один способ - по окончании передачи пакета "подёргать ножкой" CTS или DSR чтобы спровоцировать передачу буфера. Смотрите AN232B-04 Data Throughput, Latency and Handshaking.

Спасибо за совет по таймауту. Однако, это мы уже пробовали и неоднократно. На самом деле изменение значения таймаута таймера в драйвере не помогает, квалификации виндового программиста я доверяю.
Подергать ножкой попробуем, может и поможет.

Цитата(Седой @ Nov 15 2008, 20:08) *
Похожая на вашу проблема уже обсуждалась в теме http://electronix.ru/forum/index.php?showt...=37919&st=0

Возможно, что указанное решение подойдет и для FTDI. Естественно при условии настройки timeout, как указал SSerge, и отсутствии кривизны драйверов от FTDI.

Но, лучше всего использовать USB-RS485 на микрокотроллере с firmware и драйвером, оптимизированными под вашу задачу.

PS. Если не можете сделать сами - пишите в личку, мы такие USB-RS485 производим.

Если не секрет, то какова задержка от отправки до приема пакета с применением микроконтроллера с USB "на борту"?
Go to the top of the page
 
+Quote Post
Седой
сообщение Nov 17 2008, 08:25
Сообщение #4


Местный
***

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



Цитата(Гвоздик @ Nov 17 2008, 09:11) *
Если не секрет, то какова задержка от отправки до приема пакета с применением микроконтроллера с USB "на борту"?


В пределах одного фрейма (т.е меньше 1 миллисекунды).
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Гвоздик   Существуют ли простые решения для USB slave?   Nov 15 2008, 05:00
- - aag   Ну тут получается идеальный вариант CY7C68013. Это...   Nov 15 2008, 12:13
|- - barabek   Цитата(aag @ Nov 15 2008, 22:13) Ну тут п...   Nov 15 2008, 13:54
|- - KykyryzzZ   Цитата(barabek @ Nov 15 2008, 16:54) Вооб...   Nov 17 2008, 11:55
|- - AndreyS   ЦитатаСедой Дата Nov 15 2008, 20:08: Но, лучше вс...   Nov 17 2008, 07:15
||- - Огурцов   Цитата(AndreyS @ Nov 17 2008, 07:15) USB ...   Nov 17 2008, 10:06
||- - galjoen   Цитата(Седой @ Nov 17 2008, 11:25) В пред...   Nov 17 2008, 08:48
||- - Седой   Цитата(galjoen @ Nov 17 2008, 13:48) Т.е....   Nov 17 2008, 09:32
||- - galjoen   Цитата(Седой @ Nov 17 2008, 12:32) Нет ко...   Nov 17 2008, 10:19
||- - Седой   Цитата(galjoen @ Nov 17 2008, 15:19) Тут ...   Nov 17 2008, 11:15
||- - galjoen   Цитата(Седой @ Nov 17 2008, 14:15) Способ...   Nov 17 2008, 11:53
||- - Седой   Цитата(galjoen @ Nov 17 2008, 16:53) Тут,...   Nov 17 2008, 12:37
||- - galjoen   Цитата(Седой @ Nov 17 2008, 15:37) Невозм...   Nov 17 2008, 13:28
|- - Гвоздик   Цитата(Гвоздик @ Nov 17 2008, 07:11) Спас...   Nov 19 2008, 04:15
|- - Седой   Цитата(Гвоздик @ Nov 19 2008, 09:15) ... ...   Nov 19 2008, 05:21
||- - Гвоздик   Цитата(Седой @ Nov 19 2008, 08:21) Очеред...   Dec 3 2008, 10:35
||- - Седой   Цитата(Гвоздик @ Dec 3 2008, 15:35) Что ж...   Dec 13 2008, 13:55
|- - _3m   Цитата(Гвоздик @ Nov 19 2008, 07:15) Ножк...   Dec 8 2008, 13:11
- - Седой   Похожая на вашу проблема уже обсуждалась в теме h...   Nov 15 2008, 17:08


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

 


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


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