KR102105498B1 - 설정가능한 통지 수단을 포함하는 nfc 디바이스 - Google Patents

설정가능한 통지 수단을 포함하는 nfc 디바이스 Download PDF

Info

Publication number
KR102105498B1
KR102105498B1 KR1020157014041A KR20157014041A KR102105498B1 KR 102105498 B1 KR102105498 B1 KR 102105498B1 KR 1020157014041 A KR1020157014041 A KR 1020157014041A KR 20157014041 A KR20157014041 A KR 20157014041A KR 102105498 B1 KR102105498 B1 KR 102105498B1
Authority
KR
South Korea
Prior art keywords
host processor
data
notification
application
short
Prior art date
Application number
KR1020157014041A
Other languages
English (en)
Other versions
KR20150085821A (ko
Inventor
마티아스 레르흐
레미 페룰
Original Assignee
베리매트릭스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베리매트릭스 filed Critical 베리매트릭스
Publication of KR20150085821A publication Critical patent/KR20150085821A/ko
Application granted granted Critical
Publication of KR102105498B1 publication Critical patent/KR102105498B1/ko

Links

Images

Classifications

    • H04B5/72
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B5/00Near-field transmission systems, e.g. inductive loop type
    • H04B5/0025Near field system adaptations
    • H04B5/0031Near field system adaptations for data transfer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices

Abstract

본 발명은, 외부 디바이스(EDV)와 근거리 통신 채널을 수립하고, 외부 디바이스에 의해 송신된 애플리케이션 데이터(CAPDU)를 제1 호스트 프로세서(HP1)에 제공하도록 구성된 근거리 통신 디바이스(D2)에 관한 것이다. 디바이스는 제1 호스트 프로세서(HP1)에 제공된 애플리케이션 데이터의 성질 또는 컨텐츠와 관련된 통지(NCj, NRj)를 제2 호스트 프로세서(HP2)에 제공하고, 외부 디바이스가 데이터를 제1 호스트 프로세서에 송신하는 프레임워크에서 애플리케이션의 특성 파라미터에 따라 통지를 설정하도록 구성된다.

Description

설정가능한 통지 수단을 포함하는 NFC 디바이스{NFC DEVICE COMPRISING CONFIGURABLE NOTIFICATION MEANS}
본 발명은, 외부 디바이스와 근거리 통신 채널을 수립하고, 외부 디바이스에 의해 송신된 애플리케이션 데이터를 디바이스의 제1 호스트 프로세서에 제공하도록 설계된 근거리 통신 디바이스에 관한 것이다.
소위 NFC 기술(근거리 통신)은 안테나 코일을 각각 포함하는 2개의 디바이스가 유도 결합에 의해 데이터를 교환할 수 있게 한다. NFC 채널의 생성은 2개의 디바이스 중 "판독기(reader)"라고 언급되는 하나의 디바이스가 자기장을 방출하고, "카드"라고 언급되는 다른 디바이스가 자기장이 안테나 신호를 생성할 수 있도록 제1 디바이스에 충분히 가까이에 안테나 코일을 구비할 것을 요구한다. "피어-대-피어(peer-to-peer)"(또는 점대점(point-to-point))라고 언급되는 다른 알려진 NFC 방법에서, 각 디바이스는 교대로 자기장을 방출한다. 최근 몇 년 동안, 호스트 프로세서에 연결되도록 제공되고, 이 호스트 프로세서가 판독기, 카드 에뮬레이션(card emulation) 또는 피어-대-피어 모드에서 NFC 애플리케이션을 실행할 수 있게 하는 NFC 디바이스가 개발되었다.
도 1은 전술된 유형의 종래의 NFC 디바이스(D1)의 구조를 도식적으로 표시한다. 이 디바이스는 CLF(Contactless Front End: 비접촉 프론트 엔드) 통신 인터페이스 회로, NFC 제어기(NFCC1), 프로그램 및 데이터 메모리(MEM1), 통신 포트(P1, P2)를 포함하고, 이들 요소는 버스(BS)에 의해 연결된다. 포트(P1, P2)는 호스트 프로세서(HP1, HP2)가 디바이스(D1)에 연결될 수 있게 한다. 메모리(MEM1)는 프로세서(NFCC1)의 운영 시스템(OS)과, 프로세서(NFCC1)에 의해 실행되는 라우팅 프로그램(RPGR)을 수신한다. 인터페이스 회로(CLF)는 안테나 코일(AC1)을 구비하고, 안테나 코일(AC2)을 포함하는 외부 디바이스(EDV) 그 자체와 NFC 채널을 수립하도록 구성된다.
이러한 근거리 통신 디바이스는 특허 또는 특허 출원 EP 1 327 222, EP 1 758 049, EP 1 855 229 및 EP 1 855 389에 기술되어 있다. EP 1 327 222는 카드 에뮬레이션 모드를 제공하는 것을 개시한다. EP 1 855 229는 디바이스가 카드 에뮬레이션 모드에 있을 때 수신된 자기장으로부터 디바이스에 전기 전력을 공급하는 방법을 기술한다. EP 1 855 389는 입력 데이터(인터페이스 회로(CLF)에 의해 수신된 데이터)를 라우팅하여 데이터가 향하는 호스트 프로세서를 결정할 수 있는 방법을 기술한다. EP 1 327 222는 라우팅 테이블을 사용하여 라우팅하는 방법을 기술한다. 나아가, 표준 또는 사양은 ETSI TS 102 622 표준("스마트 카드; UICC - 비접촉 프론트 엔드(CLF) 인터페이스; 호스트 제어기 인터페이스(HCI)"), CLF 인터페이스 회로의 동작을 한정하는 ETSI TS 102 613 표준, 또는 NCI 사양("NFC 제어기 인터페이스")과 같은 디바이스의 특정한 특징을 보다 정확히 한정한다.
본 명세서에서 호스트 프로세서(HP1)는 특정 보안 레벨을 요구하는 애플리케이션, 특히 지불용 애플리케이션 또는 지불을 직접 또는 간접 수반하는 애플리케이션에 전용된 보안 구성요소(secure component)이고, 프로세서(HP2)는 사용자와 통신하는 수단에 액세스를 하는 비-보안 프로세서인 것으로 가정된다. 프로세서(HP1)는 예를 들어 NFC 기능을 구비하는 UICC(Universal Integrated Circuit Card)-유형 카드 또는 보다 일반적으로 보안 요소-유형 프로세서(NFC 애플리케이션에 전용된 보안 프로세서)이다. 프로세서(HP2)는 예를 들어 모바일 전화의 베이스밴드 프로세서이고, 또한 디스플레이와 입력 수단(실제 또는 가상 키보드)과 같은 다양한 사람/기계 인터페이스 주변 장치를 제어한다.
도 1은 디바이스(D1)가 호스트 프로세서(HP1)를 위해 카드 에뮬레이션 모드에서 동작하며 호스트 프로세서가 외부 디바이스(EDV), 예를 들어 POS(point of sale)와 트랜잭션을 실행할 수 있게 하는 애플리케이션의 일례를 또한 도시한다. 트랜잭션 동안, 호스트 프로세서(HP1)와 외부 디바이스(EDV)는 애플리케이션 데이터, 예를 들어 ISO 7816 표준에 의해 기술된 유형의 APDU("애플리케이션 프로토콜 데이터 유닛") 데이터를 교환한다. 보다 구체적으로, 외부 디바이스는 커맨드(CAPDU)(표준에서 C-APDU라고 언급된다)를 송신하고 호스트 프로세서(HP1)는 응답(RAPDU)(표준에서 R-APDU라고 언급된다)을 되송신한다. 이러한 데이터는 디바이스(D1)를 통과하고, 제어기는 인터페이스 회로(CLF)로부터 호스트 프로세서(HP1)로 또는 그 역 방향으로 라우팅을 보장한다.
트랜잭션이 종료할 때, 호스트 프로세서(HP1)는 트랜잭션에 대한 정보를 프로세서(HP2)에 제공할 수 있다. 프로세서(HP2)는 이러한 정보를 사용자에 제시할 수 있다. 예를 들어, 프로세서(HP2)는 "제품(X)의 구매" 트랜잭션이 소리 신호와 함께 수량(Z)이 날짜(Y)에 실행되었다는 확인을 디스플레이할 수 있다.
나아가, ETSI TS 102 613 표준(버전 V9.2.0)은, 그 문단 11.2에서, 2개의 호스트 프로세서가 트랜잭션에 대한 정보를 교환할 수 있게 하는 방법을 한정한다. 이 방법은 연결 게이트, "PRO_HOST_REQUEST" 커맨드, 및 EVT_CONNECTIVITY, EVT_OPERATION_ENDED, EVT_TRANSACTION 이벤트를 한정한다. 후자의 이벤트는 아래에 지시된 방식으로 형성되고, 해당 애플리케이션의 "AID" 식별자("애플리케이션 ID")를 포함한다.
Figure 112015050957635-pct00001
트랜잭션의 수행(conduct)에 대한 정보의 이러한 통신은 프로세서(HP1)에 의해 실행된 애플리케이션 프로그램의 구성 또는 전술된 연결 기능에 의해 애플리케이션을 활성화하는 프로그램의 구성에 의존한다. 따라서 트랜잭션과 관련된 정보를 제3 프로세서에 통신하는 것은 애플리케이션 프로그램을 설계할 때 특정 프로그래밍 라인을 제공할 것을 요구한다.
따라서, 통신될 정보가 애플리케이션마다 상이할 수 있는 사실을 고려하여, 호스트 프로세서에 의해 실행된 애플리케이션 프로그램에 의존하지 않고, 모든 애플리케이션이 중앙 집중식으로 관리되고 설정될 수 있는 트랜잭션과 관련된 정보를 통신하는 방법을 제공하는 것이 바람직할 수 있다.
따라서, 본 발명의 일부 실시예는, 외부 디바이스와 근거리 통신 채널을 수립하도록 구성되고, 외부 디바이스에 의해 송신된 애플리케이션 데이터를 제1 호스트 프로세서에 제공하고, 제1 호스트 프로세서에 제공된 애플리케이션 데이터의 성질 또는 컨텐츠와 관련된 통지를 제2 호스트 프로세서에 제공하고, 외부 디바이스가 데이터를 제1 호스트 프로세서에 송신하는 프레임워크에서 애플리케이션의 특성 파라미터에 따라 상기 통지를 설정하도록 구성된 근거리 통신 디바이스에 관한 것이다.
일 실시예에 따라, 디바이스는 이하 특성 파라미터, 즉 외부 디바이스가 데이터를 제1 호스트 프로세서에 송신하는 프레임워크에서 애플리케이션의 식별자; 근거리 통신 채널이 형성되는 기술; 또는 근거리 통신 채널이 형성되는 통신 프로토콜 중 적어도 하나에 따라 통지를 설정하도록 설계된다.
일 실시예에 따라, 디바이스는 애플리케이션 데이터에 존재하는 데이터, 또는 애플리케이션 데이터에 존재하는 데이터에 대한 정보 항목을 포함하는 통지를 제2 호스트 프로세서에 제공하도록 설계된다.
일 실시예에 따라, 디바이스는 외부 디바이스가 데이터를 제1 호스트 프로세서에 송신하는 프레임워크에서 애플리케이션의 식별자를 포함하는 통지를 제2 호스트 프로세서에 제공하도록 구성된다.
일 실시예에 따라, 디바이스는, 외부 디바이스에 의해 송신된 애플리케이션 데이터를 식별하는 동작, 데이터 식별 결과와 애플리케이션의 특성 파라미터에 따라 데이터 분석 프로그램을 선택하는 동작, 선택된 분석 프로그램에 의해 애플리케이션 데이터를 분석하는 동작, 및 데이터 분석 결과에 따라 통지를 구성하는 동작을 수행하도록 구성된다.
일 실시예에 따라, 디바이스는 데이터에 대응하는 마스크가 발견될 때까지 각 마스크를 애플리케이션 데이터와 비교하는 것에 의해 일련의 식별 마스크에 의해 애플리케이션 데이터를 식별하도록 구성된다.
일 실시예에 따라, 디바이스는 선택된 분석 프로그램을 형성하거나 이에 포함된 데이터 마스크와 애플리케이션 데이터를 결합하는 것에 의해 애플리케이션 데이터를 분석하도록 구성된다.
일 실시예에 따라, 애플리케이션 데이터는 ISO 7816 표준의 의미 내의 커맨드(CAPDU)이다.
일 실시예에 따라, 디바이스는 제1 호스트 프로세서에 의해 송신된 애플리케이션 데이터를 외부 디바이스에 제공하고, 제1 호스트 프로세서에 의해 송신된 애플리케이션 데이터의 성질 또는 컨텐츠에 관련된 통지를 제2 호스트 프로세서에 제공하고, 특성 파라미터에 따라 통지를 설정하도록 구성된다.
본 발명의 일부 실시예는 또한 외부 디바이스와 근거리 통신 디바이스 사이에 근거리 통신 채널을 수립하는 단계, 외부 디바이스에 의해 송신된 애플리케이션 데이터를 근거리 통신 디바이스의 제1 호스트 프로세서에 제공하는 단계, 제1 호스트 프로세서에 제공된 애플리케이션 데이터의 성질 또는 컨텐츠와 관련된 통지를 근거리 통신 디바이스의 제2 호스트 프로세서에 제공하는 단계, 및 외부 디바이스가 데이터를 제1 호스트 프로세서에 송신하는 프레임워크에서 애플리케이션의 특성 파라미터에 따라 통지를 설정하는 단계를 포함하는 근거리 통신 방법에 관한 것이다.
일 실시예에 따라, 상기 통지는 다음 특성 파라미터, 즉 외부 디바이스가 데이터를 제1 호스트 프로세서에 송신하는 프레임워크에서 애플리케이션의 식별자, 근거리 통신 채널이 형성되는 비접촉 통신 기술, 또는 근거리 통신 채널이 형성되는 비접촉 통신 프로토콜 중 적어도 하나에 따라 설정된다.
일 실시예에 따라, 제2 호스트 프로세서에 제공되는 통지는 애플리케이션 데이터에 존재하는 데이터, 또는 애플리케이션 데이터에 존재하는 데이터에 대한 정보 항목을 포함한다.
일 실시예에 따라, 상기 방법은 외부 디바이스에 의해 송신되고 제1 호스트 프로세서에 제공된 애플리케이션 선택 커맨드를 수신할 때 외부 디바이스가 데이터를 제1 호스트 프로세서에 송신하는 프레임워크에서 애플리케이션의 식별자를 포함하는 통지를 제2 호스트 프로세서에 제공하는 단계를 포함한다.
일 실시예에 따라, 상기 방법은 외부 디바이스에 의해 송신된 애플리케이션 데이터를 식별하는 단계, 데이터 식별 결과와 애플리케이션의 특성 파라미터에 따라 데이터 분석 프로그램을 선택하는 단계, 선택된 분석 프로그램에 의해 애플리케이션 데이터를 분석하는 단계, 및 데이터 분석의 결과에 따라 통지를 설정하는 단계를 포함한다.
일 실시예에 따라, 상기 방법은 애플리케이션의 적어도 하나의 특성 파라미터에 따라 제1 호스트 프로세서와 제2 호스트 프로세서를 지시하는 라우팅 및 통지 테이블을 사용하는 단계를 포함한다.
본 발명의 일부 실시예는 비제한적인 첨부 도면을 참조하여 이하에서 상세히 설명된다.
- 전술된 도 1은 종래의 NFC 디바이스의 하드웨어 및 소프트웨어 구조를 도식적으로 나타내는 도면,
- 도 2는 본 발명에 따른 NFC 디바이스의 일 실시예의 하드웨어 및 소프트웨어 구조를 도식적으로 나타내는 도면,
- 도 3은 본 발명에 따른 통지 설정 모듈의 일 실시예를 도시하는 도면,
- 도 4a, 도 4b는 도 3의 모듈을 사용하여 통지하는 방법의 단계를 설명하는 도면,
- 도 5는 본 발명에 따른 통지 설정 모듈의 다른 실시예와 본 발명에 따른 통지 테이블의 일 실시예를 도시하는 도면,
- 도 6a, 도 6b는 도 5의 모듈을 사용하여 통지하는 방법의 일 실시예의 단계를 설명하는 도면,
- 도 7은 본 발명에 따른 통지 설정 모듈의 다른 실시예를 도시하는 도면,
- 도 8은 본 발명에 따른 통지 테이블의 다른 실시예를 도시하는 도면,
- 도 9는 본 발명에 따른 라우팅 및 통지 테이블의 일 실시예를 도시하는 도면.
도 2는 본 발명에 따른 NFC 디바이스(D2)의 구조를 도식적으로 나타낸다. 디바이스(D2)는 이전에 설명된 디바이스(D1)와 동일한 일반 구조를 구비하고, CLF 통신 인터페이스 회로("비접촉 프론트 엔드"), NFC 제어기("NFCC2"), 프로그램 및 데이터 메모리(MEM2), 통신 포트(P1, P2)를 포함하고, 이들 요소는 버스(BS)에 의해 연결된다. 포트(P1, P2)는 호스트 프로세서(HP1, HP2)가 디바이스(D2)에 연결될 수 있게 한다. 메모리(MEM2)는 본 발명에 따라 운영 시스템(OS), 라우팅 테이블(RT)을 포함할 수 있는 라우팅 프로그램(RPGR) 및 통지 프로그램(NPGR)을 수신한다. 인터페이스 회로(CLF)는 안테나 코일(AC1)을 구비하고, 안테나 코일(AC2)을 포함하는 외부 디바이스(EDV) 그 자체와 근거리 통신 채널을 수립하도록 구성된다. 디바이스(D2)와 호스트 프로세서(HP1 HP2)는 모바일 전화와 같은 휴대용 디바이스(MP)에 배열될 수 있다.
호스트 프로세서(HP1)와 외부 디바이스(EDV)가 트랜잭션을 수행할 때, 제어기(NFCC2)는 라우팅 프로그램(RPGR)을 실행하고, 외부 디바이스(EDV)에 의해 송신되고 인터페이스 회로(CLF)에 의해 수신된 커맨드(CAPDU)를 호스트 프로세서(HP1)에 전송하거나, 또는 프로세서(HP1)에 의해 송신된 응답(RAPDU)을 인터페이스 회로(CLF)에 전송하여, 응답이 외부 디바이스(EDV)에 송신되도록 한다. 제어기는 또한 본 발명에 따라 통지 프로그램(NPGR)을 실행하고, 프로세서(HP1)와 외부 디바이스(EDV)에 의해 교환되는 데이터(CAPDU, RAPDU)의 성질 및/또는 컨텐츠와 관련된 통지를 프로세서(HP2)에 송신한다.
일 실시예에 따라, 제어기는 아래와 같은 통지를 프로세서(HP2)에 송신한다:
- N[AIDi]: 프로세서(HP1)에 전송된 애플리케이션 선택 커맨드(SELECT_AID)에 존재하는 애플리케이션 식별자(AIDi)를 포함하는 애플리케이션 선택 통지,
- NCj: 인터페이스 회로(CLF)에 의해 수신되고 프로세서(HP1)로 전송된 커맨드(CAPDUj)에 관한 통지,
- NRj: 프로세서(HP1)에 의해 송신되고 인터페이스 회로(CLF)로 전송된 커맨드(RAPDUj)에 관한 통지.
커맨드 또는 응답과 관련된 통지(NCj, NRj)는 임의의 유형의 정보 또는 데이터, 예를 들어:
- 커맨드 또는 응답의 성질에 대한 정보(예를 들어 커맨드의 유형),
- 커맨드 또는 응답의 컨텐츠에 대한 정보(예를 들어 주어진 데이터가 커맨드에 존재하는지 또는 응답에 존재하는지), 및/또는
- 커맨드 또는 응답에 포함되는 하나 이상의 데이터를 포함할 수 있다.
통지(NCj 또는 NRj)는 외부 디바이스(EDV)와 호스트 프로세서(HP1)가 데이터(APDU)를 교환하는 프레임워크에서 애플리케이션의 특성 파라미터에 따라 생성된다. 이하 설명된 일부 실시예에서, 이 특성 파라미터는 애플리케이션의 식별자(AID)이다.
이 목적을 위해, 통지 프로그램(NPGR)은 통지 설정 모듈(MAi)(MA0, MA1, ... MAn)의 세트를 포함하고, 각 모듈(MAi)은 식별자(AIDi)와 연관된다. 모듈(MAi)의 구조는 체계적으로 도 3에 도시된다. 각 모듈은,
- 커맨드 식별 프로그램(CIP),
- 프로그램(CIP)이 식별될 수 있게 하는 커맨드(CAPDUj)(CAPDU0, CAPDU1, ... CAPDUNi)와 관련된 커맨드 분석 규칙(CAR0, CAR1, ...CARNi) 세트, 및
- 프로그램(CIP)이 식별될 수 있게 하는 응답(RAPDUj)(RAPDU0, RAPDU1, ... RAPDUNi)과 관련된 응답 분석 규칙(RARj)(RAR0, RAR1, ...RARNi) 세트를 포함한다.
각 응답 분석 규칙(RARj)은 커맨드 분석 규칙(CARj)과 연관되고, 각 커맨드 분석 규칙(CARj)은 프로그램(CIP)에 의하여 식별될 수 있는 커맨드(CAPDUj)와 연관된다. 각 규칙(CARj)은 제어기(NFCC2)가 프로세서(HP2)에 통신된 통지(NCj)를 생성할 수 있게 한다. 유사하게, 각 규칙(RARj)은 제어기가 프로세서(HP2)에 통신된 통지(NRj)를 생성할 수 있게 한다.
따라서, 통지가 생성되는 규칙(CARj, RARj)이 상이할 수 있는 것으로 인해 커맨드나 응답이 송신된 프레임워크에 있는 애플리케이션에 따라 동일한 커맨드(CAPDUj) 또는 동일한 응답(RAPDUj)이라도 상이한 통지(NCj, NRj)를 생성할 수 있다.
나아가, 애플리케이션과 연관된 식별 프로그램(CIP)은 애플리케이션이 사용하기 쉬운 임의의 커맨드와 임의의 응답을 식별하도록 설계될 필요가 없다. 통지가 요구되는 커맨드 또는 응답만이 프로그램(CIP)을 설계할 때 고려될 수 있다. 나아가, 커맨드는 대응하는 응답 그 자체가 통지(NRj)를 생성함이 없이 또는 그 역으로 통지(NCj)를 생성할 수 있다.
도 4a, 도 4b는 통지 프로그램(NPGR)에 의해 구현된 본 발명에 따른 통지 방법의 일 실시예를 설명한다. 본 명세서에서 프로세서(HP1)는 카드 에뮬레이션 모드에서 동작하여, 입력 애플리케이션 데이터(외부 디바이스(EDV)에 의해 송신되고 인터페이스 회로(CLF)에 의해 수신된 데이터)가 커맨드(CAPDU)이고 출력 애플리케이션 데이터(호스트 프로세서(HP1)에 의해 송신된 데이터)가 응답(RAPDU)인 것으로 가정된다.
도 4a를 참조하면, 본 방법은 인터페이스 회로(CLF)에 의해 수신된 입력 데이터(CAPDUj)의 라우팅을 기다리는 초기 단계(S1)를 포함한다. 이 데이터가 라우팅 프로그램(RPGR)에 의해 프로세서(HP1)로 라우팅될 때, 제어기(NFCC2)는 단계(S2)로 가고 여기서 커맨드(CAPDUj)가 애플리케이션 선택 커맨드("SELECT_AID")인지 여부를 결정한다. 답변이 '예'인 경우, 제어기는 단계(S3)로 가고, '아니오'인 경우 제어기는 단계(S6)로 간다.
단계(S3)에서, 제어기는 커맨드(CAPDUj)로부터 식별자(AIDi)를 추출한다. 단계(S4) 동안, 제어기는 커맨드(CAPDUj)를 현재 커맨드로 저장하고 식별자(AIDi)를 현재 식별자로 저장한다. 단계(S5) 동안, 제어기는 식별자(AIDi)를 포함하는 통지(N[AIDi])를 프로세서(HP2)에 송신하고 나서, 단계(S12)로 간다.
단계(S6)는 입력 데이터(CAPDUj)가 애플리케이션 선택 커맨드가 아닐 때 단계(S2) 후에 실행된다. 식별자(AIDi)는 커맨드(SELECT_AID)가 애플리케이션의 시작시에 외부 디바이스(EDV)에 의해 송신된 제1 커맨드이므로 이전의 단계(S4) 동안 현재 식별자로 저장된 것으로 가정된다. 따라서, 단계(S6)에서, 제어기는 모든 모듈(MA0 내지 MAn)로부터 현재 식별자(AIDi)와 연관된 통지 설정 모듈(MAi)을 선택한다. 단계(S7) 동안, 제어기는 모듈(MAi)에 존재하는 프로그램(CIP)에 의해 커맨드(CAPDUj)를 식별하고, 단계(S8)에서 이 커맨드를 현재 커맨드로 저장한다. 단계(S9)에서, 제어기는 모듈(MAi)에 존재하는 분석 규칙(CARj)에 액세스한다. 단계(S10)에서, 프로세서는 규칙(CARj)으로 커맨드(CAPDUj)를 분석하고, 단계(S11)에서 통지(NCj)를 생성하여 호스트 프로세서(HP2)로 송신하고 나서, 단계(S12)로 간다.
식별자(AIDi)를 현재 식별자로 저장하는 단계(S4)는 식별자 리스트에서 식별자의 랭킹("i")을 저장하는 단계, 및 통지 설정 모듈(MAi)을 각 랭킹(i)과 연관시키는 색인을 사용하는 단계를 수반할 수 있는 것으로 이해된다. 유사하게, 커맨드(CAPDUj)를 현재 커맨드로 저장하는 단계(S8)는 커맨드(CAPDU0 내지 CAPDUNi) 리스트(모듈(MAi)의 프로그램(CIP)이 식별될 수 있게 하는 커맨드의 리스트)에서 커맨드의 랭킹(j)을 저장하는 단계를 수반할 수 있고, 여기서 파라미터(j)는 커맨드(CAPDUj)에 적용가능한 분석 규칙(CARj, RARj)이 발견될 수 있게 한다.
도 4b의 단계(S12)에서, 제어기는 호스트 프로세서(HP1)에 의해 송신된 출력 데이터(RAPDUj)가 라우팅 프로그램(RPGR)에 의해 인터페이스 회로(CLF)로 라우팅되는 것을 기다린다. 이 데이터는 현재 커맨드(CAPDUj)에 대한 응답(RAPDUj)인 것으로 가정된다. 출력 데이터가 라우팅될 때, 제어기는 단계(S13) 동안 현재 식별자(AIDi)와 연관된 모듈(MAi)에 액세스하고 나서, 단계(S14) 동안 현재 커맨드(CAPDUj)와 연관된 응답 분석 규칙(RARj)에 액세스한다. 단계(S15)에서, 제어기는 규칙(RARj)으로 응답(RAPDUj)을 분석하고, 단계(S16)에서 통지(NRj)를 생성하여 호스트 프로세서(HP2)에 송신한다. 제어기는 새로운 커맨드가 프로세서(HP1)로 라우팅되는 것을 기다리면서 단계(S1)로 리턴한다.
방금 설명된 방법은 프로세서(NFCC2)가 특정 단계를 수행하는 것을 방지하는 예외를 포함할 수 있다. 이 경우에, 디폴트 통지가 송신되도록 이루어질 수 있다. 예를 들어, 단계(S6)에서 이전에 저장된 현재 식별자(AIDi)가 없거나, 또는 저장된 현재 식별자(AIDi)와 연관된 통지 설정 모듈(MAi)이 없는 것으로 보이는 경우, 제어기는 단계(S17a)로 가고 여기서 제어기는 이 예외와 관련된 통지를 호스트 프로세서(HP2)에 송신하고 나서, 단계(S12)로 간다. 이 통지는 예를 들어 프로세서(HP1)로 송신된 커맨드와 연관된 애플리케이션 식별자가 없거나, 또는 현재 식별자와 연관된 통지 설정 모듈이 없는 것을 나타낸다. 단계(S7)에서, 프로그램(CIP)이 커맨드(CAPDUj)가 식별되지 않은 경우, 제어기는 단계(S17b)로 가고 여기서 이 예외와 관련된 통지를 프로세서(HP2)에 송신하고 나서, 단계(S12)로 간다. 유사하게, 단계(S9)에서, 현재 모듈(MAi)이 커맨드 분석 규칙(CARj)을 전혀 포함하지 않은 경우, 제어기는 단계(S17c)로 가고 여기서 제어기는 이 예외와 관련된 통지를 송신하고 나서, 단계(S12)로 리턴한다. 단계(S13)에서, 이전에 저장된 현재 식별자(AIDi)가 없거나, 또는 제어기가 현재 식별자에 대응하는 모듈(MAi)을 전혀 발견하지 못한 경우, 제어기는 단계(S17d)로 가고 여기서 제어기는 이 예외와 관련된 통지를 프로세서(HP2)로 송신하고 나서, 단계(S1)로 리턴한다. 마지막으로, 단계(S14)에서, 제어기가 모듈(MAi)에서 현재 커맨드(CAPDUj)와 연관된 응답 분석 규칙(RARj)을 전혀 발견하지 못한 경우 또는 이전에 저장된 현재 커맨드(CAPDUj)가 없는 경우, 제어기는 단계(S17e)로 가고 여기서 제어기는 이 예외와 관련된 통지를 프로세서(HP2)로 송신하고 나서, 단계(S1)로 리턴한다.
본 방법의 하나의 대안적인 실시예에서, 입력 데이터를 라우팅하는 것을 기다리는 단계(S1), 및 출력 데이터를 라우팅하는 것을 기다리는 단계(S12)는 동시에 실행되어, 이에 의해 프로세서(HP1)가 제1 커맨드에 대한 임의의 응답을 송신함이 없이 (출력 데이터 없이) 제어기가 2개의 연속적인 커맨드를 라우팅하는 것을 프로세서(HP2)에 통지할 수 있게 한다. 나아가 제2 커맨드가 제1 커맨드 후에 수신된 경우, 제1 커맨드에 대한 응답이 프로세서(HP1)에 의해 송신됨이 없이, 제2 커맨드를 수신한 후 이 프로세서에 의해 송신된 응답은, 통지를 프로세서(HP2)로 송신하는 처리에 관한 한, 제1 커맨드에 대해서가 아니라 제2 커맨드에 대한 응답인 것으로 고려되는 것으로 이해된다.
도 5는 전술된 모듈(MAi)을 대체하는 통지 설정 모듈(MBi)(MB0 내지 MBn)의 일 실시예를 도시한다. 각 모듈(MBi)은 3개의 컬럼과 Ni+1개의 라인(라인의 수는 모듈마다 변할 수 있다)을 포함한다. 각 라인은 제1 컬럼에 커맨드 식별 마스크(IMj), 제2 컬럼에 분석 규칙(CARj), 및 제3 컬럼에 분석 규칙(RARj)을 포함한다. 마스크(IMj)는 식별될 커맨드(CAPDU)와 배타적 논리합 함수(Exclusive OR function)에 의해 비트별로 결합되도록 제공된 비트 스트링이다. 일 실시예에 따라, 배타적 논리합 함수에 의하여 결과("클린" 커맨드)를 마스크(IMj)와 결합하기 전에, 마스크로 식별될 수 없는 비트 또는 비-상위 비트(추정할 수 없는 값 비트)를 커맨드로부터 제거하기 위해 각 마스크(IMj)에는 논리곱 함수(AND function)에 의해 커맨드에 적용되도록 의도된 값 마스크가 동반된다. 커맨드 식별 마스크(IMj)의 각 비트와 커맨드의 대응하는 비트의 결합 결과가 0이라면, 커맨드는 이 마스크에 의해 식별된 것으로 고려되고, 분석 규칙(CARj, RARj)이 마스크(IMj)를 포함하는 라인에서 판독된다. 다른 실시예에서, 커맨드의 식별은 값 마스크와 식별 마스크의 결합된 기능을 보장하는 설정가능한 하드와이어(hard-wired)된 논리 함수에 의해 보장될 수 있다.
도 5에 도시된 바와 같이, 모듈(MAi)을 각 애플리케이션 식별자(AIDi)와 연관시키는 통지 테이블(AT1)이 더 제공된다. 테이블(AT1)은 식별자(AIDi) 또는 식별자의 랭킹(i)을 포함하는 제1 컬럼, 및 식별자(AIDi)와 연관된 모듈(MBi)을 나타내는 값(A(MBi))(A(MB0), A(MB1), ... A(MBn))을 포함하는 제2 컬럼을 포함한다. 이들 값은 모듈(MBi)의 메모리(MEM2)의 어드레스, 또는 이 모듈의 색인된 어드레스, 예를 들어, 어드레스 색인에서 모듈의 랭킹일 수 있다. 통지 테이블(AT1)은 애플리케이션 식별자와 이에 대응하는 통지 설정 모듈 사이에 룩업 테이블을 형성한다.
나아가, 커맨드 분석 규칙(CARj)은 데이터 마스크보다 더 복잡한 데이터 마스크(DMj) 또는 커맨드 분석 프로그램을 포함할 수 있다. 실로, 특정 알려진 커맨드는 데이터 마스크에 의해 추출될 수 있는 고정된 위치에 위치된 고정된 사이즈의 데이터 필드를 구비한다. 따라서, 규칙(CARj)이 데이터 마스크(DMj)를 포함하는 경우, 마스크는 논리곱 논리 함수(AND logic function)에 의해 커맨드와 결합되고, 이 결합의 결과는 프로세서(HP2)에 통지되는 데이터이다. 그러나, 다른 알려진 커맨드는 변수 위치와 길이 필드, 예를 들어 TLV("Type Length Value") 포맷의 커맨드를 구비한다. 서치되는 값이 발견되게 하는 태그를 이러한 커맨드에서 찾을 필요가 있는데, 이는 간단한 데이터 마스크보다 더 복잡한 분석 프로그램을 제공할 것을 요구한다.
그러나, 본 명세서에서 데이터 마스크는, 분석 프로그램을 요구하는 일반적으로 TLV 또는 LV 포맷의 ISO 7816 표준에 의해 제공된 응답(RAPDU)의 변수 구조로 인해, 응답 분석 규칙(RARj)에 사용될 수 없는 것으로 가정된다.
도 6a, 도 6b는 통지 설정 모듈(MBi)과 통지 테이블(AT1)을 사용하여 통지하는 방법의 일 실시예를 도시한다. 본 방법은 다음 단계를 포함한다:
- 단계(S20)(도 6a): 제어기는 입력 데이터(CAPDUj)가 라우팅 프로그램에 의해 라우팅되기를 기다리고 나서, 단계(S21)로 간다,
- 단계(S21): 배타적 논리합 함수(XOR)에 의해, 제어기는 커맨드(SELECT_AID)(부록 2의 예시 참조)를 식별하는 것에 전용된 마스크(MAID1)와 커맨드(CAPDUj)를 결합한다. 그 결과가 0인 경우, 커맨드는 식별자 선택 커맨드이고 제어기는 단계(S22)로 가고, 그렇지 않은 경우 제어기는 단계(S25)로 간다,
- 단계(S22): 논리곱 논리 함수에 의해, 제어기는 동작 결과를 형성하는 식별자(AIDi)(부록 2의 예시 참조)를 추출하는 것에 전용된 마스크(MAID2)와 커맨드(CAPDUj)를 결합한다,
- 단계(S23): 제어기는 마스크(MAID1)를 현재 마스크로 저장하고 식별자(AIDi)를 현재 식별자로 저장하거나 또는 식별자의 랭킹("i")으로 저장한다,
- 단계(S24): 제어기는 식별자(AIDi)를 포함하는 통지(N[AIDi])를 프로세서(HP2)에 송신하고 나서, 단계(S32)로 간다,
- 단계(S25): 통지 테이블(AT1)에 의해, 제어기는 현재 식별자(AIDi)에 대응하는 통지 설정 모듈(MBi)을 선택한다,
- 단계(S26): 제어기는 모듈(MAi)에서 제1 커맨드 식별 마스크(IM0)를 판독하고, 또는 만약 마스크가 이전의 단계(S26) 동안 이미 판독된 경우 그 다음 마스크(IM)를 판독한다,
- 단계(S27): 제어기는 값 마스크를 마스크에 적용한 후 배타적 논리합 함수에 의해 마스크(IM)와 커맨드(CAPDUj)를 결합한다; 그 결과 비트 스트링이 0인 경우, 제어기는 단계(S28)로 가고, 그렇지 않은 경우 단계(S26)로 리턴하여 그 다음 마스크를 판독한다,
- 단계(S28): 제어기는 마스크(IM)를 현재 마스크(IMj)로 저장하거나 또는 마스크의 랭킹("j")만을 저장한다,
- 단계(S29): 제어기는 모듈(MAi)에서 마스크(IMj)와 연관된 분석 규칙(CARj)을 판독한다. 규칙(CARj)은 데이터 마스크(DMj)를 포함하는 경우, 제어기는 단계(S30a)로 가고; 만약 규칙이 분석 프로그램을 포함하는 경우, 제어기는 단계(S30b)로 간다,
- 단계(S30a): 제어기는 통지될 커맨드 데이터로부터 추출하기 위해 논리곱 논리 함수에 의해 커맨드(CAPDUj)와 마스크(DMj)를 결합한다,
- 단계(S30b): 제어기는 커맨드로부터 추출된 데이터를 포함할 수 있는 통지될 정보 항목을 획득하기 위해 규칙(CARj)에 의해 커맨드(CAPDUj)를 분석한다,
- 단계(S31): 제어기는 데이터 및/또는 정보를 포함하는 통지(NCj)를 프로세서(HP2)로 송신하고, 단계(S32)로 간다,
- 단계(S32)(도 6b): 제어기는 출력 데이터(RAPDUj)가 인터페이스 회로(CLF)로 라우팅되기를 기다린다. 전술된 바와 같이, 제어기는 단계(S20)에서 라우팅될 제2 커맨드가 2개의 동시 커맨드가 수신된 경우를 커버하기를 동시에 기다릴 수 있다,
- 단계(S33): 제어기는 현재 모듈(MBi)에서 현재 마스크(IMj) 또는 마스크(MAID1)와 연관된 규칙(RARj)을 판독한다,
- 단계(S34): 제어기는 규칙(RARj)으로 응답(RAPDUj)(부록 2의 예시 참조)을 분석하고, 응답에 존재하는 데이터를 포함하거나 이 데이터로 설정될 수 있는 응답 통지를 생성한다,
- 단계(S35): 제어기는 이러한 정보를 포함하는 통지(NRj)를 프로세서(HP2)로 송신한다.
전술된 바와 같이, 본 방법은 다음 실행 예외사항 중 전부 또는 일부를 포함할 수 있다:
- 단계(S25)에서, 이전에 저장된 현재 식별자(AIDi)가 없거나 또는 현재 식별자와 연관된 모듈(MBi)이 없는 경우, 제어기는 단계(S36a)로 가고 여기서 제어기는 이 예외와 관련된 통지를 프로세서(HP2)로 송신하고 나서, 단계(S32)로 간다,
- 단계(S26)에서, 모듈(MBi)의 에 마스크(IM0 내지 IMNi) 중 그 어느 것도 현재 커맨드(CAPDUj)에 대응하지 않는 경우, 제어기는 단계(S36b)로 가고 여기서 제어기는 식별된 커맨드가 없다는 것을 나타내는 통지를 프로세서(HP2)로 송신하고 나서, 단계(S32)로 간다,
- 단계(S33)에서, 제어기가 현재 식별자(AIDi)를 전혀 발견하지 못한 경우, 제어기는 단계(S36c)로 가고 여기서 제어기는 알려진 애플리케이션에 링크되지 못한 식별가능하지 않은 데이터가 프로세서(HP1)에 의해 송신된 것을 나타내는 디폴트 통지를 프로세서(HP2)로 송신한다. 제어기가 현재 식별자(AIDi)와 연관된 모듈(MBi)을 전혀 발견하지 못한 경우, 제어기는 단계(S36d)로 가고 여기서 제어기는 식별자 애플리케이션(AIDi)과 링크된 식별가능하지 않은 데이터가 프로세서(HP1)에 의해 송신된 것을 나타내는 디폴트 통지를 프로세서(HP2)로 송신한다. 마지막으로, 제어기가 현재 식별자(AIDi) 및 저장된 현재 마스크(IMj)와 연관된 분석 규칙(RARj)을 전혀 발견하지 못한 경우, 제어기는 단계(S36e)로 가고 여기서 제어기는 식별가능하지 않은 응답이 프로세서(HP1)에 의해 송신된 것을 나타내는 디폴트 통지를 프로세서(HP2)로 송신한다.
도 7은 본 발명에 따른 통지 설정 모듈(MCi)의 다른 실시예를 도시한다. 식별 프로그램(CIP)은 모든 모듈(MCi)에 공통이고 각 모듈(MCi)은 분석 규칙(CARj, RARj)만을 포함한다. 이 실시예에서, 모듈(MCi)은 개별적으로-선택가능한 요소로 필요한 것은 아니다. 통지 프로그램은 현재 식별자(AIDi)와 현재 커맨드(CAPDUj)로부터 분석 규칙(CARj, RARj)의 쌍(NRi,j)에 직접 액세스할 수 있다.
호스트 프로세서(HP2)만이 프로세서(HP1)로 라우팅되거나 또는 프로세서에 의해 송신된 데이터에 관한 통지를 수신한 경우에 2개의 호스트 프로세서(HP1, HP2)에 링크된 디바이스(D2)에 적용된 통지 방법의 예가 전술되었다. 실제로, 디바이스는 3개 이상의 호스트 프로세서를 포함할 수 있고, 각 프로세서는 다른 호스트 프로세서의 활동(activity)과 함께 통지를 수신하기 쉽다. 본 발명에 따른 통지 방법은 다수의 통지를 생성하도록 설정될 수도 있다.
유사하게, 한번에 단 하나의 애플리케이션만이 호스트 프로세서(HP1)에 의해 관리되어, 호스트 프로세서(HP2)로 송신된 통지가 "현재 식별자"로 언급된 동일한 애플리케이션 식별자에 부착되게 한 것이 앞서 제안되었다. 일 실시예에 따라, 프로세서(HP1)와 외부 디바이스(EDV)는 여러 개의 애플리케이션을 동시에 수행할 수 있다. 이 경우에, 애플리케이션의 프레임워크에서 교환되는 데이터는 논리 채널에 의해 다른 애플리케이션의 프레임워크에서 교환되는 데이터와는 상이하다. 따라서, ISO 7816 표준은 커맨드 또는 응답의 제1 바이트(CLASS)의 비트(0 및 1)(디폴트 값은 단 하나의 애플리케이션만이 한번에 실행되는 이벤트에서 0이다)를 파라미터화하는 것에 의해 4개 내지 20개의 논리 채널을 사용하는 가능성을 제공한다. "글로벌 플랫폼" 사양은 ISO 7816 표준, 즉 총 20개의 채널에 의해 제공된 4개의 논리 채널에 더하여 16개의 논리 채널을 한정하는 4개의 추가적인 비트를 제공한다.
이 경우에, 애플리케이션 식별자를 저장하는 것으로는 디바이스(D2)에 의해 라우팅되는 커맨드 및 응답에 적용가능한 분석 규칙을 선택하는데 충분치 않다. 사실 식별자(AIDi)는 커맨드(SELECT_AID)에 존재하지만 그 다음 커맨드 또는 응답에는 포함되지 않는다. 본 발명에 따른 통지 방법은 이 경우에 식별자(AID0 내지 AIDn)(또는 그 랭킹 i)을 포함하는 컬럼과, 통지 설정 모듈(MBi)의 어드레스(A(MBi))를 포함하는 컬럼에 더하여 "논리 채널" 컬럼을 포함하는, 도 8에 도시된 유형의 통지 테이블(AT2)을 사용한다. "논리 채널" 컬럼은 초기에 비어 있고, 논리 채널 번호를 포함하는 커맨드(SELECT_AID)가 수신되고 호스트 프로세서로 라우팅될 때 동적으로 업데이트된다.
도 6a에 도시된 방법 단계는 다음과 같이 변경된다:
- 단계(S23)에서, 식별자(AIDi)가 수신된 제1 커맨드(SELECT_AID)로부터 추출될 때, 대응하는 논리 채널은 이 식별자와 함께 통지 테이블(AT2)에 레코드된다. 이 식별자는 "AID0"이고 외부 디바이스에 의해 선택된 논리 채널 번호는 "CH01"이라고 가정하면, 채널(CH01)은 도 8에 도시된 바와 같이 통지 테이블(AT2)에서 이 식별자와 연관된다.
- 단계(S23)의 다른 반복 동안, 다른 식별자가 다른 커맨드(SELECT_AID), 예를 들어, 식별자 "AID2"로부터 추출될 때, 및 하나의 예로서 논리 채널 번호 "CH02"가 커맨드에서 발견된 것으로 가정하면, 이 논리 채널 번호(CH02)는 통지 테이블(AT2)에서 식별자(AID2)와 연관된다.
- 단계(S25)가 실행될 때, 수신된 커맨드에 존재하는 논리 채널 번호는 통지 테이블(AT2)의 입력점으로 사용되어, 선택되어야 하는 모듈(MA0 또는 MA2)이 어느 것인지를 결정한다. 이 실시예에서, 단계(S23)에서 식별자(AIDi)를 저장하는 것이 필요치 않다. 이것이 커맨드가 수신되고 저장될 수 있는 각 논리 채널과 연관된 모듈(MA0, MA2)의 신원(identity)(메모리에서 어드레스 또는 색인된 어드레스)이다.
본 발명에 따른 라우팅 방법의 일부 실시예는 통지를 설정하도록 선택된 특성 파라미터가 애플리케이션의 식별자(AIDi)이거나 또는 이 식별자와 연관된 논리 채널인 것으로 앞서 설명되었다.
본 발명에 따른 라우팅 방법의 다른 실시예에서, 애플리케이션의 다른 특성 파라미터는 통지를 설정하는데 사용될 수 있다. 구체적으로, 이들 파라미터는 입력 데이터의 도달점을 형성하는 호스트 프로세서를 결정하기 위해 라우팅 프로그램(RPGR)에 의해 사용되는 것일 수 있다. 이러한 경우에, 종래의 라우팅 테이블(RT)을 대체하는 라우팅 및 통지 테이블(RNT)을 획득하기 위해 라우팅 프로그램(RPGR)에 의해 사용되는 라우팅 테이블(RT)과, 통지 프로그램(NPGR)에 의해 사용되는 통지 테이블을 병합할 수 있다.
라우팅 및 통지 테이블(RNT)의 개략적인 예가 부록 1의 테이블 1에 설명되고 도 9에 도시된다. 테이블(RNT)은 본 명세서에서 NFC 포럼의 NCI 사양(TC DEV NCI 00058R013 NFC포럼 TS NCI 1.0)과 함께 설계된다.
NCI 사양(문단 5.3)은, NFC 디바이스가 "청취" 모드(listen mode)에 있을 때, 3개의 파라미터에 기초하여 라우팅 방법을 추천한다:
- 애플리케이션 식별자(AID),
- 식별자(AID)가 발견될 수 없는 경우, 프로토콜,
- 프로토콜이 결정될 수 없는 경우, 기술.
"프로토콜" 및 "기술" 파라미터는 NFC 포럼의 "DIGITAL 1.0" 사양에서 한정된다. 프로토콜은 "유형1태그", "유형2태그", "유형3태그", "유형4A태그", "유형4B", "ISO-DEP", "NFC-DEP"일 수 있다. 이 기술은 모두 13.56MHz의 반송파 주파수를 사용하는, 또는 임의의 다른 소위 "소유자(owner)" 프로토콜, 예를 들어 ISO15을 사용하는 "유형 A", "유형 B" 또는 "유형 F"일 수 있다. 기술은 RF 반송파, 통신 모드, 비트율, 변조 구조, 비트-레벨 코딩, 프레임 포맷, 프로토콜 등과 같은 송신 파라미터 그룹으로 NCI 사양에 의해 한정된다.
라우팅 및 통지 테이블(RNT)은 라우팅과 통지를 설정하도록 다음 특성 파라미터를 포함한다:
- AID: 애플리케이션 식별자,
- "PROT": NCI 사양의 의미 내의 "프로토콜",
- "TECH": NCI 사양의 의미 내의 "기술".
- "BAT": 디바이스(D2)의 배터리(도 2에 미도시)의 상태.
식별자(AID)는 전술된 커맨드(SELECT_AID)에서 발견된다(단계 S3 또는 S22). 그러나, 식별자(AID)는 본 명세서에서 입력 데이터를 라우팅하기 위하여 라우팅 프로그램(RPGR)에 의해 검출되고 이러한 검출은 통지 프로그램에 의해 다시 수행될 필요가 없다. 그리하여 통지 프로그램의 간략화가 제공될 수 있다. 일반적으로 말하면, 통지 프로그램 및 라우팅 프로그램은 애플리케이션의 동일한 특성 파라미터에 기초하여 라우팅 및 통지 관리 프레임워크에서 병합될 수 있다. 이 프로토콜은 NCI 사양에서 제공된 소위 "발견" 단계 동안 검출된다. 이 기술은 또한 "발견" 단계 동안 검출된다. 보다 정확히는, "활동"이라는 챕터에서, 사양은 다음 단계, 즉 1 - 기술 검출; 2 - 충돌 처리(선택적); 3 - 디바이스의 활성화; 4 - 데이터 교환; 5 - 디바이스의 비활성화를 제공한다. 이 기술은 단계 1에서 식별되고 프로토콜은 단계 1 및 3에서 식별된다.
배터리의 상태는 "ON"(만족스런 충전 레벨을 가지는 배터리), "LOW"(임계값 아래의 레벨) 또는 "OFF"(비어 있는 배터리 또는 디바이스의 특정 유닛이 기능하기에는 불충분한 전하를 갖는 배터리)일 수 있다. 디바이스(D2)는 EP 1 855 229에 설명된 바와 같이 외부 디바이스(EDV)에 의해 방출된 자기장으로부터 에너지를 취하는 것에 의해 배터리가 빈 상태에서 동작 모드를 가질 수 있다. 하나의 대안에서, 배터리의 상태와 호스트 프로세서의 상태 사이의 결합(활성화를 위해서는 "ON" 및 비활성화를 위해서는 "OFF")이 고려될 수 있다. 호스트 프로세서의 상태와 관련된 추가적인 컬럼이 제공되어야 한다.
나아가, 라우팅 및 통지 테이블(RNT)은 특성 파라미터(AID, PROT, TECH, BAT)에 따라 변할 수 있는 다음 변수를 포함한다:
- TargProc1: 입력 데이터를 라우팅하는 타깃 프로세서를 나타낸다. 본 명세서에서 디바이스(D2)는 3개의 호스트 프로세서(HP1, HP2, HP3)에 연결되고, 프로세서(HP3)는 도 2에서 점선으로 도시되고 포트(P3)에 연결된 것으로 가정된다,
- TargProc2: 본 발명에 따라 통지를 송신하는 타깃 프로세서를 나타낸다.
- A(MB): 이 컬럼은 프로세서(TargProc2)로 송신된 통지를 설정할 수 있는 모듈(MBi)을 나타내는 전술된 값(A(MB0), A(MB1), ... A(MBn))을 포함한다.
NCI 사양은 식별자(AID)가 알려진 경우 타깃 프로세서의 신원(여기서 "TargProc1")이 이 식별자(AID)로부터 결정되고, 또는 식별자가 알려지지 않은 경우(특정 NFC 애플리케이션이 식별자(AID)를 사용하지 않는 경우) 프로토콜로부터 결정되고, 또는 심지어 식별자(AID)와 프로토콜이 결정될 수 없는 경우에도 이 기술로부터 결정되는 것을 제공한다.
테이블(RNT)에 의해 도시된 라우팅은 3개의 가능성, 즉 알려진 식별자(AID), 알려지지 않은 식별자이지만 알려진 프로토콜, 알려지지 않은 식별자와 프로토콜이지만 알려진 기술을 고려한다. 테이블(RNT)에 포함된 표시 "PROT0", "PROT2", "PROT4", "TECH1", "TECH2"는 개략적인 것이고 각각은 전술된 프로토콜 또는 기술, 또는 임의의 다른 적용가능한 기술 또는 프로토콜 중 하나에 대응한다.
라우팅 및 통지 테이블의 이러한 아키텍처는 입력 데이터를 라우팅하기 위해 타깃 프로세서(TargProc1)를 결정하는 규칙이 통지가 송신된 프로세서 및 이 통지를 설정하는데 사용될 통지 설정 모듈을 결정하는데 사용될 수 있다는 것을 보여준다.
미도시된 일 실시예에 따라, 라우팅 및 통지 테이블(RNT)은 통지를 수신하는 제2 프로세서를 나타내는 컬럼 "TargProc3"을 포함한다. 이 테이블은 컬럼 "TargProc3"으로 표시된 프로세서로 송신된 통지를 생성하는데 사용될 수 있는 통지 설정 모듈을 나타내는 제2 컬럼 "MB"을 포함할 수 있다. 이 경우에, 통지는 송신되는 프로세서에 따라 상이하게 설정될 수 있다.
부록 1
본 발명의 상세한 설명과 일체 부분을 형성한다.
테이블 1 (라우팅 및 통지 테이블(RNT))
Figure 112015050957635-pct00002
부록 2
본 발명의 상세한 설명과 일체 부분을 형성한다.
1 - 커맨드(SELECT-AID)를 식별하는 식별 마스크의 예:
1.1 - 커맨드(SELECT_AID)의 포맷
Figure 112015050957635-pct00003
(16진수 표기)
커맨드의 식별:
1.2 - 값 마스크(VM)
Figure 112015050957635-pct00004
(이진수 표기)
1.3 - 식별 마스크(IM)
Figure 112015050957635-pct00005
(이진수 표기)
1.4 - 마스크에 의해 수행되는 동작
Match1 = [분석될 커맨드] XOR VM (XOR = Exclusive OR)
Match2 = Match1 AND IM (AND = AND function)
Match2 = 00 00 00 00… (16진수)인 경우, 커맨드가 식별된다.
2 - 커맨드(SELECT-AID)의 식별자(AID)를 추출하는 마스크의 예
2.1 - 커맨드의 예
Figure 112015050957635-pct00006
(16진수 표기)
2.2 - 마스크의 예
파라미터(Lc)는 커맨드(APDU)의 데이터 필드에 존재하는 바이트의 수를 나타낸다. 이 예에서, 마스크는 파라미터 Lc=0로 계산된다.
Figure 112015050957635-pct00007
(16진수 표기)
Bx = 커맨드의 랭킹(x)의 바이트
00 = 사용되지 않는 바이트
FF = 사용되는 바이트
2.3 - 식별자 추출
AID_TEMP = [분석될 커맨트] AND 마스크
AID = 바이트 B5 최대 바이트 B(5+Lc-1)
AID = 바이트 B5 최대 바이트 B11
3 - 커맨드(CAPDUj)를 식별하는 식별 마스크의 예
3.1 커맨드의 예
"판독 레코드" 커맨드 (마스터카드/페이패스(PayPass) 트랜잭션 커맨드). 커맨드의 일반 포맷:
Figure 112015050957635-pct00008
필드(P2)는 이진수로 표시되고, 다른 필드는 16진수로 표시된다. 값 "x"의 비트는 변수 값의 비트이다.
이러한 커맨드는 필드(P1)에서 각 판독 레코드 커맨드가 상이한 응답을 호출하기 때문에 각 필드(P1)("레코드 번호")에 대해 상이한 마스크를 요구한다. 마스크의 수는, 추출되어 호스트 프로세서에 통지될 데이터의 수에 의존한다. 이 예에서, 마스크는 다음과 같을 수 있다:
3.2 값 마스크와 식별 마스크의 예
Figure 112015050957635-pct00009
(이진수 표기)
이 마스크는 값 마스크(비트 "x": 무시되는 비트)와 식별 마스크(0 또는 1에 대한 비트)이다. 이것은, 논리곱 함수에 의해 분석되기 위해 커맨드와 결합되는 값 마스크(비트 "x"는 0이고 모든 다른 값은 1이다)와, 배타적 논리합 함수에 의해 값 마스크와 결합 결과와 결합되는 식별 마스크(다른 비트는 유지된 채 모든 비트 "x"는 0으로 대체된다)로 분해될 수 있다.
4 - 응답을 분석(분석 규칙(RARj))하는 분석 프로그램의 예
응답의 예:
Figure 112015050957635-pct00010
Figure 112015050957635-pct00011
응답은 TLV 포맷(유형-길이-값)이다. 그 컨텐츠를 분석하기 위해, 서치된 값이 발견될 수 있게 하는 태그를 찾아야 한다.
"소유자의 이름" 필드를 서치하는 분석 프로그램의 예:
프로그램은 다음 단계를 수행하여야 한다:
- SW1-SW2 = '9000'인지를 체크한다
- 응답 시작시에 태그 '70'을 찾는다
- 태그 '70'의 값에 태그 '56'을 찾는다
이 값은 특정 포맷(여기서, 자기 스트립 카드(magnetic strip card)와 관련된 역사적인 이유로 TLV 포맷이 아니라 필드 분리자)의 이름을 포함하는 "트랙 1 데이터" 필드이다. 이 예에서, "트랙 1 데이터"는 이름을 추출하는 분석이 통지를 수신하는 호스트 프로세서가 이것을 할 수 있으므로 통지의 프레임워크에서 너무 특정될 수 있기 때문에 통지를 수신하는 호스트 프로세서로 송신될 수 있다.

Claims (15)

  1. 제어기(NFCC2), 제1 호스트 프로세서(HP1) 및 제2 호스트 프로세서(HP2)를 포함하고, 제어기(NFCC2)는 외부 디바이스(EDV)와 근거리 통신 채널을 수립하고, 외부 디바이스(EDV)에 의해 송신된 애플리케이션 데이터(CAPDU, CAPDUj)를 제1 호스트 프로세서(HP1)에 제공하도록 구성된 근거리 통신 디바이스(D2)로서,
    상기 제어기는 외부 디바이스에 의해 전송된 애플리케이션 데이터(CAPDU, CAPDUj)를 수신하면,
    - 외부 디바이스에 의해 전송된 애플리케이션 데이터(CAPDUj)를 식별하는 동작,
    - 데이터 식별 결과에 따라 그리고 외부 디바이스(EDV)가 데이터를 제1 호스트 프로세서에 송신하는 프레임워크에서 애플리케이션의 특성 파라미터(AID, AIDi, PROT, TECH)에 따라 데이터 분석 프로그램(MAi, MBi, CARj, RARj)을 선택하는 동작,
    - 선택된 분석 프로그램에 의해 애플리케이션 데이터를 분석하는 동작,
    - 선택된 분석 프로그램에 의한 데이터 분석 결과를 이용하여, 제1 호스트 프로세서(HP1)에 제공된 애플리케이션 데이터(CAPDU, CAPDUj)의 성질 또는 컨텐츠와 관련된 통지(NCj, NRj)를 설정하는 동작, 및
    - 통지(NCj, NRj)를 제2 호스트 프로세서(HP2)에 제공하는 동작을 수행하도록 더 구성된 것을 특징으로 하는 근거리 통신 디바이스.
  2. 제1항에 있어서,
    - 외부 디바이스(EDV)가 데이터를 제1 호스트 프로세서로 송신하는 프레임워크에서 애플리케이션의 식별자(AID, AIDi),
    - 근거리 통신 채널이 형성되는 기술(TECH), 또는
    - 근거리 통신 채널이 형성되는 통신 프로토콜(PROT)
    로 이루어진 특성 파라미터 중 적어도 하나에 따라 통지를 설정하도록 구성된 것을 특징으로 하는 근거리 통신 디바이스.
  3. 제1항 또는 제2항에 있어서,
    애플리케이션 데이터(CAPDU, CAPDUj)에 존재하는 데이터, 또는 애플리케이션 데이터에 존재하는 데이터에 대한 정보 항목을 포함하는 통지를 제2 호스트 프로세서(HP2)에 제공하도록 구성된 것을 특징으로 하는 근거리 통신 디바이스.
  4. 제1항 또는 제2항에 있어서,
    외부 디바이스(EDV)가 데이터를 제1 호스트 프로세서(HP1)에 송신하는 프레임워크에서 애플리케이션의 식별자(AIDi)를 포함하는 통지(N[AIDi])를 제2 호스트 프로세서(HP2)에 제공하도록 구성된 것을 특징으로 하는 근거리 통신 디바이스.
  5. 제1항 또는 제2항에 있어서,
    데이터에 대응하는 마스크가 발견될 때까지 각 마스크를 애플리케이션 데이터와 비교하는 것에 의해, 일련의 식별 마스크(IM)에 의해 애플리케이션 데이터(CAPDUj)를 식별하도록 구성된 것을 특징으로 하는 근거리 통신 디바이스.
  6. 제5항에 있어서,
    선택된 분석 프로그램을 형성하거나 이에 포함된 데이터 마스크(DMj)와 애플리케이션 데이터를 결합하는 것에 의해 애플리케이션 데이터를 분석하도록 구성된 것을 특징으로 하는 근거리 통신 디바이스.
  7. 제1항 또는 제2항에 있어서,
    애플리케이션 데이터는 ISO 7816 표준의 의미 내의 CAPDU 커맨드인 것을 특징으로 하는 근거리 통신 디바이스.
  8. 제1항 또는 제2항에 있어서,
    - 제1 호스트 프로세서(HP1)에 의해 송신된 애플리케이션 데이터(RAPDUj)를 외부 디바이스(EDV)에 제공하는 동작,
    - 제1 호스트 프로세서(HP1)에 의해 송신된 애플리케이션 데이터(RAPDUj)의 성질 또는 컨텐츠와 관련된 통지(NRj)를 제2 호스트 프로세서(HP2)에 제공하는 동작, 및
    - 특성 파라미터(AID, AIDi, PROT, TECH)에 따라 통지를 설정하는 동작을 수행하도록 구성된 것을 특징으로 하는 근거리 통신 디바이스.
  9. 제어기(NFCC2), 제1 호스트 프로세서(HP1) 및 제2 호스트 프로세서(HP2)를 포함하는 근거리 통신 장치(D2)에 의한 근거리 통신 방법으로서,
    제어기(NFCC2)에 의해 수행되는:
    - 외부 디바이스(EDV)와 근거리 통신 디바이스(D2) 사이에 근거리 통신 채널을 수립하는 단계,
    - 외부 디바이스(EDV)에 의해 전송된 애플리케이션 데이터(CAPDU, CAPDUj)를 근거리 통신 디바이스의 제1 호스트 프로세서(HP1)에 제공하는 단계를 포함하고,
    제어기(NFCC2)에 의해 수행되는:
    - 외부 디바이스에 의해 전송된 애플리케이션 데이터를 식별하는 단계,
    - 데이터 식별 결과에 따라 그리고 외부 디바이스(EDV)가 데이터를 제1 호스트 프로세서에 송신하는 프레임워크에서 애플리케이션의 특성 파라미터(AID, AIDi, PROT, TECH)에 따라 데이터 분석 프로그램(MAi, MBi, CARj, RARj)을 선택하는 단계,
    - 선택된 분석 프로그램에 의해 애플리케이션 데이터를 분석하는 단계,
    - 선택된 분석 프로그램에 의한 데이터 분석 결과를 이용하여, 제1 호스트 프로세서(HP1)에 제공된 애플리케이션 데이터(CAPDU, CAPDUj)의 성질 또는 컨텐츠와 관련된 통지(NCj, NRj)를 설정하는 단계,
    - 통지(NCj, NRj)를 제2 호스트 프로세서(HP2)에 제공하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서, 상기 통지는,
    - 외부 디바이스(EDV)가 데이터를 제1 호스트 프로세서에 송신하는 프레임워크에서 애플리케이션의 식별자(AID, AIDi),
    - 근거리 통신 채널이 형성되는 비접촉 통신 기술(TECH), 또는
    - 근거리 통신 채널이 형성되는 비접촉 통신 프로토콜(PROT)
    로 이루어진 특성 파라미터 중 적어도 하나에 따라 설정되는 것을 특징으로 하는 방법.
  11. 제9항 또는 제10항에 있어서,
    제2 호스트 프로세서(HP2)에 제공된 통지는 애플리케이션 데이터(CAPDU, CAPDUj)에 존재하는 데이터, 또는 애플리케이션 데이터에 존재하는 데이터에 대한 정보를 포함하는 것을 특징으로 하는 방법.
  12. 제9항 또는 제10항에 있어서,
    외부 디바이스에 의해 전송되고 제1 호스트 프로세서에 제공된 애플리케이션을 선택하는 커맨드를 수신할 때, 외부 디바이스(EDV)가 데이터를 제1 호스트 프로세서(HP1)에 송신하는 프레임워크에서 애플리케이션의 식별자(AIDi)를 포함하는 통지(N[AIDi])를 제2 호스트 프로세서(HP2)에 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 제9항 또는 제10항에 있어서,
    상기 방법은 애플리케이션의 적어도 하나의 특성 파라미터(AID, AIDi, PROT, TECH)에 따라 제1 호스트 프로세서(HP1)와 제2 호스트 프로세서(HP2)를 지시하기 위한 라우팅 및 통지 테이블(RNT)의 사용을 수반하는 것을 특징으로 하는 방법.
  14. 삭제
  15. 삭제
KR1020157014041A 2012-11-14 2013-11-14 설정가능한 통지 수단을 포함하는 nfc 디바이스 KR102105498B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1260850 2012-11-14
FR1260850A FR2998121B1 (fr) 2012-11-14 2012-11-14 Dispositif nfc comprenant des moyens de notification configurables
PCT/FR2013/052742 WO2014076427A1 (fr) 2012-11-14 2013-11-14 Dispositif nfc comprenant des moyens de notification configurables

Publications (2)

Publication Number Publication Date
KR20150085821A KR20150085821A (ko) 2015-07-24
KR102105498B1 true KR102105498B1 (ko) 2020-04-28

Family

ID=47833164

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157014041A KR102105498B1 (ko) 2012-11-14 2013-11-14 설정가능한 통지 수단을 포함하는 nfc 디바이스

Country Status (8)

Country Link
US (1) US9407331B2 (ko)
EP (1) EP2920986B1 (ko)
JP (1) JP6334551B2 (ko)
KR (1) KR102105498B1 (ko)
CN (1) CN104854883B (ko)
FR (1) FR2998121B1 (ko)
HK (1) HK1214065A1 (ko)
WO (1) WO2014076427A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5633336B2 (ja) * 2010-11-29 2014-12-03 ソニー株式会社 通信装置および通信方法、通信制御装置および通信制御方法、並びにプログラム
US9843361B2 (en) * 2014-10-06 2017-12-12 Google Llc Communicating via near field communications
US20160127857A1 (en) * 2014-10-30 2016-05-05 Qualcomm Incorporated Enhanced interoperability between host card emulation and a secure element
FR3047620B1 (fr) * 2016-02-09 2018-03-16 Idemia France Procede d'administration d'un canal de communication entre deux composants hotes d'un dispositif mobile nfc
US10284245B2 (en) 2017-07-28 2019-05-07 Qualcomm Incorporated Enhanced modem based carrier auto-selection algorithm
FR3094516A1 (fr) * 2019-03-25 2020-10-02 Proton World International N.V. Système électronique
FR3094514A1 (fr) 2019-03-25 2020-10-02 Proton World International N.V. Système électronique
FR3094517A1 (fr) 2019-03-25 2020-10-02 Proton World International N.V. Système électronique

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090247077A1 (en) 2008-03-27 2009-10-01 Vladimir Sklovsky Method and Apparatus for Automatic Near Field Communication Application Selection in an Electronic Device
US20100227553A1 (en) * 2006-08-04 2010-09-09 Inside Contactless Method of routing incoming application data in an nfc chipset, for identification of the application
US20110010755A1 (en) 2007-12-13 2011-01-13 Jukka Tapio Virtanen Interaction between secured and unsecured environments

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2815490B1 (fr) 2000-10-16 2006-07-07 Inside Technologies Lecteur de circuit integre sans contact
FR2890207B1 (fr) 2005-08-23 2007-11-02 Inside Contactless Sa Lecteur a couplage inductif comprenant des moyens d'extraction d'une tension d'alimentation electrique
FR2901077B1 (fr) * 2006-05-10 2008-07-11 Inside Contactless Sa Procede de routage de donnees entrantes et sortantes dans un jeu de puces nfc
EP1855229B1 (fr) 2006-05-10 2010-08-11 Inside Contactless Procédé de routage de données sortantes et entrantes dans un chipset NFC
WO2009080907A1 (fr) * 2007-09-27 2009-07-02 Inside Contactless Procédé et dispositif de gestion de données d'application dans un système nfc en réponse à l'émission ou la réception de données sans contact

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100227553A1 (en) * 2006-08-04 2010-09-09 Inside Contactless Method of routing incoming application data in an nfc chipset, for identification of the application
US20110010755A1 (en) 2007-12-13 2011-01-13 Jukka Tapio Virtanen Interaction between secured and unsecured environments
US20090247077A1 (en) 2008-03-27 2009-10-01 Vladimir Sklovsky Method and Apparatus for Automatic Near Field Communication Application Selection in an Electronic Device

Also Published As

Publication number Publication date
US20150280787A1 (en) 2015-10-01
JP2015536505A (ja) 2015-12-21
HK1214065A1 (zh) 2016-07-15
KR20150085821A (ko) 2015-07-24
CN104854883A (zh) 2015-08-19
FR2998121A1 (fr) 2014-05-16
EP2920986B1 (fr) 2020-01-01
CN104854883B (zh) 2020-06-09
FR2998121B1 (fr) 2014-11-21
WO2014076427A1 (fr) 2014-05-22
JP6334551B2 (ja) 2018-05-30
US9407331B2 (en) 2016-08-02
EP2920986A1 (fr) 2015-09-23

Similar Documents

Publication Publication Date Title
KR102105498B1 (ko) 설정가능한 통지 수단을 포함하는 nfc 디바이스
US11334862B2 (en) Terminal transaction method, and terminal
US11741455B2 (en) Systems and methods for providing near field communications
CN105493538B (zh) 用于安全元件中心式nfc架构的nfc访问控制的系统和方法
JP5668051B2 (ja) Nfcシステムを含む移動通信装置内の少なくとも1つのアプリケーションを事前に選択する方法
KR101788691B1 (ko) 근접장 통신에서 보안 요소의 선택을 구현하기 위한 방법, 모바일 단말기, 및 pos 머신
CN104471600B (zh) 一种安全单元的管理方法及终端
TWI551074B (zh) 用於近場通訊之通訊系統及方法
US20150278798A1 (en) Method for protecting sensitive data transmitted in an nfc system
EP2809054B1 (en) Mobile electronic device with transceiver for wireless data exchange
JP6573672B2 (ja) Nfcによる通信装置及び方法
KR20130142864A (ko) 신용카드를 이용한 휴대정보 단말기에서의 모바일 카드 발급방법 및 이를 위한 신용카드
EP2764481A1 (fr) Procede et systeme pour executer une transaction sans contact autorisant de multiples applications et de multiples instances d'une meme application
US10810591B2 (en) Virtual reality headset device and payment method
CN107251069A (zh) 一种近场通信支付方法及终端
JP2019519127A (ja) 組み合わされた信頼できるおよび信頼できないデータ伝送
CN110414651A (zh) 调试智能卡的方法及装置
EP3416121B1 (en) Digital wallet application for mobile payment
Roland et al. Comparison of the usability and security of NFC's different operating modes in mobile devices.
WO2016168989A1 (zh) 一种非接触前端的配置方法及终端
CN103632173A (zh) 标签的访问、访问处理方法及装置
Karlíková Komunikace bezkontaktních karet v Androidu
JP2008129822A (ja) 個体認証に基づいた通信が可能となる通信システム
CN104680206A (zh) 标签的访问处理方法
CN105991685A (zh) 数据更新方法及系统

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant