איך יוצרים רשת Thread באמצעות Texas Instruments SimpleLink F3 ו-OpenThread

1. מבוא

הלוגו של OpenThread

OpenThread‏ (OT) של Google הוא הטמעה של Thread בקוד פתוח. ‫Google פרסמה את OpenThread כדי להפוך את טכנולוגיית הרשת שמשמשת במוצרי Google Nest לזמינה באופן נרחב למפתחים, וכך להאיץ את פיתוח המוצרים לבית החכם וליישומים מסחריים בבניינים. ‫OpenThread הוא נייד מאוד, כי יש לו שכבת הפשטה צרה של הפלטפורמה והזיכרון שבשימוש קטן. היא תומכת גם במערכת על שבב (SoC) וגם בתכנונים של מעבד משותף ברשת (NCP).

מפרט Thread מגדיר פרוטוקול תקשורת אלחוטי אמין ומאובטח בין מכשירים, שמבוסס על IPv6 וצורכת מעט חשמל, לשימוש בבית ובבניינים מסחריים.

Texas Instruments הטמיעה את OpenThread במשפחת המכשירים SimpleLink™ CC27xx. מאגר ot-ti ב-GitHub מכיל את מנהלי ההתקנים של הפלטפורמה ואת האפליקציות לדוגמה שנדרשות להפעלת OpenThread ב-Texas Instruments SimpleLink Connected MCUs. ‫CC2745R10-Q1 הוא מיקרו-בקר אלחוטי (MCU) של TI ממשפחת SimpleLink CC27xx, שעומד בתקן IEEE 802.15.4 עם אישור Thread, ומתאים לשימוש ברכב (עומד בדרישות AEC-Q100).

בשיעור Codelab הזה נסביר איך להתחיל לפתח אפליקציות OpenThread באמצעות לוח ההערכה LP-EM-CC2745R10-Q1 LaunchPad ומאגר ot-ti. בתמונה שלמטה מוצגת הגדרת החומרה שבה נעשה שימוש בשיעור Codelab הזה, עם נתב גבול OT (OTBR) ושני מכשירי Thread מלאים (FTD).

הגדרת החומרה של CC2745R10

מה תלמדו

  • איך מגדירים את סביבת build של Texas Instruments ot-ti.
  • איך יוצרים קובצי הפעלה בינאריים של 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 שמחובר לנתב הגבול, ושניים מוגדרים כמכשירים מלאים של Thread ‏ (FTD). LP-EM-CC2745R10-Q1 Angled View‫CC2745R10-Q1 הוא מיקרו-בקר אלחוטי (MCU) עם אישור Thread ברמה לרכב (AEC-Q100), בהתאם לתקן IEEE 802.15.4, במשפחת SimpleLink CC27xx של TI. ‫LP-EM-CC2745R10-Q1 הוא מודול ההערכה התואם של LaunchPad והוא תומך בתפקידי 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 שנדרש ל-LaunchPads בפורמט 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 עם לפחות 2 יציאות USB וגישה לאינטרנט. סביבת build דורשת מעטפת שתואמת ל-Bash. משתמשי Windows צריכים להשתמש ב-WSL2 (Windows Subsystem for 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 (מותקן אוטומטית על ידי סקריפט האתחול)
  • SysConfig 1.27.0 (מותקן אוטומטית על ידי סקריפט האתחול)
  • TI UniFlash: להעברת קושחה ללוחות LaunchPad

3. הגדרת החומרה

בשיעור Codelab הזה נעשה שימוש בשלושה לוחות LP-EM-CC2745R10-Q1:

  • לוח 1 (RCP): מריץ קושחה ot-rcp. מחובר ל-Raspberry Pi באמצעות USB כמעבד משותף של הרדיו לנתב הגבולות.
  • Board 2 (FTD 1): מריץ קושחה של ot-cli-ftd כמכשיר Full Thread Device.
  • Board 3 (FTD 2): מריץ קושחה של ot-cli-ftd כמכשיר Full Thread Device.

LP-EM-CC2745R10-Q1 Top View

מחברים כל LaunchPad למחשב המארח באמצעות מיקרו-USB. חיבור ה-USB מספק גם חשמל וגם יכולת ניפוי באגים ותכנות באמצעות בדיקת ניפוי הבאגים XDS110 המשולבת.

כל LP-EM-CC2745R10-Q1 מופיע כשני יציאות טוריות וירטואליות כשהוא מחובר באמצעות USB: אחת לממשק הניפוי באגים XDS110 ואחת ל-UART של האפליקציה. כשפותחים מסוף טורי, מתחברים ליציאה Application/User UART ולא ליציאה Auxiliary Data.

תרשים של חיבור החומרה

4. הגדרה ובנייה של מאגר

מערכת ה-build של ot-ti משתמשת ב-CMake ודורשת מעטפת Bash. כל הפקודות בחלק הזה מורצות במארח Linux או macOS (או ב-WSL2 ב-Windows).

1. שכפול המאגר

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

2. מריצים את סקריפט האתחול

סקריפט האתחול מתקין את התלויות הנדרשות, כולל GNU ARM toolchain ו-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

יעד ה-build‏ 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

שתי התמונות שבהן נעשה שימוש ב-codelab הזה הן:

  • ot-rcp.out: קושחה של מעבד משותף של רדיו ללוח של נתב הגבולות.
  • ot-cli-ftd.out: קושחת CLI מלאה של מכשיר Thread עבור שני לוחות FTD.

אופציונלי: מכשיר Thread מינימלי: אם אתם רוצים לבדוק מכשיר קצה במצב שינה במקום מכשיר Thread מלא, אתם יכולים להפעיל את ot-cli-mtd.out במקום ot-cli-ftd.out בלוחות 2 ו-3. מכשיר MTD לא מנתב תנועה של Thread ויכול להיכנס למצבי שינה עם צריכת חשמל נמוכה, ולכן הוא מתאים מאוד לאפליקציות שמבוססות על סוללה. השלבים ליצירת רשת Thread ב-codelab זה זהים לשני סוגי המכשירים.

מעבד משותף אופציונלי לרשת (NCP): הקובץ הבינארי ot-ncp-ftd.out מטמיע את ארכיטקטורת ה-NCP, שבה מחסנית OpenThread פועלת במכשיר ומעבד מארח מפעיל אותה באמצעות פרוטוקול Spinel. השימוש ב-NCP לא נכלל ב-codelab הזה. פרטים נוספים זמינים בקובץ ה-README של NCP.

5. הפעלת קושחה

משתמשים ב-TI UniFlash כדי להעביר את תמונות ה-ELF ללוחות LaunchPad.

‫Flash באמצעות UniFlash

  1. פותחים את UniFlash. לוחות LaunchPad מחוברים מוצגים בקטע מכשירים שזוהו בגלל התכונה של זיהוי מכשירים אוטומטי.אם הלוח לא מזוהה באופן אוטומטי, לוחצים על תצורה חדשה, בוחרים את יעד LP-EM-CC2745R10-Q1 ובוחרים את בדיקת ה-USB של XDS110.מכשירים שזוהו ב-UniFlash
  2. בוחרים באפשרות Board 1 (לוח 1) (יוצג עם ot-rcp.out) ולוחצים על Start (התחלה).
  3. לוחצים על הלחצן עיון ועוברים אל ot-ti/build/bin/ot-rcp.out.דף הפלאש של UniFlash
  4. לוחצים על Load Image (טעינת תמונה) כדי לצרוב את הקושחה. באזור היומן מוצגת ההתקדמות ואישור ההשלמה.
  5. חוזרים על שלבים 2 עד 4 עבור לוח 2 ולוח 3, ובוחרים באפשרות ot-ti/build/bin/ot-cli-ftd.out לכל אחד מהם.

חלופה: הפעלה של Flash באמצעות Code Composer Studio ‏ (CCS)

אפשר להשתמש ב-Code Composer Studio כחלופה ל-UniFlash, והיא מספקת גם סביבת ניפוי באגים מלאה:

  1. מורידים ומתקינים את Code Composer Studio.
  2. יוצרים חיבור יעד (CCXML) ל-LP-EM-CC2745R10-Q1 באמצעות מאתר הבאגים XDS110. מידע נוסף מפורט במאמר CCS User's Guide: Manual Method.
  3. מתחילים סשן ניפוי באגים ללא פרויקט, כמו שמתואר במאמר CCS User's Guide: Manual Launch.
  4. מתחברים לליבת Arm Cortex-M33 ולוחצים על Load (טעינה) כדי לטעון את תמונת ה-ELF.

ההגדרה של CCXML כברירת מחדל משתמשת ב-2-wire cJTAG כדי להתאים להגדרת הגישור של LP-EM-CC2745R10-Q1 כברירת מחדל. אחרי התכנות באמצעות JTAG, מבצעים הפעלה מחדש של הלוח כדי לנקות את הדגל של עצירה בהפעלה.

6. תכנות של ה-HSM

ה-CC2745R10-Q1 מכיל מודול אבטחה לחומרה (HSM) שצריך להקצות לו משאבים לפני שמריצים Thread או קושחה מאובטחת אחרת של אפליקציה. אם ללוח LP-EM-CC2745R10-Q1 שלכם עדיין לא תוכנת HSM, עליכם להשלים את השלב הזה עכשיו.

כדי לתכנת את ה-HSM באמצעות UniFlash:

  1. פותחים את UniFlash ובוחרים את לוח LP-EM-CC2745R10-Q1 מתוך Detected Devices (מכשירים שזוהו).
  2. עוברים לחלונית התכנות של HSM וטוענים את תמונת הקושחה של HSM כמו שמוצג למטה.

UniFlash HSM Programming

  1. פועלים לפי ההנחיות במסך כדי להשלים את הקצאת ה-HSM. הפעולה מתועדת במסוף הפלט של UniFlash.

הוראות מלאות לתכנות HSM, כולל נתיב תמונת הקושחה הנדרש ב-SimpleLink Low Power F3 SDK, מופיעות במדריך למתחילים CC2745R10-Q1 ב-TI Resource Explorer.

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): פותחים את מנהל ההתקנים ומחפשים בקטע Ports (COM & LPT) (יציאות (COM ו-LPT)) שתי יציאות COM חדשות כשהלוח מחובר. בדרך כלל, יציאת נתוני הניפוי באגים XDS110 מופיעה ראשונה. צריך להשתמש ביציאת ה-COM השנייה (עם המספר הגבוה יותר) עבור מסוף האפליקציה.

מקישים על Enter בטרמינל כדי לקבל הנחיה של OpenThread CLI ‏ (>). רשימה מלאה של הפקודות הזמינות מופיעה במאמר העזרה בנושא OpenThread CLI. בודקים שה-FTD פועל:

> state
disabled
Done

מסופי FTD סריאליים

עדיין לא מגדירים מסוף טורית ללוח ה-RCP. ה-OTBR ב-Raspberry Pi מתקשר ישירות עם ה-RCP. בשלב הבא תגדירו את Raspberry Pi כנתב גבול OpenThread.

9. הגדרה של Raspberry Pi כנתב גבול

‫OTBR מבוסס על ot-br-posix, פרויקט קוד פתוח של נתב גבול OpenThread. נתב הגבול פועל ב-Raspberry Pi ומשתמש בלוח 1 (RCP) כרדיו 802.15.4 שלו דרך USB.

הגדרת Raspberry Pi

  1. מבצעים Flash של Raspberry Pi OS‏ (64-bit Lite או Desktop) לכרטיס ה-SD באמצעות Raspberry Pi Imager.
  2. מפעילים את Raspberry Pi ופותחים טרמינל (דרך 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

יציאת ה-UART של האפליקציה בלוח ה-RCP היא בדרך כלל /dev/ttyACM1 (יציאת ה-UART של ניפוי הבאגים XDS110 היא /dev/ttyACM0). כדי לבדוק איזו יציאה היא יציאת ה-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 (ומוודאים ש-Pi כבר מחובר לרשת ה-Wi-Fi). בודקים את השם של הממשק הפעיל באמצעות ip link show.

סקריפט ההגדרה יוצר את ot-br-posix מהמקור, מתקין את שירותי המערכת otbr-agent ו-otbr-web ומגדיר את מחסנית הרשת. בדרך כלל התהליך הזה נמשך 10-20 דקות ב-Raspberry Pi 4B.

הגדרת סוכן OTBR

עורכים את קובץ ההגדרות של סוכן OTBR כדי לציין את הנתיב של מכשיר ה-RCP ואת קצב העברת הנתונים (baud rate):

$ 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"

אם Raspberry Pi מחובר באמצעות Wi-Fi, מחליפים את eth0 ב-wlan0.

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

ה-UART של אפליקציית ה-RCP של LP-EM-CC2745R10-Q1 פועל ב-921600 באוד. מוודאים שנתיב המכשיר (/dev/ttyACM1 בדוגמה הזו) תואם ל-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. טרמינל סדרתי ל-Board 2‏ (ot-cli-ftd 1) במחשב המארח.
  2. טרמינל סדרתי ל-Board 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

ביצוע Commit של מערך נתונים חדש למערך הנתונים הפעיל.

סיום

3

ifconfig up

מפעילים את הממשק של Thread.

סיום

4

thread start

הפעלה וצירוף של פעולת פרוטוקול Thread.

סיום

מחכים 10 שניות עד שממשק Thread מופיע.

5

state

בודקים את מצב המכשיר. הערך צריך להיות leader. מצבים אפשריים אחרים: לא מקוון, מושבת, מנותק, צאצא, נתב או מוביל.

מוביל
סיום

6

dataset

צפייה בהגדרת הרשת. הערכים שלכם יהיו שונים. חשוב לשים לב לערוץ, למפתח הרשת, לשם הרשת ולמזהה ה-PAN – תצטרכו אותם כדי להצטרף ל-FTD לרשת.

חותמת זמן פעילה: 1
ערוץ: 20
מסכת ערוץ: 0x07fff800
מזהה PAN חיצוני: 39ba71f7fc367160
קידומת מקומית של רשת Mesh: fd5c:c6b:3a17:40b9::/64
מפתח רשת: 81ae2c2c17368d585dee71eaa8cf1e90
שם רשת: OpenThread-008c
מזהה PAN: 0x008c
PSKc: c98f0193d4236025d22dd0ee614e641f
מדיניות אבטחה: 0, onrcb
סיום

הוספת מכשירי FTD לרשת Thread (שיטה מחוץ לפס)

בשיטה הזו, אתם מספקים את פרטי הכניסה לרשת באופן ישיר. במסוף הטורי לכל לוח FTD, מזינים את הפקודות הבאות באמצעות המפתח של הערוץ והרשת מתוך הפלט של מערך הנתונים OTBR שמוצג למעלה:

אינדקס

פקודה

תיאור

תשובה צפויה

1

dataset channel 20

מגדירים את הערוץ כך שיתאים ל-OTBR. מחליפים את 20 בערך הערוץ של ה-OTBR.

סיום

2

dataset networkkey 81ae2c2c17368d585dee71eaa8cf1e90

מגדירים את מפתח הרשת. מחליפים את הערך במפתח הרשת של ה-OTBR. נדרש רק המפתח הזה כדי לצרף.

סיום

3

dataset commit active

ביצוע Commit של מערך נתונים חדש למערך הנתונים הפעיל.

סיום

4

ifconfig up

מפעילים את הממשק של Thread.

סיום

5

thread start

הפעלה וצירוף של פעולת פרוטוקול Thread.

סיום

מחכים 20 שניות עד שהמכשיר יצטרף ויתבצעו בו הגדרות.

6

state

בודקים את מצב המכשיר.

ילד/ה
סיום

בגלל האופי של רשתות Thread שמוגדרות באופן עצמאי, ומכיוון שמדובר במכשירי Thread מלאים, יכול להיות שאחד מהנתבים או שניהם יהפכו לנתבים. אפשר לאמת את התפקיד הנוכחי בכל שלב באמצעות הפקודה 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!

עכשיו אתם יודעים:

  • איך מגדירים את סביבת build של Texas Instruments ot-ti.
  • איך יוצרים קבצים בינאריים של OpenThread CLI ואיך מעבירים אותם ל-LP-EM-CC2745R10-Q1 LaunchPad.
  • איך מגדירים Raspberry Pi כנתב גבול OpenThread ‏ (OTBR) באמצעות ot-br-posix.
  • איך יוצרים רשת Thread ב-OTBR.
  • הקצאת הרשאות למכשירים ברשת בפרוטוקול Thread מחוץ לפס.
  • איך מאמתים את התקשורת ב-Thread בין הצמתים באמצעות הפקודה ping.

קריאה נוספת

באתר openthread.io וב-GitHub אפשר למצוא מגוון משאבים של OpenThread, כולל: