ค่าเกณฑ์ อะลาร์ม และแฟล็ก
โมดูลไม่ได้แค่รายงานค่าต่าง ๆ เท่านั้น แต่ยังพกขีดจำกัดที่ใช้ตัดสินค่าเหล่านั้น และตั้งแฟล็กเมื่อค่าข้ามขีดจำกัดไปด้วย สวิตช์อ่านสิ่งเหล่านี้ทั้งหมดจากหน่วยความจำของโมดูล ไม่ได้สร้างขึ้นเองแม้แต่น้อย นี่คือเหตุผลที่โมดูลสองตัวที่หน้าตาเหมือนกันทุกประการอาจมีพฤติกรรมต่างกันบนลิงก์เดียวกัน
ค่าเกณฑ์สี่ตัวต่อพารามิเตอร์หนึ่งตัว
พารามิเตอร์ DDM ทุกตัวมีขีดจำกัดที่ตั้งไว้จากโรงงานสี่ค่า:
| ค่าเกณฑ์ | ความหมาย |
|---|---|
| อะลาร์มสูง | ค่าที่สูงกว่านี้ → โมดูลอาจกำลังเสีย หรือลิงก์ใช้งานไม่ได้ |
| คำเตือนสูง | ใกล้ถึงขีดจำกัดบน |
| คำเตือนต่ำ | ใกล้ถึงขีดจำกัดล่าง |
| อะลาร์มต่ำ | ค่าที่ต่ำกว่านี้ → เช่น Rx ต่ำกว่าความไวของตัวรับ |
ทั้งสี่ค่านี้กำหนดสามโซน ได้แก่ ปกติ (ระหว่างคำเตือนทั้งสองฝั่ง), คำเตือน (ระหว่างคำเตือนกับอะลาร์มฝั่งเดียวกัน) และอะลาร์ม (เลยอะลาร์มไปแล้ว) โมดูลระยะ 10 km ที่สภาพดีอาจมาพร้อมค่าเกณฑ์ Rx ประมาณ +0.5 / −2 / −18 / −22 dBm (HA / HW / LW / LA) แต่ผู้ผลิตแต่ละรายตั้งค่าของตัวเอง
ที่เก็บค่าเกณฑ์ — SFF-8472
A2h ไบต์ 0–39 สองไบต์ต่อค่าเกณฑ์หนึ่งตัว ใช้หน่วยเดียวกับค่าที่ตรวจวัด (พารามิเตอร์และหน่วย):
| ไบต์ | พารามิเตอร์ (HA, LA, HW, LW) |
|---|---|
| 0–7 | อุณหภูมิ |
| 8–15 | Vcc |
| 16–23 | ไบอัส Tx |
| 24–31 | กำลังส่ง Tx |
| 32–39 | กำลังรับ Rx |
| 40–55 | ค่าเกณฑ์ขยายเสริม (อุณหภูมิเลเซอร์, TEC) |
ลำดับภายในแต่ละกลุ่มคือ อะลาร์มสูง, อะลาร์มต่ำ, คำเตือนสูง, คำเตือนต่ำ
แฟล็ก — สิ่งที่โฮสต์นำไปใช้จริง
| ไบต์ของ A2h | เนื้อหา |
|---|---|
| 110 | สถานะ/การควบคุม: สถานะ TX_DISABLE, สถานะ RS0/RS1, TX_FAULT, RX_LOS, data-ready |
| 112–113 | แฟล็กอะลาร์ม หนึ่งบิตต่อพารามิเตอร์ ทั้งฝั่งสูงและต่ำ |
| 116–117 | แฟล็กคำเตือน หนึ่งบิตต่อพารามิเตอร์ ทั้งฝั่งสูงและต่ำ |
โมดูลจะตั้งแฟล็กเมื่อค่าข้ามค่าเกณฑ์ของมัน และล้างแฟล็กเมื่อค่ากลับมาปกติ โฮสต์ที่แสดง “Rx power low alarm” ก็แค่อ่านบิต 1 ของไบต์ 113 เท่านั้นเอง ไม่มีอะไรมากไปกว่านั้น ส่วนว่าโมดูลรองรับแฟล็กเหล่านี้หรือไม่ ถูกประกาศไว้ที่ A0h ไบต์ 93 บิต 7
QSFP และ CMIS
หลักการเดียวกันนี้ใช้ได้ แต่มีแฟล็กแยกตามเลนเพิ่มเข้ามา:
- SFF-8636 — ค่าเกณฑ์ระดับโมดูลอยู่ที่เพจบน 03h ไบต์ 128–175 (อุณหภูมิ, Vcc) ค่าเกณฑ์ระดับช่องสัญญาณอยู่ที่ไบต์ 176–223 (กำลังรับ Rx, ไบอัส Tx, กำลังส่ง Tx) ส่วนแฟล็กอยู่ที่เพจล่างไบต์ 3–14 (LOS/fault/LOL อยู่ที่ 3–5, อะลาร์มอุณหภูมิและ Vcc อยู่ที่ 6–7, อะลาร์มกำลังและไบอัสแยกตามเลนอยู่ที่ 9–14)
- CMIS — ค่าเกณฑ์ระดับโมดูลอยู่ที่เพจ 02h ค่าเกณฑ์ระดับเลนอยู่ถัดไปในเพจเดียวกัน แฟล็กระดับโมดูลอยู่ที่เพจล่างไบต์ 8–13 แฟล็กระดับเลนอยู่ที่เพจ 11h ไบต์ 134–153
เหตุใด “ไม่มีอะลาร์ม” จึงไม่ใช่ “สภาพดี”
ค่าเกณฑ์คือความเห็นของผู้ผลิตโมดูลเองเกี่ยวกับขีดจำกัดของตัวมัน ไม่ใช่ของลิงก์ ผลที่ตามมาที่พบบ่อย:
- ค่าเกณฑ์ที่ตั้งไว้กว้างเกินไป โมดูลที่มีอะลาร์ม Rx ต่ำตั้งไว้ที่ −24 dBm จะยังคงเงียบอยู่ แม้ตัวรับจะเริ่มมีข้อผิดพลาดไปแล้วตั้งแต่ −20 dBm
- Tx ปลอม ค่า Tx ที่คงที่ตลอดเวลาจะไม่มีวันข้ามค่าเกณฑ์ได้เลย
- งบประมาณลิงก์เป็นเรื่องของค่าเผื่อ ไม่ใช่ขีดจำกัด ลิงก์ที่ −17 dBm ซึ่งมีคำเตือนอยู่ที่ −18 dBm มีค่าเผื่อเพียง 1 dB และจะล่มทันทีที่เจอคอนเนกเตอร์สกปรกตัวแรก
การแจ้งเตือนในการปฏิบัติงานจึงควรใช้ค่าฐานและค่าเดลตาของคุณเอง (การตรวจติดตาม) โดยให้แฟล็กของโมดูลเป็นเพียงตัวสำรอง
การแก้ไขค่าเกณฑ์
เนื่องจากค่าเกณฑ์อยู่ในหน่วยความจำของโมดูล จึงอ่านและเขียนใหม่ได้ การใช้งานที่ชอบธรรม เช่น กู้คืนขีดจำกัดที่สมเหตุสมผลให้โมดูลที่ถูกเขียนโค้ดเป็นศูนย์ทั้งหมด ปรับโมดูลทั้งชุดให้ตรงกัน หรือตั้งคำเตือนให้เข้มงวดขึ้นเพื่อได้รับแจ้งเร็วขึ้น พื้นที่ A2h ที่มีการป้องกันมักต้องใช้รหัสผ่านของโมดูล
ใน CodingBox
หน้าจอ DDM ในแอป วาดค่าเกณฑ์อะลาร์มและคำเตือนของโมดูลลงบนกราฟโดยตรง และลงสีค่าต่าง ๆ ตามโซน ไบต์ค่าเกณฑ์ 0–39 และแฟล็ก 112–117 มองเห็นและแก้ไขได้ใน EEPROM editor โดยเช็กซัม CC_DMI (ไบต์ 95) จะคำนวณใหม่ให้ทุกครั้งที่เขียน
ตำแหน่งไบต์ที่แน่นอนของค่าเกณฑ์ แฟล็ก และมาสก์ทุกตัว: แผนผัง A2h ของ SFF-8472, เพจล่างของ SFF-8636 และ เพจ 03h, เพจ 02h ของ CMIS และ เพจ 11h