Peripheral — τι είναι, ρόλος στο BLE και πώς διαφημίζει υπηρεσίες

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-07-15 Χρόνος ανάγνωσης: 9 λεπ

Peripheral — είναι μια συσκευή στην αρχιτεκτονική Bluetooth Low Energy που διαφημίζει τις υπηρεσίες της μέσω πακέτων advertising και περιμένει σύνδεση από το Central. Στο οικοσύστημα IoT, το Peripheral είναι συνήθως μια συσκευή με περιορισμένη κατανάλωση ενέργειας: αισθητήρας θερμοκρασίας, έξυπνη λάμπα, βραχιόλι γυμναστικής, beacon. Το Bluetooth Core Specification 5.4 (2023) ορίζει το πρωτόκολλο διαφήμισης: το Peripheral στέλνει περιοδικά πακέτα advertising που περιέχουν το όνομα της συσκευής, τη λίστα υπηρεσιών και δεδομένα χρήστη, ενώ το Central σαρώνει αυτά τα πακέτα και αποφασίζει αν θα συνδεθεί. Μετά τη δημιουργία σύνδεσης, το Peripheral λειτουργεί ως διακομιστής GATT, παρέχοντας υπηρεσίες και χαρακτηριστικά για ανάγνωση και εγγραφή.

Κύρια σημεία

  • Peripheral — μια παθητική συσκευή BLE που διαφημίζει υπηρεσίες και περιμένει σύνδεση από το Central.
  • Τα πακέτα διαφήμισης (advertising) περιέχουν το όνομα της συσκευής, UUID υπηρεσιών, δεδομένα κατασκευαστή και RSSI για εκτίμηση απόστασης.
  • Το Peripheral λειτουργεί ως διακομιστής GATT που αποθηκεύει υπηρεσίες και χαρακτηριστικά για πρόσβαση από το Central.
  • Η κατανάλωση ενέργειας του Peripheral μπορεί να είναι από 5 µA σε λειτουργία ύπνου έως 15 mA κατά την ενεργή μετάδοση δεδομένων.
  • Μετά τη σύνδεση, το Peripheral μπορεί να απενεργοποιήσει τη διαφήμιση για εξοικονόμηση ενέργειας και να την ενεργοποιήσει ξανά όταν χρειαστεί.

Τι είναι το Peripheral στο BLE;

Peripheral — είναι μια συσκευή BLE που υλοποιεί διακομιστή GATT και διαφημίζει τις δυνατότητές της μέσω καναλιών advertising. Σε αντίθεση με το Central, που αναζητά ενεργά συσκευές, το Peripheral περιμένει παθητικά σύνδεση. Πρόκειται για ένα ασύμμετρο μοντέλο, βελτιστοποιημένο για ενεργειακή απόδοση συσκευών με μπαταρία.

Το Peripheral μπορεί να βρίσκεται σε διάφορες λειτουργίες: advertising (διαφήμιση), connected (συνδεδεμένο με Central), sleeping (ύπνος με απενεργοποιημένη διαφήμιση). Στη λειτουργία advertising, το Peripheral στέλνει περιοδικά σύντομα πακέτα δεδομένων, καταναλώνοντας ελάχιστη ενέργεια. Μετά τη σύνδεση, το Peripheral μεταβαίνει σε λειτουργία connected, όπου ανταλλάσσει δεδομένα με το Central σύμφωνα με το συμφωνημένο connection interval.

Σύμφωνα με το Bluetooth Core Specification 5.4 (2023), μια συσκευή μπορεί δυναμικά να εναλλάσσεται μεταξύ των ρόλων Peripheral και Central, αλλά κάθε στιγμή, για μία σύνδεση, ο ρόλος είναι σταθερός. Ένα τυπικό σενάριο: ο αισθητήρας IoT λειτουργεί συνεχώς στο ρόλο Peripheral, και το smartphone διαχειρίζεται τη σύνδεση ως Central.

Είναι σημαντικό για τον προγραμματιστή να κατανοήσει: το Peripheral καθορίζει ποιες υπηρεσίες και χαρακτηριστικά είναι διαθέσιμα και διαχειρίζεται την πρόσβαση σε αυτά. Η δομή του διακομιστή GATT στο Peripheral καθορίζει ποια δεδομένα μπορεί να διαβάσει το Central και ποιες εντολές μπορεί να γράψει.

Διαδικασία διαφήμισης (Advertising)

Advertising (διαφήμιση) — είναι ο μηχανισμός με τον οποίο το Peripheral ανακοινώνει την παρουσία του. Το Peripheral στέλνει πακέτα advertising σε τρία αποκλειστικά κανάλια (37, 38, 39) με διάστημα από 20 ms έως 10.24 δευτερόλεπτα. Κάθε πακέτο διαφήμισης περιέχει σταθερές πληροφορίες και μπορεί να περιλαμβάνει προαιρετικά δεδομένα.

Υπάρχουν δύο τύποι πακέτων διαφήμισης: advertising PDU (κύριο πακέτο) και scan response PDU (απάντηση σε αίτημα Central). Το κύριο πακέτο περιέχει υποχρεωτικά πεδία: τύπο πακέτου, διεύθυνση αποστολέα, δεδομένα. Εάν το Central στείλει αίτημα σάρωσης (scan request), το Peripheral απαντά με ένα πρόσθετο πακέτο που περιέχει πληρέστερες πληροφορίες — για παράδειγμα, το πλήρες όνομα της συσκευής.

Οι παράμετροι advertising επηρεάζουν την ταχύτητα ανίχνευσης και την κατανάλωση ενέργειας. Advertising interval — ο χρόνος μεταξύ αποστολής πακέτων. Όσο μικρότερο είναι το διάστημα, τόσο γρηγορότερα το Central ανιχνεύει τη συσκευή, αλλά τόσο περισσότερη ενέργεια καταναλώνει το Peripheral. Συνιστώμενο διάστημα: 100–1000 ms για τις περισσότερες συσκευές.

ΠαράμετροςΕύροςΕπίπτωσηΣύσταση
Advertising Interval20 ms – 10.24 sΤαχύτητα ανίχνευσης, ενέργεια100–1000 ms για ισορροπία
Advertising Channels37, 38, 39Αξιοπιστία ανίχνευσηςΚαι τα 3 κανάλια υποχρεωτικά
Tx Power−20 – +10 dBmΕμβέλεια, παρεμβολές0 dBm για εσωτερικό, +4 dBm για εξωτερικό
Advertising Timeout0 – 180 δευτερόλεπταΔιάρκεια διαφήμισης0 (άπειρο) για beacons

Δομή πακέτου διαφήμισης

Το πακέτο διαφήμισης BLE έχει όριο 31 byte για το advertising PDU και επιπλέον 31 byte για το scan response. Μέσα στο πακέτο, τα δεδομένα οργανώνονται σε μορφή AD Structure (Advertising Data Structure): κάθε πεδίο έχει τύπο (1 byte), μήκος (1 byte) και τιμή.

Οι πιο συχνά χρησιμοποιούμενοι AD Type: Flags (0x01) — λειτουργίες σύνδεσης και ανίχνευσης, Local Name (0x08 ή 0x09) — όνομα συσκευής, Service UUID List (0x02–0x07) — λίστα UUID υπηρεσιών, Manufacturer Specific Data (0xFF) — δεδομένα κατασκευαστή. Η σωστή συσκευασία δεδομένων σε ένα πακέτο 31 byte είναι σημαντικό καθήκον για τον προγραμματιστή ενσωματωμένων συσκευών.

Για συσκευές που χρειάζεται να μεταδώσουν περισσότερα δεδομένα, υπάρχει το extended advertising (BLE 5.0+), το οποίο αυξάνει το μέγεθος του πακέτου διαφήμισης σε 251 byte και προσθέτει νέους τύπους πακέτων. Το extended advertising υποστηρίζει επίσης κωδικοποιημένα κανάλια (coded PHY) για αύξηση της εμβέλειας έως 1 km σε ανοιχτό χώρο.

Κατά το σχεδιασμό του πακέτου διαφήμισης, λάβετε υπόψη: όσο περισσότερα δεδομένα στο πακέτο advertising, τόσο μεγαλύτερη η πιθανότητα σύγκρουσης με άλλες συσκευές. Για γρήγορη ανίχνευση, συνιστάται η τοποθέτηση μόνο κρίσιμων δεδομένων (Service UUID) στο advertising PDU και των πρόσθετων δεδομένων — στο scan response.

Peripheral ως διακομιστής GATT

Ο διακομιστής GATT στο Peripheral περιέχει όλες τις υπηρεσίες και χαρακτηριστικά που το Central μπορεί να ανακαλύψει και με τα οποία μπορεί να αλληλεπιδράσει. Μετά τη σύνδεση, το Central ανακαλύπτει υπηρεσίες (discover services), στη συνέχεια χαρακτηριστικά (discover characteristics) και αλληλεπιδρά μαζί τους μέσω του πρωτοκόλλου GATT.

Το Peripheral ως διακομιστής GATT πρέπει να επεξεργάζεται σωστά τα αιτήματα από το Central: ανάγνωση (read request), εγγραφή (write request), ειδοποιήσεις (notification) και επιβεβαιωμένες ειδοποιήσεις (indication). Κάθε αίτημα διέρχεται από τον πίνακα GATT, όπου κάθε χαρακτηριστικό (υπηρεσία, χαρακτηριστικό, περιγραφέας) αντιστοιχεί σε ένα Handle — μια 16-bit διεύθυνση.

Ο προγραμματιστής του Peripheral καθορίζει τα δικαιώματα πρόσβασης για κάθε χαρακτηριστικό: μόνο ανάγνωση, μόνο εγγραφή, ανάγνωση και εγγραφή, με ή χωρίς κρυπτογράφηση. Για εμπιστευτικά δεδομένα (προσωπικές πληροφορίες, ιατρικές παραμέτρους) συνιστάται η απαίτηση κρυπτογράφησης μέσω MITM Protection.

Peripheral στο iOS: CBPeripheralManager

CBPeripheralManager — η κλάση Core Bluetooth για την υλοποίηση του ρόλου Peripheral στο iOS. Διαχειρίζεται τον διακομιστή GATT, δημοσιεύει υπηρεσίες και χαρακτηριστικά, επεξεργάζεται αιτήματα από το Central. Σε αντίθεση με το CBCentralManager, το CBPeripheralManager δεν σαρώνει — μόνο διαφημίζει και εξυπηρετεί συνδέσεις.

Τα κύρια βήματα υλοποίησης Peripheral στο iOS: αρχικοποίηση του CBPeripheralManager, προσθήκη υπηρεσιών μέσω add, έναρξη διαφήμισης μέσω startAdvertising, επεξεργασία αιτημάτων από το Central μέσω του εκπροσώπου CBPeripheralManagerDelegate.

swift
import CoreBluetooth

class BLEPeripheralManager: NSObject, CBPeripheralManagerDelegate {

    private var peripheralManager: CBPeripheralManager!

    func startAdvertising() {
        let advertisementData: [String: Any] = [
            CBAdvertisementDataLocalNameKey: "BLE Sensor",
            CBAdvertisementDataServiceUUIDsKey: [
                CBUUID("180F")
            ]
        ]
        peripheralManager.startAdvertising(advertisementData)
    }

    func peripheralManagerDidUpdateState(
        _ peripheral: CBPeripheralManager
    ) {
        if peripheral.state == .poweredOn {
            startAdvertising()
        }
    }
}

Το iOS επιτρέπει στο Peripheral να λειτουργεί σε λειτουργία παρασκηνίου όταν το κλειδί bluetooth-peripheral είναι παρόν στο Background Modes. Στο παρασκήνιο, το iOS μπορεί να διαφημίζει με περιορισμένο σύνολο δεδομένων και να εξυπηρετεί συνδέσεις. Για μακροχρόνια διαφήμιση (πάνω από 180 δευτερόλεπτα), χρησιμοποιήστε την επιλογή CBAdvertisementDataWaitForResponseFromCentral για εξοικονόμηση ενέργειας.

Peripheral στο Android: BluetoothLeAdvertiser

Android παρέχει το BluetoothLeAdvertiser για εργασία στο ρόλο Peripheral (από API 21). Το API επιτρέπει την έναρξη διαφήμισης με παραμέτρους που μπορούν να ρυθμιστούν: ισχύς πομπού, διάστημα διαφήμισης, δεδομένα πακέτου. Το Android υποστηρίζει επίσης extended advertising (BLE 5.0) σε συμβατές συσκευές.

java
import android.bluetooth.le.*;

private BluetoothLeAdvertiser advertiser;

public void startPeripheral() {
    BluetoothAdapter adapter =
        BluetoothAdapter.getDefaultAdapter();
    advertiser = adapter.getBluetoothLeAdvertiser();

    AdvertiseData data = new AdvertiseData.Builder()
        .setIncludeDeviceName(true)
        .addServiceUuid(
            new ParcelUuid(
                UUID.fromString("0000180F-0000-1000-8000-00805F9B34FB")
            )
        )
        .build();

    AdvertiseSettings settings = new AdvertiseSettings.Builder()
        .setAdvertiseMode(AdvertiseSettings.ADVERTISE_MODE_LOW_POWER)
        .setTxPowerLevel(AdvertiseSettings.ADVERTISE_TX_POWER_MEDIUM)
        .build();

    advertiser.startAdvertising(
        settings, data, advertiseCallback
    );
}

Στο Android, η υποστήριξη για Peripheral εξαρτάται από τον κατασκευαστή και την έκδοση OS. Δεν υποστηρίζουν όλες οι συσκευές το BluetoothLeAdvertiser — ελέγξτε μέσω adapter.isMultipleAdvertisementSupported(). Από το Android 10, για εργασία στο ρόλο Peripheral απαιτείται άδεια BLUETOOTH_ADVERTISE, καθώς και αίτημα χρόνου εκτέλεσης για εφαρμογές με target SDK 31+.

Ενεργειακή απόδοση Peripheral

Ενεργειακή απόδοση — το βασικό πλεονέκτημα του BLE, και το Peripheral παίζει κύριο ρόλο σε αυτό. Η συσκευή μπορεί να λειτουργήσει από μπαταρία CR2032 (220 mAh) για περισσότερο από ένα χρόνο χάρη στη βελτιστοποιημένη κατανάλωση ενέργειας. Το Peripheral περνά το μεγαλύτερο μέρος του χρόνου σε λειτουργία ύπνου με απενεργοποιημένη διαφήμιση, ξυπνώντας μόνο για να στείλει ένα πακέτο διαφήμισης ή να επεξεργαστεί ένα αίτημα από το Central.

Η κατανάλωση ενέργειας του Peripheral σε διάφορες λειτουργίες: λειτουργία ύπνου (deep sleep) — 1–5 µA, idle με ενεργοποιημένο χρονοδιακόπτη — 10–50 µA, advertising — 5–15 mA (κατά τη διάρκεια αποστολής πακέτου), connected — 5–10 mA (κατά τη διάρκεια connection event). Με advertising interval 1000 ms και διάρκεια πακέτου 4 ms, το μέσο ρεύμα είναι περίπου 50–100 µA.

Σύμφωνα με την Texas Instruments Application Report (SWRA478, 2024), η βελτιστοποίηση του advertising interval από 100 ms σε 1000 ms μειώνει τη μέση κατανάλωση ενέργειας κατά 90%. Πρόσθετη εξοικονόμηση επιτυγχάνεται με τη χρήση slave latency (παράλειψη connection events), μείωση του Tx Power σε μικρές αποστάσεις και απενεργοποίηση της διαφήμισης μετά τη σύνδεση (connectable advertising).

Συχνές Ερωτήσεις

Μπορεί το Peripheral να ξεκινήσει την αποστολή δεδομένων;

Ναι, μέσω του μηχανισμού ειδοποιήσεων (Notify/Indicate). Αν και ο εκκινητής της σύνδεσης είναι πάντα το Central, μετά τη σύνδεση το Peripheral μπορεί να στείλει δεδομένα μέσω ειδοποιήσεων GATT χωρίς ρητό αίτημα από το Central. Για αυτό, το Central πρέπει να εγγραφεί εκ των προτέρων μέσω CCCD.

Πόσο καιρό μπορεί να διαφημίζεται το Peripheral;

Η διάρκεια διαφήμισης δεν περιορίζεται από την προδιαγραφή, αλλά στην πράξη περιορίζεται από την ενέργεια της μπαταρίας. Στο iOS, το Peripheral μπορεί να διαφημίζεται στο παρασκήνιο όχι περισσότερο από 180 δευτερόλεπτα ανά συνεδρία χωρίς πρόσθετες ρυθμίσεις. Στο Android, η διαφήμιση μπορεί να λειτουργεί απεριόριστα, αλλά μειώνει σημαντικά τον χρόνο αυτόνομης λειτουργίας.

Πώς να μειώσω την κατανάλωση ενέργειας του Peripheral χωρίς απώλεια λειτουργικότητας;

Αυξήστε το advertising interval (συνιστάται 500–1000 ms), χρησιμοποιήστε slave latency για παράλειψη connection events, απενεργοποιήστε τη διαφήμιση μετά τη σύνδεση και επιλέξτε την ελάχιστη Tx Power που επαρκεί για σταθερή επικοινωνία στην απαιτούμενη απόσταση.

Τι είναι το non-connectable advertising και σε τι χρησιμεύει;

Non-connectable advertising — λειτουργία κατά την οποία το Peripheral διαφημίζεται αλλά δεν δέχεται αιτήματα σύνδεσης. Χρησιμοποιείται για beacons που μόνο μεταδίδουν δεδομένα (π.χ. αναγνωριστικό καταστήματος) χωρίς δημιουργία αμφίδρομης σύνδεσης. Εξοικονομεί ενέργεια σε σύγκριση με το connectable advertising.

Ποια δεδομένα μπορούν να μεταδοθούν στο πακέτο διαφήμισης (31 byte);

Σε 31 byte μπορούν να συμπεριληφθούν: σημαίες (3 byte), όνομα συσκευής (έως 28 byte σε συντομευμένη μορφή), λίστα UUID υπηρεσιών (2–16 byte ανά UUID), δεδομένα κατασκευαστή (έως 26 byte). Βέλτιστη στρατηγική — τοποθετήστε τα UUID υπηρεσιών στο advertising PDU για φιλτράρισμα και το πλήρες όνομα στο scan response.

Σύνοψη

  • Peripheral — διακομιστής GATT BLE που διαφημίζει τις υπηρεσίες του και περιμένει σύνδεση από το Central για ανταλλαγή δεδομένων.
  • Τα πακέτα διαφήμισης μεταδίδονται στα κανάλια 37, 38, 39 με διάστημα από 20 ms έως 10.24 s και περιορίζονται σε 31 byte δεδομένων.
  • Το Peripheral αποθηκεύει υπηρεσίες και χαρακτηριστικά στον πίνακα GATT, παρέχοντας στο Central πρόσβαση σε δεδομένα μέσω ανάγνωσης, εγγραφής και ειδοποιήσεων.
  • Στο iOS, το Peripheral υλοποιείται μέσω CBPeripheralManager, στο Android — μέσω BluetoothLeAdvertiser με διακομιστή GATT.
  • Η κατανάλωση ενέργειας του Peripheral σε λειτουργία ύπνου είναι 1–5 µA, επιτρέποντας λειτουργία έως ένα έτος από μπαταρία CR2032.
  • Η βελτιστοποίηση του advertising interval και του slave latency μπορεί να μειώσει την κατανάλωση ενέργειας έως 90% χωρίς απώλεια λειτουργικότητας.
  • Η σωστή δομή του πακέτου διαφήμισης και του διακομιστή GATT καθορίζει τη συμβατότητα, την ταχύτητα ανίχνευσης και την αποδοτικότητα της συσκευής BLE.

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης