|
Главная Ссылки Документация Советы Инструменты MIL-STD-1553B |
|
обзоp (RISC)
/
обзоp AVR
/
ядpо AVR
/
описания (AVR)
/
motorola
/
FAQ embedded (устаревшее)
|
|
Микроконтроллеры / Переферия / Конструирование / Инструменты / Авторы |
Ответы на вопросы о конструированииВопросы по помехамQ: Что такое EFT помехи и как с ними бороться ?Q: Как имитировать мощные помехи ? Q: Каковы требования для сертификации устройств ? Q: Что еще почитать на эту тему ? Вопросы по WDTQ: Как использовать WDT ?Способы повышения помехоустойчивостиQ: Зачем и в каких случаях нужно применять дополнительные меры по повышению надежности устройств на базе микроконтроллеров ?Q: В чем отличие аппаратных и программных методов повышения надежности? Какой из этих методов важнее? Q: От чего прежде всего защищаться? Q: Какие есть программные методы защиты ? Q: И насколько все это помогает ? Вопросы по помехам>Q: Что такое EFT помехи и как с ними бороться ?A:Алексей Кузнецов Конденсаторы по питанию от EFT не помогают. Помогает только
правильное конструирование печатной платы и специальные меры
предосторожности в схеме. Есть несколько простых "доморощенных"
правил: >Q: Как имитировать мощные помехи ? A:Алексей Кузнецов прихожу домой с работы, ставлю рашпиль у стены... Ничтоже сумняшеся удумал я, братие, что хорошо бы обратно взад покумекать об устойчивости к помехам. Вопрос сей обширный, конфу почитаешь и споймешь что об его многие спотычку давали. По примеру Штирлица раскинув мозгами, решился, братие, поелику возможно привнести лепту... Изложу кусок предмета сего по разумению своему скудному, уж не обессудьте. Ноне трудов великих нету кому хошь посёрфить в Интернете и нарыть десяток - другой загранишных машинок, специяльно всякими премудрыми хитрознатцами сотворенными на предмет испытания на помеху. Кои машинки попросче, кои позакрутистей, ин каждая поди фунт сухих рублей стоит, а то и поболее. А трудовым рублем зазря разбрасывать не следоват, лутше на него гостинцы дитю купить. Однако ж проверять как-то надо б тож, а то на авось и навернуться можно. Стал-быть, нужон струмент, ибо для справного мастерового человека струмент есть первый предмет. Как быть, братие? Правильно, надо струмент самому сварганить, пущай неказистый, лишь бы свое дело делал, помеху б пускал. Много чего тут можно было б полезного в пример привесть, и релюшки самогенеряшшие, и пьзо-зажигалки от газовых плит приспособленные искру давать, и т.д. Одако ж по справедливости уделим внимание, братие, незатейливой, но жуть какой ядреной поделке из напильника. Для начала берешь изолируюший сетевой трансформатор, все ж какая-никакая а защита. Хорошо б ему еще фильтрок какой на вход присобачить, а то ведь как пойдет машинка помеху пускать, так в округе все приборы и протчие компунтели и коньки отбросить могут. Еще нужна индуктивная нагрузка, моторчик там, или ЛАТР, в обсчем чего под рукой будет. Один провод от вторичной изолирующего транса соединяешь с индуктивной нагрузкой. Второй же провод от вторичной изолирующего транса крокодильчиком цепляешь у пресловутому напильнику. Напильник лежмя закрепляешь на изолирующей подставке потяжелее, чтоб все енто не елозило. Напильник лучше взять погрубее, а то и рашпиль даже. Второй провод от индуктивной нагрузки цепляешь к отвертке ненужной, только ручка ейная должна быть из пластика. Прибор готов. Жутковат, конешно, и убиться об его можно, да ведь все под богом ходим... Работать с ним так. Перво-наперво встаешь на изолирующий коврик, суешь одну руку в карман свой (обычно пустой и с дыркой, но енто к делу не отностится), и пока тестируешь руку из кармана не вынай, дабы ненароком ею за что не ухватиться. Ежели устройство проверяемое питание от сети получает то включаешь его во вторичную ентого изолирующего транса. Кладешь свое устройство неподалеку от напильника, включаешь сеть и начинаешь отверткой об напильник шваркать. ЛАТР икает, из-под отвертки искры летят, но бледные такие, посколь чрез индуктивную нагрузку ток невелик. Однако ж спектр у помех от искр от ентих - ого-го. И по эфиру машинка излучает, и в сеть пускает. А ежели ЛАТР помощнее - то машинка и форму сетевой синусоиды сбивает порой так что пересечение сети через ноль скачет как ошалелое на пару миллисекунд от свово законного месту. Ежели какой вентилятор заместо ЛАТРа пользовать то сеть не калечится, зато высокочастотные помехи бывают и покруче чем от ЛАТРа. И скажу вам по совести, братие, что ежели ваши устройства такие издевательства над собой стерпят и не сбойнут - значит и впрямь устойчивы они к помехам, и никакие премудрые загранишные машинки к тоему хвакту многого не добавят (хотя бывали отдельные слутчаи, но об ентом потом как-нибудь). А уж на реальном объекте пахать все будет без сучка и задоринки. >Q: Каковы требования для сертификации устройств ? A:Алексей Кузнецов смерть врагам империализма! Ничтоже сумняшеся позволил себе предположить что вопрос об излучаемых помехах для многих обратно взад может быть зело волнующим и таинственным. По примеру Штирлица раскинув мозгами, решился, братие, поелику возможно привнести лепту... Лень мне однакоже, братие, в сухих первоисточниках копаться и правду по зернышку выковыривать, ибо жизнь человечья коротка. Ан изложу предмет сей по разумению своему скудному, уж не обессудьте. Как это спокон веков водится, тон всему задали спесивые англичане с немцами. Стали они бурчать: безобразие, мол, наделали тут разной электроники всякие пеньки неотесанные, радио стало нельзя спокойно послушать, все хрипит и завывает. Давайте, грят, мы им, неграмошным, хвост прижмем, введем такие законы чтоб из устройств их похабных грязь электромагнитная не выпирала никуда, ни в эфир, ни по проводам сетевым. И по этим законам коль нечистое устройство обнаружится, то с компании сразу штраф в тыщ в двести зеленых иль около, а с козла-менеджера который подписал это устройство к производству - хоть половину того, да зато с личного его, паскуды, счета, пущай знает почем фунт лиха. Тут хитрожопые с вопросами приступили - а ежели енто устройство не здесь произведено, а закуплено во всяких слаборазвитых странах, и на разработчиков-изготовителей их где сядешь там и слезешь? А ничего, грят им, мы тогда деньгу будем лупить с того кто енту мерзость в наших благодатных странах продает. И навязали-таки трудовому народу эти злыдни законы свои суровые, наплодили стандартов столько что и в три дня не усрешь. Ввели их по всей Европе, а потом и другие страны стали примазываться, окромя, конечно, штатов, которым всякие европейцы - не указ. Контролировать требуют двояко: на частотах от 150 кГц до 30 МГц - контактным способом, а выше 30 МГц и до 2 гиг - антеннами разными навороченными. По сетевым проводам так делают: ставят фильтр-нормализатор, он приходящие из сети побочные помехи глушит и создает для проверяемого устройства стандартную нагрузку по ВЧ, ом так в 50. Цепляют к сетевым проводам со стороны проверяемого устройства специально переделанный анализатор спектра, у которого селективность и квазипиковый детектор подогнаны под типичную характеристику обычного АМ радиоприемника. И смотрят где проверяемое устройство зудит более всего. И для бытового устройства требуют не более 66 дБмкВ (т.е. 2мВ на ентом сраном квазипиковом), а для устройства ВТ типа компунтеля дают послабление до 72 дБмкВ (т.е. 4мВ), причем проверяют и на фазном проводе и на нейтрали относительно земли. К любым другим железякам/проводам торчащим из устройства тоже цепляют анализатор и меряют помеху через согласующую цепочку, а уровень тоёй помехи должон быть кажись не более 80 дБмкВ. С частотами ж выше 30 МГц прет,братие, чистая радиотехника: антенны, парализации и протчее колдовство. С внешними помехами злыдни вот чего удумали: сначала меряют уровень EMI при выключенном проверяемом устройстве, потом при включенном, а потом вычитают одно из другого. И вставляют каждое лыко в строку, не усредняют по спектру, а выбирают самый худший результат из намерянного и злорадно тычут его тебе в харю. Развели по всем ентим странам тестовых лабораторий видимо-невидимо. Кои из ентой нечисти аккредитованные, кои нет, но у всех гонору много, и за полный тест тысчонку зеленых состричь не упустят. Вот суешь ты им деньги, представляешь устройство с инструкцией как пользоваться, они все это хвать - и в норку. А опосля вылезают оттеда и дают тебе свой сраный "репорт". Смотришь ты в его как баран, и только что и могешь уразуметь что, скажем не прошел ты по ентим законам бесчеловечным на таком-то тесте на такой-то частоте. И что теперь? Лезешь в устройство, подправляешь, делаешь кажись все путём. Но дальше-то чего? Опять идешь к кровососам, опять они тебя стригут как овцу, опять чего-то заваливается. И так можно деньги спускать почище чем в казино. Но ничего, постепенно народ приспособился, поднаторел в этом деле чтоб зазря не платить. Ин утешение себе нашел, потому как всяких нахальных китайцев стало меньше на рынке, остались только те кто такоже ентой премудрости обучился и денег на учебу потратил, то есть не совсем уж шпана подзаборная. А те которые шпана, те, конечно, ломанулись в другие места, где законов драконовских нету, иль где есть люди понимающие что закон - как дышло... Сказка - ложь, да в ней намек, добрым молодцам урок. A: Сергей Забелин Для получения сертификата устройство должно обеспечивать электромагнитную совместимость в двух смыслах - во-первых, должно быть устойчиво к воздействию внешних помех, и во-вторых - само не создавать помех другим устройствам. Вторая часть требований включает в себя два нормируемых пункта: По практическому опыту скажу, что выполнение этих требований для обычных устройств, не коммутирующих мощных реактивных нагрузок и не радиопередающих, не составляет большой проблемы. Более-менее грамотное конструирование и сетевой фильтр их вполне обеспечивают. Что касается первой части требований (устойчивость к воздействию помех), то тут хуже. Требования сильно зависят от класса устройства, и бывает выполнить их проблематично. По устойчивости устройства делятся на 5 групп жесткости, первая - самая халявная, пятая - способна работать в условиях ядерного взрыва, видимо. Мне, максимально, удавалось достичь третьей группы: Требования таковы: И после того, как Ваше устройсво все эти издевательства выдержало, можете смело бежать в магазин за горячительным, ибо в протоколе о проведении сертификационных испытаний будет строка - требования по электромагнитной совместимости выдержаны! Группа жесткости такая-то. >Q: Что еще почитать на эту тему ? A: Алексей Кузнецов Вопросы по WDT>Q: Как использовать WDT ?A: Алексей Кузнецов Применение WDT для отладки Как правило хорошая техника отладки (что включает знания, опыт и хорошую аппаратуру) позволяет достаточно надежно и быстро отладить несложные программы и железо не прибегая к помощи WDT. Возможным исключением из этого правила являются плохо детерменированные алгоритмы и очень сложные машины состояний, реализованные в программе. Для таких случаев вполне разумно на каких-то этапах(!) отладки использовать статистические методы, то есть наделать много-много прототипов и гонять их в условиях приближенных к реальным. В таких случаях эмуляторов на каждый макет не напасешься, так что простые встроенные средства отладки с использованием WDT будут вполне оправданы. Правда, почти тех же результатов можно добиться применяя обычные (т.е. без участия WDT ) отладочные мониторы, ловушки и трассеры, но WDT добавляет к ним только одно (но важное!) свойство - вышибает программы из мертвых зацикливаний, тем самым гарантируя вывод накопленной отладочной информации. Отдельно стоит вопрос отладки аппаратуры, особенно в тех случаях когда надо минимизировать железо (стоимость, вес и пр.) и приходится применять рискованные решения - такие как упрощенные источники питания, дешевые схемы сброса и минимальная защита от помех. В таких случаях опять приходится использовать реальные макеты устройств, т.к. к примеру эмулятор не везде засунешь, да и жалко если погорит... Опять же, вопрос - а в чем выгоды использования WDT в таких случаях? Чаще всего об аппаратном сбое легко судить по тому что устройство перестает выполнять функцию. Специально для того написанная процедура выхода из сброса по WDT поможет "защелкнуть" единичный сбой и не дать системе самовосстановиться, что позволит этот сбой легко обнаружить. Применение WDT для повышения надежности системы Запущенное в производство и работающее на "объектах заказчика" изделие все же как правило еще имеет программные ошибки. Подноготная этого явления должна быть всем понятна, см., например, В.В.Липаев "Отладка сложных программ", М. Энергоатомиздат, 1993. WDT позволяет залатать такие программные дыры своеобразной "заплаткой". Логичным усилением функций "заплатки" будет добавка каких-то встроенных отладочных кусков (см.выше) - при условии обеспечения доступа к накопленной информации. Примерно то же можно сказать и о железе. Часть сбоев "от железа" вызывается тем что железо плохо сконструировано и не до конца отлажено. Однако в отличие от стадии отладки задача состоит именно в том чтобы быстренько восстановиться (или включить резерв), так чтоб пользователь ничего не заметил. Кроме того, в отличие от сбоев вызванных программными плюхами, существуют аппаратные сбои принципиально неустранимые даже при самой тщательной при разработке, например, вызванные радиацией, абнормальными условиями эксплуатации и пр. В таких случаях WDT незаменим, и, собственно, для них и создавался. Вопрос о способах "правильного" применения WDT обширен. Во многом
решение его зависит от того какие сбои ожидаются. Например, для случаев
когда программа и железо вылизаны и тщательно оттестированы, наиболее
вероятны будут устранимые сбои вызванные "невесть какими" причинами. В
общем случае можно считать что такой сбой перебрасывает любой один триггер
в противоположное состояние, будь то бит памяти, направление или
содержимое порта, бит управления прерыванием или состояние самого WDT.
Исходя из такой посылки становится очевидным что WDT не является
"палочкой-выручалочкой" и не поможет исправить систему если она изначально
была плохо продумана и сделана тяп-ляп. Можно указать на некоторые другие
простые приемы повышения надежности систем: Что же касается самого WDT то общая рекомендация довольно проста: постарайтесь чтобы WDT сработал от любого из "устранимых сбоев" (что вряд ли возможно), или от возможно большего подмножества общего множества сбоев. Способы повышения помехоустойчивости>Q: Зачем и в каких случаях нужно применять дополнительные меры по повышению надежности устройств на базе микроконтроллеров ?A: Андрей Мозжевилов A: Андрей Мозжевилов >Q: От чего прежде всего защищаться? A: Андрей Мозжевилов >Q: Какие есть программные методы защиты ? A: Андрей Мозжевилов A: Владислав Балясов A: Сергей Королев A: Сергей A: Александр Лушников A: Дмитрий Кузнецов 1) Прогон одновременно с основной задачей проверочных операций. Для диагностики следует задействовать реальные данные из основной задачи. Конкретно для проверки достоверности ОБРАБОТКИ реальных данных (помимо штатной проверки реальных данных на допустимость). Пример: надо вычислить Z = X * Y T = X * Y (основная задача) => T / X == Y (проверка)Здесь проверяется достоверность основной операции. Hесмотря на то, что сама проверка может сбойнуть, вероятность одиночной ошибки намного выше множественных и проявятся они раньше. Конечно, лучше все же проверять более глобальный фрагмент. Главное, что бы проверочная операция была не идентична основной и даже если ошибки произойдут, как при прямой так и при обратной операциях, они не скомпенсируют друг друга (полагаем, что обе операции абсолютно обратны, либо это как-нибудь учитывается). Использование реальных данных увеличивает эффективность проверки, так как обнаружение происходит в момент ИСКАЖЕHИЯ работы основной задачи. С целью снижения накладных расходов этот код следует привязывать: а) к наиболее ответственным фрагментам основного кода, б) к достаточно часто вызываемым процедурам. 2) Перед каждой операцией со встроенной и/или удаленной периферией проверить (если возможно, прочитать состояние) ее установки и сравнить их с копией в памяти. 3) Периодически проверять состояние равномерно раскиданных участков ОЗУ заполненных псевдослучайным кодом (обнаружение искажений более вероятно, чем для равномерного кода). Также сканировать и участки в ПЗУ (FLASH). Проверку нескольких очередных байтов можно вложить в частовызываемый фрагмент кода. Для программной памяти можно использовать код, который бы с некоторой гарантией инициировал процедуру обнаружения сбоя. 4) Меры после обнаружения сбоя должны дублироваться. Hапример, сразу при выявлении взводить некий бит (зажечь светодиод). При этом, если процедура даже будет не завершена в этот раз (на время действия вредного фактора), то ближайшая/штатная/внешняя диагностика должна его заметить. A: Владимир Василевский A: Алексей Бугров A: Кирилл Гайдученко >Q: И насколько все это помогает ? A: Александр Голов В любом случае надёжная работа МК первична, на неработающем "железе" никакая программа не может быть выполнена надёжно. Hапротив, на надёжно работающем МК фильтрация входных данных может быть произведена в точности в соответствии с алгоритмом с однозначно предсказуемым результатом. A: Владимир Клочко Дополнения, пожелания присылайте Алексею Владимирову, avlad@mailbox.riga.lv |