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

 
 
> Определение целосности данных
Pat
сообщение Oct 29 2005, 18:56
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 27-05-05
Из: Энергодар
Пользователь №: 5 480



Есть значение, которое очень важно для функционирования всего прибора.
Оно хранится в EEPROM и может иногда изменятся (калибровочный коэфф.). Необходимо при старте определить их правильность.
Конечно, самое простое это записать его несколько раз в EEPROM, потом, считав данные методом сравнения определить, что данные правильны. Например, 2 из 3 совпали.
Интересует, есть ли более элегантные способы хранения данных, которые на 99.9999% гарантируют их целостность?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GrayCat
сообщение Oct 31 2005, 07:46
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 7-10-05
Из: UA
Пользователь №: 9 342



Еще вариант: записать само значение и его инверсию. Минимум накладных расходов.

Также, если в EEPROM достаточно свободного места, можно организовать что-то типа отказоустойчивой системы с транзакциями wink.gif : кольцевой буфер, в "голову" которого пишется пакетик данных, затирая "хвост". Преимущество: если последняя "транзакция" не удалась (например, питание ушло), можно вернуться к предыдущему значению (если это калибровочный коэффициент, то он обычно между калибровками уплывает ненамного, и со старым его значением прибор будет хоть как-то работать).


--------------------
Gray©at
Go to the top of the page
 
+Quote Post
TMX
сообщение Oct 31 2005, 13:01
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 100
Регистрация: 19-01-05
Из: Москва
Пользователь №: 2 064



данные в EEPROM типа 93Cxx действительно могут быть испорчены, если в момент записи пропадет питание, или на ноге CS будет активность (при сбросе процессора), при чтении - все ok
я делаю так:
в EEPROM записываю дополнительно два счетчика.
каждая запись состоит из следующих этапов:
1. считать, инкрементировать и записать счетчик 1.
2. записать данные
3. считать, инкрементировать и записать счетчик 2.
если значение счетчиков FF, то оно меняется на 01 (т.е. 00 и FF - запрещенные значения)

при считывании сравниваю счетчики

преимущества: не надо считывать всю информащию и рассчитывать контрольную сумму или СRC
недостатки: работает, если данные портятся только в момент записи.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st August 2025 - 14:40
Рейтинг@Mail.ru


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