Аппаратное обеспечение невозможно отладить без программного обеспечения - PullRequest
7 голосов
/ 10 марта 2010

Отказ от ответственности: я (в основном) не знаю аппаратного обеспечения. Это наверное моя проблема. Однако мне трудно согласиться с тем, что отладка оборудования невозможна, поэтому я просто хотел получить второе мнение.

У нас есть проблема. Где определенные действия (замена и включение USB-устройств во время выполнения) могут привести к разрушению либо USB-концентратора, либо чипа на нашей USB-плате (это нестандартное оборудование). Это нечеткая проблема (кажется, что степень «раздувания» может немного отличаться), и проблема проявляется в периодической моде с различными симптомами, которые очень трудно надежно воспроизвести (обычно случайное повреждение пакетов) .

Это приводит к затруднению в определении того, является ли недавно сообщенная проблема из-за аппаратного сбоя или фактически является ошибкой в ​​программном обеспечении. С тех пор мы внедрили защиту на этих устройствах, но если незащищенное устройство используется с защищенным устройством, оно может испортить (теперь защищенное) устройство. Один из портов также не защищен, что означает, что кто-то еще может «убить» устройство, которое должно быть безопасным, случайно использовав неправильный порт.

Результатом этого является то, что невозможно определить, какие из наших устройств страдают от этой проблемы, не полностью заменив ВСЕ аппаратное обеспечение (мы укусили за большую часть нашего производственного оборудования, но все еще есть много dev и QA оборудование там с этой проблемой).

Я бы предположил, что это возможно, учитывая часть оборудования, с помощью которого можно использовать какие-либо инструменты диагностики оборудования, чтобы определить, является ли комплект неисправным или нет. Я живу в мире снов? Мой отдел аппаратного обеспечения говорит мне, что единственными тестами, которые могут доказать ошибку, являются тесты программного обеспечения ... но, как я уже говорил, симптомы очень трудно воспроизвести. Поскольку я не очень разбираюсь в оборудовании, я не знаю, единственный ли это ответ или нет. Поэтому я спрашиваю мир.

Ответы [ 6 ]

6 голосов
/ 11 марта 2010

Встроенное испытательное оборудование используется для выполнения встроенного теста

BITE для BIT

(Не задействованы байты.)

Для военной / аэрокосмической техники совершенно нормально иметь дополнительное оборудование для испытаний.

Оригинальный IBM PC содержит удивительное количество встроенного тестового оборудования.

В случае вашего оборудования, тестовое устройство и некоторый статистический анализ помогут. Это может быть сделано аппаратно в ключе, но, честно говоря, было бы проще с некоторым программным обеспечением. Используйте два последовательных преобразователя USB-RS232 для создания петлевого устройства USB. Отправка большого количества данных, пакетов контрольной суммы и измерение частоты ошибок.

Я предполагаю, что ваши ошибки возникают как на входе, так и на выходе.

Действительно, ребята из вашего оборудования должны взглянуть на некоторые замечания по применению; USB IS безопасный для горячей замены, ЕСЛИ сделано согласно книге. В сети есть замечательный пример опто-соединения USB-чипа с платой, на которой он предотвращает подобные вещи. Микросхема USB подключена к хосту и получает питание от хоста, а интерфейс к микросхеме USB является SPI, который опто-связан с остальной частью платы.

Что касается вас, чипы частично выходят из строя. Поврежденные устройства могут нормально работать в течение нескольких месяцев, а затем погибнуть. Электростатический разряд («статический разряд») может делать то же, что вы описываете. Устройство может быть повреждено ударами, слишком маленькими, чтобы вы могли чувствовать.

Провода и элементы в полупроводниках микроскопические и легко повреждаются паразитным электричеством. Если аппаратный дизайн в основном правильный, вероятно, причиной проблем, с которыми вы сталкивались, является ESD, когда устройства обрабатываются для включения / выключения. У вашего девайса есть собственный источник питания, и его напряжение заземления плавает относительно другого конца USB-кабеля, пока он не будет подключен.

Надеюсь, это поможет.

4 голосов
/ 10 марта 2010

Нет, это не так.

Многие производители оборудования начинают с тестирования оборудования. Входы и выходы (IO) - это просто вопрос оценки направления потока в цепи. Рассмотрим абстракцию, которую программное и аппаратное обеспечение имеют в булевых операциях.

Аппаратное обеспечение чуть менее читабельно для человека!

1 голос
/ 11 марта 2010

Чем проще аппаратное обеспечение и чем больше у вас доступа к сигналам, тем больше вероятность, что вы сможете диагностировать его «чисто аппаратным» способом. Например, если вы подключили простую карту параллельного порта в слот PCI, было бы относительно просто установить анализатор шины на шину PCI и выход адаптера и посмотреть, правильно ли работают выходы при обращении к карте. , Но учтите, что вам все равно нужно попытаться получить доступ к этой карте с шины PCI, что будет означать либо (A) своего рода симуляцию шины PCI, что будет чертовски большой кучей тестового оборудования, либо (B) a недорогой готовый ПК с несколькими строками тестового кода.

Но затем на другом конце спектра, предположим, вы имеете дело с большой FPGA. Вы можете получить чертовски много логики в FPGA, и у вас не обязательно будет доступ ко всем контрольным точкам, которые вы хотите. Я лично столкнулся с ошибкой с последовательным портом, встроенным в FPGA, когда состояние гонки с регистром предварительной загрузки сдвигового регистра иногда приводило к повреждению байта. Гипотетически VHDL можно было бы переработать, чтобы получить контрольные точки и собрать кучу областей и анализаторов, но с точки зрения управления было гораздо более выгодно попытаться выявить проблему с помощью программного обеспечения. При нормальном использовании рассматриваемая ошибка появлялась один раз в каждую голубую луну. Мы повторяли рассуждения об условиях, которые могли бы вызвать ошибку, и дорабатывали тестовый код, пока у нас не появилось тестовое программное обеспечение, способное воспроизводить ошибку 2-3 раза в минуту. В этот момент мы могли бы дать подсказки ребятам из VHDL, которые помогли им быстро решить проблему.

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

1 голос
/ 10 марта 2010

Нет. Вот для чего нужны осциллографы и логические анализаторы. Также есть более специализированное оборудование, такое как USB-тестеры .

1 голос
/ 10 марта 2010

Ваша проблема в том, что единственный известный симптом настолько трудно обнаружить (повреждение пакета в потоке USB), что вам потребуется программное обеспечение (на некотором уровне) для его обнаружения.

Если вы можете понять, почему пакеты повреждены (плохое напряжение?), То, возможно, вы могли бы обнаружить это с помощью оборудования?

В противном случае вам понадобится какой-нибудь надежный набор для тестирования и программное обеспечение для отправки / получения большого количества пакетов для поиска повреждений?

1 голос
/ 10 марта 2010

Когда дело доходит до этого, аппаратная линия связи (в своей самой основной) ВЫСОКАЯ и НИЗКАЯ через различные контакты.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...