Advertising στο BLE: τι ειναι, μορφες πακετων και μηχανισμοι διαφημισης

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

Advertising (διαφήμιση) — ειναι ενας μηχανισμος στο Bluetooth Low Energy με τον οποιο μια συσκευη Peripheral γνωστοποιει την παρουσια της, στελνοντας συντομα πακετα δεδομενων σε τρια αφιερωμενα καναλια (37, 38, 39). Το Bluetooth Core Specification 5.4 (2023) οριζει δυο τυπους διαφημισης: connectable — η συσκευη ειναι ετοιμη για συνδεση, και non-connectable — χρησιμοποιειται απο φαρους (Beacon) που μονο μεταδιδουν δεδομενα χωρις εγκατασταση αμφιδρομης συνδεσης. Οι παραμετροι της διαφημισης — το διαστημα απο 20 ms εως 10.24 s, η ισχυς του πομπου απο -20 εως +10 dBm και ο τυπος πακετου — επηρεαζουν αμεσα την ταχυτητα εντοπισμου της συσκευης και την καταναλωση ενεργειας της, κατι που ειναι κρισιμης σημασιας για την αναπτυξη συσκευων IoT με τροφοδοσια μπαταριας.

Βασικα σημεια

  • Advertising — ο βασικος μηχανισμος εντοπισμου συσκευων BLE, που λειτουργει σε τρια αφιερωμενα καναλια 37, 38 και 39.
  • Το τυπικο πακετο διαφημισης περιοριζεται σε 31 byte δεδομενων, το extended advertising (BLE 5.0) αυξανει το οριο στα 251 byte.
  • Το Connectable advertising επιτρεπει στο Central να συνδεθει στη συσκευη, το non-connectable — μονο μονοδρομη μεταδοση (φαροι).
  • Το διαστημα διαφημισης επηρεαζει την καταναλωση ενεργειας: στο διαστημα 1000 ms το μεσο ρευμα ειναι 10 φορες χαμηλοτερο απο οτι στα 100 ms.
  • Το scan response επιτρεπει την αποστολη επιπλεον 31 byte δεδομενων ως απαντηση στο αιτημα του Central.

Τι ειναι το Advertising στο BLE;

Advertising (διαφημιση) — ειναι η διαδικασια περιοδικης αποστολης συντομων πακετων δεδομενων με την οποια μια συσκευη BLE γνωστοποιει την παρουσια και τη διαθεσιμοτητα της. Σε αντιθεση με το κλασικο Bluetooth, οπου η αναζητηση συσκευων διαρκει δευτερολεπτα, το BLE advertising επιτρεπει τον εντοπισμο της συσκευης σε χιλιοστα του δευτερολεπτου με ελαχιστη καταναλωση ενεργειας.

Η αρχιτεκτονικη BLE χωριζει τις συσκευες σε δυο ρολους: Peripheral (διαφημιζεται) και Central(σαρωνει). Το Peripheral στελνει πακετα advertising, και το Central σαρωνει το καναλι και αποφασιζει για τη συνδεση. Αυτο το ασυμμετρικο μοντελο ειναι το βασικο πλεονεκτημα του BLE: η συσκευη που διαφημιζεται καταναλωνει ενεργεια μονο για την αποστολη συντομων πακετων, οχι για συνεχη ακροαση του καναλιου.

Η διαδικασια advertising αποτελειται απο τρια σταδια: advertising event (αποστολη πακετου και στα τρια καναλια), scan request/response (προαιρετικη ανταλλαγη με το Central) και connection request (εκκινηση συνδεσης απο το Central). Καθε σταδιο διαχειριζεται ο Bluetooth Controller στο επιπεδο Link Layer.

Καναλια διαφημισης και ο σκοπος τους

Το BLE χρησιμοποιει 40 καναλια στη ζωνη των 2.4 GHz, εκ των οποιων τα 37 (2402 MHz), 38 (2426 MHz) και 39 (2480 MHz) ειναι αποκλειστικα αφιερωμενα στο advertising. Τρια καναλια ειναι ενας συμβιβασμος μεταξυ αξιοπιστιας εντοπισμου και ευρυζωνικοτητας: ενα καναλι μπορει να ειναι κατειλημμενο απο Wi-Fi ή αλλες παρεμβολες, αλλα η συσκευη θα εντοπιστει στα αλλα δυο.

Το καναλι 37 βρισκεται διπλα στο καναλι Wi-Fi 1, το καναλι 39 — διπλα στο καναλι Wi-Fi 6, και το καναλι 38 βρισκεται αναμεσα τους, στη ζωνη ελαχιστων παρεμβολων. Η επιλογη τριων καναλιων εγγυαται οτι η συσκευη θα εντοπιστει ακομα και σε συνθηκες πυκνης ραδιοφωνικης κυκλοφοριας — για παραδειγμα, σε ενα εμπορικο κεντρο με δεκαδες σημεια προσβασης Wi-Fi.

Το Peripheral στελνει το πακετο advertising διαδοχικα και στα τρια καναλια — αυτο ονομαζεται advertising event. Η κεντρικη συσκευη σαρωνει ενα καναλι καθε φορα, εναλλασσοντας μεταξυ τους συμφωνα με τον αλγοριθμο που υλοποιειται στον Bluetooth Controller. Η πιθανοτητα εντοπισμου κατα τη διαρκεια ενος advertising event απουσια συγκρουσεων ειναι κοντα στο 100%.

Τυποι πακετων διαφημισης

To Bluetooth Core Specification οριζει αρκετους τυπους advertising PDU (Protocol Data Unit), ο καθενας με τον δικο του σκοπο. Βασικοι τυποι: ADV_IND (connectable undirected advertising) — τυπικη διαφημιση με δυνατοτητα συνδεσης, ADV_NONCONN_IND (non-connectable undirected advertising) — μονο διαφημιση χωρις συνδεση, ADV_SCAN_IND (scannable undirected advertising) — υποστηριζει scan request, ADV_DIRECT_IND (directed advertising) — διαφημιση για συγκεκριμενο Central.

ADV_IND — ο πιο συχνος τυπος, που χρησιμοποιειται στις περισσοτερες συσκευες BLE. Μετα τη ληψη ADV_IND, το Central μπορει να στειλει connection request και να εγκαταστησει συνδεση. ADV_NONCONN_IND χρησιμοποιειται απο φαρους (Beacon): η συσκευη διαφημιζεται αλλα δεν δεχεται αιτηματα συνδεσης — μονο μονοδρομη μεταδοση δεδομενων.

Τυπος PDUΠεριγραφηΣυνδεσηScan response
ADV_INDΤυπικη διαφημισηΝαιΝαι
ADV_DIRECT_INDΔιαφημιση για συγκεκριμενο CentralΝαιΟχι
ADV_NONCONN_INDΧωρις συνδεση (φαροι)ΟχιΟχι
ADV_SCAN_INDΜε υποστηριξη σαρωσηςΝαιΝαι
ADV_EXT_INDExtended advertising (BLE 5.0)ΝαιΝαι

ADV_DIRECT_IND περιεχει τη διευθυνση του στοχου Central, επιτρεποντας γρηγορη εγκατασταση συνδεσης χωρις αναμονη σαρωσης. Χρησιμοποιειται οταν οι συσκευες ηδη «γνωριζονται» — για παραδειγμα, μετα απο επανασυνδεση σε ενα προηγουμενως αντιστοιχισμενο smartphone. Αυτος ο τυπος μειωνει την καταναλωση ενεργειας διοτι δεν απαιτει διαφημιση σε ολα τα καναλια.

Διαστημα διαφημισης και καταναλωση ενεργειας

Advertising interval — ειναι ο χρονος μεταξυ διαδοχικων advertising event. Η προδιαγραφη επιτρεπει διαστημα απο 20 ms εως 10.24 s με βημα 0.625 ms. Το πραγματικο διαστημα υπολογιζεται ως το αθροισμα μιας σταθερης τιμης και μιας τυχαιας καθυστερησης (0–10 ms), που μειωνει την πιθανοτητα συγκρουσεων μεταξυ πολλων συσκευων που διαφημιζονται.

Η επιλογη του διαστηματος ειναι μια ισορροπια μεταξυ ταχυτητας εντοπισμου και καταναλωσης ενεργειας. Σε διαστημα 20 ms, η συσκευη θα εντοπιστει σε 20–30 ms, αλλα το μεσο ρευμα θα ειναι περιπου 1–2 mA. Σε διαστημα 1000 ms — ο εντοπισμος θα διαρκεσει εως 1 δευτερολεπτο, αλλα το μεσο ρευμα θα πεσει στα 50–100 µA. Για τις περισσοτερες συσκευες IoT, το συνιστωμενο διαστημα ειναι 200–1000 ms.

Συμφωνα με το Texas Instruments Application Report SWRA478 (2024), η αυξηση του advertising interval απο 100 ms σε 1000 ms μειωνει την καταναλωση ενεργειας κατα 90%. Εαν η συσκευη δεν απαιτει αμεσο εντοπισμο (για παραδειγμα, ενας αισθητηρας θερμοκρασιας που στελνει δεδομενα μια φορα το λεπτο), το βελτιστο διαστημα ειναι 1000–2000 ms.

Μια επιπλεον παραμετρος — advertising timeout — ο μεγιστος χρονος κατα τον οποιο η συσκευη διαφημιζεται. Στο iOS, το Peripheral απενεργοποιει αυτοματα τη διαφημιση μετα απο 180 δευτερολεπτα σε κατασταση παρασκηνιου. Στο Android δεν υπαρχει τετοιος περιορισμος, αλλα οι κατασκευαστες μπορουν να προσθεσουν τα δικα τους ορια.

Scan Response: επιπλεον δεδομενα

Scan Response — ειναι ενα επιπλεον πακετο δεδομενων (εως 31 byte) που το Peripheral στελνει ως απαντηση σε ενα scan request απο το Central. Το scan request στελνεται απο το Central μετα τη ληψη του πακετου advertising, εαν χρειαζεται περισσοτερες πληροφοριες πριν τη συνδεση. Το Scan Response δεν απαιτει επιπλεον διαφημιση — στελνεται μονο κατοπιν αιτηματος, εξοικονομωντας καναλι.

Τυπικη κατανομη δεδομενων: στο advertising PDU (31 byte) τοποθετουνται οι σημαιες (3 byte), τα UUID των υπηρεσιων (2–16 byte) και τα δεδομενα κατασκευαστη (υπολοιπα byte). Στο scan response μεταδιδεται το πληρες ονομα της συσκευης (εως 28 byte) και επιπλεον UUID ή TX Power Level. Αυτη η διαιρεση επιτρεπει στο Central να φιλτραρει γρηγορα συσκευες βασει UUID χωρις να διαβαζει το scan response.

Κατα το σχεδιασμο του πακετου advertising, λάβετε υπόψη: εαν ολα τα 31 byte ειναι κατειλημμενα στο advertising PDU, το Central δεν θα μπορει να προσδιορισει εαν η συσκευη υποστηριζει scan response. Συνιστάται να αφήνονται τουλαχιστον 3–5 byte ελευθερα στο advertising PDU για να υποδειχθει η δυνατοτητα scan response.

Extended Advertising στο BLE 5.0

Extended Advertising (BLE 5.0) — ειναι μια επεκταση του μηχανισμου διαφημισης που αυξανει το μεγεθος του πακετου advertising απο 31 σε 251 byte και προσθετει νεους τυπους πακετων. Το Extended Advertising υποστηριζει επισης το coded PHY για αυξηση της εμβελειας επικοινωνιας εως 1 χλμ σε ανοικτο χωρο και την περιοδικη διαφημιση (Periodic Advertising) για συγχρονισμο πολλων Central.

Βασικες καινοτομιες: ADV_EXT_IND — extended advertising PDU που μπορει να μεταδωσει εως 251 byte δεδομενων σε ενα μονο πακετο. Το Extended Advertising χρησιμοποιει τα πρωτευοντα καναλια (37, 38, 39) μονο για να υποδειξει σε ποιο δευτερευον καναλι (0–36) μεταδιδονται τα πληρη δεδομενα. Αυτο μειωνει το φορτιο στα καναλια διαφημισης και αυξανει τη συνολικη ευρυζωνικοτητα του συστηματος.

Periodic Advertising — ενας επιπλεον μηχανισμος οπου το Peripheral στελνει δεδομενα σε δευτερευοντα καναλια με σταθερο διαστημα, και το Central μπορει να συγχρονιστει με αυτη την ακολουθια. Χρησιμοποιειται για υπηρεσιες που απαιτουν τακτικη ενημερωση δεδομενων — για παραδειγμα, μεταδοση ηχου ή μετρησεις αισθητηρων σε πραγματικο χρονο.

ΠαραμετροςBLE προτυποExtended BLE 5.0
Μεγ. μεγεθος πακετου31 byte251 byte
ΚαναλιαΜονο 37, 38, 39+ δευτερεύοντα 0–36
ΕμβελειαΕως 100 mΕως 1000 m (coded PHY)
Ταχυτητα1 Mbps125 kbps – 2 Mbps
PeriodicΟχιΝαι

Ρυθμιση διαφημισης σε iOS και Android

iOS (Core Bluetooth) παρεχει το CBPeripheralManager για τη διαχειριση της διαφημισης. Οι παραμετροι advertising οριζονται μεσω του λεξικου advertisementData με τα κλειδια CBAdvertisementDataLocalNameKey (ονομα συσκευης), CBAdvertisementDataServiceUUIDsKey (UUID υπηρεσιων), CBAdvertisementDataTxPowerLevelKey (ισχυς). Το iOS διαχειριζεται αυτοματα το advertising interval και δεν επιτρεπει τη χειροκινητη ρυθμιση.

swift
import CoreBluetooth

class AdvertiserManager: NSObject, CBPeripheralManagerDelegate {

    private var peripheralManager: CBPeripheralManager!

    func startBLEAdvertising() {
        let data: [String: Any] = [
            CBAdvertisementDataLocalNameKey: "BLE Beacon",
            CBAdvertisementDataServiceUUIDsKey: [
                CBUUID("180F")
            ],
            CBAdvertisementDataIsConnectable: true
        ]
        peripheralManager.startAdvertising(data)
    }
}

Android (BluetoothLeAdvertiser) παρεχει πιο λεπτομερη ελεγχο. Διαθεσιμα: AdvertiseSettings — ρυθμιση λειτουργιας (LOW_POWER, BALANCED, LOW_LATENCY), ισχυος πομπου και διαστηματος; AdvertiseData — δεδομενα πακετου. Το Android υποστηριζει extended advertising (BLE 5.0) σε συμβατες συσκευες, αλλα το μεριδιο αυτων των συσκευων στην αγορα ειναι περιπου 30–40%.

java
BluetoothLeAdvertiser advertiser =
    BluetoothAdapter.getDefaultAdapter()
    .getBluetoothLeAdvertiser();

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

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

advertiser.startAdvertising(
    settings, data, advertiseCallback
);

Κατα την αναπτυξη μιας διαπλατφορμης εφαρμογης BLE, λαβετε υποψη τις διαφορες: το iOS δεν επιτρεπει τον αμεσο ελεγχο του advertising interval, αλλα εγγυαται σταθερη λειτουργια σε ολες τις συσκευες; το Android παρεχει πληρη ελεγχο, αλλα ο κατακερματισμος εκδοσεων και κατασκευαστων μπορει να οδηγησει σε ασυμβατοτητα. Συνισταται η δοκιμη του advertising σε πραγματικες συσκευες και των δυο πλατφορμων.

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

Ποια ειναι η διαφορα μεταξυ connectable και non-connectable advertising;

To Connectable advertising (ADV_IND) επιτρεπει στο Central να εγκαταστησει μια αμφιδρομη συνδεση με τη συσκευη. To Non-connectable (ADV_NONCONN_IND) — μονο μονοδρομη μεταδοση δεδομενων, που χρησιμοποιειται απο φαρους (Beacon) για εκπομπη αναγνωριστικου χωρις δυνατοτητα συνδεσης.

Ποσα byte μπορουν να σταλθουν σε ενα πακετο διαφημισης;

Το τυπικο πακετο advertising — 31 byte, scan response — αλλα 31 byte. Το Extended Advertising (BLE 5.0+) αυξανει το οριο στα 251 byte με τη χρηση δευτερευοντων καναλιων για μεταδοση δεδομενων.

Ποιο advertising interval να επιλεξω για μια συσκευη IoT;

Για τις περισσοτερες συσκευες IoT συνισταται 500–1000 ms. Εαν απαιτειται γρηγορος εντοπισμος (π.χ. για συνδεση ακουστικων) — 20–50 ms. Για αισθητηρες με σπανια αποστολη δεδομενων — 1000–2000 ms για εξοικονομηση ενεργειας.

Γιατι το BLE χρησιμοποιει τρια καναλια διαφημισης;

Τρια καναλια (37, 38, 39) ειναι συμβιβασμος μεταξυ αξιοπιστιας εντοπισμου και ευρυζωνικοτητας. Ενα καναλι μπορει να ειναι κατειλημμενο απο Wi-Fi, αλλα η συσκευη θα εντοπιστει στα αλλα δυο. Το καναλι 38 βρισκεται στη ζωνη ελαχιστων παρεμβολων μεταξυ των καναλιων Wi-Fi.

Πως επηρεαζει η διαφημιση τη διαρκεια ζωης της μπαταριας;

Η διαφημιση ειναι ο κυριος καταναλωτης ενεργειας στο BLE. Σε διαστημα 1000 ms, το μεσο ρευμα ειναι 50–100 µA, επιτρεποντας στη συσκευη να λειτουργει ενα χρονο με μπαταρια CR2032. Σε διαστημα 20 ms, το ρευμα αυξανεται στα 1–2 mA, μειωνοντας τον χρονο λειτουργιας σε λιγες εβδομαδες.

Συνοψη

  • Advertising — μηχανισμος εντοπισμου συσκευων BLE που λειτουργει σε τρια καναλια (37, 38, 39) με μεγεθος πακετου εως 31 byte.
  • Υπαρχουν πεντε τυποι advertising PDU: ADV_IND, ADV_DIRECT_IND, ADV_NONCONN_IND, ADV_SCAN_IND και ADV_EXT_IND για BLE 5.0.
  • Το διαστημα διαφημισης κυμαινεται απο 20 ms εως 10.24 s και επηρεαζει αμεσα την ταχυτητα εντοπισμου και την καταναλωση ενεργειας.
  • Το Scan Response παρεχει 31 byte επιπλεον δεδομενων κατοπιν αιτηματος του Central χωρις αυξηση της καταναλωσης ενεργειας του Peripheral.
  • Το Extended Advertising (BLE 5.0) αυξανει το πακετο στα 251 byte και υποστηριζει εμβελεια εως 1 χλμ μεσω coded PHY.
  • Στο iOS, η διαφημιση διαχειριζεται μεσω CBPeripheralManager, στο Android — μεσω BluetoothLeAdvertiser με λεπτομερεις ρυθμισεις.
  • Η σωστη επιλογη του advertising interval και του τυπου πακετου καθοριζει την ενεργειακη αποδοτικοτητα και τον χρονο αυτονομιας της συσκευης BLE.

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

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

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

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