Các lệnh NCI thuộc quyền sở hữu riêng của Android

Giao diện trình điều khiển NFC (NCI) được dùng để tương tác với Bộ điều khiển NFC (NFCC). Trang này mô tả các thông số kỹ thuật của Android các lệnh NCI độc quyền.

Định nghĩa về NCI

Các lệnh NCI thuộc quyền sở hữu riêng của Android sử dụng mã nhóm độc quyền (GID) 0xF và không gian mã của giá trị nhận dạng mã hoạt động Android (OID) của 0xC.

Định dạng gói phổ biến

Định dạng gói NCI dành cho Android tuân theo quy cách của NCI cho gói kiểm soát bằng Group_ID 0xFOpcode_ID 0x0C độc quyền. Đối với từng thiết bị Android thông điệp độc quyền, byte đầu tiên của tải trọng gói phải được đặt thành Mã hoạt động của Android (0x0C). Gói điều khiển Android sử dụng Message_TypePBF để xác định các lệnh, câu trả lời và thông báo tương tự như các lệnh chuẩn.

Định dạng gói Android được hiển thị trong bảng sau:

0 1 2 3 4 5 6 7
Message_Type PBF Group_ID = 0xF (PROPRIETARY)
dành riêng để sử dụng trong tương lai (RFU) Opcode_ID = 0x0C (ANDROID)
Payload_Length
Android_Opcode_ID
Android_Payload

Giá trị nhận dạng mã hoạt động của Android đã chỉ định được liệt kê trong bảng sau. Chiến lược phát hành đĩa đơn thông số kỹ thuật cho từng gói như sau trong phần tiếp theo.

OID của Android Loại thông báo Tên thông báo
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

Nhận lệnh chức năng

Máy chủ lưu trữ sử dụng NCI_ANDROID_GET_CAPS_CMD để truy vấn danh sách các tính năng độc quyền của Android được NFCC hỗ trợ. Chiến lược phát hành đĩa đơn Lệnh NCI_ANDROID_GET_CAPS_CMD không nhận bất kỳ tham số nào.

NFCC phải phản hồi bằng phản hồi NCI_ANDROID_GET_CAPS_RSP kèm theo trạng thái STATUS_OK và danh sách chức năng và tính năng được hỗ trợ.

Nếu NFCC không hỗ trợ NCI_ANDROID_GET_CAPS_CMD, máy chủ lưu trữ phải giả định rằng mỗi khả năng sẽ nhận giá trị mặc định được chỉ định. Nếu một thuộc tính được chỉ định không được NFCC trả về trong phản hồi, máy chủ lưu trữ phải giả định rằng chức năng có giá trị mặc định được chỉ định.

NCI_ANDROID_GET_CAPS_CMD

Trường tải trọng Kích thước Giá trị/nội dung mô tả
Không áp dụng 0 octet

NCI_ANDROID_GET_CAPS_RSP

Trường tải trọng Kích thước Giá trị/nội dung mô tả
Trạng thái 1 octet Xem mã trạng thái trong bảng 140 của Quy cách của NCI.
Android_Version 2 octet Xác định phiên bản các yêu cầu của Android mà NFCC triển khai.
0x0000 Android 15
Số lượng chức năng 1 octet Số lượng (n) chức năng được hỗ trợ
Chức năng[0..n] (m + 2) * n octet Các tính năng được hỗ trợ
Loại 1 octet Giá trị nhận dạng chức năng
Len 1 octet Chiều dài (m) của giá trị
Giá trị m octet Giá trị của chức năng
Các chức năng thuộc quyền sở hữu riêng của Android
Tên chức năng ID Kích thước Giá trị/nội dung mô tả
Chế độ quan sát 0x00 1 octet Hỗ trợ chế độ quan sát.
0x00 (mặc định) – Không hỗ trợ tính năng này.
0x01 – Hỗ trợ tính năng vô hiệu hoá RF từ máy chủ (bắt buộc đối với Android 15 trở lên).
Tất cả các giá trị khác đều là RFU.
Thông báo về khung thăm dò ý kiến 0x01 1 octet Hỗ trợ thông báo về khung thăm dò ý kiến. 0x01 nếu được hỗ trợ, 0x00 (mặc định) nếu không được hỗ trợ. Tất cả các giá trị khác đều là RFU.
Chế độ tiết kiệm điện 0x02 1 octet Hỗ trợ chế độ tiết kiệm điện. 0x01 nếu được hỗ trợ, 0x00 (mặc định) nếu không được hỗ trợ. Tất cả các giá trị khác đều là RFU.
Bộ lọc vòng lặp thăm dò Auotransact 0x03 1 octet Hỗ trợ bộ lọc vòng lặp thăm dò trong chương trình cơ sở để bỏ qua chế độ quan sát cho các mẫu cụ thể khi chế độ quan sát được bật trên toàn cục.
0x00 (mặc định) – Không hỗ trợ tính năng này
0x01 – Hỗ trợ bộ lọc vòng lặp thăm dò
Tất cả các giá trị khác đều là RFU
0x04..0xFF 0 octet Dành riêng để sử dụng trong tương lai

Lệnh tiết kiệm điện

Để chuyển NFCC sang chế độ tiết kiệm điện, người tổ chức có thể sử dụng Lệnh NCI_ANDROID_POWER_SAVING_CMD. NFCC phải phản hồi bằng NCI_ANDROID_POWER_SAVING_RSP kèm theo mã trạng thái cho biết thành công hay không thành công.

Khi ở chế độ tiết kiệm điện, máy chủ lưu trữ không được gửi bất kỳ lệnh nào đến NFCC và NFCC không được gửi bất kỳ thông báo hoặc phản hồi nào đến máy chủ. NFCC hoặc Phần tử bảo mật (eSE) được nhúng có thể tự động chấp nhận các yêu cầu thanh toán đến theo cấu hình định tuyến đã đặt trước khi bật tính năng tiết kiệm điện .

Để quay lại chế độ sử dụng pin tối đa, máy chủ lưu trữ có thể đặt lại hoặc khởi chạy lại NFCC.

NCI_ANDROID_POWER_SAVING_CMD

Trường tải trọng Kích thước Giá trị/nội dung mô tả
Chế độ tiết kiệm điện 1 octet 0x00 Tắt chế độ tiết kiệm điện
0x01 Bật chế độ tiết kiệm điện

NCI_ANDROID_POWER_SAVING_RSP

Trường tải trọng Kích thước Giá trị/nội dung mô tả
Trạng thái 1 octet Xem mã trạng thái trong bảng 140 của Quy cách của NCI

Đặt lệnh cho chế độ quan sát

Để kích hoạt hoặc huỷ kích hoạt chế độ quan sát, người tổ chức có thể dùng Lệnh NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD. NFCC phải phản hồi bằng NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP với mã trạng thái cho biết thành công hoặc lỗi.

Khi chế độ quan sát bị tắt, NFCC phải triển khai hoạt động ở chế độ nghe chuẩn theo Thông số kỹ thuật về hoạt động.

Khi chế độ quan sát đang hoạt động, NFCC không được trả lời bất kỳ cuộc thăm dò ý kiến nào trong vòng lặp thăm dò ở chế độ nghe, cho đến khi được cho phép rõ ràng bởi máy chủ lưu trữ. NFCC phải gửi thông báo RF_FIELD_INFO_NTF (như được xác định bởi phần 5.3 của Quy cách của NCI) khi phát hiện việc kích hoạt trường. Nếu chế độ khám phá chế độ thăm dò ý kiến đang hoạt động, NFCC phải triển khai hoạt động ở chế độ thăm dò ý kiến theo Thông số kỹ thuật về hoạt động. NFCC có thể lưu thông tin thăm dò ý kiến vào bộ nhớ đệm để xử lý ngay lập tức với thiết bị ngay khi chế độ quan sát bị tắt.

NFCC sẽ tắt chế độ quan sát nếu máy chủ bị tắt vì bất kỳ lý do gì (ví dụ: hết pin hoặc do người dùng khởi động) để SE giao dịch có thể tiếp tục.

NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD

Trường tải trọng Kích thước Giá trị/nội dung mô tả
chế độ quan sát 1 octet 0x00 Tắt chế độ quan sát (mặc định)
0x01 Bật chế độ quan sát

NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP

Trường tải trọng Kích thước Giá trị/nội dung mô tả
Trạng thái 1 octet Xem mã trạng thái trong bảng 140 của Quy cách của NCI.

Thông báo về vòng lặp cuộc thăm dò ý kiến

NFCC phải gửi thông báo NCI_ANDROID_POLLING_FRAME_NTF đến máy chủ sau mỗi khung vòng lặp thăm dò. Khi cả RF_FIELD_INFO_NTF và Thông báo NCI_ANDROID_POLLING_FRAME_NTF đã được tạo, NFCC phải gửi NCI_ANDROID_POLLING_FRAME_NTF sau RF_FIELD_INFO_NTF.

Thông báo NCI_ANDROID_POLLING_FRAME_NTF không phụ thuộc vào việc chế độ quan sát có đang hoạt động hay không. Khi chế độ quan sát đang hoạt động, NFCC phải luôn gửi thông báo NCI_ANDROID_POLLING_FRAME_NTF trước tiếp tục giao dịch.

NCI_ANDROID_VOTEING_FRAME_NTF

Trường tải trọng Kích thước Giá trị/nội dung mô tả
Dữ liệu thăm dò ý kiến[0..n] (m +3) * n octet Danh sách các yêu cầu thăm dò ý kiến đã nhận được kể từ lần gần đây nhất . Mỗi kết quả cho biết loại (công nghệ) của kết quả nhận được và dữ liệu nhận dạng của yêu cầu tuỳ thuộc vào công nghệ.
Loại 1 octet Xem các loại khung hình.
Cờ 1 octet Hãy xem phần gắn cờ byte.
Thời lượng 1 octet Độ dài (m) của báo cáo dữ liệu thăm dò ý kiến, bao gồm cả các trường dấu thời gian và mức tăng.
Dấu thời gian 4 octet Dấu thời gian được tính bằng mili giây từ khi nhận yêu cầu thăm dò ý kiến.
Trội 1 octet Độ mạnh của yêu cầu thăm dò ý kiến.
0xFF cho biết giá trị này không có sẵn.
Dữ liệu m – 5 octet Trả về dữ liệu nhận dạng có trong yêu cầu thăm dò ý kiến
Loại khung
Khung thăm dò ý kiến Loại Kích thước Giá trị/Mô tả
Trường từ xa 0x00 1 octet 0x00 Trường tắt
0x01 Trường bật
0x02..0xFF RFU
NFC-A 0x01 n octet Giá trị phải bao gồm lệnh ISO 14443-3 (ví dụ: REQ hoặc WUP)
NFC-B 0x02 n octet Giá trị phải bao gồm một byte AIF và một lệnh ISO 14443-3 (ví dụ: REQ hoặc WUP)
NFC-F 0x03 n octet Giá trị phải bao gồm lệnh ISO 14443-3 (ví dụ: REQ hoặc WUP)
Công nghệ NFC-V 0x04 n octet Giá trị phải bao gồm lệnh ISO 14443-3 (ví dụ: REQ hoặc WUP)
Không xác định 0x07 n octet Dữ liệu khung thô
Định nghĩa byte gắn cờ
Cờ
b0 b1 b2 b3 b4 b5 b6 b7
0 Khung hình ngắn RFU RFU RFU RFU RFU RFU RFU
1 Khung dài

Truy vấn lệnh về trạng thái của chế độ quan sát

Để truy xuất trạng thái hiện tại của chế độ thứ tự thụ động, máy chủ lưu trữ có thể sử dụng lệnh NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD. NFCC phải trả lời bằng NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP kèm theo trạng thái mã cho biết không thành công.

NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD

Trường tải trọng Kích thước Giá trị/nội dung mô tả
Không áp dụng 0 octet

NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP

Trường tải trọng Kích thước Giá trị/nội dung mô tả
Trạng thái 1 octet Xem mã trạng thái trong bảng 140 của Quy cách của NCI
chế độ quan sát 1 octet 0x00 Đã tắt chế độ quan sát
0x01 Đã bật chế độ quan sát