• Sonuç bulunamadı

4. BLUETOOTH PROTOKOL MİMARİSİ

4.9 Host Kontrolör Arayüzü (Host Controller Interface (HCI))

4.9.2 HCI_PDU ları

Komut HCI_PDU sunun baĢlığındaki “Op Kodu Grup Alanı” (OGF) ile tanımlanan birkaç gruba ayrılmıĢ komut HCI_PDU ları bulunmaktadır. Komut HCI_PDU larının birçoğu için tekabül eden olay HCI_PDU ları bulunur. Bu olay HCI_PDU ları komut ile ilgili sonuç ve geri dönüĢ parametrelerini taĢırlar. Birçok komut için, durumları ve uygulama sonuçları ile ilgili bilgi iki özel olay ile taĢınır: Command_Status_Event ve Command_Complete_Event. Command_Status_Event, host kontrolörü tarafından komutun durumunu (bekleme durumu, komutun anlaĢılmaması vs..) göstermek üzere bir komut alınır alınmaz gönderilir. Böylelikle komut ve komutun proses durumu ile ilgili bilgi edinilmiĢ olur. Command_Complete_Event bir komutun oluĢum sürecinin tamamlandığını belirtmek ve ilgili parametreleri (istenen komutun baĢarı ile yerine getirilip getirilmediği bilgisi dahil olmak üzere) geri döndürmek için kullanılır. Bir tek komuta cevap olarak birden fazla olay meydana getirilebilir.

Link kontrolör hareketleri, ilke (policy) ayarlama komutları, host kontrolörünün kendisi ve bunun gibi birçok konu ile ilgili komut HCI_PDU ları vardır. Komut ve olay HCI_PDU larının sayısı 100’ü geçmiĢtir.

4.9.2.1 Link Kontrol HCI_PDU ları

Bu gruptaki komutlar OGF alanındaki “b000001” değeri ile belirlenirler ve çevredeki cihazları keĢfetmek için gönderilecek sorgulamalara imkan verirler. ACL ve SCO bağlantılarını kurup sonlandırmak ve gelen bağlantı taleplerini kabul etmek veya reddetmek için komutlar vardır. Doğrulama ve Ģifreleme prosedürlerini baĢlatmak için ve sunucudan link yöneticisine doğrulama anahtarları ile PIN leri iletmek için de komutlar bulunur. Bu grupta uzak cihazın ismini, desteklediği link yönetim seçeneklerini ve kayıtlı olan saat ofset değerini sorgulamak için de bilgi komutları kullanılır.

HCI_Inquiry komut PDU su, verilen bir sorgulama eriĢim kodunu kullanarak modülün sorgulama moduna girmesini ve belirlenen bir süre boyunca veya belirlenen sayıda cevap gelene kadar bu modda kalmasını sağlar.

Bu komutla baĢlatılan sorgulama modu, Inquiry_Length alanında belirtilen zaman aĢılır veya cevap veren cihazların sayısı Num_Responses da belirtilen sayıya eriĢirse sona erer.

Sunucu kontrolörü sorgulardan elde edilen sonuçları toplayarak Inquiry_Result_Event i ile sunucuya gönderir.

HCI_Create_Connection komut PDU su modülün belirlenmiĢ bir cihazla bir ACL linki için verilen BB_PDU larını kullanarak bağlantı oluĢturmasını sağlar. Bu komut, bağlantı prosesi lokal cihazın uzak cihazı çağırması (page) gerektirdiği için; çağrı (paging) prosesini hızlandıracak bilgi de sağlar. Çağrı (paging) bilgisi lokal cihazın sunucusuna Inquiry_Result_Event PDU su ile gönderilir.

Bağlantının baĢarılı olarak kurulmasını takiben, bir Connection_Complete_Event i bağlantının her iki ucundaki sunuculara gönderilir. Olaylar bağlantıyı tanımlamak için Connection_Handles içerirler. Connection_Handles her bir sunucu kontrolör tarafından bağımsız olarak belirlenir ve kapsamları da sadece lokal cihaza bağlıdır.

4.9.2.2 Link İlke (Policy) HCI_PDU ları

Bu gruptaki komutlar OGF alanındaki “b000010” değeri ile belirlenirler. Bir cihazın güç yönetim ilkesini (policy) durağan, koklama ve park temelbant modları ile belirlemesini ve bu modlar için parametreleri tanımlamasını sağlarlar. Ayrıca, L2CAP katmanından link yöneticisine QoS parametrelerini gönderen, cihazın bağlantıdaki rolünü (yönetici ya da köle) öğrenen ve eğer gerekiyorsa rol değiĢimi için talepte bulunulmasını sağlayan komutlar da mevcuttur.

4.9.2.3 Host Kontrolör ve Temelbant HCI_PDU ları

Bu gruptaki komutlar OGF alanındaki “b000011” değeri ile belirlenirler ve sunucunun operasyonel parametreleri sağlayan çeĢitli donanım kaydedicilerine (register) ulaĢmasını ve konfigüre etmesini sağlarlar. Yerine getirilebilecek operasyonlar arasında host kontrolörünün oluĢturabileceği olay tiplerinin belirlenmesi; saklanan anahtarları okuma, yazma ve silme; cihaz adını okuyup yazma; sorgulama ve/veya çağrı tarama (page scan) fonksiyonlarını aktif/pasif hale getirme; bir link için doğrulama ve/veya Ģifreleme aktivitesi bayrağını okuma ve yazma; sorgu taramaları sırasında dinleme yapmak için kullanılan sorgulama eriĢim kodlarını okuma ve yazma; bir bağlantı için ACL paketlerini zorlama; ses kodlama-kod çözme (codec) parametrelerini okuma ve yazma bulunmaktadır.

Host kontrolör ilgili kayıtları (register) güncellemeyi bitirdikten sonra sunucuya Command_Complete_Event i gönderir.

4.9.2.4 Bilgi Parametreleri HCI_PDU ları

Bu gruptaki komutlar OGF alanındaki “b000100” değeri ile belirlenirler ve cihazlar üzerine üretim zamanında “iĢlenen” donanım ve yazılım ile ilgili statik bilgileri istemek için kullanılırlar. Modülün desteklediği çeĢitli protokollerin (LMP, HCI vs..) versiyonlarını sorgulamak; link yöneticisi tarafından desteklenen özelliklerin bir listesini almak; modülün çalıĢtığı ülkeyi öğrenmek; modülün BD_ADDR sni öğrenmek; sunucuda verimli akıĢ kontrolü sağlamak için kullanılan ACL ve SCO paketleri için host kontrolörünün ara bellek (buffer) bilgisini öğrenmek için komutlar mevcuttur. Talep edilen bilgi Command_Complete_Event içinde geri döner.

4.9.2.5 Durum Parametreleri HCI_PDU ları

Bu gruptaki komutlar OGF alanındaki “b000101” değeri ile belirlenirler ve dinamik olarak güncellenen bilgileri talep etmek için kullanılırlar. Uzak cihaz lokal iletimlere cevap vermez iken baĢarılı olunan anların sayısını ölçen sayıcı değeri için kullanılan bir komut bu gruptadır. Linkin kalitesi ve RSSI değeri de bu gruptaki HCI_PDU lar ile öğrenilir. Talep edilen bilgi Command_Complete_Event içinde geri döner.

4.9.2.6 Test amaçlı HCI_PDU ları

Bu gruptaki komutlar OGF alanındaki “b000110” değeri ile belirlenirler ve Bluetooth modülünü test etmek için kullanılırlar. Bu komutların tamamı Command_Complete_Event olayları içinde sonuçlanır. [2]