Методика тестирования USB и инструменты автоматизации

Мне поручено разработать архитектуру для нагрузочного (прожигания) тестирования USB-портов компьютера. Требования еще не определены, и у меня двойная сложная задача - определить, что тестировать и при каких условиях и какие инструменты использовать для выполнения тестов. Я поставил следующие начальные требования:

  1. тест должен быть автоматизирован - запускается из скрипта / пакетного файла;
  2. способен тестировать оба интерфейса - USB2 и USB3 - с одним и тем же устройством USB3.0 (чтобы исключить ручную замену устройств 2.0 и 3.0);
  3. USB - это передача команд / данных, и неважно, какое устройство я использую, но он должен напрягать каналы связи в обоих направлениях. Самый простой выбор - USB-накопитель 3.0 или выше, который постоянно читается и записывается. Должно быть относительно дешево и легко.

Теперь о трудностях и вопросах:

  1. что бы вы улучшили / добавили к требованиям?
  2. Есть ли лучший способ, который вы можете предложить - с точки зрения методологии и используемых устройств?
  3. re: USB2 / USB3 - не могу понять, можно ли программно вынуть и переустановить USB-устройство, заставив его работать в определенном режиме;
  4. обеспечивает ли USB какую-либо статистику по полосам / каналам - например, размер передаваемой / получаемой информации (кадры / пакеты), повторные передачи, ошибки и т. д.;
  5. какое программное обеспечение доступно, в идеале с открытым исходным кодом / бесплатно? Например dd Это вариант для стресс-теста, но я совершенно не могу найти какую-либо утилиту, предоставляющую статистику для USB.

Большое спасибо @Ale-chenski

Если вы занимаетесь QA для производства, вам нужно только проверить наличие дефектов сборки и потери целостности. Это означает, что вам не нужно сильно напрягаться и проверяйте только быстрые факты подключения для всех (текущих) 5 типов USB-режимов (SS +, SS, HS, FS, LS).

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

Как добиться этого наилучшим, автоматизированным и, если возможно, экономически эффективным способом?

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

Ладно, модератору не понравился мой "широкий" вопрос, требующий, чтобы я "описал вашу ситуацию и конкретную проблему, которую вы пытаетесь решить". Итак, вот они:

  1. Флешка USB 3.0 установлена ​​в разъем USB 3.0. Мне нужно повторно инициализировать интерфейс, чтобы использовать этот диск в режиме USB 2.0, не вынимая его из разъема. Какие команды, Linux и Windows, я использую?

  2. Я хочу передать как можно больше данных через USB. Какая команда, Linux и Windows, больше всего подчеркивает USB-соединение с точки зрения пропускной способности?

  3. Мне нужно посмотреть, сколько данных было передано через интерфейс USB, и сколько ошибок было обнаружено. Какую команду, Linux и Windows, я использую?

1 ответ

Это слишком широкий вопрос, чтобы ответить. На функциональность USB влияют несколько различных элементов.

  1. Реализация хост-контроллера - существуют варианты аппаратного кода, реализация и производственные запасы могут привести к незначительным ошибкам;
  2. Драйвер программного обеспечения хоста тонкие детали, особенно в области управления питанием, управления конечными точками, управления памятью.
  3. Качество сигнала физического уровня, которое включает в себя реализации трассировки материнской платы, наличие и выбор дополнительных схем защиты от электростатического разряда, качество разъемов (особенно для скоростей Gen1-Gen2);
  4. Тест канального уровня, который является локальным для каждой ссылки и может потребовать индивидуальной настройки на уровне BIOS/UEFI;
  5. Управление подачей питания, особенно с помощью разъемов Type-C, которое включает в себя специальное программное обеспечение для управления питанием с помощью последовательной формы и его интеграцию в структуру USB.

Стратегия тестирования примерно зависит от вашей роли в разработке, от того, занимаетесь ли вы хост-операцией по разработке программного / аппаратного обеспечения или тестируете конечный продукт на наличие дефектов сборки.

Если речь идет о разработке систем OEM, для (1) и (2) существует набор тестов Microsoft, который использует специально разработанные устройства MUTT и работает в течение нескольких недель.

Для (3) в тесте используется физическое оборудование, высокоскоростные области 16–40 ГГц, тестеры частоты ошибок по битам (BERT), генераторы шаблонов и снова целый ряд тестов на основе сценариев.

Для (4) вам понадобится анализатор протокола USB и снова набор тестов с использованием сценариев, которые проверяют несколько десятков TD (определения тестов).

Типичная стоимость набора инструментов для тестирования оборудования составляет около 500 тыс. Долларов.

Для (5) вам понадобится еще один набор тестеров.

Приведенный выше набор тестов гарантирует, что любая бездефектная производственная система не имеет проблем с "усилением передачи команд / данных", имея достаточные запасы для работы.

Если вы занимаетесь QA для производства, вам нужно только проверить наличие дефектов сборки и потери целостности. Это означает, что вам не нужно сильно напрягаться и проверяйте только быстрые факты подключения для всех (текущих) 5 типов USB-режимов (SS+, SS, HS, FS, LS).

Чтобы получить общее представление о сложности проблемы, вам следует начать с форума "Реализация USB" и ознакомиться с документацией по разработке и другими руководствами, а также с предложениями отрасли.

Другие вопросы по тегам