Bosh sahifa Wiki BLE

BLE

BLE — kam energiya sarflaydigan qisqa masofali simsiz aloqa texnologiyasi. To‘liq nomi Bluetooth Low Energy. U sensor, fitness bracelet, smart lock, beacon, tibbiy qurilma, klaviatura va IoT mahsulotlarida qo‘llanadi. BLE klassik Bluetooth bilan bir xil 2.4 GHz diapazonida ishlasa ham, protocol va foydalanish modeli farq qiladi.

BLE kichik paketlarni va vaqti-vaqti bilan aloqa qilishni energiya tejamkor tarzda bajarishga mo‘ljallangan.

Central va peripheral

BLE aloqasida qurilmalar rol oladi:

  • peripheral — o‘zini e’lon qiladi va service taqdim etadi;
  • central — advertisementlarni qidiradi va connection boshlaydi.

Telefon ko‘pincha central, sensor peripheral bo‘ladi.

Qurilma bir vaqtning o‘zida turli connectionlarda boshqa rol olishi mumkin.

Peripheral connection bo‘lmasdan radio orqali qisqa advertisement paket yuboradi.

Unda:

bo‘lishi mumkin.

Advertisement hajmi cheklangan.

Sensitive data ochiq broadcast qilinmaydi.

Scanning

Central atrofdagi advertisementlarni tinglaydi.

Scan:

  • active;
  • passive;
  • filtered;
  • low-power;
  • low-latency

rejimlarga ega bo‘lishi mumkin.

Doimiy intensiv scan battery sarfini oshiradi va OS tomonidan cheklanishi mumkin.

Connection

Central peripheralga connection request yuboradi.

Connection interval qanchalik tez-tez paket almashilishini belgilaydi.

Qisqa interval past latency, ko‘proq energiya sarfi beradi.

Peripheral latency va supervision timeout ham connection behavioriga ta’sir qiladi.

GAP

Generic Access Profile discovery, advertisement, connection va securityga oid umumiy qoidalarni belgilaydi.

Device role va address tushunchalari GAP bilan bog‘liq.

GAP service data modelidan farq qiladi.

GATT

Generic Attribute Profile connected qurilmalar orasidagi data modelini belgilaydi.

GATT:

  • service;
  • characteristic;
  • descriptor;
  • operation

tushunchalariga ega.

Bir qurilma GATT server, boshqasi GATT client bo‘ladi.

Service

Service bir vazifaga tegishli characteristiclar guruhidir.

Masalan:

  • heart rate;
  • battery;
  • device information;
  • custom sensor.

Service 16-bit standard yoki 128-bit custom UUID bilan aniqlanadi.

Characteristic

Characteristic qiymat va access propertylarga ega.

Operationlar:

  • read;
  • write;
  • write without response;
  • notify;
  • indicate.

Har characteristic qaysi operationga ruxsat berishini e’lon qiladi.

Descriptor

Characteristic haqida qo‘shimcha metadata beradi.

Masalan, Client Characteristic Configuration Descriptor notification yoki indicationni yoqish uchun ishlatiladi.

Descriptor ham UUIDga ega.

Barcha characteristic descriptorga ega bo‘lishi shart emas.

Notify va indicate

Notification server qiymat o‘zgarganda clientga yuboradi, protocol darajasida acknowledgement talab qilmaydi.

Indication acknowledgement oladi.

Indication ishonchliroq, lekin throughput pastroq.

Client oldindan subscriptionni yoqadi.

MTU

ATT MTU bitta operationda uzatiladigan payload hajmiga ta’sir qiladi.

Katta MTU throughputni yaxshilashi mumkin.

Negotiated qiymat ikki tomon imkoniyatiga bog‘liq.

Application katta xabarni chunklarga bo‘lishi va qayta yig‘ishi mumkin.

Pairing

Pairing qurilmalar orasida security key yaratadi.

Usullar device input va display imkoniyatiga bog‘liq:

  • Just Works;
  • passkey;
  • numeric comparison;
  • out-of-band.

Just Works man-in-the-middle himoyasini cheklashi mumkin.

Bonding

Pairing natijasidagi keylar keyingi connectionlar uchun saqlansa bonding deyiladi.

Qurilma qayta ulanayotganda pairing takrorlanmaydi.

Bond table to‘lsa eski recordlarni boshqarish kerak.

Factory reset keylarni tozalashi mumkin.

Address

BLE public yoki random addressdan foydalanishi mumkin.

Privacy uchun resolvable private address vaqt o‘tishi bilan o‘zgaradi.

Application faqat MAC addressni permanent identity deb qabul qilmasligi kerak.

Bond yoki application-level ID ishlatiladi.

Throughput

Real throughput:

  • connection interval;
  • PHY;
  • MTU;
  • packet length;
  • radio shovqini;
  • write turi;
  • OS stack

ga bog‘liq.

BLE katta video yoki uzluksiz yuqori bandwidth uchun mo‘ljallanmagan.

PHY

BLE turli physical layer rejimlarini qo‘llashi mumkin:

  • 1M;
  • 2M;
  • coded PHY.

2M tezroq, coded PHY uzoqroq masofa va robustness uchun ishlatiladi.

Barcha device barcha PHYni qo‘llamaydi.

Mobil permission

Android va iOS scan hamda connection uchun permission va lifecycle cheklovlariga ega.

Locationga oid tarixiy bog‘liqlik va yangi nearby-device permissionlari platforma versiyasiga qarab farq qiladi.

Background scan qat’iy cheklanishi mumkin.

Security

Custom characteristicga authentication va authorization qo‘llanadi.

Faqat yashirin UUID security emas.

Xavflar:

Application-level encryption ayrim threat modelda qo‘shiladi.

Connection parameter

Connection interval, peripheral latency va supervision timeout bir-biriga mos bo‘lishi kerak. Timeout juda qisqa bo‘lsa shovqinli muhitda aloqa tez uziladi; juda uzun bo‘lsa uzilgan qurilmani aniqlash sekinlashadi. Telefon OS’i requested parameterlarni aynan qabul qilishi shart emas.

Advertising interval

Tez-tez advertisement qurilmani tezroq topishga yordam beradi, ammo battery ko‘proq sarflanadi. Beacon deploymentda interval va transmit power kerakli masofa hamda batareya umriga qarab tanlanadi.

Service discovery

Connectiondan keyin client service va characteristiclarni topadi. Firmware update GATT structure’ni o‘zgartirsa cached service ma’lumoti eskirishi mumkin. Service Changed indication yoki reconnect jarayoni cache’ni yangilaydi.

Firmware update

BLE orqali OTA firmware bo‘laklarga bo‘lib uzatiladi. Har chunk sequence va checksumga ega bo‘lishi mumkin. Yakuniy image signature bilan tekshiriladi; faqat BLE pairing update’ning haqiqiyligini kafolatlamaydi.

Bog‘liq tushunchalar

Bluetooth Low Energy, BLE, GAP, GATT, Service, Characteristic, Advertisement, Scanning, Pairing, Bonding, IoT