ES2301029T3 - Procedimiento para el almacenamiento de mensajes en una memoria de mensajes y la memoria de mensajes. - Google Patents

Procedimiento para el almacenamiento de mensajes en una memoria de mensajes y la memoria de mensajes. Download PDF

Info

Publication number
ES2301029T3
ES2301029T3 ES05760988T ES05760988T ES2301029T3 ES 2301029 T3 ES2301029 T3 ES 2301029T3 ES 05760988 T ES05760988 T ES 05760988T ES 05760988 T ES05760988 T ES 05760988T ES 2301029 T3 ES2301029 T3 ES 2301029T3
Authority
ES
Spain
Prior art keywords
data
message
messages
memory
header
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.)
Expired - Lifetime
Application number
ES05760988T
Other languages
English (en)
Inventor
Florian Hartwich
Christian Horst
Franz Bailer
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
Application granted granted Critical
Publication of ES2301029T3 publication Critical patent/ES2301029T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9042Separate storage for different parts of the packet, e.g. header and payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Digital Computer Display Output (AREA)

Abstract

Memoria de mensajes en un módulo de comunicación (100) para el almacenamiento de una cantidad de mensajes, en la que, en los mensajes a ser almacenados, están contenidos los primeros datos (KD0, KD1, KDk) con un primer volumen de datos y los segundos datos (D0, D1, Dk) con un segundo volumen de datos, asimismo el segundo volumen de datos por mensaje puede ser diferente y la memoria de mensajes (300) contiene un segmento de encabezado (HS), en el cual se almacenan los primeros datos (KD0 KD1, KDk) del mensaje, en un área de encabezado respectiva (HB0, HB1, HBk) y la memoria de mensajes (300) contiene un segmento de datos (DS), en el cual se almacenan los segundos datos (D0, D1, Dk) del mensaje en un área de datos respectiva (DB0, DB1, DBk), caracterizada porque la memoria de mensajes (300) está configurada de tal modo que una división entre el segmento de encabezado (HS) y el segmento de datos (DS) es variable y dependiente de la cantidad (k) de mensajes y del segundo volumen de datos.

Description

Procedimiento para el almacenamiento de mensajes en una memoria de mensajes y la memoria de mensajes.
Estado de la técnica
La presente invención comprende un procedimiento para el almacenamiento de una cantidad de mensajes en una memoria de mensajes, en un módulo de comunicación, así como un módulo de comunicación acorde a las características conocidas en el estado de la técnica, de las reivindicaciones independientes.
La puesta en red de los mecanismos de mando, el análisis sensorial y el sistema automático de mando gracias a un sistema de comunicación y un sistema de buses, es decir, una conexión de comunicación, se ha incrementado drásticamente en los últimos años en la construcción de vehículos modernos o también en la construcción de maquinaria, especialmente en el área de las máquinas-herramientas, es decir, también en la automatización. Se pueden obtener, de este modo, efectos de sinergia a través de la distribución de funciones en múltiples mecanismo de mando. Se habla entonces de sistemas distribuidos. La comunicación entre dos estaciones diferentes se realiza, cada vez más, a través de un sistema de buses, es decir, a través de un sistema de comunicación. El flujo de comunicación en el sistema de buses, los mecanismos de acceso y recepción, así como el tratamiento de fallas, son regulados a través de un protocolo. Un protocolo conocido para ello es el protocolo CAN o también el protocolo TTCAN, así como el protocolo FlexRay, asimismo, en este momento subyace la especificación de protocolo FlexRay V2.0. El FlexRay es, a su vez, un sistema de bus rápido, determinista y tolerante a fallas, especialmente para la aplicación en un vehículo. El protocolo FlexRay trabaja según en procedimiento del acceso múltiple por división de tiempo (TDMA, por sus siglas en inglés), asimismo, a los componentes, es decir, a los usuarios, o a los mensajes por ser transmitidos, les son asignadas ranuras de tiempo fijos, en los que tienen un acceso exclusivo a la conexión de comunicación. Esto se aplica de manera comparable en TTCAN. Las ranuras de tiempo se repiten, a su vez, en un ciclo predeterminado, de modo que el momento en el que el mensaje se transmite a través del bus puede ser pronosticado con exactitud, y el acceso al bus se lleva a cabo de modo determinista. Para aprovechar de manera óptima el ancho de banda para la transmisión de mensajes, FlexRay subdivide el ciclo en una parte estática y una parte dinámica. Las ranuras de tiempo se encuentran, a su vez, en la parte estática en el inicio de un ciclo de bus. En la parte dinámica las ranuras de tiempo se asignan dinámicamente. Posibilitando, sólo por un tiempo breve, un acceso exclusivo al bus en cada caso, es decir, hablamos de los denominados minislots. Sólo si se lleva a cabo un acceso a un bus dentro de un minislot, se prolonga la ranura de tiempo por el tiempo requerido. De ese modo el ancho de banda sólo se consume si realmente se necesita. A su vez, FlexRay se comunica a través de dos conductos separados físicamente, con una tasa de datos con respectivamente un máximo de 10 MB por segundo. Ambos canales corresponden, a su vez, a la capa física, especialmente, del modelo de capas OSI (Open System Architecture). Estos sirven entonces principalmente para la transmisión redundante de mensajes, y con ello, tolerante en fallas, pero pueden transmitir también diferentes mensajes, por lo cual la tasa de datos se duplicaría. Pero FlexRay también puede funcionar con tasas de datos bajas.
Para llevar a cabo funciones sincrónicas, y optimizar el ancho de banda a través de pequeñas distancias entre dos mensajes, los componentes en la red de comunicación distribuidos, es decir, los usuarios, requieren una base temporal común, el denominado tiempo global. Para la sincronización de relojes se transmiten mensajes de sincronización en la parte estática del ciclo, asimismo, mediante un algoritmo especial, correspondiente a la especificación de FlexRay, se corrige la hora local de un componente, de tal modo que todos los relojes locales corran de modo sincrónico a un reloj global. Esta sincronización también se lleva a cabo de modo comparable en una red TTCAN.
Un nudo de red FlexRay o un usuario o host de FlexRay contiene un procesador de usuario, es decir, un procesador host, un controlador FlexRay o un controlador de comunicación, así como también, en el caso de una supervisión de buses, un denominado busguardian. A su vez, el procesador host, es decir, el procesador de usuario, suministra y procesa los datos que son transmitidos a través del controlador de comunicación de FlexRay. Para la comunicación en una red FlexRay, los mensajes o los objetos de los mensajes pueden ser configurados con, por ejemplo, hasta 254 bytes de datos. Para transmitir estos mensajes u objetos de mensaje entre la capa física, es decir, la conexión de comunicación, y el procesador host, se utiliza un módulo de comunicación, especialmente un controlador de comunicación. En el estado de la técnica, como por ejemplo, por la memoria WO- A2-01/86869, se conocen memorias de mensajes en módulos de comunicación en los que los datos del segmento de encabezado se almacenan separados de los datos del segmento de datos.
El objetivo ahora es poner a disposición una memoria de mensajes para un módulo de comunicación de un sistema de buses, que apoye de manera óptima la transmisión de mensajes.
Ventajas de la invención
Para ello se representa, acorde a la invención, un procedimiento para el almacenamiento de mensajes en una memoria de mensajes de ese tipo, así como una correspondiente memoria de mensajes para el almacenamiento de mensajes de emisión y recepción, utilizando especialmente una memoria RAM (Random Access Memory). A su vez, la cantidad de mensajes almacenables depende de la magnitud de las áreas de datos de los mensajes. La invención permite ahora almacenar en una memoria, especialmente en una memoria RAM de una magnitud determinada, una cantidad variable de mensajes, y al mismo tiempo, minimizar el tamaño de memoria RAM requerido y aprovecharlo de modo óptimo, sin restringir la magnitud del área de datos de los mensajes.
Para ello se presenta un procedimiento para el almacenamiento de mensajes y una memoria de mensajes en un módulo de comunicación para el almacenamiento de una cantidad de mensajes, asimismo, en los mensajes por ser almacenados están contenidos los primeros datos con un primer volumen de datos, así denominados datos de encabezamiento (es decir, datos de estatus y configuración) y segundos datos con un segundo volumen de datos (los datos por ser enviados propiamente dichos). A su vez, el segundo volumen de datos puede, como ya se ha mencionado, ser diferente; asimismo, la memoria puede contener, ventajosamente, un segmento de encabezado, en el cual los primeros datos del mensaje son almacenados en un área de encabezado por mensaje, y la memoria de mensajes contiene, además, un segmento de datos en el que los segundos datos del mensaje son almacenados en un área de datos por mensaje, y la memoria de mensajes está configurada de modo que se genere una división variable entre el segmento de encabezado y el segmento de datos dependiendo de la cantidad de mensajes, y del segundo volumen de datos. Con ello, la división, especialmente de la memoria RAM, es decir, de la memoria de mensajes entre la sección de encabezado o el segmento de encabezado y la sección de datos, es decir, el segmento de datos, es variable, de modo que si se configuran menos mensajes la sección de encabezado es menor y se puede usar, en su lugar, el área que se libera en la memoria de mensajes para el almacenamiento de los datos por ser transmitidos.
En un acondicionamiento ventajoso se prevé, para ello, un elemento indicador por mensaje en el segmento de encabezado en cada área de encabezado, un denominado Datapointer, a través del cual se determina un área de datos en el segmento de datos, al indicar el Datapointer especialmente la dirección de inicio del área de datos respectiva.
En otro modo de ejecución, los primeros y los segundos datos de los mensajes se almacenan, convenientemente, en un orden predeterminable en la memoria de mensajes, de modo que el orden de las áreas de encabezado en el segmento de encabezado y el orden de las áreas de datos de las áreas de datos en el segmento de datos sean respectivamente idénticas, y así, se obtenga, en el segmento de encabezado y a partir de cada posición del área de encabezado de un mensaje, el área de datos correspondiente en el segmento de datos. A su vez, la memoria de mensajes está configurada ventajosamente como memoria FIFO, para retransmitir el mensaje en el orden de llegada.
Para aprovechar de modo óptimo el espacio de almacenamiento de la memoria de mensajes, los primeros datos del mensaje son almacenados respectivamente en un área de encabezado por mensaje y con una primera cantidad predeterminada de palabras de almacenamiento idéntica para cada área de encabezado, especialmente en exactamente una palabra de memoria. A su vez, el indicador o Datapointer correspondiente también puede ser almacenado de manera conjunta en una cantidad predeterminada de modo fijo de palabras de memoria, de modo que en total, para cada área de encabezado del segmento de encabezado, se obtiene la misma cantidad de palabras de memoria, y con ello, sólo a través de la cantidad de mensajes almacenados o por almacenarse, se obtiene, en total, la magnitud del segmento de encabezado, utilizando una cantidad constante de palabras de memoria.
De modo conveniente, la memoria de mensajes está configurada con un ancho de palabra de almacenamiento predeterminado de modo fijo. Es especialmente ventajoso si el área de encabezado y el área de datos se suceden directamente y se obtiene la división variable a través del desplazamiento de este límite de área.
Para el reconocimiento de datos puede estar previsto ventajosamente que cada área de datos incluya, al menos, un ancho de palabra de almacenamiento predeterminado, y esté previsto un identificación de control en el área de datos por cada ancho de palabra de almacenamiento, especialmente un bit de paridad, y que a la memoria de mensajes le estén asignados un elemento generador de bits de paridad y un elemento de evaluación de bits de paridad, para generar la identificación de control, especialmente del bit de paridad, y de ese modo evaluar la exactitud de los datos almacenados.
En un modo de ejecución preferido, se utiliza una la memoria de mensajes acorde a la invención en un módulo de comunicación FlexRay, que, a su vez, se encuentra en un usuario de una red FlexRay, es decir, en un mecanismo de mando, o está asignado directamente a él.
De ese modo se obtienen, acorde a la invención, diversas ventajas a través de la división de la memoria de mensajes: De ese modo, el usuario puede decidir durante la programación si desea utilizar una mayor cantidad de mensajes con un campo de datos menor o si desea una menor cantidad de mensajes con un mayor campo de datos. En caso de la configuración de mensajes con áreas de datos de diferentes tamaños, se aprovecha de modo óptimo la memoria presente. El usuario tiene la posibilidad de utilizar al mismo tiempo un área de datos para mensajes diferentes. En caso de la implementación del controlador de comunicación, es decir, del módulo de comunicación en una conmutación integrada, se puede adaptar la magnitud de la memoria de mensajes adaptando exactamente la profundidad de almacenamiento de la memoria utilizada, especialmente la memoria RAM, a las necesidades de la aplicación sin modificar las demás funciones del controlador de comunicación o módulo de comunicación.
Otras ventajas y acondicionamientos ventajosos se obtienen de las características de las reivindicaciones así como de la descripción.
Dibujo
La invención se describe en mayor detalle a partir de las siguientes figuras del dibujo. A su vez la figura 1 muestra una representación esquemática del módulo de comunicación y su unión a la capa física, es decir, la conexión de comunicación y el usuario de comunicación o host.
La figura 2 representa, de modo detallado y en un modo de ejecución especial, el módulo de comunicación de la figura 1, así como su unión.
En la figura 3 está representada la estructura de la memoria de mensajes.
Las figuras 4 a 6 describen de modo esquemático la arquitectura y el proceso del acceso a los datos en dirección del usuario a la memoria de mensajes.
Las figuras 7 a 9 describen de modo esquemático la arquitectura y el proceso del acceso a los datos en dirección de la memoria de mensajes al usuario.
En la figura 10 está representado de modo esquemático el administrador de mensajes y las máquinas de estados finitos contenidas en él.
La figura 11 muestra nuevamente de modo esquemático los componentes del módulo de comunicación, así como el usuario y las rutas de datos manejadas por el administrador de mensajes.
La figura 12 describe la distribución del acceso en relación a las rutas de datos de la figura 11.
A continuación se comenta en detalle la invención, a partir de los ejemplos de ejecución.
Ejemplos de ejecución
La figura 1 muestra, de modo esquemático, un módulo de comunicación FlexRay 100 para la unión de un usuario o host 102 a una conexión de comunicación FlexRay 101, es decir, la capa física del Flex Ray. Para ello, el módulo de comunicación FlexRay 100 está unido a la conexión de comunicación 101, a través de una unión 107, con el usuario o el procesador de usuario 102 y a través de una unión 106. Para la unión sin problemas, por un lado en lo que respecta a los tiempos de transmisión, y por el otro a la integridad de los datos, están diferenciadas, de modo esquemático, esencialmente tres disposiciones en el módulo comunicación FlexRay. A su vez, una primera disposición 105 sirve para el almacenamiento, especialmente para el almacenamiento intermedio de al menos una parte de los mensajes por transmitir. Entre el usuario 102 y esta primera disposición 105 está conmutada una segunda disposición 104, a través de las uniones 107 y 108. Del mismo modo, entre el usuario 101 y la primera disposición 105 está conmutada una tercera disposición 103, a través de las uniones 106 y 109, por lo que se puede obtener una entrada y salida muy flexibles de datos como parte de mensajes, especialmente de mensajes FlexRay a o desde la primera disposición 105, garantizando la integridad de datos en caso de una velocidad óptima.
En la figura 2 este módulo de comunicación 100 está representado nuevamente en detalle, en un modo de ejecución preferido. Con el mismo detalle están representadas las respectivas uniones 106 a 109. La segunda disposición 104 contiene, a su vez, un almacenamiento de mensaje de llegada 201 (Input Buffer IBF), un almacenamiento de mensajes de salida 202 (Output Buffer OBF), así como un módulo de interfaz que consiste en dos partes 203 y 204, asimismo un módulo parcial 203 es independiente del usuario, y el segundo módulo parcial 204 es específico para el usuario. El módulo parcial específico 204 (Customer CPU Interface CIF) conecta una CPU central (host) específica 102, es decir, un usuario específico con el módulo de comunicación FlexRay. Para ello están previstos un conducto de datos bidireccional 216, un conducto de dirección 217, así como una entrada de mando 218. Del mismo modo se prevé en 219 una salida de interrupción. El módulo parcial específico 204 está conectado con un módulo parcial independiente 203 (Generic CPU Interface, GIF), es decir, el módulo de comunicación FlexRay o el módulo IP FlexRay cuenta con una interfaz de CPU genérica, es decir, común, a la cual se puede conectar una gran cantidad de diferentes CPUs host (principales) específicas del cliente, a través de módulos parciales específicos correspondientes, es decir, Customer CPU Interfaces CIF. Por ello sólo se debe variar el módulo parcial 204, dependiendo del usuario, lo cual significa un costo notablemente menor.
El almacenamiento de mensajes de llegada 201 y el almacenamiento de mensajes de salida 202 pueden estar configurados en un módulo de la memoria, pero también en módulos de la memoria separados. A su vez, almacenamiento de mensaje de llegada 201 sirve para el almacenamiento temporal de mensajes para su transmisión a la memoria de mensajes 200. A su vez, el módulo de almacenamiento intermedio de entrada está configurado, preferentemente, de modo que pueda almacenar dos mensajes completos que consisten respectivamente en un segmento de encabezado, especialmente con datos de configuración, y un segmento de datos o segmento de gestión de datos (payload). A su vez, el almacenamiento de mensajes de entrada está configurado en dos partes (la memoria intermedia parcial y la memoria caché), por lo cual se puede acelerar la transmisión entre la CPU del usuario 102 y la memoria de mensajes 200, mediante la escritura alternativa de ambas partes del almacenamiento de mensaje de llegada, o a través del cambio de acceso. Igualmente, el almacenamiento de mensajes de salida (Output- Buffer OBF) sirve para el almacenamiento temporal de mensajes para la transmisión de la memoria de mensajes 200 a la CPU del usuario 102. A su vez, también el almacenamiento de mensajes de salida 202 está configurado de tal modo que puedan ser almacenados dos mensajes completos, que consisten en un segmento de encabezado, especialmente con datos de configuración, y un segmento de datos, es decir, un segmento de gestión de datos (payload). También en este caso el almacenamiento de mensajes de salida 202 está dividido en dos partes, una memoria intermedia parcial y una memoria caché, por lo que también en este caso, a través de la lectura alternada de ambas partes, se puede acelerar la transmisión, o, a través del cambio de acceso se puede acelerar la transmisión entre la CPU del usuario o host 102 y la memoria de mensajes 200. La segunda disposición 104, que consiste en dos bloques 201 a 204, está unida a la primera disposición 105, del modo
indicado.
La disposición 105 consiste en un administrador de mensajes 200 (Message Handler MHD) y una memoria de mensajes 300 (Message RAM). El administrador de mensajes controla la transferencia de datos entre el almacenamiento de mensaje de llegada 201 así como del almacenamiento de mensajes de salida 202, y la memoria de mensajes 300. Del mismo modo controla la transferencia de datos en la otra dirección a través de la tercera disposición 103. La memoria de mensajes está ejecutada preferentemente como "single-ported RAM". Esta memoria RAM almacena los mensajes o los objetos de mensaje, es decir los datos propiamente dichos, junto con los datos de configuración y estatus. En la figura 3 está representada en mayor detalle la estructura exacta de la memoria de mensajes 300.
La tercera disposición 103 consiste en los bloques 205 a 208. Correspondientemente a ambos canales de la capa física FlexRay, esta disposición 103 está dividida en dos rutas de datos con dos direcciones de datos cada una. Esto queda claro a través de las uniones 213 y 214, en las que están representadas ambas direcciones de los datos para el canal A, RxA y TxA para el receptor (RxA) y emisor (TxA), así como para el canal B, RxB y TxB.
Se denomina unión 215 a una entrada de mando opcional y bidireccional. La unión de la tercera disposición 103 se lleva a cabo a través de una primera memoria intermedia 205 para el canal B y una segunda memoria intermedia 206 para el canal A. Estas dos memorias intermedias (Transient Buffer RAM's: RAM A y RAM B) sirven como memoria intermedia para la transmisión de datos de o a la primera disposición 105. De modo correspondiente a ambos canales, estas dos memorias intermedias 205 y 206 están unidas, cada una, con un módulo de interfaz 207 y 208, que contiene al controlador de protocolo FlexRay o al controlador de protocolo de buses, que consisten en un registro de desplazamiento de emisión y recepción y en la máquina de estado finito del protocolo FlexRay. Ambas memorias intermedias 205 y 206 sirven, con ello, como memoria intermedia para la transmisión de datos entre los registros de desplazamiento de los módulos de la interfaz o entre los controladores de protocolo FlexRay 207 y 208 y la memoria de mensajes 300. También en este caso se almacenan ventajosamente, a través de cada memoria intermedia 205 o 206, los campos de datos, es decir, el segmento de gestión de datos o segmento de datos de dos mensajes FlexRay.
En el módulo de comunicación 100 está representado además, con la referencia 209, la unidad de tiempo global (Global Time Unit GTU), responsable de la representación del retículo de tiempo en FlexRay, es decir, el Mikrotic PT y el Makrotic MT. Del mismo modo se regula, a través de la unidad de tiempo global 209, la sincronización de relojes del contador de ciclos (Cycle Counter), que tolera fallas, y el control de los desarrollos temporales en el segmento estático y dinámico de FlexRay.
Con el bloque identificado con 210 está representado el control general del sistema (System Universal Control SUC), a través del cual se controlan los modos de operar del controlador de comunicación FlexRay. Entre ellos contamos la alarma (wakeup), el inicio (startup), la reintegración o integración, la operación normal (normal operation) y a operación pasiva (passive operation).
El bloque 211 muestra la gestión de red y de fallas (NEM), como está descrito en las especificaciones de protocolo FlexRay v2.0. Finalmente, el bloque 212 muestra el control de interrupción (Interrupt Control INT), que administra las señales de estatus y de fallas (status and error interrupt flags) y controla las salidas de interrupción 219 a las CPUs de los usuarios 102. El bloque 212 contiene, además, un temporizador o indicador de tiempo absoluto y uno relativo, para generar interrupciones temporales o "timerinterrupts".
Para la comunicación en una red FlexRay, los objetos de los mensajes o mensajes (Message Buffer) pueden ser configurados con, por ejemplo, hasta 254 bytes de datos. La memoria de mensajes 300 es especialmente una memoria de mensajes RAM (Message RAM), que puede almacenar hasta un máximo de 64 objetos de mensajes. Todas las funciones que se refieren al tratamiento o a la administración de mensajes, están implementadas en el administrador de mensajes o "Message Handler" 200. Estos son, por ejemplo, el filtrado de aceptación, la transferencia de los mensajes entre ambos bloques del controlador de protocolo FlexRay 207 y 208 y la memoria de mensajes 300, es decir, Message RAM, así como el control del orden de emisión y la puesta a disposición de datos de configuración o de datos de estatus.
Una CPU externa, es decir, un procesador externo del procesador del usuario 102 puede acceder, a través de la interfaz del usuario, y con una parte específica 204, directamente al registro del módulo de comunicación FlexRay. A su vez, se utilizan una multiplicidad de registros. Estos registros se aplican para configurar y controlar los controladores de protocolo FlexRay, es decir, los módulos de interfaz 207 y 208, el administrador de mensajes (Message Handler MHD) 200, la unidad global de tiempo (Global Time Unit GTU) 209, el control sistemático general (System Universal Controller SUC) 210, la unidad de gestión de red y de fallas (Network und Error Management Unit NEM) 211, el controlador de interrupción (Interrupt Controller INT) 212, así como el acceso a la memoria RAM, es decir, de la memoria de mensajes 300, además de indicar su estatus correspondiente. En las figuras 4 a 6 y 7 a 9 se profundiza al menos en partes de este registro. Un módulo de comunicación FlexRay, acorde a la invención y de ese tipo, posibilita la conversión simple de la especificación FlexRay v2.0, con lo cual se pueden generar de manera simple un ASIC o un microcontrolador con una correspondiente funcionalidad FlexRay.
En la figura 3 está descrita en detalle la división de la memoria de mensajes 300. Para la funcionalidad requerida, acorde a la especificación de protocolo FlexRay de un controlador de comunicación FlexRay, se requiere una memoria de mensajes para la puesta a disposición de mensajes por enviarse (Transmit Buffer) así como el almacenamiento de mensajes recibidos libres de fallas (Receive Buffer). Un protocolo FlexRay tolera mensajes con un área de datos, es decir, con un área de gestión de datos, de 0 a 254 bytes. Como está representado en la figura 2, la memoria de mensajes es parte del módulo de comunicación FlexRay 100. El procedimiento descrito a continuación, así como la memoria de mensajes correspondiente, describen el almacenamiento de los mensajes por ser enviados, así como de los mensajes recibidos, especialmente utilizando una Random Access Memory (RAM), asimismo es posible almacenar una cantidad variable de mensajes en una memoria de mensajes de dimensiones determinadas, a través del mecanismo acorde a la invención. A su vez, la cantidad de mensajes almacenables depende de la magnitud del área de datos de los mensajes individuales, por lo cual se puede, por un lado, minimizar la dimensión de la memoria requerida sin restringir la magnitud del área de datos de los mensajes, y por el otro lado, se lleva a cabo un aprovechamiento óptimo de la memoria. A continuación se describirá en mayor detalle esta división variable de una memoria de mensajes, especialmente una memoria de mensajes basada en RAM, para un controlador de comunicación
FlexRay.
Para la implementación se determina, por ejemplo, una memoria de mensajes con un ancho de palabras fijado en n bits, por ejemplo, 8,16, 32, etc., así como una profundidad de almacenamiento de palabras (siendo m, n números naturales). Se divide la memoria de mensajes 300 en dos segmentos, un segmento de encabezado HS y un segmento de datos DS (Payload Section, Payload Segment). Por mensaje se aplica, con ello, un área de encabezado HB y un área de datos DB. Para mensajes 0, 1 a k (siendo k un número natural) se almacenan entonces áreas de encabezado HB0, HB1 a HBk y áreas de datos DB0, DB1 a DBk. En un mensaje se distingue, entonces, entre primeros y segundos datos, asimismo los primeros datos se corresponden con datos de configuración y/o datos de estatus correspondientes al mensaje FlexRay y se almacenan en un área de encabezado HB (HB0, HB1,..., HBk). Los segundos datos, que se corresponden con los datos propiamente dichos que deben ser transmitidos, se almacenan acorde a las áreas de datos DB (DB0 DB1, ..., DBk). De ese modo se genera un primer volumen de datos por mensaje para los primeros datos (medido en bits, bytes o palabras de almacenamiento) y un segundo volumen de datos por mensaje para los segundos datos (también medido en bits, bytes o palabras de almacenamiento), asimismo el segundo volumen de datos puede ser diferente según cada mensaje. La división entre segmento de encabezado HS y segmento de datos DS en la memoria de mensajes 300 es entonces variable, es decir, no existe un límite predeterminado entre las áreas. La división entre el segmento de encabezado HS y el segmento de datos DS es, acorde a la invención, dependiente de la cantidad k de mensajes, así como del segundo volumen de datos, es decir, del volumen propiamente dicho de los datos de un mensaje o de todos los k mensajes juntos. Acorde a la invención, ahora a cada dato de configuración KD0, KD1 a KDk, de cada mensaje, le es suministrado directamente un elemento indicador o Datapointer DP0, DP1 a DPk. En el acondicionamiento especial, a cada área de encabezado HB0, HB1 a HBk le es asignada una cantidad fija de palabras de almacenamiento, en este caso, dos, de modo que siempre se almacenan juntos en un área de encabezado HB una fecha de configuración KD (KD0, KD1, ..., KDk) y un elemento indicador DP (DP0, DP1, ..., DPk). En este segmento de encabezado HS con el área de encabezado HB, cuya magnitud o primer volumen de datos depende de la cantidad k de los mensajes por almacenarse, conecta el segmento de datos DS para el almacenamiento de los datos propiamente dichos de mensaje D0, D1 a Dk. Este segmento de datos (o sección de datos, "datensection") DS depende en su volumen de datos del volumen de datos respectivo de los datos del mensaje almacenados, en este caso, por ejemplo, en DB0 seis palabras, DB1 una palabra y DBk dos palabras. El elemento indicador respectivo DP0, DP1 a DPk señala, de ese modo, siempre hacia el inicio, es decir, hacia la dirección de inicio del área de datos respectiva DB0, DB1 a DBk en la que están almacenados los datos D0, D1 a Dk de cada mensaje 0,1, a k. De ese modo, la división de la memoria de mensajes entre segmento de encabezado HS y segmento de datos DS es variable y depende de la cantidad de mensajes misma, así como del volumen de datos respectivo de un mensaje, y, por ello, de todo el segundo volumen de datos. Si se configuran pocos mensajes, el segmento de encabezado se reduce y el área que se libera en la memoria de mensajes puede utilizarse como adicional al segmento de datos DS para el almacenamiento de datos. A través de esta variabilidad se puede garantizar un óptimo aprovechamiento de la memoria, por lo cual también es posible una utilización de memorias menores. El segmento de datos libre FDS, especialmente su tamaño, también dependiente de la combinación entre la cantidad k de los mensajes almacenados y el segundo volumen de datos respectivo del mensaje es, con ello, mínimo, y puede ser incluso igual a cero.
Junto al uso de elementos indicadores, también es posible almacenar los primeros y los segundos datos, es decir, los datos de configuración KD (KD0, KD1, ..., KDk) y los datos propiamente dichos D (D=, D1, ..., Dk) en un orden predeterminable, de modo que el orden de las áreas de encabezado HB0 a HBk en el segmento de encabezado HS y el orden de las áreas de datos DB0 a DBk en el segmento de datos DS sea idéntico en cada caso. Entonces se podría prescindir, eventualmente, del elemento indicador.
En un acondicionamiento especial, a la memoria de mensajes le está asignada un generador de identificación de fallas, especialmente un elemento generador de bits de paridad y evaluador de identificación de fallas, especialmente un elemento de evaluación de bits de paridad, para garantizar la exactitud de los datos almacenados en HS y DS, al poder almacenar en conjunto, por palabra de almacenamiento o por área (HB y/o DB), una suma de comprobación, especialmente como bit de paridad. También se puede pensar en otras identificaciones de control, por ejemplo, un CRC (control de redundancia cíclica o cyclic redundancy check) o también identificaciones de mayor complejidad, como ECC (código de corrección de errores, o Error Code Correction). De ese modo se obtienen las siguientes ventajas respecto de una división fija de la memoria de mensajes:
El usuario puede decidir, durante la programación, si desea utilizar una mayor cantidad de mensajes con un campo de datos menor o si desea una menor cantidad de mensajes con un mayor campo de datos. En caso de la configuración de mensajes con áreas de datos de diferentes tamaños, se aprovecha de modo óptimo el espacio de memoria presente. El usuario tiene la posibilidad de utilizar al mismo tiempo un área de la memoria de datos para mensajes diferentes.
En caso de la implementación del controlador de comunicación en una conmutación integrada, se puede adaptar la magnitud de la memoria de mensajes adaptando exactamente la profundidad de almacenamiento de la memoria utilizada a las necesidades de la aplicación, sin modificar las demás funciones del controlador de comunicación.
En adelante se describirá, en mayor detalle, a partir de las figuras 4 a 6, así como 7 a 9, el acceso de la CPU host, es decir, la lectura y escritura de datos de configuración o datos de estatus y datos propiamente dichos sobre la disposición de las memorias intermedias 201 y 202. A su vez, el objetivo es establecer un desacople respecto de la transmisión de datos, de modo tal que se pueda asegurar la integridad de datos y, al mismo tiempo, se garantice una velocidad de transmisión de datos elevada. El control de estos procedimientos se lleva a cabo a través del administrador de mensajes 200, lo cual posteriormente se describirá en mayor detalle en las figuras 10, 11 y 12.
En las figuras 4, 5 y 6 se describen primero, en mayor detalle, los accesos de escritura a la memoria de mensajes 300 a través de la CPU host del usuario de la CPU 102, a través del almacenamiento de mensaje de llegada 201. Para ello, la figura 4 muestra una vez más el módulo de comunicación 100, asimismo, para una mayor claridad sólo se muestran las partes aquí relevantes del módulo de comunicación 100. Esto es, por un lado, para el control del administrador de mensajes 200 responsable de los desarrollos, así como de dos registros de control 403 y 404, que, como se está representado, pueden estar alojados fuera del administrador de mensajes 200 en el módulo de comunicación 100, pero también pueden estar contenidos en el administrador de mensajes 200 mismo. La referencia 403 identifica al registro de solicitud de entrada (Input Buffer Command Request Register) y la referencia 404 al registro de máscara de entrada (Input Buffer Command Mask Register). Los accesos de escritura de la CPU host 102 en la memoria de mensajes 300 (Message RAM) se llevan a cabo a través de un almacenamiento de mensaje de llegada intercalado 201 (Input Buffer). Este almacenamiento de mensaje de llegada 201 está ahora configurado de modo dividido o desdoblado, a saber, como memoria intermedia parcial 400 y una memoria caché 401 correspondiente a la memoria intermedia parcial. De ese modo se puede llevar a cabo el acceso continuo de la CPU host 102, como se describe más adelante, a los datos correspondientes a los mensajes u objetos de mensajes de la memoria de mensajes 300 y de ese modo se puede garantizar la integridad de los datos y la transmisión acelerada de datos. El control de los accesos se lleva a cabo a través del registro de solicitud de entrada 403 y a través del registro de máscara de entrada 404. En el registro 403 están representados, con los números 0 a 31, las posiciones de bits en 403, en este caso, y a modo de ejemplo, para un ancho de 32 bits. Lo mismo vale para el registro 404 y las posiciones de bits 0 a 31 en 404.
Acorde a la invención, las posiciones de bits, a modo de ejemplo, 0 a 5, 15, 16 a 21 y 31 del registro 403, comprenden una función especial en lo tocante al control del desarrollo. De ese modo, en las posiciones de bit 0 a 5 del registro 403 se puede cargar una identificación IBRH (Input Buffer Request Host) como identificación del mensaje. Igualmente, en las posiciones de bit 16 a 21 del registro 403 se puede cargar una identificación IBRH (Input Buffer Request Host) como identificación del mensaje. Igualmente, en la posición de registro 15 de 403 está ingresado IBSYH como identificación de acceso, y en la posición de registro 31 de 403, IBSYS. También están identificadas las posiciones 0 a 2 del registro 404, asimismo en 0 y 1 están cargadas otras identificaciones como identificaciones de datos, con LHSH (Load Header Section Host) y LDSH (Load Data Section Host). Estas identificaciones de datos están registradas en este caso en su forma más simple, a saber, respectivamente como un bit; en la posición de bit 2 del registro 404, está registrada una identificación de inicio con STXRH (Set Transmission X Request Host). En adelante se describe el desarrollo del acceso de escritura en la memoria de mensajes través de la memoria intermedia.
La CPU host 102 escribe los datos del mensaje por ser transferido en el almacenamiento de mensaje de llegada 201. A su vez, ahora la CPU host 102 sólo puede escribir los datos de configuración y de encabezamiento KD de un mensaje para el segmento de encabezamiento HS de la memoria de mensajes, o sólo los datos propiamente dichos D, por ser transmitidos, de un mensaje para el segmento de datos DS de la memoria de mensajes o ambos. La parte de un mensaje, es decir, los datos de configuración y/o los datos propiamente dichos que deben ser transmitidos, son determinados por una identificación especial de datos LHSH y LDSH en el registro de marcas de entrada 404. A su vez, mediante LHSH (Load Header Section Host) se determina si son transmitidos los datos de encabezado, es decir, los datos de configuración KD, y mediante LDSH (Load Data Section Host) se determina si deben ser transmitidos los datos D. Dado que el almacenamiento de mensaje de llegada 201 está configurado en dos partes con una parte de la memoria intermedia 400 y una memoria caché 401 correspondiente, y se debe llevar a cabo un acceso bilateral, están previstas como contrapiezas de LHSH y LDSH dos áreas de identificación de datos más, que se refieren ahora a la memoria caché 401. Estas identificaciones de datos en las posiciones de bits 16 y 17 del registro 404 se denominan LHSS (Load Header Section Shadow) y LDSS (Load Data Section Shadow). A través de ellas se controla, de ese modo, el procedimiento de transmisión en lo tocante a la memoria caché 401.
Si se ha puesto el bit de inicio o la identificación de inicio STXRH (Set Transmission X Request Host) en la posición de bit 2 del registro de máscara de entrada 404, entonces, tras la transferencia exitosa de los datos de configuración respectivos por enviarse y/o los datos propiamente dichos en la memoria de datos 300, se pone automáticamente una solicitud de envío (Transmission Request) para el objeto de mensaje correspondiente, es decir, a través de esta identificación de inicio STXRH se controla, especialmente, se inicia, el envío automático de un objeto de mensaje.
La contrapieza de esto, correspondiente a la memoria caché, es la identificación de inicio STXRS (Set Transmission X Request Shadow) que está contenida, por ejemplo, en la posición de bit 18 del registro de marcas de entrada 404, y también aquí está configurada, en el caso más simple, como un bit. La función de STXRS es análoga a la función de STXRH, relacionada sólo con la memoria caché 1.
Si la CPU host 102 escribe la identificación del mensaje, especialmente el número del objeto de mensaje en la memoria de mensajes 300 a la cual deben transferirse los datos del almacenamiento de mensaje de llegada 201, en las posiciones de bits 0 a 5 del registro de solicitud de entrada 403, es decir, según IBRH, entonces la memoria intermedia 400 del almacenamiento de mensaje de llegada 201 y la memoria caché 401 correspondiente son intercambiadas, es decir, se cambia el acceso respectivo de la CPU host 102 y la memoria de mensajes 300 a ambas memorias parciales 400 y 401, como está indicado con las flechas semicirculares. A su vez, también se inicia la transferencia de datos, es decir, la transmisión de datos, a la memoria de mensajes 300. La transmisión de datos a la memoria de mensajes 300 misma se lleva a cabo desde la memoria caché 401. Al mismo tiempo se intercambian las áreas de registro IBRH e IBRS. Igualmente se cambian LHSH y LDSH por LHSS y LDSS. Del mismo modo se cambian STXRH por STXRS. IBRS muestra, con ello, la identificación del mensaje, es decir, el número del objeto de mensaje para el cual está en marcha una transmisión, es decir, una transferencia desde la memoria caché 401, o qué objeto de mensaje, es decir, qué área en la memoria de mensajes ha recibido los últimos datos (KD y/o D) desde la memoria caché 401. A través de la identificación (aquí nuevamente, por ejemplo, 1 bit) IBSYS (Input Buffer Busy Shadow), en la posición de bit 31 del registro de solicitud de entrada 403, se indica si se está llevando a cabo una transmisión con la participación de la memoria caché 401. Por ejemplo, en caso de IBSYS=1 se está transmitiendo desde la memoria caché 401 y en caso de IBSYS=0, no. Este bit IBSYS se pone en el registro 403 por ejemplo, mediante la escritura de IBRH, es decir, de posiciones de bits 0 a 5, para indicar que se está llevando a cabo una transferencia entre la memoria caché 401 y la memoria de mensajes 300. Tras finalizar esta transmisión de datos hacia la memoria de mensajes 300, IBSYS vuelve a su lugar.
Mientras se realiza la transferencia de datos desde la memoria caché 401, la CPU host 102 puede escribir el siguiente mensaje por transferir, en el almacenamiento de mensaje de llegada o en la memoria intermedia 400. Mediante otra identificación de acceso IBSYH (Input Buffer Busy Host), por ejemplo, en la posición de bit 15 del registro 403, se puede refinar aun más la identificación. Si la CPU host 102 escribe IBRH, es decir, las posiciones de bits 0 a 5 del registro 403, durante una transmisión entre la memoria caché 401 y la memoria de mensajes 300, es decir, IBSYS=1, entonces IBSYH se coloca en el registro de solicitud de entrada 403. Tan pronto como finaliza la transferencia en curso, es decir, la transmisión en curso, se inicia la transferencia solicitada (solicitud mediante STXRH, véase arriba) y el bit IBSYH retorna a su lugar. El bit IBSYS permanece todo el tiempo puesto, para indicar que se están transfiriendo datos a la memoria de mensajes. Todos los bits utilizados de todos los ejemplos de ejecución pueden, a su vez, estar también configurados como identificación con más de un bit. Es ventajosa una solución de un bit, por motivos de economía de memoria y procesamiento.
El mecanismo así descrito le permite a la CPU host 102 transferir de modo continuo datos a los objetos de datos que se encuentran en la memoria de mensajes, que consisten en un área de encabezado HB y un área de datos DB, siempre que la velocidad de transferencia de la CPU host 102 en el almacenamiento de mensaje de llegada sea menor o igual a la tasa de transferencia de datos interna del módulo IP FlexRay, es decir, del módulo de comunicación 100.
En las figuras 7, 8 y 9 se describen ahora, en mayor detalle, los accesos de escritura a la memoria de mensajes 300, a través de la CPU host o CPU del usuario 102, a través del almacenamiento de mensaje de salida 202. Para ello, la figura 7 muestra una vez más el módulo de comunicación 100, asimismo, para una mayor claridad también aquí sólo se muestran las partes relevantes del módulo de comunicación 100. Esto es, por un lado, para el control del administrador de mensajes 200 responsable de los desarrollos, así como de dos registros de control 703 y 704, que, como se está representado, pueden estar alojados fuera del administrador de mensajes 300 en el módulo de comunicación 100, pero también pueden estar contenidos en el administrador de mensajes 200 mismo. La referencia 703 identifica al registro de solicitud de salida (Output Buffer Command Request Register) y la referencia 704 al registro de máscara de salida (Output Buffer Command Mask Register). Los accesos de lectura de la CPU host 102 en la memoria de mensajes 300 se llevan a cabo a través de un almacenamiento de mensaje de salida intercalado 202 (Output Buffer). Este almacenamiento de mensaje de salida 202 también está ahora configurado de modo dividido o desdoblado, a saber, como memoria intermedia parcial 701 y una memoria caché 700 correspondiente a la memoria intermedia parcial. De ese modo se puede llevar a cabo, también aquí, el acceso continuo de la CPU host 102, como se describe más adelante, a los datos correspondientes a los mensajes u objetos de mensajes de la memoria de mensajes 300, y de ese modo se puede garantizar la integridad de los datos y la transmisión acelerada de datos, ahora en dirección contraria, desde la memoria de mensajes a la CPU host. El control de los accesos se lleva a cabo a través del registro de solicitud de salida 703 y a través del registro de máscara de entrada 704. También en el registro 703 están representadas, con los números 0 a 31, las posiciones de bits en 703, en este caso, por ejemplo, para un ancho de 32 bits. Lo mismo vale para el registro 704 y las posiciones de bits 0 a 31 en 704.
Acorde a la invención, los puntos de bits, a modo de ejemplo, 0 a 5, 8 y 9, 15 y 16 a 21 del registro 703 comprenden una función especial en lo tocante al control del desarrollo de un acceso de lectura. De ese modo, en los puntos de bits 0 a 5 del registro 703 se puede cargar una identificación OBRS (Output Buffer Request Shadow) como identificación del mensaje. Igualmente, en los puntos de bits 16 a 21 del registro 703 se puede cargar una identificación OBRH (Output Buffer Request Host) como identificación del mensaje. Como identificación de acceso se puede cargar la identificación OBSYS (Output Buffer Busy Shadow) en la posición de bit15 del registro 703. También están identificados los puntos 0 a 2 del registro de máscara de salida 404, asimismo, en las posiciones de bits 0 y 1 están cargadas otras identificaciones como identificaciones de datos, con RDSS (Read Data Section Shadow) y RHSS (Read Header Section Shadow). Otras identificaciones de datos están previstas, por ejemplo, en las posiciones de bits 16 y 17 con RDSH (Read Data Section Host) y RHSH (Read Header Section Host). Estas identificaciones de datos están configuradas, también en este caso a modo de ejemplo, de la manera más simple, a saber, respectivamente por un bit. El la posición de bit 9 del registro 703 está cargada una identificación de inicio REQ. Además está prevista una identificación de conmutación VIEW que, por ejemplo, está cargada en la posición de bit 8 del registro 703.
La CPU host 102 solicita los datos de un objeto de mensaje de la memoria de mensajes 300, escribiendo la identificación del mensaje deseado, es decir, especialmente el número del objeto de mensaje deseado, en OBRS, es decir, en las posiciones de bits 0 a 5 del registro 703. También en este caso la CPU host puede, como en la dirección contraria, leer, o bien sólo los datos de estatus o de configuración y de encabezado KD de un mensaje, es decir, de un área de encabezado, o sólo los datos propiamente dichos por transmitirse D de un mensaje, es decir, del área de datos, o bien ambos. La parte de los datos, es decir, del área de encabezado y/o del área de datos, que debe ser transmitida, se determina para ello de modo comparable con la dirección contraria, por RHSS y RDSS. Es decir, RHSS indica si deben ser leídos los datos de encabezado, y RDSS indica si deben ser leídos los datos propiamente dichos.
Un reconocimiento de inicio sirve para iniciar la transmisión desde la memoria de mensajes a la memoria caché 700, es decir, si se utiliza un bit como identificación, como en el caso más simple, se inicia la transmisión desde la memoria de mensajes 300 a la memoria caché 700, poniendo el bit REQ en la posición de bit 9 en el registro de solicitud de salida 703. La transmisión en curso se indica a través de una identificación de acceso, aquí, nuevamente el caso más simple, a través de un bit OBSYS en el registro 703. Para evitar colisiones es ventajoso si el bit REQ sólo se puede poner cuando no está puesto OBSYS, es decir, cuando no se lleva a cabo una transmisión en curso. Aquí se lleva a cabo entonces también la transferencia de datos entre la memoria de mensajes 300 y la memoria caché 700. El desarrollo propiamente dicho podría controlarse y llevarse a cabo, por un lado, de modo comparable a la dirección contraria, como se describe en las figuras 4, 5 y 6 (ocupación del registro complementaria), o también en una variación, mediante una identificación adicional, a saber, una identificación de conmutación VIEW en la posición de bit8 del registro 703. Es decir, tras finalizar la transmisión, el bit OBSYS regresa a su lugar y, poniendo al bit VIEW en el registro de solicitud de salida 703, la memoria intermedia parcial 701 y la memoria caché 700 correspondiente son intercambiadas, es decir, se cambian los accesos a ellas y ahora la CPU host 102 puede leer en la memoria intermedia parcial 701 el objeto de mensaje solicitado por la memoria de mensajes, es decir, el mensaje correspondiente. Asimismo, también aquí se intercambian, de modo comparable con la dirección contraria en las figuras 4 a 6, las células de registro OBRS y OBRH. Del mismo modo se intercambian RHSS y RDSS por RHSH y RDSH. Como mecanismo de protección se puede prever aquí también que el bit VIEW sólo se pueda poner cuando no está puesto OBSYS, es decir, cuando no se lleva a cabo una transmisión en curso.
De ese modo se llevan a cabo accesos de lectura de la CPU host 102 en la memoria de mensajes 300 a través de un almacenamiento de mensaje de salida 202 intercalado. Este almacenamiento de mensaje de salida y el almacenamiento de mensaje de entrada está configurado de modo dividido o desdoblado, para garantizar un acceso continuo de la CPU host 102 a los objetos de mensaje almacenados en la memoria de mensajes 300. También aquí se obtienen las ventajas de la elevada integridad de datos y de la transmisión acelerada
Utilizando las memorias intermedias de entrada y salida descritas se asegura que una CPU host 102 pueda acceder ininterrumpidamente a la memoria de mensajes a pesar de los tiempos de espera internos del módulo.
Para asegurar esta integridad de datos, la transmisión de datos, especialmente la retransmisión en el módulo de comunicación 100, se realiza mediante el administrador de mensajes 200 (Message Handler MHD). Esto está representado en la figura 10 del administrador de mensajes 200. El administrador de mensajes se puede diseñar, en su funcionalidad, a través de múltiples autómatas de estado, es decir, de autómatas finitos, las denominadas máquinas de estados finitos (FSM). A su vez, están previstas al menos tres máquinas de estado, y en un modo de ejecución especial, cuatro máquinas de estados finitos. Una primera máquina de estado finito es la IOBF- FSM, identificada con la referencia 501 (Input/ Output Buffer State Machine). Esta IOBF- FSM podría estar subdividida en dos máquinas de estados finitos, según la dirección de transmisión, respecto del almacenamiento de mensaje de llegada o del almacenamiento de mensaje de salida, en las máquinas IBF- FSM (Input Buffer FSM) y OBF- FSM (Output Buffer FSM), con lo cual se podría pensar en un máximo de cinco autómatas de estado (IBF- FSM, OBF- FSM, TBF1- FSM, TBF2- FSM, AFSM). Preferentemente se debe prever, sin embargo, una IOBF- FSM común. Al menos una segunda máquina de estado finito está dividida, en el transcurso del ejemplo de ejecución preferido, en dos bloques 502 y 503 y maneja ambos canales A y B en lo tocante a las memorias 205 y 206, como se describe en la figura 2. A su vez, se puede prever una máquina de estado finito para manejar ambos canales A y B o también, como en el modo preferido, máquina de estado finito TBF1- FSM identificada con la referencia 502 (Transient Buffer 1 (206, RAM A) State Machine) para el canal A y para el canal B una TBF2- FSM identificada con la referencia 503 (Transient Buffer 2 (205, RAM B) State Machine).
Para el control del acceso de las tres máquinas de estados finitos 501-503 en el ejemplo de ejecución preferido sirve máquina de estado finito aumentada, la denominada AFSM, identificada con 500. Los datos (KD y/o D) se generan a través de un medio secuenciador, por ejemplo, un VCO (Oscilador controlado por tensión), un cuarzo oscilante etc.,o se transmiten al módulo de comunicación, adaptados a partir de este periodo o ciclo. El periodo T puede, a su vez, ser generado en el módulo o estar predeterminado desde el exterior, por ejemplo, como periodo del bus. Esta máquina de estado finito aumentada AFSM 500 le da acceso a la memoria de mensajes alternadamente a una de las tres máquinas de estados finitos 501-503, especialmente respectivamente durante un período elemental T; es decir, el tiempo disponible para el acceso se divide, acorde a las solicitudes de acceso, entre los autómatas de estado individuales 501, 502, 503. Si la solicitud de acceso es pedida por sólo una máquina de estado finito, entonces ésta obtiene el 100% del tiempo de acceso, es decir, todos los periodos T. Si la solicitud de acceso es pedida por dos autómatas de estado, cada máquina de estado finito obtiene un 50% del tiempo de acceso. Si finalmente se pide una solicitud de acceso por parte de tres autómatas de estado, cada máquina de estado finito obtiene 1/3 del tiempo de acceso. De ese modo se aprovecha de manera óptima el ancho de banda disponible.
La primera máquina de estado finito, que se identifica con 501, es decir, IOBF- FSM, realiza, en caso de necesidad, las siguientes acciones:
-
Transferencia de datos del almacenamiento de mensaje de llegada 201 al objeto de mensaje seleccionado en la memoria de mensajes 300.
-
Transferencia del objeto de mensaje en la memoria de mensajes 300 al almacenamiento de datos de salida 202.
La máquina de estado finito para el canal A 502, es decir, TBF1FSM, lleva a cabo las siguientes acciones:
-
Transferencia de datos del objeto de mensaje seleccionado en la memoria de mensajes 300 a la memoria intermedia 206.
Del canal A.
-
Transferencia de datos de la memoria intermedia 206 al objeto de mensaje seleccionado en la memoria de mensajes 300.
-
Búsqueda del objeto de mensaje adecuado en la memoria de mensajes, en la cual, en la recepción, se busca el objeto de búsqueda (Receive Buffer) para almacenar un mensaje recibido en el canal A, en el marco de un filtrado de aceptación, y en la emisión, el siguiente objeto de mensaje por ser enviado en el canal A (Transmit Buffer).
De modo análogo es la acción de TBF2- FSM, es decir, de la máquina de estado finito para el canal B en el bloque 503. Ésta realiza la transferencia de datos del objeto de mensaje seleccionado en la memoria de mensajes 300 a la memoria intermedia 205 desde el canal B, y la transferencia de datos de la memoria intermedia 205 al objeto de mensaje seleccionado en la memoria de mensajes 300. También la función de búsqueda es análoga a la TBF1- FSM, buscando un objeto de mensaje adecuado en la memoria de mensajes, en la cual, en la recepción, se busca el objeto de búsqueda (Receive Buffer) para almacenar un mensaje recibido en el canal B, en el marco de un filtrado de aceptación, y en la emisión, el siguiente objeto de mensaje por ser enviado en el canal B (Transmit Buffer).
En la figura 11 están representados nuevamente los desarrollos y los recorridos de transmisión. Las tres máquinas de estados finitos 501-503 controlan cada transmisión de datos entre las partes individuales. A su vez, se identifica con 102 nuevamente a la CPU host, con 201 al almacenamiento de mensaje de llegada, y con 202 el almacenamiento de mensaje de salida. Con 300 se representa la memoria de mensajes, y las dos memorias intermedias para el canal A y el canal B, con 206 y 205. Las interfaces 207 y 208 están igualmente representadas. El primer autómata de estado IOBF- FSM, identificado con 501, controla la transferencia de datos Z1A y Z1B, es decir, del almacenamiento de mensaje de llegada 201 a la memoria de mensajes 300 y de la memoria de mensajes 300 al almacenamiento de mensaje de salida 202. La transmisión de datos se lleva a cabo, a su vez, a través de buses de datos con un ancho de palabra de, por ejemplo 32 bits, asimismo también es posible cualquier otra cantidad de bits. Lo mismo vale para la transmisión Z2 entre la memoria de mensajes y la memoria intermedia 206. Esta transmisión de datos se controla con TBF1- FSM, es decir, 502, la máquina de estados para el canal A. La transmisión Z3 entre la memoria de mensajes 300 y la memoria intermedia 205 se controla con el autómata de estado TBF2- FSM, es decir, 503. También aquí se lleva a cabo la transferencia de datos a través de buses de datos con un ancho de banda, a modo de ejemplo, de 32 bits, asimismo también aquí es posible cualquier otra cantidad de bits. Normalmente la transferencia de un objeto de mensaje completo necesita varios periodos elementales T para completar los recorridos de transmisión mencionados. Por ello es llevada a cabo una división del tiempo de transmisión respecto de los periodos elementales T, por la máquina aumentada, es decir, la AFSM 500. En la figura 11 están representadas las rutas de datos, entre los componentes de memoria controlados por el administrador de mensajes (Message Handler). Para asegurar la integridad de los datos de los objetos de mensajes almacenados en la memoria de mensajes, ventajosamente sólo se deberían intercambiar datos al mismo tiempo en una de las rutas representadas, es decir Z1A y Z1B así como Z2 y Z3.
En la representación 12 se muestra en un ejemplo cómo son divididos los períodos del sistema disponibles T en los tres autómatas de estado solicitantes, por parte de la máquina aumentada, es decir, la AFSM 500. En la fase 1 se llevan a cabo las solicitudes de acceso por parte del autómata de estado 501 y el autómata de estado 502, es decir, el tiempo completo es dividido respectivamente en una mitad para cada autómata solicitante. Respecto de los periodos elementales en la fase 1 esto significa que el autómata de estado 501 obtiene acceso en los periodos primarios T1 y T3 y el autómata de estado 502 en los periodos primarios T2 y T4. En la fase 2 se lleva a cabo el acceso sólo por la máquina de estado 501, de modo que todos los tres periodos primarios, es decir, el 100% del tiempo de acceso desde T5 a T7 recae sobre IOBF- FSM. En la fase 3 se llevan a cabo las solicitudes de acceso por parte de los tres autómatas de estado 501 a 503, de modo que se lleva a cabo una división en tres partes del tiempo de acceso completo. La máquina aumentada AFSM distribuye el tiempo de acceso, por ejemplo, de modo que en los periodos elementales T8 y T11 obtenga acceso la máquina de estado finito 501, en los periodos elementales T9 y T12 obtenga acceso la máquina de estado finito 502 y en los periodos elementales T10 y T13 obtenga acceso la máquina de estado finito 503. En la fase 4, finalmente, el acceso se lleva a cabo a través de dos autómatas de estado, 502 y 503, a ambos canales A y B del módulo de comunicación, de modo que se lleva a cabo una distribución de los accesos durante los periodos elementales T14 y T16 en la máquina de estado finito 502 y durante T15 y T17 en la máquina de estado finito 503.
El autómata de estado aumentado AFSM 500 procura que, en caso de que más de una presentar una solicitud de acceso a la memoria de mensajes 300, el acceso se divide en periodos y alternadamente entre las máquinas de estado solicitantes. Este modo de proceder garantiza la integridad de los objetos de mensajes almacenados en la memoria de mensajes, es decir, la integridad de datos. Si por ejemplo, la CPU host 102 quiere leer un objeto de mensajes a través del almacenamiento de mensaje de salida 202, mientras se escribe un mensaje recibido en este objeto de mensaje, entonces independientemente de la solicitud que se inició primero se lee. o bien el estado anterior o el nuevo estado, sin que colisionen los accesos en el objeto de mensaje en la memoria de mensajes.
El procedimiento descrito le posibilita, a la CPU host, leer o escribir cualquier objeto de mensaje en la memoria de mensajes, durante el funcionamiento en curso, sin que la participación del objeto de mensaje seleccionado sea bloqueada (Buffer Locking) en la participación en el intercambio de datos en los canales del bus FlexRay, durante la duración del acceso de la CPU. Al mismo tiempo, gracias el entrelazamiento en periodos de los accesos, se asegura la integridad de los datos almacenados en la memoria de mensajes y la velocidad de transmisión, elevada también gracias al aprovechamiento de todo el ancho de banda.

Claims (12)

1. Memoria de mensajes en un módulo de comunicación (100) para el almacenamiento de una cantidad de mensajes, en la que, en los mensajes a ser almacenados, están contenidos los primeros datos (KD0, KD1, KDk) con un primer volumen de datos y los segundos datos (D0, D1, Dk) con un segundo volumen de datos, asimismo el segundo volumen de datos por mensaje puede ser diferente y la memoria de mensajes (300) contiene un segmento de encabezado (HS), en el cual se almacenan los primeros datos (KD0 KD1, KDk) del mensaje, en un área de encabezado respectiva (HB0, HB1, HBk) y la memoria de mensajes (300) contiene un segmento de datos (DS), en el cual se almacenan los segundos datos (D0, D1, Dk) del mensaje en un área de datos respectiva (DB0, DB1, DBk), caracterizada porque la memoria de mensajes (300) está configurada de tal modo que una división entre el segmento de encabezado (HS) y el segmento de datos (DS) es variable y dependiente de la cantidad (k) de mensajes y del segundo volumen de datos.
2. Memoria de mensajes acorde a la reivindicación 1, caracterizada porque en el segmento de encabezado (HS) en cada área de encabezado (HB0, HB 1, HBk) está previsto un elemento indicador (DP0, DP1, DPk) por mensaje, a través del cual se determina un área de datos (DB0, DB 1, DBk) en el segmento de datos (DS).
3. Memoria de mensajes acorde a la reivindicación 1, caracterizada porque los primeros y los segundos datos de los mensajes se almacenan en un orden predeterminable, asimismo, el orden de las áreas de encabezado (HB0, HB1, HBk) en el segmento de encabezado (HS), y el orden de las áreas de datos de las áreas de datos (DB0, DB1, DBk) en el segmento de datos (DS) son en cada caso idénticas.
4. Memoria de mensajes acorde a la reivindicación 1, caracterizada porque la memoria de mensajes está configurada como memoria FIFO.
5. Memoria de mensajes acorde a la reivindicación 1, caracterizada porque los primeros datos (KD0, KD1, KDk) del mensaje son almacenados en un área de encabezado respectiva (HB0, HB1, HBk) por mensaje y con una primera cantidad predeterminada de palabras de almacenamiento idéntica para cada área de encabezado (HB0, HB1, HBk).
6. Memoria de mensajes acorde a la reivindicación 5, caracterizada porque está configurada con un ancho de palabra de almacenamiento fija predeterminable.
7. Memoria de mensajes acorde a la reivindicación 1, caracterizada porque el área de encabezado (HS) y el área de datos (DS) se suceden directamente.
8. Memoria de mensajes acorde a la reivindicación 1, caracterizada porque le está asignado un elemento generador de bits de paridad y un elemento de evaluación de bits de paridad.
9. Memoria de mensajes acorde a la reivindicación 1, caracterizada porque cada área de datos incluye al menos un ancho de palabra de almacenamiento predeterminado y por cada ancho de palabra de almacenamiento está prevista una identificación de control en el área de datos, especialmente un bit de paridad.
10. Módulo de comunicación Flex-Ray con una memoria de mensajes acorde a la reivindicación 1.
11. Mecanismo de mando con un módulo de comunicación Flex-Ray que contiene una memoria de mensajes acorde a la reivindicación 1.
12. Procedimiento para el almacenamiento de una cantidad de mensajes en una memoria de mensajes en un módulo de comunicación (100) en que, en los mensajes a ser almacenados, están contenidos los primeros datos (KD0, KD1, KDk) con un primer volumen de datos y los segundos datos (D0, D1, Dk) con un segundo volumen de datos, asimismo el segundo volumen de datos por mensaje puede ser diferente, y los primeros datos (KD0, KD1, KDk) se almacenan en un segmento de encabezado (HS) de la memoria de datos, cada uno en un área de encabezado (HB0, HB1, HBk) por mensaje, y los segundos datos (D0, D1, Dk) se almacenan en un segmento de datos (DS), cada uno en un área de datos (DB0, DB1, DBk) por mensaje, caracterizado porque la división entre el segmento de encabezado (HS) y el segmento de datos (DS) se realiza de modo variable y dependiendo de la cantidad (k) de mensajes y del segundo volumen de datos.
ES05760988T 2004-08-05 2005-06-29 Procedimiento para el almacenamiento de mensajes en una memoria de mensajes y la memoria de mensajes. Expired - Lifetime ES2301029T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102004038210A DE102004038210A1 (de) 2004-08-05 2004-08-05 Verfahren zur Speicherung von Botschaften in einem Botschaftsspeicher und Botschaftsspeicher
DE102004038210 2004-08-05

Publications (1)

Publication Number Publication Date
ES2301029T3 true ES2301029T3 (es) 2008-06-16

Family

ID=35057183

Family Applications (1)

Application Number Title Priority Date Filing Date
ES05760988T Expired - Lifetime ES2301029T3 (es) 2004-08-05 2005-06-29 Procedimiento para el almacenamiento de mensajes en una memoria de mensajes y la memoria de mensajes.

Country Status (10)

Country Link
US (1) US8019961B2 (es)
EP (1) EP1776808B1 (es)
JP (1) JP2008509463A (es)
KR (1) KR100977897B1 (es)
CN (1) CN1993946A (es)
AT (1) ATE390782T1 (es)
DE (2) DE102004038210A1 (es)
ES (1) ES2301029T3 (es)
RU (1) RU2398357C2 (es)
WO (1) WO2006015908A1 (es)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112685358A (zh) * 2020-12-24 2021-04-20 电信科学技术第五研究所有限公司 一种基于fpga的ddr3分组读写方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007147437A1 (en) * 2006-06-20 2007-12-27 Freescale Semiconductor, Inc. Method and apparatus for transmitting data in a flexray node
WO2007147435A1 (en) * 2006-06-20 2007-12-27 Freescale Semiconductor, Inc. Method for transmitting a datum from a time-dependent data storage means
WO2007147441A1 (en) * 2006-06-22 2007-12-27 Freescale Semiconductor, Inc. Method and system of grouping interrupts from a time-dependent data storage means
US20110238980A1 (en) 2010-03-23 2011-09-29 Fujitsu Limited System and methods for remote maintenance in an electronic network with multiple clients
US9286485B2 (en) 2010-03-23 2016-03-15 Fujitsu Limited Using trust points to provide services
FR2973150B1 (fr) * 2011-03-21 2013-04-26 Morpho Procede de masquage de passage en fin de vie d'un dispositif electronique et dispositif comportant un module de controle correspondant
DE102014207422A1 (de) * 2014-04-17 2015-10-22 Robert Bosch Gmbh Busschnittstelleneinheit und Betriebsverfahren hierfür
DE102018221954A1 (de) * 2018-12-17 2020-06-18 Robert Bosch Gmbh Recheneinrichtung und Verfahren zum Betreiben einer Recheneinrichtung

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61262339A (ja) * 1985-05-16 1986-11-20 Fujitsu Ltd バツフア管理方式
JPH03266039A (ja) * 1990-03-16 1991-11-27 Fujitsu Ltd フリーフォーマットデータリンク処理方式
US5606369A (en) 1994-12-28 1997-02-25 U.S. Philips Corporation Buffering for digital video signal encoders using joint bit-rate control
US6526486B2 (en) 1997-10-15 2003-02-25 Nokia Mobile Phones Limited Method of managing messages in a computer memory
EP1069770B1 (en) 1999-07-13 2005-11-23 Thomson Licensing Method and system for processing video incorporating multiple on screen display formats
JP2001155437A (ja) * 1999-11-26 2001-06-08 Sony Corp 記録装置および方法
US7333489B1 (en) 2000-05-08 2008-02-19 Crossroads Systems, Inc. System and method for storing frame header data
RU2233473C2 (ru) * 2000-12-22 2004-07-27 Самсунг Электроникс Ко., Лтд. Устройство и способ выполнения высокоскоростного поиска маршрутов протокола интернет и управления таблицами маршрутизации/пересылки
US7269661B2 (en) * 2002-02-12 2007-09-11 Bradley Richard Ree Method using receive and transmit protocol aware logic modules for confirming checksum values stored in network packet
US6985974B1 (en) * 2002-04-08 2006-01-10 Marvell Semiconductor Israel Ltd. Memory interface controller for a network device
CN100375466C (zh) 2002-04-10 2008-03-12 中兴通讯股份有限公司 一种数据包转发控制装置和方法
TW573408B (en) * 2002-05-07 2004-01-21 Via Tech Inc Host channel adapter and relevant method
US7313648B2 (en) * 2004-09-30 2007-12-25 Rockwell Automation Technologies, Inc. Corruption tolerant method and system for deploying and modifying data in flash memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112685358A (zh) * 2020-12-24 2021-04-20 电信科学技术第五研究所有限公司 一种基于fpga的ddr3分组读写方法

Also Published As

Publication number Publication date
US20080256320A1 (en) 2008-10-16
DE102004038210A1 (de) 2006-03-16
US8019961B2 (en) 2011-09-13
RU2007108072A (ru) 2008-09-10
KR100977897B1 (ko) 2010-08-24
DE502005003490D1 (de) 2008-05-08
JP2008509463A (ja) 2008-03-27
EP1776808B1 (de) 2008-03-26
CN1993946A (zh) 2007-07-04
KR20070039937A (ko) 2007-04-13
RU2398357C2 (ru) 2010-08-27
ATE390782T1 (de) 2008-04-15
EP1776808A1 (de) 2007-04-25
WO2006015908A1 (de) 2006-02-16

Similar Documents

Publication Publication Date Title
ES2358609T3 (es) Participante y controlador de comunicaciones de un sistema de comunicaciones y método para la implementación de una funcionalidad de la puerta de enlace en un participante de un sistema de comunicaciones.
ES2335509T3 (es) Chip de comunicaciones flexray.
ES2353810T3 (es) Método para la transmisión de datos en mensajes a través de un enlace de comunicaciones de un sistema de comunicaciones, así como un chip de comunicaciones, un participante de un sistema de comunicaciones y un sistema de comunicaciones para la realización de dicho método.
ES2346259T3 (es) Pasarela para la transferencia de datos entre buses en serie.
ES2337163T3 (es) Metodo y dispositivo para acceder a los datos de una memoria de mensajes de un modulo de comunicacion.
ES2337910T3 (es) Gestor de mensajes y metodo para el control de acceso a los datos de una memoria de mensajes de un modulo de comunicacion.
ES2301029T3 (es) Procedimiento para el almacenamiento de mensajes en una memoria de mensajes y la memoria de mensajes.
CN101283338A (zh) 微控制器和FlexRay通信组件之间的用户接口、FlexRay用户以及用于通过这种接口传输消息的方法
US20090300254A1 (en) Method for Connecting a Flexray user having a Microcontroller to a Flexray Communications line Via a Flexray Communications Control Device, and Flexray Communications Control Device, Flexray User, and Flexray Communications System for Realizing this Method
CN101283548B (zh) 在FlexRay通信组件和FlexRay用户之间的用户接口和用于通过这种接口传输消息的方法
ES2349340T3 (es) Módulos de comunicaciones.