ES2335509T3 - Chip de comunicaciones flexray. - Google Patents

Chip de comunicaciones flexray. Download PDF

Info

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

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/407Bus networks with decentralised control
    • H04L12/417Bus networks with decentralised control with deterministic access, e.g. token passing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40013Details regarding a bus controller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40026Details regarding a bus guardian
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40241Flexray
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)
  • Details Of Aerials (AREA)
  • Transceivers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Chip de comunicaciones FlexRay (100) para el acoplamiento de un enlace de comunicación FlexRay (101) con un usuario (102) asignado al chip de comunicaciones FlexRay en una red FlexRay, a través de la que se transmiten mensajes, con lo que el chip de comunicaciones FlexRay (100) contiene los siguientes componentes: - una primera disposición (105) para el almacenamiento de, al menos, una parte de los mensajes transmitidos y - una segunda disposición (104) para la conexión de la primera disposición (105) con el usuario (102) así como - una tercera disposición (103) para la conexión del enlace de comunicaciones FlexRay (101) con la primera disposición (105), caracterizado porque la segunda disposición (104) contiene un almacenamiento de mensaje de entrada (201) y un almacenamiento de mensaje de salida (202).

Description

Chip de comunicaciones FlexRay.
Estado actual del arte
La presente invención hace referencia a chip de comunicaciones FlexRay para el acoplamiento de un enlace de comunicaciones FlexRay con un usuario asignado al chip de comunicaciones FlexRay en una red FlexRay, a través de la que se transmiten mensajes.
La puesta en red de mecanismos de control, sensores y actuadores mediante la ayuda de un sistema de comunicaciones y un sistema de buses, es decir, un enlace de comunicaciones, 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 como 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 control. 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 comunicaciones. 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 al respecto es el protocolo FlexRay, con lo que actualmente se utiliza como base la especificación de protocolo FlexRay v2.0. El FlexRay es un sistema de bus rápido, determinista y tolerante a fallas, especialmente para su aplicación en un vehículo. El protocolo FlexRay trabaja según el procedimiento del acceso múltiple por división de tiempo (TDMA), con lo que a los componentes, es decir, a los usuarios o a los mensajes a ser transmitidos, les son asignadas ranuras de tiempo fijas, en las que tienen un acceso exclusivo a la conexión de comunicación. En este caso, las ranuras de tiempo se repiten en un ciclo predeterminado, de manera que el momento en el que un mensaje se transmite a través del bus puede ser pronosticado con exactitud, y el acceso al bus se lleva a cabo de forma determinista. Para aprovechar de manera óptima el ancho de banda para la transmisión de mensajes, el FlexRay subdivide el ciclo en una parte estática y una parte dinámica. Para ello, las ranuras de tiempo se encuentran 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. En este punto, el acceso exclusivo al bus es posibilitado, respectivamente, sólo por un tiempo breve, los así llamados minislots (miniranuras). 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 este modo, el ancho de banda sólo se consume si realmente se necesita. En este caso, FlexRay se comunica a través de dos conductos físicamente separados con una tasa de datos con, en cada caso, un máximo de 10 MByte/s. A su vez, ambos canales corresponden a la capa física, especialmente del modelo de capas OSI (Open System Architecture). Estos sirven principalmente para la transmisión de mensajes redundantes, y con ello, tolerante a fallas, pero pueden transmitir también diferentes mensajes, con lo que la tasa de datos se duplicaría. Aunque FlexRay también puede funcionar con tasas de datos bajas.
Para llevar a cabo funciones síncronas, y optimizar el ancho de banda a través de pequeños espacios entre dos mensajes, los componentes distribuidos en la red de comunicación, es decir los usuarios, requieren una base temporal común, el así llamado tiempo global. Para la asincronización se transmiten mensajes de sincronización en la parte estática del ciclo, con lo que mediante un algoritmo especial, correspondiente a la especificación del FlexRay, se corrige la hora local de un componente de manera tal, que todos los relojes locales corran de forma sincrónica a un reloj global.
Un nodo de red FlexRay o un usuario o host FlexRay contiene un procesador de usuario, es decir, un procesador host, un controlador FlexRay o un controlador de comunicación, así como, en el caso de una supervisión de bus un guardián del bus. Para ello, 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 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. Esto se encuentra representado en el documento SAF "FlexRay - The Communication System for Advanced Automotive Control Systems" Bd. 2001-1-676, 05.03.01, XP009023349, ISSN 01487191. Este estado actual del arte muestra un chip de comunicaciones en forma de un chip FlexRay, en el que se conecta un usuario FlexRay con una interfaz de memoria para mensajes (Message Buffer Interface) a través de una "unidad de transmisión" (Transmit Unit) y una "unidad de recepción" (Receive Unit).
Es objeto de la presente invención, poner a disposición un chip de comunicaciones FlexRey que soporte de manera óptima la comunicación en una red FlexRay y que, especialmente, garantice la integridad de los datos.
Ventajas de la invención
Esta tarea es resuelta por un chip de comunicaciones Flex-Ray para el acoplamiento de un enlace de comunicaciones Flex-Ray, como capa física, con un usuario asignado al chip de comunicaciones FlexRay en una red FlexRay, a través de la cual se transmiten mensajes. Para ello, el chip de comunicaciones FlexRay contiene, de manera ventajosa, una primera disposición para el almacenamiento de, al menos, una parte de los mensajes transmitidos y una segunda disposición para la conexión de la primera disposición con el usuario, así como una tercera disposición para la conexión del enlace de comunicaciones FlexRay, con lo que la segunda disposición contiene un almacenamiento de mensaje de entrada y un almacenamiento de mensajes de salida.
En este caso, la primera disposición contiene, de manera ventajosa, un gestor de mensajes, es decir un Message Handler y una memoria para mensajes, con lo que el gestor de mensajes asume el control en relación a la primera y la segunda disposición respecto de un acceso de datos de la memoria para mensajes. En este caso, la memoria para mensajes de la primera disposición se encuentra dividida, de manera conveniente, en un encabezado de segmento y un segmento de datos.
De manera ventajosa, para la conexión al host, es decir el usuario FlexRay o el procesador host, la segunda disposición contiene un almacenamiento de mensaje de entrada y un almacenamiento de mensajes de salida, con lo que en una forma de ejecución preferente, ya sea el almacenamiento de mensaje de entrada o el almacenamiento de mensaje de salida o, en el mejor de los casos, ambos almacenamientos se encuentran divididos respectivamente en una memoria intermedia parcial y una memoria caché, que son leídas y/o escritas, alternadamente, con lo que se garantiza la integridad de los datos. La lectura o escritura alternada de la respectiva memoria intermedia parcial y de la memoria caché correspondiente se puede lograr, de manera ventajosa, con el cambio del respectivo acceso o con el cambio del contenido de la memoria.
En este caso es ventajoso, si cada memoria intermedia parcial y cada memoria caché se encuentra conformada de manera tal, que se puede almacenar un área de datos y un área de encabezado de dos mensajes FlexRay.
Para la adaptación sin problemas a diferentes bien usuarios o bien hosts, la segunda disposición contiene un chip de interfaz, que se compone de un chip parcial específico para el usuario y un chip parcial independiente del usuario, de manera que para la adaptación de usuario sólo se debe modificar el chip parcial específico para el usuario y, así se aumenta en general la flexibilidad del chip de comunicaciones FlexRay. Para ello, los chips parciales también pueden realizarse dentro del chip de interfaz en software, respectivamente, es decir cada chip parcial como función de software.
De acuerdo a los recorridos de transmisión redundantes en FlexRay, la tercera disposición posee, de manera ventajosa, un primer chip de interfaz y un segundo chip de interfaz y se encuentra dividido, a su vez, en dos rutas de datos con dos direcciones de datos, respectivamente. De forma conveniente, la tercera disposición contiene también una primera y una segunda memoria intermedia para atender a ambas rutas de datos y a las, en cada cado, dos direcciones de datos. En este caso también aquí la primera y la segunda memoria intermedia se encuentran conformadas de manera tal, que al menos se pueden almacenar, en cada caso, un área de datos de dos mensajes Flex-Ray. De forma ventajosa, cada uno de los chips de interfaz de la tercera disposición contiene un registro de desplazamiento y una máquina de estado del protocolo FlexRay.
Debido al chip de comunicaciones FlexRay conforme a la invención, la especificación de protocolo FlexRay, especialmente v2.0, puede ser soportada completamente y con ello se pueden configurar, por ejemplo, hasta 64 mensajes u objetos de mensajes. En este caso resulta una memoria para mensajes que puede ser configurada de manera flexible para el almacenamiento de una cantidad diversa de objetos de mensajes, dependiendo del tamaño del campo de datos respectivo o del área de datos del mensaje. Así se deben configurar entonces, de forma ventajosa, mensajes u objetos de mensajes que posean campos de datos de diferente longitud. A su vez, la memoria para mensajes se encuentra conformada, de forma ventajosa, como memoria FIFO (first in-first out), de manera que resulta una memoria FIFO de recepción configurable. Cada mensaje o cada objeto de mensaje en la memoria pueden ser configurados como objeto de memoria de recepción (Receive-Buffer), objeto de memoria de emisión (Transmit-Buffer) o como parte de la memoria FIFO de recepción. También es posible un filtrado de aceptación de Frame-ID, Channel-ID y Cycle-Counter en la red FlexRay. De manera conveniente es soportada así la administración de la red. Ventajosamente también se encuentran previstas interrupciones de chips que pueden ser enmascaradas. Otras ventajas y diseños ventajosos resultan de las características de las reivindicaciones así como de la descripción.
Dibujo
A continuación detalla la invención con ayuda de las siguientes figuras del dibujo.
En este caso, la figura 1 muestra, en una representación esquemática, al chip de comunicaciones y su conexió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, en un modo de ejecución especial y de forma más detallada, el chip de comunicaciones de la figura 1, así como su conexión.
En la figura 3 se representa la estructura de la memoria para 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 hacia la memoria para 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 para mensajes al usuario.
En la figura 10 está representado, de modo esquemático, el gestor de mensajes y las máquinas de estados finitos contenidas en el mismo.
La figura 11 muestra, nuevamente de modo esquemático, los componentes del chip de comunicaciones, así como el usuario y las rutas de datos controladas por el gestor 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 explica en detalle la invención con ayuda de los ejemplos de ejecución.
\vskip1.000000\baselineskip
Ejemplos de ejecución
La figura 1 muestra, de modo esquemático, un chip de comunicaciones FlexRay 100 para la conexión de un usuario o host 102 a un enlace de comunicaciones FlexRay 101, es decir, la capa física del Flex Ray. Para ello, el chip de comunicaciones FlexRay 100 está unido a través de una conexión 107 con el usuario o el procesador de usuario 102, y a través de una conexión 106 con la conexión de comunicación 101. Para la conexión sin problemas, por un lado en relación a los tiempos de transmisión, y por el otro, a la integridad de los datos, se diferencian, de modo esquemático, esencialmente tres disposiciones en el chip comunicación FlexRay. En este caso, una primera disposición 105 sirve para el almacenamiento, especialmente para el almacenamiento intermedio de, al menos, una parte de los mensajes a 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 flexible de datos como parte de mensajes, especialmente de mensajes FlexRay hacia o desde la primera disposición 105, garantizando la integridad de los datos en caso de una velocidad óptima.
En la figura 2 este chip de comunicaciones 100 se encuentra representado nuevamente en detalle, en un modo de ejecución preferente. Con el mismo detalle están representadas las respectivas conexiones 106 a 109. En este caso, la segunda disposición 104 contiene un almacenamiento de mensaje de entrada 201 (Input Buffer IBF), un almacenamiento de mensaje de salida 202 (Output Buffer OBF), así como un chip de interfaz compuesto por dos partes 203 y 204, con lo que uno de los chips parciales 203 es independiente del usuario, y el segundo chip parcial 204 es específico para el usuario. El chip parcial específico para el usuario 204 (Customer CPU Interface CIF) conecta una CPU central (host) específica para el usuario 102, es decir un usuario específico del cliente con el chip de comunicaciones FlexRay. Para ello están previstos un conducto de datos bidireccional 216, un conducto de dirección 217, así como una entrada de control 218. Del mismo modo, con 219 se prevé una salida de interrupción. El chip parcial específico para el usuario 204 está conectado con un chip parcial independiente del usuario 203 (Generic CPU Interface, GIF), es decir que el chip de comunicaciones FlexRay o el chip IP FlexRay dispone de una interfaz de CPU genérica, es decir general, a la cual se pueden conectar una gran cantidad de diferentes CPUs centrales (host) específicas del cliente, a través de chips parciales específicos del usuario correspondientes, es decir, Customer CPU Interfaces CIF. Debido a esto, dependiendo del usuario sólo se debe variar el chip parcial 204, lo cual significa un coste notablemente
menor.
El almacenamiento de mensaje de entrada 201 y el almacenamiento de mensaje de salida 202 pueden estar configurados en un chip de memoria, pero también en chips de memoria separados. En este caso, el almacenamiento de mensaje de entrada 201 sirve para el almacenamiento temporal de mensajes para la transmisión a la memoria para mensajes 200. El chip de almacenamiento intermedio de entrada está configurado, preferentemente, de manera tal que pueda almacenar dos mensajes completos que se componen, respectivamente, de un encabezado de segmento, especialmente con datos de configuración, y un segmento de datos o segmento de gestión de datos (payload). Para ello, el almacenamiento de mensajes de entrada está conformado 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 para mensajes 200 a través de la escritura alternativa de ambas partes del almacenamiento de mensaje de entrada, o a través del cambio de acceso. De igual modo, el almacenamiento de mensaje de salida (Output-Buffer OBF) sirve para el almacenamiento temporal de mensajes para la transmisión de la memoria para mensajes 200 a la CPU del usuario 102. En este caso, también el almacenamiento de mensaje de salida 202 se encuentra configurado de manera tal, que puedan ser almacenados dos mensajes completos compuestos de un encabezado de segmento, 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 para mensajes 200. Esta segunda disposición 104, compuesta por los bloques 201 a 204, se encuentra conectada a la primera disposición 105, como se representa.
La disposición 105 se compone de un gestor de mensajes 200 (Message Handler MHD) y una memoria para mensajes 300 (Message RAM). El gestor de mensajes supervisa o controla la transferencia de datos entre el almacenamiento de mensaje de entrada 201 así como del almacenamiento de mensaje de salida 202 y la memoria para mensajes 300. De igual modo supervisa o controla la transferencia de datos en la otra dirección a través de la tercera disposición 103. La memoria para mensajes se encuentra conformada, 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 estado. En la figura 3 se representa detalladamente la estructura exacta de la memoria para mensajes 300.
La tercera disposición 103 se compone de los bloques 205 a 208. En correspondencia con ambos canales de la capa física FlexRay, esta disposición 103 se encuentra dividida en dos rutas de datos con dos direcciones de datos, respectivamente. Esto se puede observar en las uniones 213 y 214, en las que están representadas ambas direcciones de los datos para el canal A, RxA y TxA para la recepción (RxA) y la emisión (TxA), así como para el canal B, RxB y TxB. Se denomina unión 215 a una entrada de control opcional y bidireccional. La unión de la tercera disposición 103 se realiza 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 hacia la primera disposición 105. En correspondencia con ambos canales, estas dos memorias intermedias 205 y 206 se encuentran conectadas, cada una, con un chip de interfaz 207 y 208, que contiene al controlador de protocolo FlexRay o al controlador de protocolo de buses, que se compone de un registro de desplazamiento de emisión y recepción y la máquina de estado finito del protocolo FlexRay. Ambas memorias intermedias 205 y 206 sirven, así, como memoria intermedia para la transmisión de datos entre los registros de desplazamiento de los chips de interfaz o entre los controladores de protocolo FlexRay 207 y 208 y la memoria para mensajes 300. También aquí son almacenados, ventajosamente a través de cada memoria intermedia 205 o 206, los campos de
datos, es decir, el segmento de gestión de datos (playload) o el segmento de datos de dos mensajes FlexRay.
Además, en el chip de comunicaciones 100 se encuentra representado, con la referencia 209, la unidad de tiempo global (Global Time Unit GTU), que es responsable de la representación de la rejilla de tiempo en FlexRay, es decir, el Mikrotick PT y el Makrotick MT. Del mismo modo, a través de la unidad de tiempo global 209, se regula 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 210 se representa el control general del sistema (System Universal Control SUC), a través del cual se controlan los modos de operación del controlador de comunicación FlexRay. Entre ellos se encuentran la alarma (wakeup), el inicio (startup), la reintegración o integración, la operación normal (normal operation) y la operación pasiva (passive operation).
El bloque 211 muestra la gestión de red y de fallas (NEM), como se describe en las especificaciones de protocolo FlexRay v2.0. Finalmente, el bloque 212 muestra el control de interrupción (Interrupt Control INT), que administra las marcas de estado y de fallas (status and error interrupt flags) y controla las salidas de interrupción 219 hacia 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 interrupciones del temporizador.
Para la comunicación en una red FlexRay, los objetos de los mensajes o mensajes (Message Buffer) pueden ser configurados con hasta 254 bytes de datos. La memoria para mensajes 300 es especialmente una memoria para mensajes RAM (Message RAM), que puede almacenar, por ejemplo, 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 gestor 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 para mensajes 300, es decir, Message RAM, así como el control de la secuencia de emisión y la puesta a disposición de datos de configuración o de datos de estado.
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 la parte específica del usuario 204, directamente al registro del chip de comunicaciones FlexRay. Para ello se utilizan una multiplicidad de registros. Estos registros se aplican para configurar y controlar, además de indicar su estado correspondiente, los controladores de protocolo FlexRay, es decir, los chips de interfaz 207 y 208, el gestor 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, a la memoria para mensajes 300. Al menos parte de este registro es explicado con más detalle en las figuras 4 a 6 y 7 a 9. Un chip de comunicaciones FlexRay del tipo descrito y conforme a la invención 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 funcionalidad FlexRay correspondiente.
En la figura 3 se describe en detalle la división de la memoria para mensajes 300. Para la funcionalidad requerida de acuerdo a la especificación de protocolo FlexRay de un controlador de comunicación FlexRay, se requiere una memoria para 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 permite mensajes con un área de datos, es decir, con un área de gestión de datos (payload), de 0 a 254 bytes. Como se representa en la figura 2, la memoria para mensajes es parte del chip de comunicaciones FlexRay 100. El procedimiento descrito a continuación, así como la memoria para mensajes correspondiente, ilustran el almacenamiento de los mensajes a ser enviados, así como de los mensajes recibidos, especialmente utilizando una Random Access Memory (RAM), con lo que con el mecanismo conforme a la invención es posible, almacenar en una memoria para mensajes de un tamaño predeterminado una cantidad variable de mensajes. De esta manera, la cantidad de mensajes almacenables depende de la magnitud del área de datos de los mensajes individuales, con lo que se puede minimizar la dimensión de la memoria requerida sin restringir la magnitud del área de datos de los mensajes, por un lado, y se aprovecha de manera óptima la memoria, por el otro. A continuación se describirá en mayor detalle esta división variable de una memoria para mensajes, especialmente una memoria para mensajes basada en RAM, para un controlador de comunicación FlexRay.
Para la implementación se determina, por ejemplo, una memoria para mensajes con un ancho de palabras fijado en n bits, por ejemplo, 8,16, 32, etc., así como una profundidad de almacenamiento de m palabras (m, n como números naturales). La memoria para mensajes 300 se divide en dos segmentos, un encabezado de segmento HS y un segmento de datos DS (Payload Section, Payload Segment). Por cada mensaje se crea, de esta manera, un área de encabezado HB y un área de datos DB. Para mensajes 0,1, a k (k como número natural) se crean 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 estado 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, correspondientemente, en á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), con lo que el segundo volumen de datos puede ser diferente según cada mensaje. La división entre encabezado de segmento HS y segmento de datos DS en la memoria para mensajes 300 es entonces variable, es decir, no existe un límite predeterminado entre las áreas. Conforme a la invención, la división entre el encabezado de segmento HS y el segmento de datos DS depende 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 mensajes k juntos. Conforme a la invención, ahora a cada dato de configuración KD0, KD1 a KDk, del respectivo mensaje le es asignado directamente un elemento indicador o Datapointer DP0, DP1 a DPk. En el diseño 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 manera 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). A este encabezado de segmento HS con el área de encabezado HB, cuya magnitud o primer volumen de datos depende de la cantidad k de los mensajes por almacenarse, se 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) 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. Los elementos indicadores respectivos DP0, DP1 a DPk señalan, así, 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 esta manera, la división de la memoria para mensajes entre encabezado de segmento 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 encabezado de segmento se reduce y el área que se libera en la memoria para 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. Con ello, el segmento de datos libre FDS, especialmente su tamaño, también depende de la combinación entre la cantidad k de los mensajes almacenados y el segundo volumen de datos respectivo del mensaje es mínimo e incluso puede ser igual a cero.
Además de la utilización 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 una secuencia predeterminable, de manera que la secuencia de las áreas de encabezado HB0 a HBk en el encabezado de segmento HS y la secuencia de las áreas de datos DB0 a DBk en el segmento de datos DS sea idéntico en cada caso. Entonces, en determinadas circunstancias se podría prescindir, incluso, del elemento indicador.
En un diseño especial, a la memoria para 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 corrección de los datos almacenados en HS y DS al poder almacenar, 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 este modo se obtienen las siguientes ventajas respecto de una división fija de la memoria para 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 el tamaño de la memoria para mensajes adaptando 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.
A continuación se describirá, en mayor detalle y con ayuda de las figuras 4 a 6, así como 7 a 9, el acceso de la CPU host, es decir, la escritura y lectura de datos de configuración o datos de estado y datos propiamente dichos a través de la disposición de las memorias intermedias 201 y 202. En este caso, el objetivo es establecer un desacople respecto de la transmisión de datos de manera tal, que se pueda asegurar la integridad de datos y, al mismo tiempo, se garantice una elevada velocidad de transmisión de datos. El control de estos procedimientos se lleva a cabo a través del gestor de mensajes 200, lo cual se describirá más detalladamente en las figuras 10, 11 y 12.
En las figuras 4, 5 y 6 se describen primero, más detalladamente, los accesos de escritura a la memoria para mensajes 300 a través de la CPU host del usuario de la CPU 102, a través del almacenamiento de mensaje de entrada 201. Para ello, la figura 4 muestra una vez más el chip de comunicaciones 100, con lo que para una mayor claridad sólo se muestran las partes aquí relevantes del chip de comunicaciones 100. Este es, por un lado, el gestor de mensajes 200 responsable del control del los desarrollos, así como dos registros de control 403 y 404, que, como se representa, pueden estar alojados fuera del gestor de mensajes 200 en el chip de comunicaciones 100, pero también pueden estar contenidos en el gestor de mensajes 200 mismo. En este caso, la referencia 403 identifica al registro de petición 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 para mensajes 300 (Message RAM) se llevan a cabo a través de un almacenamiento de mensaje de entrada intercalado 201 (Input Buffer). Este almacenamiento de mensaje de entrada 201 está ahora configurado de modo dividido o desdoblado, más precisamente como memoria intermedia parcial 400 y una memoria caché 401 correspondiente a la memoria intermedia parcial. De esta manera, como se describe más adelante, se puede realizar un acceso continuo de la CPU host 102 a los datos correspondientes a los mensajes u objetos de mensajes de la memoria para 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 realiza a través del registro de petición de entrada 403 y a través del registro de máscara de entrada 404. En el registro 403 se encuentran 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.
Conforme a la invención, las posiciones de bits 0 a 5, 15, 16 a 21 y 31 del registro 403, a modo de ejemplo, reciben una función especial en lo que respecta al control del desarrollo. De ese modo, en las posiciones de bit 0 a 5 del registro 403 se puede ingresar una identificación IBRH (Input Buffer Request Host) como identificación del mensaje. Del mismo modo, en las posiciones de bit 16 a 21 del registro 403 se puede ingresar una identificación IBRH (Input Buffer Request Host) como identificación del mensaje. De la misma manera, en la posición de registro 15 de 403 se encuentra ingresado IBSYH como identificación de acceso, y en la posición de registro 31 de 403, IBSYS. También se encuentran identificadas las posiciones 0 a 2 del registro 404, con lo que en 0 y 1 se encuentran ingresadas, con LHSH (Load Header Section Host) y LDSH (Load Data Section Host), otras identificaciones como identificaciones de datos. Aquí estas identificaciones de datos se encuentran conformadas de la manera más simple, a saber, respectivamente como un bit. En la posición de bit 2 del registro 404 se encuentra ingresada una identificación de inicio con STXRH (Set Transmission X Request Host).
A continuación se describe el desarrollo del acceso de escritura en la memoria para mensajes través de la memoria intermedia.
La CPU host 102 escribe los datos del mensaje a ser transferido en el almacenamiento de mensaje de entrada 201. En este caso, 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 para mensajes, o sólo los datos propiamente dichos D, a ser transmitidos, de un mensaje para el segmento de datos DS de la memoria para 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 entrada 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 contrapartes 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 fijado 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, después que haber realizado la transferencia exitosa de los datos de configuración respectivos a enviarse y/o los datos propiamente dichos en la memoria de datos 300, se pone automáticamente una petición 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 contraparte de ello, 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, sólo que relacionada a 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 para mensajes 300 a la cual deben transferirse los datos del almacenamiento de mensaje de entrada 201, en las posiciones de bits 0 a 5 del registro de petición de entrada 403, es decir, según IBRH, la memoria intermedia 400 del almacenamiento de mensaje de entrada 201 y la memoria caché 401 correspondiente son intercambiadas, es decir, se cambia el acceso respectivo de la CPU host 102 y la memoria para mensajes 300 a ambas memorias parciales 400 y 401, como se indica con las flechas semicirculares. En este caso, también se inicia la transferencia de datos, es decir, la transmisión de datos a la memoria para mensajes 300. La transmisión de datos a la memoria para mensajes 300 misma se lleva a cabo desde la memoria caché 401. Al mismo tiempo se intercambian las áreas de registro IBRH e IBRS. De igual modo se cambian LHSH y LDSH por LHSS y LDSS. Del mismo modo se cambian STXRH por STXRS. IBRS muestra de este modo la identificación del mensaje, es decir, el número del objeto de mensaje para el cual se encuentra 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 para 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 petición de entrada 403 se indica si se está realizando una transmisión con la participación de la memoria caché 401. Así, 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 fija 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á realizando una transferencia entre la memoria caché 401 y la memoria para mensajes 300. Tras finalizar esta transmisión de datos hacia la memoria para 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 a transferir en el almacenamiento de mensaje de entrada o en la memoria intermedia 400. Con 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 para mensajes 300, es decir IBSYS=1, entonces IBSYH se coloca en el registro de petición de entrada 403. Tan pronto como finaliza la transferencia en curso, es decir, la transmisión en curso, se inicia la transferencia solicitada (petición mediante STXRH, véase arriba) y el bit IBSYH retorna a su lugar. El bit IBSYS permanece todo el tiempo fijado, para indicar que se están transfiriendo datos a la memoria para 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. Por motivos de economía de memoria y procesamiento es ventajosa una solución de un bit.
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 para mensajes, que se componen de 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 entrada sea menor o igual a la tasa de transferencia de datos interna del chip IP FlexRay, es decir, del chip de comunicaciones 100.
En las figuras 7, 8 y 9 se describen ahora, más detalladamente, los accesos de escritura a la memoria para mensajes 300 a través de la CPU host o del 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 chip de comunicaciones 100, con lo que para una mayor claridad también aquí sólo se muestran las partes relevantes del chip de comunicaciones 100. Esto es, por un lado, el gestor de mensajes 200 responsable del control de los desarrollos, así como dos registros de control 703 y 704, que, como se representa, pueden estar alojados fuera del gestor de mensajes 300 en el chip de comunicaciones 100, pero también pueden estar contenidos en el gestor de mensajes 200 mismo. La referencia 703 identifica al registro de petición 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 para 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 se encuentra configurado ahora de modo dividido o desdoblado, a saber, como memoria intermedia parcial 701 y una memoria caché 700 correspondiente a la memoria intermedia parcial. De esta manera 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 para 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 para mensajes a la CPU host. El control de los accesos se realiza a través del registro de petición de salida 703 y a través del registro de máscara de entrada 704. También en el registro 703 se encuentran representadas, con los números 0 a 31, las posiciones de bits en 703, en este caso, a modo ejemplar, para un ancho de 32 bits. Lo mismo vale para el registro 704 y las posiciones de bits 0 a 31 en 704.
Conforme a la invención, los números de bits 0 a 5, 8 y 9, 15 y 16 a 21 del registro 703, a modo ejemplar, reciben una función especial en lo que respecta al control del desarrollo de un acceso de lectura. De ese modo, en los números de bits 0 a 5 del registro 703 se puede ingresar una identificación OBRS (Output Buffer Request Shadow) como identificación del mensaje. De igual modo, en los números de bits 16 a 21 del registro 703 se puede ingresar una identificación OBRH (Output Buffer Request Host) como identificación del mensaje. Como identificación de acceso se puede ingresar la identificación OBSYS (Output Buffer Busy Shadow) en la posición de bit15 del registro 703. También están identificados los números 0 a 2 del registro de máscara de salida 404, con lo que, en las posiciones de bits 0 y 1 están ingresadas 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á ingresada una identificación de inicio REQ. Además está prevista una identificación de conmutación VIEW que, por ejemplo, está ingresada 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 para 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 a 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 que 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 para mensajes a la memoria caché 700. Es decir que si se utiliza un bit como identificación, como en el caso más simple, la transmisión desde la memoria para mensajes 300 a la memoria caché 700 se inicia con la colocación del bit REQ en la posición de bit 9 en el registro de petición 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 para 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 que después de finalizar la transmisión, el bit OBSYS regresa a su lugar y, poniendo al bit VIEW en el registro de petición 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 para mensajes, es decir, el mensaje correspondiente. En este caso, 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 realice una transmisión en curso.
De ese modo se realizan accesos de lectura de la CPU host 102 a la memoria para 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 se encuentra 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 para mensajes 300. También en este caso se logran las ventajas de la elevada integridad de los 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 para mensajes a pesar de los tiempos de espera internos del chip.
Para asegurar esta integridad de los datos, la transmisión de datos, especialmente la retransmisión en el chip de comunicaciones 100, se realiza a través del gestor de mensajes 200 (Message Handler MHD). Para ello, en la figura 10 se encuentra representado el gestor de mensajes 200. El gestor de mensajes se puede representar, en su funcionalidad, a través de múltiples máquinas de estado o autómatas de estado, es decir autómatas finitos, las así llamadas máquinas de estados finitos (FSM). En este caso, se encuentran previstas, al menos, tres máquinas de estado, y en una forma de ejecución especial, cuatro máquinas de estados finitos. Una primera máquina de estado finito es la IOBF-FSM (Input/Output Buffer State Machine), identificada con la referencia 501. Esta IOBF-FSM podría estar subdividida en dos máquinas de estados finitos, por cada dirección de transmisión, en relación al almacenamiento de mensaje de entrada o del almacenamiento de mensaje de salida, 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 que se refiere a las memorias 205 y 206, como se describe en la figura 2. Para ello, se puede prever una máquina de estado finito para operar ambos canales A y B o también, como en la forma preferida, una 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).
En el ejemplo de ejecución preferido, una máquina de estado finito aumentada, la así llamada AFSM, identificada con 500 sirve para el control del acceso de las tres máquinas de estados finitos 501-503. 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 chip de comunicaciones, adaptados a partir de este periodo o ciclo. El periodo T puede, a su vez, ser generado en el chip 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 para mensajes alternadamente a una de las tres máquinas de estados finitos 501-503, especialmente, en cada caso, durante un período elemental T. Es decir que el tiempo disponible para el acceso se divide, acorde a las solicitudes de acceso, entre los autómatas de estado individuales 501, 502,503, 503. Si la petición 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 petición 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 petición 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.
\newpage
La primera máquina de estado finito, que se identifica con 501, es decir IOBF-FSM, realiza las siguientes acciones, si es necesario:
-
Transferencia de datos del almacenamiento de mensaje de entrada 201 al objeto de mensaje seleccionado en la memoria para mensajes 300.
-
Transferencia de datos del objeto de mensaje seleccionado 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, realiza 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 para mensajes 300.
-
Búsqueda del objeto de mensaje adecuado en la memoria para mensajes, con lo que durante 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 durante la emisión, el siguiente objeto de mensaje a ser enviado en el canal A (Transmit Buffer).
La acción de TBF2- FSM es análoga, 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 para 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 para mensajes 300. También la función de búsqueda de un objeto de mensaje adecuado en la memoria para mensajes es análoga a la TBF1-FSM, con lo que, 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 a ser enviado en el canal B (Transmit Buffer).
En la figura 11 se representan 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. Para ello, se identifica nuevamente con 102 a la CPU host, con 201 al almacenamiento de mensaje de entrada, y con 202 el almacenamiento de mensaje de salida. Con 300 se representa la memoria para mensajes, y las dos memorias intermedias para el canal A y el canal B, con 206 y 205. Los elementos de interfaz 207 y 208 también se encuentran representados. 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 entrada 201 a la memoria para mensajes 300 y de la memoria para mensajes 300 al almacenamiento de mensaje de salida 202. La transmisión de datos se realiza, a su vez, a través de buses de datos con un ancho de palabra de, por ejemplo, 32 bits, con lo que también es posible cualquier otra cantidad de bits. Lo mismo es válido para la transmisión Z2 entre la memoria para mensajes y la memoria intermedia 206. Esta transmisión de datos se controla a través de TBF1-FSM, es decir, 502, la máquina de estados para el canal A. La transmisión Z3 entre la memoria para mensajes 300 y la memoria intermedia 205 se controla a través del 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 ejemplar, de 32 bits, con lo que 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 realizada una división del tiempo de transmisión respecto de los periodos elementales T, por parte de la máquina aumentada, es decir, la AFSM 500. En la figura 11 se representan las rutas de datos, entre los componentes de memoria controlados por el gestor de mensajes (Message Handler). Para garantizar la integridad de los datos de los objetos de mensajes almacenados en la memoria para mensajes, de forma ventajosa, 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 figura 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 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. Finalmente, en la fase 4, 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 chip de comunicaciones, 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 de las tres máquinas de estado presente una petición de acceso a la memoria para 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 para 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 petición 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 para mensajes.
El procedimiento descrito posibilita a la CPU host, leer o escribir cualquier objeto de mensaje en la memoria para 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 host. Al mismo tiempo, gracias el entrelazamiento en periodos de los accesos, se garantiza la integridad de los datos almacenados en la memoria para mensajes y la velocidad de transmisión, elevada también gracias al aprovechamiento de todo el ancho de banda.

Claims (13)

1. Chip de comunicaciones FlexRay (100) para el acoplamiento de un enlace de comunicación FlexRay (101) con un usuario (102) asignado al chip de comunicaciones FlexRay en una red FlexRay, a través de la que se transmiten mensajes, con lo que el chip de comunicaciones FlexRay (100) contiene los siguientes componentes:
-
una primera disposición (105) para el almacenamiento de, al menos, una parte de los mensajes transmitidos y
-
una segunda disposición (104) para la conexión de la primera disposición (105) con el usuario (102) así como
-
una tercera disposición (103) para la conexión del enlace de comunicaciones FlexRay (101) con la primera disposición (105), caracterizado porque la segunda disposición (104) contiene un almacenamiento de mensaje de entrada (201) y un almacenamiento de mensaje de salida (202).
\vskip1.000000\baselineskip
2. Chip de comunicaciones FlexRay (100) conforme a la reivindicación 1, caracterizado porque la primera disposición (105) contiene un gestor de mensajes (200) y una memoria para mensajes (300).
3. Chip de comunicaciones FlexRay (100) conforme a la reivindicación 1, caracterizado porque la primera disposición (105) contiene una memoria para mensajes (300), con lo que la memoria para mensajes se encuentra dividida en un encabezado de segmento (HS) y un segmento de datos (DS).
4. Chip de comunicaciones FlexRay (100) conforme a la reivindicación 1, caracterizado porque el almacenamiento de mensaje de entrada (202) se encuentra dividido en una memoria intermedia parcial (701) y una memoria caché (700), con lo que el acceso a la memoria intermedia parcial y a la memoria caché es transpuesto.
5. Chip de comunicaciones FlexRay (100) conforme a la reivindicación 1, caracterizado porque el almacenamiento de mensaje de entrada (201) se encuentra dividido en una memoria intermedia parcial (400) y una memoria caché (401), cuyo contenido es transpuesto uno con otro.
6. Chip de comunicaciones FlexRay (100) conforme a la reivindicación 1, caracterizado porque el almacenamiento de mensaje de salida (202) se encuentra dividido en una memoria intermedia parcial (701) y una memoria caché (700), con lo que el acceso a la memoria intermedia parcial y a la memoria caché es transpuesto.
7. Chip de comunicaciones FlexRay (100) conforme a la reivindicación 4, caracterizado porque el almacenamiento de mensaje de salida (202) se encuentra dividido en una memoria intermedia parcial (701) y una memoria caché (700), cuyo contenido es transpuesto uno con otro.
8. Chip de comunicaciones FlexRay (100) conforme a una de las reivindicaciones 4 a 7, caracterizado porque cada almacenamiento de mensaje de entrada (400, 401) y cada almacenamiento de mensaje de salida (700, 701) se encuentra conformado de manera tal, que se puede almacenar, respectivamente, un área de datos y un área de encabezado de dos mensajes FlexRay.
9. Chip de comunicaciones FlexRay (100) conforme a la reivindicación 1, caracterizado porque la segunda disposición (104) contiene un chip de interfaz que se compone de un chip parcial específico para el usuario (204) y un chip parcial independiente del usuario (203).
10. Chip de comunicaciones FlexRay (100) conforme a la reivindicación 1, caracterizado porque la tercera disposición (103) posee un primer chip de interfaz (207) y un segundo chip de interfaz (208) y se encuentra dividido en dos rutas de datos con dos direcciones de datos respectivamente.
11. Chip de comunicaciones FlexRay (100) conforme a la reivindicación 1, caracterizado porque la tercera disposición (103) posee una primera memoria intermedia (206) y una segunda memoria intermedia (205) y se encuentra dividido en dos rutas de datos con dos direcciones de datos respectivamente.
12. Chip de comunicaciones FlexRay (100) conforme a la reivindicación 11, caracterizado porque cada una de las memorias intermedias (205, 206) se encuentra conformada de manera tal, que se puede almacenar un área de datos de dos mensajes FlexRay.
13. Chip de comunicaciones FlexRay (100) conforme a la reivindicación 10, caracterizado porque cada uno de los chips de interfaz (207, 208) contiene un registro de desplazamiento y una máquina de estado del protocolo FlexRay.
ES05756826T 2004-08-05 2005-06-29 Chip de comunicaciones flexray. Active ES2335509T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102004038212A DE102004038212A1 (de) 2004-08-05 2004-08-05 FlexRay-Kommunikationsbaustein
DE102004038212 2004-08-05

Publications (1)

Publication Number Publication Date
ES2335509T3 true ES2335509T3 (es) 2010-03-29

Family

ID=34971661

Family Applications (1)

Application Number Title Priority Date Filing Date
ES05756826T Active ES2335509T3 (es) 2004-08-05 2005-06-29 Chip de comunicaciones flexray.

Country Status (10)

Country Link
US (1) US7769906B2 (es)
EP (1) EP1776805B1 (es)
JP (1) JP2008508826A (es)
KR (1) KR101028898B1 (es)
CN (1) CN100566276C (es)
AT (1) ATE450102T1 (es)
DE (2) DE102004038212A1 (es)
ES (1) ES2335509T3 (es)
RU (1) RU2380841C2 (es)
WO (1) WO2006015913A1 (es)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7849284B2 (en) * 2003-05-21 2010-12-07 Nxp B.V. Message memory for a communication protocol and method
DE102004008910A1 (de) * 2004-02-24 2005-09-08 Robert Bosch Gmbh Verfahren und Kommunikationssystem zur Übertragung von Informationen in einem Kraftfahrzeug
EP1624620B1 (en) * 2004-08-05 2010-05-05 Robert Bosch Gmbh FlexRay communication controller
US9801709B2 (en) 2004-11-02 2017-10-31 E-Vision Smart Optics, Inc. Electro-active intraocular lenses
US8778022B2 (en) 2004-11-02 2014-07-15 E-Vision Smart Optics Inc. Electro-active intraocular lenses
US7548551B2 (en) * 2005-08-19 2009-06-16 Gm Global Technology Operations, Inc. System and method of optimizing the bandwidth of a time triggered communication protocol with homogeneous slot sizes
DE102005048581B4 (de) * 2005-10-06 2022-06-09 Robert Bosch Gmbh Teilnehmerschnittstelle zwischen einem FlexRay-Kommunikationsbaustein und einem FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
EP2036262A1 (en) * 2006-06-20 2009-03-18 Freescale Semiconductor, Inc. Method for transmitting a datum from a time-dependent data storage means
EP2038744B1 (en) * 2006-06-22 2018-08-08 NXP USA, Inc. Method and system of grouping interrupts from a time-dependent data storage means
KR100930931B1 (ko) * 2007-12-12 2009-12-10 현대자동차주식회사 플렉스레이통신 고장 강건을 위한 플렉스레이 시스템
DE102007061986A1 (de) * 2007-12-21 2009-06-25 Bayerische Motoren Werke Aktiengesellschaft Kommunikationssystem
DE102009041435A1 (de) * 2009-09-16 2011-03-24 Robert Bosch Gmbh Verfahren und Vorrichtung zum Aufwecken von Teilnehmern eines Bussystems und entsprechender Teilnehmer
US8898408B2 (en) * 2011-12-12 2014-11-25 Dell Products L.P. Memory controller-independent memory mirroring
DE102012207014B4 (de) 2012-04-27 2018-03-15 S-Y Systems Technologies Europe Gmbh Schnittstelle für einen kabelbaum
US10740498B2 (en) * 2018-02-05 2020-08-11 Silicon Laboratories Inc. System and method for secure wakeup in a communication system
RU2691886C1 (ru) * 2018-08-15 2019-06-18 Общество с ограниченной ответственностью "ТЕКОН Микропроцессорные технологии" Сложно-функциональный блок для СБИС типа система на кристалле
CN110519377B (zh) * 2019-08-29 2022-05-27 北京经纬恒润科技股份有限公司 一种通信数据传输方法及装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4333143A (en) * 1979-11-19 1982-06-01 Texas Instruments Input process sequence controller
US4805094A (en) * 1986-08-27 1989-02-14 American Telephone & Telegraph Company Multi-channel memory access circuit
US5195182A (en) * 1989-04-03 1993-03-16 Eastman Kodak Company Frame buffer architecture for storing sequential data in alternating memory banks
US5458404A (en) 1991-11-12 1995-10-17 Itt Automotive Europe Gmbh Redundant wheel sensor signal processing in both controller and monitoring circuits
SE514348C2 (sv) * 1995-06-09 2001-02-12 Saab Dynamics Ab Minnesstruktur anpassad för lagring och hämtning av vektorer
JPH09261226A (ja) 1996-03-26 1997-10-03 Meidensha Corp プログラマブル・コントローラ
JP3843667B2 (ja) 1999-10-15 2006-11-08 セイコーエプソン株式会社 データ転送制御装置及び電子機器
DE10039460A1 (de) 2000-08-12 2002-02-21 Daimler Chrysler Ag Datenbus für mehrere Teilnehmer
DE20121466U1 (de) 2001-07-26 2003-02-27 Motorola Inc Taktsynchronisation in einem verteilen System
DE10138066A1 (de) 2001-08-03 2003-02-20 Siemens Ag Teilnehmer für ein Netzwerk
US20030117982A1 (en) 2001-12-17 2003-06-26 Siemens Transportation Systems, Inc. Packet efficient TDMA with flow control
DE10200201A1 (de) 2002-01-04 2003-07-24 Daimler Chrysler Ag Zyklusbasiertes zeitgesteuertes Kommunikationssystem
DE10215719A1 (de) 2002-04-10 2003-10-30 Philips Intellectual Property Datenspeicher
EP1355456A1 (en) 2002-04-16 2003-10-22 Robert Bosch Gmbh FlexRay communication protocol
EP1355460B1 (en) * 2002-04-16 2005-10-05 ROBERT BOSCH GmbH Method for monitoring a communication media access schedule of a communication controller of a communication system
JP3750636B2 (ja) 2002-07-11 2006-03-01 株式会社デンソー データ中継装置および多重通信システム
US7337241B2 (en) 2002-09-27 2008-02-26 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
EP1588275A1 (en) 2002-12-17 2005-10-26 Systemauto System, method and computer program product for sharing information in a distributed framework
JP2004260484A (ja) 2003-02-25 2004-09-16 Sumitomo Electric Ind Ltd 車両内通信システム及びゲートウェイ装置
JP2005149203A (ja) 2003-11-17 2005-06-09 Toshiba Corp データ取り込み装置及びデータ取り込み方法
JP4404619B2 (ja) 2003-12-19 2010-01-27 パナソニック株式会社 通信装置、通信制御方法及び通信制御プログラム

Also Published As

Publication number Publication date
CN1993936A (zh) 2007-07-04
US20080140949A1 (en) 2008-06-12
EP1776805A1 (de) 2007-04-25
DE102004038212A1 (de) 2006-03-16
KR20070037634A (ko) 2007-04-05
JP2008508826A (ja) 2008-03-21
RU2007108064A (ru) 2008-10-20
RU2380841C2 (ru) 2010-01-27
WO2006015913A1 (de) 2006-02-16
ATE450102T1 (de) 2009-12-15
CN100566276C (zh) 2009-12-02
KR101028898B1 (ko) 2011-04-12
US7769906B2 (en) 2010-08-03
EP1776805B1 (de) 2009-11-25
DE502005008586D1 (de) 2010-01-07

Similar Documents

Publication Publication Date Title
ES2335509T3 (es) Chip de comunicaciones flexray.
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.
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.
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.
ES2392549T3 (es) Pasarela para el enrutamiento automático de mensajes entre buses
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
ES2346259T3 (es) Pasarela para la transferencia de datos entre buses en serie.
JP4903801B2 (ja) FlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェース、およびFlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェースを経由するメッセージの伝送方法
US20100161834A1 (en) User interface between a microcontroller and a flexray communications module; flexray user; and method for transmitting messages via such an interface
JP2009502072A (ja) FlexRay通信モジュール及びFlexRay通信制御装置、並びにFlexRay通信接続とFlexRay加入者装置との間でメッセージを伝送する方法
ES2349340T3 (es) Módulos de comunicaciones.