โมดูล 2/5 · สัปดาห์ 4–6 · 27 ชม.

C2 link telemetry และวิดีโอ

UAT 207 ระบบสื่อสารและเครือข่ายข้อมูล

เวลาเรียนประมาณ 85 นาทีร่าง รอตรวจปรับปรุงล่าสุด 28 กันยายน 2569

บทเรียน

เมื่อเรียนจบโมดูลนี้ ผู้เรียนจะสามารถ

  1. คำนวณแบนด์วิดท์ของ telemetry จากขนาดข้อความ MAVLink และอัตราส่ง
  2. เปรียบเทียบความต้องการกับอัตราอากาศของวิทยุ SiK และผลของ ECC
  3. คำนวณความจุ Shannon จาก SNR และประเมินส่วนเผื่อของลิงก์วิดีโอ
  4. แยกบทบาทของ C2, telemetry และข้อมูลภารกิจ

ความรู้พื้นฐานที่ควรมี: UAT 207 โมดูล 1 · UAT 104 โมดูล 4 (โครงสร้างเฟรม MAVLink 2)

ทำไมต้องรู้

ลิงก์ของโดรนส่งข้อมูลสามแบบที่ต้องการต่างกัน C2 ส่งคำสั่งซึ่งต้องมาถึงแน่นอนและเร็ว telemetry ส่งสถานะซึ่งต้องสม่ำเสมอ และ ข้อมูลภารกิจ เช่น วิดีโอ ต้องการแบนด์วิดท์สูงแต่ทนการหายได้บ้าง ถ้าส่ง telemetry ถี่เกินกว่าวิทยุรับไหว ข้อความสำคัญจะล่าช้าหรือหาย ถ้าลิงก์วิดีโอไม่มีส่วนเผื่อ ภาพจะค้างเมื่อบินออกไกล

งบแบนด์วิดท์ของ telemetry

แต่ละข้อความ MAVLink 2 มีข้อมูลตามชนิด บวกส่วนหัว 10 ไบต์และ CRC 2 ไบต์ (คู่มือการ serialization ของ MAVLink) คูณด้วยจำนวนครั้งต่อวินาทีแล้วรวมทุกชนิด ได้แบนด์วิดท์ที่ต้องใช้

วิทยุ telemetry แบบ SiK ที่นิยมใช้กับ ArduPilot มีค่าเริ่มต้น AIR_SPEED 64 kbps คู่มือระบุว่าถ้าเปิด ECC อัตราข้อมูลที่รองรับจะเหลือครึ่งหนึ่ง และไม่แนะนำให้ใช้ ECC แล้ว วิทยุยังต้องแบ่งเวลาให้ข้อมูลขาขึ้นจากสถานีด้วย จึงไม่ควรใช้เกือบเต็มอัตรา

ตัวอย่างที่ 1 telemetry ใช้แบนด์วิดท์เท่าใด

ขนาดข้อมูลเป็นขนาดเต็มของแต่ละข้อความใน MAVLink 2 อัตราส่งเป็นค่าที่ทีมตั้ง

MSGS = {                                  # ชื่อ: (ไบต์ข้อมูล, ครั้งต่อวินาที)
    "HEARTBEAT": (9, 1),
    "SYS_STATUS": (43, 2),
    "ATTITUDE": (28, 10),
    "GLOBAL_POSITION_INT": (28, 5),
    "VFR_HUD": (20, 4),
    "GPS_RAW_INT": (52, 2),
    "RC_CHANNELS": (42, 2),
}
OVERHEAD = 12                              # ส่วนหัว 10 + CRC 2 ไบต์ (ไม่ลงลายเซ็น)

def total_kbps(msgs):
    return sum((size + OVERHEAD) * 8 * hz for size, hz in msgs.values()) / 1000

base = total_kbps(MSGS)
for air, label in ((64, "AIR_SPEED 64"), (32, "ECC on (half)")):
    print(f"{label:<14}: telemetry {base:.2f} kbit/s uses {base / air:.0%} of the air rate")
fast = dict(MSGS, ATTITUDE=(28, 50), GLOBAL_POSITION_INT=(28, 25))
print(f"attitude 50 Hz + position 25 Hz: {total_kbps(fast):.2f} kbit/s = {total_kbps(fast) / 64:.0%} of 64 kbit/s")
AIR_SPEED 64  : telemetry 8.76 kbit/s uses 14% of the air rate
ECC on (half) : telemetry 8.76 kbit/s uses 27% of the air rate
attitude 50 Hz + position 25 Hz: 27.96 kbit/s = 44% of 64 kbit/s

ค่าตั้งปกติใช้ไม่ถึงหนึ่งในหกของอัตราอากาศ แต่ถ้าเพิ่มอัตรา ATTITUDE และตำแหน่งเพื่อดูกราฟละเอียด จะใช้เกือบครึ่ง และถ้าเปิด ECC ด้วยจะใช้ถึงราว 87% ของอัตรา 32 kbps ที่เหลือ ควรเพิ่มอัตราเฉพาะตอนต้องการ เช่น ตอนจูน แล้วลดกลับ

แถบแนวนอนสะสมสีต่าง ๆ ของแต่ละข้อความ MAVLink รวมกันราว 8.76 กิโลบิตต่อวินาที เส้นประแนวตั้งสีทองที่ 32 เขียนว่า ECC เปิด 32 และเส้นประสีชมพูที่ 64 เขียนว่า AIR_SPEED 64 แกนนอน 0 ถึง 70 กิโลบิตต่อวินาที
ภาพที่ 1 งบแบนด์วิดท์ของ telemetry เทียบอัตราอากาศของ SiK

ความจุ Shannon และลิงก์วิดีโอ

Shannon (1948) พิสูจน์ว่าช่องสัญญาณแบนด์วิดท์ ที่มีอัตราส่วนสัญญาณต่อสัญญาณรบกวน SNR ส่งข้อมูลได้ไม่เกิน เป็นขอบบนทางทฤษฎี ระบบจริงได้ต่ำกว่านี้เสมอ SNR ลดลงตามระยะตาม free-space loss ความจุจึงลดตาม ส่วนสัญญาณรบกวนความร้อนคำนวณจาก dBm/Hz บวก และ noise figure ของเครื่องรับ

ตัวอย่างที่ 2 ความจุของลิงก์วิดีโอ 2.4 GHz ตามระยะ

สมมติส่ง 20 dBm สายอากาศ 2 dBi สองฝั่ง แบนด์วิดท์ 20 MHz noise figure 6 dB วิดีโอ 8 Mbit/s และต้องการส่วนเผื่อสองเท่า

import math

PT_DBM, GAINS_DB, B_HZ, NF_DB, F_HZ = 20.0, 4.0, 20e6, 6.0, 2.44e9
VIDEO_MBPS, MARGIN = 8.0, 2.0
noise = -174 + 10 * math.log10(B_HZ) + NF_DB
print(f"noise floor {noise:.1f} dBm")
for d_km in (1, 2, 5, 8, 10):
    fspl = 20 * math.log10(d_km * 1000) + 20 * math.log10(F_HZ) - 147.55
    snr_db = PT_DBM + GAINS_DB - fspl - noise
    cap = B_HZ * math.log2(1 + 10 ** (snr_db / 10)) / 1e6
    ok = "ok" if cap >= VIDEO_MBPS * MARGIN else "not enough"
    print(f"{d_km:>2} km: SNR {snr_db:5.1f} dB, Shannon limit {cap:6.1f} Mbit/s -> {ok}")
noise floor -95.0 dBm
 1 km: SNR  18.8 dB, Shannon limit  125.2 Mbit/s -> ok
 2 km: SNR  12.8 dB, Shannon limit   86.3 Mbit/s -> ok
 5 km: SNR   4.8 dB, Shannon limit   40.2 Mbit/s -> ok
 8 km: SNR   0.7 dB, Shannon limit   22.5 Mbit/s -> ok
10 km: SNR  -1.2 dB, Shannon limit   16.3 Mbit/s -> ok

แม้แต่ขอบบนทางทฤษฎีก็ลดจากกว่าร้อยเมกะบิตที่ 1 km เหลือใกล้เส้นที่ต้องการที่ 10 km ระบบจริงที่ได้ราวครึ่งหนึ่งของขอบบนหรือน้อยกว่าจะเริ่มมีปัญหาเร็วกว่านั้นมาก ทางแก้คือลดบิตเรตวิดีโออัตโนมัติตามคุณภาพลิงก์ ใช้สายอากาศทิศทาง หรือแยกวิดีโอไว้คนละลิงก์กับ C2 ตามที่ RTCA DO-362 กำหนดสมรรถนะของ C2 แยกไว้

กราฟความจุ Shannon เป็นเมกะบิตต่อวินาทีตามระยะ 0 ถึง 10 กิโลเมตร เส้นสีฟ้าลดลงอย่างรวดเร็วจากราว 160 ที่ระยะใกล้เหลือราว 16 ที่ 10 กิโลเมตร เส้นประสีชมพูแนวนอนที่ 16 เขียนว่าวิดีโอ 8 เมกะบิตคูณ 2
ภาพที่ 2 ความจุ Shannon ตามระยะของลิงก์วิดีโอ 2.4 GHz

ปฏิบัติการประจำโมดูล

ปฏิบัติการ: งบแบนด์วิดท์และคุณภาพลิงก์

  1. อ่านอัตราส่งข้อความจาก GCS หรือ SITL จริง ใส่ในโค้ดตัวอย่างที่ 1
  2. อ่านค่าตั้งของวิทยุ SiK ในห้องปฏิบัติการ (AIR_SPEED, ECC) แล้วคำนวณสัดส่วนที่ใช้
  3. เพิ่มอัตรา ATTITUDE ใน SITL สังเกตว่าข้อความอื่นช้าลงหรือไม่
  4. ใช้ตัวอย่างที่ 2 กับสเปกของลิงก์วิดีโอที่แล็บมี หาระยะที่คาดว่าจะเริ่มมีปัญหา
  5. บันทึก RSSI และบิตเรตวิดีโอระหว่างบินออกไปตามแนวตรง เทียบกับการคำนวณ

ข้อผิดพลาดที่พบบ่อย

ระวัง

  • เพิ่มอัตรา telemetry ทุกข้อความ โดยไม่คิดแบนด์วิดท์
  • ลืมส่วนหัวและข้อมูลขาขึ้น
  • ถือว่าความจุ Shannon คืออัตราที่ได้จริง
  • ส่งวิดีโอและ C2 ในลิงก์เดียวโดยไม่มีลำดับความสำคัญ
  • ใช้ค่าตั้งวิทยุไม่ตรงกันทั้งสองฝั่ง

สรุป

  • แบนด์วิดท์ telemetry = ผลรวมของ (ข้อมูล + ส่วนหัว) × 8 × อัตราส่ง
  • วิทยุ SiK ค่าเริ่มต้น 64 kbps และ ECC ลดอัตราเหลือครึ่ง
  • ความจุ Shannon เป็นขอบบนที่ลดตาม SNR ระบบจริงได้ต่ำกว่านั้น
  • แยกความต้องการของ C2, telemetry และวิดีโอ และเผื่อส่วนเผื่อให้แต่ละแบบ

แบบฝึกตรวจความเข้าใจ

  1. ข้อความข้อมูล 28 ไบต์ ส่ง 10 Hz ใน MAVLink 2 ไม่ลงลายเซ็น ใช้แบนด์วิดท์เท่าใด
  2. SiK AIR_SPEED 64 kbps เปิด ECC จะรองรับข้อมูลราวเท่าใด
  3. B = 10 MHz, SNR = 15 (ไม่ใช่ dB) ความจุ Shannon เท่าใด
  4. สัญญาณรบกวนความร้อนในแบนด์วิดท์ 1 MHz (NF 0 dB) เท่าใด
  5. ทำไมควรแยกลิงก์วิดีโอกับ C2
เฉลย
  1. bit/s
  2. ราว 32 kbps
  3. Mbit/s
  4. dBm
  5. วิดีโอใช้แบนด์วิดท์มากและทนการหายได้ ส่วน C2 ต้องมาถึงแน่นอน การแยกกันทำให้วิดีโอไม่แย่งทรัพยากรของคำสั่ง

สรุปสูตรสำคัญ

แบนด์วิดท์ของ telemetry
ความจุ Shannon
กำลังสัญญาณรบกวนความร้อน

แหล่งอ้างอิงหลัก

  1. ArduPilot Dev Team. SiK radio – advanced configuration. ArduPilot Copter documentation. link
  2. MAVLink Development Team. Packet serialization. MAVLink developer guide. link
  3. Shannon, C. E. (1948). A mathematical theory of communication. Bell System Technical Journal, 27(3), 379–423; 27(4), 623–656. link
  4. RTCA. (2016). Command and control (C2) data link minimum operational performance standards (MOPS) (terrestrial) (DO-362). link
  5. Kurose, J. F., & Ross, K. W. (2025). Computer networking: A top-down approach (9th ed.). Pearson. link

อ่านเพิ่มเติม

ศึกษาหน่วยความรู้ที่กำหนดล่วงหน้า ดูสื่อประกอบ และทำ quiz ประจำโมดูล

ในชั้นเรียน / ภาคสนาม

ปฏิบัติการในห้องแล็บหรือภาคสนามตามใบงาน พร้อม checklist ความปลอดภัย

หลักฐานการเรียนรู้: ใบงานที่ผ่านการตรวจและผล quiz

แบบทดสอบประจำโมดูล

แบบทดสอบนี้ใช้ตรวจความเข้าใจ (formative) ไม่ใช่การสอบเก็บคะแนน

โดเมนความรู้: การสื่อสาร เครือข่าย และ IoT · กฎหมาย ความปลอดภัย และความเสี่ยง