RF komunikace
Napsal: 06 bře 2009, 17:46
Zdravím všechny Bastlíře, zejména odborníky na rádiovou komunikaci!
Pracuji teď na vývoji dvou zařízení, které spolu komunikuji rádiově.
Potřeboval bych vyřešit algoritmus jejich komunikace.
Nadřízené zařízení (Master=>Mástr) vždy pošle příkaz podřízenému zařízení (Slave=>Slávek), to vykoná nějakou činnost a výsledek své práce pošle zpět nadřízenému zařízení.
Problém je v tom, že nelze zaručit, že pokud jedno zařízení vyšle zprávu druhé ji 100% přijme ve správné podobě nebo že ji přijme vůbec (správnost zprávy je samozřejmě zajištěna kontrolním součtem).
Je proto nutné, aby např. Mástr vysílal příkaz opakovaně, ale jak dlouho? Než tuto zprávu Slávek přijme a pošle mu odpověď. Ale tuto odpověď je opět nutno vysílat opakovaně, než jí přijme Mástr. Ale jak se o příchodu odpovědi k Mástrovi dozví Slávek aby přestal vysílat? Mástr mu opět pošle zprávu? Takhle by se to ale mohlo opakovat do nekonečna což není moc dobré:)
1. přístup:
Mástr začne vysílat opakovaně příkaz Slávkovi a zároveň začne poslouchat odpověď od Slávka. Slávek přijme příkaz, zjistí co má dělat a začne vykonávat danou činnost. Po vykonání činnosti začne Slávek vysílat Mástrovi odpověď a zároveň poslouchá, zda-li mu Mástr neposílá další příkaz. Pokud Mástr zachytí odpověď o vykonání činnosti Slávkem, přestane vysílat příkaz na tuto činnost a může vysílat příkaz k jiné činnosti. Slávek samozřejmě vysílá odpověď dokud mu nepřijde příkaz k jiné činnosti, jedině tak se doví, že Mástr výsledek jeho činnosti obdržel………………..
Tento přístup je docela fajn, ale problém je v tom, že se neustále něco vysílá. Pokud je Slávek „lenoch“, Mástr může vyslat několik stovek, tisíců…………stejných příkazů, neboť nemůže vědět, jestli Slávek zprávu dostal, nebo už činnost vykonává, ale ta trvá více času.
Mástr bude brát energii ze sítě, ale Slávek pouze z baterií, takže by se měl šetřit a vysílat co nejméně.
Vylepšený 1. přístup:
Poté co Mástr obdrží zprávu od Slávka, okamžitě mu pošle nějaký příkaz, aby Slávek vysílat přestal a začal pracovat, ten příkaz může být i ve stylu „zatím nic nedělej, jen naslouchej, pokud bych něco potřeboval“. To by spotřebu Slávka snížilo. Další snížení spotřeby by mohlo být příkazem „Slávku, x sekund, minut….. mi nenaslouchej, zkus to třeba za x sekund, minut….“
Pokud má někdo lepší nápady jak Slávkovi co nejvíce ušetřit baterie, nechť se ozve, budu moc rád![Smile :)](./images/smilies/icon_smile.gif)
Pracuji teď na vývoji dvou zařízení, které spolu komunikuji rádiově.
Potřeboval bych vyřešit algoritmus jejich komunikace.
Nadřízené zařízení (Master=>Mástr) vždy pošle příkaz podřízenému zařízení (Slave=>Slávek), to vykoná nějakou činnost a výsledek své práce pošle zpět nadřízenému zařízení.
Problém je v tom, že nelze zaručit, že pokud jedno zařízení vyšle zprávu druhé ji 100% přijme ve správné podobě nebo že ji přijme vůbec (správnost zprávy je samozřejmě zajištěna kontrolním součtem).
Je proto nutné, aby např. Mástr vysílal příkaz opakovaně, ale jak dlouho? Než tuto zprávu Slávek přijme a pošle mu odpověď. Ale tuto odpověď je opět nutno vysílat opakovaně, než jí přijme Mástr. Ale jak se o příchodu odpovědi k Mástrovi dozví Slávek aby přestal vysílat? Mástr mu opět pošle zprávu? Takhle by se to ale mohlo opakovat do nekonečna což není moc dobré:)
1. přístup:
Mástr začne vysílat opakovaně příkaz Slávkovi a zároveň začne poslouchat odpověď od Slávka. Slávek přijme příkaz, zjistí co má dělat a začne vykonávat danou činnost. Po vykonání činnosti začne Slávek vysílat Mástrovi odpověď a zároveň poslouchá, zda-li mu Mástr neposílá další příkaz. Pokud Mástr zachytí odpověď o vykonání činnosti Slávkem, přestane vysílat příkaz na tuto činnost a může vysílat příkaz k jiné činnosti. Slávek samozřejmě vysílá odpověď dokud mu nepřijde příkaz k jiné činnosti, jedině tak se doví, že Mástr výsledek jeho činnosti obdržel………………..
Tento přístup je docela fajn, ale problém je v tom, že se neustále něco vysílá. Pokud je Slávek „lenoch“, Mástr může vyslat několik stovek, tisíců…………stejných příkazů, neboť nemůže vědět, jestli Slávek zprávu dostal, nebo už činnost vykonává, ale ta trvá více času.
Mástr bude brát energii ze sítě, ale Slávek pouze z baterií, takže by se měl šetřit a vysílat co nejméně.
Vylepšený 1. přístup:
Poté co Mástr obdrží zprávu od Slávka, okamžitě mu pošle nějaký příkaz, aby Slávek vysílat přestal a začal pracovat, ten příkaz může být i ve stylu „zatím nic nedělej, jen naslouchej, pokud bych něco potřeboval“. To by spotřebu Slávka snížilo. Další snížení spotřeby by mohlo být příkazem „Slávku, x sekund, minut….. mi nenaslouchej, zkus to třeba za x sekund, minut….“
Pokud má někdo lepší nápady jak Slávkovi co nejvíce ušetřit baterie, nechť se ozve, budu moc rád
![Smile :)](./images/smilies/icon_smile.gif)