أوامر NCI الخاصة بنظام التشغيل Android

تُستخدَم واجهة وحدة تحكّم 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 تم تفعيل وضع "الملاحظة"