Android'e özel NCI komutları

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