Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 9 lis 2024, o 18:20


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
Autor Wiadomość
PostNapisane: 14 wrz 2012, o 13:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Definicja Crc
Inny niż suma kontrolna sposób detekcji błędów, stosowany głównie podczas transmisji danych przez modemy, a także w sieciach LAN. CRC pobiera pewną porcję danych przeznaczonych do wysłania, a następnie używa specjalnego algorytmu matematycznego do wyliczenia wartości CRC dla nich. Urządzenie odbiorcze (np. inny modem) otrzymuje zarówno te dane, jak i wyliczoną dla nich wartość CRC. Dzięki temu jest w stanie sprawdzić, czy odebrane dane są poprawne. Istnieją dwa różne algorytmy CRC - 16-bitowy i 32-bitowy. Ten pierwszy, oznaczany CRC-16, stosuje się między innymi w komunikacji modemowej i zapewnia on ok. 99,99 procent wykrywalności błędów. CRC-32 natomiast znalazł zastosowanie przy większych szybkościach transmisji, np. sieciach Ethernet. Algorytm CRC jest także stosowany przez programy kompresujące. Ang. Cyclic Redundancy Check - cykliczna kontrola nadmiarowa

:) to tak gwoli danych definicyjnych :)

a tak logicznie to masz na wiki http://pl.wikipedia.org/wiki/Cykliczny_kod_nadmiarowy
jest to bardzo prosty mechanizm :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 wrz 2012, o 20:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Każdy z układów 1 wire ma swój unikalny 64 bitowy numer zapisany w pamięci ROM za pomocą którego jest identyfikowany na magistrali 1-Wire. Najmłodsze 8 bitów numeru stanowi kod rodziny - dla układu DS18B20 wynosi on 28h. Następne 48 bitów jest unikalnym kodem układu, a ostatnie najstarsze 8 bitów stanowi sumę kontrolną CRC która jest wyliczona na podstawie pierwszych 56 bitów,

tak to wygląda w praktyce :

Obrazek

zerknij na schemat pamięci DS18B20:

Obrazek

ów 9 bajt (nr8) jak widzisz to CRC jest on odczytywany zawsze i stanowi nadmiarowy kod kontroli poprawności dla pierwszych 8 bajtów.

czy teraz jest to jasne ??

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2012, o 18:25 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Lepiej posługiwać się graficzną reprezentacją wielomianu.
Obrazek
Opis jest tutaj.
http://www.maximintegrated.com/app-note ... .mvp/id/27
Nigdy nie zgłębiałem tego tematu, ale feedback to sprzężenie zwrotne. crc jest w blokach STAGE. Sygnał z ostatniej bramki wchodzi z lewej strony i przemieszcza się w prawo od x0 do x8. Zatem 8th STAGE to najmłodszy bit crc.
Kolejno w programie masz:
1. Operator ^ i na schemacie też masz bramkę EXOR, która wykonuje operacje na bajcie data i crc, ale przez &0x01 brany jest pod uwagę najmłodszy bit[0].
2. W zależności od wyniku powyższej operacji wykonujesz operację XOR pomiędzy crc i CRC8POLY=0x18=0b00011000, która zmienia na przeciwne bity 3(5th STAGE) i 4(4th STAGE) crc, a pozostałe pozostawia bez zmian. Na schemacie też wyjście jest dołączone do jednych z wejść 2 pozostałych bramek EXOR. Jak widać ta lewa bramka operuje na 4th STAGE a prawa na 5th STAGE.
3. Przesunięcie w prawo >> zgodnie z obiegiem na schemacie (i wyzerowanie najstarszego bitu)
4. Jak feedback, czyli sprzężenie zwrotne jest równe 1 to ustaw najstarszy bit crc. Też zgodnie ze schematem, bo wyjście bramki dolaczone jest również do wejścia x0 bloku 1st STAGE.
5. Przesunięcie data w prawo, czyli w następnym kroku będzie brany pod uwagę kolejny bit, który po operacji przesunięcia w prawo >> jest pozycji 0.

_________________
Dragonus Cracovus: Biomagia



Ostatnio edytowano 15 wrz 2012, o 20:17 przez Krauser, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2012, o 18:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

popatrz też na to :
powinno ci wyjaśnić jak liczyć sumę kontrolna CRC

Obrazek

wszystko ładnie znajdziesz w nocie :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 wrz 2012, o 19:12 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

|7|6|5|4|3|2|1|0| CRC
|7|6|5|4|3|2|1|0| data (może mieć więcej bitów np.56)
|0|0|0|1|1|0|0|0| 0x18

Najprostsze wytłumaczenie:
- jak najmłodsze bity CRC i DATA są różne to zamień CRC[4] i CRC[3] na przeciwne i wtedy FEEDBACK = 1.
- wykonaj przesunięcie w prawo CRC i data
- najstarszy bit CRC, czyli CRC[7] = FEEDBACK

Nie należy wiązać X z wartościami bitów CRC tak dosłownie, ale możesz sobie przyjąć, że:
CRC[7]=X0 ... CRC[0]=X7
ale równocześnie
data[0] >>> INPUT DATA
CRC[0] >>> X8
FEEDBACK >>> X0

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 wrz 2012, o 12:01 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

Antystatyczny, a czytałeś artykuły z ep które na forum zapodał Ci Malutki?
Tam szczególnie w pierwszym artykule jest to dobrze wytłumaczone.
Zrób ćwiczenia z liczenia i powinno się nieco rozjaśnić...

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 wrz 2012, o 08:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lut 2012
Posty: 598
Lokalizacja: Warszawa
Pomógł: 13

Na chat-cie jest, ale specjalnie dla ciebie ..........

Uhhh znalazłem było na 31 stronie archiwum :roll:

Malutki_27 - Pt, 14 wrz 2012, 12:01

@Anty.... coś do poczytania tutaj, tutaj,tutaj i tutaj



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 wrz 2012, o 09:52 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

Antystatyczny napisał(a):
MirkoT, chyba musiało mi coś umknąć, bo nie przypominam sobie, by w tym wątku pisał Malutki...

no w wątku nie, ale... przecież rozmawialiście ze sobą na czacie... stąd wziął mi się taki skrót myślowy.
Zresztą Malutki jest niezawodny i już (teraz w wątku) podesłał te linki jeszcze raz ;)

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 wrz 2012, o 20:23 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 14 lut 2012
Posty: 598
Lokalizacja: Warszawa
Pomógł: 13

To jak zrozumiesz, bądź tak miły i wytłumacz reszcie ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 4 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO