OpenMV MicroPython OpenMV MicroPython OpenMV MicroPython
  • Home
  • Tutorial
  • Libraries
  • Boards
  • Shields
  • Sensors
  • Language
  • CPython
  • Internals
  • Changelog
  • License
/
  • English
  • 简体中文
  • 繁體中文
  • Deutsch
  • 日本語
  • Español
  • Русский
  • Français
  • 한국어
  • Italiano
  • Português
  • Nederlands
  • Română
  • Hrvatski
  • Čeština
  • Polski
  • Suomi
  • Svenska
  • Magyar
  • Türkçe
  • Discussion
  • Tutoriál
    • 1. Rychlý start
    • 2. Přehled Pythonu
    • 3. Řízení hardwaru
    • 4. Vision Sensors
    • 5. Zpracování obrazu
    • 6. NumPy
    • 7. Strojové učení
    • 8. Asyncio
    • 9. Sítě
    • 10. Webové servery
    • 11. Bluetooth
      • 11.1. Proč Bluetooth
      • 11.2. BLE stack
      • 11.3. Rádio a linková vrstva
      • 11.4. Vysílání (advertising) a skenování
      • 11.5. Připojení
      • 11.6. Služby a charakteristiky
      • 11.7. Operace GATT
      • 11.8. Modul aioble
      • 11.9. Vystupování jako periferie
      • 11.10. Vystupování jako central
      • 11.11. Kanály L2CAP
      • 11.12. Souběžné role a více připojení
      • 11.13. Párování a vázání (bonding)
      • 11.14. Shrnutí
    • 12. Hostitelský protokol
    • 13. Nástroje
    • 14. Produkce
  • Knihovny
  • Desky
  • Shieldy
  • Senzory
  • Jazyk
  • CPython
  • Vnitřní mechanismy
  • Seznam změn
  • Licence

On this page

  • 11.3.1. Rádio
  • 11.3.2. Linková vrstva
  • 11.3.3. Co kamera a protějšek sdílejí
  • 11.3.4. Co z toho všeho Python vidí
micropython-doc 0 0
Edit this page
  1. OpenMV MicroPython /
  2. Tutoriál k OpenMV Cam /
  3. 11. Bluetooth /
  4. 11.3. Rádio a linková vrstva
View Source Open in ChatGPT Open in Claude Open in Perplexity

11.3. Rádio a linková vrstva¶

Spodní dvě vrstvy zásobníku BLE jsou z pohledu Pythonu téměř zcela automatické – rádiový čip a vrstvy, které nad ním MicroPython provozuje, zařizují vše od výběru kanálu po opětovné odeslání ztraceného paketu. Tři z voleb, které činí, se přesto projevují až do uživatelského API: výkon, dosah a propustnost.

11.3.1. Rádio¶

BLE používá stejné pásmo 2,4 GHz Industrial-Scientific-Medical (ISM) jako Wi-Fi, mikrovlnné trouby a většina ostatních krátkodosahových bezdrátových zařízení. Pásmo je rozděleno na 40 kanálů širokých 2 MHz.

  • Tři ze 40 kanálů jsou vyhrazeny pro inzerci – krátká vysílání, která oznamují přítomnost zařízení komukoli naslouchajícímu. Jsou rozmístěny napříč pásmem tak, aby posluchač mohl všechny tři rychle proletět a aby rušení na kterémkoli jednom pravděpodobně neodřízlo zařízení od vysílání úplně.

  • Třicet sedm jsou datové kanály. Jakmile se dvě zařízení připojí, vyměňují si na nich pakety a přeskakují mezi nimi podle pseudonáhodné sekvence, na které se obě strany při navázání spojení dohodnou. Adaptivní přeskakování frekvencí umožňuje kterékoli straně označit kanál jako špatný (silné rušení Wi-Fi, mikrovlnka, sousední síť BLE), takže ho sekvence přeskočí.

Vodorovná frekvenční osa od 2400 MHz do 2480 MHz se 40 úzkými sloty kanálů vykreslenými na ní. Tři ze slotů, na spodním okraji, uprostřed a na horním okraji pásma, jsou zvýrazněny jako "advertising channels". Zbývajících 37 je označeno "data channels".

40 kanálů BLE v pásmu 2,4 GHz. Tři jsou pro inzerci, zbytek nese provoz na otevřeném spojení.¶

Rádio vysílá krátké pakety – nejvýše pár milisekund dlouhé – a mezi nimi spí. Tento spánek je to, co dělá technologii nízkoenergetickou. Typický peripheral BLE stráví výrazně méně než jedno procento svého času skutečným vysíláním; zbytek je rádio vypnuté mezi naplánovanými událostmi.

11.3.2. Linková vrstva¶

Linková vrstva je nejmenší jednotka BLE, která komunikuje se svým protějškem na jiném zařízení. Zajišťuje čtyři úkoly.

  • Rámcování paketů. Každý paket nese krátkou hlavičku (přístupová adresa kanálu, délka paketu, řídicí bity), užitečné zatížení a CRC. Přijímač kontroluje CRC a zahazuje cokoli poškozeného.

  • Adresování. Každé zařízení BLE má 48bitovou adresu zařízení, která jej identifikuje na rádiu. Některé jsou veřejné – hardwarový identifikátor přidělený výrobcem, navždy dohledatelný. Některé jsou náhodné – generované na zařízení, periodicky obměňované a volitelně šifrované, aby odposlouchávač nemohl spojit dvě vysílání se stejným fyzickým hardwarem. Adresy se znovu objevují v Vysílání (advertising) a skenování.

  • Plánování spojení. Jakmile se dvě zařízení připojí, linková vrstva plánuje periodické rádiové události na přeskakovací sekvenci – vzdálené od sebe o pevný connection interval – a do každé z nich nabalí jakákoli data, která jsou zařazena ve frontě z vyšší vrstvy GATT. Obě strany se mezi událostmi vracejí ke spánku. Connection interval je páka, kterou si aplikace může vyžádat (viz Připojení).

  • Spolehlivost. Každý paket na spojení je druhou stranou potvrzen. Linková vrstva opětovně odesílá cokoli, na co nedostala odpověď, takže vyšší vrstvy vidí uspořádaný, bezeztrátový proud bajtů. Na rozdíl od UDP – odešli paket a doufej v nejlepší na straně sítí nemá BLE v běžném provozu samostatný nespolehlivý režim – každý paket na otevřeném spojení se opakuje, dokud nedorazí nebo dokud není spojení prohlášeno za ztracené.

Linková vrstva je také místem, kde běží šifrování, jakmile se dvojice zařízení dohodne na klíči během párování (viz Párování a vázání (bonding)). Každý paket na šifrovaném spojení je dešifrován na přijímači dříve, než ho vyšší vrstvy vůbec uvidí.

11.3.3. Co kamera a protějšek sdílejí¶

Rádia na obou koncích se při navázání spojení dohodnou na hrstce parametrů, které řídí konverzaci:

  • Connection interval – jak často se obě strany probouzejí k výměně paketů, kdekoli od 7,5 ms do 4 s.

  • Peripheral latency – kolik po sobě jdoucích intervalů smí peripheral přeskočit, pokud nemá co říci, aby ušetřil energii.

  • Supervision timeout – jak dlouho kterákoli strana čeká, než prohlásí spojení za ztracené, když druhá ztichne.

  • MTU – největší jednotlivý paket, který kterákoli strana doručí GATT (výchozí hodnota 23 bajtů, lze ji vyjednat výše).

Rádio a linková vrstva společně odpovídají za doručování spolehlivých, uspořádaných paketů z jednoho zařízení do druhého při udržování obou rádií vypnutých co nejvíce. Každá vrstva nad nimi se může chovat tak, jako by mezi oběma koncovými body existoval čistý, soukromý bajtový kanál.

11.3.4. Co z toho všeho Python vidí¶

Téměř nic. API bluetooth a aioble neposkytují kanály, přeskakovací sekvence, CRC paketů ani časovače opětovného odeslání; to vše je zařizováno uvnitř portu BLE a rádia. Části, které se projeví, jsou ty, které poskytuje vyjednávání při navázání spojení – connection interval, MTU, typ adresy.

Previous
11.2. BLE stack
Next
11.4. Vysílání (advertising) a skenování

For OpenMV firmware v5.0.0 · based on MicroPython v1.28 · docs built 16 Jun 2026 · Copyright © 2014-2026 by OpenMV, Damien P. George, and others.

Made with Sphinx using the Shibuya theme.