Để 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:
- Trạng thái phát hiện nút nhấp đượ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 một giây đó được coi là bị nhiễu.
- 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
. - 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 OpenThread và thuộ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:
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 |
|
||||
Khoảng thời gian phát hiện |
|
||||
Thời gian bận rộn |
|
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 |
|
||||
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
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
.