DE102006058511A1 - Method for receiving message by portable data carrier, involves transferring partial messages into temporary buffer of data carrier, which is available in starting buffer - Google Patents

Method for receiving message by portable data carrier, involves transferring partial messages into temporary buffer of data carrier, which is available in starting buffer Download PDF

Info

Publication number
DE102006058511A1
DE102006058511A1 DE102006058511A DE102006058511A DE102006058511A1 DE 102006058511 A1 DE102006058511 A1 DE 102006058511A1 DE 102006058511 A DE102006058511 A DE 102006058511A DE 102006058511 A DE102006058511 A DE 102006058511A DE 102006058511 A1 DE102006058511 A1 DE 102006058511A1
Authority
DE
Germany
Prior art keywords
buffer
messages
sub
disk
data carrier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102006058511A
Other languages
German (de)
Other versions
DE102006058511B4 (en
Inventor
Erich Englbrecht
Robert Hockauf
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Giesecke and Devrient Mobile Security GmbH
Original Assignee
Giesecke and Devrient GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Giesecke and Devrient GmbH filed Critical Giesecke and Devrient GmbH
Priority to DE102006058511.9A priority Critical patent/DE102006058511B4/en
Publication of DE102006058511A1 publication Critical patent/DE102006058511A1/en
Application granted granted Critical
Publication of DE102006058511B4 publication Critical patent/DE102006058511B4/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

The method involves transferring partial messages into a temporary buffer (16) of the data carrier, which is available in a starting buffer. The memory of partial messages in a non-volatile Electrically Erasable Programmable Read-Only Memory (5) of the data carrier is available in the temporary buffer, such that a complete message is formed from the partial messages. The transferring and memory are synchronized such that partial messages from the temporary buffer are stored in the non-volatile memory, where starting buffer does not exceed a given level.

Description

Die vorliegende Erfindung betrifft ein Verfahren zum Empfangen von Nachrichten durch einen portablen Datenträger sowie einen derartigen Datenträger, insbesondere eine Chipkarte, eine sichere Multimediakarte, ein USB-Speichermedium, eine Mobilfunkkarte oder dergleichen.The The present invention relates to a method for receiving messages through a portable disk and such a data carrier, in particular a chip card, a secure multimedia card, a USB storage medium, a mobile phone card or similar.

Im Bereich der Datenkommunikation zwischen portablen Datenträgern und entsprechenden Lese-/Schreibgeräten oder Terminals ist aufgrund neuer Anwendungen und Anforderungen der Bedarf entstanden, Nachrichten zu empfangen und zu senden, deren Länge die üblichen von portablen Datenträgern verarbeitbaren Nachrichtenlängen überschreitet.in the Area of data communication between portable data carriers and corresponding reading / writing devices or terminals is due to new applications and requirements the need arose to receive and send messages whose Length the usual from portable data carriers exceeds processable message lengths.

Es sind verschiedene Möglichkeiten bekannt, das Empfangen von überlangen Nachrichten durch einen portablen Datenträger zu ermöglichen. Einerseits ist es möglich, die verwendeten Empfangs-/Sendepuffer zu vergrößern, was jedoch zu erhöhten Kosten führt, da Empfangspuffer üblicherweise als teure RAM-Speicher realisiert werden. Ebenso ist es möglich, zu empfangende überlange Nachrichten bereits vor dem Senden durch den Sender so aufzuspalten, dass sie von dem Datenträger schrittweise empfangen und verarbeitet werden können („Off-Card Splitting"). Dies hat jedoch den Nachteil, dass einerseits vergleichsweise komplexe Übertragungsprotokolle eingesetzt werden müssen und andererseits jedes Terminal, das mit derartigen portablen Datenträgern kommunizieren soll, umgerüstet werden muss, um es an die eingeschränkten Möglichkeiten der Datenträger anzupassen.It are different possibilities known to receive overlong To allow messages through a portable volume. On the one hand, it is possible, to increase the reception / transmission buffers used, but at an increased cost leads, since receiving buffer usually be realized as expensive RAM memory. It is also possible to receiving overlong Splitting messages before they are sent by the sender that they are from the disk can be received and processed step by step ("off-card splitting") the disadvantage that on the one hand comparatively complex transmission protocols must be used and on the other hand each terminal communicating with such portable media should be converted must be limited to it options the disk adapt.

EP 0 811 204 B1 offenbart ein Verfahren, bei dem überlange Nachrichten in einem als EEPROM-Speicher ausgebildeten nicht-volatilen Speicher abge speichert werden. Es wird zwischen einem unmittelbaren und einem mittelbaren Speichern überlanger Nachrichten im EEPROM-Speicher unterschieden, wobei das mittelbare Speichern über den Umweg eines RAM-Speichers geschieht, um dort Nachrichten vor der endgültigen Speicherung vorverarbeiten zu können. Hierbei besteht jedoch das Problem, dass ein EEPROM-Speicher lediglich geringe Speicherzeiten aufweist und der Datenträger beim Datenempfang durch die Speichergeschwindigkeit seines EEPROM-Speichers beschränkt wird. EP 0 811 204 B1 discloses a method wherein oversized messages are stored in a non-volatile memory configured as an EEPROM. It is distinguished between an immediate and an indirect storage of excess messages in the EEPROM memory, the indirect storage is done via the detour of a RAM memory in order to preprocess messages there before the final storage can. Here, however, there is the problem that an EEPROM memory has only small storage times and the data carrier is limited in data reception by the memory speed of its EEPROM memory.

Allgemein besteht bei derartigen Lösungen häufig das zusätzliche Problem, dass beim sequentiellen Empfang von Teilnachrichten einer Nachricht ein Performanceverlust zu erwarten ist, da der Prozessor des Datenträgers den sequentiellen Dateneingang koordinieren muss und währenddessen keine anderen Aufgaben übernehmen kann. Deshalb ist es bei der digitalen Datenübertragung wünschenswert, die Aufnahme von Nachrichtenblöcken eines eingehenden Datenstroms von der Geschwindigkeit des Prozessors des empfangenden Datenträgers und von dessen Taktrate abzukoppeln, so dass der sendende Kommunikationspartner des Datenträgers die Transferrate zumindest in gewissem Umfang vorgeben kann. Hierzu werden häufig separate, asynchrone Eingangspuffer, wie z. B. UART-Bausteine („Universal Asynchronous Receiver/Transmitter") eingesetzt, die von dem Datenträger zu empfangende Teilnachrichten unmittelbar aufnehmen können. Die Funktion derartiger UART-Bausteine ist somit unabhängig von der Prozessorgeschwindigkeit und benötigt für die Kommunikation auf Byte-Ebene keine Softwareunterstützung. Den Empfang überlanger Nachrichten unterstützt ein asynchroner Eingangspuffer jedoch nicht, da er bei Chipkarten in der Regel lediglich Datenmengen der Größe eines Bytes fasst.Generally exists in such solutions often the additional Problem that with the sequential receipt of partial messages a Message a performance loss is expected as the processor of the disk must coordinate the sequential data input and meanwhile do not take on any other tasks can. Therefore, it is desirable in digital data transmission, the inclusion of message blocks an incoming stream of data from the speed of the processor of the receiving volume and decouple from its clock rate, so that the sending communication partner the disk the At least to a certain extent. For this become common separate, asynchronous input buffers, such as. B. UART devices ("Universal Asynchronous Receiver / Transmitter "), which can be received by the data carrier Can directly record part messages. The function of such UART blocks is thus independent from the processor speed and needed for byte-level communication no software support. The receipt of long messages supports an asynchronous input buffer, however, not because it is in smart cards usually summarizes only amounts of data the size of a byte.

Es ist deshalb die Aufgabe der vorliegenden Erfindung, ein effizientes Empfangen von überlangen Nachrichten durch einen Datenträger zu ermöglichen.It Therefore, the object of the present invention is an efficient Receive overlong messages through a disk to enable.

Diese Aufgabe wird erfindungsgemäß durch ein Verfahren und einen portablen Datenträger mit den Merkmalen der unabhängigen Ansprüchen gelöst. In davon abhängigen Ansprüchen sind vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung angegeben.These The object is achieved by a Method and a portable data carrier with the features of the independent claims solved. In it dependent claims are advantageous embodiments and developments of the invention specified.

Ein erfindungsgemäßer, mit einem Prozessor ausgestatteter portabler Datenträger umfasst einen nicht-volatilen Speicher und einen asynchronen Eingangspuffer, der kontinuierlich und sequentiell (z. B. bit- oder byteweise) Teilnachrichten einer zu empfangenden überlangen Nachricht unabhängig von dem Prozessor des Datenträgers empfängt. In dem asynchronen Eingangspuffer vorliegende Teilnachrichten werden zunächst in einen Zwischenpuffer des Datenträgers übertragen, der die überlange Nachricht unter Umständen auch nicht vollständig aufnehmen kann, und von dort in dem ausreichend großen nicht-volatilen Speicher des Datenträgers gespeichert. Beim Speichern wird die überlange Nachricht im nicht-volatilen Speicher aus ihren Teilnachrichten zusammengefügt.One according to the invention, with A portable medium equipped with a processor includes a non-volatile one Memory and an asynchronous input buffer that is continuous and sequentially (eg, bit or byte wise) submessages of a to be received overlong Message independent from the processor of the volume receives. In the asynchronous input buffer present sub-messages first transferred to an intermediate buffer of the volume, which is the overlong Message under circumstances not completely and from there in the sufficiently large non-volatile Memory of the data carrier saved. When saving, the overlong message is in non-volatile Memory merged from their sub-messages.

Hierbei werden die Schritte des Übertragens von Teilnachrichten von dem Eingangspuffer in den Zwischenpuffer und des Speicherns von im Zwischenpuffer vorliegenden Teilnachrichten in den nicht-volatilen Speicher derart abgestimmt und synchronisiert durchgeführt, dass in dem Zwischenpuffer vorliegende Teilnachrichten in dem nicht-volatilen Speicher nur gespeichert werden können, solange der Eingangspuffer einen vorgegebenen Füllstand nicht überschreitet. Wenn der vorgegebene Füllstand des sich kon tinuierlich füllenden Eingangspuffers erreicht ist, werden die darin vorliegenden Teilnachrichten prioritär in den Zwischenpuffer übertragen.In this case, the steps of transmitting partial messages from the input buffer into the intermediate buffer and storing partial messages in the intermediate buffer into the non-volatile memory are performed in a coordinated and synchronized manner so that partial messages present in the intermediate buffer can only be stored in the non-volatile memory as long as the input buffer does not exceed a predetermined level. When the predetermined level of the continuously filling input buffer is reached, the Teilnachrich present therein prioritized into the intermediate buffer.

Die Schritte des Übertragens und Speicherns werden ferner derart synchronisiert, dass Teilnachrichten aus dem Eingangspuffer in den Zwischenpuffer übertragen werden können, wenn der Eingangspuffer einen vorgegebenen Füllstand überschreitet, d. h., dass im Zwischenpuffer immer ausreichend freier Speicherplatz vorhanden ist, um im Eingangspuffer vorliegende Teilnachrichten ohne Pufferüberlauf oder Datenverlust in dem Zwischenpuffer zu übertragen.The Steps of transferring and storing are further synchronized so that partial messages can be transferred from the input buffer to the intermediate buffer when the input buffer exceeds a predetermined level, d. h. that in the Between buffer always enough free space available is to present in the input buffer part messages without buffer overflow or transfer data loss in the intermediate buffer.

Der Vorteil der vorliegenden Erfindung besteht darin, dass durch das oben beschriebene synchronisierte Füllen und Leeren des in Reihe geschalteten asynchronen Eingangspuffers, Zwischenpuffers und für überlange Nachrichten ausreichend großen nicht-volatilen Speichers weder eine Vergrößerung des an sich nicht ausreichend großen Eingangs- oder Zwischenpuffers noch ein Aufspalten überlanger Nachrichten durch den Sender erforderlich ist. Der Sender kann seine Nachricht vielmehr blockweise sequentiell und ohne vorherige Aufspaltung an den Datenträger senden, wo sie infolge der synchronisierten Weiterbehandlung von im Eingarigspuffer eintreffenden Teilnachrichten kontinuierlich bit- oder byteweise von dem Eingangspuffer ohne Datenverlust aufgenommen werden kann. Hierbei können die bewährten Kommunikationsprotokolle (z. B. T = 0 und T = 1 im Chipkartenbereich) unverändert eingesetzt werden. Darüber hinaus hat der Prozessor keine Totzeiten, da er weiterverarbeitende Prozesse ausführen kann, während sich der Eingangspuffer mit neuen Teilnachrichten füllt.Of the Advantage of the present invention is that by the above-described synchronized filling and emptying of the series switched asynchronous input buffers, intermediate buffers and for extra long News big enough non-volatile memory, neither an increase in itself sufficient huge Input or intermediate buffer still splitting up too long Messages required by the sender. The transmitter can be his Message rather block by block sequential and without prior splitting to the disk Send, where they as a result of the synchronized further treatment of in the input buffer incoming partial messages continuously recorded in bit or byte by byte from the input buffer without data loss can be. Here you can the proven ones Communication protocols (eg T = 0 and T = 1 in the chip card area) unchanged be used. About that In addition, the processor has no dead times as it is processing Execute processes can, while the input buffer fills with new partial messages.

Vorzugsweise ist der asynchrone Eingangspuffer ein UART-Baustein („Universal Asynchronous Receiver/Transmitter"), welcher nicht an die Ge schwindigkeit oder Taktung des Prozessors des Datenträgers gebunden ist, da der Nachrichtenempfang auf Hardware-Ebene realisiert wird. Ein derartiger UART-Baustein besitzt eine relativ geringe Datenkapazität von in der Regel lediglich einem Byte.Preferably the asynchronous input buffer is a UART block ("Universal Asynchronous Receiver / Transmitter "), which does not respond to the speed or clocking the processor of the disk is bound, as the message reception on Hardware level is realized. Such a UART module has a relatively small data capacity of usually only one byte.

Der Zwischenpuffer ist vorzugsweise ein in einem RAM-Speicher des Datenträgers eingerichteter Pufferbereich, dessen Größe die des Eingangspuffers übersteigt. Vorzugsweise wird der Zwischenpuffer als Ringspeicher realisiert, der durch koordinierte Schreib- und Leseprozesse im FIFO-Prinzip („first in first out") kontinuierlich mit Daten gefüllt und geleert werden kann.Of the The intermediate buffer is preferably one set up in a RAM memory of the data carrier Buffer area whose size is that of the Exceeds input buffer. Preferably, the intermediate buffer is realized as a ring memory, through coordinated writing and reading processes in the FIFO principle ("first in first out ") continuously filled with data and can be emptied.

Dadurch kann der schnelle und gegenüber dem Eingangspuffer größere RAM-Zwischenpuffer eine überbrückende Funktion zwischen dem kleinen, asynchronen Eingangspuffer und dem großen, verhältnismäßig langsamen nicht-volatilen Speicher übernehmen, wodurch eine koordinierte Aufnahme von Teilnachrichten ermöglicht wird. Eine direkte Hintereinanderschaltung des Eingangspuffers und des nicht-volatilen Speichers, ohne den überbrückenden Zwischenpuffer, könnte demgegenüber aufgrund der Diskrepanz zwischen der Transferrate eingehender Teilnachrichten im Eingangspuffer und der Speichergeschwindigkeit des nicht-volatilen Speichers zu Pufferüberläufen und Datenverlusten führen. Zudem kann so die Schreibgeschwindigkeit optimiert werden, da der nicht-volatile Speicher seitenweise beschrieben wird und die Größe des Eingangspuffer in der Regel kleiner ist als die Seitengröße des nicht-volatilen Speichers.Thereby can the fast and the opposite Input buffer larger RAM intermediate buffer a bridging function between the small, asynchronous input buffer and the large, relatively slow one adopt non-volatile memory, whereby a coordinated recording of sub-messages is made possible. A direct series connection of the input buffer and the non-volatile Memory, without the bridging buffer, could In contrast, due to the discrepancy between the transfer rate of incoming submessages in the input buffer and the memory speed of the non-volatile Memory to Buffer Overflows and Data loss lead. In addition, the writing speed can be optimized, as the non-volatile memory is described page by page and the size of the input buffer usually smaller than the page size of the non-volatile memory.

Ein erfindungsgemäßer portabler Datenträger umfasst ferner eine von dem Prozessor ausführbare Eingangssteuerung, die so eingerichtet ist, dass sie durch alternierendes Übertragen von in dem Eingangspuffer vorliegenden Teilnachrichten in den Zwischenpuffer und Speichern von in dem Zwischenpuffer vorliegenden Teilnachrichten in dem nicht-volatilen Speicher einen Nachrichtenempfang derart synchronisiert, dass der Zwischenpuffer nicht vollständig gefüllt ist, wenn der Eingangspuffer einen vorgegebenen Füllstand überschreitet. Darüber hinaus führt die Eingangssteuerung das Übertragen und Speichern derart alternierend durch, dass andererseits auch der Eingangspuffer nicht vollständig gefüllt ist, wenn noch nicht alle Teilnachrichten der zu empfangenden Nachricht eingetroffen sind. Diese beiden Synchronisationsbedingungen garantieren den reibungslosen Ablauf eines Nachrichtenempfangs von der Aufnahme von Teilnachrichten im Eingangspuffer bis zum Vorliegen der vollständig zusammengefügten Nachricht im nicht-volatilen Speicher.One portable according to the invention disk further comprises an input-side processor executable by the processor is set up so that they are transmitted by alternation of sub-messages present in the input buffer into the intermediate buffer and storing submessages present in the intermediate buffer in the non-volatile memory, a message receiving such synchronizes that the intermediate buffer is not completely filled, when the input buffer exceeds a predetermined level. Furthermore leads the input control the transferring and storing so alternately through, on the other hand, too the input buffer is not complete filled is, if not all partial messages of the message to be received have arrived. These two synchronization conditions guarantee the smooth running of a message reception from the recording from partial messages in the input buffer to the presence of the fully assembled message in non-volatile memory.

Die Eingangssteuerung realisiert die beiden Schritte des Kopierens und des Auslesens als separate, konkurrierende Prozesse mittels eines Multitasking/Multithreading-fähigen Betriebssystems des Datenträgers. Das Eintreffen von Teilnachrichten in dem Eingangspuffer und/oder das Überschreiten des vorgegebenen Füllstandes wird von einer Unterbrechungseinrichtung des Datenträgers registriert, die dann ein Unterbrechungssignal („Interrupt") auslöst. Das Unterbrechungssignal bewirkt, dass der Prozessor den momentan ausgeführten Prozess temporär unterbricht und den Nachrichtenempfang prioritär behandelt.The Input control realizes the two steps of copying and of reading out as separate, competing processes by means of a Multitasking / multithreaded Operating system of the disk. The arrival of partial messages in the input buffer and / or the crossing the predetermined level is registered by an interrupt device of the data carrier, which then triggers an interrupt signal ("interrupt") causes the processor to temporarily interrupt the currently executing process and the message reception priority.

Sobald die Unterbrechungseinrichtung ein Unterbrechungssignal auslöst, wird ein die Unterbrechung bearbeitender Unterbrechungsprozess von der Eingangssteuerung zum Übertragen von in dem Eingangspuffer vorliegenden Teilnachrichten in den Zwischenpuffer ausgeführt. Wenn der Unterbrechungsprozess ein vorgegebenes Datenvolumen und/oder sämtliche im Eingangspuffer vorliegende Teilnachrichten in den Zwischenpuffer übertragen hat, beendet er seine Arbeit, bis wieder neue Teilnachrichten in dem Eingangspuffer vorliegen und/oder ein bestimmter vorgegebener Füllstand des Eingangspuffers erreicht oder überschritten wird. Daraufhin wird von der Eingangssteuerung ein Speicherprozess aktiviert, der in dem Zwischenpuffer vorliegende Teilnachrichten in dem nicht-volatilen Speicher des Datenträgers speichert. Dadurch wird der Zwischenpuffer zumindest teilweise geleert, so dass der Unterbrechungsprozess ihn bei Bedarf wieder füllen kann.Once the interrupt device triggers an interrupt signal, an interrupt processing interrupt process is performed by the input controller to transmit sub messages present in the input buffer to the intermediate buffer. When the interruption process has transferred a given volume of data and / or all submessages present in the input buffer to the intermediate buffer, it terminates its work until new part again present messages in the input buffer and / or a certain predetermined level of the input buffer is reached or exceeded. Thereafter, the input controller activates a memory process which stores sub-messages present in the intermediate buffer in the nonvolatile memory of the data carrier. As a result, the intermediate buffer is at least partially emptied, so that the interruption process can refill it if necessary.

Die Teilnachrichten werden von dem Speicherprozess derart abspeichert und zusammenfügt, dass, nachdem sämtliche Teilnachrichten einer zu empfangenden überlangen Nachricht eingegangen sind, diese Nachricht vollständig im nicht-volatilen Speicher vorliegt. Dort wird die vollständige Nachricht einer Applikation bereitgestellt, für die die Nachricht bestimmt ist.The Partial messages are stored by the storage process in this way and put together that, after all Have received submessages of an overlong message to be received, this message completely in non-volatile memory. There will be the complete message an application for which the message is intended is.

Bevor die im nicht-volatilen Speicher zusammengefügte Nachricht einer Applikation bereitgestellt wird, kann sie verifiziert werden, z. B. durch den Speicherprozess. Diese Verifikation kann eine der normalen Verarbeitung der Nachricht vorgeschaltete Prüfung umfassen, beispielsweise die Überprüfung einer Prüfsumme oder das Durchführen einer kryptographischen oder sonstigen sicherheitstechnischen Operation. Die Nachricht kann von dem Speicherprozess vorzugsweise in einem im nicht-volatilen Speicher eingerichteten, ausreichend großen separaten Speicherbereich zusammengefügt werden, der nicht dem endgültigen Speicherort der empfangenen Nachricht entspricht. Dies ist insbesondere dann hilfreich, wenn es sich bei der empfangenen Nachricht um eine Aktualisierungsanweisung von im nicht-volatilen Speicher bereits vorhandenen Daten handelt, die bei einem direkten Überschreiben des endgültigen Speicherorts nicht mehr rekonstruiert werden könnten, wenn z. B. die Verifikation der Nachricht durch Überprüfen einer Prüfsumme fehlschlägt oder die Nachricht infolge eines Übertragungsfehlers unvollständig ist.Before the message of an application assembled in the non-volatile memory can be verified, z. B. by the Storage process. This verification can be one of the normal processing the test upstream of the message include, for example, the verification of a checksum or the performing a cryptographic or other safety-related operation. The message may preferably be from the storage process in one in the non-volatile memory, sufficiently large separate memory area together that will not be the final one Location of the received message. This is special then helpful if the received message is a Update instruction from in non-volatile storage already existing data, which is a direct overwriting of the final Storage locations could not be reconstructed if z. B. the verification the message fails by checking a checksum or the Message due to a transmission error incomplete is.

Vorzugsweise werden die in dem Zwischenpuffer vorliegenden Teilnachrichten in Übereinstimmung mit einer Speicherverwaltung des Datenträgers seitenweise in den nicht-volatilen Speicher geschrieben.Preferably the sub-messages present in the intermediate buffer are matched with a storage management of the volume page by page in the non-volatile Memory written.

Um die Ausführung des Unterbrechungs- und des Speicherprozesses durch die Eingangssteuerung wirkungsvoll synchronisieren zu können, umfasst der Datenträger ein Multitasking/Multithreading-fähiges Betriebssystem, welches Prozesse/Threads auf dem Prozessor nebenläufig ausführen kann, so dass die Eingangssteuerung eine nebenläufige Ausführung des Unterbrechungsprozesses und des Speicherprozesses einleiten kann. Die Ausführung eines Unterbrechungsprozesses kann dann unterbrochen werden, um die Ausführung eines unterbrochenen Speicherprozesses fortzusetzen, wenn der Unterbrechungsprozess den Eingangspuffer geleert hat. Umgekehrt wird der Speicherprozess unterbrochen, um den Unterbrechungsprozess fortzusetzen, wenn der Eingangspuffer den vorgegebenen Füllstand überschreitet.Around execution the interruption and storage processes by the input control To effectively synchronize, the volume includes a Multitasking / multithreaded Operating system, which can run processes / threads concurrently on the processor, so that the input control is a concurrent execution of the interruption process and the storage process. The execution of a Interruption process can then be interrupted to stop the execution of an interrupted Continue storage process when the interruption process Has emptied input buffer. Conversely, the storage process is interrupted, to continue the interrupt process when the input buffer exceeds the predetermined level.

Zusätzlich zu dem Unterbrechungsprozess und dem Speicherprozess kann die Steuereinrichtung die Ausführung eines Protokollprozesses einleiten, welcher eine in dem Zwischenpuffer vorliegende Teilnachricht interpretiert, indem eine z. B. für die Ausführung des Speicherprozesses benötigte Information aus den Teilnachrichten des Zwischenspeichers ermittelt wird. Bei einer solchen Information kann es sich insbesondere um eine Längeninformation über die Länge der Nachricht und/oder einer Strukturinformation über die Struktur der Nachricht handeln.In addition to the interrupt process and the storage process, the controller execution of a protocol process, which one in the intermediate buffer present sub-message interpreted by a z. B. for the execution of Storage process needed Information determined from the partial messages of the buffer becomes. Such information may be in particular a length information about the Length of Message and / or structure information about the structure of the message act.

Der Protokollprozess kann durch Auswertung bestimmter Bytes einer Teilnachricht feststellen, ob die Teilnachricht zu einer überlangen Nachricht gehört, so dass der Speicherprozess zur entsprechenden Behandlung der Teilnachrichten hierüber informiert werden kann. Diese Behandlung kann beispielsweise darin bestehen, die Teilnachricht in dem separaten Speicherbereich des nicht-volatilen Speichers abzulegen oder sie an bereits empfangene Teilnachrichten anzufügen. Ebenso kann die Interpretation in einer reinen Gültigkeitsprüfung der empfangenen Teilnachrichten bestehen, um Datenübertragungsfehler frühzeitig zu erkennen.Of the Protocol process can by evaluating certain bytes of a partial message determine if the partial message belongs to an overlong message, so that the storage process for handling the partial messages accordingly here over can be informed. For example, this treatment can be exist in the separate memory area of the partial message non-volatile memory or transfer it to already received partial messages to add. Likewise, the interpretation in a pure validation of the received submessages insist on data transmission errors early to recognize.

Nach der Interpretation einer im Zwischenpuffer vorliegenden Teilnachricht wird der Protokollprozess von der Eingangssteuerung unterbrochen oder beendet und der Speicherprozess fortgesetzt oder begonnen, wobei der Speicherprozess die von dem Protokollprozess ermittelte Information nutzt.To the interpretation of a sub-message present in the intermediate buffer the protocol process is interrupted by the input control or stopped and the storage process continued or started, taking the storage process the information determined by the protocol process uses.

Bei einem Multitasking/Multithreading-fähigen Betriebssystem wird die Ausführung des Unterbrechungsprozesses einerseits und des Protokollprozesses und/oder des Speicherprozesses andererseits derart synchronisiert, dass die Ausführung des Protokollprozesses und/oder des Speicherprozesses eingeleitet oder fortgesetzt wird und die Ausführung des Unterbrechungsprozesses beendet oder unterbrochen wird, wenn der Zwischenpuffer infolge der Teilnachrichtenübertragung des Unterbrechungsprozesses einen vorgegebenen Maximalfüllstand überschreitet. Vorzugsweise wird der Speicherprozess gestartet, wenn sich der Eingangspuffer füllt.at a multitasking / multithreaded operating system will use the execution the interruption process on the one hand and the protocol process on the other and / or the storage process otherwise synchronized, that the execution the logging process and / or the storage process or continues and the execution of the interrupt process terminated or interrupted when the intermediate buffer due the sub-message transmission the interruption process exceeds a predetermined maximum level. Preferably, the storage process is started when the input buffer crowded.

Dementsprechend unterbricht oder beendet die Eingangssteuerung die Ausführung des Interpretationsprozesses und/oder des Speicherprozesses und setzt die Ausführung des Unterbrechungsprozesses fort oder beginnt sie, wenn der Eingangspuffer infolge des kontinuierlichen Füllens mit weiteren Teilnachrichten einen vorgegebenen Füllstand überschreitet und/oder wenn der Zwischenpuffer infolge der Arbeit des Speicherprozesses einen vorgegebenen Minimalfüllstand unterschreitet.Accordingly, the input controller suspends or terminates the execution of the interpretation process and / or the storage process, and suspends execution of the interrupt pro cesses continues or starts when the input buffer exceeds a predetermined level due to the continuous filling with further sub-messages and / or if the intermediate buffer falls below a predetermined minimum level as a result of the operation of the storage process.

Zur reibungslosen Abwicklung eines Empfangs einer überlangen Nachricht ist es demzufolge notwendig, dass kontinuierlich überprüft wird, ob einerseits in dem Eingangspuffer Teilnachrichten vorliegen und/oder ein vorgegebener Füllstand überschritten wird und ob andererseits der Zwischenpuffer ausreichend Speicherplatz zur Aufnahme von Teilnachrichten aus dem Eingangspuffer hat oder Speicherplatz geschaffen werden muss.to smooth processing of receiving an overlong message is it Consequently, it is necessary to continuously check whether, on the one hand, in the Input buffer sub-messages are present and / or a predetermined Level exceeded and on the other hand, if the intermediate buffer has enough memory space to receive partial messages from the input buffer or memory space must be created.

Das Überschreiten eines vorgegebenen Füllstands des Eingangspuffers wird unterbrechungsgesteuert (mittels „Interrupts") signalisiert, so dass weder die Eingangssteuerung noch das Betriebssystem des Datenträgers ein Vorliegen von Teilnachrichten in dem Eingangspuffer überprüfen müssen. Der Zwischenpuffer wird demgegenüber vorzugsweise von einer Ereignissteuerung ereignisgesteuert überwacht, wobei ein Unterschreiten eines Minimalfüllstands oder ein Überschreiten eines Maximalfüllstands mittels eines Füllstandssignals (eines „Events") der Eingangssteuerung mitgeteilt wird.The passing a predetermined level of the input buffer is signaled interrupt (using "interrupts"), so that neither the input control nor the operating system of the data carrier Presence of sub-messages in the input buffer. Of the Intermediate buffer is in contrast preferably monitored by an event control event-controlled, wherein a falling below a minimum level or exceeding a maximum level by means of a level signal (an "event") of the input control is communicated.

Die Behandlung einer zu empfangenden Nachricht wird bei Eintreffen der ersten Teilnachrichten prinzipiell durch eine Unterbrechung und Aktivierung des entsprechenden Unterbrechungsprozesses durch die Eingangssteuerung eingeleitet. Die im weiteren von der Eingangssteuerung aktivierten und/oder fortgesetzten Prozesse werden aufgrund ihrer unterschiedlichen Wichtigkeit mit verschiedenen Ausführungsprioritäten belegt. Hierbei ist es sinnvoll, den Unterbrechungsprozess mit der im Vergleich zu den anderen Prozessen höchsten Ausführungspriorität auszustatten, da dieser bei Eintref fen von Teilnachrichten in dem kleinen Eingangspuffer sofort reagieren muss.The Treatment of a message to be received is on arrival of the first part messages in principle by an interruption and Activation of the corresponding interruption process by the Input control initiated. The further from the input control activated and / or continued processes are due to their different importance with different execution priorities. It makes sense to compare the interruption process with that highest to the other processes Equip execution priority, because this when Einfref fen of sub-messages in the small input buffer immediately must react.

Der nach Beendigung/Unterbrechung des Unterbrechungsprozesses zu aktivierende Protokollprozess wird mit einer mittleren Ausführungspriorität und der nach Beendigung/Unterbrechung des Protokollprozesses zu aktivierende Speicherprozess mit einer niedrigen Ausführungspriorität gestartet/fortgesetzt. Insgesamt sorgt jedoch des Betriebssystem des Datenträgers dafür, dass alle anderen von dem Prozessor auszuführenden Prozesse bei Bearbeitung eines Eingangs von Teilnachrichten im Verhältnis zu den drei oben genannten Prozessen jeweils niedrigere Ausführungsprioritäten haben.Of the to be activated after termination / interruption of the interruption process Protocol process is run with a medium execution priority and the to be activated after termination / interruption of the protocol process Storage process started with a low execution priority / continued. Overall, however, the operating system of the disk ensures that all other processes to be executed by the processor during processing an input of sub messages in relation to the three above Processes each have lower execution priorities.

Die Eingangssteuerung kann sowohl als Teil des Betriebssystems oder des privilegierten Betriebssystemkerns als auch unabhängig vom Betriebssystem des Datenträgers realisiert sein. Neben der Verwendung von Prozessen, die von der Eingangssteuerung aktiviert werden, ist es auch möglich, die Eingangssteuerung ihrerseits als Ein-/Ausgabe-Prozess vorzusehen, in dessen Rahmen jeweils ein Unterbrechungs-Thread, ein Protokoll-Thread und ein Speicher-Thread zur Durchführung der oben geschilderten Aufgaben synchronisiert aktiviert werden. Der Ein-/Ausgabeprozess kann dann als von dem Betriebssystemkern zu aktivierender Prozess ausgestaltet werden.The Input control can be either as part of the operating system or of the privileged operating system kernel as well as independent of Operating system of the data carrier be realized. In addition to the use of processes by the It is also possible to activate the input control Provide input control in turn as an input / output process, in each case an interrupt thread, a protocol thread and a memory thread for performing the above Tasks synchronized to be activated. The input / output process can then act as a process to be activated by the kernel be designed.

Als erfindungsgemäßer Datenträger ist insbesondere eine Chipkarte, eine sichere Multimediakarte, ein USB-Speichermedium, eine Mobilfunkkarte oder dergleichen vorgesehen.When Inventive disk is in particular a chip card, a secure multimedia card, a USB storage medium, a mobile card or the like provided.

Obwohl die obige Beschreibung nur den Datenempfang erläutert, ist das erfinderische Prinzip uneingeschränkt auch auf das Senden von Daten an wendbar, indem der Sekundärpuffer als virtueller Ausgangspuffer eingerichtet wird.Even though the above description explains only the data reception is the inventive Principle unrestricted Also applicable to sending data to the secondary buffer is set up as a virtual output buffer.

Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der folgenden Beschreibung verschiedener erfindungsgemäßer Ausführungsbeispiele und Ausführungsalternativen im Zusammenhang mit den begleitenden Zeichnungen. Darin zeigen:Further Features and advantages of the invention will become apparent from the following Description of various inventive embodiments and alternative embodiments in conjunction with the accompanying drawings. Show:

1 eine zum effizienten Empfang überlanger Nachrichten mit einem RAM-Ringpuffer ausgestattete Chipkarte; 1 a smart card equipped to efficiently receive long messages with a RAM ring buffer;

2 ein Verfahren zum Nachrichtenempfang durch die in 1 dargestellte Chipkarte; 2 a method for receiving messages by the in 1 illustrated smart card;

3 eine zum effizienten Nachrichtenempfang mit einem Sekundärpuffer als virtuellem Eingangspuffer ausgestattete Chipkarte; und 3 a smart card equipped for efficient message reception with a secondary buffer as a virtual input buffer; and

4 ein Verfahren zum Nachrichtenempfang durch die in 3 gezeigte Chipkarte. 4 a method for receiving messages by the in 3 shown chip card.

Die folgende Figurenbeschreibung erläutert ein Verfahren und eine Vorrichtung zum Empfangen von überlangen Nachrichten durch einen portablen Datenträger, welcher in den Figuren durch eine Chipkarte mit Prozessor illustriert wird. Das Verfahren besteht aus zwei, einzeln oder kombiniert einsetzbaren Teilverfahren, die jeweils in den 2 und 4 dargestellt sind, während die 1 und 3 die, das jeweilige Teilverfahren realisierende Chipkarte zeigt. Die Kombinationsmöglichkeit der Verfahren der 2 und 4 sowie der Vorrichtungen der 1 und 3 wird auch dadurch zum Ausdruck gebracht, dass übereinstimmende Verfahrensschritte und/oder Komponenten in den Figuren mit gleichen Bezugszeichen versehen sind.The following description of the figures explains a method and an apparatus for receiving overlong messages by a portable data carrier, which is illustrated in the figures by a chip card with processor. The method consists of two, individually or in combination deployable sub-procedures, each in the 2 and 4 are shown while the 1 and 3 the, the respective sub-procedure realizing chip card shows. The possibility of combining the methods of 2 and 4 and the devices of 1 and 3 is also expressed by the fact that matching process steps and / or components are provided in the figures with the same reference numerals.

Die in den 1 und 3 gezeigten Chipkarten sind ohne Einschränkung sowohl zum Empfangen als auch zum Senden von Nachrichten geeignet, wobei die Empfangsverfahren der 2 und 4 zum Nachrichtensenden prinzipiell in umgekehrter Reihenfolge durch die gleichen Komponenten realisiert werden. Insofern repräsentieren die Figuren und die nachfolgende Beschreibung keine Einschränkung der Erfindung auf den Nachrichtenempfang, sondern beschreiben diesen lediglich exemplarisch und sind deshalb auch auf das Nachrichtensenden anzuwenden.The in the 1 and 3 The chip cards shown are suitable without restriction both for receiving and for sending messages, the receiving method of the 2 and 4 to the news broadcast principle in reverse order by the same components can be realized. In this respect, the figures and the following description do not represent a restriction of the invention to the message reception, but describe this only as an example and are therefore also applicable to the news broadcast.

Im Chipkartenbereich haben sich zur Datenübertragung und Kommunikation mit externen Lesegeräten, Terminals oder sonstigen Kommunikationspartnern die Übertragungsprotokolle T = 0 und T = 1 etabliert, welche standardisierte blockorientierte Halbduplex-Protokolle für Mobilfunkkarten und Chipkarten repräsentieren. Hierbei wird das byteorientierte T = 0 Protokoll vorwiegend für GSM-Mobilfunkchipkarten verwendet, während das T = 1 Protokoll für sonstige Chipkarten und Chipkarten-ähnliche portable Datenträger eingesetzt wird.in the Chip card area have for data transmission and communication with external readers, Terminals or other communication partners the transmission protocols T = 0 and T = 1 established which standardized block-oriented half-duplex protocols for mobile phone cards and chip cards represent. In this case, the byte-oriented T = 0 protocol becomes predominantly for GSM mobile smart card used while the T = 1 protocol for other chip cards and chip card-like portable data carriers are used becomes.

Bei einem Chipkarten-Betriebssystem, welches ein Multitasking (oder Multithreading) unterstützt, werden mehrere geschützte Pozesse („Tasks") oder Prozessfäden („Threads") durch häufigen Prozess- oder Thread-Wechsel scheinbar gleichzeitig, nebenläufig ausgeführt. Ein Prozess umfasst in der Regel einen Adressraum sowie zumindest einen Prozessfaden. In der nachfolgenden Beschreibung wird für die vom Prozessor der Chipkarte nebenläufig abzuarbeitenden Aufgaben im Rahmen der Behandlung eines Nachrichteneingangs vorwiegend von Prozessen gesprochen, die von dem Betriebs systemkern aktiviert werden. Die gleichen Aufgaben können auch durch Threads erledigt werden, sofern es sich bei dem Betriebssystem um ein Multithreading-fähiges Betriebssystem handelt. Der Verwaltungsaufwand für Threads ist üblicherweise geringer als der für Prozesse, da bei einem Thread-Wechsel kein vollständiger Kontextwechsel (Zustände, Registerinhalte, etc.) vorgenommen werden muss, weil nebenläufige Threads Teilaufgaben eines Prozesses wahrnehmen und einen gemeinsamen Teil des Prozesskontexts verwenden. Eine Kommunikation zwischen Tasks ist mit Hilfe einer Interprozesskommunikation (IPC) möglich. Threads, die demselben Prozess zugeordnet sind, können sich mit Hilfe der IPC synchronisieren. Sämtliche in dieser Beschreibung erläuterten Funktionalitäten und Aufgaben sind gleichermaßen als Prozesse oder als Threads realisierbar, wobei, abgesehen von den geschilderten verwaltungstechnischen Unterschieden, auch die Vorteile und Nachteile von Prozessen und Threads im Hinblick auf die vorliegende Erfindung vergleichbar sind.at a smart card operating system, which is a multitasking (or Multithreading), become several protected Pozesse ("tasks") or process threads ("threads") through frequent process or thread change seemingly simultaneously, running concurrently. One Process usually includes an address space and at least one Process thread. In the following description is for the from the Processor of the chip card concurrent to be processed in the context of the treatment of an incoming message mainly spoken by processes that kernel of the operating to be activated. The same tasks can also be done by threads if the operating system is a multithreaded operating system is. The overhead of threads is common less than that for Processes, as there is no change in a thread complete Context change (states, Register contents, etc.) must be made, because concurrent threads Partial tasks of a process and a common part of the process context. A communication between tasks is possible using interprocess communication (IPC). threads which are assigned to the same process, can synchronize using the IPC. All explained in this description functionalities and tasks are alike as processes or as threads realizable, whereby, apart from the described administrative differences, also the Advantages and disadvantages of processes and threads with regard to the present invention are comparable.

1 zeigt eine Chipkarte 1, die eingerichtet ist, überlange Nachrichten, deren Datenvolumen über die Aufnahmekapazität von üblichen zur Datenkommunikation vorgesehenen Empfangs-/Sendespeichern oder -puffern hinausgeht, effizient zu empfangen und zu senden. Die Chipkarte 1 umfasst als gängige Hardwarekomponenten einen Prozessor 2 (CPU), eine Kommunikationsschnittstelle 3, einen UART-Eingangspuffer 18 sowie eine Speicheranordnung bestehend aus einem permanenten ROM-Speicher 4, einem nicht-volatilen EEPROM-Speicher 5 und einem flüchtigen RAM-Arbeitsspeicher 6. Die Chipkarte 1 umfasst insgesamt drei in Reihe geschaltete Puffer, um eingehende überlange Nachrichten aufzunehmen und zu behandeln: Den UART-Baustein 18, der als separater Hardwarechip in die Chipkarte 1 integriert ist, einen Zwischenpuffer 16, der bei der in 1 illustrierten Ausführungsform als Ringpuffer im RAM-Speicher 6 angelegt ist, und schließlich einen separaten Speicherbereich 14 (NVM) im nicht-volatilen EEPROM-Speicher 5. Der UART-Baustein 18 kann ein geeignetes Protokoll, beispielsweise USB oder MMC, unterstützen. 1 shows a chip card 1 , which is adapted to efficiently receive and transmit messages that are too long over the capacity of conventional reception / transmission memories or buffers intended for data communication. The chip card 1 includes as common hardware components a processor 2 (CPU), a communication interface 3 , a UART input buffer 18 and a memory arrangement consisting of a permanent ROM memory 4 , a non-volatile EEPROM memory 5 and a volatile RAM memory 6 , The chip card 1 comprises a total of three buffers in series to receive and handle incoming long messages: The UART device 18 , which is a separate hardware chip in the smart card 1 integrated, an intermediate buffer 16 who is at the in 1 illustrated embodiment as a ring buffer in the RAM memory 6 is created, and finally a separate memory area 14 (NVM) in nonvolatile EEPROM memory 5 , The UART device 18 can support a suitable protocol, such as USB or MMC.

Desweiteren umfasst die Chipkarte 1 ein Betriebssystem 7, welches üblicherweise im permanenten ROM-Speicher 4 abgelegt ist. Das Betriebssystem 7 umfasst den Betriebssystemkern 8 (KERNEL), der neben anderen grundlegenden Aufgaben eines Betriebssystems auch eine Unterbrechungssteuerung 9 als „Interrupt-Handler" umfasst. Ebenso ist eine Eingangssteuerung 10 (I/O-CNTL), welche durch synchronisierte Aktivierung verschiedener Prozesse eingehende Teilnachrichten einer Nachricht verarbeitet, und eine Ereignissteuerung 11 (EVENT), die bestimmte Ereignisse („Events") durch Aufruf zugehöriger Ereignisbehandlungsroutinen („Event-Handler") behandelt, als Teil des Betriebssystems 7 realisiert. Während die Unterbrechungsbehandlung 9 üblicherweise ein Teil des Betriebssystemkerns 8 ist, können die Ereignissteuerung 11 und die Eingangssteuerung 10 selbstverständlich auch als Teile des Betriebssystemkerns 8 realisiert werden, oder als im EEPROM-Speicher 5 abgelegte erweiterte Systemsoftware oder als Applikationen.Furthermore, the chip card includes 1 an operating system 7 which is usually in permanent ROM memory 4 is stored. The operating system 7 includes the kernel 8th (KERNEL), which in addition to other basic tasks of an operating system also has an interrupt control 9 as an "interrupt handler." Likewise, an input control 10 (I / O-CNTL), which processes incoming partial messages of a message by synchronized activation of different processes, and event control 11 (EVENT), which treats specific events ("events") by calling associated event handlers ("event handlers") as part of the operating system 7 realized. While the interruption treatment 9 usually a part of the kernel 8th is, can the event control 11 and the input control 10 of course also as parts of the kernel 8th be realized, or as in the EEPROM memory 5 Stored advanced system software or as applications.

Das Ausführen von Applikationen 13 (APP), Routinen des Betriebssystemkerns 8 oder Prozessen der Eingangssteuerung 10 führt zu separaten, von dem Prozessor 2 ausgeführten Prozessen oder Threads 19, 20, 21, 22, 24. Hierbei werden Routinen und Prozesse des Betriebssystemkerns 8 als Prozesse 24 im privilegierten Systemmodus 26 ausgeführt, während die von der Eingangssteuerung 10 initiierten Unterbrechungsprozesse 20 (IR-PROC), Protokollprozesse 21 (PRTCL-PROC) und Speicherprozesse 22 (NVM-PROC) sowie Anwendungsprozesse 19 (APP-PROC) im eingeschränkten, abgesicherten Benutzermodus 27 ausgeführt werden.Running applications 13 (APP), routines of the kernel 8th or processes of input control 10 leads to separate, from the processor 2 running processes or threads 19 . 20 . 21 . 22 . 24 , Here are routines and processes of the operating system kernel 8th as processes 24 in privileged system mode 26 while running from the input control 10 initiated interruption processes 20 (IR-PROC), protocol processes 21 (PRTCL-PROC) and storage processes 22 (NVM-PROC) as well as application processes 19 (APP-PROC) in restricted, safe user mode 27 be executed.

In den 1 und 2 wird der Empfang einer überlangen Nachricht illustriert, die aus Teilnachrichten B1–B8 aufgebaut ist. In diesem Zusammenhang bedeutet „Überlänge", dass die Chipkarte 1 die überlange Nachricht in keinem üblicherweise hierfür verwendeten (RAM-) Puffer vollständig aufnehmen kann. So sind auch bei der in 1 illustrierten Chipkarte 1 der UART-Puffer 18 und der Zwischenpuffer 16 jeweils nicht groß genug, um überlange Nachrichten aufzunehmen, die mehr als 255 Byte umfassen.In the 1 and 2 the reception becomes ei an overlong message constructed of sub-messages B1-B8. In this context, "excess length" means that the smart card 1 can not fully accommodate the overlong message in any (RAM) buffer commonly used for this purpose. So are also at the in 1 illustrated chip card 1 the UART buffer 18 and the intermediate buffer 16 each not large enough to hold overlong messages that span more than 255 bytes.

Die gesamte Nachricht B1–B8 wird von einem Sender kontinuierlich, bitweise sequentiell über die Kommunikationsschnittstelle 3 der Chipkarte 1 in den UART-Eingangspuffer 18 eingespeist bzw. von diesem aufgenommen. In 1 ist ein Szenario dargestellt, bei dem der Empfang der überlangen Nachricht B1–B8 bereits so weit fortgeschritten ist, dass die Teilnachrichten B1, B2 bereits im nicht-volatilen Speicherbereich 14 zusammengefügt sind, während die Teilnachrichten B3, B4 im RAM-Ringpuffer 16 liegen, die Teilnachricht B5 im UART-Eingangspuffer 18 liegt und die abschließenden Teilnachrichten B6, B7, B8 noch nicht bei der Chipkarte 1 eingetroffen sind.The entire message B1-B8 is transmitted continuously by a transmitter, bit by bit sequentially via the communication interface 3 the chip card 1 in the UART input buffer 18 fed or received by this. In 1 a scenario is shown in which the reception of the overlong message B1-B8 has already progressed so far that the sub-messages B1, B2 are already in the non-volatile memory area 14 while sub messages B3, B4 in the RAM ring buffer 16 sub message B5 in the UART input buffer 18 is and the final part messages B6, B7, B8 not yet in the chip card 1 have arrived.

Im Zusammenhang mit den 1 und 2 ist der Begriff Teilnachricht nicht als standardisierter Nachrichtenblock im Sinne eines Bytes zu verstehen, sondern kann prinzipiell eine variable Anzahl von Bits umfassen, die nicht notwendigerweise an die Größe des Eingangspuffers 18 oder eine Speicherverwaltung des Betriebssystems 7 angepasst ist.In connection with the 1 and 2 The term sub message is not to be understood as a standardized message block in the sense of a byte, but may in principle comprise a variable number of bits, not necessarily the size of the input buffer 18 or memory management of the operating system 7 is adjusted.

2 illustriert ein Verfahren zum Empfang einer überlangen Nachricht durch die in 1 dargestellte Chipkarte 1. Im Zentrum des Diagramms steht der Betriebssystemkern 24 (KERNEL), der auch die Eingangssteuerung 10 und/oder die Ereignissteuerung 11 umfassen kann. Der Betriebssystem kern 24 bzw. die Empfangssteuerung 10 aktiviert zur Behandlung einer eingehenden Nachricht synchronisiert den Unterbrechungsprozess 20 (INTERRUPT PROC) mit hoher Priorität (PRIORITY = HIGH), den Protokollprozess 21 (PROTOCOL PROC) mit mittlerer Priorität (PRIORITY = MEDIUM) und den Speicherprozess 22 (NVM PROC) mit niedriger Priorität (PRIORITY = LOW). Durch die synchronisierte Aktivierung und Deaktivierung dieser Prozesse 20, 21, 22 werden empfangene Teilnachrichten B1–B8 einer überlangen Nachricht von dem UART-Eingangspuffer 18 über den RAM-Ringpuffer 16 schließlich in dem nicht-volatilen Speicherbereich 14 zu der vollständigen Nachricht zusammengefügt und einem Applikationsprozess 19 (APP PROC) zur Verfügung gestellt. Der Ablauf dieses Verfahrens ist wie folgt, wobei eingeklammerte Bezugszeichen Datenströme charakterisieren:

  • – Zunächst nimmt der UART-Eingangspuffer 18 einige Bits einer eingehenden Nachricht als Teilnachrichten auf (30). Die eingehende Teilnachricht ist insbesondere eine Kommando-APDU („Application Protocol Data Unit") als grundlegende Kommunikationseinheit zur Datenübertragung von einem Terminal an eine Chipkarte.
  • – Bei Vorliegen einer Teilnachricht in dem Eingangspuffer 18 und/oder bei Überschreiten eines vorgegebenen Füllstands des Eingangspuffers 18 wird eine Unterbrechung (Interrupt) unabhängig von dem Betriebssystemkern 24 ausgelöst, wobei eine Unterbrechungstabelle die bei dem vorliegenden Unterbrechungstyp „DATA AVAILABLE" (31) auszuführende Unterbrechungsbehandlungsroutine (ISR) bestimmt.
  • – Aufgrund der ausgelösten Unterbrechung (31) unterbricht der Betriebssystemkern 24 die Ausführung des momentan von dem Prozessor 2 aus geführten Anwendungsprozesses, um den Nachrichteneingang prioritär zu bearbeiten. Durch die Unterbrechung DATA AVAILABLE wird der Unterbrechungsprozess 20 von dem Betriebssystemkern 24 mit höchster Ausführungspriorität aktiviert (32), so dass Teilnachrichten aus dem Eingangspuffer 18 in den Zwischenpuffer 16 übertragen werden, sobald der Eingangspuffer 16 einen vorgegebenen Füllstand überschreitet.
  • – Der Unterbrechungsprozess 20 liest eine vorgegebene Anzahl oder alle Bits aus dem UART-Eingangspuffer 18 aus (33) und schreibt sie in den RAM-Ringpuffer 16 (34). Durch die Synchronisation der Prozesse 20, 21 und 22 wird dafür gesorgt, dass der Ringpuffer 16 niemals gänzlich gefüllt ist, wenn im UART-Eingangspuffer 18 auszulesende Daten vorliegen, da andernfalls ein Datenverlust auftreten kann.
  • – Der Unterbrechungsprozess 20 wird nach Erledigung seiner Aufgabe wieder inaktiv und wartet auf die nächste Aktivierung durch eine Unterbrechung aufgrund von im Eingangspuffer 18 vorliegenden weiteren Teilnachrichten. Ebenso gut kann der Unterbrechungsprozess 20 auch wieder aktiviert werden, wenn der Zwischenpuffer 16 vollständig geleert ist, selbst wenn der UART-Eingangspuffer 18 noch nicht den zum Auslösen einer Unterbrechung erforderlichen Füllstand erreicht hat. Die Signalisierung, dass der Ringpuffer 16 vollständig geleert ist, kann durch einen Event ausgelöst werden oder dem Unterbrechungsprozess 20 durch Interprozesskommunikation (IPC) von dem Speicherprozess 22, der den Ringpuffer 16 ausliest, mitgeteilt werden.
  • – Sobald der hochprioritäre Unterbrechungsprozess 16 inaktiv wird, wird der Protokollprozess 21 mit mittlerer Priorität von dem Betriebssystemkern 24 bzw. der Eingangssteuerung 10 aktiviert (35).
  • – Der Protokollprozess 21, der unter Umständen bereits unmittelbar nach kontaktieren der Chipkarte mit dem Sendeterminal im Rahmen einer Initialisierungsphase der Chipkarte aktiviert wurde (der Protokollprozess sendet bei der Initialisierung eine ATR-Nachricht („Answer to Reset") an das Terminal mit diversen Chipkarten- und Übertragungsparametern, z. B. auch der Größe des Ringpuffers 16, um eintreffende übergroße Nachrichten erkennen zu können), wird nun durch den Betriebssystemkern 24 aktiviert oder fortgesetzt, falls er temporär inaktiv ist. Optional ist es auch möglich, dass der Protokollprozess 21 prüft, ob Teilnachrichten für ihn im Zwischenpuffer 16 liegen. Ebenso kann der Protokollprozess 21 durch ein Event „Neue Daten im Zwischenpuffer" von dem Betriebssystemkern 24 aktiviert werden.
  • – Der Protokollprozess 21 interpretiert die im Zwischenpuffer 16 liegenden Bytes der Kommando-APDU, um Informationen über die Gesamtlänge der zu empfangenden Nachricht oder Strukturinformationen über die Nachricht zu erhalten, welche zu ihrer weiteren Bearbeitung benötigt werden. Hierbei werden bestimmte Bytes der eingehenden Kommando-APDU ausgewertet, z. B. das Class-Byte CLA, welches gemäß ISO/IEC 7816-4 im Bit 5 anzeigt, ob die aktuell eintreffende Kommando-APDU das letzte/einzige Kommando (CLA Bit 5 = 0) einer Kette von Kommandos ist, oder ob die aktuelle Kommando-APDU nicht das letzte Kommando der Kette ist (CLA Bit 5 = 1) und noch weitere Kommandos folgen. Derartige miteinander verknüpfte Ketten von Kommandos („Command Chaining") sind für einige Kommandotypen, z. B. PUT DATA, die mehr als 255 Bytes an zur Chipkarte zu übertragende Daten umfassen, geeignet. Falls der Protokollprozess 21 daraus schließen kann, dass mehr Teilnachrichten zu erwarten sind, als in den Ringpuffer 16 passen, wird der Speicherprozess 22 entweder von dem Betriebssystemkern 24 oder von dem Protokollprozess 21 veranlasst, den Ringpuffer 16 zu leeren.
  • – Ebenso kann der Protokollprozess 21 bei der Interpretation der eintreffenden Daten das INS-Byte, welches einen Rückschluss auf das von der Kommando-APDU übertragene Kommando zulässt, auswerten, um eine Gültigkeitsprüfung der vorliegenden Daten durchzuführen. Ebenso ist es möglich, dass die Interpretation den endgültigen Speicherort der Daten im EEPROM-Speicher 5 der Chipkarte 1 ermittelt, um diese Information dem Speicherprozess 22 per Interprozess-Kommunikation (IPC) mitzuteilen (39).
  • – Der Protokollprozess 21 wird nach Erledigung seiner Aufgabe inaktiv und wartet auf die nächste Aktivierung durch den Betriebssystemkern 24 oder die Eingangssteuerung 10 aufgrund im Ringpuffer 16 vorliegender Daten.
  • – Nun wird der mit niedriger Priorität ausgeführte Speicherprozess 22 von dem Betriebssystemkern 24 bzw. der Eingangssteuerung 10 aktiviert (37). Ebenso kann der Speicherprozess 22 aktiviert werden, wenn der Ringpuffer 16 einen bestimmten vorgegebenen Füllstand überschritten hat, um diesen rechtzeitig zu leeren, damit weitere eingehende Daten aus dem Eingangspuffer 18 in den Ringpuffer 16 übertragen werden können. Das Überschreiten des Füllstandes kann dann mittels eines Ereignisses (Event) gemeldet werden. Ebenso ist es möglich, dass der Speicherprozess 22 aufgrund eines Ablaufen einer Zeitscheibe oder abhängig von dem Ergebnis einer aktiven Prüfung des Füllstandes des Ringpuffers 16 („Polling") aktiviert wird.
  • – Der Speicherprozess 22 liest (40) die in dem Ringpuffer 16 vorliegenden Daten und schreibt (41) diese in den nicht-volatilen Speicherbereich 14. Vorzugsweise kann der Speicherprozess 22 auch warten, bis eine Speicherseite in dem Ringpuffer 16 vollständig vorliegt, d. h. beispielsweise 32 Byte, da ein Speicherzugriff auf den nicht-volatilen Speicher 5 ohnehin zumeist seitenweise erfolgt.
  • – Der Speicherprozess 22 kann die Nachricht 16 direkt in einen im EEPROM-Speicher 5 angelegten Zielspeicherbereich des Applikationsprozesses 19, für den die Daten bestimmt sind, aus den Teilnachrichten B1–B8 zusammenfügen. In der Regel existiert jedoch ein spezieller nicht-volatiler Speicherbereich 14, um eine Nachricht dort einerseits aus den empfangenen Teilnachrichten zusammenfügen zu können und andererseits dort eine Vorprüfung der empfangenen Nachricht durchzuführen, z. B. eine kryptographische Sicherheitsoperation oder eine Prüfsummenverifikation. Die Verwendung eines speziellen Speicherbereichs 14 ist insbesondere bei Aktualisierungskommandos sinnvoll (z. B. UPDATE DATA), da ein sofortiges Überschreiben der zu aktualisierenden Daten im Zielspeicherbereich zu einer unerwünschten Dateninkonsistenz führen kann, falls das Aktualisierungskommando unvollständig oder fehlerhaft übertragen wird oder falls eine Verifikation durch einen Prüfsummenvergleich fehlschlägt. Ein unvollständiges oder fehlerhaftes Aktualisierungskommando kann demgegenüber aus einem separaten nicht-volatilen Speicherbereich 14 gelöscht werden, ohne dass die eigentlichen zu aktualisierenden Daten beschädigt werden.
  • – In dem nicht-volatilen Speicherbereich 14 fügt der Speicherprozess 22 die vollständige Nachricht B1–B8 so zusammen, dass die Nachricht vorver arbeitet oder im Hinblick auf ihre Gültigkeit oder sicherheitsrelevante Aspekte verifiziert werden kann.
  • – Da der Speicherprozess 22 eine niedrigere Priorität als der Unterbrechungsprozess 20 hat, kann er nur zwischen zwei Unterbrechungsphasen, wenn der Unterbrechungsprozess 20 inaktiv ist, aktiviert werden, um aus dem Ringpuffer 16 Teilnachrichten auszulesen. Der Speicherprozess 22 ist also nur für die Zeitdauer der Übertragung von Daten von dem Terminal in den UART-Eingangspuffer 18 aktiv, da er Teilnachrichten nur solange aus dem Zwischenpuffer 16 auslesen kann, wie der Eingangspuffer 18 einen vorgegebenen Füllstand nicht überschreitet. Dann wird wieder der hochprioritäre Unterbrechungsprozess 20 aktiviert.
  • – Falls die Nachricht vollständig im nicht-volatilen Speicherbereich 14 vorliegt, was von dem Protokollprozess 22 durch Auswerten des CLA-Bytes ermittelt werden kann, wird abschließend der Applikationsprozess 19 per Interprozesskommunikation (IPC) informiert. Die Aktivierung des Applikationsprozesses 19 kann durch den Speicherprozess 22 selbst, den Betriebssystemkern 24, die Eingangssteuerung 10 oder event-gesteuert erfolgen.
  • – Die im nicht-volatilen Speicherbereich 14 nunmehr vollständig vorliegende Nachricht kann auch direkt in den Adressbereich der Applikation 19 kopiert werden, was ein Aufrufen des Kommandointerpreters erforderlich macht, um die Applikation zu ermitteln. Andererseits kann die Applikation aufgefordert werden, auf die Daten ihrerseits zuzugreifen (42).
2 illustrates a method for receiving an overlong message by the in 1 illustrated chip card 1 , At the center of the diagram is the kernel 24 (KERNEL), who also controls the input 10 and / or event control 11 may include. The operating system kern 24 or the reception control 10 Enabled to handle an incoming message synchronizes the interruption process 20 (INTERRUPT PROC) with high priority (PRIORITY = HIGH), the protocol process 21 (PROTOCOL PROC) with medium priority (PRIORITY = MEDIUM) and the storage process 22 (NVM PROC) with low priority (PRIORITY = LOW). Through the synchronized activation and deactivation of these processes 20 . 21 . 22 are received partial messages B1-B8 of an overlong message from the UART input buffer 18 via the RAM ring buffer 16 finally in the non-volatile storage area 14 merged into the complete message and an application process 19 (APP PROC) provided. The procedure of this method is as follows, with parenthesized reference characters characterizing data streams:
  • - First, the UART input buffer takes 18 some bits of an incoming message as partial messages on ( 30 ). The incoming partial message is in particular a command APDU ("Application Protocol Data Unit") as the basic communication unit for data transmission from a terminal to a chip card.
  • - If there is a partial message in the input buffer 18 and / or when exceeding a predetermined level of the input buffer 18 becomes an interrupt regardless of the operating system kernel 24 an interrupt table which, in the case of the present interruption type "DATA AVAILABLE" ( 31 ) to be executed interrupt handling routine (ISR).
  • - Due to the triggered interruption ( 31 ) interrupts the kernel 24 the execution of the momentary of the processor 2 from a guided application process to prioritize the receipt of the message. The DATA AVAILABLE interruption becomes the interrupt process 20 from the kernel 24 activated with the highest execution priority ( 32 ), so that partial messages from the input buffer 18 in the intermediate buffer 16 transmitted as soon as the input buffer 16 exceeds a predetermined level.
  • - The interruption process 20 reads a given number or all bits from the UART input buffer 18 out ( 33 ) and write them into the RAM ring buffer 16 ( 34 ). By the synchronization of the processes 20 . 21 and 22 is made sure that the ring buffer 16 never completely filled when in the UART input buffer 18 data to be read, otherwise data loss may occur.
  • - The interruption process 20 becomes inactive after completing its task and waits for the next activation due to a break in the input buffer 18 present further sub-messages. The interruption process is just as good 20 also be reactivated when the intermediate buffer 16 is completely emptied, even if the UART input buffer 18 has not yet reached the level required to trigger an interruption. The signaling that the ring buffer 16 is completely emptied, may be triggered by an event or the interruption process 20 by interprocess communication (IPC) from the storage process 22 that's the ring buffer 16 read out, be communicated.
  • - Once the high-priority interruption process 16 becomes inactive, becomes the logging process 21 with medium priority from the kernel 24 or the input control 10 activated ( 35 ).
  • - The log process 21 , which was possibly already activated immediately after contacting the smart card with the transmitter terminal during an initialization phase of the smart card (the protocol process sends an ATR message ("Answer to Reset") to the terminal with various chip card and Übertra during initialization transmission parameters, z. B. also the size of the ring buffer 16 to detect incoming oversized messages) is now through the kernel 24 activated or continued if it is temporarily inactive. Optionally, it is also possible that the logging process 21 Checks if sub messages for him in the intermediate buffer 16 lie. Likewise, the log process 21 through an event "New data in the intermediate buffer" from the kernel 24 to be activated.
  • - The log process 21 interprets them in the intermediate buffer 16 lying bytes of the command APDU to obtain information about the total length of the message to be received or structure information about the message, which are needed for further processing. In this case, certain bytes of the incoming command APDU are evaluated, for. For example, the class byte CLA, which according to ISO / IEC 7816-4 in bit 5 indicates whether the currently arriving command APDU is the last / only command (CLA bit 5 = 0) of a chain of commands, or whether the current one Command APDU is not the last command of the chain (CLA bit 5 = 1) and further commands follow. Such linked chains of commands ("command chaining") are suitable for some types of commands, for example PUT DATA, which comprise more than 255 bytes of data to be transferred to the chip card 21 From this it can be concluded that more sub-messages are to be expected than in the ring buffer 16 fit, becomes the storage process 22 either from the kernel 24 or from the log process 21 causes the ring buffer 16 to empty.
  • - Likewise, the log process 21 in the interpretation of the incoming data, evaluate the INS byte, which allows a conclusion on the command transmitted by the command APDU, in order to carry out a validity check of the available data. Likewise, it is possible for the interpretation to be the final location of the data in the EEPROM memory 5 the chip card 1 determines this information to the storage process 22 communicate by interprocess communication (IPC) ( 39 ).
  • - The log process 21 will be inactive after completing its task and waiting for the next activation by the kernel 24 or the input control 10 due to the ring buffer 16 available data.
  • - Now, the low-priority storage process will be executed 22 from the kernel 24 or the input control 10 activated ( 37 ). Likewise, the storage process 22 be activated when the ring buffer 16 has exceeded a certain predetermined level to empty it in time, so that further incoming data from the input buffer 18 in the ring buffer 16 can be transmitted. Exceeding the level can then be reported by means of an event. Likewise it is possible that the storage process 22 due to expiration of a time slice or depending on the result of an active check of the fill level of the circular buffer 16 ("Polling") is activated.
  • - The storage process 22 read ( 40 ) in the ring buffer 16 present data and write ( 41 ) these in the non-volatile storage area 14 , Preferably, the storage process 22 also wait for a memory page in the ring buffer 16 is completely present, ie, for example 32 bytes, as a memory access to the non-volatile memory 5 anyway mostly done page by page.
  • - The storage process 22 can the message 16 directly into one in the EEPROM memory 5 created target storage area of the application process 19 for which the data is intended to be composed of the sub-messages B1-B8. In general, however, there is a special non-volatile memory area 14 in order to be able to combine a message there on the one hand from the received submessages and on the other hand to carry out a preliminary check of the received message there, eg. B. a cryptographic security operation or a checksum verification. The use of a special memory area 14 is useful, in particular, for update commands (eg, UPDATE DATA), since an immediate overwriting of the data to be updated in the destination memory area can lead to undesired data inconsistency if the update command is incompletely or incorrectly transmitted or if verification by a checksum comparison fails. In contrast, an incomplete or erroneous update command may consist of a separate non-volatile storage area 14 be deleted without damaging the actual data being updated.
  • - In the non-volatile storage area 14 adds the storage process 22 the complete message B1-B8 together so that the message can be pre-processed or verified for validity or security-related aspects.
  • - because the storage process 22 a lower priority than the interrupt process 20 has, he can only between two interruption phases when the interruption process 20 is inactive, enabled to get out of the ring buffer 16 Read out part messages. The storage process 22 So it is only for the duration of the transfer of data from the terminal to the UART input buffer 18 active, since it only sub messages from the intermediate buffer 16 can read out how the input buffer 18 does not exceed a predetermined level. Then again the high priority interruption process 20 activated.
  • - If the message is completely in the non-volatile storage area 14 what is the protocol process 22 can be determined by evaluating the CLA byte, finally the application process 19 informed by interprocess communication (IPC). The activation of the application process 19 can through the storage process 22 itself, the kernel 24 , the input control 10 or event-controlled.
  • - The non-volatile storage area 14 now completely present message can also directly in the address area of the application 19 which calls for calling the command interpreter to determine the application. On the other hand, the application may be requested to access the data for its part ( 42 ).

Das oben beschriebene Verfahren hat den Vorteil, dass die Zeit, in der der UART-Eingangspuffer 18 sich füllt, von dem Protokollprozess 21 oder dem Speicherprozess 22 ausgenutzt werden kann, so dass keine Totzeit (CPU Idle Time) des Prozessors 2 beim Senden und Empfangen entsteht.The method described above has the advantage that the time in which the UART input buffer 18 fills up, from the logging process 21 or the storage process 22 can be exploited, so no dead time (CPU idle time) of the processor 2 when sending and receiving arises.

Das in 2 skizzierte Verfahren wird durch Synchronisationsmechanismen realisiert, die von der Übertragungsgeschwindigkeit der Daten und der internen Prozessortaktung der Chipkarte 1 abhängig sind. Die minimal verbleibende Zeit für den Speicherprozess 22 ergibt sich beim T = 1 Protokoll als 11 ETU („Elementary Time Unit"; die Dauer eines Bits bei der Datenübertragung zur Chipkarte; sie ist u. a. abhängig von dem Prozessortakt) abzüglich des jeweiligen Zeitaufwands für den Prozesswechsel und die Unterbrechungsbehandlung. Die maximal verbleibende Zeit für den Speicherprozess 22 ist abhängig von der CWT („Character Waiting Time"), die die maximale Wartezeit zwischen zwei Bytes angibt, bevor ein Datenempfang als beendet angesehen wird.This in 2 Outlined method is realized by synchronization mechanisms, the speed of data transfer and the internal processor clocking of the smart card 1 are dependent. The minimum remaining time for the storage process 22 In the T = 1 protocol, this results in 11 elementary time units (the duration of one bit in the data transfer to the chip card, depending, inter alia, on the processor clock) minus the respective time expenditure for the process change and the interruption treatment The maximum time remaining for the storage process 22 depends on the CWT ("Character Waiting Time"), which specifies the maximum waiting time between two bytes before data reception is considered terminated.

Das vorbeschriebene Verfahren kann mit einem Speicherbereich 14 in dem nicht-volatilen Speicher 5 durchgeführt werden. Da die Schreibzeiten bei einem klassischen EEPROM-Speicher jedoch eingeschränkt sein können, können auch andere nicht-volatile Speicher, wie z. B. Flash-Speicher, oder auch zukünftige Speichertechnologien, wie z. B. M-RAM oder FeRAM, verwendet werden.The above-described method can be used with a memory area 14 in the non-volatile memory 5 be performed. However, since the write times may be limited in a classical EEPROM memory, other non-volatile memory such. As flash memory, or even future storage technologies, such. M-RAM or FeRAM.

Die durch die in den 1 und 2 illustrierte Ausführungsvariante ermöglichte Empfangen überlanger Nachrichten kann durch die in den 3 und 4 gezeigten weiteren Maßnahmen besonders effizient realisiert werden. Diese weiteren technischen Maßnahmen werden insofern in der Praxis vorzugsweise in die Ausführungsvariante der 1 und 2 integ riert, wenngleich sie hier aus Übersichtlichkeitsgründen separat dargestellt und beschrieben werden.The through the in the 1 and 2 Illustrated embodiment enabled receiving over long messages can through the in the 3 and 4 shown further action can be implemented particularly efficiently. In practice, these further technical measures are preferably in the embodiment of the 1 and 2 integ riert, although they are shown and described separately for reasons of clarity.

3 zeigt eine Chipkarte 1, die eingerichtet ist, überlange Nachrichten effizient zu empfangen. Dazu umfasst die Chipkarte 1 analog zu der in 1 dargestellten Chipkarte 1 einen Prozessor 2 (CPU), eine Kommunikationsschnittstelle 3, einen UART-Eingangspuffer 18 sowie eine Speicheranordnung bestehend aus einem permanenten ROM-Speicher 4, einem nicht-volatilen EEPROM-Speicher 5 und einem flüchtigen RAM-Arbeitsspeicher 6. 3 shows a chip card 1 , which is set up to receive overlong messages efficiently. This includes the chip card 1 analogous to that in 1 illustrated chip card 1 a processor 2 (CPU), a communication interface 3 , a UART input buffer 18 and a memory arrangement consisting of a permanent ROM memory 4 , a non-volatile EEPROM memory 5 and a volatile RAM memory 6 ,

Im RAM-Speicher 6 ist ein von dem Zwischenpuffer 16 der 1 verschiedener Sekundärpuffer 17 (SEC.BUFF) zur Aufnahme von Teilnachrichten aus dem UART-Eingangspuffer 18 angeordnet. Der Sekundärpuffer 17 kann unterschiedlich realisiert werden, z. B. auch als ausgewählter Speicherbereich in einem nicht-volatilen Speicher, z. B. dem EEPROM-Speicher 5 oder einem Flash-Speicher, oder als dem UART-Eingangspuffer 18 nachgeschalteter Hardware-Speicherchip. Die Funktionsweise des Sekundärpuffers 17 wird weniger durch seine Realisierung als vielmehr durch seine Funktionalität und seine Größe bestimmt, da er prozesstechnisch als virtueller Eingangspuffer in den Funktionsablauf des Betriebssystems 7 eingebunden ist und eine größere Datenkapazität hat als der eigentliche Eingangspuffer 18. Vorzugsweise hat der Sekundärpuffer 17 eine vielfache Aufnahmekapazität des Eingangspuffers 18, z. B. fünf Byte, gegenüber der üblichen UART-Kapazität von weniger als fünf Byte, üblicherweise einem Byte.In RAM memory 6 is one of the intermediate buffer 16 of the 1 different secondary buffer 17 (SEC.BUFF) to receive partial messages from the UART input buffer 18 arranged. The secondary buffer 17 can be realized differently, for. B. as a selected memory area in a non-volatile memory, for. B. the EEPROM memory 5 or a flash memory, or as the UART input buffer 18 downstream hardware memory chip. The operation of the secondary buffer 17 is determined less by its realization than by its functionality and its size, since it is technically a virtual input buffer in the functional sequence of the operating system 7 is integrated and has a larger data capacity than the actual input buffer 18 , Preferably, the secondary buffer 17 a multiple recording capacity of the input buffer 18 , z. B. five bytes, compared to the usual UART capacity of less than five bytes, usually one byte.

Im Hinblick auf die Ausführungsvariante der 1 wird der Sekundärpuffer bei einem Eingang von Teilnachrichten zwischen dem UART-Eingangspuffer 18 und dem Zwischenpuffer 16 angeordnet, so dass eine eingehende Teilnachricht von dem UART-Eingangspuffer 18 über den Sekun därpuffer 17 in den Zwischenpuffer 16 und schließlich in den EEPROM-Speicherbereich 14 gelangt.With regard to the embodiment of the 1 When a sub message arrives, the secondary buffer becomes between the UART input buffer 18 and the intermediate buffer 16 arranged so that an incoming partial message from the UART input buffer 18 over the second buffers 17 in the intermediate buffer 16 and finally into the EEPROM memory area 14 arrives.

In dem RAM-Speicher 6 befindet sich ein reservierter Speicherbereich 15 (BUFFER), der dazu bestimmt ist, während eines Nachrichtenempfangs die eintreffenden Teilnachrichten aus dem virtuellen Eingangspuffer 17 aufzunehmen. Der Speicherbereich 15 kann bei einer kombinierten Verwirklichung der Ausführungsvarianten der 1 und 3 dem Zwischenpuffer 16 der 1 entsprechen. In diesem Fall würde der Unterbrechungsprozess 20 nicht unmittelbar auf den UART-Eingangspuffer 18 zugreifen, sondern Teilnachrichten aus dem Sekundärpuffer 17 auslesen (33) und in den Speicherbereich 15 bzw. den Zwischenpuffer 16 schreiben (34).In the RAM memory 6 there is a reserved memory area 15 (BUFFER), which is intended, during a message reception, the incoming partial messages from the virtual input buffer 17 take. The storage area 15 can in a combined realization of the embodiments of the 1 and 3 the intermediate buffer 16 of the 1 correspond. In this case, the interruption process would 20 not directly to the UART input buffer 18 but partial messages from the secondary buffer 17 read out ( 33 ) and in the memory area 15 or the intermediate buffer 16 write ( 34 ).

Der Multitasking/Multithreading-fähige Betriebssystemkern 8 verteilt die Prozessorzeit auf verschiedene Prozesse/Threads, die in einem speziellen Benutzermodus 27 (USER MODE) ausgeführt werden, dessen Zugriffsmöglichkeiten auf die Hardware aus Sicherheitsgründen sehr eingeschränkt sind, so dass der Prozess nur über spezielle Systemaufrufe auf Betriebssystemroutinen oder Hardwaretreiber zugreifen kann. Im Benutzermodus 27 ausgeführte Programme und Applikationen verursachen deshalb bei Fehlern keine gravierenden Systemschäden oder Abstürze. Im Allgemeinen werden zumindest Applikationsprozesse 19 (APP-PROC) sowie der Protokollprozess 21 im eingeschränkten Benutzermodus 27 ausgeführt, während der Betriebssystemkern 24, gemeinsam mit z. B. Gerätetreibern, Prozesssteuerung, Dateisystemsteuerung, Unterbrechungssteuerung etc. im privilegierten Systemmodus 26 (SYSTEM MODE) betrieben wird.The multitasking / multithreading kernel 8th distributes the processor time to different processes / threads in a special user mode 27 (USER MODE) whose accessibility to the hardware is very restricted for security reasons, so that the process can only access operating system routines or hardware drivers via special system calls. In user mode 27 Executed programs and applications therefore do not cause serious system damage or crashes in case of errors. In general, at least application processes 19 (APP-PROC) as well as the protocol process 21 in restricted user mode 27 executed while the operating system kernel 24 , together with z. Device drivers, process control, file system control, interrupt control, etc. in privileged system mode 26 (SYSTEM MODE) is operated.

Im ROM-Speicher 4 liegt als Teil des Betriebssystems 7 eine Sekundärpuffersteuerung 12 (VIRTUAL FIRMWARE), welche nicht als herkömmlicher von dem Betriebssystemkern 8 im Benutzermodus 27 auszuführender Prozess implementiert ist, sondern als im Systemmodus 26 auszuführende virtuelle Firmware des Sekundärpuffers 17. Die Sekundärpuffersteuerung 12 kann insofern auch als Teil des Betriebssystemkerns 8 oder auch als Applikation im EEPROM-Speicher 5 realisiert werden. Sie ist vorzugsweise hardwarenah implementiert und befindet sich als Steuerprogramm des Sekundärpuffers 17 auf einer relativ niedrigen Abstraktionsebene des Betriebssystems 7. Deshalb wird die Sekundärpuffersteuerung 12 von dem Betriebssystem 7 als virtuelle Firmware 12 eines virtuellen UART-Eingangspuffers eingebunden, der als Sekundärpuffer 17 im RAM-Speicher 6 der Chipkarte 1 realisiert ist.In ROM memory 4 lies as part of the operating system 7 a secondary buffer control 12 (VIRTUAL FIRMWARE), which is not considered more conventional by the kernel 8th in user mode 27 is implemented as in system mode 26 to be executed virtual firmware of the secondary buffer 17 , The secondary buffer control 12 can also be considered as part of the kernel 8th or as an application in the EEPROM memory 5 will be realized. It is preferably implemented close to the hardware and is located as a control program of the secondary buffer 17 at a relatively low level of abstraction of the operating system 7 , Therefore, the secondary buffer control becomes 12 from the operating system 7 as virtual firmware 12 of a virtual UART input buffer used as a secondary buffer 17 in RAM memory 6 the chip card 1 is realized.

4 illustriert die Prozessabfolge und Datenströme bei einem Verfahren zum Behandeln eines Nachrichteneingangs bei einer Chipkarte 1 nach 3. Im Zentrum des Verfahrens steht der Betriebssystemkern 24 (KERNEL), dessen Routinen im privilegierten Systemmodus 26 (SYSTEM MODE) ausgeführt werden. Wenn Teilnachrichten einer eingehenden Nachricht in dem UART-Eingangspuffer 18 vorliegen (30), d. h. wenn ein vorgegebener Füllstand des UART-Eingangspuffers 18 überschritten wird, wird eine Unterbrechung ausgelöst (31), um den Dateneingang in dem UART-Eingangspuffer 18 prioritär behandeln zu können. 4 illustrates the process sequence and data streams in a method for handling a message entry in a smart card 1 to 3 , At the center of the procedure is the operating system kernel 24 (KERNEL) whose routines are in privileged system mode 26 (SYSTEM MODE). If partial messages of an incoming message in the UART input buffer 18 present ( 30 ), ie when a given level of the UART input buffer 18 exceeded, an interrupt is triggered ( 31 ) to the data input in the UART input buffer 18 to treat with priority.

Entgegen dem im Zusammenhang mit 2 beschriebenen Verfahren wird nun nicht die standardmäßige Unterbrechungsroutine (ISR) 20 im eingeschränkten Benutzermodus 27 mittels eines aufwändigen Prozesswechsels aktiviert, sondern es wird die Sekundärpuffersteuerung 12 (SECONDARY BUFFER CONTROL) mittels einer entsprechenden Unterbrechungsanfrage (IRQ) aktiviert (32). Die Sekundärpuffersteuerung 12 wird aufgrund ihrer spezialisierten Realisierung als virtuelle Firmware des Sekundärpuffers 17 von dem Betriebssystemkern 24 im privilegierten Systemmodus 26 ohne Prozesswechsel aktiviert. Die Ausführung der Sekundärpuffersteuerung 12 anstelle des herkömmlichen Unterbrechungsprozesses 20 bei Auftreten einer Unterbrechung (31) kann dadurch realisiert werden, dass die Sekundärpuffersteuerung 12 in einer Unterbrechungstabelle mit der bei Vorliegen von Daten in dem UART-Eingangspuffer 18 ausgelösten Unterbrechung als zugehörige Unterbrechungsbehandlungsroutine (ISR) verknüpft wird. Die Sekundärpuffersteuerung 12 kann hierbei schneller eingreifen als der Unterbrechungsprozess 20, da sie einen unmittelbaren Zugriff auf den als Sekundärpuffer 17 eingerichteten Bereich des RAM-Arbeitsspeichers 6 hat und bei ihrer Ausführung im Systemmodus 26 kein aufwändiger Prozesswechsel stattfinden muss.Contrary to in connection with 2 now described is not the standard interrupt routine (ISR) 20 in restricted user mode 27 activated by a complex process change, but it is the secondary buffer control 12 (SECONDARY BUFFER CONTROL) is activated by means of a corresponding interrupt request (IRQ) ( 32 ). The secondary buffer control 12 becomes a virtual firmware of the secondary buffer due to its specialized realization 17 from the kernel 24 in privileged system mode 26 activated without process change. The execution of the secondary buffer control 12 instead of the traditional interruption process 20 when an interruption occurs ( 31 ) can be realized by the secondary buffer control 12 in an interrupt table with the presence of data in the UART input buffer 18 triggered interrupt is associated as an associated interrupt handling routine (ISR). The secondary buffer control 12 can intervene faster than the interruption process 20 because they have immediate access to the as a secondary buffer 17 equipped area of RAM memory 6 has and in its execution in system mode 26 no complex process change must take place.

Die Sekundärpuffersteuerung 12 liest (33) die Daten aus dem UART-Eingangspuffer 18 und schreibt (34) sie in den Sekundärpuffer 17. Da der Sekundärpuffer 17 verglichen mit dem UART-Eingangspuffer 18 vorzugsweise eine vielfache Datenkapazität hat, wird auch ein vielfaches Aufnahmevolumen des UART-Eingangspuffers 18 in dem virtuellen Eingangspuffer 17 durch die effiziente Aktivierung der Sekundärpuffersteuerung 12 zusammengetragen. Erst wenn der Sekundärpuffer 17 einen bestimmten vorgegebenen Füllstand überschreitet, wird ein, in seiner Funktionalität, nicht aber in seiner Realisierung und Aktivierung, mit dem Unterbrechungsprozess 20 der 1 vergleichbarer Sekundärunterbrechungsprozess 23 (SECONDARY INTERRUPT PROC) im Benutzermodus 27 durch Prozesswechsel aktiviert. Der Sekundärpuffer 17 fungiert also als ein dem eigentlichen Eingangspuffer 18 nachgeschalteter virtueller Eingangspuffer, da eine reguläre Behandlung von eingehenden Teilnachrichten durch Prozesse im Benutzermodus 27 erst veranlasst wird, wenn in dem Sekundärpuffer 17 genügend Daten vorhanden sind.The secondary buffer control 12 read ( 33 ) the data from the UART input buffer 18 and writes ( 34 ) put them in the secondary buffer 17 , Because the secondary buffer 17 compared to the UART input buffer 18 preferably has a multiple data capacity, is also a multiple recording volume of the UART input buffer 18 in the virtual input buffer 17 by the efficient activation of the secondary buffer control 12 collected. Only when the secondary buffer 17 exceeds a certain predetermined level, becomes, in its functionality, but not in its realization and activation, with the interruption process 20 of the 1 comparable secondary interruption process 23 (SECONDARY INTERRUPT PROC) in user mode 27 activated by process change. The secondary buffer 17 thus acts as a the actual input buffer 18 downstream virtual input buffer, as a regular treatment of incoming sub-messages through processes in user mode 27 only when it is in the secondary buffer 17 enough data is available.

Das Überschreiten eines vorgegebenen Füllstandes des Sekundärpuffers 17 wird durch die Ereignisüberwachung 11 registriert und mittels eines Sekundärunterbrechungssignals (43) signalisiert. Softwaretechnisch kann dies als „Event" realisiert sein. Konzeptionell repräsentiert das Sekundärunterbrechungssignal (43) im vorliegenden Kontext jedoch keinen herkömmlichen Event, sondern fungiert als virtuelle Unterbrechung, die durch ein Vorliegen von Teilnachrichten in dem virtuellen Eingangspuffer 17 ausgelöst wird. Alternativ kann die Ereignisbehandlung auch von dem Betriebssystemkern 24 oder von der als virtuelle Firmware fungierenden Sekundärpuffersteuerung 12 des Sekundärpuffers 17 bereitgestellt werden.Exceeding a predetermined level of the secondary buffer 17 is through the event monitoring 11 registered and by means of a secondary interrupt signal ( 43 ) signals. In terms of software, this can be realized as an "event." Conceptually, the secondary interrupt signal ( 43 ) in the present context, however, no conventional event, but acts as a virtual interrupt, by the presence of sub-messages in the virtual input buffer 17 is triggered. Alternatively, event handling can also be done by the kernel 24 or from the secondary buffer control functioning as a virtual firmware 12 of the secondary buffer 17 to be provided.

Anschließend wird der Sekundärunterbrechungsprozess 23 im Benutzermodus 27 gestartet, um Teilnachrichten aus dem Sekundärpuffer 17 auszulesen (44) und in den hierfür vorgesehenen Speicherbereich 15 (BUFFER) zu schreiben (45). Bei der Kombination der Vorrichtungen der 1 und 3 (bzw. der Verfahren der 2 und 4) überträgt (33, 34) der Sekundärunterbrechungsprozess 23 Teilnachrichten aus dem Sekundärpuffer 17 in den Ringspeicher 16, wo sie von dem Protokoll- und Speicherprozess 21, 22 entsprechend des in 4 illustrierten Verfahrens weiter verarbeitet werden.Subsequently, the secondary interrupt process 23 in user mode 27 started to receive submessages from the secondary buffer 17 to read out ( 44 ) and in the space provided for this purpose 15 (BUFFER) to write ( 45 ). When combining the devices of the 1 and 3 (or the method of 2 and 4 ) transmits ( 33 . 34 ) the secondary interrupt process 23 Partial messages from the secondary buffer 17 in the ring memory 16 where they come from the log and storage process 21 . 22 according to the in 4 illustrated process further processed.

Im Ergebnis wird ein zeitaufwändiger Prozesswechsel bei dem in 4 skizzierten Verfahren nicht bei jedem im UART-Eingangspuffer 18 eintreffenden Byte durchgeführt, sondern lediglich wenn der größere Sekundärpuffer 17 gefüllt ist. Der resultierende Zeitgewinn kann von der Prozesssteuerung des Betriebssystemkerns 8 zur Abarbeitung anderer Anwendungsprozesse 19 effizient genutzt werden, wobei die zu erwartende Effizienzsteigerung von der Größe des virtuellen Eingangspuffers 17 abhängig ist.As a result, a time-consuming process change in the in 4 not sketched out at everyone in the UART input buffer 18 incoming byte, but only if the larger secondary buffer 17 is filled. The resulting time gain may be due to the process control of the kernel 8th for processing other application processes 19 be used efficiently, with the expected increase in efficiency of the size of the virtual input buffer 17 is dependent.

Claims (55)

Verfahren zum Empfangen einer Nachricht durch einen portablen Datenträger (1) mit einem nicht-volatilen Speicher (5) und einem asynchronen Eingangspuffer (18), der sich kontinuierlich mit Teilnachrichten füllt, gekennzeichnet durch die Schritte: – Übertragen (33, 34) von in dem Eingangspuffer (18) vorliegenden Teilnachrichten in einen Zwischenpuffer (16) des Datenträgers (1); und – Speichern (40, 41) von in dem Zwischenpuffer (16) vorliegenden Teilnachrichten in einem nicht-volatilen Speicher (5) des Datenträgers (1) derart, dass die vollständige Nachricht aus den Teilnachrichten zusammengefügt wird; wobei die Schritte des Übertragens (33, 34) und des Speicherns (40, 41) derart synchronisiert werden, dass Teilnachrichten aus dem Zwischenpuffer (16) in dem nicht-volatilen Speicher (5) gespeichert werden, solange der Eingangspuffer (18) einen vorgegebenen Füllstand nicht überschreitet.Method for receiving a message by a portable data medium ( 1 ) with a non-volatile memory ( 5 ) and an asynchronous input buffer ( 18 ) that continuously fills with sub-messages, characterized by the steps: - transmitting ( 33 . 34 ) from in the input buffer ( 18 ) present sub messages in an intermediate buffer ( 16 ) of the data carrier ( 1 ); and - save ( 40 . 41 ) in the intermediate buffer ( 16 ) present sub messages in a non-volatile memory ( 5 ) of the data carrier ( 1 ) such that the complete message is assembled from the sub-messages; the steps of transmitting ( 33 . 34 ) and saving ( 40 . 41 ) are synchronized such that partial messages from the intermediate buffer ( 16 ) in the non-volatile memory ( 5 ) as long as the input buffer ( 18 ) does not exceed a predetermined level. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Schritte des Übertragens (33, 34) von Teilnachrichten in den Zwischenpuffer (16) und des Speicherns (40, 41) der Teilnachrichten in dem nicht-volatilen Speicher (5) derart synchronisiert werden, dass Teilnachrichten aus dem Eingangspuffer (18) in den Zwischenpuffer (16) übertragen werden, wenn der Eingangspuffer (18) einen vorgegebenen Füllstand überschreitet.Method according to claim 1, characterized in that the steps of transmitting ( 33 . 34 ) of sub-messages in the intermediate buffer ( 16 ) and saving ( 40 . 41 ) of the sub-messages in the non-volatile memory ( 5 ) are synchronized such that partial messages from the input buffer ( 18 ) in the intermediate buffer ( 16 ) are transmitted when the input buffer ( 18 ) exceeds a predetermined level. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass beim Schritt des Übertragens (33, 34) von Teilnachrichten in den Zwischenpuffer (16) die Teilnachrichten in einen in einem RAM-Speicher (6) des Datenträgers (1) eingerichteten Zwischenpuffer (16) übertragen werden, der großer ist als der Eingangspuffer (18).Method according to claim 1 or 2, characterized in that in the step of transmitting ( 33 . 34 ) of sub-messages in the intermediate buffer ( 16 ) the partial messages into one in a RAM memory ( 6 ) of the data carrier ( 1 ) intermediate buffers ( 16 ), which is larger than the input buffer ( 18 ). Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass beim Schritt des Speicherns (40, 41) von Teilnachrichten in dem nicht-volatilen Speicher (5) die Nachricht in einem separaten Speicherbereich (14) des nicht-volatilen Speichers (5) vollständig zusammengefügt und dort verifiziert wird.Method according to one of claims 1 to 3, characterized in that in the step of storing ( 40 . 41 ) of sub-messages in the non-volatile memory ( 5 ) the message in a separate memory area ( 14 ) of the non-volatile memory ( 5 ) is completely assembled and verified there. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die in dem nicht-volatilen Speicher (5) zusammengefügte Nachricht einer Applikation (13, 19) bereitgestellt wird, für welche die Nachricht bestimmt ist.Method according to one of claims 1 to 4, characterized in that in the non-volatile memory ( 5 ) assembled message of an application ( 13 . 19 ) for which the message is intended. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Teilnachrichten seitenweise in dem nicht-volatilen Speicher (5) gespeichert werden.Method according to one of claims 1 to 5, characterized in that the sub-messages are page by page in the non-volatile memory ( 5 ) get saved. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass Teilnachrichten in dem nicht-volatilen Speicher (5) gespeichert werden, während sich der durch den Schritt des Übertragens (33, 34) geleerte Eingangspuffer (18) füllt.Method according to one of claims 1 to 6, characterized in that partial messages in the non-volatile memory ( 5 ), while the process of transmitting ( 33 . 34 ) emptied input buffers ( 18 ) fills. Verfahren nach einem der Ansprüche 1 bis 7, gekennzeichnet durch den weiteren Schritt des Ermitteln (38) einer Information aus im Zwischenpuffer (16) vorliegenden Teilnachrichten, wobei die ermittelte Information eine Längeninformation über die Länge der Nachricht und/oder eine Strukturinformation über die Struktur der Nachricht ist.Method according to one of claims 1 to 7, characterized by the further step of determining ( 38 ) of information in the intermediate buffer ( 16 ), wherein the determined information is a length information about the length of the message and / or a structure information about the structure of the message. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass nach dem Schritt des Ermitteln (38) der Information aus den im Zwischenpuffer (16) vorliegenden Teilnachrichten der Schritt des Speichern (40, 41) der Teilnachrichten in dem nicht-volatilen Speicher (5) veranlasst wird, wobei die ermittelte Information beim Schritt des Speicherns (40, 41) berücksichtigt wird.A method according to claim 8, characterized in that after the step of determining ( 38 ) of the information in the intermediate buffer ( 16 ) present sub-messages the step of storing ( 40 . 41 ) of the sub-messages in the non-volatile memory ( 5 ), the information determined in the step of storing ( 40 . 41 ) is taken into account. Verfahren nach Anspruch 8 oder 9, dadurch gekennzeichnet, dass das Ermitteln (38) der Information und/oder das Speichern (40, 41) der Teilnachrichten in dem nicht-volatilen Speicher (5) veranlasst oder fortgesetzt wird und das Übertragen (33, 34) von Teilnachrichten in den Zwischenpuffer (16) eingestellt oder unterbrochen wird, wenn der Zwischenpuffer (16) beim Übertragen (33, 34) von Teilnachrichten in den Zwischenpuffer (16) einen vorgegebenen Maximalfüllstand überschreitet.Method according to claim 8 or 9, characterized in that the determining ( 38 ) of information and / or storage ( 40 . 41 ) of the sub-messages in the non-volatile memory ( 5 ) or continues and transmitting ( 33 . 34 ) of sub-messages in the intermediate buffer ( 16 ) is set or interrupted when the intermediate buffer ( 16 ) when transferring ( 33 . 34 ) of sub-messages in the intermediate buffer ( 16 ) exceeds a predetermined maximum level. Verfahren nach einem der Ansprüche 8 bis 10, dadurch gekennzeichnet, dass das Übertragen (33, 34) von Teilnachrichten in den Zwischenpuffer (16) veranlasst oder fortgesetzt wird und das Ermitteln (38) der Information und/oder das Speichern (40, 41) der Teilnachrichten in dem nicht-volatilen Speicher (5) eingestellt oder unterbrochen wird, wenn der Zwischenpuffer (16) einen vorgegebenen Minimalfüllstand unterschreitet und/oder wenn der Eingangspuffer (18) einen vorgegebenen Füllstand überschreitet.Method according to one of claims 8 to 10, characterized in that the transferring ( 33 . 34 ) of sub-messages in the intermediate buffer ( 16 ) is initiated or continued and the determination ( 38 ) of information and / or storage ( 40 . 41 ) of the sub-messages in the non-volatile memory ( 5 ) is set or interrupted when the intermediate buffer ( 16 ) falls below a predetermined minimum level and / or if the input buffer ( 18 ) exceeds a predetermined level. Verfahren nach einem der Ansprüche 8 bis 11, dadurch gekennzeichnet, dass die Schritte des Übertragens (33, 34) von Teilnachrichten in den Zwischenpuffer (16) und/oder des Speicherns (40, 41) der Teilnachrichten in dem nicht-volatilen Speicher (5) und/oder des Ermitteln (38) der Information als zumindest teilweise nebenläufige Prozesse von einem Prozessor (2) des Datenträgers (1) ausgeführt werden.Method according to one of claims 8 to 11, characterized in that the steps of transmitting ( 33 . 34 ) of sub-messages in the intermediate buffer ( 16 ) and / or storing ( 40 . 41 ) of the sub-messages in the non-volatile memory ( 5 ) and / or determining ( 38 ) of the information as at least partially concurrent processes from a processor ( 2 ) of the data carrier ( 1 ). Verfahren nach einem der Ansprüche 1 bis 12, dadurch gekennzeichnet, dass eine Unterbrechung (31) einer Arbeit eines Prozessors (2) des Datenträgers (1) ausgelöst wird und das Übertragen (33, 34) von Teilnachrichten in den Zwischenpuffer (16) veranlasst wird, sobald der Eingangspuffer (18) einen vorgegebenen Füllstand überschreitet.Method according to one of claims 1 to 12, characterized in that an interruption ( 31 ) a work of a processor ( 2 ) of the data carrier ( 1 ) is triggered and the transfer ( 33 . 34 ) of sub-messages in the intermediate buffer ( 16 ) is initiated as soon as the input buffer ( 18 ) exceeds a predetermined level. Verfahren nach einem der Ansprüche 8 bis 12 mit 13, dadurch gekennzeichnet, dass das Übertragen (33, 34) von Teilnachrichten in den Zwischenpuffer (16) als Prozess mit hoher Ausführungspriorität, das Ermitteln (38) der Information als Prozess mit mittlerer Ausführungspriorität und das Speichern (40, 41) der Teilnachrichten in dem nicht-volatilen Speicher (5) als Prozess mit niedriger Ausführungspriorität auf dem Prozessor (2) ausführt wird.Method according to one of claims 8 to 12 with 13, characterized in that the transmission ( 33 . 34 ) of sub-messages in the intermediate buffer ( 16 ) as a high execution priority process, determining ( 38 ) of information as a process with medium execution priority and storing ( 40 . 41 ) of the sub-messages in the non-volatile memory ( 5 ) as a process with low execution priority on the processor ( 2 ) is executed. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass weitere von dem Prozessor (2) auszuführende Prozesse mit niedrigerer Ausführungspriorität ausgeführt werden als der Prozess des Speicherns (40, 41) der Teilnachrichten in dem nicht-volatilen Speicher (5).A method according to claim 14, characterized in that further from the processor ( 2 ) are executed with lower execution priority than the process of saving ( 40 . 41 ) of the sub-messages in the non-volatile memory ( 5 ). Portabler Datenträger (1), umfassend einen Prozessor (2), einen nicht-volatilen Speicher (5) und einen asynchronen Eingangspuffer (18), welcher sich bei einem Empfang einer Nachricht kontinuierlich mit Teilnachrichten der Nachricht füllt, gekennzeichnet durch einen Zwischenpuffer (16) und eine von dem Prozessor (2) ausführbare Eingangssteuerung (10), welche eingerichtet ist, – in dem Eingangspuffer (18) vorliegende Teilnachrichten in den Zwischenpuffer (16) zu übertragen; – in dem Zwischenpuffer (16) vorliegende Teilnachrichten in dem nicht-volatilen Speicher (5) zu speichern; und – das Übertragen (33, 34) und das Speichern (40, 41) derart zu synchronisieren, dass Teilnachrichten aus dem Zwischenpuffer (16) in dem nicht-volatilen Speicher (5) gespeichert werden, solange der Eingangspuffer (18) einen vorgegebenen Füllstand nicht überschreitet.Portable disk ( 1 ), comprising a processor ( 2 ), a non-volatile memory ( 5 ) and an asynchronous input buffer ( 18 ), which fills continuously with partial messages of the message upon receipt of a message, characterized by an intermediate buffer ( 16 ) and one of the processor ( 2 ) executable input control ( 10 ), which is set up, - in the input buffer ( 18 ) present sub messages in the intermediate buffer ( 16 ) transferred to; In the intermediate buffer ( 16 ) in the non-volatile memory ( 5 ) save; and - transmitting ( 33 . 34 ) and saving ( 40 . 41 ) such that partial messages from the intermediate buffer ( 16 ) in the non-volatile memory ( 5 ) as long as the input buffer ( 18 ) does not exceed a predetermined level. Datenträger (1) nach Anspruch 16, dadurch gekennzeichnet, dass die Eingangssteuerung (10) eingerichtet ist, das Übertragen (33, 34) von Teilnachrichten in den Zwischenpuffer (16) und das Speichern (40, 41) der Teilnachrichten in dem nicht-volatilen Speicher (5) derart zu synchronisieren, dass Teilnachrichten aus dem Eingangspuffer (18) in den Zwischenpuffer (16) übertragen werden, wenn der Eingangspuffer (18) einen vorgegebenen Füllstand überschreitet.Disk ( 1 ) according to claim 16, characterized in that the input control ( 10 ), the transmission ( 33 . 34 ) of sub-messages in the intermediate buffer ( 16 ) and saving ( 40 . 41 ) of the sub-messages in the non-volatile memory ( 5 ) such that partial messages from the input buffer ( 18 ) in the intermediate buffer ( 16 ) are transmitted when the input buffer ( 18 ) exceeds a predetermined level. Datenträger (1) nach Anspruch 16 oder 17, dadurch gekennzeichnet, dass der asynchrone Eingangspuffer (18) ein UART-Speicherbaustein ist.Disk ( 1 ) according to claim 16 or 17, characterized in that the asynchronous input buffer ( 18 ) is a UART memory device. Datenträger (1) nach einem der Ansprüche 16 bis 18, dadurch gekennzeichnet, dass der Zwischenpuffer (16) ein in einem RAM-Speicher (6) des Datenträgers (1) eingerichteter Speicherbereich ist, insbesondere ein Ringspeicher.Disk ( 1 ) according to one of claims 16 to 18, characterized in that the intermediate buffer ( 16 ) in a RAM memory ( 6 ) of the data carrier ( 1 ) arranged memory area, in particular a ring memory. Datenträger (1) nach Anspruch 19, dadurch gekennzeichnet, dass der Zwischenpuffer (16) eine größere Speicherkapazität besitzt als der Eingangspuffer (18).Disk ( 1 ) according to claim 19, characterized in that the intermediate buffer ( 16 ) has a larger storage capacity than the input buffer ( 18 ). Datenträger (1) nach einem der Ansprüche 16 bis 20, dadurch gekennzeichnet, dass der Datenträger (1) eine Unterbrechungseinrichtung (9) umfasst, die eingerichtet ist, eine Unterbrechung (31) einer Arbeit des Prozessors (2) auszulösen, wenn der Eingangspuffer (18) einen vorgegebenen Füllstand überschreitet.Disk ( 1 ) according to one of claims 16 to 20, characterized in that the data carrier ( 1 ) an interruption device ( 9 ), which is set up, an interruption ( 31 ) a work of the processor ( 2 ) when the input buffer ( 18 ) exceeds a predetermined level. Datenträger (1) nach Anspruch 21, dadurch gekennzeichnet, dass die Eingangssteuerung (10) eingerichtet ist, bei einer Unterbrechung (31) eine Ausführung eines Unterbrechungsprozesses (20) zum Übertragen (33, 34) von in dem Eingangspuffer (18) vorliegenden Teilnachrichten durch den Prozessor (2) einzuleiten.Disk ( 1 ) according to claim 21, characterized in that the input control ( 10 ) is set up in the event of an interruption ( 31 ) an execution of an interruption process ( 20 ) for transferring ( 33 . 34 ) from in the input buffer ( 18 ) present partial messages by the processor ( 2 ). Datenträger (1) nach einem der Ansprüche 16 bis 22, dadurch gekennzeichnet, dass die Eingangssteuerung (10) eingerichtet ist, eine Ausführung eines Speicherprozesses (22) zum Speichern (40, 41) von in dem Zwischenpuffer (16) vorliegenden Teilnachrichten in dem nicht-volatilen Speicher (5) durch den Prozessor (2) einzuleiten.Disk ( 1 ) according to one of claims 16 to 22, characterized in that the input control ( 10 ), an execution of a storage process ( 22 ) to save ( 40 . 41 ) in the intermediate buffer ( 16 ) present sub messages in the non-volatile memory ( 5 ) by the processor ( 2 ). Datenträger (1) nach Anspruch 23, dadurch gekennzeichnet, dass der Speicherprozess (22) eingerichtet ist, die Teilnachrichten seitenweise in dem nicht-volatilen Speicher (5) zu speichern.Disk ( 1 ) according to claim 23, characterized in that the storage process ( 22 ), the sub-messages are paged in the non-volatile memory ( 5 ) save. Datenträger (1) nach Anspruch 23 oder 24, dadurch gekennzeichnet, dass der Speicherprozess (22) eingerichtet ist, die zusammengefügte Nachricht einer Applikation (13, 19), für welche die Nachricht bestimmt ist, bereitzustellen.Disk ( 1 ) according to claim 23 or 24, characterized in that the storage process ( 22 ), the merged message of an application ( 13 . 19 ) for which the message is intended to be provided. Datenträger (1) nach einem der Ansprüche 23 bis 25, dadurch gekennzeichnet, dass in dem nicht-volatilen Speicher (5) ein separater Speicherbereich (14) eingerichtet ist, und der Speicherprozess (22) eingerichtet ist, die Nachricht in dem separaten Speicherbereich (14) des nicht-volatilen Spei chers (5) aus den Teilnachrichten zusammenzufügen und dort zu verifizieren.Disk ( 1 ) according to one of claims 23 to 25, characterized in that in the non-volatile memory ( 5 ) a separate memory area ( 14 ) and the storage process ( 22 ), the message in the separate memory area ( 14 ) of the non-volatile memory ( 5 ) from the sub-messages and verify there. Datenträger (1) nach einem der Ansprüche 16 bis 26, dadurch gekennzeichnet, dass die Eingangssteuerung (10) eingerichtet ist, eine Ausführung eines Protokollprozesses (21) durch den Prozessor (2) einzuleiten, welcher eine Information aus im Zwischenpuffer (16) vorliegenden Teilnachrichten ermittelt, wobei die ermittelte Information eine Längeninformation über die Länge der Nachricht und/oder eine Strukturinformation über die Struktur der Nachricht ist.Disk ( 1 ) according to one of claims 16 to 26, characterized in that the input control ( 10 ), an execution of a protocol process ( 21 ) by the processor ( 2 ), which extracts information from the intermediate buffer ( 16 ) determined sub-messages, wherein the determined information is a length information about the length of the message and / or a structure information about the structure of the message. Datenträger (1) nach einem der Ansprüche 23 bis 26 mit 27, dadurch gekennzeichnet, dass die Eingangssteuerung (10) eingerichtet ist, eine Ausführung des Speicherprozesses (22) einzuleiten, nachdem die Ausführung des Protokollprozesses (21) beendet ist, wobei die von dem Protokollprozess (21) ermittelte Information von dem Speicherprozess (22) berücksichtigt wird.Disk ( 1 ) according to one of claims 23 to 26, characterized in that the input control ( 10 ), an execution of the storage process ( 22 ) after the execution of the logging process ( 21 ), and that of the protocol process ( 21 ) determined information from the storage process ( 22 ) is taken into account. Datenträger (1) nach Anspruch 28, dadurch gekennzeichnet, dass die Eingangssteuerung (10) eingerichtet ist, die Ausführung des Protokollprozesses (21) und/oder des Speicherprozesses (22) einzuleiten oder fortzusetzen und die Ausführung des Unterbrechungsprozesses (20) zu beenden oder zu unterbrechen, wenn der Zwischenpuffer (16) infolge des Übertragens (33, 34) des Unterbrechungsprozesses (20) einen vorgegebenen Maximalfüllstand überschreitet.Disk ( 1 ) according to claim 28, characterized in that the input control ( 10 ), the execution of the logging process ( 21 ) and / or the storage process ( 22 ) or to continue the execution of the interruption process ( 20 ) to terminate or interrupt when the intermediate buffer ( 16 ) as a result of the transfer ( 33 . 34 ) of the interruption process ( 20 ) exceeds a predetermined maximum level. Datenträger (1) nach Anspruch 28 oder 29, dadurch gekennzeichnet, dass die Eingangssteuerung (10) eingerichtet ist, die Ausführung des Protokollprozesses (21) und/oder des Speicherprozesses (22) zu unterbrechen oder zu beenden und die Ausführung des Unterbrechungsprozesses (20) fort zusetzen oder zu beginnen, wenn der Eingangspuffer (18) einen vorgegebenen Füllstand überschreitet und/oder wenn der Zwischenpuffer (16) einen vorgegebenen Minimalfüllstand unterschreitet.Disk ( 1 ) according to claim 28 or 29, characterized in that the input control ( 10 ), the execution of the logging process ( 21 ) and / or the storage process ( 22 ) to interrupt or terminate the execution of the interruption process ( 20 ) or to start when the input buffer ( 18 ) exceeds a predetermined level and / or if the intermediate buffer ( 16 ) falls below a predetermined minimum level. Datenträger (1) nach einem der Ansprüche 16 bis 30, gekennzeichnet durch eine Ereignisüberwachung (11) des Datenträgers (1), die eingerichtet ist, ein Überschreiten eines vorgegebenen Maximalfüllstands und/oder ein Unterschreiten eines vorgegebenen Minimalfüllstands des Zwischenpuffers (16) zu erkennen und der Eingangssteuerung (10) durch ein Füllstandssignal mitzuteilen.Disk ( 1 ) according to one of Claims 16 to 30, characterized by event monitoring ( 11 ) of the data carrier ( 1 ), which is set, exceeding a predetermined maximum level and / or falling below a predetermined minimum level of the intermediate buffer ( 16 ) and the input control ( 10 ) by a level signal. Datenträger (1) nach einem der Ansprüche 16 bis 31, dadurch gekennzeichnet, dass der Datenträger (1) ein Betriebssystem (7) umfasst, welches eingerichtet ist, Prozesse auf dem Prozessor (2) nebenläufig auszuführen, und die Eingangssteuerung (10) eingerichtet ist, eine zumindest teilweise nebenläufige Ausführung eines Unterbrechungsprozesses (20) und/oder eines Protokollprozesses (21) und/oder eines Speicherprozesses (22) einzuleiten.Disk ( 1 ) according to one of claims 16 to 31, characterized in that the data carrier ( 1 ) an operating system ( 7 ), which is set up processes on the processor ( 2 ) run concurrently, and the input control ( 10 ), an at least partially concurrent execution of an interruption process ( 20 ) and / or a protocol process ( 21 ) and / or a storage process ( 22 ). Datenträger (1) nach Anspruch 32, dadurch gekennzeichnet, dass die Eingangssteuerung (10) eingerichtet ist, die Ausführung des Unterbrechungsprozesses (20) mit hoher Ausführungspriorität einzuleiten, die Ausführung des Protokollprozesses (21) mit mittlerer Ausführungspriorität einzuleiten, und die Ausführung des Speicherprozesses (22) mit niedrigerer Ausführungspriorität einzuleiten.Disk ( 1 ) according to claim 32, characterized in that the input control ( 10 ), the execution of the interruption process ( 20 ) with high execution priority, the execution of the logging process ( 21 ) with medium execution priority, and the execution of the storage process ( 22 ) with lower execution priority. Datenträger (1) nach Anspruch 33, dadurch gekennzeichnet, dass das Betriebssystem (7) eingerichtet ist, weitere von dem Prozessor (2) auszufüh rende Prozesse mit niedrigeren Ausführungsprioritäten auszuführen als den Speicherprozess (22).Disk ( 1 ) according to claim 33, characterized in that the operating system ( 7 ), more of the processor ( 2 ) executing processes with lower execution priorities than the storage process ( 22 ). Datenträger (1) nach einem der Ansprüche 16 bis 34, dadurch gekennzeichnet, dass die Eingangssteuerung (10) Bestandteil eine Betriebssystems (7) des Datenträgers (1) und/oder eines Betriebssystemkerns (8) des Datenträgers (1) ist.Disk ( 1 ) according to one of claims 16 to 34, characterized in that the input control ( 10 ) Part of an operating system ( 7 ) of the data carrier ( 1 ) and / or an operating system kernel ( 8th ) of the data carrier ( 1 ). Datenträger (1) nach einem der Ansprüche 16 bis 35, dadurch gekennzeichnet, dass der Datenträger (1) eine Chipkarte, eine sichere Multimediakarte, ein USB-Speichermedium oder eine Mobilfunkkarte ist.Disk ( 1 ) according to one of claims 16 to 35, characterized in that the data carrier ( 1 ) is a smart card, a secure multimedia card, a USB storage medium or a mobile phone card. Verfahren nach einem der Ansprüche 1 bis 15 zum Empfangen einer Nachricht durch einen portablen Datenträger (1) mit einem Betriebssystem (7), welches einen Systemmodus (26) und einen demgegenüber eingeschränkten Benutzermodus (27) unterstützt, gekennzeichnet durch den Schritt des Weiterleitens (33, 34) von in dem Eingangspuffer (18) vorliegenden Teilnachrichten in einen Sekundärpuffer (17) des Datenträgers (1), welcher größer ist als der Eingangspuffer (18), wobei der Schritt des Weiterleitens (33, 34) von dem Betriebssystem (7) in dem privilegierten Systemmodus (26) durchgeführt wird.Method according to one of Claims 1 to 15 for receiving a message by a portable data carrier ( 1 ) with an operating system ( 7 ), which is a system mode ( 26 ) and a user mode limited thereto ( 27 ), characterized by the step of forwarding ( 33 . 34 ) from in the input buffer ( 18 ) present sub messages in a secondary buffer ( 17 ) of the data carrier ( 1 ), which is larger than the input buffer ( 18 ), the step of forwarding ( 33 . 34 ) from the operating system ( 7 ) in the privileged system mode ( 26 ) is carried out. Verfahren nach Anspruch 37, dadurch gekennzeichnet, dass eine Unterbrechung (31) einer Arbeit des Prozessors (2) ausgelöst und der Schritt des Weiterleitens (33, 34) eingeleitet wird, wenn der Eingangspuffer (18) einen vorgegebenen Füllstand überschreitet.Method according to claim 37, characterized in that an interruption ( 31 ) a work of the processor ( 2 ) and the step of forwarding ( 33 . 34 ) is initiated when the Input buffer ( 18 ) exceeds a predetermined level. Verfahren nach Anspruch 38, dadurch gekennzeichnet, dass in Reaktion auf die Unterbrechung (31) eine Sekundärpuffersteuerung (12, 25) aktiviert wird, welche das Weiterleiten (33, 34) von Teilnachrichten aus dem Eingangspuffer (18) in den Sekundärpuffer (17) derart durchführt, dass kein Prozesswechsel durch das Betriebssystem (7) vorgenommen werden muss.A method according to claim 38, characterized in that in response to the interruption ( 31 ) a secondary buffer control ( 12 . 25 ) is activated, which forwarding ( 33 . 34 ) of partial messages from the input buffer ( 18 ) into the secondary buffer ( 17 ) such that no process change by the operating system ( 7 ) must be made. Verfahren nach einem der Ansprüche 37 bis 39, dadurch gekennzeichnet, dass ein Füllstand des Sekundärpuffers (17) überwacht und ein Sekundärunterbrechungssignal (43) ausgelöst wird, wenn der Sekundärpuffer (17) einen vorgegebenen Füllstand überschreitet.Method according to one of claims 37 to 39, characterized in that a level of the secondary buffer ( 17 ) and a secondary interrupt signal ( 43 ) is triggered when the secondary buffer ( 17 ) exceeds a predetermined level. Verfahren nach Anspruch 40, dadurch gekennzeichnet, dass in Reaktion auf das Sekundärunterbrechungssignal (43) ein Sekundärunterbrechungsprozess (23) aktiviert wird, welcher in dem Sekundärpuffer (17) vorliegende Teilnachrichten in einen Speicherbereich (15) des Datenträgers (1) überträgt, insbesondere in den Zwischenpuffer (16).A method according to claim 40, characterized in that in response to the secondary interrupt signal ( 43 ) a secondary interrupt process ( 23 ), which in the secondary buffer ( 17 ) present partial messages in a memory area ( 15 ) of the data carrier ( 1 ), in particular in the intermediate buffer ( 16 ). Verfahren nach Anspruch 41, dadurch gekennzeichnet, dass der Sekundärunterbrechungsprozess (23) von dem Betriebssystem (7) in dem eingeschränkten Benutzermodus (27) ausgeführt wird.A method according to claim 41, characterized in that the secondary interruption process ( 23 ) from the operating system ( 7 ) in the restricted user mode ( 27 ) is performed. Verfahren nach Anspruch 41 oder 42, dadurch gekennzeichnet, dass zum Ausführen des Sekundärunterbrechungsprozesses (23) ein Prozesswechsel durch das Betriebssystem (18) vorgenommen wird.Method according to claim 41 or 42, characterized in that for carrying out the secondary interruption process ( 23 ) a process change by the operating system ( 18 ) is made. Verfahren nach einem der Ansprüche 41 bis 43, dadurch gekennzeichnet, dass in dem Speicherbereich (15) des Datenträgers (1) vorliegende Teilnachrichten verarbeitet werden und/oder in einem Zielspeicherbereich gespeichert werden und/oder einer Applikation (13, 19) bereitgestellt werden. 45: Verfahren nach einem der Ansprüche 37 bis 44, dadurch gekennzeichnet, dass Verfahrensschritte durch den Prozessor (2) in Form von zumindest teilweise nebenläufigen Operationen und/oder Prozessen durchgeführt werden.Method according to one of claims 41 to 43, characterized in that in the memory area ( 15 ) of the data carrier ( 1 ) and / or stored in a destination memory area and / or an application ( 13 . 19 ) to be provided. 45: Method according to one of claims 37 to 44, characterized in that method steps by the processor ( 2 ) in the form of at least partially concurrent operations and / or processes. Portabler Datenträger (1) nach einem der Ansprüche 16 bis 36, umfassen ein Betriebssystem (7), welches einen Systemmodus (26) und einen demgegenüber eingeschränkten Benutzermodus (27) unterstützt, dadurch gekennzeichnet, dass der Datenträger (1) einen Sekundärpuffer (17), der größer als der Eingangspuffer (18) ist, und eine von dem Prozessor (2) in dem privilegierten Systemmodus (26) ausführbare Sekundärpuffersteuerung (12, 25) umfasst, welche eingerichtet ist, in dem Eingangspuffer (18) vorliegende Teilnachrichten in den Sekundärpuffer (17) weiterzuleiten (33, 34).Portable disk ( 1 ) according to one of claims 16 to 36, an operating system ( 7 ), which is a system mode ( 26 ) and a user mode limited thereto ( 27 ), characterized in that the data carrier ( 1 ) a secondary buffer ( 17 ) that is larger than the input buffer ( 18 ), and one from the processor ( 2 ) in the privileged system mode ( 26 ) executable secondary buffer control ( 12 . 25 ), which is set up, in the input buffer ( 18 ) present sub messages in the secondary buffer ( 17 ) ( 33 . 34 ). Datenträger (1) nach Anspruch 46, dadurch gekennzeichnet, dass der Sekundärpuffer (17) als Speicherbereich in einem RAM-Speicher (6) des Datenträgers (1) realisiert ist.Disk ( 1 ) according to claim 46, characterized in that the secondary buffer ( 17 ) as a storage area in a RAM memory ( 6 ) of the data carrier ( 1 ) is realized. Datenträger (1) nach Anspruch 46 oder 47, dadurch gekennzeichnet, dass die Sekundärpuffersteuerung (12, 25) als im Systemmodus (26) betreibbare virtuelle Firmware (12, 25) des Sekundärpuffers (17) in das Betriebssystem (7) integriert ist.Disk ( 1 ) according to claim 46 or 47, characterized in that the secondary buffer control ( 12 . 25 ) than in system mode ( 26 ) operable virtual firmware ( 12 . 25 ) of the secondary buffer ( 17 ) in the operating system ( 7 ) is integrated. Datenträger (1) nach einem der Ansprüche 46 bis 48, dadurch gekennzeichnet, dass der Datenträger (1) eine Unterbrechungseinrichtung (9) umfasst, die eingerichtet ist, bei der Unterbrechung (31) die im Systemmodus (26) betreibbare Sekundärpuffersteuerung (12, 25) als der Unterbrechung (31) zugeordnete Unterbrechungsbehandlungsroutine zu aktivieren. Disk ( 1 ) according to one of claims 46 to 48, characterized in that the data carrier ( 1 ) an interruption device ( 9 ), which is set up at the interruption ( 31 ) in system mode ( 26 ) operable secondary buffer control ( 12 . 25 ) as the interruption ( 31 ) to enable an associated interrupt handling routine. Datenträger (1) nach Anspruch 49, dadurch gekennzeichnet, dass die Sekundärpuffersteuerung (12, 25) eingerichtet ist, bei einer Unterbrechung (31) ohne einen Prozesswechsel durch das Betriebssystem (7) aktivierbar zu sein.Disk ( 1 ) according to claim 49, characterized in that the secondary buffer control ( 12 . 25 ) is set up in the event of an interruption ( 31 ) without a process change by the operating system ( 7 ) to be activated. Datenträger (1) nach einem der Ansprüche 46 bis 50, dadurch gekennzeichnet, dass der Datenträger (1) eine Ereignisüberwachung (11) umfasst, die eingerichtet ist, einen Füllstand des Sekundärpuffers (17) zu überwachen und ein Sekundärunterbrechungssignal (43) auszulösen, wenn der Sekundärpuffer (17) einen vorgegebener Füllstand überschreitet.Disk ( 1 ) according to one of claims 46 to 50, characterized in that the data carrier ( 1 ) an event monitor ( 11 ), which is set up, a level of the secondary buffer ( 17 ) and a secondary interrupt signal ( 43 ), if the secondary buffer ( 17 ) exceeds a predetermined level. Datenträger (1) nach Anspruch 51, dadurch gekennzeichnet, dass der Datenträger (1) eine Eingangssteuerung (10) umfasst, welche eingerichtet ist, in Reaktion auf ein Sekundärunterbrechungssignal (43) eine Ausführung eines Sekundärunterbrechungsprozesses (23) zum Übertragen (44, 45) von in dem Sekundärpuffer (17) vorliegenden Teilnachrichten in einen Speicherbereich (15) des Datenträgers (1) einzuleiten, insbesondere in den Zwischenpuffer (16).Disk ( 1 ) according to claim 51, characterized in that the data carrier ( 1 ) an input control ( 10 ), which is arranged in response to a secondary interrupt signal ( 43 ) an execution of a secondary interrupt process ( 23 ) for transferring ( 44 . 45 ) of in the secondary buffer ( 17 ) present partial messages in a memory area ( 15 ) of the data carrier ( 1 ), in particular in the intermediate buffer ( 16 ). Datenträger (1) nach Anspruch 52, dadurch gekennzeichnet, dass das Betriebssystem (18) eingerichtet ist, den Sekundärunterbrechungsprozess (23) in dem eingeschränkten Benutzermodus (27) zu betreiben.Disk ( 1 ) according to claim 52, characterized in that the operating system ( 18 ), the secondary interrupt process ( 23 ) in the restricted user mode ( 27 ) to operate. Datenträger (1) nach Anspruch 52 oder 53, dadurch gekennzeichnet, dass die Eingangssteuerung (10) eingerichtet ist, in dem Speicherbereich (15) vorliegende Teilnachrichten zu verarbeiten und/oder in einen Zielspeicherbereich zu kopieren und/oder einer Applikation (13, 19) bereitzustellen. Disk ( 1 ) according to claim 52 or 53, characterized in that the input control ( 10 ) is set up in the memory area ( 15 ) to process present sub-messages and / or to copy into a destination memory area and / or an application ( 13 . 19 ). Datenträger (1) nach einem der Ansprüche 46 bis 54, dadurch gekennzeichnet, dass das Betriebssystem (7) eingerichtet ist, Prozesse auf dem Prozessor (2) nebenläufig auszuführen.Disk ( 1 ) according to one of claims 46 to 54, characterized in that the operating system ( 7 ), processes on the processor ( 2 ) run concurrently. Datenträger (1) nach einem der Ansprüche 46 bis 55, dadurch gekennzeichnet, dass der Eingangspuffer (18) weniger als fünf Byte, vorzugsweise ein Byte, aufnehmen kann und der Sekundärpuffer (17) mindestens fünf Byte aufnehmen kann.Disk ( 1 ) according to one of claims 46 to 55, characterized in that the input buffer ( 18 ) can hold less than five bytes, preferably one byte, and the secondary buffer ( 17 ) can hold at least five bytes.
DE102006058511.9A 2006-12-12 2006-12-12 Method for receiving messages by means of a portable data carrier and portable data carrier Expired - Fee Related DE102006058511B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102006058511.9A DE102006058511B4 (en) 2006-12-12 2006-12-12 Method for receiving messages by means of a portable data carrier and portable data carrier

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102006058511.9A DE102006058511B4 (en) 2006-12-12 2006-12-12 Method for receiving messages by means of a portable data carrier and portable data carrier

Publications (2)

Publication Number Publication Date
DE102006058511A1 true DE102006058511A1 (en) 2008-06-19
DE102006058511B4 DE102006058511B4 (en) 2021-07-08

Family

ID=39399509

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006058511.9A Expired - Fee Related DE102006058511B4 (en) 2006-12-12 2006-12-12 Method for receiving messages by means of a portable data carrier and portable data carrier

Country Status (1)

Country Link
DE (1) DE102006058511B4 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19928939A1 (en) * 1999-06-24 2001-01-11 Giesecke & Devrient Gmbh Data carriers and methods for data transmission and memory management
DE10040241A1 (en) * 1999-08-18 2001-03-22 Giesecke & Devrient Gmbh Memory arrangement for portable data carrier e.g. chip card, updates information following deactivation process in such way, that referenced memory areas cover joined memory area
US20050289291A1 (en) * 2004-06-25 2005-12-29 Kabushiki Kaisha Toshiba Mobile electronic equipment
EP1628223A2 (en) * 2004-08-19 2006-02-22 Giesecke & Devrient GmbH Writing data to a non-volatile memory of a portable data carrier
EP1770533A1 (en) * 2004-06-15 2007-04-04 Sony Corporation Information management device and information management method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997002543A1 (en) 1995-07-05 1997-01-23 International Business Machines Corporation Processing of long messages in a process card

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19928939A1 (en) * 1999-06-24 2001-01-11 Giesecke & Devrient Gmbh Data carriers and methods for data transmission and memory management
DE10040241A1 (en) * 1999-08-18 2001-03-22 Giesecke & Devrient Gmbh Memory arrangement for portable data carrier e.g. chip card, updates information following deactivation process in such way, that referenced memory areas cover joined memory area
EP1770533A1 (en) * 2004-06-15 2007-04-04 Sony Corporation Information management device and information management method
US20050289291A1 (en) * 2004-06-25 2005-12-29 Kabushiki Kaisha Toshiba Mobile electronic equipment
EP1628223A2 (en) * 2004-08-19 2006-02-22 Giesecke & Devrient GmbH Writing data to a non-volatile memory of a portable data carrier

Also Published As

Publication number Publication date
DE102006058511B4 (en) 2021-07-08

Similar Documents

Publication Publication Date Title
EP2021905B1 (en) Simultaneous interface use
DE102006010091B4 (en) Smart card and method for controlling a smart card
DE2854485C2 (en) Data processing system
DE2523399C2 (en) Data processing system with input / output processors
DE102004004796B4 (en) Device for data transmission between memories
DE102005036648A1 (en) Integrated circuit card e.g. smart media, has suspend/resume controller halting execution of command and storing current state information upon receipt of suspend command related to another command
DE19919137A1 (en) Method of developing a threshold signal for performing a thread in a multithread process does not terminate the entire process, which can have other threads running
DE2118581A1 (en) Data processing system
DE2523372B2 (en) Input-output port controller
DE202009018814U1 (en) Information processing apparatus, information processing system and computer program
DE3103786A1 (en) DATA TRANSFER SYSTEM
DE60127520T2 (en) Processor with low power command cache
EP1079307B1 (en) Method for operating a memory system as well as memory system
DE102006058511B4 (en) Method for receiving messages by means of a portable data carrier and portable data carrier
DE60211211T2 (en) COMMUNICATION DEVICE, RECEPTION PROCESSING METHOD AND PROGRAM, AND COMPUTER READABLE MEDIUM ON WHICH THIS PROGRAM IS STORED
DE102006058512B4 (en) Method for receiving a message in a portable data carrier and portable data carrier
DE602006000968T2 (en) Terminal Equipment
DE19928939A1 (en) Data carriers and methods for data transmission and memory management
DE102007051201A1 (en) Coordinated dual-interface communication
EP1528480A1 (en) Bus system having few control lines
EP1791057B1 (en) Pipeline-Mechanism for data exchange between a chipcard and a terminal
EP2219115B1 (en) Method for using a multifunction storage card on terminals
EP1610218A2 (en) Portable data carrier, system with said data carrier and method of operating said data carrier
EP2740070B1 (en) Mechanism for communicating between two applications on a safety module
EP2018623B1 (en) Portable data carrier and system comprising an end device and a portable data carrier

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
R012 Request for examination validly filed

Effective date: 20130807

R081 Change of applicant/patentee

Owner name: GIESECKE+DEVRIENT MOBILE SECURITY GMBH, DE

Free format text: FORMER OWNER: GIESECKE & DEVRIENT GMBH, 81677 MUENCHEN, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee