Отговори на тема  [ 30 мнения ]  Отиди на страница Предишна  1, 2
Защита от грешка в ЕЕПРОМ 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Юни 25, 2009 12:01 pm
Мнения: 2201
Мнение Re: Защита от грешка в ЕЕПРОМ
Тони, това е напълно в реда на нещата. Тези кодове не са панацея. Всеки метод си има лимити - примерно прост Even/Odd алгоритъм може да регистрира само 1 грешка. Ако имаш 2 пак ще ти даде, че стойността е валидна. При CRC пак има такъв вариант. Има кодирания, които могат да ти открият грешката, но ако е само 1 примено. Няма как да е 100%, но поне да намалим вероятността.
Контролерът, който съм сложил там, е PIC18F48K50. Има си заключване на EEPROM.
Предполагам, че като добавя това и сложа 2 копия, такива случаи ще намалеят до минимум.
ПП: В случая няма големи тоци, нито EMI, ESD и т. н. Схемата се захранва от батерия, черпи 15-20мА. Най-бързияте ми сигнали са от 1 UART на 112500(имам терминатори!). Задържащата верига е на 10kHz.
ППП: Платката е подложена на сериозно механично въздействи - блъскане, изпускане, удряне. Като гледам в какво състояние е кутийката, не е падало 1 или 2 пъти...

_________________
www.elkran.com


Съб Яну 26, 2019 1:09 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 8:21 pm
Мнения: 27949
Местоположение: София
Мнение Re: Защита от грешка в ЕЕПРОМ
Кое точно е в реда на нещата? Значи ако предполагаш че имаш критични параметри които трябва да бъдат записани мерки се вземат още на хардуерно ниво. Правиш си външно следене на захранвнето, правиш разчет на захранването на процесора така че да може да го държи жив нужното време за да приключи критичните процеси и т.н. После като си структурираш кода го правиш така че д сведеш до минимум възможността да не запишеш правилно данните, както и си пазишнужният брой копия или го защитаваш по съответноят начин. С две копия няма да постигнеш нищо освен да си сигурен че имаш счупени данни, но ако данните са критични не постигаш нищо, знаеш че са повредени и толкова. За да можеш да разчиташ на валидни данни и то не винги ти трябват поне 3 копия. Какви са вероятностите за различните сценарии се смята лесно, и като знаеш колко са ти критични може да прецениш как да ги пазиш и до колко може да разчиташ на наличните.


Съб Яну 26, 2019 1:43 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 11:48 am
Мнения: 4671
Мнение Re: Защита от грешка в ЕЕПРОМ
абе какви CRC-та, като сумата е в края на записа - сорса ти записва "ГРЕШНО"
crc-то само ще ти каже: грешка
преди да запишеш каквито и да е данни/чексума - убеден ли си на 100%, че записваш правилно

_________________
main[-1u]={1};


Съб Яну 26, 2019 6:05 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Дек 19, 2005 11:21 am
Мнения: 1025
Мнение Re: Защита от грешка в ЕЕПРОМ
stoyanoff написа:
Всеки метод си има лимити - примерно прост Even/Odd алгоритъм може да регистрира само 1 грешка. Ако имаш 2 пак ще ти даде, че стойността е валидна. При CRC пак има такъв вариант.


Има, но при четно/нечетно вероятността да хване грешката е 50%, а при CRC32
99.9999%, та не са съвсем от еднакъв порядък. Ако си докарал останалата част от системат до там, че този 0.0001% да ти е проблемът, то поздравления.


Съб Яну 26, 2019 6:21 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 10:22 pm
Мнения: 3074
Мнение Re: Защита от грешка в ЕЕПРОМ
Stoyanoff,
каквото и да добавиш - все ще за добро.


Съб Яну 26, 2019 10:34 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Юни 25, 2009 12:01 pm
Мнения: 2201
Мнение Re: Защита от грешка в ЕЕПРОМ
TheWizard написа:
преди да запишеш каквито и да е данни/чексума - убеден ли си на 100%, че записваш правилно

100%! Към настоящия момент не съм дал на никой потребител права да пише. Само аз мога да правя настройки! Имам опция да дам права, но за сега не го правя. Ако погледнеш още първия ми пост - написал съм, че девайс-а работи от Март месец миналата година и само чете... Никой не е правил опити да пише и т. н... И стойностите са били правилни при запис/програмиране, защото работи от тогава! Без забележки.
Ами ще избера някакъв оптимален вариант.
Благодаря за идеите!

_________________
www.elkran.com


Съб Яну 26, 2019 10:45 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл
Аватар

Регистриран на: Съб Юни 03, 2017 12:21 pm
Мнения: 163
Мнение Re: Защита от грешка в ЕЕПРОМ
На мене ми се е случвало да се промени един байт в EEPROM на ATmega след година-две работа в режим само на четене (един път при подаване на захранване) или поне така си мисля... За жалост не разбрах къде беше проблема.


Съб Яну 26, 2019 10:53 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Юни 05, 2006 12:48 pm
Мнения: 4393
Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
Мнение Re: Защита от грешка в ЕЕПРОМ
radolin написа:

Има, но при четно/нечетно вероятността да хване грешката е 50%, а при CRC32
99.9999%, ....

По полечка с девятките колега :)
Толкоз девятки или приблизително толкова се покават при правилно подбран полином за съответната hamming distance

_________________
... ако трети ден не ти се работи... това означава, че е сряда !


Съб Яну 26, 2019 11:38 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Дек 19, 2005 11:21 am
Мнения: 1025
Мнение Re: Защита от грешка в ЕЕПРОМ
Не задълбах особено, това го взех от един от първите гугъл резултати. Мисълта ми беше, че да се поставят проверка по четност и ЦРЦ в една категория не е много коректно.


Нед Яну 27, 2019 9:33 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 8:21 pm
Мнения: 27949
Местоположение: София
Мнение Re: Защита от грешка в ЕЕПРОМ
Тук въпроса по-скоро е първо защо става грешката, а според мен е бъг, и второто какво се цели, само да се открие грешка което е лесно, или в максимален процент случаи да има валидни данни което е по-трудно.


Нед Яну 27, 2019 12:06 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Ное 27, 2012 8:27 pm
Мнения: 2008
Мнение Re: Защита от грешка в ЕЕПРОМ
На мен ми се е случвало такова нещо при ардуиното когато е много голяма програмата за паметта да се бъгва. И изобщо ардуиното е такъв ташак....


Нед Яну 27, 2019 2:15 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 8:21 pm
Мнения: 27949
Местоположение: София
Мнение Re: Защита от грешка в ЕЕПРОМ
За ардуино нищо не знам, най-вероятно и там е бъг. Имам наблюдения от практиката, и то когато умишлено се е целяло получаване на подобни грешки. Ако изключим бъгове, счупени данни в еепром е рядък случай. Не е невъзможно смущение да ги причини, но едва ли случая е такъв, особено ако говорим за вътрешен еепром. Добра практика сощо така е и да провериш какво си записал.


Нед Яну 27, 2019 4:02 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 11:02 am
Мнения: 8873
Местоположение: Разград
Мнение Re: Защита от грешка в ЕЕПРОМ
Е вие съвсем задълбахте в теория - няма почти никаква полза от това да разбере че данните са грешни, като и без това на потребителя веднага му става ясно че дистанционното не работи... Вече не знам кой път го казвам - за пик : BOR, POR и всичко друго каквото може; ако компилатора слага функция за писане в EEPROM (а то е почти сигурно) веднага след четене сетваш EEADR на адрес, който не се използва. Обикновено функцията се вика след като в EEADR и EEDATA са записани числа и ако по случайност се извика писане ще запише нещо си някъде си без да корумпира важни данни.
Много отдавна съм имал случаи на променен EEPROM и имаше някаква теория че в някаква неясна ситуация контролера започва да скача по кода на случаен принцип. Само че това беше за доста стари от 16-та серия. За 18-та идея си нямам ама и там май имаше такъв проблем. Аз номера с адреса си го правя и тоя проблем отдавна не съм го виждал.


Нед Яну 27, 2019 8:56 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 8:21 pm
Мнения: 27949
Местоположение: София
Мнение Re: Защита от грешка в ЕЕПРОМ
BOR, POR не ти гарантират надежден запис, иска си външен иначе нищо се не знае.


Нед Яну 27, 2019 9:03 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 12:59 pm
Мнения: 3855
Местоположение: Габрово
Мнение Re: Защита от грешка в ЕЕПРОМ
ToHu написа:
BOR, POR не ти гарантират надежден запис, иска си външен иначе нищо се не знае.

+1, и то ако може да не е от същия производител :D (ако бюджета на стига за сериозен контролер и се слага микрочип, поне супервайзора да е от аналог примерно).
Същото е и за WDT - в някой области вътрешно куче не го броят за куче. Има комбинирани супервайзор в WDT в sot-23.
Има и един друг подход, който може да пасне щом запис (настройка, калибрация) се правят само сервизно - алгоритъма за запис го няма в нормалния фирмуер, които експлоатира крайния портребител. За да се случи запис в епром, флаш, се даунлоаудва малко парче код (функциите за запис и триене), прави се сервизния достъп и това парче се маха. Сега, това най-често се прави с контролери дето могат да пускат програмен код от рам, но дори за пик-чето може да се направи - билдваш си "екстендед" фирмуер със всичко вътре, настройваш, калибрираш, записваш във епрома и после зареждаш "релийз" фирмуер - той няма линкнати функциите за достъп до епром. Така си сигурен че скокове вътре не могат да объркат нещата. Реално подхода може да се оптимизира:
- зареждаш сервизен софтуер - в него има нужни за теб функции, дебъг, принтове и т.н., като може да няма неща, които в момента на настройка/калибрация не ти трябват (т.е. специфичен код за мерене от ацп примерно които само мери и показва офсети, шумове, каквото там ти трябва).
- на база на измерените резултати на ПЦ правиш нов билд, използвайки измерените примерно калибрационни офсети. Билднатият нов фирмуер няма нищо от калиброващия код, а понеже билд тайм си имал офсетите направо си ги включил в кода си като константи.
- новия фирмуер наречен release_SN123457.bin го качваш на сървъра (svn, git, ...) и го програмираш с пиккит-а на устройство SN1234567, викаш еконт и устройството заминава
- ако те извикат за сервиз си флашваш пак общия калибрационен фирмуер и повтарят процедурата, ако просто подменяш ("бате, тука го заляхме с нафта малко и то ...") им пращаш нова бройка
Така имаш още един бонус - не могат да ти краднат разработката понеже на нов хардуер няма да им паснат офсетите примерно, или каквото там помниш. Още един бонус - калибрацията и работния код са "разпределени" равномерно в два отделни варианта, т.е. фирмуера, и имаш место за повече код вътре.


Пон Яну 28, 2019 9:17 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 30 мнения ]  Отиди на страница Предишна  1, 2

Кой е на линия

Потребители разглеждащи този форум: Nikola Kirov, vesko_hard и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни