Pengembangan BLE: Apa itu GATT dan bagaimana cara kerjanya?

Daftar Isi

Konsep GATT

Untuk melakukan pengembangan terkait BLE kita harus memiliki pengetahuan dasar tertentu, tentunya harus sangat sederhana.

GATT Peran perangkat:

Hal pertama yang harus dipahami adalah bahwa perbedaan antara kedua peran ini ada pada tingkat perangkat keras, dan keduanya merupakan konsep relatif yang muncul berpasangan:

"Perangkat pusat": relatif kuat, digunakan untuk memindai dan menghubungkan perangkat periferal, seperti ponsel, tablet, dll.

"Perangkat periferal": fungsinya relatif sederhana, konsumsi dayanya kecil, dan perangkat pusat terhubung untuk menyediakan data, seperti gelang, termometer pintar, dll.

Padahal, pada tataran paling mendasar, harus ada pembedaan peran-peran berbeda dalam proses menjalin hubungan. Kita tahu bahwa jika perangkat Bluetooth ingin memberi tahu orang lain keberadaannya, perangkat tersebut perlu terus menyiarkan ke dunia luar, sementara pihak lain perlu memindai dan membalas paket siaran, agar sambungan dapat terjalin. Dalam proses ini, orang yang bertanggung jawab atas penyiaran adalah Periferal, dan Pusat bertanggung jawab atas pemindaian.

Catatan tentang proses koneksi antara keduanya:

Perangkat pusat dapat terhubung ke beberapa perangkat periferal secara bersamaan. Setelah perangkat periferal terhubung, perangkat tersebut akan segera menghentikan siaran, dan melanjutkan siaran setelah pemutusan sambungan. Hanya satu perangkat yang dapat mencoba terhubung kapan saja, mengantri koneksi.

GATT protokol

Teknologi BLE berkomunikasi berdasarkan GATT. GATT adalah protokol transmisi atribut. Ini dapat dianggap sebagai protokol lapisan aplikasi untuk transmisi atribut.

Strukturnya sangat sederhana:   

Anda dapat memahaminya sebagai xml:

Setiap GATT terdiri dari Layanan yang menjalankan fungsi berbeda;

Setiap Layanan terdiri dari Karakteristik yang berbeda;

Setiap Karakteristik terdiri dari suatu nilai dan satu atau lebih Deskriptor;

Service dan Characteristic setara dengan tag (Service setara dengan kategorinya, dan Characteristic setara dengan namanya), sedangkan value sebenarnya berisi data, dan Descriptor adalah penjelasan dan deskripsi dari nilai tersebut. Tentu saja kita bisa menggambarkan dan mendeskripsikannya dari berbagai sudut. Deskripsi, jadi bisa ada banyak Deskriptor.

Misalnya: Xiaomi Mi Band yang umum adalah perangkat BLE, (diasumsikan) berisi tiga Layanan, yaitu Layanan yang menyediakan informasi perangkat, Layanan yang menyediakan langkah-langkah, dan Layanan yang mendeteksi detak jantung;

Karakteristik yang terdapat dalam layanan informasi perangkat meliputi informasi pabrikan, informasi perangkat keras, informasi versi, dll.; Layanan detak jantung mencakup karakteristik detak jantung, dll., dan nilai dalam karakteristik detak jantung sebenarnya berisi data detak jantung, dan deskriptornya adalah nilainya. Deskripsi, seperti unit nilai, deskripsi, izin, dll.

GATT C/S

Dengan pemahaman awal tentang GATT, kita tahu bahwa GATT adalah mode C/S yang khas. Karena ini C/S, kita perlu membedakan antara Server dan klien.

"Server GATT" vs. "klien GATT". Tahapan keberadaan kedua peran ini adalah setelah terjalinnya hubungan, dan dibedakan menurut status dialognya. Mudah dipahami bahwa pihak yang menyimpan data disebut server GATT, dan pihak yang mengakses data disebut klien GATT.

Ini adalah konsep pada tingkat yang berbeda dari peran perangkat yang kami sebutkan sebelumnya, dan perlu dibedakan. Mari kita gunakan contoh sederhana untuk mengilustrasikannya:

Ambil contoh ponsel dan jam tangan sebagai ilustrasi. Sebelum koneksi antara ponsel dan ponsel dibuat, kami menggunakan fungsi pencarian Bluetooth pada ponsel untuk mencari perangkat Bluetooth pada jam tangan. Selama proses ini, terlihat jelas bahwa jam tangan tersebut menyiarkan BLE sehingga perangkat lain mengetahui keberadaannya. , itu adalah peran periferal dalam proses ini, dan ponsel bertanggung jawab atas tugas pemindaian, dan tentu saja memainkan peran Pusat; setelah keduanya menjalin koneksi GATT, ketika ponsel perlu membaca data sensor seperti jumlah langkah dari jam tangan, keduanya Data interaktif disimpan di jam tangan, jadi saat ini jam tangan berperan sebagai GATT server, dan telepon seluler secara alami adalah klien GATT; dan ketika jam tangan ingin membaca panggilan SMS dan informasi lainnya dari ponsel, penjaga datanya menjadi Ponsel, jadi ponsel adalah servernya saat ini, dan jam tangan adalah kliennya.

Layanan/Karakteristik

Kita telah memiliki pemahaman persepsi mengenai hal-hal tersebut di atas, dan kemudian kita memiliki beberapa informasi praktis:

  1. Karakteristik adalah unit data logis terkecil.
  2. Analisis data yang disimpan dalam nilai dan deskriptor ditentukan oleh Server engineer, tidak ada spesifikasi.
  3. Service/Characteristic mempunyai identifikasi UUID yang unik, UUID memiliki 16-bit dan 128-bit, yang perlu kita pahami adalah UUID 16-bit disertifikasi oleh organisasi Bluetooth dan perlu dibeli, tentu saja ada beberapa kesamaan UUID 16-bit. Misalnya, UUID layanan Denyut Jantung adalah 0X180D, yang dinyatakan sebagai 0X00001800-0000-1000-8000-00805f9b34fb dalam kode, dan bit lainnya ditetapkan. UUID 128-bit dapat disesuaikan.
  4. Koneksi GATT bersifat eksklusif.

Gulir ke Atas