ISO 7816
Por Cristóbal Tárraga García
Laboratorio de Electrónica 2003/2004
ÍNDICE
1. Introducción al estándar ISO 7816.
2. Sumario del estándar ISO 7816.
2.1 - ISO7816-1 Características físicas de la tarjeta.
2.2 - ISO7816-2 Dimensiones y posición de los contactos de la tarjeta.
2.3 - ISO7816-3 Señales eléctricas así como los protocolos de transmisión.
2.3.1 Descripción de las señales eléctricas.
2.3.2 Valores de Voltaje y de Corriente.
2.3.3 Proceso operacional para tarjetas con circuitos integrados.
2.3.5 Selección de tipo de protocolo (PTS).
2.3.6 Protocolo T=0: Protocolo de transmisión de caracteres Asíncrono Half Duplex.
1. Introducción al estándar ISO 7816
Comenzaremos introduciendo las tarjetas inteligentes o tarjetas chip: Una tarjeta inteligente es un plástico del tamaño de una tarjeta de crédito, que se utiliza para realizar diversas transacciones; Estas tarjetas contienen uno o más chips semiconductores de silicio. El chip puede tener dos funciones, ser un poderoso microprocesador o actuar como un chip de memoria. El chip de silicio tiene tres funciones principales, almacenamiento de datos, seguridad en la información, procesamiento de datos.
Existen diferentes tipos de tarjetas inteligentes, caracterizadas por su tecnología podemos distinguir dos tipos:
Tarjetas inteligentes de contactos la cual contiene un chip en la superficie de la tarjeta conforme al ISO 7816.
Tarjeta inteligente sin contacto, las cuales realizan la conexión por medio de transmisiones de radio frecuencia, utilizadas ampliamente en automoción.
Por su capacidad y tipo de memoria podemos distinguir:
Tarjetas con memoria, la cual almacena los flujos de datos que llegan a la tarjeta, también se utiliza para operaciones internas, almacenamiento de tablas, etc.
Tarjetas con memoria protegida la cual requiere un código secreto para poder acceder, ejem telefonía móvil, etc.
Tarjetas con microprocesador, contiene un microprocesador, este chip contiene el micro código, define la estructura de comandos, una estructura de archivos así como la seguridad de la tarjeta. ejem tarjetas de acceso condicional para proveedores de tv.
Las tarjetas pueden tener una amplia gama de capacidades de memoria, desde 1Kb hasta varios Mbytes, así como contar con memoria Flash, ROM, RAM, etc.
El estándar ISO7816 esta separado en tres partes bien diferenciadas:
ISO7816-1: Define las características físicas de la tarjeta.
ISO7816-2: Define las dimensiones y posición de los contactos de la tarjeta.
ISO7816-3: Define las señales eléctricas así como los protocolos de transmisión.
Para mas detalles, puedes contactar con las siguientes entidades:
-
CEN (Comit‚ Eurp‚en de Normalisation)
rue Br‚derote 2
B-1000 Brussels
Belgium
- ISO (International Standard Institute)
Case postale 56
CH-1211 GenŠve 20
Switzerland
2. Sumario del estándar ISO 7816
2.1 - ISO7816-1 Características físicas de la tarjeta.
El estándar ISO7816-1 define muchas características físicas, pero nosotros solo describiremos las mas interesantes.
Luz ultravioleta: Ninguna protección mas allá de la luz UV ambiental debe ser responsabilidad del fabricante de la tarjeta.
Rayos X.: Exposiciones de cualquiera de las caras de la tarjeta a dosis de 0.1 Gy relativas a una radiación media de 70 a 140 Kv (acumulada por año), no deben de ser la causa de malfuncionamiento de la tarjeta.
Contorno de la superficie de los contactos.: La diferencia de nivel entre la superficie de los contactos y la tarjeta debe ser inferior a 0.1 mm.
Dureza de la tarjeta y los contactos.: La tarjeta resistirá daños en cualquier parte de su superficie así como en cualquiera de sus componentes, y permanecerá intacta durante su uso, almacenaje y entrega.
La superficie de los pins no debe ser dañada por la presión ocasionada por una bola de acero de 1.5 mm de diámetro, aplicada con una fuerza de 1.5 N.
Resistencia eléctrica.: La resistencia medida entre medias de dos puntos de los pins nunca debe estar por encima de 0.5 Ohm con un valor de corriente entre 50 uA y 300 mA.
Campos Magnéticos.: El chip de la tarjeta no debe ser dañado por campos magnéticos de 79500 A.tr\m.
Electricidad estática.: La tarjeta no debe ser dañada por una descarga eléctrica de 1500 V de un condensador de 100pF a través de una resistencia de 1500 Ohm.
Deformación máxima de la tarjeta.:
- A lo largo de la tarjeta.: Deformación (f) de 2 cm, 30 veces por minuto.
- A lo ancho de la tarjeta.: Deformación (f) de 1 cm, 30 veces por minuto.
La tarjeta debe trabajar normalmente, y no presentar ninguna anomalía hasta pasadas 1000 deformaciones.
2.2 - ISO7816-2 Dimensiones y posición de los contactos.
2.2.1 Tamaño mínimo de los contactos:

2.2.2 Posición de los pin´s:

2.2.3 Asignación de pin´s:
|
C1 : Vcc = 5V |
C5: Gnd |
|
C2 : Reset |
C6: Vpp |
|
C3 : Clock |
C7: I/O |
|
C4 : RFU |
C8: RFU |
2.2.4 Localización de los contactos:
Todas las medidas son en mm
|
A |
B |
C |
D |
A |
B |
C |
D |
|
|
C1 |
10.25 |
12.25 |
19.23 |
20.93 |
17.87 |
19.87 |
16.69 |
18.39 |
|
C2 |
10.25 |
12.25 |
21.77 |
23.47 |
17.87 |
19.87 |
14.15 |
15.85 |
|
C3 |
10.25 |
12.25 |
24.31 |
26.01 |
17.87 |
19.87 |
11.61 |
13.31 |
|
C4 |
10.25 |
12.25 |
26.85 |
28.55 |
17.87 |
19.87 |
9.07 |
10.77 |
|
C5 |
17.87 |
19.87 |
19.23 |
20.93 |
10.25 |
12.25 |
16.69 |
18.39 |
|
C6 |
17.87 |
19.87 |
21.77 |
23.47 |
10.25 |
12.25 |
14.15 |
15.85 |
|
C7 |
17.87 |
19.87 |
24.31 |
26.01 |
10.25 |
12.25 |
11.61 |
13.31 |
|
C8 |
17.87 |
19.87 |
28.85 |
28.55 |
10.25 |
12.25 |
9.07 |
10.77 |
|
ISO7816 |
AFNOR |
|||||||
ISO 7816 Posición:
Nota: La localización de AFNOR es transitoria, y son usadas por razones de la compatibilidad con las existentes tarjetas magnéticas.
2.3 - ISO 7816 - 3 Señales eléctricas y protocolos de transmisión.
2.3.1 Descripción de las señales eléctricas.
I/O: Entrada o salida de datos en serie al circuito integrado de la tarjeta.
VPP: Entrada de voltaje para programación (Opcionalmente usado por la tarjeta).
GND: Masa (Voltaje de referencia).
CLK: Señal de reloj (Opcionalmente usada por la tarjeta).
RST: Señal de reset controlada por el interfaz o hardware que empleemos, o en combinación mutua con un circuito interno de reset,. S i el reset es interno es obligatorio el voltaje en VCC.
VCC: Entrada de voltaje de alimentación (Opcionalmente utilizado por la tarjeta).
El uso de los dos contactos restantes estará definido en cada aplicación en concreto.
2.3.2 Valores de Voltaje y de Corriente:
Abreviaturas:
Vih: Voltage de entrada a nivel alto.
Vil: Voltage de entrada a nivel bajo.
Vcc: Voltaje de alimentación en VCC.
Vpp: Voltaje de programación en VPP.
Voh: Voltaje de salida a nivel alto.
Vol: Voltaje de salida a nivel bajo.
tr: Tiempo de subida entre el 10% y el 90% de la amplitud de la señal.
tf: Tiempo de bajada entre el 90% y el 10% de la amplitud de la señal.
Iih: Corriente de entrada a nivel alto.
Iil: Corriente de entrada a nivel bajo.
Icc: Corriente de entrada en VCC.
IPP: Corriente de programación.
Ioh: Corriente de salida a nivel alto.
Iol: Corriente de salida a nivel bajo.
Cin: Capacitancia de entrada.
Cout: Capacitancia de salida.
I/O
Este contacto es usado como entrada (modo recepción) o salida (modo transmisión) para el intercambio de datos.
Pueden existir dos estados en la línea I/O.
· Señal o estado alto (Estado Z), Si la tarjeta y el interfaz están en modo recepción o si el estado es forzado por la transmisión.
· Espacio o estado bajo (Estado A).
Cuando los dos extremos de la línea, están en modo recepción la línea b será mantenida en el estado Z. Cuando los dos extremos no están en modo transmisión el estado lógico de la línea estará indeterminado. Durante las operaciones el dispositivo interfaz y la tarjeta no deberán estar en modo transmisión.
Características eléctricas de I/O bajo condiciones de operaciones normales.
|
Símbolo |
Condiciones |
Mínimo |
Máximo |
Unidad |
|
| Vih |
Either(1) o |
Iih máximo = +/- 500uA |
2 |
VCC |
V |
| Iih máximo = +/- 50uA |
0.7 VCC |
VCC (3) |
V |
||
| Vil | Iil máximo = 1mA |
0 |
0.8 |
V |
|
| Voh |
Either(2) o |
Iol máximo = +/- 100uA |
2.4 |
VCC |
V |
| Iol máximo = +/- 20uA |
3.8 |
VCC |
V |
||
| Vol | Iol máximo = 1mA |
0 |
0.4 |
V |
|
| tr, tf | Cin = 30pF; Cout = 30pF |
1 |
us |
||
Tabla 1
(1) Por el interfaz, coge dentro de la cuenta, con ambas condiciones.
(2) Este es asumido por una resistencia pull up que es usada en el interfaz (el valor recomendado es de 20k Ohm).
(3) El voltaje en I/O permanecerá entre 0.3V y VCC + 0.3V.
VPP
Estos contactos se utilizan para suministrar la alimentación del voltaje necesario para programar o borrar la memoria interna no - volatil. Existen dos posibles estados para VPP: estado Idle y estado activo, es definido en la tabla 2. El estado idle se emplea para el uso del interfaz hasta que el estado activo es requerido.
Características eléctricas de VPP bajo condiciones de operaciones normales.
|
Símbolo |
Condiciones |
Mínimo |
Máximo |
Unidad |
| Vpp Ipp |
Estado Idle (programación no activa) |
0.95*Vcc |
1.05*Vcc20 |
V mA |
| Vpp Ipp |
Estado Activo (programación de la tarjeta) |
0.975*P |
1.025*P I |
V mA |
Tabla 2
La tarjeta suministra al interfaz los valores de P y I (valores omitidos: P=5 y I=50) Rise de fall time: 200 us máximo. El rate del cambio Vpp no excede de 2V/us.
La máxima alimentación de Vpp*Ipp no excederá de 1.5W cuando proporciona sobre algún periodo de 1º.
CLK
La frecuencia actual , es entregada por el interfaz sobre CLK, es designado por either, fi (frecuencia inicial) durante la respuesta de la tarjeta al reset ATR, o por fs (la siguiente frecuencia) durante las siguientes transmisiones.
La realización del ciclo para operaciones de asynchronous será entre 45% y 55% del periodo durante la operación de fijación. Cuidado con sacarla cuando cambian las frecuencias (desde fi a fs) para asegurar esto no pulse si es menor de 45% del periodo corto.
Características eléctricas de CLK bajo condiciones de operaciones normales.
|
Símbolo |
Condiciones |
Mínimo |
Máximo |
Unidad |
|
| Vih |
Either (1) o (1) o |
Iih máximo = +/- 200uA |
2.4 |
VCC (2) |
V |
| Iih máximo = +/- 20uA |
0.7*VCC |
VCC (2) |
V |
||
| Iih máximo = +/- 10uA |
VCC-0.7 |
VCC (2) |
V |
||
|
Vil |
Iil máximo = +/-200 uA |
0 (2) |
0.5 |
V |
|
|
tr, tf |
Cin = 30pF | 9% del periodo con un máximo: 0.5us | |||
Tabla 3
(1) Tres condiciones para que el interfaz, coja dentro de la cuenta.
(2) El voltaje en CLK emplea restos entre 0.3V y Vcc+0.3V.
RST
Características eléctricas de RST bajo condiciones de operaciones normales.
|
Símbolo |
Condiciones |
Mínimo |
Máximo |
Unidad |
|
|
Vih |
Either(1) o |
Iih max = +/- 200uA |
4 |
VCC (2) |
V |
| Iih max = +/- 10uA |
VCC-0.7 |
VCC (2) |
V |
||
|
Vil |
Iil max = +/- 200uA |
0 (2) |
0.6 |
V |
|
Tabla 4
(1) Para el interfaz, cogerá dentro de la cuenta con ambas condiciones.
(2) El voltaje sobre RST deberá estar entre 0.3V y VCC+0.3V.
VCC
Estos contactos son usados para el voltaje de la alimentación de Vcc.
Características eléctricas de VCC bajo condiciones de operaciones normales.
|
Símbolo |
Mínimo |
Máximo |
Unidad |
|
Vcc |
4.75 |
5.25 |
V |
|
Icc |
4.75 |
200 |
mA |
Tabla 5
2.3.3 Proceso operacional para tarjetas con circuitos integrados.
Este proceso se aplica a cada tarjeta de contacto con circuito(s) integrado(s):
El dialogo entre el interfaz y la tarjeta será un proceso de operaciones consecutivas:
Estas operaciones son especificas en la siguientes subclausuras.
NOTA : Un estado activo sobre VPP, solo será suministrado y mantenido cuando es requerido por la tarjeta.
a - Concesión y activación de los contactos:
El circuito eléctrico no será activado hasta que los contactos no son conectados en el interfaz, es para evitar cualquier daño a ninguna tarjeta (desafío en las estándar).
La activación de los contactos por el interfaz continuara en las operaciones consecutivas:
b - Reset de la tarjeta:
Un Reset en la tarjeta es iniciado por el interfaz, entonces la tarjeta responderá con una respuesta para el Reset ATR se describe en 2.4.
Para finalizar la activación de los contactos (RST es en L, VCC la alimentación y estabilización, I/O en modo de recepción del interfaz, VPP estabilizado al nivel idle l, CLK suministrando la confirmación y estabilizando clock), la tarjeta responde con asynchronously esta preparada para el Reset.
La señal de CLK es aplicada al tiempo T0. La línea I/O se fijara para el estrado Z dentro de 200 ciclos clock de la señal de clock (t2) se aplicara a CLK (time t2 después de T0).
Se producirá un Reset interno de la tarjeta después de algunos ciclos de la señal de clock. La respuesta al Reset sobre I/O comenzara entre 400 y 40000 ciclos de clock (t1) después de la señal de clock es aplicado sobre CLK (tiempo t1 después de T0).
Una tarjeta con una activación de low reset es para mantenimiento de RST en el estado L para el menor de los 40 ciclos de clock (t3) después de la señal de clock es aplicada sobre CLK (tiempo t3 después T0). En este caso si no responde al Reset de inicio en 40 000 ciclos de clock (t3) con RST en estado L, RST es puesto en estado H (al tiempo T1). La respuesta para el Reset en I/O comenzara entre 400 y 40 000 ciclos de clock (t1) después inicio de la señal en RST (tiempo t1 después T1).
Si la respuesta para el Reset no comienza en 40 000 ciclos de clock (t3) con RST en estado H (t3 después T1), la señal sobre RST volverá al estado L (al tiempo T2) y los contactos serán desactivados por el interfaz.
Con la tarjeta respondiendo sincronizadamente, el interfaz pone todas las líneas al estado L. VCC la alimentación, VPP es puesta al estado de Idle, CLK y RST permanecen en el estado L, I/O es puesto en modo recepción en el dispositivo interfaz. Rst debe mantenerse en estado H al menos 50us (t12) antes de regresar al estado L otra vez.
El pulso de reloj es aplicado después del intervalo (t10) desde el franco ascendente de la señal de reset. La duración del estado H de la señal de reloj puede ser cualquier valor comprendido entre 10us y 50 us. No esta permitido mas de un pulso de reloj cuando la señal de reset esta activa. El intervalo de tiempo entre el franco de bajada en CLK y RST es t11.
El primer bit de datos es obtenido como respuesta al reset ATR en I/O cuando CLK esta en estado L y es valido al pasar el intervalo t13 una vez terminado el franco de bajada de RST.
Notas:
1.- Asumimos que no esta definido el estado interno de la tarjeta antes del reset.
2.- A fin de continuar el dialogo con la tarjeta, RST deberá ser mantenida en el estado cuando las respuestas aparezcan en I/O.
3.- La tarjeta puede ser reseteada por el interfaz en cualquier momento.
4.- Los dispositivos interfaces, pueden soportar uno o mas de estos comportamientos ante el reset. La prioridad para detectar tarjetas sincronas o asíncronas no esta definida en el estándar.
c - Desactivación de los contactos
Cuando finaliza o es abortado (mala respuesta o tarjeta sacada del interfaz) el intercambio de información, los contactos eléctricos deben ser desactivados. La desactivación que lleva a cabo el dispositivo interfaz consiste en esta secuencia de operaciones:
- Estado L en RST.
- Estado L en CLK.
- VPP inactivo.
- Estado A en I/O.
- VCC inactivo.
Están consideradas dos tipos de transmisiones:
a.- ATR Respuesta al reset en transmisiones asíncronas.
La duración del cada bit usada en I/O es definida como una unidad elementar de tiempo (etu). Para tarjetas que cuentan con un reloj interno, el etu inicial es 1/9600 s. Para tarjetas que usan un reloj externo, se establece una relación lineal entre la unidad elemental de tiempo (etu) en I/O y el periodo que suministra el interfaz a traves de CLK. La etu inicial es 372/fi donde fi esta en Hertz. La frecuencia inicial fi es proporcionada por el interfaz por CLK durante el ATR.
A fin de leer el carácter inicial (TS), todas las tarjetas deben ser inicializadas con un fi en el rango de 1Mhz a 5 Mhz.
Trama de caracteres durante el ATR.
Antes de la transmisión de un carácter I/O deberá estar en el estado Z.
Un carácter consiste en 10 bits consecutivos:
Un byte de datos consiste en 8 bits denominados b1 a b8, desde el bit menos significativo (lsb, b1) al mas significativo (msb, b8).
Convenciones (nivel de codificación, niveles de conexión Z/A a dígitos 1 o 0,y el significado de los bits, conexión ba ...bh a b1...b8) son especificados en el carácter inicial, llamado TS, que es transmitido por la tarjeta en respuesta al reset. La paridad es correcta cuando el numero de unos es par en la secuencia desde ba ...bi. En un carácter el periodo de tiempo desde el franco de bajada del bit de start hasta el franco de subida del enésimo bit viene dado por la ecuación (n+/-0.2) etu. Cuando se espera para empezar, el receptor muestrea la línea I/O periódicamente, el tiempo de comienzo será el termino medio entre la ultima observación de un nivel Z y la primera observación de un nivel A, el comienzo sera verificado antes de 0.7 etu y entonces ba es recibido en (1.5 +/-0.2) etu. La paridad es chequeada sobre la marcha.
Nota: Cuando estamos esperando el comienzo, el tiempo de muestreo deberá ser menor de 0.2 etu a fin de que todas lasa zonas de testeo distingan todas las zonas de transmisión.
El delay entre dos secuencias de caracteres (entre los francos de bajada de los bits de start) sera de al menos 12 etu, además incluiremos la duración de un carácter (10+/-0.2) etu de salvaguarda, el interfaz y la tarjeta permanecerán en estado de recepción a fin de que I/O permanezca en el estado Z.

Figura 1: Trama de un carácter
Durante la respuesta al reset, en los siguientes caracteres se repite el procedimiento dependiendo del tipo protocolo. Este procedimiento se mantiene para tarjetas que utilizan el protocolo T=0; esto es opcional para el dispositivo interfaz y para otros tipos de tarjetas.
El transmisor testea la línea I/O (11+/-0.2) etu después del franco de bajada del bit start:
Cuando la paridad es incorrecta, desde (10.5+/-0.2) etu, el receptor transmite una señal de error activando el estado A durante como mínimo 1 etu y como máximo 2 etus. El receptor debe entonces esperar la retransmisión del carácter erróneo (ver figura 8).
Si no se le repite el carácter erróneo a la tarjeta:
Estructuras y comentarios
La operación de reset dara como resultado una respuesta de la tarjeta, que consistirá en un carácter inicial TS, seguido de a lo sumo 32 caracteres en el siguiente orden:

Figura 2: Configuracion general de la respuesta al reset ATR
Los "Interfaz Characters" especifican parámetros de los circuitos integrados, así como características lógicas del protocolo utilizado. Los "Historical characters" especifican información general, por ejemplo, el fabricante de la tarjeta, el chip insertado en la tarjeta, la ROM oculta en la tarjeta, el tiempo de vida de la tarjeta. La especificación de estos caracteres históricos queda fuera de esta guía.
Estructura de TS, el primer carácter
El carácter inicial TS, suministra la sincronización a nivel de bit y define las convenciones de los bytes de datos del código en los siguientes caracteres. Estas convenciones están reseñadas en el ISO1177.
I/O esta inicialmente en el estado Z, la secuencia de sincronización de bit (Z)AZZA esta definida para el bit de start y ba, bb, bc. (ver figura 5). Los últimos 3 bits bg, bh, bi serán AAZ para chequear la paridad.
Nota: Esto permite al interfaz determinar el etu usado inicialmente por la tarjeta, alternando la medición del etu en los primeros francos de TS. La correcta recepción y transmisión en la tarjeta será mas perfecta cuanto mejor sea la definición del etu.
Los dos posibles valores de TS ( diez bits consecutivos desde el start bit hasta bi con su correspondiente valor en hexadecimal) son:

Figura 5: Caracter inicial TS
Estructura de los siguientes caracteres en el ATR
El carácter inicial TS es seguido por un numero variable de caracteres en el siguiente orden: El "Format Character" T0, y opcionalmente los "Interfaz Characteres" TAi, TBi, TCi, TDi, y los caracteres históricos T1, T2, T3, TK, y el caracter condicionado TCK.
La presencia de los "Interfaz Characters" esta indicada por un bit mapeado con la tecnica explicada mas abajo. asi como la presencia de los "Historical Characters" esta indicada por el numero de bits y especificada en el "Format Character" definido abajo. La presencia del "Check Character" TCK depende del tipo de protocolo y esta definido también abajo.
Format Character T0
El carácter T0 contiene dos partes:
Los cuatro bits mas significativos (b5,b6,b7,b8) se llaman Y1 e indican por medio del nivel lógico 1 la presencia de los caracteres TA1, TB1, TC1, TD1, respectivamente.
Los siguientes 4 bits (b4 a b1), se llama K e indica con un numero del 0 al 15 el numero de caracteres históricos "Historical Characteres".

Figura 6: Informacion proporcionada por T0.
Interfaz Characters TAi, TBi, TCi, TDi
TAi, TBi, TCi (i=1, 2, 3, 4) indica los parámetros del protocolo. TDi indica el tipo de protocolo T y la presencia de los siguientes caracteres. Los bits b5, b6, b7, b8 de este byte contiene Yi (T0 contiene Y1, TD1 contiene Yi+1) al igual que en T0, TAi esta definido por b5, TBi por B6 y así consecutivamente.
Cuando TDi no es transmitido, el valor por defecto de Yi+1 es Nulo, e indica que se ha llegado al final de la secuencia de "Interface characters", TAi+j,TBi+j ....

Figura 7: Información proporcionada por TDi
Historical Characters T1, T2, T3, ...TK
Cuando K no es nulo, el ATR continua con la transmisión de K caracteres históricos T1, T2, TK.
Check Character TCK
El valor de TCK será la OR exclusiva de todos los bytes desde T0 hasta TCK incluidos los nulos.
El ATR es completado 12 etu después del franco de subida del primer carácter.
Tipo de protocolo T
Los 4 bits menos significativos del cualquier interfaz character TDi indican el tipo de protocolo T, especifica las reglas que van a ser usadas en el proceso de transmisión, Cuando no es transmitido TDi, se usa T=0.
T=0. Protocolo de transmisión de caracteres asíncrono half duplex.
T=1. Protocolo de transmisión de bloques asíncrono half duplex.
T=2 y T=3 están reservados para operaciones futuras en full duplex.
T=4 Esta reservado para un sistema avanzado de caracteres asíncrono half duplex.
De T=5 a T=13 están reservados para usos futuros.
T=14 Están reservados para protocolos estandarizados por la ISO
T=15 Reservado para futuras ampliaciones
Nota: Si solo se indica T=0, TCK no será enviado, en todos los demás casos TCK será enviado.
Especificación de los "Global Interfaz Bits".
Posiblemente serán enviados por la tarjeta entre los "Interfaz Bytes" en el ATR, esta subdivisión define solo los "Golbal Interfaz Bytes" TA1, TB1,TC1,TD1. Estos bytes globales del interfaz, contienen información para determinar parámetros que el interfaz debe tener en cuenta.
Parámetros F, D, I, P, N
El etu que se usa durante el ATR es reemplazado por el etu de trabajo, durante las siguientes transmisiones. F es el factor de conversor de reloj y D es el bit rate para ajustar el etu para las siguientes transmisiones.
Para tarjetas con reloj interno: Etu inicial etu = 1/9600 s Etu de trabajo etu = (1/D)*(1/9600) s
Para tarjetas con reloj interno: Etu inicial etu = 372/fi s Etu de trabajo etu = (1/D)*(F/fs) s
El valor mínimo de fs será de 1 Mhz.
El valor máximo de fs esta reseñado en la tabla 6.
I y P definen el estado activo de VPP
N es el un guardián de tiempo demandado por la tarjeta, antes de recibir el siguiente carácter, la tarjeta necesita u delay de al menos (12+N)etus desde el franco de bajada del byte anterior. Si no guarda este tiempo de guarda, la tarjeta manda información al interfaz en este periodo.
Los valores por defecto para estos parametros son: F=372; D=1; I=50; P=5; N=0.
Después del procedimiento de reset, la información de salida esta controlada por los pulsos de reloj. El primer pulso de reloj es aplicado entre 10us y 100 us (t14), después del franco descendiente de RST para leer los bits de datos desde la tarjeta. El estado H de la señal de reloj puede ser variado entre 10us y 50 us (t15) y el estado L entre 10 us y 100 us. (t16).
El primer bit de datos es obtenido de I/O cuando el reloj esta bajo y es valido 10 us (t13), al menos, después del franco de bajada de RST. Cada bit de datos es valido al menos hasta el siguiente franco de bajada del siguiente pulso de reloj en CLK. Por bits de datos pueden por consiguiente ser sampleados en el franco de subida del siguiente ciclo de reloj
La cabecera permite determinar rápidamente el tipo de tarjeta asi como los interfaces que son compatibles. Si estos no son compatibles los contactos deberan ser desactivados.
El primer campo H1 codifica el tipo de protocolo. Los valores de estos códigos y su correspondiente protocolo son:
- 00 y FF No ha sido usado
- 01 a FE Este valor es asignado por la ISO/IEC JTC1/SC17 a un tipo de protocolo.
El segundo campo "H2"codifica parámetros específicos, del protocolo codificado en "H1".
2.3.5 Selección de tipo de protocolo (PTS).
Si solo hay un tipo de protocolo y FI=D=1 (valor por defecto de TA1) y N es menor de 255 en el ATR (respuesta al reset). El protocolo PTS o seleccion de tipo de protocolo debe ser inicializado inmediatamente después de la transmisión del ATR.
Si hay mas de un tipo de protocolo, el valor del parámetro TA1 esta fuera de los valores por defecto y además N es igual a 255 en el ATR, la tarjeta deberá saber sin ambigüedad cual es el tipo de protocolo y los parámetros de los valores de transmisión (FI, D, N) que serán usados. Por consiguiente se debe seleccionar un tipo de protocolo y unos parámetros de transmisión.
Si la tarjeta es capaz de trabajar con mas de un tipo de protocolo y uno de esos tipos de protocolos que se han indicado es T=0, entonces el tipo de protocolo T=0 se deberá indicar en TD1 como primer protocolo ofrecido y damos por echo que no se ha ejecutado el PTS (Selección de tipo de protocolo).
Si la tarjeta ofrece mas de un tipo de protocolo y el interfaz soporta solo un protocolo el cual no es T=0 y no esta soportado el PTS, el interfaz deberá denegar la conexión o resetear la tarjeta.
2.3.5 A El protocolo PTS
Solo al dispositivo interfaz le esta permitido iniciar el procedimiento PTS:
- El dispositivo interfaz manda una petición PTS a la tarjeta.
- Si la tarjeta recibe correctamente la petición, se confirma que será mandada una respuesta al PTS, si esta implementado y no se ha excedido el limite de tiempo.
- Después del correcto intercambio de la petición de PTS y su confirmación, los datos deberán ser transmitidos desde el interfaz usando el protocolo y los parámetros seleccionados.
- Si la tarjeta recibe una petición de PTS errónea, no se mandara la confirmación de PTS.
- Si se excede el tiempo de espera máximo el interfaz deberá resetear la tarjeta
- Si al interfaz recibe una confirmación errónea de PTS, se reseteara la tarjeta.
Los parámetros para la transmisión de la petición de PTS y la confirmación de PTS se corresponderán con los utilizados en el ATR respetando el bit rate y lo establecido por TS o modificado por TC1.
2.3.5 B Estructura y contenidos de la petición y confirmación de PTS.
La petición y respuesta de PTS consiste en un carácter inicial PTSS seguido por un carácter con formato PTSO, tres caracteres de parámetros opcionales PTS1,PTS2,PTS3, y un carácter de chequeo PCK como ultimo byte.
PTSS identifica si se trata de la petición de PTS o la confirmación y se codifica FF.
PTS0 indica con los bits b5, b6, b7 puestos a 1, la presencia de la secuencia de caracteres opcionales PTS1, PTS2, PTS3 respectivamente. En los bits menos significativos, de b4 a b1 seleccionamos el tipo de protocolo T codificado como los bytes TD. El bit mas significativo b8 ( por defecto b8 es igual a 0) esta reservado para futuros usos.
PTS1 codifica los parámetros FI, del mismo modo que se codificaba TA1. El interfaz debe mandar PTS1 en orden para indicarle FI y D a la tarjeta. Si PTS1 no es mandado FI=1 y D=1 son asumidos por defecto. La tarjeta devuelve los valores de FI y D en la respuesta o no manda estos valores indicando que se tomen los valores por defecto.
PTS2 indica que se soporta N=255, cuando el bit b1 es puesto a 1. Cuando b1 esta puesto a cero este es el valor por defecto e indica que el periodo de 11 etu no sera usado. Si el bit b2 esta a 1 la tarjeta usara un tiempo extra de 12 etu para las transmisiones de caracteres con el interfaz. El bit b2 esta a cero por defecto e indica que no se requiere ningún tiempo de guarda. Los bits de b3 a b8 están reservados para usos futuros.
Si PTS2 es mandado por el interfaz y no es devuelto por la tarjeta , el interfaz debe rechazar o resetear la tarjeta.
La codificación de PTS3 no esta definida.
El valor de PCK deberá ser la OR exclusiva de todos los caracteres originales desde PTSS a PCK incluidos los nulos.
2.3.6 Protocolo T=0,Protocolo de transmisión de caracteres Asíncrono Half Duplex.
Esta cláusula define la estructura y procesado de los comandos iniciado por el dispositivo interfaz para el control de la comunicación y para el control especifico de la tarjeta en un protocolo asíncrono Half Duplex.
Este protocolo usa los parámetros indicados en el ATR a menos que sean modificados por el protocolo de selección de tipo (PTS).
2.3.6.A Parámetros específicos del interfaz: Tiempo de espera en funcionamiento
(Work Waiting Time).
El el ATR, el carácter de interfaz TC2 codifica el valor entero WI en 8 bits b8 a b1. Cuando no aparece TC2 en el ATR el valor por defecto de WI es 10.
El intervalo entre el comienzo de cualquier carácter trasmitido por la tarjeta y el comienzo de el anterior byte ( enviado bien por la tarjeta o por el interfaz) no debe exceder de 960*WI etu. Este delay máximo es el llamado tiempo de espera en funcionamiento (Work Waiting Time).
2.3.6.B Estructura y proceso de los comandos.
Los comandos son siempre iniciados por el interfaz. Este dice a la tarjeta lo que tiene que hacer en los 5 bytes de la cabecera, y permite la transferencia de los bytes de datos bajo el control de los bytes de procedimiento enviados por la tarjeta.
Se asume, que la tarjeta y el interfaz conocen a priori la dirección de los datos con objeto de distinguir entre instrucciones para tranferencias de entrada (Cuando los datos entran en la tarjeta durante la ejecucion) e instrucciones de salida de datos (Cuando los datos son emitidos por la tarjeta durante la ejecución).

Figura 8: Diagrama de transmisión de un byte
Cabecera del comando enviado por el interfaz
El dispositivo interfaz transmite una cabecera de cinco bytes especificados como CLA, INS, A1,A2, L.
- CLA es el tipo de instrucción. El valor $FF esta reservado para el PTS.
- INS es el código de la instrucción dentro de la tipo de instrucciones. El código de la instrucción es valido solo si el bit menos significativo es 0, y la parte alta del byte es 6 o 9.
- P1, P2 son una referencia, (por ejemplo una dirección), que completa el código de instrucción.
- L codifica el numero "n" de bytes de datos (D1...Dn) que van a ser transmitidos durante el comando: La dirección de desplazamiento de estos datos estará en función de la instrucción. En un comando en el cual salen datos hacia el exterior L =0 introduce 256 bytes desde la tarjeta. En comandos de entrada de datos L=0 quiere decir que no habrá transferencia de datos.
Todas las posibilidades de codificación sobrantes para la cabecera son especificadas en otras partes del estándar ISO 7816.
Después de la transmisión de los 5 bytes de la cabecera , el interfaz espera el byte de procedimiento.
Bytes de procedimiento enviados por la tarjeta
El valor de los bytes de procedimiento indicara indicaran la accion requerida por el circuito interfaz. Tres tipo de bytes de procedimiento están especificados:
- ACK: (Los siete bits mas significativos en el byte de ACK son todos iguales o los complementarios a sus semejantes en el byte INS, dejando aparte los valores 6X o 9X). El interfaz controla el estado de VPP, y el intercambio de datos dependiendo de los valores de ACK.
- NULL: ($60). Este byte es enviado por la tarjeta para restaurar el tiempo de trabajo, anticipa una secuencia de bytes de procedimiento. Si la petición no termino, no le influye ni sobre VPP ni sobre los datos.
- SW1 ($6X o $9X, a excepción de $60): El circuito interfaz mantiene o habilita VPP y espera a SW2 para completar el comando.
Ninguna transacciones del estado de VPP (Activo/desocupado) deben ocurrir dentro de el tiempo de guarda de el byte de procedimiento, y no cuando el tiempo de espera ha terminado.
En cada byte de procedimiento, la tarjeta procedera con el byte de ACK o NULL, y no mostrara su desacuerdo sin responder, tambien puede concluir con la secuencia SW1 -SW2
|
Byte |
Valor |
Resultado |
|
ACK |
INS
INS+1 INS´ INS+1´ |
VPP esta inactivo. Todos los bytes de datos restantes serán transferidos
posteriormente. VPP esta activo. Todos los bytes de datos restantes serán transferidos posteriormente. VPP esta inactivo. El siguiente byte de datos será transferido posteriormente. VPP esta activo El siguiente byte de datos será transferido posteriormente. |
|
NULL |
$60 | No implica ninguna acción sobre VPP. El interfaz esperara un nuevo byte de procedimiento. |
|
SW1 |
SW1 |
VPP esta inactivo. El interfaz esperara al byte SW2. |
Acknoledge bytes
Los bytes de ACKse usan para controlar el estado de VPP y las transferencias de datos.
Cuando la OR-Exclusiva del byte de ACK con el byte INS es $00 o $FF, el circuito interfaz debe mantener o poner VPP en estado inactivo.
Cuando la OR_Exclusiva del byte de ACK con el byte INS es $01 o $FE, el circuito interfaz debe mantener o poner VPP como activo.
Cuando los siete bits mas significativos del byte ACK tienen el mismo valor que los correspondientes en el byte INS, todos los bits que permanecen (Di ..Dn), si alguno sobra es transferido en secuencia.
Cuando los siete bits mas significativos del byte ACK son el complementario que los correspondientes en el byte INS solo el siguiente byte de datos (Di) si sobra uno es transferido.
Después de estas acciones, el circuito interfaz espera nuevos procedimientos.
Byte nulo (Null Byte) $60
Este byte es enviado por la tarjeta para resetear el el tiempo de espera y para anticipar la siguiente secuencia de procedimientos.
Bytes de estado (Status Bytes) (SW1=$6X o $9X, sin contar $60; SW2 cualquier valor)
El final normal esta indicado por la secuencia SW1-SW2= $90-$00. Cuando la parte alta del byte mas significativo de SW1 es $6, significa que SW1 es independiente de la aplicación. Quedan definidos los siguientes 5 valores:
$6E La tarjeta no soporta el tipo de instrucción.
$6D El código de instrucción no esta programado o no es valido.
$6B La referencia es incorrecta.
$67 La longitud es incorrecta.
$6F No se ha suministrado un diagnostico preciso
Otros valores están reservados para futuros usos del ISO7816. Cuando SW1 no es $6E ni $6D la tarjeta soporta la instrucción. Esta parte de la ISO7816 no interpreta los valores $9X del byte SW1, ni SW2. Estos valores son denotados dentro de la aplicación en particular.
