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 0xF
và Opcode_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_Type
và
PBF
để 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 |