Перейти к содержанию
    

Аналоговая защита линии от софтового сбоя МК

Добрый день!

Есть МК, работающий в условиях ЭМ помех, есть высокоответственные линии управления, которыми управляют выводы МК, на них даже при условии сбоя процессора не должно появляться "случайных" сигналов. К примеру на линии всегда "0", и на ней ни при каких условиях не может быть "1" если процессор сбоит(частота переключения низкая  около 1мс). Как организовать физическую защиту линии от ЭМ помех - мне это понятно. Я пока не определился как защищаться от программных сбоев. Любой софтовой защите я считаю в данном случае доверять нельзя...

К примеру, можно поставить мультиплексор с помощью которого подавать на линию или 1 или 0, управляя его каналами с помощью кодовой комбинации из 3..4 выводов МК, допустим поставить еще один-два таких каскада, и кодировать 1..0 уже допустим 8 выводами. Но все равно при сбое есть вероятность что произвольно болтая ногами нужная, для переключения комбинация все таки выставиться.

Еще вариант допустим счетчиками на нескольких выводах генерить определенную частоту/скважность. Эта частота/скважность с одного вывода усредняется RC-цепочкой и подается на два компаратора, которые смотрят что бы усредненное напряжение находилось в нужном диапазоне (к примеру 2,5...2,7В), у каждого вывода МК свой диапазон/компараторы/RC-цепь. Если все выводы МК выдают верную частоту/скважность, а и следовательно диапазон, тогда пропускаем на линию "1".  Сделав постоянную RC-цепи, к примеру, на 200-300 мкс, фактически защитить линия от "случайного" переключения.  Не очень нравиться громоздкость этого варианта.

Есть еще варианты, но они тоже громоздко выходят.
Наверняка, кто то делал подобное, и какими-то простыми способами. 
Если поделитесь буду очень благодарен!

Изменено пользователем Bpovov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Выставлять сигнал с выхода SPI DAC :) Запись по SPI будет проверкой адекватности процессора.
Само собой можно и не DAC использовать а какой нибудь SPI расширитель портов. 

Но вообще если речь про надёжность то как бы троирование причём именно процессоров. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 минут назад, MegaVolt сказал:

Выставлять сигнал с выхода SPI DAC :) Запись по SPI будет проверкой адекватности процессора.
Само собой можно и не DAC использовать а какой нибудь SPI расширитель портов. 

Но вообще если речь про надёжность то как бы троирование причём именно процессоров. 

Я думаю их так же как и проц помехой может сбить.

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

Изменено пользователем Bpovov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 минут назад, Bpovov сказал:

Я думаю их так же как и проц помехой может сбить.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 минуты назад, MegaVolt сказал:

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

По сути, это только сама линия, так как это оптоволокно))))  На все остальное: МК, излучающий светодиод, и то что между ними действуют помехи)

Изменено пользователем Bpovov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

49 минут назад, Bpovov сказал:

кто то делал подобное, и какими-то простыми способами

Правильная разводка, защита внешних линий, и лишь в самом крайнем случае экранирование.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 минут назад, Plain сказал:

Правильная разводка, защита внешних линий, и лишь в самом крайнем случае экранирование.

Must have! Иначе никак... Я делал системы, которые не сбоили при КЗ 10кВ-банки с кондерами, в сантиметрах от цифровой части. Однако видел и хорошо спроектированные системы, которые ловили с падением прошивки, отдаленные(десятки метров) ЭМИ, помимо опыта и грамотности, тут все же много зависит от повезло/не повезло, в том числе и от качества/грамотности сделанной внешней электро-среды, на которую твой прибор повлиять не может, а там бывает такое наворочено-о-о...  Не мне вам наверное рассказывать))))0

Изменено пользователем Bpovov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, Plain сказал:

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

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

а вот сделать некий дубовый простой дискретный элемент, состояние которого поддерживается током допустим 50-100ма при 12В, и который так же хорошо разведен, сбить уже намного сложнее (ну то есть если помеха сможет навести на него допустим 0,5 Вт, проц уже точно давно полыхать будет...),  пусть себе греется и место занимает, в данном случае это несущественно главное что бы не подвёл...

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 часов назад, Bpovov сказал:

К примеру на линии всегда "0", и на ней ни при каких условиях не может быть "1"

Попробуйте просто соединить эту линию с GND. Как не удивительно, но тогда на ней всегда будет "0".  :biggrin:

 

Цитата

Я пока не определился как защищаться от программных сбоев.

Так же как делают все - с помощью отладчика.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, Bpovov сказал:

все равно у проца будет некий порог по мощности помехи при которой что то в нем начнет сбиваться

Это что-то ядерное должно быть, и совсем рядом. В остальных случаях обычно поляризованное реле ставят — потребления ноль, а энергии на изменение требуется относительно много.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14.04.2021 в 14:50, Bpovov сказал:

Есть МК, работающий в условиях ЭМ помех, есть высокоответственные линии управления, которыми управляют выводы МК, на них даже при условии сбоя процессора не должно появляться "случайных" сигналов.

Изучайте доки на микроконтроллер. Например PIC контроллеры в состоянии сброса все порты переключают на вход. И обычно входы не подтянуты к питанию или земле.  Отсюда и плясать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну если в процессе работы внезапная перезагрузка МК (по какой-либо причине) не должна нарушать выставленный логический уровень (0 или 1), то можно рассмотреть в качестве элемента триггера расширитель портов с заложенным в протокол обмена механизмом валидации управляющего кадра (банально с проверкой CRC всех управляющих транзакций), например, этот или этот. Можно поставить бистабильное реле и управлять им разными ножками этого экспандера, причем экспандером управлять не только положением реле, но и неким ключом, который замыкает или размыкает те самые сигналы управления. Т.е. чтобы изменить положение реле, нужно уж сто процентов правильно сформировать управляющую посылку. Ну а если сигналы имеют какое-то безопасное состояние, в которое допустимо переходить в любом режиме работы, то достаточно лишь правильно подтянуть выходы внешним резистором к этому самому состоянию. Как правило при сбросе все лапки МК переходят в режим входа с Hi-Z состоянием.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Перезагрузка МК - это еще не самое страшное.

У меня при лютых помехах (разряды десятки кВ в сантиметрах от платы) AVR разведенный и профильтрованный по всем правилам, но работающий от кварца входил в состояние "заморозки".

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

При работе от внутреннего RC-генератора (кварц отсутствовал на плате) не было никаких сбоев при тех же условиях.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...