DE102005048583A1 - Subscriber and communication controller of a communication system and method for data transmission in a subscriber of the communication system - Google Patents

Subscriber and communication controller of a communication system and method for data transmission in a subscriber of the communication system Download PDF

Info

Publication number
DE102005048583A1
DE102005048583A1 DE200510048583 DE102005048583A DE102005048583A1 DE 102005048583 A1 DE102005048583 A1 DE 102005048583A1 DE 200510048583 DE200510048583 DE 200510048583 DE 102005048583 A DE102005048583 A DE 102005048583A DE 102005048583 A1 DE102005048583 A1 DE 102005048583A1
Authority
DE
Germany
Prior art keywords
communication
data
communication controller
microprocessor
memory
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.)
Withdrawn
Application number
DE200510048583
Other languages
German (de)
Inventor
Markus Ihle
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch 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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE200510048583 priority Critical patent/DE102005048583A1/en
Priority to PCT/EP2006/067045 priority patent/WO2007039628A1/en
Publication of DE102005048583A1 publication Critical patent/DE102005048583A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)

Abstract

Die Erfindung betrifft einen Teilnehmer (900) eines Kommunikationssystems, wobei der Teilnehmer (900) einen Mikroprozessor (102), einen Kommunikationscontroller (750) und einen Peripherie-Bus (820) aufweist und wobei der Mikroprozessor (102) über den Peripherie-Bus (820) mit dem Kommunikationscontroller (750) in Verbindung steht und über den Kommunikationscontroller (750) an eine Kommunikationsverbindung (101) des Kommunikationssystems angeschlossen ist, über welche Botschaften übertragen werden. Um die Anbindung des Mikroprozessors (102) an den Kommunikationscontroller (750) zu optimieren, wird vorgeschlagen, dass der Kommunikationscontroller (750) eine aktive Schnittstelle (834), über die der Kommunikationscontroller (750) mit dem Peripherie-Bus (820) in Verbindung steht, und eine Logik aufweist, welche eine selbstständige Datenübertragung zwischen dem Kommunikationscontroller (750) und dem Mikroprozessor (102) über die aktive Schnittstelle (834) und den Peripherie-Bus (820) ermöglicht.The invention relates to a subscriber (900) of a communication system, the subscriber (900) having a microprocessor (102), a communication controller (750) and a peripheral bus (820), and the microprocessor (102) via the peripheral bus ( 820) is in communication with the communication controller (750) and is connected via the communication controller (750) to a communication connection (101) of the communication system via which messages are transmitted. In order to optimize the connection of the microprocessor (102) to the communication controller (750), it is proposed that the communication controller (750) have an active interface (834) via which the communication controller (750) connects to the peripheral bus (820) and has a logic which enables independent data transmission between the communication controller (750) and the microprocessor (102) via the active interface (834) and the peripheral bus (820).

Description

Die vorliegende Erfindung betrifft einen Teilnehmer (sog. Host) eines Kommunikationssystems. Der Teilnehmer weist einen Mikroprozessor (sog. Host-CPU (Central Processing Unit)), einen Kommunikationscontroller und einen Peripherie-Bus auf. Der Mikroprozessor steht über den Peripherie-Bus mit dem Kommunikationscontroller in Verbindung und ist über den Kommunikationscontroller an eine Kommunikationsverbindung des Kommunikationssystems angeschlossen, über welche Botschaften übertragen werden.The The present invention relates to a participant (so-called host) of a Communication system. The participant has a microprocessor (so-called host CPU (Central Processing Unit)), a communication controller and a peripheral bus. The microprocessor is above the Peripheral bus connected to the communication controller and is over the communication controller to a communication link of Communication system connected via which messages are transmitted.

Die Erfindung betrifft außerdem einen Kommunikationscontroller (sog. Communication Controller; CC) eines Teilnehmers (sog. Host) eines Kommunikationssystems. Der Teilnehmer weist einen Mikroprozessor (sog. Host-CPU), den Kommunikationscontroller und einen Peripherie-Bus auf. Der Kommunikationscontroller steht einerseits über den Peripherie-Bus mit dem Mikroprozessor in Verbindung und ist andererseits an eine Kommunikationsverbindung des Kommunikationssystems angeschlossen, über welche Botschaften übertragen werden.The Invention also relates a communication controller (so-called Communication Controller; CC) a participant (so-called host) of a communication system. Of the participants has a microprocessor (so-called host CPU), the communication controller and a peripheral bus. The communication controller is stopped on the one hand over the peripheral bus communicates with the microprocessor and is otherwise connected to a communication link of the communication system via which Transmit messages become.

Schließlich betrifft die vorliegende Erfindung auch ein Verfahren zur Übertragung von Daten innerhalb eines Teilnehmers (sog. Host) eines Kommunikationssystems. Die Daten werden zwischen einem Mikroprozessor (Host-CPU) und einem Kommunikationscontroller über einen Peripherie-Bus übertragen. Der Kommunikationscontroller ist an eine Kommunikationsverbindung angeschlossen, über welche Botschaften übertragen werden.Finally, concerns the present invention also provides a method of transmission of data within a subscriber (so-called host) of a communication system. The data is between a microprocessor (host CPU) and a Communication controller over transmit a peripheral bus. Of the Communication controller is connected to a communication link via which Transmit messages become.

Die Vernetzung von Steuergeräten, Sensorik und Aktuatorik mit Hilfe eines Kommunikationssystems und einer als Bussystem ausgebildeten Kommunikationsverbindung hat in den letzten Jahren bei modernen Kraftfahrzeugen aber auch im Maschinenbau, insbesondere im Werkzeugmaschinenbereich, und im Bereich der Automatisierung, drastisch zugenommen. Synergieeffekte durch Verteilung von Funktionen auf mehrere Steuergeräte können dabei erzielt werden. Man spricht hierbei von verteilten Systemen. Die Kommunikation zwischen verschiedenen Teilnehmern findet mehr und mehr über ein als Bussystem ausgebildetes Kommunikationssystem statt. Der Kommunikationsverkehr auf dem Bussystem, Zugriffs- und Empfangsmechanismen sowie Fehlerbehandlung werden über ein Protokoll geregelt.The Networking of control units, Sensors and actuators with the help of a communication system and a trained as a bus communication link has in recent years in modern motor vehicles but also in mechanical engineering, especially in the machine tool sector, and in the field of automation, drastically increased. Synergy effects through distribution of functions on several controllers can be achieved. This is called distributed systems. The communication between different participants finds more and more about a trained as a bus system communication system instead. Of the Communication traffic on the bus system, access and reception mechanisms as well as error handling will be over a protocol regulated.

Ein bekanntes Protokoll hierzu ist das FlexRay-Protokoll, wobei im Augenblick die FlexRay-Protokollspezifikation v2.0 zugrunde liegt. Das FlexRay-Protokoll definiert ein schnelles, deterministisches und fehlertolerantes Bussystem, insbesondere für den Einsatz in einem Kraftfahrzeug. Die Datenübertragung gemäß dem FlexRay-Protokoll erfolgt nach einem Time Division Multiple Access (TDMA)-Verfahren. Die Datenübertragung über die Kommunikationsverbindung erfolgt in sich regelmäßig wiederholenden Übertragungszyklen, die jeweils in mehrere Datenrahmen, die auch als Zeitschlitze bezeichnet werden, unterteilt ist. Den Teilnehmern bzw. den zu übertragenden Botschaften sind feste Zeitschlitze zugewiesen, in denen sie einen exklusiven Zugriff auf die Kommunikationsverbindung haben. Die Zeitschlitze wiederholen sich in den festgelegten Übertragungszyklen, so dass der Zeitpunkt, zu dem eine Botschaft über den Bus übertragen wird, exakt vorausgesagt werden kann und der Buszugriff deterministisch erfolgt.One well-known protocol for this is the FlexRay protocol, where at the moment based on the FlexRay protocol specification v2.0. The FlexRay protocol defines a fast, deterministic and fault tolerant bus system, especially for the use in a motor vehicle. The data transfer according to the FlexRay protocol takes place after a Time Division Multiple Access (TDMA) method. The data transfer over the Communication connection takes place in regularly recurring transmission cycles, each in multiple data frames, also referred to as time slots be subdivided. To the participants or to be transferred Messages are assigned fixed time slots in which they have one have exclusive access to the communication connection. The time slots repeat themselves in the specified transmission cycles, so that the time at which a message is transmitted over the bus can be predicted accurately and the bus access deterministic he follows.

Um die Bandbreite für die Botschaftsübertragung auf dem Bussystem optimal zu nutzen, unterteilt FlexRay den Übertragungszyklus, der auch als Zyklus oder Buszyklus bezeichnet werden kann, in einen statischen und einen dynamischen Teil. Die festen Zeitschlitze befinden sich dabei im statischen Teil am Anfang eines Buszyklusses. Im dynamischen Teil werden die Zeitschlitze dynamisch vergeben. Darin wird nun der exklusive Buszugriff jeweils nur für eine kurze Zeit, für einen oder mehrere sogenannte Minislots, ermöglicht. Nur wenn innerhalb eines Minislots ein Buszugriff erfolgt, wird der Zeitschlitz um die benötigte Zeit verlängert. Damit wird Bandbreite also nur verbraucht, wenn sie auch tatsächlich benötigt wird.Around the bandwidth for the message transfer FlexRay divides the transmission cycle optimally on the bus system, which can also be referred to as a cycle or bus cycle, into one static and a dynamic part. The fixed time slots are located doing so in the static part at the beginning of a bus cycle. In the dynamic part the time slots are allocated dynamically. This is now the exclusive Bus access only for one short time, for one or more so-called mini slots. Only if within If a minislot takes a bus access, the timeslot becomes the needed Time extended. Thus, bandwidth is only consumed when it is actually needed.

FlexRay kommuniziert über zwei physikalisch getrennte Leitungen der Kommunikationsverbindung mit einer Datenrate von je maximal 10 MBit/s (10 MBaud). Dabei ist alle 5 ms, bei manchen Kommunikationssystemen sogar alle 2,5 ms ein Buszyklus abgeschlossen. Die beiden Kanäle entsprechen dabei der physikalischen Schicht, insbesondere des OSI (Open System Architecture) Schichtenmodells. Die beiden Kanäle dienen hauptsächlich der redundanten und damit fehlertoleranten Übertragung von Botschaften, können jedoch auch unterschiedliche Botschaften übertragen, wodurch sich dann die Datenrate verdoppeln würde. FlexRay kann aber auch mit niedrigeren Datenraten betrieben werden.FlexRay communicates via two physically separate lines of the communication link with a maximum data rate of 10 MBit / s (10 MBaud). It is every 5 ms, in some communication systems even every 2.5 ms completed a bus cycle. The two channels correspond to the physical Layer, in particular the OSI (Open System Architecture) layer model. The both channels serve mainly the redundant and thus fault-tolerant transmission of messages, can but also different messages transmitted, which then would double the data rate. FlexRay can also be operated at lower data rates.

Um synchrone Funktionen zu realisieren und die Bandbreite durch kleine Abstände zwischen zwei Botschaften zu optimieren benötigen die Teilnehmer bzw. die verteilten Komponenten im Kommunikationsnetzwerk eine gemeinsame Zeitbasis, die sogenannte globale Zeit. Für die Uhrsynchronisation werden Synchronisationsnachrichten im statischen Teil des Zyklus übertragen, wobei mit Hilfe eines speziellen Algorithmus entsprechend der FlexRay-Spezifikation die lokale Uhrzeit eines Teilnehmers so korrigiert wird, dass alle lokalen Uhren zu einer globalen Uhr synchron laufen.Around to realize synchronous functions and bandwidth through small ones distances to optimize between two messages the participants or the distributed components in the communication network a common Time base, the so-called global time. For the clock synchronization will be Transmit synchronization messages in the static part of the cycle, using a special algorithm according to the FlexRay specification Local time of a participant is corrected so that all local Clocks sync to a global clock.

Ein FlexRay-Teilnehmer, der auch als FlexRay-Netzknoten oder Host bezeichnet werden kann, enthält einen Teilnehmer- oder Host-Prozessor, einen FlexRay- oder Kommunikations-Controller sowie bei einer Busüberwachung einen sogenannten Busguardian. Dabei liefert und verarbeitet der Teilnehmerprozessor die Daten, die über den FlexRay-Kommunikationscontroller und die FlexRay-Kommunikationsverbindung übertragen werden. Für die Kommunikation in einem FlexRay-Netzwerk können Botschaften bzw. Botschaftsobjekte mit z.B. bis zu 254 Datenbytes konfiguriert werden.One FlexRay device, also known as FlexRay network node or host can be included a participant or Host processor, a FlexRay or communication controller as well a bus monitoring a so-called Busguardian. It delivers and processes the Subscriber processor the data transmitted via the FlexRay communication controller and transmit the FlexRay communication link become. For Communication in a FlexRay network can be messages or message objects with e.g. up to 254 bytes of data can be configured.

Zur Kopplung einer FlexRay-Kommunikationsverbindung, über die Botschaften übertragen werden, mit einem FlexRay-Teilnehmer wird in der DE 10 2005 034 744 , die zum Anmeldetag der vorliegenden Erfindung noch nicht veröffentlich war, ein FlexRay-Kommunikationsbaustein eingesetzt, der über eine Teilnehmerschnittstelle an dem Teilnehmer und über eine andere Verbindung an der Kommunikationsverbindung angeschlossen ist. Dabei ist zur Übertragung der Botschaften zwischen dem Teilnehmer und der Kommunikationsverbindung in dem Kommunikationsbaustein eine Anordnung zur Speicherung der Botschaften vorgesehen. Die Übertragung wird durch eine Zustandsmaschine gesteuert.For coupling a FlexRay communication connection, via which messages are transmitted, to a FlexRay subscriber is stored in the DE 10 2005 034 744 which was not yet published at the filing date of the present invention, a FlexRay communication module is used, which is connected via a subscriber interface to the subscriber and via another connection to the communication link. In this case, an arrangement for storing the messages is provided for transmitting the messages between the subscriber and the communication link in the communication module. The transmission is controlled by a state machine.

In dem Kommunikationsbaustein ist ein Schnittstellenbaustein bestehend aus zwei Teilen vorgesehen, wobei der eine Teilbaustein teilnehmerunabhängig und der andere Teilbaustein teilnehmerspezifisch ist. Der teilnehmerspezifische Teilbaustein, der auch als Customer CPU Interface (CIF) bezeichnet wird, verbindet einen kundenspezifischen Teilnehmer in Form einer teilnehmerspezifischen Host-CPU mit dem FlexRay-Kommunikationsbaustein. Der teilnehmerunabhängige Teilbaustein, der auch als Generic CPU Interface (GIF) bezeichnet wird, stellt ein generisches, also allgemeines, CPU-Interface dar, über das sich mittels entsprechender teilnehmerspezifischer Teilbausteine, also Customer CPU Interfaces (CIFs), unterschiedliche kundenspezifische Host-CPUs an den FlexRay-Kommunikationsbaustein anschließen lassen. Dadurch ist eine problemlose Anpassung des Kommunikationsbausteins an unterschiedliche Teilnehmer möglich, da abhängig vom Teilnehmer nur der teilnehmerspezifische Teilbaustein variiert werden muss, während der teilnehmerunabhängige Teilbaustein und der restliche Kommunikationsbaustein stets gleich ausgebildet werden kann. Mit Hilfe des Kommunikationsbausteins ergibt sich also eine Standard-Schnittstelle zum Anschluss beliebiger FlexRay-Teilnehmer an eine FlexRay-Kommunikationsverbindung, wobei sich die Schnittstelle durch einfache Variation des teilnehmerspezifischen Teilbausteins an beliebig ausgebildete oder geartete Teilnehmer flexibel anpassen lässt. Dabei können die Teilbausteine auch innerhalb des einen Schnittstellenbausteins jeweils in Software, also jeder Teilbaustein als Softwarefunktion, realisiert werden.In The communication block is an interface block provided of two parts, wherein the one component independent of the participant and the other sub-module is subscriber-specific. The participant-specific Partial block, also known as Customer CPU Interface (CIF) is a custom participant in the form of a links user-specific host CPU with the FlexRay communication block. The participant independent Submodule, also referred to as Generic CPU Interface (GIF), represents a generic, that is, general, CPU interface over which by means of corresponding subscriber-specific partial modules, So Customer CPU Interfaces (CIFs), different custom Have host CPUs connected to the FlexRay communication block. This is a problem-free adaptation of the communication module possible to different participants, as dependent From the participant only the subscriber-specific sub-module varies must be while the participant-independent Submodule and the rest of the communication block always trained the same can be. With the help of the communication module, it follows a standard interface for connecting any FlexRay device to a FlexRay communication link, wherein the interface by simple variation of the subscriber-specific Sub-modules to any trained or kind participants flexible. It can the sub-blocks also within one interface block each in software, so each sub-module as a software function, will be realized.

Die Zustandsmaschine in dem FlexRay-Kommunikationsbaustein kann fest in Hardware verdrahtet sein. Die Sequenzen können ebenfalls fest in Hardware verdrahtet sein. Alternativ kann die Zustandsmaschine im Kommunikationsbaustein über die Teilnehmerschnittstelle durch den Teilnehmer auch frei programmierbar sein.The State machine in the FlexRay communication block can be fixed wired in hardware. The sequences can also be fixed in hardware be wired. Alternatively, the state machine in the communication block via the Subscriber interface also freely programmable by the subscriber be.

Die Informationen enthalten vorzugsweise den Zugriffstyp und/oder die Zugriffsart und/oder die Zugriffsadresse und/oder die Datengröße und/oder Steuerinformationen zu den Daten und/oder wenigstens eine Information zur Datenabsicherung.The Information preferably contains the access type and / or the Access type and / or the access address and / or the data size and / or control information to the data and / or at least one information for data security.

Nach dem Stand der Technik ist der Botschaftsspeicher des FlexRay-Kommunikationsbausteins vorzugsweise als single-ported RAM (Random Access Memory) ausgeführt. Dieser RAM-Speicher speichert die Botschaften bzw. Botschaftsobjekte, also die eigentlichen Nutzdaten, zusammen mit Konfigurations- und Statusdaten. Die genaue Struktur des Botschaftsspeichers des bekannten Kommunikationsbausteins kann der genannten Druckschrift DE 10 2005 034 744 entnommen werden.According to the prior art, the message memory of the FlexRay communication module is preferably designed as a single-ported RAM (Random Access Memory). This RAM memory stores the messages or message objects, ie the actual user data, along with configuration and status data. The exact structure of the message memory of the known communication module can the cited document DE 10 2005 034 744 be removed.

Nach dem Stand der Technik ist innerhalb des Teilnehmers der Mikrocontroller, der den Mikroprozessor (sog. Host-CPU), einen Speicher (z.B. Random Access Memory; RAM) und einen Core-Bus zwischen dem Mikroprozessor und dem Speicher umfasst, über eine passive und eine aktive Schnittstelle als sog. Master an den Peripherie-Bus angeschlossen. Über die passive Schnittstelle kann der Mikrocontroller lediglich Befehle und Daten von anderen Teilnehmern des Peripherie-Busses empfangen. Über die aktive Schnittstelle kann der Mikrocontroller selbst Daten und Befehle an andere Teilnehmer des Peripherie-Busses aussenden. Ein Anschluss eines Teilnehmers an den Peripherie-Bus über eine passive Schnittstelle ist gleichbedeutend mit einem Anschluss des Teilnehmers als sog. Slave. Ein Anschluss eines Teilnehmers über eine aktive Schnittstelle entspricht einen Anschluss des Teilnehmers als sog. Master. Bei einem bekannten Kommunikationssystem ist ein Kommunikationscontroller ist über eine passive Schnittstelle als sog. Slave an den Peripheriebus angeschlossen.To In the prior art, within the subscriber is the microcontroller, the microprocessor (called host CPU), a memory (e.g., Random Access Memory; RAM) and a core bus between the microprocessor and the memory includes, over a passive and an active interface as a so-called master to the Peripheral bus connected. about the passive interface, the microcontroller can only commands and receive data from other users of the peripheral bus. About the Active interface allows the microcontroller itself data and commands to other participants of the peripheral bus. A connection a subscriber to the peripheral bus via a passive interface is synonymous with a connection of the participant as so-called. Slave. A connection of a subscriber via an active interface corresponds to a connection of the participant as a so-called master. at a known communication system is a communication controller is over a passive interface as a so-called slave connected to the peripheral bus.

Der Kommunikationscontroller stellt die Verbindung des Teilnehmers zur Kommunikationsverbindung dar. Er besitzt einen Botschaftsspeicher, in dem von der Kommunikationsverbindung neu empfangene Botschaften abgelegt und auf der Kommunikationsverbindung zu versendende Botschaften ausgelesen werden. Der Mikroprozessor kann über die passive Schnittstelle des Kommunikationscontrollers auf die gespeicherten Botschaftsobjekte zugreifen.Of the Communication controller adjusts the connection of the subscriber Communication link. He has a message memory, in the newly received messages from the communication link filed and messages to be sent on the communication link be read out. The microprocessor can be over the passive interface of the communication controller to the stored message objects access.

Der Mikroprozessor konfiguriert, kontrolliert und steuert den Kommunikationscontroller. Der Mikroprozessor liest empfange Botschaften aus, bewertet sie, berechnet neue Botschaften und sorgt für das Schreiben der Botschaften zum Versand über die Kommunikationsverbindung. Zur Datenübertragung innerhalb des Teilnehmers überträgt der Mikroprozessor die Daten wortweise aus dem Kommunikationscontroller in den Speicher des Mikrocontrollers. Dabei treten bei den heute üblichen hohen Taktraten des Mikroprozessors mehrere Wartezyklen auf, während denen der Mikroprozessor auf das Ende der Datenübertragung wartet und keinen anderen Aufgaben nachgehen kann.Of the Microprocessor configures, controls and controls the communication controller. The microprocessor reads received messages, evaluates them, calculates new messages and writes the messages for shipping via the communication connection. For data transmission within the subscriber transmits the microprocessor the data word by word from the communication controller into the memory of the microcontroller. This occurs in the usual today high clock rates of the microprocessor several wait cycles, during which the microprocessor waits for the end of the data transfer and none can pursue other tasks.

Es ist ebenfalls bekannt, zur Entlastung des Mikroprozessors des Mikrocontrollers eines Teilnehmers des Kommunikationssystems einen DMA (Direct Memory Access)-Controller über eine passive und eine aktive Schnittstelle als sog. Master an den Peripheriebus anzuschließen. Der DMA-Controller kann den Datentransfer zwischen dem Speicher des Mikrocontrollers und dem Kommunikationscontroller durchführen. Er wird dazu von dem Mikroprozessor konfiguriert und gestartet. Danach überträgt der DMA-Controller Daten wortweise aus dem Kommunikationscontroller in den Speicher des Mikrocontrollers. Das Ende der Datenübertragung wird dem Mikroprozessor mittels eines Interrupts mitgeteilt, woraufhin der Mikroprozessor de Prozess für die nächste Botschaft neu beginnt. Das Abarbeiten von Interrupts erzeugt eine große Anzahl von CPU-Befehlen, durch die ein großer Teil der Rechen- und Speicherressourcen des Mikroprozessors gebunden ist. Außerdem steigt durch häufige Interrupts der mögliche Jitter (zeitliche Unsicherheit bzgl. der Ausführungsdauer) von unterbrochenen Software-Tasks an.It is also known to relieve the microprocessor of the microcontroller a subscriber of the communication system a DMA (Direct Memory Access) controller via a passive and an active interface as a so-called master to the peripheral bus to join. The DMA controller can handle the data transfer between the memory of the microcontroller and the communication controller. He is configured and started by the microprocessor. Thereafter, the DMA controller transmits data word by word from the communication controller into the memory of the microcontroller. The end of the data transfer is communicated to the microprocessor by means of an interrupt, whereupon the microprocessor de process for the next message starts again. The processing of interrupts generates a large number of CPU commands, through which a large part of the computational and memory resources of the microprocessor is bound. It also increases due to frequent interrupts the possible Jitter (temporal uncertainty regarding the duration of execution) of interrupted Software tasks.

Der vorliegenden Erfindung liegt deshalb die Aufgabe zugrunde, die Datenübertragung innerhalb eines Teilnehmers des Kommunikationssystems zwischen dem Mikroprozessor und dem Kommunikationscontroller zu optimieren, insbesondere soll die Anzahl der Wartezyklen in dem Mikroprozessor und die Interruptlast verringert werden.Of the The present invention is therefore based on the object, the data transmission within a subscriber of the communication system between the Microprocessor and the communication controller to optimize, in particular the number of wait cycles in the microprocessor and the interrupt load be reduced.

Zur Lösung dieser Aufgabe wird ausgehend von der Teilnehmer der eingangs genannten Art vorgeschlagen, dass der Kommunikationscontroller eine aktive Schnittstelle, über die der Kommunikationscontroller mit dem Peripherie-Bus in Verbindung steht, und eine Logik aufweist, welche eine selbständige Datenübertragung zwischen dem Kommunikationscontroller und dem Mikroprozessor (Host-CPU) über die aktive Schnittstelle und den Peripherie-Bus ermöglicht.to solution This task is based on the participants of the aforementioned Art suggested that the communication controller an active Interface, over the communication controller communicates with the peripheral bus, and having a logic which provides independent data transfer between the communication controller and the microprocessor (host CPU) via the active interface and the peripheral bus.

Vorteile der ErfindungAdvantages of invention

Erfindungsgemäß wird also vorgeschlagen, den Kommunikationscontroller nicht als sog. Slave, sondern als Master an den Peripherie-Bus anzuschließen. Zusätzlich erhält der Kommunikationscontroller eine Intelligenz in Form einer Logik, die es ihm ermöglicht, die Datenübertragung zwischen einem Botschaftsspeicher des Kommunikationscontrollers und einem Speicher des Mikrocontrollers selbständig zu koordinieren und zu steuern. Durch die Logik kann dem Kommunikationscontroller eine gewisse DMA-Funktionalität vermittelt werden.Thus, according to the invention proposed, the communication controller not as so-called. Slave, but as master to the peripheral bus. In addition, the communication controller receives an intelligence in the form of a logic that enables him the data transmission between a message memory of the communication controller and to independently coordinate and allocate to a memory of the microcontroller Taxes. The logic allows the communication controller a certain DMA functionality mediated.

Die Erfindung kann bei beliebigen Teilnehmern von beliebigen Kommunikationssystemen eingesetzt werden. Nachfolgend wird die Erfindung beispielhaft anhand eines FlexRay-Kommunikationssytems beschreiben. Dieser Bezug zu dem FlexRay-Protokoll soll jedoch nicht beschränkend verstanden werden. Selbstverständlich kann die Erfindung auch in Teilnehmern eines MOST (Media Oriented Systems Transport)-, eines CAN (Controller Area Network)-, eines TTCAN (Time Triggered CAN)-, eines LIN (Local Interconnect Network)- oder eines beliebig anderen bekannten Kommunikationssystems eingesetzt werden.The The invention can be applied to arbitrary users of any communication system be used. The invention will be described by way of example below describe a FlexRay Kommunikationssytems. This relation to However, the FlexRay protocol should not be understood as limiting. Of course you can the invention also in participants of a MOST (Media Oriented Systems Transport) -, a CAN (Controller Area Network) -, a TTCAN (Time Triggered CAN) -, a LIN (Local Interconnect Network) - or any other known communication system can be used.

Der Mikroprozessor konfiguriert, kontrolliert und steuert den Kommunikationscontroller. Der Mikroprozessor liest bereits in dem Botschaftsspeicher des Kommunikationscontrollers empfangene und automatisch in den Speicher des Mikrocontrollers kopierte Botschaftsobjekte aus, bewertet sie, berechnet neue Botschaftsobjekte und legt sie im Speicher des Mikrocontrollers ab. Außerdem startet der Mikroprozessor den Transfer zum Botschaftsspeicher des Kommunikationscontrollers, der wiederum automatisiert vom erfindungsgemäßen Kommunikationscontroller durchgeführt wird.Of the Microprocessor configures, controls and controls the communication controller. The microprocessor already reads in the message memory of the communication controller received and automatically into the memory of the microcontroller copied message objects, evaluates them, calculates new message objects and puts them in the memory of the microcontroller. Also starts the microprocessor transfers to the message memory of the communication controller, in turn automated by the communication controller according to the invention carried out becomes.

Zusätzlich zur passiven Schnittstelle verfügt der erfindungsgemäße Kommunikationscontroller über eine aktive Schnittstelle, über die eine im Kommunikationscontroller eingebettete Logik selbständig sowohl Botschaftsobjekte aus dem Botschaftsspeicher des Kommunikationscontrollers auslesen und in den Speicher dem Mikrocontrollers schreiben als auch Botschaftsobjekte aus dem Speicher auslesen und in den Botschaftsspeicher schreiben kann.In addition to passive interface has the inventive communication controller via a active interface, via the one embedded in the communication controller logic independently both Message objects from the message memory of the communication controller Read and write to the memory of the microcontroller as well Read message objects from the memory and into the message memory can write.

Gemäß einer vorteilhaften Weiterbildung der vorliegenden Erfindung wird vorgeschlagen, dass der Kommunikationscontroller einen Botschaftsspeicher zum Zwischenspeichern von Botschaften von der Kommunikationsverbindung oder für die Kommunikationsverbindung umfasst, wobei die Logik des Kommunikationscontrollers ein selbständiges Auslesen von Daten aus dem Botschaftsspeicher des Kommunikationscontrollers und Ablegen der Daten in dem Mikroprozessor (Host-CPU), sowie ein selbständiges Auslesen von Daten aus dem Mikroprozessor (Host-CPU) und Ablegen der Daten in dem Botschaftsspeicher des Kommunikationscontrollers ermöglicht.According to an advantageous development of the present invention, it is proposed that the communication controller comprises a message memory for temporarily storing messages from the communication connection or for the communication connection, the logic of the communication controller independently reading out data from the message memory of the communication controller and storing the data in the microprocessor (host CPU), as well as an independent reading of data from the microprocessor (host CPU) and storing the data in the message memory of the communication controller allows.

Gemäß einer bevorzugten Ausführungsform der Erfindung wird vorgeschlagen, dass dem Mikroprozessor (Host-CPU) ein Speicherelement zugeordnet ist, wobei die Logik des Kommunikationscontrollers ein selbständiges Auslesen von Daten aus dem Kommunikationscontroller und Ablegen der Daten in dem Speicherelement des Mikroprozessors (Host-CPU), sowie ein selbständiges Auslesen von Daten aus dem Speicherelement des Mikroprozessors (Host-CPU) und Ablegen der Daten in dem Kommunikationscontroller ermöglicht.According to one preferred embodiment of Invention it is proposed that the microprocessor (host CPU) a memory element is assigned, the logic of the communication controller an independent one Reading out data from the communication controller and storing the data in the memory element of the microprocessor (host CPU), as well as an independent read data from the memory element of the microprocessor (host CPU) and storing the data in the communication controller.

Gemäß einer besonders vorteilhaften Weiterbildung der vorliegenden Erfindung wird vorgeschlagen, dass der Kommunikationscontroller einen Kommunikationsbaustein aufweist, der einen Botschaftsspeicher zum Zwischenspeichern von Botschaften von der Kommunikationsverbindung oder für die Kommunikationsverbindung umfasst, wobei die Logik des Kommunikationscontrollers eine selbständige Datenübertragung zwischen dem Kommunikationsbaustein und dem Mikroprozessor (Host-CPU), vorzugsweise zwischen dem Botschaftsspeicher des Kommunikationsbausteins und dem dem Mikroprozessor (Host-CPU) zugeordneten Speicherelement (RAM), über den Peripherie-Bus ermöglicht.According to one particularly advantageous embodiment of the present invention It is proposed that the communication controller a communication block comprising a message memory for caching Messages from the communication link or for the communication link wherein the logic of the communication controller is a self-contained data transmission between the communication module and the microprocessor (host CPU), preferably between the message memory of the communication module and the memory element associated with the microprocessor (host CPU) (RAM), over allows the peripheral bus.

Gemäß einer bevorzugten Ausführungsform der Erfindung weist der Kommunikationsbaustein mindestens einen zwischen dem Botschaftsspeicher und dem Peripheriebus angeordneten Pufferspeicher, vorzugsweise mindestens einen Eingabepufferspeicher und mindestens einen Ausgangspufferspeicher, auf, wobei die Logik des Kommunikationscontrollers eine selbständige Datenübertragung zwischen dem Kommunikationsbaustein und dem Mikroprozessor (Host-CPU), vorzugsweise zwischen dem mindestens einen Pufferspeicher des Kommunikationsbausteins und dem dem Mikroprozessor (Host-CPU) zugeordneten Speicherelement, über den Peripherie-Bus ermöglicht.According to one preferred embodiment of Invention, the communication module at least one between buffer memory arranged in the message memory and the peripheral bus, preferably at least one input buffer and at least an output buffer, on, the logic of the communication controller an independent one data transfer between the communication module and the microprocessor (host CPU), preferably between the at least one buffer memory of the communication module and the memory element associated with the microprocessor (host CPU) via which Periphery bus allows.

Die Logik in dem Kommunikationscontroller umfasst vorteilhafterweise eine Zustandsmaschine, vorzugsweise eine DMA-Zustandsmaschine. Die Zustandsmaschine ist vorzugsweise hardwaremäßig realisiert und in dem Kommunikationscontroller fest verdrahtet. Selbstverständlich kann die Zustandsmaschine aber auch softwaremäßig realisiert sein.The Logic in the communication controller advantageously comprises a state machine, preferably a DMA state machine. The State machine is preferably implemented in hardware and in the communication controller hardwired. Of course However, the state machine can also be realized by software.

Gemäß einer anderen Ausführungsform der Erfindung wird vorgeschlagen, dass der Kommunikationscontroller einen Arbiter aufweist, der konkurrierende Zugriffe des Mikroprozessors (Host-CPU) und der Zustandsmaschine auf einen Botschaftsspeicher des Kommunikationscontrollers bzw. auf einen Botschaftsspeicher eines FlexRay-Kommunikationsbausteins arbitriert.According to one another embodiment The invention proposes that the communication controller an arbiter, the concurrent accesses of the microprocessor (Host CPU) and the state machine to a message memory of the Communication controller or to a message memory of a FlexRay communication module arbitrated.

Vorteilhafterweise umfasst der Kommunikationscontroller Kontroll- und/oder Statusregister, auf welche der Mikroprozessor (Host-CPU) zur Konfiguration, Ansteuerung und/oder Überwachung der Datenübertragung zugreifen kann.advantageously, the communication controller comprises control and / or status registers, on which the microprocessor (host CPU) for configuration, control and / or monitoring the data transmission can access.

Der Teilnehmer ist vorzugsweise Bestandteil eines FlexRay-Kommunikationssytems, in welchem eine Datenübertragung zwischen dem Teilnehmer und anderen an die FlexRay-Kommunikationsverbindung angeschlossenen FlexRay- Teilnehmern nach dem FlexRay-Protokoll erfolgt.Of the Subscriber is preferably part of a FlexRay communication system, in which a data transmission between the subscriber and others to the FlexRay communication link connected FlexRay participants according to the FlexRay protocol.

Als eine weitere Lösung der Aufgabe der vorliegenden Erfindung wird ausgehend von dem Kommunikationscontroller der eingangs genannten Art vorgeschlagen, dass der Kommunikationscontroller eine aktive Schnittstelle, über die der Kommunikationscontroller mit dem Peripherie-Bus in Verbindung steht, und eine Logik aufweist, welche eine selbständige Datenübertragung zwischen dem Kommunikationscontroller und dem Mikroprozessor (Host-CPU) über die aktive Schnittstelle und den Peripherie-Bus ermöglicht.When another solution The object of the present invention is based on the communication controller of the type mentioned above proposed that the communication controller a active interface, via the communication controller communicates with the peripheral bus, and having a logic which provides independent data transfer between the communication controller and the microprocessor (host CPU) via the active interface and the peripheral bus.

Gemäß einer vorteilhaften Weiterbildung der Erfindung wird vorgeschlagen, dass der Kommunikationcontroller Bestandteil eines FlexRay-Kommunikationssytems ist, in welchem eine Datenübertragung zwischen dem Teilnehmer und anderen an die FlexRay-Kommunikationsverbindung angeschlossenen FlexRay-Teilnehmern nach dem FlexRay-Protokoll erfolgt.According to one advantageous development of the invention it is proposed that the communication controller is part of a FlexRay communication system is in which a data transfer between the subscriber and others to the FlexRay communication link connected FlexRay participants according to the FlexRay protocol.

Als noch eine weitere Lösung der Aufgabe der vorliegenden Erfindung wird ausgehend von dem Verfahren der eingangs genannten Art vorgeschlagen, dass eine Logik des Kommunikationscontrollers zur Datenübertragung veranlasst wird und die Logik daraufhin die Datenübertragung zwischen dem Kommunikationscontroller und dem Mikroprozessor (Host-CPU) über eine aktive Schnittstelle des Kommunikationscontrollers und den Peripherie-Bus selbständig steuert.When yet another solution The object of the present invention is based on the method of the type mentioned above proposed that a logic of the communication controller for data transfer is caused and the logic then the data transfer between the communication controller and the microprocessor (host CPU) via a active interface of the communication controller and the peripheral bus independent controls.

Gemäß einer vorteilhaften Weiterbildung der Erfindung wird vorgeschlagen, dass die Logik des Kommunikationscontrollers durch einen Befehl des Mikroprozessors (Host-CPU) des Teilnehmers zur Datenübertragung veranlasst wird. Dies kann ein Interrupt-Befehl oder ein gezielt an den Kommunikationscontroller gerichteter Start-Befehl sein. Alternativ ist es denkbar, dass der Kommunikationscontroller bzw. die Logik des Kommunikationscontrollers regelmäßig den Inhalt des Botschaftsspeichers oder des Speichers des Mikrocontrollers auf neue Daten überprüft oder den Inhalt bestimmter Register, die nach Erhalt neuer Daten in dem Botschaftsspeicher und/oder dem Speicher des Mikrocontrollers gesetzt werden, überprüft, und gegebenenfalls die Datenübertragung startet.According to an advantageous embodiment of the invention, it is proposed that the logic of the communication controller is caused by a command of the microprocessor (host CPU) of the subscriber for data transmission. This may be an interrupt command or a targeted to the communication controller start command. Alternatively, it is conceivable that the communication controller or the logic of the communication controller rule moderately checks the content of the message memory or the memory of the microcontroller for new data or checks the contents of certain registers that are set after receiving new data in the message memory and / or memory of the microcontroller, and optionally starts the data transfer.

Gemäß einer bevorzugten Ausführungsform der Erfindung wird vorgeschlagen, dass der Mikroprozessor (Host-CPU) auf Kontroll- und/oder Statusregister des Kommunikationscontrollers zugreift und so die Datenübertragung konfiguriert, angesteuert und/oder überwacht wird. Dazu liest der Mikroprozessor Kontroll- und/oder Statusparameter (die je nach Zustand des Kommunikationscontrollers von diesem dort abgelegt bzw. gesetzt werden) aus dem Register ein oder legt solche Parameter (zur Ansteuerung des Kommunikationscontrollers) in dem Register ab.According to one preferred embodiment of Invention it is proposed that the microprocessor (host CPU) on control and / or status registers of the communication controller accesses and so the data transfer configured, controlled and / or monitored. This reads the Microprocessor control and / or status parameters (depending on the state of the communication controller of this filed there or set be) from the register or sets such parameters (to control of the communication controller) in the register.

Vorteilhafterweise umfasst die Logik des Kommunikationscontrollers eine Zustandsmaschine, wobei konkurrierende Zugriffe des Mikroprozessors (Host-CPU) und der Zustandsmaschine auf einen Botschaftsspeicher des Kommunikationscontrollers bzw. auf einen Botschaftsspeicher eines Kommunikationsbausteins arbitriert werden.advantageously, For example, the logic of the communications controller includes a state machine where concurrent accesses of the microprocessor (host CPU) and the state machine to a message memory of the communication controller or arbitrated to a message memory of a communication block become.

Vorzugsweise werden nach dem Empfang neuer Daten von der Kommunikationsverbindung von der Logik selbständig folgende Schritte veranlasst und gesteuert:

  • – Sichtbarmachen der empfangenen Daten in einem Pufferspeicher des Kommunikationscontrollers; und
  • – Anlegen einer Kopie der empfangenen Daten in einem konfigurierbaren Adressbereich eines dem Mikroprozessor (Host-CPU) zugeordneten Speicherelements durch Schreibzugriffe über die aktive Schnittstelle.
Preferably, following receipt of new data from the communication link, the logic automatically initiates and controls the following steps:
  • Visualizing the received data in a buffer memory of the communication controller; and
  • - Creation of a copy of the received data in a configurable address range of the microprocessor (host CPU) associated memory element by write accesses over the active interface.

Des weiteren wird zum Versenden neuer Daten, die in einem dem Mikroprozessor (Host-CPU) zugeordneten Speicherelement vorliegen, von dem Mikroprozessor (Host-CPU) vorzugsweise eine Übertragung der Daten aus dem Speicherelement in den Kommunikationscontroller veranlasst und werden von der Logik des Kommunikationscontrollers selbständig folgende Schritte veranlasst und gesteuert:

  • – Erkennen eines Befehls oder mindestens eines gesetzten Bits in einem Kontroll- und/oder Statusregister des Kommunikationscontrollers;
  • – Auslesen der Daten aus einer konfigurierbaren Adresse des Speicherelements;
  • – Anlegen einer Kopie des ausgelesenen Datenobjekts in einem Pufferspeicher des Kommunikationscontrollers; und
  • – Initiieren der Übertragung der Daten aus dem Pufferspeicher in einen Botschaftsspeicher des Kommunikationscontrollers bzw. eines Kommunikationsbausteins.
Furthermore, in order to send new data present in a memory element associated with the microprocessor (host CPU), the microprocessor (host CPU) preferably initiates a transfer of the data from the memory element into the communication controller and becomes independent of the logic of the communication controller initiated and controlled the following steps:
  • - detecting a command or at least one set bit in a control and / or status register of the communication controller;
  • - reading the data from a configurable address of the memory element;
  • - Creating a copy of the read data object in a buffer memory of the communication controller; and
  • - Initiate the transfer of the data from the buffer memory in a message memory of the communication controller or a communication block.

Zeichnungendrawings

Nachfolgend werden anhand der Figuren weitere Merkmale und Vorteile der Erfindung näher erläutert. Es zeigen:following With reference to the figures, further features and advantages of the invention explained in more detail. It demonstrate:

1 einen Kommunikationsbaustein und dessen Anbindung an eine Kommunikationsverbindung und einen Kommunikations- oder Host-Teilnehmer eines FlexRay-Kommunikationssystems in schematischer Darstellung; 1 a communication module and its connection to a communication connection and a communication or host participant of a FlexRay communication system in a schematic representation;

2 eine spezielle Ausführungsform des Kommunikationsbausteins aus 1 sowie dessen Anbindung im Detail; 2 a special embodiment of the communication module 1 as well as its connection in detail;

3 die Struktur eines Botschaftsspeichers des Kommunikationsbausteins aus 2; 3 the structure of a message memory of the communication module 2 ;

4 bis 6 die Architektur und den Prozess eines Datenzugriffs in Richtung vom Teilnehmer zum Botschaftsspeicher in schematischer Darstellung; 4 to 6 the architecture and the process of a data access in the direction of the subscriber to the message memory in a schematic representation;

7 bis 9 die Architektur und den Prozess eines Datenzugriffs in Richtung vom Botschaftsspeicher zum Teilnehmer; 7 to 9 the architecture and process of data accessing from the message storage to the subscriber;

10 die Struktur eines Botschaftsverwalters und von darin enthaltenen Finite-State-Machinen in schematischer Darstellung; 10 the structure of a message manager and finite state machines contained therein in a schematic representation;

11 Bauteile des Kommunikationsbausteins aus 1 und 2 sowie den Teilnehmer und die entsprechenden, durch den Botschaftsverwalter gesteuerten Datenpfade in schematischer Darstellung; 11 Components of the communication block 1 and 2 as well as the subscriber and the corresponding data paths controlled by the message administrator in a schematic representation;

12 die Zugriffsverteilung auf den Botschaftsspeicher bezogen auf die Datenpfade in 11; 12 the access distribution to the message memory with respect to the data paths in 11 ;

13 einen erfindungsgemäßen Teilnehmer eines Kommunikationssystems; 13 a subscriber of a communication system according to the invention;

14 einen Kommunikationscontroller des Teilnehmers aus 13 im Detail; und 14 a communication controller of the subscriber 13 in detail; and

15 einen aus dem Stand der Technik bekannten Teilnehmer eines Kommunikationssytems. 15 a known from the prior art participants of a Kommunikationsssytems.

Beschreibung der Ausführungsbeispieledescription the embodiments

1 zeigt schematisch einen FlexRay-Kommunikationsbaustein 100 zur Anbindung eines Teilnehmers oder Hosts 102 an eine FlexRay-Kommunikationsverbindung 101, also die physikalische Schicht des FlexRay. Diese ist bspw. als ein FlexRay-Datenbus, der vorzugsweise über zwei Übertragungsleitungen verfügt, ausgebildet. Dazu ist der FlexRay-Kommunikationsbaustein 100 über eine Verbindung 107 mit dem Teilnehmer bzw. Teilnehmerprozessor 102 und über eine Verbindung 106 mit der Kommunikationsverbindung 101 verbunden. Zur problemlosen Anbindung zum einen bezogen auf Übertragungszeiten und zum anderen bezogen auf die Datenintegrität sind schematisch im Wesentlichen drei Anordnungen im FlexRay-Kommunikationsbaustein unterschieden. Dabei dient eine erste Anordnung 105 zur Speicherung, insbesondere Zwischenablage, wenigstens eines Teils der zu übertragenden Botschaften. Zwischen dem Teilnehmer 102 und dieser ersten Anordnung 105 ist über die Verbindungen 107 und 108 eine zweite Anordnung 104 geschaltet. Ebenso ist zwischen Kommunikationsverbindung 101 und die erste Anordnung 105 eine dritte Anordnung 103 über die Verbindungen 106 und 109 geschaltet, wodurch ein sehr flexibles Eingeben und Ausgeben von Daten als Teil von Botschaften, insbesondere FlexRay-Botschaften in bzw. aus der ersten Anordnung 105 mit Gewährleistung der Datenintegrität bei optimaler Geschwindigkeit erzielbar ist. 1 schematically shows a flex Ray communications module 100 for connecting a participant or host 102 to a FlexRay communication link 101 So the physical layer of the FlexRay. This is formed, for example, as a FlexRay data bus, which preferably has two transmission lines. This is the FlexRay communication block 100 over a connection 107 with the participant or participant processor 102 and about a connection 106 with the communication connection 101 connected. For problem-free connection on the one hand with respect to transmission times and on the other hand with regard to data integrity, essentially three different arrangements in the FlexRay communication module are schematically distinguished. It serves a first arrangement 105 for storing, in particular clipboard, at least part of the messages to be transmitted. Between the participant 102 and this first arrangement 105 is about the connections 107 and 108 a second arrangement 104 connected. Likewise is between communication connection 101 and the first arrangement 105 a third arrangement 103 about the connections 106 and 109 whereby a very flexible input and output of data as part of messages, in particular FlexRay messages in and out of the first arrangement 105 achievable with guaranteed data integrity at optimal speed.

In 2 ist dieser Kommunikationsbaustein 100 in einer bevorzugten Ausführungsform noch einmal detaillierter dargestellt. Ebenso detaillierter dargestellt sind die jeweiligen Verbindungen 106 bis 109. Zur Anbindung des FlexRay-Kommunikationsbausteins 100 an den FlexRay-Teilnehmer 102 bzw. den Host-Prozessor enthält die zweite Anordnung 104 einen Eingangspufferspeicher oder Eingabepufferspeicher 201 (Input Buffer IBF), einen Ausgangspufferspeicher oder Ausgabepufferspeicher 202 (Output Buffer OBF) sowie einen Schnittstellenbaustein bestehend aus zwei Teilen 203 und 204, wobei der eine Teilbaustein 203 teilnehmerunabhängig und der zweite Teilbaustein 204 teilnehmerspezifisch ist. Der teilnehmerspezifische Teilbaustein 204 (Customer CPU Interface CIF) verbindet eine teilnehmerspezifische Host-CPU 102, also einen kundenspezifischen Teilnehmer 102 mit dem FlexRay-Kommunikationsbaustein 100. Dazu ist eine bidirektionale Datenleitung 216, eine Adressleitung 217 sowie ein Steuereingang 218 vorgesehen. Ebenso vorgesehen ist mit 219 ein Interrupt- oder Unterbrechungs-Ausgang. Der teilnehmerspezifische Teilbaustein 204 steht in Verbindung mit einem teilnehmerunabhängigen Teilbaustein 203 (Generic CPU Interface, GIF), d. h. der FlexRay-Kommunikationsbaustein oder das FlexRay-IP-Modul verfügt über ein generisches, also allgemeines, CPU-Interface 203, an das sich über entsprechende teilnehmerspezifische Teilbausteine 204, also Customer CPU Interfaces CIF eine große Anzahl von unterschiedlichen kundenspezifischen Host CPUs 102 anschließen lassen. Dadurch muss abhängig vom Teilnehmer 102 nur der Teilbaustein 204 variiert werden, was einen deutlich geringeren Aufwand bedeutet. Das CPU-Interface 203 und der restliche Kommunikationsbaustein 100 kann unverändert übernommen werden.In 2 is this communication block 100 in a preferred embodiment again shown in more detail. Also shown in more detail are the respective compounds 106 to 109 , For connecting the FlexRay communication block 100 to the FlexRay participant 102 or the host processor contains the second arrangement 104 an input buffer or input buffer 201 (Input Buffer IBF), an output buffer or output buffer 202 (Output buffer OBF) as well as an interface module consisting of two parts 203 and 204 , where the one component 203 participant-independent and the second sub-module 204 is subscriber specific. The subscriber-specific sub-module 204 (Customer CPU Interface CIF) connects a user-specific host CPU 102 So a custom participant 102 with the FlexRay communication block 100 , This is a bidirectional data line 216 , an address line 217 as well as a control input 218 intended. It is also provided with 219 an interrupt or interrupt output. The subscriber-specific sub-module 204 is associated with a subscriber-independent submodule 203 (Generic CPU Interface, GIF), ie the FlexRay communication block or the FlexRay IP module has a generic, ie general, CPU interface 203 , to which there are corresponding subscriber-specific partial modules 204 So CIF Customer CPU Interfaces a large number of different custom host CPUs 102 connect. This must be dependent on the participant 102 only the partial module 204 be varied, which means a much lower cost. The CPU interface 203 and the rest of the communication block 100 can be taken over unchanged.

Der Eingabepufferspeicher oder Eingangspufferspeicher 201 und der Ausgangspufferspeicher oder Ausgabepufferspeicher 202 können in einem gemeinsamen Speicherbaustein oder aber in getrennten Speicherbausteinen ausgebildet sein. Dabei dient der Eingabepufferspeicher 201 für die Zwischenspeicherung von Botschaften für die Übertragung zu einem Botschaftsspeicher 300. Dabei ist der Eingabepufferbaustein 201 vorzugsweise so ausgebildet, dass er zwei vollständige Botschaften bestehend aus jeweils einem Kopfsegment oder Headersegment, insbesondere mit Konfigurationsdaten und ein Datensegment oder Payload Segment speichern kann. Dabei ist der Eingabepufferspeicher 201 zweiteilig (Teilpufferspeicher und Schattenspeicher) ausgebildet, wodurch sich durch wechselweises Schreiben der beiden Teile des Eingabepufferspeichers bzw. durch Zugriffswechsel die Übertragung zwischen Teilnehmer-CPU 102 und Botschaftsspeicher 300 beschleunigen lässt. Ebenso dient der Ausgabepufferspeicher oder Ausgangspufferspeicher 202 (Output-Buffer OBF) für die Zwischenspeicherung von Botschaften für die Übertragung vom Botschaftsspeicher 300 zur Teilnehmer-CPU 102. Dabei ist auch der Ausgabepuffer 202 so gestaltet, dass zwei komplette Botschaften bestehend aus Kopfsegment, insbesondere mit Konfigurationsdaten und Datensegment, also Payload Segment, gespeichert werden können. Auch hier ist der Ausgabepufferspeicher 202 in zwei Teile, einen Teilpufferspeicher und einen Schattenspeicher aufgeteilt, wodurch sich auch hier durch wechselweises Lesen der beiden Teile die Übertragung bzw. durch Zugriffswechsel die Übertragung zwischen Teilnehmer- bzw. Host-CPU 102 und Botschaftsspeicher 300 beschleunigen lässt. Diese zweite Anordnung 104 bestehend aus den Blöcken 201 bis 204 ist mit der ersten Anordnung 105 wie dargestellt verbunden.The input buffer or input buffer 201 and the output buffer or output buffer 202 can be formed in a common memory device or in separate memory devices. The input buffer is used here 201 for caching messages for transmission to a message store 300 , Here is the input buffer block 201 preferably configured so that it can store two complete messages consisting of a respective header segment or header segment, in particular with configuration data and a data segment or payload segment. Where is the input buffer 201 formed in two parts (partial buffer memory and shadow memory), which by alternately writing the two parts of the input buffer memory or by access change the transmission between the subscriber CPU 102 and message storage 300 accelerate. Likewise, the output buffer or output buffer is used 202 (Output buffer OBF) for the caching of messages for transmission from the message memory 300 to the participant CPU 102 , Here is also the output buffer 202 designed so that two complete messages consisting of header segment, in particular with configuration data and data segment, so payload segment, can be stored. Again, the output buffer is 202 divided into two parts, a partial buffer memory and a shadow memory, which also here by alternately reading the two parts of the transmission or by access change the transmission between the host or host CPU 102 and message storage 300 accelerate. This second arrangement 104 consisting of the blocks 201 to 204 is with the first arrangement 105 connected as shown.

Die Anordnung 105 besteht aus einem Botschaftsverwalter 200 (Message Handler MHD) und einem Botschaftsspeicher 300 (Message RAM). Der Botschaftsverwalter 200 kontrolliert bzw. steuert den Datentransfer zwischen dem Eingabepufferspeicher 201 sowie Ausgabepufferspeicher 202 und dem Botschaftsspeicher 300. Gleichermaßen kontrolliert bzw. steuert er die Datenübertragung in der anderen Richtung über die dritte Anordnung 103. Der Botschaftsspeicher 300 ist vorzugsweise als single-ported RAM ausgeführt. Dieser RAM-Speicher speichert die Botschaften bzw. Botschaftsobjekte, also die eigentlichen Daten, zusammen mit Konfigurations- und Statusdaten. Die genaue Struktur des Botschaftsspeichers 300 ist in 3 näher dargestellt.The order 105 consists of a message administrator 200 (Message handler MHD) and a message memory 300 (Message RAM). The embassy administrator 200 controls or controls the data transfer between the input buffer memory 201 as well as output buffer memory 202 and the message storage 300 , Likewise, it controls the data transfer in the other direction via the third arrangement 103 , The message storage 300 is preferably designed as a single-ported RAM. This RAM memory stores the messages or embassy objects, ie the actual data, together with configuration and status data. The exact structure of the embassy spei chers 300 is in 3 shown in more detail.

Die dritte Anordnung 103 besteht aus den Blöcken 205 bis 208. Entsprechend den beiden Kanälen des FlexRay Physical Layer ist diese Anordnung 103 in zwei Datenpfade mit je zwei Datenrichtungen aufgeteilt. Dies wird durch die Verbindungen 213 und 214 deutlich, worin die beiden Datenrichtungen für den Kanal A mit RxA und TxA für Empfangen (RxA) und Senden (TxA) sowie für Kanal B mit RxB und TxB dargestellt sind. Mit Verbindung 215 ist ein optionaler bidirektionaler Steuereingang bezeichnet. Die Anbindung der dritten Anordnung 103 erfolgt über einen ersten Pufferspeicher 205 für Kanal B und einen zweiten Pufferspeicher 206 für Kanal A. Diese beiden Pufferspeicher (Transient Buffer RAMs: RAM A und RAM B) dienen als Zwischenspeicher für die Datenübertragung von bzw. zu der ersten Anordnung 105. Entsprechend der beiden Kanäle sind diese beiden Pufferspeicher 205 und 206 mit jeweils einem Schnittstellenbaustein 207 und 208 verbunden, die die FlexRay-Protokoll-Controller oder Busprotokoll-Controller bestehend aus einem Sende-/Empfangs-Schieberegister und der FlexRay Protokoll Finite State Maschine, enthalten. Die beiden Pufferspeicher 205 und 206 dienen somit als Zwischenspeicher für die Datenübertragung zwischen den Schieberegistern der Schnittstellenbausteine oder FlexRay Protokoll Controller 207 und 208 und dem Botschaftsspeicher 300. Auch hier werden vorteilhafter Weise durch jeden Pufferspeicher 205 oder 206 die Datenfelder, also das Payload Segment oder Datensegment zweier FlexRay-Botschaften gespeichert.The third arrangement 103 consists of the blocks 205 to 208 , This arrangement corresponds to the two channels of the FlexRay Physical Layer 103 divided into two data paths with two data directions each. This is through the connections 213 and 214 clearly showing the two data directions for channel A with RxA and TxA for receive (RxA) and transmit (TxA) and for channel B with RxB and TxB. With connection 215 is an optional bidirectional control input. The connection of the third arrangement 103 takes place via a first buffer memory 205 for channel B and a second buffer memory 206 for channel A. These two transient buffer RAMs (RAM A and RAM B) serve as latches for data transfer from and to the first device 105 , According to the two channels, these two buffer memory 205 and 206 each with an interface block 207 and 208 connected to the FlexRay protocol controller or bus protocol controller consisting of a transmit / receive shift register and the FlexRay protocol finite state machine. The two buffer memories 205 and 206 thus serve as a buffer for the data transfer between the shift registers of the interface modules or FlexRay protocol controller 207 and 208 and the message storage 300 , Again, advantageously, each buffer memory 205 or 206 the data fields, ie the payload segment or data segment of two FlexRay messages stored.

Weiterhin dargestellt im Kommunikationsbaustein 100 ist mit 209 die globale Zeiteinheit (Global Time Unit GTU), welche für die Darstellung der globalen Zeitraster im FlexRay, also den Mikrotick μT und den Makrotick MT, zuständig ist. Ebenso wird über die globale Zeiteinheit 209 die fehlertolerante Uhrensynchronisation der Zykluszähler (Cycle Counter) und die Kontrolle der zeitlichen Abläufe im statischen und dynamischen Segment des FlexRay geregelt. Mit Block 210 ist die allgemeine Systemsteuerung (System Universal Control SUC) dargestellt, durch welche die Operationsmodi des FlexRay-Kommunikationscontrollers kontrolliert und gesteuert werden. Dazu gehören der Wakeup, der Startup, die Reintegration bzw. Integration, Normaloperation (normal operation) und passive Operation (passive operation).Also shown in the communication block 100 is with 209 the global time unit (GTU), which is responsible for the representation of the global time grid in the FlexRay, ie the microtick μT and the macrotick MT. Likewise is about the global time unit 209 the fault-tolerant clock synchronization of the cycle counter and the control of the time sequences in the static and dynamic segment of the FlexRay are regulated. With block 210 is the General System Control (SUC), which controls and controls the operation modes of the FlexRay communications controller. These include wakeup, startup, reintegration or integration, normal surgery and passive surgery.

Block 211 zeigt das Netzwerk und Fehlermanagement (Network- und Error Management NEM), wie in der FlexRay-Protokollspezifikation v2.0 beschrieben. Block 212 schließlich zeigt die Unterbrechungssteuerung (Interrupt Control INT), welche die Status- und Fehlerunterbrechungsflaggen (status and error interrupt flags) verwaltet und die Unterbrechungsausgänge 219 zur Teilnehmer-CPU 102 kontrolliert bzw. steuert. Der Block 212 enthält außerdem einen absoluten und einen relativen Timer bzw. Zeitgeber zur Erzeugung der Zeitunterbrechungen oder Timerinterrupts.block 211 shows the network and error management (Network and Error Management NEM) as described in the FlexRay protocol specification v2.0. block 212 Finally, the Interrupt Control (INT), which manages the status and error interrupt flags, and the interrupt outputs 219 to the participant CPU 102 controls or controls. The block 212 Also includes an absolute and a relative timer for generating time interruptions or timer interrupts.

Für die Kommunikation in einem FlexRay-Netzwerk können Botschaftsobjekte bzw. Botschaften (Message Buffer) mit bis zu 254 Datenbytes konfiguriert werden. Der Botschaftsspeicher 300 ist insbesondere ein Botschafts-RAM-Speicher (Message RAM), welcher z. B. bis zu maximal 128 Botschaftsobjekten speichern kann. Alle Funktionen, die die Behandlung bzw. Verwaltung der Botschaften selbst betreffen, sind dem Botschaftsverwalter oder Message Handler 200 implementiert. Dies sind z.B. die Akzeptanzfilterung, Transfer der Botschaften zwischen den beiden FlexRay-Protokoll-Controller-Blöcken 207 und 208 und dem Botschaftsspeicher 300, also dem Message RAM sowie die Kontrolle der Sendereihenfolge und das Bereitstellen von Konfigurationsdaten bzw. Statusdaten.For communication in a FlexRay network, message objects or messages (message buffer) can be configured with up to 254 data bytes. The message storage 300 is in particular a message RAM memory (Message RAM), which z. B. can save up to a maximum of 128 message objects. All functions that affect the treatment or management of the messages themselves are the message handler or message handler 200 implemented. These are, for example, the acceptance filtering, transfer of the messages between the two FlexRay protocol controller blocks 207 and 208 and the message storage 300 , that is, the message RAM as well as the control of the transmission order and the provision of configuration data or status data.

Eine externe CPU, also ein externer Prozessor des Teilnehmers 102, kann über die Teilnehmerschnittstelle 107 mit dem teilnehmerspezifischen Teil 204 direkt auf die Register des FlexRay-Kommunikationsbausteins 100 zugreifen. Dabei wird eine Vielzahl von Registern verwendet. Diese Register werden eingesetzt, um die FlexRay Protokoll Controller, also die Schnittstellenbausteine 207 und 208, den Botschaftsverwalter (Message Handler MHD) 200, die globale Zeiteinheit (Global Time Unit GTU) 209, den allgemeinen Systemcontroller (System Universal Controller SUC) 210, die Netzwerk- und Fehlermanagementeinheit (Network und Error Management Unit NEM) 211, den Unterbrechungscontroller (Interrupt Controller INT) 212 sowie den Zugriff auf das Message RAM, also den Botschaftsspeicher 300 zu konfigurieren und zu steuern und ebenso den entsprechenden Status anzuzeigen. Zumindest auf Teile dieser Register wird noch in den 4 bis 6 und 7 bis 9 näher eingegangen. Ein solch beschriebener FlexRay-Kommunikationsbaustein 100 ermöglicht die einfache Umsetzung der FlexRay-Spezifikation v2.0, wodurch einfach ein ASIC oder ein Mikrocontroller mit entsprechender FlexRay-Funktionalität generiert werden kann.An external CPU, ie an external processor of the subscriber 102 , can via the subscriber interface 107 with the participant-specific part 204 directly to the registers of the FlexRay communication block 100 access. It uses a variety of registers. These registers are used to configure the FlexRay protocol controllers, ie the interface blocks 207 and 208 , the message handler (MHD) 200 , the Global Time Unit (GTU) 209 , the general system controller (System Universal Controller SUC) 210 , the Network and Error Management Unit (NEM) 211 , the interrupt controller (interrupt controller INT) 212 and the access to the message RAM, so the message memory 300 to configure and control and also to display the corresponding status. At least parts of these registers are still in the 4 to 6 and 7 to 9 discussed in more detail. Such a described FlexRay communication module 100 enables easy implementation of the FlexRay specification v2.0, which makes it easy to generate an ASIC or a microcontroller with the corresponding FlexRay functionality.

Durch den beschriebenen FlexRay-Kommunikationsbaustein 100 kann die FlexRay-Protokollspezifikation, insbesondere v2.0, vollständig unterstützt werden und es sind damit z.B. bis zu 128 Botschaften bzw. Botschaftsobjekte konfigurierbar. Dabei ergibt sich ein flexibel konfigurierbarer Botschaftsspeicher für die Speicherung einer unterschiedlichen Anzahl von Botschaftsobjekten abhängig von der Größe des jeweiligen Datenfeldes bzw. Datenbereiches der Botschaft. Somit sind also vorteilhafterweise Botschaften- oder Botschaftsobjekte zu konfigurieren, die unterschiedlich lange Datenfelder besitzen. Der Botschaftsspeicher 300 ist dabei vorteilhafter Weise als FIFO (first in-first out) ausgebildet, so dass sich ein konfigurierbarer Empfangs-FIFO ergibt. Jede Botschaft bzw. jedes Botschaftsobjekt im Speicher kann als Empfangsspeicherobjekt (Receive-Buffer), Sendespeicherobjekt (Transmit-Buffer) oder als Teil des konfigurierbaren Empfangs-FIFOs konfiguriert werden. Ebenso ist eine Akzeptanzfilterung auf Frame-ID, Channel-ID und Cycle-Counter im FlexRay-Netzwerk möglich. Zweckmäßiger Weise wird somit das Netzwerkmanagement unterstützt. Vorteilhafterweise sind außerdem maskierbare Modulinterrupts vorgesehen.Through the described FlexRay communication module 100 For example, the FlexRay protocol specification, in particular v2.0, can be fully supported and thus, for example, up to 128 messages or message objects can be configured. This results in a flexibly configurable message memory for storing a different number of message objects depending on the size of the respective data field or data area of the message. Thus, thus advantageously embassies or message objects to configure that have different lengths of data fields. The message storage 300 is advantageously designed as FIFO (first in-first out), so that there is a configurable receive FIFO. Each message or message object in memory can be configured as a Receive Buffer, Transmit Buffer, or as part of the configurable Receive FIFO. Likewise, acceptance filtering on frame ID, channel ID and cycle counter in the FlexRay network is possible. Conveniently, the network management is thus supported. Advantageously, maskable module interrupts are also provided.

In 3 ist detailliert die Aufteilung des Botschaftsspeichers 300 beschrieben. Für die nach der FlexRay-Protokollspezifikation geforderte Funktionalität eines FlexRay-Kommunikationscontrollers wird ein Botschaftsspeicher für das Bereitstellen von zu sendenden Botschaften (Transmit Buffer Tx) sowie das Abspeichern von fehlerfrei empfangenen Botschaften (Receive Buffer Rx) benötigt. Ein FlexRay-Protokoll erlaubt Botschaften mit einem Datenbereich, also einem Payload-Bereich von 0 bis 254 Bytes. Wie in 2 dargestellt ist der Botschaftsspeicher 300 Teil des FlexRay-Kommunikationsbausteins 100. Das nachfolgend beschriebene Verfahren sowie der entsprechende Botschaftsspeicher 300 beschreiben die Speicherung von zu sendenden Botschaften sowie von empfangenen Botschaften, insbesondere unter Verwendung eines Random Access Memory (RAM), wobei es durch den beschriebenen Mechanismus möglich ist in einem Botschaftsspeicher vorgegebener Größe eine variable Anzahl von Botschaften zu speichern. Dabei ist die Anzahl der speicherbaren Botschaften abhängig von der Größe der Datenbereiche der einzelnen Botschaften, wodurch zum einen die Größe des benötigten Speichers minimiert werden kann ohne die Größe der Datenbereiche der Botschaften einzuschränken und zum anderen eine optimale Ausnutzung des Speichers erfolgt. Im Folgenden nun soll diese variable Aufteilung eines insbesondere RAM-basierten Botschaftsspeichers 300 für einen FlexRay Communication Controller näher beschrieben werden.In 3 is the division of the message memory in detail 300 described. For the functionality of a FlexRay communication controller required according to the FlexRay protocol specification, a message memory is required for the provision of messages to be sent (Transmit Buffer Tx) as well as the storage of messages received without errors (Receive Buffer Rx). A FlexRay protocol allows messages with a data range, ie a payload range from 0 to 254 bytes. As in 2 shown is the message memory 300 Part of the FlexRay communication block 100 , The procedure described below and the corresponding message memory 300 describe the storage of messages to be sent as well as received messages, in particular using a Random Access Memory (RAM), whereby it is possible by the described mechanism to store a variable number of messages in a message memory of predetermined size. The number of storable messages is dependent on the size of the data areas of the individual messages, whereby on the one hand the size of the required memory can be minimized without restricting the size of the data areas of the messages and on the other hand an optimal utilization of the memory takes place. In the following, this variable division of a particular RAM-based message memory is intended 300 for a FlexRay Communication Controller.

Zur Implementierung wird nun beispielhaft ein Botschaftsspeicher mit einer festgelegten Wortbreite von n Bit, beispielsweise 8, 16, 32 usw., sowie einer vorgegebenen Speichertiefe von m Worten vorgegeben (m, n als natürliche Zahlen). Dabei wird der Botschaftsspeicher 300 in zwei Segmente aufgeteilt, ein Header Segment oder Kopfsegment HS und ein Datensegment DS (Payload Section, Payload Segment). Pro Botschaft wird somit ein Headerbereich HB und ein Datenbereich DB angelegt. Für Botschaften 0, 1 bis k (k als natürliche Zahl) werden somit Headerbereiche oder Kopfbereiche HB0, HB1 bis HBk und Datenbereiche DB0, DB1 bis DBk angelegt. In einer Botschaft wird also zwischen ersten und zweiten Daten unterschieden, wobei die ersten Daten Konfigurationsdaten und/oder Statusdaten bezüglich der FlexRay Botschaft entsprechen und jeweils in einem Headerbereich HB (HB0, HB1, ..., HBk) abgelegt werden. Die zweiten Daten, die den eigentlichen Nutzdaten entsprechen, die übertragen werden sollen, werden entsprechend in Datenbereichen DB (DB0, DB1, ..., DBk) abgelegt. Somit entsteht für die ersten Daten pro Botschaft ein erster Datenumfang (in Bit, Byte oder Speicherworten gemessen) und für die zweiten Daten einer Botschaft ein zweiter Datenumfang (ebenfalls in Bit, Byte oder Speicherworten gemessen), wobei der zweite Datenumfang pro Botschaft unterschiedlich sein kann. Die Aufteilung zwischen Kopfsegment HS und Datensegment DS ist nun im Botschaftsspeicher 300 variabel, d. h. es existiert keine vorgegebene Grenze zwischen den Bereichen. Die Aufteilung zwischen Kopfsegment HS und Datensegment DS ist abhängig von der Anzahl k der Botschaften sowie dem zweiten Datenumfang, also dem Umfang der eigentlichen Nutzdaten, einer Botschaft bzw. aller k Botschaften zusammen. Den Konfigurationsdaten KD0, KD1 bis KDk der jeweiligen Botschaft wird nun ein Zeigerelement oder Datapointer DP0, DPI bis DPk jeweils direkt zugeordnet. In der speziellen Ausgestaltung wird jedem Kopfbereich HB0, HB 1 bis HBk eine feste Anzahl von Speicherworten, hier zwei, zugeordnet, so dass immer ein Konfigurationsdatum KD (KD0, KD 1, ..., KDk) und ein Zeigerelement DP (DP0, DP1, ..., DPk) zusammen in einem Headerbereich HB abgelegt sind. An diesem Kopfsegment HS mit den Headerbereichen HB, dessen Größe bzw. erster Datenumfang abhängig von der Anzahl k der zu speichernden Botschaften ist, schließt das Datensegment DS zur Speicherung der eigentlichen Botschaftsdaten D0, D1 bis Dk an. Dieses Datensegment (oder Datensection) DS hängt in seinem Datenumfang vom jeweiligen Datenumfang der abgelegten Botschaftsdaten ab, hier z.B. in DB0 sechs Worte, DB1 ein Wort und DBk zwei Worte. Die jeweiligen Zeigerelemente DP0, DP1 bis DPk zeigen somit immer zum Beginn, also auf die Anfangsadresse des jeweiligen Datenbereichs DB0, DB1 bis DBk, in denen die Daten D0, D1 bis Dk der jeweiligen Botschaften 0, 1, bis k abgelegt sind. Damit ist die Aufteilung des Botschaftsspeichers 300 zwischen Kopfsegment HS und Datensegment DS variabel und hängt von der Anzahl k der Botschaften selbst sowie dem jeweiligen Datenumfang einer Botschaft und damit dem gesamten zweiten Datenumfang ab. Werden weniger Botschaften konfiguriert, wird das Kopfsegment HS kleiner und der frei werdende Bereich im Botschaftsspeicher 300 kann als Zusatz zum Datensegment DS für die Speicherung von Daten verwendet werden. Durch diese Variabilität kann eine optimale Speicherausnutzung gewährleistet werden, womit auch die Verwendung kleinerer Speicher möglich ist. Das freie Datensegment FDS, insbesondere dessen Größe, ebenfalls abhängig von der Kombination aus Anzahl k der gespeicherten Botschaften und dem jeweiligen zweiten Datenumfang der Botschaften ist somit minimal und kann sogar 0 werden.For implementation, a message memory with a fixed word length of n bits, for example 8, 16, 32, etc., as well as a predetermined memory depth of m words is given as an example (m, n as natural numbers). This is the message memory 300 divided into two segments, a header segment or header segment HS and a data segment DS (Payload Section, Payload Segment). Thus, a header area HB and a data area DB are created per message. For messages 0, 1 to k (k as natural number), header areas or header areas HB0, HB1 to HBk and data areas DB0, DB1 to DBk are thus created. In a message, therefore, a distinction is made between first and second data, the first data corresponding to configuration data and / or status data relating to the FlexRay message and stored in a header area HB (HB0, HB1, ..., HBk), respectively. The second data, which corresponds to the actual payload data to be transmitted, are correspondingly stored in data areas DB (DB0, DB1, ..., DBk). Thus, for the first data per message a first amount of data (measured in bits, bytes or memory words) and for the second data of a message a second amount of data (also measured in bits, bytes or memory words), the second data size per message may be different , The division between header segment HS and data segment DS is now in the message memory 300 variable, ie there is no given boundary between the areas. The division between the header segment HS and the data segment DS is dependent on the number k of the messages and the second data volume, ie the extent of the actual user data, a message or all k messages together. The configuration data KD0, KD1 to KDk of the respective message is now assigned directly to a pointer element or data pointer DP0, DPI to DPk. In the specific embodiment, each head area HB0, HB1 to HBk is assigned a fixed number of memory words, here two, so that always a configuration data KD (KD0, KD1, ..., KDk) and a pointer element DP (DP0, DP1 , ..., DPk) are stored together in a header area HB. At this head segment HS with the header areas HB whose size or first data size is dependent on the number k of messages to be stored, the data segment DS connects to store the actual message data D0, D1 to Dk. This data segment (or data section) DS depends in its scope of data on the respective data volume of the stored message data, here, for example, in DB0 six words, DB1 a word and DBk two words. The respective pointer elements DP0, DP1 to DPk thus always point to the beginning, ie to the start address of the respective data area DB0, DB1 to DBk, in which the data D0, D1 to Dk of the respective messages 0, 1, to k are stored. This is the division of the message memory 300 between head segment HS and data segment DS variable and depends on the number k of the messages themselves and the respective data volume of a message and thus the entire second data volume. If fewer messages are configured, the header segment HS becomes smaller and the released area in the message memory 300 can be used as an addition to the data segment DS for the storage of data. This variability ensures optimal memory utilization, which also allows the use of smaller memory. The free data segment FDS, in particular its size, also depends on The combination of the number k of messages stored and the respective second data size of the messages is thus minimal and can even be zero.

Neben der Verwendung von Zeigerelementen ist es auch möglich, die ersten und zweiten Daten, also die Konfigurationsdaten KD (KD0, KD1, ..., KDk) und die eigentlichen Daten D (D0, D1, ..., Dk) in einer vorgebbaren Reihenfolge abzulegen, so dass die Reihenfolge der Kopfbereiche HB0 bis HBk im Kopfsegment HS und die Reihenfolge der Datenbereiche DB0 bis DBk im Datensegment DS jeweils identisch ist. Dann könnte unter Umständen sogar auf ein Zeigerelement verzichtet werden.Next it is also possible to use the first and second pointer elements Data, ie the configuration data KD (KD0, KD1, ..., KDk) and the actual data D (D0, D1, ..., Dk) in a predefinable Sequence, so that the order of the head areas HB0 to HBk in the header segment HS and the order of the data areas DB0 to DBk in the data segment DS is identical in each case. Then could be under circumstances even waive a pointer element.

In einer besonderen Ausgestaltung ist dem Botschaftsspeicher ein Fehlerkennungserzeuger, insbesondere ein Parity-Bit-Generator-Element und ein Fehlerkennungsprüfer, insbesondere ein Parity-Bit-Prüf-Element zugeordnet, um die Korrektheit der gespeicherten Daten in HS und DS zu gewährleisten, indem pro Speicherwort oder pro Bereich (HB und/oder DB) eine Prüfsumme eben insbesondere als Parity-Bit mit abgelegt werden kann. Andere Kontrollkennungen, z.B. ein CRC (Cyclic Redundancy Check) oder auch Kennungen höherer Mächtigkeit wie ECC (Error Code Correction) sind denkbar. Damit sind gegenüber einer festgelegten Aufteilung des Botschaftsspeichers folgende Vorteile gegeben:
Der Anwender kann bei der Programmierung entscheiden, ob er eine größere Anzahl von Botschaften mit kleinem Datenfeld oder ob er eine kleinere Anzahl von Botschaften mit großem Datenfeld verwenden möchte. Bei der Konfiguration von Botschaften mit unterschiedlich großem Datenbereich DB wird der vorhandene Speicherplatz optimal ausgenutzt. Der Anwender hat die Möglichkeit einen Datenspeicherbereich gemeinsam für unterschiedliche Botschaften zu nutzen.
In a particular embodiment, the message memory is assigned a misrecognition generator, in particular a parity bit generator element and a misrecognition tester, in particular a parity bit test element in order to ensure the correctness of the stored data in HS and DS, by per memory word or per area (HB and / or DB) a checksum just in particular as a parity bit can be stored. Other control identifiers, eg a CRC (Cyclic Redundancy Check) or higher-value identifiers such as ECC (Error Code Correction) are conceivable. Thus, the following advantages are given compared to a defined division of the message memory:
The user can decide in programming whether to use a larger number of messages with a small data field or whether he wants to use a smaller number of messages with a large data field. When configuring messages with differently sized data areas DB, the available memory space is optimally utilized. The user has the option to share a data storage area for different messages.

Bei der Implementierung des Communication Controllers auf einer integrierten Schaltung kann die Größe des Botschaftsspeichers 300 durch Anpassung der Speichertiefe (Anzahl m der Worte) des verwendeten Speichers an die Bedürfnisse der Applikation angepasst werden, ohne die sonstigen Funktionen des Communication Controllers zu ändern.When implementing the communication controller on an integrated circuit, the size of the message memory 300 by adapting the memory depth (number m of words) of the memory used to the needs of the application, without changing the other functions of the Communication Controller.

Im Weiteren wird nun anhand der 4 bis 6 sowie 7 bis 9 der Host-CPU-Zugriff, also Schreiben und Lesen von Konfigurationsdaten bzw. Statusdaten und der eigentlichen Daten über die Pufferspeicheranordnung 201 und 202, näher beschrieben. Dabei ist es das Ziel, eine Entkopplung bezüglich der Datenübertragung derart herzustellen, dass die Datenintegrität sichergestellt werden kann und gleichzeitig eine hohe Übertragungsgeschwindigkeit gewährleistet ist. Die Steuerung dieser Vorgänge erfolgt über den Botschaftsverwalter 200, was später noch näher in den 10, 11 und 12 beschrieben wird.In the following, the basis of the 4 to 6 such as 7 to 9 the host CPU access, ie writing and reading configuration data or status data and the actual data on the buffer memory arrangement 201 and 202 , described in more detail. In this case, the aim is to produce a decoupling with regard to the data transmission in such a way that the data integrity can be ensured and at the same time a high transmission speed is ensured. These processes are controlled by the message administrator 200 , which later even closer in the 10 . 11 and 12 is described.

In den 4, 5 und 6 werden zunächst die Schreibzugriffe auf den Botschaftsspeicher 300 durch die Host-CPU der Teilnehmer-CPU 102 über den Eingangspufferspeicher 201 näher erläutert. Dazu zeigt 4 noch einmal den Kommunikationsbaustein 100, wobei aus Gründen der Übersichtlichkeit nur die hier relevanten Teile des Kommunikationsbausteins 100 gezeigt sind. Dies ist zum einen der für die Steuerung der Abläufe verantwortliche Botschaftsverwalter 200 sowie zwei Kontrollregister 403 und 404, die wie dargestellt außerhalb des Botschaftsverwalters 200 im Kommunikationsbaustein 100 untergebracht sein können, aber auch im Botschaftsverwalter 200 selbst enthalten sein können. 403 stellt dabei das Eingangs-Anforderungsregister (Input Buffer Command Request Register) dar und 404 das Eingangs-Maskierungsregister (Input Buffer Command Mask Register). Schreibzugriffe der Host-CPU 102 auf den Botschaftsspeicher 300 (Message RAM) erfolgen also über einen zwischengeschalteten Eingangspufferspeicher 201 (Input Buffer). Dieser Eingangspufferspeicher 201 ist nun geteilt bzw. gedoppelt ausgelegt, und zwar als Teilpufferspeicher 400 und einem zu dem Teilpufferspeicher zugehörigen Schattenspeicher 401. Damit kann wie nachfolgend beschrieben ein kontinuierlicher Zugriff der Host-CPU 102 auf die Botschaften bzw. Botschaftsobjekte respektive Daten des Botschaftsspeichers 300 erfolgen und damit Datenintegrität und beschleunigte Übertragung gewährleistet werden.In the 4 . 5 and 6 First, the write accesses to the message memory 300 through the host CPU of the subscriber CPU 102 over the input buffer 201 explained in more detail. In addition shows 4 once again the communication module 100 , for reasons of clarity, only the relevant parts of the communication module 100 are shown. On the one hand, this is the message manager responsible for controlling the processes 200 and two control registers 403 and 404 as shown outside the message administrator 200 in the communication block 100 can be accommodated, but also in the embassy administrator 200 themselves can be included. 403 represents the input request register (Input Buffer Command Request Register) and 404 the input mask register (Input Buffer Command Mask Register). Write accesses of the host CPU 102 on the message storage 300 (Message RAM) thus take place via an intermediate input buffer memory 201 (Input buffer). This input buffer 201 is now divided or doubled, as a partial buffer 400 and a shadow memory associated with the sub-buffer 401 , Thus, as described below, a continuous access of the host CPU 102 on the messages or message objects respectively data of the message memory 300 ensure data integrity and accelerated transmission.

Die Steuerung der Zugriffe erfolgt über das Eingangs-Anforderungsregister 403 und über das Eingangs-Maskierungsregister 404. Im Register 403 sind in 5 mit den Zahlen von 0 bis 31 die jeweiligen Bitstellen in 403 hier beispielhaft für eine Breite von 32 Bit dargestellt. Gleiches gilt für das Register 404 und die Bitstellen 0 bis 31 in dem Maskierungsregister 404 aus 6.The control of accesses via the input request register 403 and via the input mask register 404 , In the register 403 are in 5 with the numbers from 0 to 31, the respective bit locations in 403 are exemplified here for a width of 32 bits. The same applies to the register 404 and bits 0 to 31 in the mask register 404 out 6 ,

Es erhalten nun beispielhaft die Bitstellen 0 bis 5, 15, 16 bis 21 und 31 des Registers 403 bezüglich der Ablaufsteuerung eine besondere Funktion. So ist in die Bitstellen 0 bis 5 des Registers 403 eine Kennung IBRH (Input Buffer Request Host) als Botschaftskennung eintragbar. Ebenso ist in die Bitstellen 16 bis 21 des Registers 403 eine Kennung IBRS (Input Buffer Request Shadow) eintragbar. Ebenso sind in Registerstelle 15 von 403 IBSYH und in Registerstelle 31 von 403 IBSYS als Zugriffskennungen eingetragen. Ausgezeichnet sind auch die Stellen 0 bis 2 des Registers 404, wobei in 0 und 1 mit LHSH (Load Header Section Host) und LDSH (Load Data Section Host) weitere Kennungen als Datenkennungen eingetragen sind. Diese Datenkennungen sind hier in einfachster Form, nämlich jeweils als ein Bit ausgebildet. In Bitstelle 2 von Register 404 ist mit STXRH (Set Transmission X Request Host) eine Startkennung eingeschrieben. Im Weiteren wird nun der Ablauf des Schreibzugriffs auf den Botschaftsspeicher 300 über den Eingangspuffer 201 beschrieben.By way of example, the bit positions 0 to 5, 15, 16 to 21 and 31 of the register are obtained 403 with regard to the sequence control a special function. So is in the bit positions 0 to 5 of the register 403 an identifier IBRH (Input Buffer Request Host) can be entered as a message identifier. Likewise, in the bit positions 16 to 21 of the register 403 an identifier IBRS (Input Buffer Request Shadow) can be entered. Similarly, in register 15 of 403 IBSYH and in registry 31 of 403 IBSYS entered as access IDs. Also excellent are the positions 0 to 2 of the register 404 , where in 0 and 1 with LHSH (Load Header Section Host) and LDSH (Load Data Section Host) other identifiers are entered as data identifiers. These data identifiers are here in the simplest form, namely each formed as a bit. In bit 2 of register 404 is with STXRH (Set Transmission X Request Host) a start identifier inscribed. The sequence of write access to the message memory will now be described below 300 via the input buffer 201 described.

Die Host-CPU 102 schreibt die Daten der zu transferierenden Botschaft in den Eingangspufferspeicher 201. Dabei kann die Host-CPU 102 nur die Konfigurations- und Headerdaten KD einer Botschaft für das Headersegment HS des Botschaftsspeichers 300 oder nur die eigentlichen, zu übertragenden Daten D einer Botschaft für das Datensegment DS des Botschaftsspeichers 300 oder beide schreiben. Welcher Teil einer Botschaft, also Konfigurationsdaten und/oder die eigentlichen Daten, übertragen werden soll, wird durch die speziellen Datenkennungen LHSH und LDSH im Eingangs-Markierungsregister 404 festgelegt. Dabei wird durch LHSH (Load Header Section Host) festgelegt ob die Headerdaten, also die Konfigurationsdaten KD, übertragen werden und durch LDSH (Load Data Section Host) festgelegt, ob die Daten D übertragen werden sollen. Dadurch, dass der Eingangspufferspeicher 201 zweiteilig mit einem Teilpufferspeicher 400 und einem dazugehörigen Schattenspeicher 401 ausgebildet ist und ein wechselseitiger Zugriff erfolgen soll sind als Gegenstück zu LHSH und LDSH zwei weitere Datenkennungsbereiche vorgesehen, die nun auf den Schattenspeicher 401 bezogen sind. Diese Datenkennungen in den Bitstellen 16 und 17 des Registers 404 sind mit LHSS (Load Header Section Shadow) und LDSS (Load Data Section Shadow) bezeichnet. Durch diese wird somit der Übertragungsvorgang bezüglich des Schattenspeichers 401 gesteuert.The host CPU 102 writes the data of the message to be transferred into the input buffer 201 , The host CPU can do this 102 only the configuration and header data KD of a message for the header segment HS of the message memory 300 or only the actual data D to be transmitted of a message for the data segment DS of the message memory 300 or write both. Which part of a message, that is to say configuration data and / or the actual data, is to be transmitted, is identified by the special data identifiers LHSH and LDSH in the input tag register 404 established. In this case, LHSH (Load Header Section Host) determines whether the header data, ie the configuration data KD, are transmitted and LDSH (Load Data Section Host) determines whether the data D is to be transmitted. Because of the input buffer memory 201 two-part with a partial buffer memory 400 and an associated shadow store 401 is formed and a mutual access is to take place as a counterpart to LHSH and LDSH two more data detection areas are provided, which now on the shadow memory 401 are related. These data identifiers are in bit positions 16 and 17 of the register 404 are labeled with Load Header Section Shadow (LHSS) and Load Data Section Shadow (LDSS). Through this, thus, the transfer process with respect to the shadow memory 401 controlled.

Ist nun das Startbit bzw. die Startkennung STXRH (Set Transmission X Request Host) in Bitstelle 2 des Eingangs-Maskierungsregisters 404 gesetzt, so wird nach erfolgtem Transfer der jeweils zu übertragenden Konfigurationsdaten und/oder eigentlichen Daten in den Botschaftsspeicher 300 automatisch eine Sendeanforderung (Transmission Request) für das entsprechende Botschaftsobjekt gesetzt. D. h. durch diese Startkennung STXRH wird das automatische Senden eines übertragenden Botschaftsobjekts gesteuert, insbesondere gestartet.Is now the start bit or the start identifier STXRH (Set Transmission X Request Host) in bit position 2 of the input mask register 404 is set, so after successful transfer of each to be transmitted configuration data and / or actual data in the message memory 300 automatically set a transmission request for the corresponding message object. Ie. The automatic transmission of a transmitting message object is controlled, in particular started, by this start identifier STXRH.

Das Gegenstück hierzu entsprechend für den Schattenspeicher 401 ist die Startkennung STXRS (Set Transmission X Request Shadow) welches beispielhaft in Bitstelle 18 des Eingangs-Markierungsregisters 404 enthalten ist und auch hier im einfachsten Fall eben als ein Bit ausgebildet ist. Die Funktion von STXRS ist analog der Funktion von STXRH, lediglich bezogen auf den Schattenspeicher 401.The counterpart to this accordingly for the shadow memory 401 is the start identifier STXRS (Set Transmission X Request Shadow) which is exemplified in bit position 18 of the input tag register 404 is contained and also here in the simplest case just formed as a bit. The function of STXRS is analogous to the function of STXRH, only relative to the shadow memory 401 ,

Wenn die Host-CPU 102 die Botschaftskennung, insbesondere die Nummer des Botschaftsobjekts im Botschaftsspeicher 300, in welches die Daten des Eingangspufferspeichers 201 transferiert werden sollen, in die Bitstellen 0 bis 5 des Eingangsanforderungsregisters 403, also nach IBRH, schreibt, werden der Teilpufferspeicher 400 des Eingangspufferspeichers 201 und der zugehörige Schattenspeicher 401 vertauscht bzw. es wird der jeweilige Zugriff von Host-CPU 102 und Botschaftsspeicher 300 auf die beiden Teilspeicher 400 und 401 vertauscht, wie durch die halbkreisförmigen Pfeile angedeutet. Dabei wird z.B. auch der Datentransfer, also die Datenübertragung zum Botschaftsspeicher 300 gestartet. Die Datenübertragung zum Botschaftsspeicher 300 selbst erfolgt aus dem Schattenspeicher 401. Gleichzeitig werden die Registerbereiche IBRH und IBRS getauscht. Ebenso getauscht werden LHSH und LDSH gegen LHSS und LDSS. Gleichermaßen getauscht wird STXRH mit STXRS. IBRS zeigt somit die Kennung der Botschaft, also die Nummer des Botschaftsobjektes für das eine Übertragung, also ein Transfer aus dem Schattenspeicher 401 im Gange ist bzw. welches Botschaftsobjekt, also welcher Bereich im Botschaftsspeicher 300 als letztes Daten (KD und/oder D) aus dem Schattenspeicher 401 erhalten hat. Durch die Kennung (hier wieder beispielsweise 1 Bit) IBSYS (Input Buffer Busy Shadow) in Bitstelle 31 des Eingangs-Anforderungsregisters 403 wird angezeigt ob gerade eine Übertragung mit Beteiligung des Schattenspeichers 401 erfolgt. So wird beispielsweise bei IBSYS=1 gerade aus dem Schattenspeicher 401 übertragen und bei IBSYS=0 eben nicht. Dieses Bit IBSYS wird beispielsweise durch das Schreiben von IBRH, also Bitstellen 0 bis 5, in Register 403 gesetzt, um anzuzeigen, dass ein Transfer zwischen dem Schattenspeicher 401 und dem Botschaftsspeicher 300 im Gange ist. Nach Beendigung dieser Datenübertragung zum Botschaftsspeicher 300 wird IBSYS wieder zurückgesetzt.If the host CPU 102 the message identifier, in particular the number of the message object in the message memory 300 into which the data of the input buffer memory 201 to be transferred to the bit positions 0 to 5 of the input request register 403 So, after IBRH writes, the part cache will 400 of the input buffer 201 and the associated shadow memory 401 reversed or it is the respective access from the host CPU 102 and message storage 300 on the two partial storage 400 and 401 reversed, as indicated by the semicircular arrows. In this case, for example, the data transfer, so the data transfer to the message memory 300 started. The data transmission to the message memory 300 itself takes place from the shadow memory 401 , At the same time, the register areas IBRH and IBRS are exchanged. Likewise exchanged LHSH and LDSH against LHSS and LDSS. In the same way STXRH is exchanged with STXRS. IBRS thus shows the identifier of the message, that is the number of the message object for the one transmission, ie a transfer from the shadow memory 401 is in progress or which message object, so what area in the message memory 300 last data (KD and / or D) from the shadow memory 401 had received. By the identifier (again, for example, 1 bit) IBSYS (Input Buffer Busy Shadow) in bit position 31 of the input request register 403 is displayed whether just a transmission involving the shadow memory 401 he follows. For example, if IBSYS = 1, it will just be out of shadow memory 401 transferred and not at IBSYS = 0. This bit IBSYS, for example, by writing IBRH, so bit positions 0 to 5, in register 403 set to indicate that there is a transfer between the shadow memory 401 and the message storage 300 is in progress. After completion of this data transfer to the message memory 300 IBSYS is reset again.

Während der Datentransfer aus dem Schattenspeicher 401 gerade läuft kann die Host-CPU 102 die nächste zu transferierende Botschaft in den Eingangspufferspeicher 201 bzw. in den Teilpufferspeicher 400 schreiben. Mit Hilfe einer weiteren Zugriffskennung IBSYH (Input Buffer Busy Host) beispielsweise in Bitstelle 15 von Register 403 kann die Kennung noch weiter verfeinert werden. Schreibt die Host-CPU 102 gerade IBRH, also die Bitstellen 0 bis 5 von Register 403, während eine Übertragung zwischen dem Schattenspeicher 401 und dem Botschaftsspeicher 300 läuft, also IBSYS=1 ist, so wird IBSYH im Eingangsanforderungsregister 403 gesetzt. Sobald der laufende Transfer, also die laufende Übertragung, abgeschlossen ist, wird der angeforderte Transfer (Anforderung durch STXRH siehe oben) gestartet und das Bit IBSYH zurückgesetzt. Das Bit IBSYS bleibt während der ganzen Zeit gesetzt, um anzuzeigen, dass Daten zum Botschaftsspeicher 300 transferiert werden. Alle verwendeten Bits aller Ausführungsbeispiele können dabei auch als Kennungen mit mehr als einem Bit ausgebildet sein. Vorteilhaft ist die Ein-Bit Lösung aus speicher- und verarbeitungsökonomischen Gründen.While the data transfer from the shadow memory 401 the host CPU is currently running 102 the next message to be transferred into the input buffer 201 or in the partial buffer memory 400 write. With the help of another access identifier IBSYH (Input Buffer Busy Host), for example, in bit position 15 of Register 403 the identifier can be further refined. Writes the host CPU 102 just IBRH, so the bit positions 0 to 5 of Register 403 while transferring between the shadow store 401 and the message storage 300 If IBSYS = 1, then IBSYH will be in the input request register 403 set. As soon as the current transfer, ie the current transfer, is completed, the requested transfer (request by STXRH see above) is started and bit IBSYH is reset. The IBSYS bit remains set all the time to indicate that data is in message memory 300 be transferred. All used Bits of all embodiments can also be designed as identifiers with more than one bit. The one-bit solution is advantageous for reasons of memory and processing economy.

Der so beschriebene Mechanismus erlaubt es der Host-CPU 102 kontinuierlich Daten in die im Botschaftsspeicher 300 befindlichen Botschaftsobjekte bestehend aus Headerbereich HB und Datenbereich DB zu transferieren, vorrausgesetzt die Zugriffsgeschwindigkeit der Host-CPU 102 auf den Eingangspufferspeicher 201 ist kleiner oder gleich der internen Datentransferrate des FlexRay-IP-Moduls, also des Kommunikationsbausteins 100.The mechanism so described allows the host CPU 102 continuously data in the message memory 300 located message objects consisting of header area HB and data area DB to transfer, provided the access speed of the host CPU 102 on the input buffer 201 is less than or equal to the internal data transfer rate of the FlexRay IP module, ie the communication block 100 ,

In den 7, 8 und 9 werden nun die Lesezugriffe auf den Botschaftsspeicher 300 durch die Host-CPU oder Teilnehmer-CPU 102 über den Ausgangspufferspeicher oder Ausgabepufferspeicher 202 näher erläutert. Dazu zeigt 7 noch einmal den Kommunikationsbaustein 100, wobei aus Gründen der Übersichtlichkeit auch hier nur die relevanten Teile des Kommunikationsbausteins 100 gezeigt sind. Dies ist zum einen der für die Steuerung der Abläufe verantwortliche Botschaftsverwalter 200 sowie zwei Kontrollregister 703 und 704, die wie dargestellt außerhalb des Botschaftsverwalter 200 im Kommunikationsbaustein 100 untergebracht sein können, aber auch im Botschaftsverwalter 200 selbst enthalten sein können. 703 stellt dabei das Ausgangs-Anforderungsregister (Output Buffer Command Request Register) dar und 704 das Ausgangs-Maskierungsregister (Output Buffer Command Mask Register). Lesezugriffe der Host-CPU 102 auf den Botschaftsspeicher 300 erfolgen also über den zwischengeschalteten Ausgangspufferspeicher 202 (Output Buffer). Dieser Ausgangspufferspeicher 202 ist nun ebenfalls geteilt bzw. gedoppelt ausgelegt, und zwar als Teilpufferspeicher 701 und einem zu dem Teilpufferspeicher zugehörigen Schattenspeicher 700. Damit kann auch hier wie nachfolgend beschrieben ein kontinuierlicher Zugriff der Host-CPU 102 auf die Botschaften bzw. Botschaftsobjekte respektive Daten des Botschaftsspeichers 300 erfolgen und damit Datenintegrität und beschleunigte Übertragung nun in der Gegenrichtung vom Botschaftsspeicher 300 zum Host 102 gewährleistet werden. Die Steuerung der Zugriffe erfolgt über das Ausgangs-Anforderungsregister 703 und über das Ausgangs-Maskierungsregister 704. Auch im Register 703 sind mit den Zahlen von 0 bis 31 die jeweiligen Bitstellen in 703 hier beispielhaft für eine Breite von 32 Bit dargestellt (vgl. 8). Gleiches gilt für das Register 704 und die Bitstellen 0 bis 31 in 704 (vgl. 9).In the 7 . 8th and 9 Now the read accesses to the message memory 300 through the host CPU or user CPU 102 via the output buffer or output buffer 202 explained in more detail. In addition shows 7 once again the communication module 100 , for reasons of clarity, only the relevant parts of the communication module here 100 are shown. On the one hand, this is the message manager responsible for controlling the processes 200 and two control registers 703 and 704 who are outside of the embassy administrator as shown 200 in the communication block 100 can be accommodated, but also in the embassy administrator 200 themselves can be included. 703 represents the output request buffer (Output Buffer Command Request Register) and 704 the Output Masking Register (Output Buffer Command Mask Register). Read accesses of the host CPU 102 on the message storage 300 So done via the intermediate output buffer memory 202 (Output buffer). This output buffer 202 is now also divided or doubled designed, as a partial buffer memory 701 and a shadow memory associated with the sub-buffer 700 , Thus, here as described below, a continuous access of the host CPU 102 on the messages or message objects respectively data of the message memory 300 data integrity and accelerated transmission now in the opposite direction from the message memory 300 to the host 102 be guaranteed. The access is controlled via the output request register 703 and via the output mask register 704 , Also in the register 703 with the numbers from 0 to 31 are the respective bit positions in 703 illustrated here by way of example for a width of 32 bits (cf. 8th ). The same applies to the register 704 and the bit positions 0 to 31 in 704 (see. 9 ).

Es erhalten nun beispielhaft die Bitstellen 0 bis 5, 8 und 9, 15 und 16 bis 21 des Registers 703 bezüglich der Ablaufsteuerung des Lesezugriffs eine besondere Funktion. So ist in die Bitstellen 0 bis 5 des Registers 703 eine Kennung OBRS (Output Buffer Request Shadow) als Botschaftskennung eintragbar. Ebenso ist in die Bitstellen 16 bis 21 des Registers 703 eine Kennung OBRH (Output Buffer Request Host) eintragbar. Als Zugriffskennung ist in Bitstelle 15 von Register 703 eine Kennung OBSYS (Output Buffer Busy Shadow) eintragbar. Ausgezeichnet sind auch die Stellen 0 und 1 des Ausgabe-Maskierungsregisters 704, wobei in den Bitstellen 0 und 1 mit RDSS (Read Data Section Shadow) und RHSS (Read Header Section Shadow) weitere Kennungen als Datenkennungen eingetragen sind. Weitere Datenkennungen sind beispielsweise in den Bitstellen 16 und 17 mit RDSH (Read Data Section Host) und RHSH (Read Header Section Host) vorgesehen. Diese Datenkennungen sind auch hier beispielhaft in einfachster Form, nämlich jeweils als ein Bit ausgebildet. In Bitstelle 9 des Registers 703 ist eine Startkennung REQ eingetragen. Weiterhin ist eine Umschaltkennung VIEW vorgesehen die beispielhaft in Bitstelle 8 von Register 703 eingetragen ist.By way of example, bit positions 0 to 5, 8 and 9, 15 and 16 to 21 of the register are obtained 703 with respect to the flow control of the read access a special function. So is in the bit positions 0 to 5 of the register 703 An identifier OBRS (Output Buffer Request Shadow) can be entered as the message identifier. Likewise, in the bit positions 16 to 21 of the register 703 an identifier OBRH (Output Buffer Request Host) can be entered. The access identifier is in bit position 15 of register 703 an identifier OBSYS (Output Buffer Busy Shadow) can be entered. Also excellent are the digits 0 and 1 of the output mask register 704 , where further identifiers are entered as data identifiers in the bit positions 0 and 1 with RDSS (Read Data Section Shadow) and RHSS (Read Header Section Shadow). Further data identifiers are provided, for example, in bit positions 16 and 17 with RDSH (Read Data Section Host) and RHSH (Read Header Section Host). These data identifications are here also exemplary in the simplest form, namely each formed as a bit. In bit position 9 of the register 703 is a start identifier REQ registered. Furthermore, a switchover identifier VIEW is provided, which is exemplified in bit position 8 of register 703 is registered.

Die Host-CPU 102 fordert die Daten eines Botschaftsobjekts aus dem Botschaftsspeicher 300 an, indem sie die Kennung der gewünschten Botschaft, also insbesondere die Nummer des gewünschten Botschaftsobjektes, nach OBRS also in die Bitstellen 0 bis 5 des Registers 703 schreibt. Auch hierbei kann die Host-CPU 102 wie in der Gegenrichtung entweder nur die Status- bzw. Konfigurations- und Headerdaten KD einer Botschaft also aus einem Headerbereich oder nur die eigentlich zu übertragenden Daten D einer Botschaft also aus dem Datenbereich oder auch beide lesen. Welcher Teil der Daten also aus Headerbereich und/oder Datenbereich übertragen werden soll wird hierbei vergleichbar mit der Gegenrichtung durch RHSS und RDSS festgelegt. Das heißt RHSS gibt an, ob die Headerdaten gelesen werden sollen und RDSS gibt an, ob die eigentlichen Daten gelesen werden sollen.The host CPU 102 requests the data of a message object from the message memory 300 by entering the identifier of the desired message, that is to say, in particular, the number of the desired message object, according to OBRS, into bit positions 0 to 5 of the register 703 writes. Again, the host CPU can 102 as in the opposite direction either only the status or configuration and header data KD a message so read from a header area or only the actual data to be transmitted D a message from the data area or both. Which part of the data is to be transferred from the header area and / or data area is thus set comparable to the opposite direction by RHSS and RDSS. That is, RHSS indicates whether the header data should be read, and RDSS indicates whether the actual data should be read.

Eine Startkennung dient dazu die Übertragung vom Botschaftsspeicher 300 zum Schattenspeicher 700 zu starten. D.h. wird als Kennung wie im einfachsten Fall ein Bit verwendet, wird durch Setzen von Bit REQ in Bitstelle 9 im Ausgabe-Anforderungsregister 703 die Übertragung vom Botschaftsspeicher 300 zum Schattenspeicher 700 gestartet. Die laufende Übertragung wird wieder durch eine Zugriffskennung, hier wieder im einfachsten Fall durch ein Bit OBSYS im Register 703, angezeigt. Um Kollisionen zu vermeiden ist es vorteilhaft, wenn das Bit REQ nur dann gesetzt werden kann, wenn OBSYS nicht gesetzt ist, also gerade keine laufende Übertragung erfolgt. Hier erfolgt dann auch der Botschaftstransfer zwischen dem Botschaftsspeicher 300 und dem Schattenspeicher 700. Der eigentliche Ablauf könnte nun einerseits vergleichbar zur Gegenrichtung wie unter den 4, 5 und 6 beschrieben gesteuert werden (komplementäre Registerbelegung) und erfolgen oder aber in einer Variation durch eine zusätzliche Kennung, nämlich eine Umschaltkennung VIEW in Bitstelle 8 des Registers 703. D.h. nach Abschluss der Übertragung wird das Bit OBSYS zurückgesetzt und durch Setzen des Bits VIEW im Ausgabe-Anforderungsregister 703 werden der Teilpufferspeicher 701 und der zugehörige Schattenspeicher 700 getauscht bzw. es werden die Zugriffe darauf getauscht und die Host-CPU 102 kann nun das vom Botschaftsspeicher 300 angeforderte Botschaftsobjekt, also die entsprechende Botschaft, aus dem Teilpufferspeicher 701 auslesen. Dabei werden auch hier vergleichbar mit der Gegenübertragungsrichtung in den 4 bist 6 die Registerzellen OBRS und OBRH getauscht. Gleichermaßen werden RHSS und RDSS gegen RHSH und RDSH getauscht. Als Schutzmechanismus kann auch hier vorgesehen werden, dass das Bit VIEW nur dann gesetzt werden kann, wenn OBSYS nicht gesetzt ist, also keine laufende Übertragung stattfindet.A start identifier serves for the transmission from the message memory 300 to the shadow memory 700 to start. That is, as an identifier, as in the simplest case, a bit is used, by setting bit REQ in bit position 9 in the output request register 703 the transmission from the message memory 300 to the shadow memory 700 started. The current transmission is again by an access identifier, here again in the simplest case by a bit OBSYS in the register 703 , displayed. In order to avoid collisions, it is advantageous if the REQ bit can only be set if OBSYS is not set, ie no ongoing transmission is currently taking place. This is where the message transfer between the message memory takes place 300 and the shadow store 700 , The actual procedure could be comparable to the opposite direction on the one hand 4 . 5 and 6 beschrie ben are controlled (complementary register occupancy) and done or in a variation by an additional identifier, namely a switchover VIEW in bit 8 of the register 703 , That is, after completion of the transfer, the OBSYS bit is reset and by setting the VIEW bit in the output request register 703 become the partial cache 701 and the associated shadow memory 700 exchanged or the accesses are exchanged and the host CPU 102 can now do that from the message memory 300 requested message object, ie the corresponding message, from the partial buffer memory 701 read. Here, too, are comparable to the Gegenübertragungsrichtung in the 4 are 6 the register cells OBRS and OBRH exchanged. Likewise, RHSS and RDSS are exchanged for RHSH and RDSH. As a protection mechanism, it can also be provided here that the bit VIEW can only be set if OBSYS is not set, ie no ongoing transmission takes place.

Somit erfolgen Lesezugriffe der Host-CPU 102 auf den Botschaftsspeicher 300 über den zwischengeschalteten Ausgangspufferspeicher 202. Dieser Ausgangspufferspeicher 202 ist ebenso wie der Eingangspufferspeicher 201 doppelt bzw. zweiteilig ausgelegt, um einen kontinuierlichen Zugriff der Host-CPU 102 auf die Botschaftsobjekte, die im Botschaftsspeicher 300 abgelegt sind, zu gewährleisten. Auch hier werden die Vorteile der hohen Datenintegrität und der beschleunigten Übertragung erzielt.Thus read accesses of the host CPU 102 on the message storage 300 via the intermediate output buffer 202 , This output buffer 202 is the same as the input buffer 201 double or two-part design, for continuous access of the host CPU 102 on the message objects in the message memory 300 are guaranteed. Again, the benefits of high data integrity and accelerated transmission are achieved.

Durch die Verwendung der beschriebenen Eingangs- und Ausgangspuffer 201, 202 wird sichergestellt, dass eine Host-CPU 102 trotz der modulinternen Latenzzeiten unterbrechungsfrei auf den Botschaftsspeicher 300 zugreifen kann.By using the described input and output buffers 201 . 202 will ensure that a host CPU 102 despite the module-internal latencies interruption-free on the embassy memory 300 can access.

Zur Sicherstellung dieser Datenintegrität wird die Datenübertragung, insbesondere die Weiterleitung im Kommunikationsbaustein 100, durch den Botschaftsverwalter 200 (Message Handler MHD) vorgenommen. Dazu ist in 10 der Botschaftsverwalter 200 dargestellt. Der Botschaftsverwalter 200 ist in seiner Funktionalität durch mehrere Zustandsmaschinen oder Zustandsautomaten, also endliche Automaten, sogenannte Finite-State-Machinen (FSM) darstellbar. Dabei sind wenigstens drei Zustandsmaschinen und in einer besonderen Ausführungsform vier Finite-State-Machinen vorgesehen. Eine erste Finite-State-Machine ist die IOBF-FSM und mit 501 bezeichnet (Input/Output Buffer State Machine). Diese IOBF-FSM könnte auch je Übertragungsrichtung bezüglich des Eingangspufferspeichers 201 oder des Ausgangspufferspeichers 202 in zwei Finite-State-Machinen aufgeteilt sein IBF-FSM (Input Buffer FSM) und OBF-FSM (Output Buffer FSM), womit maximal fünf Zustandsautomaten (IBF-FSM, OBF-FSM, TBF1-FSM, TBF2-FSM, AFSM) denkbar wären. Bevorzugt ist aber eine gemeinsame IOBF-FSM vorzusehen. Eine zweite Finite-State-Machine ist hier im Zuge des bevorzugten Ausführungsbeispiels in zwei Blöcke 502 und 503 aufgeteilt und bedient die beiden Kanäle A und B bezüglich der Speicher 205 und 206, wie zu 2 beschrieben. Dabei kann eine Finite-State-Machine vorgesehen sein, um beide Kanäle A und B zu bedienen, oder aber wie in der bevorzugten Form eine Finite-State-Machine TBF1-FSM mit 502 bezeichnet (Transient Buffer 1 (206, RAM A) State Machine) für Kanal A und für Kanal B eine TBF2-FSM mit 503 bezeichnet (Transient Buffer 2 (205, RAM B) State Machine).To ensure this data integrity is the data transfer, especially the forwarding in the communication block 100 , by the embassy administrator 200 (Message handler MHD) made. This is in 10 the embassy administrator 200 shown. The embassy administrator 200 is in its functionality by several state machines or state machines, so finite state machines, so-called finite state machines (FSM) representable. In this case, at least three state machines and in a particular embodiment four finite state machines are provided. A first finite state machine is the IOBF FSM and with 501 referred to (input / output buffer state machine). This IOBF FSM could also be per transmission direction with respect to the input buffer memory 201 or the output buffer 202 split into two finite-state machines: IBF-FSM (Input Buffer FSM) and OBF-FSM (Output Buffer FSM), with which a maximum of five state machines (IBF-FSM, OBF-FSM, TBF1-FSM, TBF2-FSM, AFSM) would be conceivable. However, it is preferable to provide a common IOBF FSM. A second finite-state machine is here in the course of the preferred embodiment in two blocks 502 and 503 split and operate the two channels A and B with respect to the memory 205 and 206 , how to 2 described. In this case, a finite state machine can be provided to serve both channels A and B, or, as in the preferred form, a finite state machine TBF1-FSM with 502 (Transient buffer 1 ( 206 , RAM A) State Machine) for channel A and for channel B a TBF2-FSM with 503 (Transient Buffer 2 ( 205 , RAM B) State Machine).

Zur Steuerung des Zugriffs der drei Finite-State-Machinen 501-503 im bevorzugten Ausführungsbeispiel dient eine Arbiter-Finite-State-Machine, die sogenannte AFSM, die mit 500 bezeichnet ist. Die Daten (KD und/oder D) werden in einem durch ein Taktmittel, wie z.B. ein VCO (Voltage Controlled Oszillator), einen Schwingquarz usw., generierten oder aus diesem angepassten Takt im Kommunikationsbaustein 100 übertragen. Der Takt T kann dabei im Baustein generiert werden oder von außen, z.B. als Bustakt, vorgegeben sein. Diese Arbiter-Finite-State-Machine AFSM 500 gibt abwechselnd einer der drei Finite-State-Machinen 501-503, insbesondere jeweils für eine Taktperiode T Zugriff auf den Botschaftsspeicher 300. D.h. die zur Verfügung stehende Zeit wird entsprechend den Zugriffsanforderungen der einzelnen Zustandsautomaten 501, 502, 503 auf diese anfordernden Zustandsautomaten aufgeteilt. Erfolgt eine Zugriffsanforderung von nur einer Finite-State-Machine, so erhält diese 100 der Zugriffszeit, also alle Takte T. Erfolgt eine Zugriffsanforderung von zwei Zustandsautomaten, erhält jede Finite-State-Machine 50% der Zugriffszeit. Erfolgt schließlich eine Zugriffsanforderung von drei Zustandsautomaten so erhält jede der Finite-State-Machinen 1/3 der Zugriffszeit. Dadurch wird die jeweils zur Verfügung stehende Bandbreite optimal genutzt.To control the access of the three finite state machines 501 - 503 in the preferred embodiment, an arbiter finite state machine, the so-called AFSM, with the 500 is designated. The data (KD and / or D) are in a clock generated by a clock means such as a VCO (Voltage Controlled Oscillator), a crystal oscillator, etc., or adapted from this clock in the communication module 100 transfer. The clock T can be generated in the block or be specified from the outside, eg as a bus clock. This arbiter finite state machine AFSM 500 alternately gives one of the three finite state machines 501 - 503 , in particular for one clock period T access to the message memory 300 , That is, the time available will be according to the access requirements of each state machine 501 . 502 . 503 divided into these requesting state machines. If an access request is made by only one finite-state machine, then it receives 100 of the access time, ie all the clocks T. If an access request is made by two state machines, each finite-state machine receives 50% of the access time. Finally, if an access request from three state machines occurs, each of the finite state machines will receive 1/3 of the access time. This optimally utilizes the available bandwidth.

Die erste Finite-State-Machine 501, also IOBF-FSM, führt bei Bedarf folgende Aktionen aus:

  • – Datentransfer vom Eingangspufferspeicher 201 zum ausgewählten Botschaftsobjekt im Botschaftsspeicher 300.
  • – Datentransfer vom ausgewählten Botschaftsobjekt im Botschaftsspeicher 300 zum Ausgangspufferspeicher 202.
The first finite-state machine 501 , ie IOBF-FSM, performs the following actions as required:
  • - Data transfer from the input buffer memory 201 to the selected message object in the message memory 300 ,
  • - Data transfer from the selected message object in the message memory 300 to the output buffer 202 ,

Die Zustandsmaschine 502 für Kanal A, also TBF1-FSM, führt folgende Aktionen aus:

  • – Datentransfer vom ausgewählten Botschaftsobjekt im Botschaftsspeicher 300 zum Pufferspeicher 206 von Kanal A.
  • – Datentransfer vom Pufferspeicher 206 zum ausgewählten Botschaftsobjekt im Botschaftsspeicher 300.
  • – Suche nach dem passenden Botschaftsobjekt im Botschaftsspeicher 300, wobei bei Empfang das Botschaftsobjekt (Receive Buffer) zum Abspeichern einer auf Kanal A empfangenen Botschaft im Rahmen einer Akzeptanzfilterung gesucht wird und beim Senden das nächste auf Kanal A zu sendende Botschaftsobjekt (Transmit Buffer).
The state machine 502 for channel A, TBF1-FSM, performs the following actions:
  • - Data transfer from the selected message object in the message memory 300 to the cache 206 from channel A.
  • - Data transfer from the buffer memory 206 to the selected message object in the message memory 300 ,
  • - Search for the appropriate message object in the message memory 300 in which, on receipt, the message object (receive buffer) for storing a message received on channel A is searched within the framework of acceptance filtering and, when transmitting, the next message object to be sent on channel A (transmit buffer).

Analog dazu ist die Aktion von TBF2-FSM, also der Finite-State-Machine für Kanal B in Block 503. Diese führt den Datentransfer vom ausgewählten Botschaftsobjekt im Botschaftsspeicher 300 zum Pufferspeicher 205 von Kanal B aus und den Datentransfer vom Pufferspeicher 205 zum ausgewählten Botschaftsobjekt im Botschaftsspeicher 300. Auch die Suchfunktion ist analog zu TBF1-FSM nach einem passenden Botschaftsobjekt im Botschaftsspeicher 300, wobei bei Empfang das Botschaftsobjekt (Receive Buffer) zum Abspeichern einer auf Kanal B empfangenen Botschaft im Rahmen einer Akzeptanzfilterung gesucht wird und beim Senden die nächste auf Kanal B zu sendende Botschaft oder Botschaftsobjekt (Transmit Buffer).Similarly, the action of TBF2-FSM, so the finite state machine for channel B in block 503 , This performs the data transfer from the selected message object in the message memory 300 to the cache 205 from channel B and the data transfer from the buffer memory 205 to the selected message object in the message memory 300 , The search function is analogous to TBF1-FSM for a suitable message object in the message memory 300 in which, on receipt, the message object (receive buffer) for storing a message received on channel B is searched within the framework of acceptance filtering, and the next message or message object (transmit buffer) to be transmitted on channel B is sent during transmission.

In 11 sind nun noch einmal die Abläufe und die Übertragungswege dargestellt. Die drei Zustandsmaschinen 501-503 steuern die jeweiligen Datenübertragungen zwischen den einzelnen Teilen. Dabei ist mit 102 wieder die Host-CPU dargestellt, mit 201 der Eingangspufferspeicher und mit 202 der Ausgangspufferspeicher. Mit 300 ist der Botschaftsspeicher dargestellt und die beiden Pufferspeicher für Kanal A und Kanal B mit 206 und 205. Die Schnittstellenelemente 207 und 208 sind ebenfalls dargestellt. Der erste Zustandsautomat IOBF-FSM, mit 501 bezeichnet steuert den Datentransfer Z1A und Z1B, also vom Eingangspufferspeicher 201 zum Botschaftsspeicher 300 und vom Botschaftsspeicher 300 zum Ausgangspufferspeicher 202. Die Datenübertragung erfolgt dabei über Datenbusse mit einer Wortbreite von beispielsweise 32 Bit wobei auch jede andere Bitzahl möglich ist. Gleiches gilt für die Übertragung Z2 zwischen dem Botschaftsspeicher und dem Pufferspeicher 206. Diese Datenübertragung wird durch TBFI-FSM, also die Zustandsmaschine 502 für Kanal A, gesteuert. Die Übertragung Z3 zwischen Botschaftsspeicher 300 und Pufferspeicher 205 wird durch den Zustandsautomaten TBF2-FSM, also 503 gesteuert. Auch hier erfolgt der Datentransfer Ober Datenbusse mit einer beispielhaften Wordbreite von 32 Bit, wobei auch hier jede andere Bitzahl möglich ist. Normalerweise benötigt der Transfer eines kompletten Botschaftsobjektes über die genannten Übertragungswege mehrere Taktperioden T. Daher erfolgt eine Aufteilung der Übertragungszeit bezogen auf die Taktperioden T durch den Arbiter, also die AFSM 500. In 11 sind also die Datenpfade zwischen denen vom Message Handler 200 kontrollierten Speicherkomponenten dargestellt. Um die Datenintegrität der im Botschaftsspeicher 300 gespeicherten Botschaftsobjekte sicherzustellen, sollten vorteilhafterweise zur gleichen Zeit nur auf einem der dargestellten Pfade also Z1A und Z1B sowie Z2 und Z3 gleichzeitig Daten ausgetauscht werden.In 11 Now again the processes and the transmission paths are shown. The three state machines 501 - 503 control the respective data transfers between the individual parts. It is with 102 again the host CPU is shown using 201 the input buffer and with 202 the output buffer. With 300 the message memory is shown and the two buffers for channel A and channel B with 206 and 205 , The interface elements 207 and 208 are also shown. The first state machine IOBF-FSM, with 501 denotes the data transfer Z1A and Z1B, ie from the input buffer memory 201 to the embassy memory 300 and from the message store 300 to the output buffer 202 , The data transmission takes place via data buses with a word width of 32 bits, for example, although any other bit number is possible. The same applies to the transmission Z2 between the message memory and the buffer memory 206 , This data transfer is performed by TBFI-FSM, ie the state machine 502 for channel A, controlled. The transmission Z3 between message memory 300 and cache 205 is through the state machine TBF2-FSM, ie 503 controlled. Here, too, the data transfer takes place over the upper data buses with an exemplary word width of 32 bits, whereby here too every other bit number is possible. Normally, the transfer of a complete message object via the aforementioned transmission paths requires several clock periods T. Therefore, a distribution of the transmission time based on the clock periods T by the arbiter, so the AFSM 500 , In 11 So the data paths are between those of the message handler 200 controlled memory components shown. To the data integrity of the message memory 300 To ensure stored messages objects should advantageously be exchanged at the same time only on one of the paths shown so Z1A and Z1B and Z2 and Z3 data simultaneously.

In 12 ist an einem Beispiel gezeigt, wie die zur Verfügung stehenden Systemtakte T vom Arbiter, also der AFSM 500, auf die drei anfordernden Zustandsautomaten aufgeteilt werden. In Phase 1 (I) erfolgen Zugriffsanforderungen von Zustandsautomat 501 und Zustandsautomat 502, d.h., dass die gesamte Zeit jeweils zur Hälfte auf die beiden anfordernden Zustandautomaten aufgeteilt wird. Bezogen auf die Taktperioden in Phase 1 (I) bedeutet dies, dass Zustandsautomat 501 in den Taktperioden T1 und T3 Zugriff erhält und Zustandsautomat 502 in den Taktperioden T2 und T4. In Phase 2 (II) erfolgt der Zugriff nur durch die Zustandsmaschine 501, sodass alle drei Taktperioden, also 100% der Zugriffszeit von T5 bis T7 auf IOBF-FSM entfällt. In Phase 3 (III) erfolgen Zugriffsanforderungen aller drei Zustandsautomaten 501 bis 503, sodass eine Drittelung der Gesamtzugriffszeit erfolgt. Der Arbiter AFSM 500 verteilt dann die Zugriffszeit beispielsweise so, dass in den Taktperioden T8 und T11 die Finit-State-Machine 501, in den Taktperioden T9 und T12 die Finite-State-Machine 502 und in den Taktperioden T10 und T13 die Finite-State-Machine 503 Zugriff erhält. In Phase 4 (IV) schließlich erfolgt der Zugriff durch zwei Zustandsautomaten, 502 und 503 auf den beiden Kanälen A und B des Kommunikationsbausteins 100, sodass eine Zugriffsverteilung der Taktperioden T14 und T16 an Finite-State-Machine 502 und in T15 und T17 an Finite-State-Machine 503 erfolgt.In 12 is shown by an example, as the available system clocks T from Arbiter, so the AFSM 500 to which three requesting state machines are split. In Phase 1 (I) access requests are made by state machine 501 and state machine 502 that is, that the entire time is split in half on the two requesting state machines. Relative to the clock periods in phase 1 (I), this means that state machine 501 in the clock periods T1 and T3 receives access and state machine 502 in the clock periods T2 and T4. In Phase 2 (II) access is only through the state machine 501 so that every three clock periods, ie 100% of the access time from T5 to T7, are allocated to IOBF-FSM. In phase 3 (III), access requests are made to all three state machines 501 to 503 , so that a third of the total access time takes place. The arbiter AFSM 500 then distributes the access time, for example, so that in the clock periods T8 and T11, the finite state machine 501 , in the clock periods T9 and T12, the finite-state machine 502 and in the clock periods T10 and T13, the finite state machine 503 Access receives. Finally, in phase 4 (IV), access is through two state machines, 502 and 503 on the two channels A and B of the communication block 100 such that an access distribution of the clock periods T14 and T16 to finite-state machine 502 and in T15 and T17 on finite-state machine 503 he follows.

Der Arbiterzustandsautomat AFSM 500 sorgt also dafür, dass falls mehr als eine der drei Zustandsmaschinen 501-503 eine Anforderung für einen Zugriff auf den Botschaftsspeicher 300 stellt, der Zugriff taktweise und abwechselnd auf die anfordernden Zustandsmaschinen 501-503 aufgeteilt wird. Diese Vorgehensweise stellt die Integrität der im Botschaftsspeicher 300 abgelegten Botschaftsobjekte, also die Datenintegrität, sicher. Will zum Beispiel die Host-CPU 102 über den Ausgangspufferspeicher 202 ein Botschaftsobjekt auslesen während gerade eine empfangene Botschaft in dieses Botschaftsobjekt geschrieben wird, so wird abhängig davon welche Anforderung zuerst gestartet wurde entweder der alte Stand oder der neue Stand ausgelesen, ohne dass die Zugriffe im Botschaftsobjekt im Botschaftsspeicher 300 selbst kollidieren.The arbiter state machine AFSM 500 thus ensures that if more than one of the three state machines 501 - 503 a request for access to the message memory 300 provides access in a clocked and alternating manner to the requesting state machines 501 - 503 is split. This approach represents the integrity of message memory 300 stored message objects, ie data integrity. For example, wants the host CPU 102 over the output buffer 202 read out a message object while a received message is being written in this message object, either the old state or the new state is read out, depending on which request was started first, without the accesses in the message object in the message memory 300 itself collide.

Das beschriebene Verfahren ermöglicht der Host-CPU 102 im laufenden Betrieb jedes beliebige Botschaftsobjekt im Botschaftsspeicher 300 zu lesen oder zu schreiben, ohne dass das ausgewählte Botschaftsobjekt für die Dauer des Zugriffs der Host-CPU 102 von der Teilnahme am Datenaustausch auf beiden Kanälen des FlexRay Busses 101 gesperrt wäre (Buffer Locking). Gleichzeitig wird durch die taktweise Verschachtelung der Zugriffe die Integrität der im Botschaftsspeicher 300 abgelegten Daten sichergestellt und die Übertragungsgeschwindigkeit, auch durch Ausnutzung der vollen Bandbreite erhöht.The method described enables the host CPU 102 Any message object in the message memory during operation 300 to read or write without leaving the selected message object for the duration of the host CPU's access 102 from participation in the data log Exchange on both channels of the FlexRay bus 101 locked (Buffer Locking). At the same time, the integrity of the messages in the message memory is buffered by interleaving the accesses 300 stored data and increases the transmission speed, even by exploiting the full bandwidth.

Bisher wurde sowohl der Teilnehmer als auch der Mikroprozessor (die Host-CPU) des Teilnehmers mit dem Bezugszeichen 102 bezeichnet und in der Beschreibung als Äquivalente dargestellt. Für die nachfolgende Beschreibung der Erfindung ist jedoch eine Differenzierung erforderlich. Im weiteren wird deshalb für den gesamten FlexRay-Teilnehmer das Bezugszeichen 900 eingeführt, während mit dem Bezugszeichen 102 lediglich der Mikroprozessor (die Host-CPU) des Teilnehmers 900 bezeichnet wird. Zur näheren Erläuterung wird auf 15 verwiesen, wo ein aus dem Stand der Technik bekannter Teilnehmer 900 dargestellt ist.So far, both the subscriber and the microprocessor (the host CPU) of the subscriber with the reference number 102 and represented in the description as equivalents. For the following description of the invention, however, a differentiation is required. In the following, the reference number will therefore be used for the entire FlexRay subscriber 900 introduced while with the reference numeral 102 only the microprocessor (the host CPU) of the subscriber 900 referred to as. For a more detailed explanation, see 15 referred where a known from the prior art participants 900 is shown.

Der bekannte Teilnehmer 900 umfasst einen Mikrocontroller 800, einen DMA (Direct Memory Access)-Controller 810, einen Peripherie-Bus 820 und den FlexRay-Kommunikationscontroller 750. Der Peripherie-Bus kann als ein beliebiger interner Datenbus ausgebildet sein. Als Peripherie-Busse werden häufig proprietäre Datenbusse eingesetzt, da das gesamte mit 900 bezeichnete Bauteil in der Regel von ein und demselben Halbleiterhersteller gefertigt wird. Es müssen also lediglich die internen Bauelemente 800, 810 und 750 in dem Bauteil 900 über den Peripherie-Bus kommunizieren.The well-known participant 900 includes a microcontroller 800 , a DMA (Direct Memory Access) controller 810 , a peripheral bus 820 and the FlexRay communication controller 750 , The peripheral bus may be configured as any internal data bus. As peripheral buses often proprietary data buses are used, since the entire with 900 designated component is usually manufactured by one and the same semiconductor manufacturer. So it's just the internal components 800 . 810 and 750 in the component 900 communicate via the peripheral bus.

Der Einsatz eines DMA-Controllers 810 ist fakultativ. Es sind auch Teilnehmer 900 bekannt, bei denen die Datenübertragung zwischen dem Mikrocontroller 800 und dem Kommunikationscontroller ohne einen DMA-Controller 810 funktioniert.The use of a DMA controller 810 is optional. There are also participants 900 known in which the data transfer between the microcontroller 800 and the communication controller without a DMA controller 810 works.

Der Mikrocontroller 800 umfasst den Mikroprozessor 102 (Host-CPU), ein Speicherelement 802 sowie einen Core-Bus 804. Diese Konfiguration wird auch als Prozessor Core mit "tightly coupled memory" (TCM) bezeichnet. Selbstverständlich kann das Speicherelement des Mikroprozessors 102 auch um einen extern angebrachten Speicher handeln. Der Mikrocontroller 800 ist über eine aktive Schnittstelle "a" des Mikroprozessors 102 und eine passive Schnittstelle "p" des Speicherelements 802 an den Peripherie-Bus 820 angeschlossen. Auch der DMA-Controller 810 ist – sofern vorhanden – über eine aktive Schnittstelle "a" und eine passive Schnittstelle "p" an den Peripherie-Bus 820 angeschlossen. Der Kommunikationscontroller 750 ist bei dem bekannten Teilnehmer 900 jedoch lediglich über eine passive Schnittstelle "p" an den Peripherie-Bus 820 angeschlossen. Mit anderen Worten sind also der Mikrocontroller 800 und der DMA-Controller 810 als Master an den Peripherie-Bus 820 angeschlossen, wohingegen der Kommunikationscontroller 750 lediglich als Slave an den Bus 820 angeschlossen ist.The microcontroller 800 includes the microprocessor 102 (Host CPU), a storage element 802 as well as a core bus 804 , This configuration is also referred to as the processor core with "tightly coupled memory" (TCM). Of course, the memory element of the microprocessor 102 also act around an externally attached memory. The microcontroller 800 is over an active interface "a" of the microprocessor 102 and a passive interface "p" of the memory element 802 to the peripheral bus 820 connected. Also the DMA controller 810 is - if available - via an active interface "a" and a passive interface "p" to the peripheral bus 820 connected. The communication controller 750 is in the known participant 900 but only via a passive interface "p" to the peripheral bus 820 connected. In other words, so are the microcontroller 800 and the DMA controller 810 as a master to the periphery bus 820 connected, whereas the communication controller 750 only as a slave to the bus 820 connected.

Der Mikroprozessor 102 konfiguriert, kontrolliert und steuert den Kommunikationscontroller 750. Der Mikroprozessor 102 liest empfange Botschaften aus, bewertet sie, berechnet neue Botschaften und sorgt für das Schreiben der Botschaften zum Versand über die Kommunikationsverbindung 101. Zur Datenübertragung innerhalb des Teilnehmers 900 ohne den Einsatz eines DMA-Controllers 810 überträgt der Mikroprozessor 102 die Daten wortweise aus dem Kommunikationscontroller 750 (gestrichelte Linie a) in das Speicherelement 802 des Mikrocontrollers 800 (gestrichelte Linie f). Dabei treten bei den heute üblichen hohen Taktraten des Mikroprozessors 102 mehrere Wartezyklen auf, während denen der Mikroprozessor 102 auf das Ende der Datenübertragung wartet und keinen anderen Aufgaben nachgehen kann.The microprocessor 102 configures, controls and controls the communication controller 750 , The microprocessor 102 It reads and evaluates messages, calculates new messages, and writes messages for delivery over the communication link 101 , For data transmission within the subscriber 900 without the use of a DMA controller 810 transmits the microprocessor 102 the data word by word from the communication controller 750 (dashed line a) in the memory element 802 of the microcontroller 800 (dashed line f). This occurs at the usual today high clock rates of the microprocessor 102 several wait cycles during which the microprocessor 102 waiting for the end of the data transfer and can pursue no other tasks.

Falls ein DMA-Controller 810 zum Einsatz kommt, kann dieser den Datentransfer zwischen dem Speicherelement 802 des Mikrocontrollers 800 und dem Kommunikationscontroller 750 durchführen. Er wird dazu von dem Mikroprozessor 102 konfiguriert und gestartet (gestrichelte Linie b). Danach überträgt der DMA-Controller 810 Daten wortweise aus dem Kommunikationscontroller 750 in den Speicher 802 des Mikrocontrollers 800 (gestrichelte Linie c). Das Ende der Datenübertragung wird dem Mikroprozessor 102 mittels eines Interrupts mitgeteilt (gestrichelte Linie e), woraufhin der Mikroprozessor 102 den Prozess für die nächste Botschaft neu beginnt. Das Abarbeiten von Interrupts erzeugt eine große Anzahl von CPU-Befehlen, durch die ein großer Teil der Rechen- und Speicherressourcen des Mikroprozessors 102 gebunden ist. Außerdem steigt durch häufige Interrupts der mögliche Jitter (zeitliche Unsicherheit bzgl. der Ausführungsdauer) von unterbrochenen Software-Tasks an.If a DMA controller 810 is used, this can the data transfer between the memory element 802 of the microcontroller 800 and the communication controller 750 carry out. He gets it from the microprocessor 102 configured and started (dashed line b). After that, the DMA controller transmits 810 Data word by word from the communication controller 750 in the store 802 of the microcontroller 800 (dashed line c). The end of the data transfer is the microprocessor 102 notified by means of an interrupt (dashed line e), whereupon the microprocessor 102 the process for the next message begins anew. The processing of interrupts generates a large number of CPU instructions, through which a large part of the computational and memory resources of the microprocessor 102 is bound. In addition, frequent interrupts increase the possible jitter (time duration of the execution time) of interrupted software tasks.

In 13 ist ein erfindungsgemäßer Teilnehmer 900 eines FlexRay-Kommunikationssystems dargestellt. Es ist deutlich zu erkennen, dass der Kommunikationscontroller 750 sowohl über eine passive Schnittstele "p" als auch über eine aktive Schnittstelle "a" an den Peripherie-Bus 820 angeschlossen ist. Das bedeutet, dass der Kommunikationscontroller 750 nicht nur als Slave, sondern auch als Master an den Peripherie-Bus 820 angeschlossen ist. Somit kann der Kommunikationscontroller 750 nicht nur Befehle und Daten von anderen an den Peripherie-Bus 820 angeschlossenen Teilnehmern (z.B. Mikrocontroller 800) empfangen und verarbeiten, sondern selbst empfangene Botschaften (Daten und Befehle) bewerten und diese über den Peripherie-Bus 820 an den Mikrocontroller 800 versenden.In 13 is an inventive participant 900 of a FlexRay communication system. It can be clearly seen that the communication controller 750 both via a passive interface "p" and via an active interface "a" to the peripheral bus 820 connected. That means the communication controller 750 not only as a slave, but also as a master to the peripheral bus 820 connected. Thus, the communication controller 750 not just commands and data from others to the peripheral bus 820 connected participants (eg microcontroller 800 ), but evaluate received messages (data and commands) and these via the peripheral bus 820 to the microcontroller 800 to ship.

Der Mikroprozessor 102 konfiguriert, kontrolliert und steuert den Kommunikationscontroller 750 (gestrichelte Linie a). Der Mikroprozessor 102 liest bereits empfangene und automatisch in das Speicherelement 802 kopierte (gestrichelte Linie b) Botschaftsobjekte aus, bewertet sie (gestrichelte Linie c), berechnet neue Botschaftsobjekte und legt sie im Speicherelement 802 ab (gestrichelte Linie c). Außerdem startet der Mikroprozessor 102 den Transfer zum Botschaftsspeicher 300 (gestrichelte Linie a), der wiederum automatisiert von dem Kommunikationscontroller 750 durchgeführt wird. Der Botschaftsspeicher 300 speichert die Botschaftsobjekte (sog. Message Buffer) zusammen mit Konfigurations- und Statusinformationen.The microprocessor 102 configured, kontrol liert and controls the communication controller 750 (dashed line a). The microprocessor 102 Read already received and automatically in the memory element 802 copied (dashed line b) message objects, evaluates them (dashed line c), calculates new message objects and puts them in the memory element 802 from (dashed line c). In addition, the microprocessor starts 102 the transfer to the embassy memory 300 (dashed line a), in turn, automated by the communication controller 750 is carried out. The message storage 300 stores the message objects (so-called message buffer) together with configuration and status information.

Der Kommunikationscontroller 750 kann über eine in dem Controller 750 eingebettete Logik selbständig sowohl Botschaftsobjekte aus dem Botschaftsspeicher 300 auslesen und in das Speicherelement 802 schreiben als auch Botschaftsobjekte aus dem Speicherelement 802 auslesen und in den Botschaftsspeicher 300 schreiben (gestrichelte Linie b).The communication controller 750 can have one in the controller 750 embedded logic autonomously both message objects from the message memory 300 read out and into the memory element 802 write as well as message objects from the memory element 802 read out and in the message memory 300 write (dashed line b).

In 14 ist der erfindungsgemäße Kommunikationscontroller 750, wie er bspw. in einem Teilnehmer 900 gemäß 14 eingesetzt wird, im Detail dargestellt. Der FlexRay-Kommunikationscontroller 750 umfasst einen FlexRay-Kommunikationsbaustein 100, wie er weiter oben ausführlich beschrieben wurde. Der Kommunikationsbaustein 100 ist – wie gesagt – unterteilt in einen generischen Teil, der in 14 mit dem Bezugszeichen 840 bezeichnet ist und der unabhängig von dem angeschlossenen Mikrocontroller 800 immer gleich ausgestaltet werden kann, und in einen teilnehmerspezifischen Teil. Der generische Teil 840 wird auch als Kommunikationscontroller-Core bezeichnet. Von dem generischen Teil 840 des Kommunikationsbausteins 100 sind in 14 beispielhaft nur das generische Interface 203 (GIF), der Botschaftsspeicher 300 sowie die dem Speicher 300 vorgelagerten Eingangspufferspeicher 201 und Ausgangspufferspeicher 202 dargestellt. Der Eingangspufferspeicher 201 dient zum Zwischenspeichern von Botschaften für den Transfer zum Botschaftsspeicher 300. Der Ausgangspufferspeicher 202 dient zum Zwischenspeichern von Botschaften für den Transfer vom Botschaftsspeicher 300 zum Mikrocontroller 800. Selbstverständlich kann der Kommunikationsbaustein 100 aus 14 alle oder nur einige der in 2 dargestellten Elemente umfassen.In 14 is the communication controller according to the invention 750 , like him in a participant 900 according to 14 is used, shown in detail. The FlexRay communication controller 750 includes a FlexRay communication block 100 as described in detail above. The communication module 100 is - as I said - divided into a generic part, which in 14 with the reference number 840 is designated and independent of the connected microcontroller 800 always be the same and in a participant-specific part. The generic part 840 is also referred to as a communication controller core. From the generic part 840 of the communication block 100 are in 14 for example only the generic interface 203 (GIF), the message store 300 as well as the memory 300 upstream input buffer memory 201 and output buffer 202 shown. The input buffer 201 serves to temporarily store messages for transfer to the message memory 300 , The output buffer 202 serves for buffering messages for the transfer from the message memory 300 to the microcontroller 800 , Of course, the communication module 100 out 14 all or just some of the 2 include illustrated elements.

Der generische Teil des Kommunikationsbausteins 100 ist über das generische Interface 203 (GIF) an das teilnehmerspezifische Interface 204 (CIF) des teilnehmerspezifischen Teils des Kommunikationsbausteins 100 angeschlossen. Das generische Interface 203 lässt sich über das teilnehmerspezifische Interface 204 an verschiedene kundenspezifische Host-CPUs 102 anschließen. Die Logik des Kommunikationscontrollers 750 ist in dem teilnehmerspezifischen Interface 204 (CIF) in Form einer Zustandsmaschine 830 ausgebildet. Das teilnehmerspezifische Interface 204 (CIF) verbindet den peripheren Datenbus 820 des Mikroprozessors 102 mit dem generischen Interface 203 (GIF) des FlexRay-Kommunikationscotroller-Cores. Mit den Bezugszeichen 832 und 834 sind die passive Schnittstelle "p" bzw. die aktive Schnittstelle "a" des Kommunikationscontrollers 750 bezeichnet. Ein Arbiter 836 arbitriert konkurrierende Zugriffe des Mikroprozessors 102 und der Zustandsmaschine 830 auf das generische Interface 203 (GIF) des Kommunikationscontroller-Cores 840. Darüber hinaus ist ein Kontroll- und Statusregister 838 vorgesehen, über das der Mikroprozessor 102 die Zustandsmaschine 830 und damit die Datenübertragung konfigurieren, steuern und kontrollieren kann.The generic part of the communication block 100 is via the generic interface 203 (GIF) to the subscriber-specific interface 204 (CIF) of the subscriber-specific part of the communication module 100 connected. The generic interface 203 can be accessed via the subscriber-specific interface 204 to various customer-specific host CPUs 102 connect. The logic of the communication controller 750 is in the subscriber-specific interface 204 (CIF) in the form of a state machine 830 educated. The subscriber-specific interface 204 (CIF) connects the peripheral data bus 820 of the microprocessor 102 with the generic interface 203 (GIF) of the FlexRay communication scooter core. With the reference numerals 832 and 834 are the passive interface "p" or the active interface "a" of the communication controller 750 designated. An arbiter 836 arbitrates concurrent accesses of the microprocessor 102 and the state machine 830 on the generic interface 203 (GIF) of the communication controller core 840 , In addition, there is a control and status register 838 provided over which the microprocessor 102 the state machine 830 and thus configure, control and control the data transfer.

Zum aktiven Kopieren nach dem Empfang einer Botschaft steuert die Zustandsmaschine 830 nach einem Auslöse-Signal nach Empfang einer neuen Botschaft' von der FlexRay-Kommunikationsverbindung selbständig nacheinander folgende Vorgänge:

  • – Sichtbarmachen des empfangenen Botschaftsobjekts in dem Ausgangspufferspeicher 202 des Kommunikationscontrollers 750; und
  • – Anlegen einer Kopie des empfangenen Botschaftsobjekts in einem konfigurierbaren Adressbereich des dem Mikroprozessor 102 zugeordneten Speicherelements 802 durch Schreibzugriffe über die aktive Schnittstelle 834.
The state machine controls to actively copy after receiving a message 830 following a triggering signal after receiving a new message from the FlexRay communication connection, the following events occur automatically:
  • Visualizing the received message object in the output buffer memory 202 of the communication controller 750 ; and
  • - Creating a copy of the received message object in a configurable address range of the microprocessor 102 associated memory element 802 through write accesses via the active interface 834 ,

Zum aktiven Kopieren zum Versenden einer neuen Botschaft, die im Speicherelement 802 vorliegt, veranlasst der Mikroprozessor 102 über die Kontrollregister 838 einen Transfer der Botschaft vom Speicherelement 802 in den Botschaftsspeicher 300 des Kommunikationscontroller-Cores 840. Dabei steuert die Zustandsmaschine 830 nacheinander folgende Vorgänge:

  • – Erkennen eines Befehls oder mindestens eines gesetzten Bits in einem Kontroll- und/oder Statusregister des Kommunikationscontrollers 750 zum Starten der Datenübertragung;
  • – Auslesen der Daten aus einer konfigurierbaren Adresse des Speicherelements 802;
  • – Anlegen einer Kopie des ausgelesenen Botschaftsobjekts in dem Eingangspufferspeicher 201 des Kommunikationscontrollers 750; und
  • – Initiieren der Übertragung der Daten aus dem Pufferspeicher 201 in den Botschaftsspeicher 300 des Kommunikationscontrollers 750 bzw. des Kommunikationsbausteins 100.
For active copying to send a new message in the storage element 802 is present, the microprocessor causes 102 via the control registers 838 a transfer of the message from the storage element 802 in the message memory 300 of the communication controller core 840 , The state machine controls 830 successively the following operations:
  • - Detecting a command or at least one set bit in a control and / or status register of the communication controller 750 to start the data transfer;
  • - Reading the data from a configurable address of the memory element 802 ;
  • - Create a copy of the read message object in the input buffer memory 201 of the communication controller 750 ; and
  • Initiate the transfer of the data from the buffer memory 201 in the message memory 300 of the communication controller 750 or the communication block 100 ,

Durch die Verwendung der beschriebenen aktiven Schnittstelle 834 zusammen mit der Logik in Form der Zustandsmaschine 830 ergeben sich folgende Vorteile:

  • – Der Mikroprozessor 102 wird im Vergleich zu Zugriffen über einen externen DMA-Controller (vgl. Bezugszeichen 810 in 15) von einer hohen Interruptlast befreit.
  • – Eine geringere Interruptlast ermöglicht einen geringeren Taskjitter und damit eine bessere Vorhersagbarkeit des Gesamtsystems.
  • – Durch Zugriffe auf Botschaftskopien im Speicherelement 802 ist eine größere Zugriffsbandbreite möglich.
  • – Durch die höhere Zugriffsbandbreite hat der Mikroprozessor 102 mehr Rechenzeit für andere Aufgaben zur Verfügung (Latenzzeiten des Prozessors 102 werden verringert).
By using the described active interface 834 together with the logic in the form of the state machine 830 There are the following advantages:
  • - The microprocessor 102 is compared to accesses via an external DMA controller (see reference numeral 810 in 15 ) freed from a high interrupt load.
  • - A lower interrupt load allows a lower task jitter and thus a better predictability of the whole system.
  • - By accessing message copies in the memory element 802 a larger access bandwidth is possible.
  • - Due to the higher access bandwidth has the microprocessor 102 more computing time available for other tasks (latency of the processor 102 are reduced).

Claims (18)

Teilnehmer (900) eines Kommunikationssystems, wobei der Teilnehmer (900) einen Mikroprozessor (102), einen Kommunikationscontroller (750) und einen Peripherie-Bus (820) aufweist und wobei der Mikroprozessor (102) über den Peripherie-Bus (820) mit dem Kommunikationscontroller (750) in Verbindung steht und über den Kommunikationscontroller (750) an eine Kommunikationsverbindung (101) des Kommunikationssystems angeschlossen ist, über welche Botschaften übertragen werden, dadurch gekennzeichnet, dass der Kommunikationscontroller (750) eine aktive Schnittstelle (834), über die der Kommunikationscontroller (750) mit dem Peripherie-Bus (820) in Verbindung steht, und eine Logik aufweist, welche eine selbständige Datenübertragung zwischen dem Kommunikationscontroller (750) und dem Mikroprozessor (102) über die aktive Schnittstelle (834) und den Peripherie-Bus (820) ermöglicht.Attendees ( 900 ) of a communication system, wherein the subscriber ( 900 ) a microprocessor ( 102 ), a communication controller ( 750 ) and a peripheral bus ( 820 ) and wherein the microprocessor ( 102 ) via the peripheral bus ( 820 ) with the communication controller ( 750 ) and via the communication controller ( 750 ) to a communication link ( 101 ) of the communication system via which messages are transmitted, characterized in that the communication controller ( 750 ) an active interface ( 834 ) via which the communication controller ( 750 ) with the peripheral bus ( 820 ), and has logic which allows independent data transmission between the communication controller ( 750 ) and the microprocessor ( 102 ) over the active interface ( 834 ) and the peripheral bus ( 820 ). Teilnehmer (900) nach Anspruch 1, dadurch gekennzeichnet, dass der Kommunikationscontroller (750) einen Botschaftsspeicher zum Zwischenspeichern von Botschaften von der Kommunikationsverbindung (101) oder für die Kommunikationsverbindung (101) umfasst, wobei die Logik des Kommunikationscontrollers (750) ein selbständiges Auslesen von Daten aus dem Botschaftsspeicher des Kommunikationscontrollers (750) und Ablegen der Daten in dem Mikroprozessor (102), sowie ein selbständiges Auslesen von Daten aus dem Mikroprozessor (102) und Ablegen der Daten in dem Botschaftsspeicher des Kommunikationscontrollers (750) ermöglicht.Attendees ( 900 ) according to claim 1, characterized in that the communication controller ( 750 ) a message memory for buffering messages from the communication link ( 101 ) or for the communication connection ( 101 ), wherein the logic of the communication controller ( 750 ) an independent reading of data from the message memory of the communication controller ( 750 ) and storing the data in the microprocessor ( 102 ), as well as an independent reading of data from the microprocessor ( 102 ) and storing the data in the message memory of the communication controller ( 750 ). Teilnehmer (900) nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass dem Mikroprozessor (102) ein Speicherelement (802) zugeordnet ist, wobei die Logik des Kommunikationscontrollers (750) ein selbständiges Auslesen von Daten aus dem Kommunikationscontroller (750) und Ablegen der Daten in dem Speicherelement (802) des Mikroprozessors (102), sowie ein selbständiges Auslesen von Daten aus dem Speicherelement (802) des Mikroprozessors (102) und Ablegen der Daten in dem Kommunikationscontroller (750) ermöglicht.Attendees ( 900 ) according to claim 1 or 2, characterized in that the microprocessor ( 102 ) a memory element ( 802 ), the logic of the communication controller ( 750 ) an independent reading of data from the communication controller ( 750 ) and storing the data in the memory element ( 802 ) of the microprocessor ( 102 ), as well as an independent reading of data from the memory element ( 802 ) of the microprocessor ( 102 ) and storing the data in the communication controller ( 750 ). Teilnehmer (900) nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass der Kommunikationscontroller (750) einen Kommunikationsbaustein (100) aufweist, der einen Botschaftsspeicher (300) zum Zwischenspeichern von Botschaften von der Kommunikationsverbindung (101) oder für die Kommunikationsverbindung (101) umfasst, wobei die Logik des Kommunikationscontrollers (750) eine selbständige Datenübertragung zwischen dem Kommunikationsbaustein (100) und dem Mikroprozessor (102), vorzugsweise zwischen dem Botschaftsspeicher (300) des Kommunikationsbausteins (100) und dem dem Mikroprozessor (102) zugeordneten Speicherelement (802), über den Peripherie-Bus (820) ermöglicht.Attendees ( 900 ) according to one of claims 1 to 3, characterized in that the communication controller ( 750 ) a communication module ( 100 ) having a message memory ( 300 ) for buffering messages from the communication link ( 101 ) or for the communication connection ( 101 ), wherein the logic of the communication controller ( 750 ) an independent data transfer between the communication module ( 100 ) and the microprocessor ( 102 ), preferably between the message memory ( 300 ) of the communication module ( 100 ) and the microprocessor ( 102 ) associated memory element ( 802 ), via the peripheral bus ( 820 ). Teilnehmer (900) nach Anspruch 4, dadurch gekennzeichnet, dass der Kommunikationsbaustein (100) mindestens einen zwischen dem Botschaftsspeicher (300) und dem Peripheriebus (820) angeordneten Pufferspeicher, vorzugsweise mindestens einen Eingabepufferspeicher (201) und mindestens einen Ausgangspufferspeicher (202), aufweist, wobei die Logik des Kommunikationscontrollers (750) eine selbständige Datenübertragung zwischen dem Kommunikationsbaustein (100) und dem Mikroprozessor (102), vorzugsweise zwischen dem mindestens einen Pufferspeicher (201, 202) des Kommunikationsbausteins (100) und dem dem Mikroprozessor (102) zugeordneten Speicherelement (802), über den Peripherie-Bus (820) ermöglicht.Attendees ( 900 ) according to claim 4, characterized in that the communication module ( 100 ) at least one between the message memory ( 300 ) and the peripheral bus ( 820 ) arranged buffer memory, preferably at least one input buffer memory ( 201 ) and at least one output buffer memory ( 202 ), wherein the logic of the communication controller ( 750 ) an independent data transfer between the communication module ( 100 ) and the microprocessor ( 102 ), preferably between the at least one buffer memory ( 201 . 202 ) of the communication module ( 100 ) and the microprocessor ( 102 ) associated memory element ( 802 ), via the peripheral bus ( 820 ). Teilnehmer (900) nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Logik in dem Kommunikationscontroller (750) eine Zustandsmaschine (830) umfasst.Attendees ( 900 ) according to one of claims 1 to 5, characterized in that the logic in the communication controller ( 750 ) a state machine ( 830 ). Teilnehmer (900) nach Anspruch 6, dadurch gekennzeichnet, dass die Zustandsmaschine (830) fest verdrahtet ist.Attendees ( 900 ) according to claim 6, characterized in that the state machine ( 830 ) is hardwired. Teilnehmer (900) nach Anspruch 6 oder 7, dadurch gekennzeichnet, dass der Kommunikationscontroller (750) einen Arbiter (836) aufweist, der konkurrierende Zugriffe des Mikroprozessors (102) und der Zustandsmaschine (830) auf einen Botschaftsspeicher (300) des Kommunikationscontrollers (750) bzw. eines FlexRay-Kommunikationsbausteins (100) arbitriert.Attendees ( 900 ) according to claim 6 or 7, characterized in that the communication controller ( 750 ) an arbiter ( 836 ), the concurrent accesses of the microprocessor ( 102 ) and the state machine ( 830 ) to a message memory ( 300 ) of the communication controller ( 750 ) or a FlexRay communication block ( 100 ) arbitrated. Teilnehmer (900) nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass der Kommunikationscontroller (750) Kontroll- und/oder Statusregister (838) aufweist, auf welche der Mikroprozessor (102) zur Konfiguration, Ansteuerung und/oder Überwachung der Datenübertragung zugreifen kann.Attendees ( 900 ) according to one of claims 1 to 8, characterized in that the communication controller ( 750 ) Control and / or status register ( 838 ) to which the microprocessor ( 102 ) can access the configuration, control and / or monitoring of data transmission. Teilnehmer (900) nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass der Teilnehmer (900) Bestandteil eines FlexRay-Kommunikationssytems ist, in welchem eine Datenübertragung zwischen dem Teilnehmer (900) und anderen an die FlexRay-Kommunikationsverbindung (101) angeschlossenen FlexRay-Teilnehmern nach dem FlexRay-Protokoll erfolgt.Attendees ( 900 ) according to one of the claims 1 to 9, characterized in that the participant ( 900 ) A component of a FlexRay communication system is in which a data transmission between the subscriber ( 900 ) and others to the FlexRay communication link ( 101 ) connected FlexRay participants according to the FlexRay protocol. Kommunikationscontroller (750) eines Teilnehmers (900) eines Kommunikationssystems, wobei der Teilnehmer (900) einen Mikroprozessor (102), den Kommunikationscontroller (750) und einen Peripherie-Bus (820) aufweist und wobei der Kommunikationscontroller (750) einerseits über den Peripherie-Bus (820) mit dem Mikroprozessor (102) in Verbindung steht und andererseits an eine Kommunikationsverbindung (101) des Kommunikationssystems angeschlossen ist, über welche Botschaften übertragen werden, dadurch gekennzeichnet, dass der Kommunikationscontroller (750) eine aktive Schnittstelle (834), über die der Kommunikationscontroller (750) mit dem Peripherie-Bus (820) in Verbindung steht, und eine Logik aufweist, welche eine selbständige Datenübertragung zwischen dem Kommunikationscontroller (750) und dem Mikroprozessor (102) über die aktive Schnittstelle (834) und den Peripherie-Bus (820) ermöglicht.Communication Controller ( 750 ) of a participant ( 900 ) of a communication system, wherein the subscriber ( 900 ) a microprocessor ( 102 ), the communication controller ( 750 ) and a peripheral bus ( 820 ) and wherein the communication controller ( 750 ) on the one hand via the peripheral bus ( 820 ) with the microprocessor ( 102 ) and, on the other hand, to a communication link ( 101 ) of the communication system via which messages are transmitted, characterized in that the communication controller ( 750 ) an active interface ( 834 ) via which the communication controller ( 750 ) with the peripheral bus ( 820 ), and has logic which allows independent data transmission between the communication controller ( 750 ) and the microprocessor ( 102 ) over the active interface ( 834 ) and the peripheral bus ( 820 ). Kommunikationscontroller (750) nach Anspruch 11, dadurch gekennzeichnet, dass der Kommunikationcontroller (750) Bestandteil eines FlexRay-Kommunikationssytems ist, in welchem eine Datenübertragung zwischen dem Teilnehmer (900) und anderen an die FlexRay-Kommunikationsverbindung (101) angeschlossenen FlexRay-Teilnehmern nach dem FlexRay-Protokoll erfolgt.Communication Controller ( 750 ) according to claim 11, characterized in that the communication controller ( 750 ) A component of a FlexRay communication system is in which a data transmission between the subscriber ( 900 ) and others to the FlexRay communication link ( 101 ) connected FlexRay participants according to the FlexRay protocol. Verfahren zur Übertragung von Daten innerhalb eines Teilnehmers (900) eines Kommunikationssystems, wobei die Daten zwischen einem Mikroprozessor (102) und einem Kommunikationscontroller (750) über einen Peripherie-Bus (820) übertragen werden und wobei der Kommunikationscontroller (750) an eine Kommunikationsverbindung (101) angeschlossen ist, über welche Botschaften übertragen werden, dadurch gekennzeichnet, dass eine Logik des Kommunikationscontrollers (750) zur Datenübertragung veranlasst wird und daraufhin die Datenübertragung zwischen dem Kommunikationscontroller (750) und dem Mikroprozessor (102) über eine aktive Schnittstelle (834) des Kommunikationscontrollers (750) und den Peripherie-Bus (820) selbständig steuert.Method for transmitting data within a subscriber ( 900 ) of a communication system, wherein the data is transferred between a microprocessor ( 102 ) and a communication controller ( 750 ) via a peripheral bus ( 820 ) and wherein the communication controller ( 750 ) to a communication link ( 101 ), via which messages are transmitted, characterized in that a logic of the communication controller ( 750 ) is initiated for data transmission and then the data transmission between the communication controller ( 750 ) and the microprocessor ( 102 ) via an active interface ( 834 ) of the communication controller ( 750 ) and the peripheral bus ( 820 ) independently controls. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass die Logik des Kommunikationscontrollers (750) durch einen Befehl des Mikroprozessors (102) des Teilnehmers (900) zur Datenübertragung veranlasst wird.Method according to Claim 13, characterized in that the logic of the communications controller ( 750 ) by a command from the microprocessor ( 102 ) of the participant ( 900 ) is initiated for data transmission. Verfahren nach Anspruch 13 oder 14, dadurch gekennzeichnet, dass der Mikroprozessor (102) auf Kontroll- und/oder Statusregister (838) des Kommunikationscontrollers (750) zugreift und so die Datenübertragung konfiguriert, angesteuert und/oder überwacht wird.Method according to claim 13 or 14, characterized in that the microprocessor ( 102 ) on control and / or status registers ( 838 ) of the communication controller ( 750 ) and so the data transmission is configured, controlled and / or monitored. Verfahren nach einem der Ansprüche 13 bis 15, dadurch gekennzeichnet, dass die Logik in dem Kommunikationscontroller (750) eine Zustandsmaschine (830) umfasst, wobei konkurrierende Zugriffe des Mikroprozessors (102) und der Zustandsmaschine (830) auf einen Botschaftsspeicher (300) des Kommunikationscontrollers (750) bzw. eines Kommunikationsbausteins (100) arbitriert werden.Method according to one of claims 13 to 15, characterized in that the logic in the communication controller ( 750 ) a state machine ( 830 ), whereby concurrent accesses of the microprocessor ( 102 ) and the state machine ( 830 ) to a message memory ( 300 ) of the communication controller ( 750 ) or a communication block ( 100 ) are arbitrated. Verfahren nach einem der Ansprüche 13 bis 16, dadurch gekennzeichnet, dass nach dem Empfang neuer Daten von der Kommunikationsverbindung (101) von der Logik selbständig folgende Schritte veranlasst und gesteuert werden: – Sichtbarmachen der empfangenen Daten in einem Pufferspeicher (202) des Kommunikationscontrollers (750); und – Anlegen einer Kopie der empfangenen Daten in einem konfigurierbaren Adressbereich eines dem Mikroprozessor (102) zugeordneten Speicherelements (802) durch Schreibzugriffe über die aktive Schnittstelle (834).Method according to one of claims 13 to 16, characterized in that after receiving new data from the communication link ( 101 ) are initiated and controlled by the logic autonomously by the following steps: visualizing the received data in a buffer memory ( 202 ) of the communication controller ( 750 ); and - applying a copy of the received data in a configurable address range of a microprocessor ( 102 ) associated memory element ( 802 ) by write accesses via the active interface ( 834 ). Verfahren nach einem der Ansprüche 13 bis 17, dadurch gekennzeichnet, dass zum Versenden neuer Daten, die in einem dem Mikroprozessor (102) zugeordneten Speicherelement (802) vorliegen, von dem Mikroprozessor (102) eine Übertragung der Daten aus dem Speicherelement (802) in den Kommunikationscontroller (750) veranlasst wird und von der Logik des Kommunikationscontrollers (750) selbständig folgende Schritte veranlasst und gesteuert werden: – Erkennen eines Befehls oder mindestens eines gesetzten Bits in einem Kontroll- und/oder Statusregister (838) des Kommunikationscontrollers (750); – Auslesen der Daten aus einer konfigurierbaren Adresse des Speicherelements (802); – Anlegen einer Kopie des ausgelesenen Datenobjekts in einem Pufferspeicher (201) des Kommunikationscontrollers (750); und – Initiieren der Übertragung der Daten aus dem Pufferspeicher (201) in einen Botschaftsspeicher (300) des Kommunikationscontrollers (750) bzw. eines Kommunikationsbausteins (100).A method according to any one of claims 13 to 17, characterized in that for sending new data in a microprocessor ( 102 ) associated memory element ( 802 ), from the microprocessor ( 102 ) a transmission of the data from the memory element ( 802 ) in the communication controller ( 750 ) and the logic of the communication controller ( 750 ) independently the following steps are initiated and controlled: detection of a command or at least one set bit in a control and / or status register ( 838 ) of the communication controller ( 750 ); - reading the data from a configurable address of the memory element ( 802 ); - Creating a copy of the read data object in a buffer memory ( 201 ) of the communication controller ( 750 ); and initiating the transfer of the data from the buffer memory ( 201 ) into a message memory ( 300 ) of the communication controller ( 750 ) or a communication block ( 100 ).
DE200510048583 2005-10-06 2005-10-06 Subscriber and communication controller of a communication system and method for data transmission in a subscriber of the communication system Withdrawn DE102005048583A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE200510048583 DE102005048583A1 (en) 2005-10-06 2005-10-06 Subscriber and communication controller of a communication system and method for data transmission in a subscriber of the communication system
PCT/EP2006/067045 WO2007039628A1 (en) 2005-10-06 2006-10-04 Subscriber and communication controller of a communication system and method for transmitting data in a subscriber of the communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200510048583 DE102005048583A1 (en) 2005-10-06 2005-10-06 Subscriber and communication controller of a communication system and method for data transmission in a subscriber of the communication system

Publications (1)

Publication Number Publication Date
DE102005048583A1 true DE102005048583A1 (en) 2007-04-12

Family

ID=37769814

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200510048583 Withdrawn DE102005048583A1 (en) 2005-10-06 2005-10-06 Subscriber and communication controller of a communication system and method for data transmission in a subscriber of the communication system

Country Status (2)

Country Link
DE (1) DE102005048583A1 (en)
WO (1) WO2007039628A1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6425034B1 (en) * 1998-10-30 2002-07-23 Agilent Technologies, Inc. Fibre channel controller having both inbound and outbound control units for simultaneously processing both multiple inbound and outbound sequences
DE10329179A1 (en) * 2003-06-30 2005-03-17 Volkswagen Ag Arrangement and method for managing a memory

Also Published As

Publication number Publication date
WO2007039628A1 (en) 2007-04-12

Similar Documents

Publication Publication Date Title
EP1776807B1 (en) Method and device for accessing data of a message memory of a communication component
EP1787204B1 (en) Message administrator and method for controlling access to data of the message memory of a communications component
EP1776805B1 (en) Flexray- communication component
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
EP1846827B1 (en) Method for transmitting data in messages via a communications link of a communications system and communications module, subscriber of a communications system and associated communications system
DE102005048582A1 (en) Subscriber interface between a microcontroller and a FlexRay communication module, FlexRay subscriber and method for transmitting messages via such an interface
EP1941674B1 (en) Subscriber and communication controller of a communication system and method for implementing a gateway functionality in a subscriber of a communication system
DE102005048581B4 (en) Subscriber interface between a FlexRay communication module and a FlexRay subscriber and method for transmitting messages via such an interface
EP1776808B1 (en) Method for storing messages in a message memory and corresponding message memory
EP2030117B1 (en) Gateway for data transfer between serial buses
DE102006055513A1 (en) communication module
EP2030118A1 (en) Multi-processor gateway
DE102005048584A1 (en) FlexRay communication module, FlexRay communication controller and message transmission method between a FlexRay communication connection and a FlexRay device
DE102012205160A1 (en) Communication arrangement and method for configuring programmable hardware
DE102005048583A1 (en) Subscriber and communication controller of a communication system and method for data transmission in a subscriber of the communication system
DE10324001A1 (en) Transfer function or maximum lead length increasing method in bus systems for data exchange in projectile steering systems

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee