Stránka 2 z 2

Napsal: 03 lis 2017, 17:39
od danhard
Když to uděláš přesný, tak akorát prodloužíš cykl synchronizace.
Pokud nechceš řešit kolize, tak musíš přidělit podle adresy časový okna a pak to podle přesnosti synchronizovat.
Slave pak dělají dvě akce, čekání na start a vyslání odpovědi v časovém okně.
Čekáním na start si může slave nakalibrovat čas, protože ten bude generovat master, ten pojede pořád, neřád :)

Nebo by se to dalo udělat cyklickým adresným startem v pravidelných oknech. Slave by to jeden cyklus poslouchal a nakalibroval si odezvu a kdy má čekat na další výzvu.

Napsal: 05 lis 2017, 20:12
od Victronix
Setkal jsem se s komunikací "Danbus" jako multimaster. Nikdy jsem nic takového neřešil, ale funguje to skvěle. Zařízením se přiřadí pouze adresa. pak si navzájem předávají informace.

Napsal: 05 lis 2017, 22:46
od ZdenekHQ
No, započítejte do vašich myšlenek to, že ten slave 10s spí a pak má cca 20 milisekund na akci. Master nic neřídí, jen čeká na zprávy od slave a potvrzuje.

Napsal: 05 lis 2017, 23:09
od danhard
To je zajisté započítáno :)
Ale pokud bude master jen poslouchat, tak se to rozjede vždy.
Pokud potvrzuje, tak vidí, nakolik je to časový okno rozjetý a řekne slave, že to má korigovat.
Ale na začátku se to stejně nasynchronizovat musí.

Napsal: 06 lis 2017, 01:23
od ZdenekHQ
To je všechno logické až do okamžiku, kdy je master jen "cache" mezi slave a nadřazeným systémem. Sám je to pasivní vůl, co jen přeposílá pakety, přestože je to údajně master...

A tady právě končí všechna legrace se synchronizací...

Napsal: 06 lis 2017, 08:54
od danhard
Tak to nebude fungovat bezkolizně ani s přesným RTC.

Jak je to se ztrátou dat, při kolizi, při rušení ? Proč to master potvrzuje, když to slave nezajímá ? :D

danhard píše:Nebo by se to dalo udělat cyklickým adresným startem v pravidelných oknech. Slave by to jeden cyklus poslouchal a nakalibroval si odezvu a kdy má čekat na další výzvu.

Takto to jde nejlépe, dá se to oživit tak, že slave jede pořád a pak tam teprve přidat sleep mod. Zapínání na poslech se udělá jen s malou rezervou a slave sám pozná, jak je ta rezerva velká a nakalibruje si jí. Když to propásne, třeba díky rušení, tak se chytne na další výzvu. Po tu dobu bude poslouchat. Stejně tak při zapnutí, nebo jiném zhroucení systému.

Jak se to má chovat, když master vypne komunikaci ?
Jak rychle se má ten přenosový systém probudit a nasynchronizovat ?

Kolizní asynchronní systémy se dělají tam, kde není velká četnost přenosů a kde nepožaduješ kontinuitu dat.
Tam jsou čidla jenom slave TX a je naopak důležité, aby se nedostaly do synchronismu :D