KR100757533B1 - 고속 통신 지원을 위한 스마트 카드 - Google Patents

고속 통신 지원을 위한 스마트 카드 Download PDF

Info

Publication number
KR100757533B1
KR100757533B1 KR1020060054983A KR20060054983A KR100757533B1 KR 100757533 B1 KR100757533 B1 KR 100757533B1 KR 1020060054983 A KR1020060054983 A KR 1020060054983A KR 20060054983 A KR20060054983 A KR 20060054983A KR 100757533 B1 KR100757533 B1 KR 100757533B1
Authority
KR
South Korea
Prior art keywords
data
memory
command
smart card
microprocessor
Prior art date
Application number
KR1020060054983A
Other languages
English (en)
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 주식회사 케이티프리텔
Priority to KR1020060054983A priority Critical patent/KR100757533B1/ko
Application granted granted Critical
Publication of KR100757533B1 publication Critical patent/KR100757533B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control

Abstract

본 발명은 스마트 카드에 관한 것으로서, 좀 더 상세하게는 고속 통신을 지원하는 스마트 카드에 관한 것이다. 본 발명의 바람직한 실시예에 따르면, 커맨드를 전달하는 커맨드 라인, 데이터 토큰을 전달하는 데이터 라인, 데이터를 저장하는 메모리, RF(Radio Frequency) 데이터를 송수신하는 모뎀, 커맨드 라인 또는 모뎀을 통해 수신한 커맨드에 따라 데이터 처리를 수행하고 메모리와 데이터를 교환하는 마이크로 프로세서 및 커맨드 라인을 통해 수신된 커맨드에 따라 데이터 라인이 메모리 또는 마이크로 프로세서로 연결되도록 연결상태를 변경하고, 데이터 라인 또는 모뎀으로부터 수신된 데이터의 우선순위를 구분하여 우선순위가 높은 데이터를 마이크로 프로세서로 출력하는 데이터 처리부를 포함하는 스마트 카드를 제공한다.
스마트 카드, 데이터 버퍼

Description

고속 통신 지원을 위한 스마트 카드{Smart Card for Supporting High Speed Communication}
도 1은 종래의 스마트 카드를 도시한 구성도.
도 2는 본 발명의 바람직한 실시예에 따른 스마트 카드를 설명하기 위한 예시도.
도 3는 본 발명의 바람직한 실시예에 따른 스마트 카드의 구성을 설명하기 위한 블록도.
도 4는 본 발명의 바람직한 실시예에 따른 단말-스마트 카드간 통신 방식을 설명하는 예시도.
도 5는 스마트 카드에서 계층별 데이터 형식을 도시한 예시도.
도 6은 고속 통신 프로토콜로서 MMC 버스 프로토콜을 도시한 도면.
도 7a 및 도 7b는 본 발명의 바람직한 일 실시예에 따른 데이터 버퍼에서 우선순위를 구분하기 위한 명령 APDU 및 응답 APDU의 구성을 설명하기 위한 도면.
도 8은 명령 APDU의 CLA 바이트의 구성을 설명하기 위한 도면.
도 9는 본 발명의 바람직한 일 실시예에 따른 데이터 버퍼에서 우선순위 구분을 설명하기 위한 상태 예시도.
도 10은 본 발명의 바람직한 다른 일 실시예에 따른 데이터 버퍼에서 우선 순위 구분을 설명하기 위한 상태 예시도.
도 11은 본 발명의 바람직한 일 실시예에 따른 데이터 컨트롤러를 설명하기 위한 상태 예시도.
<도면의 주요 부분에 대한 부호 설명>
100: 데이터 처리부 110: 인터페이스 드라이버
120: 메모리 인터페이스 컨트롤로 130: 메모리 코어 인터페이스
150: 메모리 컨트롤러 160: 데이터 버퍼
170: 모뎀 180: 전압발생기/리셋생성기
190: 클럭생성기 200: 메모리
300: 마이크로 프로세서
본 발명은 스마트 카드에 관한 것으로서, 좀 더 상세하게는 고속통신을 지원하는 스마트 카드에 관한 것이다.
종래의 스마트 카드는 도 1과 같이 코드(Code) 저장을 위한 롬(ROM) 메모리와 연산 지원을 위한 램(RAM) 메모리, 애플릿(Applet) 저장을 위한 이이피롬(EEPROM) 메모리로 구성되어 있다. 그러나 칩 기반의 서비스가 활성화되면서 메 모리 크기에 대한 요구사항이 많아지고 있으나, 이이피롬(EEPROM)은 1 Mbyte 이상의 대용량 메모리를 구현하기 힘든 단점이 있다. 이에 기존의 스마트 카드에 플래시(Flash) 메모리를 도입하여 대용량의 메모리를 지원하는 스마트 카드를 구성하는 움직임이 스마트 카드 제조업체로부터 일어나고 있다.
그러나, 기존에 대용량 메모리를 지원하는 스마트 카드는 도 1과 같이 물리적으로 하나의 칩 상에 구현되어 있을 뿐이며, 스마트 카드와 대용량 메모리가 기능적으로 통합되어 제공되지 않았다. 이에 스마트 카드의 보안성을 활용하여 대용량 메모리에 데이터를 저장하거나, 스마트 카드의 메모리적인 제약 사항을 대용량 메모리를 활용하여 보완할 수 없는 문제점이 있었다.
또한, 이러한 대용량 메모리 스마트 카드를 멀티미디어 기능이 지원되는 모바일 단말에서 사용하는 경우 통신 인증 기능 및 멀티미디어 컨텐츠 구동이 되어야 하므로, 기존 스마트 카드의 ISO(International Standard Organization) 7816 인터페이스와 플래시(Flash) 메모리의 고속 통신 인터페이스를 동시에 지원해야 하는 문제점이 있었다.
따라서, 본 발명은 상술한 문제점을 해결하기 위해 안출된 것으로서, 본 발명의 목적은 대용량 메모리에 직접 액세스할 수 있는 스마트 카드를 제공하는 것이다.
또한, 본 발명의 목적은 대용량 메모리가 지원되는 스마트 카드에서 플래시(Flash) 메모리의 고속 통신 인터페이스에서 들어오는 데이터와 ISO 7816 인터페 이스를 통해 들어오는 데이터를 동시에 처리 할 수 있는 스마트 카드를 제공하는 것이다.
또한, 본 발명의 목적은 기존의 저속의 인터페이스만을 지원하던 스마트 카드에서 다양한 인터페이스에서 들어온 데이터를 순차적으로 처리할 수 있고 각 데이터의 특성에 따라서 우선 순위를 두어서 멀티미디어 서비스나 통신 어플리케이션을 구동함에 있어서 연속성 있는 서비스를 제공할 수 있는 스마트 카드를 제공하는 것이다.
본 발명의 다른 목적들은 이하에 서술되는 바람직한 실시예를 통하여 보다 명확해질 것이다.
상술한 목적을 달성하기 위한 본 발명의 일 측면에 따르면, 커맨드를 전달하는 커맨드 라인, 데이터 토큰을 전달하는 데이터 라인, 데이터를 저장하는 메모리, RF(Radio Frequency) 데이터를 송수신하는 모뎀, 상기 커맨드 라인 또는 상기 모뎀을 통해 수신한 커맨드에 따라 데이터 처리를 수행하고 상기 메모리와 데이터를 교환하는 마이크로 프로세서 및 상기 커맨드 라인을 통해 수신된 커맨드에 따라 상기 데이터 라인이 상기 메모리 또는 상기 마이크로 프로세서로 연결되도록 연결상태를 변경하고, 상기 데이터 라인 또는 상기 모뎀으로부터 수신된 데이터의 우선순위를 구분하여 우선순위가 높은 데이터를 상기 마이크로 프로세서로 출력하는 데이터 처 리부를 포함하는 스마트 카드를 제공한다.
여기서, 상기 데이터 처리부는 상기 커맨드 라인을 통해 수신된 커맨드에 따라 상기 데이터 라인이 상기 메모리 또는 상기 마이크로 프로세서로 연결되도록 연결상태를 변경하는 메모리 컨트롤러 및 상기 메모리 컨트롤러와 상기 마이크로 프로세서 사이에 위치하여 상기 메모리 컨트롤러 또는 상기 모뎀으로부터 수신된 데이터의 우선순위를 구분하여 우선순위가 높은 데이터를 상기 마이크로 프로세서로 출력하는 데이터 버퍼를 포함할 수 있다. 여기서, 상기 메모리 컨트롤러는 상기 커맨드 라인 및 상기 데이터 라인을 통해 단말과 통신하는 인터페이스 드라이버, 상기 인터페이스 드라이버를 통해 수신한 커맨드에 따라 상기 데이터 라인이 상기 메모리 또는 상기 데이터 버퍼로 연결되도록 연결상태를 변경하는 메모리 인터페이스 컨트롤러 및 상기 메모리 인터페이스 컨트롤러에 연결되고 상기 수신한 커맨드에 따라 상기 메모리에 접근하여 데이터를 읽고 쓰는 메모리 코어 인터페이스를 포함할 수 있다. 또한, 상기 메모리 컨트롤러는 상기 데이터 토큰에 포함된 명령 APDU(Command APDU)를 상기 데이터 버퍼로 출력할 수 있다. 상기 명령 APDU(Command APDU)에는 상기 마이크로 프로세서에서의 데이터 처리 우선순위 정보가 포함될 수 있으며, 상기 데이터 처리 우선순위 정보는 상기 명령 APDU(Command APDU)의 헤더(Header)부의 CLA(Class of Instruction)부에 위치할 수 있다.
상기 데이터 버퍼는 상기 우선순위에 따라 데이터의 저장 영역이 다르게 지정될 수 있다.
상기 데이터 처리부는 상기 데이터 버퍼에서 우선순위가 높은 데이터를 추출 하여 상기 마이크로 프로세서로 출력하는 데이터 컨트롤러를 더 포함할 수 있다.
상기 마이크로 프로세서는 상기 메모리 컨트롤러로부터 우선순위 정보를 수신하고 우선순위가 높은 데이터를 데이터 버퍼에서 추출하여 처리할 수 있다.
상기 모뎀으로부터 수신된 데이터의 우선순위는 미리 지정될 수 있다.
상기 메모리는 플래시 메모리일 수 있으며, 상기 메모리는 스마트 카드 영역과 메모리 카드 영역을 포함할 수 있다.
이하의 내용은 단지 본 발명의 원리를 본 발명의 바람직한 일 실시예에 따른 에 대하여 예시하고 이에 대해 설명하기로 한다. 따라서, 당업자는 비록 본 명세서에 명확히 설명되거나 도시되지 않았지만, 본 발명의 원리를 구현하고 본 발명의 개념과 범위에 포함된 다양한 방법 및 이를 사용하는 장치 등을 발명할 수 있는 것이다. 또한 본 명세서에 열거된 모든 조건부 용어 및 실시예들은 원칙적으로 본 발명의 개념이 이해되도록 하기 위한 목적으로만 명백하게 의도되고, 이와 같이 특별히 열거된 실시예들 및 상태들에 제한적이지 않은 것으로 이해되어야 한다.
또한, 본 발명의 원리, 관점 및 실시예들 뿐만 아니라 특정 실시예를 열거하는 모든 상세한 설명은 이러한 사항의 구조적 및 기능적 균등물을 포함하도록 의도되는 것으로 이해되어야 한다. 또한 이러한 균등물은 현재 공지된 균등물 뿐 만 아니라 장래에 개발될 균등물 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 소자를 포함하는 것으로 이해되어야 한다.
따라서, 예를 들어, 본 명세서의 블록도는 본 발명의 원리를 구체화하는 예시적인 회로의 개념적인 관점을 나타내는 것으로 이해되어야 한다.
프로세서 또는 이와 유사한 개념으로 표시된 기능 블록을 포함하는 도면에 도시된 다양한 소자의 기능을 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 능력을 가진 하드웨어의 사용으로 제공될 수 있다. 프로세서에 의해 제공될 때, 상기 기능은 단일 전용 프로세서, 단일 공유 프로세서 또는 복수의 개별적 프로세서에 의해 제공될 수 있고, 이들 중 일부는 공유될 수 있다.
상술된 목적, 특징 및 장점들은 첨부된 도면과 관련된 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 우선 각 도면의 구성요소들에 참조 번호를 부가함에 있어서, 동일한 구성요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 동일한 번호를 가지도록 하고 있음을 유의하여야 한다.
또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지에 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명한다.
이하에서는 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 설명한다. 이하에서는 MMC 통신 프로토콜을 적용한 실시예를 중심으로 설명하나, 본 발명의 기술적 사상은 스마트 카드와 단말간 고속 통신 프로토콜을 지원하고, 이를 위해 통신 접점을 변경하는 경우이면 고속 통신 프로토콜의 종류에 제한 없이 적용될 수 있음은 자명하다.
도 2는 본 발명의 바람직한 실시예에 따른 스마트 카드를 설명하기 위한 예시도이다.
본 발명에 따른 스마트 카드는 ISO 7816 표준에 따라서 단말과의 접촉식 통신, ISO-14443 표준에 따라서 외부 단말(예를 들어, ATM(Automated Teller Machine))과의 비접촉식으로 통신하며, 추가적으로 플래시 메모리와 같은 고체 기억 소자를 포함하며, 외부와 단말 고속 인터페이스를 통해 통신할 수 있다. 또한, 스마트 카드는 SIM(Subscriber Identity Module), USIM(Universal Subscriber Identity Module), UIM(User Identity Module), R-UIM(Removable User Identity Module) 등의 이동 통신 가입자 식별용 IC 칩 및 금융 칩 등의 전자상거래용 IC 칩 중 어느 하나일 수 있다.
본 발명의 바람직한 실시예에 따른 스마트 카드는 이동 통신 가입자 식별 기능 또는 전자상거래 인증/지불 수단 기능을 수행하는 스마트 카드로서의 동작뿐 아니라, 부가된 고체 기억 소자를 이용한 단말의 외부 저장 장치로서의 동작도 수행한다. 이를 구분하기 위해, 스마트 카드로서 동작하는 경우를 기본 작업이라 하고, 외부 저장 장치로서 동작하는 경우를 확장 작업이라 한다.
단말은 스마트 카드를 수용하며, 수용한 스마트 카드와의 통신을 수행하는 인터페이스 장치(IFD; Interface Device)와 RF 안테나를 포함한다. 여기서, 단말은 셀룰러 폰과 같은 이동 통신 단말기를 포함한다. 인터페이스 장치는 물리적으로 ID-1의 테스트 규격인 ISO-10373과 전기적으로 ISO 7816-3에서 요구되는 스마트 카드와의 전기적인 상호 운용성을 만족한다. 아울러, 인터페이스 장치는 스마트 카드 와 본 발명에 따른 고속 통신을 수행한다. 인터페이스 장치는 스마트 카드의 접점들에 대응하는 위치에 복수의 접촉 단자들 배열된 스마트 카드를 수용하는 스마트 카드 소켓을 포함하며, 접촉 단자들 중 일부 접점과 전기적으로 연결된 한 쌍의 접촉 단자는 RF 안테나에 결합된다. RF 안테나는 루프 안테나 또는 마이크로스트립 라인(Micro-strip line) 안테나인 것이 바람직하다. 또한, 인터페이스 장치는 스마트 카드와 ISO 7816표준에 따른 APDU(Application Protocol Data Unit)를 교환하는 스마트 카드 리더 및 고속 통신 데이터를 교환하는 단말 고속 인터페이스를 포함한다. 이하에서는, ISO 7816에 따라 단말-스마트 카드간에 APDU를 교환하여 통신하는 방식을 저속 통신 프로토콜이라 하며, USB나 MMC 같은 통신 프로토콜을 이용하여 토큰/패킷을 교환하는 통신 방식을 고속 통신 프로토콜이라 한다. 여기서, 저속 통신 프로토콜은 통신 방식뿐만 아니라, 스마트 카드의 기본 작업 수행도 포함하는 것으로 해석되어야 한다. 동일하게, 고속 통신 프로토콜도 통신 방식뿐만 아니라, 스마트 카드의 확장 작업 수행도 포함하는 것으로 해석되어야 한다.
도 2를 도시된 바와 같이, 본 발명에 따른 대용량 메모리를 지원하는 스마트 카드는 데이터를 저장하는 메모리(200)와, 스마트 카드를 실행을 위한 코드를 저장하는 롬(210), 애플릿 저장을 위한 이이피롬(220), 마이크로 프로세서에서 연산하는 도중에 임시적으로 데이터를 저장하기 위한 램(230), 스마트 카드의 연산 및 데이터 처리를 위한 마이크로프로세서(300) 및 외부로부터 들어오는 데이터를 구분하고 처리 순서를 관리하기 위한 데이터 처리부(100)를 포함한다.
마이크로 프로세서(300)는 단말로부터의 명령에 따른 스마트 카드의 기본 작 업을 수행하며, 스마트 카드의 초기화시 단말과의 프로토콜 협상을 통해 통신 프로토콜을 결정하여 접점 연결을 제어하여, 고속 통신 인터페이스를 통한 단말과의 통신을 가능하게 한다. 즉, 마이크로 프로세서(300)는 단말로부터의 명령인 명령 APDU(Command APDU)에 대한 응답인 응답 APDU(Response APDU)를 생성하여 단말로 전송한다. 스마트 카드의 기본 작업은 스마트 카드의 용도(통신 단말용 스마트 카드 또는 전자거래용 스마트 카드) 및 작동 모드(접촉식 또는 비접촉식)에 달라진다. 용도와 작동 모드에 따른 스마트 카드의 기본 작업은 공지의 기술이므로, 상세한 설명을 생략한다. 마이크로 프로세서(300)에 연결된 롬(ROM)(210), 이이피롬(EEPROM)(220), 램(RAM)(230)은 스마트 카드의 기본 작업에 필요한 메모리이다.
메모리(200)는 단말로부터의 데이터 쓰기/읽기 명령에 따라 독립적으로 동작하는 비휘발성 메모리 모듈이다. 메모리(200)는 데이터를 저장하는 메모리 셀 어레이와, 데이터 읽기/쓰기 동작을 위해 각 메모리 셀을 어드레싱하는 행-열 선택기로만 구성되며, 데이터 읽기/쓰기 동작 명령에 따라 이들을 제어하는 동작은 데이터 처리부(100)에 의해 실행된다. 메모리(200)는 예를 들면, 플래시 메모리 일 수 있으며, 이외의 비휘발성 메모리를 포함할 수 있음은 자명하다.
데이터 처리부(100)는 단말로부터 저속 통신 인터페이스, 고속 통신 인터페이스 또는 단말 외부로부터 비접촉식 RF 인터페이스를 통해 수신된 데이터를 메모리(200) 또는 마이크로 프로세서(300)로 전달하기 위해 데이터 라인과 메모리(200) 또는 마이크로 프로세서(300)간의 연결을 변경하고 수신된 데이터를 구분하여 마이크로 프로세서(300)의 데이터 처리 순서를 관리한다. 데이터 처리부(100)는 메모리 컨트롤러(150, 도 3참조), 데이터 버퍼(160, 도 3 참조), 모뎀(170, 도 3참조)을 포함할 수 있다.
메모리 컨트롤러(150)는 고속 통신 인터페이스로 들어오는 데이터를 처리하기 위한 역할을 수행하는 동시에 고속 통신 인터페이스를 통해 들어온 데이터가 메모리(200)로 바로 접근할 것인지, 마이크로 프로세서(300)로 보낼 데이터 인지를 구분한다. 메모리 컨트롤러(150)의 구성과 기능에 대해서는 도 3에서 더욱 상세히 설명하기로 한다.
모뎀(170)은 비접촉식 RF(Radio Frequency) 데이터를 송수신하기 위한 부분으로 RF에 실려 들어온 데이터를 복호화하여 연산 작업을 진행 할 수 있도록 데이터 버퍼(160)로 전달한다. 마이크로 프로세서(300)로의 데이터 전달은 데이터 버퍼(160)를 통해 이루어 진다.
데이터 버퍼(160)는 메모리 컨트롤러(150) 또는 모뎀(170)으로부터 들어오는 데이터를 저장하고 처리할 우선 순위를 구분하고 우선순위가 높은 데이터를 마이크로 프로세서(300)로 출력한다. 데이터 버퍼에서 동시에 들어오는 데이터에 처리 우선 순위를 정하는 방식은 명령 APDU 가운데 Class Byte 내의 논리 채널을 이용하여 수행할 수 있다. 이하 도 3에서 더욱 상세하게 설명하기로 한다.
도 3는 본 발명의 바람직한 실시예에 따른 스마트 카드의 구성을 설명하기 위한 블록도이다.
스마트 카드의 표면에는 복수의 접점(100a 내지 100h)이 형성된 금속 패 드(100)가 위치한다. 복수의 접점(100a 내지 100h)의 개수와 레이아웃은 ISO 7816 표준을 따른다. 본 실시예에서, 접점 C1, C2, C3, C5, C6, C7은 단말로부터 신호를 수신하여 필요한 처리를 수행하는 접촉식 동작에 이용되며, 접점 C4, C8은 RF 안테나를 통해 외부 단말로부터 신호를 수신하여 필요한 동작을 수행하는 비접촉식 동작에 이용된다.
기능 기능
C1 Vcc C5 GRD
C2 RST C6 Vpp
C3 CLK C7 I/O
C4 RF C8 RF
표 1은 초기화 과정에 의해 고속 통신 프로토콜을 지원하지 않는 단말에서 저속 통신 프로토콜로 동작하는 스마트 카드의 각 접점들의 기능이다. 접점 C1(100a)은 스마트 카드의 구동에 필요한 공급 전압을 수신하며, 접점 C2(100b)는 재설정 신호를 인가받으며, 접점 C3(100c)은 스마트 카드 구동에 필요한 클럭 신호를 인가 받으며, 접점 C5(100e)는 접지 참조 전압, 접점 C6(100f)는 프로그래밍 전압 Vpp를 인가받으며, 접점 C7(100g)은 저속 통신시 데이터 입력/출력을 위한 통신 접점이다. 접점 C4, C8(100d, 100h)은 단말 내부에 포함된 RF 안테나를 통한 무선 통신을 위한 RF 접점들이다.
기능 기능
C1 Vcc C5 GRD
C2 RST C6 고속 통신
C3 CLK C7 고속 통신
C4 RF C8 RF
표 2는 고속 통신 프로토콜을 지원하는 단말에서 동작하는 스마트 카드의 각 접점들의 기능이다. 접점 C1(100a)은 스마트 카드의 구동에 필요한 공급 전압을 수신하며, 접점 C2(100b)는 재설정 신호를 인가받으며, 접점 C3(100c)은 스마트 카드 구동에 필요한 클럭 신호를 인가 받으며, 접점 C5(100e)는 접지 참조 전압을 인가받는다. 접점 C6(100f)과 접점 C7(100g)은 고속 통신을 위한 통신 접점들이다. 접점 C4, C8(100d, 100h)은 단말 내부에 포함된 RF 안테나를 통한 무선 통신을 위한 RF 접점들이다. 본 실시예에서, 접점 C3(100c)를 통해 인가되는 스마트 카드의 구동을 위한 기준 클락은 고속 통신 프로토콜로 동작하기 위해서도 이용된다. 일반적으로, 스마트 카드의 기준 클락은 1MHz~5MHz이며, MMC 프로토콜의 경우 기준 클락은 0~20MHz이다.
본 발명에서, 스마트 카드는 초기화 과정에 의해 서로 다른 통신 프로토콜로 동작하게 되므로, 각 접점의 기능은 초기화 과정에 의해 결정될 수 있다. 초기화 과정은 마이크로 프로세서(300)의 제어에 의해 이루어진다. 저속 통신 프로토콜로 동작시, 데이터 입/출력은 하나의 접점을 통해 가능하므로, 통신 접점은 C7이며, 고속 통신 프로토콜로 동작시 통상 2개의 접점을 통해 통신하므로, 통신 접점은 C6 및 C7이다. 예를 들어, USB 프로토콜의 경우 DP와 DM 신호를 입출력하는 접점이 필요하며, MMC 프로토콜의 경우 커맨드(CMD)와 데이터(DAT)를 입출력하는 접점이 필요하다. 마이크로 프로세서(300)와 단말간의 초기화 과정 후, 고속 통신 프로토콜을 지원하는 단말로 인식되면, 단말-스마트 카드간 고속 통신 프로토콜로 통신할 수 있으며, 고속 통신 프로토콜을 지원하지 않는 단말로 인식되며, 단말-스마트 카드가 저속 통신 프로토콜로 통신할 수 있다.
데이터 처리부(100)는 메모리 컨트롤러(150), 데이터 버퍼(160), 모뎀(170), 전압발생기/리셋생성기(180), 클럭생성기(190)을 포함한다.
메모리 컨트롤러(150)는 고속 통신 인터페이스로 들어오는 데이터를 처리하기 위한 역할을 수행하는 동시에 고속 통신 인터페이스를 통해 들어온 데이터가 메모리(200)로 바로 접근할 것인지, 마이크로 프로세서(300)로 보낼 데이터 인지를 구분하여 데이터 라인의 메모리(200) 및 데이터 버퍼(160)간 연결 상태를 변경한다. 메모리 컨트롤러(150)는 단말과 데이터 라인 핀과 커맨드 라인 핀을 통해 데이터 토큰 및 커맨드를 송수신하는 인터페이스 드라이버(110), 단말로부터 수신한 커맨드의 종류에 따라 상응하는 동작을 수행하기 위해 수신된 데이터를 메모리(200) 또는 데이터 버퍼(160)로 전달하기 위해 데이터 라인의 연결 상태를 변경하는 메모리 인터페이스 컨트롤러(120) 및 메모리 인터페이스 컨트롤러(120)에 의해 요청된 메모리(200)의 특정 주소에 접근하여, 데이터를 읽어 들이거나 기록하는 메모리 코어 인터페이스(130)를 포함한다.
인터페이스 드라이버(110)는 스마트 카드의 일 측에 위치한 데이터 라인 핀과 커맨드 라인 핀을 통해 전기적으로 연결된 단말과 데이터 라인 및 커맨드 라인을 통해 데이터 토큰 및 커맨드를 송수신한다. 데이터 라인 및 커맨드 라인 각각을 통해 물리적 레벨로 송신된 전기적 신호는 인터페이스 드라이버(110)에 의해 데이터 토큰 및 커맨드로 각각 변환되어 메모리 인터페이스 컨트롤러(120)로 전달된다. 한편, 메모리 인터페이스 컨트롤러(120)에서 출력된 데이터 토큰 및 커맨드 역시 물리적 레벨의 전기적 신호로 변환되어 데이터 라인 및 커맨드 라인을 통해 단말로 전송된다.
메모리 인터페이스 컨트롤러(120)는 단말로부터 수신한 커맨드의 종류에 따라 상응하는 동작을 수행한다. 즉, 커맨드의 종류에 의해 연결 상태가 변경될 필요가 있는 경우 데이터 라인의 연결상태를 변경한다. 메모리 인터페이스 컨트롤러(120)는 NON APDU 커맨드를 수신한 경우 고속 통신 프로토콜에 따른 기본 동작인 메모리(200)에 대한 데이터 읽기 및 쓰기 동작을 수행하며, 스위치를 포함하여 메모리 인터페이스 컨트롤러(120)가 메모리(200)에 접근할 수 있는 연결 상태를 유지한다. 여기서, 스위치는 다양한 방식으로 구현이 가능하며, 이를 구성하는 것은 본 발명이 속한 분야에서 통상의 지식을 가진 자라면 누구라도 용이하게 구현할 수 있다. 또한, 메모리(200)는 메모리 인터페이스 컨트롤러(120)에 의해서만 이용 가능한 메모리 카드 영역과 마이크로 프로세서(300)에 의해서만 접근 가능한 스마트 카드 영역으로 구분될 수 있으며, NON APDU 커맨드에 의해서 메모리 인터페이스 컨트롤러(120)가 접근하는 메모리(200)의 특정 영역은 메모리 카드 영역에 한정된다.
APDU 커맨드를 수신한 경우 메모리 인터페이스 컨트롤러(120)는 데이터 라인을 통해 수신될 데이터 토큰의 컨텐츠가 마이크로 프로세서(300)에 전달되도록 데이터 라인의 연경상태를 데이터 버퍼(160)로 변경한다. APDU 커맨드를 수신한 후 데이터 라인을 통해 수신된 데이터 토큰은 명령 APDU를 포함하고 있으며, 고속 통신 프로토콜에 의해 변환되어 있다. 메모리 인터페이스 컨트롤러(120)는 데이터 토큰에서 헤더 및 테일을 제거한 후 컨텐츠만을 출력한다. 출력된 컨텐츠는 명령 APDU이며, 스위치를 통해 데이터 버퍼(160)로 전달된다. 복수 개의 데이터 토큰을 통해 하나의 명령 APDU가 전송되는 경우 메모리 인터페이스 컨트롤러(120)는 순차적으로 컨텐트를 결합하여 완전한 명령 APDU가 생성되면 데이터 버퍼(160)로 전달할 수 있다.
APDU 커맨드에 의해 메모리 인터페이스 컨트롤러(120)는 데이터 라인을 통해 수신된 명령 APDU가 데이터 버퍼(160)를 통해 마이크로 프로세서(300)로 전달되도록 연결상태를 변경한다. 명령 APDU를 수신한 마이크로 프로세서(300)는 상응하는 처리를 수행한다. 처리가 종료되면 마이크로 프로세서(300)는 처리 결과인 응답 APDU를 메모리 인터페이스 컨트롤러(120)로 전달한다. 응답 APDU를 수신한 메모리 인터페이스 컨트롤러(120)는 APDU 응답(Response)을 커맨드 라인을 통해 단말로 전달한다.
메모리 코어 인터페이스(130)는 메모리 인터페이스 컨트롤러(120)에 의해 요청된 메모리(200)의 특정 주소에 접근하여, 데이터를 읽어 들이거나 기록한다.
모뎀(170)은 비접촉식 RF(Radio Frequency) 데이터를 송수신하기 위한 부분으로 RF에 실려 들어온 데이터를 복호화하여 연산 작업을 진행 할 수 있도록 데이터 버퍼(160)로 전달한다. 마이크로 프로세서(300)로의 데이터 전달은 데이터 버퍼(160)를 통해 이루어 진다. RF 인터페이스는 초기화 여부에 상관없이 단말에 삽입되면 RF 접점 C4(100d), C8(100h)를 통해 RF 안테나에 결합한다. 모뎀(170)은 비접촉식 단말기로부터 데이터 또는 커맨드를 무선으로 수신하여 마이크로 프로세서(300)에 처리되도록 데이터 버퍼(160)로 전달하고, 이에 대한 응답을 마이크로 프로세서(300)로부터 데이터 버퍼(160)를 통해 수신하여 비접촉식 단말기로 전송한다.
전압 발생시/리셋 생성기(180)는 비접촉식 단말기(interrogator)로부터 송출된 무선 신호를 수신하여 스마트 카드의 동작에 필요한 전원을 생성하며, 재설정 신호를 마이크로 프로세서(300)에 인가함으로써, 스마트 카드가 비접촉식으로 동작하게 한다. 한편, 클럭 생성기(190)는 전압 발생기/리셋 생성기(180)로부터의 전원 공급에 의해 스마트 카드의 동작에 필요한 구동 클럭을 생성한다.
데이터 버퍼(160)는 메모리 컨트롤러(150) 또는 모뎀(170)으로부터 들어오는 데이터를 저장하고 처리할 우선순위를 구분하여 우선순위를 기준으로 수신된 데이터를 마이크로 프로세서(300)에 출력한다. 데이터 버퍼(160)에서 동시에 들어오는 데이터에 처리 우선 순위를 정하는 방식은 명령 APDU 가운데 CLS(Class Byte) 내의 논리 채널을 이용하여 수행한다. 마이크로 프로세서(300)에 전달되는 최종적인 데이터는 ISO 7816-2, 3의 규격을 따르는 APDU로 이에 대해서는 도 4 내지 도 8에서 더욱 상세히 설명하기로 한다. 데이터 버퍼(160)에서는 APDU의 CLA 바이트 가운데 하위 2 비트(bit)를 이용하여 논리 채널을 구분할 뿐 아니라 데이터의 우선 순위를 구분하고 동시에 들어온 데이터 가운데 데이터 속성상 빨리 처리해야 할 데이터를 먼저 처리하고, 천천히 응답하여도 크게 지장이 없는 부분은 우선순위를 늦게 처리한다. 모뎀(170)을 통해 수신된 데이터의 우선순위는 메모리 컨트롤러(150)를 통해 수신된 데이터에 대하여 스마트 카드의 용도(통신 단말용 스마트 카드 또는 전자거래용 스마트 카드) 및 작동 모드(접촉식 또는 비접촉식)를 기준으로 미리 지정될 수 있다.
데이터 버퍼(160)에서 마이크로 프로세서(300)에서 처리할 데이터의 우선순위를 구분하는 것에 대해 예를 들어 설명하면, 데이터 버퍼(160)는 미리 설정된 우선 순위에 따라 데이터 처리 요청 데이터(Request Data)를 상응하는 저장영역에 구분하여 저장한다. 마이크로 프로세서(300)는 구분된 저장영역을 우선순위를 기준으로 검색하고 우선순위가 높은 순으로 데이터를 추출하여 처리할 수 있다. 이 경우 보통 명령 APDU는 데이터 처리를 요청된 데이터에 대한 응답을 기다린다. 그러므로 마이크로 프로세서(300)에서 우선 순위 1의 데이터를 처리하는 동안 또 우선 순위 1의 데이터가 들어오는 경우는 없으며, 우선 순위 1의 데이터를 처리한 마이크로 프로세서(300)는 데이터 버퍼(160)에 우선 순위가 높은 저장영역에 저장된 데이터를 처리할 수 있다. 또한, 이 경우 우선 순위 1의 데이터를 처리하였으므로, 우선 순위 1의 버퍼에는 데이터가 없으며 그 다음 우선 순위의 데이터 버퍼의 데이터를 처리할 수 있다. 데이터 버퍼(160)에서 우선순위를 구분하고 수신된 데이터를 마이크로 프로세서(300)로 출력하는 실시예에 대해서는 도 9 내지 도 11에서 더욱 상세히 설명하기로 한다.
마이크로 프로세서(300)는 스마트 카드의 기본 동작을 수행하되, 기본 동작 수행에 필요한 모듈(예를 들어, 코드, 애플릿 등)은 롬(210), 이이피롬(220), 램(230)에 접근하여 획득하여 데이터는 메모리(200)에 접근하여 획득한다. 마이크로 프로세서(300)는 롬(210), 이이피롬(220), 램(230)을 별도로 구성되지 않은 경우에는 기본 동작 수행에 필요한 모듈 또한 메모리(200)에 접근하여 획득할 수 있음은 물론이다. 메모리 컨트롤러(150)를 통해 단말로부터 명령 APDU를 수신하면, 마이크로 프로세서(300)는 메모리(200)에 접근할 필요가 있는지를 명령 APDU의 종류 및 명령 APDU의 데이터 포함 여부에 기초하여 판단한다. 판단 결과, 메모리(200)에서 데이터를 읽어오거나 기록할 필요가 있는 경우, 마이크로 프로세서(300)는 미리 할당된 메모리(200)의 스마트 카드 영역을 종래와 같은 방식으로 접속하여 데이터를 읽거나 기록한다. 여기서, 메모리(200)의 스마트 카드 영역은 마이크로 프로세서(300)에 의해 독점적으로 접근 가능하도록 설정된 영역으로, 모듈과 데이터가 저장된다. 스마트 카드 영역은 종래 스마트 카드의 메모리 관리 시스템의 주소 체계가 그대로 적용되는 것이 바람직하다. 이 경우 마이크로 프로세서(300)는 종래 메모리 주소를 그대로 사용하여도 메모리(200)를 자유롭게 이용할 수 있다. 물론, 대용량의 데이터를 기록하기 위해서는 더 많은 주소가 필요하므로, 그 만큼 주소 체계를 확장할 수 있다.
마이크로 프로세서(300)는 데이터 연산 및 데이터 처리에 있어 우선 순위를 두지 않을 경우 처리 요청 데이터를 손실하게 될 수 있다. 특히 먼저 처리해야 할 통신 데이터 등의 데이터 분실에 따른 사용자 서비스 제공이 문제 될 수 있다. 결국 동시에 들어오는 데이터에 대해여 이러한 문제점을 해결하기 위해서 데이터 버퍼(160)에서는 데이터 처리에 우선 순위를 구분하여 우선순위에 따라 마이크로 프로세서(300)에 전달하여 연속성 있는 서비스를 제공할 수 있다.
메모리(200)는 전기적으로 데이터를 기록하거나 삭제할 수 있는 플래시 메모리와 같은 고체 기억 소자뿐만 아니라 다른 형태의 기억 소자일 수 있다. 메모리(200)는 메모리 카드 영역과 스마트 카드 영역으로 분할될 수 있으며, 각 영역은 메모리 컨트롤러(150) 및 마이크로 프로세서(300)만이 이용할 수 있다. 한편, 각 영역들은 고유한 크기를 가질 수 있으나, 각 영역들의 크기는 동적으로 변경될 수 있는 것이 바람직하다.
도 4는 본 발명의 바람직한 실시예에 따른 단말-스마트 카드간 통신 방식을 설명하는 예시도이고, 도 5는 스마트 카드에서 계층별 데이터 형식을 도시한 예시도이며, 도 6은 고속 통신 프로토콜로서 MMC 버스 프로토콜을 도시한 도면이다. 본 실시예는 단말은 고속 통신 프로토콜에 의해 스마트 카드의 고유 작업을 수행하기 위해 APDU를 송수신하는 경우이다. USB 통신 방식을 적용한 스마트 카드는 이미 공지되어 있으며, 동작 방식 역시 공지되었으므로, 이하에서는 고속 통신 프로토콜로 MMC 프로토콜을 이용하는 경우만 예를 들어 설명하기로 한다.
스마트 카드의 기본 작업을 위한 단말-스마트 카드간 통신은 ISO 7816 표준에 따른 APDU로 이루어진다. 그러나, 고속 통신 프로토콜이 선택된 이후에는 마이크로 프로세서(300)와 단말이 메모리 컨트롤러(150)를 통해 데이터를 송수신해야 한다. 따라서, 단말의 ISO 7816 어플리케이션(410)과 스마트 카드의 마이크로 프로세서(300) 간에는 APDU를 고속 통신 프로토콜에 맞는 포맷으로 변환(Encapsulation) 및 환원(Decapsulation) 과정이 수행된다.
즉, 저속 통신 프로토콜로 동작시, 스마트 카드는 기본 작업만을 수행할 수 있으며, 확장 작업은 수행할 수 없다. 이에 반해, 고속 통신 프로토콜로 동작시, 스마트 카드는 기본 작업뿐 아니라 확장 작업도 수행할 수 있다. 고속 통신 프로토콜로 동작시 기본 작업 수행에 필요한 명령 및 이에 대한 응답은 고속 통신 프로토콜에 의해 생성된 토큰/패킷에 삽입되어 단말과 스마트 카드간에 교환된다. 이하에서는 이를 상세히 설명한다.
단말(400)의 ISO 7816 어플리케이션(410)에서 출력된 명령인 명령 APDU는 단말 고속 인터페이스(420)에 의해 일련의 토큰(token)으로 변환된다. 변환된 일련의 토큰들은 물리적으로 연결된 접점을 통해 스마트 카드의 메모리 컨트롤러(150)로 전달된다. 메모리 컨트롤러(150)는 일련의 토큰들을 명령 APDU로 환원하여 마이크로 프로세서(300)로 전달한다. 마이크로 프로세서(300)는 명령 APDU에 따라 메모리(200)를 참조하여 상응하는 동작을 수행하고, 수행 결과로서 응답인 응답 APDU를 생성한다.
마이크로 프로세서(300)로부터 출력된 응답 APDU는 메모리 컨트롤러(150)에서 일련의 토큰들로 변환되어 물리적으로 연결된 접점을 통해 단말(400)의 단말 고속 인터페이스(420)로 전달된다. 단말 고속 인터페이스(420)는 일련의 토큰들을 응답 APDU로 환원하여 ISO 7816 어플리케이션에 전달한다.
도 7a를 참조하여 이를 좀 더 상세히 살펴보면, ISO 7816 어플리케이션(410)에 의해 생성된 APDU는 4 바이트의 헤더와 가변 길이의 바디로 구성된다. 헤더는 1 바이트의 CLA(Class of Instruction), 1 바이트의 INS(Instruction code), 1 바이트의 P1(parameter 1) 및 1 바이트의 P2(Parameter 2)로 구성된다. 바디는 선택적인 바디 또는 데이터 필드의 길이를 특정하는 1 바이트의 Lc, 가변 길이의 명령어 파라미터 또는 데이터를 포함하는 데이터 필드, 반환 데이터의 예상 길이를 특정하는 1 바이트의 Le로 구성된다. CLA 는 각 어플리케이션 및 커맨드 셋(set)을 구분하기 위해 쓰이며, 보안(secure) 메시지 및 논리채널을 구분한다. 데이터 버퍼(160)에서는 APDU의 CLA 바이트 가운데 하위 2비트(bit)를 이용하여 논리 채널을 구분할 뿐 아니라 데이터의 우선 순위를 구분하고, 동시에 들어온 데이터 가운데 데이터 속성상 빨리 처리해야 할 데이터를 마이크로 프로세서(300)로 먼저 출력한다.
단말 고속 인터페이스(420)는 ISO 7816 어플리케이션(410)에 의해 생성된 APDU에 APDU의 길이를 특정하는 LB 헤더(510)를 결합한 후 이를 복수의 MMC 토큰들(520a 내지 520n)로 변환한다.
변환된 복수의 MMC 토큰들(520a 내지 520n)은 MMC 프로토콜을 지원하는 단말의 단말 고속 인터페이스(420)와 스마트 카드의 메모리 컨트롤러(150)간에 형성된 MMC I/F 계층을 통해 스마트 카드의 메모리 컨트롤러(150)로 전달된다. MMC I/F 계층에 위치한 메모리 컨트롤러(150)는 복수의 MMC 토큰들(520a 내지 520n)을 수신한 후, 메모리 컨트롤러(150) 상에 위치하며 MMC I/F 계층의 상위층인 변환 계층(740)에서 LB 헤더의 값을 참조하여 복수의 MMC 토큰들(520a 내지 520n)을 APDU로 환원된다. 환원된 APDU는 마이크로 프로세서(300) 상에 위치한 카드 OS 계층에서 처리된다.
카드 OS 계층(550)에서 생성된 APDU가 단말의 ISO 7816 어플리케이션으로 전송되는 과정은 단말로부터의 송신 과정이 역으로 적용된다. 카드 OS 계층(550)에서 생성된 APDU는 가변 길이의 선택적 바디(optional body)로서 데이터 필드와 상태 워드 SW1, SW2를 포함한다.
이상을 정리하면, 고속 통신 프로토콜을 선택한 경우 단말과 스마트 카드간에는 ISO 7816에 따라 변환하는 스마트 카드 인터페이스가 APDU를 TPDU(Transmission Protocol Data Unit)으로 변환하는 대신, 카드 고속 인터페이스가 APDU를 적어도 하나 이상의 토큰으로 변환하여 송수신한다. 이하에서는, 도 6을 참조하여, MMC 프로토콜에 의한 고속 통신 프로토콜을 이용한 동작을 상세히 설명한다.
MMC 프로토콜의 경우 명령과 응답인 커맨드 토큰(600)과 커맨드 토큰에 연관된 데이터 토큰(610)이 별도의 라인을 통해 송수신된다. 데이터 읽기/쓰기 커맨드(단말에서 스마트 카드로) 및 이에 대한 응답(스마트 카드에서 단말로)는 통신 접점 C7을 통해 송수신되며, 커맨드에 따른 데이터는 접점 C6를 통해 송수신된다. MMC 프로토콜에서 데이터 읽기/쓰기 커맨드는 연속(sequential) 커맨드와 블록 지향(Block-oriented) 커맨드로 구별된다. 연속 커맨드는 연속적인 데이터 스트림을 전송하며, 통신 접점 C7상에 중지(stop) 커맨드가 출현할 때까지 지속된다. 블록 지향 커맨드는 CRC(cyclic redundancy checking)를 갖는 연속한 블록(토큰)들을 전송하며, 통신 접점 C7상에 중지(stop) 커맨드가 출현할 때까지 지속적으로 블록들이 전송된다. 여기서, 커맨드는 단말에서 스마트 카드로 전송되며, 응답은 스마트 카드에서 단말로 전송된다. 데이터는 단말과 스마트 카드 사이에서 전송된다.
커맨드 토큰(600)은 전체 길이가 48 비트로서, 시작 비트(start bit)와 종료 비트(end bit)는 항상 0과 1이다. 시작 비트의 다음에 위치한 전송기 비트(transmitter bit)는 단말로부터의 커맨드임을 나타내는 비트로서, 1이며, 커맨드 내용(content)는 전송기 비트 다음에 위치하며, 7 비트의 CRC 체크섬 비트에 의해 보호된다.
응답 토큰(605)은 전체 길이가 48 또는 136 비트로서, 시작 비트(start bit)와 종료 비트(end bit)는 항상 0과 1이다. 시작 비트의 다음에 위치한 전송기 비트(transmitter bit)는 스마트 카드로부터의 응답임을 나타내는 비트로서, 0이며, 응답 내용(content)는 전송기 비트 다음에 위치하며, 7 비트의 CRC 체크섬 비트에 의해 보호된다.
블록 지향 데이터 토큰(610)은 시작 비트(620)와 종료 비트(660)가 항상 0과 1이다. 시작 비트(620)와 종료 비트(660), CRC 체크섬(650)을 제외한 나머지 부분의 길이는 512 바이트로서, APDU의 길이를 나타내는 2 바이트의 LB 필드(630)와 510 바이트의 APDU 필드(640)로 구성된다. APDU 필드(640)에는 단말 또는 스마트 카드로부터의 명령 APDU 또는 응답 APDU가 포함된다. 510 바이트를 초과하는 APDU는 2 이상의 블록 지향 데이터 토큰(610)으로 분할되어 전송되며, 마지막 블록 지향 데이터 토큰(610)에서 채워지지 않은 나머지 바이트에는 00h 이 삽입된다.
MMC 프로토콜을 이용하여 단말에서 스마트 카드로의 명령 APDU 전송과 스마트 카드에서 단말로의 응답 APDU 전송은 단말이 쓰기 동작(명령 APDU 전송)과 읽기 동작(응답 APDU 수신)을 순차적으로 수행함으로써 이루어질 수 있다.
APDU 교환 방법을 상세히 설명하면, ISO 7816 어플리케이션이 명령 APDU를 제공하면, 단말측 단말 고속 인터페이스는 쓰기 동작에 대한 제1 커맨드 토큰을 생성하여 커맨드 버스를 통해 스마트 카드로 전송하고, 이에 대한 제1 응답 토큰을 데이터 버스를 통해 수신한다. 제1 응답 토큰을 수신하면, 단말 고속 인터페이스는 명령 APDU를 데이터 버스를 통해 스마트 카드로 전송한다. 명령 APDU에 대한 데이터 토큰들의 전송이 완료되면, 단말 고속 인터페이스는 중지 커맨드 토큰을 스마트 카드로 전송하고, 이에 대한 응답 토큰을 수신한다. 중지 커맨드 토큰에 대한 응답 토큰 수신 후 단말 고속 인터페이스는 일정 시간 경과 후 커맨드 버스를 통해 스마트 카드로 읽기 동작에 대한 제2 커맨드 토큰을 전송한다. 여기서, 제2 커맨드 토큰은 제1 커맨드에 의해 스마트 카드가 수행한 작업 결과를 송신하기 위한 읽기 동작임을 식별할 수 있는 정보를 포함할 수 있다.
제2 커맨드 토큰을 수신한 단말측 카드 고속 인터페이스는 제2 응답 토큰을 단말로 전송한다. 이후 스마트 카드는 응답 APDU를 블록 지향 데이터 토큰들로 변환하여 데이터 버스를 통해 단말로 전송한다. 응답 APDU에 대한 데이터 토큰들의 전송이 완료되면, 단말 고속 인터페이스는 중지 커맨드 토큰을 스마트 카드로 전송하고, 이에 대한 응답 토큰을 수신한다.
이상은 고속 통신 프로토콜로 MMC 프로토콜을 이용하는 경우를 예를 들어 설명하였으나, USB 프로토콜을 이용하는 경우에도 용이하게 적용할 수 있음은 물론이다. USB 프로토콜을 이용하여 APDU를 송수신하는 방식은 ISO 7816-12를 참조한다. 한편, 본 발명의 특징인 APDU를 포함한 데이터 토큰을 마이크로 프로세서(300)로 전달하기 위해 고속 통신 프로토콜을 지원하는 컨트롤러(예를 들어, 메모리 컨트롤러(150))의 연결 상태를 변경하는 추가적인 커맨드 및 마이크로 프로세서(300)가 메모리에 접근할 수 있는 추가적인 커맨드를 정의하여 사용하는 것은 고속 통신 프로토콜로서 USB를 사용하는 경우라도 본 발명이 속한 분야에서 통상의 지식을 가진 자라면 용이하게 구현할 수 있을 것이다.
도 7a 및 도 7b는 본 발명의 바람직한 일 실시예에 따른 데이터 버퍼에서 우선순위를 구분하기 위한 명령 APDU의 구성을 설명하기 위한 도면이고, 도 8은 명령 APDU의 CLA 바이트의 구성을 설명하기 위한 도면이다.
APDU는 명령 APDU와 응답 APDU로 구성되며, 명령 APDU는 4 바이트(byte)의 헤더와 가변 길이의 바디(body)로 구성된다. 헤더는 1 바이트의 CLA(Class of Instruction), 1 바이트의 INS(Instruction code), 1 바이트의 P1(parameter 1) 및 1 바이트의 P2(Parameter 2)로 구성된다. 바디는 선택적인 바디 또는 데이터 필드의 길이를 특정하는 1 바이트의 Lc, 가변 길이의 명령어 파라미터 또는 데이터를 포함하는 데이터 필드, 반환 데이터의 예상 길이를 특정하는 1 바이트의 Le로 구성된다. CLA 는 각 어플리케이션 및 커맨드 셋(set)을 구분하기 위해 4비트(b8∼b5)의 어플리케이션 식별자(application identification), 2 비트의 보안(secure) 메시지(b4, b3) 및 2 비트의 논리채널(b2, b1)을 구분된다. 응답 APDU는 가변 길이의 선택적 바디(optional body)로서 2 바이트의 데이터 필드와 2 바이트의 상태 워드 SW1, SW2를 포함한다.
데이터 버퍼(160)에서는 명령 APDU의 CLA 바이트 가운데 하위 2비트(bit)의 논리 채널(b2, b1)를 이용하여 논리 채널을 구분할 뿐 아니라 데이터의 우선 순위를 구분하여, 동시에 들어온 데이터 가운데 데이터 속성상 빨리 처리해야 할 데이터를 마이크로 프로세서(300)로 먼저 출력한다.
CLA 바이트의 하위 2비트(b2, b1)는 네 가지의 경우를 가질 수 있으며, 이를 이용하여 멀티미디어 모바일 단말의 경우 저속 통신 또는 고속 통신을 통해 통신 애플리케이션, 접촉식 애플리케이션, 멀티미디어 데이터 등의 우선순위를 설정하는 데 구분 기준으로 이용될 수 있다. 예를 들면, CLA 바이트의 하위 2비트(b2, b1)가 00(2)이면, USIM 용 통신 어플리케이션, 11(2)는 멀티미디어 데이터를 구분하기 위해 이용될 수 있다. 또한, CLA 바이트의 하위 2비트(b2, b1)가 01(2) 또는 10(2)은 다른 어플리케이션을 구분하기 위해 이용할 수 있다.
CLA 바이트의 하위 2비트(b2, b1)는 단말에서 또는 외부의 단말에서 요구하는 시점에서 할당해 줄 수 있으며, 데이터 처리부(100)의 데이터 버퍼(160)에서 하위 2비트(b2, b1)의 논리 채널을 00(2), 11(2), 01(2), 10(2) 순으로 우선 순위를 설정하여 하고 있다가 스마트 카드의 마이크로 프로세서(300)에서 처리가 가능할 때 가장 우선순위가 높은 부분부터 추출하여 데이터 처리를 할 수 있다.
도 9는 본 발명의 바람직한 일 실시예에 따른 데이터 버퍼에서 우선순위 구분을 설명하기 위한 상태 예시도이다.
도 9를 참조하면, 데이터 버퍼(160)는 단말에서 설정한 데이터 우선순위에 따라 데이터가 저장되는 영역을 분리되어 있다. 도 9에서 나타낸 00영역(160a), 01영역(160b), 10영역(160c), 11영역(160d)은 명령 APDU의 CLA 바이트의 하위 2비트(b2, b1, 도 7a 참조)의 논리 채널 번호에 따라 지정된 저장 영역을 표시한 것이다. 데이터 버퍼(160)의 00영역(160a), 01영역(160b), 10영역(160c), 11영역(160d)은 각각 우선순위 1, 2, 3, 4의 데이터가 저장되는 영역이다. 우선순위의 지정은 명령 APDU의 CLA 바이트의 하위 2비트(b2, b1, 도 7a 참조)의 논리 채널 번호를 지정하는 방법에 따라 달라질 수 있다. 또한, 우선 순위의 지정은 스마트 카드의 용도(통신 단말용 스마트 카드 또는 전자거래용 스마트 카드) 및 작동 모드(접촉식 또는 비접촉식)에 따라 달라질 수 있다.
메모리 컨트롤러(150)는 명령 APDU의 헤더부의 CLA 바이트에서 우선순위 정보를 추출하여 수신된 데이터를 추출된 우선순위 정보에 따라 데이터 버퍼(160)의 지정된 영역에 저장한다. 이때, 모뎀(170)을 통해 수신된 데이터는 미리 설정된 데이터 버퍼(160)의 저장 영역(00영역(160a), 01영역(160b), 10영역(160c), 11영역(160d) 중 어느 하나)에 저장될 수 있다. 즉 모뎀(170)을 통해 수신된 데이터 처리의 우선 순위는 단말에 의해 미리 지정될 수 있다.
마이크로 프로세서(300)는 데이터 버퍼(160)의 데이터 버퍼(160)의 00영역(160a), 01영역(160b), 10영역(160c), 11영역(160d)을 우선 순위에 따라 검색하고 우선순위 1의 00영역의 저장된 데이터를 우선 처리하게 된다. 마이크로 프로세서(300)는 우선순위 1의 데이터를 처리한 후 응답 APDU를 생성하여 메모리 컨트롤러(150)를 통해 단말에 전달한다. 마이크로 프로세서(300)는 처리된 데이터를 데이터 버퍼(160)의 해당 저장영역에서 소거할 수 있다.
도 10은 본 발명의 바람직한 다른 일 실시예에 따른 데이터 버퍼에서 우선 순위 구분을 설명하기 위한 상태 예시도이다.
도 10를 참조하면, 마이크로 프로세서(300)는 메모리 컨트롤러(150)를 통해 들어온 데이터의 우선순위 정보를 제공받으며, 제공 받은 우선 순위 정보에 의해 데이터 버퍼(160)에 접근하여 우선 순위 정보가 높은 데이터를 추출하여 처리된다. 데이터 버퍼(160)는 메모리 컨트롤러(150) 또는 모뎀(170)에 통해 먼저 수신되는 순서대로 데이터가 저장된다. 즉, 마이크로 프로세서(300)는 데이터 버퍼(160)에 순서대로 저장된 데이터를 메모리 컨트롤러(150)를 통해 각각의 데이터의 우선순위 정보에 따라 순서대로 추출하여 데이터를 처리한다. 여기서, 모뎀(170)을 통하여 수신된 데이터의 우선순위는 미리 지정되어 마이크로 프로세서(300)에 의해 인식될 수 있다. 우선순위의 설정은 명령 APDU의 CLA 바이트의 하위 2비트의 논리 채널 번호를 지정하는 방법에 따라 달라질 수 있다. 또한, 우선 순위의 지정은 스마트 카드의 용도(통신 단말용 스마트 카드 또는 전자거래용 스마트 카드) 및 작동 모드(접촉식 또는 비접촉식)에 따라 달라질 수 있다.
메모리 컨트롤러(150)는 명령 APDU의 헤더부의 CLA 바이트에서 우선순위 정보를 추출하여 마이크로 프로세서(300)에 전달하고 수신된 해당 데이터를 데이터 버퍼(160)에 저장한다. 예를 들면, 메모리 컨트롤러(150)는 명령 APDU의 헤더부의 CLA 바이트의 하위 2비트가 00인 데이터를 수신한 경우, 우선순위정보를 추출하여 마이크로 프로세서(300)에 전달하고, 해당 데이터는 데이터 버퍼(160)의 제 1 저장영역(160e)에 저장된다. 마이크로 프로세서(300)는 데이터 버퍼(160)의 제 2 저장영역(160g)의 데이터를 처리하는 동안이라도 우선순위정보가 더 높은 데이터가 데이터 버퍼(160)의 저장영역(160e)에 저장되면, 이를 추출하여 우선적으로 처리할 수 있다. 마이크로 프로세서(300)는 우선순위가 높은 데이터를 처리한 후 응답 APDU를 생성하여 메모리 컨트롤러(150)를 통해 단말에 전달하고, 처리된 데이터를 데이터 버퍼(160)의 해당 저장영역(160e)에서 소거할 수 있다.
도 11은 본 발명의 바람직한 일 실시예에 따른 데이터 컨트롤러를 설명하기 위한 상태 예시도이다.
도 11을 참조하면, 데이터 컨트롤러(165)는 메모리 컨트롤러(150) 또는 모뎀(170)으로부터 수신한 데이터를 데이터의 우선순위 정보에 따라 마이크로 프로세서(300)에 전달한다. 데이터 컨트롤러(165)는 메모리 컨트롤러(150)로부터 수신한 우선순위 정보에 따라 상응하는 데이터가 마이크로 프로세서(300)에서 처리될 수 있도록 우선순위가 높은 순으로 해당 데이터를 전달한다. 여기서, 모뎀(170)에서 들어오는 데이터는 메모리 컨트롤러(150)를 통해 수신된 데이터와 상관없이 우선순위가 지정될 수 있다. 데이터 컨트롤러(165)는 데이터 저장 및 전송을 위해 버퍼 메모리 및 프로세서로 구성될 수 있다.
또한, 데이터 컨트롤러(165)는 메모리 컨트롤러(150) 또는 모뎀(170)으로부터 수신한 데이터를 우선순위 정보에 따라 구분되어 저장되는 데이터 버퍼(160)와 별도로 구성되어 데이터 버퍼(160)에서 우선순위가 높은 데이터를 추출하여 마이크로 프로세서(300)로 전달할 수 있다.
이상에서 상술한 바와 같이 본 발명에 따르면, 대용량 메모리에 직접 엑세스 할 수 있는 스마트 카드를 제공하는 효과가 있다.
또한, 본 발명에 따르면, 대용량 메모리가 지원되는 스마트 카드에서 플래시(Flash) 메모리의 고속 통신 인터페이스에서 들어오는 데이터와 ISO 7816 인터페이스를 통해 들어오는 데이터를 동시에 처리 할 수 효과가 있다.
또한, 본 발명에 따르면, 기존의 저속의 인터페이스만을 지원하던 스마트 카드에서 다양한 인터페이스에서 들어온 데이터를 순차적으로 처리할 수 있고 각 데이터의 특성에 따라서 우선 순위를 두어서 멀티미디어 서비스나 통신 어플리케이션을 구동함에 있어서 연속성 있는 서비스를 제공할 수 효과가 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (12)

  1. 커맨드를 전달하는 커맨드 라인;
    데이터 토큰을 전달하는 데이터 라인;
    데이터를 저장하는 메모리;
    RF(Radio Frequency) 데이터를 송수신하는 모뎀;
    상기 커맨드 라인 또는 상기 모뎀을 통해 수신한 커맨드에 따라 데이터 처리를 수행하고 상기 메모리와 데이터를 교환하는 마이크로 프로세서; 및
    상기 커맨드 라인을 통해 수신된 커맨드에 따라 상기 데이터 라인이 상기 메모리 또는 상기 마이크로 프로세서로 연결되도록 연결상태를 변경하고, 상기 데이터 라인 또는 상기 모뎀으로부터 수신된 데이터의 우선순위를 구분하여 우선순위가 높은 데이터를 상기 마이크로 프로세서로 출력하는 데이터 처리부를 포함하는 스마트 카드.
  2. 제1항에 있어서,
    상기 데이터 처리부는
    상기 커맨드 라인을 통해 수신된 커맨드에 따라 상기 데이터 라인이 상기 메모리 또는 상기 마이크로 프로세서로 연결되도록 연결상태를 변경하는 메모리 컨트롤러; 및
    상기 메모리 컨트롤러와 상기 마이크로 프로세서 사이에 위치하여 상기 메모리 컨트롤러 또는 상기 모뎀으로부터 수신된 데이터의 우선순위를 구분하여 우선순위가 높은 데이터를 상기 마이크로 프로세서로 출력하는 데이터 버퍼를 포함하는 것을 특징으로 하는 스마트 카드.
  3. 제2항에 있어서,
    상기 메모리 컨트롤러는
    상기 커맨드 라인 및 상기 데이터 라인을 통해 단말과 통신하는 인터페이스 드라이버;
    상기 인터페이스 드라이버를 통해 수신한 커맨드에 따라 상기 데이터 라인이 상기 메모리 또는 상기 데이터 버퍼로 연결되도록 연결상태를 변경하는 메모리 인터페이스 컨트롤러; 및
    상기 메모리 인터페이스 컨트롤러에 연결되고 상기 수신한 커맨드에 따라 상기 메모리에 접근하여 데이터를 읽고 쓰는 메모리 코어 인터페이스를 포함하는 것을 특징으로 하는 스마트 카드.
  4. 제2항에 있어서,
    상기 메모리 컨트롤러는 상기 데이터 토큰에 포함된 명령 APDU(Command APDU)를 상기 데이터 버퍼로 출력하는 것을 특징으로 하는 스마트 카드.
  5. 제4항에 있어서,
    상기 명령 APDU(Command APDU)에는 상기 마이크로 프로세서에서의 데이터 처리 우선순위 정보가 포함된 것을 특징으로 하는 스마트 카드.
  6. 제5항에 있어서,
    상기 데이터 처리 우선순위 정보는 상기 명령 APDU(Command APDU)의 헤더(Header)부의 CLA(Class of Instruction)부에 위치한 것을 특징으로 하는 스마트 카드.
  7. 제2항에 있어서,
    상기 데이터 버퍼는 상기 우선순위에 따라 데이터의 저장 영역이 다르게 지정된 것을 특징으로 하는 스마트 카드.
  8. 제2항에 있어서,
    상기 데이터 처리부는 상기 데이터 버퍼에서 우선순위가 높은 데이터를 추출하여 상기 마이크로 프로세서로 출력하는 데이터 컨트롤러를 더 포함하는 것을 특징으로 하는 스마트 카드.
  9. 제2항에 있어서,
    상기 마이크로 프로세서는 상기 메모리 컨트롤러로부터 우선순위 정보를 수신하고 우선순위가 높은 데이터를 데이터 버퍼에서 추출하여 처리하는 것을 특징으로 하는 스마트 카드.
  10. 제2항에 있어서,
    상기 모뎀으로부터 수신된 데이터의 우선순위는 미리 지정된 것을 특징으로 하는 스마트 카드.
  11. 제1항에 있어서,
    상기 메모리는 플래시 메모리인 것을 특징으로 하는 스마트 카드.
  12. 제1항에 있어서,
    상기 메모리는 스마트 카드 영역과 메모리 카드 영역을 포함하는 것을 특징으로 하는 스마트 카드.
KR1020060054983A 2006-06-19 2006-06-19 고속 통신 지원을 위한 스마트 카드 KR100757533B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060054983A KR100757533B1 (ko) 2006-06-19 2006-06-19 고속 통신 지원을 위한 스마트 카드

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060054983A KR100757533B1 (ko) 2006-06-19 2006-06-19 고속 통신 지원을 위한 스마트 카드

Publications (1)

Publication Number Publication Date
KR100757533B1 true KR100757533B1 (ko) 2007-09-11

Family

ID=38737340

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060054983A KR100757533B1 (ko) 2006-06-19 2006-06-19 고속 통신 지원을 위한 스마트 카드

Country Status (1)

Country Link
KR (1) KR100757533B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009137820A2 (en) * 2008-05-08 2009-11-12 Texas Instruments Incorporated Universal integrated circuit card detection
US8442586B2 (en) 2008-05-08 2013-05-14 Texas Instruments Incorporated Determining USB/ISO interface and power supply voltage in mobile device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923763A (en) 1996-03-21 1999-07-13 Walker Asset Management Limited Partnership Method and apparatus for secure document timestamping
JP2002366914A (ja) 2001-06-05 2002-12-20 Dainippon Printing Co Ltd マルチプラットフォーム型icカード
JP2004334316A (ja) 2003-04-30 2004-11-25 Toppan Printing Co Ltd Icカード及びそのアプリケーション設定方法
JP2006127361A (ja) 2004-11-01 2006-05-18 Dainippon Printing Co Ltd Icカード用icチップ、icカード及びicカード用プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5923763A (en) 1996-03-21 1999-07-13 Walker Asset Management Limited Partnership Method and apparatus for secure document timestamping
JP2002366914A (ja) 2001-06-05 2002-12-20 Dainippon Printing Co Ltd マルチプラットフォーム型icカード
JP2004334316A (ja) 2003-04-30 2004-11-25 Toppan Printing Co Ltd Icカード及びそのアプリケーション設定方法
JP2006127361A (ja) 2004-11-01 2006-05-18 Dainippon Printing Co Ltd Icカード用icチップ、icカード及びicカード用プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009137820A2 (en) * 2008-05-08 2009-11-12 Texas Instruments Incorporated Universal integrated circuit card detection
WO2009137820A3 (en) * 2008-05-08 2010-02-25 Texas Instruments Incorporated Universal integrated circuit card detection
US8442586B2 (en) 2008-05-08 2013-05-14 Texas Instruments Incorporated Determining USB/ISO interface and power supply voltage in mobile device

Similar Documents

Publication Publication Date Title
US8239596B2 (en) IC card, terminal with IC card and initializing method thereof
JP4937736B2 (ja) 標準的なセキュリティ機能を含むメモリカード
KR101223986B1 (ko) 복수 개의 인터페이스를 지원하는 스마트 카드 및 이를포함하는 스마트 카드 시스템
JP2007317170A (ja) Icモジュールおよび携帯電話
US8931705B2 (en) IC card, mobile electronic device and data processing method in IC card
KR100692663B1 (ko) Ic 카드를 탑재한 단말 및 단말의 초기화 방법
JP2006236200A (ja) カード状記憶装置とそのホスト装置
KR100757533B1 (ko) 고속 통신 지원을 위한 스마트 카드
US20100312980A1 (en) Memory card changer, method for reading or writing data in memory card changer
KR100738032B1 (ko) 대용량 메모리 지원 스마트 카드 및 지원 방법
US20060163364A1 (en) Ic chip, card and mobile terminal connected to the same
KR100680288B1 (ko) Ic 카드 및 ic 카드의 초기화 방법
JP4590201B2 (ja) データキャリア及びデータキャリアのプログラム
JP7005934B2 (ja) 電子情報記憶媒体、icカード、データ送信方法、データ書き込み方法、データ送信プログラム及びデータ書き込みプログラム
KR100974663B1 (ko) 이동통신단말기와 연결되어 스마트 카드를 운용하는 슬롯장치 및 그 운용 방법
KR100766606B1 (ko) 다중 서비스를 제공하는 스마트 카드 및 그 제공 방법
JP2008234415A (ja) Icカード
JP2007122241A (ja) メモリカードコントローラ及びメモリカード
KR100926364B1 (ko) 스마트 카드에서의 복수의 응용 인터페이스 동시 제공 방법및 장치
KR20050008130A (ko) 스마트카드
KR20070018228A (ko) 컨트롤러, 상기 컨트롤러를 구비하는 집적회로카드, 및상기 집적회로 카드의 데이터 처리방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120903

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130902

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee