Warning: Illegal string offset 'name' in [path]/includes/functions.php on line 6439
Pulksteņu laiku sinhronizācija
+
1 2 3 ...

thread: Pulksteņu laiku sinhronizācija

  1. #1
    Senior Member
    Mar 2011
    1,119

    Pulksteņu laiku sinhronizācija

    Turpinot tēmu Bezvadu savienojuma varianti , bet nejaucot prioritātes, turpināšu šeit.
    Interesē varianti caur radiokanālu, līdz 100m (80m ar 100% garantiju) attālumam nosinhronizēt vairākus (2-3) pulksteņus/taimerus. Viens no tiem uz ESP8266 , bet vēl 2 vai nu uz Arduino Nano vai arī ESP8266 Tas jāpaveic telpā, tātad GPS sinhronizācija laikam ka atkrīt. Jāsinhronizē tikai savstarpēji un ar reālo laiku nav nekāda sakara. Google likās visai skopa šajā jautājumā. Ja der, tad izmantojam nRF24L01 vai SI4432 vai , ja tie neder, tad kas cits.

  2. #2
    Senior Member
    Nov 2009
    Jēkabpils
    2,058

    Par nRF nepateikšu, bet ar SI4432 čipu gan. Ar vienu raidam kaut ko vienalga ko, uz citiem nokonfigurējam GPIO0 (pārejās parasti ir aizņemtas ar TX/RX obvesa pārslēgšanu) izdot pārtraukumu "Valid Preamble Detected". Domāju, ka tas notiksies visiem vienādi ...+/- korekcija uz attālumu un gaismas ātrumu.

  3. #3
    Senior Member
    Mar 2011
    1,119

    Domāju, ka tas notiksies visiem vienādi ....
    Mani šobrīd interesē cik tas "vienādi" ir skaitļos. korekcija uz attālumu ir sū.., tā būs konstanta un man nemaisa, bet vot nostrādāšanas ātrums no signāla saņemšanas līdz apstrādes beigām ir kritisks. Ja man būtu tie modulīši, tad jau nomērītu, bet tā ka nav, tad pirms pasūtīt un gaidīt, būšu priecīgs, ja kāds varētu nosaukt kādus skaitļus.
    Anyway paldies par idejām!

  4. #4
    Moderator
    Jan 2009
    Rīga
    4,423

    Aizmirsi piebilst cik precīzi jānosinhronizē.

    Var sinhronizēt da caur jeb ko. Silab, Nordic semicon, Hope RF, Aurel, IR gaisma, LEDs, slotas kāts (pēdējie 2 ir sarkasms). Vajadzīgo pasvītrot. Problēma nav moduļos, bet gan tajā, ko gribi panākts un kāda kļūda ir pieļaujama.

  5. #5
    Senior Member
    Mar 2011
    1,119

    Nav man saprašanas cik kas izmaksā un kādas pūles jāpieliek katrai konkrētai precizitātei. IR nebūtu īpaši ērti.
    Varētu mēģināt sākt ar < 5us, bet viss atkarīgs no izmēriem, cenas un laika patēriņa. Ja var bez lielas piepūles zem 1us , tad jo labāk. Ja stipri sarežģīti, tad var provēt arī ar >5us
    Priekš manis ideālā variantā sinhronizācijas signālu raida no "bāzes" ar to pašu moduli ar ko tiek pārraidīti/saņemti pārējie dati, lai nav jāapkarina ar papildus moduļiem. Ja tas neiet cauri, tad liekam klāt papildus, kas nepieciešams

  6. #6
    Moderator
    Jan 2009
    Rīga
    4,423

    Bet kāpēc jābūt tādai precizitātēi?

    ir divas idejas:
    1) Izmantojam tādu pašu principu kā NTP. Algoritms paliek, bet realizācija vienkāršāka.
    2) Iedomājies situāciju: Raidītājs sūta pliku ON/OFF (OOK modulācija vai FSK). Uztvērēji lokāli ar taimeri skaita savas mikrosekundes. Brīdī kad pazūt sigānls (transition to low) uztvērējs piefiksē sava taimera stāvokli. Nosuta cikos saņema signālu no raidītāja un piegriež savu lokālo pulksteni. Raidītājs apstrādā datus un nākošreiz sūta transition to low nedaudz ātrāk.
    Tāda fiksā vakara ideja. Reakcijas latenci tas tas neizslēdz bet sasinhronizēt varētu ar +/- 4 AVR clk precizitāti. Tas ir mazāk par 1 uS pie takts frekvences 16 MHz. ESP? Da hren viņu zin. Es, kā jau meža dīvainītis, izmantotu Propeller MCU un kādu transīveiri, kuram bez SPI/UART/I2C vēl var arī lasīt raw datus no pina. Ja nemaldos, tad SiLabs tam ir stipri piemērots. nRF? Jāpēta.

  7. #7
    Senior Member
    Nov 2009
    Jēkabpils
    2,058

    Ar arduino īsti nedraudzējos, tāpēc nesaslēgšu un nesaprogrammēšu uz ātro, un arī tad baidos, ka ar to micros() lieta aizies auzās. Bet, ja izmanto 3 modulīšus, tad abi uztvērēji jau nu gan saņemtās paketes apstrādi beigtu (nu pietiekoši) vienlaicīgi. Tādam SI jau nu toč pietiktu saņemot valīdu paketi (da jebkādu, kaut 1 baitu) nonullēt pulksteni. Varbūt var līdzīgā veidā ar nRF, raidīt kaut ko un kad saņemts tas zināmais kaut kas, nonullēt pulksteni. Nez vai čipam no čipa redzami atšķirsies apstrādes laiki.

  8. #8
    Moderator
    Jan 2009
    Rīga
    4,423

    Jurkin! Kā zināt cik uS pagājis no brīža kad tu pabeidz SPI sarunu ar raidītāju līdz brīdim kamēr uztvērējs norausta interrupt kāju? Tas ir laiks! Šoreiz nav atuāli, bet radiovilnis vienā uS noskrien 300 metrus.

  9. #9
    Senior Member
    Mar 2011
    1,119

    Bet kāpēc jābūt tādai precizitātēi?
    Finālā vēlams dabūt 10-20us precizitāti mērījumiem no 2-3 sensoriem. Ieskaitot sensora nostrādāšānas kļūdu + reakcijas ātrumu + laika nobīdi + vēl kādas kļūdas. Jo mazāka kļūda katrā posmā, jo mazāka kopējā kļūda.

    Iedomājies situāciju: Raidītājs sūta pliku ON/OFF (OOK modulācija vai FSK).
    Tagad tik jāizdomā kā nosūtīt pliku ON/OFF. Es pagaidām nevaru izdomāt.
    Un vēl mani neliek mierā doma, kas notiks tad, ja sinhronizācijas signāls pienāks laikā, kad notiek mērījums? Ja tas nojauc mērījumu, tad ir ziepes. Vienīgais ko redzu ir atlikt tajā brīdī sinhronizāciju līdz nākošajam sinhr. signālam. Attiecīgi sinhr. signāli jāsūta pietiekoši bieži, lai izlaižot kļūda nepārsniedz pieļaujamo.

  10. #10
    Moderator
    Jan 2009
    Rīga
    4,423

    Ai. Kaut kas tev ir pārāk samudrīts, un kārtējo reizi negribi stāstīt savu slepeno biznesa plānu.

    Shonizācijai pietiks ar tik tupiem moduļiem kā šie:
    http://www.argus.lv/shop/productinfo/A016293
    http://www.argus.lv/shop/productinfo/A016292

    Manā uztverē, tas izskātās tā:
    sensormodulis:
    ESP8266 pieslēdzas kur vajag un sūta pa Wifi datus.
    HM-R 868 MHz uztvērējs sinhronizācijai
    Sensori kaut kādiem spēkiem pieslēgti pie ESP

    Bāciņa: Arduino
    HM-T 868MHz raidītājs sinhronizācijai.
    Arduino rausta TX pinu teiksim ar kHz (precizēt iekš raidītāja datasheet).

    Rūteris+Serveris Utt, kur dati tiek saņemti pa WiFi un saglabāti/apstrādāti.

    Kamēr rakstīju jauna ideja: Kāpēc jāties? Paņemam ESP un ieliekam iekšā NTP klienta kodu + savu sensoru mērīšanu.
    Nevajadzēs neko lieku.

    Tāda sajūta ka esi saputrojies ko īsti Tev vajag. Patiesībā, nevis saputrojies, bet stāsti pārāk mīklaini.

+