EP1941377A2 - User interface which is between a microcontroller and a flexray-communication component, flexray-user and method for transmitting messages via said type of interface - Google Patents

User interface which is between a microcontroller and a flexray-communication component, flexray-user and method for transmitting messages via said type of interface

Info

Publication number
EP1941377A2
EP1941377A2 EP06807000A EP06807000A EP1941377A2 EP 1941377 A2 EP1941377 A2 EP 1941377A2 EP 06807000 A EP06807000 A EP 06807000A EP 06807000 A EP06807000 A EP 06807000A EP 1941377 A2 EP1941377 A2 EP 1941377A2
Authority
EP
European Patent Office
Prior art keywords
memory
data
message
flexray
state machine
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
EP06807000A
Other languages
German (de)
French (fr)
Inventor
Josef Newald
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
Publication of EP1941377A2 publication Critical patent/EP1941377A2/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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40241Flexray

Definitions

  • the present invention relates to a subscriber interface between a FlexRay communication module which is connected to a FlexRay
  • Communication link is connected, via which messages are transmitted, and which comprises a message memory for buffering messages from the FlexRay communication link or for the FlexRay communication link, and a FlexRay communication block associated with the microcontroller, a microprocessor and a direct memory access (DMA) controller for a data exchange with the message memory.
  • a message memory for buffering messages from the FlexRay communication link or for the FlexRay communication link
  • a FlexRay communication block associated with the microcontroller, a microprocessor and a direct memory access (DMA) controller for a data exchange with the message memory.
  • DMA direct memory access
  • the invention also relates to a FlexRay subscriber who has a microcontroller, a FlexRay communication module, which is connected to a FlexRay device.
  • the Communication connection is connected, via which messages are transmitted, and has a subscriber interface between the microcontroller and the communication module.
  • the microcontroller includes a microprocessor and a direct memory access (DMA) controller.
  • the communication module comprises a message memory for temporary storage messages from the FlexRay communications link or for the FlexRay communications link.
  • the present invention also relates to a method for data transmission between a message memory of a FlexRay device.
  • Communication module which is connected to a FlexRay communication link, via which messages are transmitted, and a direct memory access (DMA) controller of a microcontroller.
  • DMA direct memory access
  • the FlexRay protocol defines a fast, deterministic and fault-tolerant bus system, especially for use in a motor vehicle.
  • the data transmission according to the FlexRay protocol is carried out according to a Time Division Multiple Access (TDMA) method.
  • TDMA Time Division Multiple Access
  • the data transmission via the communication connection is carried out in regularly recurring transmission cycles, each of which is divided into several data frames, which are also referred to as time slots.
  • the participants or the messages to be transmitted are assigned fixed time slots in which they have exclusive access to the communication connection.
  • the time slots are repeated in the specified transmission cycles, so that the time at which a message is transmitted over the bus can be accurately predicted and the bus access is deterministic.
  • FlexRay divides the transmission cycle, which can also be referred to as cycle or bus cycle, into a static and a dynamic part.
  • the fixed time slots are located in the static part at the beginning of a bus cycle.
  • the time slots are allocated dynamically.
  • exclusive bus access is now only possible for a short time, for one or more so-called minislots. Only if a bus access occurs within a minislot, the time slot is extended by the required time. Thus, bandwidth is only consumed when it is actually needed.
  • FlexRay communicates via two physically separate lines of the communication link at a maximum data rate of 10 MBiVs (10 MBaud). Every 5 ms, and even every 2.5 ms in some communication systems, one bus cycle is completed.
  • the two channels correspond to the physical layer, in particular the OSI (Open System Architecture) layer model.
  • the two channels are mainly used for the redundant and thus fault-tolerant transmission of messages, but can also transmit different messages, which would then double the data rate. FlexRay can also be operated at lower data rates.
  • the participants or the distributed components in the communication network need a common time base, the so-called global time.
  • clock synchronization synchronization messages are transmitted in the static part of the cycle. Using a special algorithm according to the FlexRay specification, the local time of a subscriber is corrected in such a way that all local clocks synchronize to one global clock.
  • a FlexRay device which can also be referred to as a FlexRay network node or host, contains a participant or host processor, a FlexRay or communication controller, and a bus guardian in bus monitoring.
  • the user processor delivers and processes the data that is transmitted via the FlexRay communication controller and the FlexRay communication connection.
  • messages or message objects can be stored with eg. For example, up to 254 bytes of data can be configured.
  • an interface module consisting of two parts, wherein the one component independent of the subscriber and the other sub-module is subscriber-specific.
  • the subscriber-specific sub-module which is also referred to as Customer CPU Interface (CIF) connects a customer-specific subscriber in the form of a subscriber-specific host CPU to the FlexRay communication module.
  • the subscriber-independent submodule also referred to as the Generic CPU Interface (GIF) represents a generic, that is to say general, CPU interface, via which different customer-specific subordinate components, in other words Customer CPU Interfaces (CIFs), can be used. Connect CPUs to the FlexRay communication block.
  • the interface can be flexibly adapted by simple variation of the subscriber-specific sub-module to any trained or kind of participants.
  • the sub-blocks can also be implemented within the one interface block in each case in software, ie each sub-module as a software function.
  • the state machine in the FlexRay communication block may be hardwired into hardware.
  • the sequences can also be hardwired into hardware.
  • the state machine can also be freely programmable in the communication module via the subscriber interface by the subscriber.
  • 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.
  • 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, together with configuration and status data.
  • the exact structure of the message memory of the known communication module can be found in the cited document DE 10 2005 034 744.
  • a FlexRay subscriber has to coordinate and control the data transfer between the message memory of the FlexRay communication blocks and the subscriber via a microprocessor and a DMA controller.
  • the messages in the message memory are not stored sequentially, ie consecutively, but are specifically distributed to specific areas of the message memory.
  • the DMA controller can only access data from contiguous areas of the message memory. This has the consequence that the DMA controller for data transmission between message memory and participants in the prior art has to be set up and started several times. Each setup and startup of the DMA controller requires the transmission of a significant amount of data in configuration, coordination, and control parameters.
  • the end of the data transfer is communicated to the microprocessor, for example by means of polling by the microprocessor or by an interrupt command triggered by the DMA controller. Both require significant resources (computing and storage capacity) in the microprocessor. It is therefore worthwhile in the prior art hardly or only in exceptional cases to program the DMA controller for data transmission. In summary, the connection of the DMA controller to the FlexRay communication module in the prior art is not optimal.
  • the present invention is therefore based on the object to provide a way to better connect the DMA controller of the microcontroller to the FlexRay communication module to allow faster and especially resource-saving data transfer between the message memory of the communication module and the DMA controller ,
  • the subscriber interface has a state machine, which after configuration by the microprocessor of the microcontroller, a data transfer between the Message memory of the FlexRay communication block and the DMA controller independently coordinates and controls.
  • the interposition of a state machine between the microcontroller of a FlexRay subscriber and a FlexRay communication module of the subscriber is proposed, which changes the subscriber interface in such a way that it pays to set up and start the DMA controller of the microcontroller.
  • the state machine ensures that the data or messages to be transmitted are presented in an optimized manner to the DMA controller in such a way that it can also transmit larger amounts of data or multiple messages with a single call to the DMA controller. According to the invention, so to speak, a single access from the previously required many small accesses is composed.
  • the microcontroller of the participant's microcontroller first configures the state machine and tells it to read or write, which messages (message numbers) to transmit, and how long the messages to be transmitted are. With the help of this information, the state machine then accesses the FlexRay communication module in such a way that the desired data or messages between the message memory and the DMA controller are transmitted in read or write mode. To a certain extent, the state machine provides the intelligence of the DMA controller, which it requires for more complex access to larger amounts of data, in particular multiple messages, possibly even in distributed address areas of the message memory.
  • the state machine generates a virtual contiguous address space, making the use of the DMA controller makes sense, since the number of data to be transmitted (to set up the DMA controller) and the number of interrupts (at the end of a DMA controller cycle) is significantly reduced.
  • the DMA controller reads from or writes to the same
  • the DMA controller always accesses an output buffer of the FlexRay communication module for reading data and always an input buffer for writing data.
  • the subscriber interface has configuration and status registers to which the microcontroller of the microcontroller has access to configure the state machine.
  • the microprocessor thus configures the state machine by writing appropriate configuration parameters into the configuration and status registers of the subscriber interface.
  • the registers can be implemented as flip-flops or be part of a large memory, for example a random access memory (RAM), ie RAM.
  • the configuration parameters relate, for example, to the following information: read or write data transmission;
  • the subscriber interface has a sequence memory in which references to specific messages stored in the message memory and information about the messages are stored, wherein the state machine for coordinating and controlling the data transfer calls entries of the sequence memory.
  • the sequence memory is preferably designed as a RAM and comprises a plurality, preferably 128, fields with sequence entries.
  • the sequence entries comprise, for example, an identifier (eg a number) of the sequence entry, an identifier or a reference (eg a buffer number) to one or more messages (so-called buffers) of the message memory or the buffer memory, and the size of the message (the buffer).
  • the various sequence entries can be called by the state machine according to specifications of the microprocessor targeted.
  • the sequence entries can be called up unchanged in the saved form or in adapted form. To call in an adapted form, the call of the sequence entry includes certain parameter values for adapting variable parameters of the sequence entry.
  • sequence entries in the sequence memory preferably relate to frequently occurring transmission sequences, which are stored in advance and are called when needed. In this way, by calling a single sequence or subsequence (one or more sequence entries) a large data transfer between the message memory and the DMA controller can be triggered.
  • the configuration parameters that are transferred from the microprocessor of the microcontroller to the configuration and status registers at the beginning of the data transfer may also include an identifier (eg, the numbers) of one or more sequence entries received from the state machine in the frame the data transfer to be called.
  • the messages to be transmitted between the message memory and the subscriber each comprise a header segment, in particular with configuration data and control data, and a data segment with user data
  • the state machine comprising the Data transfer between the message memory and the DMA controller controls such that for each message the header segment is read in front of the data segment.
  • the state machine preferably controls the data transmission between the message memory and the DMA controller in such a way that the data contained in the header segment is evaluated before the data segment is read in and the reading of the data segment is controlled as a function of the result of the evaluation of the data of the header segment.
  • the status is read. In this way, with empty data in the data segment, it is possible to prevent the entire data segment from being transmitted. Rather, those address ranges of the data segment can be selected which contain payload data (so-called payload); the address areas with empty data are ignored during transmission and simply skipped. In this way, the transmission rate can be increased.
  • the FlexRay communication module has at least one buffer memory, preferably at least one input buffer memory and at least one output buffer memory, for temporarily storing data to be transmitted between the message memory of the communication module and the DMA controller, preferably for buffering at least a message stored in the message memory, the state machine transmitting the data between the message
  • the at least one buffer memory is arranged between the message memory of the FlexRay communication module and the state machine of the subscriber interface.
  • an output buffer is provided for read access to the message memory and an input buffer for write access.
  • the at least one buffer memory comprises a partial buffer memory and a shadow memory associated with the partial buffer memory, wherein the state machine coordinates and controls the data transmission such that writing or reading to the partial buffer memory and the shadow memory takes place alternately.
  • the FlexRay communication module has the control register associated with at least one buffer memory, to which the state machine for coordinating and controlling the
  • Data transfer between the message memory and the at least one buffer has access.
  • About the control register can be communicated to the communication module, whether new data for transmission concern (and should be transferred) and to which address in the message memory they are stored or from which address they are to be picked.
  • the subscriber interface be a state machine, which, after being configured by the microprocessor of the microcontroller, autonomously coordinates and controls data transmission between the message memory of the FlexRay communication module and the DMA controller.
  • a state machine which is arranged as part of a subscriber interface between the microcontroller and the FlexRay communication module, be configured by a microprocessor of the microcontroller and the Data transfer after the configuration of the state machine is independently coordinated and controlled.
  • Microcontroller configuration parameters are stored in the configuration and status register of the subscriber interface.
  • references to certain messages stored in the message memory and information about the messages are stored in a sequence memory of the subscriber interface, wherein entries of the sequence memory are called by the state machine for coordination and control of the data transmission.
  • the FlexRay communication module has at least one buffer memory, preferably at least one input buffer memory and at least one output buffer memory, for buffering data to be transferred between the message memory of the communication module and the DMA controller, preferably for buffering at least one message stored in the message memory, wherein coordination and control parameters are stored for controlling and coordinating the data transmission from the state machine in the control registers associated with at least one buffer memory.
  • FIG. 1 shows a communication module and its connection to a communication connection and a communication or host participants of a FlexRay communication system in a schematic representation
  • FIG. 2 shows a specific embodiment of the communication module of Figure 1 and its connection in detail
  • Figure 3 shows the structure of a message memory of the communication module of Figure 2;
  • Figure 4 to 6 the architecture and the process of a data access in the direction from the subscriber to the message memory in a schematic representation
  • FIGS. 7 to 9 show the architecture and the process of data access in the direction from the message memory to the subscriber;
  • Figure 10 is a schematic representation of the structure of a message manager and finite state machines contained therein;
  • FIG. 11 shows components of the communication module from FIGS. 1 and 2 as well as the subscriber and the corresponding data paths controlled by the message administrator in a schematic representation
  • FIG. 12 shows the access distribution to the message memory with reference to the data paths in FIG. 11;
  • FIG. 13 shows a subscriber interface according to the invention with a
  • FIG. 14 shows the state machine between the FlexRay
  • Figure 15 shows the waveforms in the context of a read via the subscriber interface according to the invention.
  • Figure 16 shows the waveforms in the context of a read via the subscriber interface according to the invention.
  • a FlexRay communication module 100 for connecting a subscriber or host 102 to a FlexRay Communication link 101, ie the physical layer of the FlexRay.
  • This is formed, for example, as a FlexRay data bus, which preferably has two transmission lines.
  • the FlexRay communication module 100 is connected via a connection 107 to the subscriber or subscriber processor 102 and via a connection 106 to the communication connection 101.
  • a first arrangement 105 serves for storing, in particular clipboard, at least part of the messages to be transmitted.
  • a second arrangement 104 is connected via the connections 107 and 108.
  • a third arrangement 103 is connected between the communication link 101 and the first arrangement 105 via the connections 106 and 109, whereby a very flexible inputting and outputting of data as part of messages, in particular FlexRay messages in and out of the first arrangement 105 with warranty Data integrity at optimal speed can be achieved.
  • the second arrangement 104 contains an input buffer or input buffer 201 (input buffer IBF), an output buffer or output buffer 202 (Output Buffer OBF) and an interface module consisting of two parts 203 and 204, wherein one sub-module 203 is subscriber-independent and the second sub-module 204 is subscriber-specific.
  • the subscriber-specific sub-component 204 (Customer CPU Interface CIF) connects a subscriber-specific host CPU 102, that is to say a customer-specific sub-module 102.
  • a bidirectional data line 216, an address line 217 and a control input 218 is provided. Also provided with 219 is an interrupt or interrupt output.
  • the subscriber-specific sub-module 204 is connected to a subscriber-independent sub-module 203 (Generic CPU Interface, GIF), ie the FlexRay communication module or the FlexRay IP module has a generic, ie general, CPU interface 203 to which corresponding subscriber-specific sub-blocks 204, so customer CPU interfaces CIF connect a large number of different customer-specific host CPUs 102.
  • GIF Generic CPU Interface
  • the input buffer or input buffer 201 and the output buffer or output buffer 202 may be formed in a common memory device or in separate memory devices.
  • the input buffer memory 201 serves for the buffering of messages for transmission to a message memory 300.
  • the input buffer module 201 is preferably designed such that it contains two complete messages each comprising a header segment or header segment, in particular with configuration data and a data segment or payload Can save segment.
  • the input buffer 201 is formed in two parts (partial buffer memory and shadow memory), whereby the transmission between subscriber CPU 102 and message memory 300 can be accelerated by alternately writing the two parts of the input buffer memory or by changing access.
  • the output buffer 202 (output buffer 202) is used for buffering messages for transmission from the message memory 300 to the subscriber CPU 102.
  • the output buffer 202 is also designed to: that two complete messages consisting of header segment, in particular with configuration data and data segment, ie payload segment, can be stored.
  • the output buffer 202 is divided into two parts, a partial buffer memory and a shadow memory, which can accelerate the transmission between participants or host CPU 102 and message memory 300 here by alternately reading the two parts, the transmission or by access change.
  • This second assembly 104 consisting of the blocks 201 to 204 is connected to the first assembly 105 as shown.
  • the arrangement 105 consists of a message handler 200 (message handler MHD) and a message memory 300 (message RAM).
  • the message manager 200 controls the data transfer between the input buffer 201 and the output buffer 202 and the message memory 300. Likewise, it controls the data transfer in the other direction via the third device 103.
  • the message memory 300 is preferably single-ported RAM executed. This RAM memory stores the messages or embassy objects, ie the actual data, together with configuration and status data. The exact structure of the message memory 300 is shown in more detail in FIG.
  • the third arrangement 103 consists of the blocks 205 to 208. According to the two channels of the FlexRay Physical Layer, this arrangement 103 is divided into two data paths with two data directions each. This is illustrated by the links 213 and 214, which show 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. Connection 215 indicates 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 buffer memories Transient Buffer RAMs: RAM A and RAM B serve as temporary storage for the data transfer from or to the first arrangement 105.
  • these two buffer memories 205 and 206 are connected to an interface module 207 and 208, respectively, containing the FlexRay protocol controller or bus protocol - Controller consisting of a transmit / receive shift register and the FlexRay protocol finite state machine, included.
  • the two buffer memories 205 and 206 thus serve as temporary storage for the data transfer between the shift registers of the interface modules or FlexRay protocol controllers 207 and 208 and the message memory 300.
  • the data fields, ie the payload segment or data segment are advantageously provided by each buffer memory 205 or 206 stored in two FlexRay messages.
  • GTU Global Time Unit
  • SUC General System Control
  • Block 211 shows the network and error management (Network and Error Management NEM) as described in FlexRay protocol specification v2.0.
  • block 212 shows the interrupt control (INT) managing the status and error interrupt flags and the interrupt outputs 219 to the subscriber CPU 102 controls or controls.
  • Block 212 also includes an absolute and a relative timer for generating the time interrupts or timer interrupts.
  • message objects or messages can be configured with up to 254 data bytes.
  • the message memory 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 administration of the messages themselves are implemented by the message handler or message handler 200. These are z.
  • Message RAM message RAM
  • All functions that affect the treatment or administration of the messages themselves are implemented by the message handler or message handler 200. These are z.
  • As the acceptance filtering transfer of messages between the two FlexRay protocol controller blocks 207 and 208 and the message memory 300, so the message RAM and the control of the transmission order and the provision of configuration data or status data.
  • An external CPU that is to say an external processor of the subscriber processor 102, can access the registers of the FlexRay communication module 100 directly via the subscriber interface 107 with the subscriber-specific part 204. It uses a variety of registers. These registers are used to control the FlexRay protocol controllers, ie the interface modules 207 and 208, the message handler (MHD) 200, the global time unit (GTU) 209, the general system 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 will be discussed in more detail in Figures 4 to 6 and 7 to 9.
  • Such a described FlexRay communication module 100 allows easy conversion. the FlexRay specification v2.0, which makes it easy to generate an ASIC or a microcontroller with the appropriate FlexRay functionality.
  • the FlexRay protocol specification in particular v2.0
  • the FlexRay protocol specification in particular v2.0
  • up to 128 messages or message objects can be configured.
  • the message memory 300 is advantageously designed as a FIFO (first-in-first-out), resulting in a configurable reception F FO.
  • Each message or message object in memory can be configured as a ReceivedBuffer, TransmitBuffer object, or as part of the configurable ReceiveField.
  • acceptance filtering on frame ID, channel ID and cycle counter in the FlexRay network is possible. Conveniently, the network management is thus supported.
  • maskable module interrupts are also provided.
  • FIG. 3 describes in detail the division of the message memory 300.
  • 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.
  • the message memory 300 is part of the FlexRay communication module 100.
  • the method described below and the corresponding message memory 300 write 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 mechanism described to store a variable number of blobs in a message memory of predetermined size.
  • RAM Random Access Memory
  • 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.
  • this variable division of a particular RAM-based message memory 300 for a FlexRay Communication Controller will be described in more detail.
  • a message memory with a defined word length of n bits, for example 8, 16, 32, etc., as well as a predefined memory depth of m words is given by way of example (m, n as natural numbers).
  • the message memory 300 is divided into two segments, a header segment or header segment HS and a data segment DS (Payload Section, Payload Segment).
  • a header area HB and a data area DB are created per message.
  • header areas or header areas HB0, HB1 to HBk and data areas DB0, DB1 to DBk are thus created.
  • 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 (HBO, HB1, ..., HBk) in each case.
  • the second data which correspond to the actual user data that is to be transmitted, are correspondingly stored in data areas DB (DBO, DBl,..., DBk).
  • the Distribution between header segment HS and data segment DS is now variable in the message memory 300, ie there is no predetermined boundary between the areas.
  • the division between head segment HS and data segment DS is dependent on the number k of messages and the second data volume, ie the extent of the actual user data, a message or all k messages together.
  • the configuration data KDO, KD1 to KDk of the respective message is now assigned directly to a pointer element or data pointer DPO, DPI to DPk.
  • each head area HBO, HB 1 to HBk is assigned a fixed number of memory words, here two, so that always a configuration data KD (KDO, KD 1, ..., KDk) and a pointer element DP (DPO, DPI , ..., DPk) are stored together in a header area HB.
  • the data segment DS includes for storing the actual message data DO, Dl to Dk.
  • This data segment (or data section) DS depends in its data volume from the respective data volume of the stored message data, here z. For example, in DBO six words, DBl one word and DBk two words.
  • the respective pointer elements DPO, DPI to DPk thus always point to the beginning, ie to the start address of the respective data area DBO, DB1 to DBk, in which the data DO, D1 to Dk of the respective messages 0, 1 to k are stored.
  • the division of the message memory 300 between header segment HS and data segment DS is variable and depends on the number k of 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 freed 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 volume of the messages is thus minimal and can even be zero.
  • the first and second data ie the configuration data KD (KDO, KDl, ..., KDk) and the actual data D (DO, Dl, ..., Dk) in a predetermined Store sequence so that the order of the header areas HBO to HBk in the header segment HS and the order of the data areas DBO to DBk in the data segment DS is identical. Then could even be dispensed with a pointer element under certain circumstances.
  • the message memory is associated with a fault detection generator, in particular a parity bit generator element and a fault detection tester, in particular a parity bit test element, 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.
  • a fault detection generator in particular a parity bit generator element
  • a fault detection tester in particular a parity bit test element
  • 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.
  • the available storage space is optimally utilized.
  • the user has the option to share a data storage area for different messages.
  • the size of the message memory 300 can be adapted to the needs of the application by adapting the memory depth (number m of words) of the memory used, without changing the other functions of the communication controller.
  • the host CPU access that is to say writing and reading of configuration data or status data and of the actual data via the buffer memory arrangement 201 and 202, will now be described in greater detail with reference to FIGS. 4 to 6 and 7 to 9.
  • 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.
  • the control of these processes via the message manager 200, which will be described later in more detail in Figures 10, 11 and 12.
  • FIGS. 4, 5 and 6 the write accesses to the message memory 300 by the host CPU of the subscriber CPU 102 via the input buffer 201 are first explained in greater detail.
  • FIG. 4 once again shows the communications module 100, with only the parts of the communications module 100 relevant here being shown for reasons of clarity.
  • the message manager 200 responsible for controlling the processes and two control registers 403 and 404 which, as shown, can be accommodated outside the message manager 200 in the communication module 100, but can also be contained in the message administrator 200 itself.
  • 403 represents the input request register (Input Buffer Command Request
  • IBCR Input Buffer Command Mask Register
  • IBMR Input Buffer Command Mask Register
  • the accesses are controlled via the input request register 403 and via the input mask register 404.
  • the numbers from 0 to 31 in FIG. 5 show the respective bit positions in 403 by way of example here for a width of 32 bits. The same applies to the register 404 and the bit positions 0 to 31 in the mask register 404 from FIG. 6.
  • the bit positions 0 to 5, 15, 16 to 21 and 31 of the register 403 have a special function with regard to the sequence control.
  • an identifier IBRH Input Buffer Request Host
  • an identifier IBRS Input Buffer Request Shadow
  • register 15 of 403 IBSYH and in register 31 of 403 IBSYS are registered as access identifiers.
  • the host CPU 102 writes the data of the message to be transferred into the input buffer memory 201.
  • the host CPU 102 can only send the configuration and header data KD of a message for the header segment HS of the message buffer.
  • Which part of a message, that is to say configuration data and / or the actual data, is to be transmitted is determined by the special data identifiers LHSH and LDSH in the input tag register 404.
  • LHSH Load Header Section Host
  • LDSH Load Data Section Host
  • start bit or the start identifier STXRH is set in bit position 2 of the input mask register 404, after the transfer of the respective configuration data and / or actual data to be transmitted to the message memory 300, a send request (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.
  • the counterpart corresponding thereto for the shadow memory 401 is the start identifier STXRS (Set Transmission X Request Shadow), which is contained by way of example in bit position 18 of the input marking register 404 and, in the simplest case, is also designed as one bit.
  • STXRS Set Transmission X Request Shadow
  • the function of STXRS is analogous to the function of STXRH, referring only to the shadow memory 401.
  • the host CPU 102 When the host CPU 102 writes the message ID, in particular, the message object number in the message memory 300 into which the data of the input buffer memory 201 is to be transferred to the bit positions 0 to 5 of the input request register 403, that is, after IBRH, the partial buffer memory 400 of FIG Input buffer memory 201 and the associated shadow memory 401 are swapped, respectively, and the respective access of host CPU 102 and message memory 300 to the two sub-memories 400 and 401 is interchanged, as indicated by the semicircular arrows.
  • This z. B. also 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.
  • the register areas IBRH and IBRS are exchanged.
  • IBRS thus shows the identifier of the message, ie 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, ie which area in the message memory 300 as the last data (KD and / or D) has received the shadow memory 401.
  • IBSYS Input Buffer Busy Shadow
  • IBSYH input buffer busy host
  • IBSYH input buffer busy host
  • the mechanism thus described allows the host CPU 102 to continuously transfer data to the message objects contained in the message memory 300, consisting of the header area HB and the data area DB, provided that the access speed of the host CPU 102 to the input buffer memory 201 is less than or equal to the internal one Data transfer rate of the FlexRay IP module, ie the communication block 100.
  • FIGS. 7, 8 and 9 the read accesses to the message memory 300 by the host CPU or user CPU 102 via the output buffer 202 are explained in greater detail.
  • Figure 7 once again shows the communication module 100, where for reasons of clarity, only the relevant parts of the communication module 100 are shown here. On the one hand, this is the responsibility of controlling the processes.
  • 703 represents the output buffer command request register (OBCR) and 704 the output buffer command mask register (OBCM).
  • OBCR output buffer command request register
  • OBCM output buffer command mask register
  • This output buffer 202 is now likewise divided or doubled, as a partial buffer 701 and a shadow memory associated with the partial buffer memory 700.
  • a continuous access of the host CPU 102 to the messages or message objects respectively data of the Message memory 300 and thus data integrity and accelerated transmission are now ensured in the opposite direction from the message memory 300 to the host 102.
  • the accesses are controlled via the output request register 703 and via the output mask register 704.
  • the numbers from 0 to 31 represent the respective bit positions in 703 by way of example for a width of 32 bits (see FIG ).
  • register 704 and bit positions 0 to 31 in 704 see FIG.
  • bit positions 0 to 5, 8 and 9, 15 and 16 to 21 of register 703 have a special function with respect to the flow control of the read access.
  • an identifier OBRS Output Buffer Request Shadow
  • an identifier OBRH Output Buffer Request Host
  • an identifier OBSYS Output Buffer Busy Shadow
  • Excellent are also the digits 0 and 1 of the output mask register 704, wherein in the bit positions 0 and 1 with RDSS (Read Data Section Shadow) and RHSS (Read Header Section Shadow) other IDs are entered as data IDs. 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). Here again, these data identifications are in the simplest form, namely designed in each case as one bit. In bit position 9 of the register 703, a start identifier REQ is entered. Furthermore, a switchover identifier VIEW is provided, which is entered by way of example in bit position 8 of register 703.
  • the host CPU 102 requests the data of a message object from the message memory 300 by writing the ID of the desired message, that is, in particular, the number of the desired message object to OBRS in the bit positions 0 to 5 of the register 703.
  • the host CPU 102 can read only the status or configuration data KD of a message from a header area or only the data D actually to be transmitted 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.
  • a start identifier serves to start the transmission from the message memory 300 to the shadow memory 700. That if a bit is used as the identifier, as in the simplest case, the transmission from the message memory 300 to the bit memory 9 is set by setting bit REQ in bit position 9 in the output request register 703
  • Shadow memory 700 started.
  • the current transmission is again indicated by an access identifier, here again in the simplest case by a bit OBSYS in the register 703.
  • REQ bit can only be set if OBSYS is not set, ie no ongoing transmission is currently taking place.
  • the actual sequence could now on the one hand comparable to the opposite direction as described in Figures 4, 5 and 6 described (complementary register assignment) and done or in a variation by an additional identifier, namely a switchover VIEW in bit position 8 of the register 703.
  • the bit OBSYS is reset and by setting the bit VIEW in the output request register 703, the partial buffer memory 701 and the associated shadow memory 700 are exchanged or exchanged, and the host CPU 102 can now read the message memory requested by the message memory 300 message object, ie the corresponding message from the sub-buffer 701.
  • the register cells OBRS and OBRH are exchanged.
  • RHSS and RDSS are exchanged for RHSH and RDSH.
  • the bit VIEW can only be set if OBSYS is not set, ie no ongoing transmission takes place.
  • This output buffer 202 like the input buffer 201, is designed in two parts to provide continuous access by the host CPU 102 to the message objects residing in the message memory 300 are guaranteed.
  • the advantages of high data integrity and accelerated transmission are achieved.
  • the use of the described input and output buffers 201, 202 ensures that a host CPU 102 can access the message memory 300 uninterruptedly despite the module-internal latencies.
  • the data transmission, in particular the forwarding in the communication module 100, by the message manager 200 is made.
  • the message manager 200 is shown in FIG.
  • the message manager 200 can be represented in its functionality by a plurality of state machines or state machines, ie finite state machines, so-called finite state machines (FSM). 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 designated 501 (input / output buffer state machine).
  • This IOBF-FSM could also be divided into two finite-state machines per transmission direction with regard to the input buffer memory 201 or the output buffer memory 202.
  • IBF-FSM Input Buffer FSM
  • OBF-FSM Output Buffer FSM
  • IBF FSM, OBF-FSM, TBF1-FSM, TBF2-FSM, AFSM maximum of five state machines
  • a second finite-state machine is here divided in the course of the preferred embodiment into two blocks 502 and 503 and serves the two channels A and B with respect to the memory 205 and 206, as described for Fig. 2.
  • a finite-state machine can be provided in order to operate both channels A and B or, as in the preferred form, designate a finite-state machine TBF1-FSM as 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).
  • TBF1-FSM designate a finite-state machine TBF1-FSM as 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).
  • an arbiter finite state machine is indicated at 500.
  • the data (KD and / or D) are in a by a clock means such.
  • a VCO Voltage Controlled Oscillator
  • a quartz crystal, etc. generated or transferred from this adapted clock in the communication module 100.
  • the clock T can be generated in the block be or externally, z. B. as a bus clock, be given.
  • This arithmetic finite state machine AFSM 500 alternately gives access to the message memory 300 to one of the three finite state machines 501-503, in particular for one clock period T in each case.
  • the time available is corresponding to the access requirements of the individual state machines 501, 502, 503 to these requesting state machines. If an access request is made by only one finite-state machine, it will receive 100% of the access time, ie all the clocks T. If an access request is received from 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.
  • the first finite-state machine 501 ie IOBF-FSM, performs the following actions as required:
  • the state machine 502 for channel A ie TBF1-FSM, performs the following actions:
  • TBF2-FSM is the finite state machine for channel B in block 503. This performs the data transfer from the selected message object in message memory 300 to buffer memory 205 of channel B and the data transfer from buffer 205 to the selected message object in the message memory 300.
  • the search function is analogous to TBFl-FSM for a matching message object in the message memory 300, wherein upon receipt the message object (Receive Buffer) is searched for storing a message received on channel B in the context of acceptance filtering and the next on transmission Channel B message to be sent or message object (transmit buffer).
  • FIG. 11 shows again the processes and the transmission paths.
  • the three state machines 501-503 control the respective data transfers between the individual parts.
  • the host CPU is shown again at 102, the input buffer memory at 201 and the output buffer memory at 202. With 300 the message memory is shown and the two buffer memories 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, designated 501 controls the data transfer ZlA and ZlB, ie from the input buffer memory 201 to the message memory 300 and from the message memory 300 to the output buffer 202.
  • the data is transmitted via data buses having a word width of, for example, 32 bits and any other bit number is possible.
  • This data transmission is controlled by TBFI-FSM, ie the state machine 502 for channel A.
  • the transmission Z3 between message memory 300 and buffer memory 205 is controlled by the state machine TBF2-FSM, ie 503.
  • the transfer of a complete message object via said transmission paths requires several clock periods T. Therefore, the transmission time is divided up by the arbiter, ie the AFSM 500, in relation to the clock periods T.
  • the data paths are between those of the message handler 200 controlled memory components shown.
  • data should advantageously be exchanged simultaneously at the same time only on one of the illustrated paths Z1A and Z1B as well as Z2 and Z3.
  • FIG. 12 shows an example of how the available system clocks T are divided by the arbiter, that is to say the AFSM 500, into the three requesting state machines.
  • access requests are made by state machine 501 and state machine 502, ie, half of the time is split between the two requesting state machines.
  • state machine 501 receives access in the clock periods T1 and T3 and state machine 502 in the clock periods T2 and T4.
  • phase 2 (II) the access is done only by the state machine 501, so that every three clock periods, ie 100% of the access time from T5 to T7 on IOBF-FSM accounts.
  • phase 3 (III) access requests are made by all three state machines 501 to 503, so that one third of the total access time takes place.
  • the arithmetic AFSM 500 then distributes the access time, for example, such that the finite state machine 501 in the clock periods T8 and TIl, the finite state machine 502 in the clock periods T9 and T12 and the finite state in the clock periods T10 and T13 - Machine 503 gets access.
  • the access takes place through two state machines, 502 and 503, on the two channels A and B of the communication module 100, so that an access distribution of the clock periods T14 and T16 on finite state machine 502 and in T15 and T17 on finite state machine 503.
  • the arithmetic state machine AFSM 500 thus ensures that if more than one of the three state machines 501-503 makes a request for access to the message memory 300, the access is intermittently and alternately split to the requesting state machines 501-503. This procedure ensures the integrity of the message objects stored in the message memory 300, that is, the data integrity. If, for example, the host CPU 102 wants to read out a message object via the output buffer 202 while a received message is being written to this message object, then either the old state or the new state will be read out, without which the accesses in the Message object in message memory 300 itself collide.
  • the described method allows the host CPU 102 to read or write any message object in the message memory 300 during operation without the selected message object for the duration of access of the host CPU 102 from participating in the data exchange on both channels of the FlexRay bus 101 would be blocked (Buffer Locking).
  • Buffer Locking the integrity of the data stored in the message memory 300 is ensured by the intermittent interleaving of the accesses, and the transmission speed is increased, even by utilizing the full bandwidth.
  • a communication participant according to the invention is designated in its entirety by the reference numeral 900.
  • the subscriber 900 is connected via a connection 106 to a communication link 101, which is designed, for example, as a FlexRay data bus. Subscriber 900 may communicate (or data or messages) with other connected subscribers (not shown).
  • the subscriber 900 comprises a microcontroller 102 (host CPU), and a communication controller 750 (so-called communication controller CC), which is embodied, for example, as a FlexRay communications controller.
  • the communication controller 705 comprises a FlexRay communication module 100, which has already been described in detail above.
  • the communication module 100 may be formed as an integral part of the communication controller 705 or as a separate component. To improve the connection between the FlexRay communication module 100 and the microcontroller 102, more precisely to improve the connection between a message memory 300 of the
  • the invention proposes to arrange a state machine 800 in the subscriber interface 107 (Customer Interface, CIF) between the communication module 100 and the microcontroller 102.
  • the state machine 800 is preferably hardwired.
  • the state machine 800 alters the subscriber interface 107 to make it worthwhile setting up and starting the DMA controller 812 of the microcontroller 102.
  • the state machine 800 ensures that the data or messages to be transmitted are presented to the DMA controller 812 in such an optimized manner that it can also transmit larger amounts of data or multiple messages with a single call to the DMA controller 812.
  • a single access is composed of the previously required many small accesses or are generated from many segmented address areas with data virtually less contiguous address areas, which can access the DMA controller 812 effectively.
  • latencies of the microprocessor 811 of the microcontroller 102 during data transfer can be avoided.
  • the subscriber-specific sub-component 204 (Customer CPU Interface; CIF) connects the state machine 800 to the FlexRay communications module 100.
  • CIF Customer CPU Interface
  • a bidirectional data line 216, an address line 217, and a control input 218 are provided.
  • Also provided with 219 is an interrupt or interrupt output.
  • the subscriber-specific sub-module 204 is connected to the subscriber-independent sub-module 203 (Generic CPU Interface, GIF), ie the FlexRay communications module 100 has a generic, ie general, CPU interface 203, to which corresponding subscriber-specific sub-modules 204 (CIF) Have a large number of different 900 custom subscriber connected. As a result, depending on the subscriber 900, only the partial module 204 must be varied, which means a significantly lower outlay. The CPU interface 203 and the remaining communication module 100 can be adopted unchanged.
  • the state machine 800 is preferably part of the subscriber-specific sub-module 204 (CIF). Of course, however, it is conceivable that the intelligent subscriber interface 107 according to the invention is designed as a separate component.
  • the subscriber interface 107 or the state machine 800 is connected to the microcontroller 102 via a plurality of lines.
  • a bidirectional data line 816, an address line 817 and a control input 818 are provided.
  • Also provided with 819 is an interrupt or interrupt output.
  • FIG. 15 shows the various signal curves for a read operation (read) in the sense of the method according to the invention.
  • the microcontroller 102 is shown in detail. It comprises a memory 810 which, for example, can be designed as a random access memory (RAM).
  • the memory 810 is for storing incoming messages before
  • the microcontroller 102 includes a microprocessor 811, a so-called host CPU, a DMA controller 812, and an interface 813 to peripheral modules (eg, a so-called expansion bus module ).
  • An internal arbitration unit is designated by reference numeral 814.
  • the subscriber interface 107 comprises the state machine 800.
  • the interface 107 comprises at least one register 802, which is, for example, 64 bits in size and which is used to configure the
  • State machine 800 or the data transfer controlled by state machine 800 serves.
  • corresponding bits are set in the configuration register 802, for example the direction of the data transmission (read, read or write, write), identifiers (for example message numbers) of the messages to be transmitted, order of transmission of the messages, length of the messages, or one of several pre-stored subsequences for data transmission.
  • the configuration parameters may also relate to the number of data words to be transmitted or any other information regarding the forthcoming data transmission.
  • the subscriber interface 107 has a sequence memory 804 which, for example, is designed as a random access memory (RAM). References to certain messages stored in the message memory 300 and information about the messages are stored in the sequence RAM 804.
  • the State machine 800 invokes entries of sequence memory 804 to coordinate and control the data transfer.
  • the sequence memory 804 comprises a plurality, preferably 128, fields with sequence entries.
  • the sequence entries relate, for example, to an identifier (eg a number) of the sequence entry, an identifier or a reference (eg a buffer number) to one or more messages (so-called buffers) of the message memory 300 or the buffer memory 201 or 202, and the size of the message (the buffer).
  • the various sequence entries can be called by the state machine according to specifications of the microprocessor targeted.
  • the sequence entries can be called up unchanged in the saved form or in adapted form.
  • the call of the sequence entry includes certain parameter values for adapting variable parameters of the sequence entry.
  • the sequence entries in the sequence memory 804 preferably relate to frequently occurring transmission sequences, which are stored in advance and are called when necessary. In this way, by calling a single sequence or subsequence (of one or more sequence entries), an extensive data transmission between the message memory 300 and the DMA controller 812 can be triggered.
  • the configuration parameters that are transferred from the microcontroller 811 of the microcontroller 102 into the configuration and status registers 802 at the beginning of the data transfer may also include an identifier (eg, the numbers) of one or more sequence entries that be called by the state machine 800 as part of the data transfer.
  • the reading process is initiated as soon as data transmitted via the FlexRay data bus 101 are stored in the message memory 300 of the FlexRay communication module 100. After receipt of the data in Message memory 300 may trigger an interrupt or a corresponding command to the microcontroller 102 are transmitted. However, it is also conceivable that the input of the data in the message memory 300 is detected by the microcontroller 102, for example by regular polling.
  • the microprocessor 811 configures the DMA controller 812 in a step 850.
  • the microprocessor 811 knows how much data to transmit, knows the size of the messages, and other information regarding the upcoming data transfer. In step 850, this information is at least partially communicated to the DMA controller 812 by the microprocessor 811.
  • the microprocessor 811 configures the state machine 800 in a step 852 by writing configuration parameters to the configuration register 802. The state machine 800 then receives a start command from the microprocessor 811 and then begins the actual data transfer.
  • An outer loop begins at the first data buffer to be transferred.
  • An inner loop begins at the first data word of the first data buffer to be transmitted.
  • the state machine 800 transmits a request / view command 854 to the output buffer 202 or to the configuration registers 703, 704 of the output buffer 202, respectively, to make the data word visible in the output buffer 202.
  • the data word is read out of the message memory 300 via the output buffer 202.
  • the state machine 800 fetches this data word from the output buffer 202 via the generic interface 203 (GIF) in a step 856.
  • GIF generic interface 203
  • header segment HS only the data segment DS or both, both header segment HS and data segment DS, can be transmitted.
  • a transfer of head segment HS and data segment DS is preferably first the head segment HS and then transfer the data segment DS, but the reverse order is also possible.
  • the output buffer 202 or a higher-level control unit of the FlexRay communication module 100 receives information and instructions as to which data word is to be transferred from the message memory 300 into the output buffer 202 next.
  • the data word from the output buffer 202 is now available in the state machine 800 for collection by the DMA controller 812. This is communicated to the DMA controller 812 through a Data Ready command 858. Thereafter, the DMA controller 812 reads in the ready data word in a step 860 and forwards it for further processing. Subsequently, the DMA controller 812 waits for the next data-ready signal 858.
  • the inner loop is incremented to the next data word of the first data buffer, and the above steps are repeated until the last data word of the first data buffer to be read in is successfully read.
  • the outer loop is incremented to the next data buffer to be transferred, and the above steps are repeated until all the data words of the last data buffer to be read have been successfully read.
  • the reading-in of a specific data buffer can take place, for example, by calling a corresponding subsequence from the sequence memory 804.
  • the DMA controller 812 notifies the microprocessor 811 of the end of the data transfer. This can, for example, by a suitable
  • All data transfer is controlled and coordinated by the state machine 800.
  • the host CPU 811 only has to initiate the data transfer by the request command 850, everything else is done by the state machine 800 done so that the greatest possible relief of the host CPU 811 of the microcontroller 102 is given.
  • a conventional subscriber interface 107 is expanded by a state machine 800.
  • At least one sequence of message buffers with associated payload length can be programmed into a memory, for example a RAM.
  • the memory is preferably also part of the subscriber interface 107 according to the invention.
  • a DMA controller 812 of the subscriber 102 For each retrieval of at least one of the partial or total sequences, a DMA controller 812 of the subscriber 102 only has to be triggered once.
  • the (partial) sequences are defined via start / end numbers. Through a maximum of 128 sequence entries, different orders, eg. As read / write. A simultaneous reading and writing via DMA does not take place.
  • a DMA sequence must always be completely processed before a new request command 850 can be started. In the event of an error, an interrupt is sent or a flag is set.
  • FIG. 16 shows the signal curves for writing data (Write) to the message memory 300 of the communication module 100.
  • the writing process is very similar to the reading process. In the following, essentially only the differences between reading and writing will be discussed in more detail.
  • the microprocessor 811 configures the DMA controller 812 in a step 850.
  • the microprocessor 811 configures the state machine 800 in a step 852 by writing configuration parameters to the configuration register 802.
  • the state machine 800 then receives a start command from the microprocessor 811 and then begins the actual data transfer.
  • the outer loop for the currently-to-be-exceeded data buffer and the inner loop for the current go through the transmitted data word of the current data buffer.
  • the input buffer memory 201 is filled in writing (inner loop) and then the command for internal storage in the message memory 300 is given (outer loop).
  • state machine 800 sends a data-ready signal 858 to DMA controller 812 to signal that it is ready to receive the current data word from DMA controller 812. Then, in a step 862, the DMA controller 812 transmits the pending data word to the state machine 800. From there, the data word is then transmitted in a step 864 to the input buffer 201 of the FlexRay communication module 100.
  • Control unit of the FlexRay communication module 100 receives in a step 866 information and instructions about where in the message memory 300, the stored in the input buffer 201 data word is to be stored.
  • suitable information is stored in one or more of the configuration registers 403, 404, for example by setting appropriate bits.
  • the data word is stored from the input buffer 201 at the corresponding location of the message memory 300, from where it is then transmitted alone or together with other data words from the message memory 300 via the FlexRay communication link 101.
  • the inner loop is incremented to the next data word of the first data buffer, and iterates through the above steps until the last data word of the first data buffer has been successfully written into the input buffer 201. Subsequently, the outer loop is on the next is incremented to be transmitted data buffer, and the above steps are again run until all data words of the last data buffer to be written have been successfully transmitted to the communication module 100.
  • the writing of a specific data buffer can, for example, be done by calling a corresponding subsequence from the sequence memory 804.
  • the DMA controller 812 notifies the microprocessor 811 of the end of the data transfer. This can be done, for example, by a suitable command (Data Transmission Ready) or by an interrupt command.
  • the invention relates to a method and a device for the transmission of data between a microprocessor (host CPU) and a peripheral device, for example in the form of a communication controller for communication, in particular in the FlexRay.
  • the peripheral device is preferably designed as a FlexRay communication controller 750, which is connected via a connection 106 to a FlexRay communication link 101, which is formed, for example, as a FlexRay data bus.
  • the microprocessor 811 and the peripheral device are part of a communications party 900.
  • Data communications between the microprocessor host CPU and the peripheral device 750 are typically limited in resources, i. the bandwidth is limited. This is typically the case when using a serial interface.
  • communication module 100 consists in the fact that the access becomes faster because the commands have the knowledge about the arrangement of the data, the type of accesses and the corresponding addresses in the form of a further state machine. In this way, the arrangement of the data, the type of access and / or the corresponding addresses automatically be provided so that they no longer supplied by the host CPU 811 and thus no longer need to be transmitted via the interface 107 or in detail over the connections 216 to 218. Furthermore, the type of access (read / write) can already be permanently installed in this device 107, as already mentioned, so no longer has to be transmitted.
  • the predefined or preprogrammed partial sequences with regard to the information about the data transmission are simply called up or activated and provided with additional values.
  • the sequences By calling one or more of the sequences, several message buffer contents can be transferred from or to the communication module 100 simply and quickly.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Abstract

The invention relates to a user interface (107) which is between a flexray-communication component (100), which is connected to a flexray-communication connection (101), via which messages are transmitted, and which comprises a message store (300) for intermediately storing messages from the flexray-communication connection (101) or for the flexray-communication connection (101), and a microcontroller (102) which is associated with the flexray-communication component (100) and which comprises a microprocessor (811) and a direct-memory-access (DMA) controller (812) for exchanging data with the message store (300). In order to improve the connection of the DMA-controller (812) of the microcontroller (102) to the flexray-communication component (100), the user interface (107) comprises a state machine (800) which automatically co-ordinates and controls data transfer between the message store (300) of the flexray communication component (100) and the DMA controller (812) according to the configuration by the microprocessor (811) of the microcontroller (102).

Description

Teilnehmerschnittstelle zwischen einem Mikrocontroller und einem FlexRay- Kommunikationsbaustein, FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche SchnittstelleSubscriber interface between a microcontroller and a FlexRay communication module, FlexRay subscriber and method for transmitting messages via such an interface
Die vorliegende Erfindung betrifft eine Teilnehmerschnittstelle zwischen einem FlexRay- Kommunikationsbaustein, der an eine FlexRay-The present invention relates to a subscriber interface between a FlexRay communication module which is connected to a FlexRay
Kommunikationsverbindung angeschlossen ist, über welche Botschaften übertragen werden, und der einen Botschaftsspeicher zum Zwischenspeichern von Botschaften von der FlexRay-Kommunikationsverbindung oder für die FlexRay- Kommunikationsverbindung umfasst, und einem dem FlexRay- Kommunikationsbaustein zugeordneten Mikrocontroller, der einen Mikroprozessor und einen Direct- Memory- Access (DMA) Controller für einen Datenaustausch mit dem Botschaftsspeicher aufweist.Communication link is connected, via which messages are transmitted, and which comprises a message memory for buffering messages from the FlexRay communication link or for the FlexRay communication link, and a FlexRay communication block associated with the microcontroller, a microprocessor and a direct memory access (DMA) controller for a data exchange with the message memory.
Die Erfindung betrifft außerdem einen FlexRay-Teilnehmer, der einen Mikrocont- roller, einen FlexRay- Kommunikationsbaustein, der an eine FlexRay-The invention also relates to a FlexRay subscriber who has a microcontroller, a FlexRay communication module, which is connected to a FlexRay device.
Kommunikationsverbindung angeschlossen ist, über welche Botschaften übertragen werden, und eine Teilnehmerschnittstelle zwischen dem Mikrocontroller und dem Kommunikationsbaustein aufweist. Der Mikrocontroller umfasst einen Mikroprozessor und einen Direct- Memory- Access (DMA) Controller. Der Kom- munikationsbaustein umfasst einen Botschaftsspeicher zum Zwischenspeichern von Botschaften von der FlexRay-Kommunikationsverbindung oder für die Flex- Ray- Kommunikationsverbindung.Communication connection is connected, via which messages are transmitted, and has a subscriber interface between the microcontroller and the communication module. The microcontroller includes a microprocessor and a direct memory access (DMA) controller. The communication module comprises a message memory for temporary storage messages from the FlexRay communications link or for the FlexRay communications link.
Schließlich betrifft die vorliegende Erfindung auch ein Verfahren zur Datenüber- tragung zwischen einem Botschaftsspeicher eines FlexRay-Finally, the present invention also relates to a method for data transmission between a message memory of a FlexRay device.
Kommunikationsbausteins, der an eine FlexRay-Kommunikationsverbindung angeschlossen ist, über welche Botschaften übertragen werden, und einem Direct- Memory- Access (DMA) Controller eines Mikrocontrollers.Communication module, which is connected to a FlexRay communication link, via which messages are transmitted, and a direct memory access (DMA) controller of a microcontroller.
Stand der TechnikState of the art
Die Vernetzung von Steuergeräten, Sensorik und Aktuatorik mit Hilfe eines Kommunikationssystems und einer als Bussystem ausgebildeten Kommunikati- onsverbindung 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 devices, sensors and actuators with the aid of a communication system and a communication link designed as a bus system has increased dramatically in recent years in modern motor vehicles but also in mechanical engineering, in particular in the machine tool sector, and in the field of automation. Synergy effects through distribution of functions on several ECUs can be achieved. This is called distributed systems. Communication between different subscribers takes place more and more via a communication system designed as a bus system. The communication traffic on the bus system, access and reception mechanisms as well as error handling are regulated by a protocol.
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 Kommunikationsver- bindung 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.A well-known protocol for this is the FlexRay protocol, which is currently based on the FlexRay protocol specification v2.0. The FlexRay protocol defines a fast, deterministic and fault-tolerant bus system, especially for use in a motor vehicle. The data transmission according to the FlexRay protocol is carried out according to a Time Division Multiple Access (TDMA) method. The data transmission via the communication connection is carried out in regularly recurring transmission cycles, each of which is divided into several data frames, which are also referred to as time slots. The participants or the messages to be transmitted are assigned fixed time slots in which they have exclusive access to the communication connection. The time slots are repeated in the specified transmission cycles, so that the time at which a message is transmitted over the bus can be accurately predicted and the bus access is deterministic.
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 so genannte 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.To make the most of bandwidth for message transmission on the bus system, FlexRay divides the transmission cycle, which can also be referred to as cycle or bus cycle, into a static and a dynamic part. The fixed time slots are located in the static part at the beginning of a bus cycle. In the dynamic part, the time slots are allocated dynamically. In this case, exclusive bus access is now only possible for a short time, for one or more so-called minislots. Only if a bus access occurs within a minislot, the time slot is extended by the required time. 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 MBiVs (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 physi- kaiischen 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. 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 so genannte globale Zeit. Für die Uhrsynchronisation werden Syn- chronisationsnachrichten 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.FlexRay communicates via two physically separate lines of the communication link at a maximum data rate of 10 MBiVs (10 MBaud). Every 5 ms, and even every 2.5 ms in some communication systems, one bus cycle is completed. The two channels correspond to the physical layer, in particular the OSI (Open System Architecture) layer model. The two channels are mainly used for the redundant and thus fault-tolerant transmission of messages, but can also transmit different messages, which would then double the data rate. FlexRay can also be operated at lower data rates. In order to realize synchronous functions and to optimize the bandwidth by small distances between two messages, the participants or the distributed components in the communication network need a common time base, the so-called global time. For clock synchronization, synchronization messages are transmitted in the static part of the cycle. Using a special algorithm according to the FlexRay specification, the local time of a subscriber is corrected in such a way that all local clocks synchronize to one 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 so genannten 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.A FlexRay device, which can also be referred to as a FlexRay network node or host, contains a participant or host processor, a FlexRay or communication controller, and a bus guardian in bus monitoring. The user processor delivers and processes the data that is transmitted via the FlexRay communication controller and the FlexRay communication connection. For communication in a FlexRay network, messages or message objects can be stored with eg. For example, 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.In order to couple a FlexRay communication connection via which messages are transmitted with a FlexRay subscriber, DE 10 2005 034 744, which was not yet published at the filing date of the present invention, employs a FlexRay communication module which is connected to the user interface via a subscriber interface Subscriber and connected to the communication link via another connection. 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 teilnehmerunab- hä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-In the communication module, an interface module is provided consisting of two parts, wherein the one component independent of the subscriber and the other sub-module is subscriber-specific. The subscriber-specific sub-module, which is also referred to as Customer CPU Interface (CIF), connects a customer-specific subscriber in the form of a subscriber-specific host CPU to the FlexRay communication module. The subscriber-independent submodule, also referred to as the Generic CPU Interface (GIF), represents a generic, that is to say general, CPU interface, via which different customer-specific subordinate components, in other words Customer CPU Interfaces (CIFs), can be used. Connect CPUs to the FlexRay communication block. This makes it possible to easily adapt the communication module to different subscribers, since depending on the subscriber, only the subscriber-specific sub-module must be varied, while the subscriber-independent sub-module and the remaining communication module can always be configured the same. With the aid of the communication module, a standard interface is thus created for connecting any FlexRay subscriber to a FlexRay device.
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 TeN- baustein als Softwarefunktion, realisiert werden.Communication connection, where the interface can be flexibly adapted by simple variation of the subscriber-specific sub-module to any trained or kind of participants. In this case, the sub-blocks can also be implemented within the one interface block in each case in software, ie each sub-module as a software function.
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 Kommunikationsbau- stein über die Teilnehmerschnittstelle durch den Teilnehmer auch frei programmierbar sein.The state machine in the FlexRay communication block may be hardwired into hardware. The sequences can also be hardwired into hardware. Alternatively, the state machine can also be freely programmable in the communication module via the subscriber interface by the subscriber.
Die Informationen enthalten vorzugsweise den Zugriffstyp und/oder die Zugriffsart und/oder die Zugriffsadresse und/oder die Datengröße und/oder Steuerinfor- mationen 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. Information on 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 Konfigurati- ons- 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, together with configuration and status data. The exact structure of the message memory of the known communication module can be found in the cited document DE 10 2005 034 744.
Es hat sich gezeigt, dass die Übertragung der Botschaften zwischen dem Botschaftsspeicher des FlexRay- Kommunikationsbausteins und dem FlexRay- Teilnehmer nur relativ langsam und unter Beanspruchung großer Ressourcen seitens des Teilnehmers erfolgt, insbesondere hinsichtlich der erforderlichen Rechenleistung der Host-CPU und des benötigten Speicherplatzes. Bei der bekannten Teilnehmerschnittstelle zwischen FlexRay- Kommunikationsbaustein und FlexRay-Teilnehmer ist eine ständige Aktivität der Host-CPU (evtl. DMA, Direct Memory Access) gefordert, um neu eingegangene Bufferinhalte des Bot- Schaftsspeichers des Kommunikationsbausteins in den Speicher der Host-CPU zu überführen. Mit dem so genannten Polling kann die Host-CPU regelmäßig prüfen, ob neue Botschaften im Botschaftsspeicher der Teilnehmerschnittstelle abgelegt worden sind. Ein direkter Zugriff der Host-CPU auf den Botschaftsspeicher des Kommunikationsbausteins ist nicht möglich. Insbesondere wenn die Datenrate der FlexRay-Kommunikationsverbindung voll ausgeschöpft wird, erweist sich dies als nachteilig. Zudem müssen Wartezeiten der Host-CPU für das Setzen von Registern etc. in Kauf genommen werden.It has been found that the transmission of the messages between the message memory of the FlexRay communication module and the FlexRay subscriber takes place only relatively slowly and with the use of large resources by the subscriber, in particular with regard to the required computing power of the host CPU and the required memory space. In the known subscriber interface between the FlexRay communication module and the FlexRay subscriber, a constant activity of the host CPU (possibly DMA, direct memory access) is required in order to transfer newly received buffer contents of the message memory of the communication module into the memory of the host CPU , With the so-called polling, the host CPU can regularly check whether new messages have been stored in the message memory of the subscriber interface. Direct access of the host CPU to the message memory of the communication block is not possible. In particular, if the data rate of the FlexRay communication link is fully utilized, this proves to be disadvantageous. In addition, waiting times of the host CPU for setting registers etc. must be accepted.
Nach dem Stand der Technik verfügt ein FlexRay-Teilnehmer zur Koordination und Steuerung der Datenübertragung zwischen dem Botschaftsspeicher des FlexRay-Kommunikationsbausteins und dem Teilnehmer über einen Mikroprozessor und einen DMA-Controller. Problematisch ist jedoch, dass die Botschaften in dem Botschaftsspeicher nicht sequentiell, also aufeinander folgend, abgelegt sind, sondern gezielt auf bestimmte Bereiche des Botschaftsspeichers ver- teilt sind. Der DMA-Controller kann immer nur auf Daten aus zusammenhängenden Bereichen des Botschaftsspeichers zugreifen. Das hat zur Konsequenz, dass der DMA-Controller zur Datenübertragung zwischen Botschaftsspeicher und Teilnehmer beim Stand der Technik mehrmals aufgesetzt und gestartet werden muss. Jedes Aufsetzen und Starten des DMA-Controllers erfordert die Übertragung einer erheblichen Datenmenge an Konfigurations-, Koordinationsund Steuerungsparametern. Am Ende eines jeden DMA-Controller-Aufrufs wird dem Mikroprozessor das Ende der Datenübertragung mitgeteilt, bspw. mittels Polling durch den Mikroprozessor oder durch einen von dem DMA-Controller ausgelösten Interrupt- Befehl. Beides erfordert erhebliche Ressourcen (Rechen- und Speicherkapazität) in dem Mikroprozessor. Es lohnt sich somit im Stand der Technik kaum bzw. nur in Ausnahmefällen, den DMA-Controller zur Datenübertragung zu programmieren. Zusammenfassend ist also die Anbindung des DMA- Controllers an den FlexRay- Kommunikationsbaustein im Stand der Technik nicht optimal.According to the prior art, a FlexRay subscriber has to coordinate and control the data transfer between the message memory of the FlexRay communication blocks and the subscriber via a microprocessor and a DMA controller. However, it is problematic that the messages in the message memory are not stored sequentially, ie consecutively, but are specifically distributed to specific areas of the message memory. The DMA controller can only access data from contiguous areas of the message memory. This has the consequence that the DMA controller for data transmission between message memory and participants in the prior art has to be set up and started several times. Each setup and startup of the DMA controller requires the transmission of a significant amount of data in configuration, coordination, and control parameters. At the end of each DMA controller call, the end of the data transfer is communicated to the microprocessor, for example by means of polling by the microprocessor or by an interrupt command triggered by the DMA controller. Both require significant resources (computing and storage capacity) in the microprocessor. It is therefore worthwhile in the prior art hardly or only in exceptional cases to program the DMA controller for data transmission. In summary, the connection of the DMA controller to the FlexRay communication module in the prior art is not optimal.
Der vorliegenden Erfindung liegt deshalb die Aufgabe zugrunde, eine Möglichkeit zu schaffen, den DMA-Controller des Mikrocontrollers besser an den FlexRay- Kommunikationsbaustein anzubinden, um eine schnellere und vor allem res- sourcenschonendere Datenübertragung zwischen dem Botschaftsspeicher des Kommunikationsbausteins und dem DMA-Controller zu ermöglichen.The present invention is therefore based on the object to provide a way to better connect the DMA controller of the microcontroller to the FlexRay communication module to allow faster and especially resource-saving data transfer between the message memory of the communication module and the DMA controller ,
Zur Lösung dieser Aufgabe wird ausgehend von der Teilnehmerschnittstelle der eingangs genannten Art vorgeschlagen, dass die Teilnehmerschnittstelle eine Zustandsmaschine aufweist, welche nach Konfiguration durch den Mikroprozessor des Mikrocontrollers eine Datenübertragung zwischen dem Botschaftsspeicher des FlexRay- Kommunikationsbausteins und dem DMA- Controller selbständig koordiniert und steuert.To solve this problem is proposed starting from the subscriber interface of the type mentioned that the subscriber interface has a state machine, which after configuration by the microprocessor of the microcontroller, a data transfer between the Message memory of the FlexRay communication block and the DMA controller independently coordinates and controls.
Vorteile der ErfindungAdvantages of the invention
Erfindungsgemäß wird also die Zwischenschaltung einer Zustandsmaschine zwischen dem Mikrocontroller eines FlexRay-Teilnehmers und einem FlexRay- Kommunikationsbaustein des Teilnehmers vorgeschlagen, welche die Teilnehmerschnittstelle derart verändert, dass sich das Aufsetzen und Starten des DMA-Controllers des Mikrocontrollers lohnt. Mit anderen Worten sorgt die Zustandsmaschine dafür, dass dem DMA-Controller die zu übertragenden Daten bzw. Botschaften derart optimiert präsentiert werden, dass er auch größere Datenmengen bzw. mehrere Botschaften mit einem einzigen Aufruf des DMA- Controllers übertragen kann. Erfindungsgemäß wird also gewissermaßen ein einziger Zugriff aus den bisher erforderlichen vielen kleinen Zugriffen zusammengesetzt.Thus, according to the invention, the interposition of a state machine between the microcontroller of a FlexRay subscriber and a FlexRay communication module of the subscriber is proposed, which changes the subscriber interface in such a way that it pays to set up and start the DMA controller of the microcontroller. In other words, the state machine ensures that the data or messages to be transmitted are presented in an optimized manner to the DMA controller in such a way that it can also transmit larger amounts of data or multiple messages with a single call to the DMA controller. According to the invention, so to speak, a single access from the previously required many small accesses is composed.
Der Mikroprozessor des Mikrocontrollers des Teilnehmers konfiguriert zunächst die Zustandsmaschine und teilt ihr mit, ob sie lesen oder schreiben soll, welche Botschaften (Botschaftsnummern) übertragen werden sollen, und wie lang die zu übertragenden Botschaften sind. Mit Hilfe dieser Informationen greift die Zustandsmaschine dann derart auf den FlexRay- Kommunikationsbaustein zu, dass die gewünschten Daten bzw. Botschaften zwischen dem Botschaftsspeicher und dem DMA-Controller lesend oder schreibend übertragen werden. Die Zustandsmaschine liefert gewissermaßen die Intelligenz des DMA- Controllers, die dieser für komplexere Zugriffe auf größere Datenmengen, insbesondere mehrere Botschaften, unter Umständen sogar in verteilten Adressbereichen des Botschaftsspeichers benötigt. Mit anderen Worten, erzeugt die Zustandsmaschine einen virtuellen zusammenhängenden Adressbereich, wodurch der Einsatz des DMA-Controllers erst sinnvoll wird, da die Anzahl der zu übertragenden Daten (zum Aufsetzen des DMA-Controllers) und die Anzahl der Interrupts (am Ende eines DMA-Controller- Zyklus) deutlich verringert wird.The microcontroller of the participant's microcontroller first configures the state machine and tells it to read or write, which messages (message numbers) to transmit, and how long the messages to be transmitted are. With the help of this information, the state machine then accesses the FlexRay communication module in such a way that the desired data or messages between the message memory and the DMA controller are transmitted in read or write mode. To a certain extent, the state machine provides the intelligence of the DMA controller, which it requires for more complex access to larger amounts of data, in particular multiple messages, possibly even in distributed address areas of the message memory. In other words, the state machine generates a virtual contiguous address space, making the use of the DMA controller makes sense, since the number of data to be transmitted (to set up the DMA controller) and the number of interrupts (at the end of a DMA controller cycle) is significantly reduced.
Vorzugsweise liest der DMA-Controller von bzw. schreibt auf die gleichePreferably, the DMA controller reads from or writes to the same
Adresse des Botschaftsspeichers oder von vorgeschalteten Pufferspeichern zum Zwischenspeichern der zwischen Botschaftsspeicher und DMA-Controller zu übertragenden Daten. Vorteilhafterweise greift der DMA-Controller zum Lesen von Daten immer auf einen Ausgangspuffer des FlexRay- Kommunikationsbausteins und zum Schreiben von Daten immer auf einen Eingangspuffer zu.Address of the message memory or of upstream buffer memories for buffering the data to be transmitted between message memory and DMA controller. Advantageously, the DMA controller always accesses an output buffer of the FlexRay communication module for reading data and always an input buffer for writing data.
Gemäß einer vorteilhaften Weiterbildung der vorliegenden Erfindung wird vorgeschlagen, dass die Teilnehmerschnittstelle Konfigurations- und Statusregister aufweist, auf welche der Mikroprozessor des Mikrocontrollers zur Konfiguration der Zustandsmaschine Zugriff hat. Der Mikroprozessor konfiguriert die Zustandsmaschine also indem geeignete Konfigurationsparameter in die Konfigurations- und Statusregister der Teilnehmerschnittstelle geschrieben werden. Die Register können als Flip- Flops implementiert oder Teil eines großen Speichers, bspw. eines Random- Access- Memorys (RAM), also RAM- implementiert sein. Die Konfigurationsparameter betreffen bspw. die folgenden Informationen: lesende oder schreibende Datenübertragung;According to an advantageous development of the present invention, it is proposed that the subscriber interface has configuration and status registers to which the microcontroller of the microcontroller has access to configure the state machine. The microprocessor thus configures the state machine by writing appropriate configuration parameters into the configuration and status registers of the subscriber interface. The registers can be implemented as flip-flops or be part of a large memory, for example a random access memory (RAM), ie RAM. The configuration parameters relate, for example, to the following information: read or write data transmission;
Angaben (Botschaftsnummern) der zu übertragenden Botschaften; und - Länge der zu übertragenden Botschaften.Information (message numbers) of the messages to be transmitted; and - length of the messages to be transmitted.
Gemäß einer bevorzugten Ausführungsform der Erfindung wird vorgeschlagen, dass die Teilnehmerschnittstelle einen Sequenzspeicher aufweist, in dem Verweise auf bestimmte in dem Botschaftsspeicher abgelegte Botschaften und Informationen über die Botschaften abgelegt sind, wobei die Zustandsmaschine zur Koordination und Steuerung der Datenübertragung Einträge des Sequenzspeichers aufruft. Der Sequenzspeicher ist vorzugsweise als ein RAM ausgebildet und umfasst mehrere, vorzugsweise 128, Felder mit Sequenzeinträgen. Die Sequenzeinträge umfassen bspw. eine Kennung (z. B. eine Nummer) des Sequenzeintrags, eine Kennung bzw. einen Verweis (z. B. eine Buffernummer) auf einen oder mehrere Botschaften (sog. Buffer) des Botschaftsspeichers bzw. des Pufferspeichers, und die Größe der Botschaft (des Buffers). Die verschiedenen Sequenzeinträge können von der Zustandsmaschine nach Vorgaben von dem Mikroprozessor gezielt aufgerufen werden. Die Sequenzeinträge können unverändert in der gespeicherten Form oder in angepasster Form aufgerufen werden. Zum Aufruf in angepasster Form umfasst der Aufruf des Sequenzeintrags bestimmte Parameterwerte zum Anpassen variabler Parameter des Sequenzeintrags.According to a preferred embodiment of the invention, it is proposed that the subscriber interface has a sequence memory in which references to specific messages stored in the message memory and information about the messages are stored, wherein the state machine for coordinating and controlling the data transfer calls entries of the sequence memory. The sequence memory is preferably designed as a RAM and comprises a plurality, preferably 128, fields with sequence entries. The sequence entries comprise, for example, an identifier (eg a number) of the sequence entry, an identifier or a reference (eg a buffer number) to one or more messages (so-called buffers) of the message memory or the buffer memory, and the size of the message (the buffer). The various sequence entries can be called by the state machine according to specifications of the microprocessor targeted. The sequence entries can be called up unchanged in the saved form or in adapted form. To call in an adapted form, the call of the sequence entry includes certain parameter values for adapting variable parameters of the sequence entry.
Die Sequenzeinträge in dem Sequenzspeicher betreffen vorzugsweise häufig auftretende Übertragungssequenzen, die vorab abgespeichert werden und bei Bedarf aufgerufen werden. Auf diese Weise kann durch den Aufruf einer einzigen Sequenz oder Teilsequenz (eines oder mehrerer Sequenzeinträge) eine umfangreiche Datenübertragung zwischen dem Botschaftsspeicher und dem DMA-Controller ausgelöst werden. Beim Einsatz von Sequenzen können die Konfigurationsparameter, die zu Beginn der Datenübertragung von dem Mikroprozessor des Mikrocontrollers in die Konfigurations- und Statusregister übertragen werden, auch eine Kennung (z. B. die Nummern) eines oder mehrerer Sequenzeinträge umfassen, die von der Zustandsmaschine im Rahmen der Datenübertragung aufgerufen werden sollen.The sequence entries in the sequence memory preferably relate to frequently occurring transmission sequences, which are stored in advance and are called when needed. In this way, by calling a single sequence or subsequence (one or more sequence entries) a large data transfer between the message memory and the DMA controller can be triggered. When using sequences, the configuration parameters that are transferred from the microprocessor of the microcontroller to the configuration and status registers at the beginning of the data transfer may also include an identifier (eg, the numbers) of one or more sequence entries received from the state machine in the frame the data transfer to be called.
Vorteilhafterweise umfassen die zwischen dem Botschaftsspeicher und dem Teilnehmer zu übertragenden Botschaften jeweils ein Kopfsegment, insbesondere mit Konfigurationsdaten und Steuerungsdaten, und ein Datensegment mit Nutzdaten, wobei die Zustandsmaschine die Datenübertragung zwischen dem Botschaftsspeicher und dem DMA-Controller derart steuert, dass für jede Botschaft das Kopfsegment vor dem Datensegment eingelesen wird.Advantageously, the messages to be transmitted between the message memory and the subscriber each comprise a header segment, in particular with configuration data and control data, and a data segment with user data, the state machine comprising the Data transfer between the message memory and the DMA controller controls such that for each message the header segment is read in front of the data segment.
Vorzugsweise steuert die Zustandsmaschine die Datenübertragung zwischen dem Botschaftsspeicher und dem DMA-Controller derart, dass vor dem Einlesen des Datensegments die im Kopfsegment enthaltenen Daten ausgewertet werden und das Einlesen des Datensegments in Abhängigkeit von dem Ergebnis der Auswertung der Daten des Kopfsegments gesteuert wird. Vor der Übertragung der Nutzdaten wird also der Status eingelesen. Auf diese Weise kann bei Leerdaten im Datensegment verhindert werden, dass das gesamte Datensegment übertragen wird. Vielmehr können diejenigen Adressbereiche des Datensegments ausgewählt werden, die Nutzdaten (sog. Payload) enthalten; die Adressbereiche mit Leerdaten werden bei der Übertragung nicht berücksichtigt und einfach übersprungen. Auf diese Weise kann die Übertragungsrate erhöht werden.The state machine preferably controls the data transmission between the message memory and the DMA controller in such a way that the data contained in the header segment is evaluated before the data segment is read in and the reading of the data segment is controlled as a function of the result of the evaluation of the data of the header segment. Before transferring the user data, the status is read. In this way, with empty data in the data segment, it is possible to prevent the entire data segment from being transmitted. Rather, those address ranges of the data segment can be selected which contain payload data (so-called payload); the address areas with empty data are ignored during transmission and simply skipped. In this way, the transmission rate can be increased.
Gemäß einer anderen vorteilhaften Weiterbildung der vorliegenden Erfindung wird vorgeschlagen, dass der FlexRay- Kommunikationsbaustein mindestens einen Pufferspeicher, vorzugsweise mindestens einen Eingangspufferspeicher und mindestens einen Ausgangspufferspeicher, zum Zwischenspeichern von zwischen dem Botschaftsspeicher des Kommunikationsbausteins und dem DMA-Controller zu übertragenden Daten, vorzugsweise zum Zwischenspeichern mindestens einer in dem Botschaftsspeicher abgelegten Botschaft, aufweist, wobei die Zustandsmaschine die Datenübertragung zwischen demAccording to another advantageous development of the present invention, it is proposed that the FlexRay communication module has at least one buffer memory, preferably at least one input buffer memory and at least one output buffer memory, for temporarily storing data to be transmitted between the message memory of the communication module and the DMA controller, preferably for buffering at least a message stored in the message memory, the state machine transmitting the data between the message
Botschaftsspeicher und dem mindestens einen Pufferspeicher sowie zwischen dem mindestens einen Pufferspeicher und dem DMA-Controller selbständig koordiniert und steuert. Der mindestens eine Pufferspeicher ist zwischen dem Botschaftsspeicher des FlexRay- Kommunikationsbausteins und der Zustandsmaschine der Teilnehmerschnittstelle angeordnet. Vorzugsweise ist jeweils ein Ausgangspufferspeicher für den lesenden Zugriff auf den Botschaftsspeicher und ein Eingangspufferspeicher für den schreibenden Zugriff vorgesehen.Message memory and the at least one buffer memory and between the at least one buffer memory and the DMA controller independently coordinates and controls. The at least one buffer memory is arranged between the message memory of the FlexRay communication module and the state machine of the subscriber interface. Preferably an output buffer is provided for read access to the message memory and an input buffer for write access.
Gemäß einer weiteren bevorzugten Ausführungsform wird vorgeschlagen, dass der mindestens eine Pufferspeicher einen Teilpufferspeicher und einem dem Teilpufferspeicher zugehörigen Schattenspeicher umfasst, wobei die Zustandsmaschine die Datenübertragung derart koordiniert und steuert, dass Schreiben bzw. Lesen auf den Teilpufferspeicher und den Schattenspeicher wechselweise erfolgt. Durch das wechselweise Schreiben bzw. Lesen auf Teilpufferspeicher und Schattenspeicher kann eine deutlich höhere Datenrate erzielt werden, da in den Teilpufferspeicher schon wieder Daten geschrieben werden können, während aus dem Schattenspeicher noch Daten ausgelesen werden, und umgekehrt in den Schattenspeicher schon wieder Daten geschrieben werden können, während aus dem Teilpufferspeicher noch Daten ausgelesen werden.According to a further preferred embodiment, it is proposed that the at least one buffer memory comprises a partial buffer memory and a shadow memory associated with the partial buffer memory, wherein the state machine coordinates and controls the data transmission such that writing or reading to the partial buffer memory and the shadow memory takes place alternately. By alternately writing or reading to sub-buffer memory and shadow memory, a significantly higher data rate can be achieved because in the sub-buffer data can be written again while data is still read from the shadow memory, and conversely in the shadow memory data can be written again while data is being read from the sub-buffer.
Schließlich wird vorgeschlagen, dass der FlexRay- Kommunikationsbaustein dem mindestens einen Pufferspeicher zugehörige Kontrollregister aufweist, auf welche die Zustandsmaschine zur Koordination und Steuerung derFinally, it is proposed that the FlexRay communication module has the control register associated with at least one buffer memory, to which the state machine for coordinating and controlling the
Datenübertragung zwischen dem Botschaftsspeicher und dem mindestens einen Pufferspeicher Zugriff hat. Über die Kontrollregister kann dem Kommunikationsbaustein mitgeteilt werden, ob neue Daten zur Übertragung anliegen (und übertragen werden sollen) und an welche Adresse in dem Botschaftsspeicher sie abgelegt bzw. von welcher Adresse sie abgeholt werden sollen.Data transfer between the message memory and the at least one buffer has access. About the control register can be communicated to the communication module, whether new data for transmission concern (and should be transferred) and to which address in the message memory they are stored or from which address they are to be picked.
Als eine weitere Lösung der Aufgabe der vorliegenden Erfindung wird ausgehend von dem FlexRay-Teilnehmer der eingangs genannten Art vorgeschlagen, dass die Teilnehmerschnittstelle eine Zustandsmaschine, aufweist, welche nach Konfiguration durch den Mikroprozessor des Mikrocontrollers eine Datenübertragung zwischen dem Botschaftsspeicher des FlexRay- Kommunikationsbausteins und dem DMA-Controller selbständig koordiniert und steuert.As a further solution of the object of the present invention, it is proposed on the basis of the FlexRay subscriber of the type mentioned at the beginning that the subscriber interface be a state machine, which, after being configured by the microprocessor of the microcontroller, autonomously coordinates and controls data transmission between the message memory of the FlexRay communication module and the DMA controller.
Als noch eine weitere Lösung der Aufgabe der vorliegenden Erfindung wird ausgehend von dem Verfahren der eingangs genannten Art vorgeschlagen, dass eine Zustandsmaschine, die als Teil einer Teilnehmerschnittstelle zwischen dem Mikrocontroller und dem FlexRay- Kommunikationsbaustein angeordnet wird, durch einen Mikroprozessor des Mikrocontrollers konfiguriert wird und die Datenübertragung nach der Konfiguration von der Zustandsmaschine selbständig koordiniert und gesteuert wird.As yet another solution to the object of the present invention, it is proposed, starting from the method of the type mentioned above, that a state machine, which is arranged as part of a subscriber interface between the microcontroller and the FlexRay communication module, be configured by a microprocessor of the microcontroller and the Data transfer after the configuration of the state machine is independently coordinated and controlled.
Gemäß einer vorteilhaften Weiterbildung der Erfindung wird vorgeschlagen, dass zur Konfiguration der Zustandsmaschine von dem Mikroprozessor desAccording to an advantageous embodiment of the invention, it is proposed that for the configuration of the state machine of the microprocessor of
Mikrocontrollers Konfigurationsparameter in Konfigurations- und Statusregister der Teilnehmerschnittstelle abgelegt werden.Microcontroller configuration parameters are stored in the configuration and status register of the subscriber interface.
Gemäß einer bevorzugten Ausführungsform der Erfindung wird vorgeschlagen, dass in einem Sequenzspeicher der Teilnehmerschnittstelle Verweise auf bestimmte in dem Botschaftsspeicher abgelegte Botschaften und Informationen über die Botschaften abgelegt werden, wobei zur Koordination und Steuerung der Datenübertragung von der Zustandsmaschine Einträge des Sequenzspeichers aufgerufen werden.According to a preferred embodiment of the invention, references to certain messages stored in the message memory and information about the messages are stored in a sequence memory of the subscriber interface, wherein entries of the sequence memory are called by the state machine for coordination and control of the data transmission.
Vorteilhafterweise weist der FlexRay- Kommunikationsbaustein mindestens einen Pufferspeicher, vorzugsweise mindestens einen Eingangspufferspeicher und mindestens einen Ausgangspufferspeicher , zum Zwischenspeichern von zwischen dem Botschaftsspeicher des Kommunikationsbausteins und dem DMA-Controller zu übertragenden Daten, vorzugsweise zum Zwischenspeichern mindestens einer in dem Botschaftsspeicher abgelegten Botschaft, auf, wobei zur Steuerung und Koordination der Datenübertragung von der Zustandsmaschine in dem mindestens einen Pufferspeicher zugehörigen Kontrollregistern Koordinations- und Steuerungsparameter abgelegt werden.Advantageously, the FlexRay communication module has at least one buffer memory, preferably at least one input buffer memory and at least one output buffer memory, for buffering data to be transferred between the message memory of the communication module and the DMA controller, preferably for buffering at least one message stored in the message memory, wherein coordination and control parameters are stored for controlling and coordinating the data transmission from the state machine in the control registers associated with at least one buffer memory.
Zeichnungendrawings
Nachfolgend werden anhand der Figuren weitere Merkmale und Vorteile der Erfindung näher erläutert. Es zeigen:Hereinafter, further features and advantages of the invention will be explained in more detail with reference to FIGS. Show it:
Figur 1 einen Kommunikationsbaustein und dessen Anbindung an eine Kommunikationsverbindung und einen Kommunikations- oder Host-Teilnehmer eines FlexRay- Kommunikationssystems in schematischer Darstellung;1 shows a communication module and its connection to a communication connection and a communication or host participants of a FlexRay communication system in a schematic representation;
Figur 2 eine spezielle Ausführungsform des Kommunikationsbausteins aus Figur 1 sowie dessen Anbindung im Detail;Figure 2 shows a specific embodiment of the communication module of Figure 1 and its connection in detail;
Figur 3 die Struktur eines Botschaftsspeichers des Kommunikationsbausteins aus Figur 2;Figure 3 shows the structure of a message memory of the communication module of Figure 2;
Figur 4 bis 6 die Architektur und den Prozess eines Datenzugriffs in Richtung vom Teilnehmer zum Botschaftsspeicher in schematischer Darstellung;Figure 4 to 6 the architecture and the process of a data access in the direction from the subscriber to the message memory in a schematic representation;
Figur 7 bis 9 die Architektur und den Prozess eines Datenzugriffs in Richtung vom Botschaftsspeicher zum Teilnehmer; Figur 10 die Struktur eines Botschaftsverwalters und von darin enthaltenen Finite-State- Machinen in schematischer Darstellung;FIGS. 7 to 9 show the architecture and the process of data access in the direction from the message memory to the subscriber; Figure 10 is a schematic representation of the structure of a message manager and finite state machines contained therein;
Figur 11 Bauteile des Kommunikationsbausteins aus Figur 1 und 2 sowie den Teilnehmer und die entsprechenden, durch den Botschaftsverwalter gesteuerten Datenpfade in schematischer Darstellung;FIG. 11 shows components of the communication module from FIGS. 1 and 2 as well as the subscriber and the corresponding data paths controlled by the message administrator in a schematic representation;
Figur 12 die Zugriffsverteilung auf den Botschaftsspeicher bezogen auf die Datenpfade in Figur 11;FIG. 12 shows the access distribution to the message memory with reference to the data paths in FIG. 11;
Figur 13 eine erfindungsgemäße Teilnehmerschnittstelle mit einer13 shows a subscriber interface according to the invention with a
Zustandsmaschine;State machine;
Figur 14 die Zustandsmaschine zwischen dem FlexRay-FIG. 14 shows the state machine between the FlexRay
Kommunikationsbaustein und dem FlexRay-Teilnehmer imCommunication module and the FlexRay participant in the
Detail;Detail;
Figur 15 die Signalverläufe im Rahmen eines Lesevorgangs über die erfindungsgemäße Teilnehmerschnittstelle; undFigure 15 shows the waveforms in the context of a read via the subscriber interface according to the invention; and
Figur 16 die Signalverläufe im Rahmen eines Lesevorgangs über die erfindungsgemäße Teilnehmerschnittstelle.Figure 16 shows the waveforms in the context of a read via the subscriber interface according to the invention.
Beschreibung der AusführungsbeispieleDescription of the embodiments
Figur 1 zeigt schematisch einen FlexRay- Kommunikationsbaustein 100 zur An- bindung 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 FlexRay communication module 100 for connecting a subscriber or host 102 to a FlexRay Communication link 101, ie the physical layer of the FlexRay. This is formed, for example, as a FlexRay data bus, which preferably has two transmission lines. For this purpose, the FlexRay communication module 100 is connected via a connection 107 to the subscriber or subscriber processor 102 and via a connection 106 to the communication connection 101. 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. In this case, a first arrangement 105 serves for storing, in particular clipboard, at least part of the messages to be transmitted. Between the subscriber 102 and this first arrangement 105, a second arrangement 104 is connected via the connections 107 and 108. Likewise, a third arrangement 103 is connected between the communication link 101 and the first arrangement 105 via the connections 106 and 109, whereby a very flexible inputting and outputting of data as part of messages, in particular FlexRay messages in and out of the first arrangement 105 with warranty Data integrity at optimal speed can be achieved.
In Figur 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 kundenspezifi- sehen 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 kunden- spezifischen 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 Figure 2, this communication module 100 is shown in a preferred embodiment again in more detail. The respective connections 106 to 109 are also shown in more detail. To connect the FlexRay communication module 100 to the FlexRay subscriber 102 or the host processor, the second arrangement 104 contains an input buffer or input buffer 201 (input buffer IBF), an output buffer or output buffer 202 (Output Buffer OBF) and an interface module consisting of two parts 203 and 204, wherein one sub-module 203 is subscriber-independent and the second sub-module 204 is subscriber-specific. The subscriber-specific sub-component 204 (Customer CPU Interface CIF) connects a subscriber-specific host CPU 102, that is to say a customer-specific sub-module 102. Participants see 102 with the FlexRay communication module 100. For this purpose, a bidirectional data line 216, an address line 217 and a control input 218 is provided. Also provided with 219 is an interrupt or interrupt output. The subscriber-specific sub-module 204 is connected to a subscriber-independent sub-module 203 (Generic CPU Interface, GIF), ie the FlexRay communication module or the FlexRay IP module has a generic, ie general, CPU interface 203 to which corresponding subscriber-specific sub-blocks 204, so customer CPU interfaces CIF connect a large number of different customer-specific host CPUs 102. As a result, depending on the subscriber 102, only the partial module 204 must be varied, which means a significantly lower outlay. The CPU interface 203 and the remaining communication module 100 can be adopted 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 Paylo- ad 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 may be formed in a common memory device or in separate memory devices. In this case, the input buffer memory 201 serves for the buffering of messages for transmission to a message memory 300. The input buffer module 201 is preferably designed such that it contains two complete messages each comprising a header segment or header segment, in particular with configuration data and a data segment or payload Can save segment. In this case, the input buffer 201 is formed in two parts (partial buffer memory and shadow memory), whereby the transmission between subscriber CPU 102 and message memory 300 can be accelerated by alternately writing the two parts of the input buffer memory or by changing access. Similarly, the output buffer 202 (output buffer 202) is used for buffering messages for transmission from the message memory 300 to the subscriber CPU 102. The output buffer 202 is also designed to: that two complete messages consisting of header segment, in particular with configuration data and data segment, ie payload segment, can be stored. Again, the output buffer 202 is divided into two parts, a partial buffer memory and a shadow memory, which can accelerate the transmission between participants or host CPU 102 and message memory 300 here by alternately reading the two parts, the transmission or by access change. This second assembly 104 consisting of the blocks 201 to 204 is connected to the first assembly 105 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 Botschafts- Speicher 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 Bot- Schaftsspeichers 300 ist in Figur 3 näher dargestellt.The arrangement 105 consists of a message handler 200 (message handler MHD) and a message memory 300 (message RAM). The message manager 200 controls the data transfer between the input buffer 201 and the output buffer 202 and the message memory 300. Likewise, it controls the data transfer in the other direction via the third device 103. The message memory 300 is preferably single-ported RAM executed. This RAM memory stores the messages or embassy objects, ie the actual data, together with configuration and status data. The exact structure of the message memory 300 is shown in more detail in FIG.
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 Verbin- düngen 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 Pufferspei- eher 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. According to the two channels of the FlexRay Physical Layer, this arrangement 103 is divided into two data paths with two data directions each. This is illustrated by the links 213 and 214, which show 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. Connection 215 indicates 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 buffer memories (Transient Buffer RAMs: RAM A and RAM B) serve as temporary storage for the data transfer from or to the first arrangement 105. According to the two channels, these two buffer memories 205 and 206 are connected to an interface module 207 and 208, respectively, containing the FlexRay protocol controller or bus protocol - Controller consisting of a transmit / receive shift register and the FlexRay protocol finite state machine, included. The two buffer memories 205 and 206 thus serve as temporary storage for the data transfer between the shift registers of the interface modules or FlexRay protocol controllers 207 and 208 and the message memory 300. Here, too, the data fields, ie the payload segment or data segment, are advantageously provided by each buffer memory 205 or 206 stored in two FlexRay messages.
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 communication module 100 is 209 the global time unit (Global Time Unit GTU), which is responsible for the representation of the global time grid in FlexRay, ie the microtick μT and the macrotick MT. Likewise, the global time unit 209 controls the fault-tolerant clock synchronization of the cycle counters (Cycle Counter) and the control of the time sequences in the static and dynamic segments of the FlexRay. Block 210 illustrates the General System Control (SUC) that controls and controls the operating 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 FlexRay protocol specification v2.0. Finally, block 212 shows the interrupt control (INT) managing the status and error interrupt flags and the interrupt outputs 219 to the subscriber CPU 102 controls or controls. Block 212 also includes an absolute and a relative timer for generating the time interrupts 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 Botschaf- ten 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. Statusda- ten.For communication in a FlexRay network, message objects or messages (message buffer) can be configured with up to 254 data bytes. The message memory 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 administration of the messages themselves are implemented by the message handler or message handler 200. These are z. As the acceptance filtering, transfer of messages between the two FlexRay protocol controller blocks 207 and 208 and the message memory 300, so the message RAM and the control of the transmission order and the provision of configuration data or status data.
Eine externe CPU, also ein externer Prozessor der Teilnehmerprozessor 102, kann über die Teilnehmerschnittstelle 107 mit dem teilnehmerspezifischen Teil 204 direkt auf die Register des FlexRay- Kommunikationsbausteins 100 zugrei- fen. 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 Fehlermanagementein- heit (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 Figuren 4 bis 6 und 7 bis 9 näher eingegangen. Ein solch be- schriebener FlexRay- Kommunikationsbaustein 100 ermöglicht die einfache Um- setzung der FlexRay-Spezifikation v2.0, wodurch einfach ein ASIC oder ein Mikrocontroller mit entsprechender FlexRay- Funktionalität generiert werden kann.An external CPU, that is to say an external processor of the subscriber processor 102, can access the registers of the FlexRay communication module 100 directly via the subscriber interface 107 with the subscriber-specific part 204. It uses a variety of registers. These registers are used to control the FlexRay protocol controllers, ie the interface modules 207 and 208, the message handler (MHD) 200, the global time unit (GTU) 209, the general system 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 will be discussed in more detail in Figures 4 to 6 and 7 to 9. Such a described FlexRay communication module 100 allows easy conversion. the FlexRay specification v2.0, which makes it easy to generate an ASIC or a microcontroller with the appropriate 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- Fl FO ergibt. Jede Botschaft bzw. jedes Bot- schaftsobjekt im Speicher kann als Empfangsspeicherobjekt (Receive- Buffer), Sendespeicherobjekt (Transmit- Buffer) oder als Teil des konfigurierbaren Empfangs- Fl FOs 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.By means of the described FlexRay communication module 100, the FlexRay protocol specification, in particular v2.0, can be fully supported and it is thus possible, for. 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, it is thus advantageous to configure message objects or message objects that have data fields of different lengths. The message memory 300 is advantageously designed as a FIFO (first-in-first-out), resulting in a configurable reception F FO. Each message or message object in memory can be configured as a ReceivedBuffer, TransmitBuffer object, or as part of the configurable ReceiveField. 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 Figur 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 Bereit- stellen 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 Pay- load- Bereich von 0 bis 254 Bytes. Wie in Figur 2 dargestellt ist der Botschaftsspeicher 300 Teil des FlexRay- Kommunikationsbausteins 100. Das nachfolgend beschriebene Verfahren sowie der entsprechende Botschaftsspeicher 300 be- schreiben 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 Bot- schatten 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.FIG. 3 describes in detail the division of the message memory 300. 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 shown in FIG. 2, the message memory 300 is part of the FlexRay communication module 100. The method described below and the corresponding message memory 300 write 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 mechanism described to store a variable number of blobs 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 300 for a FlexRay Communication Controller will be described in more detail.
Zur Implementierung wird nun beispielhaft ein Botschaftsspeicher mit einer festgelegten Wortbreite von n Bit, beispielsweise 8, 16, 32 usw., sowie einer vorge- gebenen 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) wer- den somit Headerbereiche oder Kopfbereiche HBO, HBl bis HBk und Datenbereiche DBO, DBl 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 (HBO, HBl, ..., HBk) abgelegt werden. Die zweiten Daten, die den eigentlichen Nutzdaten entsprechen, die übertragen werden sollen, werden entsprechend in Datenbereichen DB (DBO, DBl, ... , 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 Da- tenumfang, also dem Umfang der eigentlichen Nutzdaten, einer Botschaft bzw. aller k Botschaften zusammen. Den Konfigurationsdaten KDO, KDl bis KDk der jeweiligen Botschaft wird nun ein Zeigerelement oder Datapointer DPO, DPI bis DPk jeweils direkt zugeordnet. In der speziellen Ausgestaltung wird jedem Kopfbereich HBO, HB 1 bis HBk eine feste Anzahl von Speicherworten, hier zwei, zugeordnet, so dass immer ein Konfigurationsdatum KD (KDO, KD 1, ..., KDk) und ein Zeigerelement DP (DPO, DPI, ..., 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 DO, Dl bis Dk an. Dieses Datensegment (oder Datensection) DS hängt in seinem Datenumfang vom jeweiligen Datenumfang der abgelegten Botschaftsdaten ab, hier z. B. in DBO sechs Worte, DBl ein Wort und DBk zwei Worte. Die jeweiligen Zeigerelemente DPO, DPI bis DPk zeigen somit immer zum Beginn, also auf die Anfangsadresse des jeweiligen Datenbe- reichs DBO, DBl bis DBk, in denen die Daten DO, Dl 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 An- zahl 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 defined word length of n bits, for example 8, 16, 32, etc., as well as a predefined memory depth of m words is given by way of example (m, n as natural numbers). In this case, the message memory 300 is 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 (HBO, HB1, ..., HBk) in each case. The second data, which correspond to the actual user data that is to be transmitted, are correspondingly stored in data areas DB (DBO, DBl,..., 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 Distribution between header segment HS and data segment DS is now variable in the message memory 300, ie there is no predetermined boundary between the areas. The division between head segment HS and data segment DS is dependent on the number k of messages and the second data volume, ie the extent of the actual user data, a message or all k messages together. The configuration data KDO, KD1 to KDk of the respective message is now assigned directly to a pointer element or data pointer DPO, DPI to DPk. In the specific embodiment, each head area HBO, HB 1 to HBk is assigned a fixed number of memory words, here two, so that always a configuration data KD (KDO, KD 1, ..., KDk) and a pointer element DP (DPO, DPI , ..., 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 includes for storing the actual message data DO, Dl to Dk. This data segment (or data section) DS depends in its data volume from the respective data volume of the stored message data, here z. For example, in DBO six words, DBl one word and DBk two words. The respective pointer elements DPO, DPI to DPk thus always point to the beginning, ie to the start address of the respective data area DBO, DB1 to DBk, in which the data DO, D1 to Dk of the respective messages 0, 1 to k are stored. Thus, the division of the message memory 300 between header segment HS and data segment DS is variable and depends on the number k of 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 freed 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 volume 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 (KDO, KDl, ..., KDk) und die eigentlichen Daten D (DO, Dl, ... , Dk) in einer vorgebbaren Reihenfolge abzulegen, so dass die Reihenfolge der Kopfbereiche HBO bis HBk im Kopfsegment HS und die Reihenfolge der Datenbereiche DBO bis DBk im Datensegment DS jeweils identisch ist. Dann könnte unter Umständen sogar auf ein Zeigerelement verzichtet werden.In addition to the use of pointer elements, it is also possible, the first and second data, ie the configuration data KD (KDO, KDl, ..., KDk) and the actual data D (DO, Dl, ..., Dk) in a predetermined Store sequence so that the order of the header areas HBO to HBk in the header segment HS and the order of the data areas DBO to DBk in the data segment DS is identical. Then could even be dispensed with a pointer element under certain circumstances.
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:In a particular embodiment, the message memory is associated with a fault detection generator, in particular a parity bit generator element and a fault detection tester, in particular a parity bit test element, 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, e.g. As 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:
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 Konfigurati- on 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. 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.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 different sizes of data area DB, the available storage space is optimally utilized. The user has the option to share a data storage area for different messages. When implementing the communication controller on an integrated circuit, the size of the message memory 300 can be adapted to the needs of the application by adapting the memory depth (number m of words) of the memory used, without changing the other functions of the communication controller.
Im Weiteren wird nun anhand der Figuren 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 Figuren 10, 11 und 12 beschrieben wird.In the following, the host CPU access, that is to say writing and reading of configuration data or status data and of the actual data via the buffer memory arrangement 201 and 202, will now be described in greater detail with reference to FIGS. 4 to 6 and 7 to 9. 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. The control of these processes via the message manager 200, which will be described later in more detail in Figures 10, 11 and 12.
In den Figuren 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 Figur 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 RequestIn FIGS. 4, 5 and 6, the write accesses to the message memory 300 by the host CPU of the subscriber CPU 102 via the input buffer 201 are first explained in greater detail. For this purpose, FIG. 4 once again shows the communications module 100, with only the parts of the communications module 100 relevant here being shown for reasons of clarity. This is, on the one hand, the message manager 200 responsible for controlling the processes and two control registers 403 and 404 which, as shown, can be accommodated outside the message manager 200 in the communication module 100, but can also be contained in the message administrator 200 itself. 403 represents the input request register (Input Buffer Command Request
Register; IBCR) dar und 404 das Eingangs-Maskierungsregister (Input Buffer Command Mask Register; IBMR). Schreibzugriffe der Host-CPU 102 auf den Botschaftsspeicher 300 (Message RAM) erfolgen also über einen zwischengeschalteten Eingangspufferspeicher 201 (Input Buffer). Dieser Eingangspuffer- Speicher 201 ist nun geteilt bzw. gedoppelt ausgelegt, und zwar als Teilpuffer- Speicher 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 beschleu- nigte Übertragung gewährleistet werden.Register; IBCR) and 404 the Input Buffer Command Mask Register (IBMR). Write accesses of the host CPU 102 to the message memory 300 (message RAM) thus take place via an intermediate input buffer 201 (input buffer). This input buffer memory 201 is now divided or doubled, as a partial buffer. Memory 400 and a shadow memory 401 associated with the sub-buffer memory. Thus, as described below, the host CPU 102 can continuously access the messages or message objects or data of the message memory 300, thus ensuring data integrity and speedy transmission.
Die Steuerung der Zugriffe erfolgt über das Eingangs-Anforderungsregister 403 und über das Eingangs- Maskierungsregister 404. Im Register 403 sind in Figur 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 Figur 6.The accesses are controlled via the input request register 403 and via the input mask register 404. In the register 403, the numbers from 0 to 31 in FIG. 5 show the respective bit positions in 403 by way of example here for a width of 32 bits. The same applies to the register 404 and the bit positions 0 to 31 in the mask register 404 from FIG. 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 Da- tenkennungen 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 eingeschrie- ben. 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 403 have a special function with regard to the sequence control. Thus, in the bit positions 0 to 5 of the register 403, an identifier IBRH (Input Buffer Request Host) can be entered as the message identifier. Similarly, in the bit positions 16 to 21 of the register 403 an identifier IBRS (Input Buffer Request Shadow) can be entered. Likewise, in register 15 of 403 IBSYH and in register 31 of 403 IBSYS are registered as access identifiers. Also noteworthy are the digits 0 to 2 of the register 404, wherein 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 position 2 of register 404, a start identifier is written using STXRH (Set Transmission X Request Host). The flow of write access to the message memory 300 via the input buffer 201 will now be described.
Die Host-CPU 102 schreibt die Daten der zu transferierenden Botschaft in den Eingangspufferspeicher 201. Dabei kann die Host-CPU 102 nur die Konfigurati- ons- und Headerdaten KD einer Botschaft für das Headersegment HS des Bot- Schaftsspeichers 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 Datenken- nungen 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 Teilpufferspei- eher 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 memory 201. In this case, the host CPU 102 can only send the configuration and header data KD of a message for the header segment HS of the message buffer. Shaft memory 300 or write only the actual data to be transmitted D a message for the data segment DS of the message memory 300 or both. Which part of a message, that is to say configuration data and / or the actual data, is to be transmitted is determined by the special data identifiers LHSH and LDSH in the input tag register 404. 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. Since the input buffer 201 is formed in two parts with a partial buffer memory 400 and a corresponding shadow memory 401 and mutual access is to take place, two further data identification regions, which are now related to the shadow memory 401, are provided as a counterpart to LHSH and LDSH. These data identifiers in bits 16 and 17 of register 404 are labeled LHSS (Load Header Section Shadow) and LDSS (Load Data Section Shadow). By this, thus, the transfer operation with respect to the shadow memory 401 is 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 gestar- tet.If the start bit or the start identifier STXRH is set in bit position 2 of the input mask register 404, after the transfer of the respective configuration data and / or actual data to be transmitted to the message memory 300, a send request (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 corresponding thereto for the shadow memory 401 is the start identifier STXRS (Set Transmission X Request Shadow), which is contained by way of example in bit position 18 of the input marking register 404 and, in the simplest case, is also designed as one bit. The function of STXRS is analogous to the function of STXRH, referring only 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.When the host CPU 102 writes the message ID, in particular, the message object number in the message memory 300 into which the data of the input buffer memory 201 is to be transferred to the bit positions 0 to 5 of the input request register 403, that is, after IBRH, the partial buffer memory 400 of FIG Input buffer memory 201 and the associated shadow memory 401 are swapped, respectively, and the respective access of host CPU 102 and message memory 300 to the two sub-memories 400 and 401 is interchanged, as indicated by the semicircular arrows. This z. B. also 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, ie 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, ie which area in the message memory 300 as the last data (KD and / or D) has received the shadow memory 401.
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=I gerade aus dem Schattenspeicher 401 übertragen und bei IBSYS=O 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. 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=I ist, so wird IBSYH im Eingangsanforderungsregister 403 gesetzt. Sobald der laufende Transfer, also die laufen- de Ü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 ausge- bildet sein. Vorteilhaft ist die Ein- Bit Lösung aus Speicher- und verarbeitungsökonomischen Gründen.The identifier (here again, for example, 1 bit) IBSYS (Input Buffer Busy Shadow) in bit position 31 of the input request register 403 indicates whether a transmission is currently taking place with the involvement of the shadow memory 401. For example, in IBSYS = I is just being transferred from the shadow memory 401 and not at IBSYS = O. This bit IBSYS is set in register 403, for example, by writing IBRH, that is, bits 0 to 5, to indicate that a transfer between the shadow memory 401 and the message memory 300 is in progress. After completing this data transfer to message memory 300, IBSYS is reset. While the data transfer from the shadow memory 401 is in progress, the host CPU 102 may write the next message to be transferred into the input buffer 201 and the sub buffer 400, respectively. With the aid of a further access identifier IBSYH (input buffer busy host), for example in bit position 15 of register 403, the identifier can be further refined. If the host CPU 102 is currently writing IBRH, that is, bit positions 0 through 5 of register 403 while transferring between the shadow memory 401 and the message memory 300, that is IBSYS = I, IBSYH is set in the input request register 403. As soon as the current transfer, ie the ongoing 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 being transferred to the message memory 300. All the bits used in all exemplary embodiments can also be embodied as identifiers with more than one bit. The one-bit solution is advantageous for storage and processing economic reasons.
Der so beschriebene Mechanismus erlaubt es der Host-CPU 102 kontinuierlich Daten in die im Botschaftsspeicher 300 befindlichen Botschaftsobjekte beste- hend aus Headerbereich HB und Datenbereich DB zu transferieren, vorausgesetzt 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 thus described allows the host CPU 102 to continuously transfer data to the message objects contained in the message memory 300, consisting of the header area HB and the data area DB, provided that the access speed of the host CPU 102 to the input buffer memory 201 is less than or equal to the internal one Data transfer rate of the FlexRay IP module, ie the communication block 100.
In den Figuren 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 Figur 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 verant- wortliche 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; OBCR) dar und 704 das Ausgangs-Maskierungsregister (Output Buffer Command Mask Register; OBCM). 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. Figur 8). Glei- ches gilt für das Register 704 und die Bitstellen 0 bis 31 in 704 (vgl. Figur 9).Referring now to FIGS. 7, 8 and 9, the read accesses to the message memory 300 by the host CPU or user CPU 102 via the output buffer 202 are explained in greater detail. For this purpose, Figure 7 once again shows the communication module 100, where for reasons of clarity, only the relevant parts of the communication module 100 are shown here. On the one hand, this is the responsibility of controlling the processes. message embassies 200 and two control registers 703 and 704, which may be housed outside the message manager 200 in the communication module 100 as shown, but may also be contained in the message manager 200 itself. 703 represents the output buffer command request register (OBCR) and 704 the output buffer command mask register (OBCM). Read accesses of the host CPU 102 to the message memory 300 thus occur via the intermediate output buffer 202 (output buffer). This output buffer 202 is now likewise divided or doubled, as a partial buffer 701 and a shadow memory associated with the partial buffer memory 700. Thus, as described below, a continuous access of the host CPU 102 to the messages or message objects respectively data of the Message memory 300 and thus data integrity and accelerated transmission are now ensured in the opposite direction from the message memory 300 to the host 102. The accesses are controlled via the output request register 703 and via the output mask register 704. Also in the register 703, the numbers from 0 to 31 represent the respective bit positions in 703 by way of example for a width of 32 bits (see FIG ). The same applies to register 704 and bit positions 0 to 31 in 704 (see FIG.
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 ein- fachster Form, nämlich jeweils als ein Bit ausgebildet. In Bitstelle 9 des Registers 703 ist eine Startkennung REQ eingetragen. Weiterhin ist eine Umschalt- kennung VIEW vorgesehen die beispielhaft in Bitstelle 8 von Register 703 eingetragen ist. Die Host-CPU 102 fordert die Daten eines Botschaftsobjekts aus dem Bot- Schaftsspeicher 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. Konfigu- rations- 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 eigentli- chen Daten gelesen werden sollen.By way of example, bit positions 0 to 5, 8 and 9, 15 and 16 to 21 of register 703 have a special function with respect to the flow control of the read access. Thus, 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. Similarly, an identifier OBRH (Output Buffer Request Host) can be entered in the bit positions 16 to 21 of the register 703. As an access identifier, an identifier OBSYS (Output Buffer Busy Shadow) can be entered in bit position 15 of register 703. Excellent are also the digits 0 and 1 of the output mask register 704, wherein in the bit positions 0 and 1 with RDSS (Read Data Section Shadow) and RHSS (Read Header Section Shadow) other IDs are entered as data IDs. 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). Here again, these data identifications are in the simplest form, namely designed in each case as one bit. In bit position 9 of the register 703, a start identifier REQ is entered. Furthermore, a switchover identifier VIEW is provided, which is entered by way of example in bit position 8 of register 703. The host CPU 102 requests the data of a message object from the message memory 300 by writing the ID of the desired message, that is, in particular, the number of the desired message object to OBRS in the bit positions 0 to 5 of the register 703. Here, too, the host CPU 102, as in the opposite direction, can read only the status or configuration data KD of a message from a header area or only the data D actually to be transmitted 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 zumA start identifier serves to start the transmission from the message memory 300 to the shadow memory 700. That if a bit is used as the identifier, as in the simplest case, the transmission from the message memory 300 to the bit memory 9 is set by setting bit REQ in bit position 9 in the output request register 703
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 Bot- Schaftstransfer zwischen dem Botschaftsspeicher 300 und dem Schattenspeicher 700. Der eigentliche Ablauf könnte nun einerseits vergleichbar zur Gegenrichtung wie unter den Figuren 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 Figuren 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.Shadow memory 700 started. The current transmission is again indicated by an access identifier, here again in the simplest case by a bit OBSYS in the register 703. 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. Here, the bot- Shaft transfer between the message memory 300 and the shadow memory 700. The actual sequence could now on the one hand comparable to the opposite direction as described in Figures 4, 5 and 6 described (complementary register assignment) and done or in a variation by an additional identifier, namely a switchover VIEW in bit position 8 of the register 703. That is, after completion of the transfer, the bit OBSYS is reset and by setting the bit VIEW in the output request register 703, the partial buffer memory 701 and the associated shadow memory 700 are exchanged or exchanged, and the host CPU 102 can now read the message memory requested by the message memory 300 message object, ie the corresponding message from the sub-buffer 701. Here, comparable to the countertransference direction in FIGS. 4 through 6, the register cells OBRS and OBRH are 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 beschleu- nigten Übertragung erzielt.Thus, read accesses of the host CPU 102 to the message memory 300 are via the intermediate output buffer 202. This output buffer 202, like the input buffer 201, is designed in two parts to provide continuous access by the host CPU 102 to the message objects residing in the message memory 300 are guaranteed. Here, too, the advantages 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. 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 Figur 10 der Botschaftsverwalter 200 dargestellt. Der Botschaftsverwalter 200 ist in seiner Funktionalität durch mehrere Zustandsmaschinen oder Zustandsautomaten, also endliche Automaten, so genannte 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, TBFl-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 Fig. 2 beschrieben. Dabei kann eine Finite-State- Machine vorgesehen sein, um beide Kanäle A und B zu bedienen, oder aber wie in der be- vorzugten Form eine Finite-State- Machine TBFl-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).The use of the described input and output buffers 201, 202 ensures that a host CPU 102 can access the message memory 300 uninterruptedly despite the module-internal latencies. To ensure this data integrity, the data transmission, in particular the forwarding in the communication module 100, by the message manager 200 (message handler MHD) is made. For this purpose, the message manager 200 is shown in FIG. The message manager 200 can be represented in its functionality by a plurality of state machines or state machines, ie finite state machines, so-called finite state machines (FSM). 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 designated 501 (input / output buffer state machine). This IOBF-FSM could also be divided into two finite-state machines per transmission direction with regard to the input buffer memory 201 or the output buffer memory 202. 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 divided in the course of the preferred embodiment into two blocks 502 and 503 and serves the two channels A and B with respect to the memory 205 and 206, as described for Fig. 2. In this case, a finite-state machine can be provided in order to operate both channels A and B or, as in the preferred form, designate a finite-state machine TBF1-FSM as 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 so genannte 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 Kommu- nikationsbaustein 100 übertragen. Der Takt T kann dabei im Baustein generiert werden oder von außen, z. B. als Bustakt, vorgegeben sein. Diese Arbiter- Finite- S täte- 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, called AFSM, is indicated at 500. The data (KD and / or D) are in a by a clock means such. As a VCO (Voltage Controlled Oscillator), a quartz crystal, etc., generated or transferred from this adapted clock in the communication module 100. The clock T can be generated in the block be or externally, z. B. as a bus clock, be given. This arithmetic finite state machine AFSM 500 alternately gives access to the message memory 300 to one of the three finite state machines 501-503, in particular for one clock period T in each case. That is to say, the time available is corresponding to the access requirements of the individual state machines 501, 502, 503 to these requesting state machines. If an access request is made by only one finite-state machine, it will receive 100% of the access time, ie all the clocks T. If an access request is received from 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:The first finite-state machine 501, ie IOBF-FSM, performs the following actions as required:
Datentransfer vom Eingangspufferspeicher 201 zum ausgewählten Botschaftsobjekt im Botschaftsspeicher 300.Data transfer from the input buffer 201 to the selected message object in the message memory 300.
Datentransfer vom ausgewählten Botschaftsobjekt im Botschaftsspeicher 300 zum Ausgangspufferspeicher 202.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 TBFl-FSM, führt folgende Aktionen aus:The state machine 502 for channel A, ie TBF1-FSM, performs the following actions:
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.Data transfer from the selected message object in the message memory 300 to the buffer memory 206 of channel A. Data transfer from the buffer memory 206 to the selected message object in the message memory 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 Akzep- tanzfilterung gesucht wird und beim Senden das nächste auf Kanal A zu sendende Botschaftsobjekt (Transmit Buffer).Search for the appropriate message object in the message memory 300, wherein upon reception the message object (receive buffer) for storing a message received on channel A within the framework of an acceptance is searched for and the next transmit 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 TBFl-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 is the finite state machine for channel B in block 503. This performs the data transfer from the selected message object in message memory 300 to buffer memory 205 of channel B and the data transfer from buffer 205 to the selected message object in the message memory 300. Also, the search function is analogous to TBFl-FSM for a matching message object in the message memory 300, wherein upon receipt the message object (Receive Buffer) is searched for storing a message received on channel B in the context of acceptance filtering and the next on transmission Channel B message to be sent or message object (transmit buffer).
In Figur 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 Puffer- Speicher 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 ZlA und ZlB, 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 Übertra- gungszeit bezogen auf die Taktperioden T durch den Arbiter, also die AFSM 500. In Figur 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 ZlA und ZlB sowie Z2 und Z3 gleichzeitig Daten ausgetauscht werden.FIG. 11 shows again the processes and the transmission paths. The three state machines 501-503 control the respective data transfers between the individual parts. The host CPU is shown again at 102, the input buffer memory at 201 and the output buffer memory at 202. With 300 the message memory is shown and the two buffer memories 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, designated 501, controls the data transfer ZlA and ZlB, ie from the input buffer memory 201 to the message memory 300 and from the message memory 300 to the output buffer 202. The data is transmitted via data buses having a word width of, for example, 32 bits and any other bit number is possible. The same applies to the transmission Z2 between the message memory and the buffer memory 206. This data transmission is controlled by TBFI-FSM, ie the state machine 502 for channel A. The transmission Z3 between message memory 300 and buffer memory 205 is controlled by the state machine TBF2-FSM, ie 503. Here too the data transfer upper data buses with an exemplary word width of 32 bits, where also any other bit number is possible. Normally, the transfer of a complete message object via said transmission paths requires several clock periods T. Therefore, the transmission time is divided up by the arbiter, ie the AFSM 500, in relation to the clock periods T. In FIG. 11, the data paths are between those of the message handler 200 controlled memory components shown. In order to ensure the data integrity of the message objects stored in the message memory 300, data should advantageously be exchanged simultaneously at the same time only on one of the illustrated paths Z1A and Z1B as well as Z2 and Z3.
In Figur 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 Zugriffsanfor- derungen 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 Tl 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 TIl die Finit-State- Machine 501, in den Taktperioden T9 und T12 die Finite-State- Machine 502 und in den Taktperioden TlO 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.FIG. 12 shows an example of how the available system clocks T are divided by the arbiter, that is to say the AFSM 500, into the three requesting state machines. In phase 1 (I), access requests are made by state machine 501 and state machine 502, ie, half of the time is split between the two requesting state machines. With reference to the clock periods in phase 1 (I), this means that state machine 501 receives access in the clock periods T1 and T3 and state machine 502 in the clock periods T2 and T4. In phase 2 (II), the access is done only by the state machine 501, so that every three clock periods, ie 100% of the access time from T5 to T7 on IOBF-FSM accounts. In phase 3 (III), access requests are made by all three state machines 501 to 503, so that one third of the total access time takes place. The arithmetic AFSM 500 then distributes the access time, for example, such that the finite state machine 501 in the clock periods T8 and TIl, the finite state machine 502 in the clock periods T9 and T12 and the finite state in the clock periods T10 and T13 - Machine 503 gets access. Finally, in phase 4 (IV), the access takes place through two state machines, 502 and 503, on the two channels A and B of the communication module 100, so that an access distribution of the clock periods T14 and T16 on finite state machine 502 and in T15 and T17 on finite state machine 503.
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 arithmetic state machine AFSM 500 thus ensures that if more than one of the three state machines 501-503 makes a request for access to the message memory 300, the access is intermittently and alternately split to the requesting state machines 501-503. This procedure ensures the integrity of the message objects stored in the message memory 300, that is, the data integrity. If, for example, the host CPU 102 wants to read out a message object via the output buffer 202 while a received message is being written to this message object, then either the old state or the new state will be read out, without which the accesses in the Message object in 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 described method allows the host CPU 102 to read or write any message object in the message memory 300 during operation without the selected message object for the duration of access of the host CPU 102 from participating in the data exchange on both channels of the FlexRay bus 101 would be blocked (Buffer Locking). At the same time, the integrity of the data stored in the message memory 300 is ensured by the intermittent interleaving of the accesses, and the transmission speed is increased, even by utilizing the full bandwidth.
In Figur 13 ist schematisch ein erfindungsgemäßer Kommunikationsteilnehmer in seiner Gesamtheit mit dem Bezugszeichen 900 bezeichnet. Der Teilnehmer 900 ist über eine Verbindung 106 an eine Kommunikationsverbindung 101 angeschlossen, die bspw. als ein FlexRay-Datenbus ausgebildet ist. Der Teilnehmer 900 kann über die Kommunikationsverbindung 101 Informationen (oder Daten oder Botschaften) mit anderen angeschlossenen Teilnehmern (nicht dargestellt) austauschen. Der Teilnehmer 900 umfasst einen Mikrocontroller 102 (Host-CPU), und einen Kommunikationscontroller 750 (sog. Communication Controller; CC), der bspw. als ein FlexRay- Kommunikationscontroller ausgebildet ist. Der Kommunikationscontroller 705 umfasst einen FlexRay- Kommunikationsbaustein 100, der weiter oben bereits ausführlich beschrieben ist. Der Kommunikationsbaustein 100 kann integraler Bestandteil des Kommunikationscontrollers 705 oder als separates Bauteil ausgebildet sein. Zur Verbesserung der Anbindung zwischen dem FlexRay- Kommunikationsbaustein 100 und dem Mikrocontroller 102, genauer gesagt zur Verbesserung der Anbindung zwischen einem Botschaftsspeicher 300 desIn FIG. 13, a communication participant according to the invention is designated in its entirety by the reference numeral 900. The subscriber 900 is connected via a connection 106 to a communication link 101, which is designed, for example, as a FlexRay data bus. Subscriber 900 may communicate (or data or messages) with other connected subscribers (not shown). The subscriber 900 comprises a microcontroller 102 (host CPU), and a communication controller 750 (so-called communication controller CC), which is embodied, for example, as a FlexRay communications controller. The communication controller 705 comprises a FlexRay communication module 100, which has already been described in detail above. The communication module 100 may be formed as an integral part of the communication controller 705 or as a separate component. To improve the connection between the FlexRay communication module 100 and the microcontroller 102, more precisely to improve the connection between a message memory 300 of the
Kommunikationsbausteins 100 und einem DMA (Direct Memory Access) Controller 812 (vgl. Figur 15) des Mikrocontrollers 102, wird erfindungsgemäß vorgeschlagen, in der Teilnehmerschnittstelle 107 (Customer Interface; CIF) zwischen dem Kommunikationsbaustein 100 und dem Mikrocontroller 102 eine Zustandsmaschine 800 anzuordnen. Die Zustandsmaschine 800 ist vorzugsweise fest verdrahtet.Communication module 100 and a DMA (Direct Memory Access) controller 812 (see Figure 15) of the microcontroller 102, the invention proposes to arrange a state machine 800 in the subscriber interface 107 (Customer Interface, CIF) between the communication module 100 and the microcontroller 102. The state machine 800 is preferably hardwired.
Die Zustandsmaschine 800 verändert die Teilnehmerschnittstelle 107 derart, dass sich das Aufsetzen und Starten des DMA-Controllers 812 des Mikrocontrollers 102 lohnt. Mit anderen Worten sorgt die Zustandsmaschine 800 dafür, dass dem DMA-Controller 812 die zu übertragenden Daten bzw. Botschaften derart optimiert präsentiert werden, dass er auch größere Datenmengen bzw. mehrere Botschaften mit einem einzigen Aufruf des DMA- Controllers 812 übertragen kann. Erfindungsgemäß wird also gewissermaßen ein einziger Zugriff aus den bisher erforderlichen vielen kleinen Zugriffen zusammengesetzt bzw. werden aus vielen segmentierten Adressbereichen mit Daten virtuell weniger zusammenhängende Adressbereiche generiert, auf die der DMA-Controller 812 effektiv zugreifen kann. Außerdem können durch den Einsatz der Zustandsmaschine 800 Latenzzeiten des Mikroprozessors 811 des Mikrocontrollers 102 während der Datenübertragung vermieden werden. In Figur 14 ist die Anbindung der Zustandsmaschine 800 an den Kommunikationsbaustein 100 und an den Mikrocontroller 102 im Detail dargestellt. Insbesondere verbindet der teilnehmerspezifische Teilbaustein 204 (Customer CPU Interface; CIF) die Zustandsmaschine 800 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 dem teilnehmerunabhängigen Teilbaustein 203 (Generic CPU Interface, GIF), d. h. der FlexRay- Kommunikationsbaustein 100 verfügt über ein generisches, also allgemeines, CPU-Interface 203, an das sich über entsprechende teilnehmerspezifische Teilbausteine 204 (CIF) eine große Anzahl von unterschiedlichen kundenspezifischen Teilnehmer 900 anschließen lassen. Dadurch muss abhängig vom Teilnehmer 900 nur der Teilbaustein 204 variiert werden, was einen deutlich geringeren Aufwand bedeutet. Das CPU-Interface 203 und der restliche Kommunikationsbaustein 100 können unverändert übernommen werden.The state machine 800 alters the subscriber interface 107 to make it worthwhile setting up and starting the DMA controller 812 of the microcontroller 102. In other words, the state machine 800 ensures that the data or messages to be transmitted are presented to the DMA controller 812 in such an optimized manner that it can also transmit larger amounts of data or multiple messages with a single call to the DMA controller 812. According to the invention, so to speak, a single access is composed of the previously required many small accesses or are generated from many segmented address areas with data virtually less contiguous address areas, which can access the DMA controller 812 effectively. In addition, by using the state machine 800, latencies of the microprocessor 811 of the microcontroller 102 during data transfer can be avoided. FIG. 14 shows the connection of the state machine 800 to the communication module 100 and to the microcontroller 102 in detail. In particular, the subscriber-specific sub-component 204 (Customer CPU Interface; CIF) connects the state machine 800 to the FlexRay communications module 100. For this purpose, a bidirectional data line 216, an address line 217, and a control input 218 are provided. Also provided with 219 is an interrupt or interrupt output. The subscriber-specific sub-module 204 is connected to the subscriber-independent sub-module 203 (Generic CPU Interface, GIF), ie the FlexRay communications module 100 has a generic, ie general, CPU interface 203, to which corresponding subscriber-specific sub-modules 204 (CIF) Have a large number of different 900 custom subscriber connected. As a result, depending on the subscriber 900, only the partial module 204 must be varied, which means a significantly lower outlay. The CPU interface 203 and the remaining communication module 100 can be adopted unchanged.
Die Zustandsmaschine 800 ist vorzugsweise Teil des teilnehmerspezifischen Teilbausteins 204 (CIF). Selbstverständlich ist es jedoch denkbar, dass die erfindungsgemäße intelligente Teilnehmerschnittstelle 107 als ein separates Bauteil ausgebildet ist.The state machine 800 is preferably part of the subscriber-specific sub-module 204 (CIF). Of course, however, it is conceivable that the intelligent subscriber interface 107 according to the invention is designed as a separate component.
Die Teilnehmerschnittstelle 107 bzw. die Zustandsmaschine 800 ist über mehrere Leitungen mit dem Mikrocontroller 102 verbunden. Insbesondere ist eine bidirektionale Datenleitung 816, eine Adressleitung 817 sowie ein Steuereingang 818 vorgesehen. Ebenso vorgesehen ist mit 819 ein Interruptoder Unterbrechungs-Ausgang. In Figur 15 sind die verschiedenen Signalverläufe für einen Lesevorgang (Read) im Sinne des erfindungsgemäßen Verfahrens dargestellt. Zudem ist der Mikrocontroller 102 im Detail dargestellt. Er umfasst einen Speicher 810, der bspw. als ein Random- Access- Memory (RAM) ausgebildet sein kann. Der Speicher 810 dient zum Speichern eingehender Botschaften vor einerThe subscriber interface 107 or the state machine 800 is connected to the microcontroller 102 via a plurality of lines. In particular, a bidirectional data line 816, an address line 817 and a control input 818 are provided. Also provided with 819 is an interrupt or interrupt output. FIG. 15 shows the various signal curves for a read operation (read) in the sense of the method according to the invention. In addition, the microcontroller 102 is shown in detail. It comprises a memory 810 which, for example, can be designed as a random access memory (RAM). The memory 810 is for storing incoming messages before
Weiterverarbeitung und ausgehender Botschaften vor einer Übertragung über die Kommunikationsverbindung 101. Außerdem umfasst der Mikrocontroller 102 einen Mikroprozessor 811, eine sog. Host-CPU, einen DMA-Controller 812 und eine Schnittstelle 813 zu Peripheriemodulen (z. B. ein sog. Expansion Bus Module). Eine interne Arbitrierungseinheit ist mit dem Bezugszeichen 814 bezeichnet.Further, the microcontroller 102 includes a microprocessor 811, a so-called host CPU, a DMA controller 812, and an interface 813 to peripheral modules (eg, a so-called expansion bus module ). An internal arbitration unit is designated by reference numeral 814.
Die erfindungsgemäße Teilnehmerschnittstelle 107 umfasst die Zustandsmaschine 800. Außerdem umfasst die Schnittstelle 107 mindestens ein Register 802, das bspw. 64 Bit groß ist und das zum Konfigurieren derThe subscriber interface 107 according to the invention comprises the state machine 800. In addition, the interface 107 comprises at least one register 802, which is, for example, 64 bits in size and which is used to configure the
Zustandsmaschine 800 bzw. der von der Zustandsmaschine 800 gesteuerten Datenübertragung dient. Dazu werden in dem Konfigurationsregister 802 entsprechende Bits gesetzt, um bspw. die Richtung der Datenübertragung (Lesen, Read oder Schreiben, Write), Kennungen (z. B. Botschaftsnummern) der zu übertragenden Botschaften, Übertragungsreihenfolge der Botschaften, Länge der Botschaften, oder eine von mehreren vorab gespeicherten Teilsequenzen zur Datenübertragung auszuwählen. Die Konfigurationsparameter können auch die Anzahl der zu übertragenden Datenworte oder beliebig andere Informationen bezüglich der bevorstehenden Datenübertragung betreffen.State machine 800 or the data transfer controlled by state machine 800 serves. For this purpose, corresponding bits are set in the configuration register 802, for example the direction of the data transmission (read, read or write, write), identifiers (for example message numbers) of the messages to be transmitted, order of transmission of the messages, length of the messages, or one of several pre-stored subsequences for data transmission. The configuration parameters may also relate to the number of data words to be transmitted or any other information regarding the forthcoming data transmission.
Außerdem weist die Teilnehmerschnittstelle 107 einen Sequenzspeicher 804 auf, der bspw. als ein Random- Access- Memory (RAM) ausgebildet ist. In dem Sequenz-RAM 804 sind Verweise auf bestimmte in dem Botschaftsspeicher 300 abgelegte Botschaften sowie Informationen über die Botschaften abgelegt. Die Zustandsmaschine 800 ruft zur Koordination und Steuerung der Datenübertragung Einträge des Sequenzspeichers 804 auf. Der Sequenzspeicher 804 umfasst mehrere, vorzugsweise 128, Felder mit Sequenzeinträgen. Die Sequenzeinträge betreffen bspw. eine Kennung (z. B. eine Nummer) des Sequenzeintrags, eine Kennung bzw. einen Verweis (z. B. eine Buffernummer) auf einen oder mehrere Botschaften (sog. Buffer) des Botschaftsspeichers 300 bzw. des Pufferspeichers 201 oder 202, und die Größe der Botschaft (des Buffers). Die verschiedenen Sequenzeinträge können von der Zustandsmaschine nach Vorgaben von dem Mikroprozessor gezielt aufgerufen werden. Die Sequenzeinträge können unverändert in der gespeicherten Form oder in angepasster Form aufgerufen werden. Zum Aufruf in angepasster Form umfasst der Aufruf des Sequenzeintrags bestimmte Parameterwerte zum Anpassen variabler Parameter des Sequenzeintrags.In addition, the subscriber interface 107 has a sequence memory 804 which, for example, is designed as a random access memory (RAM). References to certain messages stored in the message memory 300 and information about the messages are stored in the sequence RAM 804. The State machine 800 invokes entries of sequence memory 804 to coordinate and control the data transfer. The sequence memory 804 comprises a plurality, preferably 128, fields with sequence entries. The sequence entries relate, for example, to an identifier (eg a number) of the sequence entry, an identifier or a reference (eg a buffer number) to one or more messages (so-called buffers) of the message memory 300 or the buffer memory 201 or 202, and the size of the message (the buffer). The various sequence entries can be called by the state machine according to specifications of the microprocessor targeted. The sequence entries can be called up unchanged in the saved form or in adapted form. To call in an adapted form, the call of the sequence entry includes certain parameter values for adapting variable parameters of the sequence entry.
Die Sequenzeinträge in dem Sequenzspeicher 804 betreffen vorzugsweise häufig auftretende Übertragungssequenzen, die vorab abgespeichert werden und bei Bedarf aufgerufen werden. Auf diese Weise kann durch den Aufruf einer einzigen Sequenz oder Teilsequenz (eines oder mehrerer Sequenzeinträge) eine umfangreiche Datenübertragung zwischen dem Botschaftsspeicher 300 und dem D MA- Controller 812 ausgelöst werden. Beim Einsatz von Sequenzen oder Teilsequenzen können die Konfigurationsparameter, die zu Beginn der Datenübertragung von dem Mikroprozessor 811 des Mikrocontrollers 102 in die Konfigurations- und Statusregister 802 übertragen werden, auch eine Kennung (z. B. die Nummern) eines oder mehrerer Sequenzeinträge umfassen, die von der Zustandsmaschine 800 im Rahmen der Datenübertragung aufgerufen werden sollen.The sequence entries in the sequence memory 804 preferably relate to frequently occurring transmission sequences, which are stored in advance and are called when necessary. In this way, by calling a single sequence or subsequence (of one or more sequence entries), an extensive data transmission between the message memory 300 and the DMA controller 812 can be triggered. When using sequences or subsequences, the configuration parameters that are transferred from the microcontroller 811 of the microcontroller 102 into the configuration and status registers 802 at the beginning of the data transfer may also include an identifier (eg, the numbers) of one or more sequence entries that be called by the state machine 800 as part of the data transfer.
Der Lese- Vorgang wird initiiert, sobald in dem Botschaftsspeicher 300 des FlexRay- Kommunikationsbausteins 100 über den FlexRay-Datenbus 101 übertragene Daten abgelegt werden. Nach Eingang der Daten im Botschaftsspeicher 300 kann ein Interrupt ausgelöst oder ein entsprechender Befehl an den Mikrocontroller 102 übermittelt werden. Es ist aber auch denkbar, dass der Eingang der Daten im Botschaftsspeicher 300 von dem Mikrocontroller 102 bspw. durch regelmäßiges Polling erkannt wird.The reading process is initiated as soon as data transmitted via the FlexRay data bus 101 are stored in the message memory 300 of the FlexRay communication module 100. After receipt of the data in Message memory 300 may trigger an interrupt or a corresponding command to the microcontroller 102 are transmitted. However, it is also conceivable that the input of the data in the message memory 300 is detected by the microcontroller 102, for example by regular polling.
Zu Beginn des Lesevorgangs konfiguriert der Mikroprozessor 811 den DMA- Controller 812 in einem Schritt 850. Der Mikroprozessor 811 weiß, wie viele Daten zu übertragen sind, kennt die Größe der Botschaften und andere Informationen bzgl. der bevorstehenden Datenübertragung. Diese Informationen übermittelt der Mikroprozessor 811 im Schritt 850 zumindest teilweise an den DMA-Controller 812. Anschließend konfiguriert der Mikroprozessor 811 die Zustandsmaschine 800 in einem Schritt 852, indem Konfigurationsparameter in das Konfigurationsregister 802 geschrieben werden. Dann erhält die Zustandsmaschine 800 einen Start- Befehl von dem Mikroprozessor 811 und beginnt daraufhin mit dem eigentlichen Datentransfer.At the beginning of the read operation, the microprocessor 811 configures the DMA controller 812 in a step 850. The microprocessor 811 knows how much data to transmit, knows the size of the messages, and other information regarding the upcoming data transfer. In step 850, this information is at least partially communicated to the DMA controller 812 by the microprocessor 811. Thereafter, the microprocessor 811 configures the state machine 800 in a step 852 by writing configuration parameters to the configuration register 802. The state machine 800 then receives a start command from the microprocessor 811 and then begins the actual data transfer.
Für den Datentransfer werden verschiedene Programmschleifen durchlaufen. Eine äußere Schleife fängt bei dem ersten zu übertragenden Datenbuffer an. Eine innere Schleife fängt bei dem ersten Datenwort des ersten zu übertragenden Datenbuffers an. Für dieses Datenwort übermittelt die Zustandsmaschine 800 einen Request/ View- Befehl 854 and den Ausgangspuffer 202 bzw. an die Konfigurationsregister 703, 704 des Ausgangspuffer 202, um das Datenwort in dem Ausgangspuffer 202 sichtbar zu machen. Anschließend wird das Datenwort über den Output- Buffer 202 aus dem Botschaftsspeicher 300 ausgelesen. Die Zustandsmaschine 800 holt sich in einem Schritt 856 dieses Datenwort von dem Ausgangspuffer 202 über das generische Interface 203 (GIF). Dabei kann nur das Kopfsegment HS, nur das Datensegment DS oder können beide, sowohl Kopfsegment HS als auch Datensegment DS, übertragen werden. Bei einer Übertragung von Kopfsegment HS und Datensegment DS wird vorzugsweise zunächst das Kopfsegment HS und danach das Datensegment DS übertragen, die umgekehrte Reihenfolge ist jedoch auch möglich.For the data transfer, different program loops are run through. An outer loop begins at the first data buffer to be transferred. An inner loop begins at the first data word of the first data buffer to be transmitted. For this data word, the state machine 800 transmits a request / view command 854 to the output buffer 202 or to the configuration registers 703, 704 of the output buffer 202, respectively, to make the data word visible in the output buffer 202. Subsequently, the data word is read out of the message memory 300 via the output buffer 202. The state machine 800 fetches this data word from the output buffer 202 via the generic interface 203 (GIF) in a step 856. In this case, only the header segment HS, only the data segment DS or both, both header segment HS and data segment DS, can be transmitted. In a transfer of head segment HS and data segment DS is preferably first the head segment HS and then transfer the data segment DS, but the reverse order is also possible.
Über die Konfigurationsregister 703, 704 erhält der Ausgangspuffer 202 bzw. eine übergeordnete Steuereinheit des FlexRay- Kommunikationsbausteins 100 Informationen und Anweisungen darüber, welches Datenwort als nächstes aus dem Botschaftsspeicher 300 in den Ausgangspuffer 202 übertragen werden soll.Via the configuration registers 703, 704, the output buffer 202 or a higher-level control unit of the FlexRay communication module 100 receives information and instructions as to which data word is to be transferred from the message memory 300 into the output buffer 202 next.
Das Datenwort aus dem Ausgangspuffer 202 steht nun in der Zustandsmaschine 800 zur Abholung durch den DMA-Controller 812 bereit. Dies wird dem DMA-Controller 812 durch einen Data- Ready- Befehl 858 mitgeteilt. Daraufhin liest der DMA-Controller 812 das bereitstehende Datenwort in einem Schritt 860 ein und leitet es zur Weiterverarbeitung weiter. Anschließend wartet der DMA-Controller 812 auf das nächste Data-Ready-Signal 858.The data word from the output buffer 202 is now available in the state machine 800 for collection by the DMA controller 812. This is communicated to the DMA controller 812 through a Data Ready command 858. Thereafter, the DMA controller 812 reads in the ready data word in a step 860 and forwards it for further processing. Subsequently, the DMA controller 812 waits for the next data-ready signal 858.
Die innere Schleife wird auf das nächste Datenwort des ersten Datenbuffers inkrementiert, und die obigen Schritte erneut durchlaufen bis das letzte einzulesende Datenwort des ersten Datenbuffers erfolgreich eingelesen worden ist. Anschließend wird die äußere Schleife auf den nächsten zu übertragenden Datenbuffer inkrementiert, und die obigen Schritte werden erneut durchlaufen bis alle Datenworte des letzten einzulesenden Datenbuffers erfolgreich eingelesen worden sind. Das Einlesen eines bestimmten Datenbuffers kann bspw. durch Aufruf einer entsprechenden Teilsequenz aus dem Sequenzspeicher 804 erfolgen. Anschließend teilt der DMA-Controller 812 dem Mikroprozessor 811 das Ende der Datenübertragung mit. Dies kann bspw. durch einen geeignetenThe inner loop is incremented to the next data word of the first data buffer, and the above steps are repeated until the last data word of the first data buffer to be read in is successfully read. Subsequently, the outer loop is incremented to the next data buffer to be transferred, and the above steps are repeated until all the data words of the last data buffer to be read have been successfully read. The reading-in of a specific data buffer can take place, for example, by calling a corresponding subsequence from the sequence memory 804. Then, the DMA controller 812 notifies the microprocessor 811 of the end of the data transfer. This can, for example, by a suitable
Befehl (Data-Transmission- Ready) oder durch einen Interrupt- Befehl erfolgen.Command (Data-Transmission-Ready) or by an interrupt command.
Die gesamte Datenübertragung wird von der Zustandsmaschine 800 gesteuert und koordiniert. Die Host-CPU 811 muss lediglich die Datenübertragung durch den Request- Befehl 850 auslösen, alles weitere wird von der Zustandsmaschine 800 erledigt, so dass eine größtmöglich Entlastung der Host-CPU 811 des Mikrocontrollers 102 gegeben ist.All data transfer is controlled and coordinated by the state machine 800. The host CPU 811 only has to initiate the data transfer by the request command 850, everything else is done by the state machine 800 done so that the greatest possible relief of the host CPU 811 of the microcontroller 102 is given.
Erfindungsgemäß wird also eine herkömmliche Teilnehmerschnittstelle 107 um eine Zustandsmaschine 800 erweitert. Mindestens eine Sequenz von Message- Buffern mit zugehöriger Payloadlänge kann in einen Speicher, bspw. ein RAM, programmiert werden. Der Speicher ist vorzugsweise ebenfalls Teil der erfindungsgemäßen Teilnehmerschnittstelle 107. Pro Abruf mindestens einer der Teil- oder Gesamtsequenzen muss ein DMA-Controller 812 des Teilnehmers 102 nur einmal getriggert werden. Die (Teil-)Sequenzen werden über Start-/End- Nummern definiert. Durch maximal 128 Sequenzeinträge können verschiedene Reihenfolgen, z. B. beim Lesen/Schreiben, verwendet werden. Ein gleichzeitiges Lesen und Schreiben per DMA findet nicht statt. Eine DMA-Sequenz muss immer komplett bearbeitet sein, bevor ein neuer Request- Befehl 850 gestartet werden kann. Im Fehlerfall wird ein Interrupt gesendet oder ein Flag gesetzt.Thus, according to the invention, a conventional subscriber interface 107 is expanded by a state machine 800. At least one sequence of message buffers with associated payload length can be programmed into a memory, for example a RAM. The memory is preferably also part of the subscriber interface 107 according to the invention. For each retrieval of at least one of the partial or total sequences, a DMA controller 812 of the subscriber 102 only has to be triggered once. The (partial) sequences are defined via start / end numbers. Through a maximum of 128 sequence entries, different orders, eg. As read / write. A simultaneous reading and writing via DMA does not take place. A DMA sequence must always be completely processed before a new request command 850 can be started. In the event of an error, an interrupt is sent or a flag is set.
In Figur 16 sind die Signalverläufe für das Schreiben von Daten (Write) in den Botschaftsspeicher 300 des Kommunikationsbausteins 100 dargestellt. Der Schreibvorgang läuft ganz ähnlich wie der Lesevorgang ab. Nachfolgend wird im wesentlichen nur auf die Unterschiede zwischen Lese- und Schreibvorgang näher eingegangen. Zu Beginn des Schreibvorgangs konfiguriert der Mikroprozessor 811 den DMA-Controller 812 in einem Schritt 850. Anschließend konfiguriert der Mikroprozessor 811 die Zustandsmaschine 800 in einem Schritt 852, indem Konfigurationsparameter in das Konfigurationsregister 802 geschrieben werden. Dann erhält die Zustandsmaschine 800 einen Start- Befehl von dem Mikroprozessor 811 und beginnt daraufhin mit dem eigentlichen Datentransfer.FIG. 16 shows the signal curves for writing data (Write) to the message memory 300 of the communication module 100. The writing process is very similar to the reading process. In the following, essentially only the differences between reading and writing will be discussed in more detail. At the beginning of the write operation, the microprocessor 811 configures the DMA controller 812 in a step 850. Next, the microprocessor 811 configures the state machine 800 in a step 852 by writing configuration parameters to the configuration register 802. The state machine 800 then receives a start command from the microprocessor 811 and then begins the actual data transfer.
Auch für den Schreibvorgang werden die äußere Schleife für den aktuell zu überragenden Datenbuffer und die innere Schleife für das aktuell zu übertragende Datenwort des aktuellen Datenbuffers durchlaufen. Im Gegensatz zum Auslesen von Daten wird beim Schreiben erst der Eingangspufferspeicher 201 gefüllt (innere Schleife) und dann das Kommando zum internen Abspeichern im Botschaftsspeicher 300 gegeben (äußere Schleife).Also for the write operation, the outer loop for the currently-to-be-exceeded data buffer and the inner loop for the current one go through the transmitted data word of the current data buffer. In contrast to the reading out of data, first the input buffer memory 201 is filled in writing (inner loop) and then the command for internal storage in the message memory 300 is given (outer loop).
Zunächst übermittelt die Zustandsmaschine 800 ein Data-Ready-Signal 858 an den D MA- Controller 812, um diesem zu signalisieren, dass sie für den Empfang des aktuellen Datenworts von dem DMA-Controller 812 bereit ist. Dann überträgt der DMA-Controller 812 in einem Schritt 862 das anstehende Datenwort an die Zustandsmaschine 800. Von dort wird das Datenwort dann in einem Schritt 864 an den Eingangspuffer 201 des FlexRay- Kommunikationsbausteins 100 übermittelt.First, state machine 800 sends a data-ready signal 858 to DMA controller 812 to signal that it is ready to receive the current data word from DMA controller 812. Then, in a step 862, the DMA controller 812 transmits the pending data word to the state machine 800. From there, the data word is then transmitted in a step 864 to the input buffer 201 of the FlexRay communication module 100.
Nach dem Beenden der inneren Schleife wird dann als Teil der äußeren Schleife folgendes ausgeführt. Der Eingangspuffer 201 bzw. eine übergeordnetenAfter completing the inner loop, the following is done as part of the outer loop. The input buffer 201 or a parent
Steuereinheit des FlexRay- Kommunikationsbausteins 100 erhält in einem Schritt 866 Informationen und Anweisungen darüber, an welcher Stelle des Botschaftsspeichers 300 das in dem Eingangspuffer 201 abgelegte Datenwort gespeichert werden soll. Zu diesem Zweck werden geeignete Informationen in einem oder mehreren der Konfigurationsregister 403, 404 abgelegt, bspw. durch Setzen entsprechender Bits. Anschließend wird das Datenwort aus dem Eingangspuffer 201 an der entsprechenden Stelle des Botschaftsspeichers 300 abgelegt, von wo aus es dann alleine oder zusammen mit anderen Datenworten aus dem Botschaftsspeicher 300 über die FlexRay-Kommunikationsverbindung 101 übertragen wird.Control unit of the FlexRay communication module 100 receives in a step 866 information and instructions about where in the message memory 300, the stored in the input buffer 201 data word is to be stored. For this purpose, suitable information is stored in one or more of the configuration registers 403, 404, for example by setting appropriate bits. Subsequently, the data word is stored from the input buffer 201 at the corresponding location of the message memory 300, from where it is then transmitted alone or together with other data words from the message memory 300 via the FlexRay communication link 101.
Die innere Schleife wird auf das nächste Datenwort des ersten Datenbuffers inkrementiert, und die obigen Schritte erneut durchlaufen bis das letzte Datenwort des ersten Datenbuffers erfolgreich in den Eingangspuffer 201 geschrieben worden ist. Anschließend wird die äußere Schleife auf den nächsten zu übertragenden Datenbuffer inkrementiert, und die obigen Schritte werden erneut durchlaufen bis alle Datenworte des letzten zu schreibenden Datenbuffers erfolgreich an den Kommunikationsbaustein 100 übertragen worden sind. Das Schreiben eines bestimmten Datenbuffers kann bspw. durch Aufruf einer entsprechenden Teilsequenz aus dem Sequenzspeicher 804 erfolgen.The inner loop is incremented to the next data word of the first data buffer, and iterates through the above steps until the last data word of the first data buffer has been successfully written into the input buffer 201. Subsequently, the outer loop is on the next is incremented to be transmitted data buffer, and the above steps are again run until all data words of the last data buffer to be written have been successfully transmitted to the communication module 100. The writing of a specific data buffer can, for example, be done by calling a corresponding subsequence from the sequence memory 804.
Anschließend teilt der DMA-Controller 812 dem Mikroprozessor 811 das Ende der Datenübertragung mit. Dies kann bspw. durch einen geeigneten Befehl (Data-Transmission- Ready) oder durch einen Interrupt- Befehl erfolgen.Then, the DMA controller 812 notifies the microprocessor 811 of the end of the data transfer. This can be done, for example, by a suitable command (Data Transmission Ready) or by an interrupt command.
Zusammenfassend kann gesagt werden: Die Erfindung betrifft nun im Rahmen des vorhergehend Beschriebenen ein Verfahren und eine Vorrichtung zur Übertragung von Daten zwischen einem Mikroprozessor (Host-CPU) und einer peripheren Einrichtung, bspw. in Form eines Kommunikationscontrollers zur Kommunikation insbesondere im FlexRay. Die periphere Einrichtung ist vorzugswei- se als ein FlexRay- Kommunikationscontroller 750 ausgebildet, der über eine Verbindung 106 an eine FlexRay- Kommunikationsverbindung 101 angeschlossen ist, die bspw. als ein FlexRay- Datenbus ausgebildet ist. Der Mikroprozessor 811 und die periphere Einrichtung sind Teil eines Kommunikationsteilnehmers 900. Für die Datenübertragung zwischen dem Mikroprozessor Host-CPU und der peripheren Einrichtung 750 stehen in der Regel nur begrenzte Ressourcen zur Verfügung, d.h. die Bandbreite ist begrenzt. Das ist typischerweise bei der Verwendung einer seriellen Schnittstelle der Fall.In summary, the invention relates to a method and a device for the transmission of data between a microprocessor (host CPU) and a peripheral device, for example in the form of a communication controller for communication, in particular in the FlexRay. The peripheral device is preferably designed as a FlexRay communication controller 750, which is connected via a connection 106 to a FlexRay communication link 101, which is formed, for example, as a FlexRay data bus. The microprocessor 811 and the peripheral device are part of a communications party 900. Data communications between the microprocessor host CPU and the peripheral device 750 are typically limited in resources, i. the bandwidth is limited. This is typically the case when using a serial interface.
Der Vorteil der Programmierung beliebiger Sequenzen von Message- Buffern in das Sequenz- RAM 804 in der Teilnehmerschnittstelle 107 bzw. in dem FlexRay-The advantage of programming any sequences of message buffers in the sequence RAM 804 in the subscriber interface 107 or in the FlexRay
Kommunikationsbaustein 100 besteht unter anderem darin, dass der Zugriff schneller wird, weil die Kommandos das Wissen über die Anordnung der Daten, die Art der Zugriffe und die entsprechenden Adressen in Form eines weiteren Zustandsautomaten aufweist. Auf diese Weise können die Anordnung der Da- ten, die Art der Zugriffe und/oder die entsprechenden Adressen automatisch bereitgestellt werden, so dass diese nicht mehr von der Host-CPU 811 geliefert und damit nicht mehr über die Schnittstelle 107 bzw. detailliert über die Verbindungen 216 bis 218 übertragen werden müssen. Des weiteren kann auch die Zugriffsart (Lesen/Schreiben) schon fest in diese Vorrichtung 107 eingebaut werden, wie bereits erwähnt, muss also ebenfalls nicht mehr übertragen werden.Amongst other things, communication module 100 consists in the fact that the access becomes faster because the commands have the knowledge about the arrangement of the data, the type of accesses and the corresponding addresses in the form of a further state machine. In this way, the arrangement of the data, the type of access and / or the corresponding addresses automatically be provided so that they no longer supplied by the host CPU 811 and thus no longer need to be transmitted via the interface 107 or in detail over the connections 216 to 218. Furthermore, the type of access (read / write) can already be permanently installed in this device 107, as already mentioned, so no longer has to be transmitted.
Anstelle dessen werden nun einfach die vorgegebenen bzw. vorprogrammierten Teilsequenzen bezüglich der genannten Informationen über die Datenübertragung (z. B. Datenanordnung, Zugriffsart, und/oder Adressen) abgerufen bzw. aktiviert und mit zusätzlichen Werten ausgestattet. Durch den Aufruf einer oder mehrerer der Sequenzen können einfach und schnell mehrere Message- Buffer- Inhalte vom oder zum Kommunikationsbaustein 100 übertragen werden. Instead, the predefined or preprogrammed partial sequences with regard to the information about the data transmission (eg data arrangement, type of access, and / or addresses) are simply called up or activated and provided with additional values. By calling one or more of the sequences, several message buffer contents can be transferred from or to the communication module 100 simply and quickly.

Claims

Ansprüche claims
1. Teilnehmerschnittstelle (107) zwischen einem FlexRay- Kommunikationsbaustein (100), der an eine FlexRay- Kommunikationsverbindung (101) angeschlossen ist, über welche Botschaften übertragen werden, und der einen Botschaftsspeicher (300) zum Zwischenspeichern von Botschaften von der FlexRay- Kommunikationsverbindung (101) oder für die FlexRay- Kommunikationsverbindung (101) umfasst, und einem dem FlexRay- Kommunikationsbaustein (100) zugeordneten Mikrocontroller (102), der einen Mikroprozessor (811) und einen Direct- Memory- Access, nachfolgend DMA, Controller (812) für einen Datenaustausch mit dem Botschaftsspeicher (300) aufweist, dadurch gekennzeichnet, dass die Teilnehmerschnittstelle (107) eine Zustandsmaschine (800) aufweist, welche nach Konfiguration durch den Mikroprozessor (811) des MikrocontrollersA subscriber interface (107) between a FlexRay communication module (100) connected to a FlexRay communication link (101) via which messages are transmitted, and a message memory (300) for buffering messages from the FlexRay communication link (100). 101) or for the FlexRay communication connection (101), and a microcontroller (102) assigned to the FlexRay communication module (100), which has a microprocessor (811) and a direct memory access, hereinafter DMA, controller (812) for a data exchange with the message memory (300), characterized in that the subscriber interface (107) has a state machine (800) which, after being configured by the microcontroller (811) of the microcontroller
(102) eine Datenübertragung zwischen dem Botschaftsspeicher (300) des FlexRay- Kommunikationsbausteins (100) und dem DMA-Controller (812) selbständig koordiniert und steuert.(102) autonomously coordinates and controls data transmission between the message memory (300) of the FlexRay communication module (100) and the DMA controller (812).
2. Teilnehmerschnittstelle (107) nach Anspruch 1, dadurch gekennzeichnet, dass die Teilnehmerschnittstelle (107) Konfigurations- und StatusregisterSecond subscriber interface (107) according to claim 1, characterized in that the subscriber interface (107) configuration and status register
(802) aufweist, auf welche der Mikroprozessor (811) des Mikrocontrollers (102) zur Konfiguration der Zustandsmaschine (800) Zugriff hat.(802) to which the microcontroller (811) of the microcontroller (102) has access to configure the state machine (800).
3. Teilnehmerschnittstelle (107) nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Teilnehmerschnittstelle (107) einen Sequenzspeicher aufweist, in dem Verweise auf bestimmte in dem Botschaftsspeicher (300) abgelegte Botschaften und Informationen über die Botschaften abgelegt sind, wobei die Zustandsmaschine (800) zur Koordination und Steuerung der Datenübertragung Einträge des Sequenzspeichers aufruft.3. subscriber interface (107) according to claim 1 or 2, characterized in that the subscriber interface (107) has a sequence memory in which references to certain messages stored in the message memory (300) and information about the messages are stored, wherein the state machine (800) calls for entries in the sequence memory to coordinate and control the data transmission.
4. Teilnehmerschnittstelle (107) nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass der FlexRay- Kommunikationsbaustein (100) mindestens einen Pufferspeicher (201, 202), vorzugsweise mindestens einen Eingangspufferspeicher (201) und mindestens einen Ausgangspufferspeicher (202), zum Zwischenspeichern von zwischen dem Botschafts- Speicher (300) des Kommunikationsbausteins (100) und dem DMA-4. subscriber interface (107) according to one of claims 1 to 3, characterized in that the FlexRay communication module (100) at least one buffer memory (201, 202), preferably at least one input buffer memory (201) and at least one output buffer memory (202), for Caching of between the message memory (300) of the communication module (100) and the DMA
Controller (812) zu übertragenden Daten, vorzugsweise zum Zwischenspeichern mindestens einer in dem Botschaftsspeicher (300) abgelegten Botschaft, aufweist, wobei die Zustandsmaschine (800) die Datenübertragung zwischen dem Botschaftsspeicher (300) und dem mindestens ei- nen Pufferspeicher (201, 202) sowie zwischen dem mindestens einenController (812) for transferring data, preferably for temporarily storing at least one message stored in the message memory (300), the state machine (800) transmitting the data between the message memory (300) and the at least one buffer memory (201, 202) and between the at least one
Pufferspeicher (201, 202) und dem DMA-Controller (812) selbständig koordiniert und steuert.Buffer memory (201, 202) and the DMA controller (812) independently coordinates and controls.
5. Teilnehmerschnittstelle (107) nach Anspruch 4, dadurch gekennzeichnet, dass der mindestens eine Pufferspeicher (201, 202) einen Teilpufferspei- eher und einem dem Teilpufferspeicher zugehörigen Schattenspeicher umfasst, wobei die Zustandsmaschine (800) die Datenübertragung derart koordiniert und steuert, dass Schreiben bzw. Lesen auf den Teilpufferspeicher und den Schattenspeicher wechselweise erfolgt.A subscriber interface (107) according to claim 4, characterized in that the at least one buffer memory (201, 202) comprises a partial buffer memory and a shadow memory associated with the partial buffer memory, wherein the state machine (800) coordinates and controls the data transmission such that write or read on the sub-buffer and the shadow memory alternately takes place.
6. Teilnehmerschnittstelle (107) nach Anspruch 4 oder 5, dadurch gekenn- zeichnet, dass der FlexRay- Kommunikationsbaustein (100) dem mindestens einen Pufferspeicher (201, 202) zugehörige Kontrollregister (403, 404; 703, 704) aufweist, auf welche die Zustandsmaschine (800) zur Koordination und Steuerung der Datenübertragung zwischen dem Bot- Schaftsspeicher (300) und dem mindestens einen Pufferspeicher (201, 202) Zugriff hat.6. subscriber interface (107) according to claim 4 or 5, characterized in that the FlexRay communication module (100) the at least one buffer memory (201, 202) associated control register (403, 404; 703, 704), to which the State machine (800) for coordinating and controlling the data transfer between the bot Bank memory (300) and the at least one buffer memory (201, 202) has access.
7. FlexRay-Teilnehmer, der einen Mikrocontroller (102), einen FlexRay- Kommunikationsbaustein (100), der an eine FlexRay- Kommunikationsverbindung (101) angeschlossen ist, über welche Botschaften übertragen werden, und eine Teilnehmerschnittstelle (107) zwischen dem Mikrocontroller (102) und dem Kommunikationsbaustein (100) aufweist, wobei der Mikrocontroller (102) einen Mikroprozessor (811) und einen Direct- Memory- Access, nachfolgend DMA, Controller (812) und der Kommunikationsbaustein (100) einen Botschaftsspeicher (300) zum Zwischenspeichern von Botschaften von der FlexRay- Kommunikationsverbindung (101) oder für die FlexRay- Kommunikationsverbindung (101) umfasst, dadurch gekennzeichnet, dass die Teilnehmerschnittstelle (107) eine Zustandsmaschine (800), aufweist, welche nach Konfiguration durch den Mikroprozessor (811) des7. FlexRay subscriber having a microcontroller (102), a FlexRay communication module (100) connected to a FlexRay communication link (101) via which messages are transmitted, and a subscriber interface (107) between the microcontroller (102 ) and the communication module (100), wherein the microcontroller (102) has a microprocessor (811) and a direct memory access, hereinafter DMA, controller (812) and the communication module (100) a message memory (300) for buffering messages from the FlexRay communications link (101) or to the FlexRay communications link (101), characterized in that the subscriber interface (107) comprises a state machine (800) configured after being configured by the microprocessor (811) of the
Mikrocontrollers (102) eine Datenübertragung zwischen dem Botschaftsspeicher (300) des FlexRay- Kommunikationsbausteins (100) und dem DMA-Controller (812) selbständig koordiniert und steuert.Microcontroller (102) independently coordinates and controls data transmission between the message memory (300) of the FlexRay communication module (100) and the DMA controller (812).
8. Verfahren zur Datenübertragung zwischen einem Botschaftsspeicher (300) eines FlexRay- Kommunikationsbausteins (100), der an eine Flex¬8. A method for data transmission between a message memory (300) of a FlexRay communication module (100) connected to a Flex¬
Ray- Kommunikationsverbindung (101) angeschlossen ist, über welche Botschaften übertragen werden, und einem Direct- Memory- Access, nachfolgend DMA, Controller (812) eines Mikrocontrollers (102), dadurch gekennzeichnet, dass eine Zustandsmaschine (800), die als Teil einer TeN- nehmerschnittstelle (107) zwischen dem Mikrocontroller (102) und demRay communication connection (101) is connected, over which messages are transmitted, and a direct memory access, hereinafter DMA, controller (812) of a microcontroller (102), characterized in that a state machine (800), as part of a User interface (107) between the microcontroller (102) and the
FlexRay- Kommunikationsbaustein (100) ausgebildet wird, durch einen Mikroprozessor (811) des Mikrocontrollers (102) konfiguriert wird und die Datenübertragung nach der Konfiguration von der Zustandsmaschine (800) selbständig koordiniert und gesteuert wird. FlexRay communication module (100) is formed, is configured by a microprocessor (811) of the microcontroller (102) and the data transmission after the configuration of the state machine (800) is independently coordinated and controlled.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass zur Konfiguration der Zustandsmaschine (800) von dem Mikroprozessor (811) des Mik- rocontrollers (102) Konfigurationsparameter in Konfigurations- und Statusregister (802) der Teilnehmerschnittstelle (107) abgelegt werden.9. The method according to claim 8, characterized in that the configuration of the state machine (800) from the microprocessor (811) of the microcontroller (102) configuration parameters in configuration and status registers (802) of the subscriber interface (107) are stored.
10. Verfahren nach Anspruch 8 oder 9, dadurch gekennzeichnet, dass in einem Sequenzspeicher der Teilnehmerschnittstelle (107) Verweise auf bestimmte in dem Botschaftsspeicher (300) abgelegte Botschaften und Informationen über die Botschaften abgelegt werden, wobei zur Koordination und Steuerung der Datenübertragung von der Zustandsmaschine (800) Einträge des Sequenzspeichers aufgerufen werden.10. The method of claim 8 or 9, characterized in that stored in a sequence memory of the subscriber interface (107) references to certain in the message memory (300) stored messages and information about the messages, wherein for coordinating and controlling the data transmission from the state machine (800) entries of the sequence memory are called.
11. Verfahren nach einem der Ansprüche 8 bis 10, dadurch gekennzeichnet, dass der FlexRay- Kommunikationsbaustein (100) mindestens einen Pufferspeicher (201, 202), vorzugsweise mindestens einen Eingangspufferspeicher (201) und mindestens einen Ausgangspufferspeicher (202), zum Zwischenspeichern von zwischen dem Botschaftsspeicher (300) des11. The method according to any one of claims 8 to 10, characterized in that the FlexRay communication module (100) at least one buffer memory (201, 202), preferably at least one input buffer memory (201) and at least one output buffer memory (202), for buffering between the message memory (300) of the
Kommunikationsbausteins (100) und dem DMA-Controller (812) zu übertragenden Daten, vorzugsweise zum Zwischenspeichern mindestens einer in dem Botschaftsspeicher (300) abgelegten Botschaft, aufweist, und zur Steuerung und Koordination der Datenübertragung von der Zu- Standsmaschine (800) in dem mindestens einen Pufferspeicher (201,Communications module (100) and the DMA controller (812) to be transmitted data, preferably for temporarily storing at least one in the message memory (300) stored message, and for controlling and coordinating the data transmission from the on-state machine (800) in the at least a buffer memory (201,
202) zugehörigen Kontrollregistern (403, 404; 703, 704) Koordinationsund Steuerungsparameter abgelegt werden. 202) associated control registers (403, 404; 703, 704) coordination and control parameters are stored.
EP06807000A 2005-10-06 2006-10-05 User interface which is between a microcontroller and a flexray-communication component, flexray-user and method for transmitting messages via said type of interface Withdrawn EP1941377A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102005048582A DE102005048582A1 (en) 2005-10-06 2005-10-06 Subscriber interface between a microcontroller and a FlexRay communication module, FlexRay subscriber and method for transmitting messages via such an interface
PCT/EP2006/067085 WO2007039634A2 (en) 2005-10-06 2006-10-05 User interface which is between a microcontroller and a flexray-communication component, flexray-user and method for transmitting messages via said type of interface

Publications (1)

Publication Number Publication Date
EP1941377A2 true EP1941377A2 (en) 2008-07-09

Family

ID=37887076

Family Applications (1)

Application Number Title Priority Date Filing Date
EP06807000A Withdrawn EP1941377A2 (en) 2005-10-06 2006-10-05 User interface which is between a microcontroller and a flexray-communication component, flexray-user and method for transmitting messages via said type of interface

Country Status (6)

Country Link
US (1) US20100161834A1 (en)
EP (1) EP1941377A2 (en)
JP (1) JP2009511318A (en)
CN (1) CN101283338A (en)
DE (1) DE102005048582A1 (en)
WO (1) WO2007039634A2 (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005048595A1 (en) * 2005-10-06 2007-04-12 Robert Bosch Gmbh Method for connecting a FlexRay subscriber with a microcontroller to a FlexRay communication connection via a FlexRay communication control device, and FlexRay communication control device, FlexRay subscriber and FlexRay communication system for implementing this method
WO2007147435A1 (en) * 2006-06-20 2007-12-27 Freescale Semiconductor, Inc. Method for transmitting a datum from a time-dependent data storage means
EP2038744B1 (en) * 2006-06-22 2018-08-08 NXP USA, Inc. Method and system of grouping interrupts from a time-dependent data storage means
US7949679B2 (en) * 2008-03-05 2011-05-24 International Business Machines Corporation Efficient storage for finite state machines
CN102693210B (en) * 2011-03-21 2017-03-01 中兴通讯股份有限公司 The method and device of Transfer Parameters between a kind of processor
DE102011087509A1 (en) 2011-12-01 2013-06-06 Robert Bosch Gmbh Sensor transmission device and method for transmitting useful data from a plurality of sensors to a bus control device for a vehicle
CN102841870B (en) * 2012-08-10 2015-04-15 无锡众志和达数据计算股份有限公司 General direct memory access (DMA) structure based on high-speed serial bus and pre-read method
CN102841871B (en) * 2012-08-10 2015-06-17 无锡众志和达数据计算股份有限公司 Pipeline read-write method of direct memory access (DMA) structure based on high-speed serial bus
CN103414619A (en) * 2013-08-14 2013-11-27 上海固泰科技有限公司 Automation control method based on FlexRay bus
CN103428059A (en) * 2013-08-14 2013-12-04 上海固泰科技有限公司 Simulation method on basis of FlexRay buses
CN106789489A (en) * 2015-11-20 2017-05-31 成都九十度工业产品设计有限公司 A kind of FlexRay communication controller media access control system and its control method
CN106789490A (en) * 2015-11-20 2017-05-31 成都九十度工业产品设计有限公司 A kind of FlexRay communication controller and control method
DE102016203307A1 (en) * 2016-03-01 2017-09-07 Robert Bosch Gmbh Memory direct access control device for a computer having a working memory
US11116009B2 (en) * 2017-08-03 2021-09-07 Qualcomm Incorporated Synchronous clear to send signaling
US20190227857A1 (en) * 2018-01-25 2019-07-25 salesforce com, inc Smart clipboard for secure data transfer

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06274425A (en) * 1993-03-17 1994-09-30 Hitachi Ltd Network adaptor device
US6351780B1 (en) * 1994-11-21 2002-02-26 Cirrus Logic, Inc. Network controller using held data frame monitor and decision logic for automatically engaging DMA data transfer when buffer overflow is anticipated
US5999474A (en) * 1998-10-01 1999-12-07 Monolithic System Tech Inc Method and apparatus for complete hiding of the refresh of a semiconductor memory
US6708233B1 (en) * 1999-03-25 2004-03-16 Microsoft Corporation Method and apparatus for direct buffering of a stream of variable-length data
US6647440B1 (en) * 1999-09-15 2003-11-11 Koninklijke Philips Electronics N.V. End-of-message handling and interrupt generation in a CAN module providing hardware assembly of multi-frame CAN messages
JP2002007313A (en) * 2000-06-16 2002-01-11 Sony Corp Device and method for processing data, and bus controller
JP3785373B2 (en) * 2002-03-01 2006-06-14 シャープ株式会社 Communication control circuit
US7277449B2 (en) * 2002-07-29 2007-10-02 Freescale Semiconductor, Inc. On chip network
US7353321B2 (en) * 2003-01-13 2008-04-01 Sierra Logic Integrated-circuit implementation of a storage-shelf router and a path controller card for combined use in high-availability mass-storage-device shelves that may be incorporated within disk arrays
US8095704B2 (en) * 2003-01-13 2012-01-10 Sierra Logic Integrated-circuit implementation of a storage-shelf router and a path controller card for combined use in high-availability mass-storage-device shelves that may be incorporated within disk arrays
US20050012753A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation Systems and methods for compositing graphics overlays without altering the primary display image and presenting them to the display on-demand
JP2005275963A (en) * 2004-03-25 2005-10-06 Toshiba Corp Monitor description generating apparatus, method, and program
US7430571B2 (en) * 2004-04-30 2008-09-30 Network Appliance, Inc. Extension of write anywhere file layout write allocation
DE102005004464A1 (en) * 2005-01-31 2006-10-26 Robert Bosch Gmbh Method for storing messages in a message memory and message memory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2007039634A3 *

Also Published As

Publication number Publication date
WO2007039634A2 (en) 2007-04-12
CN101283338A (en) 2008-10-08
WO2007039634A3 (en) 2007-06-28
DE102005048582A1 (en) 2007-04-12
JP2009511318A (en) 2009-03-19
US20100161834A1 (en) 2010-06-24

Similar Documents

Publication Publication Date Title
WO2007039634A2 (en) User interface which is between a microcontroller and a flexray-communication component, flexray-user and method for transmitting messages via said type of interface
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
EP1776805B1 (en) Flexray- communication component
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
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
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
DE102007001137B4 (en) Gateway for automatically routing messages between buses
EP1776808B1 (en) Method for storing messages in a message memory and corresponding message memory
EP2030117B1 (en) Gateway for data transfer between serial buses
EP2030118B1 (en) Multi-processor gateway
EP1911213A1 (en) Flexray communication module, flexray communication controller and a method for transmitting messages between a flexray communication connection and a flexray subscriber
WO2006056605A1 (en) Communications module assembly comprising an interface module and associated interface module
DE102012205160A1 (en) Communication arrangement and method for configuring programmable hardware
DE102014207422A1 (en) Bus interface unit and method of operation therefor
WO2007039628A1 (en) Subscriber and communication controller of a communication system and method for transmitting data in a subscriber of the communication system

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20080506

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

17Q First examination report despatched

Effective date: 20100809

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20101221