- •Микроконтроллеры для встраиваемых приложений
- •Аннотация
- •Модульный принцип построения мк
- •2. Процессорное ядро мк
- •3. Резидентная память мк
- •4. Порты ввода/вывода
- •5. Таймеры и процессоры событий
- •6. Аналого-цифровые и цифро-аналоговые преобразователи
- •9. Мониторинг напряжения питания мк
- •10. Аппаратные и программные решения по повышению надежности работы мк
10. Аппаратные и программные решения по повышению надежности работы мк
В
отличие от персональных компьютеров,
которые при стечении определенных
обстоятельств могут выполнить нештатные
операции и "зависнуть", встраиваемые
МП-системы управления лишены этого
недостатка. Прикладная программа
управления, записанная в память МК,
должна обеспечивать формирование
адекватных выходных воздействий при
любых комбинациях входных сигналов.
Однако в
результате
электромагнитных помех предусмотренный
разработчиком ход выполнения прикладной
программы может быть нарушен. Именно в
этом случае невозможно гарантировать
правильную работу МП-системы. Все
современные МК предусматривают
возможность восстановления правильного
хода вычислительного процесса при
подобного рода отказах. Для этого
используется модуль сторожевого таймера
(СОР или Watchdog).
Принцип действия модуля сторожевого
таймера иллюстрирует
Рис.
1. 40. Основным
элементом модуля сторожевого таймера
является многоразрядный счетчик. При
сбросе МК счетчик обнуляется. После
перехода МК в активный режим работы
счетчик начинает увеличивать код
независимо от выполняемой программы.
Если код счетчика достигает максимального
указанного в техническом описании МК
значения, то генерируется сигнал
внутреннего сброса и МК начинает
выполнение программы управления сначала.
Для исключения события сброса по
переполнению сторожевого таймера
прикладная программа управления должна
периодически сбрасывать счетчик.
Операция сброса счетчика сторожевого
таймера обычно выполняется посредством
записи указанного кода в один из регистров
специальных функций. Тогда при нормальном,
предусмотренном разработчиком порядке
выполнения прикладной программы
переполнение счетчика сторожевого
таймера не наступает и он не оказывает
влияния на работу МП-системы. Однако
если ход выполнения прикладной программы
был нарушен, то велика вероятность, что
счетчик не будет сброшен вовремя. Тогда
произойдет сброс по переполнению
сторожевого таймера и нормальный ход
вычислительного процесса будет
восстановлен.
Модули сторожевых таймеров различных МК имеют следующие особенности работы:
* В ряде МК вектора внешнего сброса и сброса по переполнению сторожевого таймера объединены. Это не позволяет различать причину сброса на программном уровне и затрудняет написание прикладных программ. Более совершенны МК, которые имеют либо различные векторы сброса, либо отмечают событие сброса по переполнению сторожевого таймера установкой специального бита.
* Часть МК автоматически приостанавливает работу сторожевого таймера при переходе МК в один из режимов пониженного энергопотребления, когда прикладная программа не выполняется. Однако в ряде МК сторожевой таймер не останавливает работу в режиме ожидания. Тогда необходимо предусматривать периодический вывод МК из режима ожидания для сброса счетчика сторожевого таймера. Это, с одной стороны, не очень удобно, т.к. требует дополнительного внимания программиста. Однако, с другой стороны, предоставляет дополнительную возможность восстановления работоспособности МП-системы, если сигнал вывода МК из режима ожидания нарушен. Кроме аппаратно-программных средств сторожевого таймера, ряд МК оснащен аппаратными средствами генерации сигнала внутреннего сброса в случае, если по причине электромагнитных помех в счетчике адреса был сформирован адрес физически не существующей ячейки памяти или из памяти считан код несуществующей операции.
