NFC Controller Interface (NCI) משמש לאינטראקציה עם בקר NFC (NFCC). בדף הזה מתואר המפרט של Android פקודות NCI הקנייניות.
הגדרות של NCI
פקודות NCI שבבעלות Android משתמשות במזהה הקבוצה הקניינית (GID) 0xF
ומרחב הקוד של מזהה הקוד (OID) של Android הוא 0xC
.
פורמט מנות נפוץ
פורמט המנות Android NCI תואם למפרט 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
|
|||||||
מזהי opcode של 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
|
0x04 | NCI_MT_CMD | NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD |
NCI_MT_RSP | NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP |
קבלת פקודת יכולות
המארח/ת משתמש/ת ב-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
שדות מטען ייעודי (payload) | גודל | ערך/תיאור | |||||
---|---|---|---|---|---|---|---|
לא רלוונטי | אפס אוקטטים |
NCI_ANDROID_GET_CAPS_RSP
שדות מטען ייעודי (payload) | גודל | ערך/תיאור | |||||
---|---|---|---|---|---|---|---|
סטטוס | אוקטט אחד | קודי הסטטוס מוצגים בטבלה 140 במפרט NCI. | |||||
Android_Version
|
2 אוקטטים | מזהה את גרסת הדרישות של Android שמוטמעת על ידי NFCC. | |||||
0x0,000 | 15 Android | ||||||
מספר היכולות | אוקטט אחד | מספר (n) של היכולות הנתמכות | |||||
יכולות[0..n] | (m + 2) * n octets | היכולות הנתמכות | |||||
סוג | אוקטט אחד | המזהה של היכולת. | |||||
Len | אוקטט אחד | אורך (מ') של הערך | |||||
ערך | מ' אוקטטים | הערך של היכולת |
יכולות קנייניות של Android
שם היכולת | מזהה | גודל | ערך/תיאור | |||||
---|---|---|---|---|---|---|---|---|
מצב צפייה | 0x00 | אוקטט אחד | תמיכה במצב הצפייה.
0x00 (ברירת מחדל) – התכונה לא תומכת בתכונה הזו. 0x01 - תמיכה בתכונה באמצעות השבתת תדרי רדיו מהמארח (נדרש עבור Android מגרסה 15 ואילך). כל שאר הערכים הם RFU. |
|||||
הודעה על מסגרת הדגימה | 0x01 | אוקטט אחד | תמיכה בהתראות של מסגרת הקלפי. 0x01 אם האפשרות נתמכת, 0x00 (ברירת מחדל) אם לא נתמך. כל שאר הערכים הם RFU. | |||||
מצב חיסכון בסוללה | 0x02 | אוקטט אחד | תמיכה במצב חיסכון בסוללה. 0x01 אם האפשרות נתמכת, 0x00 (ברירת מחדל) אם לא נתמך. כל שאר הערכים הם RFU. | |||||
מסנן לולאת דגימה Auotransact | 0x03 | אוקטט אחד | תמיכה במסננים של לולאת דגימה בקושחה לעקוף את מצב הצפייה בדפוסים ספציפיים כשמצב הצפייה מופעל בכל העולם.
0x00 (ברירת מחדל) – לא תומך בתכונה הזו 0x01 – תמיכה במסננים של לולאת דגימה כל שאר הערכים הם RFU |
|||||
0x04..0xFF | אפס אוקטטים | שמור לשימוש בעתיד |
פקודה לחיסכון בסוללה
כדי להעביר את NFCC למצב חיסכון בסוללה, המארח יכול להשתמש
הפקודה NCI_ANDROID_POWER_SAVING_CMD
. ה-NFCC חייב להגיב עם
NCI_ANDROID_POWER_SAVING_RSP
עם קוד סטטוס
שמצביע על הצלחה או כישלון.
במצב חיסכון בסוללה, המארח לא יכול לשלוח פקודות ל-NFCC וגם אסור ל-NFCC לשלוח התראות או תגובות למארח. NFCC או רכיב מאובטח מוטמע (eSE) יכול לקבל באופן אוטומטי בקשות תשלום נכנסות בהתאם להגדרות הניתוב שנקבעו לפני הפעלת החיסכון באנרגיה במצב 'סינון תוכן'.
כדי לחזור למצב אספקת חשמל מלאה, המארח יכול לאפס או לאתחל את ה-NFCC.
NCI_ANDROID_POWER_SAVING_CMD
שדות מטען ייעודי (payload) | גודל | ערך/תיאור | |
---|---|---|---|
מצב חיסכון בסוללה | אוקטט אחד | 0x00 | השבתת מצב חיסכון בסוללה |
0x01 | הפעלת מצב חיסכון בסוללה |
NCI_ANDROID_POWER_SAVING_RSP
שדות מטען ייעודי (payload) | גודל | ערך/תיאור | |||||
---|---|---|---|---|---|---|---|
סטטוס | אוקטט אחד | קודי הסטטוס מוצגים בטבלה 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 אמור להשבית את מצב הצפייה אם המארח נכבה מסיבה כלשהי (לדוגמה, כשהסוללה נגמרה או כיבוי ביוזמת המשתמש), כדי שהצפנות העסקאות יכולות להמשיך.
NCI_ANDROID_PASSIVE_OBSERVE_מצב_CMD
שדות מטען ייעודי (payload) | גודל | ערך/תיאור | |
---|---|---|---|
מצב תצפית | אוקטט אחד | 0x00 | השבתת מצב ניראות (ברירת מחדל) |
0x01 | הפעלת מצב 'תצפית' |
NCI_ANDROID_PASSIVE_OBSERVE_מצב_RSP
שדות מטען ייעודי (payload) | גודל | ערך/תיאור | |||||
---|---|---|---|---|---|---|---|
סטטוס | אוקטט אחד | קודי הסטטוס מוצגים בטבלה 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
שדות מטען ייעודי (payload) | גודל | ערך/תיאור | |||||
---|---|---|---|---|---|---|---|
נתוני סקרים[0..n] | (m +3) * n octets | רשימת בקשות לקלפיות שהתקבלו מאז הפעם האחרונה התראה. כל תוצאה מציגה את הסוג (טכנולוגיה) של של הבקשות ונתונים שניתנים לזיהוי, בהתאם לטכנולוגיה. | |||||
סוג | אוקטט אחד | לעיון בסוגי תמונות | |||||
דגלים | אוקטט אחד | ראו בייט סימון. | |||||
אורך | אוקטט אחד | אורך (מ') של דוח נתוני הדגימה, כולל חותמת זמן ושדות קבלה. | |||||
חותמת זמן | 4 אוקטטים | חותמת הזמן שנמדדת באלפיות השנייה של קבלת בקשות הקלפיות, אנדיאן גדול. | |||||
הוספה | אוקטט אחד | עוצמת הבקשה של ההצבעה.
0xFF מציין שהערך לא זמין. |
|||||
נתונים | מ' - 5 אוקטטים | פונקציה זו מחזירה את הנתונים המזהים שקיימים בבקשת הדגימה |
סוגי הפריימים
מסגרת הצבעה | סוג | גודל | ערך/תיאור | |
---|---|---|---|---|
שדה מרוחק | 0x00 | אוקטט אחד | 0x00 | השדה מושבת |
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 | ב1 | ב2 | ב-3 | b4 | b5 | b6 | 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_OBproxy_STATUS_CMD
שדות מטען ייעודי (payload) | גודל | ערך/תיאור | |||||
---|---|---|---|---|---|---|---|
לא רלוונטי | אפס אוקטטים |
NCI_ANDROID_QUERY_PASSIVE_OBproxy_STATUS_RSP
שדות מטען ייעודי (payload) | גודל | ערך/תיאור | |
---|---|---|---|
סטטוס | אוקטט אחד | קודי הסטטוס מוצגים בטבלה 140 במפרט NCI. | |
מצב תצפית | אוקטט אחד | 0x00 | מצב 'צפייה' מושבת |
0x01 | מצב 'צפייה' מופעל |