DE112018002334T5 - Vorrichtungen und verfahren zur übertragung von ereignissen mit einer gleichförmigen latenz auf seriellen kommunikationsverbindungen - Google Patents

Vorrichtungen und verfahren zur übertragung von ereignissen mit einer gleichförmigen latenz auf seriellen kommunikationsverbindungen Download PDF

Info

Publication number
DE112018002334T5
DE112018002334T5 DE112018002334.6T DE112018002334T DE112018002334T5 DE 112018002334 T5 DE112018002334 T5 DE 112018002334T5 DE 112018002334 T DE112018002334 T DE 112018002334T DE 112018002334 T5 DE112018002334 T5 DE 112018002334T5
Authority
DE
Germany
Prior art keywords
event
frame
delay
transmitter
receiver
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.)
Pending
Application number
DE112018002334.6T
Other languages
English (en)
Inventor
Morten Werner Lund
Lloyd Clark
Odd Magne Reitan
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.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
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 Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of DE112018002334T5 publication Critical patent/DE112018002334T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/3625Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0412Digitisers structurally integrated in a display
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • G06F3/0418Control or interface arrangements specially adapted for digitisers for error correction or compensation, e.g. based on parallax, calibration or alignment
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • G06F3/0418Control or interface arrangements specially adapted for digitisers for error correction or compensation, e.g. based on parallax, calibration or alignment
    • G06F3/04184Synchronisation with the driving of the display or the backlighting unit to avoid interferences generated internally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/08Details of image data interface between the display device controller and the data line driver circuit
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/10Use of a protocol of communication by packets in interfaces along the display data pipeline
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/12Use of DVI or HDMI protocol in interfaces along the display data pipeline
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/14Use of low voltage differential signaling [LVDS] for display data communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

Die vorliegende Offenbarung bezieht sich im Allgemeinen auf serielle Kommunikationsverbindungen und genauer auf Ereignisse, die auf seriellen Kommunikationsverbindungen kommuniziert werden, und die Zeitsteuerung dieser Ereignisse, zum Beispiel um eine gleichförmige Verzögerung unter mehreren Ereignisübertragungen zu erreichen.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNG
  • Diese Anmeldung beansprucht den Nutzen unter 35 U.S.C. § 119(e) der vorläufigen US-Patentanmeldung mit der Seriennummer 62/502,329, eingereicht am 5. Mai 2017, deren Offenbarung hiermit durch Bezugnahme in ihrer Gesamtheit hierin aufgenommen wird.
  • TECHNISCHES GEBIET
  • Ausführungsformen der vorliegenden Offenbarung beziehen sich im Allgemeinen auf serielle Kommunikationsverbindungen und genauer auf Ereignisse, die auf seriellen Kommunikationsverbindungen kommuniziert werden, und die Zeitsteuerung dieser Ereignisse.
  • STAND DER TECHNIK
  • In vielen eingebetteten Steuersystemen und anderen Rechensystemen kann die Bewegung von Daten zwischen Peripherievorrichtungen und einem Host oder zwischen Peripherievorrichtungen eine erhebliche Menge an Datenverkehr auf den verschiedenen Bussen sein, die in solchen Systemen vorhanden sein können. Darüber hinaus kann ein Teil dieses Datenverkehrs Informationen in Bezug auf auftretende Ereignisse und die Zeitsteuerung dieser Ereignisse einschließen.
  • Bei der herkömmlichen Kommunikation zwischen Chips besteht ein Ansatz darin, diese Ereignisinformationen auf dedizierten Leitungen zu kommunizieren, die die Ereignisse signalisieren, um die Zeitsteuerung der Ereigniskommunikation zu bewerkstelligen. Es treten jedoch in der Regel zusätzliche Kosten für zusätzliche Leitungen auf. Die Kosten für das Hinzufügen von Leitungen können hoch und aufgrund von Layoutbeschränkungen sogar untragbar sein. Ein anderer Ansatz besteht darin, die Ereignisinformationen so bald wie möglich als das nächste Kommunikationspaket auf einer seriellen Kommunikationsverbindung zu senden. Bei diesem Ansatz können jedoch wichtige Ereignisdetails, zum Beispiel Zeitsteuerungsdetails dazu, wann ein tatsächliches Ereignis aufgetreten ist, verloren gehen. Andere Mängel und Beschränkungen bei diesen und anderen Ansätzen können bestehen.
  • Es besteht ein Bedarf an einer Kommunikation von Ereignissen und Ereigniszeitsteuerungsdetails auf seriellen Kommunikationsverbindungen, um eine relative Zeitsteuerung von Ereignissen zwischen einem Master und einem oder mehreren Slaves anzuzeigen.
  • OFFENBARUNG
  • Einige Ausführungsformen der vorliegenden Offenbarung beziehen sich im Allgemeinen auf einen Sender für eine serielle Kommunikationsverbindung. Der Sender für eine serielle Kommunikationsverbindung kann eine Verzögerungsschaltung und eine Übertragungsschaltung einschließen. Die Verzögerungsschaltung kann konfiguriert sein, um eine Ereignisverzögerung zwischen einer vordefinierten Bitposition eines laufenden Frames, der übertragen wird, und einem Ereignis zu bestimmen. Die Übertragungsschaltung kann konfiguriert sein, um einen Ereignisframe nach dem laufenden Frame zu senden, wobei die Übertragungsschaltung konfiguriert ist, um in dem Ereignisframe Verzögerungsbits, die der Ereignisverzögerung entsprechen, und Ereigniskennungsbits, die das Ereignis anzeigen, dem der Ereignisframe entspricht, einzuschließen.
  • Einige Ausführungsformen der vorliegenden Offenbarung beziehen sich im Allgemeinen auf ein Verfahren zum Übertragen von Ereignissen über eine serielle Kommunikationsverbindung. Das Verfahren kann ein Bestimmen einer Ereignisverzögerung zwischen einer vordefinierten Bitposition eines laufenden Frames, der übertragen wird, und einem Ereignis; ein Codieren eines Ereignisframes, der dem Ereignis entspricht, wobei der Ereignisframe einschließt: Verzögerungsbits, die der Ereignisverzögerung entsprechen; und Ereigniskennungsbits, die anzeigen, dass der Ereignisframe dem Ereignis entspricht, und ein Übertragen des Ereignisframes nach dem laufenden Frame einschließen.
  • Einige Ausführungsformen der vorliegenden Offenbarung beziehen sich im Allgemeinen auf einen Empfänger für eine serielle Kommunikationsverbindung. Der Empfänger für eine serielle Kommunikationsverbindung kann eine Empfangsschaltung und eine Verzögerungsschaltung einschließen. Die Empfangsschaltung kann konfiguriert sein, um einen Ereignisframe zu empfangen. In einer Ausführungsform schließt der Ereignisframe Verzögerungsbits ein, die eine Verzögerung zwischen einem Ereignis, das an einem Sender aufgetreten ist, bezogen auf eine vordefinierte Bitposition in einem vorhergehenden Frame, der von dem Sender empfangen wurde, anzeigt. Die Verzögerungsschaltung kann konfiguriert sein, um die Verzögerungsbits zu decodieren; eine Anzahl von Taktzyklen, die den Verzögerungsbits entsprechen, zu warten; und ein empfängerseitiges Ereignis nach dem Warten der Anzahl von Taktzyklen zu bestätigen.
  • Einige Ausführungsformen der vorliegenden Offenbarung beziehen sich im Allgemeinen auf ein Verfahren zum Empfangen von Ereignissen über eine serielle Kommunikationsverbindung. Das Verfahren kann ein Empfangen eines Ereignisframes; ein Decodieren von Verzögerungsbits aus dem Ereignisframe, wobei die Verzögerungsbits eine Verzögerung zwischen einem Ereignis, das an einem Sender aufgetreten ist, bezogen auf eine vordefinierte Bitposition in einem vorhergehenden Frame anzeigen; ein Warten einer Anzahl von Taktzyklen, die den Verzögerungsbits entsprechen; und ein Bestätigen eines empfängerseitigen Ereignisses nach dem Warten einschließen.
  • Einige Ausführungsformen der vorliegenden Offenbarung beziehen sich im Allgemeinen auf eine serielle Kommunikationsverbindung. Die serielle Kommunikationsverbindung kann einen Sender und einen Empfänger einschließen, die konfiguriert sind, um eine gleichförmige Latenz zwischen einem senderseitigen Ereignis und einem empfängerseitigen Ereignis zu definieren. Der Sender kann eine Verzögerungsschaltung, eine Steuerschaltung und eine Übertragungsschaltung einschließen. Die Verzögerungsschaltung kann konfiguriert sein, um das senderseitige Ereignis zu empfangen und das senderseitige Ereignis um eine Verzögerungszeit, die einer Framezeit entspricht, zu verzögern. Die Steuerschaltung kann konfiguriert sein, um zu verhindern, dass zusätzliche Frames gestartet werden, während das senderseitige Ereignis verzögert wird. Die Übertragungsschaltung kann konfiguriert sein, um einen Ereignisframe, der dem senderseitigen Ereignis entspricht, nach der Verzögerungszeit zu senden, wobei die Übertragungsschaltung konfiguriert ist, um in dem Ereignisframe Ereigniskennungsbits, die anzeigen, dass der übertragene Frame ein Ereignisframe ist, einzuschließen. Der Empfänger kann eine Empfängerschaltung einschließen, die konfiguriert ist, um den Frame, der als der Ereignisframe übertragen wird, zu decodieren und das empfängerseitige Ereignis als Reaktion auf das Decodieren zu bestätigen.
  • Figurenliste
  • Vorteile der Ausführungsformen der Offenbarung werden Fachleuten aus der folgenden detaillierten Beschreibung und den beigefügten Zeichnungen ersichtlich:
    • 1A zeigt ein Blockdiagramm eines Senders und eines Empfängers mit einer seriellen Kommunikationsverbindung gemäß einer Ausführungsform der Offenbarung.
    • 1B bis 1E zeigen Flussdiagramme, die Verfahren zur Übertragung von Ereignissen über eine serielle Kommunikationsverbindung gemäß Ausführungsformen der Offenbarung zeigen.
    • 2A zeigt ein detailliertes Zeitdiagramm, das die Übertragung bestimmter Ereignisse über eine serielle Kommunikationsverbindung mit einer in der Ereignisübertragung enthaltenen Verzögerungszählung gemäß Ausführungsformen der Offenbarung veranschaulicht.
    • 2B, 2C und 2D zeigen markierte Abschnitte von 2A in einer erweiterten Ansicht.
    • 3A zeigt ein detailliertes Zeitdiagramm, das die Übertragung bestimmter Ereignisse über eine serielle Kommunikationsverbindung mit einer vorbestimmten Verzögerung für die Ereignisübertragung gemäß Ausführungsformen der Offenbarung veranschaulicht.
    • 3B und 3C zeigen markierte Abschnitte von 3A in einer erweiterten Ansicht.
    • 3D zeigt ein detailliertes Zeitdiagramm, das die Übertragung bestimmter Ereignisse über eine serielle Kommunikationsverbindung mit einer vorbestimmten Verzögerung für die Ereignisübertragung gemäß Ausführungsformen der Offenbarung veranschaulicht.
    • 3E und 3F zeigen markierte Abschnitte von 3D in einer erweiterten Ansicht.
    • 4A bis 4C zeigen Zeitdiagramme auf Frameebene, die Zeitsteuerungen für Ereignisse unterschiedlicher Priorität und einige Fehler, die über eine serielle Kommunikationsverbindung auftreten können, gemäß Ausführungsformen der Offenbarung veranschaulichen.
    • 5 zeigt ein Logikdiagramm, das eine Prioritätslogik als ein Beispiel für das Priorisieren von Ereignissen auf einer seriellen Kommunikationsverbindung gemäß Ausführungsformen der Offenbarung veranschaulicht.
    • 6A bis 6C zeigen Zeitdiagramme auf Frameebene, die Ereigniszeitsteuerungen für priorisierte Ereignisse über eine serielle Kommunikationsverbindung gemäß Ausführungsformen der Offenbarung veranschaulichen.
    • 7 zeigt ein Flussdiagramm eines Prozesses zum Priorisieren von Ereignissen gemäß einer Ausführungsform der Offenbarung.
    • 8 zeigt ein Blockdiagramm eines Touchpanel-Systems, das eine Systemsteuerung, eine Berührungssteuerung und ein Anzeigefeld mit seriellen Kommunikationsverbindungen gemäß einer Ausführungsform der Offenbarung einschließt.
  • ART(EN) DER AUSFÜHRUNG DER ERFINDUNG
  • In der folgenden detaillierten Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die einen Teil hiervon bilden und in denen zur Veranschaulichung spezifische beispielhafte Ausführungsformen gezeigt sind, in denen die vorliegende Offenbarung in die Praxis umgesetzt werden kann. Diese Ausführungsformen werden ausreichend detailliert beschrieben, um es einem Durchschnittsfachmann zu ermöglichen, die vorliegende Offenbarung auszuführen. Es können jedoch auch andere Ausführungsformen verwendet werden und Änderungen der Struktur, des Materials und des Prozesses können vorgenommen werden, ohne vom Umfang der Offenbarung abzuweichen. Die hierin dargestellten Veranschaulichungen sollen keine tatsächlichen Ansichten eines bestimmten Verfahrens oder Systems oder einer bestimmten Vorrichtung oder Struktur sein, sondern sind lediglich idealisierte Darstellungen, die zur Beschreibung der Ausführungsformen der vorliegenden Offenbarung verwendet werden. Die hierin dargestellten Zeichnungen sind nicht notwendigerweise maßstabsgetreu. Ähnliche Strukturen oder Komponenten in den verschiedenen Zeichnungen können zur Vereinfachung für den Leser die gleiche oder eine ähnliche Nummerierung beibehalten; die Ähnlichkeit in der Nummerierung bedeutet jedoch nicht, dass die Strukturen oder Komponenten notwendigerweise in Größe, Zusammensetzung, Konfiguration oder einer anderen Eigenschaft identisch sind.
  • Es versteht sich von selbst, dass die Komponenten der Ausführungsformen, wie sie hierin allgemein beschrieben und in den Zeichnungen dargestellt sind, in einer großen Vielfalt unterschiedlicher Konfigurationen angeordnet und gestaltet werden können. Somit soll die folgende Beschreibung verschiedener Ausführungsformen den Umfang der vorliegenden Offenbarung nicht einschränken, sondern lediglich repräsentativ für verschiedene Ausführungsformen sein. Während die verschiedenen Aspekte der Ausführungsformen in Zeichnungen dargestellt werden können, sind die Zeichnungen nicht notwendigerweise maßstabsgetreu gezeichnet, sofern nicht ausdrücklich angegeben.
  • Darüber hinaus sind die gezeigten und beschriebenen spezifischen Implementierungen nur Beispiele und sollten nicht als der einzige Weg zur Implementierung der vorliegenden Offenbarung ausgelegt werden, sofern hierin nicht anders angegeben. Elemente, Schaltungen und Funktionen können in Blockdiagrammform gezeigt werden, um die vorliegende Offenbarung nicht durch unnötige Einzelheiten undeutlich werden zu lassen. Umgekehrt sind gezeigte und beschriebene spezifische Implementierungen nur beispielhaft und sollten nicht als die einzige Möglichkeit zur Implementierung der vorliegenden Offenbarung ausgelegt werden, sofern hierin nicht anders angegeben. Außerdem sind Blockdefinitionen und die Aufteilung von Logik zwischen verschiedenen Blöcken beispielhaft für eine spezifische Implementierung. Es ist für Fachleute ohne weiteres ersichtlich, dass die vorliegende Offenbarung durch zahlreiche andere Partitionierungslösungen ausgeführt werden kann. Details bezüglich Zeitüberlegungen und dergleichen wurden größtenteils weggelassen, wenn solche Details nicht notwendig sind, um ein vollständiges Verständnis der vorliegenden Offenbarung zu erhalten und diese innerhalb der Fähigkeiten von Durchschnittsfachleuten in dem relevanten Fachgebiet liegen.
  • Durchschnittsfachleute werden verstehen, dass Informationen und Signale unter Verwendung einer Vielzahl verschiedener Technologien und Techniken dargestellt werden können. Zum Beispiel können Daten, Anweisungen, Befehle, Informationen, Signale, Bits, Symbole und Chips, auf die in dieser Beschreibung Bezug genommen werden kann, durch Spannungen, Ströme, elektromagnetische Wellen, Magnetfelder oder -partikel, optische Felder oder Partikel oder eine beliebige Kombination davon dargestellt werden. Einige Zeichnungen können Signale zur Übersichtlichkeit der Darstellung und Beschreibung als ein einzelnes Signal veranschaulichen. Es ist für einen Durchschnittsfachmann ersichtlich, dass das Signal einen Bus von Signalen darstellen kann, wobei der Bus eine Vielfalt von Bitbreiten aufweisen kann und die vorliegende Offenbarung auf einer beliebigen Anzahl von Datensignalen, einschließlich eines einzelnen Datensignals, implementiert werden kann.
  • Die verschiedenen veranschaulichenden logischen Blöcke, Module und Schaltungen, die in Verbindung mit den hierin offenbarten Ausführungsformen beschrieben werden, können mit einem Universalprozessor, einem Spezialprozessor, einem digitalen Signalprozessor (DSP), einer anwendungsspezifischen integrierten Schaltung (ASIC), einer anwenderprogrammierbaren Gatteranordnung (FPGA) oder einer anderen programmierbaren Logikvorrichtung, einer diskreten Gate- oder Transistorlogik, diskreten Hardwarekomponenten oder einer beliebigen Kombination davon, die zum Durchführen der hierin beschriebenen Funktionen ausgelegt sind, implementiert oder durchgeführt werden. Ein Allzweckprozessor (der hierin auch als Host-Prozessor oder einfach als Host bezeichnet werden kann) kann ein Mikroprozessor sein, alternativ kann der Prozessor jedoch ein beliebiger herkömmlicher Prozessor, Controller, Mikrocontroller oder Zustandsautomat sein. Ein Prozessor kann auch als eine Kombination von Rechenvorrichtungen, wie etwa eine Kombination aus einem DSP und einem Mikroprozessor, eine Vielzahl von Mikroprozessoren, ein oder mehrere Mikroprozessoren in Verbindung mit einem DSP-Kern oder irgendeine andere derartige Konfiguration implementiert sein. Ein Universalcomputer mit einem Prozessor wird als Spezialcomputer angesehen, während der Universalcomputer so konfiguriert ist, dass er Rechenanweisungen (z. B. Softwarecode) ausführt, die sich auf Ausführungsformen der vorliegenden Offenbarung beziehen.
  • Es wird auch angemerkt, dass die Ausführungsformen in Bezug auf einen Prozess beschrieben werden können, der als ein Flussdiagramm, ein Fließschema, ein Strukturdiagramm oder ein Blockdiagramm dargestellt ist. Obwohl ein Flussdiagramm Betriebsvorgänge als einen sequentiellen Prozess beschreiben kann, können viele dieser Vorgänge in einer anderen Reihenfolge, parallel oder im Wesentlichen gleichzeitig ausgeführt werden. Außerdem kann die Reihenfolge der Vorgänge neu geordnet werden. Ein Prozess kann einem Verfahren, einem Thread, einer Funktion, einer Prozedur, einer Unterroutine, einem Unterprogramm usw. entsprechen. Weiterhin können die hierin offenbarten Verfahren in Hardware, Software oder beiden implementiert sein. Bei Implementierung in Software können die Funktionen als eine oder mehrere Anweisungen oder Code auf computerlesbaren Medien gespeichert oder übertragen werden. Computerlesbare Medien schließen sowohl Computerspeichermedien als auch Kommunikationsmedien, einschließlich aller Medien, die die Übertragung eines Computerprogramms von einem Ort zu einem anderen erleichtern, ein.
  • Es versteht sich, dass jede Bezugnahme auf ein Element in diesem Dokument unter Verwendung einer Bezeichnung wie „erste/r/s“, „zweite/r/s“ usw. die Menge oder Reihenfolge dieser Elemente nicht einschränkt, es sei denn, eine solche Einschränkung wird ausdrücklich angegeben. Vielmehr können diese Bezeichnungen hierin als ein zweckmäßiges Verfahren zum Unterscheiden zwischen zwei oder mehr Elementen oder Instanzen eines Elements verwendet werden. Ein Verweis auf erste und zweite Elemente bedeutet also nicht, dass dort nur zwei Elemente eingesetzt werden dürfen oder dass das erste Element dem zweiten Element in irgendeiner Weise vorhergehen muss. Darüber hinaus kann ein Satz von Elementen, sofern nicht anders angegeben, ein oder mehrere Elemente umfassen.
  • Um Details in Figuren klarer zu machen, können bestimmte markierte Abschnitte einiger Figuren in anderen Figuren in einer erweiterten Ansicht gezeigt sein. In einigen Fällen können Abschnittsmarkierungen Teile einer Figur verdecken, diese sind jedoch in der erweiterten Ansicht klar. Alles, was in einer erweiterten Ansicht gezeigt ist, ist als Teil der entsprechenden Figur zu betrachten, selbst einige Details, die in der entsprechenden Figur durch die Abschnittsmarkierungen verdeckt sein können. Ferner gilt jede Erörterung einer Figur in dieser Offenbarung gegebenenfalls auch für ihre erweiterten Ansichten.
  • Wie hierin verwendet, bedeutet der Begriff „im Wesentlichen“ in Bezug auf einen gegebenen Parameter, eine Eigenschaft oder eine Bedingung und schließt in einem für Fachleute verständlichen Ausmaß ein, dass der gegebene Parameter, die gegebene Eigenschaft oder die gegebene Bedingung mit einem kleinen Grad an Varianz erfüllt ist, wie beispielsweise innerhalb akzeptabler Fertigungstoleranzen. Beispielsweise kann in Abhängigkeit von dem bestimmten Parameter, der Eigenschaft oder der Bedingung, der bzw. die im Wesentlichen erfüllt ist, der Parameter, die Eigenschaft oder die Bedingung zu mindestens 90 % erfüllt, zu mindestens 95 % erfüllt oder sogar zu mindestens 99 % erfüllt sein.
  • Wie hierin verwendet, bedeutet „serielle Kommunikationsverbindung“ eine Kommunikationsverbindung, die Informationen als eine serielle Gruppe von Bits überträgt. Das Protokoll der Verbindung schließt eine Gruppe von Bits als eine Informationsnutzlast ein, die verschiedene Größen aufweisen kann und andere Bits, wie zum Beispiel Startbits, Stoppbits, Paritätsbits und Adressbits, einschließen kann. Die physische Schicht der Verbindung kann ein drahtgebundener Bus, wie zum Beispiel RS-232, I2C und SMBus, sein. Die physische Schicht der Verbindung kann auch drahtlose Signale, wie zum Beispiel Infrared-Data-Association-Signale (IrDA-Signale), sein.
  • Wie hierin verwendet, definiert der Begriff „Frame“ eine Gruppe einer vorbestimmten Anzahl von Bits, die auf einer seriellen Kommunikationsverbindung übertragen werden. Als ein Beispiel kann in seriellen Kommunikationsverbindungen, wie etwa einem Universal Asynchronous Receiver/Transmitter (UART), einem Universal Synchronous Receiver/Transmitter (USRT) oder einem Universal Synchronous/Asynchronous Receiver/Transmitter (USART) ein Frame so definiert sein, dass 10 Bits ein Startbit, eine 8-Bit-Datennutzlast, ein Paritätsbit und ein Stoppbit einschließen sollen. Der Frame für eines dieser seriellen Kommunikationsprotokolle kann auch unterschiedliche Längen aufweisen, wie etwa, nur beispielhaft, dass 8 Bits ein Startbit, eine 7-Bit-Datennutzlast und ein Stoppbit einschließen sollen. Als ein weiteres Beispiel kann ein serielles I2C-Kommunikationsprotokoll (oder andere Protokolle mit mehreren Slave-Vorrichtungen) längere Framegrößen einschließen, um die Aufnahme einer Slave-Adresse sowie einer Datennutzlast zu ermöglichen.
  • Die Bezugnahme in dieser Beschreibung auf „eine Ausführungsform“, „irgendeine Ausführungsform“ oder einen ähnlichen Ausdruck bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, das bzw. die in Verbindung mit der angegebenen Ausführungsform beschrieben wird, in mindestens einer Ausführungsform der vorliegenden Offenbarung enthalten ist. Somit beziehen sich die Ausdrücke „in einer Ausführungsform“, „in irgendeiner Ausführungsform“ und ähnliche Ausdrücke in dieser Beschreibung möglicherweise, aber nicht notwendigerweise, alle auf dieselbe Ausführungsform.
  • Einige hierin beschriebene Ausführungsformen beziehen sich auf Techniken zum Bereitstellen einer gleichförmigen Latenz zwischen einem Auftreten eines Ereignisses an einem Busmaster und seinem Empfang an einem Slave. In einigen Ausführungsformen wird das Ereignis auf einem seriellen Bus kommuniziert und kommt der Indikator des Ereignisses an einem Slave an, der an den seriellen Bus gekoppelt ist. In einigen Ausführungsformen kann die gleichförmige Latenz eine bereits bekannte feste Verzögerung zwischen dem Master und dem Slave sein. In anderen Ausführungsformen kann die gleichförmige Latenz zwischen dem Master und dem Slave kommuniziert werden, wobei Zeitsteuerungsinformationen enthalten sind. Noch weitere hierin beschriebene Ausführungsformen stellen eine Priorisierung von mehreren Ereignissen bereit, die während eines beliebigen gegebenen Frames auftreten können.
  • Bei dedizierten seriellen Kommunikationssystemen besteht manchmal eine Notwendigkeit für das Übertragen von „Nebeninformationen“ von bestimmten Vorkommnissen (z. B. Ereignissen) zwischen regulären Datenkommunikationspaketen (die Übertragung der Nebeninformationen wird hierin als „Ereignisübertragung“ bezeichnet). Die Ereignisübertragung sollte die Hauptdatenkommunikationspakete nicht zerstören, sondern die Ereignisübertragungen sollten dennoch den Zeitpunkt des Ereignisses eindeutig identifizieren. Als ein Beispiel kann die Kommunikationsverbindung auf einem UART oder seiner synchronen Version USRT basieren, und die Kommunikation kann ein U(S)ART-Frame sein.
  • Ferner, wenn ein System mehrere solcher Ereignisse unterstützt, priorisiert das System gemäß einer Ausführungsform der Offenbarung, wenn zwei oder mehrere Ereignisse zu häufig (z. B. zeitlich nahe) auftreten, um in einzelnen Frames übertragen zu werden, und stellt dennoch die richtigen Zeitsteuerungsinformationen bereit. Die vorliegende Offenbarung beschreibt Systeme, Vorrichtungen und Verfahren zum Priorisieren dieser Ereignisse auf eine Weise, mit der versucht wird, sicherzustellen, dass das Ereignis mit der höchsten Priorität übertragen wird, selbst wenn ein Ereignis mit niedrigerer Priorität zuerst kommt, jedoch zeitlich zu nahe ist, als dass die Übertragung des Ereignisses mit niedriger Priorität abgeschlossen werden könnte, bevor die Übertragung des Ereignisses mit hoher Priorität gestartet werden muss.
  • Wenngleich der Hauptzweck einer Kommunikationsverbindung darin bestehen kann, einen bestimmten Datentyp zu übertragen, kann es sein, dass der Sender den Empfänger über bestimmte Ereignisse informieren muss, die an dem Sender stattfinden. Ein nicht einschränkendes Systembeispiel ist ein Mikrocontroller (MCU), der mehrere komplexe Anzeigetreiber auf einer Anzeige, wie zum Beispiel einer Flüssigkristallanzeige (LCD), einer organischen Leuchtdiodenanzeige (OLED-Anzeige) usw., steuert. Die Anzeigetreiber könnten eine komplexe Schaltung für eine kapazitive Berührungsmessung aufweisen, die eine Konfiguration und Steuerung durch die MCU erfordert. Zeitsteuerungsinformationen (z. B. Ereignisse) wie eine horizontale Synchronisierung (HSYNC) und eine vertikale Synchronisierung (VSYNC) könnten erforderlich sein, um Berührungsvorgänge zeitlich mit der Aktualisierungsrate der Anzeige abzustimmen (z. B. zu synchronisieren), um zum Beispiel das durch die Anzeigetreiber eingeführte Rauschen zu kompensieren.
  • Wenngleich sich Ausführungsformen der Offenbarung auf „Ereignisse“, z. B. Ereignisframe“, „Ereigniseinfugungslogik“, „Ereigniswiederherstellungslogik“, beziehen können, ist der Begriff „Ereignis“ nicht auf ein ereignisgesteuertes System beschränkt und soll Nebeninformationen umfassen, die allgemein Nebeninformationen über die regulären Daten, die von einem Sender zu einem Empfänger übertragen werden, einschließen.
  • 1A ist ein Blockdiagramm eines Senders 120 und eines Empfängers 140 mit einer seriellen Kommunikationsverbindung 130 gemäß einer Ausführungsform der vorliegenden Offenbarung. In einer Ausführungsform können der Sender 120 und der Empfänger 140 ein Master und ein Slave sein, die für eine synchrone Kommunikation zum Beispiel über eine serielle Peripherieschnittstelle konfiguriert sind. Der Sender 120 kann einen Prozessor 122, eine Ereigniseinfügungslogik 124 und eine serielle Schnittstelle 126 einschließen. Der Prozessor 122 kann konfiguriert sein, um reguläre Daten über die Kommunikationsverbindung 130 zu dem Empfänger 140 zu senden. Die Ereigniseinfügungslogik 124 kann konfiguriert sein, um Ereignisinformationen unter Verwendung der Kommunikationsverbindung 130 an den Empfänger 140 bereitzustellen. Die Ereignisinformationen können sich auf Ereignisse, die an dem Sender 120 erzeugt werden, oder, in einer anderen Ausführungsform, an den Sender 120 bereitgestellte Ereignisinformationen über Ereignisse außerhalb des Senders 120 beziehen. Als ein nicht einschränkendes Beispiel können Ereignisinformationen Zeitsteuerungsinformationen, Ereignistypinformationen, Statusinformationen usw. einschließen. In verschiedenen Ausführungsformen kann die Ereigniseinfügungslogik 124 konfiguriert sein, um das Ereignis in einen seriellen Datenstrom einzufügen, der an der seriellen Schnittstelle 126 codiert und auf der Kommunikationsverbindung 130 übertragen wird. Die serielle Schnittstelle 126 und die serielle Schnittstelle 146 können konfiguriert sein, um Daten zur Übertragung über die Kommunikationsverbindung 130 in Frames zu übersetzen und Daten aus übertragenen Frames wiederherzustellen. Einige Routinenelemente in Bezug auf eine synchrone Kommunikation sind nicht gezeigt, um 1A zu vereinfachen, wie etwa die Taktleitung (Ck-Leitung).
  • Auf der Seite des Empfängers 140 kann der Empfänger 140 eine Ereigniswiederherstellungslogik 142, einen Prozessor 144 und eine serielle Schnittstelle 146 einschließen. Die Ereigniswiederherstellungslogik 142 kann konfiguriert sein, um Ereignisinformationen gemäß den verschiedenen Ausführungsformen, die in dieser Offenbarung beschrieben sind, wiederherzustellen.
  • Während sich die Ausführungsformen, die in Bezug auf 1 beschrieben sind, auf eine synchrone Kommunikation beziehen, versteht der Fachmann, dass die Prinzipien auf eine asynchrone Kommunikation anwendbar sind.
  • Eine allgemeine Beschreibung von Prozessen zur Übertragung von Ereignisframes folgt unter Bezugnahme auf 1B bis 1E.
  • 1B zeigt ein Flussdiagramm einer Ereignisübertragung mit einer gleichförmigen Verzögerung basierend auf einem übertragenen Verzögerungswert gemäß einer Ausführungsform der Offenbarung. In Operation 150 wird ein Ereignis empfangen. Das Ereignis kann sich auf ein Ereignis beziehen, das an einem Sender erzeugt wird, oder von dem Sender für ein externes Ereignis empfangen werden. In Operation 152 wird eine Ereignisverzögerung bestimmt, wobei die Ereignisverzögerung als die Zeit zwischen einer vordefinierten Bitposition eines vorliegenden Frames, der übertragen wird, wenn das Ereignis auftritt, und dem Ereignis definiert ist. In Operation 154 wird der Ereignisframe, der dem Ereignis entspricht, erzeugt und wird die Ereignisverzögerung in ein Ereignisverzögerungsfeld des Ereignisframes eingefügt. Als ein nicht einschränkendes Beispiel kann der Verzögerungswert eine Taktzählung oder ein Wert sein, von dem eine Zeit oder eine Taktzählung wiederherstellbar ist. In einer Ausführungsform kann der Verzögerungswert anzeigen, wo in dem vorliegenden Frame (d. h. dem laufenden Frame) das Ereignis im Vergleich zu einem vordefinierten Punkt in dem vorliegenden Frame (z. B. dem Start des vorliegenden Frames, dem Ende des Frames usw.) aufgetreten ist. Wenn keine Übertragung andauerte oder der Ereignisframe ansonsten nicht verzögert wurde, dann kann der Verzögerungswert keine Verzögerung oder „0“ anzeigen. In Operation 156 wird der Ereignisframe, der den Verzögerungswert aufweist, über eine serielle Kommunikationsverbindung gesendet. Wenn es einen laufenden Frame gab, dann kann der Ereignisframe in einer Ausführungsform unmittelbar aufeinanderfolgend mit dem laufenden Frame gesendet werden.
  • 1C zeigt ein Flussdiagramm einer Ereignisübertragung mit einer gleichförmigen Verzögerung basierend auf einem übertragenen Verzögerungswert gemäß einer Ausführungsform der Offenbarung. In Operation 160 wird ein Ereignisframe, einschließlich einer Ereignisverzögerung, über eine serielle Kommunikationsverbindung empfangen. In Operation 162 wird der Ereignisframe decodiert, um die Ereignisverzögerung und einen Ereignisindikator wiederherzustellen. In Operation 164 wird eine Anzahl von Taktzyklen, die der Ereignisverzögerung entspricht, gewartet. In Operation 166 wird ein empfängerseitiges Ereignis als Reaktion auf den Ereignisindikator bestätigt, nachdem die Anzahl von Taktzyklen gewartet wurde.
  • 1D zeigt ein Flussdiagramm einer Ereignisübertragung mit einer gleichförmigen Verzögerung gemäß einer Ausführungsform der Offenbarung. In Operation 170 wird ein Ereignis empfangen. Das Ereignis kann bezogen auf ein Ereignis empfangen werden, das an einem Sender erzeugt wird, oder von dem Sender für ein externes Ereignis empfangen werden. In Operation 172 wird das Ereignis gemäß einer gleichförmigen Verzögerung verzögert. In einer Ausführungsform kann die gleichförmige Verzögerung die Länge eines Frames sein. In Operation 174 wird ein Ereignisframe erzeugt, der dem Ereignis entspricht. In einer Ausführungsform kann der Ereignisframe einen Ereignisindikator, der anzeigt, welchem Ereignis eines Satzes von Ereignissen der Ereignisframe entspricht, und einen Ereignisframeindikator, der anzeigt, dass der Ereignisframe tatsächlich ein Ereignisframe ist, einschließen. In Operation 176 wird der verzögerte Ereignisframe auf einer seriellen Kommunikationsverbindung übertragen.
  • 1E zeigt ein Flussdiagramm einer Ereignisübertragung mit einer gleichförmigen Verzögerung gemäß einer Ausführungsform der Offenbarung. In Operation 180 wird ein Ereignisframe über eine serielle Kommunikationsverbindung empfangen. In Operation 182 wird der Ereignisframe decodiert, um einen Ereignisindikator wiederherzustellen. In Operation 184 wird ein empfängerseitiges Ereignis als Reaktion auf den wiederhergestellten Ereignisindikator sofort bestätigt.
  • Der Fachmann wird verstehen, dass ein Ereignisframe ein oder mehrere Felder umfassen kann. Zum Beispiel kann ein Frame Felder aufweisen, die ein oder mehrere Bits umfassen, wobei das eine oder die mehreren Bits so konfiguriert werden können, dass sie die verschiedenen Informationen anzeigen, die in Verbindung mit den verschiedenen Ausführungsformen der vorliegenden Offenbarung beschrieben sind. Der Fachmann wird viele Umsetzungen für die Felder und die Bits, die die Felder umfassen, erkennen.
  • 2A ist ein detailliertes Zeitdiagramm, das die Übertragung bestimmter Ereignisse über eine serielle Kommunikationsverbindung mit einer in der Ereignisübertragung enthaltenen Verzögerungszählung (z. B. einem übertragenen Zählungswert) gemäß einer Ausführungsform der Offenbarung veranschaulicht. Für die Erörterung von 2A zeigen 2B bis 2D markierte Abschnitte von 2A in einer erweiterten Ansicht, um die Details von 2A leichter erkennbar zu machen. Wenn ein Ereignis auftritt, erzeugt die Ereigniseinfügungslogik 124 in dieser Ausführungsform einen Ereignisframe, und der Ereignisframe wird unmittelbar aufeinanderfolgend (d. h. unmittelbar danach) mit einem vorliegenden Frame, für den die Übertragung andauert, gesendet. Der Ereignisframe enthält ein Verzögerungsfeld, das anzeigt, wo (oder wann) in dem vorliegenden Frame (d. h. dem laufenden Frame) das Ereignis im Vergleich zu einem vordefinierten Punkt in dem vorliegenden Frame (z. B. dem Start des vorliegenden Frames) aufgetreten ist. Wenn somit keine Frameübertragung andauert, wird der Ereignisframe sofort mit dem Verzögerungswert 0 gesendet. Der Ereignisframe hat die höchste Priorität, sodass er vor anderen ausstehenden Datenframes gesendet wird.
  • 2A zeigt die Übertragung von Ereignissen mit einer gleichförmigen Verzögerung basierend auf einem übertragenen Zählerwert für drei verschiedene Positionen des Ereignisses bezogen auf den vorliegenden Frame, der übertragen wird. 2A zeigt als ein Beispiel eines Universal Synchronous Receiver and Transmitter (USRT), wobei Daten an der positiven Flanke des Takts erzeugt werden und der Frame auf der TxD-Leitung aus einem Stoppbit, 9 Datenbits, keinen Stoppbits besteht und die Signalleitung, die hoch ist, einen Ruhezustand darstellt. Die Takt- und TxD-Signale sind als die oberen zwei Wellenformen gezeigt.
  • 2A zeigt drei Ereignisübertragungsbeispiele - Signalgruppe 220, Signalgruppe 240 und Signalgruppe 260 - wobei Ereignisse zur Verzögerungszeit 9, 4 und 0 bezogen auf den vorliegenden Frame, der auf dem TxD-Signal gezeigt ist, auftreten. Die als Signalgruppe 260 gezeigte Zeitreferenz (DLY=0) entspricht dem Taktzyklus vor dem Startbit. Als ein nicht einschränkendes Beispiel kann das Ereignis ein physischer Eingangspin oder ein Software-erzeugtes Ereignis sein. In dem Fall eines physischen Pins können die physischen Pins konfiguriert sein, um ein Ereignis an einer ansteigenden Flanke, einer fallenden Flanke oder bei einem Umschaltsignalwert zu erzeugen.
  • In einer Ausführungsform, in der das System mehrere Ereignisse unterstützt, kann die Ereigniseinfügungslogik konfiguriert sein, um eine Ereignisnummer in dem Ereignisframe (zum Beispiel als EV0 und EV1 in 2A gezeigt) zusammen mit einem Verzögerungswert (zum Beispiel als DL0, DL1, DL2 und DL3 in 2A gezeigt) in dem Ereignisframe zu codieren. In verschiedenen Ausführungsformen können Ereignisnummern (auf der Sender- und/oder Empfängerseite) Ereignisquellen, Ereignissubmodulen, Typen von Ereignissen, vordefinierten Informationen, die dem Vorgenannten zugeordnet sind, und mehr zugeordnet sein. Bei mehreren Ereignissen können mehrere Ereignisse innerhalb (z. B. während) des gleichen vorliegenden Frames auftreten. Je nach Anwendung kann dies durch Ereigniseinfügungslogik 124 behoben werden, die konfiguriert ist zum: (1) in einer Ausführungsform, Priorisieren eines Ereignisses und Verwerfen des bzw. der anderen Ereignisse(s), (2) in einer anderen Ausführungsform, Priorisieren eines Ereignisses und Senden des bzw. der verbleibenden Ereignisframe(s) unmittelbar aufeinanderfolgend, aber mit einem FEHLER-Bit (in 2A nicht gezeigt), um eine falsche Zeitsteuerung anzuzeigen, oder (3) in noch einer anderen Ausführungsform, Senden als zwei Ereignisse, aber Reservieren eines der Verzögerungswerte für die Fehlersignatur.
  • Auf der Empfängerseite kann die Ereigniswiederherstellungslogik des Empfängers konfiguriert sein, um einen Ereignisframe zu decodieren, um den Ereignisverzögerungswert zu finden (z. B. in Takten, die durch ansteigende und fallende Flanken von Ck definiert sind). Der Empfänger zählt dann eine Anzahl von Takten basierend auf dem Ereignisverzögerungswert ab einem vordefinierten Punkt in dem empfangenen Ereignisframe und bestätigt die richtige Ereignisleitung und das Ende der Verzögerung. In dem in 2A gezeigten Beispiel zählt die Ereigniswiederherstellungslogik ab dem letzten Bit des Ereignisframes. Wie gezeigt, werden die Ereignisse von der Senderseite dann mit einer festen Latenz von 21 Takten auf der Empfängerseite wiederhergestellt. In verschiedenen Ausführungsformen kann die feste Latenz mit Registern implementiert sein und kann die Größe der festen Latenz mindestens teilweise von der Anzahl von Registern in dem Datenpfad abhängen, von wo die Zähler auf der Sender- und Empfängerseite zu zählen beginnen, usw.
  • Für die Signalgruppe 220 beträgt eine Verzögerung 222 zwischen dem Start des vorliegenden Frames 212 und dem Auftreten des Ereignisses 224 an dem Sender (EV IN) 9 Takte. Das Ereignis 224 wird als ein Ereignisframe 214 übertragen, wenn der vorliegende Frame 212 abgeschlossen ist. Am Ende des Ereignisframes 214 beginnt der Empfänger mit dem Zählen der Anzahl von Takten, die in dem Ereignisframe 214 als DL0-DL3 (9 Takte in diesem Beispiel) codiert sind, um eine Verzögerung 232 zu erzeugen. In einer Ausführungsform kann der Empfänger auch die Ereignisnummern EV0 und EV1 verwenden, um die Quelle des Ereignisses 224 für diesen Ereignisframe 214 zu bestimmen. Wenn die Zählung endet, bestätigt der Empfänger ein empfängerseitiges Ereignis 234 (EV OUT), das eine gleichförmige Latenz von 21 Takten bezogen auf den Zeitpunkt ist, zu dem das Ereignis 224 ursprünglich an dem Sender aufgetreten ist.
  • Für die Signalgruppe 240 beträgt eine Verzögerung 242 zwischen dem Start des vorliegenden Frames 212 und dem Auftreten des Ereignisses 244 an dem Sender (EV IN) 4 Takte. Das Ereignis 244 wird als ein Ereignisframe 214 übertragen, wenn der vorliegende Frame 212 abgeschlossen ist. Am Ende des Ereignisframes 214 beginnt der Empfänger mit dem Zählen der Anzahl von Takten, die in dem Ereignisframe 214 auf DL0-DL3 (4 in diesem Fall) codiert sind, um eine Verzögerung 252 zu erzeugen. Der Empfänger kann auch die Ereignisnummern EV0 und EV1 verwenden, um die Quelle des Ereignisses 244 für den Ereignisframe 214 zu bestimmen. Wenn die Zählung endet, bestätigt der Empfänger ein empfängerseitiges Ereignis 254 an dem Empfänger (EV OUT), das eine gleichförmige Latenz von 21 Takten bezogen auf den Zeitpunkt ist, zu dem das Ereignis 244 ursprünglich an dem Sender aufgetreten ist.
  • Für die Signalgruppe 260 beträgt eine Verzögerung 262 zwischen dem Start des vorliegenden Frames 212 und dem Auftreten des Ereignisses 264 an dem Sender (EV IN) 0 Takte. Das Ereignis 264 wird als ein Ereignisframe 214 übertragen, wenn der vorliegende Frame 212 abgeschlossen ist. Am Ende des Ereignisframes 214 beginnt der Empfänger mit dem Zählen der Anzahl von Takten, die in dem Ereignisframe 214 auf DL0-DL3 (0 in diesem Fall) codiert sind, um eine Verzögerung 272 zu erzeugen. Der Empfänger kann auch die Ereignisnummern EV0 und EV1 verwenden, um die Quelle des Ereignisses 264 für diesen Ereignisframe 214 zu bestimmen. Wenn die Zählung endet, bestätigt der Empfänger ein empfängerseitiges Ereignis 274 an dem Empfänger (EV_OUT), das eine gleichförmige Latenz von 21 Takten bezogen auf den Zeitpunkt ist, zu dem das Ereignis 264 ursprünglich an dem Sender aufgetreten ist.
  • Der Fachmann wird verstehen, dass die Verzögerungsbits und die Ereignisnummernbits bezogen aufeinander anders angeordnet sein können, als mit Bezug auf 2A beschrieben. Darüber hinaus können andere Ausführungsformen eine unterschiedliche Anzahl von Bits oder andere Codierungen zum Definieren der Ereignisverzögerung verwenden, als mit Bezug auf 2A beschrieben. Außerdem können andere Ausführungsformen eine unterschiedliche Anzahl von Bits (einschließlich keiner) oder andere Codierungen zum Definieren der Quelle des Ereignisses verwenden, als mit Bezug auf 2A beschrieben. Wie bei Bits in dem Ereignisframe nach den EV-Bits gezeigt, schließt der Rest des Ereignisframes (der an verschiedenen Positionen innerhalb des Frames angeordnet sein kann) einen Satz von eindeutigen Datenbits ein, die diesen Frame als einen Ereignisframe identifizieren.
  • Somit können, während 2A ein spezielles Protokoll für eine serielle Kommunikationsverbindung gemäß einer Ausführungsform der Offenbarung zeigt, andere Ausführungsformen andere Protokolle einschließen, die verschiedene Datengrößen und verschiedene Steuerbits einschließen, und ein Paket kann mehrere physische Frames, nicht nur einen einzigen Frame, wie in 2A gezeigt, einschließen.
  • 3A zeigt ein detailliertes Zeitdiagramm, das die Übertragung bestimmter Ereignisse über eine serielle Kommunikationsverbindung mit einer vordefinierten Verzögerung für die Ereignisframeübertragung veranschaulicht. In dieser Ausführungsform kann, wenn ein Ereignis auftritt, das Ereignis an dem Sender für eine Zeit, die der Länge eines Frames/Pakets entspricht, gespeichert werden. Für die Erörterung von 3A zeigen 3B und 3C markierte Abschnitte von 3A in einer erweiterten Ansicht, um die Details von 3A leichter erkennbar zu machen. Als nicht einschränkende Beispiele kann die Ereignisspeicherung erreicht werden, indem das Ereignis in ein Schieberegister dieser Größe abgelegt wird oder indem das Ereignis in einem Registerbit gespeichert wird, während ein Zähler bis null herunterzählt. Wenn der potenziell laufende Frame übertragen wird, hat der Ereignisframe die höchste Priorität, sodass kein neuer Frame gestartet wird, bis die Verzögerung abläuft und der Ereignisframe erzeugt wird. Diese Verzögerung stellt eine gleichförmige Latenz von dem Auftreten des Ereignisses an dem Sender sicher, bis der Ereignisframe an dem Empfänger empfangen wird.
  • 3A zeigt als ein Beispiel einen Universal Synchronous Receiver and Transmitter (USRT), wobei Daten an der positiven Flanke des Takts erzeugt werden und der Frame auf der TxD-Leitung ein Stoppbit, 9 Datenbits und keine Stoppbits einschließt und die Signalleitung, die hoch ist, einen Ruhezustand darstellt.
  • 3A zeigt Beispiele, bei denen Ereignisse zum Zeitpunkt 0 (Signalgruppe 320) und zum Zeitpunkt 4 (Signalgruppe 360) auftreten. Die Zeitreferenz (DLY=0) entspricht dem Taktzyklus vor dem Startbit. Als ein nicht einschränkendes Beispiel kann ein Ereignis ein physischer Eingangspin oder ein Software-erzeugtes Ereignis sein. In dem Fall eines physischen Eingangspins können die physischen Pins konfiguriert sein, um das Ereignis an einer ansteigenden Flanke, einer fallenden Flanke oder bei einem Umschaltsignalwert zu erzeugen.
  • 3A zeigt auch, dass für ein synchrones Kommunikationsprotokoll der Sender und der Empfänger mit einer anderen (höheren) Frequenz als die Kommunikationsverbindung arbeiten können und ein Ereignis möglicherweise mit dem Kommunikationsmodul synchronisiert werden muss. In einem asynchronen Kommunikationsprotokoll kann eine Verzögerung ab einem Ereignis bis zum Erzeugen eines Ereignisframes bei einer Auflösung eines Systemtakts fest sein.
  • Wie bei der in Bezug auf 2A erörterten Ausführungsform kann eine Ereignisnummer in einem Ereignisframe codiert sein, wenn ein System unter Verwendung einer in 3A (oder 3D) gezeigten Ausführungsform einer Ereignisübertragung mehrere Ereignisse unterstützt. Bei mehreren Ereignissen können die mehreren Ereignisse innerhalb des gleichen vorliegenden Frames auftreten. Je nach Anwendung kann dies durch eine Einfügungslogik behoben werden, die konfiguriert ist zum: (1) in einer Ausführungsform, Priorisieren eines Ereignisframes und Verwerfen der anderen Ereignisframes, oder (2) in einer anderen Ausführungsform, Priorisieren eines Ereignisframes und Senden der verbleibenden Ereignisframes unmittelbar aufeinanderfolgend, aber mit einem FEHLER-Bit (in 3A als „ERR“ gezeigt), um anzuzeigen, dass die Latenz möglicherweise nicht gleichförmig ist.
  • Auf der Empfängerseite bestätigt der Empfänger seinen Ereignisausgang sofort (oder nach einer festgelegten Verzögerung), wenn ein Ereignisframe empfangen wird.
  • In dem Beispiel in 3A wird dann, wie gezeigt, ein Ereignis von der Senderseite auf der Empfängerseite mit einer gleichförmigen Latenz von 23 Takten bezogen auf den Zeitpunkt, zu dem das Ereignis tatsächlich aufgetreten ist, erneut erzeugt. Die Größe der gleichförmigen Latenz hängt von der Anzahl von Registern in dem Datenpfad ab, davon, von wo die Zähler auf der Sender- und Empfängerseite zu zählen beginnen, usw.
  • Für die Signalgruppe 320 ist die Verzögerung als 0 Takte gezeigt. Das Ereignis 322 wird für einen Ereignisverzögerungsframe 324 (z. B. 10 Zyklen) verzögert und wird dann als ein Ereignisframe 326 von dem Sender übertragen. Die Verzögerung in dem Sender stellt sicher, dass jeder laufende Frame, der übertragen wird, wenn das Ereignis 322 auftritt, vor (oder gleichzeitig mit) dem Ende der Verzögerung abgeschlossen ist. Am Ende des Ereignisframes 326 bestätigt der Empfänger ein empfängerseitiges Ereignis 328 (EV_OUT), das eine gleichförmige Latenz von 23 Takten bezogen auf den Zeitpunkt ist, zu dem das Ereignis 322 ursprünglich an dem Sender aufgetreten ist.
  • 3D zeigt ein weiteres detailliertes Zeitdiagramm, das die Übertragung bestimmter Ereignisse über eine serielle Kommunikationsverbindung mit einer vordefinierten Verzögerung für die Ereignisframeübertragung veranschaulicht. Für die Erörterung von 3D zeigen 3E und 3F markierte Abschnitte von 3D in einer erweiterten Ansicht, um die Details von 3D leichter erkennbar zu machen. Für die Signalgruppe 360 ist die Verzögerung als 4 Takte gezeigt. Das Ereignis 362 wird für einen Ereignisverzögerungsframe 364 (z. B. 10 Zyklen) verzögert und wird dann als ein Ereignisframe 366 von dem Sender übertragen. Die Verzögerung in dem Sender stellt sicher, dass jeder laufende Frame, der übertragen wird, wenn das Ereignis 362 auftritt, vor (oder gleichzeitig mit) dem Ende der Verzögerung abgeschlossen ist. Es sei darauf hingewiesen, dass in diesem Beispiel auf der seriellen Kommunikationsverbindung eine Ruhezeit 368 zwischen dem Frame, der bei Auftreten des Ereignisses 362 übertragen wird, und dem Ereignisframe 366 auftritt. Am Ende des Ereignisframes 366 bestätigt der Empfänger ein empfängerseitiges Ereignis 368 (EV OUT), das eine gleichförmige Latenz von 23 Takten bezogen auf den Zeitpunkt ist, zu dem das Ereignis 362 ursprünglich an dem Sender aufgetreten ist.
  • Wie oben in Bezug auf 2A erörtert, kann der Ereignisframe Bits einschließen, in dem Ereignisframe 366 als EV0-EV2 gezeigt, um die Quelle des Ereignisses 362 und einen Satz von eindeutigen Datenbits, die dies als einen Ereignisframe identifizieren, anzuzeigen.
  • Wenngleich 3A und 3D ein spezielles Protokoll für eine serielle Kommunikationsverbindung veranschaulichen, können andere Ausführungsformen andere Protokolle einschließen, die verschiedene Datengrößen, Nummern und Typen von Steuerbits, unterschiedliche Codierungsschemata einschließen, und das Paket kann mehrere physische Frames, nicht nur einen einzigen Frame, wie in 3A und 3D gezeigt, einschließen.
  • In ihren verschiedenen Ausführungsformen ermöglicht die vorliegende Offenbarung eine Kommunikation der Zeitsteuerung für Ereignisse auf seriellen
  • Kommunikationsverbindungen ohne die Notwendigkeit zusätzlicher Leitungen zusätzlich zu denen, die von dem Kommunikationssystem benötigt werden. Das Ereignis wird von einem Slave als eine gleichförmige Latenz ab dem Auftreten auf der Senderseite unabhängig davon wahrgenommen, wo es in dem Kommunikationspaket geschieht.
  • Eine Beschreibung der Priorisierung der Ereignisübertragung folgt mit Bezug auf 4A bis 4C, 5 und 6A bis 6C gemäß Ausführungsformen der Offenbarung. In einer Ausführungsform kann Priorisierungslogik Teil einer Ereigniseinfügungslogik sein, wie etwa der Ereigniseinfügungslogik 124 (1A).
  • 4A bis 4C zeigen Zeitdiagramme auf Frameebene, die verschiedene Zeitsteuerungen für Ereignisse unterschiedlicher Priorität und einige Fehler, die über eine serielle Kommunikationsverbindung auftreten können - Fehler, die von Ausführungsformen der Offenbarung behandelt werden -, veranschaulichen. Die durchgezogene Linie stellt Ereignisse mit höherer Priorität dar, und die gestrichelte Linie stellt Ereignisse mit niedrigerer Priorität dar. In ähnlicher Weise veranschaulichen die Kästchen mit durchgezogenen Linien die Kommunikationsframes, die Informationen über das Ereignis mit höherer Priorität enthalten, und veranschaulichen die Kästchen mit gestrichelten Linien die Kommunikationsframes, die Informationen über das Ereignis mit niedrigerer Priorität enthalten.
  • In 4A tritt zuerst ein Ereignis mit niedrigerer Priorität 410 auf. Da jedoch der Kommunikationsframe 414 eine bestimmte Dauer aufweist, führt ein Senden des Ereignisses mit niedrigerer Priorität 410 sofort, wenn es auftritt, zu einem Verlust eines Ereignisses mit höherer Priorität 412 (mindestens kann es keine korrekte Zeitsteuerung aufweisen), obwohl es eine höhere Priorität aufweist, weil das Ereignis mit höherer Priorität 412 warten muss, bis ein Ereignisframe mit niedrigerer Priorität 416 abgeschlossen ist. Somit wird, wenngleich der Ereignisframe mit niedrigerer Priorität 416 mit der richtigen Zeitsteuerung gesendet werden kann, ein Ereignisframe mit höherer Priorität 418 mit einer Fehleranzeige gesendet, um anzuzeigen, dass eine Inkonsistenz zwischen der Latenz zu dem Zeitpunkt, als das Ereignis mit höherer Priorität 412 aufgetreten ist, und dem Zeitpunkt, zu dem der Ereignisframe mit höherer Priorität 418 empfangen wird, bestehen kann.
  • In 4B und 4C treten das Ereignis mit höherer Priorität und das mit niedrigerer Priorität zeitlich sehr nahe auf, sodass Jitter beim Abtasten des Ereignisses eine zufällige Reihenfolge dafür erzeugen kann, wann die Ereignisframes übertragen werden. In 4B hat ein Ereignis mit höherer Priorität 422 gewonnen, weshalb ein Ereignisframe mit höherer Priorität 426 zuerst und zum richtigen Zeitpunkt gesendet wird. Somit wartet ein Ereignis mit niedrigerer Priorität 420 auf den nächsten Frame und wird mit einer Fehleranzeige gesendet, um anzuzeigen, dass eine Inkonsistenz zwischen der Latenz zu dem Zeitpunkt, als das Ereignis mit niedrigerer Priorität 420 aufgetreten ist, und dem Zeitpunkt, zu dem ein Ereignisframe mit niedrigerer Priorität 428 empfangen wird, bestehen kann. In 4C hat ein Ereignis mit niedrigerer Priorität 430 gewonnen, weshalb ein Ereignisframe mit niedrigerer Priorität 436 zuerst und zum richtigen Zeitpunkt gesendet wird. Somit wartet ein Ereignis mit höherer Priorität 432 auf den nächsten Frame und wird mit einer Fehleranzeige gesendet, um anzuzeigen, dass eine Inkonsistenz zwischen der Latenz zu dem Zeitpunkt, als das Ereignis mit höherer Priorität 432 aufgetreten ist, und dem Zeitpunkt, zu dem ein Ereignisframe mit höherer Priorität 438 empfangen wird, bestehen kann.
  • Ein Verfahren zum Kompensieren dieser Inkonstanzen beim Priorisieren von Ereignissen besteht darin, Übertragungshardware (die Softwareimplementierungen einschließen kann) zu verwenden, die eine gleichförmige Latenz erzeugt, indem eine Verzögerung von dem Ereignis gleich der Framelänge vor dem Senden des Ereignisframes eingefügt wird, wie zum Beispiel unter Verwendung der in 3 veranschaulichten Ausführungsform. Die Verzögerungszeit kann verwendet werden, um eine korrekte Priorität zu erzwingen.
  • In 3 sind die Ereignisse alle für einen Frame verzögert. Wenn die Verzögerungsdauer abläuft, prüft der Sender, ob ausstehende Ereignisse mit höherer Priorität in der Pipeline sind. Wenn dies der Fall ist, priorisiert der Sender die Ereignisse mit höherer Priorität, indem er keine neuen Frames startet, bis das Ereignis mit höherer Priorität bereit ist, übertragen zu werden, sendet das Ereignis mit hoher Priorität und sendet dann danach alle Ereignisse mit niedrigerer Priorität und in der richtigen Prioritätsreihenfolge - mit einem gesetzten Fehler-Flag.
  • 5 zeigt ein Logikdiagramm, das eine Prioritätslogik 510 als ein Beispiel für das Priorisieren von Ereignissen auf einer seriellen Kommunikationsverbindung gemäß Ausführungsformen der Offenbarung veranschaulicht. 5 veranschaulicht eine mögliche Implementierung dieses Verhaltens; viele andere Schaltungen und logische Implementierungen können verwendet werden, um die Priorisierung zu erreichen. Die Verzögerung von Ereignissen ist in 5 als eine Verzögerungsschaltung 520, hier Schieberegister, veranschaulicht. Ereignissubmodule (EV0, EV1,...EVn) sind in 5 durch horizontale gestrichelte Linien umgrenzt. Wie oben angegeben, können Zähler auch für eine Verzögerung verwendet werden. In diesem Beispiel weist EV0 die höchste Priorität auf, während steigende Ereignisnummern eine abnehmende Priorität aufweisen. Der Ausgang von einem NOR-Gate für jedes Ereignissubmodul zeigt an, dass bei diesem Ereignissubmodul kein ausstehendes Ereignis vorhanden ist. Eine vertikale AND-Leitung 512 qualifiziert jedes Ereignis, indem bei jedem Submodul angezeigt wird, dass keine ausstehenden Ereignisse mit höherer Priorität vorhanden sind. Wenn ein Ereignis die letzte Stufe der Verzögerungsschaltung 520 erreicht hat, dann wird der qualifizierte Ereignisausgang bestätigt, wenn keine ausstehenden Ereignisse mit höherer Priorität vorhanden sind. Wenn ausstehende Ereignisse mit höherer Priorität vorhanden sind, wird die Verzögerungsschaltung 520 für dieses Ereignissubmodul gestoppt, bis alle Ereignisse mit höherer Priorität übertragen wurden. Somit wird ungeachtet der Ankunftszeit von Ereignissen EV0 bis EVn innerhalb eines gegebenen Datenframes (oder einer Sequenz von Ereignisframes) das Ereignis mit der höchsten Priorität zuerst gesendet, gefolgt von ausstehenden Ereignissen mit niedrigerer Priorität in der richtigen Prioritätsreihenfolge.
  • 6A bis 6C sind Zeitdiagramme auf Frameebene, die Ereigniszeitsteuerungen für priorisierte Ereignisse über eine serielle Kommunikationsverbindung veranschaulichen.
  • Die durchgezogenen Linien stellen Ereignisse mit höherer Priorität dar, und die gestrichelten Linien stellen Ereignisse mit niedrigerer Priorität dar. In ähnlicher Weise veranschaulichen die Kästchen mit durchgezogenen Linien die Kommunikationsframes, die Informationen über das Ereignis mit höherer Priorität enthalten, und veranschaulichen die Kästchen mit gestrichelten Linien die Kommunikationsframes, die Informationen über das Ereignis mit niedrigerer Priorität enthalten.
  • Die Zeitsteuerung in 6A bis 6C zeigt Ergebnisse, die für ein Ereignis mit höherer Priorität bezogen auf ein Ereignis mit niedrigerer Priorität unter Verwendung der gleichförmigen Verzögerungspriorisierung, die mit Bezug auf 5 erörtert wurde, erreicht würden. In 6A bis 6C zeigt EXT an, wann das Ereignis tatsächlich als Eingang in die Prioritätslogik auftritt, und zeigt INT an, wann das Ereignis zur Übertragung verfügbar wäre (d. h. am Ende des Schieberegisters, wodurch eine gleichförmige Verzögerung von einem Frame erzeugt wird).
  • 6A veranschaulicht eine Situation, bei der ein Ereignis mit höherer Priorität 602 (durchgezogene Linien) nach einem Ereignis mit niedrigerer Priorität 606 (gestrichelte Linien) auftritt - aber zeitlich zu nahe, um in verschiedenen Frames gesendet zu werden. Ein verzögertes Ereignis mit höherer Priorität 604 (INT) gewinnt in der Prioritätslogik und wird als ein Ereignisframe mit höherer Priorität 610 gesendet, wenn die gleichförmige Verzögerung vorbei ist, und wird somit mit einer gleichförmigen Latenz bezogen auf den Zeitpunkt, zu dem das Ereignis mit höherer Priorität 602 an dem Sender aufgetreten ist, empfangen. Das Ereignis mit niedrigerer Priorität 606 hat in der Prioritätslogik verloren und wird somit als ein Ereignisframe mit niedrigerer Priorität 612 nach dem Ereignisframe mit höherer Priorität 610 mit einer Fehleranzeige gesendet, um anzuzeigen, dass eine Inkonsistenz zwischen der Latenz zu dem Zeitpunkt, als das Ereignis mit niedrigerer Priorität 606 aufgetreten ist, und dem Zeitpunkt, zu dem der Ereignisframe mit niedrigerer Priorität 612 empfangen wird, bestehen kann.
  • 6B veranschaulicht eine Situation, in der die zwei Ereignisse (Ereignis mit höherer Priorität 622 und Ereignis mit niedrigerer Priorität 626) gleichzeitig oder nahezu gleichzeitig auftreten. Ein Zeitsteuerungs-Jitter in dem Abtastprozess bestimmt, welches Ereignis zuerst registriert wird. Wenn jedoch das erste auftretende Ereignis für einen Frame verzögert wurde, prüft die Prioritätslogik auf ausstehende Ereignisse mit höherer Priorität. Auf diese Weise gewinnt das Ereignis mit höherer Priorität 622 immer.
  • Wie in 6B gezeigt, zeigt Option A an, dass zum Zeitpunkt des Abtastens der Ereignisse das Ereignis mit höherer Priorität 622 zuerst abgetastet wurde und ein Ereignisframe mit höherer Priorität 630 für das Ereignis mit höherer Priorität 622 nach der gleichförmigen Verzögerung gesendet wurde und somit mit einer gleichförmigen Latenz bezogen auf den Zeitpunkt, zu dem das Ereignis mit höherer Priorität 622 an dem Sender aufgetreten ist, empfangen wird. Das Ereignis mit niedrigerer Priorität 626 hat in der Prioritätslogik verloren und wird somit als ein Ereignisframe mit niedrigerer Priorität 632 nach dem Ereignisframe mit höherer Priorität 630 mit einer Fehleranzeige gesendet, um anzuzeigen, dass eine Inkonsistenz zwischen der Latenz zu dem Zeitpunkt, als das Ereignis mit niedrigerer Priorität 626 aufgetreten ist, und dem Zeitpunkt, zu dem der Ereignisframe mit niedrigerer Priorität 632 empfangen wird, bestehen kann.
  • Wie in 6B gezeigt, zeigt Option B an, dass zum Zeitpunkt des Abtastens der Ereignisse das Ereignis mit niedrigerer Priorität 626 zuerst abgetastet wurde. Da jedoch das Ereignis mit höherer Priorität 622 in der Prioritätslogik gewinnt, wurde ein Ereignisframe mit höherer Priorität 634 für das Ereignis mit höherer Priorität 622 nach der gleichförmigen Verzögerung gesendet und wird somit mit einer gleichförmigen Latenz bezogen auf den Zeitpunkt, zu dem das Ereignis mit höherer Priorität 622 an dem Sender aufgetreten ist, empfangen. Das Ereignis mit niedrigerer Priorität 626 hat in der Prioritätslogik verloren und wird somit als ein Ereignisframe mit niedrigerer Priorität 636 nach dem Ereignisframe mit höherer Priorität 634 mit einer Fehleranzeige gesendet, um anzuzeigen, dass eine Inkonsistenz zwischen der Latenz zu dem Zeitpunkt, als das Ereignis mit niedrigerer Priorität 626 aufgetreten ist, und dem Zeitpunkt, zu dem der Ereignisframe mit niedrigerer Priorität 636 empfangen wird, bestehen kann.
  • 6C veranschaulicht noch ein anderes Problem. Wenn ein Ereignis mit höherer Priorität 642 einen Frame später bezogen auf ein Ereignis mit niedrigerer Priorität 646 auftritt, kann sich eine Situation ergeben, in der Jitter in der Abtastzeit die Übertragungsreihenfolge bestimmt. In Option A wird das Ereignis mit niedrigerer Priorität 646 zuerst abgetastet, und sein Ereignisframe 650 kann ohne Latenzfehler übertragen werden und ein Ereignisframe mit höherer Priorität 652 für das Ereignis mit höherer Priorität 642 wird als Nächstes ohne Latenzfehler übertragen. In Option B wird das Ereignis mit höherer Priorität 642 zuerst abgetastet, und sein Ereignisframe 654 kann ohne Latenzfehler übertragen werden. Jedoch wird ein Ereignisframe mit niedrigerer Priorität 656 nach dem Ereignisframe mit höherer Priorität 654 mit einer Fehleranzeige gesendet, um anzuzeigen, dass eine Inkonsistenz zwischen der Latenz zu dem Zeitpunkt, als das Ereignis mit niedrigerer Priorität 646 aufgetreten ist, und dem Zeitpunkt, zu dem der Ereignisframe mit niedrigerer Priorität 656 empfangen wird, bestehen kann. In beiden Optionen wird der Ereignisframe mit höherer Priorität 652 oder 654 ohne einen Latenzfehler übertragen.
  • In vielen Fällen erfolgen die zwei (oder mehreren) Ereignisse zufällig, und dieses Verhalten ist akzeptabel; der Ereignisframe mit höherer Priorität wird immer zum richtigen Zeitpunkt übertragen. In einigen Systemen, in denen eine feste Beziehung zwischen den zwei Ereignissen besteht, kann es jedoch inakzeptabel sein, dass der Ereignisframe mit niedrigerer Priorität dazwischen wechselt, vor oder nach dem Ereignisframe mit höherer Priorität zu sein. Für solche Fälle kann eine Option aufgenommen werden, um die Priorisierung, die nach anderen Ereignissen in der Pipeline sucht, auszuschalten und nur unter denjenigen zu priorisieren, die bereit sind, übertragen zu werden.
  • 7 zeigt ein Flussdiagramm eines Prozesses zum Priorisieren von Ereignissen gemäß einer Ausführungsform der Offenbarung. In Operation 700 werden zwei oder mehrere Ereignisse für eine Verzögerungszeit verzögert. In einer Ausführungsform kann die Verzögerungszeit einer Framezeit entsprechen. In Operation 702 wird verhindert, dass zusätzliche Frames auf einer seriellen Kommunikationsverbindung gestartet werden, während ein beliebiges der zwei oder mehreren Ereignisse verzögert wird. In Operation 704 wird ein erster Ereignisframe übertragen, der einem der zwei oder mehreren Ereignisse entspricht. In einer Ausführungsform weist das erste Ereignis die höchste Priorität nach seiner entsprechenden Verzögerungszeit auf. In Operation 706 werden Fälle des Auftretens von Ereignissen, die eine niedrigere Priorität als der erste Ereignisframe aufweisen, bis nach seiner entsprechenden Verzögerungszeit und bis keine höheren Ereignisse ausstehen gehalten. In Operation 708 wird/werden der/die Ereignisframe, der/die einem Ereignis mit höchster Priorität entspricht/entsprechen, wiederholt übertragen, bis Ereignisframes für alle der zwei oder mehreren Ereignisse übertragen wurden.
  • 8 ist ein Blockdiagramm eines Touchpanel-Systems, das eine Systemsteuerung, eine Berührungssteuerung und ein Anzeigefeld mit seriellen Kommunikationsverbindungen gemäß einer Ausführungsform der vorliegenden Offenbarung einschließt.
  • In diesem System wird ein serieller Bus verwendet, um Ereignisinformationen für eine vertikale Synchronisierung (VS) und eine horizontale Synchronisierung (HS) von der Anzeigesteuerung 816 an alle Berührungserfassungssubsysteme über eine einzige Steuerleitung 817, die auch für Daten-/Steuerübertragungen verwendet wird, zu verteilen. Als ein Beispiel kann die Steuerleitung 817 die Master-TxD eines USART-Kanals sein, der verwendet wird, um Konfigurationsdaten zu den Quellentreiber-ICs 834 zu senden und Analog-Digital-Steuerungs-Abtastwerte (ADC-Abtastwerte), die Berührungsdaten auf dem Rückweg auf der RxD-Leitung darstellen, zu erhalten. Die gedruckte Leiterplatte (PCB) des Systems 810 kann zum Beispiel ein Mobiltelefon, ein Tablet oder ein beliebiges anderes System mit einer Anzeige sein, die eine Berührungserfassung unterstützt. Als ein Beispiel kann die System-PCB 810 mit dem TFT-LCD-Bildschirm 830 unter Verwendung einer flexiblen gedruckten Leiterplatte 826 verbunden sein, und die Quellentreiber-ICs 834 können unter Verwendung von Silberepoxid auf dem Glas befestigt sein. Für einige Berührungslösungen kann das Berührungserfassungs-Frontend 838 geteilt und auf den Anzeigequellentreiber-ICs 834 implementiert sein. Die Messungen können dann zu der Berührungssteuerung 818 zurückübertragen werden, wo der Zentralprozessor (CPU) 812 (und gegebenenfalls die Einheit zur digitalen Signalverarbeitung (DSP)) eine Nachverarbeitungsoperation durchführt, um das Rauschen zu filtern und zum Beispiel zu bestimmen, ob jemand den Bildschirm mit einem oder mehreren Fingern berührt oder ob ein anderes Berührungsereignis aufgetreten ist.
  • Die Anzeigesteuerung 816, der Anzeigequellentreiber 836, und die Gate-TreiberSchaltung 832 in dieser Ausführungsform können vollständig in Unkenntnis des Berührungssystems sein. Die Anzeigesteuerung 816 steuert die Bildschirmaktualisierung über die Steuerleitung 817. Jedoch kann es für das Berührungssystem wichtig sein, seine Erfassung 845 genau mit der Anzeigeaktualisierung 817 zu synchronisieren, um das Rauschen von den ICs des Quellentreibers 834 und den ICs des Gate-Treibers 832 zu vermeiden. Die IC der Berührungssteuerung 818 empfängt die HS-/VS-Signale (d. h. Ereignisse) von der Anzeigesteuerung 816, und die Ereigniseinfügungslogik 820 priorisiert diese Ereignisse. In einer Ausführungsform kann die Ereigniseinfügungslogik 820 Ausführungsformen einer Verzögerungsschaltung und Prioritätslogik, wie etwa eine Verzögerungsschaltung 520 und Prioritätslogik 510 (5), implementieren. In einer Ausführungsform kann die Ereigniseinfügungslogik 820 einen oder mehrere der Prozesse für eine gleichförmige Verzögerung implementieren, die mit Bezug auf 1A bis 3 beschrieben sind. Ausführungsformen der IC der Berührungssteuerung 818 können dann die Ereignisse in „Frames“ oder „Pakete“ übersetzen, bevor diese Frames in einen seriellen Strom eingefügt werden. In verschiedenen Ausführungsformen sendet der Serialisierer 824 (Tx) Ereignisframes 821 vor Datenframes 823 (d. h., Datenframes haben die niedrigste Priorität). Das Berührungserfassungs-Frontend 838 in den Quellentreiber-ICs 834 deserialisiert (Deserialisierer 840) den seriellen Strom und decodiert die HS-/VS-Ereignisse bzw. stellt sie wieder her (Ereigniswiederherstellung 842), bevor es sie zu der Stufe der Zeitsteuerungs- und Steuererfassung 844 weiterleitet.
  • Es sei darauf hingewiesen, dass 8 als ein Beispiel eines Systems gemäß Ausführungsformen der vorliegenden Offenbarung erörtert wird. Der Fachmann wird erkennen, dass es viele andere Systeme gibt, bei denen ein Bedarf besteht, Zeitsteuerungsdetails oder andere Ereignisdetails als zusätzliche „Nebeninformationen“ bezogen auf die regulären Daten, die auf seriellen Kommunikationsverbindungen übertragen werden, zu übertragen, und solche Systeme können Ausführungsformen der vorliegenden Offenbarung verwenden.
  • Als ein nicht einschränkendes Beispiel einer Ereignispriorisierung bei Touch-Displays wird VSYNC für jede neue Bildaktualisierung gesendet, wobei mehrere HSYNCs zwischen jedem VSYNC vorhanden sind, die neue Leitungen innerhalb des gleichen Bilds darstellen. Die Priorisierungslogik stellt sicher, dass, selbst wenn VSYNC und HSYNC gleichzeitig auftreten (was bei einigen Systemen der Fall ist), VSYNC die höhere Priorität zugewiesen werden soll und gewinnt. Wenn jedoch eine HSYNC einen USART-Frame vor der VSYNC auftritt, bestimmt Jitter in der Abtastzeit, ob beide ohne Fehler übertragen werden (wenn die HSYNC mit niedrigerer Priorität zuerst erfasst wird) oder die VSYNC mit höherer Priorität zuerst übertragen wird, wobei eine Fehleridentifikation bei dem später auftretenden Ereignis bereitgestellt wird. In jeder von der Option A oder der Option B wird die VSYNC mit höherer Priorität immer zum richtigen Zeitpunkt übertragen, aber es kann verwirrend sein, wenn eine HSYNC, die zu dem vorhergehenden Bild gehört, nach der VSYNC (und somit einem neuen Bild) kommt - selbst wenn sie eine Fehleridentifikation aufweist. Die Zeitsteuerung zwischen HSYNC und VSYNC ist anwendungsspezifisch - in einer bestimmten Anzeige verhält sie sich immer gleich, und das gleiche Verhalten sollte in dem System immer erwartet werden. Somit kann es Anwendungen geben, bei denen die Priorisierung (mindestens für diese beiden Ereignisse) ausgeschaltet werden sollte - in dem Sinne, dass das Ereignis mit niedrigerer Priorität (HSYNC) verworfen wird, wenn es ankommt, während die VSYNC mit höherer Priorität übertragen wird.
  • Viele der in dieser Beschreibung beschriebenen Funktionseinheiten können als Module, Threads oder andere Segregationen von Programmcode beschrieben werden, um ihre Implementierungsunabhängigkeit genauer hervorzuheben. Module können in der einen oder anderen Form mindestens teilweise in Hardware implementiert sein. Zum Beispiel kann ein Modul als Hardwareschaltung implementiert werden, die benutzerdefinierte VLSI-Schaltungen oder Gate-Arrays, handelsübliche Halbleiter, wie etwa Logikchips, Transistoren oder andere diskrete Komponenten umfasst. Ein Modul kann auch in programmierbaren Hardwarevorrichtungen implementiert sein, wie etwa feldprogrammierbaren Gate-Arrays, programmierbarer Array-Logik, programmierbaren Zustandsautomaten, programmierbaren Logikvorrichtungen oder dergleichen.
  • Module können auch unter Verwendung von Software, die auf einer physischen Speichervorrichtung (z. B. einem computerlesbaren Speichermedium) gespeichert ist, in Speicher oder einer Kombination davon zur Ausführung durch verschiedene Typen von Prozessoren implementiert sein.
  • Ein identifiziertes Modul aus ausführbarem Code kann zum Beispiel einen oder mehrere physische oder logische Blöcke von Computeranweisungen umfassen, die zum Beispiel als Thread, Objekt, Prozedur oder Funktion organisiert sein können. Nichtsdestotrotz müssen die ausführbaren Dateien eines identifizierten Moduls nicht physisch zusammen angeordnet sein, sondern können unterschiedliche Anweisungen umfassen, die an verschiedenen Orten gespeichert sind, die, wenn sie logisch zusammengefügt werden, das Modul umfassen und den angegebenen Zweck für das Modul erreichen.
  • Tatsächlich kann ein Modul aus ausführbarem Code eine einzelne Anweisung oder viele Anweisungen sein und kann sogar über mehrere verschiedene Codesegmente, zwischen verschiedenen Programmen und über mehrere Speichervorrichtungen verteilt sein. In ähnlicher Weise können Betriebsdaten hierin innerhalb von Modulen identifiziert und veranschaulicht sein und können in irgendeiner geeigneten Form verkörpert und innerhalb irgendeiner geeigneten Art von Datenstruktur organisiert sein. Die Betriebsdaten können als ein einziger Datensatz gesammelt oder über verschiedene Orte, einschließlich über verschiedene Speichervorrichtungen, verteilt sein und können mindestens teilweise lediglich als elektronische Signale in einem System oder Netzwerk vorhanden sein. Wenn ein Modul oder Abschnitte eines Moduls in Software implementiert sind, werden die Softwareabschnitte auf einem oder mehreren physischen Vorrichtungen gespeichert, die hierin als computerlesbare Medien bezeichnet werden.
  • In einigen Ausführungsformen sind die Softwareabschnitte in einem nichtflüchtigen Zustand gespeichert, sodass die Softwareabschnitte oder Darstellungen davon für einen Zeitraum an demselben physischen Ort verbleiben. Zusätzlich sind in einigen Ausführungsformen die Softwareabschnitte in einer oder mehreren nichtflüchtigen Speichervorrichtungen gespeichert, die Hardwareelemente einschließen, die nichtflüchtige Zustände und/oder Signale speichern können, die für die Softwareabschnitte repräsentativ sind, obwohl andere Abschnitte der nichtflüchtigen Speichervorrichtungen in der Lage sein können, die Signale zu ändern und/oder zu übertragen. Ein Beispiel einer nichtflüchtigen Speichervorrichtung schließt einen Nur-Lese-Speicher (ROM) ein, der Signale und/oder Zustände speichern kann, die für die Softwareabschnitte für eine Zeitdauer repräsentativ sind. Die Fähigkeit, die Signale und/oder Zustände zu speichern, wird jedoch nicht durch weitere Funktionalität zum Übertragen von Signalen beeinträchtigt, die den gespeicherten Signalen und/oder Zuständen entsprechen oder diese repräsentieren. Zum Beispiel kann ein Prozessor auf den ROM zugreifen, um Signale zu erhalten, die für die gespeicherten Signale und/oder Zustände repräsentativ sind, um die entsprechenden Softwareanweisungen auszuführen.
  • Während die vorliegende Offenbarung hierin in Bezug auf bestimmte veranschaulichte Ausführungsformen beschrieben wurde, werden Fachleute erkennen und anerkennen, dass die vorliegende Erfindung nicht darauf beschränkt ist. Vielmehr können viele Ergänzungen, Löschungen und Modifikationen an den dargestellten und beschriebenen Ausführungsformen vorgenommen werden, ohne vom Umfang der Erfindung abzuweichen, wie nachfolgend zusammen mit ihren rechtlichen Äquivalenten beansprucht wird. Zusätzlich können Merkmale von einer Ausführungsform mit Merkmalen einer anderen Ausführungsform kombiniert werden, während sie immer noch im Schutzumfang der Erfindung enthalten sind, wie er von den Erfindern in Betracht gezogen wird.
  • Zusätzliche, nicht einschränkende Ausführungsformen der Offenbarung schließen ein:
    • Ausführungsform 1: Ein Touchpanel-System, umfassend: ein Anzeigesystem; ein Berührungserfassungs-Frontend; und eine Berührungssteuerung, die durch eine serielle Kommunikationsverbindung in Wirkbeziehung an das Berührungserfassungs-Frontend gekoppelt ist, wobei die Berührungssteuerung eine Kommunikationsschnittstelle einschließt, umfassend: eine Verzögerungsschaltung, die konfiguriert ist, um eine Ereignisverzögerung zwischen einer vordefinierten Bitposition eines laufenden Frames, der übertragen wird, und einem Ereignis zu bestimmen; und eine Übertragungsschaltung, die konfiguriert ist, um einen Ereignisframe nach dem laufenden Frame zu senden, wobei die Übertragungsschaltung konfiguriert ist, um in dem Ereignisframe Verzögerungsbits, die die Ereignisverzögerung anzeigen, und Ereigniskennungsbits, die das Ereignis anzeigen, dem der Ereignisframe entspricht, einzuschließen.
    • Ausführungsform 2: Das Touchpanel-System gemäß Ausführungsform 1, wobei die Verzögerungsschaltung einen Verzögerungszähler umfasst, der konfiguriert ist, um die Ereignisverzögerung durch Zählen einer Anzahl von Takten von dem Ereignis bis zu der vordefinierten Bitposition des laufenden Frames zu bestimmen.
    • Ausführungsform 3: Das Touchpanel-System gemäß Ausführungsformen 1 und 2, wobei die Kommunikationsschnittstelle ferner zwei oder mehrere Ereignissubmodule umfasst, wobei ein erstes der zwei oder mehreren Ereignissubmodule einem ersten Ereignistyp entspricht und ein zweites der zwei oder mehreren Ereignissubmodule einem zweiten Ereignistyp entspricht, wobei Prioritätslogik konfiguriert ist, um jedem von dem ersten Ereignistyp und dem zweiten Ereignistyp eine unterschiedliche Priorität zuzuordnen.
    • Ausführungsform 4: Das Touchpanel-System gemäß Ausführungsformen 1 bis 3, wobei die Kommunikationsschnittstelle ferner Prioritätslogik umfasst und wobei als Reaktion auf ein Auftreten eines ersten Ereignisses, das einem ersten Ereignistyp entspricht, und eines zweiten Ereignisses, das einem zweiten Ereignistyp entspricht, die Prioritätslogik konfiguriert ist zum: Übertragen eines von dem ersten Ereignis und dem zweiten Ereignis mit höherer Priorität, und Verwerfen eines von dem ersten Ereignis und dem zweiten Ereignis mit niedrigerer Priorität, wobei die höhere Priorität einem Ereignis einer vertikalen Synchronisierung entspricht und die niedrigere Priorität einem Ereignis einer horizontalen Synchronisierung entspricht.
    • Ausführungsform 5: Das Touchpanel-System gemäß Ausführungsformen 1 bis 4, wobei die Kommunikationsschnittstelle ferner Prioritätslogik umfasst und wobei als Reaktion auf ein Auftreten eines ersten Ereignisses, das einem ersten Ereignistyp entspricht, und eines zweiten Ereignisses, das einem zweiten Ereignistyp entspricht, die Prioritätslogik konfiguriert ist zum: Übertragen eines Ereignisframes mit höherer Priorität, der einem von dem ersten Ereignis und dem zweiten Ereignis mit höherer Priorität entspricht, Halten eines von dem ersten Ereignis und dem zweiten Ereignis mit niedrigerer Priorität, während der Ereignisframe mit höherer Priorität übertragen wird, und Übertragen eines Ereignisframes mit niedrigerer Priorität, der einem von dem ersten Ereignis und dem zweiten Ereignis mit der niedrigeren Priorität entspricht, nachdem der Ereignisframe mit höherer Priorität übertragen wird, wobei der Ereignisframe mit niedrigerer Priorität ein Fehlerbit einschließt, wobei die höhere Priorität einem Ereignis einer vertikalen Synchronisierung entspricht und die niedrigere Priorität einem Ereignis einer horizontalen Synchronisierung entspricht.
    • Ausführungsform 6: Das Touchpanel-System gemäß einer der Ausführungsformen 1 bis 5, wobei die Kommunikationsschnittstelle für die Kommunikation gemäß einem Protokoll konfiguriert ist, das ausgewählt ist aus der Gruppe bestehend aus Universal Asynchronous Receiver/Transmitter, Universal Synchronous Receiver/Transmitter und Universal Synchronous/Asynchronous Receiver/Transmitter.
    • Ausführungsform 7: Das Touchpanel-System gemäß einer der Ausführungsformen 1 bis 6, wobei die Kommunikationsschnittstelle konfiguriert ist, um ein Ereignis der zwei oder mehreren Ereignisse zu verwerfen.
    • Ausführungsform 8: Das Touchpanel-System gemäß einer der Ausführungsformen 1 bis 7, wobei die Kommunikationsschnittstelle konfiguriert ist, um Ereignisindikatorbits in dem Ereignisframe einzuschließen, wobei die Ereignisindikatorbits anzeigen, welchem Ereignis aus einem Satz von Ereignissen der Ereignisframe entspricht.
    • Ausführungsform 9: Ein Touchpanel-System, umfassend: ein Anzeigesystem; eine Berührungssteuerung; und ein Berührungserfassungs-Frontend, das durch eine serielle Kommunikationsverbindung in Wirkbeziehung an das Berührungserfassungs-Frontend gekoppelt ist, wobei das Berührungserfassungs-Frontend eine Kommunikationsschnittstelle einschließt, umfassend: eine Empfangsschaltung, die zum Empfangen eines Ereignisframes konfiguriert ist, wobei der Ereignisframe Verzögerungsbits einschließt, die eine Verzögerung zwischen einem Ereignis, das an einem Sender aufgetreten ist, bezogen auf eine vordefinierte Bitposition in einem vorhergehenden Frame, der von dem Sender empfangen wurde, anzeigt; und eine Verzögerungsschaltung, die konfiguriert ist zum: Decodieren der Verzögerungsbits; Zählen einer Anzahl von Taktzyklen, die den Verzögerungsbits entsprechen; und Bestätigen eines empfängerseitigen Ereignisses nach dem Zählen.
    • Ausführungsform 10: Das Touchpanel-System gemäß Ausführungsform 9, wobei die Verzögerungsschaltung konfiguriert ist, um das Zählen der Anzahl von Taktzyklen ab einem vordefinierten Punkt in dem Ereignisframe zu beginnen.
    • Ausführungsform 11: Das Touchpanel-System gemäß einer der Ausführungsformen 9 oder 10, wobei der vordefinierte Punkt in dem Ereignisframe das letzte Bit des Ereignisframes ist.
    • Ausführungsform 12: Das Touchpanel-System gemäß einer der Ausführungsformen 9 bis 11, wobei das empfängerseitige Ereignis dem Ereignis entspricht, das an dem Sender aufgetreten ist.
    • Ausführungsform 13: Das Touchpanel-System gemäß einer der Ausführungsformen 9 bis 12, wobei die Verzögerungsbits keiner Verzögerung entsprechen.
    • Ausführungsform 14: Das Touchpanel-System gemäß einer der Ausführungsformen 9 bis 13, wobei die Verzögerungsschaltung konfiguriert ist, um Ereignisindikatorbits zu decodieren und das empfängerseitige Ereignis als Reaktion auf die Ereignisindikatorbits zu bestätigen, wobei die Ereignisindikatorbits anzeigen, welchem Ereignis aus einem Satz von Ereignissen der Ereignisframe entspricht.
    • Ausführungsform 15: Das Touchpanel-System gemäß einer der Ausführungsformen 9 bis 14, wobei die Verzögerungsschaltung konfiguriert ist, um Frames basierend auf einem Protokoll zu decodieren, das ausgewählt ist aus einer Gruppe bestehend aus einem Universal Asynchronous Receiver/Transmitter, einem Universal Synchronous Receiver/Transmitter oder einem Universal Synchronous/Asynchronous Receiver/Transmitter.
    • Ausführungsform 16: Das Touchpanel-System gemäß einer der Ausführungsformen 9 bis 15, wobei das Berührungserfassungs-Frontend eine Rauschunterdrückungsschaltung einschließt, die konfiguriert ist, um Rauschen als Reaktion auf Ereignisframes zu filtern, die über die serielle Kommunikationsverbindung empfangen werden.
    • Ausführungsform 17: Das Touchpanel-System gemäß einer der Ausführungsformen 9 bis 16, wobei die Rauschunterdrückungsschaltung konfiguriert ist, um Rauschen mindestens teilweise als Reaktion auf Zeitsteuerungsinformationen bezogen auf Ereignisse, die empfangenen Ereignisframes entsprechen, und Typen von Ereignissen, die den empfangenen Ereignisframes entsprechen, zu filtern.
    • Ausführungsform 18: Das Touchpanel-System gemäß einer der Ausführungsformen 9 bis 17, wobei die Typen von Ereignissen eine Initiierung von Anzeigeaktualisierungssignalen auf dem Anzeigesystem umfassen.
    • Ausführungsform 19: Das Touchpanel-System gemäß einer der Ausführungsformen 9 bis 18, wobei die Anzeigeaktualisierungssignale Signale für eine horizontale Synchronisierung und eine vertikale Synchronisierung umfassen.
    • Ausführungsform 20: Eine serielle Kommunikationsverbindung, umfassend: einen Sender und einen Empfänger, die konfiguriert sind, um eine gleichförmige Latenz zwischen einem Auftreten eines Ereignisses an dem Sender und einem Ereignissignal, das an dem Empfänger bestätigt wird, zu definieren; der Sender umfassend: eine Verzögerungsschaltung, die zum Bestimmen einer Ereignisverzögerung zwischen einer vordefinierten Bitposition eines laufenden Frames, der übertragen wird, und dem Auftreten des Ereignisses konfiguriert ist; und eine Übertragungsschaltung, die konfiguriert ist, um einen Ereignisframe nach dem laufenden Frame zu senden, wobei die Übertragungsschaltung konfiguriert ist, um in dem Ereignisframe Verzögerungsbits, die der Ereignisverzögerung entsprechen, und Ereigniskennungsbits, die anzeigen, dass der Frame, der übertragen wird, ein Ereignisframe ist, einzuschließen; und der Empfänger umfassend: eine Empfangsschaltung, die konfiguriert ist, um den Frame, der als der Ereignisframe übertragen wird, zu decodieren; und eine Verzögerungsschaltung, die konfiguriert ist zum: Decodieren der Verzögerungsbits; Zählen einer Anzahl von Taktzyklen, die den Verzögerungsbits entsprechen; und Bestätigen des Ereignissignals nach dem Zählen.
    • Ausführungsform 21: Ein Ereignisframe für die serielle Kommunikation, umfassend: eine Anzahl von Ereignisfeldern, wobei jedes Feld aus der Anzahl von Ereignisfeldern ein oder mehrere konfigurierbare Bits aufweist, die Anzahl von Ereignisfeldern umfassend: ein Ereigniskennungsfeld, das konfigurierbar ist, um ein Ereignis aus einem Satz von senderseitigen Ereignissen anzuzeigen; und ein Verzögerungsfeld, das konfigurierbar ist, um eine Ereignisverzögerung zwischen einem vorhergehenden Frame und dem Ereignis anzuzeigen, und ein Startbit und ein Endbit.
    • Ausführungsform 22: Der Ereignisframe für die serielle Kommunikation gemäß Ausführungsform 21, wobei die Anzahl von Ereignisfeldern ein Fehlerfeld umfasst, das konfigurierbar ist, um eine falsche Zeitsteuerung in Verbindung mit dem Ereignisframe anzuzeigen.
    • Ausführungsform 23: Der Ereignisframe für die serielle Kommunikation gemäß einer der Ausführungsformen 21 oder 22, wobei das Verzögerungsfeld konfigurierbar ist, um die Ereignisverzögerung als eine Verzögerungszeit zwischen einer vordefinierten Bitposition des vorhergehenden Frames und einem Auftreten des Ereignisses anzuzeigen.
    • Ausführungsform 24: Der Ereignisframe für die serielle Kommunikation gemäß einer der Ausführungsformen 21 bis 23, wobei die vordefinierte Bitposition des vorhergehenden Frames der Start des vorhergehenden Frames ist.
    • Ausführungsform 25: Ein Touchpanel-System, umfassend: ein Anzeigesystem; ein Berührungserfassungs-Frontend; und eine Berührungssteuerung, die durch eine serielle Kommunikationsverbindung in Wirkbeziehung an das Berührungserfassungs-Frontend gekoppelt ist, wobei die serielle Kommunikationsverbindung einen Sender und einen Empfänger einschließt, die konfiguriert sind, um eine gleichförmige Latenz zwischen einem senderseitigen Ereignis und einem empfängerseitigen Ereignis zu definieren, der Sender umfassend: eine Verzögerungsschaltung, die konfiguriert ist, um das senderseitige Ereignis zu empfangen und das senderseitige Ereignis um eine Verzögerungszeit, die einer Framezeit entspricht, zu verzögern; und eine Steuerschaltung, die konfiguriert ist, um zu verhindern, dass zusätzliche Frames gestartet werden, während das senderseitige Ereignis verzögert wird, und eine Übertragungsschaltung, die konfiguriert ist, um einen Ereignisframe, der dem senderseitigen Ereignis entspricht, nach der Verzögerungszeit zu senden, wobei die Übertragungsschaltung konfiguriert ist, um in dem Ereignisframe Ereigniskennungsbits, die anzeigen, dass der übertragene Frame ein Ereignisframe ist, einzuschließen, und der Empfänger umfassend: eine Empfangsschaltung, die konfiguriert ist zum: Decodieren des Frames, der als der Ereignisframe übertragen wird; und Bestätigen des empfängerseitigen Ereignisses als Reaktion auf das Decodieren.
    • Ausführungsform 26: Das Touchpanel-System gemäß Ausführungsform 25, wobei die Verzögerungsschaltung konfiguriert ist, um Frames basierend auf einem Protokoll zu decodieren, das ausgewählt ist aus einer Gruppe bestehend aus einem Universal Asynchronous Receiver/Transmitter, einem Universal Synchronous Receiver/Transmitter oder einem Universal Synchronous/Asynchronous Receiver/Transmitter.
    • Ausführungsform 27: Das Touchpanel-System gemäß einer der Ausführungsformen 25 oder 26, wobei das Berührungserfassungs-Frontend eine Rauschunterdrückungsschaltung einschließt, die konfiguriert ist, um Rauschen als Reaktion auf Ereignisframes zu filtern, die über die Kommunikationsverbindung empfangen werden.
    • Ausführungsform 28: Das Touchpanel-System gemäß Ausführungsform 27, wobei die Rauschunterdrückungsschaltung konfiguriert ist, um Rauschen mindestens teilweise als Reaktion auf Zeitsteuerungsinformationen bezogen auf Ereignisse, die empfangenen Ereignisframes entsprechen, und Typen von Ereignissen, die den empfangenen Ereignisframes entsprechen, zu filtern.
    • Ausführungsform 29: Das Touchpanel-System gemäß einer der Ausführungsformen 25 bis 28, wobei die Typen von Ereignissen eine Initiierung von Anzeigeaktualisierungssignalen auf dem Anzeigesystem umfassen.
    • Ausführungsform 30: Das Touchpanel-System gemäß Ausführungsform 29, wobei die Anzeigeaktualisierungssignale Signale für eine horizontale Synchronisierung und eine vertikale Synchronisierung umfassen.
    • Ausführungsform 31: Ein Sender für eine serielle Kommunikationsverbindung, umfassend: eine Verzögerungsschaltung, die konfiguriert ist, um eine Ereignisverzögerung zwischen einer vordefinierten Bitposition eines laufenden Frames, der übertragen wird, und einem Ereignis zu bestimmen; und eine Übertragungsschaltung, die konfiguriert ist, um einen Ereignisframe nach dem laufenden Frame zu senden, wobei die Übertragungsschaltung konfiguriert ist, um in dem Ereignisframe Verzögerungsbits, die der Ereignisverzögerung entsprechen, und Ereigniskennungsbits, die das Ereignis, dem der Ereignisframe entspricht, anzeigen, einzuschließen.
    • Ausführungsform 32: Der Sender für eine serielle Kommunikationsverbindung gemäß Ausführungsform 31, wobei die Verzögerungsschaltung einen Verzögerungszähler umfasst, der konfiguriert ist, um die Ereignisverzögerung durch Zählen einer Anzahl von Takten von dem Ereignis bis zu der vordefinierten Bitposition des laufenden Frames zu bestimmen.
    • Ausführungsform 33: Der Sender für eine serielle Kommunikationsverbindung gemäß einer der Ausführungsformen 31 oder 32, ferner umfassend: zwei oder mehrere Ereignissubmodule, wobei ein erstes der zwei oder mehreren Ereignissubmodule einem ersten Ereignistyp entspricht und ein zweites der zwei oder mehreren Ereignissubmodule einem zweiten Ereignistyp entspricht, und Prioritätslogik, die konfiguriert ist, um jedem von dem ersten Ereignistyp und dem zweiten Ereignistyp eine unterschiedliche Priorität zuzuordnen.
    • Ausführungsform 34: Der Sender für eine serielle Kommunikationsverbindung gemäß einer der Ausführungsformen 31 bis 33, ferner umfassend Prioritätslogik, und wobei als Reaktion auf ein Auftreten eines ersten Ereignisses, das einem ersten Ereignistyp entspricht, und eines zweiten Ereignisses, das einem zweiten Ereignistyp entspricht, die Prioritätslogik konfiguriert ist zum: Übertragen eines von dem ersten Ereignis und dem zweiten Ereignis mit höherer Priorität; und Verwerfen eines von dem ersten Ereignis und dem zweiten Ereignis mit niedrigerer Priorität.
    • Ausführungsform 35: Der Sender für eine serielle Kommunikationsverbindung gemäß einer der Ausführungsformen 31 bis 34, ferner umfassend Prioritätslogik, und wobei als Reaktion auf ein Auftreten eines ersten Ereignisses, das einem ersten Ereignistyp entspricht, und eines zweiten Ereignisses, das einem zweiten Ereignistyp entspricht, die Prioritätslogik konfiguriert ist zum: Übertragen eines Ereignisframes mit höherer Priorität, der einem von dem ersten Ereignis und dem zweiten Ereignis mit höherer Priorität entspricht; Halten eines von dem ersten Ereignis und dem zweiten Ereignis mit niedrigerer Priorität, während der Ereignisframe mit höherer Priorität übertragen wird; und Übertragen eines Ereignisframes mit niedrigerer Priorität, der einem von dem ersten Ereignis und dem zweiten Ereignis mit der niedrigeren Priorität entspricht, nachdem der Ereignisframe mit höherer Priorität übertragen wird, wobei der Ereignisframe mit niedrigerer Priorität ein Fehlerbit einschließt.
    • Ausführungsform 36: Der Sender für eine serielle Kommunikationsverbindung gemäß einer der Ausführungsformen 31 bis 35, wobei die Übertragungsschaltung konfiguriert ist, um den Ereignisframe unmittelbar aufeinanderfolgend mit dem laufenden Frame zu senden.
    • Ausführungsform 37: Der Sender für eine serielle Kommunikationsverbindung gemäß einer der Ausführungsformen 31 bis 36, wobei die Übertragungsschaltung konfiguriert ist, um Frames basierend auf einem Protokoll zu codieren, das ausgewählt ist aus einer Gruppe bestehend aus einem Universal Asynchronous Receiver/Transmitter, einem Universal Synchronous Receiver/Transmitter oder einem Universal Synchronous/Asynchronous Receiver/Transmitter.
    • Ausführungsform 38: Der Sender für eine serielle Kommunikationsverbindung gemäß einer der Ausführungsformen 31 bis 37, wobei die Übertragungsschaltung ferner konfiguriert ist, um Ereigniskennungsbits in dem Ereignisframe einzuschließen, wobei die Ereignisindikatorbits anzeigen, welchem Ereignis eines Satzes von Ereignissen der Ereignisframe entspricht.
    • Ausführungsform 39: Ein Verfahren zum Übertragen von Ereignissen über eine serielle Kommunikationsverbindung, umfassend: ein Bestimmen einer Ereignisverzögerung zwischen einer vordefinierten Bitposition eines laufenden Frames, der übertragen wird, und einem Ereignis; ein Codieren eines Ereignisframes, der dem Ereignis entspricht, wobei der Ereignisframe einschließt: Verzögerungsbits, die der Ereignisverzögerung entsprechen; und Ereigniskennungsbits, die anzeigen, dass der Ereignisframe dem Ereignis entspricht, und ein Übertragen des Ereignisframes nach dem laufenden Frame.
    • Ausführungsform 40: Das Verfahren gemäß Ausführungsform 39, ferner umfassend ein Senden des Ereignisframes unmittelbar aufeinanderfolgend mit dem laufenden Frame.
    • Ausführungsform 41: Das Verfahren gemäß einer der Ausführungsformen 39 oder 40, ferner umfassend ein Bestimmen der Ereignisverzögerung durch Zählen einer Anzahl von Takten von dem Ereignis bis zu der vordefinierten Bitposition des laufenden Frames.
    • Ausführungsform 42: Das Verfahren gemäß einer der Ausführungsformen 39 bis 41, ferner umfassend: als Reaktion auf ein Auftreten eines ersten Ereignisses, das einem ersten Ereignistyp entspricht, und eines zweiten Ereignisses, das einem zweiten Ereignistyp entspricht: Übertragen eines von dem ersten Ereignis und dem zweiten Ereignis mit höherer Priorität, und Verwerfen des ersten Ereignisses und des zweiten Ereignisses mit niedrigerer Priorität.
    • Ausführungsform 43: Das Verfahren gemäß einer der Ausführungsformen 39 bis 42, ferner umfassend: als Reaktion auf ein Auftreten eines ersten Ereignisses, das einem ersten Ereignistyp entspricht, und eines zweiten Ereignisses, das einem zweiten Ereignistyp entspricht: Übertragen eines Ereignisframes mit höherer Priorität, der einem von dem ersten Ereignis und dem zweiten Ereignis mit höherer Priorität entspricht, Halten eines von dem ersten Ereignis und dem zweiten Ereignis mit niedrigerer Priorität, während der Ereignisframe mit höherer Priorität übertragen wird; und Übertragen eines Ereignisframes mit niedrigerer Priorität, der einem von dem ersten Ereignis und dem zweiten Ereignis mit der niedrigeren Priorität entspricht, nachdem der Ereignisframe mit höherer Priorität übertragen wird, wobei der Ereignisframe mit niedrigerer Priorität ein Fehlerbit einschließt.
    • Ausführungsform 44: Ein Empfänger für eine serielle Kommunikationsverbindung, umfassend: eine Empfangsschaltung, die konfiguriert ist, um einen Ereignisframe zu empfangen, wobei der Ereignisframe Verzögerungsbits einschließt, die eine Verzögerung zwischen einem Ereignis, das an einem Sender aufgetreten ist, bezogen auf eine vordefinierte Bitposition in einem vorhergehenden Frame, der von dem Sender empfangen wurde, anzeigt; und eine Verzögerungsschaltung, die konfiguriert ist zum: Decodieren der Verzögerungsbits; Warten einer Anzahl von Taktzyklen, die den Verzögerungsbits entsprechen; und Bestätigen eines empfängerseitigen Ereignisses nach dem Warten der Anzahl von Taktzyklen.
    • Ausführungsform 45: Der Empfänger für eine serielle Kommunikationsverbindung gemäß Ausführungsform 44, wobei die Verzögerungsschaltung konfiguriert ist, um durch Zählen der Anzahl von Taktzyklen beginnend an einem vordefinierten Punkt in dem Ereignisframe zu warten.
    • Ausführungsform 46: Der Empfänger für eine serielle Kommunikationsverbindung gemäß einer der Ausführungsformen 44 oder 45, wobei der vordefinierte Punkt in dem Ereignisframe das letzte Bit des Ereignisframes ist.
    • Ausführungsform 47: Der Empfänger für eine serielle Kommunikationsverbindung gemäß einer der Ausführungsformen 44 bis 46, wobei das empfängerseitige Ereignis dem Ereignis entspricht, das an dem Sender aufgetreten ist.
    • Ausführungsform 48: Der Empfänger für eine serielle Kommunikationsverbindung gemäß einer der Ausführungsformen 44 bis 47, wobei die Verzögerungsbits keiner Verzögerung entsprechen.
    • Ausführungsform 49: Der Empfänger für eine serielle Kommunikationsverbindung gemäß einer der Ausführungsformen 44 bis 48, wobei die Verzögerungsschaltung konfiguriert ist, um Ereignisindikatorbits zu decodieren und das empfängerseitige Ereignis als Reaktion auf die Ereignisindikatorbits zu bestätigen, wobei die Ereignisindikatorbits anzeigen, welchem Ereignis aus einem Satz von Ereignissen der Ereignisframe entspricht.
    • Ausführungsform 50: Der Empfänger für eine serielle Kommunikationsverbindung gemäß einer der Ausführungsformen 44 bis 49, wobei die Verzögerungsschaltung konfiguriert ist, um Frames basierend auf einem Protokoll zu decodieren, das ausgewählt ist aus einer Gruppe bestehend aus einem Universal Asynchronous Receiver/Transmitter, einem Universal Synchronous Receiver/Transmitter oder einem Universal Synchronous/Asynchronous Receiver/Transmitter.
    • Ausführungsform 51: Ein Verfahren zum Empfangen von Ereignissen über eine serielle Kommunikationsverbindung, umfassend: Empfangen eines Ereignisframes; Decodieren von Verzögerungsbits aus dem Ereignisframe, wobei die Verzögerungsbits eine Verzögerung zwischen einem Ereignis, das an einem Sender aufgetreten ist, bezogen auf eine vordefinierte Bitposition in einem vorhergehenden Frame anzeigen; Warten einer Anzahl von Taktzyklen, die den Verzögerungsbits entsprechen; und Bestätigen eines empfängerseitigen Ereignisses nach dem Warten.
    • Ausführungsform 52: Das Verfahren gemäß Ausführungsform 51, wobei das Warten der Anzahl von Taktzyklen, die den Verzögerungsbits entsprechen, ein Zählen der Anzahl von Taktzyklen ab einem vordefinierten Punkt in dem Ereignisframe umfasst.
    • Ausführungsform 53: Das Verfahren gemäß einer der Ausführungsformen 51 oder 52, wobei der vordefinierte Punkt in dem Ereignisframe das letzte Bit in dem Ereignisframe ist. Ausführungsform 54: Das Verfahren gemäß einer der Ausführungsformen 51 bis 53, ferner umfassend: Decodieren von Ereignisindikatorbits aus dem Ereignisframe, wobei die Ereignisindikatorbits anzeigen, welchem Ereignis aus einem Satz von Ereignissen der Ereignisframe entspricht; und wobei das Bestätigen des empfängerseitigen Ereignisses als Reaktion auf die Ereignisindikatorbits erfolgt.
    • Ausführungsform 55: Das Verfahren gemäß einer der Ausführungsformen 51 bis 54, wobei der Ereignisframe unmittelbar aufeinanderfolgend mit dem vorhergehenden Frame empfangen wird.
    • Ausführungsform 56: Das Verfahren gemäß einer der Ausführungsformen 51 bis 55, wobei die Verzögerungsbits keine Verzögerung anzeigen.
    • Ausführungsform 57: Eine serielle Kommunikationsverbindung, umfassend: einen Sender und einen Empfänger, die konfiguriert sind, um eine gleichförmige Latenz zwischen einem senderseitigen Ereignis und einem empfängerseitigen Ereignis zu definieren; der Sender umfassend: eine Verzögerungsschaltung, die konfiguriert ist, um das senderseitige Ereignis zu empfangen und das senderseitige Ereignis um eine Verzögerungszeit, die einer Framezeit entspricht, zu verzögern; und eine Steuerschaltung, die konfiguriert ist, um zu verhindern, dass zusätzliche Frames gestartet werden, während das senderseitige Ereignis verzögert wird; und eine Übertragungsschaltung, die konfiguriert ist, um einen Ereignisframe, der dem senderseitigen Ereignis entspricht, nach der Verzögerungszeit zu senden, wobei die Übertragungsschaltung konfiguriert ist, um in dem Ereignisframe Ereigniskennungsbits, die anzeigen, dass der übertragene Frame ein Ereignisframe ist, einzuschließen; und der Empfänger umfassend: eine Empfangsschaltung, die konfiguriert ist zum: Decodieren des Frames, der als der Ereignisframe übertragen wird; und Bestätigen des empfängerseitigen Ereignisses als Reaktion auf das Decodieren.
    • Ausführungsform 58: Die serielle Kommunikationsverbindung gemäß Ausführungsform 57, wobei die Verzögerungsschaltung ein Schieberegister mit einer Größe entsprechend einer Anzahl von Bits, die der Framezeit entspricht, umfasst.
    • Ausführungsform 59: Die serielle Kommunikationsverbindung gemäß einer der Ausführungsformen 57 oder 58, wobei die Verzögerungsschaltung einen Zähler und ein Register umfasst, wobei der Zähler konfiguriert ist, um eine Anzahl zu zählen, die einer Anzahl von Bits entspricht, die der Framezeit entspricht.
    • Ausführungsform 60: Die serielle Kommunikationsverbindung gemäß einer der Ausführungsformen 57 bis 59, wobei die Übertragungsschaltung konfiguriert ist, um Frames basierend auf einem Protokoll zu codieren, das ausgewählt ist aus einer Gruppe bestehend aus einem Universal Asynchronous Receiver/Transmitter, einem Universal Synchronous Receiver/Transmitter oder einem Universal Synchronous/Asynchronous Receiver/Transmitter.
    • Ausführungsform 61: Die serielle Kommunikationsverbindung gemäß einer der Ausführungsformen 57 bis 60, wobei die Empfangsschaltung konfiguriert ist, um Frames basierend auf einem Protokoll zu decodieren, das ausgewählt ist aus einer Gruppe bestehend aus einem Universal Asynchronous Receiver/Transmitter, einem Universal Synchronous Receiver/Transmitter oder einem Universal Synchronous/Asynchronous Receiver/Transmitter.

Claims (31)

  1. Sender für eine serielle Kommunikationsverbindung, umfassend: eine Verzögerungsschaltung, die konfiguriert ist, um eine Ereignisverzögerung zwischen einer vordefinierten Bitposition eines laufenden Frames, der übertragen wird, und einem Ereignis zu bestimmen; und eine Übertragungsschaltung, die konfiguriert ist, um einen Ereignisframe nach dem laufenden Frame zu senden, wobei die Übertragungsschaltung konfiguriert ist, um in dem Ereignisframe Verzögerungsbits, die der Ereignisverzögerung entsprechen, und Ereigniskennungsbits, die das Ereignis anzeigen, dem der Ereignisframe entspricht, einzuschließen.
  2. Sender für eine serielle Kommunikationsverbindung nach Anspruch 1, wobei die Verzögerungsschaltung einen Verzögerungszähler umfasst, der konfiguriert ist, um die Ereignisverzögerung durch Zählen einer Anzahl von Takten von dem Ereignis bis zu der vordefinierten Bitposition des laufenden Frames zu bestimmen.
  3. Sender für eine serielle Kommunikationsverbindung nach Anspruch 1, ferner umfassend: zwei oder mehrere Ereignissubmodule, wobei ein erstes der zwei oder mehreren Ereignissubmodule einem ersten Ereignistyp entspricht und ein zweites der zwei oder mehreren Ereignissubmodule einem zweiten Ereignistyp entspricht, und Prioritätslogik, die konfiguriert ist, um jedem von dem ersten Ereignistyp und dem zweiten Ereignistyp eine unterschiedliche Priorität zuzuordnen.
  4. Sender für eine serielle Kommunikationsverbindung nach Anspruch 1, ferner umfassend Prioritätslogik, und wobei als Reaktion auf ein Auftreten eines ersten Ereignisses, das einem ersten Ereignistyp entspricht, und eines zweiten Ereignisses, das einem zweiten Ereignistyp entspricht, die Prioritätslogik konfiguriert ist zum: Übertragen eines von dem ersten Ereignis und dem zweiten Ereignis mit höherer Priorität; und Verwerfen eines von dem ersten Ereignis und dem zweiten Ereignis mit niedrigerer Priorität.
  5. Sender für eine serielle Kommunikationsverbindung nach Anspruch 1, ferner umfassend Prioritätslogik, und wobei als Reaktion auf ein Auftreten eines ersten Ereignisses, das einem ersten Ereignistyp entspricht, und eines zweiten Ereignisses, das einem zweiten Ereignistyp entspricht, die Prioritätslogik konfiguriert ist zum: Übertragen eines Ereignisframes mit höherer Priorität, der einem von dem ersten Ereignis und dem zweiten Ereignis mit höherer Priorität entspricht, Halten eines von dem ersten Ereignis und dem zweiten Ereignis mit niedrigerer Priorität, während der Ereignisframe mit höherer Priorität übertragen wird; und Übertragen eines Ereignisframes mit niedrigerer Priorität, der einem von dem ersten Ereignis und dem zweiten Ereignis mit der niedrigeren Priorität entspricht, nachdem der Ereignisframe mit höherer Priorität übertragen wird, wobei der Ereignisframe mit niedrigerer Priorität ein Fehlerbit einschließt.
  6. Sender für eine serielle Kommunikationsverbindung nach Anspruch 1, wobei die Übertragungsschaltung konfiguriert ist, um den Ereignisframe unmittelbar aufeinanderfolgend mit dem laufenden Frame zu senden.
  7. Sender für eine serielle Kommunikationsverbindung nach Anspruch 1, wobei die Übertragungsschaltung konfiguriert ist, um Frames basierend auf einem Protokoll zu codieren, das ausgewählt ist aus einer Gruppe bestehend aus einem Universal Asynchronous Receiver/Transmitter, einem Universal Synchronous Receiver/Transmitter oder einem Universal Synchronous/Asynchronous Receiver/Transmitter.
  8. Sender für eine serielle Kommunikationsverbindung nach Anspruch 1, wobei die Übertragungsschaltung ferner konfiguriert ist, um Ereigniskennungsbits in dem Ereignisframe einzuschließen, wobei die Ereigniskennungsbits anzeigen, welchem Ereignis eines Satzes von Ereignissen der Ereignisframe entspricht.
  9. Verfahren zum Übertragen von Ereignissen über eine serielle Kommunikationsverbindung, umfassend: Bestimmen einer Ereignisverzögerung zwischen einer vordefinierten Bitposition eines laufenden Frames, der übertragen wird, und einem Ereignis; Codieren eines Ereignisframes, der dem Ereignis entspricht, wobei der Ereignisframe einschließt: Verzögerungsbits, die der Ereignisverzögerung entsprechen; und Ereigniskennungsbits, die anzeigen, dass der Ereignisframe dem Ereignis entspricht, und Übertragen des Ereignisframes nach dem laufenden Frame.
  10. Verfahren nach Anspruch 9, ferner umfassend ein Senden des Ereignisframes unmittelbar aufeinanderfolgend mit dem laufenden Frame.
  11. Verfahren nach Anspruch 9, ferner umfassend ein Bestimmen der Ereignisverzögerung durch Zählen einer Anzahl von Takten von dem Ereignis bis zu der vordefinierten Bitposition des laufenden Frames.
  12. Verfahren nach Anspruch 9, ferner umfassend: als Reaktion auf ein Auftreten eines ersten Ereignisses, das einem ersten Ereignistyp entspricht, und eines zweiten Ereignisses, das einem zweiten Ereignistyp entspricht: Übertragen eines von dem ersten Ereignis und dem zweiten Ereignis mit höherer Priorität; und Verwerfen des ersten Ereignisses und des zweiten Ereignisses mit niedrigerer Priorität.
  13. Verfahren nach Anspruch 9, ferner umfassend: als Reaktion auf ein Auftreten eines ersten Ereignisses, das einem ersten Ereignistyp entspricht, und eines zweiten Ereignisses, das einem zweiten Ereignistyp entspricht: Übertragen eines Ereignisframes mit höherer Priorität, der einem von dem ersten Ereignis und dem zweiten Ereignis mit höherer Priorität entspricht; Halten eines von dem ersten Ereignis und dem zweiten Ereignis mit niedrigerer Priorität, während der Ereignisframe mit höherer Priorität übertragen wird; und Übertragen eines Ereignisframes mit niedrigerer Priorität, der einem von dem ersten Ereignis und dem zweiten Ereignis mit der niedrigeren Priorität entspricht, nachdem der Ereignisframe mit höherer Priorität übertragen wird, wobei der Ereignisframe mit niedrigerer Priorität ein Fehlerbit einschließt.
  14. Empfänger für eine serielle Kommunikationsverbindung, umfassend: eine Empfangsschaltung, die konfiguriert ist, um einen Ereignisframe zu empfangen, wobei der Ereignisframe Verzögerungsbits einschließt, die eine Verzögerung zwischen einem Ereignis, das an einem Sender aufgetreten ist, bezogen auf eine vordefinierte Bitposition in einem vorhergehenden Frame, der von dem Sender empfangen wurde, anzeigt; und eine Verzögerungsschaltung, die konfiguriert ist zum: Decodieren der Verzögerungsbits; Warten einer Anzahl von Taktzyklen, die den Verzögerungsbits entsprechen; und Bestätigen eines empfängerseitigen Ereignisses nach dem Warten der Anzahl von Taktzyklen.
  15. Empfänger für eine serielle Kommunikationsverbindung nach Anspruch 14, wobei die Verzögerungsschaltung konfiguriert ist, um durch Zählen der Anzahl von Taktzyklen beginnend an einem vordefinierten Punkt in dem Ereignisframe zu warten.
  16. Empfänger für eine serielle Kommunikationsverbindung nach Anspruch 15, wobei der vordefinierte Punkt in dem Ereignisframe das letzte Bit des Ereignisframes ist.
  17. Empfänger für eine serielle Kommunikationsverbindung nach Anspruch 14, wobei das empfängerseitige Ereignis dem Ereignis entspricht, das an dem Sender aufgetreten ist.
  18. Empfänger für eine serielle Kommunikationsverbindung nach Anspruch 14, wobei die Verzögerungsbits keiner Verzögerung entsprechen.
  19. Empfänger für eine serielle Kommunikationsverbindung nach Anspruch 14, wobei die Verzögerungsschaltung konfiguriert ist, um Ereigniskennungsbits zu decodieren und das empfängerseitige Ereignis als Reaktion auf die Ereigniskennungsbits zu bestätigen, wobei die Ereigniskennungsbits anzeigen, welchem Ereignis eines Satzes von Ereignissen der Ereignisframe entspricht.
  20. Empfänger für eine serielle Kommunikationsverbindung nach Anspruch 14, wobei die Verzögerungsschaltung konfiguriert ist, um Frames basierend auf einem Protokoll zu decodieren, das ausgewählt ist aus einer Gruppe bestehend aus einem Universal Asynchronous Receiver/Transmitter, einem Universal Synchronous Receiver/Transmitter oder einem Universal Synchronous/Asynchronous Receiver/Transmitter.
  21. Verfahren zum Empfangen von Ereignissen über eine serielle Kommunikationsverbindung, umfassend: Empfangen eines Ereignisframes; Decodieren von Verzögerungsbits aus dem Ereignisframe, wobei die Verzögerungsbits eine Verzögerung zwischen einem Ereignis, das an einem Sender aufgetreten ist, bezogen auf eine vordefinierte Bitposition in einem vorhergehenden Frame anzeigen; Warten einer Anzahl von Taktzyklen, die den Verzögerungsbits entsprechen; und Bestätigen eines empfängerseitigen Ereignisses nach dem Warten.
  22. Verfahren nach Anspruch 21, wobei das Warten der Anzahl von Taktzyklen, die den Verzögerungsbits entsprechen, ein Zählen der Anzahl von Zyklen ab einem vordefinierten Punkt in dem Ereignisframe umfasst.
  23. Verfahren nach Anspruch 22, wobei der vordefinierte Punkt in dem Ereignisframe ein letztes Bit in dem Ereignisframe ist.
  24. Verfahren nach Anspruch 21, ferner umfassend: Decodieren von Ereigniskennungsbits aus dem Ereignisframe, wobei die Ereigniskennungsbits anzeigen, welchem Ereignis eines Satzes von Ereignissen der Ereignisframe entspricht; und wobei das Bestätigen des empfängerseitigen Ereignisses als Reaktion auf die Ereigniskennungsbits erfolgt.
  25. Verfahren nach Anspruch 21, wobei der Ereignisframe unmittelbar aufeinanderfolgend mit dem vorhergehenden Frame empfangen wird.
  26. Verfahren nach Anspruch 21, wobei die Verzögerungsbits keine Verzögerung anzeigen.
  27. Sender für eine serielle Kommunikationsverbindung, umfassend: einen Sender und einen Empfänger, die konfiguriert sind, um eine gleichförmige Latenz zwischen einem senderseitigen Ereignis und einem empfängerseitigen Ereignis zu definieren; der Sender umfassend: eine Verzögerungsschaltung, die konfiguriert ist, um das senderseitige Ereignis zu empfangen und das senderseitige Ereignis um eine Verzögerungszeit, die einer Framezeit entspricht, zu verzögern; und eine Steuerschaltung, die konfiguriert ist, um zu verhindern, dass zusätzliche Frames gestartet werden, während das senderseitige Ereignis verzögert wird; und eine Übertragungsschaltung, die konfiguriert ist, um einen Ereignisframe, der dem senderseitigen Ereignis entspricht, nach der Verzögerungszeit zu senden, wobei die Übertragungsschaltung konfiguriert ist, um in dem Ereignisframe Ereigniskennungsbits einzuschließen, die anzeigen, dass der übertragene Frame ein Ereignisframe ist; und der Empfänger umfassend: eine Empfangsschaltung, die konfiguriert ist zum: Decodieren des Frames, der als der Ereignisframe übertragen wird; und Bestätigen des empfängerseitigen Ereignisses als Reaktion auf das Decodieren.
  28. Serielle Kommunikationsverbindung nach Anspruch 27, wobei die Verzögerungsschaltung ein Schieberegister mit einer Größe entsprechend einer Anzahl von Bits, die der Framezeit entspricht, umfasst.
  29. Serielle Kommunikationsverbindung nach Anspruch 27, wobei die Verzögerungsschaltung einen Zähler und ein Register umfasst, wobei der Zähler konfiguriert ist, um eine Anzahl zu zählen, die einer Anzahl von Bits entspricht, die der Framezeit entspricht.
  30. Serielle Kommunikationsverbindung nach Anspruch 27, wobei die Übertragungsschaltung konfiguriert ist, um Frames basierend auf einem Protokoll zu codieren, das ausgewählt ist aus einer Gruppe bestehend aus einem Universal Asynchronous Receiver/Transmitter, einem Universal Synchronous Receiver/Transmitter oder einem Universal Synchronous/Asynchronous Receiver/Transmitter.
  31. Serielle Kommunikationsverbindung nach Anspruch 27, wobei die Empfangsschaltung konfiguriert ist, um Frames basierend auf einem Protokoll zu decodieren, das ausgewählt ist aus einer Gruppe bestehend aus einem Universal Asynchronous Receiver/Transmitter, einem Universal Synchronous Receiver/Transmitter oder einem Universal Synchronous/Asynchronous Receiver/Transmitter.
DE112018002334.6T 2017-05-05 2018-05-01 Vorrichtungen und verfahren zur übertragung von ereignissen mit einer gleichförmigen latenz auf seriellen kommunikationsverbindungen Pending DE112018002334T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762502329P 2017-05-05 2017-05-05
US62/502,329 2017-05-05
PCT/US2018/030507 WO2018204399A1 (en) 2017-05-05 2018-05-01 Devices and methods for transmission of events with a uniform latency on serial communication links

Publications (1)

Publication Number Publication Date
DE112018002334T5 true DE112018002334T5 (de) 2020-01-16

Family

ID=62486630

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018002334.6T Pending DE112018002334T5 (de) 2017-05-05 2018-05-01 Vorrichtungen und verfahren zur übertragung von ereignissen mit einer gleichförmigen latenz auf seriellen kommunikationsverbindungen

Country Status (5)

Country Link
US (3) US10664435B2 (de)
CN (1) CN110546614B (de)
DE (1) DE112018002334T5 (de)
TW (1) TW201843598A (de)
WO (1) WO2018204399A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110098897B (zh) * 2019-04-25 2020-08-18 珠海格力电器股份有限公司 串行通信方法、装置、计算机设备和存储介质
US20210233462A1 (en) * 2020-01-24 2021-07-29 Texas Instruments Incorporated Single-clock display driver
US11704560B2 (en) * 2020-06-25 2023-07-18 Google Llc Pattern-based classification
US20220109617A1 (en) * 2020-10-06 2022-04-07 Nvidia Corporation Latency determinations for human interface devices
EP4285615A1 (de) * 2021-01-27 2023-12-06 Signify Holding B.V. Hf-basierte erfassung mit konsistenter latenz
CN113312290A (zh) * 2021-06-04 2021-08-27 河南诺一电气有限公司 即插即用实时系统中智能板卡间信息记录时间误差的方法
TWI806483B (zh) * 2022-03-10 2023-06-21 台達電子工業股份有限公司 基於rs232序列埠實現的資料與指令傳輸方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5621898A (en) 1994-11-29 1997-04-15 Compaq Computer Corporation Arbiter organization for serial bus transfers
US6668331B1 (en) * 2000-03-24 2003-12-23 Advantest Corp. Apparatus and method for successively generating an event to establish a total delay time that is greater than can be expressed by specified data bits in an event memory
AU2001293783A1 (en) * 2000-09-29 2002-04-08 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for transmitting data
US7219176B2 (en) 2002-09-30 2007-05-15 Marvell International Ltd. System and apparatus for early fixed latency subtractive decoding
EP1465370B1 (de) 2003-04-05 2013-07-24 Mentor Graphics Corporation Vorhersagbare Echtzeitdatenübertragung in einem seriellen Bus
KR100795441B1 (ko) 2003-10-10 2008-01-16 노키아 코포레이션 짧은 대기시간의 인터럽트 및 제어 신호, 핫플러그 에러 검출 및 복구, 그리고 대역폭 할당을 하는 통신 버스
US7417637B1 (en) * 2004-09-01 2008-08-26 Nvidia Corporation Fairly arbitrating between clients
US7800408B2 (en) 2008-09-08 2010-09-21 Microchip Technology Incorporated High speed transient active pull-up I2C
JP2012503513A (ja) * 2008-09-24 2012-02-09 アイオープナー メディア ゲーエムベーハー 実環境内の事象をシミュレートするためのシステムおよび方法
US8291126B2 (en) 2010-03-23 2012-10-16 Spansion Llc Variable read latency on a serial memory bus
US8665884B2 (en) * 2011-08-25 2014-03-04 Honeywell International Inc. Embedded end-to-end delay information for data networks
US8904451B2 (en) 2012-04-13 2014-12-02 Theplatform, Llc Systems for prioritizing video processing events based on availability of media file and agent to process the event type
US8639851B2 (en) 2012-05-02 2014-01-28 Atmel Corporation Serial bit processor
US9054685B2 (en) 2013-04-29 2015-06-09 Atmel Corporation Programmable bus signal hold time without system clock
US9229525B2 (en) 2013-06-17 2016-01-05 Apple Inc. Adaptive latency tolerance for power management of memory bus interfaces
US9904637B2 (en) * 2014-11-26 2018-02-27 Qualcomm Incorporated In-band interrupt time stamp
FR3047587B1 (fr) * 2016-02-10 2023-01-13 Dolphin Integration Sa Dispositif de traitement muni d'un mode d'acces a des donnees sensibles.

Also Published As

Publication number Publication date
TW201843598A (zh) 2018-12-16
US10725961B2 (en) 2020-07-28
US20190227976A1 (en) 2019-07-25
CN110546614B (zh) 2023-09-26
US20190227975A1 (en) 2019-07-25
WO2018204399A1 (en) 2018-11-08
US10725960B2 (en) 2020-07-28
CN110546614A (zh) 2019-12-06
US20180322087A1 (en) 2018-11-08
US10664435B2 (en) 2020-05-26

Similar Documents

Publication Publication Date Title
DE112018002334T5 (de) Vorrichtungen und verfahren zur übertragung von ereignissen mit einer gleichförmigen latenz auf seriellen kommunikationsverbindungen
DE102015117019B4 (de) Serielle Peripherieschnittstellen-Kettenkommunikation mit rahmengebundener Antwort
EP2751956B1 (de) Verfahren und vorrichtung zur prüfung der korrekten funktion einer seriellen datenübertragung
DE102013224101A1 (de) Verbinden mehrerer Slave-Vorrichtungen mit einem einzigen Master
DE102015102760B4 (de) Taktlose serielle Slave-Vorrichtung
DE602004012563T2 (de) Mehrfädiges DMA
DE102013004542A1 (de) Verfahren und system zur timeout-überwachung
DE102013020277A1 (de) Bit-timing-symmetrisierung
EP2619935B1 (de) Vorrichtung und verfahren zur bereitstellung einer globalen zeitinformation in ereignisgesteuerter buskommunikation
WO2007039634A2 (de) Teilnehmerschnittstelle zwischen einem mikrocontroller und einem flexray-kommunikationsbaustein, flexray-teilnehmer und verfahren zur übertragung von botschaften über eine solche schnittstelle
DE102013113262A1 (de) Auslöser-Leitwegeinheit
DE102013021107B4 (de) Steuerung einer input/output schnittstelle
DE112015006192T5 (de) Kommunikationsvorrichtung, Kommunikationsverfahren und Programm
DE112020004065T5 (de) Komplexe Daisy-Chain-Befehle
DE102014103347B4 (de) Bedingte Verkettungsglieder für Direct-Memory-Access-Controller
DE112013005539B4 (de) Senden eines Interrupt-Pakets
DE102012105622A1 (de) Datenverarbeitungsgerät und Datenverarbeitungsanordnung
DE102009001898A1 (de) Schaltungsanordnungen und Verfahren zur Steuerung eines Datenaustauschs in einer Schaltungsanordnung
DE102018129189A1 (de) Verfahren zum betreiben eines netzwerkteilnehmers in einem automatisierungskommunikationsnetzwerk
DE112018002331T5 (de) Vorrichtungen und verfahren zur priorisierung der übertragung von ereignissen auf seriellen kommunikationsverbindungen
DE10056152B4 (de) Verfahren zur Durchführung von Busarbitration zwischen Steuerchips eines Chipsatzes mit preemptiver Fähigkeit
DE102012010558A1 (de) Hardwarevorrichtung für ein system,system und speicherzugriffsverfahren
DE102013020813B4 (de) Technik zur Optimierung der Phase eines Datensignals, das über eine Kommunikationsverbindung gesendet wird
DE112016006244T5 (de) Zeitsynchrone slave-vorrichtung und kommunikationssteuerverfahren
DE102004010562B4 (de) Schnittstellenvorrichtung und Verfahren zur Synchronisation von Daten

Legal Events

Date Code Title Description
R081 Change of applicant/patentee

Owner name: MICROCHIP TECHNOLOGY INCORPORATED, CHANDLER, US

Free format text: FORMER OWNER: MICROCHIP TECHNOLOGY INC., CHANDLER, ARIZ., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R012 Request for examination validly filed