Android 독점 NCI 명령어

NFC 컨트롤러 인터페이스 (NCI)는 NFC 컨트롤러 (NFCC) 이 페이지에서는 Android의 사양을 설명합니다. 사용할 수 있습니다

NCI 정의

Android 독점 NCI 명령어는 독점 그룹 ID (GID) 0xF를 사용합니다. 0xC의 Android 명령 코드 식별자 (OID) 코드 공간입니다.

일반적인 패킷 형식

Android NCI 패킷 형식은 제어 패킷의 NCI 사양을 따릅니다. 독점 Group_ID 0xFOpcode_ID 0x0C 사용 각 Android 패킷 페이로드의 첫 번째 바이트는 Android 명령 코드 (0x0C). Android 컨트롤 패킷은 Message_TypePBF: 다음과 유사한 명령어, 응답, 알림을 식별합니다. 사용할 수 있습니다

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 관찰 모드 사용 설정됨