OpenMV MicroPython OpenMV MicroPython OpenMV MicroPython
  • Kezdőlap
  • Útmutató
  • Alapkönyvtárak
  • Lapkák
  • Pajzsok
  • Érzékelők
  • Nyelv
  • CPython
  • Belső felépítés
  • Változásnapló
/
  • 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
  • Megbeszélés
  • Útmutató
    • 1. Gyors kezdés
    • 2. Python áttekintés
    • 3. Hardvervezérlés
    • 4. Képérzékelők
    • 5. Képfeldolgozás
    • 6. NumPy
    • 7. Gépi tanulás
    • 8. Asyncio
    • 9. Hálózatkezelés
    • 10. Webszerverek
    • 11. Bluetooth
      • 11.1. Miért Bluetooth
      • 11.2. A BLE verem
      • 11.3. A rádió és a kapcsolati réteg
      • 11.4. Hirdetés és pásztázás
      • 11.5. Kapcsolatok
      • 11.6. Szolgáltatások és karakterisztikák
      • 11.7. GATT műveletek
      • 11.8. Az aioble modul
      • 11.9. Periféria szerepkörben
      • 11.10. Központként való működés
      • 11.11. L2CAP-csatornák
      • 11.12. Egyidejű szerepek és több kapcsolat
      • 11.13. Párosítás és kötés
      • 11.14. Összegzés
    • 12. Gazdagép-protokoll
    • 13. Eszközök
    • 14. Gyártás
  • Könyvtárak
  • Lapok
  • Bővítőlapok
  • Érzékelők
  • Nyelv
  • CPython
  • Belső működés
  • Változásnapló
  • Licenc

Ezen az oldalon

  • 11.3.1. A rádió
  • 11.3.2. A kapcsolati réteg
  • 11.3.3. Mit oszt meg a kamera és egy társ
  • 11.3.4. Mit lát ebből a Python
micropython-doc 0 0
Lap szerkesztése
  1. OpenMV MicroPython /
  2. OpenMV Cam oktatóanyag /
  3. 11. Bluetooth /
  4. 11.3. A rádió és a kapcsolati réteg
Forrás megtekintése Megnyitás ChatGPT-ben Megnyitás Claude-ban Megnyitás Perplexityben

11.3. A rádió és a kapcsolati réteg¶

A BLE-verem alsó két rétege Python szempontjából szinte teljesen automatikus – a rádió-szilícium és a rétegek, amelyeket a MicroPython felette futtat, mindent kezelnek a csatorna kiválasztásától az elveszett csomag újraküldéséig. Az általuk hozott választások közül három mégis átlátszik a felhasználó felé eső API-ba: a teljesítmény, a hatótávolság és az átviteli teljesítmény.

11.3.1. A rádió¶

A BLE ugyanazt a 2,4 GHz-es ipari-tudományos-orvosi (ISM) sávot használja, mint a Wi-Fi, a mikrohullámú sütők és a legtöbb más rövid hatótávolságú vezeték nélküli technológia. A sávot 40 darab, 2 MHz széles csatornára osztják.

  • A 40 csatorna közül három a hirdetés számára van fenntartva – rövid közvetítések, amelyek bejelentik egy eszköz jelenlétét bárkinek, aki figyel. Ezek szét vannak osztva a sávban, hogy egy hallgató mindhármat gyorsan végigpásztázhassa, és hogy az egyiken jelentkező zavar valószínűleg ne tegye teljesen némává az eszközt.

  • Harminchét adatcsatorna. Miután két eszköz csatlakozik, ezeken cserélnek csomagokat, közöttük egy ál-véletlenszerű sorozaton ugrálva, amelyben a két oldal a kapcsolat létrejöttekor megállapodik. Az adaptív frekvenciaugrás lehetővé teszi, hogy bármelyik oldal rossznak jelöljön egy csatornát (erős Wi-Fi-zavar, mikrohullámú sütő, szomszédos BLE-hálózat), így a sorozat kihagyja azt.

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".

A 40 BLE-csatorna a 2,4 GHz-es sávon. Három a hirdetésre szolgál, a többi a forgalmat viszi egy nyitott kapcsolaton.¶

A rádió rövid csomagokat továbbít – legfeljebb néhány ezredmásodperc hosszúakat –, és közöttük alszik. Ez az alvás teszi a technológiát alacsony fogyasztásúvá. Egy tipikus BLE-peripheral az idejének jóval kevesebb mint egy százalékát tölti tényleges átvitellel; a többi az ütemezett események közötti kikapcsolt rádió.

11.3.2. A kapcsolati réteg¶

A kapcsolati réteg a BLE legkisebb egysége, amely egy másik eszközön lévő párjával kommunikál. Négy feladatot kezel.

  • Csomagkeretezés. Minden csomag egy rövid fejlécet (csatorna-hozzáférési cím, csomaghossz, vezérlőbitek), egy hasznos terhelést és egy CRC-t hordoz. A vevő ellenőrzi a CRC-t, és eldob mindent, ami sérült.

  • Címzés. Minden BLE-eszköznek van egy 48 bites eszközcíme, amely azonosítja a rádióban. Némelyik nyilvános – egy hardverazonosító, amelyet a gyártó rendelt hozzá, örökre nyomon követhető. Némelyik véletlenszerű – az eszközön generálva, időszakosan forgatva, és opcionálisan titkosítva, hogy egy lehallgató ne tudjon két átvitelt ugyanahhoz a fizikai hardverhez kötni. A címek újra előkerülnek itt: Hirdetés és pásztázás.

  • Kapcsolatütemezés. Miután két eszköz csatlakozik, a kapcsolati réteg periodikus rádióeseményeket ütemez az ugrási sorozaton – egy fix kapcsolati intervallummal egymástól –, és minden eseménybe becsomagolja a felette lévő GATT-rétegtől sorban álló adatokat. Mindkét oldal visszaalszik az események között. A kapcsolati intervallum egy szabályozó, amelyet az alkalmazás kérhet (lásd Kapcsolatok).

  • Megbízhatóság. Egy kapcsolaton lévő minden csomagot a másik oldal nyugtáz. A kapcsolati réteg újraküld mindent, ami nem kapott választ, így a felette lévő rétegek egy rendezett, veszteségmentes bájtfolyamot látnak. A hálózati oldalon lévő UDP – küldj egy csomagot, remélj a legjobbat-vel ellentétben a BLE-nek normál használat során nincs külön megbízhatatlan módja – egy nyitott kapcsolaton lévő minden csomagot újrapróbál, amíg meg nem érkezik, vagy a kapcsolatot elveszettnek nem nyilvánítják.

A kapcsolati réteg az is, ahol a titkosítás fut, miután egy eszközpár megegyezett egy kulcsban a párosítás során (lásd Párosítás és kötés). Egy titkosított kapcsolaton lévő minden csomagot a vevőnél visszafejtenek, mielőtt a felette lévő rétegek egyáltalán látnák.

11.3.3. Mit oszt meg a kamera és egy társ¶

A két végen lévő rádiók a kapcsolat létrejöttekor megegyeznek néhány paraméterben, amelyek a kommunikációt szabályozzák:

  • A kapcsolati intervallum – milyen gyakran ébred fel a két oldal a csomagok cseréjére, 7,5 ms-tól 4 s-ig bárhol.

  • A peripheral latency – hány egymást követő intervallumot hagyhat ki a peripheral, ha nincs mondanivalója, az energiamegtakarítás érdekében.

  • A felügyeleti időtúllépés – meddig vár bármelyik oldal, mielőtt elveszettnek nyilvánítja a kapcsolatot, ha a másik elnémul.

  • Az MTU – a legnagyobb egyetlen csomag, amelyet bármelyik oldal átad a GATT-nak (alapértelmezetten 23 bájt, felfelé egyeztethető).

A rádió és a kapcsolati réteg együtt felelős azért, hogy megbízható, rendezett csomagokat juttasson el az egyik eszközről a másikra, miközben mindkét rádiót a lehető legtöbbet kikapcsolva tartja. Minden felette lévő réteg szabadon úgy viselkedhet, mintha egy tiszta, privát bájtcsatorna létezne a két végpont között.

11.3.4. Mit lát ebből a Python¶

Szinte semmit. A bluetooth és aioble API-k nem tárnak fel csatornákat, ugrási sorozatokat, csomag-CRC-ket vagy újraküldési időzítőket; ezeket mind a BLE-port és a rádió belsejében kezelik. A valóban átlátszó részek azok, amelyeket a kapcsolat-időbeli egyeztetés feltár – kapcsolati intervallum, MTU, címtípus.

Előző
11.2. A BLE verem
Következő
11.4. Hirdetés és pásztázás

OpenMV firmware v5.0.0 · MicroPython v1.28 alapján · dokumentáció elkészítve 2026. június 19. · Szerzői jog © 2014-2026 OpenMV, Damien P. George és mások.

Készítve Sphinx segítségével a Shibuya theme használatával.