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

 
 
> Защита FRAM
juvf
сообщение May 30 2012, 07:32
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Не нашел лучшего раздела в это форуме

Разработан девайс с фрамкой FM25CL64. Фрам воткнули как энергонезависимую память для конфигурационных параметров, серийного номера и т.п. На практике оказалось, что если снять питание с фрамки во время операции чтение/запись, то в ней портятся данные. Как программно решить эту проблему?
На достоверность информации можно в фраме хранить crc. Но допустим данные недостоверны - и что? К их восстановить? Есть мысль хранить данные+црц и копию данных+црц. но где-то в инете натыкался на описание такого сбоя... в результате чего допустим 4-ый байт в каждом банке был битый. получается что если испортятся данные, то и копия тоже может испортится. Кто-нибудь решал подобную проблему программно и как?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
juvf
сообщение Jun 4 2012, 17:53
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



2 maksimp
Теоретически вы правы. Сейчас я сделал единождое чтение фрамки при вкл. питания в озу и работа с данными из озу. Это должно снизить вероятность потери данных. Планируется эксплуатация 24 часа 15 лет. Один раз за весь срок службы включили - одна операция чтения. Но я понимаю, что теоретически лошадь, а практически упала. Добавлю копию+црц, добавлю восстановительный код с большим избытком. Думаю, что вероятность выключения питания сразу после включения, да многократно, да с порчей каждый раз новых ячеек теоретически равна..... это всё похоже на теорию о бесконечных обезьянах.

Но всё таки ваше доказательство заставило прибегнуть к ещё нескольким мерам предотвращающим случайное пропадание питания. Но это уже выходит за рамки вводной.

Всем спасибо

Сообщение отредактировал juvf - Jun 4 2012, 17:53
Go to the top of the page
 
+Quote Post
barabek
сообщение Jun 4 2012, 22:35
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(juvf @ Jun 5 2012, 03:53) *
2 maksimp
Теоретически вы правы. Сейчас я сделал единождое чтение фрамки при вкл. питания в озу и работа с данными из озу. Это должно снизить вероятность потери данных. Планируется эксплуатация 24 часа 15 лет. Один раз за весь срок службы включили - одна операция чтения. Но я понимаю, что теоретически лошадь, а практически упала. Добавлю копию+црц, добавлю восстановительный код с большим избытком. Думаю, что вероятность выключения питания сразу после включения, да многократно, да с порчей каждый раз новых ячеек теоретически равна..... это всё похоже на теорию о бесконечных обезьянах.

Но всё таки ваше доказательство заставило прибегнуть к ещё нескольким мерам предотвращающим случайное пропадание питания. Но это уже выходит за рамки вводной.

Всем спасибо

Честно говоря не знал, что у FRAM разрушающее чтение. Сам использовал много раз и никогда проблем не было. Может повезло или не заметили. Есть приборы, порядка сотени-двух штук. В них запись текущего положения идет 10 раз в секунду. В этой же памяти хранится конфигурация, при сбое которой прибор перестанет запускаться. Приборы работают 24 часа. Еще, тьфу-тьфу-тьфу, не одного сбоя. А у Вас вот как. Самому лень, но может Вы, раз у горит проведете более качественные тесты. Я бы делал так. На тестовой плате сделать возможность отключать питание с FRAM. Написать прогу, работающую по такому алгоритму. Запись каждый раз случайных значений в память, дабы не было корреляции между ячейками. Затем чтение и во время чтения выключение питания, например транзисторным ключем, а лучше реле, чтобы была и случайность времени отключения и дребезг. Потом включение и повторное считывание. Сравнивая с записанным можно определить, во-первых, вероятность отключения, во-вторых, если сбоев будет много - зависимость между сбойными ячейками. И так по кругу. Даже по одной секунде на цикл за сутки уже получается 86400 опытов. Довольно много. Для чего нужно "во-первых" понятно, а "во-вторых" может повысить восстанавливающие способности кода. Допустим, выяснится, что между собой зависят биты (а не байты!) в ячейка, скажем 0-31-63- ... и портится только в одному ряду/колонке, а не по нескольким, то тогда можно сделать Рида-Соломона с соответствующим перемежением бит. Что повышает восстанавливающую способность в 8 раз! Т.е. не, скажем, 4 символа, а 4*8=32 бита. Если у Вас вдруг хватит сил это проделать отпишитесь, пожалуйста, сюда.
ОФФ. А советы "Кац предлагает сдаться, предлагает сдаться" (цэ) не слушайте. Мне понятно Ваше раздражение по этому поводу.
Go to the top of the page
 
+Quote Post
maksimp
сообщение Jun 5 2012, 02:36
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 313
Регистрация: 2-07-11
Пользователь №: 66 023



Если сам контроллер не может измерить напряжение питания, то измерить напряжение питания можно с помощью самой FRAM. Выделить для этой цели несколько ячеек, записывать в них разные значения и сравнивать - если совпало то напряжение достаточно. Но питание может пропасть сразу после такого измерения, или напряжение может оказаться на грани, достаточно для одних ячеек и не достаточно для других.
Но процессор может влиять на напряжение питания, меняя свой потребляемый ток. Ток максимальный при максимальной тактовой частоте, при включённой внутренней периферии, для повышения тока можно даже устроить конфликт на линии ввода-вывода, настроив как выход линию порта, подключённую к выходу другой микросхемы и устаовиви протовоположный логический уровень.
Стабилизатор не сразу отрабатывает блоски тока, давая кратковременное снижение питания при резком увеличении тока и кратковременное увеличение питания при резком снижении тока.
Тогда порядок действий может быть такой:
- Увеличиваем потребление.
- Проверяем питание с помощью тестовых ячеек FRAM.
- Снижаем потребление.
- Читаеи или пишем в FRAM полезные данные.
И нужно конечно выяснить, какие ещё ячейки FRAM портятся заодно с той при обращении к которой пропало питание.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- juvf   Защита FRAM   May 30 2012, 07:32
- - zombi   Цитата(juvf @ May 30 2012, 10:32) Разрабо...   May 30 2012, 13:37
- - xemul   Цитата(juvf @ May 30 2012, 11:32) Разрабо...   May 30 2012, 14:51
- - AHTOXA   Я пишу две копии, у каждой crc16. Случаев одноврем...   May 30 2012, 19:00
|- - Genadi Zawidowski   Цитатаесли снять питание с фрамки во время операци...   May 30 2012, 19:08
|- - xemul   Цитата(Genadi Zawidowski @ May 30 2012, 23...   May 30 2012, 19:34
- - juvf   Ещё раз хочу повторить..... аппаратно платы сделан...   May 31 2012, 02:36
|- - Plain   Цитата(juvf @ May 31 2012, 05:36) хочу по...   Jun 1 2012, 05:21
- - Genadi Zawidowski   ЦитатаДля FRAM'а существенно напряжение питани...   May 31 2012, 06:49
|- - juvf   Цитата(Genadi Zawidowski @ May 31 2012, 12...   May 31 2012, 07:58
|- - MaslovVG   Длительность циклов запись/чтение у FRAM десятки н...   May 31 2012, 08:19
|- - juvf   Цитата(MaslovVG @ May 31 2012, 14:19) Дли...   May 31 2012, 10:19
- - Aner   ...Длительность циклов запись/чтение у FRAM десятк...   May 31 2012, 09:48
|- - MaslovVG   Цитата(Aner @ May 31 2012, 13:48) ...Длит...   May 31 2012, 10:42
- - Aner   .   May 31 2012, 09:48
- - Ruslan1   Цитата(juvf @ May 30 2012, 10:32) Не наше...   May 31 2012, 10:44
- - zombi   Цитата(sgs @ Jul 24 2008, 19:45) Для FRAM...   May 31 2012, 13:41
|- - _Артём_   Цитата(zombi @ May 31 2012, 16:41) Вот эт...   May 31 2012, 14:03
|- - zombi   Цитата(_Артём_ @ May 31 2012, 17:03) Аппа...   May 31 2012, 14:47
|- - _Артём_   Цитата(zombi @ May 31 2012, 17:47) TC спр...   May 31 2012, 15:12
|- - zombi   Цитата(_Артём_ @ May 31 2012, 18:12) Ну, ...   May 31 2012, 15:45
|- - _Артём_   Цитата(zombi @ May 31 2012, 18:45) Какой ...   May 31 2012, 16:10
||- - zombi   Цитата(_Артём_ @ May 31 2012, 19:10) Реши...   May 31 2012, 16:32
||- - _Артём_   Цитата(zombi @ May 31 2012, 19:32) [size=...   May 31 2012, 16:42
|- - juvf   Цитата(zombi @ May 31 2012, 21:45) Какой ...   Jun 1 2012, 04:03
|- - zombi   Цитата(juvf @ Jun 1 2012, 07:03) Или ...   Jun 1 2012, 07:36
|- - juvf   Цитата(zombi @ Jun 1 2012, 13:36) А если ...   Jun 1 2012, 08:43
|- - zombi   Цитата(juvf @ Jun 1 2012, 11:43) новая па...   Jun 1 2012, 08:48
|- - juvf   Цитата(zombi @ Jun 1 2012, 14:48) А с нын...   Jun 1 2012, 09:11
|- - Plain   Цитата(juvf @ Jun 1 2012, 12:11) Делать х...   Jun 1 2012, 09:34
|- - ReAl   Цитата(juvf @ Jun 1 2012, 12:11) Продават...   Jun 1 2012, 11:02
- - juvf   2Plain   Jun 1 2012, 06:14
- - gerber   Почему же не пойти очевидным путём - применить при...   Jun 1 2012, 09:29
- - juvf   2gerber Вот это мысль! Спасибо. По диагонали ...   Jun 4 2012, 05:05
|- - maksimp   Цитата(juvf @ Jun 4 2012, 09:05) считай ч...   Jun 4 2012, 15:26
- - Plain   Ваши эмоции спишу на утро понедельника. "Фоб...   Jun 4 2012, 05:52
||- - xemul   Цитата(maksimp @ Jun 5 2012, 06:36) ... т...   Jun 5 2012, 04:37
|- - zombi   Цитата(barabek @ Jun 5 2012, 01:35) Есть ...   Jun 5 2012, 04:38
||- - barabek   Цитата(zombi @ Jun 5 2012, 14:38) А в Ваш...   Jun 5 2012, 05:39
|- - juvf   Цитата(barabek @ Jun 5 2012, 04:35) но мо...   Jun 5 2012, 06:08
|- - barabek   Цитата(juvf @ Jun 5 2012, 16:08) а какая ...   Jun 5 2012, 06:27
|- - zombi   Цитата(juvf @ Jun 5 2012, 09:08) Если бы ...   Jun 5 2012, 06:50
|- - xemul   Цитата(juvf @ Jun 5 2012, 10:08) Может бы...   Jun 5 2012, 07:08
- - esaulenka   Я сейчас небольшую крамолу скажу... Мы уже нескол...   Jun 5 2012, 10:46
- - spoluer   Может быть чем-то поможет) В своем проекте на STM3...   Jul 14 2012, 08:00
- - InDepth   Столкнулся с похожей проблемой. причем платы тоже...   Nov 25 2012, 14:25
|- - _Артём_   Цитата(InDepth @ Nov 25 2012, 16:25) а вы...   Nov 25 2012, 15:03
||- - InDepth   Цитата(_Артём_ @ Nov 25 2012, 19:03) Поче...   Nov 26 2012, 05:06
|- - bookd   Цитата(InDepth @ Nov 25 2012, 17:25) если...   Nov 26 2012, 07:39
- - Genadi Zawidowski   1) подтянуть CS к питанию 2) по рекомендации произ...   Nov 26 2012, 07:21


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

 


RSS Текстовая версия Сейчас: 1st July 2025 - 00:07
Рейтинг@Mail.ru


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