Kiến trúc 2 NCI
Phần này trình bày các khái niệm bản được sử dụng trong NCI. Đây một giới thiệu không
chính thức về các tuyên bố quy phạm sau này trong tài liệu này.
2.1 Các thành phần
NCI có thể được chia thành các thành phần logic sau đây:
Hệ thống NCI
Hệ thống NCI xác định chức năng cơ bản của việc giao tiếp giữa một Thiết bị Chủ (DH) và
một Bộ điều khiển NFC (NFCC). Điều này cho phép trao đổi Tin nhắn Điều khiển (Lệnh,
Phản hồi Thông báo) Tin nhắn Dữ liệu giữa một NFCC một DH. Bản đồ vận
chuyển
Bản đồ giao thông xác định cách NCI giao thức được di chuyển vào một NCI Vận chuyển cơ
bản, đó một kết nối vật (và giao thức tùy chọn liên quan) giữa DHand và NFCC. Mỗi bản
đồ giao thông được liên kết với một NCI Vận chuyển cụ thể. Các module NCI
Các module NCI được xây dựng dựa trên chức năng được cung cấp bởi NCI Hệ Thống. Mỗi
module cung cấp một chức năng được xác định rõ ràng cho DH. Các module NCI cung cấp
chức năng để cấu hình NFCC và khám phá và giao tiếp với các điểm cuối NFC từ xa hoặc
với các NFCEE cục bộ.
Một số module NCI là các phần bắt buộc trong việc triển khai NCI, trong khi các module khác là tùy chọn.
thể sự phụ thuộc giữa các module NCI trong ý nghĩa rằng một module chỉ ích nếu
các module khác được triển khai cùng. dụ, tất cả c module xử giao tiếp với một
điểm cuối NFC từ xa (các module giao diện RF) phụ thuộc vào quá trình RF Discovery.
Hình 2: Các thành phần NCI
2.2 Khái niệm
Phần này trình bày các khái niệm bản
được sử dụng trong thiết kế NCI.
Vận chuyển
Giao thông
Giao thông
Các module NCI
Bản đồ Giaothông
GiaoThông
I Hệ
Thống
N
C
Bản đồ Giaothô
ng
2.2.1 Tin nhắn điều khiển
Một DH sử dụng NCI Control Messages để quản cấu hình một NFCC. Control Messages
bao gồm các lệnh (Commands), phản hồi (Responses) và thông báo (Notifications). Các lệnh chỉ
được gửi tDH đến NFCC, các phản hồi thông báo chỉ được gửi theo hướng ngược lại.
Control Messages được truyền trong các gói tin NCI Control Packets, NCI hỗ trợ chia nhỏ
Control Messages thành nhiều gói tin.
NCI Core xác định một tập hợp cơ bản các thông điệp điều khiển (ví dụ, để thiết lập truy
xuất các tham số cấu hình NFCC). Các thông điệp điều khiển bổ sung thể được xác định
bởi các mô-đun NCI.
2.2.2 Các tin nhắn dữ liệu
Các tin nhắn d liệu được sử dụng đ truyền dữ liệu đến một Điểm cuối NFC từ xa (gọi "
RFCommunication" trong NCI) hoặc đến một NFCEE (gọi là "NFCEE Communication" trong NCI).
NCI xác định các Gói dữ liệu (DataPackets) cho phép chia nhỏ các tin nhắn dữ liệu thành nhiều gói.
Các tin nhắn dữ liệu chỉ có thể được trao đổi trong ngữ cảnh của một Kết nối Logic. Một Kết nối
Logic phải được thiết lập trước khi gửi bất kỳ tin nhắn dữ liệu nào. Một Kết nối Logic, Kết nối RF
Tĩnh, luôn được thiết lập trong quá trình khởi tạo của NCI. Kết nối RF Tĩnh được dành riêng cho
Truyền thông RF. Các Kết nối Logic bổ sung thể được tạo ra cho Truyền thông RF và/hoặc
NFCEE.
Logical Connections cung cấp điều khiển luồng cho các Tin nhắn Dữ liệu theo hướng từ DH đến NFCC.
Thiết bị NFC Forum
DH
NCI
NFCC
Giao thức NFCEE
Điểm cuối NFCTừ xa
NFCEE
Hình 3: Khái niệm NCI
2.2.3 Giao diện
Một mô-đun NCI có thể chứa một Giao diện duy nhất. Mỗi Giao diện xác định cách mà một
DH thể giao tiếp qua NCI với một Điểm cuối NFC từ xa hoặc NFCEE. Mỗi Giao diện
được xác định để hỗ trợ các giao thức cụ thể và chỉ có thể được sử dụng cho những giao thức
đó (hầu hết các Giao diện hỗ trợ chính xác một giao thức). NCI xác định hai loại Giao diện:
Giao diện RF và Giao diện NFCEE.
Các giao thức được sử dụng để giao tiếp với một điểm cuối NFC từ xa được gọi là giao thức
RF. Các giao thức đưc sử dụng để giao tiếp với một NFCEE được gọi là giao thức NFCEE.
Một giao diện NFCEE có mối quan hệ một-một với một giao thức NFCEE. Tuy nhiên, thể
nhiều giao diện RF cho một giao thức RF. Các giao diện RF cho phép NCI hỗ trợ các phân chia
khác nhau của việc thực hiện giao thức giữa NFCC và DH. Một NCI implementation trên NFCC
bao gồm các giao diện RF phù hợp với chức năng được thực hiện trên NFCC.
Các giao diện cần được kích hoạt trước khi sử dụng deactived khi chúng không còn được sử
dụng nữa.
Một Giao diện có thể xác định các tham số cấu hình và Tin nhắn Điều khiển riêng của nó.
Nhưng quan trọng nhất, nó xác định cả ánh xạ của dữ liệu trong Tin nhắn dữ liệu tới giao thức
RF hoặc NFCEE tương ứng và, trong trường hợp Giao tiếp RF, xác định liệu có sử dụng Kết nối
RF Tĩnh và/hoặc Kết nối Logic Động để trao đổi các Tin nhắn Dữ liệu đó giữa DH và NFCC.
2.2.4 Mở rộng giao diện RF
Một RF Interface Extension thêm vào một tập hợp cụ thể ràng các chức năng vào một hoặc
nhiều RFInterfaces. Mỗi RF Interface Extension xác định các RF Interfaces thể m
rộng.
Sự sẵn của một RF Interface Extension phụ thuộc vào thời gian một trong những RF
Interfaces này đưc kích hoạt. Sự sẵn có cũng có thể phụ thuộc vào các điều kiện khác, ví dụ như
giao thức đang được sử dụng trong giao tiếp RF. Nếu một RF Interface được kích hoạt, các RF
Interface Extension sẵn thể được bắt đầu dừng bởi DH. RF Interface Extensions không
bao giđược bắt đầu tự động chỉ dừng lại khi RF Interface bị vô hiệu hóa. Mỗi RF Interface
Extension xác định c Control Messages để bắt đầu và dừng chức năng của nó.
Trong quá trình khởi động, một RF Interface Extension có thể ghi đè lên các định nghĩa của
RF Interface đang hoạt động để cung cấp chức năng của nó. RF Interface Extensions có thể
định nghĩa các tham số cấu hình riêng của giao diện c thông điệp điều khiển. Chúng
cũng có thể cung cấp một định dạng cho các thông điệp dữ liệu khác với định dạng được định
nghĩa bởi RF Interface. Tuy nhiên, RF Interface Extensions không thể ghi đè lên hành vi tắt
kích hoạt của giao diện đang hoạt động.
Đối với một RF Interface đã cho, có thể có nhiều RF Interface Extensions. thể bắt đầu nhiều
RF Interface Extensions cùng một lúc, miễn chúng không loại trừ lẫn nhau. Mỗi RF Interface
Extension xác định với RF Interface Extension khác nào nó có thể được sử dụng.
Tuy nhiên, quá trình mở rộng không thể được kết hợp: RF Interface Extensions không được thiết
kế để mở rộng chức năng của các RF Interface Extensions khác.
2.2.5 Giao tiếp RF
Giao tiếp RF được bắt đầu bằng cách cấu hình và chạy quy trình RF Discovery. RFDiscovery
là một mô-đun NCI được sử dụng để khám phá và liệt kê các điểm cuối NFC từ xa.
Đối với mỗi Điểm cuối NFC từ xa, Quá trình Khám phá RF cung cấp cho DH thông tin về Điểm
cuối NFC từ xa mà đã được thu thập trong quá trình Khám phá RF. Thông tin này bao gồm Giao
thức RF được sử dụng để giao tiếp với Điểm cuối NFC từ xa. Trong quá trình cấu hình Khám phá
RF, DH thiết lập một bản đồ liên kết mà liên kết một Giao diện RF cho mỗi Giao thức RF. Nếu ch
có một Điểm cuối NFC từ xa được phát hiện trong một chu kỳ khám phá, Giao diện RF cho Điểm
cuối này sẽ tự động được kích hoạt. Nếu có nhiều Điểm cuối NFC từ xa được phát hiện trong Chế
độ Poll, DH có thể chọn Điểm cuối mà nó muốn giao tiếp. Lựa chọn này cũng kích hoạt Giao diện
đã được liên kết.
Sau khi một RF Interface đã được kích hoạt, DH có thể giao tiếp với Remote NFCEndpoint bằng
cách sử dụng RF Interface đã được kích hoạt. Một RF Interface đã được kích hoạt thể bị
hiệu hóa bởi DH hoặc NFCC (ví dụ, thay mặt cho Remote NFC Endpoint). Tuy nhiên, mỗi RF
Interface thể xác định phương pháp nào được phép vô hiệu hóa. Các tùy chọn hiệu hóa khác
nhau, phụ thuộc vào phần nào của ngăn xếp giao thức được thực thi trên DH. Ví dụ, nếu một lệnh
giao thức để chấm dứt giao tiếp được xử trên DH, DH sẽ hiệu hóa RF Interface. Nếu một
lệnh như vậy được xử lý trên NFCC, NFCC sẽ vô hiệu hóa Interface.
Thông số kỹ thuật này mô tả các chuỗi tin nhắn điều khiển có thể có cho Giao tiếp RF dưới dạng
một máy trạng thái.
2.2.6 Giao tiếp NFCEE
DH thể tìm hiểu về NFCEEs liên quan đến NFCC bằng cách sử dụng mô-đun NFCEE
Discovery. Trong quá trình NFCEE Discovery, NFCC gán một định danh cho mỗi NFCEE. Khi
DH muốn giao tiếp vi một NFCEE, nó mở một Kết nối Logic tới NFCEE đó bao gồm định danh
tương ứng và chỉ định Giao thức NFCEE được sử dụng.
Mở một Kết nối Logic tới một NFCEE tự động kích hoạt Giao diện NFCEE liên quan đến giao
thức được chỉ định. Vì luôn có một mối quan hệ một-một giữa một Giao thức NFCEE và Giao
diện, không cần bước ánh xạ (không giống như việc kích hoạt Giao diện RF).
Sau khi giao diện đã được kích hoạt, DH có thể giao tiếp với NFCEE bằng cách sử dụng giao
diện đã được kích hoạt.
Đóng kết nối tới giao diện NFCEE sẽ vô hiệu hóa giao diện NFCEE.
NCI cũng bao gồm chức năng cho phép DH kích hoạt hoặc hiệu hóa việc giao tiếp giữa một
NFCEE và NFCC.
2.2.7 Các định danh
NCI sử dụng các định danh khác nhau cho c điểm cuối NFC từ xa NFCEE. Những định
danh này được gán động bởi NFCC. DH học được chúng trong ngữ cảnh RF Discovery
NFCEE Discovery. Các định danh cho các điểm cuối NFC từ xa được gọi là RF Discovery IDs.
Thông thường, chúng tuổi thọ ngắn chỉ giá trị trong thời gian DH muốn giao tiếp với
điểm cuối NFC từ xa. Ngược lại, các định danh cho NFCEEs tuổi thọ lâu hơn, NFCEEs
thường không được thêm vào hoặc loại bỏ thường xuyên khỏi thiết bị NFCForum. Các định danh
cho NFCEEs đưc gọi"NFCEE IDs". Có một đnh danh NFCEE được dành và tĩnh, có giá trị
là 0, đại diện cho DH-NFCEE.
Kết nối Logic sử dụng một loại định danh thứ ba, Loại Đích, như một tham số đầu tiên để xác
định đích cho dữ liệu. Tùy thuộc vào Loại Đích, có thể có một tham số thứ hai để xác định đích
dữ liệu. Ví dụ, nếu Loại Đích là 'Remote NFC Endpoint', thì tham số thứ hai sẽ một ID RF
Discovery.
2.2.8 NFCC như một tài nguyên chia sẻ
NFCC có thể không chỉ được sử dụng bởi DH mà còn bởi NFCEEs trong Thiết bị NFC của NFC
Forum (trong trường hợp như vậy, NFCC là một tài nguyên được chia sẻ). NFCEEs khác nhau
trong cách kết nối với NFCC, và giao thức được sử dụng trên liên kết đó xác định cách mà một
NFCEE có thể sử dụng NFCC. Ví dụ, một số giao thức cho phép NFCEE cung cấp cấu hình
riêng cho các tham số RF cho NFCC (tương tự như Các Tham số Cấu hình NCI cho RF
Discovery). Trong những trường hợp khác, NFCEE có thể không cung cấp thông tin như vậy.
NFCCs có thể có các cài đặt khác nhau trong cách xử lý nhiều cấu hình từ DH và NFCEEs. Ví
dụ, chúng có thể chuyển đổi giữa các cấu hình đó để chỉ có một cấu hình hoạt động tại một thời
điểm, hoặc chúng có thể cố gắng kết hợp các cấu hình khác nhau. Trong quá trình khởi tạo, NCI
cung cấp thông tin cho DH về việc liệu cấu hình mà nó cung cấp có phải là duy nhất hay không,
hoặc nếu NFCC hỗ trợ cấu hình bởi NFCEEs.
NCI bao gồm một module, được gọi là "Listen Mode Routing", với đó DH có thể xác định nơi
để định tuyến dữ liệu nhận được khi NFC Forum Device đã được kích hoạt ở chế độ Nghe.
Listen Mode Routing cho phép DH duy trì một bảng định tuyến trên NFCC. Định tuyến có thể
được thực hiện dựa trên công nghệ hoặc giao thức của lưu lượng dữ liệu đến, dựa trên Mã H
thống nếu giao thức T3T được sử dụng, hoặc dựa trên các định danh ứng dụng nếu các lệnh
7816-4 APDU được sử dụng trên ISO-DEP.
Ngoài ra, NCI cho phép thiết bị DH được thông báo nếu có sự trao đổi thông tin giữa một NFCEE
và một điểm cuối NFC từ xa xảy ra.
Khung nhân tố cốt lõi của NCI
Khung cốt NCI Core Framework
3.1 Tổng quan
NCI Core bao gồm các chức năng bắt buộc sau đây:
Định dạng gói tin để truyền lệnh, phản hồi, thông báo và tin nhắn dữ liệu qua NCI.
Định nghĩa các Lệnh, Phản hồi và Thông báo được sử dụng cho các hoạt động khác nhau
(được chỉ định trong Phần 4) giữa Thiết bị Chủ và Bộ điều khiển NFC. (Một số phần sau
trong đặc tả này xác định các Lệnh, Phản hồi và Thông báo bổ sung không phải phần
của NCI Core.)
Một cơ chế điều khiển luồng cho trao đổi Tin nhắn Lệnh/Phản hồi.
Khái niệm Kết nối Logic cho các Tin nhắn Dữ liệu.
Một chế điều khiển luồng dựa trên tín dụng cho các tin nhắn dữ liệu được gửi từ DH
đến NFCC. Phân đoạn và lắp ráp cho các thông điệp Điều khiển và Dữ liệu.
Một hệ thống địa chỉ cho Môi trường Thực thi NFC (NFCEE). Nhân tố NCI hỗ trợ giao
tiếp giữa DH và NFCEEs được kết nối với NFCC.
LƯU Ý NCI chỉ bao gồm mối liên hệ giữa một DH và một NFCC, vì vậy giao tiếp từ một DH.
để kết nối với một NFCEE chỉ có thể xảy ra nếu nó cũng được hỗ trợ bởi các giao thức
được sử dụng giữa NFCC và NFCEE.
Một hệ thống địa chỉ cho các Điểm cuối NFC từ xa. NCI Core sử dụng Kết nối Logic để
hỗ trợ giao tiếp giữa DH các mục tiêu (NFCEEs hoặc Điểm cuối NFC từ xa), được phát
hiện bởi NFCC.
Đặt lại, khởi tạo và cấu hình của NFCC.
Xử lý ngoại lệ, bao gồm các thông điệp điều khiển để chỉ ra lỗi và quy tắc về cách sử dụng
chúng.
Khung nhân tố cốt lõi của
NCI
3.2 Các thông điệp điều khiển NCI
Các thông điệp điều khiển chứa các lệnh, phản hồi thông báo. Chúng điều khiển tương tác
giữa DH và NFCC. Xem Hình 4.
Hình 4: Trao đổi thông điệp điều khiển
Một Lệnh có thể được gửi bởi DH để chỉ dẫn NFCC thực hiện một hành động cụ thể. Đối với mỗi
Lệnh nhận được, NFCC PHẢI trả lời bằng một Phản hồi để xác nhận việc nhận Lệnh. Phản hồi
THỂ cũng chỉ ra các thay đổi mà Lệnh đã gây ra tại NFCC.
Thông báo CHỈ ĐƯỢC gửi từ NFCC đến DH. Một thông báo thể được gửi để cung cấp
thông tin bổ sung liên quan đến một Lệnh. Một thông báo cũng thể được gửi độc lập với
bất kỳ Lệnh hoặc Phản hồi nào, trừ khi có quy định khác.
Payload của các Control Messages được gửi qua NCI Transport như một payload của Control
Packets. Một Control Packet payload chứa một phần hoặc toàn bộ payload của một Control
Message.
Cả DH và NFCC PHẢI có khả năng hỗ trợ các Tin nhắn Điều khiển với một tải dữ liệu có độ dài
255 octet, đó là kích thước tối đa của bất kỳ tải dữ liệu Tin nhắn Điều khiển nào.
Độ dài tải trọng tối đa của một Gói Điều khiển cũng 255 octet. DH PHẢI khả năng nhận
các Gói Điều khiển tải trọng 255 octet. Tuy nhiên, NFCC CÓ THỂ chỉ định một kích thước
tải trọng Gói Điều khiển tối đa nhỏ hơn, như được xác định bởi tham số Kích thước tải trọng Gói
Điều khiển Tối đa. Xem Mục 4.2.
Kết quả, các Control Messages thể được chia thành nhiều Control Packets khi gửi qua NCI
(được mô tả trong Mục 3.5).
3.2.1Điều khiển luồng cho các thông điệp điều khiển
DH NFCC được phép gửi một Control Message hoàn chỉnh qua NCI trong nhiều Packet
cần thiết. Không có kiểm soát luồng dựa trên Packet cho Control Messages trong NCI.
NCI Core FrameworkCác quy tắc điều khiển luồng sau áp dụng cho các thông
Các quy tắc điều khiển luồng dưới đây áp dụng cho điệp điềucác thông điệp điều khiển:
Sau khi gửi một Lệnh, DH KHÔNG ĐƯỢC gửi bất kỳ Lệnh nào cho đến khi nhận
được một Phản hồi cho Lệnh đó, hoặc cho đến khi nó đã thực hiện cácớc để khôi phục
khả năng trao đổi Tin nhắn với NFCC nếu xác định rằng đã quá nhiều thời gian chờ
đợi Phản hồi.
Lệnh
Phản hồi
Thông báo
Tin Nhắn Điều Khiển Trao đổi
NFCC
DH
Sau khi gửi một Lệnh, DH PHẢI có khả năng nhận được một Phản hồi.
Sau khi gửi một Phản hồi, NFCC PHẢI sẵn sàng nhận lệnh tiếp theo từ DH.
DH PHẢI có thể nhận được Thông báo từ NFCC bất kỳ lúc nào.
3.2.2Xử lý ngoại lệ cho các thông điệp điều khiển
Các quy tắc trong phần này xác định xử ngoại lệ cần được thực hiện bởi người nhận một
Control Message bị lỗi.
Bất kỳ Lệnh nào được nhận bởi DH SẼ bị bỏ qua. Bất kỳ Phản hồi hoặc Thông báo nào
được nhận bởi NFCC SẼ bị bỏ qua.
Một thông điệp điều khiển phù hợp với đặc tả này, ngoại trừ sự hiện diện của các byte bổ sung
cuối, SẼ KHÔNG được coi là lỗi cú pháp, nhưng các byte bổ sung SẼ được bỏ qua.
Trong tất cả các trường hợp khác của một Control Message với lỗi pháp, nghĩa hóa
của Control Packet không nhất quán với đặc tả này nơi người nhận vẫn thể xác định
được loại Control Message:
Nếu Control Message là một Command, NFCC SẼ bỏ qua nội dung của Command và gửi
một Response với các giá trị trường Group Identifier (GID) Opcode Identifier (OID)
giống như trong Command và với giá trị Status là STATUS_SYNTAX_ERROR.
Response SẼ KHÔNG chứa bất kỳ trường bổ sung nào.
Nếu Control Message là một Response, DH SẼ bỏ qua nội dung của Response và thể
gửi một Command khác.
Nếu Control Message là một Thông báo, DH SẼ bỏ qua Thông báo đó.
Trong trường hợp một thông điệp điều khiển có lỗi ngữ nghĩa, có nghĩa là một thông điệp điều
khiển với cú pháp hợp lệ được nhận khi không được mong đợi:
Một phản hồi hoặc thông báo không mong đợi SẼ b bỏ qua bởi DH.
Một Lệnh không mong đợi SẼ KHÔNG gây bất kỳ hành động nào bởi
NFCC. Trừ khi được chỉ định khác, NFCC SẼ gửi một Phản hồi với giá trị Trạng
thái là STATUS_SEMANTIC_ERROR và không có trường bổ sung nào.
NFCC sẽ phản hồi một Lệnh không xác định (GID hoặc OID không xác định) bằng một Phản hồi
có các giá trị trường GID và OID giống như Lệnh, tiếp theo là một trường Trạng thái với giá trị
STATUS_SYNTAX_ERROR và không có trường bổ sung nào.
DH sẽ bỏ qua bất kỳ Phản hồi hoặc Thông báo không xác định nào (GID hoặc OID không xác định).
Một NFCC thực hiện sử dụng thông báo độc quyền NÊN xem xét rằng bất kỳ DH nào không hỗ
trợ các tiện ích độc quyền đó sẽ tự động loại bỏ các thông báo một cách im lặng.
Nếu NFCC không thể thực hiện hành động được yêu cầu trong một Lệnh hợp lệ, NFCC PHẢI
thông báo cho DH bằng cách sử dụng một Phản hồi với một trong c giá trị trường Trạng thái
được xác định trong Bảng 129. Các giá trị Trạng thái được cho phép được chỉ định cho mỗi Phản
hồi. Những lý do không thể thực hiện một Lệnh có thể là tràn bộ đệm, công suất xử lý hạn chế, tài
nguyên hạn chế, v.v.
Nếu DH xác định rằng đã quá nhiều thời gian trôi qua đợi phản hồi sau khi gửi một lệnh, có thể
cho thấy mất khả năng trao đổi tin nhắn với NFCC, nó CÓ THỂ sử dụng các biện pháp ngoại
tuyến để khôi phục giao tiếp.
GHI CHÚ Các biện pháp như hard reset hoặc power cycling của NFCC không nằm trong phạm vi
của thông số kỹ thuật này.
3.3 Tin nhắn dữ liệu NCI
Các tin nhắn dữ liệu được sử dụng để trao đổi dữ liệu qua các Kết nối Logic giữa một DH
mục tiêu NFCC (NFCEE hoặc Remote NFC Endpoint). Xem Hình 5.
Dữ liệu tin nhắn được gửi qua NCI Transport dưới dạng một hoặc nhiều phần tử dữ liệu của
DataPackets. Một phần tử dữ liệu của Data Packet chứa một phần hoặc toàn bộ dữ liệu tin
nhắn.
Các tin nhắn dữ liệu thể được gửi bởi DH (tuân thủ điều khiển luồng) hoặc NFCC bất cứ lúc
nào sau khi đã tạo một Kết nối Logic.
DH phảikhả năng hỗ trợ bất kỳ kích thước dữ liệu nào được gửi bởi NFCC (giả sử rằng DH
thể xử lý bất kỳ dữ liệu nào nhận được từ NFCEE cục bộ hoặc Remote NFCEndpoint). Bất kỳ lúc
nào, kích thước dữ liệu tối đa NFCC thể nhận cho một Kết nối Logic được xác định bởi
Kích thước Gói Dữ liệu Tối đa được thông báo trong quá trình kích hoạt RF Interface trong trường
hợp Kết nối RF Tĩnh (xem Mục 7.3) hoặc trong quá trình Kết nối Logic Động (xem Mục 4.4),
nhân với số lượng tín dụng chưa sử dụng được cung cấp bởi NFCC cho kết nối đó.
Tải trọng tối đa của một Gói Dữ liệu là 255 octet. DH PHẢI có khả năng nhận Gói Dữ liệu với
tải trọng 255 octet. Tuy nhiên, NFCC CÓ THỂ chỉ định kích thước tải trọng Gói Dữ liệu tối đa
nhỏ hơn, dựa trên kết nối logic.
DH
NFCC
DH
NFCC
Dữ liệu
Hình 5: Trao đổi dữ liệu
Tin nhắn dữ
liệu Trao đổi
DH KHÔNG ĐƯỢC gửi Gói Dữ liệu với độ dài dữ liệu vượt quá Kích thước tối đa của Gói Dữ
liệu đã được thông báo trong quá trình tạo Kết nối Logic tương ứng.
Các tin nhắn dữ liệu có thể được phân đoạn như mô tả trong Mục 3.5.
3.3.1 Điều khiển luồng cho các gói dữ liệu.
Một chế điều khiển luồng dữ liệu dựa trên tín dụng được định nghĩa cho dữ liệu được gửi từ DH
đến NFCC THỂ được kích hoạt bởi NFCC để loại bỏ các điều kiện tràn bộ đệm. Giả sử rằng
DH có đủ bộ đệm để xử tất cả dữ liệu được gửi từ NFCC, vì vậy điều khiển luồng dữ liệu dựa
trên tín dụng không được hỗ trợ theo hướng đó.
Cơ chế kiểm soát luồng dựa trên tín dụng áp dụng cho Gói dữ liệu. Mỗi Gói dữ liệu (có thể chứa
một Tin nhắn dữ liệu hoàn chỉnh hoặc một đoạn của Tin nhắn dữ liệu) yêu cầu một tín dụng.
Điều khiển luồng được cấu nh cho mỗi Kết nối Logic trong quá trình thiết lập kết nối (xem Mục
7.3 cho Kết nối RF Tĩnh và Mục 4.4 cho Kết nối Logic Động). Nó có thể được kích hoạt hoặc vô
hiệu hóa khác nhau cho mỗi Kết nối Logic và với các tham số khác nhau.
DH sẽ hỗ trợ điều khiển luồng dựa trên tín dụng, mặc dù NFCC có thể yêu cầu DH sử dụng điều
khiển luồng.
Phần 4.4.4 chỉ định các quy tắc chuẩn cho cơ chế điều khiển luồng dựa trên tín dụng.
3.3.2 Xử lý ngoại lệ cho các tin nhắn dữ liệu
Các quy tắc trong phần này xác định xử ngoại lệ cần được thực hiện bởi người nhận một Tin
nhắn Dữ liệu bị lỗi.
Trong trường hợp một Tin nhắn Dữ liệu lỗi pháp, nghĩa hóa của Tin nhắn Dữ
liệu hoặc bất kỳ Gói dữ liệu nào mà nó được truyền không nhất quán với đặc tả này (bao gồm bất
kỳ định nghĩa nào về mã hóa các trường bên trong Dữ liệu Gói dữ liệu cho Giao diện RF đang
hoạt động hiện tại, như được định nghĩa trong Mục 8):
Nếu người nhận là NFCC, nó SẼ gửi một thông báo CORE_INTERFACE_ERROR_NTF với giá trị
Status là STATUS_SYNTAX_ERROR.
Nếu người nhận là DH, nó SẼ bỏ qua Tin nhắn Dữ liệu.
3.4 Định dạng gói tin
3.4.1Tiêu đề gói thông tin chung
Tất cả các gói tin một tiêu đề chung, bao gồm một trường Loại Tin nhắn (MT) và một trường
Cờ Biên giới Gói tin (PBF), như đưc hiển thị trong Hình 6.
Loại tin nhắn (MT)
Trường MT chỉ ra nội dung của Gói và PHẢI là một trường 3 bit chứa một trong các giá trị được
liệt trong Bảng 2. Nội dung của trường Thông tin phụ thuộc vào giá trị của trường MT. Người
nhận một MT được chỉ định là RFU PHẢI im lặng loại bỏ gói.
Octet 1 - N
1
Octet 0
Thông tin
3
bits
MT
Hình 6: Định dạng gói NCI Core
Bảng 2: Giá trị MT
MT
Mô tả
000b
Gói dữ liệu - Phần 3.4.3
001b
Gói điều khiển – Thông điệp lệnh như là một tải trọng
– Phần 3.4.2
010b
Gói điều khiển – Phần hồi thông điệp như là một tải
trọng – Phần 3.4.2
011b
Gói điều khiển – Thông báo thông điệp như là một tải
trọng – Phần 3.4.2
100b
-
111b
RFU
Cờ Giới Hạn Gói Tin (PBF)
Cờ Biên Giới Gói Tin (PBF) được sử dụng cho Phân đoạn và Lắp ráp và PHẢI là một trường 1 bit
chứa một trong các giá trị được liệt kê trong Bảng 3.
Bảng 3: Giá trị PBF
PBF
Mô tả
0b
Gói tin chứa một thông điệp hoàn chỉnh, hoặc gói tin
chứa đoạn cuối cùng của một thông điệp đã được phân
đoạn.
1b
Gói tin chứa một đoạn của một tin nhắn không phải
là đoạn cuối cùng.
Các quy tắc sau đây áp dụng cho c PBF trong Gói tin:
Nếu Gói tin chứa một Tin nhắn hoàn chỉnh, PBF SẼ được đặt thành 0b.
Nếu Gói tin chứa đoạn cuối cùng của một Tin nhắn được phân đoạn, PBF PHẢI được đặt
thành 0b.
Nếu gói tin không chứa đoạn cuối cùng của một thông điệp được phân đoạn, PBF SẼ
được đặt thành 1b.
Xem phần 3.5 để biết thêm chi tiết về Phân đoạn và Lắp ráp.
3.4.2 Định dạng của các gói điều khiển
Cấu trúc Gói điều khiển được mô tả chi tiết trong Hình 7.
Tiêu đề Gói tin
Hình 7: Cấu trúc Gói điều khiển
Octet 3... Octet (2+L)
Octet 2
Octet 1
Octet 0
GID
Tải trọng
Độ dài tải (L)
OID
L byte
MT
Mỗi Gói Điều Khiển PHẢI một Header Gói 3 octet THỂ thêm dữ liệu để chứa một
Payload Tin Nhắn Điều Khiển hoặc một đoạn của Payload Tin Nhắn Điều Khiển. LƯU Ý Trong
trường hợp một 'Thông điệp Điều khiển' 'trống', chỉ có Tiêu đề Gói tin được gửi.
Loại tin nhắn (MT)
Xin vui lòng tham khảo Bảng 2 để biết chi tiết về lĩnh vực MT.
Cờ Giới Hạn Gói Tin (PBF)
Vui lòng tham khảo Bảng 3 để biết chi tiết về lĩnh vực PBF.
Nhóm Định danh (GID)
NCI hỗ trợ các Lệnh, Phản hồi Thông báo được phân loại theo từng nhóm riêng biệt. Định
danh Nhóm (GID) chỉ ra sự phân loại của thông điệp PHẢI một trường 4-bit chứa một
trong các giá trị được liệt kê trong Bảng 139.
Mã xác định Opcode (OID)
xác định Opcode (OID) chỉ ra snhận dạng của Tin nhắn Điều khiển PHẢI một trường
6 bit là một sự nhận dạng duy nhất của một tập hợp các Tin nhắn Lệnh, Phản hồi hoặc Thông
báo trong nhóm. Giá trị OID được xác định cùng với định nghĩa của các Tin nhắn Điều khiển
tương ứng được mô tả trong Bảng 139.
Độ dài tải (L)
Chiều dài dữ liệu gửi đi PHẢI chỉ ra số octet trong dữ liệu gửi đi. Trường PayloadLength PHẢI
là một trường 8-bit chứa giá trị từ 0 đến 255.
3.4.3 Định dạng của các gói dữ liệu
Cấu trúc Gói dữ liệu được mô tả chi tiết trong Hình 8.
Tiêu đề Gói tin
Hình 8: Cấu trúc gói dữ liệu
Mỗi Gói Dữ liệu PHẢI có một Tiêu đề Gói 3 octet và CÓ THỂ có thêm Dữ liệu để
chứa một tải dữ liệu tin nhắn hoặc một đoạn tải dữ liệu tin nhắn. LƯU Ý Trong một
'Tin nhắn dữ liệu trống', chỉ gửi Tiêu đề Gói tin.
Loại tin nhắn (MT)
Xin vui lòng tham khảo Bảng 2 để biết chi tiết về lĩnh vực MT.
LƯU Ý MT luôn chứa 000b để chỉ một Gói Dữ liệu, như được định nghĩa trong Bảng 2. Cờ
Giới Hạn Gói Tin (PBF)
Vui lòng tham khảo Bảng 3 để biết chi tiết về lĩnh vực PBF.
4
1
1
6
8
Octet 3... Octet (2+L)
Octet 2
Octet 1
Octet 0
Conn ID
T
Độ dài tải (L)
CR
L byte
MT
Nhận dạng Kết nối (Conn ID)
Connection Identifier (Conn ID) PHẢI được sử dụng để chỉ ra LogicalConnection đã thiết lập
trước đó mà dữ liệu này thuộc về. Tham khảo Mục 4.4 để biết chi tiết về việc thiết lập một
LogicalConnection và gán Conn ID. Conn ID là một trường 4-bit chứa giá trị từ 0 đến 15.
Tín dụng (CR)
Trường Credits là một trường 2-bit chứa giá trị từ 0 đến 3. Trong các gói dữ liệu được gửi từ DH
đến NFCC, PHẢI chứa giá trị không (0). Nếu NFCC sử dụng Kiểm soát Luồng dựa trên Tín
dụng (xem Mục 3.3.1 và Mục 4.4.4), thì NFCCTHỂ cấp tín dụng cho DH cho Kết nối Logic
được sử dụng bởi Gói Dữ liệu bằng cách đặt một giá trị khác không trong trường này. Nếu không,
NFCC PHẢI đặt giá trị 0 trong trường này.
Độ dài tải (L)
Trường Độ dài Dữ liệu phải chỉ ra số octet hiện có trong dữ liệu. Trường Độ dài Dữ liệu phải
là một trường 8-bit chứa giá trị từ 0 đến 255.
3.5 Phân đoạn và Lắp ráp lại
Chức năng Phân đoạn và Lắp ráp PHẢI được hỗ trợ bởi cả DH và NFCC.
Việc phân đoạn tái tổ hợp các Tin nhắn PHẢI được thực hiện độc lập cho các Gói điều khiển
và Gói dữ liệu của mỗi Kết nối Logic.
Bất kỳ Bản đồ Vận chuyển NCI nào đều được phép xác định kích thước Đơn vị Truyền tải Tối
đa (MTU) cố định tính bằng octet. Nếu một Bản đồ như vậy được xác định và sử dụng, khi DH
hoặc NFCC cần truyền một Tin nhắn (Tin nhắn Điều khiển hoặc Tin nhắn Dữ liệu) sẽ tạo ra một
Gói tin (bao gồm Tiêu đề Gói tin) lớn hơn MTU, tính năng Phân đoạn và Lắp ráp (SAR) PHẢI
được sử dụng trên Tin nhắn đó.
Các quy tắc sau áp dụng cho việc phân đoạn các thông điệp điều khiển:
Đối với mỗi đoạn của một Control Message, header của Control Packet PHẢI chứa các giá
trị MT, GID và OID giống nhau.
Từ DH đến NFCC: Tính năng Phân đoạn và Lắp ráp PHẢI được sử dụng khi gửi một Tin
nhắn Lệnh từ DH đến NFCC sẽ tạo ra một Điều khiển.
Gói tin với một phần dữ liệu lớn hơn "Kích thước tải dữ liệu gói điều khiển tối đa" được
báo cáo bởi NFCC trong quá trình khởi tạo (xem Mục 4.2). Mỗi đoạn của một Tin nhắn
Lệnh trđoạn cuối CẦN chứa một phần dữ liệu độ dài "Kích thước tải dữ liệu i
điều khiển tối đa".
Từ NFCC đến DH: Khi một NFCC gửi một Control Message đến DH, bất kể độ dài, nếu
cần cho tối ưu hóa nội bộ, THỂ chia nhỏ Control Message thành các Control Packets
nhỏ hơn.
Các quy tắc sau áp dụng cho việc phân đoạn các tin nhắn dữ liệu:
Đối với mỗi phân đoạn của một Tin nhắn Dữ liệu, tiêu đề của Gói dữ liệu PHẢI chứa cùng
MT và Conn ID.
Từ DH đến NFCC: Nếu kích thước dữ liệu của tin nhắn vượt quá Kích thước tải dữ liệu
Gói dữ liệu tối đa của kết nối, thì tính năng Phân đoạn Lắp ráp SẼ được sử dụng trên
Tin nhắn Dữ liệu.
Từ NFCC đến DH: Khi một NFCC gửi một Tin nhắn Dữ liệu đến DH, bất kể độ dài của
dữ liệu, CÓ THỂ chia nhỏ Tin nhắn Dữ liệu thành các Gói dữ liệu nhỏ hơn cho bất kỳ
lý do nội bộ nào; ví dụ, để tối ưu hóa bộ đệm truyền.
Đối với cả Tin nhắn Điều khiển và Tin nhắn Dữ liệu, bit PBF PHẢI được đặt theo định nghĩa trong Bảng 3.
3.6 Kết nối logic
Kết nối Logic được sử dụng để trao đổi Tin nhắn Dữ liệu giữa DH và NFCC. Kết nối Logic cung
cấp một ngữ cảnh chung cho các Tin nhắn Dữ liệu liên quan. Tùy thuộc vào thông tin trao đổi
trong quá trình thiết lập Kết nối Logic, NFCCthể điểm cuối của giao tiếp Dữ liệu, hoặc nó
phải chuyển tiếp Payload của các Tin nhắn Dữ liệu đến hoặc từ một Điểm cuối NFC từ xa hoặc
NFCEE (hai trường hợp cuối cùng là các trường hợp sử dụng chính cho Kết nối Logic).
Một Kết nối Logic được thiết lập thông qua đàm phán giữa NFCC và DH (được mô tả trong Phần
4.4). Sau đây là một tổng quan về khái niệm Kết nối Logic.
Kết nối logic động:
DH CÓ THỂ tạo một Kết nối Logic Động.
NFCC CÓ THỂ từ chối một yêu cầu kết nối đến.
Một định danh (Conn ID) sẽ đưc gán bởi NFCC để xác định Kết nối Logic Động, và điều
này vẫn còn hiệu lực trong suốt thời gian tồn tại của Kết nối Logic Động. ConnID được
giải phóng khi Kết nối Logic Động đưc đóng.
DH có thể đóng một Kết nối Logic Động.
Dữ liệu chỉ có thể được vận chuyển sau khi Kết nối Logic Động được tạo thành công.
Cả DH và NFCC ĐỀU PHẢI bỏ qua các Gói dữ liệu có Conn ID chưa được gán.
Kết nối RF tĩnh:
Kết nối RF tĩnh tồn tại sau khi khởi tạo NFCC mà không cần tạo bằng cách sử dụng các
thông điệp điều khiển kết nối (được định nghĩa trong Mục 4.4.2) và không bao giờ đóng.
Số tín dụng ban đầu và kích thước tải dữ liệu gói tin tối đa của kết nối RF tĩnh được (thiết
lập lại) bởi NFCC mỗi khi nó gửi RF_INTF_ACTIVATED_NTF.
DH SẼ KHÔNG gửi dữ liệu qua Kết nối RF Tĩnh nếu không có RFInterface hoạt động.
Xem Mục 7.3.
Nếu không có giao diện RF hoạt động, cả DH NFCC PHẢI bỏ qua các Gói dữ liệu có
Conn ID của Kết nối RF tĩnh.
GHI CHÚ Tất cả các giao diện RF được bao gồm trong phiên bản này của thông số kỹ thuật chỉ sử dụng RF tĩnh.
Kết nối. Tuy nhiên, Kết nối Logic Linh hoạt thể được sử dụng bởi RFInterfaces
được bao gồm trong các phiên bản tương lai của thông số kỹ thuật này.
Kết nối HCI tĩnh:
Nếu NFCC báo cáo trong CORE_INIT_RSP rằng thực hiện một HCI Host Controller (như
được định nghĩa trong [ETSI_102622]), thì:
Kết nối HCI tĩnh tồn tại sau khi khởi tạo NFCC mà không cần tạo bằng cách sử dụng các
thông điệp điều khiển kết nối (được định nghĩa trong Mục 4.4.2) và không bao giờ đóng.
Số tín dụng ban đầu và kích thước tải dữ liệu gói tin tối đa của Kết nối HCI tĩnh được báo
cáo bởi NFCC trong CORE_INIT_RSP (xem Mục 4.2).
Payload của các Gói Dữ liệu được gửi trên Kết nối HCI Tĩnh PHẢI các gói hostcontroller
protocol (HCP) hợp lệ, như được định nghĩa trong [ETSI_102622]. Mỗi Gói Dữ liệu PHẢI
chứa một gói HCP duy nhất. Quá trình Phân đoạn và Lắp ráp NCI SẼ KHÔNG được áp dụng
cho các Tin nhắn Dữ liệu theo cả hai hướng. chế phân mảnh HCI được sử dụng nếu cần
thiết.
Conn ID phạm vi từ 0 đến 15 (xem Bảng 4). Conn ID của 0 được dành riêng cho Kết nối RF
Tĩnh được sử dụng cho việc truyền thông RF, tồn tại sau Khởi tạo NFCC. Tuy nhiên, nó không khả
dụng cho việc sử dụng trừ khi một Giao diện RF được kích hoạt. Mỗi Giao diện RF xác định xem
Kết nối RF Tĩnh có được sử dụng và xem Kết nối Logic Động có được phép hay không.
Bảng 4: Mã kết nối
Mã kết
nối ID
Mô tả
0000b
Kết nối RF tĩnh giữa DH và Điểm cuối NFC từ xa
0001b
Kết nối HCI tĩnh giữa DH và mạng HCI
0010b-
1111b
Được gán động bởi NFCC
4 Tin nhắn điều khiển cốt lõi NCI
Sau đây là các mô tả về các Lệnh, Phản hồi và Thông báo là một phần của NCI Core.
4.1 Đặt lại của NFCC
Những thông điệp điều khiển này được sử dụng để đặt lại NFCC.
Bảng 5: Các thông điệp điều khiển để đặt lại NFCC
Lệnh CORE_RESET_CMD
Trường dữ
liệu(s)
Độ dài
Giá trị/Mô tả
Loại đặt lại
1 Octet
0x00
Giữ nguyên cấu hình
Đặt lại NFCC và giữ cấu hình
RFConfiguration của NCI (nếu được
hỗ trợ).
0x01
Đặt lại cấu hình.
Đặt lại NFCC bao gồm cấu hình
RFConfiguration của NCI.
0x02 - 0xFF
RFU
CORE_RESET_RSP
Trường dữ
liệu(s)
Độ dài
Giá trị/Mô tả
Trạng thái
1 Octet
Xem Bảng 129.
CORE_RESET_NTF
Trường dữ
liệu(s)
Độ dài
Giá trị/Mô tả
Đặt lại Kích hoạt
1 Octet
0x00
Đã xảy ra lỗi không thể khôi phục
được trong NFCC.
0x01
NFCC đã được bật.
0x02
Lệnh CORE_RESET_CMD đã được nhận
0x03-0x9F
RFU
0xA0-0xFF
Cho sử dụng độc quyền
Trạng thái
cấu hình
1 Octet
Xem Bảng 7.
Phiên bản NCI
1 Octet
Xem Bảng 6.
Mã nhà sản xuất
1 Octet
ID của nhà sản xuất IC, như được định nghĩa trong
[MANU]
Nếu thông tin này không sẵn, NFCC PHẢI đặt
trường này thành 0x00.
Nhà sản xuất
Cụ thể Thông
tin
Độ dài
1 Octet
Độ dài thông tin cụ thể của nhà sản xuất. Nếu
thông tin này không có sẵn, hoặc nếu
ManufacturerID bằng 0x00, NFCC SẼ đặt độ dài
0x00.
Nhà sản xuất
Cụ thể Thông
tin
n
Octets
Trường này chứa thông tin cụ thể của nhà sản xuất NFCC,
như phiên bản chip, phiên bản firmware, vv., được hóa
theo cách cụ thể của nhà sản xuất.
Bảng 6: Phiên bản NCI
Phiên bản NCI
Nhận dạng
Định nghĩa
0x10
Phiên bản NCI 1.0
0x11
Phiên bản NCI 1.1
0x20
Phiên bản NCI 2.0
Các giá trị khác
RFU
Bảng 7: Trạng thái cấu hình
Giá trị
Định nghĩa
0x00
Cấu hình NCI RF đã được giữ nguyên
0x01
Cấu hình NCI RF đã được đặt lại.
0x02-0xFF
RFU
Tham số Phiên bản NCI PHẢI được hóa thành một trường 8 bit gồm hai giá trị không dấu 4
bit đại diện cho các mức phát hành chính và phụ của đặc tả này. 4 bit có giá trị cao nhất PHẢI chỉ
định mức phát hành chính. 4 bit có giá trị thấp nhất PHẢI chỉ định mức phát hành phụ của đặc tả
này.
DH sẽ tiếp tục giao tiếp nếu hỗ trợ phiên bản chính được báo cáo bởi NFCC SẼ
KHÔNG sử dụng c lệnh, giá trị RFU hoặc trường RFU từ phiên bản phụ lớn hơn được báo
cáo bởi NFCC.
CORE_RESET_CMD được phát ra bởi DH để đặt lại NFCC. Lệnh này CÓ THỂ được phát
bất cứ lúc nào sau khi NFCC được cấp nguồn. Nếu DH gửi CORE_RESET_CMD, nó SẼ
bỏ qua tất cả các tin nhắn trừ CORE_RESET_RSP. Sau khi DH đã nhận được
CORE_RESET_RSP, nó SẼ KHÔNG gửi bất kỳ lệnh nào khác cho đến khi nó nhận được
CORE_RESET_NTF.
Khi nhận được CORE_RESET_CMD, NFCC SẼ phản hồi bằng CORE_RESET_RSP với trạng
thái được đặt là STATUS_OK và bắt đầu quy trình đặt lại của nó. Khi hoàn thành quy trình đặt
lại, NFCC SẼ gửi CORE_RESET_NTF thông báo cho DH rằng NFCC đã được đặt lại.
Sau khi đặt lại thành công, các lệnh độc quyền CÓ THỂ được gửi bởi DH, các phản hồi
thông báo độc quyền CÓ THỂ được gửi bởi NFCC. Lệnh CORE_RESET_CMD cho phép xác
định các loại đặt lại khác nhau bằng cách sử dụng tham số Reset Type. Các tham số Configuration
Status trong CORE_RESET_NTF thông báo cho DH về trạng thái của cấu hình RF NCI sau khi
đặt lại.
CHÚ Ý Điều này cho phép các triển khai NFCC khác nhau: Một số NFCC có thể tính liên tục bộ
nhớ cho Cấu hình NCI RF và do đó không cần yêu cầu DH cấu hình lại sau khi đặt lại. Những
người khác có thể không có bộ nhớ lưu trữ cho Cấu hình NCI RF. DH có thể buộc đặt lại cấu
hình bằng cách sử dụng tham số ResetType. DH biết, dựa trên giá trị Trạng thái Cấu hình, liệu
nó cần cấu hình NFCC sau khi đặt lại hay không.
Nếu Reset Type đã được đặt thành 0x00, trạng thái cấu hình trong CORE_RESET_NTF PHẢI được đặt
thành 0x00 hoặc 0x01.
Nếu Reset Type đã được đặt thành 0x01, thì Configuration Status trong CORE_RESET_NTF SẼ được đặt
thành 0x01.
Đối với tất cả các giá trị Trạng thái Cấu hình, tất cả dữ liệu trong Bộ đệm được sử dụng cho Dữ liệu NCI và
Trao đổi Gói điều khiển SẼ được xóa và Bộ đệm SẼ được giải phóng.
Trong ngữ cảnh này, Cấu hình NCI RF SẼ bao gồm:
Bảng định tuyến Chế độ Nghe và trạng thái định tuyến NFCEE Bắt buộc (xem Mục 6.3)
Tất cả các Tham số Cấu hình (xem Bảng 138 để biết danh sách các Tham số Cấu hình)
Cấu hình ánh xạ giao diện RF (xem Mục 6.2).
Nếu Configuration Status trong CORE_RESET_NTF bằng 0x01, thì NCI RF Configuration đã được đặt lại,
bao gồm:
Xóa tất cả các mục của Bảng Định tuyến Chế đNghe hiệu hóa Định tuyến NFCEE Bắt
buộc
Đặt lại tất cả các Tham số Cấu hình về giá trị mặc định của chúng
Xóa cấu hình RF Interface Mapping.
Nếu Configuration Status bằng 0x00, NCI RF Configuration PHẢI giống như trước khi thiết lập
lại. Trong trường hợp này, bản đồ nội bộ của NFCC về NFCEEs thành NFCEE IDs CŨNG không
thay đổi (nếu không bảng định tuyến chế độ nghe sẽ bị hỏng).
NFCC THỂ tự đặt lại (mà không cần nhận đưc CORE_RESET_CMD); dụ, trong trường
hợp lỗi nội bộ. Trong những trường hợp y, NFCC PHẢI thông báo cho DH với
CORE_RESET_NTF. Mã lý do PHẢI phản ánh do đặt lại nội bộ Trạng thái Cấu hình phản
ánh trạng thái Cấu hình RF NCI.
Sau khi đặt lại thành công, việc khởi tạo NCI được ch định trong Mục 4.2 PHẢI được thực hiện.
4.2 Khởi tạo NFCC
Những Thông điệp Kiểm soát này được sử dụng để khi tạo NFCC.
Bảng 8: Các thông điệp điều khiển để khởi tạo NFCC
LỆNH_KHỞI_TẠO_CORE
Trường dữ liệu (s)
Độ dài
Giá trị/Mô tả
Kích hoạt tính năng
2 Octets
Một tập hợp các bit được sử dụng để kích hoạt hoặc vô
hiệu hóa một số tính năng NFCC thể gây ra vấn đề
tương thích cho một DH thực hiện một phiên bản phụ
nhỏ trước đó của thông số kỹ thuật. Trong tất cả các
trường hợp, 0 có nghĩa là vô hiệu hóa tính năng để đảm
bảo hoạt động tương thích ngược. Xem Bảng 9.
CORE_INIT_RSP
Trường dữ liệu(s)
Độ dài
Giá trị/Mô tả
Trạng thái
1 Octet
Xem Bảng 129.
Tính năng của NFCC
4 Octet
Xem Bảng 10.
Max Logical Kết
nối
1 Octet
0x00 - 0x0E
Số lượng tối đa của các Kết nối Logic Động
được hỗ trợ bởi NFCC.
0x0F - 0xFF
RFU
Bảng định tuyến t
Kích thước
2 Octet
Chỉ số lượng tối đa dliệu trong Octets thể trong cấu
hình định tuyến (xem Mục 6.3). Nếu không hỗ trợ Chế độ
Định tuyến Nghe, thì giá trị PHẢI là 0x0000.
Kiểm soát tối đa
Gói dữ liệu Kích
thước
1 Octet
Chỉ số độ dài tải tối đa của một Gói Điều khiển NCI NFCC
có thể nhận được.
Phạm vi hợp lệ là từ 32 đến 255
LƯU Ý Tất cả c thông điệp điều khiển được trao đổi độ
dài của nó nhỏ hơn 32 octet.
Kích thước gói dữ
liệu tối đa ca giao
diện HCI tĩnh
1 Octet
Độ dài tải tối đa của một Gói Dữ liệu NCI mà NFCC có thể
nhận trên Kết nối HCI Tĩnh.
CORE_INIT_RSP
Trường dữ liệu(s)
Độ dài
Giá trị/Mô tả
Kết nối
Nếu NFCC triển khai một HCI Host Controller, phạm vi
hợp lệ là từ 32 đến 255.
Nếu không, giá trị SẼ là 0.
Số tín chỉ của Kết
nối HCI Tĩnh
1 Octet
Số lượng tín dụng được phân bổ bởi NFCC cho Kết nối
StaticHCI.
Nếu NFCC triển khai một HCI Host Controller, giá tr
SẼ được điền theo Bảng 15.
Nếu không, giá trị SẼ là 0
Max NFC-V RF
Kích thước khung
2 Octet
Trường này chứa kích thước tối đa của dliệu Payload_Data
trong một khung tiêu chuẩn NFC-V (được xác định trong
[DIGITAL]) được hỗ trợ bởi Bộ điều khiển NFC để truyền
lệnh nhận phản hồi, khi được cấu hình để tìm kiếm công
nghệ NFC-V.
NFCC sẽ hỗ trợ một Max NFC-V RF FrameSize với ít nhất
64 byte.
Số lượng giao
diện RF được
hỗ trợ
1 Octet
Số lượng giao diện RF được hỗ trợ để theo dõi
RFInterfaces
được hỗ trợ [1..n]
x+2
Octets
Giao diện
1 Octet
Xem Bảng 134.
Tất cả các giao diện, bao gồm giao
diện giả tưởng NFCEE DirectRF
Interface, được hỗ trợ bởi NFCC
PHẢI được báo cáo.
Số lượng
phần mở
rộng.
1 Octet
Số lượng RF
InterfaceExtensions được hỗ trợ
cho giao diện này (x).
Danh
sách phần
mở
rộng [0..x]
1 Octet
Xem Bảng 135.
Danh sách các Phần mở
rộng RFInterface được hỗ
trợ
Bảng 9: Giá trị cho Bản đồ Bit Tích hợp Tính
năng
Bit Mask
Mô tả
b7
b6
b5
b4
b3
b2
b1
b0
Octet
0
0
0
0
0
0
0
0
0
RFU
Octet
1
0
0
0
0
0
0
0
0
RFU
CORE_INIT_CMD được sử dụng bởi DH để khởi tạo NFCC. Lệnh này PHẢI được phát ra sau
khi nhận được thông báo rằng NFCC đã được đặt lại thành công (xem Mục 4.1), và chỉ trong thời
gian khác.
Khi thực hiện lệnh, NFCC SẼ gửi một CORE_INIT_RSP để thông báo cho DH rằng NFCC đã
thực hiện lệnh. Nếu khởi tạo thành công, trạng thái SẼ STATUS_OK. Nếu NFCC không thể
thực hiện lệnh, trạng thái SẼ được đặt STATUS_FAILED (xem Bảng 129), các tham skhác
của CORE_INIT_RSP SẼ được bỏ qua bởi DH.
Không lệnh nào khác được định nghĩa trong đặc tả này ngoại trừ CORE_RESET_CMD hoặc
CORE_INIT_CMD không được gửi trước khi NFCC được khởi tạo thành công.
Sau khi gửi một CORE_INIT_CMD, DH SẼ loại bỏ bất kỳ thông tin nào đã được cung cấp trước
đó bởi NFCC liên quan đến yêu cầu khám phá từ NFCEE(s).

Preview text:

Kiến trúc 2 NCI
Phần này trình bày các khái niệm cơ bản được sử dụng trong NCI. Đây là một giới thiệu không
chính thức về các tuyên bố quy phạm sau này trong tài liệu này. 2.1 Các thành phần
NCI có thể được chia thành các thành phần logic sau đây: Hệ thống NCI
Hệ thống NCI xác định chức năng cơ bản của việc giao tiếp giữa một Thiết bị Chủ (DH) và
một Bộ điều khiển NFC (NFCC). Điều này cho phép trao đổi Tin nhắn Điều khiển (Lệnh,
Phản hồi và Thông báo) và Tin nhắn Dữ liệu giữa một NFCC và một DH. Bản đồ vận chuyển
Bản đồ giao thông xác định cách NCI giao thức được di chuyển vào một NCI Vận chuyển cơ
bản, đó là một kết nối vật lý (và giao thức tùy chọn liên quan) giữa DHand và NFCC. Mỗi bản
đồ giao thông được liên kết với một NCI Vận chuyển cụ thể. Các module NCI
Các module NCI được xây dựng dựa trên chức năng được cung cấp bởi NCI Hệ Thống. Mỗi
module cung cấp một chức năng được xác định rõ ràng cho DH. Các module NCI cung cấp
chức năng để cấu hình NFCC và khám phá và giao tiếp với các điểm cuối NFC từ xa hoặc với các NFCEE cục bộ.
Một số module NCI là các phần bắt buộc trong việc triển khai NCI, trong khi các module khác là tùy chọn.
Có thể có sự phụ thuộc giữa các module NCI trong ý nghĩa rằng một module chỉ có ích nếu
có các module khác được triển khai cùng. Ví dụ, tất cả các module xử lý giao tiếp với một
điểm cuối NFC từ xa (các module giao diện RF) phụ thuộc vào quá trình RF Discovery. Các module NCI
Hình 2: Các thành phần NCI 2.2 Khái niệm
Phần này trình bày các khái niệm cơ bản được sử dụng trong thiết kế NCI. N I H C Thống Bản đồ Bản đồ Giaothông Bản đồ Giaothô ng GiaoThông Vận chuyển Giao thông Giao thông Thiết bị NFC Forum DH NCI NFCC Giao thức NFCEE NFCEE
Điểm cuối NFCTừ xa
Hình 3: Khái niệm NCI
2.2.1 Tin nhắn điều khiển
Một DH sử dụng NCI Control Messages để quản lý và cấu hình một NFCC. Control Messages
bao gồm các lệnh (Commands), phản hồi (Responses) và thông báo (Notifications). Các lệnh chỉ
được gửi từ DH đến NFCC, và các phản hồi và thông báo chỉ được gửi theo hướng ngược lại.
Control Messages được truyền trong các gói tin NCI Control Packets, và NCI hỗ trợ chia nhỏ
Control Messages thành nhiều gói tin.
NCI Core xác định một tập hợp cơ bản các thông điệp điều khiển (ví dụ, để thiết lập và truy
xuất các tham số cấu hình NFCC). Các thông điệp điều khiển bổ sung có thể được xác định bởi các mô-đun NCI.
2.2.2 Các tin nhắn dữ liệu
Các tin nhắn dữ liệu được sử dụng để truyền dữ liệu đến một Điểm cuối NFC từ xa (gọi là "
RFCommunication" trong NCI) hoặc đến một NFCEE (gọi là "NFCEE Communication" trong NCI).
NCI xác định các Gói dữ liệu (DataPackets) cho phép chia nhỏ các tin nhắn dữ liệu thành nhiều gói.
Các tin nhắn dữ liệu chỉ có thể được trao đổi trong ngữ cảnh của một Kết nối Logic. Một Kết nối
Logic phải được thiết lập trước khi gửi bất kỳ tin nhắn dữ liệu nào. Một Kết nối Logic, Kết nối RF
Tĩnh, luôn được thiết lập trong quá trình khởi tạo của NCI. Kết nối RF Tĩnh được dành riêng cho
Truyền thông RF. Các Kết nối Logic bổ sung có thể được tạo ra cho Truyền thông RF và/hoặc NFCEE.
Logical Connections cung cấp điều khiển luồng cho các Tin nhắn Dữ liệu theo hướng từ DH đến NFCC. 2.2.3 Giao diện
Một mô-đun NCI có thể chứa một Giao diện duy nhất. Mỗi Giao diện xác định cách mà một
DH có thể giao tiếp qua NCI với một Điểm cuối NFC từ xa hoặc NFCEE. Mỗi Giao diện
được xác định để hỗ trợ các giao thức cụ thể và chỉ có thể được sử dụng cho những giao thức
đó (hầu hết các Giao diện hỗ trợ chính xác một giao thức). NCI xác định hai loại Giao diện:
Giao diện RF và Giao diện NFCEE.
Các giao thức được sử dụng để giao tiếp với một điểm cuối NFC từ xa được gọi là giao thức
RF. Các giao thức được sử dụng để giao tiếp với một NFCEE được gọi là giao thức NFCEE.
Một giao diện NFCEE có mối quan hệ một-một với một giao thức NFCEE. Tuy nhiên, có thể có
nhiều giao diện RF cho một giao thức RF. Các giao diện RF cho phép NCI hỗ trợ các phân chia
khác nhau của việc thực hiện giao thức giữa NFCC và DH. Một NCI implementation trên NFCC
bao gồm các giao diện RF phù hợp với chức năng được thực hiện trên NFCC.
Các giao diện cần được kích hoạt trước khi sử dụng và deactived khi chúng không còn được sử dụng nữa.
Một Giao diện có thể xác định các tham số cấu hình và Tin nhắn Điều khiển riêng của nó.
Nhưng quan trọng nhất, nó xác định cả ánh xạ của dữ liệu trong Tin nhắn dữ liệu tới giao thức
RF hoặc NFCEE tương ứng và, trong trường hợp Giao tiếp RF, xác định liệu có sử dụng Kết nối
RF Tĩnh và/hoặc Kết nối Logic Động để trao đổi các Tin nhắn Dữ liệu đó giữa DH và NFCC.
2.2.4 Mở rộng giao diện RF
Một RF Interface Extension thêm vào một tập hợp cụ thể và rõ ràng các chức năng vào một hoặc
nhiều RFInterfaces. Mỗi RF Interface Extension xác định các RF Interfaces mà nó có thể mở rộng.
Sự sẵn có của một RF Interface Extension phụ thuộc vào thời gian mà một trong những RF
Interfaces này được kích hoạt. Sự sẵn có cũng có thể phụ thuộc vào các điều kiện khác, ví dụ như
giao thức đang được sử dụng trong giao tiếp RF. Nếu một RF Interface được kích hoạt, các RF
Interface Extension có sẵn có thể được bắt đầu và dừng bởi DH. RF Interface Extensions không
bao giờ được bắt đầu tự động mà chỉ dừng lại khi RF Interface bị vô hiệu hóa. Mỗi RF Interface
Extension xác định các Control Messages để bắt đầu và dừng chức năng của nó.
Trong quá trình khởi động, một RF Interface Extension có thể ghi đè lên các định nghĩa của
RF Interface đang hoạt động để cung cấp chức năng của nó. RF Interface Extensions có thể
định nghĩa các tham số cấu hình riêng của giao diện và các thông điệp điều khiển. Chúng
cũng có thể cung cấp một định dạng cho các thông điệp dữ liệu khác với định dạng được định
nghĩa bởi RF Interface. Tuy nhiên, RF Interface Extensions không thể ghi đè lên hành vi tắt
kích hoạt của giao diện đang hoạt động.
Đối với một RF Interface đã cho, có thể có nhiều RF Interface Extensions. Có thể bắt đầu nhiều
RF Interface Extensions cùng một lúc, miễn là chúng không loại trừ lẫn nhau. Mỗi RF Interface
Extension xác định với RF Interface Extension khác nào nó có thể được sử dụng.
Tuy nhiên, quá trình mở rộng không thể được kết hợp: RF Interface Extensions không được thiết
kế để mở rộng chức năng của các RF Interface Extensions khác. 2.2.5 Giao tiếp RF
Giao tiếp RF được bắt đầu bằng cách cấu hình và chạy quy trình RF Discovery. RFDiscovery
là một mô-đun NCI được sử dụng để khám phá và liệt kê các điểm cuối NFC từ xa.
Đối với mỗi Điểm cuối NFC từ xa, Quá trình Khám phá RF cung cấp cho DH thông tin về Điểm
cuối NFC từ xa mà đã được thu thập trong quá trình Khám phá RF. Thông tin này bao gồm Giao
thức RF được sử dụng để giao tiếp với Điểm cuối NFC từ xa. Trong quá trình cấu hình Khám phá
RF, DH thiết lập một bản đồ liên kết mà liên kết một Giao diện RF cho mỗi Giao thức RF. Nếu chỉ
có một Điểm cuối NFC từ xa được phát hiện trong một chu kỳ khám phá, Giao diện RF cho Điểm
cuối này sẽ tự động được kích hoạt. Nếu có nhiều Điểm cuối NFC từ xa được phát hiện trong Chế
độ Poll, DH có thể chọn Điểm cuối mà nó muốn giao tiếp. Lựa chọn này cũng kích hoạt Giao diện đã được liên kết.
Sau khi một RF Interface đã được kích hoạt, DH có thể giao tiếp với Remote NFCEndpoint bằng
cách sử dụng RF Interface đã được kích hoạt. Một RF Interface đã được kích hoạt có thể bị vô
hiệu hóa bởi DH hoặc NFCC (ví dụ, thay mặt cho Remote NFC Endpoint). Tuy nhiên, mỗi RF
Interface có thể xác định phương pháp nào được phép vô hiệu hóa. Các tùy chọn vô hiệu hóa khác
nhau, phụ thuộc vào phần nào của ngăn xếp giao thức được thực thi trên DH. Ví dụ, nếu một lệnh
giao thức để chấm dứt giao tiếp được xử lý trên DH, DH sẽ vô hiệu hóa RF Interface. Nếu một
lệnh như vậy được xử lý trên NFCC, NFCC sẽ vô hiệu hóa Interface.
Thông số kỹ thuật này mô tả các chuỗi tin nhắn điều khiển có thể có cho Giao tiếp RF dưới dạng một máy trạng thái. 2.2.6 Giao tiếp NFCEE
DH có thể tìm hiểu về NFCEEs liên quan đến NFCC bằng cách sử dụng mô-đun NFCEE
Discovery. Trong quá trình NFCEE Discovery, NFCC gán một định danh cho mỗi NFCEE. Khi
DH muốn giao tiếp với một NFCEE, nó mở một Kết nối Logic tới NFCEE đó bao gồm định danh
tương ứng và chỉ định Giao thức NFCEE được sử dụng.
Mở một Kết nối Logic tới một NFCEE tự động kích hoạt Giao diện NFCEE liên quan đến giao
thức được chỉ định. Vì luôn có một mối quan hệ một-một giữa một Giao thức NFCEE và Giao
diện, không cần bước ánh xạ (không giống như việc kích hoạt Giao diện RF).
Sau khi giao diện đã được kích hoạt, DH có thể giao tiếp với NFCEE bằng cách sử dụng giao
diện đã được kích hoạt.
Đóng kết nối tới giao diện NFCEE sẽ vô hiệu hóa giao diện NFCEE.
NCI cũng bao gồm chức năng cho phép DH kích hoạt hoặc vô hiệu hóa việc giao tiếp giữa một NFCEE và NFCC. 2.2.7 Các định danh
NCI sử dụng các định danh khác nhau cho các điểm cuối NFC từ xa và NFCEE. Những định
danh này được gán động bởi NFCC. DH học được chúng trong ngữ cảnh RF Discovery và
NFCEE Discovery. Các định danh cho các điểm cuối NFC từ xa được gọi là RF Discovery IDs.
Thông thường, chúng có tuổi thọ ngắn vì chỉ có giá trị trong thời gian DH muốn giao tiếp với
điểm cuối NFC từ xa. Ngược lại, các định danh cho NFCEEs có tuổi thọ lâu hơn, vì NFCEEs
thường không được thêm vào hoặc loại bỏ thường xuyên khỏi thiết bị NFCForum. Các định danh
cho NFCEEs được gọi là "NFCEE IDs". Có một định danh NFCEE được dành và tĩnh, có giá trị
là 0, đại diện cho DH-NFCEE.
Kết nối Logic sử dụng một loại định danh thứ ba, Loại Đích, như một tham số đầu tiên để xác
định đích cho dữ liệu. Tùy thuộc vào Loại Đích, có thể có một tham số thứ hai để xác định đích
dữ liệu. Ví dụ, nếu Loại Đích là 'Remote NFC Endpoint', thì tham số thứ hai sẽ là một ID RF Discovery.
2.2.8 NFCC như một tài nguyên chia sẻ
NFCC có thể không chỉ được sử dụng bởi DH mà còn bởi NFCEEs trong Thiết bị NFC của NFC
Forum (trong trường hợp như vậy, NFCC là một tài nguyên được chia sẻ). NFCEEs khác nhau
trong cách kết nối với NFCC, và giao thức được sử dụng trên liên kết đó xác định cách mà một
NFCEE có thể sử dụng NFCC. Ví dụ, một số giao thức cho phép NFCEE cung cấp cấu hình
riêng cho các tham số RF cho NFCC (tương tự như Các Tham số Cấu hình NCI cho RF
Discovery). Trong những trường hợp khác, NFCEE có thể không cung cấp thông tin như vậy.
NFCCs có thể có các cài đặt khác nhau trong cách xử lý nhiều cấu hình từ DH và NFCEEs. Ví
dụ, chúng có thể chuyển đổi giữa các cấu hình đó để chỉ có một cấu hình hoạt động tại một thời
điểm, hoặc chúng có thể cố gắng kết hợp các cấu hình khác nhau. Trong quá trình khởi tạo, NCI
cung cấp thông tin cho DH về việc liệu cấu hình mà nó cung cấp có phải là duy nhất hay không,
hoặc nếu NFCC hỗ trợ cấu hình bởi NFCEEs.
NCI bao gồm một module, được gọi là "Listen Mode Routing", với đó DH có thể xác định nơi
để định tuyến dữ liệu nhận được khi NFC Forum Device đã được kích hoạt ở chế độ Nghe.
Listen Mode Routing cho phép DH duy trì một bảng định tuyến trên NFCC. Định tuyến có thể
được thực hiện dựa trên công nghệ hoặc giao thức của lưu lượng dữ liệu đến, dựa trên Mã Hệ
thống nếu giao thức T3T được sử dụng, hoặc dựa trên các định danh ứng dụng nếu các lệnh
7816-4 APDU được sử dụng trên ISO-DEP.
Ngoài ra, NCI cho phép thiết bị DH được thông báo nếu có sự trao đổi thông tin giữa một NFCEE
và một điểm cuối NFC từ xa xảy ra.
Khung nhân tố cốt lõi của NCI
Khung cốt NCI Core Framework 3.1 Tổng quan
NCI Core bao gồm các chức năng bắt buộc sau đây:
• Định dạng gói tin để truyền lệnh, phản hồi, thông báo và tin nhắn dữ liệu qua NCI.
• Định nghĩa các Lệnh, Phản hồi và Thông báo được sử dụng cho các hoạt động khác nhau
(được chỉ định trong Phần 4) giữa Thiết bị Chủ và Bộ điều khiển NFC. (Một số phần sau
trong đặc tả này xác định các Lệnh, Phản hồi và Thông báo bổ sung không phải là phần của NCI Core.)
• Một cơ chế điều khiển luồng cho trao đổi Tin nhắn Lệnh/Phản hồi.
Khái niệm Kết nối Logic cho các Tin nhắn Dữ liệu.
• Một cơ chế điều khiển luồng dựa trên tín dụng cho các tin nhắn dữ liệu được gửi từ DH
đến NFCC. Phân đoạn và lắp ráp cho các thông điệp Điều khiển và Dữ liệu.
• Một hệ thống địa chỉ cho Môi trường Thực thi NFC (NFCEE). Nhân tố NCI hỗ trợ giao
tiếp giữa DH và NFCEEs được kết nối với NFCC.
LƯU Ý NCI chỉ bao gồm mối liên hệ giữa một DH và một NFCC, vì vậy giao tiếp từ một DH.
để kết nối với một NFCEE chỉ có thể xảy ra nếu nó cũng được hỗ trợ bởi các giao thức
được sử dụng giữa NFCC và NFCEE.
• Một hệ thống địa chỉ cho các Điểm cuối NFC từ xa. NCI Core sử dụng Kết nối Logic để
hỗ trợ giao tiếp giữa DH và các mục tiêu (NFCEEs hoặc Điểm cuối NFC từ xa), được phát hiện bởi NFCC.
• Đặt lại, khởi tạo và cấu hình của NFCC.
• Xử lý ngoại lệ, bao gồm các thông điệp điều khiển để chỉ ra lỗi và quy tắc về cách sử dụng chúng.
Khung nhân tố cốt lõi của NCI
3.2 Các thông điệp điều khiển NCI
Các thông điệp điều khiển chứa các lệnh, phản hồi và thông báo. Chúng điều khiển tương tác
giữa DH và NFCC. Xem Hình 4. DH Lệnh NFCC Phản hồi Thông báo
Tin Nhắn Điều Khiển Trao đổi
Hình 4: Trao đổi thông điệp điều khiển
Một Lệnh có thể được gửi bởi DH để chỉ dẫn NFCC thực hiện một hành động cụ thể. Đối với mỗi
Lệnh nhận được, NFCC PHẢI trả lời bằng một Phản hồi để xác nhận việc nhận Lệnh. Phản hồi
CÓ THỂ cũng chỉ ra các thay đổi mà Lệnh đã gây ra tại NFCC.
Thông báo CHỈ ĐƯỢC gửi từ NFCC đến DH. Một thông báo có thể được gửi để cung cấp
thông tin bổ sung liên quan đến một Lệnh. Một thông báo cũng có thể được gửi độc lập với
bất kỳ Lệnh hoặc Phản hồi nào, trừ khi có quy định khác.
Payload của các Control Messages được gửi qua NCI Transport như là một payload của Control
Packets. Một Control Packet payload chứa một phần hoặc toàn bộ payload của một Control Message.
Cả DH và NFCC PHẢI có khả năng hỗ trợ các Tin nhắn Điều khiển với một tải dữ liệu có độ dài
255 octet, đó là kích thước tối đa của bất kỳ tải dữ liệu Tin nhắn Điều khiển nào.
Độ dài tải trọng tối đa của một Gói Điều khiển cũng là 255 octet. DH PHẢI có khả năng nhận
các Gói Điều khiển có tải trọng 255 octet. Tuy nhiên, NFCC CÓ THỂ chỉ định một kích thước
tải trọng Gói Điều khiển tối đa nhỏ hơn, như được xác định bởi tham số Kích thước tải trọng Gói
Điều khiển Tối đa. Xem Mục 4.2.
Kết quả, các Control Messages có thể được chia thành nhiều Control Packets khi gửi qua NCI
(được mô tả trong Mục 3.5).
3.2.1Điều khiển luồng cho các thông điệp điều khiển
DH và NFCC được phép gửi một Control Message hoàn chỉnh qua NCI trong nhiều Packet
cần thiết. Không có kiểm soát luồng dựa trên Packet cho Control Messages trong NCI.
NCI Core FrameworkCác quy tắc điều khiển luồng sau áp dụng cho các thông
Các quy tắc điều khiển luồng dưới đây áp dụng cho điệp điềucác thông điệp điều khiển:
• Sau khi gửi một Lệnh, DH KHÔNG ĐƯỢC gửi bất kỳ Lệnh nào cho đến khi nó nhận
được một Phản hồi cho Lệnh đó, hoặc cho đến khi nó đã thực hiện các bước để khôi phục
khả năng trao đổi Tin nhắn với NFCC nếu nó xác định rằng đã quá nhiều thời gian chờ đợi Phản hồi.
• Sau khi gửi một Lệnh, DH PHẢI có khả năng nhận được một Phản hồi.
• Sau khi gửi một Phản hồi, NFCC PHẢI sẵn sàng nhận lệnh tiếp theo từ DH.
• DH PHẢI có thể nhận được Thông báo từ NFCC bất kỳ lúc nào.
3.2.2Xử lý ngoại lệ cho các thông điệp điều khiển
Các quy tắc trong phần này xác định xử lý ngoại lệ cần được thực hiện bởi người nhận một Control Message bị lỗi.
Bất kỳ Lệnh nào được nhận bởi DH SẼ bị bỏ qua. Bất kỳ Phản hồi hoặc Thông báo nào
được nhận bởi NFCC SẼ bị bỏ qua.
Một thông điệp điều khiển phù hợp với đặc tả này, ngoại trừ sự hiện diện của các byte bổ sung ở
cuối, SẼ KHÔNG được coi là lỗi cú pháp, nhưng các byte bổ sung SẼ được bỏ qua.
Trong tất cả các trường hợp khác của một Control Message với lỗi cú pháp, có nghĩa là mã hóa
của Control Packet không nhất quán với đặc tả này và nơi mà người nhận vẫn có thể xác định
được loại Control Message:
• Nếu Control Message là một Command, NFCC SẼ bỏ qua nội dung của Command và gửi
một Response với các giá trị trường Group Identifier (GID) và Opcode Identifier (OID)
giống như trong Command và với giá trị Status là STATUS_SYNTAX_ERROR.
Response SẼ KHÔNG chứa bất kỳ trường bổ sung nào.
• Nếu Control Message là một Response, DH SẼ bỏ qua nội dung của Response và có thể gửi một Command khác.
• Nếu Control Message là một Thông báo, DH SẼ bỏ qua Thông báo đó.
Trong trường hợp có một thông điệp điều khiển có lỗi ngữ nghĩa, có nghĩa là một thông điệp điều
khiển với cú pháp hợp lệ được nhận khi không được mong đợi:
• Một phản hồi hoặc thông báo không mong đợi SẼ bị bỏ qua bởi DH.
• Một Lệnh không mong đợi SẼ KHÔNG gây bất kỳ hành động nào bởi
NFCC. Trừ khi được chỉ định khác, NFCC SẼ gửi một Phản hồi với giá trị Trạng
thái là STATUS_SEMANTIC_ERROR và không có trường bổ sung nào.
NFCC sẽ phản hồi một Lệnh không xác định (GID hoặc OID không xác định) bằng một Phản hồi
có các giá trị trường GID và OID giống như Lệnh, tiếp theo là một trường Trạng thái với giá trị
STATUS_SYNTAX_ERROR và không có trường bổ sung nào.
DH sẽ bỏ qua bất kỳ Phản hồi hoặc Thông báo không xác định nào (GID hoặc OID không xác định).
Một NFCC thực hiện sử dụng thông báo độc quyền NÊN xem xét rằng bất kỳ DH nào không hỗ
trợ các tiện ích độc quyền đó sẽ tự động loại bỏ các thông báo một cách im lặng.
Nếu NFCC không thể thực hiện hành động được yêu cầu trong một Lệnh hợp lệ, NFCC PHẢI
thông báo cho DH bằng cách sử dụng một Phản hồi với một trong các giá trị trường Trạng thái
được xác định trong Bảng 129. Các giá trị Trạng thái được cho phép được chỉ định cho mỗi Phản
hồi. Những lý do không thể thực hiện một Lệnh có thể là tràn bộ đệm, công suất xử lý hạn chế, tài nguyên hạn chế, v.v.
Nếu DH xác định rằng đã quá nhiều thời gian trôi qua đợi phản hồi sau khi gửi một lệnh, có thể
cho thấy mất khả năng trao đổi tin nhắn với NFCC, nó CÓ THỂ sử dụng các biện pháp ngoại
tuyến để khôi phục giao tiếp.
GHI CHÚ Các biện pháp như hard reset hoặc power cycling của NFCC không nằm trong phạm vi
của thông số kỹ thuật này.
3.3 Tin nhắn dữ liệu NCI
Các tin nhắn dữ liệu được sử dụng để trao đổi dữ liệu qua các Kết nối Logic giữa một DH và
mục tiêu NFCC (NFCEE hoặc Remote NFC Endpoint). Xem Hình 5. DH NFCC DH NFCC Dữ liệu Tin nhắn dữ liệu Trao đổi
Hình 5: Trao đổi dữ liệu
Dữ liệu tin nhắn được gửi qua NCI Transport dưới dạng một hoặc nhiều phần tử dữ liệu của
DataPackets. Một phần tử dữ liệu của Data Packet chứa một phần hoặc toàn bộ dữ liệu tin nhắn.
Các tin nhắn dữ liệu có thể được gửi bởi DH (tuân thủ điều khiển luồng) hoặc NFCC bất cứ lúc
nào sau khi đã tạo một Kết nối Logic.
DH phải có khả năng hỗ trợ bất kỳ kích thước dữ liệu nào được gửi bởi NFCC (giả sử rằng DH có
thể xử lý bất kỳ dữ liệu nào nhận được từ NFCEE cục bộ hoặc Remote NFCEndpoint). Bất kỳ lúc
nào, kích thước dữ liệu tối đa mà NFCC có thể nhận cho một Kết nối Logic được xác định bởi
Kích thước Gói Dữ liệu Tối đa được thông báo trong quá trình kích hoạt RF Interface trong trường
hợp Kết nối RF Tĩnh (xem Mục 7.3) hoặc trong quá trình Kết nối Logic Động (xem Mục 4.4),
nhân với số lượng tín dụng chưa sử dụng được cung cấp bởi NFCC cho kết nối đó.
Tải trọng tối đa của một Gói Dữ liệu là 255 octet. DH PHẢI có khả năng nhận Gói Dữ liệu với
tải trọng 255 octet. Tuy nhiên, NFCC CÓ THỂ chỉ định kích thước tải trọng Gói Dữ liệu tối đa
nhỏ hơn, dựa trên kết nối logic.
DH KHÔNG ĐƯỢC gửi Gói Dữ liệu với độ dài dữ liệu vượt quá Kích thước tối đa của Gói Dữ
liệu đã được thông báo trong quá trình tạo Kết nối Logic tương ứng.
Các tin nhắn dữ liệu có thể được phân đoạn như mô tả trong Mục 3.5.
3.3.1 Điều khiển luồng cho các gói dữ liệu.
Một cơ chế điều khiển luồng dữ liệu dựa trên tín dụng được định nghĩa cho dữ liệu được gửi từ DH
đến NFCC và CÓ THỂ được kích hoạt bởi NFCC để loại bỏ các điều kiện tràn bộ đệm. Giả sử rằng
DH có đủ bộ đệm để xử lý tất cả dữ liệu được gửi từ NFCC, vì vậy điều khiển luồng dữ liệu dựa
trên tín dụng không được hỗ trợ theo hướng đó.
Cơ chế kiểm soát luồng dựa trên tín dụng áp dụng cho Gói dữ liệu. Mỗi Gói dữ liệu (có thể chứa
một Tin nhắn dữ liệu hoàn chỉnh hoặc một đoạn của Tin nhắn dữ liệu) yêu cầu một tín dụng.
Điều khiển luồng được cấu hình cho mỗi Kết nối Logic trong quá trình thiết lập kết nối (xem Mục
7.3 cho Kết nối RF Tĩnh và Mục 4.4 cho Kết nối Logic Động). Nó có thể được kích hoạt hoặc vô
hiệu hóa khác nhau cho mỗi Kết nối Logic và với các tham số khác nhau.
DH sẽ hỗ trợ điều khiển luồng dựa trên tín dụng, mặc dù NFCC có thể yêu cầu DH sử dụng điều khiển luồng.
Phần 4.4.4 chỉ định các quy tắc chuẩn cho cơ chế điều khiển luồng dựa trên tín dụng.
3.3.2 Xử lý ngoại lệ cho các tin nhắn dữ liệu
Các quy tắc trong phần này xác định xử lý ngoại lệ cần được thực hiện bởi người nhận một Tin
nhắn Dữ liệu bị lỗi.
Trong trường hợp có một Tin nhắn Dữ liệu có lỗi cú pháp, có nghĩa là mã hóa của Tin nhắn Dữ
liệu hoặc bất kỳ Gói dữ liệu nào mà nó được truyền không nhất quán với đặc tả này (bao gồm bất
kỳ định nghĩa nào về mã hóa các trường bên trong Dữ liệu Gói dữ liệu cho Giao diện RF đang
hoạt động hiện tại, như được định nghĩa trong Mục 8): •
Nếu người nhận là NFCC, nó SẼ gửi một thông báo CORE_INTERFACE_ERROR_NTF với giá trị
Status là STATUS_SYNTAX_ERROR. •
Nếu người nhận là DH, nó SẼ bỏ qua Tin nhắn Dữ liệu.
3.4 Định dạng gói tin
3.4.1Tiêu đề gói thông tin chung
Tất cả các gói tin có một tiêu đề chung, bao gồm một trường Loại Tin nhắn (MT) và một trường
Cờ Biên giới Gói tin (PBF), như được hiển thị trong Hình 6. 3 1
Hình 6: Định dạng gói NCI Core bits MT Thông tin Octet 0 Octet 1 - N Loại tin nhắn (MT)
Trường MT chỉ ra nội dung của Gói và PHẢI là một trường 3 bit chứa một trong các giá trị được
liệt kê trong Bảng 2. Nội dung của trường Thông tin phụ thuộc vào giá trị của trường MT. Người
nhận một MT được chỉ định là RFU PHẢI im lặng loại bỏ gói.
Bảng 2: Giá trị MT MT Mô tả 000b
Gói dữ liệu - Phần 3.4.3 001b
Gói điều khiển – Thông điệp lệnh như là một tải trọng – Phần 3.4.2 010b
Gói điều khiển – Phần hồi thông điệp như là một tải trọng – Phần 3.4.2 011b
Gói điều khiển – Thông báo thông điệp như là một tải trọng – Phần 3.4.2 100b RFU - 111b
Cờ Giới Hạn Gói Tin (PBF)
Cờ Biên Giới Gói Tin (PBF) được sử dụng cho Phân đoạn và Lắp ráp và PHẢI là một trường 1 bit
chứa một trong các giá trị được liệt kê trong Bảng 3.
Bảng 3: Giá trị PBF PBF Mô tả 0b
Gói tin chứa một thông điệp hoàn chỉnh, hoặc gói tin
chứa đoạn cuối cùng của một thông điệp đã được phân đoạn. 1b
Gói tin chứa một đoạn của một tin nhắn không phải là đoạn cuối cùng.
Các quy tắc sau đây áp dụng cho cờ PBF trong Gói tin:
• Nếu Gói tin chứa một Tin nhắn hoàn chỉnh, PBF SẼ được đặt thành 0b.
• Nếu Gói tin chứa đoạn cuối cùng của một Tin nhắn được phân đoạn, PBF PHẢI được đặt thành 0b.
• Nếu gói tin không chứa đoạn cuối cùng của một thông điệp được phân đoạn, PBF SẼ được đặt thành 1b.
Xem phần 3.5 để biết thêm chi tiết về Phân đoạn và Lắp ráp.
3.4.2 Định dạng của các gói điều khiển
Cấu trúc Gói điều khiển được mô tả chi tiết trong Hình 7. Tiêu đề Gói tin L byte GID OID Độ dài tải (L) Tải trọng MT Octet 0 Octet 1 Octet 2 Octet 3... Octet (2+L)
Hình 7: Cấu trúc Gói điều khiển
Mỗi Gói Điều Khiển PHẢI có một Header Gói 3 octet và CÓ THỂ có thêm dữ liệu để chứa một
Payload Tin Nhắn Điều Khiển hoặc một đoạn của Payload Tin Nhắn Điều Khiển. LƯU Ý Trong
trường hợp một 'Thông điệp Điều khiển' 'trống', chỉ có Tiêu đề Gói tin được gửi.
Loại tin nhắn (MT)
Xin vui lòng tham khảo Bảng 2 để biết chi tiết về lĩnh vực MT.
Cờ Giới Hạn Gói Tin (PBF)
Vui lòng tham khảo Bảng 3 để biết chi tiết về lĩnh vực PBF. Nhóm Định danh (GID)
NCI hỗ trợ các Lệnh, Phản hồi và Thông báo được phân loại theo từng nhóm riêng biệt. Định
danh Nhóm (GID) chỉ ra sự phân loại của thông điệp và PHẢI là một trường 4-bit chứa một
trong các giá trị được liệt kê trong Bảng 139.
Mã xác định Opcode (OID)
Mã xác định Opcode (OID) chỉ ra sự nhận dạng của Tin nhắn Điều khiển và PHẢI là một trường
6 bit là một sự nhận dạng duy nhất của một tập hợp các Tin nhắn Lệnh, Phản hồi hoặc Thông
báo trong nhóm. Giá trị OID được xác định cùng với định nghĩa của các Tin nhắn Điều khiển
tương ứng được mô tả trong Bảng 139. Độ dài tải (L)
Chiều dài dữ liệu gửi đi PHẢI chỉ ra số octet có trong dữ liệu gửi đi. Trường PayloadLength PHẢI
là một trường 8-bit chứa giá trị từ 0 đến 255.
3.4.3 Định dạng của các gói dữ liệu
Cấu trúc Gói dữ liệu được mô tả chi tiết trong Hình 8. Tiêu đề Gói tin 4 1 L byte 1 6 8 Conn ID CR Độ dài tải (L) T MT Octet 2 Octet 0 Octet 1 Octet 3... Octet (2+L)
Hình 8: Cấu trúc gói dữ liệu
Mỗi Gói Dữ liệu PHẢI có một Tiêu đề Gói 3 octet và CÓ THỂ có thêm Dữ liệu để
chứa một tải dữ liệu tin nhắn hoặc một đoạn tải dữ liệu tin nhắn. LƯU Ý Trong một
'Tin nhắn dữ liệu trống', chỉ gửi Tiêu đề Gói tin. Loại tin nhắn (MT)
Xin vui lòng tham khảo Bảng 2 để biết chi tiết về lĩnh vực MT.
LƯU Ý MT luôn chứa 000b để chỉ một Gói Dữ liệu, như được định nghĩa trong Bảng 2. Cờ
Giới Hạn Gói Tin (PBF)
Vui lòng tham khảo Bảng 3 để biết chi tiết về lĩnh vực PBF.
Nhận dạng Kết nối (Conn ID)
Connection Identifier (Conn ID) PHẢI được sử dụng để chỉ ra LogicalConnection đã thiết lập
trước đó mà dữ liệu này thuộc về. Tham khảo Mục 4.4 để biết chi tiết về việc thiết lập một
LogicalConnection và gán Conn ID. Conn ID là một trường 4-bit chứa giá trị từ 0 đến 15. Tín dụng (CR)
Trường Credits là một trường 2-bit chứa giá trị từ 0 đến 3. Trong các gói dữ liệu được gửi từ DH
đến NFCC, nó PHẢI chứa giá trị không (0). Nếu NFCC sử dụng Kiểm soát Luồng dựa trên Tín
dụng (xem Mục 3.3.1 và Mục 4.4.4), thì NFCC CÓ THỂ cấp tín dụng cho DH cho Kết nối Logic
được sử dụng bởi Gói Dữ liệu bằng cách đặt một giá trị khác không trong trường này. Nếu không,
NFCC PHẢI đặt giá trị 0 trong trường này. Độ dài tải (L)
Trường Độ dài Dữ liệu phải chỉ ra số octet hiện có trong dữ liệu. Trường Độ dài Dữ liệu phải
là một trường 8-bit chứa giá trị từ 0 đến 255.
3.5 Phân đoạn và Lắp ráp lại
Chức năng Phân đoạn và Lắp ráp PHẢI được hỗ trợ bởi cả DH và NFCC.
Việc phân đoạn và tái tổ hợp các Tin nhắn PHẢI được thực hiện độc lập cho các Gói điều khiển
và Gói dữ liệu của mỗi Kết nối Logic.
Bất kỳ Bản đồ Vận chuyển NCI nào đều được phép xác định kích thước Đơn vị Truyền tải Tối
đa (MTU) cố định tính bằng octet. Nếu một Bản đồ như vậy được xác định và sử dụng, khi DH
hoặc NFCC cần truyền một Tin nhắn (Tin nhắn Điều khiển hoặc Tin nhắn Dữ liệu) sẽ tạo ra một
Gói tin (bao gồm Tiêu đề Gói tin) lớn hơn MTU, tính năng Phân đoạn và Lắp ráp (SAR) PHẢI
được sử dụng trên Tin nhắn đó.
Các quy tắc sau áp dụng cho việc phân đoạn các thông điệp điều khiển:
• Đối với mỗi đoạn của một Control Message, header của Control Packet PHẢI chứa các giá
trị MT, GID và OID giống nhau.
Từ DH đến NFCC: Tính năng Phân đoạn và Lắp ráp PHẢI được sử dụng khi gửi một Tin
nhắn Lệnh từ DH đến NFCC sẽ tạo ra một Điều khiển.
• Gói tin với một phần dữ liệu lớn hơn "Kích thước tải dữ liệu gói điều khiển tối đa" được
báo cáo bởi NFCC trong quá trình khởi tạo (xem Mục 4.2). Mỗi đoạn của một Tin nhắn
Lệnh trừ đoạn cuối CẦN chứa một phần dữ liệu có độ dài là "Kích thước tải dữ liệu gói điều khiển tối đa".
Từ NFCC đến DH: Khi một NFCC gửi một Control Message đến DH, bất kể độ dài, nếu
cần cho tối ưu hóa nội bộ, nó CÓ THỂ chia nhỏ Control Message thành các Control Packets nhỏ hơn.
Các quy tắc sau áp dụng cho việc phân đoạn các tin nhắn dữ liệu:
• Đối với mỗi phân đoạn của một Tin nhắn Dữ liệu, tiêu đề của Gói dữ liệu PHẢI chứa cùng MT và Conn ID.
Từ DH đến NFCC: Nếu kích thước dữ liệu của tin nhắn vượt quá Kích thước tải dữ liệu
Gói dữ liệu tối đa của kết nối, thì tính năng Phân đoạn và Lắp ráp SẼ được sử dụng trên Tin nhắn Dữ liệu.
Từ NFCC đến DH: Khi một NFCC gửi một Tin nhắn Dữ liệu đến DH, bất kể độ dài của
dữ liệu, nó CÓ THỂ chia nhỏ Tin nhắn Dữ liệu thành các Gói dữ liệu nhỏ hơn cho bất kỳ
lý do nội bộ nào; ví dụ, để tối ưu hóa bộ đệm truyền.
Đối với cả Tin nhắn Điều khiển và Tin nhắn Dữ liệu, bit PBF PHẢI được đặt theo định nghĩa trong Bảng 3. 3.6 Kết nối logic
Kết nối Logic được sử dụng để trao đổi Tin nhắn Dữ liệu giữa DH và NFCC. Kết nối Logic cung
cấp một ngữ cảnh chung cho các Tin nhắn Dữ liệu liên quan. Tùy thuộc vào thông tin trao đổi
trong quá trình thiết lập Kết nối Logic, NFCC có thể là điểm cuối của giao tiếp Dữ liệu, hoặc nó
phải chuyển tiếp Payload của các Tin nhắn Dữ liệu đến hoặc từ một Điểm cuối NFC từ xa hoặc
NFCEE (hai trường hợp cuối cùng là các trường hợp sử dụng chính cho Kết nối Logic).
Một Kết nối Logic được thiết lập thông qua đàm phán giữa NFCC và DH (được mô tả trong Phần
4.4). Sau đây là một tổng quan về khái niệm Kết nối Logic.
Kết nối logic động:
• DH CÓ THỂ tạo một Kết nối Logic Động.
• NFCC CÓ THỂ từ chối một yêu cầu kết nối đến.
• Một định danh (Conn ID) sẽ được gán bởi NFCC để xác định Kết nối Logic Động, và điều
này vẫn còn hiệu lực trong suốt thời gian tồn tại của Kết nối Logic Động. ConnID được
giải phóng khi Kết nối Logic Động được đóng.
• DH có thể đóng một Kết nối Logic Động.
• Dữ liệu chỉ có thể được vận chuyển sau khi Kết nối Logic Động được tạo thành công.
• Cả DH và NFCC ĐỀU PHẢI bỏ qua các Gói dữ liệu có Conn ID chưa được gán. Kết nối RF tĩnh:
• Kết nối RF tĩnh tồn tại sau khi khởi tạo NFCC mà không cần tạo bằng cách sử dụng các
thông điệp điều khiển kết nối (được định nghĩa trong Mục 4.4.2) và không bao giờ đóng.
• Số tín dụng ban đầu và kích thước tải dữ liệu gói tin tối đa của kết nối RF tĩnh được (thiết
lập lại) bởi NFCC mỗi khi nó gửi RF_INTF_ACTIVATED_NTF.
• DH SẼ KHÔNG gửi dữ liệu qua Kết nối RF Tĩnh nếu không có RFInterface hoạt động. Xem Mục 7.3.
• Nếu không có giao diện RF hoạt động, cả DH và NFCC PHẢI bỏ qua các Gói dữ liệu có
Conn ID của Kết nối RF tĩnh. GHI CHÚ
Tất cả các giao diện RF được bao gồm trong phiên bản này của thông số kỹ thuật chỉ sử dụng RF tĩnh.
Kết nối. Tuy nhiên, Kết nối Logic Linh hoạt có thể được sử dụng bởi RFInterfaces
được bao gồm trong các phiên bản tương lai của thông số kỹ thuật này. Kết nối HCI tĩnh:
Nếu NFCC báo cáo trong CORE_INIT_RSP rằng nó thực hiện một HCI Host Controller (như
được định nghĩa trong [ETSI_102622]), thì:
• Kết nối HCI tĩnh tồn tại sau khi khởi tạo NFCC mà không cần tạo bằng cách sử dụng các
thông điệp điều khiển kết nối (được định nghĩa trong Mục 4.4.2) và không bao giờ đóng.
• Số tín dụng ban đầu và kích thước tải dữ liệu gói tin tối đa của Kết nối HCI tĩnh được báo
cáo bởi NFCC trong CORE_INIT_RSP (xem Mục 4.2).
Payload của các Gói Dữ liệu được gửi trên Kết nối HCI Tĩnh PHẢI là các gói hostcontroller
protocol (HCP) hợp lệ, như được định nghĩa trong [ETSI_102622]. Mỗi Gói Dữ liệu PHẢI
chứa một gói HCP duy nhất. Quá trình Phân đoạn và Lắp ráp NCI SẼ KHÔNG được áp dụng
cho các Tin nhắn Dữ liệu theo cả hai hướng. Cơ chế phân mảnh HCI được sử dụng nếu cần thiết.
Conn ID có phạm vi từ 0 đến 15 (xem Bảng 4). Conn ID của 0 được dành riêng cho Kết nối RF
Tĩnh được sử dụng cho việc truyền thông RF, tồn tại sau Khởi tạo NFCC. Tuy nhiên, nó không khả
dụng cho việc sử dụng trừ khi một Giao diện RF được kích hoạt. Mỗi Giao diện RF xác định xem
Kết nối RF Tĩnh có được sử dụng và xem Kết nối Logic Động có được phép hay không.
Bảng 4: Mã kết nối Mã kết Mô tả nối ID 0000b
Kết nối RF tĩnh giữa DH và Điểm cuối NFC từ xa 0001b
Kết nối HCI tĩnh giữa DH và mạng HCI 0010b-
Được gán động bởi NFCC 1111b
4 Tin nhắn điều khiển cốt lõi NCI
Sau đây là các mô tả về các Lệnh, Phản hồi và Thông báo là một phần của NCI Core.
4.1 Đặt lại của NFCC
Những thông điệp điều khiển này được sử dụng để đặt lại NFCC.
Bảng 5: Các thông điệp điều khiển để đặt lại NFCC Lệnh CORE_RESET_CMD Trường dữ
Độ dài Giá trị/Mô tả liệu(s) Loại đặt lại 1 Octet 0x00 Giữ nguyên cấu hình
Đặt lại NFCC và giữ cấu hình
RFConfiguration của NCI (nếu được hỗ trợ). 0x01 Đặt lại cấu hình.
Đặt lại NFCC bao gồm cấu hình RFConfiguration của NCI. 0x02 - 0xFF RFU CORE_RESET_RSP Trường dữ
Độ dài Giá trị/Mô tả liệu(s) Trạng thái 1 Octet Xem Bảng 129. CORE_RESET_NTF Trường dữ Độ dài Giá trị/Mô tả liệu(s) Đặt lại Kích hoạt 1 Octet 0x00
Đã xảy ra lỗi không thể khôi phục được trong NFCC. 0x01 NFCC đã được bật. 0x02
Lệnh CORE_RESET_CMD đã được nhận 0x03-0x9F RFU 0xA0-0xFF
Cho sử dụng độc quyền Trạng thái 1 Octet Xem Bảng 7. cấu hình Phiên bản NCI 1 Octet Xem Bảng 6. Mã nhà sản xuất 1 Octet
ID của nhà sản xuất IC, như được định nghĩa trong [MANU]
Nếu thông tin này không có sẵn, NFCC PHẢI đặt trường này thành 0x00. Nhà sản xuất 1 Octet
Độ dài thông tin cụ thể của nhà sản xuất. Nếu Cụ thể Thông
thông tin này không có sẵn, hoặc nếu tin
ManufacturerID bằng 0x00, NFCC SẼ đặt độ dài là Độ dài 0x00. Nhà sản xuất n
Trường này chứa thông tin cụ thể của nhà sản xuất NFCC, Cụ thể Thông Octets
như phiên bản chip, phiên bản firmware, vv., được mã hóa tin
theo cách cụ thể của nhà sản xuất.
Bảng 6: Phiên bản NCI Phiên bản NCI Định nghĩa Nhận dạng 0x10 Phiên bản NCI 1.0 0x11 Phiên bản NCI 1.1 0x20 Phiên bản NCI 2.0 Các giá trị khác RFU
Bảng 7: Trạng thái cấu hình Giá trị Định nghĩa 0x00
Cấu hình NCI RF đã được giữ nguyên 0x01
Cấu hình NCI RF đã được đặt lại. 0x02-0xFF RFU
Tham số Phiên bản NCI PHẢI được mã hóa thành một trường 8 bit gồm hai giá trị không dấu 4
bit đại diện cho các mức phát hành chính và phụ của đặc tả này. 4 bit có giá trị cao nhất PHẢI chỉ
định mức phát hành chính. 4 bit có giá trị thấp nhất PHẢI chỉ định mức phát hành phụ của đặc tả này.
DH sẽ tiếp tục giao tiếp nếu nó hỗ trợ phiên bản chính được báo cáo bởi NFCC và nó SẼ
KHÔNG sử dụng các lệnh, giá trị RFU hoặc trường RFU từ phiên bản phụ lớn hơn được báo cáo bởi NFCC.
CORE_RESET_CMD được phát ra bởi DH để đặt lại NFCC. Lệnh này CÓ THỂ được phát
bất cứ lúc nào sau khi NFCC được cấp nguồn. Nếu DH gửi CORE_RESET_CMD, nó SẼ
bỏ qua tất cả các tin nhắn trừ CORE_RESET_RSP. Sau khi DH đã nhận được
CORE_RESET_RSP, nó SẼ KHÔNG gửi bất kỳ lệnh nào khác cho đến khi nó nhận được CORE_RESET_NTF.
Khi nhận được CORE_RESET_CMD, NFCC SẼ phản hồi bằng CORE_RESET_RSP với trạng
thái được đặt là STATUS_OK và bắt đầu quy trình đặt lại của nó. Khi hoàn thành quy trình đặt
lại, NFCC SẼ gửi CORE_RESET_NTF thông báo cho DH rằng NFCC đã được đặt lại.
Sau khi đặt lại thành công, các lệnh độc quyền CÓ THỂ được gửi bởi DH, và các phản hồi và
thông báo độc quyền CÓ THỂ được gửi bởi NFCC. Lệnh CORE_RESET_CMD cho phép xác
định các loại đặt lại khác nhau bằng cách sử dụng tham số Reset Type. Các tham số Configuration
Status trong CORE_RESET_NTF thông báo cho DH về trạng thái của cấu hình RF NCI sau khi đặt lại.
CHÚ Ý Điều này cho phép các triển khai NFCC khác nhau: Một số NFCC có thể có tính liên tục bộ
nhớ cho Cấu hình NCI RF và do đó không cần yêu cầu DH cấu hình lại sau khi đặt lại. Những
người khác có thể không có bộ nhớ lưu trữ cho Cấu hình NCI RF. DH có thể buộc đặt lại cấu
hình bằng cách sử dụng tham số ResetType. DH biết, dựa trên giá trị Trạng thái Cấu hình, liệu
nó cần cấu hình NFCC sau khi đặt lại hay không.
Nếu Reset Type đã được đặt thành 0x00, trạng thái cấu hình trong CORE_RESET_NTF PHẢI được đặt thành 0x00 hoặc 0x01.
Nếu Reset Type đã được đặt thành 0x01, thì Configuration Status trong CORE_RESET_NTF SẼ được đặt thành 0x01.
Đối với tất cả các giá trị Trạng thái Cấu hình, tất cả dữ liệu trong Bộ đệm được sử dụng cho Dữ liệu NCI và
Trao đổi Gói điều khiển SẼ được xóa và Bộ đệm SẼ được giải phóng.
Trong ngữ cảnh này, Cấu hình NCI RF SẼ bao gồm: •
Bảng định tuyến Chế độ Nghe và trạng thái định tuyến NFCEE Bắt buộc (xem Mục 6.3) •
Tất cả các Tham số Cấu hình (xem Bảng 138 để biết danh sách các Tham số Cấu hình) •
Cấu hình ánh xạ giao diện RF (xem Mục 6.2).
Nếu Configuration Status trong CORE_RESET_NTF bằng 0x01, thì NCI RF Configuration đã được đặt lại, bao gồm: •
Xóa tất cả các mục của Bảng Định tuyến Chế độ Nghe và vô hiệu hóa Định tuyến NFCEE Bắt buộc •
Đặt lại tất cả các Tham số Cấu hình về giá trị mặc định của chúng •
Xóa cấu hình RF Interface Mapping.
Nếu Configuration Status bằng 0x00, NCI RF Configuration PHẢI giống như trước khi thiết lập
lại. Trong trường hợp này, bản đồ nội bộ của NFCC về NFCEEs thành NFCEE IDs CŨNG không
thay đổi (nếu không bảng định tuyến chế độ nghe sẽ bị hỏng).
NFCC CÓ THỂ tự đặt lại (mà không cần nhận được CORE_RESET_CMD); ví dụ, trong trường
hợp có lỗi nội bộ. Trong những trường hợp này, NFCC PHẢI thông báo cho DH với
CORE_RESET_NTF. Mã lý do PHẢI phản ánh lý do đặt lại nội bộ và Trạng thái Cấu hình phản
ánh trạng thái Cấu hình RF NCI.
Sau khi đặt lại thành công, việc khởi tạo NCI được chỉ định trong Mục 4.2 PHẢI được thực hiện. 4.2 Khởi tạo NFCC
Những Thông điệp Kiểm soát này được sử dụng để khởi tạo NFCC.
Bảng 8: Các thông điệp điều khiển để khởi tạo NFCC
LỆNH_KHỞI_TẠO_CORE
Trường dữ liệu (s) Độ dài Giá trị/Mô tả
Kích hoạt tính năng 2 Octets Một tập hợp các bit được sử dụng để kích hoạt hoặc vô
hiệu hóa một số tính năng NFCC có thể gây ra vấn đề
tương thích cho một DH thực hiện một phiên bản phụ
nhỏ trước đó của thông số kỹ thuật. Trong tất cả các
trường hợp, 0 có nghĩa là vô hiệu hóa tính năng để đảm
bảo hoạt động tương thích ngược. Xem Bảng 9. CORE_INIT_RSP
Trường dữ liệu(s) Độ dài Giá trị/Mô tả Trạng thái 1 Octet Xem Bảng 129.
Tính năng của NFCC 4 Octet Xem Bảng 10. Max Logical Kết 1 Octet 0x00 - 0x0E
Số lượng tối đa của các Kết nối Logic Động nối
được hỗ trợ bởi NFCC. 0x0F - 0xFF RFU
Bảng định tuyến tố 2 Octet
Chỉ số lượng tối đa dữ liệu trong Octets có thể có trong cấu Kích thước
hình định tuyến (xem Mục 6.3). Nếu không hỗ trợ Chế độ
Định tuyến Nghe, thì giá trị PHẢI là 0x0000. Kiểm soát tối đa 1 Octet
Chỉ số độ dài tải tối đa của một Gói Điều khiển NCI mà NFCC Gói dữ liệu Kích có thể nhận được. thước
Phạm vi hợp lệ là từ 32 đến 255
LƯU Ý Tất cả các thông điệp điều khiển được trao đổi độ
dài của nó nhỏ hơn 32 octet.
Kích thước gói dữ 1 Octet
Độ dài tải tối đa của một Gói Dữ liệu NCI mà NFCC có thể liệu tối đa của giao
nhận trên Kết nối HCI Tĩnh. diện HCI tĩnh CORE_INIT_RSP
Trường dữ liệu(s) Độ dài Giá trị/Mô tả Kết nối
Nếu NFCC triển khai một HCI Host Controller, phạm vi
hợp lệ là từ 32 đến 255.
Nếu không, giá trị SẼ là 0. Số tín chỉ của Kết 1 Octet
Số lượng tín dụng được phân bổ bởi NFCC cho Kết nối nối HCI Tĩnh StaticHCI.
Nếu NFCC triển khai một HCI Host Controller, giá trị
SẼ được điền theo Bảng 15.
Nếu không, giá trị SẼ là 0 Max NFC-V RF 2 Octet
Trường này chứa kích thước tối đa của dữ liệu Payload_Data Kích thước khung
trong một khung tiêu chuẩn NFC-V (được xác định trong
[DIGITAL]) được hỗ trợ bởi Bộ điều khiển NFC để truyền
lệnh và nhận phản hồi, khi được cấu hình để tìm kiếm công nghệ NFC-V.
NFCC sẽ hỗ trợ một Max NFC-V RF FrameSize với ít nhất 64 byte. Số lượng giao 1 Octet
Số lượng giao diện RF được hỗ trợ để theo dõi diện RF được hỗ trợ RFInterfaces x+2 Giao diện 1 Octet Xem Bảng 134. được hỗ trợ [1..n] Octets
Tất cả các giao diện, bao gồm giao
diện giả tưởng NFCEE DirectRF
Interface, được hỗ trợ bởi NFCC PHẢI được báo cáo. Số lượng 1 Octet Số lượng RF phần mở
InterfaceExtensions được hỗ trợ rộng. cho giao diện này (x). Danh 1 Octet Xem Bảng 135. sách phần Danh sách các Phần mở mở
rộng RFInterface được hỗ rộng [0..x] trợ
Bảng 9: Giá trị cho Bản đồ Bit Tích hợp Tính năng Bit Mask Mô tả
b7 b6 b5 b4 b3 b2 b1 b0 Octet 0 0 0 0 0 0 0 0 RFU 0 Octet 0 0 0 0 0 0 0 0 RFU 1
CORE_INIT_CMD được sử dụng bởi DH để khởi tạo NFCC. Lệnh này PHẢI được phát ra sau
khi nhận được thông báo rằng NFCC đã được đặt lại thành công (xem Mục 4.1), và chỉ trong thời gian khác.
Khi thực hiện lệnh, NFCC SẼ gửi một CORE_INIT_RSP để thông báo cho DH rằng NFCC đã
thực hiện lệnh. Nếu khởi tạo thành công, trạng thái SẼ là STATUS_OK. Nếu NFCC không thể
thực hiện lệnh, trạng thái SẼ được đặt là STATUS_FAILED (xem Bảng 129), và các tham số khác
của CORE_INIT_RSP SẼ được bỏ qua bởi DH.
Không có lệnh nào khác được định nghĩa trong đặc tả này ngoại trừ CORE_RESET_CMD hoặc
CORE_INIT_CMD không được gửi trước khi NFCC được khởi tạo thành công.
Sau khi gửi một CORE_INIT_CMD, DH SẼ loại bỏ bất kỳ thông tin nào đã được cung cấp trước
đó bởi NFCC liên quan đến yêu cầu khám phá từ NFCEE(s).