Какой наилучший тип передачи USB (массовая передача, прерывание, изохронная передача) следует использовать для реализации USB-осциллографа?

20

Я хочу построить осциллограф USB. Я читал о различных типах передачи USB . Какой тип передачи лучше всего подходит для передачи собранных образцов АЦП с USB-осциллографа на ПК?

Ниже приведены некоторые из моих выводов. Пожалуйста, исправьте меня, и было бы хорошо, если бы кто-нибудь мог предложить хороший тип перевода.

  1. Изохронная передача - возможна потеря данных. Не подходит для осциллографа, поскольку каждый элемент данных является ценным. Сколько данных может быть потеряно?
  2. Режим прерывания - я понятия не имею, затопит ли он USB-соединение
  3. Массовый режим - кажется мне лучшим, так как без потери данных
  4. Передача управления - не подходит, так как она не предназначена для передачи данных
robomon
источник
2
Из того, что я прочитал, большинство областей с USB используют массовый режим для отправки скриншотов области.
прохожий
Предположительно, если вы работаете в изохронном режиме, вы можете зарезервировать немного дополнительной полосы пропускания для исправления ошибок.
user253751 9.09.15
Или из-за чрезмерного излишества PCIe DMA щекочет мое воображение.
Митч

Ответы:

28

Массовые передачи не теряют данные, но они не имеют гарантированной минимальной пропускной способности. (С другой стороны, они могут достигать более высоких скоростей, потому что они могут использовать всю полосу пропускания, фактически не используемую никакими другими передачами.)

Что происходит, когда передача данных вашего осциллографа задерживается (либо из-за ошибок, либо из-за других устройств), а новые данные накапливаются? Вы останавливаете устройство до тех пор, пока не будут переданы старые данные, или вы выбрасываете старые данные, чтобы иметь возможность передавать текущие данные?

Изохронные передачи предназначены для данных в режиме реального времени. У вас нет выбора в обработке ошибок, но ваша пропускная способность зарезервирована на шине.

  • Если вы хотите отображать записанные данные в режиме реального времени, вы должны использовать изохронные передачи.
  • Если вы хотите перенести записанные данные на ПК после завершения измерений, вам следует использовать групповые переносы.
CL.
источник
10

Этот вопрос практически не зависит от вашего использования в качестве осциллографа и полностью зависит от типов связи, которые вы запрашиваете USB. Например:

  • Осциллограф, который имеет большой (много-мегабайтный) буфер внутри и предназначен для запуска сначала короткого теста, а затем загрузки данных, будет использовать полностью массовую передачу. Он не нуждается в гарантированной пропускной способности, поэтому лучше будет использовать большой объем с проверкой ошибок массовой передачи.
  • Осциллограф, который предназначен для непрерывного подключения к тестируемой цепи на постоянной основе и должен работать в режиме реального времени (читай: детерминированное время работы), выбрал бы изохрон. Bulk не дает никаких детерминированных гарантий времени выполнения, и вы не можете настроить свой канал на зарезервированную полосу пропускания. Вы должны будете сделать свои собственные исправления ошибок, но по крайней мере они могут быть сделаны детерминистически.
  • Осциллограф с «прямой» трансляцией для просмотра человеком и высокоскоростным захватом на триггере может установить две конечные точки, одну изохронную, чтобы не отставать от прямой трансляции и массовой передачи для сработавших данных. Для человека потеря кадра или двух не является большой проблемой, поэтому нет причин беспокоиться об отсутствии проверки ошибок на изохроне. Однако, когда дело доходит до фактических данных, вы передаете их навалом для исправления ошибок.
  • Можно использовать эту схему как часть живой системы. Это может быть не только осциллограф, но и защита от сигналов, указывающих на то, что цепь выходит за пределы рабочего диапазона и должна быть отключена компьютером. В этом случае вы можете добавить конечную точку прерывания в систему, чтобы получить гарантированную задержку (и некоторую четко определенную обработку ошибок), чтобы убедиться, что проблема обслуживается до того, как она обрывает цепи.

Как только вы знаете, какой тип данных вы передаете, и качество обслуживания (QoS) определяет, к каким данным они должны поступить, вы можете решить, какой механизм передачи USB следует использовать. Вы будете знать, что готовы принять эти решения, когда слово «осциллограф» больше не требуется для описания необходимых вам данных и качества обслуживания. Тогда вы знаете, что это достаточно объективные слова, чтобы начать решать эти проблемы.

Корт Аммон - Восстановить Монику
источник
4

Для осциллографа пропускная способность передачи - это параметр, который вы хотите максимизировать. Массовая передача разработана специально для высокой пропускной способности, поэтому это правильный выбор. Хотя изохронная передача и передача прерываний ограничивают время ожидания, они предназначены только для потоков данных с низкой и средней пропускной способностью.

Дэйв Твид
источник
3

Просто используйте массовые переводы. Осциллограф на самом деле не является устройством с высокой скоростью передачи данных. Если вы не планируете делать дизайн типа цифрового люминофора, осциллограф - это просто окно в очень маленькую часть формы волны. Например, допустим, вы хотите отобразить 1000 пикселей по горизонтали и обновить отображение на частоте около 30 Гц. Если сэмплы являются 8-битными (это типично) и имеется два канала, вы смотрите только 60 000 байт / секунду. Полная скорость USB может составлять около 1 000 000 байт / с, поэтому вы используете менее 6% пропускной способности шины. Это дает достаточно времени, чтобы позволить режиму массовой передачи делать свое дело (исправлять ошибки, обходить другой трафик шины), и маловероятно, что вы когда-либо столкнетесь с реальной конфигурацией шины, которая не сможет выделить вам достаточную пропускную способность. для этого много данных.

Джон
источник