1. Šajā lekcijā par pulksteņu sinhronizāciju sensoru tīklos 2. Mēs mēdam teikt: mote darbojas uz 4MHz. Bet kur patiesībā ir šie MHz? Kas nosaka, ka tieši 4 megaherci, nevis 2 vai 8? 3. Izrādās, ka motēm iekšā ir tāda lieta kā rezonators - maza "iekārtiņa", kas vibrē noteiktā frekvencē. Vibrē šeit nozīmē, ka tā māk uz vienas kājas dot ārā 0, 1, 0, 1, … . Un šāds rezonators padod takti mikrokontrolierim, kurš katrā taktī izpilda vienu instrukciju, piemēram, saskaita divus reģistrus. Vispārīgā gadījumā varētu būt, ka ne visas instrukcijas izpildās tieši vienā taktī. Piemēram, reizināšana varētu aizņemt arī 4 taktis. Bet katrā ziņā instrukciju izpildes ātrums atkarīgs no tā, cik ātri takti padod rezonators. Rezonatori mēdz būt dažādi, bet vismaz daļa no tiem savā iekšienē satur kvarcu - kristāls ar noteiktu struktūru. 4. Šāds rezonators, kā jau tika minēts, vibrē ar noteiktu frekvenci. Un māk izejā ģenerēt sprieguma oscilācijas, kuras mēs varam uztvert kā impulsus. Piemēram, ja kvarcs oscilē 4 miljonus reizes sekundē, tad varam teikt, ka tas ģenerē 4 miljonus impulsus sekundē, jeb tas ģenerē 4MHz frekvenci. 5. Diemžēl, apkārtējās vides ietekmē (piemēram, temperatūras) kvarca rezonēšanas spējas tiek deformētas: tas var sākt rezonēt vai nu nedaudz lēnāk, vai nedaudz ātrāk. 6. Piemērs: MicaZ mote, kurai iekšā ir ATMega mikrokontrolieris. Tam tiek izmantots 7.37MHz kvarcs, kuram ir dreifs 40 mikrosekundes ik sekundi. Vai 40 mikrosekundes ir daudz? Ja cilvēks skatās uz laika sprīdi "40 mikrosekundes", tas šķiet niecīgs. Bet šāds dreifs ir ļoti milzīgs! Pirmkārt, pie 7.37MHz mikrokontrolieris izpilda 7.37 instrukcijas ik sekundi. Tātad, pie šāda dreifa kontroliera izpildīto instrukciju skaits sekundē variē par 7.37 * 40 = ~295 instrukcijām! Ko var paspēt izdarīt 295 instrukcijās? Diezgan daudz. 7. Otrkārt, ja paskatāmies ilgtermiņā, 40 mikrosekundes dreifs sekundē ir 3.5 sekundes dienā! Tātad, ja palaižam divas motes, pēc vienas dienas darbības to pulksteņi var atšķirties par vairākām sekundēm! Ar tādu precizitāti neviens MAC protokols nestrādās korekti! 8. Ko darīt, lai šo problēmu risinātu? 9. Viena iespēja - globālā pozicionēšanas sistēma, saīsināti GPS. Plaši tiek lietota auto navigācijas sistēmās un mobilajos telefonos. Iespējams nopirkt arī atsevišķus GPS moduļus, kas pa BlueTooth vai RS232 seriālo portu var savienoties ar jebkuru citu iekārtu, piemēram, lapopu. Var pievienot arī motei. Darbības princips - apkārt zemeslodei riņķo vairāki satelīti, no kuriem katrā punktā uz zemes katrā brīdī mēs varam redzēt līdz 12 satelītiem tiešā redzamībā. Šie satelīti ir ar precīzi sinhronizētiem pulksteņiem un sūta šos datus uz zemes esošajiem GPS uztvērējiem, kuri paši neko neraida, tikai uztver. Saņemot vienlaikus datus no vairākiem satelītiem, saņemam vienu un to pašu informāciju ar nobīdi, kas atkarīga no attāluma starp GPS satelītu un GPS uztvērēju. Varam izrēķināt attālumus līdz satelītiem. Jautājums - cik satelītus vajadzētu, lai mēs varētu noteikt savu atrašanās vietu 3D telpā, ja satelītu pozīcijas ir zināmas? 10. Izklausās skaisti, bet GPS ir dārga tehnoloģija. Kas ir galvenā vērtība sensoru tīklos? Enerģija. Un tieši enerģijas nozīmē GPS ir dārgs. Piemēram, dati no mūsu eksperimentiem ar lūšu izsekošanas kakla siksnu. Pat ieslēdzot GPS tikai reizi stundā uz vienu minūti (GPS prasa zināmu laiku, lai spētu uztvert signālus no vairākiem satelītiem un veikt aprēķinus), GPS tērētu virs 80% no visa enerģijas budžeta. 11. Ko vēl var darīt? Ir tehnoloģijas, kur uz zemes esoša bāzes stacija raida savu pulksteņa signālu un lielā apkārtnē (vairāki tūkstoši kilometru) uztvērēji šo signālu var saņemt un piekalibrēt savu pulksteni. Piemēram, viena šāda stacija ir Vācijā, tās signāls uztverams arī Latvijā. 12. Nedaudz apgrūtinošs apstāklis: šādi signāli tiek raidīti zemās frekvencēs, kuru uztveršanai nepieciešamas lielas antenas. Izdarīt var un cilvēki mēdz arī šādas tehnoloģijas izmantot. 13. Bet vai varētu iztikt vispār bez papildus aprīkojuma, tikai ar to, kas uz motes jau ir? Atbilde - var. Bet nedaudz pakāpjamies atpakaļ, paskatāmies - kāpēc vispār sinhronizēt pulksteņus 14. Ja gribam veikt agregāciju laikā, sinhronizācija var noderēt. Ja nezinām, KAD dati ievākti, grūti veikt statistikas aprēķinus. Sinhrons laiks nepieciešams arī MAC protokoliem ar vienotu laika plānu un tīkliem ar kopīgu duty cycling - lai visas motes pamostos tad, kad tām ir paredzēts pamosties, kad var notikt sakarīga komunikācija. 15. Ja skatāmies no šādu prasību perspektīvas, tad patiesībā nav vajadzīgs globāli vienāds pulkstenis. Respektīvi, visa tīkla iekšienē, kur gribam veidot kopīgu duty cycling vai kopīgu datu apstrādi, mums vajag visiem vienādus pulksteņus. Bet šie pulksteņi var atšķirties no laika citā sensoru tīklā vai globālā pasaulē lietotā laika. Galvenais, lai motes var vienoties par kopīgām darbībām. 16. Ir izgdroti vairāki sinhronizācijas protokoli. Bet galvenā ideja ir vienkārša: motes viena otrai pasaka savu laiku un tad pēc noteikta algoritma tiek izrēķināts, kāds ir sinhronizētais laiks, un katra mote piekoriģē savu pulksteni. 17. Protams, datu apmaiņa satur aiztures - pakas nosūtīšana pa radio prasa laiku, tā pat saņemto datu apstrāde, nosūtāmās pakas formēšana. Kas ir sliktākais tajā visā? 18. Sliktas ir nedeterminētas aiztures! Radio viļņi izplatās ar ātrumu, ko diezgan precīzi varam aprēķināt. Tāpēc pati sūtīšana un saņemšana ir determinētas darbības. Nedeterminētība ir tieši datu sagatavošanā un apstrādē. Jo var paiet atšķirīgs laiks no brīža, kad programma "izdomā" nosūtīt datus un kad tie tiešām tiek nosūtīti. Arī saņemot var paiet dažāds laiks no brīža, kad dati ienāk, līdz brīdim, kad aplikāciaj tos sāk apstrādāt. 19. Ideāli laika sinhronizācijai mums gribētos daudzas prasības, kā vienmēr: skat sarakstu slaidā. Parasti visu nevar sasniegt, bet var vismaz daļu. Jāizvēlas, kas kurā gadījumā ir svarīgi. 20. Apskatīsim dažus tipiskus laika sinhronizācijas protokolus, kas demonstrē atšķirīgus principus. 21. NTP ir internetā bieži lietota sinhronizācija. Pasaulē ir vairāki datori ar ļoti precīzi sinhronizētiem pulksteņiem. Pēc tam ir hierarhisks tīkls, kas izplata šo pulksteņu informāciju. Katrā lēcienā kļūda pieaug, bet parasti laiku var sinhronizēt ar dažu milisekunžu precizitāti, ar ko internetā parasti pietiek. 22. Tomēr NTP nav piemērota sensoru tīkliem vairāku iemeslu dēļ, galvenokārt, sarežģītās un resursu prasīgās implementācijas dēļ. 23. Viens no pirmajiem BST sinhronizācijas protkoliem: RBS. Ideja ļoti eleganta: viens centrālais mezgls izdod "svilpienu", kas nozīmē "tagad visi nomēra savu pulksteni". Šajā brīdī visi apkārtējie nomēra savu pulksteni un pēc tam pa vienam paziņo to cits citam. Kad visi mezgli zina visu citu pulksteņus, iespējams izrēķināt, kāda korekcija kuram jāveic, lai visiem būtu vienāds laiks. 24. Šādi iespējams iegūt 10 mikrosekunžu precizitāti 80% gadījumu, bet ne lielāku par 100 mikrosekundēm vispārīgā gadījumā. 25. Priekšrocības: atbrīvojamies no nedeterminētības sūtītāja galā - tā vairs nav būtiska. Un maz pakešu tīklā: katrs mezgls nosūta tikai vienu paketi. Mīnuss: darbojas tikai viena lēciena tīklā, kur visiem jādzird svilpiens. 26. Cits piemērs: TPSN. Darbojas lielākā tīklā, izveido hierarshisku koku, sinhronizē laiku katrā koka šķautnē. Laiku mēra pēc iespējas tuvu brīdim, kad dati reāli tiks nosūtīti pa radio. 27. TPSN piemēra grafisku attēlojumu skatīt slaidā. 28. TPSN var iegūt augstāku precizitāti par RBS, skat kļūdas sadalījuma grafiku. Diezgan bieži pietiek ar daudz lielākām kļūdām (100 mikrosekundes vai pat 1 milisekunde mēdz būt ok), bet var būt gadījumi, kur augsta precizitāte ir kritiska. 29. TPSN var sasniegt augstu precizitāti arī vairākos lēcienos. Piemēra grafikā redzams, ka 5 lēcienu tīklā kļūda ir zem 25us. 30. TPSN ir precīzāks par RBS un darbojas visā tīklā, ne tikai vienā lēcienā. Tomēr tas prasa lielāku datu apmaiņu un neatbalsta dinamiskas topoloģijas. 31. TPSN trūkums novērst ir cita protokola, FTSP misija. Tam vēl augstāka precizitāte, tas atbalsta dinamiskas topoloģijas un gandrīz apiet visus nedeterminētos posmus. 32-40. Lasiet slaidos par FTSP realizāciju un rezultātiem. 36. Grafikā labi redz, kas notiek, kad atslēdz sinhronizāciju - momentā dreifs uzsāk savu postošo darbību. 42. Eseja tā pati, bet termiņš ir 02.11.2011 05:00 43. KD1 arī būs, bet 02.11.2011 12:30 un tajā nebūs par lokalizāciju, ko vēl neesam izrunājuši.