Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[AVR][Bascom AVR] Transmisja znakow w tym liter po RC5

07 Maj 2011 08:58 2143 2
  • Poziom 36  
    Chciałbym uruchomić transmisję pomiędzy dwoma mikrokontrolerami po RC5 (rc5send). W RC5 przesyłane są dwa bajty: adres i komenda.

    Ponieważ chcę przesyłać nie tylko liczby (0...255) ale również litery alfabetu (a...z) to chyba zrobię to w ten sposób, że po stronie nadawczej:

    - gdy będę chciał wysłać liczbę wyślę adres 0 oraz komendę z przedziału 0....255
    - gdy będę chciał wysłać literę wyślę adres 1 oraz komendę z przedziału 0....23

    a po stronie odbiorczej zinterpretuję to w analogiczny sposób.

    Zastanawiam się na ile wydajna będzie to transmisja, jakie prędkości uda się w ten sposób osiągnąć. Oraz czy taki tor będzie w stanie zastąpić odcinki fizycznego przewodu np. RS232.
  • Poziom 35  
    Będzie w stanie zastąpić.
    Jednego nie rozumiem - przecież litery to też liczby...Cieżko po prostu wysyłać ascii? Jest lepiej - zauważ, że w rc5 masz bit, ktory xoruje się dla każdej "nowej" ramki, a nie xoruje sie dla ramek powtórzonych. Dzięki temu możesz odbiornikowi jasno wskazać kiedy transmisja się zaczyna.
    Oczywiście musisz opracować protokół, który będzie wysyłał ramki...

    Jedyną wadą rc5 jest brak crc, ale stosując własny protokół wyższego poziomu (nad samym rc5) możesz ramkom doklejać na koniec CRC.

    idea jest taka, aby korzystając z "MAC" (duże słowo) rc5 popychać regularne pakiety danych do odbiornika, caly czas pod ten sam adres.
    Protokół wyższego poziomu parsowałby już zdefragmentowany payload ramki, i sam rozpoznawał ktore bajty traktować jako liczby a ktore jako znak.
    Po stronie nadajnika, konkretny payload musiałby zostać pofragmentowany na 6bitowe kawałki i popychał zgodnie z protokołem rc5 do odbiornika, obowiązkowo doklejając nagłówek i sumę kontrolną do payloadu.

    Imho nie ma sensu wykorzystywać dwóch różnych adresów, a co najwyżej przywłaszczyć sobie parę bitów adresu celem zwiekszenia ilości bitów "command" (więcej bitów w pakiecie == mniej pakietów do wysłania dla danego payloadu, lecz == większa poddatność na przekłamanie/zgubienie bitów)
  • Moderator na urlopie...
    można wykorzystać jeszcze bit ze standardu rc5 extended (masz wtedy 128 kodów pod jednym adresem zamiast 64 w "zwykłym" rc5)