Jump to content

    

Иммитация отказов.

Да и сгенерить полные тесты уровня платы это та ещё задача.А на что это влияет? Есть некий канал. Его детальная реализация мало на что влияет

Уровень платы это интерфейсы. Прекрасно тестируются.

Share this post


Link to post
Share on other sites
Странно, что про рашпиль как в datasheet на MC33298 никто не вспомнил. :biggrin:

А я вот вроде как в первый раз видел. Кланяюсь Алексею Кузнецову:

 

>Q: Как имитировать мощные помехи ?

 

A:Алексей Кузнецов

прихожу домой с работы, ставлю рашпиль у стены...

Ничтоже сумняшеся удумал я, братие, что хорошо бы обратно взад покумекать об устойчивости к помехам. Вопрос сей обширный, конфу почитаешь и споймешь что об его многие спотычку давали. По примеру Штирлица раскинув мозгами, решился, братие, поелику возможно привнести лепту... Изложу кусок предмета сего по разумению своему скудному, уж не обессудьте.

 

Ноне трудов великих нету кому хошь посёрфить в Интернете и нарыть десяток - другой загранишных машинок, специяльно всякими премудрыми хитрознатцами сотворенными на предмет испытания на помеху. Кои машинки попросче, кои позакрутистей, ин каждая поди фунт сухих рублей стоит, а то и поболее. А трудовым рублем зазря разбрасывать не следоват, лутше на него гостинцы дитю купить.

 

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

 

Много чего тут можно было б полезного в пример привесть, и релюшки самогенеряшшие, и пьзо-зажигалки от газовых плит приспособленные искру давать, и т.д. Одако ж по справедливости уделим внимание, братие, незатейливой, но жуть какой ядреной поделке из напильника. Для начала берешь изолируюший сетевой трансформатор, все ж какая-никакая а защита. Хорошо б ему еще фильтрок какой на вход присобачить, а то ведь как пойдет машинка помеху пускать, так в округе все приборы и протчие компунтели и коньки отбросить могут. Еще нужна индуктивная нагрузка, моторчик там, или ЛАТР, в обсчем чего под рукой будет.

 

Один провод от вторичной изолирующего транса соединяешь с индуктивной нагрузкой. Второй же провод от вторичной изолирующего транса крокодильчиком цепляешь у пресловутому напильнику. Напильник лежмя закрепляешь на изолирующей подставке потяжелее, чтоб все енто не елозило. Напильник лучше взять погрубее, а то и рашпиль даже. Второй провод от индуктивной нагрузки цепляешь к отвертке ненужной, только ручка ейная должна быть из пластика. Прибор готов. Жутковат, конешно, и убиться об его можно, да ведь все под богом ходим...

 

Работать с ним так. Перво-наперво встаешь на изолирующий коврик, суешь одну руку в карман свой (обычно пустой и с дыркой, но енто к делу не отностится), и пока тестируешь руку из кармана не вынай, дабы ненароком ею за что не ухватиться. Ежели устройство проверяемое питание от сети получает то включаешь его во вторичную ентого изолирующего транса. Кладешь свое устройство неподалеку от напильника, включаешь сеть и начинаешь отверткой об напильник шваркать. ЛАТР икает, из-под отвертки искры летят, но бледные такие, посколь чрез индуктивную нагрузку ток невелик. Однако ж спектр у помех от искр от ентих - ого-го. И по эфиру машинка излучает, и в сеть пускает. А ежели ЛАТР помощнее - то машинка и форму сетевой синусоиды сбивает порой так что пересечение сети через ноль скачет как ошалелое на пару миллисекунд от свово законного месту. Ежели какой вентилятор заместо ЛАТРа пользовать то сеть не калечится, зато высокочастотные помехи бывают и покруче чем от ЛАТРа.

 

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

 

А уж на реальном объекте пахать все будет без сучка и задоринки.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Господа. Имитация отказов, и тестирование на устойчивость к мощным помехам, это две большие разницы.... Тема про имитацию отказов.

Не вижу разницы, раз Вы хотите найти комбинации управляющих сигналов, приводящие к неработоспособности схемы.

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

 

Если Вам так не нравится, тогда курите слово верификация и coverage из ПЛИС- и чипостроения. Смысл в том что в системе, покрытой тестами, ПО анализирует количество покрытого тестами кода, и ищет код непокрытый. Для этого правда нужно чтобы система была полностью HDL-ная.

 

В конечном итоге, пройдясь по всем этим мегагаграблям, вы и сами прийдете к мысли, что Вам нужно писать тесты для узлов Вашей системы(AVR :cheers: ). Незамысловатые, в случае сдачи по ТУ, или с полным покрытием, если Вы собрались на Вашем устройстве лететь в космос, и это узел управления разгонным блоком "Бриз-М": судя по количеству проблем, coverage для него точно не делали)).

 

Единственное чего не знаю, как сделать анализ покрытия тестом программного продукта. Здесь полагаю, есть 2 пути: если в коде нет ОС, думаю возможно строить граф алгоритма, и исходя из него строить тест. Если есть, сливать воду и читать сертификаты)

 

А если все это фантазии заказчика - делайте имитатор бурной деятельности)

 

ЗЫ. По тестированию ПО много писал яндекс на хабре, о своем софте для больших машин, и в конфе была тема по автоматизации тестирования системы с микроконтроллером.

 

Вот крутаны

 

Вот тестирование РЛС Agilent

Share this post


Link to post
Share on other sites
Не вижу разницы, раз Вы хотите найти комбинации управляющих сигналов, приводящие к неработоспособности схемы.

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

Всё же есть нюанс. Задача не добиться сбоя любыми средствами. Само собой что всегда найдётся мощность выше которой устройство будет сбоить. Задача убедиться что ядро устройства продолжает жить пока отваливается периферия.
Если Вам так не нравится, тогда курите слово верификация и coverage из ПЛИС- и чипостроения. Смысл в том что в системе, покрытой тестами, ПО анализирует количество покрытого тестами кода, и ищет код непокрытый. Для этого правда нужно чтобы система была полностью HDL-ная.
Вот в этом и проблема. Как писать тесты для HDL я понимаю и они само собой есть. И тесты чаще всего поблочные. Т.е. каждый кубик оттестирован отдельно.

 

Проблема начинается при тестировании всех кубиков в сборе с залитым туда софтом. Т.е. масштаб модели резко увеличивается причём на порядки. И хотелось бы найти какие то промежуточные пути. Т.е. чтобы тестировалось несколько больше. А модель была не сильно сложнее.

 

В конечном итоге, пройдясь по всем этим мегагаграблям, вы и сами прийдете к мысли, что Вам нужно писать тесты для узлов Вашей системы(AVR :cheers: ). Незамысловатые, в случае сдачи по ТУ, или с полным покрытием, если Вы собрались на Вашем устройстве лететь в космос, и это узел управления разгонным блоком "Бриз-М").
Это да. Без сомнения. В этой точке и появляется вопрос как в тесте программы подсунуть ей отказ оборудования. Я так понимаю это можно сделать чисто программно и возможно это будет даже проще чем пробовать делать это аппаратно.
А если все это фантазии заказчика - делайте имитатор бурной деятельности)
Слава богу пока это моя инициатива :)

 

За ссылки большое спасибо :)

 

Ссылка на РЛС не рабочая :((

 

Вот кстати из статьи на хабре как раз то про что я спрашивал.

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

 

Share this post


Link to post
Share on other sites
Ссылка на РЛС не рабочая :( (

мне очень жаль, это голимая реклама - все на агиленте. Но Вы можете экстраполировать)

 

http://www.unitest.com/pdf/5990-7036ru.pdf

http://www.intermera.ru/news/agilent-techn...-i-sredstv-reb/

 

Всё же есть нюанс. Задача не добиться сбоя любыми средствами. Само собой что всегда найдётся мощность выше которой устройство будет сбоить. Задача убедиться что ядро устройства продолжает жить пока отваливается периферия.

может быть Вы вообще тогда цели путаете ? может Ваши ключевые слова: "надежность" "резервирование" "мажоритирование" ?

 

Проблема начинается при тестировании всех кубиков в сборе с залитым туда софтом. Т.е. масштаб модели резко увеличивается причём на порядки. И хотелось бы найти какие то промежуточные пути. Т.е. чтобы тестировалось несколько больше. А модель была не сильно сложнее.

ну знаете. Любишь кататься...

Хотя несложно представить себе инжекцию шума в разделительный конденсатор Pcie через еще один конденсатор. Хуже если шины параллельные.

 

Вот кстати из статьи на хабре как раз то про что я спрашивал.

Я думаю лучше всего об этом и спрашивать у самих ядровцев. Например я с интересом читал общение Tosha1984 с iiv, где Tosha1984 рассказывал, как прикидывать на пальцах допустимую длину несогласованной линии для корректной передачи быстрых сигналов .

 

Я так понимаю это можно сделать чисто программно и возможно это будет даже проще чем пробовать делать это аппаратно.

только вот так не делайте)

Share this post


Link to post
Share on other sites
Но Вы можете экстраполировать)
Благодарю :)
может быть Вы вообще тогда цели путаете ? может Ваши ключевые слова: "надежность" "резервирование" "мажоритирование" ?
Это мои родные слова :))) И резервирование есть в полном объёме. Резервом накрыт уровень выше. А вот уровень ниже работает сам по себе сколько может. И отказ некой мелкой периферии это ещё не повод включать резерв. Т.е. по сути то что я делаю это попытка выжать из аппаратуры больше чем может дать просто резервирование.

 

Т.е. можно например заменять человека если у него порезан палец. А можно в принципе работать дальше даже с этим повреждением. Т.е. по сути получаем систему способную пережить не один отказ а больше :)

 

ну знаете. Любишь кататься...

Хотя несложно представить себе инжекцию шума в разделительный конденсатор Pcie через еще один конденсатор. Хуже если шины параллельные.

Не не не :) Плату менять и править точно низя. Т.е. любые методы уровня плис и софта.

 

Я думаю лучше всего об этом и спрашивать у самих ядровцев.
Так я думал они тут и обитают.

 

 

только вот так не делайте)
Вот всеми силами стараюсь сделать чтобы так не было... но силы не равные :)))

 

Share this post


Link to post
Share on other sites

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

Просто делается набор макетов/стендов с вашим целевым ядром и тестируемой периферией. На каждом макете/стенде отлаживаются соответствующие подпрограммы, отвечающие за взаимодействие ядра с соответствующей периферией и на макете отрабатываются все предполагаемые отказы, начиная от обрывов/непропаев и заканчивая подбитой тушкой чипа и электрошокером :)

По итогу все мы так или иначе макетируем.

 

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

Share this post


Link to post
Share on other sites
Это да. Без сомнения. В этой точке и появляется вопрос как в тесте программы подсунуть ей отказ оборудования. Я так понимаю это можно сделать чисто программно и возможно это будет даже проще чем пробовать делать это аппаратно. Слава богу пока это моя инициатива :)

Я вот сейчас над чем работаю - именно что мне нужно не просто отладить проект в FPGA, а тупо устранить все возможные сбои. Если задача критическая, то и меры особые. В соседнем разделе можно видеть, что я осваиваю UVM для этого. Инициатива хорошая.

Share this post


Link to post
Share on other sites
Я таки думаю что для того чтобы протестировать код взаимодействия с какой либо периферией... нужно это и делать.

Просто делается набор макетов/стендов с вашим целевым ядром и тестируемой периферией. На каждом макете/стенде отлаживаются соответствующие подпрограммы, отвечающие за взаимодействие ядра с соответствующей периферией и на макете отрабатываются все предполагаемые отказы, начиная от обрывов/непропаев и заканчивая подбитой тушкой чипа и электрошокером :)

Это идея!!! Спасибо. Я так масштабно не задумывался.

 

Интересно, а разве Периферийное сканирование не решает задачу ТС? Вроде ж как идея хорошая - через JTAG можно контролировать любые пины.
Решает. Но это слишком низкоуровневый уровень. А как следствие трудозатратный.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now