Re: Vypoet CRC
Va Sm
SpiritusII@seznam.cz
Úterý Červenec 22 14:56:46 CEST 2008
Trochu konkretneji
mam nasledujici zpravu:
0x02,0xa0,0x04,0x21,0x03,0xf3,0x01,0x00,0x02,0x00,0x0c,0x00,0x1f,0xff,0x41,0x00,0x00,0x02,0x00,0x64,0x10
Posledni 2 bajty jsou pridany CRC k puvodni zprave (urcite jsou ok).
Otazka zni, jak se dopocitat k tem poslednim 2B???
K zabezpeceni pouzit polynom 0x8408
inicializece crc 0xFFFF
porovnavaci konstanta 0xF0B8
Pokud vsechny bajty projdou crc algoritmem skutecne vyjde 0xF0B8 - data jsou tedy ok.
Pokud crc algoritmem projdou jen informacni bajty je vysledek oxEF9B, ale to je zvlastni, cekal bbych vysledek 0x6410. Jak se tedy od 0xEF9B dostat k 0x6410?
Omlouvam se za konkretni cisla, ale mozna je takto muj dotaz trochu srozumitelnejsi
V. Smidl
> ------------ Původní zpráva ------------
> Od: Tomáš Hamouz <hamouz@alsoft.cz>
> Předmět: Re: Vypoet CRC
> Datum: 22.7.2008 14:07:50
> ----------------------------------------
> VS> Zdravim,
> VS> resim kontrolni soucty kolem HDLC protokolu. Pokud data v HDLC
> VS> prijimam neni v overeni CRC problem. Vezmu pocatecni plneni
> VS> algoritmu vsechna prichozi data (vcetne crc) timto algoritmem
> VS> prozenu a pokud dostanu "spravny zbytek" data prisla v poradku.
> VS> Problem nastava pri opacnem procesu. Tedy hledam takove bajty,
> VS> ktere kdyz pripojim ke svoji zprave, daji po pruchodu crc
> VS> algoritmem ten "spravny zbytek". Jak na to???
>
> Nerozumím tomu co potřebujete udělat.
> Standardní postup je
> Vysílání:
> - inicializji generátor CRC na počáteční hodnotu
> - spočítám CRC přes všechny _informační_ byty
> - připojím CRC (pokud se jedná o sériový přenos odesílá se CRC v
> opačném pořadí bitů)
>
> Příjem:
> - inicializuji generátor CRC
> - spočítám CRC nad všemi znaky včetně CRC
> - porovnám výsledek s _konstantou_ "správný výsledek"
>
> Alternativní, ale pracnější metoda příjmu:
> - inicializji generátor CRC na počáteční hodnotu
> - spočítám CRC přes všechny _informační_ byty
> - porovnám výsledek s přijatým CRC
> Tato metoda je pracnější, protože musím na začátku znát kolik bytů
> bude zpráva obsahovat a kdy mám skončit s výpočtem CRC při příjmu,
> proto se používá první varianta. Odeslání CRC v obráceném pořadí
> zajišuje že výsledek kontroly všetně CRC dává konstantu.
>
>
> To co popisujete vypadá jako když se snažíte najít kolizi CRC
> algoritmu.
>
> Tomáš
>
>
>
>
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
Další informace o konferenci Hw-list