Bluetooth Low Energy

Bluetooth Low Energy (BLE) sağlık alanında, fitness’ta, güvenlikte ve ev eğlencelerinde yeni uygulamalar hedefleyen Bluetooth Special Interest Group (SIG) tarafından tasarlanan ve pazarlanan kablosuz kişisel alan ağı teknolojisidir. "Bluetooth Smart" olarak da anılan BLE, Klasik Bluetooth’un bir alt grubudur ve Bluetooth 4.0 temel özelliklerinin bir parçası olarak tanıtılmaktadır. Klasik Bluetooth ile örtüşüyor olsa da BLE, aslında tamamen farklı bir kökene sahiptir ve Bluetooth SIG tarafından benimsenmeden önce Nokia’da "Wibree" adı verilen bir şirket projesi olarak başlatılmıştır.
Mühendisler ve ürün tasarımcıları için çok sayıda kablosuz protokol olmasına rağmen BLE'yi bu kadar ilginç yapan şey kesinlikle herhangi bir modern mobil platformla konuşabilen bir ürünü tasarlamanın en kolay yolu olmasıdır. iOS, Android, Windows Phone ve BlackBerry dahil olmak üzere mobil işletim sistemleri, ayrıca MacOS, Linux, Windows 8 ve Windows 10 yerel olarak Bluetooth Smart’ı desteklenmektedir. Bununla birlikte Bluetooth SIG, 2018 yılına kadar Bluetooth özellikli akıllı telefonların yüzde 90'dan fazlasının Bluetooth Smart'ı destekleyeceğini öngörmektedir.

Uygunluk

Bluetooth Smart Klasik Bluetooth protokolüyle uyumlu değildir. Bluetooth 4.0 spesifikasyonu, cihazların LE ve Klasik sistemlerden herhangi birini veya her ikisini uygulamasına izin vermektedir.
Bluetooth Smart, Dual Mod aygıtlarının tek bir radyo antenini paylaşmasına olanak tanıyan Klasik Bluetooth ile aynı (2.4 GHz) radyo frekansını kullanır. Bununla birlikte, LE daha basit bir modülasyon sistemi kullanmaktadır.

Uygulamalar

Orijinal Bluetooth özelliklerinden ödünç alan Bluetooth SIG, düşük enerjili cihazlar için bir cihazın belirli bir uygulamada nasıl çalıştığıyla ilgili birkaç profil tanımlamıştır.. Üreticilerin uyumluluğunu sağlamak amacıyla cihazları için uygun özellikleri uygulamaları beklenmektedir. Bir cihaz birden fazla profilin uygulanmasını içerebilir.
Bütün düşük enerji uygulama profilleri, düşük enerji bağlantısı üzerinden nitelik olarak bilinen kısa veri parçalarını göndermek ve almak için genel bir özellik olan genel öznitelik profiline (GATT) dayanır. Bluetooth 4.0, daha yüksek bit hızları yla düşük güç tüketimi sağlar.
2014'te Cambridge Silicon Radio (şimdi Qualcomm’un bir parçası) CSR Mesh’i başlattı. CSR Mesh protokolü, ağdaki diğer Bluetooth Smart cihazlarla iletişim kurmak için Bluetooth Smart’ı kullanmaktadır. Her cihaz, bilgileri bir "örgü" efekti oluşturan diğer Bluetooth Smart cihazlarına iletir. Örneğin, bu sayede tüm bir tüm bir binanın ışıklarını tek bir akıllı telefondan kapatabilmektedir. Bluetooth SIG geçtiğimiz günlerde Smart Mesh çalışma grubunu, kullanım durumlarını araştırmak ve tanımlamak için bir standart belirtim tanımlamak amacıyla oluşturdu.

Çip (Mikrodevre)

2009'un sonlarında, birçok üretici tarafından ilan edilen, Bluetooth Smart entegre uygulamaları çoğunlukla radyo yazılımı kullanır, bu yüzden özellik güncellemeleri bir yazılım (Firmware) yükseltmesi aracılığıyla yerleştirilebilir.

Donanım

Mevcut mobil cihazlar hem Klasik Bluetooth hem de Bluetooth Akıllı standardı için donanım ve yazılım desteği ile yaygın olarak piyasaya sürülmektedir.

GAP

GAP Generic Access Profile’in (Genel Erişim Profili) kısaltılmasıdır ve Bluetooth’un bağlantılarını ve yayınlarını (advertisement) kontrol eder. GAP cihazı dış dünyaya görünür yapar ve iki cihazın birbirleriyle nasıl etkileşimde bulunabileceğini veya bulunamayacağını belirler.

Yayın (Advertisement) ve Tarama Cevap (Scan Response) Verileri

BLE cihazları, yayın tanıtım paketlerine dayalı bir süreçle tespit edilir.
GAP ile çevreye yayın yapabilmenin iki yolu vardır. Bunlar, Yayın Verisi yükü (Advertisement Data Payload) ve Tarama Cevabı yükü (Scan Response Payload)dür.
Bu her iki yük de benzerdir ve maksimum 31 bayt veri içerebilir. Yüklerden tanıtım verisinin kullanılması menzil içindeki merkezi cihazların onun varlığının bilmesine izin vermek için zorunlu kılınmıştır. Tarama cevabının yükü isteğe bağlı, merkezi cihazların talep edebildiği ve cihaz tasarımcılarına bir aygıt adı vb. için bir dize daha fazla bilgi sığdırmak amacıyla izin verebildiği ikinci bir yüktür.

Tanıtım Süreci

Aşağıdaki diyagram tanıtım sürecini, tanıtım ve tarama cevap yüklerinin nasıl çalıştığını açıklamaktadır.
Bir çevresel cihaz, özel bir tanıtım aralığı (advertisement interval) belirler ve bu aralık sıklığında ana tanıtım paketini yayınlar. Bu aralık, güç tüketimi ve duyarlılık gereksinimleri düşünülerek uygulamaya özel seçilebilir, örneğin 2s’de bir tanıtım paketi yayınlayan bir cihaz, 20ms’de bir tanıtım paketi yayınlayan cihaza göre daha az güç tüketir fakat duyarlılığı da 20ms yayına göre daha azdır.
Eğer bir başka cihaz çevreyi tarıyor ise isteğe bağlı olarak ortamdaki cihazların tarama cevap yükünü talep edebilir böyle bir durumda çevresel cihaz tanıtım paketi ile birlikte tarama cevap yükünü de iletecektir.

Yayın Ağı Topolojisi

Çevresel cihazların çoğu kendilerini tanıtmaktadır ve bu sayede onlar ile bir bağlantı kurulabilir ve GATT servisleri ve karakteristikleri kullanılabilir (Çok daha fazla verinin değiş tokuş edilmesine ve her iki yönde de kullanılmasına olanak tanır) ayrıca sadece verilerin yayınlarının yapılmasının istendiği durumlar da vardır.
Buradaki ana kullanım bir çevresel aygıtın aynı anda birden fazla aygıta veri gönderilmesinin istenmesidir. Bu sadece tanıtım paketini yayınlayarak mümkün olabilir çünkü bağlı mod’da (peer2peer connected) gönderilen ve alınan veriler yalnızca bu bağlı iki cihaz tarafından görülebilmektedir. 31 byte tanıtımda küçük miktarda özel veri ekleyerek ya da alttaki örnekte gösterdiği gibi menzildeki herhangi bir cihaza tek yönlü veri gönderen tarama cevap yükleriyle BLE çevresel aygıtı kullanılabilir. Bu BLE yayınlama (advertisement) olarak bilinir.
Bu yaklaşım Apple’ın iBeacon’u tarafından kullanılmaktadır. Bu örnekte iBeacon ana tanıtım paketine özel yükler ekleyerek “Manufacturer Specific Data Field”i (Özel Üretici Veri Alanı) kullanır.
Çevresel ve merkezi cihazların arasında bir bağlantı kurulduğu zaman genellikle yayın süreci durur (yayın paketleri çevreye yayınlanmaz) ve her iki yönde de iletişim kurmak için GATT servisleri ve karakteristikleri kullanılır.

GATT

Generic Attribute Profile (GATT) iki BLE cihazının Servisler (Services) ve karakteristikler (Characteristics) adı verilen kavramları kullanarak verileri aktarma biçimini tanımlar. Tablosundaki her bir girdi için 16 bitlik kimlik bilgileri kullanarak basit bir arama tablosunda Servisler, Karakteristikler ve ilgili verileri depolamak için kullanılan Attribute Protocol (ATT) adlı genel bir veri protokolünü kullanır.
GAP tarafından yönetilen yayın süreci tamamlandıktan sonra GATT, iki cihaz arasında özel bir bağlantı kurulduğunda devreye girer.
GATT ve bağlantılar ile akılda tutulması gereken en önemli nokta bu bağlantıların özel olmasıdır. Bir BLE çevresel cihazı tek seferde sadece bir merkezi cihaza (mobil telefon, vb.) bağlanabilir, ayrıca bağlanır bağlanmaz tanıtımın kendiliğinden sona ereceği ve diğer aygıtların mevcut bağlantı kesilene kadar onu göremeyeceği veya ona bağlanamayacağı anlamına gelir.

Bağlı Ağ Topolojisi

Aşağıdaki diyagram, BLE aygıtlarının bağlı bir ortamda çalışma biçimini açıklamaktadır. Bir çevresel cihaz tek seferde sadece tek merkezi cihaza (mobil telefon) bağlanabilir ancak merkezi cihaz birden çok çevresel cihaza bağlanabilmektedir.
İki çevresel arasında veri alışverişi gereksiniminde mesajların bir merkezi cihaz üzerinden geçmesi gerekmektedir.
Ancak, çevresel ve merkezi bir cihaz arasında bağlantı kurulduktan sonra, iletişim yalnızca tanıtım verilerini ve GAP’ı kullanan tek yönlü yayın yaklaşımından farklı olarak her iki yönde de gerçekleşebilir.

GATT İşlemleri

GATT işlemlerinde önemli bir konsept sunucu-istemci ilişkisidir.
Çevresel cihaz ATT arama verilerini servisler ve karakteristikler tanımlarını tutan GATT sunucusu ve bu sunucuya istek gönderen GATT istemcisi (telefon / tablet) olarak tanımlanır.
Tüm işlemler Master (Ana Cihaz), Slave (Bağımlı Cihaz) GATT sunucusundan yanıt alan GATT istemcisi, tarafından başlatılır. Bir bağlantı kurarken çevresel cihaz merkezi cihaza bir bağlantı aralığı önerir ve merkezi cihaz yeni bir veri mevcut olup olmadığını görmek için her bağlantı aralığında yeniden bağlanmaya çalışır. Ancak bu bağlantı aralığı yalnızca bir öneridir. Merkezi cihazın bu talebi kabul etmesi mümkün olmayabilir çünkü diğer çevresel cihazlarla konuşmakta olabilir.
Aşağıdaki diyagram Ana cihaz her seferinde işlem başlatırken çevresel cihaz (GATT Sunucusu) ile Merkezi cihaz (GATT İstemcisi) arasındaki veri alışveriş sürecini göstermektedir:

Servisler ve Karakteristikler

BLE’deki GATT işlemleri, aşağıdaki çizimde de görüldüğü gibi Profiller, Servisler ve Karakteristikler isimli yüksek düzeyde iç içe geçmiş nesnelere dayanır:

Profiller (Profiles)

Profiller olası BLE uygulamalarının tanımlamalarıdır ve BLE özellikli cihazların diğer BLE cihazlarıyla iletişim kurmak için kullandıkları genel davranışları belirtir. Bir profil aslında BLE çevresel cihazının kendisinde mevcut değildir. Bluetooth SIG veya çevresel tasarımcılar tarafından derlenen önceden tanımlanmış Servisler koleksiyonudur. Profiller bir BLE modülünün hangi veri türlerini ilettiğini daha açık bir şekilde tanımlamak için Bluetooth standardı üzerine kurulmuştur. Cihazın uygulaması, ahizesiz yetenekler (hands-free capabilities)den kalp atış hızı sensörlerine, uyarılara ve daha fazlasına kadar hangi profilleri desteklemesi gerektiğini belirler.

Servisler (Services)

Hizmetler verileri mantıksal yapılara ayırmak için kullanılır ve karakteristikler adı verilen veri yığınlarını içerir. Bir servis bir veya daha fazla karakteristiğe sahip olabilir ve her servis kendisini, 16-bit (resmi olarak kabul edilen BLE Servisleri için) veya 128-bit (Özel Servisler için) olabilen, benzersiz bir sayısal kimliğe (UUID) bürünerek diğer servislerden ayırır.
Örneğin nabız servisinde, SIG tarafından kabul edilen bu servisin 0x180D'lik 16 bitlik bir UUID’ye sahip olduğu ve en fazla üç karakteristik içerdiği görülebilir, ancak yalnızca ilki zorunludur: Heart Rate Measurement (Nabız Ölçümü), Body Sensor Location (Vücur Sensör Lokasyonu) and Heart Rate Control Point (Nabız Kontrol Noktası).

Karakteristikler (Characteristics)

GATT işlemlerindeki en düşük düzey kavramı, tek bir veri noktasını kapsayan karakteristiklerdir.
Servislere benzer şekilde, her karakteristik kendisini önceden tanımlanmış bir 16-bit veya 128-bit UUID ile ayrılır. Birlikte çalışabilirliği ve BLE özellikli Donanım-Yazılım geliştiricilerine ya da sadece çevresel cihazın yazılımına uygun özel karakteristikler tanımlanabilir.
Örnek olarak, Kalp Hızı ölçümü karakteristiği kalp hızı servisi için zorunludur ve 0x2A37'lik bir UUID kullanır. Kalp hızı ölçümü veri formatını (veri UINT8 veya UINT16, vb.) tanımlayan tek bir 8 bitlik değerle başlar ve bu yapılandırma byte’ıyla eşleşen kalp atış hızı ölçüm verilerini içerir.
Karakteristik, BLE çevresel cihazları ile etkileşimde bulunacak ana noktadır. Ayrıca uygulamaya özgün karakteristikler oluşturmak mümkün olduğundan BLE çevresel cihazı için veri iletişiminde kullanılır. Özel bir ‘UART Servisi’ve iki karakterisik (biri TX ve diğeri RX kanalı in) ile basit bir UART arayüzü gerçeklenebilir.