DE102017216991B4 - Communication module and device for data transmission - Google Patents
Communication module and device for data transmission Download PDFInfo
- 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
Links
- 238000004891 communication Methods 0.000 title claims abstract description 214
- 230000005540 biological transmission Effects 0.000 title claims description 32
- 239000000872 buffer Substances 0.000 claims description 90
- 238000000034 method Methods 0.000 claims description 10
- 235000015429 Mirabilis expansa Nutrition 0.000 abstract 1
- 244000294411 Mirabilis expansa Species 0.000 abstract 1
- 235000013536 miso Nutrition 0.000 abstract 1
- 230000002093 peripheral effect Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/403—Bus networks with centralised control, e.g. polling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus 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
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
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 die6A und6B , 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.
-
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 the6A and6B , 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.
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
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
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
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,
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.
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
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
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
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
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
Der Slave 21 kann beispielsweise wenigstens einen Eingangspuffer 41 (N ≥ 1) und wenigstens einen Ausgangspuffer 42 (M ≥ 1) aufweisen. In
Wie in
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Der Slave 21 kann weiterhin ein oder mehrere Schieberegister 50, 51 (Shift Register) aufweisen. Dies ist in
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
In
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
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
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
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
Die sich möglicherweise ergebende zeitliche Verzögerung ist beispielhaft in
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
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
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
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)
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)
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 |
-
2017
- 2017-09-26 DE DE102017216991.5A patent/DE102017216991B4/en active Active
Patent Citations (1)
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)
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 |