การพัฒนา BLE: GATT คืออะไรและทำงานอย่างไร

สารบัญ

แนวคิดของ GATT

เพื่อดำเนินการพัฒนาที่เกี่ยวข้องกับ BLE เราต้องมีความรู้พื้นฐานที่แน่นอน แน่นอนว่าจะต้องง่ายมาก

แกตต์ บทบาทของอุปกรณ์:

สิ่งแรกที่ต้องเข้าใจคือความแตกต่างระหว่างสองบทบาทนี้อยู่ที่ระดับฮาร์ดแวร์ และเป็นแนวคิดที่เกี่ยวข้องซึ่งปรากฏเป็นคู่:

“อุปกรณ์ส่วนกลาง”: ค่อนข้างทรงพลัง ใช้สำหรับสแกนและเชื่อมต่ออุปกรณ์ต่อพ่วง เช่น โทรศัพท์มือถือ แท็บเล็ต เป็นต้น

"อุปกรณ์ต่อพ่วง": ฟังก์ชั่นค่อนข้างง่าย ใช้พลังงานน้อย และอุปกรณ์ส่วนกลางเชื่อมต่อเพื่อให้ข้อมูล เช่น สายรัดข้อมือ เครื่องวัดอุณหภูมิอัจฉริยะ ฯลฯ

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

หมายเหตุเกี่ยวกับกระบวนการเชื่อมต่อระหว่างทั้งสอง:

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

แกตต์ โปรโตคอล

เทคโนโลยี BLE สื่อสารตาม GATT GATT เป็นโปรโตคอลการส่งแอตทริบิวต์ ถือได้ว่าเป็นโปรโตคอลชั้นแอปพลิเคชันสำหรับการส่งแอตทริบิวต์

โครงสร้างของมันง่ายมาก:   

คุณสามารถเข้าใจมันเป็น xml:

GATT แต่ละบริการประกอบด้วยบริการที่ทำหน้าที่ต่างกัน

แต่ละบริการประกอบด้วยคุณลักษณะที่แตกต่างกัน

ลักษณะเฉพาะแต่ละรายการประกอบด้วยค่าและตัวอธิบายหนึ่งตัวขึ้นไป

บริการและคุณลักษณะเทียบเท่ากับแท็ก (บริการเทียบเท่ากับหมวดหมู่ และคุณลักษณะเทียบเท่ากับชื่อ) ในขณะที่ค่ามีข้อมูลอยู่จริง และ Descriptor คือคำอธิบายและคำอธิบายของค่านี้ แน่นอนว่าเราสามารถอธิบายและอธิบายได้จากมุมที่ต่างกัน Description จึงสามารถมี Descriptors ได้หลายตัว

ตัวอย่างเช่น: Xiaomi Mi Band ทั่วไปคืออุปกรณ์ BLE (สันนิษฐาน) ประกอบด้วยบริการสามอย่าง ได้แก่ บริการที่ให้ข้อมูลอุปกรณ์ บริการที่ให้ขั้นตอน และบริการที่ตรวจจับอัตราการเต้นของหัวใจ

คุณลักษณะที่มีอยู่ในบริการข้อมูลอุปกรณ์ประกอบด้วยข้อมูลผู้ผลิต ข้อมูลฮาร์ดแวร์ ข้อมูลเวอร์ชัน ฯลฯ บริการอัตราการเต้นของหัวใจประกอบด้วยคุณลักษณะอัตราการเต้นของหัวใจ ฯลฯ และค่าในลักษณะอัตราการเต้นของหัวใจประกอบด้วยข้อมูลอัตราการเต้นของหัวใจจริง ๆ และตัวอธิบายคือค่า คำอธิบาย เช่น หน่วยของค่า คำอธิบาย การอนุญาต ฯลฯ

แกตต์ ซี/เอส

ด้วยความเข้าใจเบื้องต้นเกี่ยวกับ GATT เราจึงทราบว่า GATT เป็นโหมด C/S ทั่วไป เนื่องจากเป็น C/S เราจึงจำเป็นต้องแยกความแตกต่างระหว่างเซิร์ฟเวอร์และไคลเอนต์

"เซิร์ฟเวอร์ GATT" กับ "ไคลเอ็นต์ GATT" ระยะที่ทั้งสองบทบาทมีอยู่คือหลังจากสร้างการเชื่อมโยงแล้ว และจะแยกความแตกต่างตามสถานะของบทสนทนา เป็นเรื่องง่ายที่จะเข้าใจว่าฝ่ายที่เก็บข้อมูลเรียกว่าเซิร์ฟเวอร์ GATT และฝ่ายที่เข้าถึงข้อมูลเรียกว่าไคลเอ็นต์ GATT

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

ยกตัวอย่างโทรศัพท์มือถือและนาฬิกามาเป็นตัวอย่าง ก่อนที่จะสร้างการเชื่อมต่อระหว่างโทรศัพท์มือถือกับโทรศัพท์มือถือ เราจะใช้ฟังก์ชันการค้นหา Bluetooth ของโทรศัพท์มือถือเพื่อค้นหาอุปกรณ์ Bluetooth ของนาฬิกา ในระหว่างกระบวนการนี้ เห็นได้ชัดว่านาฬิกากำลังส่งสัญญาณ BLE เพื่อให้อุปกรณ์อื่นๆ รู้ว่ามีอยู่ เป็นบทบาทของอุปกรณ์ต่อพ่วงในกระบวนการนี้ และโทรศัพท์มือถือมีหน้าที่สแกน และมีบทบาทเป็นศูนย์โดยธรรมชาติ หลังจากที่ทั้งสองสร้างการเชื่อมต่อ GATT เมื่อโทรศัพท์มือถือจำเป็นต้องอ่านข้อมูลเซ็นเซอร์ เช่น จำนวนก้าวจากนาฬิกา ข้อมูลโต้ตอบทั้งสองจะถูกบันทึกไว้ในนาฬิกา ดังนั้น ณ เวลานี้ นาฬิกาจึงมีบทบาทเป็น GATT เซิร์ฟเวอร์และโทรศัพท์มือถือนั้นเป็นไคลเอนต์ GATT โดยธรรมชาติ และเมื่อนาฬิกาต้องการอ่านสาย SMS และข้อมูลอื่น ๆ จากโทรศัพท์มือถือ ผู้ดูแลข้อมูลจะกลายเป็นโทรศัพท์มือถือ ดังนั้นโทรศัพท์มือถือจึงเป็นเซิร์ฟเวอร์ในเวลานี้ และนาฬิกาคือไคลเอนต์

การบริการ/ลักษณะเฉพาะ

เรามีความเข้าใจในการรับรู้ข้างต้นแล้ว จากนั้นเราก็มีข้อมูลที่เป็นประโยชน์บางประการ:

  1. คุณลักษณะเป็นหน่วยข้อมูลเชิงตรรกะที่เล็กที่สุด
  2. การวิเคราะห์ข้อมูลที่จัดเก็บไว้ในค่าและตัวอธิบายจะถูกกำหนดโดยวิศวกรเซิร์ฟเวอร์ โดยไม่มีข้อกำหนด
  3. บริการ/ลักษณะเฉพาะมีการระบุ UUID ที่ไม่ซ้ำกัน UUID มีทั้ง 16 บิตและ 128 บิต สิ่งที่เราต้องเข้าใจคือ UUID 16 บิตได้รับการรับรองโดยองค์กร Bluetooth และจำเป็นต้องซื้อ แน่นอนว่ามีบางอย่างทั่วไป UUID 16 บิต ตัวอย่างเช่น UUID ของบริการ Heart Rate คือ 0X180D ซึ่งแสดงเป็น 0X00001800-0000-1000-8000-00805f9b34fb ในโค้ด และบิตอื่นๆ ได้รับการแก้ไขแล้ว UUID 128 บิตสามารถปรับแต่งได้
  4. การเชื่อมต่อ GATT เป็นเอกสิทธิ์

เลื่อนไปที่ด้านบน