Android'e özel NCI komutları

NFC denetleyici arayüzü (NCI), NFC denetleyiciyle (NFCC) etkileşim kurmak için kullanılır. Bu sayfada, Android'e özel NCI komutlarının özellikleri açıklanmaktadır.

NCI tanımları

Android'e özel NCI komutları, özel grup kimliğini (GID) 0xF ve Android kod komutu tanımlayıcısını (OID) 0xC kullanır.

Ortak paket biçimi

Android NCI paket biçimi, özel Group_ID 0xFve Opcode_ID 0x0C kullanarak kontrol paketleri için NCI spesifikasyonuna uyar. Her Android özel mesajı için paket yükünün ilk baytı Android kod komutuna (0x0C) ayarlanmalıdır. Android kontrol paketleri, standart komutlara benzer şekilde komutları, yanıtları ve bildirimleri tanımlamak için Message_Type ve PBF kullanır.

Android paket biçimi aşağıdaki tabloda gösterilmektedir:

0 1 2 3 4 5 6 7
Message_Type PBF Group_ID = 0xF (PROPRIETARY)
gelecekte kullanılmak üzere ayrılmıştır (RFU) Opcode_ID = 0x0C (ANDROID)
Payload_Length
Android_Opcode_ID
Android_Payload

Atanmış Android kod komutu tanımlayıcıları aşağıdaki tabloda listelenmiştir. Her paketin spesifikasyonu sonraki bölümlerde verilmiştir.

Android OID Mesaj türü Mesaj adı
0x00 NCI_MT_CMD NCI_ANDROID_GET_CAPS_CMD
NCI_MT_RSP NCI_ANDROID_GET_CAPS_RSP
0x01 NCI_MT_CMD NCI_ANDROID_POWER_SAVING_CMD
NCI_MT_RSP NCI_ANDROID_POWER_SAVING_RSP
0x02 NCI_MT_CMD NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD
NCI_MT_RSP NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP
0x03 NCI_MT_NTF NCI_ANDROID_POLLING_FRAME_NTF
0x04 NCI_MT_CMD NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD
NCI_MT_RSP NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP

Get capabilities komutu

Barındırıcı, NFCC tarafından desteklenen Android özel özelliklerinin listesini sorgulamak için NCI_ANDROID_GET_CAPS_CMD'ü kullanır. NCI_ANDROID_GET_CAPS_CMD komutu parametre almaz.

NFCC, STATUS_OK durumuna sahip NCI_ANDROID_GET_CAPS_RSP yanıtını ve desteklenen özelliklerin listesini göndermelidir.

NFCC, NCI_ANDROID_GET_CAPS_CMD özelliğini desteklemiyorsa ana makine, özelliklerin her birinin varsayılan olarak belirtilen değeri aldığını varsaymalıdır. NFCC, yanıtta belirtilen bir özelliği döndürmezse ana makine, özelliğin varsayılan olarak belirtilen değere sahip olduğunu varsaymalıdır.

NCI_ANDROID_GET_CAPS_CMD

Yük alanları Boyut Değer/açıklama
Yok 0 bayt

NCI_ANDROID_GET_CAPS_RSP

Yük alanları Boyut Değer/açıklama
Durum 1 bayt NCI Spesifikasyonu'nun 140. tablosundaki durum kodlarına bakın.
Android_Version 2 bayt NFCC tarafından uygulanan Android şartlarının sürümünü tanımlar.
0x0000 Android 15
Yetenek sayısı 1 bayt Desteklenen özelliklerin sayısı (n)
Capabilities[0..n] (m + 2) * n bayt Desteklenen özellikler
Tür 1 sekizlik Yeteneğin tanımlayıcısıdır.
Len 1 bayt Değerin uzunluğu (m)
Değer m bayt Özelliğin değeri
Android'e özel özellikler
Kapasite adı Kimlik Boyut Değer/açıklama
Gözlemleme modu 0x00 1 bayt Gözlem modu desteği.
0x00 (varsayılan) - Bu özellik desteklenmez.
0x01: Ana makineden RF devre dışı bırakma özelliğini destekler (Android 15 veya sonraki sürümler için gereklidir).
Diğer tüm değerler RFU'dur.
Anket çerçevesi bildirimi 0x01 1 bayt Anket çerçevesi bildirimleri için destek. Destekleniyorsa 0x01, desteklenmiyorsa 0x00 (varsayılan) değerini alır. Diğer tüm değerler RFU'dur.
Güç tasarrufu modu 0x02 1 bayt Güç tasarrufu modu desteği. Destekleniyorsa 0x01, desteklenmiyorsa 0x00 (varsayılan) değerini alır. Diğer tüm değerler RFU'dur.
Otomatik işleme anket döngüsü filtresi 0x03 1 bayt Gözlem modu global olarak etkinleştirildiğinde belirli kalıplar için gözlem modunu atlamak üzere donanım yazılımında sorgu döngüsü filtreleri desteği.
0x00 (varsayılan) - Bu özelliği desteklemez
0x01 - Anket döngüsü filtrelerini destekler
Diğer tüm değerler RFU'dur
0x04..0xFF 0 bayt Gelecekte kullanılmak üzere ayrılmıştır

Güç tasarrufu komutu

NFCC'yi güç tasarrufu moduna geçirmek için ev sahibi NCI_ANDROID_POWER_SAVING_CMD komutunu kullanabilir. NFCC, başarıyı veya başarısızlığı belirten bir durum koduyla NCI_ANDROID_POWER_SAVING_RSP ile yanıt vermelidir.

Güç tasarrufu modundayken ana cihaz NFCC'ye herhangi bir komut göndermemelidir ve NFCC ana cihaza herhangi bir bildirim veya yanıt göndermemelidir. NFCC veya yerleşik güvenli öğe (eSE), güç tasarrufu modu etkinleştirilmeden önce ayarlanan yönlendirme yapılandırmasına göre gelen ödeme isteklerini otomatik olarak kabul edebilir.

Ana makine, tam güç moduna dönmek için NFCC'yi sıfırlayabilir veya yeniden başlatabilir.

NCI_ANDROID_POWER_SAVING_CMD

Yük alanları Boyut Değer/açıklama
Güç tasarrufu modu 1 bayt 0x00 Güç tasarrufu modunu devre dışı bırakma
0x01 Güç tasarrufu modunu etkinleştirme

NCI_ANDROID_POWER_SAVING_RSP

Yük alanları Boyut Değer/açıklama
Durum 1 bayt NCI Spesifikasyonu'nun 140. tablosundaki durum kodlarına bakın.

Gözlem modu komutunu ayarlama

Düzenleyen, gözlem modunu etkinleştirmek veya devre dışı bırakmak için NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD komutunu kullanabilir. NFCC, başarıyı veya başarısızlığı belirten bir durum koduyla NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP ile yanıt vermelidir.

Gözlemleme modu devre dışı bırakıldığında NFCC, Etkinlik Teknik Şartnamesi'ne göre standart dinleme modu etkinliğini uygulamalıdır.

Gözlem modu etkinken NFCC, ana makine tarafından açıkça yetki verilmediği sürece dinleme modundaki anket döngüsü sırasında herhangi bir anket isteğine yanıt vermemelidir. NFCC, alan etkinleşmesini algıladığında RF_FIELD_INFO_NTF bildirimini (NCI spesifikasyonunun 5.3 numaralı bölümünde tanımlandığı şekilde) göndermelidir. Anket modu keşfi etkinse NFCC, anket modu etkinliğini Etkinlik Teknik Şartnamesi'ne göre uygulamalıdır. NFCC, gözlem modu devre dışı bırakılır bırakılmaz cihaz etkinleştirme işlemine hemen devam etmek için anket bilgilerini önbelleğe alabilir.

NFCC, SE işlemlerinin devam edebilmesi için ana makine herhangi bir nedenle (ör. pil bittiyse veya kullanıcı tarafından başlatılan kapatma) kapanırsa gözlem modunu kapatmalıdır.

NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD

Yük alanları Boyut Değer/açıklama
gözlem modu 1 bayt 0x00 İzleme modunu devre dışı bırakma (varsayılan)
0x01 Gözlem modunu etkinleştirme

NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP

Yük alanları Boyut Değer/açıklama
Durum 1 bayt NCI Spesifikasyonu'nun 140. tablosundaki durum kodlarına bakın.

Anket döngüsü bildirimi

NFCC, her anket döngüsü çerçevesinden sonra NCI_ANDROID_POLLING_FRAME_NTF bildirimini ana makineye göndermelidir. Hem RF_FIELD_INFO_NTF hem de NCI_ANDROID_POLLING_FRAME_NTF bildirimleri oluşturulduğunda NFCC, RF_FIELD_INFO_NTF'ten sonra NCI_ANDROID_POLLING_FRAME_NTF göndermelidir.

NCI_ANDROID_POLLING_FRAME_NTF bildirimi, gözlem modunun etkin olup olmadığından bağımsızdır. Gözlem modu etkinken NFCC, işleme devam etmeden önce her zaman bir NCI_ANDROID_POLLING_FRAME_NTF bildirimi göndermelidir.

NCI_ANDROID_POLLING_FRAME_NTF

Yük alanları Boyut Değer/açıklama
Anket Verileri[0..n] (m +3) * n bayt Son bildirimden bu yana alınan anket isteklerinin listesi. Her sonuçta, alınan isteklerin türü (teknoloji) ve teknolojiye bağlı olarak istekteki kimliği tanımlayabilecek veriler gösterilir.
Tür 1 bayt Kare türlerini inceleyin.
Bayraklar 1 bayt İşaret baytı konusuna bakın.
Uzunluk 1 bayt Zaman damgası ve kazanç alanları dahil anket verileri raporunun uzunluğu (m).
Zaman damgası 4 sekizlik Anket isteklerinin alındığı andan itibaren milisaniye cinsinden ölçülen zaman damgası (büyük endian).
Kazanç 1 bayt Anket isteği gücü.
0xFF, değerin kullanılamadığını gösterir.
Veri m: 5 bayt Anket isteğinde bulunan kimliği tanımlayabilecek verileri döndürür
Kare türleri
Anket çerçevesi Tür Boyut Değer/Açıklama
Uzak alan 0x00 1 sekizlik 0x00 Alan kapalı
0x01 Alan açık
0x02..0xFF RFU
NFC-A 0x01 n bayt Değer, bir ISO 14443-3 komutu (ör. REQ veya WUP) içermelidir.
NFC-B 0x02 n bayt Değer, bir AIF baytı ve ISO 14443-3 komutu (ör. REQ veya WUP) içermelidir.
NFC-F 0x03 n bayt Değer, bir ISO 14443-3 komutu (ör. REQ veya WUP) içermelidir.
NFC-V 0x04 n bayt Değer, bir ISO 14443-3 komutu (ör. REQ veya WUP) içermelidir.
Bilinmiyor 0x07 n bayt Ham çerçeve verileri
İşaret baytı tanımı
Bayraklar
b0 b1 b2 b3 b4 b5 b6 b7
0 Kısa kare RFU RFU RFU RFU RFU RFU RFU
1 Uzun çerçeve

Gözlem modu durum sorgusu komutu

Barındırıcı, pasif sipariş modunun mevcut durumunu almak için NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD komutunu kullanabilir. NFCC, başarı veya başarısızlığı belirten bir durum koduyla NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP ile yanıt vermelidir.

NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD

Yük alanları Boyut Değer/açıklama
Yok 0 bayt

NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP

Yük alanları Boyut Değer/açıklama
Durum 1 bayt NCI Spesifikasyonu'nun 140. tablosundaki durum kodlarına bakın.
gözlem modu 1 bayt 0x00 Gözlem modu devre dışı bırakıldı
0x01 Gözlem modu etkin