ISO 7816 : 스마트카드 기술 표준
용어 설명
1. I/O : 카드 내부 모듈로 가는 직렬 입출력 데이터
2. VPP : 프로그래밍된 입력 전압(카드에 의해 부가 사용됨)
3. GND : 접지 (기준 전압)
4. CLK : 타이밍 신호(클럭)
5. RST : 리셋 신호(인터페이스 장치에서 단독으로 사용되거나 , 내부 리셋 회로와 결합되어 사용)
6. VCC : 전원 입력 (카드에 의해 부가적 사용됨)
동작 절차
1) IC 카드가 삽입되면
SMART CARD Interface IC (이하 SCIC)는 카드 삽입음 감지 후 CPU에게 "HIGH" 신호를 보낸다.
2) CPU는 "HIGH" 신호를 확인 후 SCIC에게 *CMDVCC" 신호를 LOW로 한다.
3-1) SCIC는 IC CARD에게 전원 공급을 시작
3-2) I/O, AUX1, AUX2 를 enable
3-3) CPU가 SCIC에게 리셋 구동과 동시에 IC CARD에게 클럭을 인가
3-4) SCIC는 IC CARD에게 리셋 구동
2)와 3)은 정해진 순서대로 움직여야 하며 타이밍을 준수해야 한다.
4) 위의 과정이 이상없이 진행되었다면 IC CARD는 리셋 후 ATR(Answer to reset) 신호를 보내게 된다.
5-1)CPU는 ATR신호로 부터 통신속도(Baud rate), 프로토콜, IC CARD 전원(5V/3.3V)등을 읽고
IC CARD의 동작환경에 맞춘다.
5-2)위 준비가 다 되었다면 CPU는 IC CARD를 제어 할 수 있게 된다.
ATR (Answer To Reset)
IC 카드의 ATR (Answer To Reset) 값은 카드와 리더기 간의 통신 초기화 과정에서 IC 카드가 리더기의 RESET 신호에 응답할 때 보내는 데이터입니다. ATR 값은 카드의 특성, 사용 가능한 프로토콜, 동작 모드 등을 포함한 여러 중요한 정보를 담고 있습니다.
ATR 값의 구조:
ATR은 보통 33~40바이트 정도 길이를 가지며, 다음과 같은 주요 구성 요소로 나뉩니다.은
372/fi 이다.
- TS (Initial Character):
- 첫 번째 바이트로, ATR의 시작을 나타냅니다. 일반적으로 0x3B 또는 0x3F 값을 가집니다.
- TS는 카드의 응답 형식을 나타내며, IC 카드가 사용할 수 있는 통신 프로토콜에 대한 기본 정보를 제공합니다.
- T0 (Format Byte):
- 두 번째 바이트로, 카드가 지원하는 프로토콜과 설정을 정의하는 정보가 포함됩니다.
- 예를 들어, 카드가 사용할 수 있는 통신 속도나 데이터 전송 형식 등을 나타냅니다.
- TA, TB, TC, TD (Protocol Parameters):
- 이 바이트들은 카드가 지원하는 프로토콜에 대한 추가 정보나 특정 설정을 나타냅니다.
- TA, TB, TC는 카드의 내부 동작 모드나 지원 프로토콜에 대한 세부 사항을 정의하는데 사용됩니다.
- Historical Bytes:
- 추가적인 정보가 포함된 Historical Bytes가 포함될 수 있습니다. 이 부분은 카드 제조사나 카드 종류에 따라 다릅니다. 일반적으로 카드의 ID, 제조사 정보, 특정 기능 등이 포함됩니다.
- Check Byte (Optional):
- 카드의 ATR 응답에서 마지막 바이트는 Check Byte로, 앞선 바이트들이 올바르게 수신되었는지를 확인하는 데 사용됩니다.
ATR 값의 역할:
- 카드와 리더기 간의 초기 통신 설정:
- ATR은 리더기와 카드가 서로를 인식하고, 통신에 사용할 프로토콜이나 전송 속도 등을 설정하는 데 중요한 역할을 합니다. 이를 통해 리더기는 카드가 지원하는 방식에 맞게 데이터를 전송할 수 있습니다.
- 카드 정보 제공:
- ATR은 카드의 기본적인 정보를 제공합니다. 예를 들어, 카드가 어떤 프로토콜을 지원하는지, 어떤 통신 속도를 지원하는지, 카드의 동작 모드 등 여러 가지 중요한 정보를 제공합니다.
ATR 값 예시:
다음은 ATR 값의 예시입니다:
3B 8F 80 01 00 00 00 01 51 10 00 00
각 부분의 의미는 다음과 같습니다:
- 3B: TS (Initial Character) - 카드가 응답할 수 있는 프로토콜에 대한 정보
- 8F: T0 (Format Byte) - 카드의 프로토콜 설정 정보
- 80 01 00: 카드의 프로토콜 세부 설정 정보
- 00 00 00 01 51: 카드의 추가적인 파라미터
- 10: Historical Bytes (이 부분은 카드의 제조사나 유형에 따라 달라짐)
요약:
ATR 값은 IC 카드와 카드 리더기 간의 초기 통신에서 중요한 정보를 제공하는 데이터로, 카드가 지원하는 프로토콜, 전송 속도, 동작 모드 등을 설정하는 데 사용됩니다. ATR 값은 카드의 특성을 확인하고 통신을 정상적으로 진행하는 데 필수적인 역할을 한다.