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 PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9042—Separate storage for different parts of the packet, e.g. header and payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering 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.
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.
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.
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.
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.
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.
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.
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)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112685358A (zh) * | 2020-12-24 | 2021-04-20 | 电信科学技术第五研究所有限公司 | 一种基于fpga的ddr3分组读写方法 |
Families Citing this family (8)
| 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)
| 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 |
-
2004
- 2004-08-05 DE DE102004038210A patent/DE102004038210A1/de not_active Withdrawn
-
2005
- 2005-06-29 DE DE502005003490T patent/DE502005003490D1/de not_active Expired - Lifetime
- 2005-06-29 US US11/659,173 patent/US8019961B2/en not_active Expired - Fee Related
- 2005-06-29 CN CNA2005800263839A patent/CN1993946A/zh active Pending
- 2005-06-29 WO PCT/EP2005/053057 patent/WO2006015908A1/de not_active Ceased
- 2005-06-29 EP EP05760988A patent/EP1776808B1/de not_active Expired - Lifetime
- 2005-06-29 ES ES05760988T patent/ES2301029T3/es not_active Expired - Lifetime
- 2005-06-29 KR KR1020077002676A patent/KR100977897B1/ko not_active Expired - Fee Related
- 2005-06-29 JP JP2007524314A patent/JP2008509463A/ja active Pending
- 2005-06-29 RU RU2007108072/09A patent/RU2398357C2/ru not_active IP Right Cessation
- 2005-06-29 AT AT05760988T patent/ATE390782T1/de active
Cited By (1)
| 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. |