Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 09.04.2008, 01:17  
Don_Ambrosio
Вид на жительство
 
Регистрация: 28.02.2008
Сообщений: 437
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Don_Ambrosio на пути к лучшему
По умолчанию Краткий обзор методов помехоустойчивого программирования для

Краткий обзор методов помехоустойчивого программирования для микроконтроллеров1. Опрос цифровых входов с оценкой достоверности

Метод используется для повышения достоверности определения уровня на цифровом входе. Вход опрашивается несколько раз. Истинное значение на входе рассчитывается из считанных значений по тому или иному правилу (мажорирование, сложение по логическому "И" и т.д) . Существуют вариации этого метода.



Ограничения на применение:

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



2. Легализация входных данных

Устанавливается ограничение на диапазон разрешенных значений входных данных. В случае, если входные данные превышают установленные ограничения, то возможны следующие варианты:

- данные игнорируются;

- данные усредняются в потоке (пока имеет место выход за пределы диапазона)



Ограничения на применение:

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



3. Эстафетная передача

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

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

В случае сбоя эстафеты происходит переход на обработку ошибок, перезагрузка и пр., в зависимости от требований задачи.



Ограничения на применение:

Большие накладные расходы на реализацию.

Избыточность данных и времени.



4. Маршрутизация исполняемого кода

Метод предназначен для защиты от несанкционированной передачи управления тем участкам кода, выполнение которых считается ответственным для данной задачи (запись во внешнюю/внутреннюю флэш-память или EEPROM, передача тревожных/критических сообщений по внешним каналам связи, включение цифровых выходов, управляющих силовым оборудованием и т.п.). Несанкционированная передача управления может произойти, например, в результате сбоев счетчика команд PC. Для реализации метода определяют защищаемые маршруты, включающие в себя участки кода, прохождение которых отмечается отдельными флагами в байте (слове) соответствия (установка контрольных точек). Каждый флаг соответствует завершению строго определенного участка кода. Выполнение участков кода какого-либо маршрута может быть распределено как во времени (включая прерывания), так и в пространстве - по всему объему программы.

Байт (слово) соответствия на момент проверки уже несет информацию о пройденном маршруте: совокупности частей кода, контроль исполнения которых обязателен. В начале входа в ответственный участок кода производится проверка байта соответствия (например, по маске). Если маршрут пройден корректно и полностью, т.е. требуемые флаги выставлены, то они сбрасываются и разрешается вхождение в ответственный участок кода. В случае ошибок в маршруте, вариант дальнейших действий зависит от требований задачи: управление отдается коду обработки ошибок, выполняется холодная/горячая перезагрузка или полная/ частичная реинициализация...







Ограничения на применение:

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

Метод не дает 100% гарантии, но позволят свести вероятность возникновения указанных ситуаций к очень малой величине, которая в целом будет определяться соотношением всего объема адресуемой памяти микроконтроллера к объему ответственного участка.



5. Блочная защита критических данных

Метод основан на использовании контрольной суммы. Критические данные помещают рядом, в одну область памяти (блок) и для нее вычисляют контрольную сумму, которую сохраняют в другом месте (можно в таблице контрольных сумм для разных блоков). Когда производится запись в эту область памяти, контрольная сумма заново пересчитывается и запоминается. Проверка с целью диагностики может быть выполнена в любой момент. Вместо контрольной суммы можно рекомендовать применение CRC.



Ограничения на применение:

Чем больше размер защищаемой памяти, тем дольше будет происходить ее проверка или расчет контрольной суммы при записи. При использовании CRC эта проблема усугубляется. После инициирования проверки до ее завершения запись в защищаемую память производится не должна. Если же это все-таки необходимо сделать, то защиту памяти - на период времени от последней проверки до текущего момента - можно считать отключенной, а пересчет контрольной суммы должен быть выполнен повторно. В случае, если в защищаемую память относительно большого размера запись производится часто и постоянно, то применение данного метода может потерять практический смысл.



6. Контроль аппаратного запрета записи.

Этот метод прост: микроконтроллер управляет аппаратным запретом/разрешением записи в память. Запрет на запись держится постоянно и снимается только на время записи данных в память.



Ограничения на применение:

Используемая память должна поддерживать аппаратный запрет записи, как правило, это внешняя память. Для внешней памяти требуются дополнительные аппаратные ресурсы микроконтроллера (например, цифровой выход).



7. Запись с откатом

Сбой может произойти во время самого процесса записи. Особенно уязвима внешняя память (EEPROM, flash и т.д.). Для защиты записи блока данных применяется механизмом транзакций, по аналогии с базами данных. В случае сбоя в процессе записи выполняется откат - использование последнего корректного значения, хранимого до сбоя.



Ограничения на применение:

Метод требует двойной ресурс по памяти для данных на реализацию отката.

Увеличенное время доступа к данным.



8. Заполнение неиспользуемой памяти

В случае сбоя счетчика команд, микроконтроллер может обратиться к неиспользуемому программой пространству памяти. Дальнейшие его действия зависят от содержимого этого участка [ов] памяти. Чтобы свести к минимуму негативные последствия от подобных ситуаций, неиспользуемая память заполняется определенным кодом, который зависит от архитектуры используемого микроконтроллера. Часто используется техника заполнения кодом холостой операции, а в конце участка - команда перехода на вектор сброса. Важно использовать только те команды, которые для данного микроконтроллера укладываются в минимально адресуемую единицу памяти. В противном случае, счетчик команд может попасть в середину или в конец команды, что может усугубить ситуацию, если в данной архитектуре не предусмотрено холостое выполнение по умолчанию подобных "кусков" команд.

В системе команд некоторых микроконтроллерах есть команды STOP (останов, с дальнейшим сбросом по WatchDog, если он задействован) или RESET (сброс). В зависимости от решаемой задачи их использование для заполнения может быть предпочтительнее.

Могут возникнуть трудности в тех архитектурах, которые используют страничное переключение памяти, хранящей код, причем за переключение страниц обычно отвечает отдельный рег
Реклама:
__________________
Дон Амброзио благодарит алфавит за любезно предоставленные буквы
Блин!! Морковь в 2,5 раза подорожала!!!
Don_Ambrosio вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
О стилях программирования на C для МК Prime Микроконтроллеры, АЦП, память и т.д 13 04.04.2008 14:12
Особенности программирования на Си для AVR stas633 Proteus, KiCAD и другие ECAD 22 11.04.2007 23:02
Обзор видеокарты ATI Radeon X800 GTO. xelos Делимся опытом 0 04.12.2005 03:42
Какие необходимые условия для программирования PIC? graham Микроконтроллеры, АЦП, память и т.д 4 17.10.2005 21:18
обзор контроля температур midnighter Proteus, KiCAD и другие ECAD 0 22.05.2005 20:20


Часовой пояс GMT +4, время: 12:45.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot