การพัฒนา BLE: GATT คืออะไร และทำงานอย่างไร?
แนวคิดของ GATT
เพื่อดำเนินการพัฒนาที่เกี่ยวข้องกับ BLE, เราต้องมีความรู้พื้นฐานบางอย่าง, แน่นอน, มันจะต้องง่ายมาก.
คัท บทบาทของอุปกรณ์:
สิ่งแรกที่ต้องเข้าใจคือความแตกต่างระหว่างสองบทบาทนี้อยู่ที่ระดับฮาร์ดแวร์, และเป็นแนวคิดที่เกี่ยวข้องกันซึ่งปรากฏเป็นคู่:
“อุปกรณ์ส่วนกลาง”: ค่อนข้างทรงพลัง, ใช้ในการสแกนและเชื่อมต่ออุปกรณ์ต่อพ่วง, เช่นโทรศัพท์มือถือ, แท็บเล็ต, ฯลฯ.
“อุปกรณ์ต่อพ่วง”: ฟังก์ชั่นนี้ค่อนข้างง่าย, การใช้พลังงานมีน้อย, และอุปกรณ์ส่วนกลางเชื่อมต่อเพื่อให้ข้อมูล, เช่น สายรัดข้อมือ, เครื่องวัดอุณหภูมิอัจฉริยะ, ฯลฯ.
ในความเป็นจริง, ในระดับพื้นฐานที่สุด, มันควรจะเป็นความแตกต่างระหว่างบทบาทที่แตกต่างกันในกระบวนการสร้างการเชื่อมต่อ. เรารู้ว่าหากอุปกรณ์บลูทูธต้องการให้ผู้อื่นทราบว่าอุปกรณ์บลูทูธมีอยู่จริง, จึงต้องถ่ายทอดสู่โลกภายนอกอย่างต่อเนื่อง, ในขณะที่อีกฝ่ายต้องสแกนและตอบกลับแพ็กเก็ตการออกอากาศ, เพื่อให้สามารถสร้างการเชื่อมต่อได้. ในกระบวนการนี้, ผู้รับผิดชอบในการออกอากาศคืออุปกรณ์ต่อพ่วง , และเซ็นทรัลมีหน้าที่สแกน.
หมายเหตุเกี่ยวกับกระบวนการเชื่อมต่อระหว่างทั้งสอง:
อุปกรณ์ส่วนกลางสามารถเชื่อมต่อกับอุปกรณ์ต่อพ่วงหลายเครื่องพร้อมกันได้เมื่อเชื่อมต่ออุปกรณ์ต่อพ่วงแล้ว, จะหยุดออกอากาศทันที, และออกอากาศต่อไปหลังจากขาดการเชื่อมต่อ มีเพียงอุปกรณ์เดียวเท่านั้นที่สามารถพยายามเชื่อมต่อได้ตลอดเวลา, การเชื่อมต่อคิว.
คัท โปรโตคอล
เทคโนโลยี BLE สื่อสารตาม GATT. GATT เป็นโปรโตคอลการส่งแอตทริบิวต์. ถือได้ว่าเป็นโปรโตคอลชั้นแอปพลิเคชันสำหรับการส่งแอตทริบิวต์.
โครงสร้างของมันเรียบง่ายมาก:

คุณสามารถเข้าใจมันเป็น xml:
GATT แต่ละอันประกอบด้วยบริการที่ทำหน้าที่ต่างกัน;
แต่ละบริการจะมีลักษณะเฉพาะที่แตกต่างกัน;
ลักษณะเฉพาะแต่ละรายการประกอบด้วยค่าและตัวอธิบายอย่างน้อยหนึ่งตัว;
บริการและลักษณะเทียบเท่ากับแท็ก (การบริการเทียบเท่ากับหมวดหมู่ของมัน, และลักษณะเฉพาะเทียบเท่ากับชื่อของมัน), ในขณะที่ค่ามีข้อมูลอยู่จริง, และ Descriptor คือคำอธิบายและคำอธิบายของค่านี้. แน่นอน, เราสามารถอธิบายและอธิบายได้จากมุมที่ต่างกัน. คำอธิบาย, ดังนั้นจึงมีคำอธิบายได้หลายรายการ.
ตัวอย่างเช่น:Xiaomi Mi Band ทั่วไปคืออุปกรณ์ BLE, (ถือว่า) ประกอบด้วยบริการสามอย่าง, ซึ่งเป็นบริการที่ให้ข้อมูลอุปกรณ์, บริการที่ให้ขั้นตอน, และบริการที่ตรวจจับอัตราการเต้นของหัวใจ;
คุณลักษณะที่มีอยู่ในบริการข้อมูลอุปกรณ์รวมถึงข้อมูลผู้ผลิตด้วย, ข้อมูลฮาร์ดแวร์, ข้อมูลเวอร์ชัน, ฯลฯ; บริการอัตราการเต้นของหัวใจรวมถึงคุณลักษณะอัตราการเต้นของหัวใจด้วย, ฯลฯ, และค่าในลักษณะอัตราการเต้นของหัวใจประกอบด้วยข้อมูลอัตราการเต้นของหัวใจจริงๆ, และตัวอธิบายคือค่า. คำอธิบาย, เช่น หน่วยของมูลค่า, คำอธิบาย, การอนุญาต, ฯลฯ.
แกตต์ ซี/เอส
ด้วยความเข้าใจเบื้องต้นเกี่ยวกับ GATT, เรารู้ว่า GATT เป็นโหมด C/S ทั่วไป. เนื่องจากเป็น C/S, จำเป็นสำหรับเราที่จะแยกแยะระหว่างเซิร์ฟเวอร์และไคลเอนต์.
“เซิร์ฟเวอร์ GATT” เทียบกับ. “ลูกค้า GAT”. ขั้นที่ทั้งสองบทบาทมีอยู่คือหลังจากสร้างการเชื่อมต่อแล้ว, และจำแนกตามสถานะของบทสนทนา. เข้าใจได้ง่ายว่าฝ่ายที่เก็บข้อมูลเรียกว่าเซิร์ฟเวอร์ GATT, และฝ่ายที่เข้าถึงข้อมูลเรียกว่าไคลเอ็นต์ GATT.
นี่เป็นแนวคิดในระดับที่แตกต่างจากบทบาทของอุปกรณ์ที่เรากล่าวถึงก่อนหน้านี้, และจำเป็นต้องแยกแยะให้ออก. ลองใช้ตัวอย่างง่ายๆ เพื่ออธิบาย:
ยกตัวอย่างโทรศัพท์มือถือและนาฬิกามาเป็นตัวอย่าง. ก่อนทำการเชื่อมต่อระหว่างโทรศัพท์มือถือกับโทรศัพท์มือถือ, เราใช้ฟังก์ชันค้นหาบลูทูธของโทรศัพท์มือถือเพื่อค้นหาอุปกรณ์บลูทูธของนาฬิกา. ในระหว่างกระบวนการนี้, เห็นได้ชัดว่านาฬิกากำลังออกอากาศ BLE เพื่อให้อุปกรณ์อื่นรู้ว่ามีอยู่จริง. , มันเป็นบทบาทของอุปกรณ์ต่อพ่วงในกระบวนการนี้, และโทรศัพท์มือถือมีหน้าที่สแกน, และมีบทบาทเป็นเซ็นเตอร์อย่างเป็นธรรมชาติ; หลังจากที่ทั้งสองสร้างการเชื่อมต่อ GATT แล้ว, เมื่อโทรศัพท์มือถือจำเป็นต้องอ่านข้อมูลเซ็นเซอร์ เช่น จำนวนก้าวจากนาฬิกา, ทั้งสอง ข้อมูลเชิงโต้ตอบจะถูกบันทึกไว้ในนาฬิกา, ดังนั้นในเวลานี้นาฬิกาจึงเป็นบทบาทของเซิร์ฟเวอร์ GATT, และโทรศัพท์มือถือก็เป็นไคลเอนต์ GATT โดยธรรมชาติ; และเมื่อนาฬิกาต้องการอ่าน SMS และข้อมูลอื่นๆ จากโทรศัพท์มือถือ, ผู้พิทักษ์ข้อมูลจะกลายเป็นโทรศัพท์มือถือ, ดังนั้นโทรศัพท์มือถือจึงเป็นเซิร์ฟเวอร์ในเวลานี้, และนาฬิกาคือลูกค้า.
การบริการ/ลักษณะเฉพาะ
เรามีความเข้าใจในการรับรู้ข้างต้นแล้ว, แล้วเราก็มีข้อมูลที่เป็นประโยชน์บ้าง:
- คุณลักษณะเป็นหน่วยข้อมูลเชิงตรรกะที่เล็กที่สุด.
- การวิเคราะห์ข้อมูลที่จัดเก็บไว้ในค่าและตัวอธิบายจะถูกกำหนดโดยวิศวกรเซิร์ฟเวอร์, ไม่มีข้อกำหนด.
- บริการ/ลักษณะเฉพาะมีการระบุ UUID ที่ไม่ซ้ำกัน, UUID มีทั้ง 16 บิตและ 128 บิต, สิ่งที่เราต้องเข้าใจคือ UUID 16 บิตได้รับการรับรองโดยองค์กร Bluetooth และจำเป็นต้องซื้อ, แน่นอนว่ามี UUID 16 บิตทั่วไปอยู่บ้างตัวอย่างเช่น, UUID ของบริการ Heart Rate คือ 0X180D, ซึ่งแสดงเป็น 0X00001800-0000-1000-8000-00805f9b34fb ในโค้ด, และบิตอื่นๆ ได้รับการแก้ไขแล้ว. UUID 128 บิตสามารถปรับแต่งได้.
- การเชื่อมต่อ GATT เป็นเอกสิทธิ์.