อินเทอร์เฟซตัวควบคุม NFC (NCI) ใช้สำหรับการโต้ตอบกับ ตัวควบคุม NFC (NFCC) หน้านี้อธิบายข้อมูลจำเพาะของ Android คำสั่ง NCI ที่เป็นกรรมสิทธิ์เฉพาะ
คำจำกัดความของ NCI
คำสั่ง NCI ที่เป็นกรรมสิทธิ์ของ Android จะใช้รหัสกลุ่ม (GID) ที่เป็นกรรมสิทธิ์ 0xF
และพื้นที่รหัส opcode Identifier (OID) ของ Android ของ 0xC
รูปแบบแพ็กเก็ตทั่วไป
รูปแบบแพ็กเก็ต NCI สำหรับ Android เป็นไปตามข้อกำหนด NCI สำหรับแพ็กเก็ตควบคุม
โดยใช้ Group_ID 0xF
และ Opcode_ID 0x0C
ซึ่งเป็นกรรมสิทธิ์ สำหรับ Android แต่ละเครื่อง
ซึ่งต้องมีการตั้งค่าไบต์แรกของเพย์โหลดแพ็กเก็ตเป็นพารามิเตอร์
opcode ของ 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 |
RSP NCI | NCI_ANDROID_GET_CAPS_RSP
|
|
0x | NCI_MT_CMD | NCI_ANDROID_POWER_SAVING_CMD
|
RSP NCI | NCI_ANDROID_POWER_SAVING_RSP
|
|
0x | NCI_MT_CMD | NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD |
RSP NCI | NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP
|
|
0x | NCI_MT_NTF | NCI_ANDROID_POLLING_FRAME_NTF
|
0x | NCI_MT_CMD | NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD |
RSP NCI | 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 ไม่ส่งกลับความสามารถของ NFCC ในการตอบกลับ โฮสต์ต้องสันนิษฐานว่า
ความสามารถจะมีค่าเริ่มต้นที่ระบุ
NCI_ANDROID_GET_CAPS_CMD
ฟิลด์เพย์โหลด | ขนาด | ค่า/คำอธิบาย | |||||
---|---|---|---|---|---|---|---|
ไม่มี | 0 อ็อกเท็ต |
NCI_ANDROID_GET_CAPS_RSP
ฟิลด์เพย์โหลด | ขนาด | ค่า/คำอธิบาย | |||||
---|---|---|---|---|---|---|---|
สถานะ | 1 อ็อกเท็ต | ดูรหัสสถานะในตาราง 140 ของข้อกําหนดของ NCI | |||||
Android_Version
|
2 อ็อกเท็ต | ระบุเวอร์ชันของข้อกำหนดของ Android ที่ NFCC ใช้ | |||||
0x0000 | Android 15 | ||||||
จำนวนความสามารถ | 1 อ็อกเท็ต | จำนวน (n) ของความสามารถที่รองรับ | |||||
ความสามารถ[0..n] | (m + 2) * n อ็อกเท็ต | ความสามารถที่รองรับ | |||||
ประเภท | 1 อ็อกเท็ต | ตัวระบุของความสามารถ | |||||
Len | 1 อ็อกเท็ต | ความยาว (m) ของค่า | |||||
ค่า | ม. อ็อกเท็ต | คุณค่าของความสามารถ |
ความสามารถที่เป็นกรรมสิทธิ์ของ Android
ชื่อความสามารถ | รหัส | ขนาด | ค่า/คำอธิบาย | |||||
---|---|---|---|---|---|---|---|---|
โหมดสังเกตการณ์ | 0x00 | 1 อ็อกเท็ต | การรองรับโหมดสังเกตการณ์
0x00 (ค่าเริ่มต้น) - ไม่รองรับฟีเจอร์นี้ 0x01 - รองรับฟีเจอร์ที่มีการปิดใช้งาน RF จากโฮสต์ (จำเป็นสำหรับ Android 15 ขึ้นไป) ค่าอื่นๆ ทั้งหมดจะเป็น RFU |
|||||
การแจ้งเตือนเฟรมแบบสำรวจ | 0x | 1 อ็อกเท็ต | รองรับการแจ้งเตือนของเฟรมแบบสำรวจ 0x01 หากรองรับ ส่วน 0x00 (ค่าเริ่มต้น) จะไม่ได้รับการสนับสนุน ค่าอื่นๆ ทั้งหมดจะเป็น RFU | |||||
โหมดประหยัดพลังงาน | 0x | 1 อ็อกเท็ต | การสนับสนุนโหมดประหยัดพลังงาน 0x01 หากรองรับ ส่วน 0x00 (ค่าเริ่มต้น) จะไม่ได้รับการสนับสนุน ค่าอื่นๆ ทั้งหมดจะเป็น RFU | |||||
ตัวกรอง Auotransact Polling Loop | 0x | 1 อ็อกเท็ต | รองรับตัวกรองลูปการสำรวจในเฟิร์มแวร์เพื่อข้ามโหมดสังเกตการณ์สำหรับรูปแบบที่เฉพาะเจาะจงเมื่อเปิดใช้โหมดสังเกตการณ์ทั่วโลก
0x00 (ค่าเริ่มต้น) - ไม่รองรับฟีเจอร์นี้ 0x01 - รองรับตัวกรองลูปการสำรวจ ค่าอื่นๆ ทั้งหมดเป็น RFU |
|||||
0x04..0xFF | 0 อ็อกเท็ต | สงวนไว้สำหรับการใช้งานในอนาคต |
คำสั่งประหยัดพลังงาน
หากต้องการเปลี่ยน NFCC เป็นโหมดประหยัดพลังงาน โฮสต์จะใช้
คำสั่ง NCI_ANDROID_POWER_SAVING_CMD
NFCC ต้องตอบกลับด้วย
NCI_ANDROID_POWER_SAVING_RSP
ที่มีรหัสสถานะ
เพื่อระบุว่าสำเร็จหรือล้มเหลว
ขณะที่อยู่ในโหมดประหยัดพลังงาน โฮสต์จะต้องไม่ส่งคำสั่งไปยัง NFCC และ NFCC ต้องไม่ส่งการแจ้งเตือนหรือตอบกลับไปยังโฮสต์ NFCC หรือ องค์ประกอบความปลอดภัยที่ฝัง (eSE) สามารถยอมรับคำขอการชำระเงินที่เข้ามาได้โดยอัตโนมัติ ตามการกำหนดค่าการกำหนดเส้นทางที่ตั้งไว้ก่อนเปิดใช้การประหยัดพลังงาน
หากต้องการกลับสู่โหมดพลังงานเต็ม โฮสต์สามารถรีเซ็ตหรือเริ่มต้น NFCC ใหม่
NCI_ANDROID_POWER_SAVING_CMD
ฟิลด์เพย์โหลด | ขนาด | ค่า/คำอธิบาย | |
---|---|---|---|
โหมดประหยัดพลังงาน | 1 อ็อกเท็ต | 0x00 | ปิดใช้โหมดประหยัดพลังงาน |
0x | เปิดใช้โหมดประหยัดพลังงาน |
NCI_ANDROID_POWER_SAVING_RSP
ฟิลด์เพย์โหลด | ขนาด | ค่า/คำอธิบาย | |||||
---|---|---|---|---|---|---|---|
สถานะ | 1 อ็อกเท็ต | ดูรหัสสถานะในตาราง 140 ของข้อกําหนดของ NCI |
ตั้งค่าคำสั่งโหมดสังเกตการณ์
ในการเปิดหรือปิดใช้งานโหมดสังเกตการณ์ โฮสต์สามารถใช้
คำสั่ง NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD
NFCC ต้องตอบกลับด้วย
NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP
ที่มีรหัสสถานะซึ่งบ่งชี้ความสำเร็จหรือ
ล้มเหลว
เมื่อปิดใช้โหมดสังเกตการณ์ NFCC จะต้องติดตั้งใช้งาน กิจกรรมโหมด Listener มาตรฐานตาม ข้อกำหนดทางเทคนิคของกิจกรรม
เมื่อโหมดสังเกตการณ์ทำงานอยู่ NFCC ต้องไม่ตอบแบบสำรวจใดๆ
ระหว่างการทำโพลในโหมดฟังจนกว่าจะได้รับอนุญาตอย่างชัดเจนจาก
ผู้จัด NFCC ต้องส่งการแจ้งเตือนRF_FIELD_INFO_NTF
(ตามที่กำหนดโดย
ส่วนที่ 5.3 ของ
ข้อกําหนดของ NCI)
เมื่อตรวจพบการเปิดใช้งานฟิลด์ หากเปิดใช้งานการค้นพบโหมดแบบสำรวจอยู่ NFCC
ต้องใช้กิจกรรมโหมดแบบสำรวจตาม
ข้อกำหนดทางเทคนิคของกิจกรรม
NFCC สามารถแคชข้อมูลแบบสำรวจเพื่อให้ดำเนินการต่อกับอุปกรณ์ได้ทันที
เปิดใช้งานทันทีที่ปิดใช้งานโหมดสังเกตการณ์
NFCC ควรปิดโหมดสังเกตการณ์หากโฮสต์ปิดไม่ว่าด้วยเหตุผลใดก็ตาม (เช่น แบตเตอรี่หมดหรือผู้ใช้เริ่มระบบปิดเครื่อง) เพื่อให้ SE สามารถดำเนินการต่อได้
NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD
ฟิลด์เพย์โหลด | ขนาด | ค่า/คำอธิบาย | |
---|---|---|---|
โหมดสังเกตการณ์ | 1 อ็อกเท็ต | 0x00 | ปิดใช้โหมดสังเกตการณ์ (ค่าเริ่มต้น) |
0x | เปิดใช้โหมดสังเกตการณ์ |
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 อ็อกเท็ต | โปรดดู Flag Byte | |||||
ความยาว | 1 อ็อกเท็ต | ความยาว (ม.) ของรายงานข้อมูลการสำรวจ ซึ่งรวมถึงการประทับเวลาและช่องข้อมูลที่ได้รับ | |||||
การประทับเวลา | 4 อ็อกเท็ต | การประทับเวลาวัดเป็นมิลลิวินาทีสำหรับการรับคำขอในแบบสำรวจ (Big Endian) | |||||
กลุ่มสี | 1 อ็อกเท็ต | ความเข้มงวดของคำขอแบบสำรวจ
0xFF หมายถึงค่านี้ไม่พร้อมใช้งาน |
|||||
ข้อมูล | ม. - 5 อ็อกเท็ต | ส่งคืนข้อมูลที่ระบุตัวบุคคลนั้นได้ซึ่งปรากฏในคำขอการหยั่งสัญญาณ |
ประเภทเฟรม
เฟรมแบบสำรวจ | ประเภท | ขนาด | ค่า/คำอธิบาย | |
---|---|---|---|---|
ฟิลด์ระยะไกล | 0x00 | 1 อ็อกเท็ต | 0x00 | ช่องปิดอยู่ |
0x | ช่องเปิดอยู่ | |||
0x02..0xFF | แบบ RFU | |||
NFC-A | 0x | n อ็อกเท็ต | ค่าต้องมีคำสั่ง ISO 14443-3 (เช่น REQ หรือ WUP) | |
NFC-B | 0x | n อ็อกเท็ต | ค่าต้องมีไบต์ AIF และคำสั่ง ISO 14443-3 (เช่น REQ หรือ WUP) | |
NFC-F | 0x | n อ็อกเท็ต | ค่าต้องมีคำสั่ง ISO 14443-3 (เช่น REQ หรือ WUP) | |
NFC-V | 0x | n อ็อกเท็ต | ค่าต้องมีคำสั่ง ISO 14443-3 (เช่น REQ หรือ WUP) | |
ไม่ทราบ | 0x07 | n อ็อกเท็ต | ข้อมูลเฟรมดิบ |
คำนิยามของไบต์แฟล็ก
ธง | ||||||||
---|---|---|---|---|---|---|---|---|
b0 | ข1 | วิ | b3 | b4 | B5 | B6 | ข7 | |
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 | ปิดใช้โหมดสังเกตแล้ว |
0x | เปิดใช้โหมดสังเกตแล้ว |