protokol transmisji PowerLine - problemy projektowe (dlugie)
Masz problem? Zapytaj na forum elektroda.pl
From: Jado <KILLSPAMjado_at_nospam_chello.pl>
Subject: protokol transmisji PowerLine - problemy projektowe (dlugie)
Date: Sat, 01 Apr 2006 00:18:28 +0200
Witam,
Zaczalem wreszcie finalne prace nad w/w protokolem, ale w trakcie tworzenia
po przeanalizowaniu sposobu dzialania niektorych procedur, odkrylem ze
niestety pewne moje zalozenia chyba nie dadza sie zrealizowac w praktyce.
No i wlasnie pytanie - czy rzeczywiscie jest to nierozwiazywalne - moze ktos
ma jakis pomysl?
Po krotce w czym rzecz.
Otoz zalozylem sobie, ze protokol transmisji przez siec 220V bedzie typu
CSMA/CD. Opieralem sie tu na protokole LonTalk jesli chodzi o samo
CSMA/CD.
Zalozylem sobie jednak jedna rzecz dodatkowa - a mianowicie sposob obslugi
powtorzen, ktore zdarzaja sie gdy nastapi jakies zaklocenie.
Przesyanie danych wyglada nastepujaco:
Nadawca przesyla pakiet, odbiorca po poprawnym odebraniu pakietu odsyla
potwierdzenie.
Jezeli nastapi jakies zaklocenie - nadawca nie dostaje potwierdzenia lub
jest bledne, wiec ponawia przesylanie - az do 3 prob.
Otorz moze sie zdarzyc nastepujaca sytuacja: po poprawnym przeslaniu
pakietu, odbiorca wysyla potwierdzenie, ktore jednak z powodu zaklocenia
nie jest poprawnie odebrane przez nadawce.
Nadawca wiec ponawia wysylanie.
Jest jednak jedno male ale - odbiorca, z ktorego punktu widzenia pakiet
zostal poprawnie przeslany (odebrany), wykonuje rozkaz jaki byl mu
przeslany.
Przy ponownym przeslaniu pakietu (2 proba) tez pakiet zostaje odebrany
dobrze i wowczas odbiorca wykonuje jeszcze raz ten sam rozkaz - mimo, ze
nadawca tak naprawde wysylal tylko jeden pakiet, tyle ze z powodu bledu
transmisji powtorzony.
Oczywiscie - mozna zalozyc , ze dwukrotne wykonanie tego samego rozkazu nie
przeszkadza. Czasami sa jednak rozkazy typu "toggle", ktorych dzialanie
polega na "zmien stan na przeciwny". Wowczas podwojne wykonanie rozkazu
sprawi, ze jeden rozkaz wlaczy urzadzenie, a drugi je wylaczy.
Aby temu zaradzic umyslilem sobie tzw. serializacje czyli numerowanie
kolejnych takich samych pakietow.
I tak pakiet pierwszy ma nr 0, a kolejne o numer wyzej.
Odbiornik ma zatem mozliwosc stwierdzenia, czy dany pakiet jest tym
pierwotnym czy tez kolejna powtorka - zatem jesli wykonal rozkaz po
pierwszym pakiecie, ale nadawca nie uslyszal odpowiedzi i wyslal drugi raz
ten sam pakiet, to za tym drugim razem powinien wyslac potwierdzenie, ale
rozkazu nie wykonywac.
Udalo mi sie opracowac sposob jak to zrobic, ale niestety to dziala tylko w
obrebie jednego pakietu i kolejnych po nim powtorek.
Problem jest z odroznieniem powtorki od kolejnego tzw. nowego pakietu.
Nie wiadomo jak stwierdzic ze nadawca skonczyl juz nadawac powtorki, a
zaczal nowy pakiet - zwlaszcza, ze tych powtorek moze byc rozna ilosc - raz
wcale, raz 1 raz 2... a dodatkowo pakiety moga byc roznych dlugosci od 1 do
64 bitow danych + bajt kontrolny, adresy i CRC.
No i ugrzazlem - wyglada na to , ze trzeba by zrezygnowac z serializacji i
pozwolic na sytuacje gdy czasami bedzie sie kilkakrotnie wykonywal ten sam
rozkaz - tylko nie dopuscic rozkazow typu toggle.
Jednak to powazne ograniczenie, bo nie mozna sobie wyobrazic wowczas rozkazu
typu "zwieksz glosnosc o 5" - bo po podwojnym wykonaniu glosnosc zwiekszy
sie o 10. Musialby byc zastapiony rozkazem np "ustaw glosnosc na 50".
Moze ktos ma pomysl jak sobie z tym poradzic?
Nie wspominam tutaj o calej masie rzeczy typu wykrywanie nosnej, bledow
transmisji i roznych zwlok typu time-out, ale to juz inny temat.
--
Pozdrawiam
Jado
>> Otwarty Projekt Automatyki Domowej [HA] http://zegaruz.republika.pl <<
From: "Exploris" <exploris_at_nospam_***NO SPAM***autograf.pl>
Subject: Re: protokol transmisji PowerLine - problemy projektowe (dlugie)
Date: Sat, 1 Apr 2006 00:57:07 +0200
Witaj !
Pozwililem sobie tu wyciac Twój post ...
nie odpowiem Ci tez na Twój problem ...
podzile sie ... chyba trzen\ba nazwac to wspomnieniami ...
Cóz posiadana przeze mnie wiedza nie jest juz byc mopze tak aktualna jak
byla wtedy kiedy ja zglebialem ...
W 1997 roku napisalem prace pt. "Systemy autonomicznego sterowania
instalacjami elektrycznymi", W praktyce to nie byly tylko elektryczne ale
tak ja u Ciebie urzadzenia autoimatyki budynku,. Bralem udzial w
konferencji - chyba pierwszej z tej serii "Inteligentny budynek". Niestety w
ty czasi EIB istnial w swojej podstawowej wersji .
W sowjej poracy dokonalem analizy stosowanych na swiecie rozwiazan do
zauomatyzowanego zarzadzania praca instalacji, aposrednio wszystkich
urzadzen jakie moga byc zainstalowane w budynkach mieszkalnych. Z racji
rangi jaka wtedy ta praca posiadala, analiza byla jednoczesnie z jednej
strony wnikliwa, ale z drugiej strony ograniczona - bo bez podawania
konkretnych rzowiazan.
Sposród wielu systemów najlepszym, ale i najdrozszym rozwiazaniem byl dla
mnie LonWorks Echelona.
Przeczytalem Twój post i przelecialem twoje www i zastanawiam sie dlaczego
wywazasz otwarte juz dzrzwi ???
Przeciez istnieja protokoly madrzejsze od CSMA/CD w których Twoje problemy
zostaly rozwiazane?!
czyzbys chcial stworzyc nowy tanszy system ?
Do którego elementy wykonawcze, jak i czujniki beda tanie i ... sam nie wiem
?
Wiekszosc problemów - nie tylko obecne opisane przez Ciebie - rozwiazuje np.
protokól LonTalk + cala komunikacja poprzez Powerline ...
oczywiscie nie tylko ...
mam zatem pytanie ... dlaczego stworzyles ZEGARUZA ? jesli mozna bez
problemu kupic elementy pracujace pod LonWorks ???
Nie miej do mnie urazy ... juz nie siedze w tym temacie ... ale odezwaly sie
we mnie stare instynkjty ...
Pozdrawiam Exploris.
From: Jado <KILLSPAMjado_at_nospam_chello.pl>
Subject: Re: protokol transmisji PowerLine - problemy projektowe (dlugie)
Date: Sat, 01 Apr 2006 09:30:48 +0200
Witaj,
Ja swoje pierwsze zalozenia rowniez zaczynalem czynic w 1997 roku i od
tamtej pory system powoli powstaje - metoda nakladania kolejnych warstw.
Byc moze lepiej byloby zaprojektowac od razu wszystko, ale dla pojedynczego
czlowieka to zbyt duza praca.
Jak napisalem wyzej korzystalem wlasnie z zalozen protokolu LonTalk.
Sposród wielu systemów najlepszym, ale i najdrozszym rozwiazaniem byl dla
mnie LonWorks Echelona.
No wlasnie - najdrozszym. Moze teraz NeruonChipy mozna dostac bez problemu
(aczkolwiek nie interesowalem sie tym), ale gdy zaczynalem projekt to byla
czysta fantazja :-)
Przeczytalem Twój post i przelecialem twoje www i zastanawiam sie dlaczego
wywazasz otwarte juz dzrzwi ???
Przeciez istnieja protokoly madrzejsze od CSMA/CD w których Twoje problemy
zostaly rozwiazane?!
czyzbys chcial stworzyc nowy tanszy system ?
Do którego elementy wykonawcze, jak i czujniki beda tanie i ... sam nie
wiem ?
Chetnie zapoznam sie z jakimis materialami na temat innych protokolow
transmisji. Byle sie daly zaimplementowac na np. malym 89C8051 czy PIC'u
czy innym AVR.
A wracajac do tego, ze sa gotowe rozwiazania - tak. Sa nawet gotowe cale
systemy HA - do kupienia od reki.
Ale nie chodzilo mi tym poscie o dyskusje nad sensownoscia mojego projektu -
te decyzje zapadly juz kilka lat temu i nie zamierzam sie z nich wycofywac.
Projekt przy okazji doskonale rozwija moje umiejetnosci - i jest typu Open
Source :-)
--
Pozdrawiam
Jado
>> Otwarty Projekt Automatyki Domowej [HA] http://zegaruz.republika.pl <<
From: "Pawel Cern" <name_at_nospam_surname.pl>
Subject: Re: protokol transmisji PowerLine - problemy projektowe (dlugie)
Date: Sat, 1 Apr 2006 08:54:03 +0200
zostal poprawnie przeslany (odebrany), wykonuje rozkaz jaki byl mu
przeslany.
Mozesz w paczce danych przesylac dodatkowy nr porzadkowy ramki. Odbiorca
moze pamietac ostatni nr paczki i jesli nowy pakiet ma ten sam numer -
potwierdzenie jest wysylane ale dane nie sa przetwarzane.
From: Jado <KILLSPAMjado_at_nospam_chello.pl>
Subject: Re: protokol transmisji PowerLine - problemy projektowe (dlugie)
Date: Sat, 01 Apr 2006 10:42:14 +0200
Pawel Cern wrote:
zostal poprawnie przeslany (odebrany), wykonuje rozkaz jaki byl mu
przeslany.
Mozesz w paczce danych przesylac dodatkowy nr porzadkowy ramki. Odbiorca
moze pamietac ostatni nr paczki i jesli nowy pakiet ma ten sam numer -
potwierdzenie jest wysylane ale dane nie sa przetwarzane.
To jest jakis pomysl. Wymaga jednak tego, zeby wszystkie moduly w sieci
sledzily odbywajaca sie transmisje i analizowaly numery wysylanych
pakietow. Tak zeby numer pakietu nie powtarzal sie - mimo multimasteringu.
Slabym punktem jest tu nastepujace zdarzenie: Co bedzie, gdy nasluchujace
urzadzenie wskutek jakiegos zaklocenia przepusci jakis pakiet.
Wowczas moze wyslac ten sam numer pakietu co byl poprzednio (wysylany przez
jakies inne urzadzenie).
Pamietajmy, ze dla nadsluchujacych urzadzen nie bedzie powtorzen w wyniku
blednego odbioru :-)
No, ale to juz jakis pomysl - moze da sie go udoskonalic.
Ja w swoich przemyslaniach probowalem zastosowac metode time-out - dla
ustalenia konca pakietu, ale wskutek roznej ilosci powtorzen i zmiennej
dlugosci pakietu jest to trudne do realizacji i na dodatek zmniejszaloby
przepustowosc transmisji (zakladajac ze trzeba by dac najwiekszy mozliwy
czas - czyli 3 powtorki + najdluzszy 64bitowy pakiet)
--
Pozdrawiam
Jado
>> Otwarty Projekt Automatyki Domowej [HA] http://zegaruz.republika.pl <<
Date: Sat, 01 Apr 2006 11:22:20 +0200
From: =?UTF-8?B?UGF3ZcWCIEhhZGFt?= <hdmp_at_nospam_spam.go2.pl>
Subject: Re: protokol transmisji PowerLine - problemy projektowe (dlugie)
Jado napisaĹ(a):
Pawel Cern wrote:
zostal poprawnie przeslany (odebrany), wykonuje rozkaz jaki byl mu
przeslany.
Mozesz w paczce danych przesylac dodatkowy nr porzadkowy ramki. Odbiorca
moze pamietac ostatni nr paczki i jesli nowy pakiet ma ten sam numer -
potwierdzenie jest wysylane ale dane nie sa przetwarzane.
To jest jakis pomysl. Wymaga jednak tego, zeby wszystkie moduly w sieci
sledzily odbywajaca sie transmisje i analizowaly numery wysylanych
pakietow. Tak zeby numer pakietu nie powtarzal sie - mimo multimasteringu.
A moĹźe niech siÄ powtarza, a do rozpoznania powtĂłrek wykorzystaÄ nr
pakietu i nr nadawcy?
Pozdrawiam,
PH.
From: Jado <KILLSPAMjado_at_nospam_chello.pl>
Subject: Re: protokol transmisji PowerLine - problemy projektowe (dlugie)
Date: Sat, 01 Apr 2006 12:25:15 +0200
Paweł Hadam wrote:
Jado napisał(a):
Pawel Cern wrote:
zostal poprawnie przeslany (odebrany), wykonuje rozkaz jaki byl mu
przeslany.
Mozesz w paczce danych przesylac dodatkowy nr porzadkowy ramki. Odbiorca
moze pamietac ostatni nr paczki i jesli nowy pakiet ma ten sam numer -
potwierdzenie jest wysylane ale dane nie sa przetwarzane.
To jest jakis pomysl. Wymaga jednak tego, zeby wszystkie moduly w sieci
sledzily odbywajaca sie transmisje i analizowaly numery wysylanych
pakietow. Tak zeby numer pakietu nie powtarzal sie - mimo
multimasteringu.
A może niech się powtarza, a do rozpoznania powtórek wykorzystać nr
pakietu i nr nadawcy?
Pozdrawiam,
PH.
No i to jest rozwiazanie! :-)
Wiedzialem, ze cos sie razem wspolnie wymysli - ja juz w jakas pulapke
myslowa wpadlem.
Reasumujac - zmiana adresu nadawcy implikuje automatycznie, ze mamy nowy
pakiet (odpada problem z nasluchem), numer pakietu pozwala odroznic nowy
pakiet od powtorek - w obrebie tego samego nadawcy, a numer powtorki
pozwala pozbyc sie podwojnego (lub wiecej) wykonania tego samego rozkazu.
Dobrze, ze w bajcie kontrolnym jest jeszcze kilka wolnych bitow - akurat sie
przydadza :-)
Wlasciwie to chyba wystarczy tylko jeden bit - ustawiany raz na zero, raz na
jeden przy kazdym nowym pakiecie.
Ok - teraz to tylko zaimplementowac :-)
--
Pozdrawiam
Jado
>> Otwarty Projekt Automatyki Domowej [HA] http://zegaruz.republika.pl <<
From: "Pawel Cern" <name_at_nospam_surname.pl>
Subject: Re: protokol transmisji PowerLine - problemy projektowe (dlugie)
Date: Sat, 1 Apr 2006 11:38:28 +0200
To jest jakis pomysl. Wymaga jednak tego, zeby wszystkie moduly w sieci
sledzily odbywajaca sie transmisje i analizowaly numery wysylanych
pakietow. Tak zeby numer pakietu nie powtarzal sie - mimo
multimasteringu.
Slabym punktem jest tu nastepujace zdarzenie: Co bedzie, gdy nasluchujace
urzadzenie wskutek jakiegos zaklocenia przepusci jakis pakiet.
Wowczas moze wyslac ten sam numer pakietu co byl poprzednio (wysylany
przez...
Ale adres sprzetowy nadawcy bedzie inny. Moznaby pamietac nie tylko numer
ostatniego pakietu ale i adres nadawcy.
From: "Pawel Cern" <name_at_nospam_surname.pl>
Subject: Re: protokol transmisji PowerLine - problemy projektowe (dlugie)
Date: Sat, 1 Apr 2006 11:43:16 +0200
Moze taka wskazówka, jesli ruch bedzie dosc intensywny, jesli wszyscy beda
mieli równoprawny dostep do medium to beda czeste kolizje. Moze by wyznaczyc
jeden modul "master" który na zasadzie podobnej do USB wysylalby token do
kazdego klienta. Bylby problem z wprowadzaniem nowych klientów do sieci, ale
moznaby to robic recznie, przez dopisanie np. adresu sprzetowego nadawcy do
bazy mastera.