Робота з часом у робототехніці, мехатроніці, електроніці
Вступ
Зранку, декілька днів тому, я бачу повідомлення в чаті, щось на кшталт — «ти ж займаєшся робототехнікою, не міг би ти дещо мені пояснити, про роботу з часом?» Тема в україномовному сегменті не освітлена, тому мені здалося, буде хорошою ідеєю освітити якусь базу про це, у вигляді статті. І зазначу, що я сам займаюся цим всього декілька років і сам ще багато чого вчуся, тому якщо бачите помилку — напишіть про неї в коментарях.
Почнімо.
Робота з часом у робототехніці, мехатроніці, електроніці
Будь-які операції з часом, на фізичному рівні, починаються з резонатора. Принаймні я не можу згадати жодного варіанта, коли це було інакше.

Що є резонатор?
Це щось, що може генерувати події зі стабільним періодом у часі.
Найкласичніші в електроніці:
- кераміка: неточний, дешевший, простіше обв’язка;
- кварц: точний, економічний, дорожчий;
Так пише майже вся класична література, але на сьогодні це вже далеко не так. І кварц сьогодні доволі дешевей, а ще й існують — MEMS, SAW, Atomic Про MEMS взагалі майже не згадують, бо їх раніше масово не існувало. Я спробую згадати у статті про всі основні типи на сьогодення, а не тільки більш старі.
Але, спочатку, хочу щоб ви усвідомили — резонатором може виступити що завгодно. Навіть просто зміна дня і ночі, це щось, що стабільно повторюється, ну принаймні поки що це ще так працює. Інженерія завжди допускає місце обгунтованій творчості, але і велосипеди вигадувати не треба.
Резонатор ще не готовий пристрій. Це пасивне першоджерело коливань. Треба якась об’вязка — часто треба якось збуджувати резонатор, форматувати такт в зручний сигнал, робити якісь корекції. Напряму працювати з резонатором складно, а частіше й неможливо.
Резонатор — це лише резонатор. Сам по собі він не працює.
Осцилятор (Oscillator)
Це резонатор плюс обв’язка, що видає імпульси у зручному для зчитування форматі. На відміну від резонатора, це вже готове рішення для отримання стабільної частоти.
Осцилятор — максимально спеціалізований пристрій. Він нічого, окрім видачі такту, у зручному для нас форматі — не робить. Але він може видавати як просто імпульси, так, наприклад, і ШІМ або красивеньку, гладеньку синусоїду для вашого інвертора чи драйвера двигуна.
Призначення осцилятора — бути джерелом такту. Жодного додаткового функціоналу він зазвичай не має.
Можна виділити декілька поширених типів осциляторів, за типом їх резонаторів:
Кварц (Quartz або Crystal)
Висока стабільність частоти. Мало залежить від електромагнітних завад. Низький фазовий шум. Довготривала стабільність.
Діапазон частот: від десятків кГц до сотень МГц.
Кварц — це еталон, коли потрібна низька похибка при тривалій роботі за адекватні гроші. Звісно, не забуваймо, що кварц теж буває різний, не весь кварц однаковий.
Мінуси:
- боїться ударів, що зазвичай не проблема але майте на увазі;
- не любить вібрацій, проте і це теж зазвичай не проблема, бо мова йде про доволі сильні вібрації які здатні збити частоту чи взагалі зруйнувати кристал.
- кварц відносно великий
- доволі тривалий старт до заявленої точності, від долей секунди, до декількох хвилин у особливо точних моделей.
Приклади для порівняння:
— ASE-25.000MHZ-L-C-T
0.85 €, 25 MHz, ±50 ppm XO, 3.3 V, 13 mA;
— ECS-2520MV-250-CN-TR
0.95 €, 25 MHz, ±25 ppm XO, 1.6...3.6 V, 7 mA;
— TVJ6F-010.0M
15.55 €, 10 MHz, ±1 ppm TCXO, 3.3 V, 6 mA;
— OH320-CC-700503CF-010.0M
150.38 €, 10 MHz, ±0.5 ppb OCXO, 3.3V
— CVHD-950X-100
20 €, 100 MHz, ±20 ppm VCXO, 3.3V, 25mA;
Як бачите ціна зростає залежно від частоти і точності, що логічно, і точність ця буває в дуже широких межах.
Так для прикладу, ±50 ppm це доволі посередньо для кварца, але придатно для багатьох випадків. А ±0.5 ppb це дуже, дуже точно. ppm — це мільйонні долі відхилення, а ppb — біліон, та ще й OC, тобто термостабілізований, що впливатиме на тривалу точність. От аж настільки може відрізнятись точність одного кварцу від іншого.
SAW (резонатор на поверхневих акустичних хвилях)
Як і звичайний кварц (Crystal), SAW резонатор використовує п’єзоелектричний ефект, але там інші матеріали і вони працюють з акустичними хвилями, що поширюються по поверхні п’єзоелектричного матеріалу. Звичайний кварц використовує весь об’єм кристалу.
SAW гірше за кварц. Але кварц це зазвичай кГц...МГц, а SAW це зазвичай МГц...ГГц. Тобто SAW — це резонатор для високих частот і порівнювати його з резонаторами дляінших частот некоректно.
SAW це не зовсім про роботу з часом, а скоріше спеціалізований виріб під високочастотні імпульси, але про його існування вам варто знати.
SAW фактично не зустрічається як окремий осцилятор, принаймні, я їх не бачив але припущу що вони десь є. Зазвичай SAW продається як резонатор, або фільтр, або часто у складі якогось комунікаційного модуля.
Високі частоти, це найчастіше щось пов’язане з випромінюванням, тобто радари, зв’язок і таке інше. По дротам, такій частоті ходити вже складно через скін ефект. Просто аби було — ці частоти вже не використовують.
MEMS
MEMS-осцилятори використовують кремнієві мікроелементи замість кварцового кристалу. Їх почала серійно випускати компанія SiTime з середини 2005 року.
Вони фактично витіснили кварц у побутових мобільних пристроях, де потрібні компактність і надійність, але не надто надвисока точність.
MEMS в
MEMS чутливі до стрибків по живленню, але для більшості мобільної електроніки — це можна ігнорувати. Живлення там йде від батареї.
У MEMS більше за кварц енергоспоживання, але ще у них дуже швидкий старт, тобто вони дуже швидко починають видавати заявлені характеристики після включення, що важливо для пристроїв які переходять в сон.
MEMS компактні, що теж важливо для портативної електроніки
На одному інженерному форумі я читав, що айфони використовували раніше кварц але перейшли на MEMS в контексті того що він краще справляються з електронною компенсацією при різкому нагріві. Мова йде про те що на точність впливають перепади температури, а айфон може несподівано грієтись як дурний. Як впринципі багато телефонів, тому не впевнений що досі є телефони не на MEMS.
Особисто я думаю що, в загальній ситуації, за реакцією на нагрів порівняти це з кварцом важко, бо є ще кварц в термостаті, але термостат виходить в робочий режим дві хвилини і це доволі великий чіп. А в контексті телефонів і їх сучасній щільності компонентів — схоже на правду, що компактність, швидкий старт і температура тут грали ключову роль.
MEMS по точності можна порівняти з кварцом початкового рівня, але при цьому MEMS дорожчий і має гірший джитер, тому я майже впевнений що справа не в ціні, а саме три названих вище фактори — тут грали ключову роль.
- компактність;
- швидкий старт;
- простіша температурна корекція;
P.S. Джитер це можливе відхиленя імпульсу від середньої точки, де він мавби в ідеалі бути. Це зазвичай не впливає на частоту загалом, бо відхиленя дуже маленьке, тут мінус, там десь плюс і середня точка зберігається — тому до похибки не відносять.
Приклади для порівняння:
— ECS-2520MV-250-CN-TR (Кварц)
0.95 €, 25 MHz, ±25 ppm XO, 1.6...3.6 V, 7 mA;
— ASDMB-25.000MHZ-LC-T (MEMS)
2.37 €, 25 MHz, ±25 ppm XO, 1.8...3.3 V, 16 mA;
При грубому порівнянні здається що з MEMS немає сенсу, але як вже розумієте — не все так просто. Вторинні параметри у нього кращі за кварц.
Також перевіряйте даташити. Технологія відносно молода, на ринку все ще можна зустріти MEMS перших поколінь, які дуже далекі від сучасних.
Кераміка (Ceramic)
Керамічні резонатори — велика кількість джерел згадує як дешевші замінники кварцових, але на практиці це вже застаріле уявлення. Кераміка це теж п’єзоелектрики, проте їх точність і стабільність на кілька порядків гірша. Типовий допуск — 3000...5000 ppm. Це настільки погано, що їх точність можна описати дуже лаконічно: її практично немає.
Ще один критичний недолік — швидке старіння, до 2000 ppm на рік, порівняно з
Кераміку ще можна зустріти у пристроях які розроблені доволі давно, і такі пристрої самі по собі можуть бути чудовими, просто зроблені вони у часи інших цін та технологій. Наприклад, деякі плати Arduino використовують керамічний резонатор. Також кераміку часто застосовують у найдешевших модулях з Китаю, дешевій побутовій електроніці, дешевих іграшках, і подібному.
Сьогодні керамічні резонатори впевнено витісняються і кварцом, і й MEMS теж. Бо MEMS-генератори вже стали досить дешевими і перекривають кераміку як за точністю, так і за габаритами, термостабільністю, ударостійкістю — короче всім. Умовно зекономлені центи, хоч і мають сенс на великих обсягах для виробника — це вже не виглядає так добре для кінцевого покупця.
Отже, керамічний резонатор — це рішення найнижчого цінового сегмента, де збереження пари шагів, важливіше за все інше. Його популярність сьогодні тримається радше на старих дизайнаїх дійсно крутих виробів, ніж на технічній\економічній доцільності. І звісно модулі для DIY сегмента теж мають це, а це дуже великий ринок. Тобто кераміка і досі «працює», і на ній ніхто не забороняє знову зробити щось класне, але порівняно з кварцом чи MEMS, на сьогодні — це вкрай незрозуміле для мене рішення. Поясніть, може я чогось не знаю, я людина і всього знати не можу.
В середньому ціна керамічного резонатора € 0,2 + ціна об’язки, в яку його інтегрують.
Атомні осцилятори (Rubidium або Rb / Caesium або Cs)
Атомні осцилятори базуються на резонансі атому (зазвичай рубідію чи цезію). Вони забезпечують надвисоку точність.
Такі рішення використовують для еталонів чи синхронізацї у комунікаціях — у супутникових, навігаційних системах, дата-центрах, тощо.
Рубідієві більш поширені, бо дешевші. Вони не дуже великі, в десятках грамів і несподівано... теж використовують п’єзоелектрики! В будь-якому випадку — Фаллаут схвалює.
Питання яке вирішують атомні осцилятори це не тільки про точність, а і про тривалу точність. Тобто мінімальне такопиченя похибки — що дуже важливо в тривалій роботі.
По ціні є різні рішеня. Це high-end сенмент, і тут незначне покращеня може коштувати більше мільйону. Загалом мова йде про тисячі, а буває і мільйони за штуку, і я чув що є і вторинний ринок. Загалом, атомні осцилятори, не такі вже й рідкісні як може здаватись. Дата центрів по планеті купа. Microchip звітував, що виготовив близько 400 000 атомних годинників, очевидно він їх якщо і не продав, то принаймні розраховує продати.
Атомні годинники дуже важливі для комунікації, при синхронізації на дальніх відстанях. І знову ж таки не тільки через точність, а і через стабільність у часі.
—
Із цікавого, поміж інших осциляторів я би хотів ще виділити:
Подвійні фіксовані осцилятори (Dual Fixed Frequency)
Це осцилятор який видає зразу дві частоти. Бачив, але ніколи не користувався. Так розумію це використовується при узгоджені декількох різночастотних систем.
Синусоїдальний осцилятор (Sinusoidal)
Генерують синусоїдальний сигнал. Зазвичай доволі чистий, але все відносно. Я не бачив синусоїдальних осциляторів з меандром, але з маркетологів станеться, тому впевнений — десь таке є.
Змінної частоти (Programmable)
Вміють знижувати свою частоту, зазвичай використовується для режимів сну або ШІМ.
Активне підсилення (Active)
Видають сигнал Logic Level або більше
---
Тепер вам відомі основні різновиди резонаторів/осціляторів.
Таймери
Якщо ви взяти осцилятор, додати якісь логічні функції до нього, то отримаєте те що називають таймер.
Отже резонатор->осцилятор->таймер, це три базові терміни, які я логічно мав донести.
Електромагнітні завади
Не забуваємо що джерело такту є часто і джерелом електромагнітних завад. Звісно екрани і все таке — типові рішеня, але існують ще і SSXO. Я ніколи не мав з ними справу, але наскількі розумію, у них модифікована частота, щоб не співпадати з типовим засміченям. І ще раз, наскільки розумію, це має працювати і навпаки — не буде резонансу з типовими частотами.
Точність
Викреслимо зразу кремній. Точність — це не його сильна сторона. Про атомні годинники теж не згадуватимемо. Ми і так розуміємо що вони еталон точності, але через їх ціну — вони все-таки специфіка.
Говоритимемо про Кварц і MEMS.
Вплив температури
Резонатор — реальний фізичний об’єкт, його властивості залежать від температури.
Через коливання температури, може набігати похибка. Скільки? Залежность як часто, на скільки, в яку сторону стрибає температура. Для кварцу без термокорекції ви маєте враховувати до
Якщо умови будуть прямо дуже негативні, наприклад кожен день ваш пристій переміщується з Африки у Норвегію, з активним теплообміном і без термоізоляції, то для кварцу, в теорії до півтори-двох годин на рік може набіжати. Але уявити це складно, якщо не зробити так спеціально або по нерозумінню. Так прилади, які можуть швидко нагріватись/оходжуватись — мають мати хоч базову термокорекцію кристалу.
Похибка у сторону нагріву менша. Кварц любить бути там де тепленько, але не якщо це гойдалка тепло-холодно.
І якщо у вас вже якісний чіп з хорошим кварцом, то для ще більшої точності, потрібна температурна корекція. Вона буває двох основних видів:
— TCXO (Temperature Compensated Crystal Oscillator)
Осцилятор з компенсацією температурного дрейфу.
Похибка: приблизно
Принцип: частота імпульсів коригуються програмно. Зазвичай в чіпі збережений температурний профіль корекцій і на основі цього воно й корегує.
Переваги: низьке енергоспоживання, дешевша реалізація.
MEMS також буває з TCXO. Хоча XO значить Crystal Oscillator, ця назва просто перекочевала і на MEMS теж.
А де у слові «Crystal» літера «X»? Не знаю, не питайте, я знайшов цілих дві версії чому скоротили саме так. Може їх більше — далі не шукав. Краще спитайте у тих, хто точно знає чому так.
— OCXO (Oven Controlled Crystal Oscillator).
Осцилятор у термостаті, що підтримує стабільну температуру.(60 °C+). Габаритно це зазвичай трохи більш масивний чіп за звичайний, але не щось сильно велике.
Похибка: менше ±0.01 ppm/°C. Тривала стабільність, але на первинний нагрів такого термостата — йде до двох хвилин.
По різним статистикам, я знайшов інформацію про тривалу похибку десь до 0.1 ppm на рік, що дуже непогано. Якщо це годинник, за вашого життя — скоріше за все, не набереться помітної похибки.
Це дуже непоганої точності генерація, для загально доступного пристрою, з притомною ціною.
Але бувають і ще набагато більш точні OCXO, але їх ціна вже буде в сотнях доларів.
Мінуси:
- Потребує часу на прогрів
(1-2 хвилини) - Більше енергоспоживання, у порівнянні з TCXO.
- Корпус може грітися, бо ідеальних термосів не придумали.
- Немає режиму сну.
Перевага: висока стабільність в часі.
OCXO MEMS я не бачив, та і мабуть їх і немає, бо немає сенсу — основні переваги MEMS якраз протилежні мінусам OCXO.
Є й інші варіанти, але вони все одно зазвичай базовані на принципі цих двох — або коригувати програмно, або утримувати температуру.
Живлення
Тут все доволі просто — нестабільне живлення = нестабільна точність.
Деякі осцилятори мають корекцію по живленню, але там не все так просто, загалом для точного осцилятора потрібно якісне живлення.
MEMS до живленя більш чутливі за кварц.
Старіння резонатору
Ці штуки з часом втрачають точність самі по собі, просто тому що вичерпують свій ресурс.
Орієнтовні дані:
- Кварц XO: 3...10 ppm/рік;
- Кварц TCXO: 0.5...2 ppm/рік;
- Кварц OCXO: 0.05...1 ppm/рік;
- Кераміка: ±300 але буває і до 2000 ppm/рік;
- SAW: 20...150 ppm/рік;
- MEMS(сучасні): 1...5 ppm/рік;
- MEMS(TCXO): 1...3 ppm/рік;
- Atomic(Rb): 0.5 ppb(0.0005 ppm)/рік;
- Atomic(Cs): 50...100 ppt(0.00005...0.0001 ppm)/рік;
Тому якщо у вас осцилятор значно менш точний ніж має бути — можливо йому вже просто пора бути саме таким.
Лічильники
Це штуки які рахують імпульси. Вони не обов’язково пов’язані з осцилятором. Наприклад тахометр має лічильник імпульсів, але їх джерело — не є осцилятором.
Будь що, що оперує проміжками часу, зазвичай має лічильник. Якщо імпульс 1 секунда, а тобі треба 10 секунд, то ти маєш нарахувати 10 імпульсів. Тобі потрібен лічильник.
До чого тут точність?
Спробуємо уявити, як ми будемо рахувати імпульси програмно, мікроконтролером. Проблема — такт процессора теж задається осциллятором і якщо імпульси будуть достатньо високочастотні, наш мікроконтролер почне їх пропускати а вонискоріш за все будуть саме достатньо високо частотними. Тут не обов’язково частоти мають близькими, адже є ще джитер(дрейф імпульса навколо усередненої позиції).
Можна використати IRQ, які працюють на підвищених частотах зазвичай. Але тоді, він переповнюватиме чергу, чи взагалі мікроконтролер зависне, коли пам’ять закінчиться.
З погляду на цю проблему, відокремити підрахонок імпульсів в окреме аппарате рішення — є дуже логічним.
Багато мікроконтролерів і таймерів мають вбудовані лічильники. Не намагайтесь рахувати імпульси програмно, якщо не впевнені у тому що ви робите. Користуйтесь лічильниками.
Наскільки важлива точність?
Типові кварцеві годинники мають точність близько 6 ppm, що можна інтерпретувати як ±15 сек за 30 днів (~0.5 сек/день).
І це нормально. Для прикладу механічні годинники, мають шалену похибку до десятків секунд на день, але їх коригують в середньому лише раз на місяць. І якщо ви не фанат механіки, або це не щось на кшталт Patek Philippe від вашого батька чи для вашого сина, то вибачте — я не розумію фанатів механіки, за виключенням якщо це не естетика чи звичка, або певна специфіка. Естетику я можу зрозуміти, згадані патеки мені й самому дуже подобаються візуально, хоча сам такого не маю, все таки 8 тисяч доларів це багато дронів, потерпить. А щодо точності — ні, це не про механіку.
Я пояснюю вам це, щоб трохи заспокоїти ваше бажання максимальної точності.
Звісно, ви не помічаєте цієї неідеальності, поки вам не скажуть, але тепер ви знаєте.

Тому подумайте про це, автор можливо садист і насолоджується уявляючи як ви зараз міркуєте про можливу неідеальність свого годинника і неідеальний світ... ну ви зрозуміли відсилку, якщо знаєте звідки попереднє зображення. А, що? Я ж теж маю отримати якусь насолоду від цієї статті. Продовжимо.
Можливо запізніло згадую, але 6 ppm — це похибка яка може бути як і в «+» так і в «-», тому 6 ppm може бути написано ще і як ±3 ppm. Це спосіб сказати що похибка йде у два боки, але похибка всеж не симетрична і саме через це, похибка поступово, точно буде накопичуватись в якусь конкретну сторону. Тобто вказівка похибки без ± може значити якусь вже значну накопичену похибку.
Так як навколишня температура змінюється непередбачувано, то порахувати похибку точно не можливо. Для приблизного порівняння точності:
1 рік = 60 сек * 60 хв * 24 год * 365 днів = 31 536 000 сек.
±1 ppm = (1 / 1 000 000) * 31 536 000 ≈ 30 сек
±10 ppm = ≈5 хв
±20 ppm = ≈10 хв
±50 ppm = ≈ 25 хв
±150 ppm = > 1 год
У умовно «базового» XО кварца, без компенсації температури:, похибка десь
Для TCXO: 0.5...2 ppm/рік, OCXO: 0.05...0.1 ppm/рік.
Це виключно для приблизної оцінки! реальна похибка буде дуже сильнозалежати від середовища
І... недорогий кварцовий годинник — варто звіряти раз на рік.
Ну поговоримо саме про годинники.
RTC (Годинник реального часу)
Якщо ми спробуємо зробити на базі осцилятора годинник, то усвідомимо що нам потрібно не тільки відлік імпульсів але і календар, бо десь 30 днів, десь 31, а у лютому взагалі 28, у високосному 29. А ще й дні тижня є. Це не так то і просто.
Штука яка має календар, називається RTC (Real-Time Clock). Це різновид таймерів. Може бути і окремий чіп, так і щось вбудоване.
Різних спеціалізованих таймерів дуже багато, але хоча б про цей ви точно маєте знати.
Всі RTC мають календар і вміють розраховувати дату і час, бо це суть їх роботи.
Календар в RTC прошитий зазвичай до певної дати, в середньому на тисячу років чи щось таке. Тобто у вас можуть бути проблеми при спробі встановити дату з 22 століття або навпаки із минулого, звертайте на це увагу
Про живлення
Більшість RTC мають вбудоване або зовнішнє додаткове незалежне живлення. Але час переключення може спричиняти похибку. Читайте даташит на свій RTC, щоб дізнатись як це в ньому зроблено.
Типовий функціонал
- Час і календар, включаючи дні тижня
- Часто є будильник, таймер, генератор сигналу
- Окремий пін живлення для резервного акумулятора (VBAT)
Точність?
RTC не гарантує високу точність сам по собі. Якщо його тактує дешевий хиленький осцилятор, похибка може становити навіть хвилини на добу. Навіть з кварцом — точність залежить від температури, віку кварчу, стабільності живлення, тощо.
А ще, до RTC інколи ставляться як до кеша — требаперіодично оновлювати, тобто час періодично звіряється з сервером або зовнішнім точним джерелом (NTP, GNSS), тому значна частина RTC і не планувались відпочатку бути точними, а розраховані виключно на період до наступної синхронізації.
Тому:
- RTC ≠ точний час
- RTC = автономне збереження календаря
Приклад: DS1307, по відгукам одного користувача, за місяць може набігати більше 10 хвилин похибки. Мабуть це трохи завищено і людину просто вразило що дешеві модулі модуть бути неточними, але навіть по даташиту — там похибка 2 хвилини. Або можливо в модуль впаяти вживаний чіп, з деградованим резонатором.
Я акцентую, бо багато хто на цьому обпікається, думаючи що RTC це синонім точності.
Деякі недорогі RTC — це ще більш неточні модулі ніж згаданий DS1307.
Читайте даташити, якщо похибка не вказана — скоріш за все вона доволі велика.
Синхронізація
Між пристроями має бути щось спільне. Питання — що саме?
Спільний такт
У багатьох випадках не критично, якщо щось буде виконано трохи раніше чи пізніше. Головне — щоб всі учасники це робили синхронно. Тому спільний такт — дуже поширене рішення.
Наприклад, у протоколі I2C один із дротів передає тактові імпульси — і всі пристрої підлаштовуються під цей ритм.
Причому точність самого такту — часто не дуже важлива. Важливо не проспати імпульс, і щоб він взагалі був. Існують навіть прийоми, коли один із пристроїв апаратно подавляє наступний імпульс, щоб подовжити час для чогось свого у поточному періоді.
А ще можна синхронізувати декілька мікроконтролерів. Для цього є спеціальні чіпи, без вбудованого осцилятора. Один зовнішній осцилятор на декілька процесорів — і всі вони працюють в один такт, навіть без прямого обміну даними.
Узгодження дій
Іноді синхронізація сама по собі не потрібна. Достатньо, щоб учасники просто не заважали один одному. Є кілька поширених підходів, які можна комбінувати між собою:
Пріоритети — кожна дія має пріоритет. Якщо хтось виконує задачу з вищим пріоритетом — інші чекають. Пріоритет може бути навіть рандомний. Головне — щоб всі мали шанс.
Спробуй пізніше — бачиш що зайнято? Чекаєш випадковий проміжок часу і пробуєш знову. Простий, але ефективний спосіб уникнути конфліктів.
Просто зроби — байдуже, чи заважаєш комусь, просто виконуй. Так працюють деякі радіопротоколи, хоча зазвичай вони все ж таки мають хоч якісь механізми, щоб заважати поменше.
Центральний сервер — одна точка, через яку проходить все — дані, команди.
Приклад 1 — NTP-сервер(сервер точного часу). Усі отримують час з одного джерела. NTP — спільна точка, всі отримають однаковий час, навіть якщо час насправді буде не правильним.
Сервер може не тільки роздавати команди, а й їх приймати. Він — спільний вузол між усіма, тому синхронізація фактично відбувається автоматично, якщо спеціально не зроблено інакше.
Приклад 2 — ви маєте датчики й актуатори та центральний керуючий сервер. Не потрібно синхронізовати між собою окремі частини, якщо вони просто виконують інструкції від центру. Потрібно лише узгоджувати алгоритм самого сервера.
Часова мітка — кожен учасник живе у своєму світі і діє за внутрішнім годинником. Це не обов’язково реальний час, часто це просто кількість тактів від певної події.
З цим підходом є проблема — накопичена похибка. Без періодичної корекції таймери учасників з часом розійдуться.
І от тут вже має велике значення який саме у вас таймер. З точним таймером ви можете дозволити собі довші проміжки між синхронізаціями. З неточним — менші.
GPS — заслуговує окремої згадки.
Суть: супутники GPS постійно транслюють точний атомний час. Щоб дізнатися його — треба ще вирахувати затримки сигналу, але технологія працює всюди, де ловить GPS.
В деяких умовах, наприклад аутдорі — це може бути ледь не єдиний доступний спосіб.
Крім точного часу, по GPS можна ще й синхронізувати такт, бо всі супутники між собою синхронізовані, тож байдуже, який саме з них ловить ваш пристрій. Є навіть спеціальні GPS‑осцилятори, які це підтримують нативно.
У деяких випадках — це єдиний спосіб зробити адекватну синхронізацію. Але в більшості ситуацій це буде зайве і суттєво дорожче.
Післямова
Що ж, мабуть я достатньо описав базу, але якщо щось забув чи помилився у числах, а їх тут багато — обов’язково напишіть про це.
Що до тої людини, що запитала мене про роботу з часом, їй було потрібне автономне, стаціонарне рішення, для приміщення. Тобто достатньо точне і таке що не потребує частої корекції, і не за всі гроші світу. Я порекомендував RV-3032-C7, що думаєте про мою рекомендацію?
8 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів