Xây dựng mạng Thread bằng Texas Instruments SimpleLink F3 và OpenThread

1. Giới thiệu

Biểu trưng OpenThread

OpenThread (OT) của Google là một cách triển khai nguồn mở của Thread. Google đã phát hành OpenThread để cung cấp rộng rãi công nghệ mạng được dùng trong các sản phẩm của Google Nest cho nhà phát triển, từ đó đẩy nhanh quá trình phát triển sản phẩm cho các ứng dụng nhà thông minh và toà nhà thương mại. Với lớp trừu tượng nền tảng hẹp và mức sử dụng bộ nhớ nhỏ, OpenThread có tính di động cao. Thiết bị này hỗ trợ cả thiết kế hệ thống trên chip (SoC) và bộ đồng xử lý mạng (NCP).

Quy cách Thread xác định một giao thức giao tiếp không dây đáng tin cậy, an toàn và tiêu thụ ít điện năng giữa các thiết bị dựa trên IPv6 cho các ứng dụng nhà ở và toà nhà thương mại.

Texas Instruments đã triển khai OpenThread cho dòng thiết bị SimpleLink™ CC27xx. Kho lưu trữ ot-ti trên GitHub chứa các trình điều khiển nền tảng và ứng dụng mẫu cần thiết để chạy OpenThread trên các MCU được kết nối SimpleLink của Texas Instruments. CC2745R10-Q1 là MCU không dây IEEE 802.15.4 được chứng nhận theo tiêu chuẩn Thread, cấp độ dành cho ô tô (đạt tiêu chuẩn AEC-Q100) thuộc dòng SimpleLink CC27xx của TI.

Lớp học lập trình này mô tả cách bắt đầu phát triển các ứng dụng OpenThread bằng bo mạch đánh giá LP-EM-CC2745R10-Q1 LaunchPad và kho lưu trữ ot-ti. Hình ảnh bên dưới cho thấy chế độ thiết lập phần cứng được dùng trong lớp học lập trình này, với một Bộ định tuyến biên OT (OTBR) và hai Thiết bị Thread đầy đủ (FTD).

Thiết lập phần cứng CC2745R10

Kiến thức bạn sẽ học được

  • Cách thiết lập môi trường tạo bản dựng ot-ti của Texas Instruments.
  • Cách tạo và flash các tệp nhị phân OpenThread CLI vào các bo mạch LP-EM-CC2745R10-Q1.
  • Cách thiết lập Raspberry Pi làm Bộ định tuyến biên OpenThread (OTBR) bằng ot-br-posix.
  • Cách tạo mạng Thread trên OTBR.
  • Thiết lập thiết bị ngoài băng tần trên mạng Thread.
  • Cách xác minh giao tiếp Thread giữa các nút bằng lệnh ping.

2. Điều kiện tiên quyết

Phần cứng

  1. 3 bảng LaunchPad LP-EM-CC2745R10-Q1: một bảng được định cấu hình làm RCP kết nối với Border Router và hai bảng được định cấu hình làm Thiết bị Thread đầy đủ (FTD). LP-EM-CC2745R10-Q1 Angled ViewCC2745R10-Q1 là một MCU không dây được chứng nhận theo tiêu chuẩn IEEE 802.15.4 và được chứng nhận theo tiêu chuẩn Thread dành cho ô tô (đạt tiêu chuẩn AEC-Q100) trong dòng sản phẩm SimpleLink CC27xx của TI. LP-EM-CC2745R10-Q1 là Mô-đun đánh giá LaunchPad tương ứng và hỗ trợ các vai trò RCP, FTD, MTD và NCP Thread. CC2340R5 có LaunchPad LP-EM-CC2340R5 là một lựa chọn có bộ nhớ thấp hơn và chỉ có thể đóng vai trò là RCP. Không hỗ trợ các vai trò FTD, MTD hoặc NCP. Nếu bạn thay thế LP-EM-CC2340R5 cho Bảng 1 (RCP), thì 2 bảng FTD vẫn phải là LP-EM-CC2745R10-Q1.
  2. 3 đầu dò gỡ lỗi LP-XDS110ET: mỗi đầu dò cho một bảng LaunchPad, dùng để lập trình và gỡ lỗi qua USB. LP-XDS110ET Angled ViewLP-XDS110ET là một đầu dò gỡ lỗi USB riêng biệt cần thiết cho LaunchPad ở kiểu dáng LP-EM. Công cụ này bao gồm tính năng hỗ trợ EnergyTrace để lập hồ sơ năng lượng. LP-XDS110 là một lựa chọn thay thế có chi phí thấp hơn, cung cấp khả năng gỡ lỗi và lập trình tương tự nhưng không bao gồm EnergyTrace. Ngoài ra, bạn có thể sử dụng LaunchPad có đầu dò gỡ lỗi XDS110 trên bo mạch (chẳng hạn như LAUNCHXL-CC26X2R1) thay cho bo mạch LP-EM và một đầu dò gỡ lỗi riêng biệt. Hãy xem Hướng dẫn về khả năng kết nối gỡ lỗi LaunchPad để biết thông tin chi tiết.
  3. 3 cáp micro-USB để kết nối và cấp nguồn cho các bảng LaunchPad và đầu dò gỡ lỗi.
  4. Raspberry Pi 4B trở lên có Raspberry Pi OS được kết nối với Internet qua Ethernet. Thiết bị này sẽ được định cấu hình làm máy chủ Bộ định tuyến biên OT.Raspberry Pi 4
  5. Hệ thống máy chủ Linux hoặc macOS có ít nhất 2 cổng USB và kết nối Internet. Môi trường tạo bản dựng yêu cầu một trình bao tương thích với Bash. Người dùng Windows nên sử dụng WSL2 (Hệ thống con Windows dành cho Linux 2) với Ubuntu.
  6. Ít nhất một cáp Ethernet để kết nối Raspberry Pi với Internet. Ngoài ra, bạn có thể kết nối Raspberry Pi với Wi-Fi và sử dụng wlan0 làm giao diện cơ sở hạ tầng – hãy xem bước thiết lập OTBR để biết thông tin chi tiết.

Phần mềm

  • Kho lưu trữ TI ot-ti: https://github.com/TexasInstruments/ot-ti
  • GNU ARM Embedded Toolchain 12.2 (được tập lệnh khởi động tự động cài đặt)
  • SysConfig 1.27.0 (được tập lệnh khởi động cài đặt tự động)
  • TI UniFlash: để ghi chương trình cơ sở vào các bảng LaunchPad

3. Thiết lập phần cứng

Lớp học lập trình này sử dụng 3 bảng LP-EM-CC2745R10-Q1:

  • Bảng 1 (RCP): Chạy chương trình cơ sở ot-rcp. Kết nối với Raspberry Pi qua USB dưới dạng bộ đồng xử lý vô tuyến cho Bộ định tuyến biên.
  • Board 2 (FTD 1): Chạy chương trình cơ sở ot-cli-ftd dưới dạng Thiết bị có đầy đủ chức năng của Thread.
  • Board 3 (FTD 2): Chạy chương trình cơ sở ot-cli-ftd dưới dạng Thiết bị có đầy đủ chức năng của Thread.

LP-EM-CC2745R10-Q1 Top View

Kết nối từng LaunchPad với máy tính lưu trữ qua cổng micro-USB. Kết nối USB cung cấp cả nguồn điện và khả năng gỡ lỗi/lập trình thông qua đầu dò gỡ lỗi XDS110 trên bo mạch.

Mỗi LP-EM-CC2745R10-Q1 xuất hiện dưới dạng hai cổng nối tiếp ảo khi được kết nối qua USB: một cổng cho giao diện gỡ lỗi XDS110 và một cổng cho UART ứng dụng. Khi mở bảng điều khiển nối tiếp, hãy kết nối với cổng Application/User UART (Ứng dụng/UART của người dùng), chứ không phải cổng Dữ liệu phụ.

Sơ đồ kết nối phần cứng

4. Thiết lập và tạo kho lưu trữ

Hệ thống xây dựng ot-ti sử dụng CMake và yêu cầu có trình bao Bash. Tất cả các lệnh trong phần này đều được chạy trên máy chủ Linux hoặc macOS (hoặc WSL2 trên Windows).

1. Sao chép kho lưu trữ

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

2. Chạy tập lệnh khởi động

Tập lệnh khởi động sẽ cài đặt các phần phụ thuộc bắt buộc, bao gồm cả chuỗi công cụ GNU ARM và SysConfig:

$ ./script/bootstrap

Tập lệnh khởi động yêu cầu cmake, git, wget và các công cụ tạo bản dựng tiêu chuẩn. Trên Ubuntu/Debian, hãy cài đặt các điều kiện tiên quyết bằng cách dùng lệnh: sudo apt-get install -y cmake git make wget tar ninja-build

3. Tạo chương trình cơ sở cho LP_EM_CC2745R10_Q1

Tạo tất cả hình ảnh chương trình cơ sở cho bo mạch LP-EM-CC2745R10-Q1:

$ ./script/build LP_EM_CC2745R10_Q1

Mục tiêu bản dựng LP_EM_CC2745R10_Q1 tương ứng với thiết bị CC2745R10-Q1 trong dòng SimpleLink CC27xx (lõi Arm Cortex-M33F). Để xem tất cả các bảng được hỗ trợ, hãy chạy ./script/build mà không có đối số.

Sau khi bản dựng được tạo thành công, các tệp nhị phân ELF sẽ nằm trong build/bin/:

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

Hai hình ảnh được dùng trong lớp học lập trình này là:

  • ot-rcp.out: Chương trình cơ sở của Bộ đồng xử lý vô tuyến cho bảng Bộ định tuyến biên.
  • ot-cli-ftd.out: Chương trình cơ sở CLI của Thiết bị Thread đầy đủ cho 2 bảng FTD.

Thiết bị Thread tối thiểu không bắt buộc: Nếu muốn khám phá một thiết bị cuối ở chế độ chờ thay vì Thiết bị Thread đầy đủ, bạn có thể flash ot-cli-mtd.out thay cho ot-cli-ftd.out trên Bảng 2 và 3. MTD không định tuyến lưu lượng truy cập Thread và có thể chuyển sang trạng thái ngủ ở chế độ nguồn điện thấp, nhờ đó phù hợp với các ứng dụng chạy bằng pin. Các bước hình thành mạng Thread trong lớp học lập trình này giống nhau đối với cả hai loại thiết bị.

Bộ đồng xử lý mạng (NCP) không bắt buộc: Tệp nhị phân ot-ncp-ftd.out triển khai cấu trúc NCP, trong đó ngăn xếp OpenThread chạy trên thiết bị và bộ xử lý máy chủ điều khiển ngăn xếp này thông qua giao thức Spinel. Việc sử dụng NCP nằm ngoài phạm vi của lớp học lập trình này, hãy tham khảo NCP README để biết thông tin chi tiết.

5. Nạp chương trình cơ sở

Sử dụng TI UniFlash để cài đặt các hình ảnh ELF vào bảng LaunchPad.

Cài đặt ROM bằng UniFlash

  1. Mở UniFlash. Các bảng LaunchPad đã kết nối sẽ xuất hiện trong phần Detected Devices (Thiết bị được phát hiện) nhờ tính năng tự động phát hiện thiết bị.Nếu bảng của bạn không được phát hiện tự động, hãy nhấp vào New Configuration (Cấu hình mới), chọn mục tiêu LP-EM-CC2745R10-Q1 rồi chọn XDS110 USB debug probe (Đầu dò gỡ lỗi USB XDS110).Các thiết bị được UniFlash phát hiện
  2. Chọn Board 1 (được nhấp nháy bằng ot-rcp.out) rồi nhấp vào Start (Bắt đầu).
  3. Nhấp vào nút Duyệt xem rồi chuyển đến ot-ti/build/bin/ot-rcp.out.Trang UniFlash
  4. Nhấp vào Load Image (Tải hình ảnh) để cài đặt ROM chương trình cơ sở. Khu vực nhật ký cho biết tiến trình và xác nhận hoàn tất.
  5. Lặp lại các bước 2–4 cho Bảng 2Bảng 3, chọn ot-ti/build/bin/ot-cli-ftd.out cho mỗi bảng.

Cách khác: Nạp chương trình bằng Code Composer Studio (CCS)

Bạn có thể sử dụng Code Composer Studio thay cho UniFlash, đồng thời cung cấp một môi trường gỡ lỗi đầy đủ:

  1. Tải xuống và cài đặt Code Composer Studio.
  2. Tạo một kết nối mục tiêu (CCXML) cho LP-EM-CC2745R10-Q1 bằng trình gỡ lỗi XDS110. Hãy tham khảo Hướng dẫn sử dụng CCS: Phương pháp thủ công.
  3. Bắt đầu một phiên gỡ lỗi không có dự án như mô tả trong Hướng dẫn sử dụng CCS: Khởi chạy theo cách thủ công.
  4. Kết nối với lõi Arm Cortex-M33 rồi nhấp vào Load (Tải) để tải hình ảnh ELF.

Cấu hình CCXML mặc định sử dụng cJTAG 2 dây để khớp với cấu hình giắc cắm mặc định LP-EM-CC2745R10-Q1. Sau khi lập trình qua JTAG, hãy tắt rồi bật lại bo mạch để xoá cờ dừng khi khởi động.

6. Lập trình HSM

CC2745R10-Q1 chứa một Mô-đun bảo mật phần cứng (HSM) phải được cung cấp trước khi chạy Thread hoặc phần mềm ứng dụng bảo mật khác. Nếu bo mạch LP-EM-CC2745R10-Q1 của bạn chưa được lập trình HSM, hãy hoàn tất bước này ngay bây giờ.

Cách lập trình HSM bằng UniFlash:

  1. Mở UniFlash rồi chọn bo mạch LP-EM-CC2745R10-Q1 trong phần Detected Devices (Thiết bị được phát hiện).
  2. Chuyển đến bảng điều khiển lập trình HSM và tải hình ảnh chương trình cơ sở HSM như minh hoạ bên dưới.

Lập trình HSM UniFlash

  1. Làm theo lời nhắc trên màn hình để hoàn tất việc cung cấp HSM. Thao tác này được ghi vào bảng điều khiển đầu ra UniFlash.

Hãy tham khảo Hướng dẫn bắt đầu nhanh CC2745R10-Q1 trong TI Resource Explorer để biết quy trình lập trình HSM hoàn chỉnh, bao gồm cả đường dẫn hình ảnh chương trình cơ sở bắt buộc trong SimpleLink Low Power F3 SDK.

7. Tóm tắt về phần mềm cố định

Lúc này, cả 3 bảng sẽ nhấp nháy:

  • Bảng 1: ot-rcp.out: Ngắt kết nối với máy tính chủ và kết nối với Raspberry Pi qua USB.
  • Bảng 2: ot-cli-ftd.out: Luôn kết nối với máy tính chủ.
  • Bảng 3: ot-cli-ftd.out: Luôn kết nối với máy tính chủ.

Thiết lập phần cứng của bạn sẽ trông giống như sơ đồ bên dưới. Bo mạch 1 kết nối với Raspberry Pi dưới dạng bộ đồng xử lý vô tuyến cho OTBR, trong khi Bo mạch 2 và 3 vẫn kết nối với máy tính lưu trữ để truy cập vào bảng điều khiển nối tiếp.

Thiết lập phần cứng CC2745R10 bằng FTD

8. Thiết lập bảng điều khiển nối tiếp cho các thiết bị ot-cli-ftd

LP-EM-CC2745R10-Q1 hiển thị UART của ứng dụng qua USB ở tốc độ truyền 921600.

Mở một cửa sổ dòng lệnh nối tiếp cho cổng COM UART của ứng dụng (Windows) hoặc thiết bị /dev/ttyACM* (Linux/macOS) cho mỗi bảng FTD bằng các chế độ cài đặt sau:

Tham số

Giá trị

Tốc độ (baud)

921600

Bit dữ liệu

8

Bit dừng

1

Tính chẵn lẻ

None

Kiểm soát luồng dữ liệu

None

Mẹo (Linux/macOS): Xác định nút thiết bị chính xác bằng cách chạy ls /dev/ttyACM* trước và sau khi cắm một bảng mạch, đồng thời ghi lại mục nào xuất hiện. Mỗi LP-EM-CC2745R10-Q1 tạo ra 2 mục: cổng được đánh số thấp hơn là UART gỡ lỗi XDS110 và cổng được đánh số cao hơn là UART ứng dụng. Ví dụ: nếu bảng tạo /dev/ttyACM0/dev/ttyACM1, hãy dùng /dev/ttyACM1.

Lưu ý (Windows): Mở Trình quản lý thiết bị và tìm trong phần Cổng (COM và LPT) để tìm 2 cổng COM mới khi cắm bo mạch. Cổng dữ liệu gỡ lỗi XDS110 thường xuất hiện đầu tiên, hãy sử dụng cổng COM thứ hai (có số cao hơn) cho bảng điều khiển ứng dụng.

Nhấn Enter trong thiết bị đầu cuối để nhận lời nhắc OpenThread CLI (>). Để xem danh sách đầy đủ các lệnh có sẵn, hãy xem Tài liệu tham khảo về OpenThread CLI. Xác minh rằng FTD đang hoạt động:

> state
disabled
Done

FTD cổng nối tiếp

Bạn sẽ chưa thiết lập bảng điều khiển nối tiếp cho bảng RCP. OTBR trên Raspberry Pi giao tiếp trực tiếp với RCP. Trong bước tiếp theo, bạn sẽ định cấu hình Raspberry Pi làm Bộ định tuyến biên OpenThread.

9. Thiết lập Raspberry Pi làm bộ định tuyến biên

OTBR được xây dựng từ ot-br-posix, dự án Nguồn mở cho Bộ định tuyến biên OpenThread. Border Router chạy trên Raspberry Pi và sử dụng Board 1 (RCP) làm đài 802.15.4 thông qua USB.

Thiết lập Raspberry Pi

  1. Nạp Raspberry Pi OS (Lite hoặc Desktop 64 bit) vào thẻ SD bằng Raspberry Pi Imager.
  2. Khởi động Raspberry Pi và mở một cửa sổ dòng lệnh (qua SSH hoặc trực tiếp).
  3. Cập nhật trình quản lý gói và nâng cấp các gói đã cài đặt:
    $ sudo apt-get update
    $ sudo apt-get upgrade -y
    

Khởi động lại Raspberry Pi sau khi cập nhật trước khi tiếp tục: sudo reboot

Kết nối Bảng 1 (RCP) với Raspberry Pi

Kết nối Board 1 (đã cài đặt ot-rcp) với Raspberry Pi qua cổng micro-USB. Sau khi kết nối, hãy xác minh rằng nút thiết bị xuất hiện:

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

UART của ứng dụng trên bảng RCP thường là /dev/ttyACM1 (UART gỡ lỗi XDS110 là /dev/ttyACM0). Hãy xác minh cổng nào là UART của ứng dụng bằng cách kiểm tra xem cổng đó có phản hồi khi tác nhân OTBR được khởi động ở bước sau hay không. Nếu các thiết bị nối tiếp USB khác được kết nối, số nút thiết bị có thể khác. Điều chỉnh đường dẫn trong cấu hình OTBR cho phù hợp.

Tạo và cài đặt ot-br-posix

Trên Raspberry Pi, hãy sao chép và tạo ot-br-posix:

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

Chạy tập lệnh thiết lập, chỉ định giao diện Ethernet làm giao diện xương sống (cơ sở hạ tầng):

$ INFRA_IF_NAME=eth0 ./script/setup

eth0 là tên thông thường của giao diện Ethernet có dây. Nếu bạn đang kết nối Raspberry Pi qua Wi-Fi thay vì Ethernet, hãy thay thế eth0 bằng wlan0 (và đảm bảo Pi đã kết nối với mạng Wi-Fi của bạn). Xác minh tên giao diện đang hoạt động bằng ip link show.

Tập lệnh thiết lập tạo ot-br-posix từ nguồn, cài đặt các dịch vụ hệ thống otbr-agentotbr-web, đồng thời định cấu hình ngăn xếp mạng. Quy trình này thường mất từ 10 đến 20 phút trên Raspberry Pi 4B.

Định cấu hình OTBR Agent

Chỉnh sửa tệp cấu hình tác nhân OTBR để chỉ định đường dẫn thiết bị RCP và tốc độ truyền dữ liệu:

$ sudo nano /etc/default/otbr-agent

Tìm dòng OTBR_AGENT_OPTS rồi cập nhật dòng này để tham chiếu đến UART của Ứng dụng RCP:

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

Thay thế eth0 bằng wlan0 nếu Raspberry Pi của bạn được kết nối qua Wi-Fi.

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

UART của Ứng dụng RCP LP-EM-CC2745R10-Q1 hoạt động ở tốc độ 921600 baud. Xác minh rằng đường dẫn thiết bị (/dev/ttyACM1 trong ví dụ này) khớp với UART của ứng dụng trên bảng RCP.

Khởi động lại tác nhân OTBR để áp dụng cấu hình:

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

Xác minh rằng tác nhân đang chạy:

$ sudo systemctl status otbr-agent

Tương tác với Nút RCP

Giao tiếp với nút RCP bằng công cụ ot-ctl:

$ sudo ot-ctl state
disabled
Done

Bạn có thể theo dõi nhật ký tác nhân OTBR để xem các thông báo về trạng thái và kết nối:

$ sudo journalctl -u otbr-agent -f

Ngoài ra, giao diện web OTBR có tại http://:80 và cung cấp chế độ xem đồ hoạ về mạng Thread.

Cách dừng hoặc khởi động lại tác nhân OTBR:

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

Tại thời điểm này, bạn sẽ có 3 bảng điều khiển đang hoạt động:

  1. Thiết bị đầu cuối nối tiếp cho Board 2 (ot-cli-ftd 1) trên máy tính lưu trữ.
  2. Thiết bị đầu cuối nối tiếp cho Board 3 (ot-cli-ftd 2) trên máy tính lưu trữ.
  3. Phiên SSH hoặc phiên thiết bị đầu cuối trên Raspberry Pi cho ot-ctl (OTBR/RCP).

Giờ đây, bạn đã sẵn sàng tạo một mạng Thread.

10. Tạo mạng Thread

Thiết lập RCP (OTBR)

Tạo một mạng Thread mới từ trình bao ot-ctl trên Raspberry Pi. Nhập các lệnh sau theo thứ tự:

Chỉ mục

Ra lệnh

Mô tả

Phản hồi dự kiến

1

dataset init new

Tạo một cấu hình mạng mới.

Xong

2

dataset commit active

Cam kết tập dữ liệu mới cho Tập dữ liệu hoạt động đang hoạt động.

Xong

3

ifconfig up

Bật giao diện Thread.

Xong

4

thread start

Bật và đính kèm hoạt động giao thức Thread.

Xong

Chờ 10 giây để giao diện Thread xuất hiện.

5

state

Kiểm tra trạng thái thiết bị. Đó phải là leader. Các trạng thái có thể có khác: offline, disabled, detached, child, router hoặc leader.

leader
Xong

6

dataset

Xem cấu hình mạng. Các giá trị của bạn sẽ khác nhau. Ghi lại kênh, khoá mạng, tên mạng và mã nhận dạng mạng cá nhân (PAN ID) – bạn cần những thông tin này để kết nối FTD với mạng.

Dấu thời gian hoạt động: 1
Kênh: 20
Mặt nạ kênh: 0x07fff800
Mã nhận dạng mạng cá nhân mở rộng: 39ba71f7fc367160
Tiền tố cục bộ của mạng lưới: fd5c:c6b:3a17:40b9::/64
Khoá mạng: 81ae2c2c17368d585dee71eaa8cf1e90
Tên mạng: OpenThread-008c
Mã nhận dạng mạng cá nhân: 0x008c
PSKc: c98f0193d4236025d22dd0ee614e641f
Chính sách bảo mật: 0, onrcb
Xong

Thêm FTD vào Mạng Thread (Phương thức ngoài băng tần)

Khi sử dụng phương thức thiết lập ngoài băng tần, bạn sẽ cung cấp trực tiếp thông tin đăng nhập vào mạng. Trong thiết bị đầu cuối nối tiếp cho mỗi bảng FTD, hãy nhập các lệnh sau bằng cách sử dụng khoá mạng và kênh từ đầu ra tập dữ liệu OTBR ở trên:

Chỉ mục

Ra lệnh

Mô tả

Phản hồi dự kiến

1

dataset channel 20

Đặt kênh sao cho phù hợp với OTBR. Thay thế 20 bằng giá trị kênh của OTBR.

Xong

2

dataset networkkey 81ae2c2c17368d585dee71eaa8cf1e90

Đặt khoá mạng. Thay thế bằng khoá mạng của OTBR. Bạn chỉ cần khoá này để đính kèm.

Xong

3

dataset commit active

Cam kết tập dữ liệu mới cho Tập dữ liệu hoạt động đang hoạt động.

Xong

4

ifconfig up

Bật giao diện Thread.

Xong

5

thread start

Bật và đính kèm hoạt động giao thức Thread.

Xong

Chờ 20 giây trong khi thiết bị tham gia và tự định cấu hình.

6

state

Kiểm tra trạng thái thiết bị.

trẻ em
Đã xong

Do mạng Thread có khả năng tự định cấu hình và đây là các Thiết bị Thread đầy đủ, nên một hoặc cả hai FTD có thể trở thành bộ định tuyến. Bạn có thể xác minh vai trò hiện tại bất cứ lúc nào bằng lệnh state.

Giao tiếp giữa các thiết bị Thread

Dùng lệnh ping để xác minh rằng các thiết bị có thể giao tiếp. Lấy địa chỉ IPv6 của từng thiết bị bằng 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

Từ cả hai FTD, hãy ping OTBR bằng địa chỉ RLOC của nó:

> 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

Phản hồi thành công xác nhận rằng mạng Thread đang hoạt động và các thiết bị có thể giao tiếp. Lặp lại quy trình này để ping từng FTD từ OTBR (sudo ot-ctl ping ).

11. Xin chúc mừng

Bạn đã tạo một mạng Thread bằng các bảng TI CC2745R10-Q1!

Giờ thì bạn đã biết:

  • Cách thiết lập môi trường tạo bản dựng ot-ti của Texas Instruments.
  • Cách tạo và nạp các tệp nhị phân OpenThread CLI vào LaunchPad LP-EM-CC2745R10-Q1.
  • Cách thiết lập Raspberry Pi làm Bộ định tuyến biên OpenThread (OTBR) bằng ot-br-posix.
  • Cách tạo mạng Thread trên OTBR.
  • Thiết lập thiết bị ngoài băng tần trên mạng Thread.
  • Cách xác minh giao tiếp Thread giữa các nút bằng lệnh ping.

Tài liệu đọc thêm

Hãy truy cập vào openthread.ioGitHub để xem nhiều tài nguyên về OpenThread, bao gồm: