Thread-Netzwerk mit Texas Instruments SimpleLink F3 und OpenThread erstellen

1. Einführung

OpenThread-Logo

OpenThread (OT) von Google ist eine Open-Source-Implementierung von Thread. Google hat OpenThread veröffentlicht, um die in Google Nest-Produkten verwendete Netzwerktechnologie Entwicklern allgemein zugänglich zu machen und die Entwicklung von Produkten für das vernetzte Zuhause und gewerbliche Gebäudeanwendungen zu beschleunigen. Mit einer schmalen Plattformabstraktionsschicht und einem geringen Speicherbedarf ist OpenThread sehr portabel. Es unterstützt sowohl System-on-Chip- (SoC) als auch Network Co-Processor-Designs (NCP).

Die Thread-Spezifikation definiert ein zuverlässiges, sicheres und energieeffizientes drahtloses IPv6-basiertes Protokoll für die Kommunikation zwischen Geräten für Anwendungen in Wohn- und Gewerbegebäuden.

Texas Instruments hat OpenThread für die Gerätefamilie SimpleLink™ CC27xx implementiert. Das ot-ti-Repository auf GitHub enthält die Plattformtreiber und Beispielanwendungen, die zum Ausführen von OpenThread auf Texas Instruments SimpleLink Connected MCUs erforderlich sind. Der CC2745R10-Q1 ist ein für die Automobilindustrie geeigneter (AEC-Q100-zertifizierter) IEEE 802.15.4-Wireless-MCU aus der SimpleLink CC27xx-Familie von TI, der für Thread zertifiziert ist.

In diesem Codelab wird beschrieben, wie Sie mit der Entwicklung von OpenThread-Anwendungen mit dem LP-EM-CC2745R10-Q1 LaunchPad-Evaluierungsboard und dem ot-ti-Repository beginnen. Das Bild unten zeigt die in diesem Codelab verwendete Hardwarekonfiguration mit einem OT Border Router (OTBR) und zwei Thread Full Thread Devices (FTDs).

CC2745R10 – Hardware einrichten

Lerninhalte

  • So richten Sie die Build-Umgebung von Texas Instruments (ot-ti) ein.
  • So erstellen und flashen Sie OpenThread-CLI-Binärdateien auf LP-EM-CC2745R10-Q1-Boards.
  • So richten Sie einen Raspberry Pi als OpenThread Border Router (OTBR) mit ot-br-posix ein.
  • So erstellen Sie ein Thread-Netzwerk auf dem OTBR.
  • Out-of-Band-Inbetriebnahme von Geräten in einem Thread-Netzwerk.
  • So prüfen Sie die Thread-Kommunikation zwischen Knoten mit dem Befehl „ping“.

2. Vorbereitung

Hardware

  1. 3 LP-EM-CC2745R10-Q1 LaunchPad-Boards: eines als RCP konfiguriert, das mit dem Border Router verbunden ist, und zwei als Full Thread Devices (FTD) konfiguriert. LP-EM-CC2745R10-Q1 – Ansicht von der SeiteDer CC2745R10-Q1 ist ein für die Automobilindustrie geeigneter (AEC-Q100-zertifizierter) Thread-zertifizierter IEEE 802.15.4-Wireless-MCU in der SimpleLink CC27xx-Familie von TI. Das LP-EM-CC2745R10-Q1 ist das entsprechende LaunchPad-Evaluierungsmodul und unterstützt die Thread-Rollen RCP, FTD, MTD und NCP. Der CC2340R5 mit dem LP-EM-CC2340R5 LaunchPad ist eine Option mit weniger Arbeitsspeicher, die nur als RCP verwendet werden kann. FTD-, MTD- oder NCP-Rollen werden nicht unterstützt. Wenn Sie eine LP-EM-CC2340R5 für Board 1 (RCP) verwenden, müssen die beiden FTD-Boards weiterhin LP-EM-CC2745R10-Q1 sein.
  2. 3 LP-XDS110ET-Debug-Probes: eine pro LaunchPad-Board, die für die Programmierung und das Debugging über USB verwendet wird. LP-XDS110ET – Ansicht von der SeiteDer LP-XDS110ET ist eine separate USB-Debug-Sonde, die für LaunchPads im LP-EM-Formfaktor erforderlich ist. Es bietet EnergyTrace-Unterstützung für die Energieprofilerstellung. Das LP-XDS110 ist eine kostengünstigere Alternative, die dieselben Programmier- und Debugging-Funktionen bietet, aber keine EnergyTrace-Funktion enthält. Alternativ kann anstelle des LP-EM-Boards und einer separaten Debugging-Sonde ein LaunchPad mit einer integrierten XDS110-Debugging-Sonde (z. B. LAUNCHXL-CC26X2R1) verwendet werden. Weitere Informationen finden Sie in der Anleitung zur Debugging-Verbindung für LaunchPad.
  3. 3 Micro-USB-Kabel zum Verbinden und Versorgen der LaunchPad-Boards und Debug-Sonden.
  4. Ein Raspberry Pi 4B oder höher mit Raspberry Pi OS, der über Ethernet mit dem Internet verbunden ist. Dieser wird als OT Border Router-Host konfiguriert.Raspberry Pi 4
  5. Ein Linux- oder macOS-Hostsystem mit mindestens zwei USB-Anschlüssen und Internetzugang. Für die Build-Umgebung ist eine Bash-kompatible Shell erforderlich. Windows-Nutzer sollten WSL2 (Windows-Subsystem für Linux 2) mit Ubuntu verwenden.
  6. Mindestens ein Ethernetkabel, um den Raspberry Pi mit dem Internet zu verbinden. Alternativ können Sie den Raspberry Pi mit dem WLAN verbinden und wlan0 als Infrastrukturschnittstelle verwenden. Weitere Informationen finden Sie im OTBR-Einrichtungsschritt.

Software

  • TI ot-ti-Repository: https://github.com/TexasInstruments/ot-ti
  • GNU ARM Embedded Toolchain 12.2 (wird automatisch vom Bootstrap-Skript installiert)
  • SysConfig 1.27.0 (wird automatisch durch das Bootstrap-Skript installiert)
  • TI UniFlash: zum Flashen von Firmware auf die LaunchPad-Boards

3. Hardware einrichten

In diesem Codelab werden drei LP-EM-CC2745R10-Q1-Boards verwendet:

  • Board 1 (RCP): Hier wird die ot-rcp-Firmware ausgeführt. Über USB mit dem Raspberry Pi verbunden und als Funk-Coprozessor für den Border-Router konfiguriert.
  • Board 2 (FTD 1): Auf diesem Board wird die ot-cli-ftd-Firmware als Full Thread Device ausgeführt.
  • Board 3 (FTD 2): Auf diesem Board wird die ot-cli-ftd-Firmware als Full Thread Device ausgeführt.

LP-EM-CC2745R10-Q1 – Draufsicht

Verbinden Sie jedes LaunchPad über Micro-USB mit Ihrem Hostcomputer. Die USB-Verbindung bietet sowohl Strom als auch Debugging-/Programmierfunktionen über die integrierte XDS110-Debug-Probe.

Jeder LP-EM-CC2745R10-Q1 wird bei Verbindung über USB als zwei virtuelle serielle Ports angezeigt: einer für die XDS110-Debug-Schnittstelle und einer für den Anwendungs-UART. Wenn Sie eine serielle Konsole öffnen, stellen Sie eine Verbindung zum Port Application/User UART und nicht zum Auxiliary Data-Port her.

Anschlussschema für die Hardware

4. Repository-Einrichtung und Build

Das ot-ti-Build-System verwendet CMake und erfordert eine Bash-Shell. Alle Befehle in diesem Abschnitt werden auf dem Linux- oder macOS-Host (oder WSL2 unter Windows) ausgeführt.

1. Repository klonen

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

2. Bootstrap-Skript ausführen

Das Bootstrap-Script installiert die erforderlichen Abhängigkeiten, einschließlich der GNU ARM-Toolchain und SysConfig:

$ ./script/bootstrap

Für das Bootstrap-Skript sind cmake, git, wget und Standard-Build-Tools erforderlich. Installieren Sie die Voraussetzungen unter Ubuntu/Debian mit: sudo apt-get install -y cmake git make wget tar ninja-build

3. Firmware für LP_EM_CC2745R10_Q1 erstellen

Erstellen Sie alle Firmware-Images für das LP-EM-CC2745R10-Q1-Board:

$ ./script/build LP_EM_CC2745R10_Q1

Das LP_EM_CC2745R10_Q1-Build-Ziel entspricht dem CC2745R10-Q1-Gerät in der CC27xx SimpleLink-Familie (Arm Cortex-M33F-Kern). Wenn Sie alle unterstützten Boards sehen möchten, führen Sie ./script/build ohne Argumente aus.

Nach einem erfolgreichen Build befinden sich die ELF-Binärdateien in build/bin/:

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

In diesem Codelab werden die folgenden beiden Bilder verwendet:

  • ot-rcp.out: Die Firmware des Funk-Coprozessors für das Border-Router-Board.
  • ot-cli-ftd.out: Vollständige Thread Device CLI-Firmware für die beiden FTD-Boards.

Optionales minimales Thread-Gerät:Wenn Sie anstelle eines Full Thread Device ein Endgerät im Ruhemodus verwenden möchten, können Sie auf den Boards 2 und 3 ot-cli-mtd.out anstelle von ot-cli-ftd.out flashen. Ein MTD leitet keinen Thread-Traffic weiter und kann in Energiespar-Ruhezustände wechseln. Daher eignet er sich gut für akkubetriebene Anwendungen. Die Schritte zur Bildung des Thread-Netzwerks in diesem Codelab sind für beide Gerätetypen gleich.

Optionaler Netzwerk-Coprozessor (Network Co-Processor, NCP): Das ot-ncp-ftd.out-Binärprogramm implementiert die NCP-Architektur, bei der der OpenThread-Stack auf dem Gerät ausgeführt wird und ein Hostprozessor ihn über das Spinel-Protokoll steuert. Die Verwendung von NCP fällt nicht in den Rahmen dieses Codelabs. Weitere Informationen finden Sie in der NCP-README-Datei.

5. Firmware flashen

Verwenden Sie TI UniFlash, um die ELF-Bilder auf die LaunchPad-Boards zu flashen.

Flash mit UniFlash

  1. Öffnen Sie UniFlash. Verbundene LaunchPad-Boards werden aufgrund der automatischen Geräteerkennung unter Detected Devices (Erkannte Geräte) angezeigt.Wenn Ihr Board nicht automatisch erkannt wird, klicken Sie auf New Configuration (Neue Konfiguration), wählen Sie das LP-EM-CC2745R10-Q1-Ziel aus und wählen Sie die XDS110-USB-Debug-Sonde aus.Von UniFlash erkannte Geräte
  2. Wählen Sie Board 1 aus (das mit ot-rcp.out geflasht werden soll) und klicken Sie auf Start.
  3. Klicken Sie auf die Schaltfläche Durchsuchen und rufen Sie ot-ti/build/bin/ot-rcp.out auf.UniFlash-Flash-Seite
  4. Klicken Sie auf Load Image (Bild laden), um die Firmware zu flashen. Im Logbereich wird der Fortschritt angezeigt und der Abschluss bestätigt.
  5. Wiederholen Sie die Schritte 2 bis 4 für Board 2 und Board 3 und wählen Sie jeweils ot-ti/build/bin/ot-cli-ftd.out aus.

Alternative: Flashen mit Code Composer Studio (CCS)

Code Composer Studio kann als Alternative zu UniFlash verwendet werden und bietet zusätzlich eine vollständige Debugging-Umgebung:

  1. Laden Sie Code Composer Studio herunter und installieren Sie es.
  2. Erstellen Sie eine Zielverbindung (CCXML) für den LP-EM-CC2745R10-Q1 mit dem XDS110-Debugger. Weitere Informationen finden Sie im CCS User's Guide: Manual Method.
  3. Starten Sie eine Debugging-Sitzung ohne Projekt, wie im CCS User's Guide: Manual Launch beschrieben.
  4. Stellen Sie eine Verbindung zum Arm Cortex-M33-Kern her und klicken Sie auf Load (Laden), um das ELF-Image zu laden.

Die Standard-CCXML-Konfiguration verwendet 2-wire cJTAG, um der Standard-Jumperkonfiguration des LP-EM-CC2745R10-Q1 zu entsprechen. Schalten Sie das Board nach der Programmierung über JTAG aus und wieder ein, um das Halt-in-Boot-Flag zu löschen.

6. HSM programmieren

Der CC2745R10-Q1 enthält ein Hardwaresicherheitsmodul (HSM), das vor der Ausführung von Thread oder anderer sicherer Anwendungsfirmware bereitgestellt werden muss. Wenn das HSM Ihres LP-EM-CC2745R10-Q1-Boards noch nicht programmiert wurde, holen Sie dies jetzt nach.

So programmieren Sie das HSM mit UniFlash:

  1. Öffnen Sie UniFlash und wählen Sie Ihr LP-EM-CC2745R10-Q1-Board unter Detected Devices (Erkannte Geräte) aus.
  2. Rufen Sie das HSM-Programmierfeld auf und laden Sie das HSM-Firmware-Image wie unten gezeigt.

UniFlash – HSM-Programmierung

  1. Folgen Sie der Anleitung auf dem Bildschirm, um die HSM-Bereitstellung abzuschließen. Der Vorgang wird in der UniFlash-Ausgabekonsole protokolliert.

Den vollständigen HSM-Programmiervorgang, einschließlich des erforderlichen Firmware-Image-Pfads im SimpleLink Low Power F3 SDK, finden Sie im CC2745R10-Q1 Quick Start Guide im TI Resource Explorer.

7. Zusammenfassung der Firmware

Zu diesem Zeitpunkt sollten alle drei Boards geflasht sein:

  • Board 1 ot-rcp.out: Trennen Sie die Verbindung zum Hostcomputer und stellen Sie über USB eine Verbindung zum Raspberry Pi her.
  • Board 2 : ot-cli-ftd.out: Verbindung zum Hostcomputer aufrechterhalten.
  • Board 3 : ot-cli-ftd.out: Verbindung zum Hostcomputer aufrechterhalten.

Ihre Hardwareeinrichtung sollte so aussehen wie im Diagramm unten. Board 1 ist mit dem Raspberry Pi als Funk-Coprozessor für den OTBR verbunden, während Board 2 und Board 3 für den Zugriff auf die serielle Konsole mit dem Hostcomputer verbunden bleiben.

CC2745R10 – Hardwareeinrichtung mit FTDs

8. Serielle Konsole für ot-cli-ftd-Geräte einrichten

Der LP-EM-CC2745R10-Q1 macht den Anwendungs-UART über USB mit 921600 Baud verfügbar.

Öffnen Sie für jedes FTD-Board ein serielles Terminal für den COM-Port des Anwendungs-UART (Windows) oder das /dev/ttyACM*-Gerät (Linux/macOS) mit den folgenden Einstellungen:

Parameter

Wert

Geschwindigkeit (Baud)

921600

Datenbits

8

Stoppbits

1

Parität

None

Ablaufsteuerung

None

Tipp (Linux/macOS): Ermitteln Sie den richtigen Geräteknoten, indem Sie ls /dev/ttyACM* vor und nach dem Anschließen eines Boards ausführen und notieren, welcher Eintrag angezeigt wird. Für jede LP-EM-CC2745R10-Q1 werden zwei Einträge erstellt: Der Port mit der niedrigeren Nummer ist die XDS110-Debug-UART und der Port mit der höheren Nummer ist die Anwendungs-UART. Wenn auf dem Board beispielsweise /dev/ttyACM0 und /dev/ttyACM1 erstellt werden, verwenden Sie /dev/ttyACM1.

Tipp (Windows): Öffnen Sie den Geräte-Manager und suchen Sie unter Anschlüsse (COM & LPT) nach zwei neuen COM-Anschlüssen, wenn ein Board angeschlossen ist. Der XDS110-Debug-Datenport wird normalerweise zuerst angezeigt. Verwenden Sie den zweiten (höher nummerierten) COM-Port für die Anwendungskonsole.

Drücken Sie im Terminal die Eingabetaste, um eine OpenThread-Befehlszeilenaufforderung (>) zu erhalten. Eine vollständige Liste der verfügbaren Befehle finden Sie in der OpenThread-Befehlszeilenreferenz. Prüfen Sie, ob die FTD betriebsbereit ist:

> state
disabled
Done

FTDs für serielle Terminals

Sie richten noch keine serielle Konsole für das RCP-Board ein. Der OTBR auf dem Raspberry Pi kommuniziert direkt mit dem RCP. Im nächsten Schritt konfigurieren Sie den Raspberry Pi als OpenThread Border Router.

9. Raspberry Pi als Border Router einrichten

Der OTBR basiert auf ot-br-posix, dem Open-Source-Projekt OpenThread Border Router. Der Border Router wird auf dem Raspberry Pi ausgeführt und verwendet Board 1 (RCP) als 802.15.4-Funkmodul über USB.

Raspberry Pi einrichten

  1. Flashen Sie Raspberry Pi OS (64-Bit Lite oder Desktop) mit Raspberry Pi Imager auf Ihre SD-Karte.
  2. Starte den Raspberry Pi und öffne ein Terminal (über SSH oder direkt).
  3. Aktualisieren Sie den Paketmanager und aktualisieren Sie die installierten Pakete:
    $ sudo apt-get update
    $ sudo apt-get upgrade -y
    

Starte den Raspberry Pi nach den Updates neu, bevor du fortfährst: sudo reboot

Board 1 (RCP) mit dem Raspberry Pi verbinden

Verbinden Sie Board 1 (mit ot-rcp geflasht) über Micro-USB mit dem Raspberry Pi. Prüfen Sie nach der Verbindung, ob der Geräteknoten angezeigt wird:

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

Die Anwendungs-UART des RCP-Boards ist normalerweise /dev/ttyACM1 (die XDS110-Debug-UART ist /dev/ttyACM0). Prüfe, welcher Port die Anwendungs-UART ist, indem du prüfst, ob sie reagiert, wenn der OTBR-Agent in einem späteren Schritt gestartet wird. Wenn andere serielle USB-Geräte angeschlossen sind, kann sich die Geräteknotennummer unterscheiden. Passen Sie den Pfad in der OTBR-Konfiguration entsprechend an.

„ot-br-posix“ erstellen und installieren

Klonen und erstellen Sie „ot-br-posix“ auf dem Raspberry Pi:

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

Führen Sie das Setupscript aus und geben Sie Ihre Ethernet-Schnittstelle als Backbone-Schnittstelle (Infrastrukturschnittstelle) an:

$ INFRA_IF_NAME=eth0 ./script/setup

eth0 ist der typische Name für die kabelgebundene Ethernet-Schnittstelle. Wenn Sie den Raspberry Pi über WLAN anstelle von Ethernet verbinden, ersetzen Sie eth0 durch wlan0 (und achten Sie darauf, dass der Pi bereits mit Ihrem WLAN verbunden ist). Prüfen Sie den Namen der aktiven Schnittstelle mit ip link show.

Das Setupscript erstellt „ot-br-posix“ aus dem Quellcode, installiert die Systemdienste otbr-agent und otbr-web und konfiguriert den Netzwerkstack. Dieser Vorgang dauert auf einem Raspberry Pi 4B in der Regel 10 bis 20 Minuten.

OTBR-Agent konfigurieren

Bearbeiten Sie die Konfigurationsdatei des OTBR-Agents, um den RCP-Gerätepfad und die Baudrate anzugeben:

$ sudo nano /etc/default/otbr-agent

Suchen Sie die Zeile OTBR_AGENT_OPTS und aktualisieren Sie sie, sodass sie auf den UART der RCP-Anwendung verweist:

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

Ersetzen Sie eth0 durch wlan0, wenn Ihr Raspberry Pi über WLAN verbunden ist.

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

Der UART der RCP-Anwendung LP-EM-CC2745R10-Q1 arbeitet mit 921.600 Baud. Prüfen Sie, ob der Gerätepfad (/dev/ttyACM1 in diesem Beispiel) mit dem Application UART Ihres RCP-Boards übereinstimmt.

Starten Sie den OTBR-Agent neu, um die Konfiguration anzuwenden:

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

Prüfen Sie, ob der Agent ausgeführt wird:

$ sudo systemctl status otbr-agent

Mit dem RCP-Knoten interagieren

Kommunizieren Sie mit dem RCP-Knoten über das Tool ot-ctl:

$ sudo ot-ctl state
disabled
Done

Sie können das OTBR-Agent-Log auf Verbindungs- und Statusmeldungen überwachen:

$ sudo journalctl -u otbr-agent -f

Optional ist die OTBR-Weboberfläche unter http://:80 verfügbar. Sie bietet eine grafische Ansicht des Thread-Netzwerks.

So beenden oder starten Sie den OTBR-Agent neu:

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

Zu diesem Zeitpunkt sollten Sie drei aktive Konsolen haben:

  1. Serielles Terminal für Board 2 (ot-cli-ftd 1) auf dem Hostcomputer.
  2. Serielles Terminal für Board 3 (ot-cli-ftd 2) auf dem Hostcomputer.
  3. SSH- oder Terminalsitzung auf dem Raspberry Pi für ot-ctl (OTBR/RCP).

Jetzt können Sie ein Thread-Netzwerk erstellen.

10. Thread-Netzwerk erstellen

RCP (OTBR) einrichten

Erstelle ein neues Thread-Netzwerk über die ot-ctl-Shell auf dem Raspberry Pi. Geben Sie die folgenden Befehle in der angegebenen Reihenfolge ein:

Index

Befehl

Beschreibung

Erwartete Antwort

1

dataset init new

Erstellen Sie eine neue Netzwerkkonfiguration.

Fertig

2

dataset commit active

Das neue Dataset im aktiven operativen Dataset speichern.

Fertig

3

ifconfig up

Aktivieren Sie die Thread-Schnittstelle.

Fertig

4

thread start

Thread-Protokollvorgang aktivieren und anhängen.

Fertig

Warte 10 Sekunden, bis die Thread-Schnittstelle angezeigt wird.

5

state

Prüfe den Gerätestatus. Er sollte leader lauten. Andere mögliche Status: „offline“, „disabled“, „detached“, „child“, „router“ oder „leader“.

leader
Done

6

dataset

Netzwerkkonfiguration ansehen Ihre Werte werden abweichen. Notieren Sie sich den Kanal, den Netzwerkschlüssel, den Netzwerknamen und die PAN‑ID. Diese sind erforderlich, um FTDs mit dem Netzwerk zu verbinden.

Aktiver Zeitstempel: 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

FTDs dem Thread-Netzwerk hinzufügen (Out-of-Band-Methode)

Bei der Out-of-Band-Inbetriebnahme geben Sie die Netzwerkanmeldedaten direkt an. Geben Sie im seriellen Terminal für jedes FTD-Board die folgenden Befehle ein. Verwenden Sie dabei den Channel und den Netzwerkschlüssel aus der OTBR-Dataset-Ausgabe oben:

Index

Befehl

Beschreibung

Erwartete Antwort

1

dataset channel 20

Stelle den Kanal so ein, dass er dem OTBR entspricht. Ersetzen Sie 20 durch den Channelwert Ihres OTBR.

Fertig

2

dataset networkkey 81ae2c2c17368d585dee71eaa8cf1e90

Legen Sie den Netzwerkschlüssel fest. Ersetzen Sie diese durch den Netzwerkschlüssel Ihres OTBR. Nur dieser Schlüssel ist für das Anhängen erforderlich.

Fertig

3

dataset commit active

Das neue Dataset im aktiven operativen Dataset speichern.

Fertig

4

ifconfig up

Aktivieren Sie die Thread-Schnittstelle.

Fertig

5

thread start

Thread-Protokollvorgang aktivieren und anhängen.

Fertig

Warten Sie 20 Sekunden, während das Gerät sich verbindet und konfiguriert.

6

state

Gerätestatus prüfen

child
Done

Aufgrund der Selbstkonfiguration von Thread-Netzwerken und der Tatsache, dass es sich bei diesen Geräten um Full Thread Devices handelt, können beide FTDs oder eines der beiden Geräte schließlich zu Routern werden. Mit dem Befehl state können Sie die aktuelle Rolle jederzeit prüfen.

Kommunikation zwischen Thread-Geräten

Prüfen Sie mit dem Befehl ping, ob Geräte miteinander kommunizieren können. Rufen Sie die IPv6-Adressen der einzelnen Geräte mit ipaddr ab:

> 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

Pinge von beiden FTDs aus den OTBR über seine RLOC-Adresse an:

> 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

Eine erfolgreiche Antwort bestätigt, dass das Thread-Netzwerk funktioniert und Geräte kommunizieren können. Wiederholen Sie den Vorgang, um jeden FTD vom OTBR (sudo ot-ctl ping ) aus zu pingen.

11. Glückwunsch

Sie haben ein Thread-Netzwerk mit TI CC2745R10-Q1-Boards erstellt.

Sie wissen jetzt:

  • So richten Sie die Build-Umgebung von Texas Instruments (ot-ti) ein.
  • OpenThread-CLI-Binärdateien für das LP-EM-CC2745R10-Q1 LaunchPad erstellen und flashen
  • So richten Sie einen Raspberry Pi als OpenThread Border Router (OTBR) mit ot-br-posix ein.
  • So erstellen Sie ein Thread-Netzwerk auf dem OTBR.
  • Out-of-Band-Inbetriebnahme von Geräten in einem Thread-Netzwerk.
  • So prüfen Sie die Thread-Kommunikation zwischen Knoten mit dem Befehl „ping“.

Weiterführende Literatur

Auf openthread.io und GitHub finden Sie verschiedene OpenThread-Ressourcen, darunter: