OpenMV MicroPython OpenMV MicroPython OpenMV MicroPython
  • หน้าหลัก
  • บทช่วยสอน
  • ไลบรารี
  • บอร์ด
  • ชิลด์
  • เซนเซอร์
  • ภาษา
  • CPython
  • ภายใน
  • Changelog
  • ใบอนุญาต
/
  • English
  • العربية
  • 简体中文
  • 繁體中文
  • Hrvatski
  • Čeština
  • Nederlands
  • Suomi
  • Français
  • Deutsch
  • עברית
  • Magyar
  • Bahasa Indonesia
  • Italiano
  • 日本語
  • 한국어
  • Polski
  • Português (Brasil)
  • Português (Portugal)
  • Română
  • Русский
  • Español
  • Svenska
  • ไทย
  • Türkçe
  • Українська
  • Tiếng Việt
  • การสนทนา
  • บทช่วยสอน
    • 1. เริ่มต้นอย่างรวดเร็ว
    • 2. ภาพรวม Python
    • 3. การควบคุมฮาร์ดแวร์
    • 4. เซนเซอร์การมองเห็น
    • 5. การประมวลผลภาพ
    • 6. NumPy
    • 7. การเรียนรู้ของเครื่อง
    • 8. Asyncio
    • 9. ระบบเครือข่าย
    • 10. Web Servers
    • 11. Bluetooth
      • 11.1. เหตุใดจึงใช้ Bluetooth
      • 11.2. BLE stack
      • 11.3. วิทยุและชั้นลิงก์
      • 11.4. การโฆษณาและการสแกน
      • 11.5. การเชื่อมต่อ
      • 11.6. บริการและลักษณะเด่น
      • 11.7. การดำเนินการ GATT
      • 11.8. โมดูล aioble
      • 11.9. การทำหน้าที่เป็น peripheral
      • 11.10. การทำงานในฐานะ central
      • 11.11. ช่องสัญญาณ L2CAP
      • 11.12. บทบาทพร้อมกันและการเชื่อมต่อหลายรายการ
      • 11.13. การจับคู่และการผูกพัน
      • 11.14. สรุป
    • 12. โปรโตคอลโฮสต์
    • 13. เครื่องมือ
    • 14. การผลิต
  • ไลบรารี
  • บอร์ด
  • ชิลด์
  • เซนเซอร์
  • ภาษา
  • CPython
  • ภายในระบบ
  • Changelog
  • ใบอนุญาต

ในหน้านี้

  • 11.3.1. วิทยุ
  • 11.3.2. ชั้นลิงก์
  • 11.3.3. สิ่งที่กล้องและ peer ใช้ร่วมกัน
  • 11.3.4. สิ่งที่ Python เห็นจากทั้งหมดนี้
micropython-doc 0 0
แก้ไขหน้านี้
  1. OpenMV MicroPython /
  2. บทเรียน OpenMV Cam /
  3. 11. Bluetooth /
  4. 11.3. วิทยุและชั้นลิงก์
ดูซอร์สโค้ด เปิดใน ChatGPT เปิดใน Claude เปิดใน Perplexity

11.3. วิทยุและชั้นลิงก์¶

สองชั้นล่างสุดของสแตก BLE นั้นเป็นอัตโนมัติเกือบทั้งหมดจากมุมมองของ Python -- ซิลิกอนวิทยุและชั้นที่ MicroPython ทำงานอยู่บนนั้นจัดการทุกอย่างตั้งแต่การเลือกช่องสัญญาณไปจนถึงการส่งซ้ำแพ็กเก็ตที่สูญหาย การเลือกสามรายการที่พวกเขาตัดสินใจยังคงปรากฏผ่านมาใน API ที่ผู้ใช้เห็น: พลังงาน ระยะ และปริมาณงานที่ผ่านได้

11.3.1. วิทยุ¶

BLE ใช้ย่านความถี่ 2.4 GHz Industrial-Scientific-Medical (ISM) เดียวกับ Wi-Fi เตาไมโครเวฟ และอุปกรณ์ไร้สายระยะสั้นอื่นๆ ส่วนใหญ่ ย่านความถี่นี้แบ่งออกเป็น 40 ช่องสัญญาณ ช่องละ 2 MHz

  • ช่อง สาม จากทั้งหมด 40 ช่องสงวนไว้สำหรับ การโฆษณา -- การกระจายสัญญาณสั้นๆ ที่ประกาศการมีอยู่ของอุปกรณ์แก่ผู้ฟังทุกคน ช่องเหล่านี้กระจายอยู่ทั่วย่านความถี่เพื่อให้ผู้ฟังสามารถกวาดทั้งสามช่องได้อย่างรวดเร็ว และเพื่อให้สัญญาณรบกวนในช่องใดช่องหนึ่งไม่น่าจะทำให้อุปกรณ์หลุดออกจากอากาศทั้งหมด

  • สามสิบเจ็ด ช่องเป็นช่องสัญญาณ ข้อมูล เมื่ออุปกรณ์สองตัวเชื่อมต่อกัน พวกเขาแลกเปลี่ยนแพ็กเก็ตบนช่องเหล่านี้ โดยกระโดดระหว่างกันตามลำดับสุ่มเทียมที่ทั้งสองฝั่งตกลงกันในเวลาเชื่อมต่อ Adaptive frequency hopping ช่วยให้ฝั่งใดฝั่งหนึ่งทำเครื่องหมายช่องว่าใช้งานไม่ได้ (สัญญาณรบกวน Wi-Fi หนัก ไมโครเวฟ เครือข่าย BLE ข้างเคียง) เพื่อให้ลำดับข้ามช่องนั้น

A horizontal frequency axis from 2400 MHz to 2480 MHz with 40 narrow channel slots drawn on it. Three of the slots, at the bottom edge, middle, and upper edge of the band, are highlighted as "advertising channels". The remaining 37 are labelled "data channels".

40 ช่อง BLE บนย่านความถี่ 2.4 GHz สามช่องสำหรับการโฆษณา ส่วนที่เหลือรับส่งข้อมูลบนการเชื่อมต่อที่เปิดอยู่¶

วิทยุส่งแพ็กเก็ตสั้นๆ -- ยาวสูงสุดสองสามมิลลิวินาที -- และพักระหว่างนั้น การพักนั้นคือสิ่งที่ทำให้เทคโนโลยีนี้ ใช้พลังงานต่ำ โดยทั่วไป BLE peripheral ใช้เวลาน้อยกว่าหนึ่งเปอร์เซ็นต์ของเวลาในการส่งสัญญาณจริงๆ ส่วนที่เหลือคือวิทยุที่ปิดอยู่ระหว่างเหตุการณ์ที่กำหนดไว้

11.3.2. ชั้นลิงก์¶

ชั้นลิงก์คือหน่วยที่เล็กที่สุดของ BLE ที่คุยกับคู่สนทนาบนอุปกรณ์อีกตัว มันจัดการงานสี่อย่าง

  • การจัดเฟรมแพ็กเก็ต แพ็กเก็ตแต่ละอันมีส่วนหัวสั้น (channel access address ความยาวแพ็กเก็ต บิตควบคุม) เพย์โหลด และ CRC ผู้รับตรวจสอบ CRC และทิ้งสิ่งที่เสียหาย

  • การกำหนดที่อยู่ อุปกรณ์ BLE ทุกตัวมี device address 48 บิตที่ระบุตัวตนบนวิทยุ บางตัวเป็น public -- ตัวระบุฮาร์ดแวร์ที่ผู้ผลิตกำหนด ติดตามได้ตลอดไป บางตัวเป็น random -- สร้างบนอุปกรณ์ หมุนเวียนเป็นระยะ และเข้ารหัสเป็นตัวเลือกเพื่อให้ผู้ดักฟังไม่สามารถเชื่อมโยงการส่งสองครั้งกับฮาร์ดแวร์เดิมได้ ที่อยู่ถูกกล่าวถึงอีกครั้งใน การโฆษณาและการสแกน

  • การกำหนดตารางการเชื่อมต่อ เมื่ออุปกรณ์สองตัวเชื่อมต่อกัน ชั้นลิงก์จะกำหนดเหตุการณ์วิทยุเป็นระยะบนลำดับการกระโดด -- ห่างกัน connection interval คงที่ -- และบรรจุข้อมูลที่รอในคิวจากชั้น GATT ด้านบนลงในแต่ละอัน ทั้งสองฝั่งกลับไปพักระหว่างเหตุการณ์ connection interval เป็นปุ่มที่แอปพลิเคชันสามารถร้องขอได้ (ดู การเชื่อมต่อ)

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

ชั้นลิงก์ยังเป็นที่ที่ การเข้ารหัส ทำงานเมื่อคู่อุปกรณ์ตกลงกันเรื่องคีย์ระหว่างการจับคู่ (ดู การจับคู่และการผูกพัน) แพ็กเก็ตทุกอันบนลิงก์ที่เข้ารหัสจะถูกถอดรหัสที่ผู้รับก่อนที่ชั้นด้านบนจะได้เห็น

11.3.3. สิ่งที่กล้องและ peer ใช้ร่วมกัน¶

วิทยุทั้งสองปลายตกลงกันในเวลาเชื่อมต่อเกี่ยวกับพารามิเตอร์หลายรายการที่ควบคุมการสนทนา:

  • connection interval -- ความถี่ที่ทั้งสองฝั่งตื่นขึ้นมาแลกเปลี่ยนแพ็กเก็ต ตั้งแต่ 7.5 ms ถึง 4 วินาที

  • peripheral latency -- จำนวน interval ติดต่อกันที่ peripheral อาจข้ามไปได้หากไม่มีอะไรจะพูด เพื่อประหยัดพลังงาน

  • supervision timeout -- ระยะเวลาที่ฝั่งใดฝั่งหนึ่งรอก่อนประกาศว่าลิงก์สูญหายเมื่ออีกฝั่งเงียบ

  • MTU -- แพ็กเก็ตเดียวที่ใหญ่ที่สุดที่ฝั่งใดฝั่งหนึ่งจะส่งให้ GATT (ค่าเริ่มต้น 23 ไบต์ สามารถเจรจาเพิ่มได้)

วิทยุและชั้นลิงก์รับผิดชอบร่วมกันในการรับส่งแพ็กเก็ตที่เชื่อถือได้และเรียงลำดับจากอุปกรณ์หนึ่งไปยังอีกอุปกรณ์หนึ่งในขณะที่ปิดวิทยุทั้งสองให้มากที่สุด ทุกชั้นด้านบนมีอิสระในการทำงานราวกับว่ามีช่องไบต์สะอาดและเป็นส่วนตัวระหว่างสองจุดสิ้นสุด

11.3.4. สิ่งที่ Python เห็นจากทั้งหมดนี้¶

แทบไม่มีอะไร API bluetooth และ aioble ไม่เปิดเผยช่องสัญญาณ ลำดับการกระโดด CRC ของแพ็กเก็ต หรือตัวจับเวลาการส่งซ้ำ สิ่งเหล่านั้นทั้งหมดถูกจัดการภายใน BLE port และวิทยุ ส่วนที่ ปรากฏผ่านมา คือสิ่งที่การเจรจาในเวลาเชื่อมต่อเปิดเผย -- connection interval, MTU, ประเภทที่อยู่

ก่อนหน้า
11.2. BLE stack
ถัดไป
11.4. การโฆษณาและการสแกน

สำหรับ OpenMV firmware v5.0.0 · อิงจาก MicroPython v1.28 · สร้างเอกสาร 18 มิถุนายน ค.ศ. 2026 · Copyright © 2014-2026 โดย OpenMV, Damien P. George, และผู้อื่น

สร้างด้วย Sphinx โดยใช้ ธีม Shibuya