Hejka!
Nie do końca wiedziałem, gdzie dać mój post, więc mam nadzieję, że to będzie dobre forum. :)
Do rzeczy.
Wyobraźcie sobie, że macie zadanie zaprogramować układ transmisji z użyciem pola magnetycznego i częstotliwością 125 kHz (coś jak rfid).
I teraz macie bardzo prosty, wręcz 8-bitowy mikroprocesor. Macie zaprojektować ramkę takiej transmisji, tak by szybko ją nadawać/odbierać i nie obciążać za bardzo mikrokontrolera.
Jak byście w tej ramce zapisali adres urządzenia (który normalnie jest 4 bajtowy). Czy w transmisji dalibyście np.
Czy raczej szlibyście w jakieś rozwiązania w stylu nie używać w ogóle klasycznego crc, a zrobić jakąś kontrolę prawidłowości transmisji danych w stylu id1 not(id1) albo coś podobnego. Mnie się wydaje, że w tak prostym układzie to raczej operacje bitowe niż crc? Wtedy ramka miałaby strukturę:
I właśnie, czy raczej szlibyście w kolejność:
Czy może bardziej w:
Mnie się ta pierwsza wydaje lepszym rozwiązaniem. Łatwiej kontrolować przy odbiorze czy przy nadawaniu. Biorę id1, sprawdzam czy kolejny bajt to not (id1) i dopiero jeśli jest OK wrzucam do jakiegoś rejestru/bufora. A jak nie jest, to robię break na reszcie transmisji, bo już wiem, że jest źle.
A może znacie jakiś gotowy system transmisji, który w jakiś ciekawy sposób to rozwiązał i jak? Może jeszcze coś innego wchodzi w grę? Inny sposób zapisu tego id w ramce? Chętnie bym poznał jakieś gotowe rozwiązania i zobaczył, jak taki problem rozwiązali inni.
Dodam urządzenie bateryjne, więc ma być oszczędne (takie "skromniutkie" rozwiązanie).
Nie do końca wiedziałem, gdzie dać mój post, więc mam nadzieję, że to będzie dobre forum. :)
Do rzeczy.
Wyobraźcie sobie, że macie zadanie zaprogramować układ transmisji z użyciem pola magnetycznego i częstotliwością 125 kHz (coś jak rfid).
I teraz macie bardzo prosty, wręcz 8-bitowy mikroprocesor. Macie zaprojektować ramkę takiej transmisji, tak by szybko ją nadawać/odbierać i nie obciążać za bardzo mikrokontrolera.
Jak byście w tej ramce zapisali adres urządzenia (który normalnie jest 4 bajtowy). Czy w transmisji dalibyście np.
id1 id2 id3 id4 dane crcCzy raczej szlibyście w jakieś rozwiązania w stylu nie używać w ogóle klasycznego crc, a zrobić jakąś kontrolę prawidłowości transmisji danych w stylu id1 not(id1) albo coś podobnego. Mnie się wydaje, że w tak prostym układzie to raczej operacje bitowe niż crc? Wtedy ramka miałaby strukturę:
id1 not(id1) id2 not(id2) id3 not(id3) id4 not(id4) daneI właśnie, czy raczej szlibyście w kolejność:
id1 not(id1) id2 not(id2) itd.Czy może bardziej w:
id1 id2 id3 id4 not(id1) not(id2) itd.Mnie się ta pierwsza wydaje lepszym rozwiązaniem. Łatwiej kontrolować przy odbiorze czy przy nadawaniu. Biorę id1, sprawdzam czy kolejny bajt to not (id1) i dopiero jeśli jest OK wrzucam do jakiegoś rejestru/bufora. A jak nie jest, to robię break na reszcie transmisji, bo już wiem, że jest źle.
A może znacie jakiś gotowy system transmisji, który w jakiś ciekawy sposób to rozwiązał i jak? Może jeszcze coś innego wchodzi w grę? Inny sposób zapisu tego id w ramce? Chętnie bym poznał jakieś gotowe rozwiązania i zobaczył, jak taki problem rozwiązali inni.
Dodam urządzenie bateryjne, więc ma być oszczędne (takie "skromniutkie" rozwiązanie).