تُستخدَم واجهة وحدة تحكّم NFC (NCI) للتفاعل مع وحدة تحكّم NFC (NFCC). توضّح هذه الصفحة مواصفات أوامر NCI الخاصة بنظام التشغيل Android.
تعريفات NCI
تستخدم أوامر NCI الخاصة بنظام التشغيل Android معرّف المجموعة الخاصة (GID) 0xF
ومساحة رمز معرّف الأوامر البرمجية (OID) لنظام التشغيل Android 0xC
.
تنسيق الحزمة الشائع
يتّبع تنسيق حِزم NCI في Android مواصفات NCI لحِزم التحكّم
باستخدام Group_ID 0xF
وOpcode_ID 0x0C
المملوكة. في كل رسالة خاصة
بنظام Android، يجب ضبط البايت الأول من الحمولة في الحزمة على رمز التشغيل
لنظام Android (0x0C
). تستخدم حِزم التحكّم في Android Message_Type
و
PBF
لتحديد الأوامر والردود والإشعارات على غرار
الأوامر العادية.
يظهر تنسيق حِزم Android في الجدول التالي:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Message_Type
|
PBF
|
Group_ID = 0xF (PROPRIETARY)
|
|||||
محجوزة للاستخدام في المستقبل (RFU) | Opcode_ID = 0x0C (ANDROID)
|
||||||
Payload_Length
|
|||||||
Android_Opcode_ID
|
|||||||
Android_Payload
|
|||||||
يتم عرض معرّفات رموز التشغيل المخصصة لنظام التشغيل Android في الجدول التالي. يمكنك الاطّلاع على مواصفات كل حزمة في الأقسام التالية.
معرّف OID لنظام التشغيل Android | نوع الرسالة | اسم الرسالة |
---|---|---|
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
|
0×04 | NCI_MT_CMD | NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD |
NCI_MT_RSP | NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP |
الأمر Get capabilities
يستخدم المضيف NCI_ANDROID_GET_CAPS_CMD
لطلب البحث في قائمة
ميزات Android المملوكة التي تتوافق مع NFCC. ولا يستخدم الأمر NCI_ANDROID_GET_CAPS_CMD
أي معلَمات.
يجب أن يردّ مركز NFCC برسالة NCI_ANDROID_GET_CAPS_RSP
مع حالة
STATUS_OK
وقائمة بالإمكانات والميزات المتوافقة.
إذا لم يكن معرّف الشبكة اللاسلكية (NFCC) متوافقًا مع NCI_ANDROID_GET_CAPS_CMD
، يجب أن يفترض المضيف
أنّ كل ميزة تأخذ القيمة التلقائية المحدّدة. إذا لم يعرض الاتصال القصير المدى (NFCC) إحدى الإمكانات المحددة في الاستجابة، يجب أن يفترض المضيف أنّ القدرة على القيمة محددة تلقائيًا.
NCI_ANDROID_GET_CAPS_CMD
حقول الحمولة | الحجم | القيمة/الوصف | |||||
---|---|---|---|---|---|---|---|
لا ينطبق | 0 ثُمانيات |
NCI_ANDROID_GET_CAPS_RSP
حقول الحمولة | الحجم | القيمة/الوصف | |||||
---|---|---|---|---|---|---|---|
الحالة | 1 وحدة ثمانيّة البت | اطّلِع على رموز الحالة في الجدول 140 من مواصفات NCI. | |||||
Android_Version
|
وحدتان ثمانيتَان | لتحديد إصدار متطلبات Android التي ينفّذها اتحاد NFCC | |||||
0x0000 | Android 15 | ||||||
عدد الإمكانات | 1 وحدة ثمانيّة البت | عدد الإمكانات المتوافقة | |||||
Capabilities[0..n] | (م + 2) * n ثماني بتات | الإمكانات المتاحة | |||||
النوع | 1 وحدة ثمانيّة البت | معرّف الميزة | |||||
لين | 1 وحدة ثمانيّة البت | طول القيمة (م) | |||||
القيمة | م ثُماني بتات | قيمة القدرة |
إمكانات Android الحصرية
اسم الإمكانية | رقم التعريف | الحجم | القيمة/الوصف | |||||
---|---|---|---|---|---|---|---|---|
وضع المراقبة | 0×00 | 1 وحدة ثمانيّة البت | إتاحة وضع "الملاحظة"
0x00 (الإعداد التلقائي) - لا تتوفّر هذه الميزة. 0x01 - يتيح استخدام الميزة مع إيقاف التردد اللاسلكي من المضيف (مطلوب لنظام التشغيل Android 15 أو إصدار أحدث). جميع القيم الأخرى هي RFU |
|||||
إشعار إطار الاستطلاع | 0x01 | 1 وحدة ثمانيّة البت | إتاحة إشعارات إطار الاستطلاع 0x01 إذا كان متاحًا، و0x00 (الإعداد التلقائي) إذا لم يكن متاحًا. وجميع القيم الأخرى غير قابلة للاستخدام. | |||||
وضع توفير الطاقة | 0x02 | 1 وحدة ثمانيّة البت | إتاحة وضع توفير الطاقة 0x01 إذا كان متاحًا، أو 0x00 (القيمة التلقائية) إذا لم يكن متاحًا وجميع القيم الأخرى غير قابلة للاستخدام. | |||||
فلتر حلقة الاستطلاع بشأن Auotransact | 0x03 | ثماني بتات واحد | إتاحة فلاتر حلقة الاستطلاع في البرامج الثابتة لتجاوز وضع المراقبة لأنماط معيّنة عند تفعيل وضع المراقبة على مستوى النظام
0x00 (التلقائية) - لا تتيح هذه القيمة استخدام هذه الميزة 0x01 - تتيح استخدام فلاتر حلقة الاستطلاع جميع القيم الأخرى غير قابلة للاستخدام |
|||||
0x04..0xFF | 0 وحدة ثمانيّة | محجوزة للاستخدام في المستقبل |
أمر توفير الطاقة
لنقل وحدة التحكّم في شبكة NFC إلى وضع توفير الطاقة، يمكن للمضيف استخدام الأمر
NCI_ANDROID_POWER_SAVING_CMD
. يجب أن يستجيب NFCC برمز الحالة
NCI_ANDROID_POWER_SAVING_RSP
الذي يشير إلى النجاح أو الفشل.
أثناء استخدام وضع توفير الطاقة، يجب ألا يرسل المضيف أي أمر إلى وحدة التحكّم في شبكة الطاقة (NFCC)، ويجب ألا ترسل وحدة التحكّم في شبكة الطاقة (NFCC) أي إشعار أو استجابة إلى المضيف. يمكن لوحدة NFCC أو العنصر الآمن المضمّن (eSE) قبول طلبات الدفع الواردة تلقائيًا وفقًا لإعدادات التوجيه التي تم ضبطها قبل تفعيل وضع توفير الطاقة.
للعودة إلى وضع الطاقة الكاملة، يمكن للمضيف إعادة ضبط وحدة التحكّم في شبكة الجوّال (NFCC) أو إعادة بدء تشغيلها.
NCI_ANDROID_POWER_SAVING_CMD
حقول الحمولة | الحجم | القيمة/الوصف | |
---|---|---|---|
وضع توفير الطاقة | 1 وحدة ثمانيّة البت | 0x00 | إيقاف وضع توفير الطاقة |
0x01 | تفعيل وضع توفير الطاقة |
NCI_ANDROID_POWER_SAVING_RSP
حقول الحمولة | الحجم | القيمة/الوصف | |||||
---|---|---|---|---|---|---|---|
الحالة | 1 وحدة ثمانيّة البت | اطّلِع على رموز الحالة في الجدول 140 من مواصفات NCI. |
أمر ضبط وضع المراقبة
لتفعيل وضع "الملاحظة" أو إيقافه، يمكن للمضيف استخدام الأمر
NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD
. يجب أن يستجيب NFCC برمز الحالة
NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP
مع رمز حالة يشير إلى نجاح العملية أو
تعذّرها.
عند إيقاف وضع المراقبة، يجب أن ينفِّذ مركز التحكّم في الشبكة (NFCC) نشاط وضع الاستماع العادي وفقًا ل المواصفات الفنية للنشاط.
عندما يكون وضع المراقبة نشطًا، يجب ألا يستجيب NFCC لأي طلبات تصويت
أثناء حلقة التصويت في وضع الاستماع، إلى أن يحصل على إذن صريح من
المضيف. يجب أن يرسل NFCC إشعار RF_FIELD_INFO_NTF
(على النحو الموضح في الفقرة 5.3 من
مواصفات أداة NCI)
عند رصد تفعيل الحقل. إذا كان وضع "الاستطلاع" مفعّلاً، على وحدة التحكّم في الطاقة (NFCC)
تنفيذ نشاط وضع "الاستطلاع" وفقًا ل
المواصفات الفنية للنشاط.
يمكن لوحدة التحكّم في شبكة الجوّال (NFCC) تخزين معلومات الاستطلاع مؤقتًا لمتابعة تفعيل الجهاز فور إيقاف وضع المراقبة.
يجب أن يوقف NFCC وضع المراقبة إذا تم إيقاف الجهاز المضيف لأي سبب (على سبيل المثال، بسبب نفاد البطارية أو إيقاف المستخدم للجهاز) لكي تتمكّن معاملات SE من المتابعة.
NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD
حقول الحمولة | الحجم | القيمة/الوصف | |
---|---|---|---|
وضع المراقبة | 1 وحدة ثمانيّة البت | 0×00 | إيقاف وضع "الملاحظة" (تلقائي) |
0x01 | تفعيل وضع "الملاحظة" |
NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP
حقول الحمولة | الحجم | القيمة/الوصف | |||||
---|---|---|---|---|---|---|---|
الحالة | 1 وحدة ثمانيّة البت | اطّلِع على رموز الحالة في الجدول 140 من مواصفات NCI. |
إشعار حلقة الاستطلاع
يجب أن يرسل NFCC إشعار NCI_ANDROID_POLLING_FRAME_NTF
إلى المضيف بعد كل إطار لحلقة الاستطلاع. عند إنشاء كلا الإشعارين RF_FIELD_INFO_NTF
وNCI_ANDROID_POLLING_FRAME_NTF
، يجب أن يرسل NFCC
NCI_ANDROID_POLLING_FRAME_NTF
بعد RF_FIELD_INFO_NTF
.
يكون إشعار NCI_ANDROID_POLLING_FRAME_NTF
مستقلاً عما إذا كان
وضع المراقبة نشطًا أم لا. عندما يكون وضع المراقبة مفعّلاً،
يجب أن ترسل وحدة التحكّم في حدود الجلسة (NFCC) دائمًا إشعارًا NCI_ANDROID_POLLING_FRAME_NTF
قبل
مواصلة المعاملة.
NCI_ANDROID_POLLING_FRAME_NTF
حقول الحمولة | الحجم | القيمة/الوصف | |||||
---|---|---|---|---|---|---|---|
بيانات الاستطلاع[0..n] | (m +3) * n وحدة ثمانيّة | قائمة بطلبات الاستطلاع التي تمّ تلقّيها منذ آخر إشعار تقدّم كل نتيجة نوع (التكنولوجيا) الطلبات التي تم تلقّيها والبيانات التعريفية من الطلب استنادًا إلى التكنولوجيا. | |||||
النوع | 1 وحدة ثمانيّة البت | اطّلِع على أنواع اللقطات. | |||||
أعلام | ثماني بتات واحد | راجِع الإبلاغ عن بايت. | |||||
المدة | 1 وحدة ثمانيّة البت | طول تقرير بيانات الاستطلاع (بالمتر) بما في ذلك حقلَي الطابع الزمني والزيادة | |||||
الطابع الزمني | 4 وحدات ثمانيّة | الطابع الزمني الذي يتم قياسه بالمللي ثانية لاستقبال طلبات الاستطلاع، بالتنسيق big endian | |||||
اكتساب | 1 وحدة ثمانيّة البت | قوة طلب الاستطلاع
يشير الرمز 0xFF إلى أنّ القيمة غير متاحة. |
|||||
البيانات | m - 5 وحدات ثمانيّة البت | عرض البيانات التعريفية المتوفّرة في طلب الاستطلاع |
أنواع اللقطات
إطار الاستطلاع | النوع | الحجم | القيمة/الوصف | |
---|---|---|---|---|
حقل بعيد | 0x00 | 1 وحدة ثمانيّة البت | 0×00 | الحقل غير مفعَّل |
0x01 | الحقل مفعَّل | |||
0x02..0xFF | RFU | |||
NFC-A | 0x01 | n وحدات ثمانيّة | يجب أن تتضمّن القيمة أمرًا وفقًا لمعيار ISO 14443-3 (مثل REQ أو WUP). | |
NFC-B | 0x02 | n وحدات ثمانيّة | يجب أن تتضمّن القيمة بايتة AIF وأمرًا وفقًا لمعيار ISO 14443-3 (مثل REQ أو WUP) | |
NFC-F | 0x03 | n وحدات ثمانيّة | يجب أن تتضمّن القيمة أمرًا وفقًا لمعيار ISO 14443-3 (مثل REQ أو WUP). | |
NFC-V | 0x04 | n وحدات ثمانيّة | يجب أن تتضمّن القيمة أمرًا وفقًا لمعيار ISO 14443-3 (مثل REQ أو WUP). | |
غير معروف | 0x07 | n وحدات ثمانيّة | بيانات الإطارات الأولية |
تعريف البايت الخاص بالعلامة
أعلام | ||||||||
---|---|---|---|---|---|---|---|---|
b0 | b1 | b2 | ب3 | b4 | b5 | ب6 | b7 | |
0 | إطار قصير | RFU | RFU | RFU | RFU | RFU | RFU | RFU |
1 | إطار طويل |
طلب حالة وضع المراقبة
لاسترداد الحالة الحالية لوضع الطلب التلقائي، يمكن للمضيف استخدام
الأمر NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD
. ويجب أن يستجيب الاتصال القصير المدى (NFCC) مع NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP
برمز حالة يشير إلى نجاح الإخفاق.
NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD
حقول الحمولة | الحجم | القيمة/الوصف | |||||
---|---|---|---|---|---|---|---|
لا ينطبق | 0 وحدة ثمانيّة |
NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP
حقول الحمولة | الحجم | القيمة/الوصف | |
---|---|---|---|
الحالة | 1 وحدة ثمانيّة البت | اطّلِع على رموز الحالة في الجدول 140 من مواصفات NCI. | |
وضع المراقبة | 1 وحدة ثمانيّة البت | 0x00 | تم إيقاف وضع "الملاحظة" |
0x01 | تم تفعيل وضع "الملاحظة" |