aloc 0 17 октября, 2013 Опубликовано 17 октября, 2013 · Жалоба Здравствуйте, имеется МК F340 на него с внешнего АЦП с частотой 10 кГц поступает 8 байт данных, т.е. 80 байт/мс или 80 Кбайт/с. Необходимо передать эти данные в компьютер, с компьютера также будут поступать значения переменных (установка генерируемых частот), но не регулярно. Не знаю какой режим работы USB выбрать в этом случае. Вроде как должен подойти режим по прерываниям, но у него минимальное время запросов 1 мс и размер пакета 64 байта(откуда такое ограничение?) По изохронному режиму как-то мало информации и примеров реализации, но на данный момент он кажется наиболее предпочтительным. По поводу балка сомневаюсь, в итоге к хосту будет подключено два описанных устройства и одно, на которое будут подаваться команды управления (поток данных не значительный) не будет ли возникать слишком длинных задержек передачи и переполнений буфера? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vladec 7 18 октября, 2013 Опубликовано 18 октября, 2013 · Жалоба Ранее в USBXpress работа по прерываниям не предусматривалась и весь обмен мог идти только по инициативе компа. Может конечно сейчас что то изменилось? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
onic777 0 18 октября, 2013 Опубликовано 18 октября, 2013 (изменено) · Жалоба Здравствуйте, имеется МК F340 на него с внешнего АЦП с частотой 10 кГц поступает 8 байт данных, т.е. 80 байт/мс или 80 Кбайт/с. Необходимо передать эти данные в компьютер, с компьютера также будут поступать значения переменных (установка генерируемых частот), но не регулярно. Не знаю какой режим работы USB выбрать в этом случае. Вроде как должен подойти режим по прерываниям, но у него минимальное время запросов 1 мс и размер пакета 64 байта(откуда такое ограничение?) По изохронному режиму как-то мало информации и примеров реализации, но на данный момент он кажется наиболее предпочтительным. По поводу балка сомневаюсь, в итоге к хосту будет подключено два описанных устройства и одно, на которое будут подаваться команды управления (поток данных не значительный) не будет ли возникать слишком длинных задержек передачи и переполнений буфера? Добрый день! Конечно использовать Bulk или MSD не стоит! Не удобно это для таких задач! Эти режимы используются для передачи больших файлов или работы с внешними дисками. Использовать Int тоже не очень удобно - канал все время занят... Кроме того, недостатками Bulk и Int является необходимость установки драйверов, которые имеют обыкновение криво садиться... Для Вашей системы лучше всего подходит режим HID, т.к. не требует драйверов и комплекс оборудования работает в режиме командно-информационной сети, в которой компьютер - Host - выдает команды, а остальные устройства выполняют команды и отвечают. Так что рекомендую поработать в этом направлении. Изменено 18 октября, 2013 пользователем Onic777 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Konst_777 0 18 октября, 2013 Опубликовано 18 октября, 2013 · Жалоба ...имеется МК F340...80 Кбайт/с... Не знаю какой режим работы USB выбрать в этом случае... Bulk на Full Speed легко справится с таким потоком данных. ...По поводу балка сомневаюсь, в итоге к хосту будет подключено два описанных устройства и одно, на которое будут подаваться команды управления (поток данных не значительный) не будет ли возникать слишком длинных задержек передачи и переполнений буфера? Если контроллер один, то к хосту будет подключено одно устройство USB с несколькими endpoint-ами. По описанию задачи - с двумя конечными точками. Какие требования к задержкам передачи? ...Кроме того, недостатками Bulk и Int является необходимость установки драйверов, которые имеют обыкновение криво садиться... Если на компьютере установлена Windows 7 или Windows 8, то следует использовать WinUSB. Тогда не нужно будет устанавливать драйвер. How to install WinUSB.sys without a custom INF? WinUSB example from Jan Axelson ...Для Вашей системы лучше всего подходит режим HID... HID не обеспечит скорость обмена 80 Кбайт/с на USB Full Speed. Для него потолок 64 Кбайт/с. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aloc 0 18 октября, 2013 Опубликовано 18 октября, 2013 (изменено) · Жалоба Если контроллер один, то к хосту будет подключено одно устройство USB с несколькими endpoint-ами. По описанию задачи - с двумя конечными точками. Какие требования к задержкам передачи? Три отдельных платы, каждая со своим МК соответственно. Если на IN использовать endpoint 3 с максимальным размером без разделения в 512 байт, то запросы пакетов должны быть не реже, чем раз в 6 мс для каждого из двух устройств. А ещё, не подскажите программы для отображения принимаемой информации? Сейчас использую Jungo WinDriver, в нём получаю драйвер, а также можно посмотреть, что принимается. Ранее в USBXpress работа по прерываниям не предусматривалась и весь обмен мог идти только по инициативе компа. Может конечно сейчас что то изменилось? В приведенных к МК примерах этот режим реализован в TestPanel, он, вроде как, предполагает работу по запросу от хоста, но с гарантированным временем задержки (до 1 мс в full speed), которое прописано в дескрипторе endpoint. Добрый день! Конечно использовать Bulk или MSD не стоит! Не удобно это для таких задач! Эти режимы используются для передачи больших файлов или работы с внешними дисками. Использовать Int тоже не очень удобно - канал все время занят... Кроме того, недостатками Bulk и Int является необходимость установки драйверов, которые имеют обыкновение криво садиться... Для Вашей системы лучше всего подходит режим HID, т.к. не требует драйверов и комплекс оборудования работает в режиме командно-информационной сети, в которой компьютер - Host - выдает команды, а остальные устройства выполняют команды и отвечают. Так что рекомендую поработать в этом направлении. Как я понял HID, MSD и т.д. это стандартные классы устройств, а режимы работы USB это Bulk, Interrupt и Isochronus. Использование стандартных классов позволяет избежать необходимости в самостоятельном написании драйверов. Изменено 18 октября, 2013 пользователем Aloc Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Konst_777 0 18 октября, 2013 Опубликовано 18 октября, 2013 · Жалоба Три отдельных платы, каждая со своим МК соответственно. Если на IN использовать endpoint 3 с максимальным размером без разделения в 512 байт, то запросы пакетов должны быть не реже, чем раз в 6 мс для каждого из двух устройств...Да, c потоками от АЦП все ясно - 80*3 Кбайт/с. И проблем быть не должно. Какие требования к задержкам для команд управления? Три отдельных платы, каждая со своим МК соответственно...На всякий случай, почитайте тему 8 датчиков MMA8451Q на 1 USB, как лучше сделать ...А ещё, не подскажите программы для отображения принимаемой информации? Сейчас использую Jungo WinDriver, в нём получаю драйвер, а также можно посмотреть, что принимается... USB сниффер, Какой софт господа предпочитают? Чтение обмена по USB шине, прочитать обмен подключившись к проводам - на всякий случай... Ну и, выполните поиск в подфоруме RS232/LPT/USB/PCMCIA/FireWire по ключевой фразе "анализатор USB протокола" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aloc 0 18 октября, 2013 Опубликовано 18 октября, 2013 · Жалоба Спасибо за рекомендации. Да, c потоками от АЦП все ясно - 80*3 Кбайт/с. И проблем быть не должно. Какие требования к задержкам для команд управления? Особых требований для задержек команд управления нет, ну и АЦП всего два, для третьего устройства только управление. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aloc 0 1 ноября, 2013 Опубликовано 1 ноября, 2013 · Жалоба А нужны какие-то ещё дополнительные настройки для двойной буферизации, кроме записи бита в соответствующий регистр? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться