Ver Mensaje Individual
Antiguo 14/01/2005, 16:08   #14
Celestial
Baneado
 
Avatar de Celestial
 
Fecha de ingreso: 18/may/2003
Mensajes: 35
Celestial está en el buen camino
Post ISO 7816 conocimientos basicos.........

Creo que tenemos que empezar por los conocimientos basico que es lo que tenemos que dominar yo he puesto algo sobre la ISO 7816 . Espero no equivocarme ni enredar mas a la gente.

2.2.2. ISO – International Standard Organisation

Los estándares mundiales están dirigidos por un única organización llamada International Standard Organisation (ISO) emplazada en Ginebra. Los miembros de ISO son organizaciones de estandarización nacionales como por ejemplo ANSI (American National Standards Institute), BSI (British Standards Institution) y DIN (Deutsches Institut for Normung). La International Electrotechnical Commission (IEC) está también interesada en estándares en este campo de la electrónica, de hecho, en muchos casos, sus estándares han sido combinados y son a menudo referenciados como estándares ISO/IEC.

ISO/IEC tiene un comité técnico compartido (JTC1 – Joint Technical Committee) que trata la relación con estándares de ordenadores. Dentro del JTC1 hay un subcomité (SC17) que se ocupa de las tarjetas de identificación y que tiene seis grupos de trabajo (WG). Dentro de estos, el WG4 desarrolla los estándares para las tarjetas de Circuito Integrado (IC) con contactos y el WG8 los estándares para las tarjetas IC sin contactos.

Las etapas de los estándares ISO/IEC son las siguientes:

WD: Trabajo borrador (Working Draft)
CD: Comité borrador (Committee Draft)
DIS: Estándar Internacional borrador (Draft International Standart)
IS: Estándar Internacional (International Standard)
Los estándares de las tarjetas IC con contactos fueron personalizados en los ISO 7810 e ISO 7811, los cuales han sido adoptados dentro del ISO/IEC 7816 que recoje los estándares más relevantes para tarjetas IC con contactos.

Las tarjetas IC sin contactos son reconocidas por el ISO (SC17-WG8) como tarjetas de identificación y tienen características físicas de acuerdo al ISO 7810 y al ISO 7813, con la excepción del grosor de la tarjeta, ya que en el pasado las tarjetas sin contactos han tenido un espesor menor que las tarjetas con contactos.

2.2.3. Estándares de tarjetas IC con contactos: ISO/IEC 7816

Dentro de este estándar se distinguen las siguientes partes:

IS 7816-1: donde se definen las características físicas de la tarjeta, como elasticidad de la tarjeta, resistencia eléctrica de los contactos, interferencias, etc. Está basado en el ISO 7810
IS 7816-2: define las medidas de la tarjeta, número y posición de los contactos, etc.
IS 7816-3: define cómo comunicarse con una tarjeta: las señales eléctricas, inicialización de la tarjeta, señales de reloj, etc. Aquí se describe el Protocol type T=0 asynchronous half duplex character transmission.
IS 7816-4: define, junto a 7816-3, los protocolos para la comunicación con la tarjeta: formato de los comandos, respuestas, etc.
IS 7816-5: se ha definido para aplicaciones de identificación, procedimientos de registro y numeración, etc.
Los puntos 6, 7 y 8 del estándar se encuentran aún en fase de borrador y tratan los siguientes aspectos:

7816-6: define los datos entre industrias como el nombre del usuario, fecha de expiración, etc.
7816-7 y 8: tratarían de ampliar los comandos y funciones relativos a seguridad.
Veamos los puntos más relevantes del estándar.

2.2.3.1. Contactos
Una tarjeta chip dispone de ocho contactos, situados en posiciones bien determinadas de la tarjeta, de los que realmente sólo se usan seis, como se puede ver en la figura 2.1.:



Figura 2.1

La función de estos contactos es proporcionar al circuito alojado en el interior de la tarjeta un medio para comunicarse con el exterior, poder recibir tensión eléctrica, etc. Estos contactos son:

Vcc: proporciona la tensión de alimentación necesaria para el funcionamiento del circuito. El estándar fija una tensión de alimentación de 3 o 5 Voltios.
Gnd: tierra (0 Voltios).
Reset: para inicializar la tarjeta, se debe aplicar en este contacto una determinada tensión.
Clock: a la tarjeta se le debe suministrar una señal de reloj, que será utilizada para el funcionamiento de los circuitos contenidos en ella. Asimismo, su frecuencia determina la velocidad de comunicación entre lectora y tarjeta. El estándar fija una frecuencia de reloj de 372 veces la velocidad de transmisión deseada, aunque esta cantidad puede variar en función de la tarjeta. Por ejemplo, para trabajar a una velocidad de 9600 bps, se debe aplicar una señal de reloj de 3,5712 MHz. El rango normal de operación de una tarjeta suele estar entre 1 MHz y 5 MHz.
I/O: este contacto es el utilizado por la tarjeta para comunicarse con el exterior. Puesto que sólo se dispone de un contacto, no se puede enviar y recibir al mismo tiempo (comunicación half-duplex).
Vpp: algunas tarjetas, sobre todo las más antiguas, necesitan de una tensión superior a 5 Voltios para poder escribir en su memoria. Esto es debido a la tecnología de memoria empleada. Actualmente las tarjetas no suelen requerir tensión superior, por lo que estas no utilizan este contacto.
Los dos contactos no utilizados están reservados para usos futuros. Algunas tarjetas, como la Philips 83C852, utiliza uno de estos contactos para proporcionar un segundo contacto de entrada/salida (I/O), lo que posibilita el poder enviar y recibir datos de la tarjeta a la vez utilizando ambos contactos (comunicación full-duplex).
Por supuesto, para utilizar este contacto se deben utilizar lectoras y terminales que posibiliten este hecho, ya que no forma parte del estándar.

2.2.3.2. Reset y ATR

Antes de poder establecer la comunicación con la tarjeta, debemos proceder a su inicialización. Una vez se le ha aplicado alimentación y la señal de reloj apropiada, debemos activar la señal de Reset. Una vez la tarjeta detecta esta señal, procede a enviar a la lectora una serie de bytes, conocidos como Answer To Reset (o ATR), que son la respuesta que genera la tarjeta a la señal de Reset. El ATR contiene información como:

Frecuencia de reloj máxima a la que trabaja la tarjeta y factor por el que hemos de dividir esta para obtener la velocidad de transmisión. Por supuesto, en el inicio, la frecuencia y el factor está prefijada (3,5712 MHz y 372 respectivamente, para obtener una velocidad de transmisión de 9600 bps). Esto quiere decir que el ATR es enviado a una velocidad de 9600 bps, pudiendo variar la frecuencia y velocidad de transmisión utilizada después, tras una negociación entre terminal y tarjeta.
Se indica el orden de envío de los bits (los más significativos enviados primero o no) y si cada bit es enviado negado o no.
Tiempo de espera entre carácter y carácter.
Tensión de programación necesaria (Vpp), en caso de necesitarla.
Protocolo utilizado por la tarjeta.
Información relativa a la tarjeta o al fabricante, como número de serie de la tarjeta, versión del sistema operativo, etc.
Una vez la tarjeta ha enviado la respuesta al Reset (ATR), el terminal ya conoce las características de la misma, y ya puede dialogar con ella, siempre con la línea de Reset activada. Una vez ha finalizado de dialogar con la tarjeta, desactivará la señal de Reset, no pudiendo comunicarse más con la tarjeta hasta volver a activar la señal, mediante la cual se volverá a recibir el ATR, repitiéndose el proceso.

2.2.3.3. Protocolo T=0

En este protocolo se define la estructura y procesamiento de los comandos enviados a la tarjeta, así como el control de la transmisión de los caracteres, enviados en modo half-duplex de forma asíncrona. Este protocolo debe poder ser utilizado por todas las tarjetas, lo que no excluye que una tarjeta pueda utilizar otros protocolos de transmisión además de este. Se hablará de terminal y lectora indistintamente, ya que el procesamiento de los datos depende de la inteligencia de la lectora. En algunos casos, la lectora es lo suficientemente inteligente como para tratar los datos enviados y recibidos, gestionar la transmisión, velocidad, etc., pero en otros, el procesamiento lo realizaría el terminal, ya que la lectora no realiza ninguna manipulación sobre datos.

El aspecto más importante de este protocolo es la estructura de los comandos y el procesamiento de los mismos. Un comando nunca puede ser generado por la tarjeta. Esta, al recibirlo, debe procesarlo, y generar una respuesta al mismo. Un comando está formado siempre por la cabecera, de cinco bytes, y opcionalmente, en función del comando, de los datos que queremos enviar a la tarjeta. La cabecera está formada por los siguientes cinco bytes:

CLA: determina la clase del comando
INS: es el código del comando
P1, P2: son los parámetros del comando
Le: indica el número de bytes que enviamos a continuación o que deben ser enviados por la tarjeta. La dirección de estos bytes depende del comando
Lo primero que se debe realizar es enviar la cabecera del comando a la tarjeta, independientemente de si se han de enviar datos a continuación o no. Una vez enviada, se debe esperar a que la tarjeta devuelva un byte. Este byte recibe el nombre de Procedure Byte. Su valor determina si la tarjeta conoce y puede ejecutar el comando, o si por el contrario el comando enviado le es desconocido o no lo puede realizar. En caso de que la tarjeta pueda ejecutar el comando y el terminal deba enviar datos a la tarjeta después de la cabecera, los datos le serían enviados una vez recibido el Procedure Byte. En caso de ser un comando en el que sea la tarjeta la que deba enviar datos, el terminal permanecerá a la espera después de recibir el Procedure Byte hasta recibir los datos.
Una vez procesado el comando, la tarjeta envía, junto a los posibles datos que deba devolver la tarjeta, dos bytes que informan sobre el resultado de la operación (bytes de status), que reciben el nombre de SW1 y SW2. En el caso en el que la tarjeta deba devolver datos, estos bytes son enviados a continuación de los datos. En caso de no tener que enviar datos al terminal, el Procedure Byte enviado al terminal es SW1, enviando a continuación SW2. En función del comando enviado, el terminal sabrá si esperar recibir datos o no y si el Procedure Byte corresponde a SW1 o no, para recibir a continuación el byte SW2. Los valores de los bytes de status dependen de cada comando. El byte SW2 da una información más detallada que SW1. Por ejemplo, si SW1=98h indica un problema de seguridad, SW2 ya especificaría que problema ha habido (SW2=02h código no inicializado, SW2 = 04h condiciones de acceso no se cumplen, etc.).

2.2.3.4. Otros protocolos

Hay dos enmiendas al IS 7816-3: la primera es el el Protocol type T=1 asynchronous half duplex block transmission, y la segunda es una revisión del Protocol type selection. Además existen los protocolos T=2 y T=3, que están reservados para futuras comunicaciones full-duplex, el T=4 reservado para una mejora del asynchronous half duplex character transmission protocolol, del T=5 al T=13 reservados para futuros usos, el T=14 reservado para protocolos estandarizados por ISO y el T=15 reservado para fururas extensiones.


Saludos

Última edición por Celestial; 14/01/2005 a las 16:26.
Celestial está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir