| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
О сохранности данных в памяти МК
22.05.2013, 18:15
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
|
Re: О сохранности данных в памяти МК
Надежность хранения данных в ОЗУ контроллера почти идеальная, ещё ни разу не сталкивался с тем, чтобы данные повреждались САМОпроизвольно (например, из-за пролета ионизирующей частицы или отдаленного ядерного взрыва)... Все искажения данных, что встречались - чисто программные косяки, и вычислялись при отладке. Так что хранить данные в ОЗУ можно хоть годами, не боясь что где-то единица внезапно станет нулем, или наоборот...
|
|
|
|
Эти 2 пользователя(ей) сказали Спасибо niXto за это сообщение:
|
|
|
22.05.2013, 18:24
|
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,427
Сказал спасибо: 0
Сказали Спасибо 381 раз(а) в 251 сообщении(ях)
|
Re: О сохранности данных в памяти МК
Угу, пионерский бред.
|
|
|
|
23.05.2013, 10:26
|
|
|
Прописка
Регистрация: 25.02.2011
Сообщений: 122
Сказал спасибо: 61
Сказали Спасибо 23 раз(а) в 19 сообщении(ях)
|
Re: О сохранности данных в памяти МК
Сообщение от niXto
|
|
Надежность хранения данных в ОЗУ контроллера почти идеальная, ещё ни разу не сталкивался с тем, чтобы данные повреждались САМОпроизвольно (например, из-за пролета ионизирующей частицы или отдаленного ядерного взрыва)... Все искажения данных, что встречались - чисто программные косяки, и вычислялись при отладке. Так что хранить данные в ОЗУ можно хоть годами, не боясь что где-то единица внезапно станет нулем, или наоборот...
|
Спасибо. Я тоже так считаю. Просто у нас тут с коллегами спор возник...
А память FRAM, конечно, стоящая вещь...Впервые я о ней узнал около года назад. Тогда мне казалось, что это технология недалекого будущего. А сейчас посмотрел по ценам-вполне доступно.
|
|
|
|
23.05.2013, 19:51
|
|
|
Прописка
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
|
Re: О сохранности данных в памяти МК
Не знаю, насколько на самом деле важен конкретный счетчик посещений туалета, но для информации:
Вообще-то ОЗУ может сбоить. Скажем, спустя 5 лет работы из-за деградации характеристик МОП-транзистора вследствие инжекции горячих носителей в окисел, какая-то ячейка начнет нестабильно читаться/писаться. Космическое излучение – редко, но бывает. Просто зарегистрировать такие ошибки, чтобы утверждать, что именно они привели к сбою, в обычном девайсе нереально:
- во-первых, в памяти не так много битов, изменение которых привело бы к фатальной ошибке (PC, указатель стека, конфигуратор прерываний; это, понятно, не считая проблемно-ориентированных данных, вроде Вашего счетчика), поэтому часто такие сбои памяти просто остаются незамеченными, либо замеченными гораздо позже, чем произошло изменение бита.
- во-вторых, чтобы хоть попытаться зафиксировать такой сбой, нужны как минимум программные средства контроля за всеми битами, что несколько нереально.
Поэтому те участки RAM, сохранность которых должна быть гарантирована, просто защищаются контрольными суммами и тройным резервированием, и в аварийных ситуациях просто молча восстанавливаться программно. В некоторых случаях код, выполняющий чтение или запись этих участков, должен защищаться сигнатурами.
----
Насчет сохранения в EEPROM при отключении батарейки – опасный фокус. На столе такие штуки обычно работают, но в реальности могут давать необратимые сбои.
Простой пример – в устройство попала вода, при этом может сработать прерывание по отключению батарейки, но конденсатор, на который Вы рассчитываете, разрядится в десятки раз быстрее, чем Вы предполагали. Отсюда – либо недозапись в еепром, либо недозаряд каких-то ячеек из-за нехватки тока. Получим нестабильно читающиеся данные.
Другой пример – у батарейки окислились контакты, а устройство подверглось механическому воздейстивию (просто стукнули по нему). В результате Вы получите серию прерываний без переподзарядки емкости, на каждое из которых Вы будете делать запись в еепром (довольно жрущая операция), которые все скопом высадят емкость и на очередную запись может просто не хватить тока.
Т.е. сохранение в EEPROM в таких случаях так же должно делаться тройным резервированием с контрольными суммами. С временнЫми лагами между записью и восстановлением (т.к. запись может начаться но не успеть закончиться, а МК уже перезагрузится и полезет читать EEPROM, при этом получит отказ). А вообще, процедура замены батарейки в таких случаях должна предусматривать порядок действий, при котором резервное копирование в еепром производится до ее извлечения.
|
|
|
|
Сказали "Спасибо" testerplus
|
|
|
23.05.2013, 20:01
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
|
Re: О сохранности данных в памяти МК
Сообщение от testerplus
|
|
- во-вторых, чтобы хоть попытаться зафиксировать такой сбой, нужны как минимум программные средства контроля за всеми битами, что несколько нереально.
|
Вполне реально. У современных контроллеров опционально есть аппаратный модуль контроля CRC каждой ячейки ОЗУ, и автоматическая генерация прерывания при несовпадении. Хотя бы стм32ф0хх по цене чуть больше доллара. Но для обычного применения (в не-критически важных местах) ОЗУ вполне можно доверять
|
|
|
|
23.05.2013, 20:20
|
|
|
Прописка
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
|
Re: О сохранности данных в памяти МК
Сообщение от niXto
|
|
Вполне реально. У современных контроллеров опционально есть аппаратный модуль контроля CRC каждой ячейки ОЗУ, и автоматическая генерация прерывания при несовпадении. Хотя бы стм32ф0хх по цене чуть больше доллара.
|
Это хорошо (и, кстати, показательно), что в широтребовских МК начали появляться такие модули. Остается надеяться, чтобы разработчики ими хотя бы пользовались 
(А вроде ТС хотел что-то простое: пикаврстм8 )
|
|
|
|
23.05.2013, 20:32
|
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,427
Сказал спасибо: 0
Сказали Спасибо 381 раз(а) в 251 сообщении(ях)
|
Re: О сохранности данных в памяти МК
|
|
|
|
03.07.2014, 16:30
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 01.05.2009
Адрес: Коптево
Сообщений: 2,753
Сказал спасибо: 268
Сказали Спасибо 398 раз(а) в 247 сообщении(ях)
|
Re: О сохранности данных в памяти МК
Сообщение от akegor
|
|
Дублирование, избыточное кодирование (Хэмминг и пр.) - много вариантов передачи-хранения-восстановления данных. Гугль в помощь.
|
Пардон, но это единственный топик со словом "Хэмминг".
Просто на днях узнал, что RAID-2 - это и есть диск с поддержкой кодов Хэмминга.
А у меня как раз завалялся старенький HDD на 1Тб. Вот и думаю, а как бы его сделать с защитой кодами Хэмминга?
Наверно, придётся его делить на 2 логических диска (а каких именно и с каким объёмом каждый?), затем как-то объединять в массив RAID-2?
В Тырнете - какая-то помойка и всё не то: http://yandex.ru/yandsearch?text=%D1...id=9582&lr=213
Поэтому вопрос: никто не пытался делать внешний диск RAID-массивом, причём именно RAID-2?
Последний раз редактировалось KBH-I; 03.07.2014 в 16:32.
|
|
|
|
03.07.2014, 16:57
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 08.06.2008
Сообщений: 1,393
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: О сохранности данных в памяти МК
Сообщение от niXto
|
|
Вполне реально. У современных контроллеров опционально есть аппаратный модуль контроля CRC каждой ячейки ОЗУ, и автоматическая генерация прерывания при несовпадении. Хотя бы стм32ф0хх по цене чуть больше доллара. Но для обычного применения (в не-критически важных местах) ОЗУ вполне можно доверять
|
Вектор прерывания в студию !!!
Иль ссылку на эту сказку. 
|
|
|
|
03.07.2014, 18:01
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
|
Re: О сохранности данных в памяти МК
Сообщение от Boba_spb
|
Вектор прерывания в студию !!!
Иль ссылку на эту сказку.
|
Очередной раз рекомендую изучать английский. Работать с современными микроконтроллерами, руководствуясь только переводами на русский, уже практически нереально. Ссылка на эту сказку - http://www.st.com/st-web-ui/static/a...DM00091010.pdf
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:54.
|
|