الإعلان في 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 مللي ثانية إلى 10.24 ثانية، وقدرة المرسل من -20 إلى +10 ديسيبل ملي واط ونوع الحزمة — بشكل مباشر على سرعة اكتشاف الجهاز واستهلاكه للطاقة، وهو أمر بالغ الأهمية عند تطوير أجهزة إنترنت الأشياء التي تعمل بالبطارية.

الخلاصة

  • الإعلان هو الآلية الأساسية لاكتشاف أجهزة BLE، ويعمل على ثلاث قنوات مخصصة 37 و38 و39.
  • حزمة الإعلان القياسية محدودة بـ 31 بايت من البيانات، ويزيد الإعلان الموسع (BLE 5.0) الحد إلى 251 بايت.
  • يسمح الإعلان القابل للاتصال (connectable) لـ Central بالاتصال بالجهاز، بينما الإعلان غير القابل للاتصال (non-connectable) هو إرسال أحادي الاتجاه فقط (منارات).
  • يؤثر فاصل الإعلان على استهلاك الطاقة: عند فاصل 1000 مللي ثانية، يكون متوسط التيار أقل 10 مرات مما هو عليه عند 100 مللي ثانية.
  • يسمح استجابة المسح (scan response) بإرسال 31 بايت إضافية من البيانات استجابةً لطلب Central.

ما هو الإعلان في BLE؟

الإعلان (Advertising) هو عملية إرسال دوري لحزم بيانات قصيرة يعلن من خلالها جهاز BLE عن وجوده وتوافره. على عكس Bluetooth الكلاسيكي حيث يستغرق اكتشاف الأجهزة ثوانٍ، يسمح إعلان BLE باكتشاف الجهاز في أجزاء من الثانية مع استهلاك طاقة ضئيل.

تقسم بنية BLE الأجهزة إلى دورين: Peripheral (يعلن) وCentral (يمسح). يرسل Peripheral حزم الإعلان، بينما يمسح Central الهواء ويقرر ما إذا كان سيتصل. هذا النموذج غير المتماثل هو ميزة رئيسية لـ BLE: ينفق جهاز المعلن الطاقة فقط على إرسال حزم قصيرة وليس على الاستماع المستمر للهواء.

تتكون عملية الإعلان من ثلاث مراحل: advertising event (إرسال الحزمة على جميع القنوات الثلاث)، scan request/response (تبادل اختياري مع Central) وconnection request (بدء الاتصال من قبل Central). تتم إدارة كل مرحلة بواسطة Bluetooth Controller على مستوى Link Layer.

قنوات الإعلان ووظيفتها

يستخدم BLE 40 قناة في نطاق 2.4 جيجاهرتز، منها 37 (2402 ميجاهرتز) و38 (2426 ميجاهرتز) و39 (2480 ميجاهرتز) مخصصة حصريًا للإعلان. ثلاث قنوات هي حل وسط بين موثوقية الاكتشاف وسعة الإنتاجية: قد تكون قناة واحدة مشغولة بشبكة Wi-Fi أو تداخلات أخرى، ولكن سيتم اكتشاف الجهاز على القناتين الأخريين.

تقع القناة 37 بالقرب من قناة Wi-Fi 1، والقناة 39 بالقرب من قناة Wi-Fi 6، والقناة 38 تقع بينهما في منطقة أقل التداخلات. اختيار ثلاث قنوات يضمن اكتشاف الجهاز حتى في البيئات الراديوية الكثيفة — على سبيل المثال، في مركز تجاري به عشرات نقاط الوصول Wi-Fi.

يرسل Peripheral حزمة الإعلان بالتسلسل على جميع القنوات الثلاث — وهذا ما يسمى advertising event. يقوم الجهاز المركزي بمسح قناة واحدة في كل مرة، بالتبديل بينها وفقًا لخوارزمية مطبقة في Bluetooth Controller. احتمال الاكتشاف خلال advertising event واحد في حالة عدم وجود تصادمات يقترب من 100%.

أنواع حزم الإعلان

Bluetooth Core Specification تحدد عدة أنواع من PDU الإعلان (Protocol Data Unit)، كل منها له غرضه الخاص. الأنواع الرئيسية هي: ADV_IND (connectable undirected advertising) — إعلان قياسي مع إمكانية الاتصال، ADV_NONCONN_IND (non-connectable undirected advertising) — إعلان فقط بدون اتصال، ADV_SCAN_IND (scannable undirected advertising) — يدعم طلب المسح، ADV_DIRECT_IND (directed advertising) — إعلان لـ Central معين.

ADV_IND هو النوع الأكثر شيوعًا المستخدم في معظم أجهزة BLE. عند استلام ADV_IND، يمكن لـ Central إرسال طلب اتصال وإنشاء اتصال. ADV_NONCONN_IND يُستخدم في المنارات (Beacon): يعلن الجهاز ولكنه لا يقبل طلبات الاتصال — فقط إرسال بيانات أحادي الاتجاه.

نوع PDUالوصفاتصالاستجابة المسح
ADV_INDإعلان قياسينعمنعم
ADV_DIRECT_INDإعلان لـ Central معيننعملا
ADV_NONCONN_INDبدون اتصال (منارات)لالا
ADV_SCAN_INDمع دعم المسحنعمنعم
ADV_EXT_INDإعلان موسع (BLE 5.0)نعمنعم

ADV_DIRECT_IND يحتوي على عنوان Central المستهدف، مما يسمح بإنشاء اتصال سريع دون انتظار المسح. يُستخدم عندما تكون الأجهزة «تعرف» بعضها البعض — على سبيل المثال، بعد إعادة الاتصال بهاتف ذكي تم إقرانه مسبقًا. هذا النوع يقلل من استهلاك الطاقة لأنه لا يتطلب الإعلان على جميع القنوات.

فاصل الإعلان واستهلاك الطاقة

فاصل الإعلان (Advertising interval) هو الوقت بين أحداث الإعلان المتتالية. تسمح المواصفات بفاصل من 20 مللي ثانية إلى 10.24 ثانية بخطوة 0.625 مللي ثانية. يُحسب الفاصل الفعلي كمجموع قيمة ثابتة وتأخير عشوائي (0–10 مللي ثانية)، مما يقلل من احتمال التصادمات بين أجهزة إعلان متعددة.

اختيار الفاصل هو توازن بين سرعة الاكتشاف واستهلاك الطاقة. عند فاصل 20 مللي ثانية، سيتم اكتشاف الجهاز خلال 20–30 مللي ثانية، لكن متوسط التيار سيكون حوالي 1–2 مللي أمبير. عند فاصل 1000 مللي ثانية، سيستغرق الاكتشاف حتى ثانية واحدة، لكن متوسط التيار سينخفض إلى 50–100 ميكروأمبير. لمعظم أجهزة إنترنت الأشياء، الفاصل الموصى به هو 200–1000 مللي ثانية.

وفقًا لتقرير تطبيق Texas Instruments SWRA478 (2024)، زيادة فاصل الإعلان من 100 مللي ثانية إلى 1000 مللي ثانية يقلل استهلاك الطاقة بنسبة 90%. إذا كان الجهاز لا يتطلب اكتشافًا فوريًا (على سبيل المثال، مستشعر درجة حرارة ينقل البيانات مرة واحدة في الدقيقة)، فإن الفاصل الأمثل هو 1000–2000 مللي ثانية.

معلمة إضافية هي مهلة الإعلان (advertising timeout) — أقصى وقت يعلن خلاله الجهاز. في iOS، يقوم Peripheral تلقائيًا بإيقاف الإعلان بعد 180 ثانية في الخلفية. في Android لا يوجد مثل هذا القيد، ولكن قد يضيف المصنعون حدودهم الخاصة.

استجابة المسح: بيانات إضافية

استجابة المسح (Scan Response) هي حزمة بيانات إضافية (حتى 31 بايت) يرسلها Peripheral استجابةً لطلب مسح من Central. يتم إرسال طلب المسح بواسطة Central بعد استلام حزمة الإعلان إذا كان بحاجة إلى مزيد من المعلومات قبل الاتصال. لا تتطلب استجابة المسح إعلانًا إضافيًا — يتم إرسالها فقط عند الطلب، مما يوفر عرض النطاق.

توزيع البيانات النموذجي: PDU الإعلان (31 بايت) يحتوي على أعلام (3 بايت) ومعرفات UUID للخدمات (2–16 بايت) وبيانات الشركة المصنعة (البايتات المتبقية). استجابة المسح تحمل اسم الجهاز الكامل (حتى 28 بايت) ومعرفات UUID إضافية أو مستوى طاقة الإرسال. هذا الفصل يسمح لـ Central بتصفية الأجهزة بسرعة حسب UUID دون قراءة استجابة المسح.

عند تصميم حزمة الإعلان، ضع في اعتبارك: إذا كانت جميع البايتات 31 مشغولة في PDU الإعلان، فلن يتمكن Central من تحديد ما إذا كان الجهاز يدعم استجابة المسح. يوصى بترك 3–5 بايتات على الأقل فارغة في PDU الإعلان للإشارة إلى قدرة استجابة المسح.

الإعلان الموسع في BLE 5.0

الإعلان الموسع (Extended Advertising BLE 5.0) هو امتداد لآلية الإعلان يزيد حجم حزمة الإعلان من 31 إلى 251 بايت ويضيف أنواع حزم جديدة. يدعم Extended Advertising أيضًا coded PHY لزيادة مدى الاتصال حتى 1 كم في المناطق المفتوحة والإعلان الدوري (Periodic Advertising) لمزامنة عدة Central.

الابتكارات الرئيسية: ADV_EXT_IND — PDU إعلان موسع يمكنه إرسال حتى 251 بايت من البيانات في حزمة واحدة. يستخدم Extended Advertising القنوات الأولية (37 و38 و39) فقط للإشارة إلى أي قناة ثانوية (0–36) يتم نقل البيانات الكاملة عليها. هذا يقلل الحمل على قنوات الإعلان ويزيد من إنتاجية النظام الإجمالية.

الإعلان الدوري (Periodic Advertising) هو آلية إضافية حيث يرسل Peripheral البيانات على قنوات ثانوية بفاصل زمني ثابت، ويمكن لـ Central المزامنة مع هذا التسلسل. يُستخدم للخدمات التي تتطلب تحديثات منتظمة للبيانات — على سبيل المثال، بث الصوت أو قراءات المستشعرات في الوقت الفعلي.

المعلمةBLE القياسيExtended BLE 5.0
الحجم الأقصى للحزمة31 بايت251 بايت
القنوات37 و38 و39 فقط+ ثانوية 0–36
المدىحتى 100 محتى 1000 م (coded PHY)
السرعة1 ميجابت/ثانية125 كيلوبت/ثانية – 2 ميجابت/ثانية
دوريلانعم

إعداد الإعلان في iOS وAndroid

iOS (Core Bluetooth) يوفر CBPeripheralManager لإدارة الإعلان. يتم تعيين معلمات الإعلان من خلال قاموس advertisementData بالمفاتيح CBAdvertisementDataLocalNameKey (اسم الجهاز)، CBAdvertisementDataServiceUUIDsKey (معرفات UUID للخدمات)، CBAdvertisementDataTxPowerLevelKey (مستوى الطاقة). يدير iOS تلقائيًا فاصل الإعلان ولا يسمح بتعيينه يدويًا.

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 الإعلان الموسع (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 لا يسمح بالتحكم في فاصل الإعلان مباشرة ولكنه يضمن تشغيلًا مستقرًا على جميع الأجهزة؛ Android يوفر تحكمًا كاملاً، لكن تجزئة الإصدارات والمصنعين قد تؤدي إلى عدم التوافق. يوصى باختبار الإعلان على أجهزة حقيقية من كلا المنصتين.

الأسئلة الشائعة

ما الفرق بين الإعلان القابل للاتصال وغير القابل للاتصال؟

الإعلان القابل للاتصال (ADV_IND) يسمح لـ Central بإنشاء اتصال ثنائي الاتجاه مع الجهاز. الإعلان غير القابل للاتصال (ADV_NONCONN_IND) هو فقط إرسال بيانات أحادي الاتجاه، يُستخدم في المنارات (Beacon) لبث معرف دون إمكانية الاتصال.

كم بايت يمكن إرسالها في حزمة الإعلان؟

حزمة الإعلان القياسية هي 31 بايت، واستجابة المسح 31 بايت إضافية. يزيد الإعلان الموسع (BLE 5.0+) الحد إلى 251 بايت باستخدام قنوات ثانوية لنقل البيانات.

ما فاصل الإعلان الذي يجب اختياره لجهاز إنترنت الأشياء؟

معظم أجهزة إنترنت الأشياء يوصى لها بـ 500–1000 مللي ثانية. إذا كان الاكتشاف السريع مطلوبًا (مثل توصيل سماعات الرأس)، استخدم 20–50 مللي ثانية. لأجهزة الاستشعار ذات الإرسال النادر للبيانات، استخدم 1000–2000 مللي ثانية لتوفير الطاقة.

لماذا يستخدم BLE ثلاث قنوات إعلان؟

ثلاث قنوات (37 و38 و39) هي حل وسط بين موثوقية الاكتشاف وسعة الإنتاجية. قد تكون قناة واحدة مشغولة بشبكة Wi-Fi، ولكن سيتم اكتشاف الجهاز على القناتين الأخريين. القناة 38 تقع في منطقة أقل التداخلات بين قنوات Wi-Fi.

كيف يؤثر الإعلان على عمر البطارية؟

الإعلان هو المستهلك الرئيسي للطاقة في BLE. عند فاصل 1000 مللي ثانية، متوسط التيار هو 50–100 ميكروأمبير، مما يسمح للجهاز بالعمل لمدة عام على بطارية CR2032. عند فاصل 20 مللي ثانية، يرتفع التيار إلى 1–2 مللي أمبير، مما يقلل وقت التشغيل إلى عدة أسابيع.

الملخص

  • الإعلان هو آلية اكتشاف أجهزة BLE تعمل على ثلاث قنوات (37 و38 و39) بحجم حزمة يصل إلى 31 بايت.
  • يوجد خمسة أنواع من PDU الإعلان: ADV_IND وADV_DIRECT_IND وADV_NONCONN_IND وADV_SCAN_IND وADV_EXT_IND لـ BLE 5.0.
  • يتراوح فاصل الإعلان من 20 مللي ثانية إلى 10.24 ثانية ويؤثر مباشرة على سرعة الاكتشاف واستهلاك طاقة الجهاز.
  • توفر استجابة المسح 31 بايت إضافية من البيانات بناءً على طلب Central دون زيادة استهلاك طاقة Peripheral.
  • الإعلان الموسع (BLE 5.0) يزيد الحزمة إلى 251 بايت ويدعم مدى يصل إلى 1 كم عبر coded PHY.
  • في iOS، تتم إدارة الإعلان عبر CBPeripheralManager؛ في Android عبر BluetoothLeAdvertiser مع إعدادات مفصلة.
  • الاختيار الصحيح لفاصل الإعلان ونوع الحزمة يحدد كفاءة الطاقة وعمر بطارية جهاز BLE.

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا