DE102017216991B4 - Communication module and device for data transmission - Google Patents

Communication module and device for data transmission Download PDF

Info

Publication number
DE102017216991B4
DE102017216991B4 DE102017216991.5A DE102017216991A DE102017216991B4 DE 102017216991 B4 DE102017216991 B4 DE 102017216991B4 DE 102017216991 A DE102017216991 A DE 102017216991A DE 102017216991 B4 DE102017216991 B4 DE 102017216991B4
Authority
DE
Germany
Prior art keywords
communication module
data
line
messages
time
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.)
Active
Application number
DE102017216991.5A
Other languages
German (de)
Other versions
DE102017216991A1 (en
Inventor
Stefan Meckl
Christian Fruth
Olaf Zappa
Andrei Botoaca
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.)
Continental Automotive Technologies GmbH
Original Assignee
Continental Automotive Technologies GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Continental Automotive Technologies GmbH filed Critical Continental Automotive Technologies GmbH
Priority to DE102017216991.5A priority Critical patent/DE102017216991B4/en
Publication of DE102017216991A1 publication Critical patent/DE102017216991A1/en
Application granted granted Critical
Publication of DE102017216991B4 publication Critical patent/DE102017216991B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/403Bus networks with centralised control, e.g. polling
    • 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/40Bus structure
    • 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

Abstract

Kommunikationsbaustein (21) der dazu ausgebildet ist als Slave betrieben zu werden und mit einem zweiten Kommunikationsbaustein (22) verbunden zu werden, der dazu ausgebildet ist als Master betrieben zu werden, wobei der erste Kommunikationsbaustein (21) eine erste Leitung (CLK) zum Empfangen eines Taktsignals von dem zweiten Kommunikationsbaustein (22), eine zweite Leitung (MOSI) zum Empfangen von Daten, eine dritte Leitung (MISO) zum Senden von Daten und eine vierte Leitung (CS) aufweist, über welche der erste Kommunikationsbaustein (21) durch den zweiten Kommunikationsbaustein (22) aktiviert werden kann. Der Kommunikationsbaustein (21) weist weiterhin wenigstens eines auf von einer fünften Leitung (BUSY) zum Ausgeben eines ersten Signals welches Informationen darüber enthält, ob der erste Kommunikationsbaustein (21) dazu bereit ist Daten zu empfangen, und einer sechsten Leitung (IRQ) zum Ausgeben eines zweiten Signals welches Informationen darüber enthält, ob der erste Kommunikationsbaustein (21) Daten senden möchte.Communication module (21) which is designed to be operated as a slave and to be connected to a second communication module (22) which is designed to be operated as a master, the first communication module (21) having a first line (CLK) for receiving a clock signal from the second communication module (22), a second line (MOSI) for receiving data, a third line (MISO) for sending data and a fourth line (CS), via which the first communication module (21) through the second communication module (22) can be activated. The communication module (21) further has at least one of a fifth line (BUSY) for outputting a first signal which contains information about whether the first communication module (21) is ready to receive data, and a sixth line (IRQ) for outputting a second signal which contains information about whether the first communication module (21) wants to send data.

Description

Die Erfindung betrifft einen Kommunikationsbaustein und eine Vorrichtung zur Datenübertragung, insbesondere einen Kommunikationsbaustein für eine Serial Peripheral Interface-Schnittstelle (SPI-Schnittstelle).The invention relates to a communication module and a device for data transmission, in particular a communication module for a serial peripheral interface (SPI interface).

Das Serial Peripheral Interface (SPI) ist ein Bus-System mit einem Standard für einen synchronen seriellen Datenbus (Synchronous Serial Port), mit dem digitale Schaltungen nach dem Master-Slave-Prinzip miteinander verbunden werden können. Eine SPI ermöglicht den seriellen (ein Bit nach dem anderen) Austausch von Daten zwischen zwei Bausteinen, von denen einer als Master und der andere als Slave bezeichnet wird. Eine SPI kann im Vollduplex-Modus betrieben werden, das heißt, dass Daten gleichzeitig in beiden Richtungen übertragen werden können. Beispielsweise können Steuereinheiten mit Peripheriegeräten oder mit Mikrocontrollern mittels SPI miteinander verbunden werden.The Serial Peripheral Interface (SPI) is a bus system with a standard for a synchronous serial data bus (Synchronous Serial Port) with which digital circuits can be connected to one another according to the master-slave principle. An SPI allows data to be exchanged serially (one bit at a time) between two devices, one called a master and the other a slave. An SPI can operate in full duplex mode, meaning that data can be transmitted in both directions at the same time. For example, control units can be connected to peripheral devices or to microcontrollers using SPI.

SPI-Kommunikationsbausteine unterstützen verschiedene Funktionen, wie beispielsweise die Konfiguration von Kommunikationsparametern, das Schreiben und Lesen aus- und eingehender Daten, etc. Ein SPI-Slave sollte dabei generell eine hohe Zeitgenauigkeit aufweisen bei möglichst hoher Verfügbarkeit und möglichst geringem Software-Overhead. Dabei ist es jedoch insbesondere Software mäßig problematisch, dass die Zeitpunkte, zu welchen eine Kommunikation stattfinden soll durch den Master bestimmt werden. Der Slave muss somit die zu sendenden Daten zum gewünschten Zeitpunkt bereitstellen und zu empfangende Daten zum gewünschten Zeitpunkt beim Master abholen. Das zeitgenaue Bereitstellen der Daten im Slave ist dabei bei herkömmlichen Software-getriebenen SPI-Kommunikationsbausteinen verhältnismäßig aufwendig. Die meisten Bausteine sind ein Kompromiss zwischen Verfügbarkeit, Komplexität, Interrupt-Last und Ressourcenverbrauch (z.B. CPU-Laufzeit, Verhalten in Phasen geringer Leistung, etc.).SPI communication blocks support various functions, such as the configuration of communication parameters, writing and reading outgoing and incoming data, etc. An SPI slave should generally have a high level of time accuracy with the highest possible availability and the lowest possible software overhead. However, it is particularly problematic in software that the times at which communication should take place are determined by the master. The slave must therefore provide the data to be sent at the desired time and collect the data to be received from the master at the desired time. Providing the data in the slave at precisely the right time is relatively complex with conventional software-driven SPI communication blocks. Most building blocks are a compromise between availability, complexity, interrupt load and resource consumption (e.g. CPU runtime, behavior in phases of low performance, etc.).

Die Druckschrift US 2006/0143348 A1 offenbart ein Verfahren zur Interchip-Kommunikation zwischen einem erweiterten seriellen peripheren Schnittstellen-(EPSI)-Master-Chip mit Taktfähigkeit und einem EPSI-Slave-Chip. Das Verfahren umfasst das Auswählen eines Slave-Chips durch den Master-Chip, wobei die Master-Daten von dem Master-Chip in den Slave-Chip getaktet werden und gleichzeitig Daten von dem Slave-Chip in den Master-Chip getaktet werden, und das Verarbeiten der getakteten Daten zum Aushandeln einer weiteren Datenübertragung zwischen dem Master-Chip und dem Slave-Chip. Die Auswahl eines Slave-Chips durch den Master-Chip kann auch als Reaktion auf eine von dem Master-Chip vom Slave-Chip empfangene Unterbrechung erfolgen, wobei der Master dann Daten in beiden Richtungen taktet, um eine weitere Datenübertragung zwischen dem Master-Chip und dem Slave-Chip zu verhandeln.The publication US 2006/0143348 A1 discloses a method for interchip communication between an extended serial peripheral interface (EPSI) master chip with clocking capability and an EPSI slave chip. The method includes selecting a slave chip by the master chip, clocking the master data from the master chip into the slave chip and simultaneously clocking data from the slave chip into the master chip, and the Processing the clocked data to negotiate further data transfer between the master chip and the slave chip. Selection of a slave chip by the master chip may also occur in response to an interrupt received by the master chip from the slave chip, with the master then clocking data in both directions to enable further data transfer between the master chip and to negotiate with the slave chip.

Aufgabe der Erfindung ist es, einen verbesserten Kommunikationsbaustein, insbesondere einen Slave, und eine verbesserte Vorrichtung zur Datenkommunikation bereitzustellen, welche eine hohe Performance sowie eine geringe Komplexität und geringe Laufzeiten eines erforderlichen Software-Treibers aufweisen, so dass der Master als herkömmlicher (SPI-)Master umgesetzt werden kann.The object of the invention is to provide an improved communication module, in particular a slave, and an improved device for data communication, which have high performance as well as low complexity and short runtimes of a required software driver, so that the master can be used as a conventional (SPI) Master can be implemented.

Diese Aufgabe wird gelöst durch einen Kommunikationsbaustein gemäß Anspruch 1, einen Kommunikationsbaustein gemäß Anspruch 13 beziehungsweise eine Vorrichtung zur Datenübertragung gemäß Anspruch 14.This task is solved by a communication module according to claim 1, a communication module according to claim 13 or a device for data transmission according to claim 14.

Der erfindungsgemäße Kommunikationsbaustein ist dazu ausgebildet als Slave betrieben zu werden und mit einem zweiten Kommunikationsbaustein verbunden zu werden. Der zweite Kommunikationsbaustein ist dazu ausgebildet als Master betrieben zu werden. Der erste Kommunikationsbaustein weist eine erste Leitung zum Empfangen eines Taktsignals von dem zweiten Kommunikationsbaustein, eine zweite Leitung zum Empfangen von Daten, eine dritte Leitung zum Senden von Daten und eine vierte Leitung auf, über welche der erste Kommunikationsbaustein durch den zweiten Kommunikationsbaustein aktiviert werden kann. Der erste Kommunikationsbaustein weist weiterhin entweder eine fünfte Leitung zum Ausgeben eines ersten Signals welches Informationen darüber enthält, ob der erste Kommunikationsbaustein dazu bereit ist Daten zu empfangen, oder eine sechste Leitung, zum Ausgeben eines zweiten Signals welches Informationen darüber enthält, ob der erste Kommunikationsbaustein Daten senden möchte, oder beides auf.The communication module according to the invention is designed to be operated as a slave and to be connected to a second communication module. The second communication module is designed to be operated as a master. The first communication module has a first line for receiving a clock signal from the second communication module, a second line for receiving data, a third line for sending data and a fourth line via which the first communication module can be activated by the second communication module. The first communication module also has either a fifth line for outputting a first signal which contains information about whether the first communication module is ready to receive data, or a sixth line for outputting a second signal which contains information about whether the first communication module is ready to receive data want to send, or both.

Über die fünfte und sechste Leitung kann eine Flusskontrolle der Daten erfolgen. Der zweite Kommunikationsbaustein ist zu jedem Zeitpunkt darüber informiert, ob der erste Kommunikationsbaustein Daten empfangen kann und/oder Daten senden möchte. Kann der erste Kommunikationsbaustein zu einem Zeitpunkt keine Daten empfangen, kann der zweite Kommunikationsbaustein beispielsweise davon absehen Daten zu senden und vielmehr zu warten, bis der erste Kommunikationsbaustein wieder bereit dazu ist, Daten zu empfangen. Dadurch können ungewollte Fehlersituationen vermieden werden.Data flow control can be carried out via the fifth and sixth lines. The second communication module is informed at all times whether the first communication module can receive data and/or wants to send data. If the first communication module cannot receive data at a time, the second communication module can, for example, refrain from sending data and instead wait until the first communication module is ready to receive data again. This allows unwanted error situations to be avoided.

Der erste Kommunikationsbaustein kann dazu ausgebildet sein, mit dem zweiten Kommunikationsbaustein über einen SPI-Bus verbunden zu werden. Die erste, zweite, dritte und vierte Leitung sind typischerweise in einem SPI-Bus bereits vorhanden. Die fünfte und sechste Leitung stellen eine Ergänzung dieser Leitungen dar.The first communication module can be designed to be connected to the second communication module via an SPI bus. The first, second, third and fourth lines are typically already present in an SPI bus. The fifth and sixth lines are an addition to these lines.

Der erste Kommunikationsbaustein kann weiterhin wenigstens einen Eingangspuffer aufweisen, der dazu ausgebildet ist, Nachrichten zu speichern, welche vom zweiten Kommunikationsbaustein empfangen werden. Empfangene Nachrichten werden somit nicht direkt weiter verarbeitet, sondern zunächst zwischengespeichert. Die Daten können zu einem beliebigen späteren Zeitpunkt aus dem Eingangspuffer ausgelesen und verarbeitet werden.The first communication module can further have at least one input buffer, which is designed to store messages that are received from the second communication module. Received messages are therefore not processed further directly, but are first cached. The data can be read from the input buffer and processed at any later time.

Der erste Kommunikationsbaustein weist weiterhin wenigstens einen Ausgangspuffer auf, der dazu ausgebildet ist, Nachrichten zu speichern, die an den zweiten Kommunikationsbaustein übertragen werden sollen. Nachrichten können zu jedem beliebigen Zeitpunkt im Ausgangspuffer abgelegt werden. Wird dann eine Kommunikation durch den zweiten Kommunikationsbaustein angestoßen, kann dieser die Daten dann aus dem Ausgangspuffer auslesen.The first communication module also has at least one output buffer, which is designed to store messages that are to be transmitted to the second communication module. Messages can be placed in the output buffer at any time. If communication is then initiated by the second communication module, it can then read the data from the output buffer.

Der erste Kommunikationsbaustein kann dazu ausgebildet sein mit einem Mikrocontroller verbunden zu werden, wobei der Mikrocontroller dazu ausgebildet sein kann, Nachrichten aus dem Eingangspuffer auszulesen und zu verarbeiten und Nachrichten in den Ausgangspuffer zur Übertragung an den zweiten Kommunikationsbaustein abzulegen. Der erste Kommunikationsbaustein dient somit lediglich als Interface. Die Verarbeitung und Bereitstellung der Daten erfolgt im Mikrocontroller.The first communication module can be designed to be connected to a microcontroller, whereby the microcontroller can be designed to read and process messages from the input buffer and to store messages in the output buffer for transmission to the second communication module. The first communication block therefore only serves as an interface. The data is processed and provided in the microcontroller.

Das erste Signal der fünften Leitung kann einen ersten Zustand annehmen, wenn der erste Kommunikationsbaustein keine neuen Nachrichten empfangen kann und kann einen zweiten Zustand annehmen, wenn der erste Kommunikationsbaustein neue Nachrichten empfangen kann. Der Zustand des Signals gibt somit auf einfache Art und Weise den Zustand des ersten Kommunikationsbausteins wider.The first signal of the fifth line can assume a first state if the first communication module cannot receive new messages and can assume a second state if the first communication module can receive new messages. The state of the signal thus simply reflects the state of the first communication module.

Das zweite Signal der sechsten Leitung kann einen ersten Zustand annehmen, wenn der erste Kommunikationsbaustein neue Nachrichten senden möchte und kann einen zweiten Zustand annehmen, wenn der erste Kommunikationsbaustein keine neuen Nachrichten zu senden hat. Der Zustand des Signals gibt somit auf einfache Art und Weise den Zustand des ersten Kommunikationsbausteins wider.The second signal of the sixth line can assume a first state if the first communication module wants to send new messages and can assume a second state if the first communication module does not have to send any new messages. The state of the signal thus easily reflects the state of the first communication module.

Der erste Kommunikationsbaustein kann dazu ausgebildet sein, Nachrichten an den zweiten Kommunikationsbaustein zu senden, welche neben Nutzdaten auch eine Prüfsumme aufweisen, und Nachrichten von dem zweiten Kommunikationsbaustein zu empfangen, welche neben Nutzdaten auch eine Prüfsumme aufweisen. Dadurch kann auf einfache Art und Weise anhand der Prüfsumme die Integrität einer Nachricht überprüft werden.The first communication module can be designed to send messages to the second communication module, which have a checksum in addition to user data, and to receive messages from the second communication module, which also have a checksum in addition to user data. This makes it easy to check the integrity of a message using the checksum.

Der erste Kommunikationsbaustein kann weiterhin wenigstens eines aufweisen von wenigstens einem ersten Schieberegister, das derart vor dem Eingangspuffer angeordnet ist, dass Nachrichten die vom zweiten Kommunikationsbaustein empfangen werden zunächst im ersten Schieberegister gespeichert werden und von dort in den Eingangspuffer übernommen werden, und wenigstens einem zweiten Schieberegister, das derart hinter dem Ausgangspuffer angeordnet ist, dass Nachrichten die an den zweiten Kommunikationsbaustein gesendet werden sollen, vom Ausgangspuffer in das zweite Schieberegister übernommen werden und von dort an das zweite Kommunikationsgerät übertragen werden. Dadurch wird noch ein weiterer Puffer vor bzw. nach dem jeweiligen Eingangs- bzw. Ausgangspuffer bereitgestellt.The first communication module can further have at least one of at least a first shift register, which is arranged in front of the input buffer in such a way that messages received from the second communication module are first stored in the first shift register and from there are transferred to the input buffer, and at least one second shift register , which is arranged behind the output buffer in such a way that messages that are to be sent to the second communication module are transferred from the output buffer to the second shift register and are transmitted from there to the second communication device. This means that another buffer is provided before or after the respective input or output buffer.

Der Kommunikationsbaustein kann alternativ oder zusätzlich auch wenigstens ein Schieberegister aufweisen, wobei wenigstens eines der Schieberegister dazu ausgebildet ist, sowohl Nachrichten die vom zweiten Kommunikationsbaustein empfangen werden zunächst zu speichern bevor diese von dort in den Eingangspuffer übernommen werden, als auch Nachrichten die an den zweiten Kommunikationsbaustein gesendet werden sollen, vom Ausgangspuffer zu übernehmen bevor diese von dort an das zweite Kommunikationsgerät übertragen werden.The communication module can alternatively or additionally have at least one shift register, with at least one of the shift registers being designed to initially store both messages that are received from the second communication module before they are transferred from there to the input buffer, as well as messages that are sent to the second communication module are to be sent, from the output buffer before they are transmitted from there to the second communication device.

Die Schieberegister können durch das Taktsignal oder durch einen aus dem Taktsignal generierten Takt getrieben werden.The shift registers can be driven by the clock signal or by a clock generated from the clock signal.

Eine Nachricht die an den zweiten Kommunikationsbaustein übertragen werden soll kann zu einem ersten Zeitpunkt in dem Ausgangspuffer gespeichert werden. Dabei wird ein erster Zeitstempel zusammen mit der Nachricht im Ausgangspuffer abgelegt, wobei der erste Zeitstempel Informationen zum ersten Zeitpunkt enthält. Die Nachricht kann dann zu einem zweiten Zeitpunkt an den zweiten Kommunikationsbaustein 6 übertragen werden. Der erste Kommunikationsbaustein ist dabei dazu ausgebildet, wenn die Nachricht an den zweiten Kommunikationsbaustein übertragen wird, den ersten Zeitstempel durch erste Daten zu ersetzen, wobei die ersten Daten Informationen zu einer Zeitdauer (delta) aufweisen die zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt vergangen ist.A message that is to be transmitted to the second communication module can be stored in the output buffer at a first time. A first timestamp is stored together with the message in the output buffer, the first timestamp containing information about the first point in time. The message can then be transmitted to the second communication module 6 at a second time. The first communication module is designed to replace the first time stamp with first data when the message is transmitted to the second communication module, the first data having information about a time period (delta) that has passed between the first time and the second time .

Ein zweiter Kommunikationsbaustein ist dazu ausgebildet, als Master betrieben zu werden und mit wenigstens einem ersten Kommunikationsbaustein verbunden zu werden. Der erste Kommunikationsbaustein ist dazu ausgebildet, als Slave betrieben zu werden. Der zweite Kommunikationsbaustein weist eine erste Leitung zum Ausgeben eines Taktsignals an den wenigstens einen ersten Kommunikationsbaustein, eine zweite Leitung zum Senden von Daten, eine dritte Leitung zum Empfangen von Daten und eine vierte Leitung über welche der zweite Kommunikationsbaustein den wenigstens einen ersten Kommunikationsbaustein aktivieren kann. Der zweite Kommunikationsbaustein weist entweder eine fünfte Leitung zum Empfangen eines ersten Signals von dem wenigstens einen ersten Kommunikationsbaustein, wobei das erste Signal Informationen darüber enthält, ob der wenigstens eine erste Kommunikationsbaustein dazu bereit ist Daten zu empfangen, oder eine sechste Leitung zum Empfangen eines zweiten Signals von dem wenigstens einen ersten Kommunikationsbaustein, wobei das zweite Signal Informationen darüber enthält, ob der wenigstens eine erste Kommunikationsbaustein Daten senden möchte, oder beides auf.A second communication module is designed to be operated as a master and to be connected to at least a first communication module. The first communication module is designed to act as a slave to be operated. The second communication module has a first line for outputting a clock signal to the at least one first communication module, a second line for sending data, a third line for receiving data and a fourth line via which the second communication module can activate the at least one first communication module. The second communication module has either a fifth line for receiving a first signal from the at least one first communication module, the first signal containing information about whether the at least one first communication module is ready to receive data, or a sixth line for receiving a second signal from the at least one first communication module, the second signal containing information about whether the at least one first communication module wants to send data, or both.

Eine Vorrichtung zur Datenübertragung weist wenigstens einen ersten Kommunikationsbaustein und einen zweiten Kommunikationsbaustein auf, wobei der wenigstens eine erste Kommunikationsbaustein dazu ausgebildet ist als Slave betrieben zu werden und der zweite Kommunikationsbaustein dazu ausgebildet ist als Master betrieben zu werden. Der wenigstens eine erste Kommunikationsbaustein und der zweite Kommunikationsbaustein sind über einen Datenbus miteinander verbunden. Der Datenbus weist eine erste Leitung zum Übertragen eines Taktsignals von dem zweiten Kommunikationsbaustein an den ersten Kommunikationsbaustein, eine zweite Leitung zum Übertragen von Daten vom zweiten Kommunikationsbaustein an den wenigstens einen ersten Kommunikationsbaustein, eine dritte Leitung zum Übertragen von Daten von dem wenigstens einen ersten Kommunikationsbaustein an den zweiten Kommunikationsbaustein und eine vierte Leitung auf über welche der wenigstens eine erste Kommunikationsbaustein durch den zweiten Kommunikationsbaustein aktiviert werden kann. Die Vorrichtung weist weiterhin entweder eine fünfte Leitung zum Übertragen eines ersten Signals an den zweiten Kommunikationsbaustein welches Informationen darüber enthält, ob der wenigstens eine erste Kommunikationsbaustein dazu bereit ist Daten zu empfangen, oder eine sechste Leitung zum Übertragen eines zweiten Signals an den zweiten Kommunikationsbaustein welches Informationen darüber enthält, ob der wenigstens eine erste Kommunikationsbaustein Daten senden möchte, oder beides auf. Der erste Kommunikationsbaustein weist weiterhin wenigstens einen Ausgangspuffer auf, der dazu ausgebildet ist, Nachrichten zu speichern, die an den zweiten Kommunikationsbaustein übertragen werden sollen. Eine Nachricht die an den zweiten Kommunikationsbaustein übertragen werden soll, kann zu einem ersten Zeitpunkt in dem Ausgangspuffer gespeichert werden. Dabei wird ein erster Zeitstempel zusammen mit der Nachricht im Ausgangspuffer abgelegt, wobei der erste Zeitstempel Informationen zum ersten Zeitpunkt enthält. Die Nachricht kann dann zu einem zweiten Zeitpunkt an den zweiten Kommunikationsbaustein übertragen werden. Der erste Kommunikationsbaustein ist dabei dazu ausgebildet, wenn die Nachricht an den zweiten Kommunikationsbaustein übertragen wird, den ersten Zeitstempel durch erste Daten zu ersetzen, wobei die ersten Daten Informationen zu einer Zeitdauer (delta) aufweisen die zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt vergangen ist.A device for data transmission has at least a first communication module and a second communication module, the at least one first communication module being designed to be operated as a slave and the second communication module being designed to be operated as a master. The at least one first communication module and the second communication module are connected to one another via a data bus. The data bus has a first line for transmitting a clock signal from the second communication module to the first communication module, a second line for transmitting data from the second communication module to the at least one first communication module, a third line for transmitting data from the at least one first communication module the second communication module and a fourth line via which the at least one first communication module can be activated by the second communication module. The device further has either a fifth line for transmitting a first signal to the second communication module which contains information about whether the at least one first communication module is ready to receive data, or a sixth line for transmitting a second signal to the second communication module which contains information whether the at least one first communication module wants to send data, or both. The first communication module also has at least one output buffer, which is designed to store messages that are to be transmitted to the second communication module. A message that is to be transmitted to the second communication module can be stored in the output buffer at a first time. A first timestamp is stored together with the message in the output buffer, the first timestamp containing information about the first point in time. The message can then be transmitted to the second communication module at a second time. The first communication module is designed to replace the first time stamp with first data when the message is transmitted to the second communication module, the first data having information about a time period (delta) that has passed between the first time and the second time .

Die Vorrichtung kann in einem Fahrzeug angeordnet sein.The device can be arranged in a vehicle.

Die Erfindung wird nachfolgend anhand der in den Figuren der Zeichnung dargestellten Ausführungsbeispiele näher erläutert. Es zeigt:

  • 1 in einer schematischen Darstellung beispielhaft das Prinzip eines Serial Peripheral Interface,
  • 2 beispielhaft in einem Blockdiagramm einen Kommunikationsbaustein,
  • 3 beispielhaft in zeitlichen Diagrammen Signale in einer Datenkommunikation,
  • 4 beispielhaft in zeitlichen Diagrammen Signale in einer Datenkommunikation unter Verwendung von Puffern,
  • 5 beispielhaft in einem Blockdiagramm eine Schnittstelle zwischen einem Mikrocontroller und einem Kommunikationsbaustein,
  • 6 , aufweisend die 6A und 6B, eingehende und ausgehende SPI-Daten,
  • 7 beispielhaft in einem Blockdiagramm einen Kommunikationsbaustein mit Puffern und Schieberegistern,
  • 8 beispielhaft in zeitlichen Diagrammen eine zeitliche Zuordnung eines Übertragungszeitpunkts und eines Verarbeitungszeitpunkts,
  • 9 beispielhaft ausgehende SPI-Daten mit einem Zeitstempel, und
  • 10 beispielhaft in zeitlichen Diagrammen eine zeitliche Zuordnung eines Beauftragungszeitpunktes und eines Übertragungszeitpunktes.
The invention is explained in more detail below with reference to the exemplary embodiments shown in the figures of the drawing. It shows:
  • 1 in a schematic representation, the principle of a serial peripheral interface is exemplified,
  • 2 For example, a communication block in a block diagram,
  • 3 For example, in time diagrams, signals in data communication,
  • 4 for example in time diagrams signals in a data communication using buffers,
  • 5 For example, in a block diagram, an interface between a microcontroller and a communication module,
  • 6 , having the 6A and 6B , incoming and outgoing SPI data,
  • 7 For example, in a block diagram, a communication block with buffers and shift registers,
  • 8th For example, in temporal diagrams, a temporal assignment of a transmission time and a processing time,
  • 9 for example, outgoing SPI data with a timestamp, and
  • 10 For example, in time diagrams, a time allocation of a commissioning time and a transfer time.

1 zeigt eine schematische Darstellung eines Serial Peripheral Interface. Ein Serial Peripheral Interface (SPI) ist ein Bus-System mit einem Standard für einen synchronen seriellen Datenbus (Synchronous Serial Port), mit dem digitale Schaltungen nach dem Master-Slave-Prinzip miteinander verbunden werden können. Ein SPI ermöglicht den seriellen (ein Bit nach dem anderen) Austausch von Daten zwischen zwei Bausteinen 11, 12, von denen einer als Master 12 und der andere als Slave 11 bezeichnet wird. Ein SPI kann im Vollduplex-Modus betrieben werden, das heißt, dass Daten gleichzeitig in beiden Richtungen (vom Master zum Slave und vom Slave zum Master) übertragen werden können. Beispielsweise können Steuereinheiten mit Peripheriegeräten oder mit Mikrocontrollern mittels SPI miteinander verbunden werden. 1 shows a schematic representation of a serial peripheral interface. A Serial Peripheral Interface (SPI) is a bus system with a standard for a synchronous serial data bus (Synchronous Serial Port) with which digital circuits can be connected to one another according to the master-slave principle. An SPI enables the serial (one bit at a time) exchange of data between two modules 11, 12, one of which is referred to as master 12 and the other as slave 11. An SPI can operate in full duplex mode, which means that data can be transferred in both directions (master to slave and slave to master) simultaneously. For example, control units can be connected to peripheral devices or to microcontrollers using SPI.

Ein SPI-Kommunikationsbaustein, unabhängig davon ob dieser als Master oder als Slave fungiert, weist drei Leitungen auf, an welchen jeder Teilnehmer (Master und ein oder mehrere Slaves) angeschlossen sind. Dies sind eine Takt-Leitung CLK, auch als Clock oder Serial Clock bezeichnet, wobei der Takt vom Master ausgegeben wird, und zwei Leitungen zum Übertragen von Daten. Eine so genannte MOSI-Leitung (Master Output, Slave Input), zum Übertragen von Daten vom Master 12 zum Slave 11, und eine so genannte MISO-Leitung (Master Input, Slave Output), zum Übertragen von Daten vom Slave 11 zum Master 12. Die Datenleitungen können beispielsweise auch als Serial Data Out (SDO) und Serial Data In (SDI) bezeichnet werden, wobei die Benennung meist aus Sicht des jeweiligen Busteilnehmers erfolgt, so dass in diesem Fall die Leitungen über Kreuz verbunden werden müssen im Gegensatz zu dem dargestellten Fall bei dem MISO mit MISO und MOSI mit MOSI verbunden ist.An SPI communication module, regardless of whether it functions as a master or a slave, has three lines to which each participant (master and one or more slaves) is connected. These are a clock line CLK, also known as clock or serial clock, where the clock is output by the master, and two lines for transmitting data. A so-called MOSI line (Master Output, Slave Input), for transferring data from master 12 to slave 11, and a so-called MISO line (Master Input, Slave Output), for transferring data from slave 11 to master 12 The data lines can, for example, also be referred to as Serial Data Out (SDO) and Serial Data In (SDI), whereby the naming usually occurs from the perspective of the respective bus participant, so that in this case the lines have to be connected crosswise in contrast to that illustrated case in which MISO is connected to MISO and MOSI is connected to MOSI.

Ein SPI-Kommunikationsbaustein weist weiterhin eine oder mehrere logisch-0 aktive Chip-Select-Leitungen (CS-Leitung) auf (oft auch als Slave Select SS oder Slave Transmit Enable STE bezeichnet) . In der Regel weist jeder Slave nur eine CS-Leitung auf. Ein Master kann eine oder mehrere CS-Leitungen aufweisen. Beispielsweise kann der Master für jeden Slave mit dem er verbunden ist eine eigene CS-Leitung aufweisen. Diese Leitungen CS werden vom Master 12 gesteuert.An SPI communication module also has one or more logic-0 active chip select lines (CS line) (often also referred to as Slave Select SS or Slave Transmit Enable STE). As a rule, each slave only has one CS line. A master can have one or more CS lines. For example, the master can have its own CS line for each slave to which it is connected. These lines CS are controlled by the master 12.

Es können theoretisch beliebig viele Teilnehmer an einen SPI-Bus angeschlossen werden. Dabei ist jedoch immer genau ein Master 12 erforderlich, der das Taktsignal CLK erzeugt. Mit der Leitung Chip-Select CS legt der Master 12 fest, mit welchem Slave 11 er kommunizieren will. Wird die entsprechende CS-Leitung durch den Master 12 auf Masse gezogen (logisch-0), ist der zugehörige Slave 11 aktiv und „lauscht“ an der MOSI-Leitung ob Daten vom Master 12 übertragen werden. Gleichzeitig legt er seine Daten die an den Master 12 zu übertragen sind im Takt des Taktsignals an die MISO-Leitung an. In einer folgenden Datenkommunikation wird ein Wort vom Master 12 zum Slave 11 und ein anderes Wort vom Slave 11 zum Master 12 übertragen.Theoretically, any number of participants can be connected to an SPI bus. However, exactly one master 12 is always required to generate the clock signal CLK. Using the Chip-Select CS line, the master 12 determines which slave 11 it wants to communicate with. If the corresponding CS line is pulled to ground (logical 0) by the master 12, the associated slave 11 is active and “listens” on the MOSI line whether data is being transmitted from the master 12. At the same time, it applies its data that is to be transmitted to the master 12 to the MISO line in time with the clock signal. In a subsequent data communication, a word is transmitted from the master 12 to the slave 11 and another word from the slave 11 to the master 12.

Es existiert kein festgelegtes Protokoll zur Datenübertragung für SPI, jedoch haben sich allgemein vier verschiedene Modi durchgesetzt. Diese werden durch die Parameter Clock Polarität (CPOL) und Clock Phase (CPHA) festgelegt. Bei CPOL = 0 ist der Clock Idle Low, bei CPOL = 1 ist der Clock Idle High. CPHA gibt an, bei der wievielten Flanke des Taktsignals die Daten übernommen werden sollen. Bei CPHA = 0 werden sie bei der ersten Flanke übernommen nachdem CS auf Low gezogen wurde, und bei CPHA = 1 bei der zweiten Flanke. Somit werden die Daten bei CPOL = 0 und CPHA = 0 mit der ersten Flanke übernommen, welche nur eine steigende Flanke sein kann. Bei CPHA = 1 wäre es die zweite Flanke, also eine fallende Flanke. Bei CPOL = 1 ist dies genau andersherum, also bei CPHA = 0 eine fallende Flanke und bei CPHA = 1 eine steigende Flanke.There is no set data transfer protocol for SPI, but four different modes have generally been adopted. These are determined by the Clock Polarity (CPOL) and Clock Phase (CPHA) parameters. With CPOL = 0 the clock idle is low, with CPOL = 1 the clock idle is high. CPHA specifies at which edge of the clock signal the data should be accepted. If CPHA = 0 they are applied on the first edge after CS is pulled low, and if CPHA = 1 on the second edge. Thus, with CPOL = 0 and CPHA = 0, the data is accepted with the first edge, which can only be a rising edge. If CPHA = 1 it would be the second edge, i.e. a falling edge. With CPOL = 1 this is exactly the other way around, i.e. with CPHA = 0 a falling edge and with CPHA = 1 a rising edge.

Der Slave 11 legt in der Regel bei CPHA = 0 seine Daten schon an MISO an, wenn CS auf Low geht, damit der Master 12 sie beim ersten Flankenwechsel übernehmen kann. Bei CPHA = 1 werden die Daten vom Slave 11 erst beim ersten Flankenwechsel an MISO gelegt, damit sie beim zweiten Flankenwechsel vom Master 12 übernommen werden können. Der Master 12 hingegen legt seine Daten immer zum gleichen Zeitpunkt an, nämlich meist kurz nach der fallenden Flanke von CLK.With CPHA = 0, slave 11 usually applies its data to MISO when CS goes low so that master 12 can accept it at the first edge change. With CPHA = 1, the data from slave 11 is only sent to MISO at the first edge change so that it can be accepted by master 12 at the second edge change. The master 12, on the other hand, always creates its data at the same time, usually shortly after the falling edge of CLK.

Mit jeder Taktperiode wird ein Bit übertragen. Beim üblichen Bytetransfer sind also acht Taktperioden für eine vollständige Übertragung nötig. Es können auch mehrere Wörter hintereinander übertragen werden. Dabei ist nicht festgelegt, ob nach jedem Wort die CS-Leitung kurz auf High gezogen werden muss oder nicht. Eine Übertragung ist beendet, wenn die CS-Leitung endgültig wieder auf High gesetzt wird.One bit is transmitted with each clock period. With the usual byte transfer, eight clock periods are necessary for a complete transfer. Several words can also be transmitted one after the other. It is not specified whether the CS line must be briefly pulled to high after each word or not. A transmission is ended when the CS line is finally set to high again.

2 zeigt beispielhaft in einem Blockdiagramm einen Kommunikationsbaustein 21. Der Kommunikationsbaustein 21 (im Weiteren als Slave bezeichnet) ist dazu ausgebildet als Slave betrieben zu werden und weist mehrere Leitungen (bzw. Pins) auf. Dies sind eine erste Leitung CLK zum Empfangen eines Taktsignals . Das Taktsignal empfängt der Slave 21 von einem zweiten Kommunikationsbaustein 22, welcher dazu ausgebildet ist als Master betrieben zu werden (im Weiteren als Master bezeichnet). Weiterhin weist der Slave 21 eine zweite Leitung MOSI (Master Output Slave Input) auf zum Empfangen von Daten vom Master 22. Über eine dritte Leitung MISO (Master Input Slave Output) kann der Slave 21 Daten an den Master 22 senden. Über eine vierte Leitung CS kann der Slave 21 durch den Master 22 aktiviert werden. 2 shows an example of a communication module 21 in a block diagram. The communication module 21 (hereinafter referred to as a slave) is designed to be operated as a slave and has several lines (or pins). These are a first line CLK for receiving a clock signal. The slave 21 receives the clock signal from a second communication module 22, which is designed to be operated as a master (hereinafter referred to as master). Furthermore, the slave 21 has a second line MOSI (Master Output Slave Input) for receiving data from the master 22. The slave 21 can send data to the master 22 via a third line MISO (Master Input Slave Output). The slave 21 can be activated by the master 22 via a fourth line CS.

Der Slave 21 wird durch den Master 22 beispielsweise dann aktiviert, wenn Daten übertragen werden sollen. Dies ist unabhängig davon, ob Daten vom Master 22 zum Slave 21, vom Slave 21 zum Master 22 oder in beide Richtungen übertragen werden sollen. Ein Signal welches an der Chip-Select (CS) Leitung anliegt kann zwei Zustände annehmen, einen High-Zustand (logisch-1) oder einen Low-Zustand (logisch-0) . Der Slave 21 ist in der Regel aktiviert, wenn das Signal an der CS-Leitung einen Low-Zustand annimmt. Das heißt, der Slave 21 ist logisch-0 aktiv. The slave 21 is activated by the master 22, for example, when data is transmitted should be. This is independent of whether data is to be transferred from master 22 to slave 21, from slave 21 to master 22 or in both directions. A signal that is present on the chip select (CS) line can assume two states, a high state (logic-1) or a low state (logic-0). Slave 21 is typically activated when the signal on the CS line goes low. This means that slave 21 is active at logic 0.

Dies ist jedoch nur ein Beispiel, grundsätzlich besteht auch die Möglichkeit, dass der Slave 21 logisch-1 aktiv ist, das heißt, dass er aktiv ist wenn das Signal an der CS-Leitung einen High-Zustand annimmt.However, this is just an example; in principle there is also the possibility that the slave 21 is active at logic 1, that is, that it is active when the signal on the CS line assumes a high state.

Das Taktsignal weist einen High-Zustand auf, solange der Slave 21 inaktiv ist (CS = High) . Wenn das Signal an der CS-Leitung auf Low geht und der Slave 21 aktiviert wird, gibt das Signal an der CLK-Leitung einen entsprechenden Takt vor, das heißt es wechselt in regelmäßigen Abständen zwischen einem Low-Zustand und einem High-Zustand. Dies ist beispielhaft in 3 dargestellt.The clock signal has a high state as long as the slave 21 is inactive (CS = High). When the signal on the CS line goes low and the slave 21 is activated, the signal on the CLK line sets a corresponding clock, that is, it changes at regular intervals between a low state and a high state. This is exemplified in 3 shown.

Während der Slave 21 aktiv ist können Daten vom Master 22 an den Slave 21 oder vom Slave 21 an den Master 22 übertragen werden oder beides. Die Daten werden als Nachrichten mit einer Länge von X Bytes übertragen. Diese Länge kann gleichbleibend sein. Beispielsweise können alle Nachrichten eine Länge von 20 Bytes aufweisen (X = 20) . Dies ist jedoch lediglich ein Beispiel. Die Länge der Nachrichten kann grundsätzlich beliebig gewählt werden. Grundsätzlich ist es auch möglich, dass die Länge der Nachrichten variiert. Das heißt, jedes Mal wenn der Slave 21 aktiv ist, können Nachrichten mit einer unterschiedlichen Länge mit X ≥ 1 übertragen werden.While slave 21 is active, data can be transferred from master 22 to slave 21 or from slave 21 to master 22 or both. The data is transmitted as messages with a length of X bytes. This length can be constant. For example, all messages can be 20 bytes long (X = 20). However, this is just an example. The length of the messages can basically be chosen arbitrarily. In principle, it is also possible for the length of the messages to vary. That is, every time the slave 21 is active, messages of a different length with X ≥ 1 can be transmitted.

Wenn die Länge der Nachrichten begrenzt ist (z.B. X = 20), jedoch Daten in einer Menge übertragen werden sollen welche die Länge einer Nachricht übersteigen, kann die Gesamtmenge an Daten auf mehrere Nachrichten aufgeteilt werden. Ist die Menge der zu übertragenden Daten kleiner als die Länge der Nachrichten, kann der nicht benötigte Teil der in einer Nachricht übertragenen Daten einfach ignoriert werden. Die Größe der einzelnen Datentransfers ist von Anwendung zu Anwendung meist sehr unterschiedlich. Die Stückelung der Datentransfers, also die Größe der einzelnen Nachrichten und somit die Anzahl der für einen Datentransfer benötigten Nachrichten kann je nach Anforderungen der Anwendung gewählt werden.If the length of the messages is limited (e.g. If the amount of data to be transmitted is smaller than the length of the messages, the unneeded part of the data transmitted in a message can simply be ignored. The size of the individual data transfers usually varies greatly from application to application. The denomination of the data transfers, i.e. the size of the individual messages and thus the number of messages required for a data transfer, can be selected depending on the requirements of the application.

Dabei ist es, wie oben bereits erläutert, beispielsweise möglich eine feste Größe für Nachrichten festzulegen, welche dann nicht mehr verändert werden kann. Es ist jedoch auch möglich, dass die Größe der Nachrichten beispielsweise vor jedem Datentransfer neu festgelegt ist.As explained above, it is possible, for example, to set a fixed size for messages, which can then no longer be changed. However, it is also possible for the size of the messages to be redefined before each data transfer, for example.

Der Slave 21 kann beispielsweise mit einem Mikrocontroller 30 verbunden sein. Der Mikrocontroller 30 kann beispielsweise den Slave 21 steuern. Die Einstellung der Nachrichtenläge erfolgt in der Regel durch den Master 22. Das heißt, der Master 22 kann dem Slave 21 bei jeder Datenübertragung neu vorgeben, welche Länge die Nachrichten aufweisen sollen. Gemäß einem Beispiel stellt der Mikrocontroller 30 die Menge der zu übertragenden Daten (Nachrichtenlänge) ein. Wird durch den Master eine unterschiedliche Länge vorgegeben, z.B. längere Nachrichten, kann der Slave 21, insbesondere die Slave-Hardware, die vom Mikrocontroller 30 vorgegebenen Nachrichten automatisch auffüllen, so dass die Nachrichten letztendlich mit der vom Master 22 vorgegebenen Länge übertragen werden.The slave 21 can be connected to a microcontroller 30, for example. The microcontroller 30 can control the slave 21, for example. The message length is usually set by the master 22. This means that the master 22 can specify to the slave 21 what length the messages should have with each data transmission. According to one example, the microcontroller 30 sets the amount of data to be transmitted (message length). If a different length is specified by the master, for example longer messages, the slave 21, in particular the slave hardware, can automatically fill up the messages specified by the microcontroller 30, so that the messages are ultimately transmitted with the length specified by the master 22.

Der Slave 21 kann beispielsweise wenigstens einen Eingangspuffer 41 (N ≥ 1) und wenigstens einen Ausgangspuffer 42 (M ≥ 1) aufweisen. In 4 sind beispielhaft zwei Eingangspuffer 41 (N = 2) und zwei Ausgangspuffer 42 (M = 2) dargestellt. Der Kommunikationsbaustein 21 kann jedoch auch mehr oder weniger Eingangspuffer 41 und Ausgangspuffer 42 aufweisen. Die Anzahl der Eingangspuffer 41 muss dabei nicht der Anzahl der Ausgangspuffer 42 entsprechen, das heißt es muss nicht zwingend gelten N = M. Empfangene Nachrichten werden dabei zunächst in einem der Eingangspuffer 41 abgelegt, bevor sie von dort ausgelesen und verarbeitet werden. Zu sendende Nachrichten können vom Slave 21 in einem der Ausgangspuffer 42 abgelegt werden. Von dort können die Nachrichten vom Master 22 abgeholt werden. Dies ist in 4 durch die Pfeile beispielhaft dargestellt.The slave 21 can, for example, have at least one input buffer 41 (N ≥ 1) and at least one output buffer 42 (M ≥ 1). In 4 Two input buffers 41 (N = 2) and two output buffers 42 (M = 2) are shown as examples. However, the communication module 21 can also have more or fewer input buffers 41 and output buffers 42. The number of input buffers 41 does not have to correspond to the number of output buffers 42, that is, it does not necessarily have to be N = M. Received messages are first stored in one of the input buffers 41 before they are read out and processed from there. Messages to be sent can be stored by the slave 21 in one of the output buffers 42. From there the messages can be picked up by Master 22. This is in 4 shown as an example by the arrows.

Wie in 5 schematisch dargestellt, können die Eingangspuffer 41 und die Ausgangspuffer 42 eine Schnittstelle zwischen dem Slave 21 und dem Mikrocontroller 30 darstellen. Der Mikrocontroller 30 kann dazu ausgebildet sein, die Eingangspuffer 41 auszulesen. Der Mikrocontroller 30 kann weiterhin dazu ausgebildet sein, die Ausgangspuffer 42 zu beschreiben. Der Mikrocontroller 30 kann auch die Füllstände der Eingangspuffer 41 und der Ausgangspuffer 42 prüfen und überwachen. Es ist jedoch ebenso möglich, dass der Slave 21 die Füllstände überwacht und prüft und dem Mikrocontroller 30 Informationen über die Füllstände zusendet. In jedem Fall liegt dem Mikrocontroller 30 z.B. eine Information 43 darüber vor, ob die Puffer 41, 42 gefüllt sind. Dem Mikrocontroller 30 kann weiterhin eine Information 44 darüber vorliegen, ob die Puffer 41, 42 zumindest teilweise leer sind und noch Nachrichten speichern können. Dies ist unabhängig davon, ob der Slave 21 diese Informationen 43, 44 an den Mikrocontroller 30 sendet oder ob der Mikrocontroller 30 die Information selber ermittelt.As in 5 Shown schematically, the input buffers 41 and the output buffers 42 can represent an interface between the slave 21 and the microcontroller 30. The microcontroller 30 can be designed to read out the input buffers 41. The microcontroller 30 can further be designed to describe the output buffers 42. The microcontroller 30 can also check and monitor the fill levels of the input buffers 41 and the output buffers 42. However, it is also possible for the slave 21 to monitor and check the fill levels and to send the microcontroller 30 information about the fill levels. In any case, the microcontroller 30 has, for example, information 43 about whether the buffers 41, 42 are filled. The microcontroller 30 can also have information 44 about whether the buffers 41, 42 are at least partially empty and can still store messages. This is independent of whether the slave 21 receives this information 43, 44 to the microcontroller 30 or whether the microcontroller 30 determines the information itself.

Der Slave 21 kann beispielsweise auch dazu ausgebildet sein, eine Information 45 an den Mikrocontroller 30 zu senden, wenn eine Kommunikation zwischen dem Slave 21 und dem Master 22 gestartet wird (Event „SPI Transmission started“). Ebenso kann der Slave 21 dem Mikrocontroller 30 eine Information 46 darüber senden, dass die Kommunikation zwischen dem Slave 21 und dem Master 22 beendet ist (Event „SPI Transmission completed“). Eine Kommunikation kann dabei das Senden von Daten vom Master 22 zum Slave 21, vom Slave 21 zum Master 22 oder beides aufweisen.The slave 21 can, for example, also be designed to send information 45 to the microcontroller 30 when communication between the slave 21 and the master 22 is started (“SPI Transmission started” event). Likewise, the slave 21 can send the microcontroller 30 information 46 that the communication between the slave 21 and the master 22 has ended (“SPI Transmission completed” event). Communication can involve sending data from the master 22 to the slave 21, from the slave 21 to the master 22, or both.

Wird also durch den Master 22 eine Datenübertragung durchgeführt, werden die Daten die auf der MOSI Leitung übermittelt werden in einen Eingangspuffer 41 geschrieben und können von dort durch den Mikrocontroller 30 abgeholt werden. Anders herum kann der Mikrocontroller 30 Nachrichten in die Ausgangspuffer 42 schreiben. Dies kann bereits erfolgen bevor eine Datenübertragung durch den Master 22 initiiert wurde. Sobald die nächste Datenübertragung durch den Master 22 initiiert wurde, können die Daten aus dem wenigstens einen Ausgangspuffer 42 dann über die MISO Leitung an den Master 22 übertragen werden.If a data transfer is carried out by the master 22, the data that is transmitted on the MOSI line is written into an input buffer 41 and can be picked up from there by the microcontroller 30. The other way around, the microcontroller 30 can write messages into the output buffers 42. This can take place before a data transmission has been initiated by the master 22. As soon as the next data transfer has been initiated by the master 22, the data from the at least one output buffer 42 can then be transferred to the master 22 via the MISO line.

Dabei kann es vorkommen, dass zu Beginn einer Datenkommunikation keine Nachrichten im Ausgangspuffer 42 vorhanden sind, die Ausgangspuffer 42 also leer sind. In diesem Fall könnte beispielsweise eine vorgegebene Dummy-Nachricht an den Master 22 übertragen werden. Eine solche Dummy-Nachricht kann beispielsweise vorgegebene Inhalte aufweisen, so dass der Master 22 die Nachricht eindeutig als Dummy-Nachricht erkennt und diese beispielsweise ignorieren kann.It can happen that at the beginning of data communication there are no messages in the output buffer 42, i.e. the output buffers 42 are empty. In this case, for example, a predetermined dummy message could be transmitted to the master 22. Such a dummy message can, for example, have predetermined content, so that the master 22 clearly recognizes the message as a dummy message and can, for example, ignore it.

Der Slave 21 kann weiterhin eine fünfte Leitung BUSY aufweisen, die dazu ausgebildet ist ein Signal auszugeben welches Informationen darüber enthält, ob der Slave 21 dazu bereit ist Daten zu empfangen. Weiterhin kann der Slave 21 auch eine sechste Leitung IRQ aufweisen, die dazu ausgebildet ist ein Signal auszugeben welches Informationen darüber enthält, ob der Slave 21 aktuell Daten senden möchte. Das heißt, über diese beiden zusätzlichen Leitungen findet eine Flusskontrolle der zu übertragenden Daten statt. Der Slave 21 kann dabei entweder nur die fünfte Leitung BUSY oder nur die sechste Leitung IRQ oder sowohl die fünfte Leitung BUSY als auch die sechste Leitung IRQ aufweisen.The slave 21 can also have a fifth line BUSY, which is designed to output a signal which contains information about whether the slave 21 is ready to receive data. Furthermore, the slave 21 can also have a sixth line IRQ, which is designed to output a signal which contains information about whether the slave 21 currently wants to send data. This means that flow control of the data to be transmitted takes place via these two additional lines. The slave 21 can have either only the fifth line BUSY or only the sixth line IRQ or both the fifth line BUSY and the sixth line IRQ.

Die fünfte Leitung BUSY und die sechste Leitung IRQ können beide jeweils zwei Zustände annehmen. Ein erster Zustand ist ein aktiver Zustand „aktiv“ und ein zweiter Zustand ist ein inaktiver Zustand „nicht aktiv“. Ist die fünfte Leitung BUSY im Zustand „aktiv“, bedeutet dies, dass der Slave 21 derzeit keine neuen Nachrichten empfangen kann. Das heißt, alle Eingangspuffer 41 sind voll. Ist die fünfte Leitung BUSY „nicht aktiv“, bedeutet dies, dass neue Nachrichten empfangen werden können. Das heißt, es ist Platz in den Eingangspuffern 41 vorhanden.The fifth line BUSY and the sixth line IRQ can both assume two states. A first state is an active state “active” and a second state is an inactive state “not active”. If the fifth line BUSY is in the “active” state, this means that the slave 21 cannot currently receive any new messages. This means that all input buffers 41 are full. If the fifth line BUSY is “not active”, this means that new messages can be received. This means that there is space in the input buffers 41.

Ist die sechste Leitung IRQ „aktiv“, bedeutet dies, dass Nachrichten vorhanden sind welche an den Master 22 gesendet werden sollen. Das heißt, die Ausgangspuffer 42 sind zumindest teilweise gefüllt. Ist die sechste Leitung IRQ hingegen „nicht aktiv“, bedeutet dies, dass keine Nachrichten zum Senden an den Master 22 vorliegen und die Ausgangspuffer 42 leer sind.If the sixth line IRQ is “active”, this means that there are messages that should be sent to the master 22. This means that the output buffers 42 are at least partially filled. However, if the sixth line IRQ is “not active”, this means that there are no messages to send to the master 22 and the output buffers 42 are empty.

Zur Verwaltung der fünften und sechsten Leitung BUSY, IRQ ist ein Eingreifen des Mikrocontrollers 30 nicht erforderlich. Die Leitungen BUSY, IRQ können durch die Hardware sozusagen autonom verwaltet werden. Dies erlaubt dem Mikrocontroller 30 eine Abarbeitung der Daten mit sehr geringen Echtzeitanforderungen, da die Hardware selber die Daten autonom puffert bis der Mikrocontroller 30 bereit ist diese zu bearbeiten. Dadurch kann auch die Verarbeitung der beiden Events „SPI Transmission started“ und „SPI Transmission completed“ im Mikrocontroller 30 ohne harte Echtzeitanforderungen erfolgen und ist von den Anforderungen an die Zeitplanung (Timing-Anforderungen) der SPI-Schnittstelle selbst komplett entkoppelt.Intervention by the microcontroller 30 is not required to manage the fifth and sixth lines BUSY, IRQ. The BUSY and IRQ lines can be managed autonomously by the hardware, so to speak. This allows the microcontroller 30 to process the data with very low real-time requirements, since the hardware itself buffers the data autonomously until the microcontroller 30 is ready to process it. This means that the processing of the two events “SPI Transmission started” and “SPI Transmission completed” can take place in the microcontroller 30 without hard real-time requirements and is completely decoupled from the scheduling requirements (timing requirements) of the SPI interface itself.

Dabei kann sich der Zustand der fünften Leitung BUSY nur während einer laufenden Datenübertragung von „nicht aktiv“ zu „aktiv“ ändern, da der Master 22 nur während einer laufenden Datenübertragung Daten an den Slave 21 sendet und die Eingangspuffer 41 somit nur während einer laufenden Datenübertragung gefüllt werden können. Der Slave 21 füllt, wie oben beschrieben, die Eingangspuffer 41 zu keinem Zeitpunkt selber. Diese werden immer durch den Master 22 gefüllt. Der Master 22 kann somit vor Beginn einer Datenübertragung den Zustand der fünften Leitung BUSY prüfen um sicherzustellen, dass eine Übertragung erfolgen kann. Wird der Zustand der Leitung BUSY als „aktiv“ erkannt, kann der Slave 21 keine weiteren Daten empfangen. Der Slave 21 ist somit nicht bereit für eine neue Datenübertragung.The state of the fifth line BUSY can only change from “not active” to “active” during an ongoing data transfer, since the master 22 only sends data to the slave 21 during an ongoing data transfer and the input buffers 41 therefore only sends data during an ongoing data transfer can be filled. As described above, the slave 21 does not fill the input buffer 41 itself at any time. These are always filled by the master 22. The master 22 can therefore check the state of the fifth line BUSY before the start of a data transmission to ensure that a transmission can take place. If the status of the BUSY line is recognized as “active”, the slave 21 cannot receive any further data. The slave 21 is therefore not ready for a new data transmission.

Wird der Zustand der Leitung BUSY als „nicht aktiv“ erkannt, kann unabhängig vom derzeitigen Zustand des Mikrocontrollers 30 eine Datenübertragung erfolgen, da die vom Master 22 übertragenen Daten in den Eingangspuffern 41 gespeichert werden können, bis der Mikrocontroller 30 bereit ist diese zu verarbeiten. Dieses Vorgehen, also das Anzeigen des aktuellen Status über die Leitungen BUSY und IRQ, kann so genannte „Race-Conditions“ vermeiden. Eine „Race-Condition“, auch als Wettlaufsituation bezeichnet, ist eine Konstellation, in der das Ergebnis einer Operation vom zeitlichen Verhalten bestimmter Einzeloperationen abhängt. Das heißt, zwei Signale befinden sich sozusagen in einem Wettlauf, um eine Ausgabe als erstes zu beeinflussen. Die oben beschriebene Integration der Flusskontrolle direkt in die Hardware des Slaves 21 bewirkt, dass die Flusskontrolle zu jedem Zeitpunkt konsistent bleibt, so dass „Race-Conditions“ vermieden werden können.If the state of the BUSY line is recognized as “not active”, data transmission can take place regardless of the current state of the microcontroller 30, since the data transmitted by the master 22 can be stored in the input buffers 41 until the microcontroller 30 is ready to process them. This procedure, that is Displaying the current status via the BUSY and IRQ lines can avoid so-called “race conditions”. A “race condition”, also known as a race situation, is a constellation in which the result of an operation depends on the temporal behavior of certain individual operations. This means that two signals are in a race to be the first to influence an output. The above-described integration of the flow control directly into the hardware of the slave 21 ensures that the flow control remains consistent at all times so that “race conditions” can be avoided.

Grundsätzlich ist es möglich, dass der Master 22 die Flusskontrolle übergeht und Nachrichten an den Slave 21 sendet, obwohl die Leitung BUSY auf „aktiv“ gesetzt ist. Der Slave 21 erkennt dies, da er seinen eigenen Zustand kennt, und kann den Mikrocontroller 30 entsprechend darüber informieren, beispielsweise indem er eine Fehlermeldung an den Mikrocontroller 30 sendet. Durch den Master 22 sollte daher, wenn möglich, vermieden werden Nachrichten trotz gesetzter BUSY Leitung („aktiv“) zu senden.In principle, it is possible that the master 22 overrides flow control and sends messages to the slave 21 even though the BUSY line is set to “active”. The slave 21 recognizes this because it knows its own state and can inform the microcontroller 30 accordingly, for example by sending an error message to the microcontroller 30. If possible, the master 22 should therefore avoid sending messages despite the BUSY line being set (“active”).

Der Slave 21 kann weiterhin dazu ausgebildet sein, eine Fehlerprüfung durchzuführen. Eine Fehlerprüfung kann Störungen der Kommunikation sowohl in Bezug auf die Datenübertragung als auch in Bezug auf die Flusskontrolle erkennen. Die Fehlerprüfung kann beispielsweise bei jeder Datenübertragung das Prüfen der zu erwartenden Nachrichtenlänge X aufweisen sowie das Vergleichen der erwarteten Länge mit der tatsächlichen vom Master 22 verwendeten Länge. Stellt der Slave 21 eine Abweichung der tatsächlichen Nachrichtenlänge von der erwarteten Nachrichtenlänge fest, kann der Slave 21 eine Fehlermeldung an den Mikrocontroller 30 senden.The slave 21 can also be designed to carry out an error check. Error checking can detect disruptions in communication, both in terms of data transmission and flow control. The error check can, for example, include checking the expected message length X for each data transmission and comparing the expected length with the actual length used by the master 22. If the slave 21 detects a deviation of the actual message length from the expected message length, the slave 21 can send an error message to the microcontroller 30.

Die Fehlerprüfung kann beispielsweise auch das Prüfen einer Prüfsumme PS(Checksum) der vom Master 22 empfangenen Daten aufweisen. Eine Prüfsumme ist ein Wert, mit dem die Integrität von Daten überprüft werden kann. Eine Prüfsumme ist dabei grundsätzlich ein Wert, der aus den zu übertragenden Daten berechnet wird. Durch überprüfen der Prüfsumme PS kann mindestens ein Bitfehler in den Daten erkannt werden. Je nachdem wie komplex die Berechnungsvorschrift für die Prüfsumme ist, können auch mehrere Fehler erkannt oder sogar auch korrigiert werden.The error check can, for example, also include checking a checksum PS (checksum) of the data received from the master 22. A checksum is a value that can be used to verify the integrity of data. A checksum is basically a value that is calculated from the data to be transferred. By checking the checksum PS, at least one bit error in the data can be detected. Depending on how complex the calculation rule for the checksum is, several errors can be detected or even corrected.

Eine vom Master 22 zum Slave 21 zu übertragende Nachricht kann beispielsweise eine Gesamtlänge X aufweisen, wobei sich die Gesamtlänge aus Nutzdaten (Payload) einer Länge Y und einer Prüfsumme PS der Länge Z zusammensetzt, also X = Y + Z. Dies ist beispielhaft in 6A dargestellt. Wenn beispielsweise gilt X = 20 (Gesamtlänge der Nachricht 20 Byte), kann die Länge Y der Nutzdaten beispielsweise 18 Byte betragen (Y = 18) und die Länge Z der Prüfsumme 2 Byte (Z = 2). Dies ist jedoch lediglich ein Beispiel. Das Gleiche gilt, wie beispielhaft in 6B dargestellt, für Nachrichten die auf der MISO Leitung vom Slave 21 an den Master 22 übertragen werden.A message to be transmitted from the master 22 to the slave 21 can, for example, have a total length 6A shown. For example, if However, this is just an example. The same applies, as exemplified in 6B shown, for messages that are transmitted on the MISO line from slave 21 to master 22.

Wird die Prüfsumme PS einer Nachricht als nicht korrekt erkannt, kann die Nachricht beispielsweise verworfen werden. Das heißt, die Nachricht kann beispielsweise nicht in die Eingangspuffer 41 übernommen werden. Zudem kann beispielsweise auch eine Fehlermeldung an den Mikrocontroller 30 ausgegeben werden. Ebenso kann auch der Slave 21 eine Prüfsumme PS zusammen mit einer Nachricht an den Master 22 übertragen. Der Master 22 kann die Prüfsumme PS ebenfalls prüfen und die Nachricht verwerfen, wenn die Prüfsumme nicht korrekt ist. Das Verwenden von Prüfsummen ist jedoch optional. Durch das Hinzufügen von Prüfsummen kann die Kommunikation zwischen Slave 21 und Master 22 jedoch grundsätzlich gut gegen Störungen abgesichert werden.If the checksum PS of a message is recognized as incorrect, the message can be discarded, for example. This means that the message cannot be accepted into the input buffer 41, for example. In addition, an error message can also be output to the microcontroller 30, for example. Likewise, the slave 21 can also transmit a checksum PS together with a message to the master 22. The master 22 can also check the checksum PS and discard the message if the checksum is not correct. However, using checksums is optional. However, by adding checksums, the communication between slave 21 and master 22 can generally be well protected against interference.

Der Slave 21 kann weiterhin ein oder mehrere Schieberegister 50, 51 (Shift Register) aufweisen. Dies ist in 7 schematisch dargestellt. Ein erstes Schieberegister 50 (Rx Shift Register) kann beispielsweise dem wenigstens einen Eingangspuffer 41 vorgelagert sein. Vom Master 22 an den Slave 21 übertragene Nachrichten können zunächst im ersten Schieberegister 50 abgelegt werden. Das erste Schieberegister 50 weist eine erste Anzahl an Speicherplätzen (Flipflops) auf. Das Schieberegister 50 ist taktgetrieben. Das heißt, der Speicherinhalt wird bei jedem Takt des Taktsignales vom Master 22 (Takt der SPI-Übertragung) um einen Speicherplatz weiter geschoben. Die Anzahl der im Schieberegister 50 vorhandenen Speicherplätze ist konstant.The slave 21 can also have one or more shift registers 50, 51 (shift registers). This is in 7 shown schematically. A first shift register 50 (Rx shift register) can, for example, be preceded by the at least one input buffer 41. Messages transmitted from the master 22 to the slave 21 can first be stored in the first shift register 50. The first shift register 50 has a first number of memory locations (flip-flops). The shift register 50 is clock-driven. This means that the memory contents are shifted one memory location further with each cycle of the clock signal from master 22 (clock of the SPI transmission). The number of memory locations in shift register 50 is constant.

Ein zweites Schieberegister 51 (Tx Shift Register) kann dem wenigstens einen Ausgangspuffer 42 nachgelagert sein. Nachrichten die an den Master 22 gesendet werden sollen, können dann aus dem Ausgangspuffer 42 an das zweite Schieberegister 51 übergeben werden. Im zweiten Schieberegister 51 wird der Speicherinhalt wie in Bezug auf das erste Schieberegister 50 beschrieben taktgetrieben bei jedem Takt des Taktsignales vom Master 22 (Takt der SPI-Übertragung) um einen Speicherplatz weiter geschoben.A second shift register 51 (Tx shift register) can be downstream of the at least one output buffer 42. Messages that are to be sent to the master 22 can then be transferred from the output buffer 42 to the second shift register 51. In the second shift register 51, the memory content is shifted one memory location further in a clock-driven manner, as described with respect to the first shift register 50, with each cycle of the clock signal from the master 22 (clock of the SPI transmission).

In 7 sind das erste Schieberegister 50 und das zweite Schieberegister 51 jeweils als ein Schieberegister dargestellt. Jedes der Schieberegister 50, 51 kann jedoch auch mehr als ein Register aufweisen. Der Slave 21 kann alternativ auch lediglich ein Schieberegister aufweisen, das dazu ausgebildet ist sowohl Nachrichten die vom Master 22 empfangen werden zunächst zu speichern bevor diese von dort in den Eingangspuffer 41 übernommen werden, als auch Nachrichten die an den Master 22 gesendet werden sollen, vom Ausgangspuffer 42 zu übernehmen bevor diese von dort an den Master 22 übertragen werden. Das Schieberegister fungiert also in diesem Fall gleichzeitig als Eingangsschieberegister als auch als Ausgangsschieberegister. Ebenso ist es denkbar, dass der Slave mehrere Schieberegister aufweist von welchen jedes sowohl als Eingangsschieberegister als auch als Ausgangsschieberegister fungiert. Auch jegliche Kombination von reinen Eingangsschieberegistern, reinen Ausgangsschieberegistern und kombinierten Eingangs- und Ausgangsschieberegistern ist möglich.In 7 the first shift register 50 and the second shift register 51 are each shown as a shift register. However, each of the shift registers 50, 51 can also have more than one register. Alternatively, the slave 21 can only have a shift register that is designed for this purpose is to first store messages that are received from the master 22 before they are transferred from there to the input buffer 41, as well as to accept messages that are to be sent to the master 22 from the output buffer 42 before they are transferred from there to the master 22 become. In this case, the shift register functions both as an input shift register and as an output shift register. It is also conceivable that the slave has several shift registers, each of which functions as both an input shift register and an output shift register. Any combination of pure input shift registers, pure output shift registers and combined input and output shift registers is also possible.

Um die Daten vom ersten Schieberegister 50 an den Eingangspuffer 41 bzw. vom Ausgangspuffer 42 an das zweite Schieberegister 51 zu übertragen ist jedoch ein externer Takt erforderlich. Diese Vorgänge benötigen einen externen Takt, also einen Takt der durch externe Komponenten bereitgestellt wird. Ein solcher externer Takt ist jedoch unter Umständen nicht immer verfügbar. Beispielsweise kann der Mikrocontroller 30 den externen Takt bereitstellen. Der Takt steht dann beispielsweise nicht zur Verfügung, wenn der Mikrocontroller 30 abgeschaltet ist. Das gleiche Problem kann sich auch dann ergeben, wenn der externe Takt nicht durch den Mikrocontroller 30, sondern durch eine andere externe Einheit (nicht dargestellt) bereitgestellt wird.However, in order to transfer the data from the first shift register 50 to the input buffer 41 or from the output buffer 42 to the second shift register 51, an external clock is required. These processes require an external clock, i.e. a clock that is provided by external components. However, such an external clock may not always be available. For example, the microcontroller 30 can provide the external clock. The clock is then, for example, not available when the microcontroller 30 is switched off. The same problem can also arise if the external clock is not provided by the microcontroller 30 but by another external unit (not shown).

Es kann beispielsweise vorgesehen sein, dass das System in einen Low-Power Modus oder Ruhezustand wechselt, in dem kein externer Takt zur Verfügung steht. Im Low-Power Modus kann der Slave 21 die Daten zunächst im Schieberegister 50 ablegen. Dies kann, wie oben beschrieben, ohne einen externen Takt erfolgen. Das erste Schieberegister 50 bildet somit einen weiteren Puffer vor dem Eingangspuffer 41. Sobald der Slave 21 Daten vom Master 22 empfängt, kann er ein Wecksignal an den Mikrocontroller 30 und eventuell auch an weitere Komponenten senden. Sobald der Mikrocontroller 30 aufgewacht ist, kann er einen externen Takt bereitstellen und die Daten aus dem ersten Schieberegister 50 in den Eingangspuffer 41 übernehmen und entsprechend weiter verarbeiten. Hierbei kann der Slave 21 dem Master 22 zu jedem Zeitpunkt über die fünfte Leitung BUSY signalisieren, ob er noch bereit ist, weitere Daten (SPI-Transmissionen) aufzunehmen oder nicht.For example, it can be provided that the system switches to a low-power mode or idle state in which no external clock is available. In low-power mode, the slave 21 can first store the data in the shift register 50. As described above, this can be done without an external clock. The first shift register 50 thus forms a further buffer in front of the input buffer 41. As soon as the slave 21 receives data from the master 22, it can send a wake-up signal to the microcontroller 30 and possibly also to other components. As soon as the microcontroller 30 has woken up, it can provide an external clock and transfer the data from the first shift register 50 into the input buffer 41 and further process it accordingly. The slave 21 can signal to the master 22 at any time via the fifth line BUSY whether it is still ready to receive further data (SPI transmissions) or not.

Der Mikrocontroller 30 und/oder weitere Komponenten müssen nicht notwendigerweise in einen Ruhezustand wechseln wenn keine Kommunikation mit dem Master 22 stattfindet. Um Strom zu sparen ist es jedoch in der Regel sinnvoll zumindest einige Komponenten in einen Ruhezustand zu schalten, in welchem der Stromverbrauch in der Regel deutlich unter dem Stromverbrauch im Normalbetrieb liegt.The microcontroller 30 and/or other components do not necessarily have to switch to an idle state if there is no communication with the master 22. In order to save electricity, however, it usually makes sense to switch at least some components to a standby state, in which the power consumption is usually significantly lower than the power consumption in normal operation.

Indem die Nachrichten in einem Eingangspuffer 41 abgelegt werden, bevor sie durch den Mikrocontroller 30 verarbeitet werden, können sich Verzögerungen ergeben zwischen dem Zeitpunkt des Empfangs einer Nachricht und dem Zeitpunkt zu welchem diese verarbeitet wird. Der Mikrocontroller 30 kann die Nachrichten prinzipiell zu jedem beliebigen Zeitpunkt aus dem Eingangspuffer 41 auslesen. Um die Daten, welche durch den Mikrocontroller 30 aus dem Eingangspuffer 41 ausgelesen werden einer vorangegangenen Datenübertragung zuordnen zu können, können die Nachrichten beispielsweise mit einem Zeitstempel (Timestamp) versehen werden. Dies ist beispielhaft in 9 dargestellt. Das heißt, neben den Nutzdaten (Payload) und einer (optionalen) Prüfsumme PS können im Slave 21 noch zu den Daten gehörige Zeitstempel abgelegt werden. Der Zeitstempel enthält Informationen zu dem Zeitpunkt, zu welchem die jeweilige Nachricht im Eingangspuffer abgelegt wurde.By placing the messages in an input buffer 41 before they are processed by the microcontroller 30, delays may arise between the time a message is received and the time it is processed. The microcontroller 30 can in principle read the messages from the input buffer 41 at any time. In order to be able to assign the data that is read out of the input buffer 41 by the microcontroller 30 to a previous data transmission, the messages can, for example, be provided with a timestamp. This is exemplified in 9 shown. This means that in addition to the user data (payload) and an (optional) checksum PS, timestamps associated with the data can also be stored in the slave 21. The timestamp contains information about the time at which the respective message was stored in the input buffer.

Die sich möglicherweise ergebende zeitliche Verzögerung ist beispielhaft in 8 dargestellt. In 8 ist schematisch ein Timer dargestellt. Der Timer kann beispielsweise ein durchlaufender Timer sein. Zu einem ersten Zeitpunkt findet die Datenübertragung vom Master 22 zum Slave 21 statt. Dieser erste Timer-Wert, welcher den Übertragungszeitpunkt betrifft, kann parallel zu der Nachricht abgespeichert werden. Der Mikrocontroller 30 kann zu dem Zeitpunkt, zu welchem er die Daten aus dem Eingangspuffer 41 ausliest auch den aktuellen Timer-Wert lesen. Diesen aktuellen Zeitpunkt kann er mit dem zu der Nachricht gehörigen ersten Timer-Wert vergleichen und weiß somit, wieviel Zeit seit der Übertragung vergangen ist (delta). Hierdurch kann der Mikrocontroller 30 den eigentlichen Übertragungszeitpunkt der Daten dann eindeutig bestimmen.The possible resulting time delay is exemplified in 8th shown. In 8th A timer is shown schematically. The timer can be, for example, a continuous timer. At a first point in time, the data transfer from the master 22 to the slave 21 takes place. This first timer value, which relates to the transmission time, can be saved parallel to the message. The microcontroller 30 can also read the current timer value at the time at which it reads the data from the input buffer 41. He can compare this current time with the first timer value associated with the message and thus knows how much time has passed since the transmission (delta). This allows the microcontroller 30 to clearly determine the actual time of transmission of the data.

In ähnlicher Weise kann sich bei der Datenübertragung vom Slave 21 zum Master 22 eine zeitliche Verzögerung zwischen dem Speichern der Daten im Ausgangspuffer 42 und der eigentlichen Übertragung ergeben. Beispielsweise können die Daten durch den Mikrocontroller 30 zu einem ersten Zeitpunkt im Ausgangsregister 42 abgelegt werden. Der Mikrocontroller 30 kann zu diesem Zeitpunkt den Timer-Wert auslesen und einen ersten Zeitstempel zusammen mit den Daten im Ausgangspuffer 42 ablegen, wobei der erste Zeitstempel Informationen über den ersten Zeitpunkt aufweist. Wieder Bezug nehmend auf 9, können beispielsweise die letzten Datenbytes W der Nutzdaten als erste Zeitstempel (Timestamp) Informationen interpretiert werden. Die eigentliche Übertragung erfolgt zu einem zweiten Zeitpunkt. Dies ist in 10 beispielhaft dargestellt. Gemäß einem Beispiel wird jedoch der erste Zeitstempel nicht an den Master 22 übertragen. Stattdessen werden unterschiedliche Daten mit den Nutzdaten verknüpft und übertragen, welche jedoch im Zusammenhang mit dem Timer-Wert zum Zeitpunkt des Ablegens der Daten (erster Parameter) stehen. So kann zum Beispiel der vom Mikrocontroller 30 abgelegte erste Zeitstempel zum Zeitpunkt der Übertragung vom Slave 21 durch solche Daten ersetzt werden. Die Daten können beispielsweise Informationen darüber aufweisen, wieviel Zeit zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt vergangen ist (Delta zwischen erstem Timer-Wert und aktuellem Timer-Wert zum Zeitpunkt der Übertragung).Similarly, when transmitting data from the slave 21 to the master 22, there may be a time delay between the data being stored in the output buffer 42 and the actual transmission. For example, the data can be stored in the output register 42 by the microcontroller 30 at a first point in time. The microcontroller 30 can read out the timer value at this point in time and store a first time stamp together with the data in the output buffer 42, the first time stamp containing information about the first point in time. Again referring to 9 , for example, the last data bytes W of the user data can be interpreted as the first timestamp information. The actual transfer takes place to a second one Time. This is in 10 shown as an example. However, according to an example, the first timestamp is not transmitted to the master 22. Instead, different data is linked to the user data and transmitted, which, however, is related to the timer value at the time the data is stored (first parameter). For example, the first time stamp stored by the microcontroller 30 at the time of transmission from the slave 21 can be replaced by such data. The data can, for example, contain information about how much time has passed between the first time and the second time (delta between the first timer value and the current timer value at the time of transmission).

Nicht nur ein Kommunikationsbaustein 21, welcher als Slave fungiert, kann die oben beschriebenen sechs Leitungen aufweisen. Auch ein Kommunikationsbaustein 22, welcher als Master fungiert, kann die entsprechenden sechs Leitungen aufweisen damit dieser die Informationen, welche der Kommunikationsbaustein 21 an der fünften und sechsten Leitung bereitstellt, auch empfangen kann.Not only a communication module 21, which functions as a slave, can have the six lines described above. A communication module 22, which acts as a master, can also have the corresponding six lines so that it can also receive the information that the communication module 21 provides on the fifth and sixth lines.

Eine Vorrichtung zum Übertragen von Daten weist einen ersten Kommunikationsbaustein 21 auf, der dazu ausgebildet ist als Slave betrieben zu werden. Die Vorrichtung zum Übertragen von Daten weist weiterhin einen zweiten Kommunikationsbaustein 22 auf, der dazu ausgebildet ist als Master betrieben zu werden. Der erste Kommunikationsbaustein 21 und der zweite Kommunikationsbaustein 22 sind über einen Datenbus miteinander verbunden. Der Datenbus weist sechs Leitungen auf. Dies sind eine erste Leitung CLK zum Übertragen eines Taktsignals von dem zweiten Kommunikationsbaustein 22 an den ersten Kommunikationsbaustein 21, eine zweite Leitung MOSI zum Übertragen von Daten vom zweiten Kommunikationsbaustein 22 an den ersten Kommunikationsbaustein 21, eine dritte Leitung MISO zum Übertragen von Daten vom ersten Kommunikationsbaustein 21 an den zweiten Kommunikationsbaustein 22, eine vierte Leitung CS über welche der erste Kommunikationsbaustein 21 durch den zweiten Kommunikationsbaustein 22 aktiviert werden kann, eine fünfte Leitung BUSY zum Übertragen eines ersten Signals vom ersten Kommunikationsbaustein 21 an den zweiten Kommunikationsbaustein 22, welches Informationen darüber enthält, ob der erste Kommunikationsbaustein 21 dazu bereit ist Daten zu empfangen, und eine sechste Leitung IRQ zum Übertragen eines zweiten Signals vom ersten Kommunikationsbaustein 21 an den zweiten Kommunikationsbaustein 22, welches Informationen darüber enthält, ob der erste Kommunikationsbaustein 21 Daten senden möchte. Die Vorrichtung kann einen ersten Kommunikationsbaustein 21 und einen zweiten Kommunikationsbaustein 22 aufweisen, oder mehrere erste Kommunikationsbausteine 21 und einen zweiten Kommunikationsbaustein 22, wobei jeder der ersten Kommunikationsbausteine 21 mit dem zweiten Kommunikationsbaustein 22 über die beschriebenen sechs Leitungen verbunden ist. Die Vorrichtung kann beispielsweise in einem Fahrzeug angeordnet sein.A device for transmitting data has a first communication module 21, which is designed to be operated as a slave. The device for transmitting data also has a second communication module 22, which is designed to be operated as a master. The first communication module 21 and the second communication module 22 are connected to one another via a data bus. The data bus has six lines. These are a first line CLK for transmitting a clock signal from the second communication module 22 to the first communication module 21, a second line MOSI for transmitting data from the second communication module 22 to the first communication module 21, a third line MISO for transmitting data from the first communication module 21 to the second communication module 22, a fourth line CS via which the first communication module 21 can be activated by the second communication module 22, a fifth line BUSY for transmitting a first signal from the first communication module 21 to the second communication module 22, which contains information about it, whether the first communication module 21 is ready to receive data, and a sixth line IRQ for transmitting a second signal from the first communication module 21 to the second communication module 22, which contains information about whether the first communication module 21 wants to send data. The device can have a first communication module 21 and a second communication module 22, or a plurality of first communication modules 21 and a second communication module 22, each of the first communication modules 21 being connected to the second communication module 22 via the six lines described. The device can be arranged in a vehicle, for example.

BezugszeichenlisteReference symbol list

1111
SlaveSlave
1212
Mastermaster
2121
erstes Kommunikationsgerät/Slavefirst communication device/slave
2222
zweites Kommunikationsgerät/Mastersecond communication device/master
3030
MikrocontrollerMicrocontroller
4141
EingangspufferInput buffer
4242
AusgangspufferOutput buffer
4343
Information ob Puffer gefüllt istInformation whether buffer is full
4444
Information ob Puffer leer istInformation whether buffer is empty
4545
Information über Begin einer ÜbertragungInformation about the start of a transfer
4646
Information über Ende einer ÜbertragungInformation about the end of a transmission
50, 5150, 51
SchieberegisterShift register

Claims (12)

Kommunikationsbaustein (21) der dazu ausgebildet ist als Slave betrieben zu werden und mit einem zweiten Kommunikationsbaustein (22) verbunden zu werden, der dazu ausgebildet ist als Master betrieben zu werden, wobei der erste Kommunikationsbaustein (21) aufweist: eine erste Leitung (CLK) zum Empfangen eines Taktsignals von dem zweiten Kommunikationsbaustein (22); einer zweiten Leitung (MOSI) zum Empfangen von Daten; einer dritten Leitung (MISO) zum Senden von Daten; einer vierten Leitung (CS) über welche der erste Kommunikationsbaustein (21) durch den zweiten Kommunikationsbaustein (22) aktiviert werden kann; und wenigstens einem von einer fünften Leitung (BUSY) zum Ausgeben eines ersten Signals welches Informationen darüber enthält, ob der erste Kommunikationsbaustein (21) dazu bereit ist Daten zu empfangen; und einer sechsten Leitung (IRQ) zum Ausgeben eines zweiten Signals welches Informationen darüber enthält, ob der erste Kommunikationsbaustein (21) Daten senden möchte, wobei der erste Kommunikationsbaustein (21) weiterhin einen Ausgangspuffer (42) aufweist, der dazu ausgebildet ist, Nachrichten zu speichern, die an den zweiten Kommunikationsbaustein (22) übertragen werden sollen; eine Nachricht die an den zweiten Kommunikationsbaustein (22) übertragen werden soll zu einem ersten Zeitpunkt in dem Ausgangspuffer (42) gespeichert wird; ein erster Zeitstempel zusammen mit der Nachricht im Ausgangspuffer (42) abgelegt wird, wobei der erste Zeitstempel Informationen über den ersten Zeitpunkt enthält; die Nachricht zu einem zweiten Zeitpunkt an den zweiten Kommunikationsbaustein (22) übertragen wird; der erste Kommunikationsbaustein (21) dazu ausgebildet ist, wenn die Nachricht an den zweiten Kommunikationsbaustein (22) übertragen wird, den ersten Zeitstempel durch erste Daten zu ersetzen, wobei die ersten Daten Informationen zu einer Zeitdauer (delta) aufweisen die zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt vergangen ist.Communication module (21) which is designed to be operated as a slave and to be connected to a second communication module (22) which is designed to be operated as a master, the first communication module (21) having: a first line (CLK) for receiving a clock signal from the second communication module (22); a second line (MOSI) for receiving data; a third line (MISO) for sending data; a fourth line (CS) via which the first communication module (21) can be activated by the second communication module (22); and at least one of a fifth line (BUSY) for outputting a first signal which contains information about whether the first communication module (21) is ready to receive data; and a sixth line (IRQ) for outputting a second signal which contains information about whether the first communication module (21) wants to send data, the first communication module (21) further having an output buffer (42) which is designed for this purpose is to store messages that are to be transmitted to the second communication module (22); a message that is to be transmitted to the second communication module (22) is stored in the output buffer (42) at a first time; a first time stamp is stored together with the message in the output buffer (42), the first time stamp containing information about the first time; the message is transmitted to the second communication module (22) at a second time; the first communication module (21) is designed to replace the first time stamp with first data when the message is transmitted to the second communication module (22), the first data having information about a time period (delta) between the first time and passed the second point in time. Kommunikationsbaustein (21) nach Anspruch 1, der dazu ausgebildet ist, mit dem zweiten Kommunikationsbaustein (22) über einen SPI-Bus verbunden zu werden.Communication module (21). Claim 1 , which is designed to be connected to the second communication module (22) via an SPI bus. Kommunikationsbaustein (21) nach Anspruch 1 oder 2, der weiterhin wenigstens einen Eingangspuffer (41) aufweist, der dazu ausgebildet ist, Nachrichten zu speichern, welche vom zweiten Kommunikationsbaustein (22) empfangen werden.Communication module (21). Claim 1 or 2 , which further has at least one input buffer (41) which is designed to store messages which are received from the second communication module (22). Kommunikationsbaustein (21) nach einem der Ansprüche 1 bis 3, der dazu ausgebildet ist mit einem Mikrocontroller (30) verbunden zu werden, wobei der Mikrocontroller (30) dazu ausgebildet ist, Nachrichten aus dem Eingangspuffer (41) auszulesen und zu verarbeiten und Nachrichten in den Ausgangspuffer (42) zur Übertragung an den zweiten Kommunikationsbaustein (22) abzulegen.Communication module (21) according to one of the Claims 1 until 3 , which is designed to be connected to a microcontroller (30), the microcontroller (30) being designed to read and process messages from the input buffer (41) and messages into the output buffer (42) for transmission to the second communication module (22). Kommunikationsbaustein (21) nach einem der vorherigen Ansprüche, wobei das erste Signal der fünften Leitung (BUSY) einen ersten Zustand (aktiv) annimmt, wenn der erste Kommunikationsbaustein (21) keine neuen Nachrichten empfangen kann; und einen zweiten Zustand (nicht aktiv) annimmt, wenn der erste Kommunikationsbaustein (21) neue Nachrichten empfangen kann.Communication module (21) according to one of the preceding claims, wherein the first signal of the fifth line (BUSY) assumes a first state (active) when the first communication module (21) cannot receive any new messages; and assumes a second state (not active) when the first communication module (21) can receive new messages. Kommunikationsbaustein (21) nach einem der vorherigen Ansprüche, wobei das zweite Signal der sechsten Leitung (IRQ) einen ersten Zustand (aktiv) annimmt, wenn der erste Kommunikationsbaustein (21) neue Nachrichten senden möchte; und einen zweiten Zustand (nicht aktiv) annimmt, wenn der erste Kommunikationsbaustein (21) keine neuen Nachrichten zu senden hat.Communication module (21) according to one of the preceding claims, wherein the second signal of the sixth line (IRQ) assumes a first state (active) when the first communication module (21) wants to send new messages; and assumes a second state (not active) when the first communication module (21) does not have to send any new messages. Kommunikationsbaustein (21) nach einem der vorhergehenden Ansprüche, der dazu ausgebildet ist Nachrichten an den zweiten Kommunikationsbaustein (22) zu senden, welche neben Nutzdaten auch eine Prüfsumme (PS) aufweisen; und Nachrichten von dem zweiten Kommunikationsbaustein (22) zu empfangen, welche neben Nutzdaten auch eine Prüfsumme (PS) aufweisen, wobei anhand der Prüfsumme die Integrität einer Nachricht überprüft werden kann.Communication module (21) according to one of the preceding claims, which is designed for this purpose to send messages to the second communication module (22), which, in addition to user data, also have a checksum (PS); and Receive messages from the second communication module (22) which, in addition to user data, also have a checksum (PS), The integrity of a message can be checked using the checksum. Kommunikationsbaustein (21) nach einem der vorherigen Ansprüche, der weiterhin wenigstens eines aufweist von: wenigstens ein erstes Schieberegister (50), das derart vor dem Eingangspuffer (41) angeordnet ist, dass Nachrichten die vom zweiten Kommunikationsbaustein (22) empfangen werden zunächst im ersten Schieberegister (50) gespeichert werden und von dort in den Eingangspuffer (41) übernommen werden; und wenigstens ein zweites Schieberegister (51), das derart hinter dem Ausgangspuffer (42) angeordnet ist, dass Nachrichten die an den zweiten Kommunikationsbaustein (22) gesendet werden sollen, vom Ausgangspuffer (42) in das zweite Schieberegister (51) übernommen werden und von dort an das zweite Kommunikationsgerät (22) übertragen werden.Communication module (21) according to one of the preceding claims, which further comprises at least one of: at least one first shift register (50), which is arranged in front of the input buffer (41) in such a way that messages received from the second communication module (22) are first stored in the first shift register (50) and from there are transferred to the input buffer (41). ; and at least one second shift register (51), which is arranged behind the output buffer (42) in such a way that messages that are to be sent to the second communication module (22) are transferred from the output buffer (42) to the second shift register (51) and from there be transmitted to the second communication device (22). Kommunikationsbaustein (21) nach einem der vorhergehenden Ansprüche, der wenigstens ein Schieberegister aufweist, wobei wenigstens eines der Schieberegister dazu ausgebildet ist, Nachrichten die vom zweiten Kommunikationsbaustein (22) empfangen werden zunächst zu speichern bevor diese von dort in den Eingangspuffer (41) übernommen werden, und Nachrichten die an den zweiten Kommunikationsbaustein (22) gesendet werden sollen, vom Ausgangspuffer (42) zu übernehmen bevor diese von dort an das zweite Kommunikationsgerät (22) übertragen werden.Communication module (21) according to one of the preceding claims, which has at least one shift register, at least one of the shift registers being designed to Messages that are received from the second communication module (22) must first be saved before they are transferred from there to the input buffer (41), and Messages that are to be sent to the second communication module (22) are taken over from the output buffer (42) before they are transmitted from there to the second communication device (22). Kommunikationsbaustein (21) nach Anspruch 8 oder 9, wobei die Schieberegister durch das Taktsignal oder durch einen aus dem Taktsignal generierten Takt getrieben werden.Communication module (21). Claim 8 or 9 , whereby the shift registers are driven by the clock signal or by a clock generated from the clock signal. Vorrichtung zur Datenübertragung mit wenigstens einem ersten Kommunikationsbaustein (21) und einem zweiten Kommunikationsbaustein (22), wobei der wenigstens eine erste Kommunikationsbaustein dazu ausgebildet ist als Slave betrieben zu werden und der zweite Kommunikationsbaustein (22) dazu ausgebildet ist als Master betrieben zu werden, wobei der wenigstens eine erste Kommunikationsbaustein (21) und der zweite Kommunikationsbaustein (22) über einen Datenbus miteinander verbunden sind, und wobei der Datenbus aufweist: eine erste Leitung (CLK) zum Übertragen eines Taktsignals von dem zweiten Kommunikationsbaustein (22) an den ersten Kommunikationsbaustein (21); einer zweiten Leitung (MOSI) zum Übertragen von Daten vom zweiten Kommunikationsbaustein (22) an den wenigstens einen ersten Kommunikationsbaustein (21); einer dritten Leitung (MISO) zum Übertragen von Daten von dem wenigstens einen ersten Kommunikationsbaustein (21) an den zweiten Kommunikationsbaustein (22); einer vierten Leitung (CS) über welche der wenigstens eine erste Kommunikationsbaustein (21) durch den zweiten Kommunikationsbaustein (22) aktiviert werden kann; und wenigstens eines von einer fünften Leitung (BUSY) zum Übertragen eines ersten Signals an den zweiten Kommunikationsbaustein (22) welches Informationen darüber enthält, ob der wenigstens eine erste Kommunikationsbaustein (21) dazu bereit ist Daten zu empfangen; und einer sechsten Leitung (IRQ) zum Übertragen eines zweiten Signals an den zweiten Kommunikationsbaustein (22) welches Informationen darüber enthält, ob der wenigstens eine erste Kommunikationsbaustein (21) Daten senden möchte, und wobei der erste Kommunikationsbaustein (21) weiterhin einen Ausgangspuffer (42) aufweist, der dazu ausgebildet ist, Nachrichten zu speichern, die an den zweiten Kommunikationsbaustein (22) übertragen werden sollen; eine Nachricht die an den zweiten Kommunikationsbaustein (22) übertragen werden soll zu einem ersten Zeitpunkt in dem Ausgangspuffer (42) gespeichert wird; ein erster Zeitstempel zusammen mit der Nachricht im Ausgangspuffer (42) abgelegt wird, wobei der erste Zeitstempel Informationen über den ersten Zeitpunkt enthält; die Nachricht zu einem zweiten Zeitpunkt an den zweiten Kommunikationsbaustein (22) übertragen wird; der erste Kommunikationsbaustein (21) dazu ausgebildet ist, wenn die Nachricht an den zweiten Kommunikationsbaustein (22) übertragen wird, den ersten Zeitstempel durch erste Daten zu ersetzen, wobei die ersten Daten Informationen zu einer Zeitdauer (delta) aufweisen die zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt vergangen ist.Device for data transmission with at least one first communication module (21) and a second communication module (22), the at least one first communication module being designed to be operated as a slave and the second communication module (22) being designed to be operated as a master, wherein the at least one first communication module (21) and the second communication module (22) communicate with one another via a data bus which are connected, and wherein the data bus comprises: a first line (CLK) for transmitting a clock signal from the second communication module (22) to the first communication module (21); a second line (MOSI) for transmitting data from the second communication module (22) to the at least one first communication module (21); a third line (MISO) for transmitting data from the at least one first communication module (21) to the second communication module (22); a fourth line (CS) via which the at least one first communication module (21) can be activated by the second communication module (22); and at least one of a fifth line (BUSY) for transmitting a first signal to the second communication module (22) which contains information about whether the at least one first communication module (21) is ready to receive data; and a sixth line (IRQ) for transmitting a second signal to the second communication module (22), which contains information about whether the at least one first communication module (21) wants to send data, and wherein the first communication module (21) further has an output buffer (42 ) which is designed to store messages that are to be transmitted to the second communication module (22); a message that is to be transmitted to the second communication module (22) is stored in the output buffer (42) at a first time; a first time stamp is stored together with the message in the output buffer (42), the first time stamp containing information about the first time; the message is transmitted to the second communication module (22) at a second time; the first communication module (21) is designed to replace the first time stamp with first data when the message is transmitted to the second communication module (22), the first data having information about a time period (delta) between the first time and passed the second point in time. Vorrichtung nach Anspruch 11, wobei die Vorrichtung in einem Fahrzeug angeordnet ist.Device according to Claim 11 , wherein the device is arranged in a vehicle.
DE102017216991.5A 2017-09-26 2017-09-26 Communication module and device for data transmission Active DE102017216991B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102017216991.5A DE102017216991B4 (en) 2017-09-26 2017-09-26 Communication module and device for data transmission

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017216991.5A DE102017216991B4 (en) 2017-09-26 2017-09-26 Communication module and device for data transmission

Publications (2)

Publication Number Publication Date
DE102017216991A1 DE102017216991A1 (en) 2019-03-28
DE102017216991B4 true DE102017216991B4 (en) 2024-03-07

Family

ID=65638453

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017216991.5A Active DE102017216991B4 (en) 2017-09-26 2017-09-26 Communication module and device for data transmission

Country Status (1)

Country Link
DE (1) DE102017216991B4 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060143348A1 (en) 2004-12-29 2006-06-29 Wilson Matthew T System, method, and apparatus for extended serial peripheral interface

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060143348A1 (en) 2004-12-29 2006-06-29 Wilson Matthew T System, method, and apparatus for extended serial peripheral interface

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
„Serial Peripheral Interface Bus". In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 4. August 2017, 09:08 UTC. URL: https://en.wikipedia.org/w/index.php?title=Serial_Peripheral_Interface_Bus&oldid=793841576 [abgerufen am 18.06.2018]
STMicroelectronics : STM32F7 - SPI. Serial Peripheral Interface, 10. August 2017. Genf Schweiz 2017. Seiten 1 – 28 - Firmenschrift. https://web.archive.org/web/20170810015159/http://www.st.com/content/ccc/resource/training/technical/product_training/group0/3e/ee/cd/b7/84/4b/45/ee/STM32F7_Peripheral_SPI/files/STM32F7_Peripheral_SPI.pdf/_jcr_content/translations/en.STM32F7_Peripheral_SPI.pdf [abgerufen am 18.06.2018]

Also Published As

Publication number Publication date
DE102017216991A1 (en) 2019-03-28

Similar Documents

Publication Publication Date Title
DE3300260C2 (en)
DE3300261C2 (en)
DE102010049534B4 (en) Coupling units, system with a coupling unit and method for use in a system with a coupling unit
DE4307449C2 (en) Method and circuit for resynchronizing a synchronous serial interface
EP1787204B1 (en) Message administrator and method for controlling access to data of the message memory of a communications component
DE112015004473T5 (en) CONFIRM DATA ACCURACY IN A DISTRIBUTED CONTROL SYSTEM
EP1940654B1 (en) Method for connecting a FlexRay user comprising a microcontroller to a FlexRay communication connection via a FlexRay communication control device, and FlexRay-communication system for producing said method
DE102013113262B4 (en) trigger routing unit
WO2007039634A2 (en) User interface which is between a microcontroller and a flexray-communication component, flexray-user and method for transmitting messages via said type of interface
DE102013210077A1 (en) Method for providing a generic interface and microcontroller with generic interface
EP2641183A1 (en) Method and circuit arrangement for transmitting data between processor modules
DE112015006192T5 (en) Communication device, communication method and program
EP2087647B1 (en) Device and method for manipulating communication messages
DE112020004065T5 (en) Complex daisy chain commands
EP1639758B1 (en) Method and device for the exchange of data via a bus system
DE112019005021T5 (en) DEVICES, SYSTEMS AND PROCEDURES FOR SYNCHRONIZING EVENT WINDOWS IN RADIO NETWORKS
DE102011004358B3 (en) Method for transmitting data over a synchronous serial data bus
DE102018001574A1 (en) Master-slave bus system and method for operating a bus system
DE102017216991B4 (en) Communication module and device for data transmission
EP2085890A1 (en) Method for transmitting data between at least two speed domains
DE112008001143T5 (en) Serialization of data in a multi-chip bus implementation
DE102012205160A1 (en) Communication arrangement and method for configuring programmable hardware
EP2801915B1 (en) Adaptive interface for coupling of fpga modules
EP3676995B1 (en) Master of a bus system
DE102012010558A1 (en) HARDWARE DEVICE FOR A SYSTEM, SYSTEM AND MEMORY ACCESS PROCEDURE

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012403000

Ipc: G06F0013400000

R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: CONTINENTAL AUTOMOTIVE TECHNOLOGIES GMBH, DE

Free format text: FORMER OWNER: CONTINENTAL AUTOMOTIVE GMBH, 30165 HANNOVER, DE

R018 Grant decision by examination section/examining division
R081 Change of applicant/patentee

Owner name: CONTINENTAL AUTOMOTIVE TECHNOLOGIES GMBH, DE

Free format text: FORMER OWNER: CONTINENTAL AUTOMOTIVE TECHNOLOGIES GMBH, 30165 HANNOVER, DE