Ich versuche, Informationen zwischen einem eingebetteten Prozessor und einem Smartcard-Gerät zu übertragen.
Der Standardübergang erfolgt in: 9600 Baudrate 3,58 MHz Takt Fi = 372 Di = 1
Nach dem ersten Befehl zwischen Smartcard und Prozessor muss ich die Baudrate erhöhen (z. B. 115200). Ich muss meine Taktfrequenz auf 42,96 MHz erhöhen, um mit 115200 bps zu senden, aber leider kann mein Prozessor diese Frequenz nicht erzeugen. Dann kann ich Ändern Sie den Fi- oder Di-Parameter auf andere höhere Werte, um die Baudrate zu erhöhen?
Sie müssen die Taktrate nicht so hoch ändern (und es würde sicherlich nicht von der Karte unterstützt). Sie müssen in der Tat nur Fi und Di anpassen.
Hier ist ein Auszug aus der ISO7816-3 Spezifikation:
Um ~115200 Baud zu erreichen, wählen Sie normalerweise Fi=512 (F=9) und Di=32 (D=5). Dies ergibt bei gleichem Takt von 3,58 MHz 111875 Baud. Für genau 115200 Baud müssen Sie die Uhr dann auf 3,6864 MHz einstellen, aber Sie müssen sicherlich nicht so genau sein. Beachten Sie, dass die maximale Taktrate, die von der Karte unterstützt werden kann, von F abhängt und auch in der Tabelle angegeben ist (5MHz für F=9).
Um nun Fi und Di einzustellen, müssen Sie eine PPS-Anfrage (Protocol Parameter Selection) an die Karte senden (siehe Kapitel 9 der Spezifikation). Zum Beispiel senden Sie FF10957A
zum Aushandeln einfach T=0, F=9, D=5. Hier ist die Bedeutung jedes Bytes:
FF
(PPSS) identifiziert eine PPS-Anfrage10
(PPS0) zeigt an, dass PPS1 vorhanden ist und fordert T=0 an95
(PPS1) fordert F=9 und D=5 an7A
ist die XOR-PrüfsummeWenn die Karte die Anfrage akzeptiert, wird sie sie bestätigen, indem sie genau die gleichen Bytes zurücksendet und dann ihre Baudrate ändert.
Beachten Sie, dass die maximalen F- und D-Werte, die die Karte unterstützen kann, im ATR (im TA1-Byte) angegeben sind, damit Sie wissen, was Sie aushandeln können.
Andi aka
Mahmud Hosseinipour
Markus Müller
Quark
Quark
Markus Müller
Quark