NFC Denetleyici Arayüzü (NCI), NFC denetleyici (NFCC). Bu sayfada Android'in özellikleri açıklanmaktadır özel NCI komutlarını kullanabilirsiniz.
NCI tanımları
Android'e özel NCI komutları, 0xF
özel grup kimliğini (GID) kullanır
ve 0xC
Android işlem kodu tanımlayıcısı (OID) kod alanı.
Ortak paket biçimi
Android NCI paketi biçimi, kontrol paketleri için NCI spesifikasyonuna uyar.
(Group_ID 0xF
ve Opcode_ID 0x0C
) kullanarak. Her Android için
özel mesaj varsa, paket yükünün ilk baytı
Android işlem kodu (0x0C
). Android denetim paketleri Message_Type
ve
Şuna benzer şekilde komutları, yanıtları ve bildirimleri tanımlamak için: PBF
standart komutlar arasındadır.
Android paketi biçimi aşağıdaki tabloda gösterilmiştir:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Message_Type
|
PBF
|
Group_ID = 0xF (PROPRIETARY)
|
|||||
gelecekte kullanım için ayrılmış (RFU) | Opcode_ID = 0x0C (ANDROID)
|
||||||
Payload_Length
|
|||||||
Android_Opcode_ID
|
|||||||
Android_Payload
|
|||||||
Atanan Android işlem kodu tanımlayıcıları aşağıdaki tabloda listelenmiştir. İlgili içeriği oluşturmak için kullanılan hakkında daha fazla bilgi bulabilirsiniz.
Android OID | Mesaj türü | Mesaj adı |
---|---|---|
0x00 | NCI_ÇMY_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_ÇMY_CMD | NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD |
NCI_MT_RSP | NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP |
Özellikler alma komutu
Ana makine, listeyi sorgulamak için NCI_ANDROID_GET_CAPS_CMD
öğesini kullanır
NFCC tarafından desteklenen Android'e özel özelliklerin İlgili içeriği oluşturmak için kullanılan
NCI_ANDROID_GET_CAPS_CMD
komutu herhangi bir parametre almaz.
NFCC, durumu içeren NCI_ANDROID_GET_CAPS_RSP
yanıtıyla yanıt vermelidir
STATUS_OK
ve desteklenen özellikler ile özelliklerin listesi.
NFCC NCI_ANDROID_GET_CAPS_CMD
desteklemiyorsa ana makine şunları varsaymalıdır:
her birinin varsayılan olarak belirtilen değeri aldığını gösterir. Belirtilmiş
yanıtta NFCC tarafından döndürülmediğinde ana makine,
özellikte varsayılan olarak belirtilen değer vardır.
NCI_ANDROID_GET_CAPS_CMD
Yük alanları | Boyut | Değer/açıklama | |||||
---|---|---|---|---|---|---|---|
Yok | 0 oktet |
NCI_ANDROID_GET_CAPS_RSP
Yük alanları | Boyut | Değer/açıklama | |||||
---|---|---|---|---|---|---|---|
Durum | 1 sekizlik | NCI Spesifikasyonu'nun 140. tablosunda durum kodlarını görebilirsiniz. | |||||
Android_Version
|
2 oktet | NFCC tarafından uygulanan Android gereksinimlerinin sürümünü tanımlar. | |||||
0x0.000 | Android 15 | ||||||
Özellik sayısı | 1 sekizlik | Desteklenen özelliklerin sayısı (n) | |||||
Özellikler[0..n] | (m + 2) * n sekizlik | Desteklenen özellikler | |||||
Tür | 1 sekizlik | Özelliğin tanımlayıcısı | |||||
Len | 1 sekizlik | Değerin uzunluğu (m) | |||||
Değer | m sekizlik | Yeteneğin değeri |
Android'e özel özellikler
Özellik adı | Kimlik | Boyut | Değer/açıklama | |||||
---|---|---|---|---|---|---|---|---|
Gözlem modu | 0x00 | 1 sekizlik | Gözlem modu desteği.
0x00 (varsayılan) - Bu özellik desteklenmez. 0x01 - Ana makineden RF devre dışı bırakma özelliğini destekler (için gereklidir: Android 15 veya sonraki sürümler). Diğer tüm değerler RFU'dur. |
|||||
Anket çerçevesi bildirimi | 0x01 | 1 sekizlik | Oylama ç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 sekizlik | Güç Tasarrufu Modu desteği. Destekleniyorsa 0x01, desteklenmiyorsa 0x00 (varsayılan). Diğer tüm değerler RFU'dur. | |||||
Otomatik transkript yoklama döngüsü filtresi | 0x03 | 1 sekizlik | Gözlem modu genel olarak etkinleştirildiğinde belirli kalıplar için gözlem modunu atlamak amacıyla donanım yazılımında yoklama döngüsü filtreleri desteği.
0x00 (varsayılan) - Bu özellik desteklenmez 0x01 - Yoklama döngüsü filtrelerini destekler Diğer tüm değerler RFU'dur |
|||||
0x04..0xFF | 0 oktet | Gelecekte kullanım için ayrıldı |
Güç tasarrufu komutu
NFCC'yi güç tasarrufu moduna geçirmek için barındırıcı,
NCI_ANDROID_POWER_SAVING_CMD
komutudur. NFCC,
Durum kodu içeren NCI_ANDROID_POWER_SAVING_RSP
gösteren bir özettir.
Güç Tasarrufu Modu'ndayken ana makine, NFCC'ye herhangi bir komut göndermemeli ve NFCC, ana makineye herhangi bir bildirim veya yanıt göndermemelidir. NFCC veya yerleşik Güvenlik Unsuru (eSE) gelen ödeme isteklerini otomatik olarak kabul edebilir , güç tasarrufu özelliğini etkinleştirmeden önce ayarlanan yönlendirme yapılandırmasına göre yatırım yapmanız önemlidir.
Tam güç moduna dönmek için ana makine, 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ırak |
0x01 | Güç Tasarrufu Modu'nu etkinleştir |
NCI_ANDROID_POWER_SAVING_RSP
Yük alanları | Boyut | Değer/açıklama | |||||
---|---|---|---|---|---|---|---|
Durum | 1 sekizlik | NCI Spesifikasyonu'nun 140. tablosunda bulunan durum kodlarını inceleyin. |
Gözlem modu komutunu ayarla
Gözlem modunu etkinleştirmek veya devre dışı bırakmak için ana makine,
NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD
komutudur. NFCC,
NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP
ve başarılı olduğunuzu belirten bir durum kodu ile
başarısız olur.
Gözlem modu devre dışı bırakıldığında NFCC, uyarınca standart dinleme modu etkinliğidir. Etkinlik Teknik Spesifikasyonu.
Gözlem modu etkinken NFCC hiçbir ankete yanıt vermemelidir
tarafından açıkça izin verilene kadar, dinleme modunda yoklama döngüsü sırasında
bu bilgilerden faydalanabilirsiniz. NFCC, RF_FIELD_INFO_NTF
bildirimini (
Bölüm 5.3
NCI spesifikasyonu)
devre dışı bırakabilir. Anket modu keşfi etkinse NFCC
Etkinlik Teknik Spesifikasyonu.
NFCC, cihazla hemen devam edebilmek için anket bilgilerini önbelleğe alabilir
devre dışı bırakıldığında etkinleştirme işlemi yapılır.
NFCC, ana makine herhangi bir nedenle kapanırsa gözlem modunu kapatmalıdır (örneğin, pil bitmesi veya kullanıcı tarafından başlatılan kapatma işlemi) dolayısıyla SE'nin devam edebilir.
NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD
Yük alanları | Boyut | Değer/açıklama | |
---|---|---|---|
gözlem modu | 1 sekizlik | 0x00 | Gözlem modunu devre dışı bırak (varsayılan) |
0x01 | Gözlem modunu etkinleştir |
NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP
Yük alanları | Boyut | Değer/açıklama | |||||
---|---|---|---|---|---|---|---|
Durum | 1 sekizlik | NCI Spesifikasyonu'nun 140. tablosunda durum kodlarını görebilirsiniz. |
Anket döngüsü bildirimi
NFCC, NCI_ANDROID_POLLING_FRAME_NTF
bildirimini ana makineye göndermelidir
her yoklama döngüsü çerçevesinden sonra gelir. Hem RF_FIELD_INFO_NTF
hem de
NCI_ANDROID_POLLING_FRAME_NTF
bildirim oluşturuldu, NFCC'nin göndermesi gerekiyor
RF_FIELD_INFO_NTF
tarihinden sonra NCI_ANDROID_POLLING_FRAME_NTF
.
NCI_ANDROID_POLLING_FRAME_NTF
bildirimi,
etkin olup olmadığını kontrol edin. Gözlem modu etkinken
NFCC'den önce her zaman NCI_ANDROID_POLLING_FRAME_NTF
bildirimi göndermelidir
işleme devam etmek istiyorum.
NCI_ANDROID_POLLING_FRAME_NTF
Yük alanları | Boyut | Değer/açıklama | |||||
---|---|---|---|---|---|---|---|
Anket Verileri[0..n] | (m +3) * n sekizlik | Sondan bu yana alınan yoklama isteklerinin listesi bildirimi görürsünüz. Her sonuç, alınan iletinin türünü (teknoloji) ve talepteki kimliği tanımlayabilecek verileri teknolojiye bağlı olarak sunar. | |||||
Tür | 1 sekizlik | Çerçeve türlerini inceleyin. | |||||
Bayraklar | 1 sekizlik | flag byte sayfasına göz atın. | |||||
Uzunluk | 1 sekizlik | Zaman damgası ve kazanç alanları dahil olmak üzere yoklama veri raporunun uzunluğu (m). | |||||
Zaman damgası | 4 oktet | Yoklama isteklerinin alındığını milisaniye cinsinden ölçülen zaman damgası (büyük endian). | |||||
Yoğunluk | 1 sekizlik | Oy verme isteğinin gücü.
0xFF, değerin kullanılamadığını gösterir. |
|||||
Veri | m - 5 sekizlik | Yoklama isteğinde bulunan tanımlayıcı verileri döndürür |
Çerçeve türleri
Oylama çerçevesi | Tür | Boyut | Değer/Açıklama | |
---|---|---|---|---|
Uzak alan | 0x00 | 1 sekizlik | 0x00 | Alan kapalı |
0x01 | Açık alan | |||
0x02..0xFF | KFU | |||
NFC-A | 0x01 | n sekizlik | Değer bir ISO 14443-3 komutu içermelidir (örneğin, REQ veya WUP) | |
NFC B | 0x02 | n sekizlik | Değer, bir AIF baytı ve bir ISO 14443-3 komutu içermelidir (örneğin, REQ veya WUP) | |
NFC-F | 0x03 | n sekizlik | Değer bir ISO 14443-3 komutu içermelidir (örneğin, REQ veya WUP) | |
NFC-V | 0x04 | n sekizlik | Değer bir ISO 14443-3 komutu içermelidir (örneğin, REQ veya WUP) | |
Bilinmiyor | 0x07 | n sekizlik | Ham kare verileri |
Bayrak tanımı
Bayraklar | ||||||||
---|---|---|---|---|---|---|---|---|
CANNOT TRANSLATE | b1 | B2 | b3 | B4 | B5 | B6 | B7 | |
0 | Kısa çerçeve | KFU | KFU | KFU | KFU | KFU | KFU | KFU |
1 | Uzun çerçeve |
Sorgu gözlem modu durum komutu
Pasif sipariş modunun mevcut durumunu almak için barındırıcı, pasif sipariş modunun
NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD
komutunu kullanın. NFCC,
NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP
yazarak durumla yanıt ver
belirten bir kod içerir.
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 sekizlik | NCI Spesifikasyonu'nun 140. tablosunda bulunan durum kodlarını inceleyin. | |
gözlem modu | 1 sekizlik | 0x00 | Gözlem modu devre dışı |
0x01 | Gözlem modu etkin |