No es necesario que la velocidad del reloj cambie tan alto (y la tarjeta no lo admitirá). Simplemente necesitas ajustar Fi y Di, por cierto.
Aquí hay un extracto de la especificación ISO7816-3:
Para alcanzar ~ 115200 baudios, normalmente, elegirás Fi = 512 (F = 9) y Di = 32 (D = 5). Esto, con el mismo reloj de 3.58MHz, dará 111875 baudios. Para exactamente 115200 baudios, debe ajustar el reloj a 3.6864MHz, pero ciertamente no necesita ser tan preciso. Tenga en cuenta que la velocidad de reloj máxima que puede soportar la tarjeta depende de F y también se indica en la tabla (5 MHz para F = 9).
Ahora, para ajustar Fi y Di, debe enviar una solicitud de PPS (Selección de parámetros de protocolo) a la tarjeta (consulte el capítulo 9 de la especificación). Por ejemplo, simplemente envía FF10957A
para negociar T = 0, F = 9, D = 5. Aquí está el significado de cada byte:
-
FF
(PPSS) identifica una solicitud de PPS
-
10
(PPS0) indica que PPS1 está presente y solicita T = 0
-
95
(PPS1) solicita F = 9 y D = 5
-
7A
es la suma de comprobación XOR
Si la tarjeta acepta la solicitud, la reconocerá al reenviar exactamente los mismos bytes y luego cambiará su velocidad en baudios.
Tenga en cuenta que los valores máximos F y D que la tarjeta puede admitir se indican en el ATR, (en el byte TA1) para que sepa qué puede negociar.