Perintah NCI eksklusif Android

Antarmuka Pengontrol NFC (NCI) digunakan untuk berinteraksi dengan pengontrol NFC (NFCC). Halaman ini menjelaskan spesifikasi perintah NCI eksklusif Android.

Definisi NCI

Perintah NCI eksklusif Android menggunakan ID grup (GID) eksklusif 0xF dan ruang kode ID opcode (OID) Android 0xC.

Format paket umum

Format paket NCI Android mengikuti spesifikasi NCI untuk paket kontrol menggunakan Group_ID 0xF dan Opcode_ID 0x0C eksklusif. Untuk setiap pesan eksklusif Android, byte pertama payload paket harus ditetapkan ke opcode Android (0x0C). Paket kontrol Android menggunakan Message_Type dan PBF untuk mengidentifikasi perintah, respons, dan notifikasi yang serupa dengan perintah standar.

Format paket Android ditampilkan dalam tabel berikut:

0 1 2 3 4 5 6 7
Message_Type PBF Group_ID = 0xF (PROPRIETARY)
dicadangkan untuk penggunaan di masa mendatang (RFU) Opcode_ID = 0x0C (ANDROID)
Payload_Length
Android_Opcode_ID
Android_Payload

ID opcode Android yang ditetapkan tercantum dalam tabel berikut. Spesifikasi untuk setiap paket akan dijelaskan di bagian berikutnya.

OID Android Jenis pesan Nama pesan
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

Mendapatkan perintah kemampuan

Host menggunakan NCI_ANDROID_GET_CAPS_CMD untuk membuat kueri daftar fitur eksklusif Android yang didukung oleh NFCC. Perintah NCI_ANDROID_GET_CAPS_CMD tidak menggunakan parameter apa pun.

NFCC harus merespons menggunakan respons NCI_ANDROID_GET_CAPS_RSP dengan status STATUS_OK serta daftar kemampuan dan fitur yang didukung.

Jika NFCC tidak mendukung NCI_ANDROID_GET_CAPS_CMD, host harus mengasumsikan bahwa setiap kemampuan menggunakan nilai default yang ditentukan. Jika kemampuan yang ditentukan tidak ditampilkan oleh NFCC dalam respons, host harus berasumsi bahwa kemampuan tersebut memiliki nilai default yang ditentukan.

NCI_ANDROID_GET_CAPS_CMD

Kolom Payload Ukuran Nilai/deskripsi
T/A 0 octet

NCI_ANDROID_GET_CAPS_RSP

Kolom payload Ukuran Nilai/deskripsi
Status 1 octet Lihat kode status di tabel 140 Spesifikasi NCI.
Android_Version 2 octet Mengidentifikasi versi persyaratan Android yang diimplementasikan oleh NFCC.
0x0000 Android 15
Jumlah kemampuan 1 octet Jumlah (n) kemampuan yang didukung
Capabilities[0..n] (m + 2) * n octet Kemampuan yang didukung
Jenis 1 octet ID kemampuan
Len 1 octet Panjang (m) nilai
Nilai m octet Nilai kemampuan
Kemampuan eksklusif Android
Nama kemampuan ID Ukuran Nilai/deskripsi
Mode amati 0x00 1 octet Dukungan untuk mode pengamatan.
0x00 (default) - Tidak mendukung fitur ini.
0x01 - Mendukung fitur dengan penonaktifan RF dari host (diperlukan untuk Android 15 atau yang lebih tinggi).
Semua nilai lainnya adalah RFU.
Notifikasi frame polling 0x01 1 oktet Dukungan untuk notifikasi frame polling. 0x01 jika didukung, 0x00 (default) jika tidak didukung. Semua nilai lainnya adalah RFU.
Mode hemat baterai 0x02 1 octet Dukungan untuk mode hemat daya. 0x01 jika didukung, 0x00 (default) jika tidak didukung. Semua nilai lainnya adalah RFU.
Filter loop polling Auotransact 0x03 1 oktet Dukungan untuk filter loop polling di firmware guna mengabaikan mode pengamatan untuk pola tertentu saat mode pengamatan diaktifkan secara global.
0x00 (default) - Tidak mendukung fitur ini
0x01 - Mendukung filter loop polling
Semua nilai lainnya adalah RFU
0x04..0xFF 0 octet Disimpan untuk penggunaan di masa mendatang

Perintah hemat daya

Untuk mengalihkan NFCC ke mode hemat daya, host dapat menggunakan perintah NCI_ANDROID_POWER_SAVING_CMD. NFCC harus merespons dengan NCI_ANDROID_POWER_SAVING_RSP dengan kode status yang menunjukkan keberhasilan atau kegagalan.

Saat dalam mode hemat daya, host tidak boleh mengirim perintah apa pun ke NFCC dan NFCC tidak boleh mengirim notifikasi atau respons apa pun ke host. NFCC atau Elemen Pengaman Tersemat (eSE) dapat otomatis menerima permintaan pembayaran masuk sesuai dengan konfigurasi pemilihan rute yang ditetapkan sebelum mengaktifkan mode penghematan daya.

Untuk kembali ke mode daya penuh, host dapat mereset atau menginisialisasi ulang NFCC.

NCI_ANDROID_POWER_SAVING_CMD

Kolom Payload Ukuran Nilai/deskripsi
Mode hemat baterai 1 octet 0x00 Nonaktifkan mode hemat daya
0x01 Mengaktifkan mode hemat daya

NCI_ANDROID_POWER_SAVING_RSP

Kolom Payload Ukuran Nilai/deskripsi
Status 1 octet Lihat kode status di tabel 140 Spesifikasi NCI,

Menetapkan perintah mode pengamatan

Untuk mengaktifkan atau menonaktifkan mode pengamatan, host dapat menggunakan perintah NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD. NFCC harus merespons dengan NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP dengan kode status yang menunjukkan keberhasilan atau kegagalan.

Jika mode pengamatan dinonaktifkan, NFCC harus menerapkan aktivitas mode pemrosesan standar sesuai dengan Spesifikasi Teknis Aktivitas.

Saat mode pengamatan aktif, NFCC tidak boleh merespons permintaan polling selama loop polling dalam mode pemrosesan, hingga diberi otorisasi secara eksplisit oleh host. NFCC harus mengirim notifikasi RF_FIELD_INFO_NTF (seperti yang ditentukan oleh bagian 5.3 dari spesifikasi NCI) saat mendeteksi aktivasi kolom. Jika penemuan mode polling aktif, NFCC harus menerapkan aktivitas mode polling sesuai dengan Spesifikasi Teknis Aktivitas. NFCC dapat meng-cache informasi polling sehingga dapat segera melanjutkan aktivasi perangkat segera setelah mode pengamatan dinonaktifkan.

NFCC harus menonaktifkan mode pengamatan jika host dimatikan karena alasan apa pun (misalnya, kehabisan baterai atau penonaktifan yang dimulai pengguna) agar transaksi SE dapat dilanjutkan.

NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD

Kolom payload Ukuran Nilai/deskripsi
mode amati 1 octet 0x00 Menonaktifkan mode pengamatan (default)
0x01 Mengaktifkan mode pengamatan

NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP

Kolom payload Ukuran Nilai/deskripsi
Status 1 oktet Lihat kode status di tabel 140 Spesifikasi NCI.

Notifikasi loop polling

NFCC harus mengirimkan notifikasi NCI_ANDROID_POLLING_FRAME_NTF ke host setelah setiap frame loop polling. Saat notifikasi RF_FIELD_INFO_NTF dan NCI_ANDROID_POLLING_FRAME_NTF dibuat, NFCC harus mengirim NCI_ANDROID_POLLING_FRAME_NTF setelah RF_FIELD_INFO_NTF.

Notifikasi NCI_ANDROID_POLLING_FRAME_NTF tidak bergantung pada apakah mode pengamatan aktif atau tidak. Saat mode pengamatan aktif, NFCC harus selalu mengirim notifikasi NCI_ANDROID_POLLING_FRAME_NTF sebelum melanjutkan transaksi.

NCI_ANDROID_POLLING_FRAME_NTF

Kolom payload Ukuran Nilai/deskripsi
Data Polling[0..n] (m +3) * n octet Daftar permintaan polling yang diterima sejak notifikasi terakhir. Setiap hasil memberikan jenis (teknologi) permintaan yang diterima dan data yang dapat diidentifikasi dari permintaan, bergantung pada teknologi.
Jenis 1 octet Lihat jenis frame.
Tanda 1 oktet Lihat byte flag.
Panjang 1 octet Panjang (m) laporan data polling termasuk kolom stempel waktu dan gain.
Stempel waktu 4 octet Stempel waktu yang diukur dalam milidetik sejak penerimaan permintaan polling, big endian.
Penguatan 1 octet Kekuatan permintaan polling.
0xFF menunjukkan bahwa nilai tidak tersedia.
Data m - 5 oktet Menampilkan data yang dapat diidentifikasi yang ada dalam permintaan polling
Jenis bingkai
Frame polling Jenis Ukuran Nilai/Deskripsi
Kolom jarak jauh 0x00 1 octet 0x00 Kolom nonaktif
0x01 Kolom aktif
0x02..0xFF RFU
NFC-A 0x01 n octet Nilai harus menyertakan perintah ISO 14443-3 (misalnya, REQ atau WUP)
NFC-B 0x02 n oktet Nilai harus menyertakan byte AIF dan perintah ISO 14443-3 (misalnya, REQ atau WUP)
NFC-F 0x03 n octet Nilai harus menyertakan perintah ISO 14443-3 (misalnya, REQ atau WUP)
NFC-V 0x04 n octet Nilai harus menyertakan perintah ISO 14443-3 (misalnya, REQ atau WUP)
Tidak diketahui 0x07 n oktet Data frame mentah
Definisi byte flag
Tanda
b0 b1 b2 b3 b4 b5 b6 b7
0 Frame pendek RFU UU UU UU UU UU RFU
1 Frame panjang

Kueri perintah status mode pengamatan

Untuk mengambil status mode urutan pasif saat ini, host dapat menggunakan perintah NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD. NFCC harus merespons dengan NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP dengan kode status yang menunjukkan keberhasilan kegagalan.

NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD

Kolom Payload Ukuran Nilai/deskripsi
T/A 0 oktet

NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP

Kolom payload Ukuran Nilai/deskripsi
Status 1 octet Lihat kode status di tabel 140 Spesifikasi NCI,
mode amati 1 octet 0x00 Mode amati dinonaktifkan
0x01 Mode pengamatan diaktifkan