OpenMV MicroPython OpenMV MicroPython OpenMV MicroPython
  • Etusivu
  • Opas
  • Ydinkirjastot
  • Kortit
  • Suojalevyt
  • Anturit
  • Kieli
  • CPython
  • Sisäinen rakenne
  • Muutosloki
/
  • dev
  • English
  • العربية
  • 简体中文
  • 繁體中文
  • Hrvatski
  • Čeština
  • Nederlands
  • Suomi
  • Français
  • Deutsch
  • עברית
  • Magyar
  • Bahasa Indonesia
  • Italiano
  • 日本語
  • 한국어
  • Polski
  • Português (Brasil)
  • Português (Portugal)
  • Română
  • Русский
  • Español
  • Svenska
  • ไทย
  • Türkçe
  • Українська
  • Tiếng Việt
  • Keskustelu
  • Opastus
    • 1. Pika-aloitus
    • 2. Pythonin yleiskatsaus
    • 3. Laitteiston ohjaus
    • 4. Konenäkösensorit
    • 5. Kuvankäsittely
    • 6. NumPy
    • 7. Koneoppiminen
    • 8. Asyncio
    • 9. Verkkotoiminta
    • 10. Web-palvelimet
    • 11. Bluetooth
      • 11.1. Miksi Bluetooth
      • 11.2. BLE-pino
      • 11.3. Radio ja linkkikerros
      • 11.4. Mainostus ja skannaus
      • 11.5. Yhteydet
      • 11.6. Palvelut ja ominaisuudet
      • 11.7. GATT-operaatiot
      • 11.8. aioble-moduuli
      • 11.9. Oheislaitteena toimiminen
      • 11.10. Toimiminen keskusyksikkönä
      • 11.11. L2CAP-kanavat
      • 11.12. Rinnakkaiset roolit ja useat yhteydet
      • 11.13. Pariutuminen ja sidonta
      • 11.14. Yhteenveto
    • 12. Isäntäprotokolla
    • 13. Työkalut
    • 14. Tuotanto
  • Kirjastot
  • Kehitysalustat
  • Lisäkortit
  • Sensorit
  • Kieli
  • CPython
  • Sisäiset toiminnot
  • Muutosloki
  • Lisenssi

Tällä sivulla

  • 11.3.1. Radio
  • 11.3.2. Linkkikerros
  • 11.3.3. Mitä kamera ja vertaislaite jakavat
  • 11.3.4. Mitä Python näkee kaikesta tästä
micropython-doc 0 0
Muokkaa tätä sivua
  1. OpenMV MicroPython /
  2. OpenMV Cam -opastus /
  3. 11. Bluetooth /
  4. 11.3. Radio ja linkkikerros
Näytä lähde Avaa ChatGPT:ssä Avaa Claudessa Avaa Perplexityssä

11.3. Radio ja linkkikerros¶

BLE-pinon kaksi alinta kerrosta ovat lähes täysin automaattisia Pythonin näkökulmasta – radiopiiri ja sen päällä MicroPythonin ajamat kerrokset hoitavat kaiken kanavan valinnasta kadonneen paketin uudelleenlähetykseen. Kolme niiden tekemistä valinnoista näkyy silti käyttäjälle näkyvään API:in asti: teho, kantama ja läpäisykyky.

11.3.1. Radio¶

BLE käyttää samaa 2,4 GHz:n ISM-kaistaa (Industrial-Scientific-Medical) kuin Wi-Fi, mikroaaltouunit ja useimmat muut lyhyen kantaman langattomat. Kaista on jaettu 40 kanavaan, jotka ovat 2 MHz leveitä.

  • Kolme 40 kanavasta on varattu mainostukseen – lyhyisiin lähetyksiin, jotka ilmoittavat laitteen läsnäolosta kaikille kuunteleville. Ne on sijoitettu hajalleen kaistalle, jotta kuuntelija voi pyyhkäistä kaikki kolme nopeasti ja jotta häiriö millä tahansa yhdellä ei todennäköisesti pudota laitetta kokonaan pois eetteristä.

  • Kolmekymmentäseitsemän on datakanavia. Kun kaksi laitetta on yhdistetty, ne vaihtavat paketteja näillä hyppien niiden välillä pseudosatunnaisessa järjestyksessä, josta osapuolet sopivat yhteyden muodostushetkellä. Adaptiivinen taajuushyppely sallii kummankin osapuolen merkitä kanavan huonoksi (raskas Wi-Fi-häiriö, mikroaaltouuni, naapurin BLE-verkko), jolloin järjestys ohittaa sen.

A horizontal frequency axis from 2400 MHz to 2480 MHz with 40 narrow channel slots drawn on it. Three of the slots, at the bottom edge, middle, and upper edge of the band, are highlighted as "advertising channels". The remaining 37 are labelled "data channels".

40 BLE-kanavaa 2,4 GHz:n kaistalla. Kolme on mainostukseen, loput kuljettavat liikennettä avoimessa yhteydessä.¶

Radio lähettää lyhyitä paketteja – korkeintaan parin millisekunnin mittaisia – ja nukkuu niiden välillä. Tuo uni on se, mikä tekee teknologiasta vähäenergisen. Tyypillinen BLE-periferinen viettää selvästi alle yhden prosentin ajastaan tosiasiallisesti lähettäen; loppu on radion sammuttamista ajoitettujen tapahtumien välillä.

11.3.2. Linkkikerros¶

Linkkikerros on pienin BLE:n yksikkö, joka puhuu vastineelleen toisessa laitteessa. Se hoitaa neljä tehtävää.

  • Pakettien kehystys. Jokainen paketti kantaa lyhyen otsakkeen (kanavan käyttöosoite, paketin pituus, ohjausbitit), hyötykuorman ja CRC:n. Vastaanotin tarkistaa CRC:n ja pudottaa kaiken vioittuneen.

  • Osoitteet. Jokaisella BLE-laitteella on 48-bittinen laiteosoite, joka tunnistaa sen radiossa. Jotkin ovat julkisia – valmistajan määrittelemä laitteistotunniste, jäljitettävissä ikuisesti. Jotkin ovat satunnaisia – laitteessa generoituja, ajoittain kierrätettyjä ja valinnaisesti salattuja niin, ettei salakuuntelija voi liittää kahta lähetystä samaan fyysiseen laitteistoon. Osoitteet tulevat uudelleen esiin sivulla Mainostus ja skannaus.

  • Yhteyden ajoitus. Kun kaksi laitetta on yhdistetty, linkkikerros ajoittaa säännöllisiä radiotapahtumia hyppysarjaan – kiinteän yhteysvälin päähän toisistaan – ja pakkaa kuhunkin sen mitä yläpuolisesta GATT-kerroksesta on jonossa. Molemmat osapuolet palaavat uneen tapahtumien välillä. Yhteysväli on säädin, jota sovellus voi pyytää (katso Yhteydet).

  • Luotettavuus. Jokainen yhteyden paketti kuitataan toisen osapuolen toimesta. Linkkikerros lähettää uudelleen kaiken, mikä ei saanut vastausta, joten yläpuoliset kerrokset näkevät järjestetyn, häviöttömän tavuvirran. Toisin kuin UDP – lähetä paketti ja toivo parasta verkkopuolella, BLE:llä ei ole erillistä epäluotettavaa tilaa normaalikäytössä – jokainen avoimen yhteyden paketti yritetään uudelleen, kunnes se saapuu tai linkki julistetaan menetetyksi.

Linkkikerros on myös se, missä salaus ajetaan sen jälkeen, kun laitepari on sopinut avaimesta parituksen aikana (katso Pariutuminen ja sidonta). Jokainen salatun linkin paketti puretaan vastaanottimessa ennen kuin yläpuoliset kerrokset koskaan näkevät sen.

11.3.3. Mitä kamera ja vertaislaite jakavat¶

Molempien päiden radiot sopivat yhteyden muodostushetkellä kourallisesta parametreja, jotka hallitsevat keskustelua:

  • Yhteysväli – kuinka usein osapuolet heräävät vaihtamaan paketteja, missä tahansa 7,5 ms:stä 4 s:iin.

  • Periferinen viive – kuinka monta peräkkäistä väliä periferinen saa ohittaa, jos sillä ei ole mitään sanottavaa, tehon säästämiseksi.

  • Valvonnan aikakatkaisu – kuinka kauan kumpikin osapuoli odottaa ennen kuin julistaa linkin menetetyksi, kun toinen hiljenee.

  • MTU – suurin yksittäinen paketti, jonka kumpikaan osapuoli toimittaa GATT:lle (oletuksena 23 tavua, voidaan neuvotella suuremmaksi).

Radio ja linkkikerros ovat yhdessä vastuussa luotettavien, järjestettyjen pakettien viemisestä laitteelta toiselle pitäen samalla molemmat radiot sammuksissa mahdollisimman paljon. Jokainen yläpuolinen kerros voi vapaasti toimia ikään kuin kahden päätepisteen välillä olisi puhdas, yksityinen tavukanava.

11.3.4. Mitä Python näkee kaikesta tästä¶

Lähes ei mitään. bluetooth- ja aioble-API:t eivät paljasta kanavia, hyppysarjoja, pakettien CRC:itä tai uudelleenlähetysajastimia; ne kaikki hoidetaan BLE-portin ja radion sisällä. Osat, jotka näkyvät läpi, ovat ne, jotka yhteyden muodostushetken neuvottelu paljastaa – yhteysväli, MTU, osoitetyyppi.

Edellinen
11.2. BLE-pino
Seuraava
11.4. Mainostus ja skannaus

OpenMV-laiteohjelmistolle v5.0.0 · perustuu MicroPython v1.28 · dokumentaatio rakennettu 19. kesäkuuta 2026 · Tekijänoikeus © 2014-2026 OpenMV, Damien P. George ja muut.

Tehty Sphinx-työkalulla käyttäen Shibuya theme -teemaa.