Отказоустойчивый механизм Arduino

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

Два возможных механизма заключаются в следующем.

Способ 1 – клиент-серверный механизм

  • Есть 2 идентичные системы, которые питаются отдельно.
  • Вторичная система периодически отправляет запрос, а первичная система отвечает.
  • Если первичная система не отвечает (несколько раз), вторичная система становится ответственной.

Метод 2 – механизм сердцебиения

  • Есть 2 идентичные системы, которые питаются отдельно.
  • Первичная система отправляет периодическое сообщение пульса.
  • Если есть сердцебиение, вторичный узел знает, что первичный узел работает.
  • Когда сердцебиение отсутствует, первичный узел считается мертвым. Вторичный узел получает управление.

Ребята, вы знаете какой-нибудь лучший механизм для реализации этого?


person Chathuranga Chandrasekara    schedule 15.10.2012    source источник


Ответы (1)


Как правило, в коммерческих встроенных системах используется сторожевой таймер, он не отвечает, периодически «пиная собаку». Все микроконтроллеры AVR (и многие, если не большинство других брендов) имеют внутренний сторожевой таймер. Хотя конструкция с независимым внешним сторожевым таймером обычно более надежна и надежна. Например, это:

настройка внешнего сторожевого таймера

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

В системе с тройным резервированием три идентичных компонента обработки выполняют одну и ту же задачу одновременно. Затем результат отправляется в схему голосования или то, что Джон фон Нейман назвал «орган большинства" (раздел 4.2.2). Результатом схемы голосования является мнение большинства трех компонентов обработки.

тройное резервирование

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

тройное модульное резервирование

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

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

person embedded.kyle    schedule 15.10.2012
comment
Чертовски красивые схемы! Что вы использовали? - person Andriy Drozdyuk; 13.11.2014
comment
@drozzy На самом деле это не мои диаграммы. Я скопировал их с веб-сайта, который теперь кажется мертвой ссылкой. Я обновил ссылку на исходную статью, в которой, к сожалению, нет таких красивых диаграмм. - person embedded.kyle; 13.11.2014