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

 
 
> Защита 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, 05:05
Сообщение #2


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

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



2gerber
Вот это мысль! Спасибо. По диагонали глянул в вики - вроде должно решить проблему... Наверняка есть готовые библиотеки с реализацией Рида-Соломона? Случайно у вас нету?

Есть же всякие алгоритмы с избыточным кодированием с возможностью восстановления.... можно свое что-то написать. но я думаю что велосипед уже изобретён.... Кто может ещё, что-то посоветовать, какие нибудь алгоритмы восстановления?

2Plain
Не совсем понятно что и кому вы хотите показать? Несостоятельность моего девайса, я не собираюсь это оспаривать, или свою несостоятельность как инженера? Решить проблему перезапуском плат - любой сможет... любой школьник встретив такую трудность скажет - "перезапуск плат". Была бы возможность перезапуска плат - я бы тут даже не постил тему. Перезапустил бы молча. Но зачем компании нужен такой инженер, который не может решить "невыполнимые" задачи. Архимед один выполнил задачу которую не смогло решить 100500 рабочих(солдат) - столкнуть корабль. Придёте вы на собеседование к работодателю.... дадут вам тест "программно сделать безопасное чтение/запись фрамки без контроля питания". Что вы им скажете? "Ну да, чтобы заменить им пару соплей и резисторов, с гордостью отвергнутых чуть выше:". А другой кандидат применит Рида-Соломона и/или разберётся со строением фрамки и предложит живучий алгоритм сэкономив тем самым компании 1000нефти.

Понятно, что всех как магнитом тянет на аппаратное решение проблемы. Но аппаратно не возможно. Я могу обосновать почему невозможно, на несколько страниц расписать... но зачем? Скажу просто:

Вводная: (2Plain считай что это абстрактная задача, допустим математическая олимпиада)
программно сделать безопасное чтение/запись фрамки без контроля питания и без аппаратного вмешательства

ps
2Plain возможно вы правы на счет невозможности. и у вас есть такой опыт.... т.е. вы пробовали применить разное избыточное кодирование с восстановлением и применительно к фрамке это не работает... т.к. во время окончания последнего 8-го бита данных в фрам открывается такой-то транзистор.... происходит выборка строки .... регенерация адреса .... бла бла бла .... В результате чего портится то-то и то-то.... и восстановить такую информацию математически не представляется возможности.... Самую низкую вероятность сбоя показал восстановительный код Иванова-Сидорова, но при прогоне в климатической камере при t<-10°C и при t>50°C частота возникновения ошибки увеличиваются и вероятность сбоя возрастает до такой-то величины. .....
Конечно если предоставить компании подобные доводы и/или результаты исследования, то будут искаться другие пути решения проблемы. Но пока тупо - "Так сделать невозможно" или "Если платы не работают, они не сделаны. Можно повторять это бесконечное число раз, ничего не изменится." выглядит как маза.
Один инженер обосновал мне теоретически, на низком уровне (строение фрам), что црц+дублирование не поможет. Но с др. стороны практик
Цитата(AHTOXA @ May 31 2012, 01:00) *
Я пишу две копии, у каждой crc16. Случаев одновременного сбоя обеих копий не замечено.
У меня данных немного, 100 байт, две копии влезут в один банк и возможно таких проблем действительно не будет.

Сообщение отредактировал juvf - Jun 4 2012, 05:08
Go to the top of the page
 
+Quote Post
maksimp
сообщение Jun 4 2012, 15:26
Сообщение #3


Местный
***

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



Цитата(juvf @ Jun 4 2012, 09:05) *
считай что это абстрактная задача, допустим математическая олимпиада)
программно сделать безопасное чтение/запись фрамки без контроля питания и без аппаратного вмешательства

Этого нельзя.

Доказательство примерно:
Допустим питание сбилось и есть испорченная ячейка.
При каждом следующем включении питания и запуске алгоритма, он пытается сверить данные и исправить повреждения. Для этого он сначала читает сколько-то ячеек, проводит с ними вычисления, и затем записывает исправленное значение в испорченную ячейку. Среди прочтённых (до выполнения первой записи исправленного значения) ячеек сколько-то верных и сколько-то уже испорченных. Если все прочтённые ячейки испорчены то записать что-либо верное он уже не сможет. Значит надежда есть только если среди прочтённых значений есть верные. Но тогда дёрнем питание во время чтения какой-либо из верных ячеек. В результате испортилась ещё одна ячейка, а восстановить что-либо алгоритм не успел - всё это происходит до того как алгоритм собирается записывать что-либо. Так одну за одной испортим все ячейки.
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
- - Plain   Ваши эмоции спишу на утро понедельника. "Фоб...   Jun 4 2012, 05:52
- - juvf   2 maksimp Теоретически вы правы. Сейчас я сделал е...   Jun 4 2012, 17:53
|- - barabek   Цитата(juvf @ Jun 5 2012, 03:53) 2 maksim...   Jun 4 2012, 22:35
|- - 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
|- - 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 Текстовая версия Сейчас: 27th June 2025 - 10:57
Рейтинг@Mail.ru


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