Phát hiện Jam

Xem nguồn trên GitHub

Để cung cấp một cơ chế có thể định cấu hình để phát hiện tình trạng nhiễu tín hiệu trên bất kỳ Nút OpenThread, bật tính năng Phát hiện Jam.

Tính năng này hữu ích đối với các chứng nhận thiết bị yêu cầu khả năng phát hiện tình trạng nhiễu tín hiệu trên một kênh cụ thể. Thẻ này có thể được định cấu hình để đáp ứng của từng loại chứng nhận.

Cách hoạt động

Tính năng Phát hiện Jam theo dõi RSSI (chỉ báo cường độ tín hiệu nhận được) của một nút trong khoảng thời gian được chỉ định để xác định xem kênh đã được bị kẹt.

Khi tính năng Phát hiện nút chặn được bật:

  1. Trạng thái phát hiện nút nhấp được đặt thành false.
  2. Nút này lấy mẫu RSSI nhiều lần trong mỗi khoảng thời gian một giây.
  3. Nếu RSSI trong toàn bộ khoảng thời gian một giây đó vẫn cao hơn Ngưỡng RSSI đã định cấu hình cho mỗi mẫu, thì khoảng thời gian một giây đó được coi là bị nhiễu.
  4. Nếu tổng số khoảng thời gian bị tắc nghẽn là 1 giây lớn hơn hoặc bằng tổng số giây Khoảng thời gian bận đã định cấu hình trong Khoảng thời gian phát hiện đã định cấu hình trước đó tại bất kỳ thời điểm nào, thì Trạng thái phát hiện nút chặn tại thời điểm đó sẽ được đặt thành true.
  5. Nếu tổng số khoảng thời gian bị tắc nghẽn một giây dưới tổng số giây Thời gian bận đã định cấu hình trong Khoảng thời gian phát hiện đã định cấu hình trước đó tại bất kỳ thời điểm nào, thì Trạng thái phát hiện nút chặn tại thời điểm đó được đặt thành false.

Bitmap nhật ký

Trong API OpenThreadthuộc tính wpantund, một bitmap của 63 giây trước đó có sẵn để truy xuất. Bitmap này cho biết liệu RSSI có vượt qua Ngưỡng RSSI đã định cấu hình tại mỗi 63 giây trước đó.

Ví dụ: bạn có thể truy xuất bitmap sau:

0xC248068C416E7FF0

Việc chuyển đổi sang tệp nhị phân sẽ tạo ra mọi thực thể mà RSSI vượt quá ngưỡng RSSI đã định cấu hình trong 63 giây trước đó:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

Nếu bạn đặt Cửa sổ phát hiện thành 16 giây và Thời gian bận được đặt là 8 giây, Trạng thái phát hiện Jam trở thành true sau 51 giây, vì đó là trường hợp đầu tiên vượt quá Ngưỡng RSSI trong ít nhất 8 giây trong 16 giây trước đó. Trong ví dụ này, Trạng thái phát hiện Jam vẫn là true trong 13 giây tiếp theo.

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
                                      [00001 01101110 011] = 8 in 16

Bitmap này có thể được biểu thị bằng biểu đồ sau, nếu -45 dBm là ngưỡng RSSI được định cấu hình:

Phát hiện tình trạng can thiệp vào giao thức OT

Cách bật

Tính năng này bị tắt theo mặc định.

Theo định nghĩa

Để bật tính năng Phát hiện Jam, hãy xác định OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE trong vai 1 trong openthread/src/core/config/openthread-core-default-config.h trước khi tạo OpenThread:

#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif

Theo tùy chọn

Ngoài ra, hãy sử dụng tuỳ chọn bản dựng -DOT_JAM_DETECTION=ON khi xây dựng OpenThread:

./script/build -DOT_JAM_DETECTION=ON

Thông số

Bạn chỉ có thể định cấu hình các tham số Phát hiện nhiễu thông qua API OpenThread, giao thức Spinel hoặc wpanctl, công cụ dòng lệnh wpantund để quản lý Bộ xử lý đồng bộ mạng (NCP). Giá trị mặc định sẽ được áp dụng nếu tính năng này là bật mà không cần định cấu hình tiếp theo.

Tuỳ chỉnh tính năng này bằng cách sử dụng các tham số sau:

Thông số
Ngưỡng RSSI
Giá trị mặc định
0 dBm
Nội dung mô tả
Chỉ định mức RSSI của ngưỡng tính bằng dBm ở mức cao hơn mức này để xem xét kênh bị kẹt.
Khoảng thời gian phát hiện
Giá trị mặc định
63 giây
Nội dung mô tả
Chỉ định khoảng thời gian (tính bằng giây) để kiểm tra tình trạng can thiệp tín hiệu. Phạm vi: 1-63.
Thời gian bận rộn
Giá trị mặc định
63 giây
Nội dung mô tả
Chỉ định số giây tổng hợp trong Cửa sổ phát hiện mà trong đó RSSI phải cao hơn Ngưỡng RSSI để kích hoạt tính năng Phát hiện Jam. Phải nhỏ hơn Khung thời gian phát hiện. Phạm vi: 1-63.

API

OpenThread

Sử dụng API Phát hiện Jam để quản lý tính năng Phát hiện Jam ngay trong ứng dụng OpenThread của bạn. Chiến lược phát hành đĩa đơn OpenThread API cung cấp chức năng sau:

  • Bắt đầu và dừng tính năng
  • Xem trạng thái phát hiện Jam
  • Quản lý tất cả thông số
  • Truy xuất bitmap nhật ký Phát hiện Jam hiện tại
  • Đăng ký một hàm callback khi phát hiện thấy kẹt

Con quay

Giao thức Spinel cho phép thiết bị lưu trữ giao tiếp trực tiếp với NCP. Giao thức này hiển thị các thuộc tính Phát hiện nút chặn trong openthread/src/lib/spinel/spinel.h cung cấp chức năng sau:

  • Bắt đầu và dừng tính năng
  • Xem trạng thái phát hiện Jam
  • Quản lý tất cả thông số
  • Truy xuất bitmap nhật ký phát hiện âm thanh bị tắc nghẽn hiện tại

Giao diện dòng lệnh (CLI)

OpenThread

Không có lệnh OpenThread CLI nào liên quan đến tính năng này.

hoa bướm

Sử dụng CLI wpanctl để quản lý tính năng Phát hiện Jam cho NCP OpenThread . wpantund giữ lại tất cả cấu hình Phát hiện nút chặn khi đặt lại NCP.

wpanctl cung cấp quyền truy cập vào các thuộc tính wpantund sau:

Thuộc tính
JamDetection:Status
Định dạng
boolean
Nội dung mô tả
Chỉ có thể đọc. Trạng thái phát hiện Jam. Cho biết liệu hiện đang phát hiện tình trạng nhiễu tín hiệu hay không.
JamDetection:Enable
Định dạng
boolean
Nội dung mô tả
Bật hoặc tắt tính năng Phát hiện nút chặn.
JamDetection:RssiThreshold
Định dạng
dBm
Nội dung mô tả
Chỉ định ngưỡng mức RSSI (dBm) để xem xét việc chặn kênh.
JamDetection:Window
Định dạng
giây
Nội dung mô tả
Chỉ định khoảng thời gian (tính bằng giây) để kiểm tra tình trạng can thiệp tín hiệu. Phạm vi: 1-63.
JamDetection:BusyPeriod
Định dạng
giây
Nội dung mô tả
Chỉ định số giây tổng hợp trong JamDetection:Window mà RSSI phải lớn hơn JamDetection:RssiThreshold để kích hoạt tính năng Phát hiện Jam. Phải nhỏ hơn JamDetection:Window. Phạm vi: 1-63.
JamDetection:Debug:HistoryBitmap
Định dạng
Giá trị 64 bit
Nội dung mô tả
Cung cấp thông tin về nhật ký Trạng thái phát hiện Jam cho mục đích giám sát và gỡ lỗi.

Ví dụ: để lấy Trạng thái phát hiện Jam cho NCP:

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

Cách đặt Ngưỡng RSSI cho tính năng Phát hiện Jam thành -45 dBm trên một NCP:

sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45

Để biết thêm thông tin về các thuộc tính wpantund, hãy xem kho lưu trữ GitHub của wpantund.