close

Вход

Забыли?

вход по аккаунту

Федеральное государственное бюджетное образовательное;pdf

код для вставкиСкачать
Информатика, вычислительная техника и инженерное образование. – 2014. − № 3 (18)
УДК 681.325
Е.М. Лебедева, О.Б. Лебедев, Е.С. Мезга
МЕТОДЫ ОБЕСПЕЧЕНИЯ ВЫСОКОЙ НАДЕЖНОСТИ УСТРОЙСТВ НА
МИКРОКОНТРОЛЛЕРАХ
Данная работа посвящен методам решения проблемы обеспечения высокой
надежности устройств на микроконтроллерах. В работе рассмотрены как теоретические, так и практические аспекты данной проблемы со схемотехнической
и программной стороны. Произведен анализ некоторых существующих аппаратных и программных методов ее решения, а также приведены примеры практических реализаций из профессиональной практики. Рассмотрены некоторые реализационные моменты алгоритмов обеспечения и контроля надежности в микроконтроллерах.
Высоконадежные микроконтроллеры, сбои устройств на микроконтроллерах, методы обеспечения высокой надежности, сторожевой таймер, детектор
понижения напряжения питания.
E.M. Lebedeva, O.B. Lebedev, E.S. Mezga
METHODS FOR ENSURING HIGH RELIABILITY OF DEVICES WITH THE
USE OF MICROCONTROLLERS
This paper is devoted to problem-solving methods for ensuring high reliability of
devices with the use of microcontrollers. It discusses both theoretical and practical aspects of the problem, considered from the viewpoint of circuit technique and programming. Some of the existing hardware and software methods of problem-solving methods
were analyzed and examples of the practical implementation in professional practice
were presented in the article. Consider some moment’s realizable algorithms and control software reliability microcontrollers.
Highly reliable microcontrollers, failures of devices with the use of microcontrollers, methods for ensuring high reliability, watchdog timer, brown-out detector.
Введение. В современной технике повсеместно распространено применение
микроконтроллеров (далее МК) в качестве управляющих компонентов. Это
обусловлено рядом причин, в числе которых: простота разработки и внедрения,
дешевизна, относительно низкое энергопотребление, малые габариты и широкий
спектр применения. Но при использовании микроконтроллеров в таких областях
как автомобильная электроника, медицинская техника, системы электроснабжения
и ряде других, требующих высокую надежность работы устройств и/или
целостность данных, резонно встает вопрос об обеспечении этой надежности.
Особенно критично встает этот вопрос, когда предусматривается фактически
самостоятельная (необслуживаемая) бесперебойная работа устройств.
Наиболее точная формулировка понятия «надежность» – способность
технического изделия не отказывать в работе в заданных условиях эксплуатации и
сохранять свою работоспособность в течение заданного интервала времени.
В более детальном рассмотрении, это понятие можно подразделить на ряд
1
Информатика, вычислительная техника и инженерное образование. – 2014. − № 3 (18)
составляющих [1]. В данной работе рассматриваются только схемотехническая и
программная составляющие надежности.
Причины, по которым может произойти сбой устройства, могут быть разного
характера, к примеру: внешние электромагнитные помехи (ЭМП), появление
высокочастотных помех на выходе импульсного источника питания,
кратковременные просадки или скачки питания, падение напряжение питания,
ошибки или недоработки в программном обеспечении МК. При разработке той или
иной высоконадежной системы, в зависимости от требований и предполагаемых
условий эксплуатации, необходимо производить ряд действий, чтобы
вышеперечисленные факторы не сказывались на надежности. Обеспечить
полностью надежную работу системы невозможно, но зачастую программными и
схемотехническими методами можно предотвратить либо минимизировать сбой,
который может возникнуть по одной или ряду вышеперечисленных причин, а
также предотвратить критические последствия этого сбоя. Некоторые из методов,
представленных в данной работе, являются классическими и универсальными, но
также представлены и некоторые нестандартные методы, разработанные в
процессе профессиональной деятельности с учетом конкретной специфики
устройств.
Обзор и анализ методов обеспечения надежности. В настоящее время
существует множество различных методов обеспечения надежности устройств, в
рамках данной работы нами рассматриваются только схемотехнические и
программные. Многие решения типовых проблем закладываются разработчиками
МК и не требуют от разработчика конечного устройства каких-либо
дополнительных действий. Но также существует ряд ситуаций, когда требуется
вводить дополнительные элементы и изменять схемотехнику устройства, либо
разрабатывать оригинальное программное решение. Далее в статье будут
рассмотрены и проанализированы и те и другие решения.
Зачастую в процессе эксплуатации устройства имеет место падение напряжения питания, особенно если устройство питается от батарейки или аккумулятора.
Это в свою очередь может повлечь за собой сбой в работе МК. В данной ситуации
для обеспечения надежной работы производители МК ввели в его состав детектор
понижения напряжения питания (Brown-out Detector), иначе называемы также супервизором питания. В большинстве случаев использование встроенного супервизора является эффективным и достаточном, но могут возникнуть такие ситуации,
при которых встроенный супервизор может не сработать [2]. Особенно важно использование внешнего супервизора питания, если критична сохранность данных в
EPROM. Так использование внешнего супервизора AVR180 [3], позволяет сохранять данные перед подачей сигнала сброса.
Вообще, если для устройства данные EPROM являются важными, то
проблемы с питанием встают на передний план. Так, при пропадании питания,
необходимо организовать механизм по сохранению этих данных в
энергонезависимую память, либо же поддерживать питание на EPROM, насколько
это возможно.
В зависимости от характера ситуации (просадка или полное пропадание)
применяется определенный метод. Так, в случае, когда предполагается полная
потеря питания, а сохранение данных в энергонезависимую память по какой-либо
причине невозможно, то необходимо произвести ряд схемотехнических и
программных действий. Так, в части схемотехники: ввести дополнительный
источник питания, либо же достаточно большую емкость. В части программы: при
2
Информатика, вычислительная техника и инженерное образование. – 2014. − № 3 (18)
обнаружении потери питания очистить все флаги прерываний, запретить все
прерывания, перевести МК в режим низкого энергопотребления, и установить
выход из него при нормализации питания. Данная методика не особо популярна, в
силу того, что требуется производить довольно затратные как в аппаратной, так и
программной части действия, что зачастую не представляется возможным. Но в
ряде случаев он является неизбежной. Обычно, если во время эксплуатации
устройство допускается такая критическая ситуация, то на этапе проектирования
предусматривается
наличие
энергонезависимой
памяти,
следовательно,
потребность в сохранении питания на EPROM становится не актуальной и
становится допустимо применение методов для обеспечения надежности при
кратковременной потере питания. Этот метод заключается в том, что вводится
дополнительный элемент – microUPS, который способен поддерживать питание
МК ровно столько времени, чтобы успеть произвести срочное сохранение данных
в энергонезависимую память и произвести все необходимые действия перед
полным пропаданием питания.
С падением напряжения питания на МК связана еще одна неприятная
ситуация – возникновение паразитной емкости. Так в ситуации, когда питающее
напряжение упало ниже минимального уровня работы МК, а затем быстро
стабилизировалось, может не произойти нормальный рестарт. Обычно, это
обусловлено тем, что при снятии напряжения на МК хотя бы на одном из выводов
присутствует некоторый потенциал в виде так называемой паразитной емкости.
В результате этого МК еще некоторое время будет получать питание, и процессор
будет работать в хаотичном режиме. Для предотвращения подобного поведение
следует использовать специальную схему защиты входа с независимым питанием и
оборудованную диодом Штока.
Также немаловажную роль в обеспечении надежной работы МК является
стабильность работы тактового генератора. Так, в настоящее время
распространено применение импульсных источников питания, при использовании
которых возможно возникновение высокочастотных импульсных помех на выходе,
что в свою очередь ощутимо влияет на качество тактирования и на схему
формирования сброса МК [2]. Поэтому в устройствах требовательных к
надежности, следует либо применять линейный источник питания, либо вводить в
схему дополнительные элементы для стабилизации питания, к примеру, обычный
линейный стабилизатор. Некоторые производители сразу закладывают решения
проблем связанных с шумами и помехами в цепях питания в контроллер [5]. При
использовании импульсных источников также следует обратить внимание на
возможные проблемы электромагнитной совместимости [4], что особенно важно в
автомобильной электронике.
Методы контроля надежности на стадии эксплуатации. Многие вопросы,
касающиеся
обеспечения
высокой
надежности
работы
устройства,
обнаруживаются и решаются на этапе разработки. Но не стоит забывать, о том, что
проблемы могут возникнуть на стадии эксплуатации. Очень часто эти проблемы
связаны с недоработками в части программного обеспечения. В силу
недостаточной проработки алгоритмической части или же по каким-либо другим
причинам, сбой устройства может происходить исключительно из-за программных
ошибок.
Зачастую при разработке на базе RTOS, программист не особо беспокоится об
отработке механизма прерывании, а как показывает практика, в данной части
вероятность наступления сбоя довольно велика. Для предотвращения проблем
3
Информатика, вычислительная техника и инженерное образование. – 2014. − № 3 (18)
такого рода широкое применение получил сторожевой таймер (Watchdog Timer),
который производит сброс устройства при переполнении. Многие современные
микроконтроллеры оснащены этим таймером. Но порой при зависании,
встроенный Watchdog может не сработать, так как может произойти сбой
генератора, от которого производится его тактирование. Поэтому для обеспечения
надежности, порой приходится прибегать к некоторым схемотехническим
решениям данной проблемы.
Одним из наиболее надежных методов является введение дополнительной
внешней логики, которая будет проверять поступление сигналов от основного МК.
В качестве этой дополнительной логики может быть как дополнительны МК, так и
супервизор со встроенным сторожевым таймером. При такой реализации
вероятность сбоя в данной части значительно снижается, за счет того, что
вероятность одновременного отказа (зависания) сразу двух элементов крайне мала.
Но такой подход требует значительно больших затрат, по сравнению с
использованием встроенного сторожевого таймера. Помимо того, что придется
вводить дополнительные элементы в схему (либо же усложнять существующие),
так и придется выделять отдельный выход микроконтроллера под генерацию
сигнала для определения зависания. Вышеперечисленные методы требуют
повышенного внимания к качеству программного обеспечения устройства.
В программе обязательно должно быть тщательно проработано квантование
времени выполняемых процессов, чтобы МК успел сбросить сторожевой таймер
(либо же подать сигнализирующий сигнал на выход, связанный с сопряженными
сторожевыми элементами), иначе это может привести к нежелательному сбросу
МК.
Если говорить о программной стороне обеспечения надежности, то стоит
отметить еще один важный момент – обеспечение корректной инициализации МК.
В данном контексте, под инициализацией понимается правильная установка
регистров общего назначения, конфигурационных и управляющих регистров.
Проблема может возникнуть, если в ходе выполнения программы возникнет
прерывание до окончания процесса инициализации. В таком случае программа
может повести себя непредсказуемо, что прямо сказывается на надежной работе
устройства. Поэтому крайне важно контролировать запрет прерываний на стадии
инициализации. На стадии начальной инициализации это вполне очевидно и
обычно разработчик не допускает такой ситуации. Более того, практически все
микроконтроллеры в начальном состоянии (после сброса) производят запрет
прерываний на аппаратном уровне. Но в случае, когда требуется промежуточная
переинициализация каких-то определенных регистров, будь это момент выхода
устройства из режима «сна» или какая-нибудь другая рядовая ситуация, данный
аспект может быть упущен. В больших системах, разрабатываемых в команде,
такая ошибка вполне реальна. Для решения этой проблемы вполне приемлемым
является введение в логику программы дополнительных флагов, которые будут
взводиться по завершению инициализации. Тогда в соответствующих
обработчиках прерываний на начальном этапе нужно организовать
принудительный запрет прерываний, проверку флагов инициализации и в
соответствии от их состояния останавливать обработку или же разрешать
прерывания и продолжать обработку текущего прерывания. Но за такую
надежность приходится платить быстродействием обработки прерывания. Поэтому
в обработчика критичных по времени прерываний стоит избегать возникновения
такой ситуации.
4
Информатика, вычислительная техника и инженерное образование. – 2014. − № 3 (18)
Немаловажным составляющим для обеспечения надежности является
контроль целостности кода. В процессе эксплуатации устройства могут возникнуть
разного рода сбои, которые, в том числе, могу привести к повреждению
программного кода в МК. В случае такой ситуации никак нельзя гарантировать
стабильную и надежную дальнейшую работу устройства. Поэтому важно не только
обнаружить повреждение, но и произвести действия для предотвращения
некорректной работы устройства.
Наиболее простым (но, тем не менее, довольно эффективным), является
реализация обычного контроля четности. Этот метод является классическим и
применяется многими производителями МК. Со стороны разработчика требуется
лишь проконтролировать, чтобы на стадии прошивки был установлен бит
разрешения контроля четности. Но также существуют и более сложные и
изощренные методы, вроде применение каких-либо обнаруживающих ошибки
кодов. Данный подход, в каких-то ситуациях и может оказаться лучшим, но при
его использовании значительно затрудняется дальнейшее восстановление данных
(если таковое предусмотрено).
Решения практических ситуаций. На основе обзора и анализа различных
методов обеспечения надежности, нами были разработаны некоторые
практические решения для конкретных задач и требований.
В процессе разработки одного устройства, одним из важных критериев которого помимо надежности был энергосбережение, поэтому на программном уровне
была предусмотрена функция перехода устройства в режим пониженного энергопотребления по завершению каждого прохода цикла обработки данных. Не вдаваясь в подробности данного программного механизма, отметим, что для его реализации требуется на определенный период производить запрет прерываний, а выход
из режима пониженного энергопотребления осуществлялся по возникновению любого прерывания. В ходе тестирования, устройство в некоторых неопределенных
ситуациях не выходило из режима энергопотребления. Применение сторожевого
таймера или другого контролирующего элемента в силу некоторых обстоятельств
было невозможным. Чтобы снизить вероятность такого рода отказа, были применены как программные, так и схемотехнические решения. В программной части
разрешение прерываний было помещено непосредственно перед командой перехода в энергосберегающий режим. Это обеспечивает практически 100% гарантию
того, что прерывание, которое должно вывести устройство в обычный режим не
будет обработано раньше, чем устройство перейдет в режим экономии. Если это не
сделать, то в таких случаях, когда на восстановление обычного режима устройства
способно повлиять, лишь одно прерывание (то есть другие не смогут возникнуть
пока не пройдет повторное выполнение цикла), это прерывание по каким-то причинам может возникнуть раньше положенного, в результате устройство зависнет.
Но данного решения нам показалось недостаточно. В силу специфики применения
устройства, было допустимо в определенные моменты производить сброс (это никак не влияло на корректность работы устройства). Этим мы и решили воспользоваться. Так в схему был добавлен дополнительный элемент управления, которые
периодические производил сброс устройства. Теперь, даже если устройство войдет
в ступор (что маловероятно учитывая программные изменения), рано или поздно
оно опять выйдет на нормальный режим работы. Это конечно не идеальный метод,
но для данной задачи он является наиболее оптимальным. Чтобы при таком сбросе
не были потеряны данные из энергозависимой памяти, схема дополнительно была
дополнена microUPS.
5
Информатика, вычислительная техника и инженерное образование. – 2014. − № 3 (18)
На данный момент, нами разрабатывается решение, которое позволило бы
обеспечить высокую надежность работы устройства под воздействием внешних
электромагнитных помех при наименьших денежных затратах на разработку и
производство. Для использования в такой области зачастую используют МК
фирмы NEC Electronics [6], но для нашей задачи он не подходит из экономических
соображений. Введение дополнительных сторожевых элементов с собственным
тактированием также не является приемлемым из тех же соображений.
Дальнейшие исследования будут посвящены разработке методов
позволяющих получать оптимальные решения.
1
2
3
4
5
6
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
Ковалев В.В. «Почему техника ломается» или что такое забытое понятие «надежность» //
Компоненты и технологии. – СПб: Изд-во «Файнстрит», 2008. − № 4. – С. 19-22.
В.С. Гассельберг, А.В. Синельщиков. Применение микроконтроллеров в устройствах с
повышенной надежностью // Вестник АГТУ Сер.: Управление, вычислительная техника
и информатика. – Астрахань: Изд-во АГТУ, 2011. – № 1. – С. 108-113.
Atmel
Application
Note
AVR180:
External
Brow-out
Protection.
http://www.atmel.com/Images/doc1051.pdf.
В.В. Лацнов, С.А. Эраносян. Электромагнитная совместимость импульсных источников
питания: проблемы и пути их решения. Часть 1 // Силовая электроника. – 2006. – № 4. –
С. 58-64.
J. S. Shtargot Рекомендации по применению высокопроизводительных многоканальных
ФЦП с одновременной выборкой в системах сбора данных // Компоненты и технологии.
– СПб: Изд-во «Файнстрит», 2009. – № 6. – С. 44-49.
Г.Е. Горюнов «Что позволено Юпитеру…», или почему одни микроконтроллеры надежнее других // Компоненты и технологии. – СПб: Изд-во «Файнстрит», 2008. – № 7.
–
С. 44-48.
Статью рекомендовал к опубликованию д.т.н., профессор Ю.А. Гатчин.
Лебедев Олег Борисович
Федеральное государственное автономное образовательное учреждения высшего
профессионального образования «Южный федеральный университет».
E-mail: [email protected]
347928, г. Таганрог, Некрасовский, 44.
Тел.: 8-908-513-5512.
Доцент кафедры «Системы автоматизированного проектирования, к.т.н., доцент.
Лебедева Елена Михайловна
Федеральное государственное автономное образовательное учреждения высшего
профессионального образования «Южный федеральный университет».
E-mail: [email protected]
347928, г. Таганрог, Некрасовский, 44.
Тел.: 8-908-513-5512.
Кафедра «Системного анализа и телекоммуникаций», магистрант.
Мезга Евгений Сергеевич
Федеральное государственное автономное образовательное учреждения высшего
профессионального образования «Южный федеральный университет».
E-mail: [email protected]
347928, г. Таганрог, Некрасовский, 44.
Тел.: 8-908-513-5512.
6
Информатика, вычислительная техника и инженерное образование. – 2014. − № 3 (18)
Кафедра «Вычислительной техники», студент.
Lebedev Oleg Borisovich
Federal State-Owned Educational Establishment of Higher Vocational Education
“Southern Federal University”.
E-mail: [email protected]
347928, Nekrasovsky street, 44, Taganrog, Russian Federation.
Phone: 8-908-513-5512
Computer-aided design of department, PhD, assistant professor.
Lebedeva Elena Mikhaylovna
Federal State-Owned Educational Establishment of Higher Vocational Education
“Southern Federal University”.
E-mail: [email protected]sure.ru.
347928, Nekrasovsky street, 44, Taganrog, Russian Federation.
Phone: 8-908-513-5512.
Department of the system analysis and telecommunication, master.
Mezga Evgeniy Sergeevich
Federal State-Owned Educational Establishment of Higher Vocational Education
“Southern Federal University”.
E-mail: [email protected]
347928, Nekrasovsky street, 44, Taganrog, Russian Federation.
Phone: 8-908-513-5512.
Department of the Computer Engineering, student.
7
1/--страниц
Пожаловаться на содержимое документа