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