إنشاء شبكة Thread باستخدام Texas Instruments SimpleLink F3 وOpenThread

1. مقدمة

شعار OpenThread

OpenThread (OT) من Google هو تطبيق مفتوح المصدر لبروتوكول Thread. أصدرت Google تقنية OpenThread لتتيح للمطوّرين استخدام تكنولوجيا الشبكات المستخدَمة في منتجات Google Nest على نطاق واسع، ما يؤدي إلى تسريع تطوير المنتجات الخاصة بالشبكة المنزلية المتصلة وتطبيقات المباني التجارية. بفضل طبقة تجريد المنصة الضيقة واستهلاك الذاكرة الصغير، يمكن نقل OpenThread بسهولة. يتوافق مع تصاميم المنظومة على الرقاقة (SoC) ومعالج الشبكة المساعد (NCP).

يحدّد مواصفات Thread بروتوكول اتصال لاسلكي موثوق وآمن ومنخفض الطاقة بين الأجهزة يستند إلى الإصدار 6 من بروتوكول الإنترنت (IPv6) لتطبيقات المنازل والمباني التجارية.

نفّذت شركة Texas Instruments بروتوكول OpenThread في مجموعة أجهزة SimpleLink™ CC27xx. يحتوي مستودع ot-ti على GitHub على برامج تشغيل النظام الأساسي والتطبيقات النموذجية اللازمة لتشغيل OpenThread على وحدات التحكّم الدقيقة المتصلة SimpleLink من Texas Instruments. ‫CC2745R10-Q1 هي وحدة تحكّم دقيقة لاسلكية (MCU) معتمدة من Thread وفقًا لمعيار IEEE 802.15.4 ومصنّفة ضمن فئة السيارات (معتمدة وفقًا لمعيار AEC-Q100)، وهي من عائلة SimpleLink CC27xx من شركة TI.

يوضّح هذا الدرس التطبيقي حول الترميز كيفية بدء تطوير تطبيقات OpenThread باستخدام لوحة التقييم LP-EM-CC2745R10-Q1 LaunchPad ومستودع ot-ti. تعرض الصورة أدناه إعدادات الأجهزة المستخدَمة في هذا الدرس التطبيقي حول الترميز، مع جهاز توجيه حدودي OT وجهازَين كاملَين من أجهزة Thread (FTD).

إعداد الأجهزة CC2745R10

أهداف الدورة التعليمية

  • كيفية إعداد بيئة الإصدار ot-ti من Texas Instruments
  • كيفية إنشاء وتثبيت ثنائيات OpenThread CLI على لوحات LP-EM-CC2745R10-Q1
  • كيفية إعداد Raspberry Pi كجهاز توجيه حدودي OpenThread (OTBR) باستخدام ot-br-posix
  • كيفية إنشاء شبكة Thread على OTBR
  • توفير الأجهزة على شبكة Thread خارج النطاق
  • كيفية التحقّق من اتصال Thread بين العُقد باستخدام الأمر ping

2. المتطلبات الأساسية

أجهزة

  1. 3 لوحات LP-EM-CC2745R10-Q1 LaunchPad: تم ضبط إحدى اللوحات كجهاز RCP متصل بجهاز Border Router، وتم ضبط لوحتَين كجهازَي Full Thread Devices (FTD). LP-EM-CC2745R10-Q1 Angled View‫CC2745R10-Q1 هي وحدة تحكّم دقيقة لاسلكية (MCU) معتمدة من Thread وفقًا لمعيار IEEE 802.15.4 ومناسبة للاستخدام في السيارات (معتمدة وفقًا لمعيار AEC-Q100) ضمن مجموعة SimpleLink CC27xx من شركة TI. وحدة التقييم LaunchPad المقابلة هي LP-EM-CC2745R10-Q1، وهي تتوافق مع أدوار RCP وFTD وMTD وNCP Thread. إنّ CC2340R5 مع LP-EM-CC2340R5 LaunchPad هو خيار ذاكرة أقل يمكن استخدامه كجهاز RCP فقط. لا تتوافق هذه الأداة مع أدوار FTD أو MTD أو NCP. في حال استبدال LP-EM-CC2340R5 باللوحة 1 (RCP)، يجب أن تظل لوحتا FTD هما LP-EM-CC2745R10-Q1.
  2. 3 أدوات فحص لتصحيح الأخطاء LP-XDS110ET: واحدة لكل لوحة LaunchPad، تُستخدم للبرمجة وتصحيح الأخطاء عبر USB. LP-XDS110ET Angled Viewإنّ LP-XDS110ET هو أداة تصحيح أخطاء USB منفصلة مطلوبة لأجهزة LaunchPad في شكل LP-EM. يتضمّن هذا الإصدار إمكانية استخدام EnergyTrace لتحديد مستوى استهلاك الطاقة. LP-XDS110 هو بديل أقل تكلفة يوفّر إمكانية البرمجة وتصحيح الأخطاء نفسها، ولكنّه لا يتضمّن EnergyTrace. كبديل آخر، يمكن استخدام LaunchPad مع أداة تصحيح أخطاء XDS110 مدمجة (مثل LAUNCHXL-CC26X2R1) بدلاً من لوحة LP-EM وأداة تصحيح أخطاء منفصلة تمامًا. للحصول على التفاصيل، يُرجى الاطّلاع على دليل إمكانية اتصال تصحيح الأخطاء في LaunchPad.
  3. 3 كابلات USB صغيرة لتوصيل لوحات LaunchPad ومجسّات تصحيح الأخطاء وتشغيلها
  4. جهاز Raspberry Pi 4B أو إصدار أحدث مثبّت عليه نظام التشغيل Raspberry Pi OS ومتصل بالإنترنت عبر الإيثرنت سيتم ضبط هذا الجهاز كمضيف لجهاز توجيه حدود OT.Raspberry Pi 4
  5. نظام مضيف Linux أو macOS مزوّد بمنفذَي USB على الأقل وإمكانية الوصول إلى الإنترنت يتطلّب بيئة الإنشاء برنامج shell متوافقًا مع Bash. على مستخدمي Windows استخدام WSL2 (نظام Windows الفرعي على Linux 2) مع Ubuntu.
  6. كابل إيثرنت واحد على الأقل لتوصيل Raspberry Pi بالإنترنت بدلاً من ذلك، يمكنك ربط Raspberry Pi بشبكة Wi-Fi واستخدام wlan0 كواجهة البنية الأساسية. راجِع خطوة إعداد OTBR للحصول على التفاصيل.

البرامج

  • مستودع TI ot-ti: https://github.com/TexasInstruments/ot-ti
  • GNU ARM Embedded Toolchain 12.2 (يتم تثبيته تلقائيًا بواسطة نص bootstrap البرمجي)
  • SysConfig 1.27.0 (يتم تثبيته تلقائيًا بواسطة النص البرمجي الخاص ببرنامج الإعداد)
  • TI UniFlash: لتثبيت البرامج الثابتة على لوحات LaunchPad

3- ضبط الأجهزة

يستخدم هذا الدرس التطبيقي حول الترميز ثلاث لوحات LP-EM-CC2745R10-Q1:

  • اللوحة 1 (RCP): تعمل بالإصدار ot-rcp من البرامج الثابتة. متصل بجهاز Raspberry Pi عبر USB كمعالج مساعد لاسلكي لجهاز توجيه الحدود
  • اللوحة 2 (FTD 1): تعمل ببرنامج ot-cli-ftd الثابت كجهاز Full Thread Device.
  • اللوحة 3 (FTD 2): تشغّل البرامج الثابتة ot-cli-ftd كجهاز Full Thread Device.

LP-EM-CC2745R10-Q1 Top View

وصِّل كل LaunchPad بجهاز الكمبيوتر المضيف عبر منفذ micro-USB. يوفر اتصال USB إمكانية توفير الطاقة وتصحيح الأخطاء/البرمجة من خلال أداة تصحيح الأخطاء XDS110 المدمجة.

يظهر كل LP-EM-CC2745R10-Q1 كمنفذَي تسلسل افتراضي عند توصيله عبر USB: أحدهما لواجهة تصحيح الأخطاء XDS110 والآخر لتطبيق UART. عند فتح وحدة تحكّم تسلسلية، اتّصِل بمنفذ Application/User UART، وليس بمنفذ البيانات الإضافية.

مخطط توصيل الأجهزة

4. إعداد المستودع وإنشاؤه

يستخدم نظام التصميم ot-ti CMake ويتطلب shell Bash. يتم تنفيذ جميع الأوامر الواردة في هذا القسم على المضيف الذي يعمل بنظام التشغيل Linux أو macOS (أو WSL2 على Windows).

1. إنشاء نسخة طبق الأصل من المستودع

$ git clone https://github.com/TexasInstruments/ot-ti.git
$ cd ot-ti
$ git submodule update --init

2. تشغيل نص bootstrap البرمجي

يثبّت النص البرمجي للتشغيل التمهيدي التبعيات المطلوبة، بما في ذلك مجموعة أدوات GNU ARM وSysConfig:

$ ./script/bootstrap

يتطلّب نص الإعداد الأوّلي cmake وgit وwget وأدوات الإنشاء العادية. على Ubuntu/Debian، ثبِّت المتطلبات الأساسية باستخدام: sudo apt-get install -y cmake git make wget tar ninja-build

3- إنشاء برامج ثابتة لجهاز LP_EM_CC2745R10_Q1

إنشاء جميع صور البرامج الثابتة للوحة LP-EM-CC2745R10-Q1:

$ ./script/build LP_EM_CC2745R10_Q1

يتوافق هدف الإصدار LP_EM_CC2745R10_Q1 مع جهاز CC2745R10-Q1 في عائلة CC27xx SimpleLink (نواة Arm Cortex-M33F). للاطّلاع على جميع اللوحات المتوافقة، شغِّل ./script/build بدون وسيطات.

بعد إنشاء إصدار ناجح، ستكون ملفات ELF الثنائية في build/bin/:

$ ls build/bin/
ot-cli-ftd.out  ot-cli-mtd.out  ot-ncp-ftd.out  ot-rcp.out

الصورتان المستخدَمتان في هذا الدرس التطبيقي هما:

  • ot-rcp.out: البرامج الثابتة لمعالج الراديو المساعد في لوحة جهاز توجيه الحدود
  • ot-cli-ftd.out: البرامج الثابتة لواجهة سطر الأوامر (CLI) الخاصة بجهاز Full Thread للوحتَي FTD

جهاز Thread اختياري بسيط: إذا أردت استكشاف جهاز طرفي في وضع السكون بدلاً من جهاز Thread كامل، يمكنك تثبيت ذاكرة ROM ot-cli-mtd.out بدلاً من ot-cli-ftd.out على اللوحتين 2 و3. لا يوجّه جهاز MTD زيارات Thread ويمكنه الدخول في حالات السكون المنخفضة الطاقة، ما يجعله مناسبًا تمامًا للتطبيقات التي تعمل بالبطارية. إنّ خطوات إنشاء شبكة Thread في هذا الدرس التطبيقي حول الترميز هي نفسها لكلا نوعَي الأجهزة.

معالج الشبكة المساعد الاختياري (NCP): ينفّذ الملف الثنائي ot-ncp-ftd.out بنية معالج الشبكة المساعد، حيث يتم تشغيل حزمة OpenThread على الجهاز ويشغّلها معالج مضيف من خلال بروتوكول Spinel. يقع استخدام NCP خارج نطاق هذا الدرس التطبيقي، لذا يُرجى الرجوع إلى ملف NCP README للحصول على التفاصيل.

5- تثبيت البرامج الثابتة

استخدِم TI UniFlash لتثبيت صور ELF على لوحات LaunchPad.

استخدام UniFlash

  1. افتح UniFlash. يتم عرض لوحات LaunchPad المتصلة ضمن الأجهزة التي تم رصدها بسبب ميزة رصد الأجهزة التلقائي.إذا لم يتم رصد لوحتك تلقائيًا، انقر على إعداد جديد، واختَر هدف LP-EM-CC2745R10-Q1، ثم اختَر أداة تصحيح الأخطاء XDS110 USB.الأجهزة التي رصدتها UniFlash
  2. اختَر اللوحة 1 (التي سيتم عرضها مع ot-rcp.out) وانقر على بدء.
  3. انقر على الزر تصفّح وانتقِل إلى ot-ti/build/bin/ot-rcp.out.صفحة UniFlash Flash
  4. انقر على تحميل الصورة لتثبيت البرامج الثابتة. تعرض منطقة السجلّ مدى التقدّم وتؤكّد اكتمال العملية.
  5. كرِّر الخطوات من 2 إلى 4 لكلّ من لوحة العرض 2 ولوحة العرض 3، مع اختيار ot-ti/build/bin/ot-cli-ftd.out لكلّ منهما.

البديل: تثبيت ذاكرة ROM باستخدام Code Composer Studio (CCS)

يمكن استخدام Code Composer Studio كبديل لـ UniFlash، كما يوفّر بيئة تصحيح أخطاء كاملة:

  1. نزِّل Code Composer Studio وثبِّته.
  2. أنشئ اتصالاً مستهدفًا (CCXML) لجهاز LP-EM-CC2745R10-Q1 باستخدام أداة تصحيح الأخطاء XDS110. يُرجى الرجوع إلى دليل مستخدم CCS: الطريقة اليدوية.
  3. ابدأ جلسة تصحيح أخطاء بدون مشروع كما هو موضّح في دليل مستخدم CCS: التشغيل اليدوي.
  4. اتّصِل بنواة Arm Cortex-M33 وانقر على تحميل لتحميل صورة ELF.

يستخدم إعداد CCXML التلقائي سلكَين من cJTAG لمطابقة إعداد وصلة العبور التلقائية LP-EM-CC2745R10-Q1. بعد البرمجة من خلال JTAG، أوقِف اللوحة وأعِد تشغيلها لمحو علامة الإيقاف أثناء التشغيل.

6. برمجة وحدة أمان الأجهزة (HSM)

تحتوي وحدة CC2745R10-Q1 على وحدة أمان الأجهزة (HSM) التي يجب توفيرها قبل تشغيل Thread أو أي برامج ثابتة أخرى للتطبيقات الآمنة. إذا لم يسبق لك برمجة وحدة أمان الأجهزة (HSM) في لوحة LP-EM-CC2745R10-Q1، عليك إكمال هذه الخطوة الآن.

لبرمجة وحدة أمان الأجهزة (HSM) باستخدام UniFlash، اتّبِع الخطوات التالية:

  1. افتح UniFlash واختَر لوحة LP-EM-CC2745R10-Q1 من الأجهزة التي تم رصدها (Detected Devices).
  2. انتقِل إلى لوحة برمجة وحدة أمان الأجهزة (HSM) وحمِّل صورة البرامج الثابتة لوحدة أمان الأجهزة (HSM) كما هو موضّح أدناه.

UniFlash HSM Programming

  1. اتّبِع التعليمات الظاهرة على الشاشة لإكمال عملية توفير وحدة أمان الأجهزة (HSM). يتم تسجيل العملية في وحدة تحكّم إخراج UniFlash.

راجِع دليل البدء السريع CC2745R10-Q1 في TI Resource Explorer للاطّلاع على إجراءات برمجة وحدة أمان الأجهزة بالكامل، بما في ذلك مسار صورة البرامج الثابتة المطلوبة ضمن حزمة تطوير البرامج SimpleLink Low Power F3.

7. ملخّص البرامج الثابتة

في هذه المرحلة، يجب أن تومض جميع اللوحات الثلاث:

  • اللوحة 1: ot-rcp.out: افصل اللوحة عن الكمبيوتر المضيف واربطها بجهاز Raspberry Pi عبر USB.
  • اللوحة 2: ot-cli-ftd.out: البقاء على اتصال بجهاز الكمبيوتر المضيف
  • اللوحة 3: ot-cli-ftd.out: البقاء على اتصال بجهاز الكمبيوتر المضيف

سيبدو إعداد الأجهزة على النحو الموضّح في الرسم البياني أدناه. يتم توصيل اللوحة 1 بجهاز Raspberry Pi كمعالج مساعد لاسلكي لـ OTBR، بينما تبقى اللوحتان 2 و3 متصلتَين بجهاز الكمبيوتر المضيف للوصول إلى وحدة التحكّم التسلسلية.

إعداد أجهزة CC2745R10 باستخدام أجهزة FTD

8. إعداد "وحدة التحكم التسلسلية" لأجهزة ot-cli-ftd

تعرض لوحة LP-EM-CC2745R10-Q1 واجهة UART للتطبيق عبر منفذ USB بسرعة 921600 باود.

افتح وحدة طرفية تسلسلية لمنفذ COM الخاص ببروتوكول UART للتطبيق (في نظام التشغيل Windows) أو جهاز /dev/ttyACM* (في نظام التشغيل Linux أو macOS) لكل لوحة FTD باستخدام الإعدادات التالية:

المَعلمة

القيمة

السرعة (baud)

921600

بتات البيانات

8

وحدات بت الإيقاف

1

التكافؤ

None

التحكّم في تدفّق البيانات

None

ملاحظة (Linux/macOS): حدِّد عقدة الجهاز الصحيحة من خلال تنفيذ ls /dev/ttyACM* قبل توصيل اللوحة وبعد توصيلها، ولاحظ الإدخال الذي يظهر. ينشئ كل LP-EM-CC2745R10-Q1 إدخالَين: المنفذ ذو الرقم الأدنى هو XDS110 debug UART والمنفذ ذو الرقم الأعلى هو Application UART. على سبيل المثال، إذا كانت اللوحة تنشئ /dev/ttyACM0 و/dev/ttyACM1، استخدِم /dev/ttyACM1.

ملاحظة (في نظام التشغيل Windows): افتح "أداة إدارة الأجهزة" وابحث في المنافذ (COM & LPT) عن منفذَي COM جديدَين عند توصيل لوحة. يظهر منفذ بيانات تصحيح الأخطاء XDS110 عادةً أولاً، استخدِم منفذ COM الثاني (ذي الرقم الأعلى) لوحدة تحكّم التطبيق.

اضغط على Enter في المحطة الطرفية للحصول على طلب OpenThread CLI (>). للحصول على قائمة كاملة بالأوامر المتاحة، راجِع مرجع OpenThread CLI. تحقَّق من أنّ جهاز FTD يعمل:

> state
disabled
Done

أجهزة تدريب على الطيران تعمل بنظام المحاكاة التسلسلية

لن يتم إعداد وحدة تحكّم تسلسلية للوحة RCP بعد. يتواصل جهاز OTBR على Raspberry Pi مع RCP مباشرةً. في الخطوة التالية، عليك ضبط Raspberry Pi كجهاز توجيه حدودي OpenThread.

9. إعداد Raspberry Pi كجهاز توجيه حدودي

تم إنشاء OTBR من ot-br-posix، وهو مشروع OpenThread Border Router مفتوح المصدر. يعمل جهاز توجيه الحدود على Raspberry Pi ويستخدم اللوحة 1 (RCP) كجهاز راديو 802.15.4 عبر USB.

إعداد Raspberry Pi

  1. يمكنك تثبيت ذاكرة ROM نظام التشغيل Raspberry Pi (الإصدار Lite أو Desktop‏ 64 بت) إلى بطاقة SD باستخدام Raspberry Pi Imager.
  2. ابدأ تشغيل Raspberry Pi وافتح نافذة Terminal (عبر SSH أو مباشرةً).
  3. تعديل مدير الحِزم وترقية الحِزم المثبَّتة:
    $ sudo apt-get update
    $ sudo apt-get upgrade -y
    

أعِد تشغيل Raspberry Pi بعد التحديثات قبل المتابعة: sudo reboot

توصيل اللوحة 1 (RCP) بجهاز Raspberry Pi

اربط اللوحة 1 (التي تم تثبيت ot-rcp عليها) بجهاز Raspberry Pi من خلال منفذ USB الصغير. بعد الاتصال، تأكَّد من ظهور عقدة الجهاز:

$ ls /dev/ttyACM*
/dev/ttyACM0
/dev/ttyACM1

عادةً ما يكون منفذ Application UART في لوحة RCP هو /dev/ttyACM1 (منفذ XDS110 debug UART هو /dev/ttyACM0). تحقَّق من المنفذ الذي يمثّل Application UART من خلال التأكّد من أنّه يستجيب عند بدء تشغيل وكيل OTBR في خطوة لاحقة. إذا كانت أجهزة تسلسلية أخرى متصلة عبر USB، قد يختلف رقم عقدة الجهاز. عدِّل المسار في إعدادات OTBR وفقًا لذلك.

إنشاء وتثبيت ot-br-posix

على Raspberry Pi، استنسِخ ot-br-posix وأنشئها:

$ git clone https://github.com/openthread/ot-br-posix.git
$ cd ot-br-posix
$ ./script/bootstrap

شغِّل نص التهيئة البرمجي، وحدِّد واجهة إيثرنت كواجهة أساسية (بنية أساسية):

$ INFRA_IF_NAME=eth0 ./script/setup

eth0 هو الاسم العادي لواجهة Ethernet السلكية. إذا كنت ستربط جهاز Raspberry Pi عبر شبكة Wi-Fi بدلاً من إيثرنت، استبدِل eth0 بـ wlan0 (وتأكَّد من أنّ جهاز Raspberry Pi متصل بشبكة Wi-Fi). تحقَّق من اسم الواجهة النشطة باستخدام ip link show.

ينشئ نص التهيئة البرمجي ot-br-posix من المصدر، ويثبّت خدمات النظام otbr-agent وotbr-web، ويضبط حزمة الشبكات. تستغرق هذه العملية عادةً من 10 إلى 20 دقيقة على جهاز Raspberry Pi 4B.

ضبط إعدادات OTBR Agent

عدِّل ملف إعداد وكيل OTBR لتحديد مسار جهاز RCP ومعدّل نقل البيانات:

$ sudo nano /etc/default/otbr-agent

ابحث عن السطر OTBR_AGENT_OPTS وعدِّله للإشارة إلى RCP Application UART:

OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyACM1?uart-baudrate=921600"

استبدِل eth0 بـ wlan0 إذا كان جهاز Raspberry Pi متصلاً عبر شبكة Wi-Fi.

OTBR_AGENT_OPTS="-I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyACM1?uart-baudrate=921600"

تعمل واجهة UART لتطبيق RCP في LP-EM-CC2745R10-Q1 بسرعة 921600 باود. تأكَّد من أنّ مسار الجهاز (/dev/ttyACM1 في هذا المثال) يتطابق مع Application UART في لوحة RCP.

أعِد تشغيل وكيل OTBR لتطبيق الإعدادات:

$ sudo systemctl restart otbr-agent
$ sudo systemctl enable otbr-agent

تأكَّد من أنّ الوكيل يعمل:

$ sudo systemctl status otbr-agent

التفاعل مع عقدة RCP

تواصل مع عقدة RCP باستخدام الأداة ot-ctl:

$ sudo ot-ctl state
disabled
Done

يمكنك مراقبة سجلّ وكيل OTBR للاطّلاع على رسائل الاتصال والحالة:

$ sudo journalctl -u otbr-agent -f

يمكنك اختياريًا استخدام واجهة الويب الخاصة بأداة OTBR على http://:80، وهي توفّر عرضًا بيانيًا لشبكة Thread.

لإيقاف وكيل OTBR أو إعادة تشغيله، اتّبِع الخطوات التالية:

$ sudo systemctl stop otbr-agent
$ sudo systemctl start otbr-agent

في هذه المرحلة، يجب أن يكون لديك ثلاث وحدات تحكّم نشطة:

  1. نافذة طرفية تسلسلية للوحة 2 (ot-cli-ftd 1) على الكمبيوتر المضيف
  2. نافذة طرفية تسلسلية للوحة 3 (ot-cli-ftd 2) على الكمبيوتر المضيف
  3. جلسة SSH أو جلسة طرفية على Raspberry Pi لـ ot-ctl (OTBR/RCP)

أنت الآن جاهز لإنشاء شبكة Thread.

10. إنشاء شبكة Thread

إعداد RCP (OTBR)

أنشئ شبكة Thread جديدة من خلال غلاف ot-ctl على Raspberry Pi. أدخِل الأوامر التالية بالترتيب:

المؤشر

الأوامر

الوصف

الردّ المتوقّع

1

dataset init new

أنشئ إعدادات شبكة جديدة.

تم

2

dataset commit active

إرسال مجموعة البيانات الجديدة إلى مجموعة البيانات التشغيلية النشطة

تم

3

ifconfig up

فعِّل واجهة Thread.

تم

4

thread start

فعِّل عملية بروتوكول Thread وأرفِقها.

تم

انتظِر لمدة 10 ثوانٍ إلى أن تظهر واجهة Thread.

5

state

تحقَّق من حالة الجهاز. يجب أن تكون القيمة leader. الحالات الأخرى المحتملة: غير متصل بالإنترنت أو غير مفعّل أو منفصل أو جهاز فرعي أو جهاز توجيه أو جهاز رئيسي

leader
تم

6

dataset

عرض إعدادات الشبكة ستختلف القيم التي تظهر لك. دوِّن القناة ومفتاح الشبكة واسم الشبكة ومعرّف PAN، إذ تحتاج إليها لربط أجهزة FTD بالشبكة.

Active Timestamp: 1
Channel: 20
Channel Mask: 0x07fff800
Ext PAN ID: 39ba71f7fc367160
Mesh Local Prefix: fd5c:c6b:3a17:40b9::/64
Network Key: 81ae2c2c17368d585dee71eaa8cf1e90
Network Name: OpenThread-008c
PAN ID: 0x008c
PSKc: c98f0193d4236025d22dd0ee614e641f
Security Policy: 0, onrcb
Done

إضافة أجهزة FTD إلى شبكة Thread (الطريقة خارج النطاق)

باستخدام طريقة الإعداد خارج النطاق، يمكنك تقديم بيانات اعتماد الشبكة مباشرةً. في نافذة التسلسل الطرفي لكل لوحة FTD، أدخِل الأوامر التالية باستخدام مفتاح القناة والشبكة من ناتج مجموعة بيانات OTBR أعلاه:

المؤشر

الأوامر

الوصف

الردّ المتوقّع

1

dataset channel 20

اضبطوا القناة لتتطابق مع OTBR. استبدِل 20 بقيمة القناة في تقرير "المسار إلى الإحالة الناجحة على الإنترنت".

تم

2

dataset networkkey 81ae2c2c17368d585dee71eaa8cf1e90

اضبط مفتاح الشبكة. استبدِلها بمفتاح شبكة OTBR. هذا المفتاح فقط مطلوب لإرفاق الملف.

تم

3

dataset commit active

إرسال مجموعة البيانات الجديدة إلى مجموعة البيانات التشغيلية النشطة

تم

4

ifconfig up

فعِّل واجهة Thread.

تم

5

thread start

فعِّل عملية بروتوكول Thread وأرفِقها.

تم

انتظِر لمدة 20 ثانية بينما ينضم الجهاز إلى الشبكة ويضبط نفسه.

6

state

تحقَّق من حالة الجهاز.

child
Done

بسبب طبيعة شبكات Thread التي يتم إعدادها ذاتيًا، ولأنّها أجهزة Thread كاملة، قد يصبح أحد جهازي FTD أو كلاهما موجّهَين في النهاية. يمكنك التحقّق من الدور الحالي في أي وقت باستخدام الأمر state.

التواصل بين أجهزة Thread

استخدِم الأمر ping للتأكّد من أنّ الأجهزة يمكنها التواصل. احصل على عناوين IPv6 لكل جهاز باستخدام ipaddr:

> ipaddr
fd5c:c6b:3a17:40b9:0:ff:fe00:fc00		# Leader Anycast Locator (ALOC)
fd5c:c6b:3a17:40b9:0:ff:fe00:1800		# Routing Locator (RLOC)
fd5c:c6b:3a17:40b9:84e2:bae8:bd5b:fa03		# Mesh-Local EID (ML-EID)
fe80:0:0:0:c449:ca4a:101f:5d16			# Link-Local Address (LLA)
Done

من كلا جهازي FTD، أرسِل طلب اختبار الاتصال إلى جهاز OTBR باستخدام عنوان RLOC الخاص به:

> ping fd5c:c6b:3a17:40b9:0:ff:fe00:1800
Done
>
> 16 bytes from fd5c:c6b:3a17:40b9:0:ff:fe00:1800: icmp_seq=3 hlim=64 time=30ms
16 bytes from fd5c:c6b:3a17:40b9:0:ff:fe00:1800: icmp_seq=3 hlim=64 time=52ms

تؤكّد الاستجابة الناجحة أنّ شبكة Thread تعمل وأنّ الأجهزة يمكنها التواصل. كرِّر العملية لإرسال إشارة إلى كل FTD من OTBR (sudo ot-ctl ping ).

11. تهانينا

لقد أنشأت شبكة Thread باستخدام لوحات TI CC2745R10-Q1.

أنت تعرف الآن:

  • كيفية إعداد بيئة الإصدار ot-ti من Texas Instruments
  • كيفية إنشاء وتثبيت ثنائيات OpenThread CLI على LP-EM-CC2745R10-Q1 LaunchPad
  • كيفية إعداد Raspberry Pi كجهاز توجيه حدودي OpenThread (OTBR) باستخدام ot-br-posix
  • كيفية إنشاء شبكة Thread على OTBR
  • توفير الأجهزة على شبكة Thread خارج النطاق
  • كيفية التحقّق من اتصال Thread بين العُقد باستخدام الأمر ping

محتوى إضافي للقراءة

يمكنك الاطّلاع على openthread.io وGitHub للحصول على مجموعة متنوعة من مراجع OpenThread، بما في ذلك: