NFC 컨트롤러 인터페이스 (NCI)는 NFC 컨트롤러 (NFCC) 이 페이지에서는 Android의 사양을 설명합니다. 사용할 수 있습니다
NCI 정의
Android 독점 NCI 명령어는 독점 그룹 ID (GID) 0xF
를 사용합니다.
0xC
의 Android 명령 코드 식별자 (OID) 코드 공간입니다.
일반적인 패킷 형식
Android NCI 패킷 형식은 제어 패킷의 NCI 사양을 따릅니다.
독점 Group_ID 0xF
및 Opcode_ID 0x0C
사용 각 Android
패킷 페이로드의 첫 번째 바이트는
Android 명령 코드 (0x0C
). Android 컨트롤 패킷은 Message_Type
와
PBF
: 다음과 유사한 명령어, 응답, 알림을 식별합니다.
사용할 수 있습니다
Android 패킷 형식은 다음 표에 나와 있습니다.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Message_Type
|
PBF
|
Group_ID = 0xF (PROPRIETARY)
|
|||||
향후 사용을 위해 예약됨 (RFU) | Opcode_ID = 0x0C (ANDROID)
|
||||||
Payload_Length
|
|||||||
Android_Opcode_ID
|
|||||||
Android_Payload
|
|||||||
할당된 Android 명령 코드 식별자는 다음 표에 나와 있습니다. 이 각 패킷에 대한 사양은 다음 섹션에서 따릅니다.
Android OID | 메시지 유형 | 메시지 이름 |
---|---|---|
0x00 | NCI_MT_CMD | NCI_ANDROID_GET_CAPS_CMD |
NCI MT_RSP | NCI_ANDROID_GET_CAPS_RSP
|
|
0x01 | NCI_MT_CMD | NCI_ANDROID_POWER_SAVING_CMD
|
NCI MT_RSP | NCI_ANDROID_POWER_SAVING_RSP
|
|
0x02 | NCI_MT_CMD | NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD |
NCI MT_RSP | NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP
|
|
0x03 | NCI_MT_NTF | NCI_ANDROID_POLLING_FRAME_NTF
|
0x04 | NCI_MT_CMD | NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD |
NCI MT_RSP | NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP |
기능 가져오기 명령어
호스트는 NCI_ANDROID_GET_CAPS_CMD
를 사용하여 목록을 쿼리합니다.
NFCC에서 지원하는 Android 독점 기능 이
NCI_ANDROID_GET_CAPS_CMD
명령어는 매개변수를 사용하지 않습니다.
NFCC는 상태가 포함된 NCI_ANDROID_GET_CAPS_RSP
응답으로 응답해야 합니다.
STATUS_OK
및 지원되는 기능 목록
NFCC가 NCI_ANDROID_GET_CAPS_CMD
를 지원하지 않는 경우 호스트는 다음을 가정해야 합니다.
기능이 각 기능이 지정된 기본값을 사용한다는 의미입니다. 지정된
응답에서 NFCC에 의해 반환되지 않는 경우 호스트는
기능에 기본값이 지정되어 있습니다
NCI_ANDROID_GET_CAPS_CMD
페이로드 필드 | 크기 | 값/설명 | |||||
---|---|---|---|---|---|---|---|
해당 사항 없음 | 0옥텟 |
NCI_ANDROID_GET_CAPS_RSP
페이로드 필드 | 크기 | 값/설명 | |||||
---|---|---|---|---|---|---|---|
상태 | 1옥텟 | NCI 사양의 표 140에서 상태 코드를 참조하세요. | |||||
Android_Version
|
2옥텟 | NFCC로 구현된 Android 요구사항의 버전을 식별합니다. | |||||
0x0000 | Android 15 | ||||||
기능 수 | 1옥텟 | 지원되는 기능 수 (n) | |||||
기능[0..n] | (m + 2) * n 옥텟 | 지원되는 기능 | |||||
유형 | 1옥텟 | 기능 식별자 | |||||
Len | 1옥텟 | 값의 길이 (m) | |||||
값 | m옥텟 | 기능의 가치 |
Android 독점 기능
기능 이름 | ID | 크기 | 값/설명 | |||||
---|---|---|---|---|---|---|---|---|
관찰 모드 | 0x00 | 1옥텟 | 관찰 모드 지원
0x00 (기본값) - 이 기능을 지원하지 않습니다. 0x01 - 호스트의 RF 비활성화 기능을 지원합니다( Android 15 이상). 다른 모든 값은 RFU입니다. |
|||||
폴링 프레임 알림 | 0x01 | 1옥텟 | 폴링 프레임 알림을 지원합니다. 지원되는 경우 0x01, 지원되지 않는 경우 0x00 (기본값). 다른 모든 값은 RFU입니다. | |||||
절전 모드 | 0x02 | 1옥텟 | 절전 모드를 지원합니다. 지원되는 경우 0x01, 지원되지 않는 경우 0x00 (기본값). 다른 모든 값은 RFU입니다. | |||||
auotransact 폴링 루프 필터 | 0x03 | 1옥텟 | 관찰 모드가 전역적으로 사용 설정된 경우 특정 패턴에 대한 관찰 모드를 우회하도록 펌웨어에서 폴링 루프 필터를 지원합니다.
0x00 (기본값) - 이 기능을 지원하지 않음 0x01 - 폴링 루프 필터 지원 다른 모든 값은 RFU입니다. |
|||||
0x04.0xFF | 0옥텟 | 나중에 사용하기 위해 예약됨 |
절전 명령어
NFCC를 절전 모드로 전환하기 위해 호스트는
NCI_ANDROID_POWER_SAVING_CMD
명령어. NFCC는
상태 코드가 포함된 NCI_ANDROID_POWER_SAVING_RSP
성공 또는 실패를 나타냅니다.
절전 모드에 있는 동안 호스트는 NFCC에 어떠한 명령어도 보내지 않아야 하고 NFCC는 호스트에 알림이나 응답을 전송하면 안 됩니다. NFCC 또는 삽입된 보안 요소 (eSE)는 수신되는 결제 요청을 자동으로 수락할 수 있습니다. 절전 모드를 사용 설정하기 전에 설정된 라우팅 구성에 따라 있습니다.
최대 전원 모드로 돌아가려면 호스트에서 NFCC를 재설정하거나 다시 초기화해야 합니다.
NCI_ANDROID_POWER_SAVING_CMD
페이로드 필드 | 크기 | 값/설명 | |
---|---|---|---|
절전 모드 | 1옥텟 | 0x00 | 절전 모드 사용 중지 |
0x01 | 절전 모드 사용 설정 |
NCI_ANDROID_POWER_SAVING_RSP
페이로드 필드 | 크기 | 값/설명 | |||||
---|---|---|---|---|---|---|---|
상태 | 1옥텟 | NCI 사양의 표 140에서 상태 코드를 참조하세요. |
관찰 모드 설정 명령어
관찰 모드를 활성화 또는 비활성화하기 위해 호스트는
NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD
명령어. NFCC는
성공을 나타내는 상태 코드가 포함된 NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP
또는
있습니다
관찰 모드가 사용 중지되면 NFCC는 표준 청취 모드 활동을 기준으로 활동 기술 사양.
관찰 모드가 활성화되면 NFCC는 어떠한 폴에도 응답해서는 안 됩니다.
리슨 모드에서 명시적으로 승인될 때까지 폴링 루프 동안 요청을
지정할 수 있습니다 NFCC는 RF_FIELD_INFO_NTF
알림(
섹션 5.3의
NCI 사양)
필드 활성화를 감지할 때 폴 모드 검색이 활성 상태이면 NFCC는
규정에 따라 폴링 모드 활동을 구현해야
활동 기술 사양.
NFCC는 기기에서 즉시 진행할 수 있도록 폴 정보를 캐시할 수 있습니다.
관찰 모드가 비활성화되는 즉시 활성화되어야 합니다.
어떤 이유로든 호스트가 종료되면 NFCC에서 관찰 모드를 사용 중지해야 합니다. (예: 배터리 방전 또는 사용자가 시작한 종료)을 통해 거래를 진행할 수 있습니다
NCI_ANDROID_PASSIVE_OBSERVE_MODE_CMD
페이로드 필드 | 크기 | 값/설명 | |
---|---|---|---|
관찰 모드 | 1옥텟 | 0x00 | 관찰 모드 사용 중지 (기본값) |
0x01 | 관찰 모드 사용 설정 |
NCI_ANDROID_PASSIVE_OBSERVE_MODE_RSP
페이로드 필드 | 크기 | 값/설명 | |||||
---|---|---|---|---|---|---|---|
상태 | 1옥텟 | NCI 사양의 표 140에서 상태 코드를 참조하세요. |
폴링 루프 알림
NFCC는 호스트에 NCI_ANDROID_POLLING_FRAME_NTF
알림을 보내야 합니다.
캡션을 확인할 수 있습니다. RF_FIELD_INFO_NTF
및
알림 NCI_ANDROID_POLLING_FRAME_NTF
개가 생성되었습니다. NFCC에서 전송해야 합니다.
RF_FIELD_INFO_NTF
이후 NCI_ANDROID_POLLING_FRAME_NTF
입니다.
NCI_ANDROID_POLLING_FRAME_NTF
알림은
관찰 모드가 활성 상태인지 여부를
확인할 수 있습니다 관찰 모드가 활성화되면
NFCC는 그 전에 항상 NCI_ANDROID_POLLING_FRAME_NTF
알림을 보내야 합니다.
거래를 진행합니다.
NCI_ANDROID_POLLING_FRAME_NTF
페이로드 필드 | 크기 | 값/설명 | |||||
---|---|---|---|---|---|---|---|
설문조사 데이터[0..n] | (m +3) * n옥텟 | 마지막 요청 이후에 수신된 폴링 요청의 목록 있습니다. 각 결과는 수신된 패킷의 유형 (기술)을 제공합니다. 식별 가능한 데이터를 수집할 수 있습니다. | |||||
유형 | 1옥텟 | 프레임 유형을 참고하세요. | |||||
플래그 | 1옥텟 | 플래그 바이트를 참조하세요. | |||||
길이 | 1옥텟 | 타임스탬프 및 이득 필드가 포함된 폴링 데이터 보고서의 길이 (m)입니다. | |||||
타임스탬프 | 4옥텟 | 폴링 요청 수신(Big Endian)의 수신 시간(밀리초)으로 측정된 타임스탬프입니다. | |||||
증가 | 1옥텟 | 폴링 요청의 강도입니다.
0xFF는 값을 사용할 수 없음을 나타냅니다. |
|||||
데이터 | m~5옥텟 | 폴링 요청에 있는 식별 가능한 데이터를 반환합니다. |
프레임 유형
폴링 프레임 | 유형 | 크기 | 값/설명 | |
---|---|---|---|---|
원격 필드 | 0x00 | 1옥텟 | 0x00 | 필드 끔 |
0x01 | 필드 사용 | |||
0x02.0xFF | RFU | |||
NFC-A | 0x01 | n옥텟 | 값에 ISO 14443-3 명령어 (예: REQ 또는 WUP)가 포함되어야 합니다. | |
NFC-B | 0x02 | n옥텟 | 값에는 AIF 바이트 및 ISO 14443-3 명령어가 포함되어야 합니다. (예: REQ 또는 WUP) | |
NFC-F | 0x03 | n옥텟 | 값에 ISO 14443-3 명령어 (예: REQ 또는 WUP)가 포함되어야 합니다. | |
NFC-V | 0x04 | n옥텟 | 값에 ISO 14443-3 명령어 (예: REQ 또는 WUP)가 포함되어야 합니다. | |
알 수 없음 | 0x07 | n옥텟 | 원시 프레임 데이터 |
플래그 바이트 정의
플래그 | ||||||||
---|---|---|---|---|---|---|---|---|
B0 | B1 | B2 | B3 | B4 | B5 | B6 | B7 | |
0 | 짧은 프레임 | RFU | RFU | RFU | RFU | RFU | RFU | RFU |
1 | 긴 프레임 |
관찰 모드 상태 명령어 쿼리
수동 주문 모드의 현재 상태를 가져오기 위해 호스트는 다음을 사용할 수 있습니다.
NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD
명령어 NFCC는
NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP
로 응답
실패의 성공을 나타내는 코드입니다.
NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_CMD
페이로드 필드 | 크기 | 값/설명 | |||||
---|---|---|---|---|---|---|---|
해당 사항 없음 | 0옥텟 |
NCI_ANDROID_QUERY_PASSIVE_OBSERVER_STATUS_RSP
페이로드 필드 | 크기 | 값/설명 | |
---|---|---|---|
상태 | 1옥텟 | NCI 사양의 표 140에서 상태 코드를 참조하세요. | |
관찰 모드 | 1옥텟 | 0x00 | 관찰 모드 사용 중지됨 |
0x01 | 관찰 모드 사용 설정됨 |