Op 12 mei 2009 10:22:23 schreef Bart Hiddink:
Een CRC is alleen leuk als je aan de zender kunt doorgeven dat een pakket niet juist ontvangen is.
In een simplex systeem heb je er dus niet veel aan.
Dat vind ik wat kort door de bocht. Het is vaak enorm waardevol te weten of een ontvangen pakket een fout bevat, of je nu om herhaling kunt vragen of niet.
In zekere zin zijn trouwens alle tot nu toe hier besproken methoden familie van elkaar; het zijn allemaal blokcodes.
Hamming 7/4 heeft piepkleine blokjes en een van te voren bekende CRC (je weet dat het 7/4 moet zijn).
Andere codes gebruiken een langer blok en voegen de CRC zelf toe (eigenlijk komt het erop neer dat de ontvanger over het totale blok, inclusief CRC, weer eenzelfde check ziet).
Net als bij de Hamming code zou je bij langere blokken in principe ook fouten kunnen herstellen. Alleen in de praktijk doe je dat niet omdat het veel te veel rekenwerk zou kosten.
Op 12 mei 2009 10:22:23 schreef Bart Hiddink:
Een CRC is alleen leuk als je aan de zender kunt doorgeven dat een pakket niet juist ontvangen is.
In een simplex systeem heb je er dus niet veel aan.Zoals een aantal van jullie weten ben ik druk doende met een nieuw boek.
Ditmaal geheel over praktische draadloze systemen.
Hierin beschrijf ik ook de FEC zoals de Hamming code.De Hamming (7,4) heb ik uitgebreid naar Hiddink (8,4).
Dat ene bit heb ik gebruikt om het aantal achtereenvolgende '1'-en en '0'-en te verminderen naar 3.
Dat heeft weer voordelen voor de bitsynchronisatie van de draadloze verbinding.Deze code heb ik uitgebreid geprobeerd en werkt uitstekend.
De microcontroller werkt met een LUT omdat je door het extra bit geen gebruik meer kunt maken van de mathematische eigenschappen van de Hamming code.
Stuur mij even een email als je het stukje tekst over de aangepaste Hamming in PDF wilt ontvangen.
Overigens is een compleet protocol veel meer dan alleen de fysieke laag.
Het hele protocol bevat ook zaken als collision detection, adressering, routing, etc.
Ik heb ondertussen je PDF ontvangen van de hammingcode, en het ziet er inderdaad goed uit.
De encoder is zo in elkaar gezet, en door de nibbles te coderen en door te sturen kan je vrij eenvoudig bytes versturen.
Nu wil ik beginnen aan de code voor de decoder, maar ik heb het idee dat het niet handig is om een LUT te maken van 16*16 entry's. Hoe kan ik dit handig aanpakken ? Heb je toevallig tips en/of voorbeelden ?
muddy
Magnetische flux loopt altijd in gesloten paden, elektrische stroom niet per se (volgens de wet van Ampère), want: elektrische lading kan ophopen.
Hier een update van mij: project is inmiddels klaar. We hebben ervoor gekozen om iedere 8 bytes aan data van een CRC te voorzien, en vervolgens de totale data ook nog te CRC-en (als dat een woord is).
Bedankt!
