Ist es möglich, eine höhere Datenrate mit 9600 Bdrate-Takt in ISO7816 zu übertragen?

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 haben jetzt ein paar Fragen gestellt, und ich sehe ein paar, die anscheinend anständige Antworten haben. Haben Sie darüber nachgedacht, dass die formelle Annahme einer Antwort eine gute Möglichkeit ist, die Hilfe zurückzuzahlen, die Sie erhalten haben? Natürlich denken Sie vielleicht, dass keine der Antworten gut genug ist!
Auf jeden Fall erhalte ich großartige Antworten auf meine letzten Fragen, aber mir ist kein Prozess zum Akzeptieren von Antworten bekannt (außer dem Abstimmen einer Antwort). Gibt es eine Schaltfläche / Auswahl zum Akzeptieren einer Antwort? Vielen Dank für Ihre Nachricht gefunden, WBR.
Hm, würde das nicht genau in ISO/IEC 7816-3:2006(E) 8.3 behandelt?
@Marcus Müller: ISO/IEC 7816 bekommt man aber nicht umsonst. Eine kostenlose Alternative hierfür ist ETSI TS 102 221: Smart Cards; UICC-Terminalschnittstelle; Physische und logische Eigenschaften
@MHD: Oben auf der Seite befindet sich ein nützlicher Link namens Hilfe > Tour
@curd stimmt, dass ISO-Norm kostet. Ich weiß nicht, ob UICCs (umgangssprachlich: SIM-Karten für den Zuschauer) alle Arten von Smartcards abdecken, die von ISO7816 abgedeckt werden (oder eher die kontaktierten Teile davon, nicht die drahtlosen).
@Marcus Müller: Ihre Annahme ist richtig: Die ETSI-Spezifikationen ("U / SIM-Karte") decken nicht alle Arten / Funktionen von Smartcards ab, die in ISO / IEC 7816- * behandelt werden. ZB Protokoll T=1, das für U/SIMs nicht verwendet wird; nur T=0.

Antworten (1)

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:

Geben Sie hier die Bildbeschreibung ein

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 FF10957Azum Aushandeln einfach T=0, F=9, D=5. Hier ist die Bedeutung jedes Bytes:

  • FF(PPSS) identifiziert eine PPS-Anfrage
  • 10(PPS0) zeigt an, dass PPS1 vorhanden ist und fordert T=0 an
  • 95(PPS1) fordert F=9 und D=5 an
  • 7Aist die XOR-Prüfsumme

Wenn 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.

Vielen Dank für die hervorragende Antwort, aber wie wirkt sich eine nicht exakte Taktfrequenz nicht auf den erfolgreichen Übergang aus? Wie ich weiß, verwenden neue Smartcards diese Taktimpulse nur zum Synchronisieren. Dann denke ich, dass Unterschiede in der Taktfrequenz eine andere ETU verursachen, was selbst der Fall sein wird Fehler beim Empfang korrekter Daten verursachen. BIN ich wahr?
Die Kommunikation zwischen Host und Karte ist synchron, die Baudrate (und ETU) steht in direktem Zusammenhang mit der Taktfrequenz. Da beide Parteien dieselbe Uhr kennen (sie wird an die Karte gesendet, im Gegensatz zu einem herkömmlichen UART, bei dem keine Uhr gesendet wird), wie könnte es einen Unterschied in der Taktfrequenz geben? Ein solches Risiko besteht nicht.