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ı, 0xC özel grup kimliği (GID) 0xF ve Android işlem kodu tanımlayıcısı (OID) kod alanını 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 paketle ilgili teknik özellikler sonraki bölümlerde açıklanmıştır.

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_ÇMY_CMD NCI_ANDROID_POWER_SAVING_CMD
NCI_MT_RSP NCI_ANDROID_POWER_SAVING_RSP
0x02 NCI_ÇMY_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 sekizlik NCI Spesifikasyonu'nun 140. tablosundaki durum kodlarına bakın.
Android_Version 2 sekizlik NFCC tarafından uygulanan Android şartlarının sürümünü tanımlar.
0x0000 Android 15
Yetenek sayısı 1 sekizlik Desteklenen özelliklerin sayısı (n)
Capabilities[0..n] (m + 2) * n sekizlik 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). 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 anket 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 ana makine 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ştirilmiş Güvenlik Unsuru (eSE), güç tasarrufu modunu etkinleştirmeden ö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 sekizlik 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 sekizlik NCI Spesifikasyonu'nun 140. tablosundaki durum kodlarına bakın.

Gözlem modu komutunu ayarlama

Gözlem modunu etkinleştirmek veya devre dışı bırakmak için ana makine NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD komutunu kullanabilir. NFCC, başarı 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ştirmesini 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ıldığında cihaz etkinleştirme işlemine hemen devam edebilmek için anket bilgilerini önbelleğe alabilir.

SE işlemlerinin devam edebilmesi için NFCC, ana makine herhangi bir nedenle (örneğin, pil bitmesi veya kullanıcı tarafından başlatılan kapatma işlemi) 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ştir

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'nin RF_FIELD_INFO_NTF tarihinden sonra NCI_ANDROID_POLLING_FRAME_NTF göndermesi gerekir.

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

NCI_ANDROID_POLLING_FRAME_NTF

Yük alanları Boyut Değer/açıklama
Anket Verileri[0..n] (m +3) * n sekizlik 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 sekizlik İşaret baytı konusuna bakın.
Uzunluk 1 sekizlik Zaman damgası ve kazanç alanları dahil olmak üzere yoklama veri raporunun uzunluğu (m).
Zaman damgası 4 sekizlik Yoklama isteklerinin alındığını milisaniye cinsinden ölçülen zaman damgası (büyük endian).
Yoğunluk 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
Çerçeve türleri
Anket çerçevesi Tür Boyut Değer/Açıklama
Uzak alan 0x00 1 bayt 0x00 Alan kapalı
0x01 Açık alan
0x02..0xFF KFU
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 sekizlik 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
CANNOT TRANSLATE b1 b2 b3 b4 b5 b6 b7
0 Kısa çerçeve KFU 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 oktet

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