Để cung cấp cơ chế có thể định cấu hình giúp phát hiện kẹt tín hiệu trên bất kỳ nút OpenThread nào, hãy bật tính năng Phát hiện Jam.
Tính năng này hữu ích cho các giấy chứng nhận thiết bị yêu cầu khả năng phát hiện kẹt tín hiệu trên một kênh cụ thể. Bạn có thể định cấu hình thẻ này để đáp ứng các yêu cầu của từng loại chứng nhận.
Cách hoạt độ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 hay không.
Khi bật tính năng Phát hiện Jam:
- Trạng thái phát hiện Jam được đặt thành
false
. - 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.
- 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 thứ hai đó sẽ được xem là bị kẹt.
- Nếu tổng số sự cố bị kẹt trong một khoảng thời gian thứ hai lớn hơn hoặc
bằng số lượng Thời gian đông đúc
đã định cấu hình trong khoảng thời gian Thời lượng 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 Jam tại thời điểm đó được đặt thành
true
. - Nếu tổng số khoảng thời gian bị kẹt trong giây thứ hai ít hơn số lượng Thời gian đông đúc đã được định cấu hình trong
thời lượng Thời lượng phát hiện đã định cấu hình trước đó, thì trạng thái Phát hiện Jam tại thời điểm đó sẽ được đặt thành
false
.
Bitmap lịch sử
Trong các thuộc tính API OpenThread và wpantund
, một sơ đồ bit của 63 giây trước đó sẽ có sẵn để truy xuất. bitmap này cho biết liệu RSSI có vượt qua Ngưỡng RSSI được định cấu hình ở mỗi
trước 63 giây hay không.
Ví dụ: bạn có thể truy xuất bitmap sau đây:
0xC248068C416E7FF0
Việc chuyển đổi sang tệp nhị phân sẽ tạo ra mọi bản sao RSSI đã vượt qua Ngưỡng RSSI được định cấu hình trong 63 giây trước đó:
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
Nếu Thời lượng phát hiện được đặt là 16 giây và Khoảng thời gian bận được đặt thành 8 giây, thì Trạng thái phát hiện Jam sẽ trở thành true
ở mức 51 giây, vì vậy, đây là lần đầu tiên ngưỡng Ngưỡng RSSI vượt quá í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
true
trong 13 giây tiếp theo.
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000 [00001 01101110 011] = 8 in 16
Sơ đồ trang web này có thể được biểu thị bằng biểu đồ sau nếu -45 dBm là Ngưỡng RSSI đã định cấu hình:

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
là 1
trong tệp
openthread/src/core/config/openthread-core-default-config.h
, trước khi xây dựng 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 tùy chọn bản dựng -DOT_JAM_DETECTION=ON
khi building
OpenThread:
./script/build -DOT_JAM_DETECTION=ON
Các thông số
Bạn chỉ có thể định cấu hình các thông số Phát hiện Jam thông qua API Openthread, giao thức
Spinel hoặc wpanctl
, công cụ dòng lệnh wpantund
để quản lý
Network-Cooror (NCP). Các giá trị mặc định được áp dụng nếu tính năng này được
bật mà không cần cấu hình tiếp theo.
Tùy chỉnh tính năng này bằng cách sử dụng các thông số sau:
Các thông số | |||||
---|---|---|---|---|---|
Ngưỡng RSSI |
|
||||
Thời lượng phát hiện |
|
||||
Thời gian đông đúc |
|
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. API OpenThread 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 Lịch sử phát hiện Jam hiện tại
- Đăng ký một hàm callback để phát hiện một Jam
Quay tròn
Giao thức Spinel cho phép một thiết bị lưu trữ giao tiếp trực tiếp với NCP.
Giao thức này sẽ hiển thị các thuộc tính của tính năng Phát hiện tệp Jam trong
openthread/src/lib/spinel/spinel.h
cung cấp các 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 Lịch sử phát hiện Jam hiện tại
Giao diện dòng lệnh
OpenThread
Không có lệnh CLệnh OpenThread nào liên quan đến tính năng này.
CANNOT TRANSLATE
Sử dụng CLI wpanctl
để quản lý tính năng Phát hiện Jam cho cấu hình OpenThread NCP. wpantund
sẽ giữ lại tất cả cấu hình Phát hiện Jam 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 |
|
||||
JamDetection:Enable |
|
||||
JamDetection:RssiThreshold |
|
||||
JamDetection:Window |
|
||||
JamDetection:BusyPeriod |
|
||||
JamDetection:Debug:HistoryBitmap |
|
Ví dụ: để nhận 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 phát hiện Jam thành -45 dBm trên 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ữ
wpantund
GitHub.