หากต้องการมอบกลไกที่กําหนดค่าได้สําหรับการตรวจหาการรบกวนสัญญาณในโหนด Openthread ใดๆ ให้เปิดใช้ฟีเจอร์การตรวจจับ Jam
ฟีเจอร์นี้มีประโยชน์สําหรับการรับรองอุปกรณ์ที่ต้องใช้ความสามารถในการตรวจหาการส่งสัญญาณรบกวนในช่องใดช่องหนึ่ง เพราะสามารถกําหนดค่าให้ตรงตามข้อกําหนดของการรับรองแต่ละประเภทได้
วิธีการทำงาน
การตรวจจับ Jam ตรวจสอบ RSSI (สัญญาณบอกสถานะความแรงของสัญญาณที่ได้รับ) ของโหนดในช่วงกรอบเวลาที่ระบุเพื่อระบุว่าช่องติดขัดหรือไม่
เมื่อเปิดใช้การตรวจจับ Jam ให้ทําดังนี้
- ตั้งค่าสถานะการตรวจจับ Jam เป็น
false
- โหนดจะสุ่มตัวอย่าง RSSI หลายๆ ครั้งทุกๆ 1 วินาที
- หาก RSSI ในช่วง 1 วินาทีทั้งหมดยังคงสูงกว่าเกณฑ์ RSSI ที่กําหนดค่าแล้วสําหรับทุกตัวอย่าง จะถือว่าระยะเวลา 1 วินาทีนั้นติดขัด
- หากจํานวนรวมของช่วงที่ติดขัด 1 วินาทีมีมากกว่าเท่ากับจํานวนวินาทีทั้งหมดช่วงเวลาที่ไม่ว่างที่กําหนดค่าไว้ภายในกรอบเวลาการตรวจจับที่กําหนดค่าไว้ก่อนหน้านี้ในเวลาใดก็ตาม สถานะการตรวจจับ Jam ในเวลาดังกล่าวจะเป็น
true
- หากจํานวนรวมของช่วงที่ติดขัด 1 วินาทีน้อยกว่าจํานวนรวมของระยะเวลาไม่ว่างเป็นวินาทีภายในกรอบเวลาการตรวจจับที่กําหนดค่าไว้ก่อนหน้าในเวลาใดก็ตาม สถานะการตรวจจับ Jam ณ เวลานั้นจะเป็น
false
บิตแมปของประวัติ
ใน OpenThread API และ wpantund
พร็อพเพอร์ตี้
จะมีแผนที่ข้อมูล 63 วินาทีก่อนหน้าสําหรับการดึงข้อมูล บิตแมปนี้จะระบุว่า RSSI ข้ามเกณฑ์ RSSI ที่กําหนดค่าไว้ในแต่ละ 63 วินาทีก่อนหน้าหรือไม่
ตัวอย่างเช่น คุณอาจดึงบิตแมปต่อไปนี้
0xC248068C416E7FF0
การแปลงเป็นไบนารีจะสร้างอินสแตนซ์ทั้งหมดที่ RSSI สูงกว่าเกณฑ์ RSSI ที่กําหนดค่าไว้ในช่วง 63 วินาทีก่อนหน้า
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000
หากตั้งค่ากรอบเวลาการตรวจจับเป็น 16 วินาที และกําหนดระยะเวลาที่ไม่ว่างเป็น 8 วินาที สถานะการตรวจจับ Jam จะกลายเป็น true
ที่ 51 วินาที ซึ่งเป็นอินสแตนซ์แรกที่เกณฑ์ RSSI เกินอย่างน้อย 8 วินาทีในช่วง 16 วินาทีก่อนหน้า ในตัวอย่างนี้ สถานะการตรวจจับ Jam จะยังคงอยู่
true
เป็นเวลา 13 วินาทีถัดไป
11000010 01001000 00000110 10001100 01000001 01101110 01111111 11110000 [00001 01101110 011] = 8 in 16
กราฟนี้อาจแสดงโดยกราฟต่อไปนี้ หากเกณฑ์ -45 dBm เป็น RSSI ที่กําหนดค่าไว้

วิธีเปิดใช้
ทั้งนี้ ฟีเจอร์นี้จะปิดอยู่โดยค่าเริ่มต้น
นิยาม
หากต้องการเปิดใช้การตรวจจับ Jam ให้กําหนด OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
เป็น 1
ในไฟล์ openthread/src/core/config/openthread-core-default-config.h
ก่อนสร้าง OpenThread
#ifndef OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE
#define OPENTHREAD_CONFIG_JAM_DETECTION_ENABLE 1
#endif
ตามตัวเลือก
หรือใช้ตัวเลือกบิลด์ -DOT_JAM_DETECTION=ON
เมื่อสร้าง OpenThread ดังนี้
./script/build -DOT_JAM_DETECTION=ON
พารามิเตอร์
พารามิเตอร์การตรวจจับการตรวจจับจะกําหนดค่าได้ผ่าน OpenThread API, โปรโตคอล Ssprl หรือ wpanctl
เท่านั้น ซึ่งเป็นเครื่องมือบรรทัดคําสั่ง wpantund
สําหรับการจัดการเครือข่ายโปรเซสเซอร์ร่วม (NCP) ระบบจะใช้ค่าเริ่มต้นหากคุณเปิดใช้ฟีเจอร์โดยไม่กําหนดค่าในภายหลัง
ปรับแต่งฟีเจอร์นี้โดยใช้พารามิเตอร์ต่อไปนี้
พารามิเตอร์ | |||||
---|---|---|---|---|---|
เกณฑ์ RSSI |
|
||||
กรอบเวลาการตรวจจับ |
|
||||
ช่วงที่มีลูกค้าหนาแน่น |
|
API
OpenThread
ใช้ Jam Detection API เพื่อจัดการฟีเจอร์ Jam Detection ในแอปพลิเคชัน OpenThread โดยตรง OpenOpen API มีฟังก์ชันการทํางานดังต่อไปนี้
- เริ่มต้นและหยุดฟีเจอร์
- ดูสถานะการตรวจจับ Jam
- จัดการพารามิเตอร์ทั้งหมด
- เรียกดูบิตแมปประวัติการตรวจจับของ Jam ปัจจุบัน
- ลงทะเบียนฟังก์ชันเรียกกลับเมื่อตรวจพบ Jam
สันใบ
โปรโตคอลแบบสันหนังสือช่วยให้อุปกรณ์โฮสต์สื่อสารกับ NCP ได้โดยตรง
โปรโตคอลนี้จะแสดงพร็อพเพอร์ตี้การตรวจจับของ Jam ใน openthread/src/lib/spinel/spinel.h
ซึ่งมีฟังก์ชันการทํางานต่อไปนี้
- เริ่มต้นและหยุดฟีเจอร์
- ดูสถานะการตรวจจับ Jam
- จัดการพารามิเตอร์ทั้งหมด
- เรียกดูบิตแมปประวัติการตรวจจับของ Jam ปัจจุบัน
CLI
OpenThread
ไม่มีคําสั่ง OpenThread CLI ที่เกี่ยวข้องกับฟีเจอร์นี้
Wpantund
ใช้ wpanctl
CLI เพื่อจัดการฟีเจอร์การตรวจจับ Jam สําหรับการกําหนดค่า OpenCP NCP wpantund
จะเก็บการกําหนดค่าการตรวจจับ Jam ทั้งหมดไว้เมื่อมีการรีเซ็ต NCP
wpanctl
ให้สิทธิ์เข้าถึงพร็อพเพอร์ตี้ wpantund
ต่อไปนี้
พร็อพเพอร์ตี้ | |||||
---|---|---|---|---|---|
JamDetection:Status |
|
||||
JamDetection:Enable |
|
||||
JamDetection:RssiThreshold |
|
||||
JamDetection:Window |
|
||||
JamDetection:BusyPeriod |
|
||||
JamDetection:Debug:HistoryBitmap |
|
เช่น หากต้องการรับสถานะการตรวจจับ Jam สําหรับ NCP ให้ทําดังนี้
sudo wpanctl getprop JamDetection:Status
JamDetection:Status = false
วิธีตั้งเกณฑ์ RSSI การตรวจจับ Jam เป็น -45 dBm ใน NCP
sudo wpanctl setprop JamDetection:RssiThreshold -45
sudo wpanctl getprop JamDetection:RssiThreshold
JamDetection:RssiThreshold = -45
ดูข้อมูลเพิ่มเติมเกี่ยวกับพร็อพเพอร์ตี้ wpantund
ได้ที่ที่เก็บ GitHub wpantund