ES2337910T3 - Gestor de mensajes y metodo para el control de acceso a los datos de una memoria de mensajes de un modulo de comunicacion. - Google Patents

Gestor de mensajes y metodo para el control de acceso a los datos de una memoria de mensajes de un modulo de comunicacion. Download PDF

Info

Publication number
ES2337910T3
ES2337910T3 ES05756827T ES05756827T ES2337910T3 ES 2337910 T3 ES2337910 T3 ES 2337910T3 ES 05756827 T ES05756827 T ES 05756827T ES 05756827 T ES05756827 T ES 05756827T ES 2337910 T3 ES2337910 T3 ES 2337910T3
Authority
ES
Spain
Prior art keywords
data
message
memory
access
finite state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES05756827T
Other languages
English (en)
Inventor
Florian Hartwich
Christian Horst
Franz Bailer
Markus Ihle
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Application granted granted Critical
Publication of ES2337910T3 publication Critical patent/ES2337910T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Módulo de comunicación (100) con un gestor de mensajes (200) y una memoria de mensajes (300), a la cual, mediante un acceso, se pueden ingresar o de la cual se pueden extraer datos, por este motivo la memoria de mensajes (300) se encuentra conectada a una primera disposición de memoria búfer (205, 206) y a una segunda disposición de memoria búfer (201, 202), produciéndose un acceso a los datos mediante la primera o la segunda disposición de memorias búfer, con lo cual se encuentra colocada la primera disposición de memoria búfer (205, 206) entre la memoria de mensajes (300) y una interfaz (207, 208), hacia un enlace de comunicación (101), así como la segunda disposición de memoria búfer (201, 202) se encuentra colocada entre la memoria de mensajes (300) y una interfaz (203, 204) hacia un procesador participante (102), caracterizado porque, - en el gestor de mensajes (200) se prevee al menos una primera máquina de estado finito (503, 503), la cual dirige el acceso a la memoria de mensajes mediante la primera disposición de memoria búfer (205, 206) y - se prevee al menos una segunda máquina de estado finito (501), la cual dirige el acceso mediante la segunda disposición de memoria búfer (201, 202), por lo que al menos una primera máquina de estado finito y una segunda máquina de estado finito presentan peticiones de acceso y - se prevee una tercera máquina de estado finito (500), la cual adjudica el acceso, a al menos una de las máquinas de estado finito y a la segunda máquina de estado finito, dependiendo de sus peticiones de acceso, - se preveen medios del temporizador, a través de los cuales se transmiten los datos en un período predeterminado del temporizador (T) y la tercera máquina de estado finito (500) adjudica períodos del temporizador consecutivos a cada una de las máquinas de estado finito y a la segunda máquina de estado finito, dependiendo de sus peticiones de acceso, - se preveen los medios para dividir el tiempo total de acceso, de manera tal que esta división coincida con el número de peticiones de acceso, - a través de la tercera máquina de estado finito (500), por lo que, por cada máquina de estado finito sólo se admite al mismo tiempo una petición de acceso, y - se preveen los medios para, hasta la finalización de una transmisión de un objeto de mensaje en un primera dirección entre la segunda disposición de memoria búfer (201, 202) y la memoria de mensajes (300), bloquear la segunda disposición de memoria búfer (201, 202) para otros accesos en la primera dirección de transmisión.

Description

Gestor de mensajes y método para el control de acceso a los datos de una memoria de mensajes de un módulo de comunicación.
Estado actual de la técnica
La presente invención se basa en un gestor de mensajes y en un método para el control de acceso a los datos de una memoria de mensajes de un módulo de comunicación conforme al preámbulo de la reivindicación independiente.
La conexión en red de dispositivos de control, sensores y actuadores con ayuda de un sistema de comunicación y de un sistema ómnibus, por consiguiente, de un enlace de comunicación, ha aumentado en forma drástica en los últimos años, tanto en la construcción de vehículos modernos como también en la construcción de máquinas, especialmente en el sector de las máquinas-herramienta, y en la automatización. A través de la distribución de funciones en varios dispositivos de control pueden obtenerse efectos sinérgicos. Se habla así de sistemas distribuidos. La comunicación entre diferentes estaciones tiene lugar cada vez más frecuentemente mediante un sistema ómnibus, o mediante un enlace de comunicación. La circulación de la información en el sistema ómnibus, los mecanismos de entrada y salida, así como también el control de errores están regidos por un protocolo. Dentro de este área es conocido el protocolo CAN, así como también los protocolos TTCAN y FlexRay que sirven de base actualmente a la especificación del protocolo FlexRay. Flexray es un sistema ómnibus rápido, determinista y tolerante a fallos, en especial para la utilización en un vehículo. El protocolo FlexRay trabaja conforme al acceso múltiple por división de tiempo (TDMA), en el cual los componentes -las partes- de los mensajes a transmitir son adjudicados en ranuras de tiempo, donde éstas tienen una entrada exclusiva al enlace de comunicación. Un translado similar tiene lugar en TTCAN. Las ranuras de tiempo se repiten en un ciclo determinado, de manera que el instante en el que se transmite el mensaje mediante el bus, puede predecirse con exactitud, y el acceso al bus se produce determinísticamente. Para aprovechar óptimamente el ancho de la banda para la transmisión del mensaje en el sistema ómnibus, FlexRay subdivide el ciclo en una parte dinámica y una parte estática. Las ranuras de tiempo determinadas se encuentran así en la parte estática al comienzo de un ciclo de bus. En la parte dinámica las ranuras de tiempo se adjudican dinámicamente. De esta forma se posibilita entonces el exclusivo acceso al bus cada vez sólo por un corto tiempo, conocido como minislots (miniranuras de tiempo). Sólo cuando un acceso al bus tiene lugar dentro de una miniranura, se alarga la ranura durante el tiempo necesario. De esta manera, el ancho de banda se utiliza sólo cuando efectivamente se le necesita. De este modo FlexRay comunica mediante dos líneas separadas con una velocidad máxima de 10 MB. Ambos canales corresponden a la capa física, en especial al modelo de capas del OSI (Open System Architecture). Estos canales sirven efectivamente para lograr una transmisión de mensajes redundante y tolerante a fallos, por lo cual se duplicaría entonces la velocidad. FlexRay puede, sin embargo, ser activado también con velocidades más bajas. Para realizar funciones sincrónicas y optimizar el ancho de banda mediante pequeñas distancias entre los mensajes, los componentes distribuidos en la red de comunicación FlexRay los participantes, requieren de una base de tiempo común, conocida como tiempo global.
Para lograr la sincronización de tiempos se transmiten colas de mensajes a la parte estática del ciclo, de manera tal que con la ayuda de un algoritmo especial correspondiente a la especificación FlexRay, el tiempo local de un componente es corregido, logrando así que todos los relojes marchen sincrónicamente en una secuencia de tiempo global. Esta sincronización es similar en la red de comunicación TTCAN.
Un nodo de red FlexRay o un participante-FlexRay o procesador central contiene un procesador participante o procesador central, un controlador FlexRay o controlador de comunicación así como un control del bus contiene un controlador del bus. Con ello el procesador central o procesador participante envía y procesa los datos transmitidos por el controlador de comunicación FlexRay. Para la comunicación en una red FlexRay pueden configurarse mensajes u objetos de mensajes, con por ejemplo, hasta 254 bytes de datos. Para transmitir estos mensajes u objetos de mensajes entre la capa física, por tanto entre el enlace de comunicación y el procesador central, se emplea un módulo de comunicación, en particular un controlador de comunicación.
La solicitud US5983327 da a conocer un método de arbitraje, por el cual, accesos simultáneos de diferentes componentes de una memoria común, son anidados unos dentro de otros, de manera tal que palabras de dato de los accesos opuestos puedan transmitirse en forma alternada.
Es objeto de la presente invención el dirigir la transmisión de datos, de manera tal, que se asegure la integridad de los datos y se optimice la velocidad de transmisión.
Ventajas de la invención
La invención se basa en un módulo de comunicación, conforme a la reivindicación 1, y en un procedimiento conforme a la reivindicación 3.
Esto significa que la invención describe un método y un dispositivo para la transferencia de datos entre una memoria de mensajes, por tanto entre una memoria RAM y una memoria búfer de entrada y de salida, así como entre la memoria de mensajes y las unidades de transmisión y recepción hacia el bus de comunicación, y para la dirección de esta transferencia de manera tal, que se asegure la integridad de los datos requerida y una mayor velocidad de transferencia de los mensajes a almacenar.
Convenientemente, los datos se dirigen a través de un gestor de mensajes mediante la primera disposicición de búfers y dos rutas de datos con dos direcciones de datos cada una respectivamente, por lo cual una primera disposición de búfers contiene un primer búfer para una primer ruta de datos y una segundo búfer para una segunda ruta de datos y, a su vez, la ruta de datos se encuentra provista de una primer máquina de estado o máquina de estado finito, de manera que resultan dos máquinas de estado para la primera disposición de búfers, por lo que cada una de las dos primeras máquinas de estado o máquinas de estado finitas dirigen el acceso a la memoria de mensajes mediante un búfer.
Convenientemente se preveen medios de temporización, a través de los cuales se pueden transmitir los datos en un período del temporizador predeterminado, con lo cual la tercera máquina de estado o máquina de estado finito y cada segunda máquina de estado finito, adjudica, dependiendo de sus peticiones de acceso, los correspondientes períodos sucesivos del temporizador.
De manera ventajosa, se preveen los medios para dividir el tiempo total de acceso, de manera tal que esta división coincida con el número de peticiones de acceso, a través de la tercera máquina de estado finito (500), por lo que, por cada máquina de estado finito sólo se admite al mismo tiempo una petición de acceso.
El método y el gestor de mensajes descritos, así como un módulo de comunicación correspondiente con esa clase de gestor de mensajes, le permite al procesador CPU 102 en actividad, leer o escribir cualquier objeto de mensaje en la memoria de mensajes, sin que el objeto de mensaje seleccionado para la duración del acceso del procesador CPU 102 sea encerrado (Búfer Locking -cierre de búfer-) por la participación en el intercambio de datos en los dos canales del bus FlexRay. Al mismo tiempo, se asegura la integridad de los datos depositados en la memoria de mensajes, mediante la imbricación de los accesos, conforme al temporizador, y también se aumenta la velocidad de transmisión.
Otras ventajas y diseños ventajosos resultan de la descripción, así como también de las características de las reivindicaciones.
Dibujos
La invención se explica en detalle mediante las siguientes figuras.
La figura 1 muestra, mediante una representación esquemática, el módulo de comunicación y su conexión a la capa física, por tanto el enlace de comunicación y el participante del procesador o participante de la comunicación.
La figura 2 presenta en detalle, en una forma de ejecución especial, el módulo de comunicación de la figura 1, así como su conexión.
En la figura 3 se representa la estructura de la memoria.
Las figuras 4 a 6 describen esquemáticamente la arquitectura y el proceso del acceso de datos en dirección de los participantes hacia la memoria.
Las figuras 7 a 9 describen esquemáticamente la arquitectura y el proceso del acceso de datos en dirección de la memoria hacia los participantes.
En la figura 10 se representan esquemáticamente el gestor del mensaje y las allí contenidas máquinas de estado finito.
La figura 11 muestra nuevamente en forma esquemática los componentes del módulo de comunicación, así como los participantes y las correspondientes rutas de datos, dirigidas por el gestor de mensajes.
La figura 12 describe la división de accesos con respecto a las rutas de datos de la figura 11.
La invención se explica en detalle mediante los siguientes ejemplos de ejecución.
Ejemplos de ejecución
La figura 1 muestra esquemáticamente un módulo de comunicación 100 para la conexión de un participante o procesador 102 a un enlace de comunicación FlexRay 101, por tanto a la capa física de FlexRay. Para esto, el enlace de comunicación FlexRay 100 se encuentra conectado, mediante una conexión 107, con el participante o procesador participante 102 y mediante una conexión 106, al enlace de comunicación 101. Para lograr una conexión sin problemas con respecto a los tiempos de transmisión y a la integridad de los datos, se diferencian en forma esquemática esencialmente tres disposiciones en el módulo de comunicación FlexRay. De este modo, una primera disposición 105 se utiliza para la memoria, en especial como portapapeles, al menos una parte de los mensajes a transmitir. Entre el participante 102 y esta primera disposición 105 se encuentra conectada una segunda conexión 104 mediante las conexiones 107 y 108. Por tanto, se encuentra, entre el participante 101 y la primera disposición 105 una tercera disposición 103, enlazada mediante las conexiones 106 y 109, por la cual se puede obtener una entrada y salida de datos muy flexible como parte de los mensajes, en particular de mensajes FlexRay a o desde la primera disposición 105, garantizando la integridad de los datos con una velocidad óptima.
En la figura 2 se presenta detalladamente este módulo de comunicación 100 en una forma de ejecución preferente. Igualmente detalladas se encuentran las conexiones correspondientes 106 a 109. La segunda disposición 104 contiene un búfer de memoria de entrada o un búfer de memoria de ingreso (Input Búfer IBF) 201, un búfer de memoria de salida o memoria de egreso 202 (Output Búfer OBF), así como una interfaz compuesta de dos partes 203 y 204, siendo la parte del módulo 203 independiente del participante y la parte del módulo 204 específica del participante. La parte del módulo 204 específica del participante (Customer CPU Interface CIF) conecta un controlador CPU 102 específico del participante, un participante específico del cliente con el módulo de comunicación FlexRay. Para ello se encuentra prevista una línea de datos bidireccional 216, una línea de dirección 217, así como también una entrada de control 218. Del mismo modo se encuentra prevista una salida de corte o de interrupción 219. La parte del módulo 204 específica del participante se encuentra conectada a una parte del módulo 203 independiente del participante (Generic CPU Interface, GIF), o sea que el módulo de comunicación FlexRay o el módulo IP de FlexRay dispone de una interfaz del CPU genérica, por tanto de uso general, a la que se pueden conectar, mediante la correspondiente parte del módulo específica del participante (Customer CPU Interface CIF), una gran cantidad de diferentes participantes específicos del cliente del controlador CPU. De esta forma sólo presenta variaciones el módulo 204 dependiente del participante, lo que se traduce en un esfuerzo significativamente menor.
El módulo del búfer de memoria de entrada o memoria de ingreso 201 y el módulo del búfer memoria de salida o memoria de egreso 202 pueden estar conformados en un módulo de memoria o en memorias separadas. De esta manera el búfer de memoria de entrada 201 sirve para el almacenamiento de mensajes para la transmisión de la memoria de mensajes 200. Para ello el módulo de la memoria de entrada se encuentra conformado, preferentemente, de manera tal que pueda almacenar dos mensajes completos compuestos respectivamente por un segmento de encabezado o segmento Header, en especial con datos de configuración, y un segmento de datos o segmento Payload (segmento de carga útil de datos de información y no de datos de control). Para ello el módulo de la memoria de entrada consta de dos partes (sub memoria búfer y memoria espejo), a través de las cuales, mediante una escritura alternante de ambas partes del búfer memoria de entrada, así como a través del cambio de acceso, se puede acelerar la transmisión entre el procesador CPU participante 102 y la memoria de mensajes 200. Del mismo modo sirve el búfer de memoria de salida o búfer de memoria de devolución (Output Búfer OBF) para el almacenamiento de mensajes en la trasnmisión de la memoria de mensajes 200 al procesador CPU participante 102. Para ello el búfer de memoria de salida 202 se encuentra a su vez conformado de manera tal, que puedan ser almacenados dos mensajes completos compuestos por un segmento de encabezado, en especial con datos de configuración y un segmento de datos o segmento Payload. También aquí el búfer de memoria de salida 202 se encuentra dividido en dos partes, una sub memoria búfer y una memoria espejo, a través de las cuales, mediante una escritura alternada de ambas partes, así como a través del cambio de acceso, se puede acelerar la transmisión entre el procesador CPU participante 102 y la memoria de mensajes 200. Esta segunda disposición 104, compuesta por los bloques 201 a 204, se encuentra, tal como se representa, conectada a la primera disposición 105.
La primera disposición 105 está compuesta por un gestor de mensajes 200 (Message Handler MHD) y una memoria de mensajes 300 (Message RAM). El gestor de mensajes controla, por tanto dirige la transferencia de datos entre el búfer de memoria de entrada 201, así como también del búfer de memoria de salida 202 y la memoria de mensajes 300. En igual medida controla, por tanto dirige la transferencia de datos en dirección inversa a través de la disposición 103. La memoria se encuentra, preferentemente, constituida como single-ported RAM (RAM de acceso sencillo, no simultáneo de lectura y escritura). Esta memoria RAM almacena los mensajes u objetos del mensaje, o sea los mensajes propiamente dichos, conjuntamente con datos de configuración y datos de estado. La estructura exacta de la memoria 300 es representada con detalle en la figura 3.
La tercera disposición 103 está compuesta por los bloques 205 a 208. En correspondencia con los dos canales de la capa física de FlexRay, esta disposición 103 se encuentra dividida en dos rutas de datos con dos direcciones de datos en cada una. Esto se pone de manifiesto claramente mediante las conexiones 213 y 214, en las cuales se presentan ambas direcciones para el canal A, RxA y TxA para recepción (RxA) y transmisión (TxA), así como para el canal B, RxB y TxB. La conexión 215 se refiere a una óptima entrada de control bidireccional. El enlace de la tercera disposición búfer 103 se produce mediante una primera memoria búfer 205 para el canal B y una segunda memoria búfer 206 para el canal A. Ambas memorias búfer (búfer no residente RAM's: RAM A y RAM B) sirven como memorias intermedias para la transmisión de datos desde y hacia la primera disposición 105. En correspondencia con los dos canales, estas dos memorias búfer 205 y 206 se encuentran conectadas respectivamente con interfaces del módulo 207 y 208, las cuales contienen el controlador del protocolo FlexRay o controlador protocolo bus, el cual consta de un registro de desplazamiento de recepción y transmisión y del protocolo FlexRay para máquinas de estado finito. Ambas memorias búfer 205 y 206 sirven como memorias intermedias para la transmisión de datos entre los registros de desplazamiento de la interfaz del módulo o del controlador del protocolo FlexRay 207 y 208 y la memoria de mensajes 300. También aquí se almacenan de manera ventajosa, a través de cada memoria búfer 205 o 206, los campos de datos, por tanto el segmento Payload o el segmento de datos de información carga útil de dos mensajes FlexRay.
Posteriormente representada como 209, se encuentra, en el módulo de comunicación 100, la unidad de tiempo global (Global Time Unit GTU), la cual es competente para la representación del intervalo de tiempo global en FlexRay, por tanto de los microcilos PT y de los macrocilos MT. Del mismo modo se encuentra reglamentada, mediante la unidad de tiempo global 209, la sincronización del tiempo tolerante a fallos del contador de ciclos (Cycle Counter) y el control del ritmo de ciclos en el segmento estático y dinámico de FlexRay.
\newpage
Como bloque 210 se encuentra representado el sistema de control universal (System Universal Control SUC), a través del cual se controlan y dirigen los modos de operación del control de comunicaicón FlexRay. Entre ellos se cuentan el wakeup (la activación), el startup (arranque), la reintegración o integración, la operación normal (normal operation) y la Operación pasiva (passive operation).
El bloque 211 muestra la red y la gestión de fallos (Network- y Error Management NEM), tal como se describe en el protocolo de especificación v2.0 FlexRay. Por último, el bloque 212 muestra el control de interrupción (Interrupt Control INT), el cual gestiona las marcas de la interrupción con respecto a fallos y al estado (status and error interrupt flags) y controla, por tanto dirige las salidas de interrupción 219 hacia el CPU participante 102. El bloque 212 contiene además un contador o temporizador para generar las interrupciones de tiempo o las interrupciones del contador.
Para la comunicación dentro de una red FlexRay pueden configurarse objetos de mensaje, o sea búfer de mensajes (Mensaje Búfer) de hasta 254 bytes de datos. El búfer de memoria de mensajes 300 es especialmente una memoria RAM de mensajes (Message RAM) que puede almacenar, por ejemplo, hasta un máximo de 64 objetos de mensaje. Todas las funciones que atañen al tratamiento, así como a la gestión de los mensajes en sí mismos, se implementan en el gestor de mensajes o administrador de mensajes. Éstas son, por ejemplo, el filtrado de aceptancia, la transferencia de mensajes entre ambos bloques del controlador del protocolo FlexRay 207 y 208 y la memoria de mensajes 300, por tanto de la memoria RAM, así como el control de la secuencia de emisión y la provisión de datos de configuración, por tanto de datos de estado.
Un CPU externo, o sea un procesador externo del participante 102, puede acceder en forma directa, mediante la interfaz del participante, con la parte específica del participante 204, al registro del módulo de comunicación FlexRay. De esta manera se utiliza una gran cantidad de registros. Estos registros se constituyen para configurar y dirigir el controlador del protocolo FlexRay, por tanto las interfaces del módulo 207 y 208 del gestor de mensajes (manejador de mensajes MHD) 200, la unidad de tiempo global 209 (Global Time Unit GTU), el sistema de control universal (System Universal Control SUC) 210, la red y la gestión de fallos (Network and Error Management NEM) 211, el control de interrupción (Interrupt Control INT) 212, así como el acceso a la RAM de mensajes, por tanto al búfer de memoria de mensajes 300 y de este modo consignar el correspondiente estado. Partes de este registro, como mínimo, se abordan en detalle en las figuras 4 a 6 y 7 a 9. Un módulo de configuración FlexRay como el descrito, conforme a la invención, posibilita la conversión simple del protocolo de especificación v2.0 FlexRay, mediante el cual fácilmente se puede generar un ASIC (Circuito Integrado de Aplicaciones Específicas) o un microcontrolador con la funcionalidad FlexRay correspondiente integrada.
En la figura 3 se describe detalladamente la división de la memoria de mensajes. Para lograr la funcionalidad exigida de un controlador de comunicación FlexRay se precisa una memoria de mensajes para la relocalización de los búfers de mensajes a transmitir (Transmit Búfer) así como el almacenamiento de búferes de mensajes recibidos sin fallos (Receive Búfer). Un protocolo FlexRay permite mensajes con un área de datos, por tanto de un área Payload de 0 a 254 bytes. De esta forma, en la figura 2 se representa la memoria de mensajes como parte del módulo de comunicación FlexRay 100. El método que se describe a continuación, así como la correspondiente memoria, describen el almacenamiento de mensajes a transmitir así como de mensajes recibidos, especialmente mediante el uso de una Random Access Memory (RAM), con lo cual es posible, a través del mecanismo conforme a la invención, almacenar una cantidad variable de mensajes en una memoria de mensajes de tamaño previsto. Al mismo tiempo, la cantidad de mensajes almacenables depende del tamaño de las áreas de datos de cada mensaje, por lo cual en primer lugar se minimiza el tamaño precisado para el almacenamiento sin reducir el tamaño de las áreas de datos y en segundo lugar se aprovecha la memoria en forma óptima. A continuación se describe en detalle esta división variable de una memoria de mensajes basada en RAM en especial para un controlador de comunicación FlexRay.
Para la implementación se tomará, a modo de ejemplo, una memoria de mensajes con una longitud de palabra predeterminada de n bits, por ejemplo 8, 16, 32, etc; así como una profundidad de almacenamiento de palabras m (m, n equivalen a números naturales). De esta manera se divide el búfer de memoria de mensajes 300 en dos segmentos, un segmento Header (de cabecera) o segmento de inicio HS y un segmento de datos DT (Payload Section, Payload Segment). Por mensaje se delinea un área inicial HB y un área de datos DB. Para los mensajes de 0,1 bits k (k como número natural), se delinean segmentos Header (de cabecera) o segmentos de inicio HBO, HB1 a HBk y áreas de datos DBO, DB1 a DBk. Dentro de un mensaje, se diferencia así, entre datos primarios y datos secundarios, con lo cual los datos primarios, datos de configuración o datos de estado se corresponden con respecto al mensaje FlexRay y se clasifican respectivamente en un área de inicio HB (HB0, HB1, ..., HBk). Los datos secundarios, los cuales equivalen a los datos propiamente dichos que deben ser transmitidos, se clasifican respectivamente en un área de inicio DB (DBO, DB1, ..., DBk). De este modo surge, para los datos primarios por cada mensaje, una primera amplitud de datos (medida en bits, bytes o por palabras almacenadas) y, para los datos secundarios de un mensaje, una segunda amplitud de datos (también medida en bits, bytes o por palabras almacenadas), en la cual la segunda amplitud de datos por mensaje puede ser diferente. La división entre el segmento de inicio HS y el segmento de datos DS es variable en la memoria de mensajes 300, esto significa, que no existe ningún límite previsto entre las áreas. La división entre el segmento de inicio HS y el segmento de datos DS es, conforme a la invención, dependiente de la cantidad k de mensajes, así como también de la segunda amplitud de datos, por tanto de la amplitud de los datos propiamente dichos, de un mensaje, por tanto de todos los mensajes k en conjunto. Conforme a la invención, a los datos de configuración KDO, KD1 hasta KDk del respectivo mensaje, se le adjunta en forma directa un elemento indicador o puntero de datos DP0, DP1 hasta DPk. En la conformación especial se le adjunta a cada área de inicio de HB0, HB1a HBk una cantidad fija de palabras almacenadas, en este caso dos, de manera que siempre un dato de configuración KD (KD0, KD1, ..., KDk) y un elemento indicador DP (DPO, DP1, ..., DPk) se clasifican conjuntamente en un área de inicio HB. A este segmento de inicio HS con el área de inicio HB, cuyo tamaño, por tanto amplitud de datos, depende de la cantidad k de mensajes a almacenar, se conecta un segmento de datos DS para el almacenamiento de los mensajes propiamente dichos D0, D1 a Dk. Este segmento de datos (o sección de datos) DS depende de los datos de mensaje clasificados, en este caso, por ejemplo, en DBO seis palabras, en DB1 una palabra, y en DBk dos palabras. Los respectivos elementos indicadores DPO, DP1 a DPk muestran con esto, siempre al comienzo, o sea, en la dirección inicial del área de datos correspondiente DB0, DB1 a DBk, en los cuales los datos D0, D1 a Dk del respectivo mensaje se clasifican de 0, 1 a k. Por esto la división de la memoria de mensajes entre el segmento de inicio HS y el segmento de datos DS es variable y depende de la cantidad de mensajes en sí mismos, así como de la respectiva amplitud de los datos de un mensaje, por tanto de la amplitud total de la segunda amplitud de datos. Si se configuran pocos mensajes, se disminuye el segmento inicial y al área que se libera en la memoria de mensajes puede ser utilizada como suplemento del segmento de datos DS para el almacenamiento de datos. Mediante esta variabilidad se puede garantizar un óptimo aprovechamiento, con lo cual también es posible la utilización de memorias más pequeñas. El segmento de datos FDS, en especial su tamaño, igualmente dependiente de la cantidad k de mensajes almacenados y de la respectiva amplitud de datos de los mensajes, es por tanto mínimo y puede incluso ser igual a 0.
Junto a la utilización de elementos indicadores es también posible clasificar los datos primarios y secundarios, por tanto los datos de configuración KD (KDO, KD1, ..., KDk) y los datos propiamente dichos D (D=, D1, ..., Dk) en una secuencia prevista, de manera tal que la secuencia del área de inicio HBO hasta HBk en el segmento inicial HS y la secuencia del área de datos DBO hasta DBk en el segmento de datos DS respectivamente, son idénticas. Así se podría incluso, eventualmente, renunciar a un elemento indicador.
En una conformación especial, se le adjunta a la memoria de mensajes un generador corrector, en especial un elemento generador de bits de paridad y un verificador corrector, en especial un elemento verificador de bits de paridad, para garantizar la corrección de los datos almacenados en HS y DS, pudiendo clasificarse, por palabra almacenada o por área (HB o DB), por una suma de control, en especial como una verificación de bits de paridad. También se puede pensar en otros indicadores de control, por ejemplo, en CRC (Cyclic redundancy check -control de redundancia cíclica-) o en indicadores de una mayor potencia, como ECC (Error Code Correction -código corrector de errores-). Comparada con una división fija de la memoria de mensajes, se presentan las siguientes ventajas:
El usuario puede decidir durante la programación si desea utilizar una gran cantidad de mensajes con un campo de datos pequeño o una pequeña cantidad de mensajes con un gran campo de datos. Durante la configuración de mensajes con áreas de datos de diferentes tamaños se aprovecha el espacio de memoria presente de forma óptima. El usuario tiene la posibilidad de utilizar el área de almacenamiento de datos en común para diferentes mensajes.
Durante la implementación del controlador de comunicación a una conexión integrada se puede adecuar el tamaño de la memoria de mensajes, mediante una adaptación de la profundidad de memoria de la memoria utilizada, a las necesidades de la aplicación, sin modificar otras funciones del comunicador de control.
A continuación se describe en detalle, mediante las figuras 4 a 6 y 7 a 9 el acceso del procesador CPU, por tanto de la escritura y la lectura de datos de configuración, o sea, de datos de estado y de los datos propiamente dichos, a través de la colocación de la memoria búfer 201 y 202. Por este medio se intenta lograr un desacoplamiento con respecto a la transmisión de datos, que pueda asegurar la integridad de los datos y al mismo tiempo, que garantice una alta velocidad de transmisión. El control de estas operaciones tiene lugar mediante el gestor de mensajes 200, el cual será descrito más adelante en las figuras 10, 11 y 12.
En las figuras 4, 5 y 6 se explican en detalle, en primer lugar, los accesos de escritura de la memoria de mensajes 300 a través del procesador CPU del participante 102 mediante la memoria de acceso 201. La figura 4 muestra además nuevamente el módulo de comunicación 100, donde, para mayor claridad, sólo se muestran las partes aquí relevantes del módulo de comunicación 100. Este módulo es, en primer lugar, el gestor de mensajes 200, responsable del control de los resultados, así como dos registros de control 403 y 404, los cuales pueden ser colocados, tal como se representa, por fuera del gestor de mensajes 200 en el módulo de comunicación 100, pero que también pueden estar contenidos dentro del gestor de mensajes 200. 403 representa el registro de peticiones de búfer de entrada (Input Buffer Command Request Register) y 404 el registro de enmascaramiento de búfer de entrada (Input Buffer Command Mask Register). Los accesos de escritura del procesador CPU 102 se producen en la memoria de mensajes 300 por medio de una memoria de acceso interconectada 201 (Input Búfer -búfer de entrada-). Esta memoria de acceso interconectada 201 se exhibe dividida, por tanto duplicada, a saber en una sub memoria búfer 400 y una memoria espejo 401 perteneciente a la sub memoria búfer. Con esto, puede tener lugar, como se describe a continuación, un acceso continuo del controlador CPU 102 a los mensajes, por tanto a los objetos del mensaje y a los respectivos datos de la memoria de mensajes, y puede asegurarse la integridad de los datos y una transmisión rápida. El control de los accesos se produce mediante el registro de peticiones de entrada 403 y el registro de enmascaramiento de entrada 404. En el registro 403 se representan con los números 0 a 31, aquí a modo de ejemplo, los respectivos espacios bit en 403 para un ancho de 32 bits. Esto mismo es válido para el registro 404 y los espacios bit 0 a 31.
Conforme a la invención y a modo de ejemplo, los espacios bit 0 a 5, 15, 16 a 21 y 31 del registro 403 mantienen, con respecto al control de desarrollo, una función especial. De esta manera se puede inscribir en los espacios bits 0 a 5 del registro 403 un identificador IBRH (Input Búfer Request Host -petición de búfer de entrada de sistema principal-) como identificador de mensaje.
De la misma manera, se puede inscribir un identificador IBRS (Input Buffer Request Shadow -petición espejada de búfer de entrada-) en los espacios bit del registro 403. Del mismo modo se pueden inscribir en el espacio de registro 15 de 403, IBSYH y en el espacio de registro 31 de 403, IBSYS como identificadores de acceso. Los espacios 0 a 2 del registro 404 se encuentran también marcados, donde en 0 y 1, junto con LHSH (Load Header Section Host -segmento de cabecera de la carga útil de datos-) y LDSH (Load Data Section Host -segmento de la carga útil de
datos-) se inscriben otros identificadores como identificadores de datos. Estos identificadores de datos se encuentran aquí conformados de la manera más simple, o sea conformados como un bit. En el espacio bit 2 del registro 404 se inscribe un identificador inicial con STXRH (Set Transmission X Request Host -configuración de transmisión a petición del sistema principal-). A continuación se describe el desarrollo del acceso de escritura a la memoria de mensajes mediante la memoria de acceso.
El procesador CPU 102 escribe los datos de los mensajes a transferir en el búfer de memoria de acceso 201. De este modo, el procesador CPU 102 puede escribir sólo los datos de configuración e inicio KD de un mensaje para el segmento inicial HS de la memoria de mensajes o sólo los datos propiamente dichos, los datos a transmitir de un mensaje D para el segmento de datos DS de la memoria de mensajes o escribir ambos. Qué parte de un mensaje, por tanto qué datos de configuración deben ser transmitidos, se determina por medio de identificadores de datos LHSH y LDSH en el registro de enmascaramiento de entrada 404. Así se determina, mediante LHSH si los datos de inicio, por tanto las configuraciones de datos KD, deben ser transmitidas o si los datos D deben ser los transmitidos. Debido a que la memoria de acceso 201 se encuentra conformada por dos partes, o sea, por una parte de la memoria búfer 400 y una memoria espejo 401 perteneciente a la memoria búfer 400 y a que debe producirse un acceso alternado, se preveen, como opuestos a LHSH y LDSH, otros dos identificadores de área, relativos a la memoria espejo 401. Estos identificadores de área en los espacios bit 16 y 17 del registro 404 se caracterizan como LHSS (Load Header Section Shadow -espejado del segmento de cabecera de la carga útil de datos-) y LDSS (Load Data Section Shadow -espejado del segmento
de la carga útil de datos). A través de estos se dirige el proceso de transmisión con respecto a la memoria espejo 401.
Si se dispone del bit de inicio, por tanto el identificador de inicio STX-RH (Set Transmission X Request Host) en el espacio bit 2 del registro de enmascaramiento de entrada 404, se asienta automáticamente, de acuerdo a la transferencia efectuada de los respectivos datos de configuración y/o de los datos propiamente dichos a transmitir en la memoria de mensajes 300, una petición de transmisión (Transmission Request) para el objeto de mensaje correspondiente. Esto significa, que mediante este identificador de inicio STXRH, se dirige y en especial se da inicio, a la transmisión automática de un objeto de mensaje a traducir.
El opuesto correspondiente aquí en la memoria espejo es el identificador de inicio STXRS (SetTransmission X Request Shadow -espejado de la configuración de transmisión a petición del sistema principal), el cual, a modo de ejemplo, está contenido en el espacio bit 18 del registro de enmascaramiento de entrada 404 y también aquí, de la manera más simple, se constituye como un bit. La función de STXRS es análoga a la función de STXRH, sólo que es respecto a la memoria espejo 1.
Cuando el procesador CPU 102 intercambia el identificador de mensajes, en especial el número de los objetos de mensaje, en la memoria 300, en la cual se deben transmitir los datos del búfer de memoria de acceso 201, en los espacios bit 0 a 5 del registro de peticiones de acceso 403, por consiguiente escritos conforme a IBRH, se intercambian la sub memoria búfer 400 de la memoria de entrada 401 y la a ella perteneciente memoria espejo 401. Así como también el respectivo acceso del procesador CPU 102 y la memoria de mensajes 300 se intercambian en ambas sub memorias búfer 400 y 401, tal como se indica mediante la flecha semicircular.
De este modo, se da inicio, por ejemplo, a la transmisión de datos hacia el búfer de memoria de mensajes 300. La transmisión de datos hacia la memoria de mensajes 300 se produce en sí misma desde la memoria espejo 401. Al mismo tiempo, se intercambian las áreas de registro IBRH e IBRS. De la misma forma se intercambian LHSH y LDSH en oposición a LHSS y LDSS. STXRH con STXRS se intercambian en igual medida. IBRS indica con esto la identificación del mensaje, de este modo el número del objeto de mensaje para una transmisión. Por tanto se inicia una transferencia desde la memoria sombreada. De este modo, la transferencia se refiere a cuál área dentro de una memoria de mensajes se obtiene como último dato (KD y/o D) de la memoria sombreada. Mediante el identificador (1 bit nuevamente a modo de ejemplo) IBSYS (Input Búfer Busy Shadow -entrada de búfer espejado ocupado) en el espacio bit 31 del registro de peticiones de acceso 403 se indica si en ese momento se está produciendo una transmisión con participación de la memoria 401. De esta manera, se transmite desde la memoria espejo 201, a modo de ejemplo, en IBSYS=1 y en IBSYS=0. Este bit IBSYS se dispone, a modo de ejemplo, mediante la escritura de IBRH como espacio bit 0 a 5 en el registro 403, para señalar que se ha iniciado una transferencia entre la memoria espejo 401 y la memoria de mensajes 300. Al finalizar dicha transmisión de datos hacia la memoria de mensajes 300, IBSYS se coloca nuevamente en su lugar.
Mientras se está realizando la transferencia desde la memoria espejo 401, el procesador CPU 102 puede escribir los siguientes datos a transferir en la memoria de acceso, por tanto en la sub memoria búfer 400. Mediante la ayuda de otro identificador de acceso, por ejemplo, IBSYH (Input Búfer Busy Host -entrada de búfer espejado ocupado del sistema principal), en el espacio de bit 15 del registro 403, se puede perfeccionar aún más la identificación. Si el el procesador CPU 102 escribe IBRH, o sea los espacios de bits 0 a 5 del registro 403 durante la realización de una transmisión entre la memoria espejo 401 y la memoria de mensajes 300, entonces IBSYS=1, de esta manera IBSYH se coloca en el registro de peticiones de acceso 403. Tan pronto como concluye la transferencia, por tanto la transmisión que se está realizando, se da inicio a la transferencia requerida y el bit IBSYH se coloca nuevamente en su lugar. El bit IBSYS permanece todo el tiempo marcado, para indicar que los datos son transferidos a la memoria de mensajes. Todos los bits utilizados como ejemplos de ejecución, pueden conformarse con más de un bit como indicadores. La separación de un bit es ventajosa ya que permite una economización de recursos durante el procesamiento.
El mecanismo así descrito le permite al procesador CPU 102 transferir datos en forma continua, a los objetos de mensaje compuestos por un área de inicio HB y un área de datos DB que se encuentran en la memoria de mensajes, siempre y cuando la velocidad de acceso del procesador CPU 102 en la memoria de entrada sea menor o igual al índice de transferencia de datos interno del módulo IP FlexRay del módulo de comunicación 100.
En las figuras 7, 8 y 9 se explican en detalle los accesos de lectura en la memoria de mensajes 300 a través del procesador CPU 102 o participante CPU 102, mediante el búfer de memoria de salida o el búfer de memoria de devolución 202. La figura 7 muestra, a su vez, nuevamente el módulo de comunicación 100, donde, para mayor claridad, sólo se muestran las partes aquí relevantes del módulo de comunicación 100. Este módulo es, en primer lugar, el gestor de mensajes 200, responsable del control de los resultados, así como dos registros de control 403 y 404, los cuales pueden ser colocados, tal como se representa, por fuera del gestor de mensajes 200 en el módulo de comunicación 100, pero que también pueden estar contenidos dentro del gestor de mensajes 200. 703 representa el registro de peticiones de salida (Output Búfer Command Request Register) y 704 el registro de enmascaramiento de salida (Output Búfer Command Mask Register). Los accesos de lectura del procesador CPU 102 se producen en la memoria de mensajes 300 por medio de un búfer de memoria de salida interconectada 202 (Output Búfer). Este búfer de memoria de acceso interconectado 202 se exhibe dividido, por tanto duplicado, a saber en un búfer de sub memoria 701 y una memoria espejo 700 perteneciente al búfer de sub memoria. Con esto, puede tener lugar, como se describe a continuación, un acceso continuo del controlador CPU 102 a los mensajes, por tanto a los objetos del mensaje y a los respectivos datos de la memoria de mensajes, y puede asegurarse la integridad de los datos y una transmisión rápida en la dirección contraria de la memoria de mensajes hacia el procesador. El control de los accesos se produce mediante el registro de peticiones de salida 703 y el registro de enmascaramiento de salida 704. En el registro 703 se representan con los números 0 a 31, aquí a modo de ejemplo, los respectivos espacios bit en 703 para un ancho de 32 bits. Esto mismo es válido para el registro 704 y los espacios bit 0 a 31.
Conforme a la invención y a modo de ejemplo, los espacios bit 0 a 5, 8 y 9, 15, 16 a 21 del registro 703 mantienen, con respecto al control de desarrollo del acceso de lectura, una función especial. De esta manera se puede inscribir en los espacios bits 0 a 5 del registro 703 un identificador OBRS (Output Búfer Request Shadow) como identificador de mensaje. De la misma manera, se puede inscribir un identificador del sistema principal de salida del búfer OBRH (Output Buffer Request Host) en los espacios bit 16 a 21 del registro 703. Los espacios 0 a 1 del registro de salida 704 se encuentran también marcados, donde en 0 y 1, y junto con RDSS (Read Data Section Shadow -espejado del segmento de lectura de datos-) y RHSS (Read Header Section Shadow -espejado del segmento de lectura de la cabecera-) se inscriben otros identificadores como identificadores de datos. Otros identificadores de datos, con RDSH y RHSH se preveen en los espacios bit 16 y 17. Estos indicadores de datos se conforman de un bit respectivamente, aquí también en la forma más simple, a modo de ejemplo. En el espacio bit 9 del registro 703 se inscribe un indicador de inicio REQ. Posteriormente se prevee un identificador conmutable VIEW, el cual se inscribe, a modo de ejemplo, en el espacio bit 8 del registro 703.
El procesador CPU 102 requiere los datos de un objeto de mensajes de la memoria de mensajes 300, escribiendo la identificación del mensaje deseado, en especial del número del objeto de mensaje deseado, conforme a OBRS, en los espacios bit 0 a 5 del registro 703. De este modo, también aquí el procesador CPU 102 puede, como en la dirección contraria, leer sólo los datos de configuración e inicio KD de un mensaje de un área de inicio o sólo los datos propiamente dichos de un mensaje D del área de datos o leer ambos. Qué parte de los datos del área de inicio o del área de datos puede ser transmitida, se determina, en forma comparable a la dirección contraria, a través de RHSS y RDSS. Esto significa que RHSS indica si los datos de inicio deben ser leídos y RDSS indica si los datos propiamente dichos deben ser leídos.
Un indicador de inicio sirve para dar comienzo a la transmisión de la memoria de mensajes a la memoria espejo 700. Esto significa que se utiliza como indicador, en el caso más simple, un bit, y, mediante la disposición del bit REQ en el espacio bit 9 en el registro de peticiones de salida 703, se da inicio a la transmisión desde la memoria de mensajes 300 hacia la memoria espejo 700. La transmisión que se está realizando es mostrada en el registro 703, mediante un bit OBSYS, aquí nuevamente tratándose del caso más simple. Para evitar colisiones es ventajoso que se coloque el bit REQ sólo cuando el bit OBSYS no esté colocado, o sea, cuando no se esté realizando una transmisión. Aquí se produce entonces también la transferencia de mensajes entre la memoria de mensajes 300 y la memoria espejo 700. La secuencia propiamente dicha podría ser controlada, en forma comparable a la dirección contraria, tal como se describe en las figuras 4, 5, y 6 (registro complementario de ocupación) y efectuarse en una variación a través de un identificador complementario, o sea un identificador conmutable VIEW en el espacio bit 8 del registro 703. Esto significa que al finalizar la transmisión se coloca nuevamente el bit OBSYS y, mediante la colocación del bit VIEW en el registro de peticiones de salida 703, se intercambian la sub memoria búfer 701 con su equivalente memoria espejo 700, así como los accesos se intercambian y el procesador CPU 102 puede leer el objeto del mensaje requerido por la memoria de mensajes, o sea, el mensaje correspondiente. De esta manera se intercambian las celdas de registro OBRS y OBRH, aquí también en forma comparable a la dirección de transmisión contraria de las figuras 4 a 6. En igual medida se intercambian RHSS y RDSS en oposición a RHSH y RDSH. Como mecanismo de protección puede aquí también preveerse, que el bit VIEW sólo se coloque cuando OBSYS ya no se encuentre posicionado, por tanto cuando no tenga lugar ninguna transmisión.
Con lo mencionado se producen accesos de lectura del procesador CPU 102 a la memoria de mensajes 300 mediante un búfer de memoria de salida interconectada 202. Este búfer de memoria de salida se muestra, al igual que el búfer de memoria de entrada, dividido, por tanto duplicado, para garantizar un acceso continuo del controlador CPU 102 a los mensajes, por tanto a los objetos del mensaje y a los respectivos datos de la memoria de mensajes, logrando así mantener la integridad de los datos y una transmisión rápida.
Mediante la utilización de los búfers de memorias de entrada y salida descritos, se asegura que un controlador CPU pueda acceder sin interrupciones a la memoria de mensajes, pese a los tiempos de latencia internos del módulo.
Para asegurar la integridad de los datos, se efectúa la transmisión de los datos, en especial la transmisión en el módulo de comunicación 100, mediante el gestor de mensajes 200 (Message Handler MHD). Con este fin se representa en la figura 10 el gestor de mensajes 200. El gestor de mensajes puede ser representado en su funcionalidad, mediante varias máquinas de estado o máquinas automáticas de estado, o sea, mediante las llamadas máquinas de estado finito (FSM). Para esto se preveen como mínimo tres máquinas de estado y, en una forma de ejecución especial, cuatro máquinas de estado finito. Una primera máquina de estado finito es la IOBF-FSM, designada con el número 501 (Input/Output Búfer State Machine -búfer de máquina de estado infinito de entrada/salida-). Esta IOBF-FSM podría estar dividida, de acuerdo a cada dirección de transmisión con respecto al búfer de memoria de entrada o al búfer de memoria de salida, en dos búferes de máquinas de estado finito IBF-FSM (Input Buffer FSM -búfer de entrada FSM)) y OBF-FSM (Output Buffer FSM -búfer de salida FSM-), con lo cual se podría pensar en como máximo cinco máquinas automáticas de estado (IBF-FSM, OBF-FSM, TBF1-FSM, TBF2-FSM, AFSM). Preveer una IOBF-FSM común es, sin embargo, preferente. Una al menos segunda máquina de estado finito se divide, durante el desarrollo del ejemplo preferente de ejecución, en dos bloques 502 y 503 y sirve a los dos canales A y B con respecto a las memorias 205 y 206, tal como se describe en la Fig. 2. Para ello puede preveerse una máquina de estado finito para servir a los dos canales A y B o, como en la forma preferente, una máquina de estado finito TBF1-FSM, (Transient Buffer 1- -búfer transitorio 1- (206, RAM A) State Machine -de máquina de estado-) denominada como 502 para el canal A y para el canal B una TBF2-FSM (Transient Búfer -búfer transitorio 2- (205, RAM B) State Machine -de máquina de estado-), denominada como 503.
Para controlar el acceso de las tres máquinas de estado finito 501-503 en el ejemplo de ejecución preferente, se emplea una máquina de estado finito árbitro, conocida como AFSM, denominada como 500. Los datos (KD y/o D) se trasnmiten en el módulo de comunicación, mediante un temporizador, adaptado o generado a través de un medio temporizador, como, por ejemplo, un VCO (Voltage controlled oszillator -voltaje controlado por oscilador), un resonador de cuarzo, etc. El temporizador T puede ser generado en el módulo o desde afuera, por ejemplo, ser determinado como temporizador bus. Esta máquina de estado finito árbitro AFSM 500 permite a las tres máquinas de estado finito 501-503 acceder, en forma alterna, a la memoria de mensajes, en especial respectivamente durante un período elemental T. Esto significa, que el tiempo disponible se divide en correspondencia con las peticiones de acceso de cada máquina de estado automática 501, 502, 503. Si se verifica una petición de acceso de una sola máquina de estado finito, ésta obtiene el 100% del tiempo de acceso, o sea, todos los temporizadores T. Si se verifica una petición de acceso de dos máquinas de estado automáticas, cada máquina de estado finito obtiene 50% del tiempo de acceso. Por último, si se verifica una petición de acceso de tres máquinas de estado automáticas, cada una de las máquinas obtiene 1/3 del tiempo de acceso. De esta forma se aprovecha en forma óptima la banda el ancho que se encuentra disponible.
\vskip1.000000\baselineskip
La primera máquina de estado finito 501, o sea IOBF-FSM realiza en caso necesario las siguientes acciones:
-
Transferencia de datos desde la memoria de entrada 201 hacia el objeto de mensaje seleccionado en la memoria de mensajes 300.
-
Transferencia del objeto de mensaje seleccionado en la memoria de mensajes 300 hacia el búfer de memoria de salida 202.
\vskip1.000000\baselineskip
La máquina de estado para el canal A 502, o sea TBF1FSM, realiza las siguientes acciones:
-
Transferencia del objeto de mensaje seleccionado en la memoria de mensajes 300 hacia la memoria búfer 206 del canal A.
-
Transferencia de datos desde la memoria búfer 206 hacia el objeto de mensaje seleccionado en la memoria de mensajes 300.
-
Búsqueda de los objetos de mensaje adecuados en la memoria de mensajes, donde se busca, durante la recepción del objeto de mensaje (Receive Búfer) hasta el almacenamiento, un mensaje recepcionado en el canal A en el marco de un filtrado de aceptancia y durante la transmisión el primer objeto de mensaje a transmitir en el canal A (Transmit Buffer -búfer de transmisión-).
\newpage
Análoga a la anterior es la acción de TBF2-FSM, o sea de la máquina de estado finita para el canal A en el bloque 53. Ésta dirige la transferencia de datos del objeto de mensaje seleccionado en la memoria de mensajes 300 hacia la memoria búfer 205 por el canal B y de los datos de transferencia de la memoria búfer 205 hacia el objeto de mensaje seleccionado en la memoria de mensajes 300. También la función de búsqueda es análoga a TBF1-FSM, tras un objeto de mensaje adecuado en la memoria de mensajes (Receive Búfer -búfer de recepción) hasta el almacenamiento, un mensaje recepcionado en el canal B en el marco de un filtrado de aceptancia y durante la transmisión del primer objeto de mensaje a transmitir en el canal B (Transmit Búfer -búfer de transmisión-).
En la figura 11 se representan nuevamente el desarrollo y las rutas de transmisión. Las tres máquinas de estado 501-503 dirigen las respectivas transmisiones de datos entre cada parte. De este modo se denomina nuevamente al procesador CPU como 102, al búfer de memoria de acceso como 201 y al búfer de memoria de salida como 202. Como 300 se denomina a la memoria de mensajes y ambas memorias búfer para el canal A y canal B como 206 y 205. Los elementos de interfaz 207 y 208 son asimismo representados. La primera máquina de estado automática IOBF-FSM 501 dirige la transferencia de datos Z1A y Z1B, desde la memoria de acceso 201 a la memoria de mensajes 300 y de la memoria de mensajes 300 al búfer de memoria de salida 202. La transmisión de datos se produce mediante buses de datos con una amplitud de palabra de, por ejemplo, 32 bits, donde también cualquier otra cantidad de bits es posible. Esto mismo es válido para la transmisión Z2 entre la memoria de mensajes y la memoria búfer 206. Esta transmisión de datos se dirige a través de TBF1-FSM, o sea de la máquina de estado para el canal A 502. La transferencia Z3 entre la memoria de mensajes 300 y la memoria búfer 205 se dirige a través de la máquina de estado automática TBF2-FSM 503. También en este caso la transmisión de datos se produce mediante buses de datos con una amplitud de palabra de, por ejemplo, 32 bits, donde también cualquier otra cantidad de bits es posible. Por lo general, la transferencia de un objeto de mensaje completo por medio de las llamadas rutas de datos requiere varios períodos del temporizador T. Por consiguiente se produce una división del tiempo de transmisión con respecto a los períodos del temporizador T a través del árbitro AFSM 500. En la figura 11 se representan las rutas de datos entre los componentes de almacenamiento controlados por el administrador de mensajes. Para garantizar la integridad de los objetos de mensaje almacenados en la memoria de mensajes, se deben intercambiar al mismo tiempo, de manera ventajosa, simultáneamente datos que se encuentran en una de las rutas representadas Z1A, Z1B, así como Z2 y Z3 al mismo tiempo.
En la representación 12 se muestra mediante un ejemplo, cómo se dividen los temporizadores de sistema T que se encuentran a disposición, en tres máquinas de estado automáticas requeridas. En la fase 1 se verifican peticiones de acceso de la máquina de estado automática 501 y la máquina de estado automática 502, lo que significa que el tiempo total se divide respectivamente a la mitad en ambas máquinas de estado automáticas. Con respecto a los períodos del temporizador en la fase 1, esto significa, que la máquina de estado automática 501 en los períodos del temporizador T1 y T3 logra el acceso, mientras que la máquina de estado automática 502 lo logra en los períodos del temporizador T2 y T4. En la fase 2 se verifica el acceso sólo a través de la máquina de estado automática 501, de manera que los tres períodos, o sea el 100% del tiempo de acceso de T5 a T7 en IOBF-FSM se suprime. En la fase 3 se verifican peticiones de acceso de las tres máquinas de estado automáticas 501 a 503, de manera que se produce una tripartición del tiempo total de acceso. El árbitro AFSM divide el tiempo de acceso, por ejemplo, de manera tal que logren el acceso, la máquina de estado automática 501 en los períodos del temporizador T8 y T11, la máquina de estado automática 502 en los períodos del temporizador T9 y T12 y la máquina de estado automática 503 en los períodos del temporizador T10 y T13. En la fase 4, por último, se produce el acceso a través de dos máquinas de estado automáticas, 502 y 503, en los dos canales A y B del módulo de comunicación, de manera que se produce una división de acceso de los períodos del temporizador T14 y T16 en la máquina de estado automática 502 y de los períodos del temporizador T15 y T17 en la máquina de estado automática 503.
La máquina de estado automática árbitro AFSM 500 se ocupa de dividir el acceso de las máquinas de estado automáticas, en forma de períodos alternados, dado el caso, de que más de una de las tres máquinas de estado automáticas presente una petición para el acceso a la memoria de mensajes 300. Esta forma de procedimiento asegura la integridad de los objetos de mensaje que se encuentran en la memoria de mensajes, por tanto la integridad de los datos. Si por ejemplo, el procesador CPU 102 desea leer un objeto de mensaje mediante el búfer de memoria de salida, mientras que en ese mismo momento se escribe un mensaje recibido en ese objeto de mensaje, se leerá o el estado antiguo o el estado nuevo, dependiendo de cual petición se presentó en primer lugar, de manera tal que no se produzca una colisión de los accesos en la misma memoria de mensajes.
El procedimiento descrito le permite al procesador CPU 102 en actividad, leer o escribir cualquier objeto de mensaje en la memoria de mensajes, sin que el objeto de mensaje seleccionado para la duración del acceso del procesador CPU 102 sea cerrado (Búfer Locking -cierre de búfer-) por la participación en el intercambio de datos en los dos canales del bus FlexRay. Al mismo tiempo, se asegura la integridad de los datos depositados en la memoria de mensajes mediante la jerarquización de los accesos, y, a su vez se incrementa la velocidad de transmisión mediante el aprovechamiento del ancho de banda en su totalidad.

Claims (4)

1. Módulo de comunicación (100) con un gestor de mensajes (200) y una memoria de mensajes (300), a la cual, mediante un acceso, se pueden ingresar o de la cual se pueden extraer datos, por este motivo la memoria de mensajes (300) se encuentra conectada a una primera disposición de memoria búfer (205, 206) y a una segunda disposición de memoria búfer (201, 202), produciéndose un acceso a los datos mediante la primera o la segunda disposición de memorias búfer, con lo cual se encuentra colocada la primera disposición de memoria búfer (205, 206) entre la memoria de mensajes (300) y una interfaz (207, 208), hacia un enlace de comunicación (101), así como la segunda disposición de memoria búfer (201, 202) se encuentra colocada entre la memoria de mensajes (300) y una interfaz (203, 204) hacia un procesador participante (102),
caracterizado porque,
-
en el gestor de mensajes (200) se prevee al menos una primera máquina de estado finito (503, 503), la cual dirige el acceso a la memoria de mensajes mediante la primera disposición de memoria búfer (205, 206) y
-
se prevee al menos una segunda máquina de estado finito (501), la cual dirige el acceso mediante la segunda disposición de memoria búfer (201, 202), por lo que al menos una primera máquina de estado finito y una segunda máquina de estado finito presentan peticiones de acceso y
-
se prevee una tercera máquina de estado finito (500), la cual adjudica el acceso, a al menos una de las máquinas de estado finito y a la segunda máquina de estado finito, dependiendo de sus peticiones de acceso,
-
se preveen medios del temporizador, a través de los cuales se transmiten los datos en un período predeterminado del temporizador (T) y la tercera máquina de estado finito (500) adjudica períodos del temporizador consecutivos a cada una de las máquinas de estado finito y a la segunda máquina de estado finito, dependiendo de sus peticiones de acceso,
-
se preveen los medios para dividir el tiempo total de acceso, de manera tal que esta división coincida con el número de peticiones de acceso,
-
a través de la tercera máquina de estado finito (500), por lo que, por cada máquina de estado finito sólo se admite al mismo tiempo una petición de acceso, y
-
se preveen los medios para, hasta la finalización de una transmisión de un objeto de mensaje en un primera dirección entre la segunda disposición de memoria búfer (201, 202) y la memoria de mensajes (300), bloquear la segunda disposición de memoria búfer (201, 202) para otros accesos en la primera dirección de transmisión.
\vskip1.000000\baselineskip
2. Módulo de comunicación (100) conforme a la reivindicación 1, caracterizado porque, los datos son transmitidos mediante una primera disposición de memoria búfer (205, 206) en dos rutas de datos con dos direcciones de datos respectivamente y la primera disposición de memoria búfer (205, 206) contiene una primera memoria búfer (206) para una primera ruta de datos y una segunda memoria búfer (205) para una segunda ruta de datos y para cada ruta de datos se prevee una primera máquina de estado finito (502, 503), por lo cual cada una de las máquinas de estado finito dirige el acceso a la memoria de entrada mediante una memoria búfer.
3. Método para controlar el acceso de datos de una memoria de mensajes (300) de un módulo de comunicación a través de un gestor de mensajes (200), por lo cual se ingresan o se devuelven datos gracias al acceso, por lo que la memoria de mensajes (300) se encuentra conectada a una primera disposición de memoria búfer (205, 206) y a una segunda disposición de memoria búfer (201, 202), produciéndose un acceso a los datos mediante la primera o la segunda disposición de memorias búfer, con lo cual se encuentra colocada la primera disposición de memoria búfer (205, 206) entre la memoria de mensajes (300) y una interfaz (207, 208), hacia un enlace de comunicación (101), así como la segunda disposición de memoria búfer (201, 202) se encuentra colocada entre la memoria de mensajes (300) y una interfaz (203, 204) hacia un procesador participante (102), caracterizado porque,
-
la primera máquina de estado finito del gestor de mensajes (200) dirige el acceso a la memoria de mensajes mediante la primera disposición de memoria búfer (205, 206) como una primera ruta de acceso y
-
una segunda máquina de estado finito del gestor de mensajes (200) dirige el acceso a la memoria de mensajes mediante la segunda disposición de memoria búfer (205, 206) como una segunda ruta de acceso, por lo que sólo se puede acceder a los datos mediante una sola ruta de acceso al mismo tiempo,
-
los datos se transmiten en un período predeterminado del temporizador (T) y la tercera máquina de estado finito (500) adjudica períodos del temporizador consecutivos (T1-T17) a cada una de de las máquinas de estado finito (501, 502) ya la segunda máquina de estado finito (501), dependiendo de sus peticiones de acceso,
-
se preveen los medios para dividir el tiempo total de acceso, de manera tal que esta división coincida con el número de peticiones de acceso, a través de la tercera máquina de estado finito (500), por lo que, por cada máquina de estado finito sólo se admite al mismo tiempo una petición de acceso, y
-
se bloquea la segunda disposición de memoria búfer (201, 202) para otros accesos en la primera dirección de transmisión, hasta la finalización de una transmisión de un objeto de mensaje en un primera dirección entre la segunda disposición de memoria búfer (201, 202) y la memoria de mensajes (300).
\vskip1.000000\baselineskip
4. Método conforme a la reivindicación 3, caracterizado porque, los datos son transmitidos mediante una primera disposición de memoria búfer (205, 206) en dos rutas de datos con dos direcciones de datos respectivamente y la primera disposición de memoria búfer (205, 206) contiene una primera memoria búfer (206) para una primera ruta de datos y una segunda memoria búfer (205) para una segunda ruta de datos y para cada ruta de datos se prevee una primera máquina de estado finito (502, 503), por lo cual cada una de las máquinas de estado finito dirige el acceso a la memoria de entrada mediante una memoria búfer.
ES05756827T 2004-08-05 2005-06-29 Gestor de mensajes y metodo para el control de acceso a los datos de una memoria de mensajes de un modulo de comunicacion. Active ES2337910T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102004038211 2004-08-05
DE102004038211A DE102004038211A1 (de) 2004-08-05 2004-08-05 Botschaftsverwalter und Verfahren zur Steuerung des Zugriffs auf Daten eines Botschaftsspeichers eines Kommunikationsbausteins

Publications (1)

Publication Number Publication Date
ES2337910T3 true ES2337910T3 (es) 2010-04-30

Family

ID=35462534

Family Applications (1)

Application Number Title Priority Date Filing Date
ES05756827T Active ES2337910T3 (es) 2004-08-05 2005-06-29 Gestor de mensajes y metodo para el control de acceso a los datos de una memoria de mensajes de un modulo de comunicacion.

Country Status (10)

Country Link
US (1) US8484390B2 (es)
EP (1) EP1787204B1 (es)
JP (1) JP2008509464A (es)
KR (1) KR100981461B1 (es)
CN (1) CN1993687B (es)
AT (1) ATE453153T1 (es)
DE (2) DE102004038211A1 (es)
ES (1) ES2337910T3 (es)
RU (1) RU2390053C2 (es)
WO (1) WO2006015910A1 (es)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004038211A1 (de) 2004-08-05 2006-03-16 Robert Bosch Gmbh Botschaftsverwalter und Verfahren zur Steuerung des Zugriffs auf Daten eines Botschaftsspeichers eines Kommunikationsbausteins
DE102005048584A1 (de) * 2005-07-21 2007-01-25 Robert Bosch Gmbh FlexRay-Kommunikationsbaustein, FlexRay-Kommunikationscontroller und Verfahren zur Botschaftsübertragung zwischen einer FlexRay-Kommunikationsverbindung und einem FlexRay-Teilnehmer
EP2036262A1 (en) * 2006-06-20 2009-03-18 Freescale Semiconductor, Inc. Method for transmitting a datum from a time-dependent data storage means
US8001309B2 (en) * 2006-06-22 2011-08-16 Freescale Semiconductor, Inc. Method and system for grouping interrupts from a time-dependent data storage system
KR101035732B1 (ko) * 2008-10-07 2011-05-19 주식회사 칩스앤미디어 메모리 액세스 인터페이스의 변환 방법 및 장치
US8436771B2 (en) * 2010-12-29 2013-05-07 Texas Instruments Incorporated Enhancing search capacity of global navigation satellite system (GNSS) receivers
CN102096580B (zh) * 2011-01-30 2017-03-22 瑞斯康达科技发展股份有限公司 状态机相关信息存储方法及装置
DE102011016706A1 (de) * 2011-04-11 2012-10-11 Conti Temic Microelectronic Gmbh Schaltungsanordnung mit Fail-Silent-Funktion
US8611175B2 (en) * 2011-12-07 2013-12-17 Xilinx, Inc. Contention-free memory arrangement
CN104484308B (zh) * 2014-11-18 2017-12-26 瑞昱半导体股份有限公司 应用于操作模式有限状态机的控制方法
US10769099B2 (en) * 2014-12-30 2020-09-08 Micron Technology, Inc. Devices for time division multiplexing of state machine engine signals
CN106789489A (zh) * 2015-11-20 2017-05-31 成都九十度工业产品设计有限公司 一种FlexRay通信控制器媒体接入控制系统及其控制方法
CN106789490A (zh) * 2015-11-20 2017-05-31 成都九十度工业产品设计有限公司 一种FlexRay通信控制器及控制方法
CN106817372A (zh) * 2017-01-21 2017-06-09 厦门天锐科技股份有限公司 一种基于多状态机的协议解析系统及方法
EP3902206B1 (de) * 2020-04-21 2022-02-16 TTTech Computertechnik Aktiengesellschaft Fehlertolerante verteilereinheit und verfahren zur bereitstellung einer fehlertoleranten globalen zeit

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325487A (en) * 1990-08-14 1994-06-28 Integrated Device Technology, Inc. Shadow pipeline architecture in FIFO buffer
US5471588A (en) * 1992-11-25 1995-11-28 Zilog, Inc. Technique and circuit for providing two or more processors with time multiplexed access to a shared system resource
US5732041A (en) 1993-08-19 1998-03-24 Mmc Networks, Inc. Memory interface unit, shared memory switch system and associated method
WO1996011440A1 (en) * 1994-10-06 1996-04-18 Virc, Inc. Shared memory system
JPH08272672A (ja) * 1995-03-29 1996-10-18 Hitachi Ltd メモリ制御方式
US5983327A (en) * 1995-12-01 1999-11-09 Nortel Networks Corporation Data path architecture and arbitration scheme for providing access to a shared system resource
JP3044653B2 (ja) * 1998-06-22 2000-05-22 株式会社超高速ネットワーク・コンピュータ技術研究所 ゲートウェイ装置
US7538772B1 (en) * 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
JP2002182975A (ja) * 2000-12-18 2002-06-28 Seiko Epson Corp マルチプロセッサシステム
JP2002312309A (ja) * 2001-04-09 2002-10-25 Nec Eng Ltd 調停回路及び調停方法
DE10343057A1 (de) * 2002-09-16 2004-03-25 Robert Bosch Gmbh Verfahren und Rechnersystem zum Betreiben von mindestens zwei miteinander verbundenen Steuergeräten
KR100965861B1 (ko) 2002-10-24 2010-06-24 삼성전자주식회사 이동통신 시스템에서 복합 재전송 제어 장치
JP2005332145A (ja) * 2004-05-19 2005-12-02 Nec Electronics Corp データ転送制御回路及びデータ転送方法
DE102004038211A1 (de) 2004-08-05 2006-03-16 Robert Bosch Gmbh Botschaftsverwalter und Verfahren zur Steuerung des Zugriffs auf Daten eines Botschaftsspeichers eines Kommunikationsbausteins
US7599377B2 (en) * 2004-10-15 2009-10-06 Temic Automotive Of North America, Inc. System and method for tunneling standard bus protocol messages through an automotive switch fabric network
JP2006352706A (ja) * 2005-06-17 2006-12-28 Hitachi Ltd マイクロプロセッサ、ネットワークシステム及び通信方法
US7596153B2 (en) * 2006-10-13 2009-09-29 Honeywell International Inc. Clock-state correction and/or clock-rate correction using relative drift-rate measurements

Also Published As

Publication number Publication date
DE502005008758D1 (de) 2010-02-04
KR100981461B1 (ko) 2010-09-10
CN1993687A (zh) 2007-07-04
RU2390053C2 (ru) 2010-05-20
DE102004038211A1 (de) 2006-03-16
US20090083466A1 (en) 2009-03-26
CN1993687B (zh) 2010-05-26
ATE453153T1 (de) 2010-01-15
EP1787204B1 (de) 2009-12-23
KR20070039580A (ko) 2007-04-12
EP1787204A1 (de) 2007-05-23
WO2006015910A1 (de) 2006-02-16
RU2007108068A (ru) 2008-09-10
US8484390B2 (en) 2013-07-09
JP2008509464A (ja) 2008-03-27

Similar Documents

Publication Publication Date Title
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.
ES2337163T3 (es) Metodo y dispositivo para acceder a los datos de una memoria de mensajes de un modulo de comunicacion.
ES2335509T3 (es) Chip de comunicaciones flexray.
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.
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.
ES2301029T3 (es) Procedimiento para el almacenamiento de mensajes en una memoria de mensajes y la memoria de mensajes.
US20100161834A1 (en) User interface between a microcontroller and a flexray communications module; flexray user; and method for transmitting messages via such an interface
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
JP4903801B2 (ja) FlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェース、およびFlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェースを経由するメッセージの伝送方法