Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Phát hiện Jam

Để cung cấp một cơ chế có thể định cấu hình để phát hiện nhiễu 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 kẹt.

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 nhiễu tín hiệu trên một kênh cụ thể. Nó có thể được cấu hình để đáp ứng các yêu cầu của từng loại chứng nhận.

Làm thế nào nó hoạt động

Jam Detection giám sát RSSI (chỉ báo cường độ tín hiệu đã nhận) của một nút trong khoảng thời gian cụ thể để xác định xem kênh có bị kẹt hay không.

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

  1. Trạng thái phát hiện kẹt được đặt thành false .
  2. Nút 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 ở 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.
  4. Nếu tổng số khoảng thời gian một giây bị kẹt nhiều hơn hoặc bằng tổng số giây Khoảng thời gian bận được định cấu hình trong giây Cửa sổ phát hiện được đị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 kẹt tại thời điểm đó được đặt thành true .
  5. Nếu tổng số khoảng thời gian bị kẹt trong một giây nhỏ hơn tổng số giây Khoảng thời gian bận được định cấu hình trong giây Cửa sổ phát hiện được đị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 kẹt tại thời điểm đó được đặt thành false .

Bản đồ bit lịch sử

Trong thuộc tính OpenThread APIwpantund , một bitmap của 63 giây trước đó có sẵn để truy xuất. Bản đồ bit này cho biết liệu RSSI có vượt qua Ngưỡng RSSI đã định cấu hình hay không ở 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 hệ nhị phân tạo ra mọi trường hợp RSSI vượt qua Ngưỡng RSSI đã định cấu hình trong 63 giây trước đó:

11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000

Nếu Cửa sổ phát hiện được đặt thành 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 kẹt giấy sẽ trở thành true ở giây thứ 51, vì đó là trường hợp đầu tiên mà Ngưỡng RSSI đã bị vượt quá ít nhất là 8 giây trước đó 16 giây. Trong ví dụ này, Trạng thái phát hiện kẹt vẫn 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 đã định cấu hình:

Phát hiện Jam OT

Cách kích hoạt

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

Bằng cách xác định

Để bật tính năng Phát hiện Jam, hãy xác định OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE làm 1 trong tệp /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

Bằng công tắc

Ngoài ra, sử dụng công tắc xây dựng JAM_DETECTION=1 khi xây dựng OpenThread :

make -f examples/Makefile-<platform> JAM_DETECTION=1

Thông số

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ý Bộ xử lý mạng (NCP). Giá trị mặc định được áp dụng nếu tính năng đượ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ác thông số sau:

Thông số
Ngưỡng RSSI
Giá trị mặc định
0 dBm
Sự miêu tả
Chỉ định mức RSSI ngưỡng tính bằng dBm trên đó để coi là kênh bị kẹt.
Cửa sổ phát hiện
Giá trị mặc định
63 giây
Sự miêu tả
Chỉ định cửa sổ tính bằng giây để kiểm tra tín hiệu bị nhiễu. Phạm vi: 1-63.
Thời kỳ bận rộn
Giá trị mặc định
63 giây
Sự miêu tả
Chỉ định số giây tổng hợp trong Cửa sổ phát hiện trong đó RSSI phải cao hơn Ngưỡng RSSI để kích hoạt Phát hiện Kẹt. Phải nhỏ hơn Cửa sổ phát hiện. Phạm vi: 1-63.

API

OpenThread

Sử dụng API phát hiện kẹt giấy để quản lý tính năng phát hiện kẹt giấy trực tiếp 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 kẹt giấy
  • Quản lý tất cả các thông số
  • Truy xuất bitmap lịch sử phát hiện Jam hiện tại
  • Đăng ký chức năng gọi lại khi phát hiện thấy kẹt

Spinel

Giao thức Spinel cho phép thiết bị chủ 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 Jam trong /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 kẹt giấy
  • Quản lý tất cả các thông số
  • Truy xuất bitmap lịch sử phát hiện Jam hiện tại

CLI

OpenThread

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

wpantund

Sử dụng wpanctl CLI để quản lý tính năng Phát hiện Kẹt cho cấu hình NCP OpenThread. wpantund 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:

Tính chất
JamDetection:Status
định dạng
boolean
Sự miêu tả
Chỉ đọc. Trạng thái phát hiện kẹt. Cho biết hiện tại có phát hiện thấy kẹt tín hiệu không.
JamDetection:Enable
định dạng
boolean
Sự miêu tả
Bật hoặc tắt tính năng Phát hiện Jam.
JamDetection:RssiThreshold
định dạng
dBm
Sự miêu tả
Chỉ định mức RSSI ngưỡng tính bằng dBm trên đó để coi kênh bị chặn.
JamDetection:Window
định dạng
giây
Sự miêu tả
Chỉ định cửa sổ tính bằng giây để kiểm tra tín hiệu bị nhiễu. Phạm vi: 1-63.
JamDetection:BusyPeriod
định dạng
giây
Sự miêu tả
Chỉ định số giây tổng hợp trong JamDetection:Window mà RSSI phải ở trê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
Sự miêu tả
Cung cấp thông tin về lịch sử Trạng thái phát hiện kẹt giấy cho mục đích theo dõi và gỡ lỗi.

Ví dụ: để có được Trạng thái phát hiện kẹt giấy cho NCP:

sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false

Để đặt Ngưỡng RSSI phát hiện kẹt giấy 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 .