takze nakonec sem s vasi pomoci prisel na toto...<br>asi vetsina vi, tusi..ale prece jen..<br><br>zprava=ZZZZ (4 byty)<br><br>zabezbeceni<br>-------------------<br>1/ prilepim ke zprave nuly o poctu bitu CRC kodu ktery ma vzniknout (ZZZZ00, 16 bitu (2byty) CRC)
<br>2/ prozenu tuto vzniklou zpravu CRC funkci, ten mi pomoci XORovani vypocte zbytek...(CC, 2 byty)<br>3/ tento zbytek je onen CRC kod, prilepim ho k puvodni zprave (nebo dam misto nul ad1/) (ZZZZCC)<br><br>prenos<br><br>
detekce chyb 2 zpusoby<br>--------------------<br><br>A/ z prijate zpravu nuluji CRC(ZZZZ00), vypoctu CRC a porovnam jednotlive CRC <br> shoda - ok<br><br>B/ pokud prijatou zpravu (ZZZZCC) prozenu tak jak prisla CRC funkci musi mi vzniknout nula
<br> to vychazi z podstaty XORovani...<br> pri vysilani nam pri XORovani vznikl zbytek, ktery jsme ke zprave pridali..ted nam tedy musi vyjit nula<br><br><br>takze takhle nejak by to melo fungovat..a ted to aplikovat :D
<br><br>dekuji Lubos Melichar<br><br><br><br><br><br><div><span class="gmail_quote">On 1/11/07, <b class="gmail_sendername">Jan Waclawek</b> <<a href="mailto:wek@evona.sk">wek@evona.sk</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Tomáą Hamouz wrote:<br>> Neprohlíľel jsem proč je některý algoritmus "nekorektní", ale z<br>> definice CRC vyplývá ľe správná hodnota můľe být jen jedna.<br>> Rozdíl můľe být jak danou hodnotu vypočítám.
<br>><br>> Pokud počítám CRC "z definice", tzn. po jednom bitu, je nutné pouľívat<br>> roząíření zprávy o patřičný počet nul, podle délky generačního<br>> polynomu.<br><br>No praveze to rozsirenie nie je nutne. Je to zvlastne ale je to tak.
<br>Dostane sa tym ten "nekorektny" algorimus, ale v skutocnosti ma presne<br>tu istu silu odhalit prenosove chyby ako ten "korektny"; navyse sa tym<br>usetri to priliepanie nul - to usetrenie nie je zaujimave ani tak kvoli
<br>tym par krokom naviac, ale kvoli tomu, ze po "normalnych" bytoch spravy<br>by sme museli zavolat CRC este 2x s nulovym vstupom, je to proste take<br>algoritmicky nepekne, nemat aktualne CRC hned po prijati/vyslani byte.
<br><br>Na druhej strane, nie je problem dosiahnut vysledok "korektneho"<br>algoritmu pouzitim "nekorektneho" - staci zmenit pociatocnu hodnotu, a<br>to na take cislo, ktore dostanete pouzitim "korektneho" algoritmu a
<br>povodnej pociatocnej hodnoty a spravy s nulovou dlzkou. Konkretny<br>priklad, pre "polynom" 1021 a pociatocnu hodnotu FFFF je "korektny"<br>("nondirect") vysledok pre nulovu spravu 1D0F; takze ak chceme pouzit
<br>ten "nekorektny" algoritmus, treba pouzit pociatocnu hodnotu 1D0F<br>(namiesto FFFF) a vysledne CRC bude take iste pre akukolvek spravu.<br><br>wek<br><br>_______________________________________________<br>HW-list mailing list - sponsored by
<a href="http://www.HW.cz">www.HW.cz</a><br><a href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br><a href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a><br></blockquote>
</div><br>