 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
egomez Član


Pridružen-a: Sob 03 Apr 2004 18:49 Prispevkov: 517 Aktiv.: 2.18 Kraj: Ljubljana/Sežana
|
Objavljeno: Sob Maj 20, 2006 3:32 pm Naslov sporočila: Test pravilnosti prenosa podatkov med uC in PC-jem po RS232 |
|
|
Zanima me, kako testirate pravilnost prenosa podatkov med mikrokontrolerjem in računalnikom. Ena od variant je seveda da pošiljam podatke iz računalnika in berem, kaj sem dobil nazaj. Ali pa da pošiljam v zanki neke podatke in jih preverjam na računalniku. Vendar če bi hotel bolj natančno določiti, vsake koliko se mi pojavi napaka, bi bilo to zelo zamudno delati "ročno".
Ali ima kdo kakšen programček, ki bi sam pošiljal podatke in jih preverjal, potem pa bi mi povedal, koliko napak je prišlo v izbranem času?
PS: Predvsem mislim na povezave brez preverjanja crc-ja. |
|
Nazaj na vrh |
|
 |
Djurodrljaca Član

Pridružen-a: Pet 19 Dec 2003 16:31 Prispevkov: 393 Aktiv.: 1.66 Kraj: Mengeš
|
Objavljeno: Sob Maj 20, 2006 4:06 pm Naslov sporočila: |
|
|
Najbolj preprost način je da poslane podatke seštevaš v 8-bitno spremenljivko in jo na koncu paketa pošlješ ter na drugi strani iz istih podatkov izračunaš to število in potem ti dve števili primerjaš. |
|
Nazaj na vrh |
|
 |
snow Član


Pridružen-a: Tor 27 Dec 2005 14:02 Prispevkov: 341 Aktiv.: 1.44 Kraj: Ljubljana || Velenje
|
Objavljeno: Ned Maj 21, 2006 3:54 pm Naslov sporočila: |
|
|
Ali pa če preprosto pošlješ iz mikrokontrolerja vsak paket dvakrat zapored in potem na računalniku primerjaš enakost teh dveh paketkov. |
|
Nazaj na vrh |
|
 |
VolkD Član


 
Pridružen-a: Pet 24 Sep 2004 21:58 Prispevkov: 14228 Aktiv.: 60.07 Kraj: Divača (Kačiče)
|
Objavljeno: Ned Maj 21, 2006 9:15 pm Naslov sporočila: |
|
|
snow, ni dobro ! Če je napaka sistematska, je velika verjetnost, da je taka, da bosta oba paketka enako pokvarjena. _________________ Dokler bodo ljudje mislili, da živali ne čutijo, bodo živali čutile, da ljudje ne mislijo. |
|
Nazaj na vrh |
|
 |
NeoTO Član


Pridružen-a: Pon 28 Mar 2005 19:19 Prispevkov: 2752 Aktiv.: 11.62 Kraj: Trzic
|
Objavljeno: Ned Maj 21, 2006 9:24 pm Naslov sporočila: |
|
|
Potem pa naj enostavno pošlje invertiran paketek... |
|
Nazaj na vrh |
|
 |
snow Član


Pridružen-a: Tor 27 Dec 2005 14:02 Prispevkov: 341 Aktiv.: 1.44 Kraj: Ljubljana || Velenje
|
Objavljeno: Ned Maj 21, 2006 10:23 pm Naslov sporočila: |
|
|
VolkD imaš prav ja.
Sem študiral bolj v smeri, da se napaka pojavi vsake toliko neodvisno od podatka.
No drugače pa lahko probaš poslat na računalnik neko znano zaporedje, recimo števila od 1 do 255. Ali pa pošlješ 10000x 0b10101010. Ali pa kakšno bolj kompleksno zaporedje, ki ga na obeh straneh izračunaš s polinomom oziroma uporabiš kakšen pseudorandom generator.
Gre za testiranje povezave, vedno pa je dobro da, ko pošiljaš podatek, da na nek način preverjaš pravilnost. Lahko za parity bit, za večkratno pošiljanje podatka, crc. No vsekakor pa tudi na sprejemni strani kontroliraš vrednosti, če veš kakšne bi morale biti (naprimer če veš, da boš prejemal le črke, potem ti vrednost 0x02 pomeni neko napako). |
|
Nazaj na vrh |
|
 |
vilko Član



Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3358 Aktiv.: 14.18 Kraj: Dragomer
|
Objavljeno: Pon Maj 22, 2006 6:48 am Naslov sporočila: Ko smo že pri tem, |
|
|
Ko smo že pri tem, naj navežem, nekaj o CRC8 algoritmu, kar mi ni všeč, a ga vseeno uporabljam:
1. CRC8 algoritem daje kontrolno vsebino veliko en bajt, se pravi da ima vsega 256 konbinacij, kar statistično pomeni, da od vsakih 256 napačnih telegramov, prizna enega za pravilnega.
2. Če je napaka sistematična in sprejema telegram, kjer so vsi bajti 0, je tudi kontrolni bajt 0, kar telegram označi kot pravilen.
Če kdo potrebuje, mu lahko kodo v bascomu za izračun CRC8 kontrolnega bajta dam. _________________ Nihče ni za vojno in vsi so za mir,
vsi so za bratstvo, nihče za prepir.
Od same ljubezni vsak čas na granatah
bo vtisnjeno geslo: "Darilo za brata"
Janez Menart |
|
Nazaj na vrh |
|
 |
snow Član


Pridružen-a: Tor 27 Dec 2005 14:02 Prispevkov: 341 Aktiv.: 1.44 Kraj: Ljubljana || Velenje
|
Objavljeno: Pon Maj 22, 2006 9:51 am Naslov sporočila: Re: Ko smo že pri tem, |
|
|
vilko je napisal/a: |
1. CRC8 algoritem daje kontrolno vsebino veliko en bajt, se pravi da ima vsega 256 konbinacij, kar statistično pomeni, da od vsakih 256 napačnih telegramov, prizna enega za pravilnega.
|
Ja, če je poslani CRC8 izbran popolnoma naključno, kar bi po moje pomenilo zelo hudo napako.
Če pa se pojavljajo bitne napake, pa je zelo majhna verjetnost, da boš dobil lažen pravilni podatek.
Nadgradnja na CRC16 mogoče?  |
|
Nazaj na vrh |
|
 |
Proteus Član



Pridružen-a: Sre 15 Jun 2005 10:03 Prispevkov: 1943 Aktiv.: 8.20
|
Objavljeno: Pon Maj 22, 2006 3:33 pm Naslov sporočila: |
|
|
Citiram: |
vilko: "kar statistično pomeni, da od vsakih 256 napačnih telegramov, prizna enega za pravilnega" |
To si pa malce poenostavil.
Če pošlješ telegram, ki ima na koncu tudi CRC izračun, potem mora priti do dvojnega naključja v napaki. Ravno prav morajo biti spremenjeni podatki in CRC.
Zelo nenavadno bi bilo, da se kvarijo samo podatki ali samo CRC, potem bi držalo, kar si zapisal. |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 492 dni
Powered by phpBB © 2001, 2005 phpBB Group
|