реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Самотестирование микроконтроллера в фоновом режиме
Grizzzly
сообщение Dec 12 2015, 14:25
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



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

Подскажите, пожалуйста, литературу или ссылки по данной тематике. UART можно проверить путем приема/передачи соответствующих сообщений, код во флэши можно проверить, сравнивая контрольные суммы страниц, ... Хотелось бы подробнее узнать о дополнительных проверках и, возможно, лучших решениях их осуществления. Прочитал про Power-on self-test (POST). С этим более менее понятно, а вот как эффективно проводить мониторинг именно работающей программы, не нарушая временные диаграммы, пока не очень ясно.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Dec 12 2015, 14:30
Сообщение #2





Guests






Кое-кто делает троированные системы.
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Dec 12 2015, 14:53
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Цитата(TSerg @ Dec 12 2015, 18:30) *
Кое-кто делает троированные системы.

Спасибо, читаю. Вещь сУрьезная.
Видимо, на одном MCU нормальную систему не сделать при заданных степени контроля и надежности.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Dec 12 2015, 15:02
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Grizzzly @ Dec 12 2015, 17:53) *
Спасибо, читаю. Вещь сУрьезная.
Видимо, на одном MCU нормальную систему не сделать при заданных степени контроля и надежности.

Кое что и на одном можно. Например данные в памяти записывать перекрывая их Хеммингом, а исполнять из кэша...
А общая теория такова. Есть "рабочий процесс", который считается не надежным. Ну например из-за большого количества команд, ветвлений и логики... И есть "тестовый процесс", который задействует гораздо меньше ресурсов или исполняется на другом ядре. Пример - сторожевой таймер. Но наверняка можно и другие такие примеры привести... И производится сравнение результатов...
Вот это в общем виде...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Dec 12 2015, 15:06
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Цитата(iosifk @ Dec 12 2015, 18:02) *
Вот это в общем виде...

Спасибо.
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Dec 12 2015, 20:39
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Когда-то делали устройство на 8080, наставили самодиагностики, и контрольная сумма ПЗУ, и контрольная сумма ОЗУ, и тестирование последовательных интерфейсов.
В результате самодиагностика отказывала чаще основных узлов.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Dec 12 2015, 21:02
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Цитата(Dog Pawlowa @ Dec 12 2015, 23:39) *
В результате самодиагностика отказывала чаще основных узлов.

Ценное замечание, подкрепленное непосредственным опытом. Да, как-то не задумывался над этим вопрос. Действительно, очень и очень вероятно подобное.
Go to the top of the page
 
+Quote Post
CrimsonPig
сообщение Dec 12 2015, 21:07
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 329
Регистрация: 23-04-14
Пользователь №: 81 502



Цитата(Grizzzly @ Dec 12 2015, 14:25) *
При разработке проекта, содержащего ASIC и МК, стоит задача постоянного тестирования как аппаратной, так и программной части в фоновом режиме с возможностью автоматического исправления возможных ошибок, поскольку физического доступа к "железу" не будет, если только частичная замена прошивки.
Подскажите, пожалуйста, литературу или ссылки по данной тематике. UART можно проверить путем приема/передачи соответствующих сообщений, код во флэши можно проверить, сравнивая контрольные суммы страниц, ... Хотелось бы подробнее узнать о дополнительных проверках и, возможно, лучших решениях их осуществления. Прочитал про Power-on self-test (POST). С этим более менее понятно, а вот как эффективно проводить мониторинг именно работающей программы, не нарушая временные диаграммы, пока не очень ясно.


А вы уже определились, с какими повреждениями собираетесь бороться-то ? sm.gif
А то, вот, например, прилетит высокоэнергетичная частица в триггер, выполнит bit flip, ну и процессор выполнит jz вместо jnz. Что будем делать ?
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Dec 12 2015, 21:16
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Цитата(CrimsonPig @ Dec 13 2015, 00:07) *
А вы уже определились, с какими повреждениями собираетесь бороться-то ? sm.gif

Если прилетит в ОЗУ или во флэш, то использовать другие их части. Что касается ASIC, то не использовать поврежденные каналы.
Ну, если процессор, то кранты. Вырубать нафиг модуль sm.gif Пока как-то так.
Go to the top of the page
 
+Quote Post
zombi
сообщение Dec 12 2015, 21:29
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



Цитата(CrimsonPig @ Dec 13 2015, 01:07) *
А то, вот, например, прилетит высокоэнергетичная частица в триггер, выполнит bit flip, ну и процессор выполнит jz вместо jnz. Что будем делать ?

Цитата(Grizzzly @ Dec 13 2015, 01:16) *
Если прилетит в ОЗУ или во флэш, то использовать другие их части.

Вы не поняли.
проц, флеш и/или озу вполне рабочие , речь о том что во время дешифрации команды (из за пролетающей частицы) процессор выполнит не верное действие!
Что делать? кого и как вырубать?
Go to the top of the page
 
+Quote Post
iosifk
сообщение Dec 12 2015, 21:29
Сообщение #11


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Grizzzly @ Dec 12 2015, 17:53) *
Видимо, на одном MCU нормальную систему не сделать при заданных степени контроля и надежности.

Вот, вспомнил. У НЕК в памяти команд был сделан внутренний контроль четности...
А у TI есть процессоры с троированием прямо на кристалле...
А вообще, прежде чем брать "что подешевле", лучше выбрать производителя который в большинстве продукции нацелен на автомобильный рынок. Т.к. там поголовная проверка, а не выборочная, как для ширпотреба...
Ребята из ADI на семинаре рассказывали, что если есть брак на коммерческой "вафле", то выкидывается только один бракованный чип. А если на "автомобильной", то кроме бракованного выкидываются еще чипы, которые к нему примыкают. Чтобы получить НУЛЕВОЙ брак в автомобильных исполнениях...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
bloody-wolf
сообщение Dec 12 2015, 23:18
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 220
Регистрация: 15-05-09
Пользователь №: 49 132



например перейти на ARM Cortex-R4, вроде как, ядро как раз заточено для задач, в которых требуется повышенная надежность и отказоустойчивость исполнения кода, типа вдруг 1+1 = 3. например от Тексаса.
это помимо наличия всяческих корректоров ошибок памяти и тактирования.

Сообщение отредактировал bloody-wolf - Dec 12 2015, 23:20
Go to the top of the page
 
+Quote Post
Aner
сообщение Dec 12 2015, 23:33
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



о, как вы далеко можете зайти в рассуждениях не изучая теории надежности в лог. автоматах и проц системах ...
Начните с поставленого вопроса:
Самотестирование микроконтроллера в фоновом режиме.
те тестирования железа (аппаратных ресурсов, на предмет неверного, ошибочного выполнения) дублирование в помощь, ...
также и уровнем выше, софтверном, ... далее протокольном, ... далее ... кто знает пишет
Go to the top of the page
 
+Quote Post
Флюктуация вакку...
сообщение Dec 13 2015, 07:35
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 346
Регистрация: 15-12-13
Из: Планета Земля
Пользователь №: 79 630



Лучше использовать троирование. Пятирирование и т.п. Чем заморачиваться с софтом. Это будет гораздо проще. Да и дешевле. Сейчас микроконтроллеры стоят копейки. Можно в одну плату хоть 20 штук их напихать



А так я тоже по молодости извращался с "самотестированием" в Run-Time.
Вплоть до того что контролировал что проц прошел все точки вычислительной траектории и контролировал длительность выполнения отдельных участков кода. К примеру если проц выполнил участок кода не за 100 мкС, а за 50 или 150, то фиксировался сбой, "вызванный залетевшей в проц альфа-частицей"©.

Но все эти извращения требуют расчетов времени выполнения участков кода и работать чисто на ассемблере.
Ни о каком Си и тем более С++ и речи не было.

Сообщение отредактировал Флюктуация ваккума - Dec 13 2015, 07:39
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Dec 13 2015, 08:44
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Это старая как мир задача о сторожах, сторожащих сторожей. Универсального решения не имеет, а каждое частное решение оптимально только при конкретных заданных условиях. И это оптимальное решение не обязательно находится в той же плоскости, где работает разработчик устройства.
Помню, как управляли газовой задвижкой на 40-атмосферной трубе. Так "сторожем" электроники в последней инстанции выступала пневматика, которая могла сработать вообще без мозгов и электричества. Асимметричный ответ, так сказать. (а собственно электроника там контролировалась элементарным внешним вотчдогом, который срабатывал если все нужные контрольные точки программы не проходились в течении отведенного временного окна).
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th August 2025 - 12:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01448 секунд с 7
ELECTRONIX ©2004-2016