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

 
 
> Защита 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
juvf
сообщение Jun 5 2012, 06:08
Сообщение #4


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

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



Цитата(barabek @ Jun 5 2012, 04:35) *
но может Вы, раз у горит проведете более качественные тесты
однако целый ниокр. время выкраю, проведу такое исследование.
Цитата
Есть приборы, порядка сотени-двух штук.
а какая конкретно фрам стоит?

Цитата
И при понижении питания Cyclon III "летает" где хочет и творит что угодно с фрам.
Может быть.... однако если идет команда чтения..... ну улетел ниос.... Это как он должен улелеть? пошла команда на чтение.... ниос полетел и вместо чтения передал команду Write Enable Latch, потом снял cs, потом выставил cs и передал команду записи и записал кудато мусор. Как-то маловероятно что с Write Enable Latch ниос улетит так, что попортит фрам. вся конфигурация плис хранится в другой памяти, в epcs. Если бы ниос так "летал" то он бы мог и епцс попортить. но случаев разрушения данных в епцс во время чтения замеченно не было и ни от кого ни разу не слышал о таком. думаю что это всётаки фрам виноватая.
Буду тест проводить..... процесор не будет выключаться, чтоб не улетал, только фрам буду отрубать.

Цитата
то измерить напряжение питания можно с помощью самой FRAM.
мысль не понял.


Сообщение отредактировал juvf - Jun 5 2012, 06:24
Go to the top of the page
 
+Quote Post
barabek
сообщение Jun 5 2012, 06:27
Сообщение #5


Знающий
****

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



Цитата(juvf @ Jun 5 2012, 16:08) *
а какая конкретно фрам стоит?
FM24C64

Цитата
Может быть.... однако если идет команда чтения..... ну улетел ниос.... Это как он должен улелеть? пошла команда на чтение.... ниос полетел и вместо чтения передал команду врайт-протект, потом снял cs, потом выставил cs и передал команду записи и записал кудато мусор. Как-то маловероятно что с врайт-протектом ниос улетит так, что попортит фрам. вся конфигурация плис хранится в другой памяти, в epcs. Если бы ниос так "летал" то он бы мог и епцс попортить. но случаев разрушения данных в епцс во время чтения замеченно не было и ни от кого ни разу не слышал о таком.
Буду тест проводить..... процесор не будет выключаться, чтоб не улетал, только фрам буду отрубать.
В общем-то вероятность есть. Если начал летать то на ногах появляется такой дребезг от которого память что угодно может сделать. Из разряда милиона обезьян и написания ими "войны и мира", но с гораздо большей вероятностью. Допустим у Вас идет чтение. Пошел дребезг. Все что нужно для порчи это выдать повторный старт, совпасть адрес с адресом устройства и бит WR и вот, дальнейший дребезг - это запись чего-то куда-то. Может и маловероятно, но ...


А в epcs запись подубовей, времени больше требуется. Может по этому. Да и запись там повышенным напряжением.


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
|- - maksimp   Если сам контроллер не может измерить напряжение п...   Jun 5 2012, 02:36
||- - 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
|- - 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 Текстовая версия Сейчас: 24th June 2025 - 21:10
Рейтинг@Mail.ru


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