تطوير أجهزة إنترنت الأشياء باستخدام Bluetooth LE
تقنية بلوتوث جعل بقوة مكانتها في مجال إنترنت الأشياء. جزء من هذه التقنية ، يسمى Bluetooth LE ( Bluetooth Low Energy ، المعروف أيضًا باسم Bluetooth Smart ، المعروف أيضًا باسم BLE ) يضع نفسه مباشرة كخيار مثالي لإنترنت الأشياء ( إنترنت الأشياء ). من الصعب الاختلاف. تعرف BLE بالفعل كيفية توجيه حركة مرور الإنترنت ، وتحديد الإحداثيات في الغرف ، وربط وحدات التحكم المنطقية القابلة للبرمجة الصناعية ، ودعم خوادم WEB ، وربط المقاييس ، وموازين الحرارة ، وأجهزة مراقبة معدل ضربات القلب ، وأجهزة قياس الأكسجين ، وأجهزة مراقبة ضغط الدم ، والعديد من الأشياء الأخرى. وC بليهيتم حل العديد من المشكلات المتأصلة في حلول Wi-Fi تلقائيًا . لم يمض وقت طويل قبل اللحظة التي يمكن فيها تنظيم الأجهزة ذات BLE في شبكة MESH ، باستخدام تقنية مشابهة لـ ZigBee . ينعكس هذا بالفعل في مواصفات Bluetooth 5.0.لذلك ، عند تطوير وحدة إنترنت الأشياء الخاصة بي ، فضلت BLE بدون شروط بدلاً من استخدام Wi-Fi . سوف أعتبر الجزء المحيطي من شبكة BLE باستخدام وحدة التصحيح K66BLEZ كمثال .هنا أود أن أصف طريقي للتطوير من الجهل شبه الكامل لـ BLE إلى الإنتاج التسلسلي.تم التعرف على وحدة K66BLEZ1 في هذه المقالات:.
. FatFs
.
وحدة K66BLEZ كما الإرسال والاستقبال بليه الاستخدامات رقاقة MKW40Z160 ( 48 ميغاهيرتز اللحاء-M0 +، 160 KB فلاش، RAM 20 KB ) إنتاج حفر NXP . الرقاقة مثيرة للاهتمام في ذلك ، إلى جانب BLE ، يمكن أن تعمل أيضًا كجهاز إرسال واستقبال لإشارات المعيار 802.15.4 . والمعيار 802.15.4 ، كما تعلم ، هو الناقل في تقنية ZigBee . لم يتم إصدار مكدس ZigBee نفسه لـ MKW40Z ، ولكن تم تقديم برنامج ثابت بالفعل حيث يعمل 802.15.4 في وقت واحد مع BLE .يظهر رسم تخطيطي لجزء من وحدة مع شريحة BLE أدناه.
(انقر للتكبير)وبدلا من رقاقة MKW40 بالفعل رقاقة MKW41 مع حجم 128 KB RAM، 512 قدرة KB فلاش، ودعم لكافة البروتوكولات الشعبية: BLE 4.2، بليه وشبكة، وزيجبي، الموضوع A، والإصدار IPv6 6LoBLE . لا توجد وثائق مفتوحة على الشريحة الجديدة حتى الآن ، لكنها تعد بأن تكون متوافقة مع MKW40.تتصل شريحة MKW40 BLE في الوحدة بوحدة التحكم الدقيقة الرئيسية MK66 مع واجهات SPI و I2C. كما تربط واجهة I2C الشريحة بشريحة الشاحن. يتم تنفيذ قناة الاتصال الرئيسية على واجهة SPI بمعدل بت 6 ميغابت / ثانية.يمكن إجراء تصحيح البرنامج في شريحة MKW40 من خلال واجهة SWD باستخدام محول JTAG ومن خلال واجهة تصحيح الأخطاء ، يتم إخراج UART0 أيضًا إلى موصل مصحح الأخطاء X4.يوفر NXP أكثر من عشرين مثالًا على تنفيذ التطبيقات المختلفة على شريحة MKW40 ، بما في ذلك: الضغط ، الجلوكوز ، درجة الحرارة ، مستشعرات القرب ، أجهزة قياس معدل ضربات القلب ، إلخ. هناك تطبيقات ل UART اللاسلكية ومحمل الإقلاع اللاسلكي.لقد قمت بإعادة هيكلة عميقة لإطار NXP لهذه الرقائق وأنشأت ملفات تعريف جديدة مع برامج تجريبية على Windows PC لا تتطلب محولًا منفصلاً على جانب الكمبيوتر الشخصي. لكن المزيد عن ذلك لاحقًا.من الصعب تعلم Bluetooth LE. والسبب هو المواصفات الضخمة وعدد كبير من عباراتها الموجزة في توثيق الشركات المصنعة ، والتي تبدأ على الفور بمصطلحات غير عادية. لذا فلنبدأ به.فك الشفرة وترجمة المصطلحات والاختصارات العامية.
- Pairing — (). BLE . , PIN .
- Bonding — (). BLE .
- Device authentication — () , .
- Advertising — BLE (). , , , .
- Scanning — BLE . , .
- Profile — . , , .
- UUID — universally unique identifier. 128- .
- BLE Host — . BLE , . GAP, GATT, GATT, L2CA.
- BLE Controller — . BLE - Bluetooth.
- HCI — Host Controller Interface. API BLE BLE .
- GAP — Generic Access Profile, . layer (). . , BLE .
- GATT — Generic Attribute Profile, . . — (, , ...) , , .. , UUID.
- L2CA — Logical Link Control and Adaptation Layer. . , , , , . BLE .
- SMP — Security Manager Protocol. . L2CA.
- LTK — Long-Term Key. BLE .
- IRK — Identity Resolving Key. .
- CSRK — Connection Signature Resolving Key. .
- RAND — 64- , LTK
- EDIV — 16- , LTK
- MITM — man-in-the-middle. .
- Message integrity — .
- — , . BSP (board support package), HAL (hardware abstraction layer), OSA (OS abstraction layer), (middleware) : , , .
عند اختيار شريحة لـ BLE ، قمت بإجراء تحليل صغير للعروض من أشهر الشركات المصنعة. الأهم من ذلك كله أنني كنت مهتمًا بتكوين البرامج والأطر وأدوات التجميع والتصحيح المقترحة للمشروعات في إطار ARM الأساسي. كان العامل المهم هو الاستمرارية مع بيئة IAR وإطار RTOS MQX التي يتم استخدامها عند تطوير التطبيق على المعالج الرئيسي للوحدة النمطية.يوفر SDK لشريحة nRF51822 مع النواة Cortex - M0 . جمعت في IAR ، KEIL ، دول مجلس التعاون الخليجي. يتم تمثيل مجموعة BLE بمكتبة متجانسة بدون رموز مصدر تسمى SoftDevice حيث يتم تنفيذ جميع واجهات برمجة التطبيقات: GAP و GATT و L2CA و HCI. حول هذه المكتبة تم بناء إطار عمل مع السائقين. يأتي الإطار مع اثنين من RTOS: Keil's RL-ARM RTX و FreeRTOS . يستخدم الإطار تقنية تسلسل protobuf وتصحيح أخطاء Segger RTT .بالإضافة إلى ذلك ، يتم تقديم nrf5 IoT SDK .. يتضمن رموز مصدر بروتوكولات MQTT ، COAP ، TLS (مأخوذة من مشروع MBED) ، cJSON ، lwip (مكدس بروتوكول TCP / IPv4 / IPv6 مجاني) ، واجهة مأخذ توصيل ، محول IPv6. يوجد أيضًا 6LoWPAN ، ولكن بدون كود المصدر.على ARM ، فإنه يجعل فقط رقائق BLE ثنائية النواة CC2640 ( Cortex-M3 و Cortex-M0 ) ، ولكن المواصفات المقابلة هي Bluetooth 4.2 . للتنزيل ، يوفر SDK SimpleLink Bluetooth Low Energy Software Stack 2.2.0 . في بيئة IAR. يأتي مع RTOS TI-RTOS 2.16 الخاص به وإطار عمل مطور حول مكتبات المكدس BLE. تتضمن SDK كأحد السيناريوهات استخدام معالج تطبيق خارجي - معالج التطبيق البسيط (SAP). يشار إلى رقاقة CC2640 نفسها باسم معالج الشبكة البسيط (SNP). فيما بينها ، يتم تأسيس الاتصال بموجب بروتوكول يسمى واجهة معالج الشبكة الموحدة(NPI). على جانب CC2640 ، يتم استخدام TI-RTOS بالضرورة ، أما من ناحية معالج SAP ، فيمكنك استخدام RTOS حسب تقديرك. يتم توفير شفرة المصدر لبروتوكول NPI مع SDK لكل من جانب SAP وجانب SNP. هذه تقنية SimpleLink .تنقسم حزمة BLE نفسها إلى 3 مكتبات مُجمَّعة مسبقًا بدون مصادر: المضيف ، وحدة التحكم ، HCI. تعمل المكتبات الثلاث فقط على معالج Cortex-M3 ، وهو جزء من شريحة CC2640. بالإضافة إلى دراسة TI-RTOS ، سيحتاج المستخدم إلى دراسة آلية برنامج خاص أو بروتوكول للتفاعل مع مكدس BLE يسمى iCall.تقوم بتصنيع رقائق ATBTLC1000 Bluetooth LE على قلب Cortex-M0 . يتم كتابة مكدس الشريحة بالكامل إلى ROM. لم يتم العثور على أدوات مفتوحة لبرمجة هذه الرقائق على موقع Atmel الإلكتروني. بدلاً من ذلك ، يقترح Atmel استخدام متحكم خارجي للتفاعل مع ATBTLC1000. توجد برامج خاصة بوحدة التحكم الدقيقة الخارجية والأمثلة في إطار برنامج Atmel. يجمع في Atmel Studio (غلاف لدول مجلس التعاون الخليجي) أو في IAR.تنتج مجموعة من رقائق BLE القابلة للبرمجة استنادًا إلى النواة Cortex-M0 - PSoC 4: PSoC 4XX8 و PRoC CYBL1XX7X التي تدعم مواصفات Bluetooth 4.2 . يتم إنشاء مشاريع الرقائق في منشئ IDE PSoC خاص. تختلف الرقاقات من Cypress في أنه لا يوجد تكوين طرفي جاهز (UART ، SPI ، I2S ، PWM ، وما إلى ذلك) ، يجب إنشاؤه من عناصر المكتبة في محرر الدائرة مع إضافة مكتبات البرامج. تم تصميم هذا لتوفير بعض المرونة. على الرغم من أنه يضيف الكثير من العمل للمطور. يمكن تجميع المشروع الذي تم تكوينه بواسطة إحدى سلاسل الأدوات: GCC ، IAR ، Keil. BLE هناك واحدة من المكتبات. يتم تسليم مكدس BLE كمكتبة متجانسة مُجمعة مسبقًا بدون رموز مصدر تجمع بين مضيف BLE ووحدة تحكم BLE و HCI. ومع ذلك ، نشرت الشركة شفرة المصدر لتطبيقات Android و iOS التي تعمل مع BLE.تقوم بتصنيع EFR32 Blue Gecko Bluetooth Smart SoCs استنادًا إلى نواة ARM Cortex-M4 التي تدعم مواصفات Bluetooth 4.2.يمكن أن تقدم رقائق نوع EFR32BG1P332F256GMxx طاقة تصل إلى 19.5 ديسيبل لكل مللي أمبير ودمج قناة راديو منفصلة 868 ميجا هرتز بطاقة تصل إلى 20 ديسيبل وحساسية -121.4 ديسيبل. رقاقة مختبرات السيليكون هي مجموعة كبيرة من وظائف الدبوس البديلة ونظام يسمى نظام منعكس الطرفية(PRS). على الرغم من أن المحيط لا يمكن إنشاؤه مثل رقائق السرو ، ولكن اتصاله بالدبابيس يكاد يكون تعسفيًا ، فإن وجود PRS يجعل من الممكن التفاعل مع بعضها البعض دون إشراك المعالج. Silicon Labs BLE Stack قادر على قبول نتائج إنشاء الملف الشخصي بواسطة Bluetooth Developer Studioالتي سيتم مناقشتها أدناه. تقدم مختبرات السيليكون مكدسين بلوتوث. تم تصميم أحدها لوحدات Bluegiga ، بالإضافة إلى BLE ، كما يدعم البلوتوث العادي. يتوافق المكدس الثاني مع المواصفات 4.2 و LE فقط. يتم تسليم مكدس BLE كمكتبة متجانسة سابقة التشكيل بدون مصادر. للخيار مع متحكم خارجي ، يتم تقديم بروتوكول تسلسلي و API في المصادر. يمكن تجميع كل من دول مجلس التعاون الخليجي ، IAR و Keil. كل شيء يتم في بيئة تطوير واحدة Simplicity Studio V4 . لا يدعم RTOS إطار عمل المكدس المصاحب. ولكن في التعليمات البرمجية المصدر لـ Simplicity Studio ، يمكنك العثور على لآلئ مثل Speex بسرعة 8 كيلوبت في الثانية مناسبة لنقل الصوت عبر BLE وواجهة المستخدم الرسومية النافذة القوية من Segger.يجعل رقائق تحكم الشبكة BlueNRG المستندة إلى Cortex-M0 تحتوي على مكدس BLE وفقًا لمواصفات Bluetooth 4.1 .الرقائق نفسها ليست قابلة للبرمجة ، ولكن لها واجهة أوامر تطبيق تسلسلي (ACI) والتي من خلالها يجب على وحدة التحكم الدقيقة الخارجية التواصل معها. تم تطوير إطار عمل لـ ACI ، ويمكن تضمينه كجزء من بيئة تطوير الملكية STM32Cube.لا تصنع رقائق BLE على ARM Cortex ، لكنها مهتمة بتنفيذها لشبكة MESH على وحدات Bluetooth . الفيديو هنا . تم وضع الرموز المصدر لتطبيقات BLE المختلفة لنظامي التشغيل Android و iOS. هناك SDK.يجعل رقائق BLE على نواة RL78 16 بت . يتم إصدار مكدس BLE فقط للمستخدمين المميزين. كل الخاصة بهم - مترجم ، RTOS ، متحكم المضيف. ولكن هناك مكون إضافي لـ Bluetooth Developer Studioتقدم ، كما يزعمون ، أصغر رقائق BLE . ومع ذلك ، لا يمكن استدعاء الرقائق التي تحتوي على ذاكرة فلاش DA14583 (الباقي مع ROM فقط) الأصغر - 5x5 مم. جوهر واللحاء وM0 . القدرة القصوى 0 ديسيبل . دعم لمواصفات Bluetooth 4.1. للحصول على SDK من الشركة ، يجب عليك التسجيل واجتياز الاختبار. ولكن مع معلمات الشريحة هذه ، لم أحاول حتى الحصول على SDK.لذا ، مصادر MQTT و COAP و TLS و SPEEX و LwIP وما إلى ذلك. تلك الموجودة في حزم SDK المختلفة لا تهمنا كثيرًا ، ويمكن العثور عليها بحرية على Github دون الارتباط بأطر عمل محددة. لا يعمل دعم مواصفات Bluetooth 4.2 كثيرًا ، حيث لا يمكن استخدامه على جهاز الكمبيوتر بعد.مكانة RTOS مثل TI-RTOS أو جدولة خاصة ستجعل من الصعب علينا إتقانها ، ونحن نحاول تجنب مثل هذه القرارات.لقد سرني أنني اخترت الحل على Kinetis.ما هو المثير للاهتمام حول مكدس NXP Bluetooth LE لعائلة Kinetis.
مكدس BLE لـ Kinetis ، مثل الآخرين ، يأتي في شكل مكتبات سابقة التجهيز. حول هذه المكتبات ، تم إنشاء إطار متعدد المهام يتضمن برامج تشغيل وطبقة من تجريد الأجهزة في التعليمات البرمجية المصدر بشكل مستقل عن نظام التشغيل. يمكن تكوين إطار العمل للعمل بدون نظام تشغيل ، أو يمكن استخدامه. على الفور في التسليم ، تم تكييف الإطار مع FreeRTOS. لكنه يتفاعل مع FreeRTOS من خلال مجموعة إضافية من الوظائف تسمى طبقة التجريد من نظام التشغيل (OS abstract ، OSA).بفضل OSA ، بدلاً من FreeRTOS ، يمكنك استبدال أي نظام تشغيل آخر يدعم قوائم انتظار الرسائل ، والاستباقات ، والعلامات ، والمؤقتات. على سبيل المثال ، RTOS MQX. يجمع المكدس ، الغريب ، فقط في بيئة IAR. لحسن الحظ ، في حالتي ، هذه ليست مشكلة.من المثير للاهتمام أن المكدس مقسم إلى مكتبتين - مضيف BLE وجهاز تحكم BLE. ويمكن لمكتبة BLE المضيفة العمل على شريحة أخرى.تتفاعل المكتبات مع بعضها البعض في هذه الحالة عبر بروتوكول HCI. على سبيل المثال حيث يقدم مصنعون آخرون بروتوكول اتصال آخر لتفاعل التطبيق على وحدة التحكم الدقيقة الخارجية مع مكدس BLE (تذكر SimpleLink) ، يقدم NXP حلاً قياسيًا. والأهم من ذلك ، من خلال هذا النهج ، نقل مضيف BLE إلى متحكم خارجي أقوى ، فإننا نزيد بشكل كبير من قدرات قاعدة بيانات GATT وخدماتنا.باختصار حول بليه
يتوفر الإصدار 4.2 من مواصفات البلوتوث المفتوحة هنا . يتم تضمين وصف مستوى BLE السفلي (مستوى وحدة التحكم ) فيه على أنه "حزمة النظام الأساسية Vol.6 [حجم وحدة تحكم الطاقة المنخفضة]" من الصفحة 2544. يقع المستوى الأعلى (مستوى المضيف ) مع وصف بروتوكول ATT وملف تعريف GATT في " المجلد 3 حزمة النظام الأساسي [حجم المضيف] ” للمستند من الصفحة 1693.نطاق التردد المستخدم
(انقر للتكبير)تم تخصيص ثلاث ترددات (في الشكل أعلاه بواسطة أرقام القناة 37.38.39) للطرود الإذاعية التي لا تحتوي على عناوين ، والباقي لإرسال الحزم عند إنشاء قنوات الاتصال المنطقية بين الأجهزة. من السمات المعروفة للبلوتوث أنه عند إرسال الحزم ، يتم إرسال كل حزمة لاحقة بتردد مختلف ، يتم اختياره بشكل عشوائي شبه عشوائي من قائمة الحزم المسموح بها.يمكن تشفير جميع البيانات في حزم BLE ومصادقتها. يتم أيضًا استخدام التوليد الديناميكي العشوائي لعناوين الأجهزة وتحديدها باستخدام التجزئة ، أي بعد اعتراض عنوان الجهاز على الهواء ، لن نتمكن من استخدامه لأكثر من 15 دقيقة ، لأن العنوان سيتغير وفقًا لخوارزمية غير معروفة لنا خلال هذه الفترة.يمكن أن تعمل وحدات BLE كمرسلات أحادية الاتجاه ، أي بدون إنشاء اتصال ثنائي الاتجاه ، ببساطة قم ببث بعض البيانات في شكل حزم إعلان ، على سبيل المثال ، درجة الحرارة. يمكن استخدام نوع البيانات في الحزم الإعلانية المعينة على أنها بيانات خاصة بالشركة المصنعة لهذا الغرض . يمكن للكمبيوتر أو الجهاز اللوحي استقبال البيانات من مئات أجهزة الإرسال هذه بدون خطوات أولية غير ضرورية للبحث وإنشاء اتصال وإدخال رمز PIN وما إلى ذلك.هناك إمكانية أخرى لنقل البيانات دون تثبيت قناة اتصال وهي الإرسال في وضع الاستجابة للطلب (الطلب هو حزمة ScanRequest ، واستجابة الوحدة النمطية هي حزمة ScanResponce ). يختلف هذا BLE بشكل كبير عن Wi-Fi، حيث حتى بالنسبة لأبسط مقياس حرارة ، من الضروري إنشاء اتصال يأخذ موارد جهاز التوجيه.مكدس بروتوكول BLE
يوضح الشكل أدناه بليه كما يراها مبرمج متحكم. تتكون حزمة BLE من جزأين للبرنامج: المضيف وجهاز التحكم . يتعامل البرنامج المضيف مع الوظائف عالية المستوى لتنظيم وإدارة البيانات والاتصالات والتحكم في إدارة المحيط المادي لجهاز الإرسال والاستقبال ، ويعمل مع المفاتيح السرية ويتعامل مع الوظائف الأخرى ذات المستوى المنخفض. يتم توصيل الأجزاء المسماة بواسطة واجهة برنامج HCI ( Host Controller Interface ). في تطبيق الكمبيوتر ، يتم تشغيل جزء المضيف على جهاز كمبيوتر ، ويتم تشغيل جزء وحدة التحكم على جهاز إرسال / استقبال أجهزةغالبًا ما يتم إرسال البلوتوث وبروتوكول HCI عبر USB . في التنفيذ على وحدة التحكم الدقيقة ، يعمل كلا الجزأين على نفس الشريحة ، وتتحول واجهة HCI ببساطة إلى نقل مباشر للبيانات من المهمة المضيفة (وحدة البرامج) إلى مهمة وحدة التحكم (وحدة البرامج) والعكس بالعكس.في الواقع ، يرى المبرمج عدة مجموعات من واجهات برمجة التطبيقات تعمل على مستوى المضيف : تسمى GATT و GAP و L2CA و SMP و HCI . باستخدام واجهة برمجة تطبيقات GAP ، يتم تعيين وضع تشغيل الجهاز - المركزي ، الطرفية ، المراقبة ، المذيع ويتم تأسيس الاتصال عند الضرورة. ومع GATT APIيتم تنفيذ النقل المباشر واستقبال البيانات المفيدة وتحليلها.
(انقر للتكبير)تدعم معظم الأجهزة الموجودة حاليًا BLE 4.1 ، على الرغم من وجود الإصدار 4.2.ترتبط جميع الاختلافات من الإصدار 4.2 عن الإصدار السابق بالتحسينات في الجزء BLE: زيادة السرعة ، والقدرة على إرسال بروتوكول IP وحركة مرور HTTP ، وزيادة حماية التشفير وعدم إمكانية التعرف على المراقبين الخارجيين.ميزة مهمة لـ BLE مقارنة بشبكة Wi-Fi هي تحديد ليس فقط قناة الاتصال ، ولكن أيضًا التطبيقات نفسها التي تستخدمها. هذا يسمى التشكيلات والخدمات. تصف الملفات الشخصية مع الخدمات أدوار الأجهزة ، والغرض من البيانات ، وتكوين البيانات وتنسيقها ، وحماية البيانات ، وترتيب ، وأنواع وأحداث التبادل ، وليس فقط كيفية إرسال البيانات. هذا يسمح لك بعدم إعادة اختراع العجلة من البروتوكولات عند تطوير ، على سبيل المثال ، جهاز استشعار درجة حرارة الجسم أو عداد النبض. تم تقديم المواصفات بالفعل ، ولا يزال على جانب الجهاز فقط لملء الحقول اللازمة لإرسال نتائج القياس. سيتعرف عملاء هذه الأجهزة على شكل هواتف ذكية أو أجهزة لوحية أو أجهزة كمبيوتر أو أجهزة مطبخ على هذه البيانات تلقائيًا ويعرضونها أو يستخدمونها وفقًا لذلك. كل الشكر لأن جميع الشركات المصنعة تتبع نفس مواصفات BLE فيما يتعلق بكيفية عرض بيانات درجة الحرارة أو معدل ضربات القلب وكيفية العمل معها. ولكن لا يزال هناك مجال لخيال المطور ، نظرًا لأن الملفات الشخصية لها آليات لتوسيع الوظائف.ما يلي هو تسلسل هرمي تقريبي للسمات في جهاز BLE.
(انقر للتكبير)أدناه شجرة سمات نموذجية أكثر تفصيلاً قليلاً. هذه ليست شجرة كاملة ؛ تم حذف معظمها لأنها ستستهلك مساحة كبيرة جدًا. تبرز الألوان مستويات الشجرة ، لكل سمة رقم فريد - UUID. يتم تقليل تسجيل الأرقام القياسية إلى 16 بت. في هذا الشكل ، جميع الأرقام قياسية. يتم تقديم ملفات تعريف GAP و GATT أيضًا كخدمات بميزاتها القياسية. يمكن أن يكون لكل خدمة نموذج أمان وتفويض خاص بها. يتم تخزين الشجرة بالكامل في الجهاز كقاعدة بيانات تسمى قاعدة بيانات GATT ، عادة في شكل جدول بسيط مع مراجع تبادلية.
(اضغط للتكبير)تتميز خصائص الخدمة بالعديد من الخصائص ، كما هو موضح أدناه. هنا يجب أن تعتذر عن الحشو ، ولكن في BLE هناك بالفعل نوع من أزمة المصطلحات. في كلمة واحدة ، قد تحدد خصائص الخدمة التي تنتمي إليها القراءة والكتابة والحاجة إلى الإخطارات والتأكيدات والتوقيعات وما إلى ذلك.
(انقر للتكبير)BLE هي تقنية جادة ، وقد تم عمل الكثير لضمان الأمن والحد الأقصى من الطابع الرسمي ، والذي بدوره يجب أن يسهل تحقيق التوافق.يتم تبادل البيانات بين أجهزة BLE من خلال كتابة وقراءة قيم الخصائص. القنوات المتدفقة مثل TCP أو UART ليست هنا. وإذا كانت الأجهزة تحتوي عليها ، فسيتم تنظيمها حسب إضافات البرامج على مستوى أعلى.أدوات التطوير
أدوات التطوير مع موقع Bluetooth Special Special Group (Bluetooth SIG) المقترح - https://www.bluetooth.com/develop-with-bluetooth/developer-resources-tools يتم تقديم الأدوات المفيدة التاليةعلى موقع منظمة التقييس الرئيسية - Bluetooth SIG :ستوديو مطوري البلوتوث
Bluetooth Developer Studio هي أداة تسمح لك بتشكيل وإدراج ملفات التعريف والخدمات والخصائص والوصف بشكل صحيح في تنفيذ جهاز BLE ، أي إنشاء قاعدة بيانات. إذا قمت بشراء محول Bluetooth لأجهزة إضافية مقابل 99 دولارًا ، فإن البرنامج يسمح لك باعتراض حزم بروتوكول Bluetooth وفك تشفيرها وعرضها. البرنامج لديه أيضا القدرة على تصحيح واختبار الخدمات التي تم إنشاؤها.لأنه في بليهيتم وصف الملفات الشخصية المعتمدة بتفصيل كبير ، حتى الأخطاء الطفيفة المتعلقة بالتنسيق والترقيم وإمكانية الوصول وما إلى ذلك. في ملفات التعريف هذه سوف يسبب مشاكل التوافق. ولكن بالنسبة للملفات الشخصية غير القياسية ، من الصعب جدًا الاستغناء عن أداة تنشئ بدقة شجرة من الخدمات والخصائص والوصف وفقًا لجميع المواصفات. من السهل الخلط بين أسماء الخدمات والخصائص والوصف وأرقامها الفريدة متعددة البايت - UUID .نتيجة الأداة على وجه الخصوص هي ملفات XML التي تم إنشاؤها تصف ملفات التعريف والخدمات والخصائص والوصف في مشروع المستخدم. يتم استخدام ملفات XML هذه مباشرةً بواسطة Silicon Labs Simplicity IDE للدمج في المشاريع المضمّنة للرقائق الخاصة بها.
(اضغط للتكبير)قد تكون النتيجة الأخرى للأداة هي الكود المصدر للجهاز الذي يعمل مع قاعدة بيانات BLE . ولكن لهذا ، يحتاج المستخدم إلى كتابة المكون الإضافي الخاص به في JavaScript . كما يوفر البرنامج المكونات في وصول المستخدم إلى قاعدة البيانات من خلال خاص API إلى تشغيل الجافا .هناك عدد من المكونات الإضافية الجاهزة التي تنشئ ملفات نصية مختلفة المصدر مناسبة للتجميع في بيئات خارجية وأطر برامج.لا توجد مكونات إضافية للحلول تستند إلى إطار برنامج NXP Kinetis KW40Z Connectivity Software حتى الآن.مسرع التطبيق
مسرع التطبيق 2.1 - مجموعة من المشاريع التجريبية مع النصوص المصدر لأنظمة التشغيل Android 6 المختلفة . 0 ، Blackberry ، iOS 9 ، Tizen 2 . 4 و يندوز 10 . بالنسبة لنظام التشغيل Windows 10 ، تكون المشاريع مخصصة فقط لبيئة تطوير Visual Studio لهيكل النظام الأساسي العالمي لـ Windows (UWP). على سبيل المثال لا يمكن تجميع هذه المشاريع في إطار Windows Forms أو WPF c .NET . وجسور لترجمة تطبيقات Windows العادية إلى UWPيتم إنشاؤه للتو.وتجدر الإشارة إلى أن UWP يجعل من الممكن وضع التطبيقات في متجر Windows ، ولكنه لا ينشئ ملف exe. قابل للتنفيذ ، والذي يمكنك ببساطة نسخه وتشغيله. يصاحب الإطلاق الأول لتطبيق UWP دائمًا تثبيت. كل هذا يخلق صعوبات للمطور. وتترك وظائف المشاريع التوضيحية الكثير مما هو مرغوب فيه.
(انقر للتكبير)Above عبارة عن لقطة شاشة للتطبيق التجريبي الوحيد لنظام التشغيل Windows - BLEServiceBrowser .بوابة سمارت كيتير
وكاتب كيت بوابة الذكية - مشروع بوابة بليه الأجهزة إلى WEB الخادم و نفسها WEB الخادم تنفذ على المستخدم واجهة لشبكة بليه الأجهزة. يتم تنفيذ كل شيء في Node.js. يقترح نشرها على الكمبيوتر الصغير Raspberry Pi 2 طراز B مع نظام التشغيل Raspbian Jessie . يستخدم توصيل Raspberry Pi مباشرة إلى أجهزة BLE واجهة Bluetooth HCI للمآخذ إلى مستوى L2CAP و USB HCIمحول. للتشغيل تحت Windows ، تحتاج إلى تثبيت بديل خاص لبرنامج تشغيل Bluetooth HCI القياسي . يعمل الحل على عدد محدود جدًا من أنواع محولات الأجهزة بسبب محرك HCI المحدود.
بيريتون
من بين الأدوات التجارية ، محلل حركة BLE المثير للاهتمام من Perytons هو برنامج المحلل. يتم تشغيل المحلل على أجهزة الكمبيوتر التي تعمل بنظام Windows بدءًا من الإصدار 7. هذه نقطة مهمة ، نظرًا لأن برامج تشغيل BLE الأصلية لنظام التشغيل Windows تعمل فقط بدءًا من الإصدار 8. يعمل المحلل مع قائمة محدودة من محولات الأجهزة BLE .عند العمل مع المحولات ، هناك أيضًا قيود في التحليل ناتجة عن تشفير حركة المرور في BLE.
(اضغط للتكبير)ومع ذلك ، حتى من الإصدار التجريبي للبرنامج ، يمكنك الحصول على الكثير من الفوائد. ويرافق البرنامج تسجيلات توضيحية لاعتراضات تبادل الأجهزة الحقيقية. هذه السجلات ، بعد تحميلها في البرنامج ، تعطي صورة مفصلة عن تشغيل رصة بروتوكول BLE بالكامل. يؤدي عرض أحد هذه الاعتراضات إلى استبدال استكشاف مواصفات Bluetooth بالكامل.كلب باص
إذا كنت بحاجة فقط إلى مراقبة النشاط بين الكمبيوتر وجهاز BLE بطريقة أو بأخرى ، ويمكنك القيام بذلك دون تحليل مفصل للبروتوكول ، فإن برنامج اعتراض حركة مرور برنامج تشغيل Windows المعروف باسم Bus Hound سيقوم بذلك .في لقطة الشاشة أدناه ، يمكنك مشاهدة دفق حزم الإعلانات المستلمة. إن عدم انتظام الفواصل الزمنية لاستقبال الرزم واضح بشكل واضح. هذا يشير إلى خسارة كبيرة في الحزمة. تم ضبط فاصل المهلة لجهاز BLE على 20 مللي ثانية.
(انقر للتكبير) توضحلقطة الشاشة أدناه تمثيل جهاز BLE في نافذة Bus Hound بعد الاقتران بجهاز كمبيوتر. لكل خدمة جهاز ، بعد النظر ، تظهر قناة اتصال منطقية. هنا يمكنك رؤية UUID الخاص بالجهاز والخدمات.
محلل حركة BLE (الشم) USB-KW40Z
هذه أداة من مجموعة دعم تطوير Kinetis. لذلك ، سوف أتطرق إلى مزيد من التفاصيل. صفحة NXP الشم .
تم تطوير الشم من قبل NXP (أو بالأحرى ، Freescale السابق) ويمكن شراؤه بتكلفة منخفضة في متاجر مكونات الراديو الشائعة عبر الإنترنت: Mouser و Digi-Key و Farnell ... يتم تقديمه بواسطة NXP كأداة لرصد حزم الراديو التي ترسلها أجهزة BLE.باستخدام هذا الجهاز ، يمكنك دراسة بنية الحزم وتسجيلها في سجل وتحليل كثافة حركة المرور. دارة الشم مفتوحة للدراسة ، ولكن يتم توفير برنامج متحكم كملف ثنائي. يسمح لك الشم بتصفية الحزم حسب قيمة العنوان.يمكنك تنزيل برنامج الكمبيوتر لجهاز الشم من خلال استعلام البحث التالي على موقع www.nxp.com - Kinetis_Protocol_Analyzer_Adapter.exeنظرًا لأن الشم ، بالإضافة إلى الوظيفة الرئيسية ، يمكن أن يكون أيضًا منصة تصحيح للتطبيقات المختلفة ، يتم إرفاق ملفات البرامج الثابتة الأساسية الثنائية معها ، والتي يمكنك استعادة وظائف الشم بعد التجربة. تأتي الملفات مع حزمة برامج اتصال KW40Z ، والتي يتم تنزيلها من www.nxp.com لاستعلام البحث KW40Z_Connectivity_Software. ستسمى الملفات Sniffer_processing_core_usbkw40z_k22f.bin (لـ MK22FN512 متحكم على لوحة الشم) و Sniffer_radio_core_usbkw40z_kw40z.bin(للميكروكونترولر MKW40Z على لوح الشم). تتم برمجة الملفات باستخدام أدوات تصحيح أخطاء SWD: JLink و STLink و OpenSDA ...من جانب الكمبيوتر الشخصي ، يُنظر إلى الجهاز على أنه جهاز USB مركب بمنفذ COM واحد ومنفذ تصحيح واحد وفقًا للمواصفات ، OpenSDA مع برنامج CMSIS-DAP الثابت. وهكذا ، في بيئة IAR ، يمكنك برمجة وتصحيح شريحة الشم MKW40Z بحرية باستخدام شريحة MK22FN512 الأخرى الخاصة بها كحامل لوظائف محول التصحيح. لكن كلا الرقائق الموجودة على اللوحة تحتوي على موصلات SWD قياسية لمحول تصحيح خارجي.لا يضمن الشم استقبال جميع الحزم المرسلة على الهواء. من السهل إغراقها ، وبعد ذلك تتوقف عن قبول أي حزم ، لذلك يوصى بتمكين التصفية حسب العنوان لتلقي الحزم فقط من العقدة ذات الاهتمام مع حركة مرور نادرة إلى حد ما.يعرض الإطار التالي برنامج محلل الحزمة. تتضمن النافذة اعتراضًا على جميع القنوات الثلاث:
(انقر للتكبير)عند تثبيت برنامج محلل على جهاز كمبيوتر ، فإنه ينشئ محول إيثرنت افتراضي ، والذي يحول الحزم التي تم تصويرها عبر منفذ COM الشم الشم الظاهري إلى حزم إيثرنت. في حالتي ، تلقى هذا المحول الافتراضي تلقائيًا اسمًا بسيطًا - Ethernet.لرؤية الحزم ، تحتاج أيضًا إلى تثبيت برنامج الشم الحزم Wireshark Ethernet.عرض النافذة الرئيسية لبرنامج Wireshark أثناء مراقبة حركة المرور. يصف Wireshark بالتفصيل جميع حقول البت لحزمة بروتوكول Link Layer (LE LL) ، ومع ذلك ، بعد إنشاء اتصال بين الأجهزة وبدء بروتوكول L2CAP ، لا يتم التعرف على محتويات الحزمة لأنها مرسلة مشفرة.
(اضغط للتكبير)عرض نافذة Wireshark مع فك تشفير حزمة الإعلان محتوى حزمة طلب المسح الضوئي مسح محتويات حزمة الاستجابة محتويات حزمة طلب الاتصال مع المعلمات التي تحدد سرعة قناة الاتصال نرحب بالتعليقات والإضافات والتصحيحات والاعتراضات على المعلومات الواردة في هذه المقالة. Source: https://habr.com/ru/post/ar394757/
All Articles