Виж темите без отговор | Виж активните теми
Дата и час: Чет Мар 28, 2024 7:43 pm
Защита от грешка в ЕЕПРОМ
Автор |
Съобщение |
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 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 |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 8:21 pm Мнения: 27949 Местоположение: София
|
Re: Защита от грешка в ЕЕПРОМ
Кое точно е в реда на нещата? Значи ако предполагаш че имаш критични параметри които трябва да бъдат записани мерки се вземат още на хардуерно ниво. Правиш си външно следене на захранвнето, правиш разчет на захранването на процесора така че да може да го държи жив нужното време за да приключи критичните процеси и т.н. После като си структурираш кода го правиш така че д сведеш до минимум възможността да не запишеш правилно данните, както и си пазишнужният брой копия или го защитаваш по съответноят начин. С две копия няма да постигнеш нищо освен да си сигурен че имаш счупени данни, но ако данните са критични не постигаш нищо, знаеш че са повредени и толкова. За да можеш да разчиташ на валидни данни и то не винги ти трябват поне 3 копия. Какви са вероятностите за различните сценарии се смята лесно, и като знаеш колко са ти критични може да прецениш как да ги пазиш и до колко може да разчиташ на наличните.
|
Съб Яну 26, 2019 1:43 pm |
|
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 11:48 am Мнения: 4671
|
Re: Защита от грешка в ЕЕПРОМ
абе какви CRC-та, като сумата е в края на записа - сорса ти записва "ГРЕШНО" crc-то само ще ти каже: грешка преди да запишеш каквито и да е данни/чексума - убеден ли си на 100%, че записваш правилно
_________________ main[-1u]={1};
|
Съб Яну 26, 2019 6:05 pm |
|
|
radolin
Ранг: Форумен бог
Регистриран на: Пон Дек 19, 2005 11:21 am Мнения: 1025
|
Re: Защита от грешка в ЕЕПРОМ
Има, но при четно/нечетно вероятността да хване грешката е 50%, а при CRC32 99.9999%, та не са съвсем от еднакъв порядък. Ако си докарал останалата част от системат до там, че този 0.0001% да ти е проблемът, то поздравления.
|
Съб Яну 26, 2019 6:21 pm |
|
|
stefan63
Ранг: Форумен бог
Регистриран на: Вто Фев 07, 2012 10:22 pm Мнения: 3074
|
Re: Защита от грешка в ЕЕПРОМ
Stoyanoff, каквото и да добавиш - все ще за добро.
|
Съб Яну 26, 2019 10:34 pm |
|
|
stoyanoff
Ранг: Форумен бог
Регистриран на: Чет Юни 25, 2009 12:01 pm Мнения: 2201
|
Re: Защита от грешка в ЕЕПРОМ
100%! Към настоящия момент не съм дал на никой потребител права да пише. Само аз мога да правя настройки! Имам опция да дам права, но за сега не го правя. Ако погледнеш още първия ми пост - написал съм, че девайс-а работи от Март месец миналата година и само чете... Никой не е правил опити да пише и т. н... И стойностите са били правилни при запис/програмиране, защото работи от тогава! Без забележки. Ами ще избера някакъв оптимален вариант. Благодаря за идеите!
_________________www.elkran.com
|
Съб Яну 26, 2019 10:45 pm |
|
|
s.ivanov
Ранг: Новодошъл
Регистриран на: Съб Юни 03, 2017 12:21 pm Мнения: 163
|
Re: Защита от грешка в ЕЕПРОМ
На мене ми се е случвало да се промени един байт в EEPROM на ATmega след година-две работа в режим само на четене (един път при подаване на захранване) или поне така си мисля... За жалост не разбрах къде беше проблема.
|
Съб Яну 26, 2019 10:53 pm |
|
|
MYXATA
Ранг: Форумен бог
Регистриран на: Пон Юни 05, 2006 12:48 pm Мнения: 4393 Местоположение: където небето среща земята, ракията е Jameson, а бирата Guinness
|
Re: Защита от грешка в ЕЕПРОМ
По полечка с девятките колега Толкоз девятки или приблизително толкова се покават при правилно подбран полином за съответната hamming distance
_________________ ... ако трети ден не ти се работи... това означава, че е сряда !
|
Съб Яну 26, 2019 11:38 pm |
|
|
radolin
Ранг: Форумен бог
Регистриран на: Пон Дек 19, 2005 11:21 am Мнения: 1025
|
Re: Защита от грешка в ЕЕПРОМ
Не задълбах особено, това го взех от един от първите гугъл резултати. Мисълта ми беше, че да се поставят проверка по четност и ЦРЦ в една категория не е много коректно.
|
Нед Яну 27, 2019 9:33 am |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 8:21 pm Мнения: 27949 Местоположение: София
|
Re: Защита от грешка в ЕЕПРОМ
Тук въпроса по-скоро е първо защо става грешката, а според мен е бъг, и второто какво се цели, само да се открие грешка което е лесно, или в максимален процент случаи да има валидни данни което е по-трудно.
|
Нед Яну 27, 2019 12:06 pm |
|
|
timt
Ранг: Форумен бог
Регистриран на: Вто Ное 27, 2012 8:27 pm Мнения: 2008
|
Re: Защита от грешка в ЕЕПРОМ
На мен ми се е случвало такова нещо при ардуиното когато е много голяма програмата за паметта да се бъгва. И изобщо ардуиното е такъв ташак....
|
Нед Яну 27, 2019 2:15 pm |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 8:21 pm Мнения: 27949 Местоположение: София
|
Re: Защита от грешка в ЕЕПРОМ
За ардуино нищо не знам, най-вероятно и там е бъг. Имам наблюдения от практиката, и то когато умишлено се е целяло получаване на подобни грешки. Ако изключим бъгове, счупени данни в еепром е рядък случай. Не е невъзможно смущение да ги причини, но едва ли случая е такъв, особено ако говорим за вътрешен еепром. Добра практика сощо така е и да провериш какво си записал.
|
Нед Яну 27, 2019 4:02 pm |
|
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 11:02 am Мнения: 8873 Местоположение: Разград
|
Re: Защита от грешка в ЕЕПРОМ
Е вие съвсем задълбахте в теория - няма почти никаква полза от това да разбере че данните са грешни, като и без това на потребителя веднага му става ясно че дистанционното не работи... Вече не знам кой път го казвам - за пик : BOR, POR и всичко друго каквото може; ако компилатора слага функция за писане в EEPROM (а то е почти сигурно) веднага след четене сетваш EEADR на адрес, който не се използва. Обикновено функцията се вика след като в EEADR и EEDATA са записани числа и ако по случайност се извика писане ще запише нещо си някъде си без да корумпира важни данни. Много отдавна съм имал случаи на променен EEPROM и имаше някаква теория че в някаква неясна ситуация контролера започва да скача по кода на случаен принцип. Само че това беше за доста стари от 16-та серия. За 18-та идея си нямам ама и там май имаше такъв проблем. Аз номера с адреса си го правя и тоя проблем отдавна не съм го виждал.
|
Нед Яну 27, 2019 8:56 pm |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 8:21 pm Мнения: 27949 Местоположение: София
|
Re: Защита от грешка в ЕЕПРОМ
BOR, POR не ти гарантират надежден запис, иска си външен иначе нищо се не знае.
|
Нед Яну 27, 2019 9:03 pm |
|
|
gicho
Ранг: Форумен бог
Регистриран на: Пон Мар 13, 2006 12:59 pm Мнения: 3855 Местоположение: Габрово
|
Re: Защита от грешка в ЕЕПРОМ
+1, и то ако може да не е от същия производител (ако бюджета на стига за сериозен контролер и се слага микрочип, поне супервайзора да е от аналог примерно). Същото е и за WDT - в някой области вътрешно куче не го броят за куче. Има комбинирани супервайзор в WDT в sot-23. Има и един друг подход, който може да пасне щом запис (настройка, калибрация) се правят само сервизно - алгоритъма за запис го няма в нормалния фирмуер, които експлоатира крайния портребител. За да се случи запис в епром, флаш, се даунлоаудва малко парче код (функциите за запис и триене), прави се сервизния достъп и това парче се маха. Сега, това най-често се прави с контролери дето могат да пускат програмен код от рам, но дори за пик-чето може да се направи - билдваш си "екстендед" фирмуер със всичко вътре, настройваш, калибрираш, записваш във епрома и после зареждаш "релийз" фирмуер - той няма линкнати функциите за достъп до епром. Така си сигурен че скокове вътре не могат да объркат нещата. Реално подхода може да се оптимизира: - зареждаш сервизен софтуер - в него има нужни за теб функции, дебъг, принтове и т.н., като може да няма неща, които в момента на настройка/калибрация не ти трябват (т.е. специфичен код за мерене от ацп примерно които само мери и показва офсети, шумове, каквото там ти трябва). - на база на измерените резултати на ПЦ правиш нов билд, използвайки измерените примерно калибрационни офсети. Билднатият нов фирмуер няма нищо от калиброващия код, а понеже билд тайм си имал офсетите направо си ги включил в кода си като константи. - новия фирмуер наречен release_SN123457.bin го качваш на сървъра (svn, git, ...) и го програмираш с пиккит-а на устройство SN1234567, викаш еконт и устройството заминава - ако те извикат за сервиз си флашваш пак общия калибрационен фирмуер и повтарят процедурата, ако просто подменяш ("бате, тука го заляхме с нафта малко и то ...") им пращаш нова бройка Така имаш още един бонус - не могат да ти краднат разработката понеже на нов хардуер няма да им паснат офсетите примерно, или каквото там помниш. Още един бонус - калибрацията и работния код са "разпределени" равномерно в два отделни варианта, т.е. фирмуера, и имаш место за повече код вътре.
|
Пон Яну 28, 2019 9:17 pm |
|
|
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|