Vypoet CRC
Tomáš Hamouz
hamouz@alsoft.cz
Úterý Červenec 22 14:07:11 CEST 2008
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áš
Další informace o konferenci Hw-list