Để cung cấp cơ chế có thể định cấu hình để phát hiện tín hiệu gây nhiễ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 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ể. Mã này có thể được định cấu hình để đáp ứng các yêu cầu của từng loại giấy 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 các khoảng thời gian chỉ định để xác định xem kênh có bị kẹt hay không.
Khi bạn 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 trên toàn bộ khoảng thời gian một giây đó vẫn nằm trê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ị kẹt.
- Nếu số lượng tổng hợp bị kẹt trong một khoảng thời gian giây là nhiều hơn hoặc bằng số lượng tổng hợp của Thời gian nhộn nhịp (tính bằng giây) trong Thời lượng phát hiện được định cấu hình trước đó bất cứ lúc nào, 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ố lần bị kẹt trong một khoảng thời gian là một giây làít hơn số
tổng hợp được định cấu hìnhKhoảng thời gian bận rộn giây trong
quá trình định cấu hình trước đóThời lượng phát hiện giây tại bất kỳ thời điểm nào,
trạng thái Phát hiện Jam tại thời điểm đó được đặt thành
false
,
Bản đồ lịch sử
Trong API OpenThread và wpantund
, bạn có thể lấy
bản đồ 63 giây trước đó để truy xuất. Mã 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:
0xC248068C416E7FF0
Việc chuyển đổi sang tệp nhị phân sẽ tạo ra mọi bản sao RSSI đã vượt quá 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 rộn được đặt thành 8 giây, thì Trạng thái phát hiện Jam sẽ trở thành true
ở 51 giây, vì đó là
trường hợp đầu tiên có 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 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:

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 OpenOpen:
#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 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 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ý
Co-Processor (NCP) của mạng. Các giá trị mặc định sẽ được áp dụng nếu tính năng này
được bật mà không có cấu hình tiếp theo.
Hãy tùy chỉnh tính năng này bằng các thông số sau:
Thông số | |||||
---|---|---|---|---|---|
Ngưỡng RSSI |
|
||||
Cửa sổ phát hiện |
|
||||
Thời gian bận rộn |
|
API
OpenThread
Sử dụng API Phát hiện âm thanh để 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ý hàm gọi lại khi phát hiện thấy Jam
Quay tròn
Giao thức Spinel cho phép thiết bị lưu trữ giao tiếp trực tiếp với một NCP.
Giao thức này sẽ hiển thị các thuộc tính Jam Discover 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 lịch sử phát hiện Jam hiện tại
CLI (CLI)
OpenThread
Không có lệnh OpenLI CLI nào liên quan đến tính năng này.
wpantund
Sử dụng giao diện dòng lệnh (CLI) wpanctl
để quản lý tính năng Phát hiện Jam cho cấu hình
Nêu chuỗi mở. wpantund
giữ lại mọi cấu hình Phát hiện Jam khi đặt lại NCP.
wpanctl
cấp quyền truy cập vào các thuộc tính wpantund
sau:
Tài sản | |||||
---|---|---|---|---|---|
JamDetection:Status |
|
||||
JamDetection:Enable |
|
||||
JamDetection:RssiThreshold |
|
||||
JamDetection:Window |
|
||||
JamDetection:BusyPeriod |
|
||||
JamDetection:Debug:HistoryBitmap |
|
Ví dụ: để lấy Trạng thái phát hiện Jam cho NCP:
sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false
Để đặt Ngưỡng phát hiện RSSI của Jam thành -45 dBm trên NCP, hãy làm như sau:
sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45
Để biết thêm thông tin về thuộc tính wpantund
, hãy xem kho lưu trữ GitHub
wpantund
.