ES2353810T3 - 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. - Google Patents

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. Download PDF

Info

Publication number
ES2353810T3
ES2353810T3 ES06701281T ES06701281T ES2353810T3 ES 2353810 T3 ES2353810 T3 ES 2353810T3 ES 06701281 T ES06701281 T ES 06701281T ES 06701281 T ES06701281 T ES 06701281T ES 2353810 T3 ES2353810 T3 ES 2353810T3
Authority
ES
Spain
Prior art keywords
message
data
messages
memory
stored
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
ES06701281T
Other languages
English (en)
Inventor
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 ES2353810T3 publication Critical patent/ES2353810T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • 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
    • 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/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/43Loop networks with decentralised control with synchronous transmission, e.g. time division multiplex [TDM], slotted rings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Método para la transmisión de datos en mensajes que se transmiten cíclicamente en ventanas de tiempo predeterminables (ZF) a través de un enlace de comunicaciones (101) de un sistema de comunicaciones, en donde a través del enlace de comunicaciones (101) se almacenan temporalmente mensajes a enviar y enviados, en primer lugar, en una memoria de mensajes (300) de un chip de comunicaciones (100), y el mensaje a enviar, o bien, a recibir en una ventana de tiempo actual (ZF) se toma desde la memoria de mensajes (300) y se envía o bien, se recibe , y se almacena en la memoria de mensajes (300), caracterizado porque para la detección de las posiciones de los mensajes en la memoria de mensajes (300) se explora previamente la memoria de mensajes (300) en una trama predeterminable respectivamente para una pluralidad de ventanas de tiempo (ZF), aún por continuar, porque un ciclo de búsqueda comprende en la trama una pluralidad de ventanas de tiempo (ZF), y porque como resultado del ciclo de búsqueda se almacenan, en una memoria intermedia (600) asociada a la memoria de mensajes (300), las posiciones de los mensajes a enviar o a recibir en la pluralidad de ventanas de tiempo (ZF) aún por continuar.

Description

Estado del arte 5
La presente invención hace referencia a un método para la transmisión de datos en mensajes que se transmiten cíclicamente en ventanas de tiempo predeterminables, a través de un enlace de comunicaciones de un sistema de comunicaciones. A través del enlace de comunicaciones se almacenan temporalmente mensajes a enviar y enviados, en primer lugar, en una memoria de mensajes de un chip de comunicaciones. El mensaje a enviar, o bien, a recibir por un participante, en 10 una ventana de tiempo actual, se toma desde la memoria de mensajes y se envía o bien, se recibe, y se almacena en la memoria de mensajes.
Por otra parte, la presente invención hace referencia a un chip de comunicaciones de acuerdo con el concepto general de la reivindicación 13, a un participante de un sistema de comunicaciones de acuerdo con el concepto general de la reivindicación 17, y a un sistema de 15 comunicaciones de acuerdo con el concepto general de la reivindicación 20 para la realización de dicho método.
La integración de participantes a la red, por ejemplo, en forma de dispositivos de control, sensores y actuadores, con la ayuda de un enlace de comunicaciones de un sistema de comunicaciones, se ha incrementado drásticamente, en los últimos años en la fabricación de vehículos 20 a motor o también en ingeniería, en particular en el campo de máquinas-herramientas, es decir, también en la automatización. Además, se pueden obtener efectos de sinergia mediante la distribución de funciones sobre una pluralidad de participantes. De esta manera, se habla de sistemas distribuidos. Las comunicaciones entre los diferentes participantes se producen cada vez más frecuentemente a través de un enlace de comunicaciones, conformado como un bus de datos, de un sistema de 25 comunicaciones, conformado como un sistema de bus. El tráfico de comunicaciones en el sistema de bus, los mecanismos de acceso y de recepción, sí como la gestión de errores se regulan mediante un protocolo. Con respecto a esto, un protocolo conocido es el protocolo CAN (Controller Area Network) o también el protocolo TTCAN (Time Triggered CAN), así como el protocolo FlexRay, en donde la especificación del protocolo FlexRay se basa, de momento, en v2.1. 30
El flexRay es un sistema de bus rápido, determinista y tolerante a errores, en particular para el empleo en un vehículo a motor. El protocolo FlexRay opera de acuerdo con el método del TDMA (Time Division Multiple Access), en donde a los participantes (o componentes) o bien, a los mensajes a transmitir se asocian ranuras o ventanas de tiempo, en las cuales dichos participantes o mensajes poseen un acceso exclusivo al enlace de comunicaciones. Comparablemente, también se reasocia en 35 el protocolo TTCAN. Las ranuras de tiempo se repiten en un ciclo predefinido, el llamado ciclo de comunicaciones, de manera que el momento en el que un mensaje se transmite a través del bus de datos, se pueda predecir exactamente y el acceso al bus se produzca de manera determinista.
Para aprovechar óptimamente el ancho de banda para la transmisión de mensajes en el sistema de bus, el FlexRay subdivide el ciclo de comunicaciones en una porción estática, la llamada 40 ranura estática, y una porción dinámica, la llamada ranura dinámica. Las ranuras de tiempo con una duración predeterminada fija, se encuentran en una porción estática al inicio de un ciclo de bus. En la parte dinámica, las ranuras de tiempo se asignan dinámicamente. De esta manera, se obtiene el acceso exclusivo al bus respectivamente para un tiempo reducido, los llamados minislot. Sólo cuando se produce, dentro de un minislot, un acceso al bus mediante uno de los participantes, la ranura de 45 tiempo correspondiente se prolonga al periodo de tiempo necesario para la transmisión de datos mediante el participante. De esta manera, el ancho de banda se utiliza entonces sólo en el caso que se requiera efectivamente también para la transmisión de datos. La ranura dinámica se puede aprovechar para la transmisión de datos controlada por eventos.
En un sistema de comunicaciones FlexRay, se comunica a través de dos líneas físicamente 50 separadas, también denominadas canales, con una tasa respectiva de transmisión de datos que actualmente se cifra en 10 MB por segundo como máximo. Ambos canales corresponden a la capa física, en particular de la arquitectura por capas OSI (Open System Architecture). Dichos canales sirven esencialmente para la transmisión redundante de mensajes, y de esta manera, tolerante a errores, sin embargo, se pueden transmitir también diferentes mensajes, por lo que entonces se puede 55 duplicar la tasa de transmisión de datos a 20 MB actuales. El FlexRay se puede hacer funcionar, naturalmente, también con tasas reducidas de transmisión de datos.
Para realizar funciones sincrónicas y para optimizar el ancho de banda mediante intervalos reducidos entre dos mensajes, los componentes distribuidos en la red de comunicaciones, es decir, los participantes en el sistema de comunicaciones, requieren de una base de tiempo en común, el llamado tiempo global. Los participantes disponen de relojes locales propios que se sincronizan con el tiempo global. Para la sincronización de los relojes, se transmite información de sincronización en la 5 porción estática del ciclo. La sincronización de los relojes se produce al finalizar cada uno de los ciclos de comunicaciones durante el llamado NIT (tiempo libre de red). Con la ayuda de un algoritmo especial correspondiente a la especificación FlexRay, las horas de los relojes locales de los componentes se corrigen de manera tal que todos los relojes locales funcionen sincronizados con un reloj global. Dicha sincronización se produce comparablemente también en una red TTCAN. 10
Un participante FlexRay, que también se denomina nodos de red FlexRay, comprende un procesador de participante, es decir, un procesador central, un controlador FlexRay o un controlador de comunicaciones, un enlace para la capa física, el excitador de bus (llamado Bus Driver BD), así como cuando se realiza un guardián de bus (BG, Bus Guardian). Además, el procesador central suministra y procesa los datos que se envían o se reciban a través del controlador de comunicaciones 15 Flex-Ray. Para las comunicaciones en una red Flex-Ray, los mensajes o los objetos de mensajes se pueden configurar con, por ejemplo, hasta 254 bits de datos. Para transmitir dichos mensajes u objetos de mensajes entre la capa física, es decir, el enlace de comunicaciones, y el procesador central, se emplea un chip de comunicaciones, en particular un controlador de comunicaciones.
El chip de comunicaciones dispone de una memoria de mensajes en la que se almacenan 20 temporalmente objetos de mensajes a enviar por un participante asociado al chip de comunicaciones, u objetos de mensajes a recibir por el participante, antes de que sean transmitidos al enlace de comunicaciones para el envío o al procesador central para el posterior procesamiento. La cantidad y magnitud de los campos de datos de la memoria de mensajes se configuran durante una fase de configuración o una fase de reconfiguración del sistema de comunicaciones. 25
En el estado del arte actual, la memoria de mensajes se explora desde el inicio de cada una de las ranuras de tiempo de un gestor de mensajes, para detectar aquellos campos de datos en los que se encuentren almacenados mensajes o aún se puedan almacenar mensajes, que se envían o se reciban a través del canal actual en el ciclo de comunicaciones actual y/o en la ranura de tiempo actual. De esta manera, en la exploración de la memoria de mensajes se detecta, por ejemplo, un 30 campo de datos provisto para un mensaje que se deba recibir en el ciclo de comunicaciones actual y en la ranura de tiempo actual, a través del canal actual considerado. Después de la recepción del mensaje, dicho mensaje se almacena entonces en el campo de datos detectado. De la misma manera, en la exploración de la memoria de mensajes se puede detectar, por ejemplo, un campo de datos en el que se almacena un mensaje que se deba enviar en el ciclo de comunicaciones actual y en la 35 ranura de tiempo actual, a través del canal actual considerado. Dicho mensaje se toma entonces del campo de datos detectado y se transmite nuevamente para ser enviado al enlace de comunicaciones.
Como estado del arte se pueden consultar, por ejemplo, los métodos de comunicaciones representados en las patentes WO 2004/098955A, US 5884040A y US 6311212B1.
Sin embargo, resulta una desventaja el hecho de que el ciclo de búsqueda, en particular en 40 memorias de mensajes de gran magnitud, requiera de un tiempo relativamente considerable y que, debido al ciclo de búsqueda, se puedan provocar retrasos en la recepción o en el envío de mensajes. Dado que en cada ranura de tiempo se explora la memoria de mensajes completa, se pueden ocasionar perjuicios en la capacidad de tiempo real del sistema de comunicaciones.
La presente invención tiene por objeto diseñar el ciclo de búsqueda de la memoria de 45 mensajes, de manera tal que la transmisión de mensajes sea soportada de manera óptima y, en particular, se pueda garantizar la capacidad de tiempo real del sistema de comunicaciones aún en memorias de mensajes de gran magnitud.
Con el fin de resolver dicho objeto, se aconseja, partiendo del método de transmisión de datos de la clase mencionada en la introducción, que para la detección de las posiciones de los 50 mensajes en la memoria de mensajes, dicha memoria se explore previamente en intervalos regulares, respectivamente para una pluralidad de ventanas de tiempo aún por continuar, y que, como resultado de un ciclo de búsqueda, se almacenen en una memoria intermedia asociada a la memoria de mensajes, las posiciones de los mensajes a enviar o a recibir en la pluralidad de ventanas de tiempo aún por continuar. 55
Ventajas de la presente invención
Conforme a la presente invención, se aconseja entonces no explorar completamente la memoria de mensajes en cada ranura de tiempo, sino que más bien efectuar un ciclo de búsqueda para una pluralidad de ranuras de tiempo futuras. Es decir, que con un único ciclo de búsqueda se detecten las posiciones de los mensajes en la memoria de mensajes para una pluralidad de ranuras de tiempo futuras. Las posiciones detectadas en el curso del ciclo de búsqueda, se almacenan en una 5 memoria intermedia y se pueden recuperar de dicha memoria después en el curso de la propia transmisión de datos aproximadamente sin retraso. En el curso de la propia transmisión de datos, no se requiere entonces de un ciclo de búsqueda completo de la memoria de mensajes completa. De esta manera, se puede mejorar decisivamente la capacidad de tiempo real del sistema de comunicaciones conforme a la presente invención. 10
De acuerdo con una mejora ventajosa de la presente invención, se aconseja que en el curso de la transmisión de datos, el mensaje a transmitir a través del sistema de comunicaciones en la ventana de tiempo actual, se lee desde la posición de la memoria de mensajes indicada en la memoria intermedia para dicha ventana de tiempo, y se transmite a través del enlace de comunicaciones o bien, el mensaje transmitido a través del enlace de comunicaciones en la ventana de tiempo actual se 15 almacena en la posición de la memoria de mensajes, indicada en la memoria intermedia para dicha ventana de tiempo. Entonces, cuando en el curso de la propia transmisión de datos, se envía un mensaje desde la memoria de mensajes, se accede simplemente a la ubicación correspondiente en la memoria intermedia, luego se accede a la posición de la memoria de mensajes almacenada en la memoria intermedia, se toma el mensaje allí almacenado y se transmite nuevamente para el envío al 20 enlace de comunicaciones. De la misma manera, cuando en el curso de la propia transmisión de datos se deba recibir un mensaje y almacenarlo en la memoria de mensajes, se accede simplemente a la ubicación correspondiente en la memoria intermedia, y el mensaje recibido a través del enlace de comunicaciones se almacena en la posición de la memoria de mensajes almacenada en la memoria intermedia. 25
De acuerdo con una forma de ejecución preferida de la presente invención, se aconseja que la transmisión de datos para la ventana de tiempo actual y la pluralidad de ventanas de tiempo sucesivas, para las cuales las posiciones de los mensajes en la memoria de mensajes ya se han almacenado en la memoria intermedia, se efectúe simultáneamente con el ciclo de búsqueda para la ventana de tiempo a continuación del último ventana de tiempo de la transmisión de datos y la 30 pluralidad de ventanas de tiempo sucesivas. Esto significa entonces que la propia transmisión de datos para las ranuras de tiempo futuras 1...n (n>1) y el ciclo de búsqueda para las ranuras de tiempo futuras (n+1)...2n se desarrolla paralelamente. Para dicha forma de ejecución se selecciona la memoria de estado de magnitud tal que dicha memoria comprenda 2n campos de datos, a saber, n campos de datos, en los que las posiciones de los mensajes se puedan almacenar en la memoria de 35 mensajes para la transmisión de datos, y otros n campos de datos en los que se puedan almacenar, en la memoria de mensajes, las posiciones de los mensajes detectados en el curso del ciclo de búsqueda actual. Preferentemente, las posiciones de los mensajes en la memoria de mensajes se han detectado en el ciclo de búsqueda previo para la propia transmisión de datos, y se han almacenado en la memoria intermedia. En ambos n campos de datos de la memoria intermedia, se accede 40 preferentemente de forma alternada, cada uno de los n campos de datos sirve, por una parte, para el almacenamiento de las posiciones en el curso del ciclo de búsqueda, y después para la recuperación de las posiciones almacenadas en el curso de la propia transmisión de datos, en donde ambos n campos de datos no se pueden utilizar simultáneamente en el curso de un ciclo de búsqueda o de una transmisión de datos, sino que siempre se alternan entre sí. Mediante dicha forma de ejecución, se 45 puede economizar adicionalmente el tiempo de procesamiento para el ciclo de búsqueda, de manera tal que prácticamente siempre predomine la capacidad de tiempo real del sistema de comunicaciones. El ciclo de búsqueda es coordinado y se efectuado por una unidad de cálculo propia, por ejemplo, mediante la llamada máquina de estado (máquina de estado finito).
De manera ventajosa, la cantidad de la pluralidad de ventanas de tiempo del ciclo de 50 búsqueda es igual a la cantidad de la pluralidad de diversas ventanas de tiempo para la propia transmisión de datos. Entonces, cuando de acuerdo con el método conforme a la presente invención se deban transmitir datos (recibir o enviar), se ejecutará un ciclo de búsqueda para la pluralidad de ventanas de tiempo futuras sucesivas entre sí, y después la propia transmisión de datos (envío o recepción de datos). En el caso que la propia transmisión de datos para la pluralidad de ranuras de 55 tiempo futuras y el ciclo de búsqueda para otra pluralidad de ranuras de tiempo que tendrán lugar en el futuro se efectúen paralelamente, resulta necesario que la cantidad de las ranuras de tiempo futuras, para la cual se efectúa la propia transmisión de datos, y para la cual se efectúa el ciclo de búsqueda, sea de igual magnitud, de manera tal que, entre ambas zonas de memoria de la memoria intermedia, que en cada caso comprenden una cantidad correspondiente a la cantidad de las ranuras 60 de tiempo futuras, se pueda conmutar en el campo de datos.
Por lo tanto, se aconseja que la memoria intermedia se subdivida, en donde en una primera parte de la memoria intermedia para la transmisión de datos, se encuentran almacenadas las posiciones de los mensajes para la ventana de tiempo actual y la pluralidad de ventanas de tiempo sucesivas, para las cuales las posiciones de los mensajes en la memoria de mensajes ya se han almacenado en la memoria intermedia, y en una segunda parte de la memoria intermedia para un ciclo 5 de búsqueda, se almacenan las posiciones de los mensajes para la ventana de tiempo a continuación de la última ventana de tiempo de la transmisión de datos y la pluralidad de ventanas de tiempo sucesivas.
De acuerdo con otra mejora ventajosa de la presente invención, se aconseja que los mensajes a almacenar en la memoria de mensajes, comprendan primeros datos con un primer 10 espacio de datos y segundos datos con un segundo espacio de datos, y que los primeros datos se almacenen en un segmento de cabecera de la memoria de mensajes en la respectiva zona de cabecera por cada mensaje, y los segundos datos se almacenen en un segmento de datos en la respectiva zona de datos por cada mensaje. La subdivisión de la memoria de mensajes en el segmento de cabecera y el segmento de datos, así como la cantidad y magnitud de las zonas de 15 datos en el segmento de datos, se efectúa preferentemente, en el curso de una configuración de la memoria de mensajes, de manera variable en correspondencia con las exigencias. De esta manera, se deducen diferentes ventajas: De esta manera, en la programación el usuario puede decidir si desea utilizar una cantidad mayor de mensajes con un campo de datos reducido o si desea utilizar una cantidad menor de mensajes con un campo de datos extenso. En la configuración de mensajes con 20 zonas de datos de diferente tamaño, se utiliza óptimamente la memoria existente. El usuario puede utilizar una zona de datos en común para los diferentes mensajes. En la implementación del controlador de comunicaciones, es decir, del chip de comunicaciones, en un circuito integrado, el tamaño de la memoria de mensajes se puede adaptar con exactitud a los requerimientos de la aplicación, mediante la adaptación del tamaño de memoria de la memoria utilizada, en particular de 25 las memorias RAM, sin modificar las demás funciones del controlador de comunicaciones o del chip de comunicaciones.
Una configuración de la memoria de mensajes se efectúa únicamente a través del segmento de cabecera. En las zonas de cabecera, se predeterminan el ciclo y la ranura de tiempo para los mensajes del canal, en los que el mensaje se deba transmitir (recibir o enviar). Además, en el curso de 30 la configuración, se puede predeterminar el tamaño de la porción de datos para cada mensaje en el segmento de datos de la memoria de mensajes, un indicador al inicio de la porción de datos, y la información de si se trata de un mensaje a enviar o un mensaje a recibir.
De acuerdo con otro acondicionamiento de la presente invención, en la zona de cabecera de la memoria de mensajes se encuentra almacenada una identificación por mensaje, que identifica el 35 respectivo mensaje, y mediante la cual el mensaje se puede asociar a un ciclo de comunicaciones determinado, y a una ventana de tiempo determinada dentro del ciclo. La parte de la zona de cabecera en la que se encuentra almacenada la identificación, se denomina también campo de identificación.
De manera ventajosa, para cada uno de los mensajes a enviar o a recibir en una de la pluralidad de ventanas de tiempo aún por continuar, y considerados durante un ciclo de búsqueda, se 40 proveen dos campos en la memoria intermedia, en donde en un primer campo se almacena un indicador en la posición correspondiente del mensaje almacenado en la memoria de mensajes, y en un segundo campo se almacena un estado del mensaje almacenado en la memoria de mensajes. El indicador muestra preferentemente, en una zona de cabecera en el segmento de cabecera, los primeros datos almacenados del mensaje almacenado en la memoria de mensajes. 45
Se almacena información en la memoria intermedia como estado del mensaje almacenado en la memoria de mensajes, ya sea que efectivamente se deba recibir o enviar (’empty’) un mensaje para la ventana de tiempo considerado y/o que se deba enviar (’tx_buf’) o recibir (’rx_buf’) el mensaje. En el caso que el mensaje no se deba enviar ni recibir, el estado se posiciona en ’empty’.
En el caso de la especificación FlexRay v2.1 actualmente válida y los componentes del 50 soporte físico y del soporte lógico puestos a disposición actualmente para la realización de un sistema de comunicaciones FlexRay, resulta particularmente ventajoso, si para la detección de las posiciones de los mensajes en la memoria de mensajes, dicha memoria se explora previamente en intervalos regulares respectivamente para cuatro ventanas de tiempo aún por continuar, y como resultado de un ciclo de búsqueda se almacenan en la memoria intermedia las posiciones de los mensajes a enviar o 55 a recibir en las cuatro ventanas de tiempo aún por continuar. El ciclo de búsqueda se puede efectuar con anterioridad naturalmente también sólo para dos, aunque también para más de cuatro ranuras de tiempo. La cantidad de ranuras de tiempo para los que se efectúa previamente el ciclo de búsqueda, es preferentemente un número de la cantidad 2x, en donde x es un número entero natural mayor a 1. De esta manera, resulta preferentemente para la cantidad de las ranuras de tiempo: 2, 4, 8, 16, 32, .... 60
De acuerdo con una forma de ejecución preferida de la presente invención, se aconseja que, en el curso de un ciclo de búsqueda, la memoria de mensajes se explore para la pluralidad de ventanas de tiempo aún por continuar, de acuerdo con uno o varios de los siguientes criterios:
- Determinación de si en la memoria de mensajes se encuentran almacenados mensajes para un canal de transmisión considerado, 5
- Determinación de si en la memoria de mensajes se encuentran almacenados mensajes para un ciclo de comunicaciones considerado,
- Determinación de si en la memoria de mensajes se encuentran almacenados mensajes para la pluralidad de ventanas de tiempo aún por continuar, y
- Determinación de si en el caso de los mensajes determinados se trata de mensajes a enviar o a 10 recibir.
En el caso que en el curso del ciclo de búsqueda en la memoria de mensajes para el canal actual considerado (canal A o canal B), para el ciclo de comunicaciones actual y para las ranuras de tiempo futuras consideradas, se encuentren mensajes a enviar, se almacena ’Tx_buf’ en la memoria intermedia en la ubicación correspondiente a la ranura de tiempo considerada. En el caso que en el 15 curso del ciclo de búsqueda en la memoria de mensajes para el canal actual considerado (canal A o canal B), para el ciclo de comunicaciones actual y para las ranuras de tiempo futuras consideradas, se encuentren campos de datos para mensajes a recibir, se almacena ’Rx_buf’ en la memoria intermedia en la ubicación correspondiente a la ranura de tiempo considerada. En el caso que en el curso del ciclo de búsqueda en la memoria de mensajes para el canal actual considerado (canal A o canal B), 20 para el ciclo de comunicaciones actual y para las ranuras de tiempo futuras consideradas, no se encuentre un mensaje a enviar ni un campo de datos para un mensaje a recibir, se almacena ’empty’ en la memoria intermedia en la ubicación correspondiente a la ranura de tiempo considerada, en el caso que no se haya almacenado allí, ya antes de iniciar el ciclo de búsqueda.
En el curso del ciclo de búsqueda, se consulta la siguiente información de los mensajes 25 almacenados en la memoria de mensajes:
- Canales (CH A, CH B): para establecer si el canal para el cual se provee el mensaje, corresponde al canal considerado,
- Código de ciclo (Cycle Code): para establecer si el ciclo de comunicaciones para el cual se provee el mensaje, corresponde al ciclo de comunicaciones considerado, 30
- Identificación de trama (Frame ID): para establecer si la ranura de tiempo para la cual se provee el mensaje, corresponde a la ranura de tiempo actual, y
- Modo de transmisión (TXM, Transmission Mode): para establecer si se provee el mensaje para enviar (TXM=1) o para recibir (TXM=0).
La información consultada está comprendida preferentemente en los llamados bits de estado 35 (CH A, CH B, Cycle Code, TXM) como parte de los primeros datos en las zonas de cabecera en el segmento de cabecera de la memoria de mensajes.
Como otra solución para el objeto de la presente invención, se aconseja, partiendo del chip de comunicaciones de la clase mencionada en la introducción, que el chip de comunicaciones para la detección de las posiciones de los mensajes en la memoria de mensajes presente medios para la 40 exploración de la memoria de mensajes, en intervalos regulares, respectivamente para la pluralidad de ventanas de tiempo aún por continuar, previamente de una memoria intermedia asociada a la memoria de mensajes, y presente medios para el almacenamiento, en la memoria intermedia, de las posiciones de los mensajes a enviar o a recibir en la pluralidad de ventanas de tiempo aún por continuar, como resultado de un ciclo de búsqueda. 45
De acuerdo con una mejora ventajosa de la presente invención, se aconseja que los medios para la exploración de la memoria de mensajes y los medios para el almacenamiento de las posiciones de los mensajes determinados en la memoria intermedia se conforman como una máquina de estado finito.
De acuerdo con una forma de ejecución preferida de la presente invención, se aconseja que 50 el chip de comunicaciones se conforme como un chip de comunicaciones FlexRay para la recepción, el envío y el almacenamiento temporal de mensajes transmitidos de acuerdo con una especificación FlexRay.
Los medios para la exploración de la memoria de mensajes y los medios para el almacenamiento de las posiciones de los mensajes determinados en la memoria intermedia se conforman, de manera ventajosa, para la ejecución de un método de acuerdo con una de las reivindicaciones 2 a 12.
Como otra solución para el objeto de la presente invención, se aconseja, partiendo del 5 participante del sistema de comunicaciones de la clase mencionada en la introducción, que el chip de comunicaciones para la detección de las posiciones de los mensajes en la memoria de mensajes presente medios para la exploración de la memoria de mensajes, en intervalos regulares, respectivamente para la pluralidad de ventanas de tiempo aún por continuar, previamente de una memoria intermedia asociada a la memoria de mensajes, y presente medios para el almacenamiento, 10 en la memoria intermedia, de las posiciones de los mensajes a enviar o a recibir en la pluralidad de ventanas de tiempo aún por continuar, como resultado de un ciclo de búsqueda.
De acuerdo con una mejora ventajosa de la presente invención, se aconseja que el participante comprenda un ordenador central que se encuentre integrado conjuntamente con el chip de comunicaciones en un componente semiconductor en común. El ordenador central se conforma 15 preferentemente como un microprocesador.
De acuerdo con una forma de ejecución preferida de la presente invención, se propone que el chip de comunicaciones se conforme de acuerdo con una de las reivindicaciones 14 a 16.
Finalmente, como otra solución para el objeto de la presente invención, se aconseja, partiendo del sistema de comunicaciones de la clase mencionada en la introducción, que el chip de 20 comunicaciones para la detección de las posiciones de los mensajes en la memoria de mensajes presente medios para la exploración de la memoria de mensajes, en intervalos regulares, respectivamente para la pluralidad de ventanas de tiempo aún por continuar, previamente de una memoria intermedia asociada a la memoria de mensajes, y presente medios para el almacenamiento, en la memoria intermedia, de las posiciones de los mensajes a enviar o a recibir en la pluralidad de 25 ventanas de tiempo aún por continuar, como resultado de un ciclo de búsqueda.
De acuerdo con una mejora ventajosa de la presente invención, se propone que el chip de comunicaciones se conforme de acuerdo con una de las reivindicaciones 14 a 16.
Dibujos
Otras ventajas y otros acondicionamientos ventajosos de la presente invención, se deducen 30 de las características de las reivindicaciones, así como de las figuras y de las descripciones.
Muestran:
Figura 1 una representación esquemática de un chip de comunicaciones y su conexión al enlace de comunicaciones y el participante,
Figura 2 una forma de ejecución especial del chip de comunicaciones de la figura 1, así como su 35 conexión en detalle,
Figura 3 la estructura de una memoria de mensajes del chip de comunicaciones, de acuerdo con la figura 1 ó 2 en detalle,
Figura 4 a 6 representan esquemáticamente la arquitectura y el proceso del acceso a los datos en el sentido desde el participante hacia la memoria de mensajes, 40
Figura 7 a 9 representan esquemáticamente la arquitectura y el proceso del acceso a los datos en el sentido desde la memoria de mensajes hacia el participante,
Figura 10 representa esquemáticamente un gestor de mensajes del chip de comunicaciones de acuerdo con la figura 1 ó 2, y las máquinas de estado comprendidas por éste,
Figura 11 nuevamente se representan esquemáticamente algunos componentes del chip de 45 comunicaciones, así como el participante y las rutas de datos correspondientes, controladas por el gestor de mensajes,
Figura 12 la distribución del acceso en relación con las rutas de datos de la figura 11,
Figura 13 una memoria intermedia de un chip de comunicaciones conforme a la presente invención,
Figura 14 un organigrama del método de búsqueda para la ejecución en el marco del método de transmisión de datos conforme a la presente invención, y
Figura 15 un organigrama del método de transmisión de datos, conforme a la presente invención, de acuerdo con una forma de ejecución preferida.
Ejemplos de ejecución 5
La figura 1 muestra esquemáticamente un chip de comunicaciones FlexRay 100 para la conexión de un participante o un ordenador principal 102 a un enlace de comunicaciones FlexRay 101, es decir, a la capa física del sistema de comunicaciones FlexRay. El chip de comunicaciones 100 se indica también como módulo IP FlexRay o como controlador E-Ray. Con una visión funcional, el chip de comunicaciones comprende 100 un controlador de comunicaciones FlexRay. El chip de 10 comunicaciones FlexRay 100 se encuentra conectado a través de un enlace 107 con el participante o con el procesador del participante 102 (también procesador central) y a través de un enlace 106 con el enlace de comunicaciones 101. Para la conexión sin inconvenientes, por una parte, en relación con los tiempos de transmisión y, por otra parte, en relación con la integridad de datos, se diferencian esquemáticamente, en esencia, tres sistemas en el chip de comunicaciones FlexRay 100. 15
De esta manera, un primer sistema 105 sirve para el almacenamiento, en particular el almacenamiento temporal, al menos, de una parte de los mensajes a transmitir, es decir, los mensajes a enviar o a recibir por el participante 102. Entre el participante 102 y dicho primer sistema 105, se encuentra conectado un segundo sistema 104, a través de los enlaces 107 y 108. Del mismo modo, se conecta un tercer sistema 103 entre el enlace de comunicaciones 101 y el primer sistema 105, a 20 través de los enlaces 106 y 109, por lo que se puede obtener una entrega y recepción de datos muy flexibles, como partes de mensajes, particularmente mensajes FlexRay, hacia o desde el primer sistema 105 garantizando la integridad de datos con una velocidad óptima.
En la figura 2 se representa, de forma más detallada, el chip de comunicaciones 100 en una forma de ejecución preferida. Del mismo modo, se representan de forma más detallada los respectivos 25 enlaces 106 a 109. El segundo sistema 104 comprende, además, una memoria intermedia de entrada o memoria intermedia de llegada 201 (Input Buffer IBF), una memoria intermedia de salida o memoria intermedia de emisión 202 (Output Buffer OBF), así como un chip de interfaz que se compone de dos partes 203 y 204, en donde una parte del chip 203 (Generic CPU Interface, GIF) es independiente del participante y la segunda parte del chip 204 es específica del participante. La parte del chip 204 30 específica del participante (Customer CPU Interface CIF) conecta un CPU central 102 específico del participante, es decir, un participante específico de cliente, con el chip de comunicaciones FlexRay 100 restante. Además, se provee una línea de datos 216, una línea de dirección 217, así como una entrada de control 218. Del mismo modo, se provee con 219 una salida de interrupción o de desconexión. 35
La parte del chip 204 específica del participante se encuentra conectada con una parte del chip 203 independiente del participante, es decir, que el chip de comunicaciones FlexRay 100 dispone de una interfaz de CPU genérica, es decir, común, a la que se pueden conectar una gran cantidad de diferentes CPU centrales específicos de clientes, a través de las partes del chip correspondientes específicas del participante, a saber, CIF (Customer CPU Interfaces). De esta manera, sólo se debe 40 modificar, dependiendo del participante, la parte del chip 204 específica del participante, mientras que el chip de comunicaciones restante 100 se puede conformar igualmente siempre como independiente del participante, que significa costes considerablemente más reducidos. La parte del chip 204 específica del participante adapta, por ejemplo, el ancho de bit del chip de comunicaciones FlexRay 100 (por ejemplo, 16 bits) al ancho de bits del CPU central 102 conectado (por ejemplo, 8, 16, ó 32 45 bits).
La memoria intermedia de llegada o memoria intermedia de entrada 201 y la memoria intermedia de salida o memoria intermedia de emisión 202, pueden estar conformadas en un chip de memoria en común o en chips de memoria por separado. Además, la memoria intermedia de entrada 201 sirve para el almacenamiento temporal de mensajes para la transmisión desde un CPU central 50 102 hasta una memoria de mensajes 300. El chip intermedio de entrada 201 se conforma preferentemente de manera tal que dicho chip pueda almacenar dos mensajes completos, compuestos respectivamente de un segmento de cabecera o HS (Headersegment), particularmente con datos de configuración, y un segmento de datos DS o el segmento de gestión de datos. Además, la memoria de entrada intermedia 201 se conforma de dos partes (submemoria intermedia y memoria 55 cache), por lo que se puede acelerar la transmisión entre el CPU del participante 102 y la memoria de mensajes 300, mediante un registro alternado de ambas partes de la memoria intermedia de entrada 201 o bien, mediante el cambio de acceso.
Del mismo modo, la memoria intermedia de emisión o la memoria intermedia de salida (Output-Buffer OBF) 202 sirve para el almacenamiento temporal de mensajes para la transmisión desde la memoria de mensajes 300 hacia el CPU del participante 102. Además, también el chip intermedio de salida 202 se conforma de manera tal que se puedan almacenar dos mensajes completos, compuestos de un segmento de cabecera HS, en particular con datos de configuración, y 5 un segmento de datos DS, es decir, el segmento de gestión de datos. También aquí, la memoria intermedia de salida 202 se divide en dos partes, una submemoria intermedia y una memoria cache, por lo que también aquí se puede acelerar la transmisión entre la memoria de mensajes 300 y el CPU del participante o central 102, mediante una lectura alternada de ambas partes de la memoria intermedia de salida 202 o mediante un cambio de acceso. El segundo sistema 104, compuesto de los 10 bloques 201 a 204, se encuentra conectado con el primer sistema 105, como está representado.
El sistema 105 se conforma de un gestor de mensajes 200 (Message Handler MHD) y la memoria de mensajes 300 (Message RAM). El gestor de mensajes 200 controla o maneja la transferencia de datos entre la memoria intermedia de entrada 201, así como la memoria intermedia de salida 202 y la memoria de mensajes 300. Igualmente controla o maneja la transmisión de datos en 15 la otra dirección, a través del tercer sistema 103. La memoria de mensajes 300 se realiza preferentemente como una memoria RAM de puerto simple. Dicha memoria de acceso aleatorio (RAM) almacena los mensajes o bien, los objetos de los mensajes, es decir, los propios datos, conjuntamente con datos de configuración y de estado. La estructura exacta de la memoria de mensajes 300 se representa detalladamente en la figura 3. Cada objeto de mensaje se conforma de 20 un segmento de cabecera HS y un segmento de datos DS. En la zona de cabecera HS se almacenan el campo de identificación, así como otra información de configuración y de estado KD, conjuntamente con un indicador DP en el inicio de la zona de datos DB, en el segmento de datos DS de la memoria de mensajes 300.
El tercer sistema 103 se conforma de los bloques 205 a 208. En correspondencia con ambos 25 canales A (CH A) y B (CH B) de la capa física (FlexRay Physical Layer), dicho sistema 103 se divide en dos rutas de datos con dos direcciones de datos. Esto se muestra mediante los enlaces 213 y 214, en donde ambas direcciones de los datos se representan para el canal A, RxA para la recepción y TxA para el envío, así como para el canal B, RxB y TxB. Con el enlace 215, se indica una entrada de control bidireccional óptima. La conexión del tercer sistema 103 se produce a través de una primera 30 memoria intermedia 205 para el canal B y a través de una segunda memoria intermedia 206 para el canal A. Ambas memorias intermedias (Transient Buffer RAMs: RAM A y RAM B) sirven como memorias temporales para la transmisión de datos desde o hacia el primer sistema 105. En correspondencia con ambos canales A, B, ambas memorias intermedias 205 y 206 se conectan respectivamente con un chip de interfaz 207 y 208, que comprenden los controladores de protocolo 35 FlexRay o controladores de protocolo de bus, compuestos por un registro de desplazamiento de recepción/envío y por la máquina de estado finito del protocolo FlexRay. Por lo tanto, ambas memorias intermedias 205 y 206 sirven como memorias temporales para la transmisión de datos entre el registro de desplazamiento de los chips de interfaz o el controlador de protocolo FlexRay 207 y 208, y la memoria de mensajes 300. También aquí, se almacenan mediante cada memoria intermedia 205 y 40 206, de manera ventajosa, los campos de datos de dos mensajes FlexRay, es decir, el segmento de gestión de datos o el segmento de datos DS.
Además, la unidad de tiempo global (Global Time Unit GTU) se representa en el chip de comunicaciones 100 con 209, que resulta competente para la representación del tiempo de referencia en el FlexRay, es decir, el microciclo de reloj µT y el macrociclo reloj MT. Del mismo modo, la unidad 45 de tiempo global 209 se regula mediante la sincronización de relojes del contador de ciclos (Cycle Counter), con tolerancia de errores, y el control de las secuencias de tiempo en la ranura estática y dinámica del FlexRay. Los participantes 102 del sistema de comunicaciones disponen de relojes locales propios que se sincronizan con el tiempo global. Para la sincronización de los relojes, se transmite información de sincronización en la porción estática del ciclo de comunicaciones. La 50 sincronización de los relojes se produce al finalizar cada uno de los ciclos de comunicaciones durante el llamado NIT (tiempo libre de red). Con la ayuda de un algoritmo especial correspondiente a la especificación FlexRay actual, las horas de los relojes locales de los componentes 102 se corrigen de manera tal que todos los relojes locales funcionen sincronizados con un reloj global.
Con el bloque 210, se representa el control de sistema universal (System Universal Control 55 SUC), mediante el cual se controlan y manejan los modos de operación del controlador de comunicaciones FlexRay o bien, del chip de comunicaciones 100. A éste pertenecen la señal de activación (Wakeup), la inicialización (Startup), la reintegración o bien, la 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 errores (Network and Error Management NEM), como se describe en la especificación 60 FlexRay v2.1. Finalmente, el bloque 212 muestra el control de interrupciones (Interrupt Control INT), que administra los señalizadores de interrupción de errores y de estado (Status and Error Interrupt Flags), y controla o maneja las salidas de interrupción 219 para el CPU del participante 102. El bloque 212 contiene, además, un temporizador o bien, un dispositivo de temporización para provocar las interrupciones de tiempo o las interrupciones del temporizador.
Para las comunicaciones en una red FlexRay o el sistema de comunicaciones FlexRay, los 5 mensajes o los objetos de mensajes se pueden configurar en la memoria de mensajes 300 con hasta 254 bits de datos. La memoria de mensajes 300 es, en particular, una memoria de mensajes RAM (Message RAM), que puede almacenar, por ejemplo, hasta un máximo de 64 objetos de mensajes. Todas las funciones que conciernen al tratamiento o a la gestión de los propios mensajes, se implementan en el gestor de mensajes o Message Handler 200. Dichas funciones son, por ejemplo, el 10 filtro de aceptación, la transferencia de los mensajes entre ambos bloques del controlador de protocolo FlexRay 207 y 208, y la memoria de mensajes 300, es decir, la memoria de mensajes RAM, así como el control de la secuencia de envío y la preparación de datos de configuración o datos de estado.
Un CPU externo, es decir, un procesador externo del procesador del participante o central 102, puede acceder a través de la interfaz de participante, con la parte específica del participante 204, 15 directamente al registro del chip de comunicaciones FlexRay. Además, se utiliza una pluralidad de registros. Dichos registros se emplean para configurar y controlar el controlador de protocolo FlexRay, es decir, los chips de interfaz 207 y 208, el gestor de mensajes (Message Handler MHD) 200, la unidad de tiempo global (Global Time Unit GTU) 209, el controlador de sistema universal (System Universal Controller SUC) 210, la unidad de gestión de red y de errores (Network- and Error-20 Management Unit NEM) 211, el controlador de interrupción (Interrupt Controller INT) 212, así como el acceso a la memoria de mensajes RAM, es decir la memoria de mensajes 300, y del mismo modo, para indicar el estado correspondiente. Se tratarán aún más detalladamente, al menos, partes de dicho registro en las figuras 4 a 6 y 7 a 9. Un chip de comunicaciones FlexRay 100 descrito de esta clase, conforme a la presente invención, permite la realización simple de la especificación FlexRay 25 v2.1, por lo que se puede generar simplemente un circuito integrado de aplicación específica (ASIC) o un microcontrolador con la funcionalidad FlexRay correspondiente.
En la figura 3 se describe detalladamente la división de la memoria de mensajes 300. Para la funcionalidad necesaria de acuerdo con la especificación de protocolo FlexRay, de un controlador de comunicaciones FlexRay, se requiere una memoria de mensajes 300 para la preparación de mensajes 30 a enviar (Transmit Buffer), así como para el almacenamiento de mensajes recibidos sin errores (Receive Buffer). El protocolo FlexRay permite mensajes con una zona de datos, es decir, una zona de gestión de datos de 0 a 254 bits. Como se representa en la figura 2, la memoria de mensajes 300 es parte del chip de comunicaciones FlexRay 100. El método descrito a continuación, así como la memoria de mensajes 300 correspondiente, describen el almacenamiento de mensajes a enviar, así 35 como mensajes a recibir, particularmente utilizando una memoria de acceso aleatorio (RAM), en donde, mediante el mecanismo conforme a la presente invención, se puede almacenar una cantidad variable de mensajes en la memoria de mensajes 300 de un tamaño predeterminado. Además, la cantidad de los mensajes que se puedan almacenar depende del tamaño de las zonas de datos de cada mensaje, por lo que, por una parte, el tamaño de la memoria requerida 300 se puede minimizar 40 sin limitar el tamaño de las zonas de datos de los mensajes y, por otra parte, se obtiene un aprovechamiento óptimo de la memoria 300. A continuación, se describe más detalladamente dicha división variable de una memoria de mensajes 300, particularmente basada en RAM, para un controlador de comunicaciones FlexRay.
Para la implementación se indica, a modo de ejemplo, una memoria de mensajes 300 con un 45 ancho de palabra de datos predeterminado de n bits, por ejemplo, 8, 16, 32 etc., así como una tamaño de memoria predeterminada de m palabras (m, n como números naturales). Además, la memoria de mensajes 300 se divide en dos ranuras, un segmento de cabecera HS (Header Segment) y un segmento de datos DS (Payload Section, Payload Segment). Por mensaje, se aplica una zona de cabecera HB y una zona de datos DB. Para los mensajes 0, 1 a k (k como número natural), se aplican, 50 por lo tanto, zonas de cabecera o Header HB0 HB1 a HBk y zonas de datos DB0, DB1 a DBk. Entonces, en un mensaje se diferencia entre primeros y segundo datos, en donde los primeros datos corresponden a datos de configuración y/o datos de estado relativos al mensaje FlexRay, y se almacenan respectivamente en una zona de cabecera HB (HB0, HB1, ..., HBk). Los segundos datos, que corresponden a los propios datos que se deben enviar, (los llamados datos útiles) se almacenan 55 respectivamente en zonas de datos DB (DB0 DB 1, ... , DBk).Por lo tanto, para los primeros datos se forma, por mensaje, un primer espacio de datos (medido en bits, bitios o palabras de almacenamiento) y para los segundos datos de un mensaje, un segundo espacio de datos (también medido en bit, bitio o palabras de almacenamiento), en donde el segundo espacio de datos puede ser diferente en cada mensaje. La división entre el segmento de cabecera HS y el segmento de datos DS en la memoria de 60 mensajes 300 es variable, es decir, que no existen límites predeterminados entre ambas zonas HS, DS. La división entre el segmento de cabecera HS y el segmento de datos DS depende, conforme a la presente invención, de la cantidad k de mensajes, así como del segundo espacio de datos, es decir, el espacio de los propios datos útiles, de un mensaje o bien, de todos los mensajes k en conjunto.
Conforme a la presente invención, se asocia directamente a los respectivos datos de configuración KD0 KD1 a KDk del respectivo mensaje, un elemento indicador o puntero de datos (Data 5 pointer) DP0, DP1 a DPk. En el acondicionamiento especial, a cada zona de cabecera HB0, HB1 a HBk se asocia una cantidad fija de palabras de almacenamiento, en este caso dos, de manera tal que siempre se encuentren almacenados un dato de configuración KD (KD0, KD1, ..., KDk) y un elemento indicador DP (DP0, DP1, ..., DPk) conjuntamente en una zona de cabecera HB (HB0, HB1, ..., HBk). A dicho segmento de cabecera HS con las zonas de cabecera HB, cuyo tamaño o primer espacio de 10 datos depende de la cantidad k de mensajes a almacenar, se une el segmento de datos DS para el almacenamiento de los propios datos de mensajes D0, D1 a Dk. Dicho segmento de datos (o la sección de datos) DS depende en su espacio de datos del respectivo espacio de datos de los datos de mensajes almacenados (datos útiles), en este caso, por ejemplo, en DB0 seis palabras, en DB1 una palabra y en DBk dos palabras. Por lo tanto, los respectivos elementos indicadores DP0, DP1 a DPk 15 indican siempre, al comienzo, la dirección inicial de la respectiva zona de datos DB0, DB1 a DBk, en las que se encuentran almacenados los datos D0, D1 a Dk de los respectivos mensajes 0, 1, a k. De esta manera, la división de la memoria de mensajes 300 entre el segmento de cabecera HS y el segmento de datos DS resulta variable, y depende de la cantidad de mensajes, así como del espacio de datos de un mensaje y, de esta manera, del segundo espacio de datos completo. En el caso que se 20 configuren menos mensajes, el segmento de cabecera HS será menor, y la zona que quede libre en la memoria de mensajes 300 se podrá utilizar como complemento para el segmento de datos DS para el almacenamiento de datos. Mediante dicha variabilidad, se puede garantizar un aprovechamiento óptimo de la memoria, con lo cual también se puede utilizar la memoria 300 más reducida. El segmento de datos FDS libre, en particular su tamaño, también dependiendo de la combinación de la 25 cantidad k de los mensajes almacenados y el segundo espacio de datos respectivo de mensajes es, de esta manera, mínimo y puede ascender incluso a 0.
De esta manera, ante una división preestablecida de la memoria de mensajes 300, se deducen las siguientes ventajas: En la programación, el usuario puede decidir si desea utilizar una cantidad mayor de mensajes con un campo de datos reducido o si desea utilizar una cantidad menor 30 de mensajes con un campo de datos extenso. En la configuración de mensajes con zonas de datos DB de diferente tamaño, se utiliza óptimamente el espacio de la memoria existente. El usuario puede utilizar una zona de almacenamiento de datos en común para diferentes mensajes.
Además del empleo de elementos indicadores (DP0, DP1, ..., DPk), también se pueden almacenar los primeros y segundos datos, es decir, los datos de configuración KD (KD0 KD1,..., KDk) 35 y los propios datos D (D= D0, ..., Dk) en un orden predeterminado, de manera tal que el orden de las zonas de cabecera HB0 a HBk en el segmento de cabecera HS y el orden de las zonas de datos DB0 a DBk en el segmento de datos DS sean idénticos. De esta manera, se podría renunciar eventualmente incluso a un elemento indicador. Sin embargo, en este caso se debe poder acceder a la información a lo largo de cada zona de datos DB0 a DBk, o las zonas de datos DB0 a DBk son 40 todas del mismo tamaño.
En un acondicionamiento especial, a la memoria de mensajes 300 se asocia un generador de detección de errores, particularmente un elemento generador de paridad de bits, y un comprobador de detección de errores, en particular un elemento comprobador de paridad de bits, con el fin de garantizar que los datos almacenados en el segmento de cabecera HS y en el segmento de datos DS 45 sean correctos, en tanto que por palabra de almacenamiento o por zona (zona de cabecera HB y/o zona de datos DB) se pueda almacenar una suma de comprobación (suma de control), particularmente como paridad de bits. Resultan concebibles otras identificaciones de control, por ejemplo, un CRC (Cyclic redundancy check) o también identificaciones de mayor capacidad como ECC (Error Code Correction). 50
En la implementación del controlador de comunicaciones FlexRay en un circuito integrado, el tamaño de la memoria de mensajes 300 se puede adaptar a los requerimientos de la aplicación mediante la adaptación del tamaño de la memoria utilizada, sin modificar las demás funciones del controlador de comunicaciones.
A continuación, de acuerdo con las figuras 4 a 6, así como 7 a 9, se describe detalladamente 55 el acceso del CPU central, es decir, el registro y la lectura de los datos de configuración o bien, los datos de estado y de los propios datos útiles mediante el sistema de memoria intermedia 201 y 202. Además, es objeto producir un desacoplamiento relativo a la transmisión de datos de manera que se pueda garantizar la integridad de datos y, al mismo tiempo, una velocidad de transmisión elevada. El control de dichos procesos se produce mediante el gestor de mensajes 200, que después se describe en detalle 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 en la memoria de mensajes 300 mediante el CPU central o el CPU participante 102 a través de la memoria intermedia de entrada 201. Además, la figura 4 muestra nuevamente el chip de comunicaciones 100, 5 en donde, debido a la clara disposición, sólo se muestran las partes aquí relevantes del chip de comunicaciones 100. Por una parte, el gestor de mensajes 200 responsable del control de secuencias, así como dos registros de control 403 y 404 que se pueden interrumpir en el exterior del gestor de mensajes 200 en el chip de comunicaciones 100, como está representado, aunque también pueden estar comprendidos por el propio gestor de mensajes 200. El símbolo de referencia 403 representa el 10 registro requerido de entrada (Input Buffer Command Request Register) y 404, el registro de máscara de entrada (Input Buffer Command Mask Register). Los accesos de escritura del CPU central 102 a la memoria de mensajes 300 (Message RAM) se producen entonces a través de la memoria intermedia de entrada interconectada 201 (Input Buffer). Dicha memoria intermedia de entrada 201 está diseñada dividida o bien, doble, a saber, como una submemoria intermedia 400 y una memoria caché 401 15 correspondiente a la submemoria intermedia 400. De esta manera, como se describe a continuación, se puede efectuar un acceso continuo del CPU central 102 a los mensajes o a los objetos de mensajes, de los respectivos datos de la memoria de mensajes 300 y, de esta manera, se garantizan la integridad de datos y una transmisión acelerada. El control de los accesos se efectúa a través del registro requerido de entrada 403 y a través del registro de máscara de entrada 404. En el registro 20 403, se indican con los números de 0 a 31 las respectivas posiciones de bit en el registro 403, en este caso, a modo de ejemplo, para un ancho de 32 bits. De la misma manera, esto resulta válido para el registro 404 y para las posiciones de bit 0 a 31 en el registro 404.
Conforme a la presente invención, las posiciones de bit 0 a 5, 15, 16 a 21 y 31 del registro 403, relativo al control secuencial, presentan una función particular. De esta manera, en las posiciones 25 de bit 0 a 5 del registro 403, se puede registrar una identificación IBRH (Input Buffer Request Host) como identificación de mensaje. De la misma manera, en las posiciones de bit 16 a 21 del registro 403, se puede registrar una identificación IBRS (Input Buffer Request Shadow). De la misma manera, se registran como identificaciones de acceso IBSYH en las posiciones de registro 15 del registro 403, e IBSYS en las posiciones de registro 31 del registro 403. Resultan especialmente buenas también las 30 posiciones 0 a 2 del registro 404, en donde en 0 y 1 con LHSH (Load Header Section Host) y LDSH (Load Data Section Host) se registran otras identificaciones como identificaciones de datos. Dichas identificaciones de datos se conforman aquí de manera más simple, es decir, respectivamente como un bit. En la posición de bit "2" del registro 404 se encuentra registrada una identificación de inicio con STXRH (Set Transmission Request Host). 35
A continuación, se describe la secuencia del acceso de escritura en la memoria de mensajes 300 a través de la memoria intermedia de entrada 201.
El CPU central 102 escribe los datos del mensajes por transferir a la memoria intermedia de entrada 201. Además, el CPU central 102 sólo puede escribir datos de configuración y de cabecera KD de un mensaje para el segmento de cabecera HS de la memoria de mensajes 300, o sólo los 40 propios datos útiles D a transmitir de un mensaje para el segmento de datos DS de la memoria de mensajes 300, o ambos datos KD, D. La parte de un mensaje, es decir, los datos de configuración KD y/o los propios datos D que se deban transmitir, se establece mediante las identificaciones de datos LHSH y LDSH en el registro de máscara de entrada 404. Además, se establece mediante LHSH (Load Header Section Host) si se deben transmitir los datos de cabecera, es decir, los datos de configuración 45 KD, y mediante LHSH (Load Data Section Host), si se deben transmitir los datos D.
Debido a que la memoria intermedia de entrada 201 se conforma de manera doble con una parte de la memoria intermedia 400 y una memoria caché 401 correspondiente a dicha memoria, y debido a que se debe producir un acceso recíproco, se proveen dos zonas más de identificación de datos como contraste de LHSH y LDSH, que se relacionan con la memoria caché 401. Dichas 50 identificaciones de datos en las posiciones de bit 16 y 17 del registro 404, se indican con LHSS (Load Header Section Shadow) y LDSS (Load Data Section Shadow). De esta manera, mediante dichas identificaciones, se controla el proceso de transmisión relativo a la memoria caché 401.
Si el bit de arranque o bien, la identificación de inicio STXRH (Set Transmission Request Host) se encuentra situada en la posición de bit "2" del registro de máscara de entrada 404, de esta 55 manera, después de la transferencia efectuada de los datos de configuración KD a transmitir y/o los propios datos D a la memoria de mensajes 300, se establece automáticamente el requisito de envío (Transmission Request) para el objeto de mensaje correspondiente. Es decir, que mediante dicha identificación de inicio STXRH, se controla, en particular se inicia, el envío automático de un objeto de mensaje a enviar. 60
El contraste correspondiente para la memoria caché 401 es la identificación de inicio STXRS (Set Transmission Request Shadow), que está comprendida, por ejemplo, en la posición de bit "18" del registro de máscara de entrada 404, y también aquí se conforma, 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 en relación con la memoria caché 401. 5
Cuando el CPU central 102 escribe la identificación de mensaje, en particular la posición o bien, el número del objeto de mensajes en la memoria de mensajes 300, a la que se deben transferir los datos de la memoria intermedia de entrada 201, en las posiciones de bit 0 a 5 del registro requerido de entrada 403, es decir, después de IBRH, se conmutan la submemoria intermedia 400 de la memoria intermedia de entrada 201 y la memoria caché 401 correspondiente, o bien, se conmuta el 10 acceso correspondiente del CPU central 102 y la memoria de mensajes 300 en ambas submemorias 400 y 401, como se indica mediante la flecha semicircular entre ambas memorias 400, 401. Además, se inicia también, por ejemplo, la transferencia de datos, es decir, la transmisión de datos hacia la memoria de mensajes 300. La transmisión de datos hacia la memoria de mensajes 300 se efectúa desde la memoria caché 401. Simultáneamente se conmutan las zonas de registro IBRH e IBRS. De 15 la misma manera, se reemplazan LHSH y LDSH con LHSS y LDSS. Igualmente se reemplaza STXRH con STXRS.
De esta manera, IBRS muestra la identificación del mensaje, es decir, el número del objeto de mensaje, para una transmisión, es decir, que una transferencia desde la memoria caché 401 está en marcha o bien, el objeto de mensaje, es decir, la zona en la memoria de mensaje que ha 20 comprendido como últimos datos (datos de configuración KD y/o datos útiles D) desde la memoria caché 401. Mediante la identificación (aquí nuevamente de 1 bit, a modo de ejemplo) IBSYS (Input Buffer Busy Shadow), en la posición de bit "31" del registro requerido de entrada 403, se indica si en ese momento se efectúa una transmisión con participación de la memoria caché 401. De esta manera, en el caso de IBSYS=1 se transmite directamente desde la memoria caché 401, y no en el caso de 25 IBSYS. Dicho bit IBSYS se establece mediante la escritura de IBRH, es decir, las posiciones de bits "0" a "5", en el registro 403, para indicar que se encuentra en marcha una transferencia entre la memoria caché 401 y la memoria de mensajes 300. Después de finalizar dicha transmisión de datos hacia la memoria de mensajes 300, se reinicia IBSYS.
Mientras que la transferencia de datos desde la memoria caché 401 se desarrolla 30 directamente, el CPU central 102 puede escribir el siguiente mensaje por transferir en la memoria intermedia de entrada 201 o bien, en la submemoria intermedia 400. Con la ayuda de otra identificación de acceso IBSYH (Input Buffer Busy Host), por ejemplo, en la posición de bit "15" del registro 403, la identificación se puede mejorar aún más. Si el CPU central 102 escribe directamente IBRH, es decir, las posiciones de bits "0" a "5" del registro 403, mientras que se desarrolla una 35 transmisión entre la memoria caché 401 y la memoria de mensajes 300, es decir, que es IBSYS= 1, de esta manera, se establece IBSYH en el registro requerido de entrada 403. En cuanto la transferencia en curso (transmisión) haya concluido, se inicia la transferencia solicitada (solicitud mediante STXRH, ver arriba), y se reinicia el bit IBSYH. El bit IBSYS permanece establecido durante todo el tiempo, para indicar que se transfieren datos hacia la memoria de mensajes 300. Además, todos los bits utilizados 40 de todos los ejemplos de ejecución se pueden conformar también como identificaciones con más de un bit. La solución de 1 bit resulta ventajosa debido a motivos económicos de almacenamiento y de procesamiento. La solución de más bits resulta recomendable por razones de seguridad y fiabilidad.
El mecanismo descrito de esta manera, permite a la CPU central 102 transferir con continuidad datos a los objetos de mensaje que se encuentran en la memoria de mensajes 300, 45 compuestos por la zona de cabecera HB y la zona de datos DB, suponiendo que la velocidad de acceso del CPU central 102 en la memoria intermedia de entrada 201 sea menor o igual a la tasa de transmisión de datos interna del chip de comunicaciones 100 (es decir, del módulo IP FlexRay).
En las figuras 7, 8 y 9 se explican en detalle los accesos de lectura en la memoria de mensajes 300 mediante el CPU central o el CPU participante 102, a través de la memoria intermedia 50 de salida o la memoria intermedia de emisión 202. Además, la figura 7 muestra nuevamente el chip de comunicaciones 100, en donde, debido a la clara disposición, también aquí se muestran sólo las partes relevantes del chip de comunicaciones 100. Por una parte, el gestor de mensajes 200 responsable del control de las secuencias, así como dos registros de control 703 y 704 que se pueden interrumpir en el exterior del gestor de mensajes 300 en el chip de comunicaciones 100, como está 55 representado, aunque también pueden estar comprendidos por el propio gestor de mensajes 200. El símbolo de referencia 703 representa el registro requerido de salida (Output Buffer Command Request Register) y el símbolo de referencia 704, el registro de máscara de salida (Output Buffer Command Mask Register). Los accesos de lectura del CPU central 102 a la memoria de mensajes 300 se producen entonces a través de la memoria intermedia de salida interconectada 202 (Output Buffer). 60 Dicha memoria intermedia de salida 202 está diseñada dividida o bien, doble, a saber, como una submemoria intermedia 701 y una memoria caché 700 correspondiente a la submemoria intermedia 701. De esta manera, como se describe a continuación, se puede efectuar un acceso continuo del CPU central 102 a los mensajes o a los objetos de mensajes almacenados, a los respectivos datos de la memoria de mensajes 300 y, de esta manera, se garantizan la integridad de datos y una transmisión 5 acelerada en dirección opuesta desde la memoria de mensajes 300 hacia el CPU 102. El control de los accesos se efectúa a través del registro requerido de salida 703 y a través del registro de máscara de entrada 704. También en el registro 703, se representan con los números de 0 a 31 las respectivas ubicaciones de bit en el registro 703, en este caso, a modo de ejemplo, para un ancho de 32 bits. De la misma manera, esto resulta válido para el registro 704 y para las ubicaciones de bit 0 a 31 en el 10 registro 704.
Las ubicaciones de bit "0" a "5", "8" y "9", "15" y "16" a "21" del registro 703, por ejemplo, en relación con el control secuencial del acceso de lectura, presentan una función particular. De esta manera, en las ubicaciones de bit "0" a "5" del registro 703, se puede registrar una identificación OBRS (Output Buffer Request Shadow) como identificación de mensaje. De la misma manera, en las 15 ubicaciones de bit "16" a "21" del registro 703, se puede registrar una identificación OBRH (Output Buffer Request Host). Como identificación de acceso, se puede registrar en la posición de bit "15" del registro 703 una identificación OBSYS (Output Buffer Busy Shadow). Resultan especialmente buenas también las posiciones "0" y "1" del registro de máscara de salida 704, en donde en las posiciones "0" y "1" con RDSS (Read Data Section Shadow) y con RHSS (Read Header Section Shadow) se 20 registran otras identificaciones como identificaciones de datos. Otras identificaciones de datos se proveen, por ejemplo, en las posiciones de bit "16" y "17" con RDSH (Read Data Section Host) y RHSH (Read Header Section Host). Dichas identificaciones de datos se conforman también aquí de manera más simple, es decir, respectivamente como un bit. En la posición de bit "9" del registro 703 se registra una identificación de inicio REQ. Además, se provee una identificación de conmutación 25 VIEW que se registra, por ejemplo, en la posición de bit "8" del registro 703.
El CPU central 102 requiere los datos de un objeto de mensaje desde la memoria de mensajes 300, en tanto que el CPU escribe la identificación del mensaje deseado, es decir, particularmente la posición o el número del objeto de mensajes deseado, después de OBRS, es decir, en las posiciones de bits 0 a 5 del registro 703. De esta manera, también aquí el CPU central puede 30 leer, como en la dirección opuesta, ya sea los datos de estado o bien, de configuración y de cabecera KD de un mensaje, es decir, desde una zona de cabecera HB, o sólo los propios datos útiles D a transmitir de un mensaje, es decir, de la zona de datos DB o también ambos datos KK, D. Aquella parte de los datos, es decir, de la zona de cabecera HB y/o de la zona de datos DB, que se deba transmitir, se establece, de esta manera, de manera comparable con la dirección opuesta mediante 35 RHSS y RDSS. Esto significa que RHSS indica si los datos de cabecera KD deben ser leídos, y RDSS indica si los propios datos D deben ser leídos.
Una identificación de inicio sirve para iniciar la transmisión desde la memoria de mensajes 300 hacia la memoria caché 700. Es decir, si como identificación se utiliza un bit, como en el caso más simple, se inicia la transmisión desde la memoria de mensajes 300 hacia la memoria caché 700, 40 mediante el establecimiento del bit REQ en la posición de bit "9" en el registro requerido de salida 703. La transmisión en curso se indica nuevamente mediante una identificación de acceso, aquí se indica también, en el caso más simple, mediante un bit OBSYS, en el registro 703. Para evitar colisiones, resulta ventajoso, si el bit REQ sólo se puede establecer cuando OBSYS no está establecido, es decir, que en el momento no se existe ninguna transmisión en curso. Aquí se produce también la 45 transferencia de mensajes entre la memoria de mensajes 300 y la memoria caché 700. La propia secuencia se puede controlar, por una parte, comparablemente con la dirección opuesta, como se describe en las figuras 4, 5 y 6 (ocupación de registro complementaria) y se produce, aunque en una variación mediante una identificación adicional, una identificación de conmutación VIEW en la posición de bit "8" del registro 703. 50
Esto significa que después de finalizar la transmisión, el bit OBSYS se reinicia, y mediante el establecimiento del bit VIEW en el registro requerido de salida 703, se conmutan la submemoria intermedia 701 y la memoria caché 700 correspondiente, o se conmutan después de ello los accesos, y el CPU central 102 puede leer desde la submemoria intermedia 701, sólo el objeto de mensaje requerido por la memoria de mensajes 300, es decir, el mensaje correspondiente. Además, también 55 en este caso se conmutan comparablemente con la dirección opuesta de transmisión, en las figuras 4 a 6, las celdas de registro OBRS y OBRH. Igualmente se reemplazan RHSS y RDSS con RHSH y RDSH. Como mecanismo de protección, también en este caso se puede preveer que el bit VIEW sólo se pueda establecer cuando OBSYS no esté establecido, es decir, que no exista ninguna transmisión en curso. 60
De esta manera, los accesos de lectura del CPU central 102 a la memoria de mensajes 300 se producen a través de una memoria intermedia de salida interconectada 202. Dicha memoria intermedia de salida 202, está diseñada doble o bien, con dos partes, de la misma manera que la memoria intermedia de entrada 201, con el fin de garantizar un acceso continuo del CPU central 102 a los objetos de mensajes que se encuentran almacenados en la memoria de mensajes 300. También 5 aquí, se obtienen las ventajas de una elevada integridad de datos y de la transmisión acelerada.
Mediante el empleo de las memorias intermedias de entrada y de salida 201, 202 descritas, se garantiza que un CPU central 102, a pesar los tiempos de latencia internos del módulo, puede acceder sin interrupciones a la memoria de mensajes 300.
Para garantizar dicha integridad de datos, la transmisión de datos, en particular la 10 transferencia en el chip de comunicaciones 100, se efectúa mediante el gestor de mensajes 200 (Message Handler MHD). Además, en la figura 10 se representa en detalle el gestor de mensajes 200. El gestor de mensajes 200 se puede representar, en su funcionalidad, mediante una pluralidad de máquinas de estados o autómatas de estado, es decir, autómatas finitos, las llamadas máquinas de estado finito (FSM). Además, se proveen, al menos, tres máquinas de estado, y en una forma de 15 ejecución especial, cuatro máquinas de estado finito. Una primera máquina de estado finito es la IOBF-FSM (Input/Output Buffer FSM), que se indica con 501. Dicha máquina de estado IOBF-FSM podría también, de acuerdo con la dirección de transmisión relativa a la memoria intermedia de entrada 201 o a la memoria intermedia de salida 202, dividirse en dos máquinas de estado finito, por ejemplo, la máquina IBF-FSM (Input Buffer FSM) y la máquina OBF-FSM (Output Buffer FSM), en 20 donde se pueden concebir como máximo cinco autómatas de estado (IBFFSM, OBF-FSM, TBF1-FSM, TBF2-FSM, y AFSM). Sin embargo, se prefiere una máquina IOBF-FSM en común.
Al menos, una segunda máquina de estado finito TBF-FSM se divide aquí en dos bloques 502 y 503, en el marco del ejemplo de ejecución preferido, y acciona ambos canales A y B correspondientes a las memorias 205 y 206, como se describe en la fig. 2. Además, se puede proveer 25 una máquina de estado finito, para accionar ambos canales A y B o, como en la forma de ejecución preferida, una primera máquina de estado finito indicada con 502 TBF1-FSM (Transient Buffer 1 (206, RAM A) FSM) para el canal A, y para el canal B una segunda máquina de estado indicada con 503, memoria transitoria TBF2- FSM (Transient Buffer 2 (205, RAM B) FSM).
Para el control del acceso de las tres máquinas de estado finito 501-503, en el ejemplo de 30 ejecución preferido, sirve una máquina de estado finito arbitraria, la llamada AFSM que se indica con 500. Los datos (datos de cabecera KD y/o los datos útiles D) se transmiten, en el chip de comunicaciones 100, en un ciclo generado mediante un reloj (clock), como por ejemplo, un VCO (Voltage Controlled Oszillator), un oscilador resonante de cuarzo, etc., o derivado o adaptado a dicho reloj. Además, el ciclo T se puede generar en el chip 100 o se puede predeterminar desde el exterior, 35 por ejemplo, como ciclo de bus. La máquina de estado finito arbitraria AFSM 500 concede el acceso a la memoria de mensajes 300 alternadamente a una de las tres máquinas de estado finito 501-503, en particular respectivamente para un periodo de ciclo T. Es decir, que el tiempo a disposición se divide, en correspondencia con las solicitudes de acceso de cada autómata de estado 501, 502, 503, en dichos autómatas de estado por solicitar 501-503. Si se produce una solicitud de acceso de sólo una 40 máquina de estado finito, de esta manera, dicha máquina obtiene el 100% del tiempo de acceso, por lo pronto, todos los ciclos T. Si se produce una solicitud de acceso de dos autómatas de estado finito, cada máquina de estado finito obtiene el 50% del tiempo de acceso. Por último, si se produce una solicitud de acceso de tres autómatas de estado finito, de esta manera, cada máquina de estado finito obtiene 1/3 del tiempo de acceso. De esta manera, se aprovecha de manera óptima el respectivo 45 ancho de banda a disposición.
La primera máquina de estado finito 501, es decir, IOBF-FSM, ejecuta en el caso necesario las siguientes operaciones:
- Transferencia de datos desde la memoria intermedia de entrada 201 hacia el objeto de mensaje seleccionado en la memoria de mensajes 300. 50
- Transferencia de datos desde el objeto de mensaje seleccionado en la memoria de mensajes 300, hacia la memoria intermedia de salida 202.
La máquina de estado 502 para el canal A, es decir, TBF1-FSM, ejecuta las siguientes operaciones:
- Transferencia de datos desde el objeto de mensaje seleccionado en la memoria de 55 mensajes 300, hacia la memoria intermedia 206 del canal A.
- Transferencia de datos desde la memoria intermedia 206 hacia el objeto de mensaje seleccionado en la memoria de mensajes 300.
- Búsqueda del objeto de mensaje adecuado en la memoria de mensajes 300, en donde en la recepción se busca el objeto de mensaje (Receive Buffer 202) para el almacenamiento de un mensaje recibido en el canal A, cuando se realiza un filtro de aceptación, y en el envío se 5 busca el siguiente objeto de mensaje a enviar en el canal A (Transmit Buffer 201).
De manera análoga, se efectúa la operación de la máquina de estado TBF2-FSM, es decir, la máquina de estado finito para el canal B en el bloque 503. Dicha máquina ejecuta la transferencia de datos desde el objeto de mensaje seleccionado en la memoria de mensajes 300 hacia la memoria intermedia 205 del canal B, y la transferencia de datos desde la memoria intermedia 205 hacia el 10 objeto de mensaje seleccionado en la memoria de mensajes 300. La función de búsqueda es también análoga a la máquina de estado TBF I-FSM, de acuerdo con un objeto de mensaje adecuado en la memoria de mensajes 300, en donde en la recepción se busca el objeto de mensaje (Receive Buffer 202) para el almacenamiento de un mensaje recibido en el canal B, cuando se realiza un filtro de aceptación, y en el envío se busca el siguiente mensaje u objeto de mensaje a enviar en el canal B 15 (Transmit Buffer 201).
En la figura 11 se representan nuevamente las secuencias y los caminos de transmisión. Las tres máquinas de estado 501-503 controlan las respectivas transmisiones de datos entre cada elemento. Además, se indica nuevamente con 102 el CPU central, con 201 la memoria intermedia de entrada, y con 202 la memoria intermedia de salida. Con 300 se indica la memoria de mensajes y con 20 206 y 205, ambas memorias intermedias para el canal A y el canal B. Los elementos de interfaz 207 y 208 están también representados. El primer autómata de estado IOBF-FSM 501 controla la transferencia de datos Z1A y Z1B, es decir, desde la memoria intermedia de entrada 201 hacia la memoria de mensajes 300, y desde la memoria de mensajes 300 hacia la memoria intermedia de salida 202. Además, la transmisión de datos se produce a través de buses de datos con un ancho de 25 palabra de, por ejemplo, 32 bits, en donde también resulta posible otro número de bit. De la misma manera, esto resulta válido para la transmisión Z2 entre la memoria de mensajes 300 y la memoria intermedia 206. Dicha transmisión de datos se controla mediante la máquina de estado TBF1-FSM 502, la máquina de estado para el canal A. La transmisión Z3 entre la memoria de mensajes 300 y la memoria intermedia 205, se controla mediante los autómatas de estado TBF2-FSM 503. También 30 aquí, se produce la transferencia de datos a través de buses de datos con un ancho de banda de, por ejemplo, 32 bits, en donde también en este caso resulta posible cualquier otro número de bit. La transferencia de un objeto de mensaje completo requiere generalmente de una pluralidad de periodos de ciclo T, a través de la llamada línea de transmisión. Por lo tanto, se efectúa una división del tiempo de transmisión en relación con los periodos de ciclo T mediante la máquina arbitraria, es decir, la 35 máquina AFSM 500. En la figura 11 se representan las rutas de datos, entre ellas, los componentes de almacenamiento controlados por el gestor de mensajes 200. Para garantizar la integridad de datos de los objetos de mensaje almacenados en la memoria de mensajes 300, se deben intercambiar simultáneamente datos, de manera ventajosa, sólo en una de las rutas representadas, es decir, Z1A y Z1B así como Z2 y Z3. 40
En la figura 12 se muestra en un ejemplo, como se dividen los ciclos T del sistema de la máquina arbitraria, es decir, la máquina AFSM 500, que se encuentran a disposición, en los tres autómatas de estado solicitantes 501-503. En la fase 1 se efectúan las solicitudes de acceso del autómata de estado 501 y el autómata de estado 502, es decir, que el tiempo total de cálculo se divide respectivamente a la mitad para ambos autómatas de estado solicitantes 501, 502. En relación con los 45 periodos de ciclos en la fase 1 significa que el autómata de estado 501 obtiene el acceso a los periodos de ciclo T1 y T3, y el autómata de estado 502, a los periodos de ciclo T2 y T4. En la fase 2 se produce el acceso sólo mediante la máquina de estado 501, de manera que las tres suprimen los periodos de ciclo T5 a T7, es decir, el 100% del tiempo de acceso al autómata de estado IOBF-FSM 501. En la fase 3 se efectúan las solicitudes de acceso de los tres autómatas de estado 501-503, de 50 manera que se produce una tripartición del tiempo de acceso completo. La máquina arbitraria AFSM 500 divide entonces el tiempo de acceso, por ejemplo, de manera tal que en los periodos de ciclo T8 y T11 obtenga acceso la máquina de estado finito 501, en los periodos de ciclo T9 y T12 obtenga acceso la máquina de estado finito 502, y en los periodos de ciclo T10 y T13, la máquina de estado finito 503. En la fase 4 se produce finalmente el acceso a ambos canales A y B del chip de 55 comunicaciones 100, mediante dos autómatas de estado 502 y 503, de manera que se efectúe una distribución del acceso de los periodos de ciclo T14 y T16 en la segunda máquina de estado finito 502, y de T15 y T17 en la tercera máquina de estado finito 503.
El autómata de estado arbitrario AFSM 500 se ocupa de que, en el caso que más de una de las tres máquinas de estado 501-503 solicite un acceso a la memoria de mensajes 300, el acceso se 60 divida alternadamente en forma de ciclos en las máquinas de estado solicitantes. Dicha manera de proceder, garantiza la integridad de los objetos de mensaje almacenados en la memoria de mensajes 300, es decir, la integridad de datos. Si el CPU central 102 requiere, por ejemplo, leer un objeto de mensaje a través de la memoria intermedia de salida 202, mientras que en ese momento un mensaje recibido se escribe en dicho objeto de mensaje, de esta manera, dependiendo de qué solicitud ha sido 5 iniciada en primer lugar, se lee ya sea el estado antiguo o el nuevo estado, sin que los accesos colisionen en el objeto de mensaje en la memoria de mensaje 300.
El método descrito permite que el CPU central 102 en funcionamiento lea o escriba cada objeto de mensaje en la memoria de mensajes 300, sin que el objeto de mensaje seleccionado para la duración del acceso del CPU central 102 se bloquee (Buffer Locking) por la participación en el 10 intercambio de datos en ambos canales A y B del bus FlexRay 101. Simultáneamente, mediante el entrelazamiento en forma de ciclos de los accesos, se garantiza la integridad de datos almacenados en la memoria de mensajes 300, y se incrementa la velocidad de transmisión, también mediante el aprovechamiento del ancho de banda completo.
La memoria de mensajes 300 de un chip de comunicaciones 100 almacena los objetos de 15 mensaje previstos para las comunicaciones. Durante las comunicaciones se producen las siguientes tareas:
En la recepción de un mensaje a través del enlace de comunicaciones 101, se debe encontrar en la memoria de mensajes 300 el objeto de mensaje correspondiente, con el fin de poder almacenar en la memoria de mensajes 300 el mensaje recibido en la posición correspondiente del 20 objeto de mensaje. Un mensaje recibido se almacena en la memoria de mensajes 300 sólo cuando un campo de identificación del mensaje recibido coincida con el de un objeto de mensaje configurado (el llamado objeto de recepción). El campo de identificación del objeto de mensaje de recepción configurado, se detecta de manera que se explore la memoria de mensajes 300 completa en busca de un objeto de mensaje, 25
- que se provea para la recepción a través del canal considerado (A o B),
- que se provea para la recepción en el ciclo de comunicaciones considerado,
- que se provea para la recepción en las ranuras de tiempo consideradas, y
- que se provea para la recepción.
Del mismo modo, al comienzo de una ventana de transmisión se debe encontrar a tiempo, en 30 la memoria de mensajes 300, el objeto de mensaje adecuado (objeto de transmisión) para dicha ventana de transmisión, y se debe poner a disposición para el envío. Un objeto de mensaje pendiente para el envío se enviará sólo justo cuando el campo de identificación del mensaje a enviar coincida con el de un objeto de mensaje configurado (el llamado objeto de transmisión). El campo de identificación del objeto de mensaje de transmisión configurado, se detecta de manera que se explore 35 la memoria de mensajes 300 completa en busca de un objeto de mensaje, que
- se provea para la transmisión a través del canal considerado (A o B),
- se provea para la transmisión en el ciclo de comunicaciones considerado,
- se provea para la transmisión en las ranuras de tiempo consideradas, y
- se provea para la transmisión. 40
En ambos casos, se debe detectar a tiempo el objeto de mensaje adecuado en la memoria de mensajes, con el fin de garantizar la capacidad de tiempo real del chip de comunicaciones. Dado que se desconoce, en qué posición en la memoria de mensajes se encuentra el objeto de mensaje 300 para la próxima ventana de tiempo, se debe explorar una vez la memoria de mensajes 300 completa, por ventana de tiempo. Esto implica mucho tiempo, particularmente en memorias de mensajes 300 de 45 gran magnitud, y puede comprometer o perjudicar la capacidad de tiempo real del sistema de comunicaciones.
La presente invención describe un método novedoso y mejorado para la exploración de la memoria de mensajes, en la que los campos de identificación de los objetos de mensaje almacenados en la memoria de mensajes 300, se exploran respectivamente para la pluralidad de ventanas de 50 tiempo (o ranuras de tiempo), previamente mediante un único ciclo de búsqueda de la memoria de mensajes 300, para la pluralidad de ventanas de tiempo consideradas. Un ciclo de búsqueda de la memoria de mensajes 300 completa, se ejecuta siempre para la pluralidad de ventanas de tiempo futuras consideradas en una trama predeterminada, en donde el intervalo de los momentos para la ejecución del ciclo de búsqueda en la trama es mayor a una ventana de tiempo y comprende una pluralidad de ventanas de tiempo.
Se recomienda en particular, que en un ciclo de búsqueda se ejecute para una pluralidad de ranuras de tiempo futuras consideradas, y que se comprueben los siguientes criterios de búsqueda: 5
- Determinación de si en la memoria de mensajes 300 se encuentran almacenados objetos de mensajes para el canal de transmisión considerado CH A, CH B,
- Determinación de si en la memoria de mensajes 300 se encuentran almacenados objetos de mensajes para el ciclo de comunicaciones considerado,
- Determinación de si en la memoria de mensajes 300 se encuentran almacenados objetos de 10 mensajes para la pluralidad de ventanas de tiempo aún por continuar consideradas, y
- Comprobación de si, en el caso de los objetos de mensajes determinados, se trata de objetos a enviar o a recibir.
En el caso que en la memoria de mensajes 300 se detecten uno o varios objetos de mensajes, que bastan para uno o varios, preferentemente todos los requerimientos anteriormente 15 mencionados, las posiciones de los objetos encontrados en la memoria de mensajes se almacenan en una memoria intermedia destinada a la memoria de mensajes 300, que se representa en la figura 13 y se indica en su totalidad con el símbolo de referencia 600. La memoria intermedia 600 se conforma, al menos, de un tamaño que comprenda, para cada ranura de tiempo considerada previamente, al menos, un campo de datos. En el ejemplo de ejecución representado, se explora la memoria de 20 mensajes 300 en una trama de cuatro ventanas de tiempo, es decir, sólo las 4 ventanas de tiempo. En efecto, se efectúa la exploración no sólo para una única ventana de tiempo actual, sino que simultáneamente o casi al mismo tiempo, para una pluralidad de ventanas de tiempo futuras. De esta manera, la memoria intermedia 600 presenta cuatro campos de datos 601 a 604, con el fin de poder almacenar las posiciones de los cuatro objetos de mensajes detectados como máximo. En cada uno 25 de los campos de datos 601 a 604 se pueden almacenar respectivamente dos palabras de datos, a saber, un indicador i y un estado i, en donde i corresponde a un número inequívoco (o identificación) del campo de datos 601-604 en la memoria de mensajes 300. El campo de datos 601 se asocia preferentemente a la primera ventana de tiempo futura considerada, el campo de datos 602 se asocia a la segunda, y así sucesivamente hasta el campo de datos 604, que se asocia a la última ventana de 30 tiempo futura considerada. Si para la primera ventana de tiempo futura considerada se detecta en la memoria de mensajes 300 un objeto de mensaje correspondiente, se almacenan en ambas palabras de datos del campo de datos 601, el indicador i y el estado i del objeto de mensaje detectado para la primera ventana de tiempo i.
Como palabra de datos, el indicador 0...3, se almacena en la memoria de mensajes 300, en 35 los campos de datos 601-604, respectivamente la posición del objeto de mensaje indicado, por ejemplo, el número. En el caso de la palabra de datos “indicador” 0...3, se trata de una clase de elemento indicador (llamado puntero de datos), que señala el comienzo del objeto de mensaje en la memoria de mensaje 300, preferentemente el comienzo de la zona de cabecera HB en el segmento de cabecera HS, es decir, los datos de configuración KD, del objeto de mensaje detectado. Como estado 40 0...3 del mensaje almacenado en la memoria de mensajes 300, se almacena información preferentemente en la memoria intermedia 600, ya sea que efectivamente se deba recibir o enviar un mensaje para la ventana de tiempo considerada y/o que se deba enviar o recibir el mensaje. En el caso que el mensaje se deba enviar, el estado 0...3 se posiciona en ’tx_buf’, y en el caso que el mensaje se deba recibir, el estado 0...3 se posiciona en ’rx_buf’. En el caso que el mensaje para la 45 ranura de tiempo considerada no se deba enviar ni se deba recibir, el estado se posiciona en ’empty’, siempre que esto no se haya realizado al comienzo del ciclo de búsqueda para todas las palabras de datos de los campos de datos 601-604, al menos, para las palabras de datos “estado” 0...3.
En la figura 13 se reconoce claramente que la memoria intermedia 600 representada se conforma como doble, es decir, que los campos de datos 601-604 se conforman como dobles, de 50 manera tal que puedan existir los campos de datos adicionales 601a-604a. Esto presenta la ventaja de que, por ejemplo, se pueda acceder a los campos de datos 601-604, en el curso de un ciclo de búsqueda, mientras que simultáneamente se pueda acceder a los campos de datos 601a-604a, en el curso de la propia transmisión de datos, es decir, del envío o recepción de datos. Si la transmisión de datos y el ciclo de búsqueda han finalizado, los campos de datos se conmutan, de manera tal que se 55 pueda acceder a los campos de datos 601a-604a, en el curso de un ciclo de búsqueda, mientras que simultáneamente se pueda acceder a los campos de datos 601-604, en el curso de la propia transmisión de datos, es decir, del envío o recepción de datos. De esta manera, los tiempos de espera en la transmisión de datos se pueden evitar debido al ciclo de búsqueda a través de la memoria de mensajes 300.
En caso conveniente, se efectúa un filtro de envío, es decir, que se explora la memoria de mensajes 300 en busca de la posición (o del objeto de mensaje) que se provee para el almacenamiento temporal de un mensaje, que debe ser enviado por el CPU central 102 en el ciclo de 5 comunicaciones considerado, y en la ventana de tiempo considerada, a través del canal considerado mediante el enlace de comunicaciones 101. Adicional o alternativamente, se efectúa un filtro de recepción, es decir, que se explora la memoria de mensajes 300 en busca de la posición (o del objeto de mensaje) que se provee para el almacenamiento temporal de un mensaje, que debe ser recibido por el CPU central 102 en el ciclo de comunicaciones considerado, y en la ventana de tiempo 10 considerada, a través del canal considerado desde el enlace de comunicaciones 101. El objeto del procedimiento de búsqueda es la reducción de la cantidad de los ciclos de búsqueda a través de la memoria de mensajes 300, requeridos por cada ciclo de comunicaciones, y, de esta manera, la obtención de una mejora de la capacidad de tiempo real del chip de comunicaciones 100.
La descripción hace referencia a una memoria intermedia 600 con 8 elementos en total, 601-15 604 y 601a-604a. Sin embargo, el tamaño de la memoria intermedia 600 se puede variar arbitrariamente, en particular incrementar, manteniendo el método conforme a la presente invención para la transmisión de datos, particularmente del procedimiento de búsqueda recomendado, y de esta manera, se puede adaptar de manera flexible al tamaño de la memoria de mensajes 300. Además, se puede establecer previamente mediante el tamaño de la memoria intermedia 600, cuántas ventanas 20 de tiempo se deben buscar previamente como máximo al explorar la memoria de mensajes 300, en el curso de un ciclo de búsqueda. Para poder garantizar una función debida del método conforme a la presente invención, particularmente para evitar un salto de mensajes a enviar o a recibir, no se debe producir, en lo posible, ninguna reconfiguración de la memoria de mensajes 300 entre el final del ciclo de búsqueda para determinadas ranuras de tiempo y el final de la propia transmisión de datos para 25 dichas ranuras de tiempo. Una reconfiguración de esta clase invalidaría posiblemente los contenidos detectados en el último ciclo de búsqueda de la memoria intermedia 600, dado que mediante la reconfiguración se podría haber modificado eventualmente la asociación de las zonas de almacenamiento de la memoria de mensajes 300 para mensajes a enviar o a recibir de las ranuras de tiempo concernientes. En este caso, se requiere un ciclo de envío nuevo, que podría conducir, al 30 menos, a un retardo en la transmisión de datos, eventualmente incluso a una pérdida de datos reducida. Sin embargo, en la especificación FlexRay, están comprendidos mecanismos apropiados para poder captar un retardo de esta clase o una pérdida de datos de esta clase, de manera que no se deban enfrentar efectos negativos en la transmisión de datos.
El método conforme a la presente invención, se explica en detalle a continuación, de acuerdo 35 con la figura 14. En la figura 14 se indica el ciclo de comunicaciones con KZY. Con ZE se indica el final del ciclo y con ZF se indican las ventanas de tiempo. Con SDL se indica el ciclo de búsqueda. Con DAT se indica finalmente la propia transmisión de datos, es decir, el envío de mensajes o bien, la recepción de mensajes. En la figura 14 se observa un ciclo de comunicaciones KZY(n). Dicho ciclo comprende, en primer lugar, cuatro ventanas de tiempo "1" a "4" de una ranura estática del ciclo 40 KZY(n), seguido de 20 ventanas de tiempo en total, de una ranura dinámica del ciclo KZY(n). En el final del ciclo ZE(n), están comprendidos, por ejemplo, una ventana de símbolo (si existiera) y el llamado NIT (tiempo libre de red), que sirve para la sincronización de los relojes locales de los participantes 102. En el ejemplo de ejecución representado, se explora la memoria de mensajes siempre para cuatro ranuras de tiempo ZF anticipadas. Sólo el primer ciclo de búsqueda después del 45 inicio del método conforme a la presente invención, representa una excepción dado que, en primer lugar, se deben ocupar los 8 elementos 601-604 y 601 a-604a de la memoria intermedia 600.
En la figura 15 se representa un organigrama del método conforme a la presente invención. El método comienza en un bloque funcional 700. En un bloque funcional 701 recorre un primer ciclo de búsqueda, que a continuación se explica en detalle. En el curso de un ciclo de búsqueda, se 50 almacenan, por ejemplo, en los campos o bien, en los elementos 601-604 de la memoria intermedia 600, la información correspondiente que se requiere para la propia transmisión de datos siguiente. En el caso que se trate del primer ciclo de búsqueda después del inicio del método conforme a la presente invención, los campos o elementos restantes 601a-604a de la memoria intermedia 600 aún se encuentran vacíos, y se deben ocupar mediante otro ciclo de búsqueda inmediatamente 55 consecutivo. Por esta razón, en un bloque de consulta 701 se comprueba si se trata o no del primer ciclo de búsqueda desde el comienzo del método. En caso de que sí se trate de dicho ciclo, el ciclo de búsqueda 701 recorre nuevamente, en caso contrario se ramifica hacia un bloque funcional 703, donde se efectúa la propia transmisión de datos, es decir, el envío y/o la recepción de mensajes, para aquel participante 102 que ha sido explorado, en el ciclo de búsqueda anterior, en el chip de 60 comunicaciones 100, en su memoria de mensajes 300. A continuación, en un bloque de consulta 704, se comprueba si el método conforme a la presente invención ha finalizado. En el caso que sí haya finalizado, se ramifica hacia un bloque 705 y se finaliza el método. De lo contrario, se ramifica hacia un bloque funcional 706, donde los campos o elementos 601-604 de la memoria intermedia 600 se conmutan con los campos o elementos 601a-604a, de manera que la información detectada en un ciclo de búsqueda consecutivo 701, particularmente las posiciones de los objetos de mensajes, ya no 5 se almacenan en los campos 601-604, sino que, de aquí en adelante, se almacenan en los campos 601a-604a. Asimismo, como consecuencia de la conmutación de los campos de la memoria intermedia 600 en el bloque funcional 706, durante la propia transmisión de datos siguiente, ya no se accede a los campos 601a-604a, sino que, de aquí en adelante, se accede a los campos 601-604. Además, en el bloque funcional 706, se establecen las siguientes cuatro ranuras de tiempo como las 10 ranuras de tiempo a considerar en el siguiente ciclo de búsqueda. Después se ramifica nuevamente hacia el bloque funcional 701 y, se ejecuta nuevamente un ciclo de búsqueda y una verdadera transmisión de datos, aunque en este caso, respectivamente para las siguientes cuatro ranuras de tiempo como en el ciclo anterior.
El ciclo de búsqueda indicado en la figura 15, en general, con el símbolo de referencia 701, 15 se explica en detalle de acuerdo con el ejemplo de ejecución de la figura 14. El ciclo de búsqueda se ejecuta para cuatro ventanas de tiempo consecutivas entre sí, en donde para las cuatro ventanas de tiempo se busca un objeto de mensaje adecuado en la memoria de mensajes 300. Dado que la primera ventana de tiempo "0" no existe, de acuerdo con la especificación, el primer ciclo de búsqueda comprende excepcionalmente sólo tres ventanas de tiempo ZF. Todos los ciclos de búsqueda 20 siguientes comprenden, sin embargo, cuatro ventanas de tiempo ZF. Para detectar un objeto adecuado, se comprueban particularmente los criterios anteriormente mencionados, ciclo de comunicaciones, ranura de tiempo, canal y envío/recepción. El resultado de la búsqueda en forma de la posición de los objetos de mensajes adecuados detectados en la memoria de mensajes 300, se almacena en la memoria intermedia 600. La memoria intermedia se compone de una lista con 8 25 elementos 601-604 y 601a- 604a, del elemento "0" al elemento "7".
Después de concluir la fase de configuración del chip de comunicaciones 100 y al final de cada ciclo de comunicaciones KZY(n-1), se borra la memoria intermedia 600. Todos los indicadores "0" a "7" se posicionan en 0, y todos los campos de información de estado "0" a "7" se posicionan en ’empty’. El primer ciclo de búsqueda se desarrolla excepcionalmente algo diferente en comparación 30 con los demás ciclos de búsqueda. En el último ciclo de búsqueda del ciclo de comunicaciones anterior KZY(n-1), se explora la memoria de mensajes 300 en busca de objetos de mensajes adecuados para la primera ranura de tiempo ZF del siguiente ciclo de comunicaciones KZY(n). En el caso que no exista un ciclo de comunicaciones anterior KZY(n-1) porque, por ejemplo, justamente el sistema ha sido iniciado o configurado, se explora la memoria de mensajes 300 en busca de objetos 35 de mensajes adecuados para la primera ranura de tiempo ZF del siguiente ciclo de comunicaciones KZY(n), a continuación de la fase de configuración. El resultado de dicha búsqueda se almacena en la memoria intermedia en el elemento "1" 602.
A continuación, comienza el ciclo de comunicaciones KZY(n) y se ejecuta un ciclo de búsqueda reducido en la primera ranura de tiempo ZF1, durante el cual se explora la memoria de 40 mensajes 300 en busca de objetos de mensajes adecuados para las ranuras de tiempo ZF2 y ZF3. Los resultados del ciclo de búsqueda reducido se almacenan en los elementos "2" 603 y "3" 604 de la memoria intermedia 600. Por otra parte, la memoria de mensajes 300 se debe explorar, en la primera ranura de tiempo ZF1, también en busca de objetos de mensajes adecuados para las cuatro ranuras de tiempo siguientes ZF4 a ZF7. Los resultados de dicha búsqueda se almacenan en los elementos 45 "4" 601a hasta "7" 604a de la memoria intermedia 600. La búsqueda de objetos adecuados para las ranuras de tiempo ZF2 a ZF7, se puede efectuar durante un único ciclo de búsqueda SDL1. Además, en la primera ranura de tiempo ZF1 se explora la propia transmisión de datos del mensaje previsto para la primera ranura de tiempo ZF1. Dado que la primera ranura de tiempo ZF1, de acuerdo con la especificación FlexRay, con seguridad es una ranura de tiempo estática, que a diferencia de las 50 ranuras de tiempo dinámicas, no pasa a un nivel inferior de una duración mínima determinada, que es lo suficientemente prolongada para realizar todos los pasos indicados anteriormente durante la primera ranura de tiempo ZF1. Dado que la memoria intermedia 600 para el momento del primer ciclo de búsqueda SDL1 se encuentra vacía, se debe almacenar en la memoria intermedia 600 sólo información, en el caso que en la memoria de mensajes 300 se hayan encontrado efectivamente 55 objetos de mensajes adecuados. En el caso que no se hayan encontrado objetos para una determinada ranura de tiempo ZF, el elemento correspondiente 601-604 ó 601a-604a permanece en Indicador = ’0’ y Estado = ’empty’.
En el primer ciclo de búsqueda SDL1 se lee primero, en la primera ventana de tiempo ZF1, el campo de identificación del primer objeto de mensaje del segmento de cabecera HS de la memoria de 60 mensajes 300. El campo de identificación de un mensaje comprende, al menos, los siguientes bits de estado: 11 bits para la identificación de trama (Frame ID) (bits de 0 a 10 de la palabra de cabecera), 7 bits para el código de ciclo (Cycle Code) (bits de 16 a 22 de la palabra de cabecera), 1 bit para el canal A (CH A) (bit 24 de la palabra de cabecera), 1 bit para el canal B (CH B) (bit 25 de la palabra de cabecera) y un bit para el modo de transmisión (TXM, Transmission Mode) (bit 28 de la palabra de cabecera). Si dicho campo de identificación se adecua a una de las ventanas de tiempo ZF2 a ZF7 del 5 ciclo de comunicaciones KZY(n) considerado, de esta manera, el indicador del elemento correspondiente "2" a "7" de la memoria intermedia 600 se posiciona en el número del objeto de mensaje en la memoria de mensajes 300, y el estado correspondiente "2" a "7" se posiciona en ’tx_buf’ o en ’rx_buf’, depende de si el mensaje se deba enviar o recibir.
Después se lee el campo de identificación del próximo objeto de mensaje, aún en el curso del 10 mismo ciclo de búsqueda SDL1, se comprueba si existe una coincidencia para la ventana de tiempo ZF2 a ZF7, y si es preciso, se establece el indicador y el campo de información de estado del elemento correspondiente 601-604, 601a-604a de la memoria intermedia 600.
Si el estado del elemento correspondiente a la memoria intermedia ya se encuentra posicionado en ’empty’, entonces no se almacena ningún indicador ni ninguna información de estado 15 en la memoria intermedia 600. Entonces, si se encuentran configurados dos o más objetos de mensajes para la misma ventana de tiempo ZF en el mismo ciclo de comunicaciones KZY(n), de esta manera, se utiliza el primero y se descartan los siguientes.
Con la lectura del último campo de identificación del segmento de cabecera de la memoria de mensajes 300, finaliza el ciclo de búsqueda SDL1. Ahora, en el curso de la propia transmisión de 20 datos, se puede tomar, directamente de la memoria intermedia 600, el número del objeto de mensaje adecuado para las ventanas de tiempo ZF1 a ZF7, sin un retardo de tiempo significante.
Con el comienzo de la ventana de tiempo ZF4, se procesan los elementos 602 a 604 de la memoria intermedia 600 (el elemento 601 no ha sido requerido, dado que falta una ventana de tiempo ZF0), es decir que ya se ha efectuado la propia transmisión de datos durante dichas ventanas de 25 tiempo ZF1 a ZF3. Los elementos 601 a 604 de la memoria intermedia 600 se pueden borrar ahora (indicador =’0’, estado =’empty’), y se inicia el próximo ciclo de búsqueda SDL2. Dicho ciclo de búsqueda hace referencia a las ventanas de tiempo ZF8 a ZF11 del ciclo de comunicaciones actual KZY(n). Los resultados de la búsqueda se almacenan en los elementos "0" 601 hasta "3" 604 de la memoria intermedia 600. Con el comienzo de la ventana de tiempo ZF8, se inicia otro ciclo de 30 búsqueda SDL3 para las ventanas de tiempo ZF12 a ZF15. Los resultados de la búsqueda se almacenan en los elementos de la memoria intermedia "4" 601a hasta "7" 604a, que también han sido borrados al inicio del nuevo ciclo de búsqueda SDL3 (indicador =’0’, estado =’empty’).
Paralelamente a los ciclos de búsqueda SDL se efectúa el procesamiento de la propia transmisión de datos DAT, después de alcanzar las respectivas ventanas de tiempo ZF. De esta 35 manera, se procesa, por ejemplo, durante el segundo ciclo de búsqueda SDL2, la propia transmisión de datos para las ventanas de tiempo ZF4 a ZF7, en donde la información, donde se almacenan los mensajes a transmitir (a enviar o a recibir) en la memoria de mensajes 300, o donde se leen de la memoria de mensajes 300, toma los elementos "4" 601a hasta "7" 604a de la memoria intermedia 600, donde se han almacenado durante el primer ciclo de búsqueda SDL1. De la misma manera, se 40 procesa durante el tercer ciclo de búsqueda SDL3, la propia transmisión de datos para las ventanas de tiempo ZF8 a ZF11, en donde la información, donde se almacenan los mensajes a transmitir en la memoria de mensajes 300, o donde se leen de la memoria de mensajes 300, toma los elementos "0" 601 hasta "3" 604 de la memoria intermedia 600, donde se han almacenado durante el segundo ciclo de búsqueda SDL2. De la manera correspondiente, se desarrollan los demás ciclos de búsqueda 45 SDL4 hasta SDL6, en donde durante el último ciclo de búsqueda SDL6 del ciclo de comunicaciones actual KZY(n), se explora la memoria de mensajes 300, como se ha mencionado anteriormente, en busca de objetos de mensajes adecuados para la primera ranura de tiempo ZF1 del siguiente ciclo de comunicaciones KZY(n+1).
Cada ciclo de búsqueda SDL se puede interrumpir mediante otras secuencias, aunque debe 50 finalizar, a más tardar, después de cuatro ventanas de tiempo ZF. Si no se puede obtener dicho requerimiento, se puede ampliar la memoria intermedia 600, por ejemplo, también de 8 a 16 elementos. De esta manera, se incrementa el tiempo disponible a, por ejemplo, 8 ventanas de tiempo. De todas maneras, se limita así la flexibilidad en el sistema de transmisión de datos, puesto que para las 8 ventanas de tiempo actuales que se han explorado previamente, no se debe producir ninguna 55 reconfiguración antes de que se haya procesado la propia transmisión de datos para dicha ventana de tiempo.
Si se inicia la transferencia para un objeto de transmisión al comienzo de la ventana de tiempo asociada ZF, desde la memoria de mensajes 300 hacia la unidad de envío, se comprueba, de esta manera, si el objeto de mensaje se ha modificado en el intervalo. Si sucede esto, se descarta el registro en la memoria intermedia 600 y el objeto de mensaje correspondiente no se envía. Si se comienza con la transferencia desde la unidad de recepción, para un objeto de recepción al final de la ventana de tiempo asociada ZF (comienzo de la próxima ventana de tiempo), se comprueba si el objeto de mensaje no ha sido modificado en el intervalo. Si sucede esto, se descarta el registro en la 5 memoria intermedia 600 y el mensaje recibido no se almacena. La comprobación de la integridad de datos se puede efectuar, por ejemplo, mediante una suma de verificación o de cualquier otra manera (por ejemplo, bit de paridad o control de redundancia cíclica CRC).
Para el especialista resulta evidente una pluralidad de posibilidades de ampliación de la presente invención que se pueden efectuar. A continuación, se mencionan, a modo de ejemplo, sólo 10 algunas posibilidades de ampliación.
Si se reconfigura un objeto de mensaje en la memoria de mensajes 300, durante el funcionamiento del sistema de transmisión de datos, se comprueba, de esta manera, si el campo de identificación se adecua a la zona de la ventana de tiempo actual Zfi hasta ZFi+3 de la memoria intermedia 600. En caso de que sí se adecuara, se cambia, en caso necesario, el elemento 601-604 y 15 601a-604a correspondiente a la memoria intermedia. Mediante dicha ampliación, se puede reconfigurar un objeto de mensaje hasta el comienzo de la ventana de tiempo ZF predeterminado en el campo de identificación, independientemente del tamaño de la memoria intermedia 600.
Mediante el método descrito, se explora la memoria de mensajes 300 de un chip de comunicaciones 100, de manera previsora, en busca de los objetos de mensajes adecuados para las 20 próximas ventanas de tiempo ZF. Mediante los indicadores almacenados en la memoria intermedia 600, en los objetos de mensajes y su estado, se puede producir un acceso rápido a los objetos de mensajes previstos para las próximas ventanas de tiempo ZF. Por lo tanto, ya no se requiere de ningún ciclo de búsqueda por separado, a través de la memoria de mensajes completa 300, por ventana de tiempo ZF. 25
El empleo del método de búsqueda descrito reduce la cantidad de los ciclos de búsqueda a través de la memoria de mensajes 300, requeridos por cada ciclo de comunicaciones KZY(n). De esta manera, se puede mejorar decisivamente la capacidad de tiempo real del chip de comunicaciones 100.

Claims (19)

  1. 30 REIVINDICACIONES
  2. 1. Método para la transmisión de datos en mensajes que se transmiten cíclicamente en ventanas de tiempo predeterminables (ZF) a través de un enlace de comunicaciones (101) de un sistema de comunicaciones, en donde a través del enlace de comunicaciones (101) se almacenan temporalmente mensajes a enviar y enviados, en primer lugar, en una memoria de mensajes (300) de 5 un chip de comunicaciones (100), y el mensaje a enviar, o bien, a recibir en una ventana de tiempo actual (ZF) se toma desde la memoria de mensajes (300) y se envía o bien, se recibe , y se almacena en la memoria de mensajes (300), caracterizado porque para la detección de las posiciones de los mensajes en la memoria de mensajes (300) se explora previamente la memoria de mensajes (300) en una trama predeterminable respectivamente para una pluralidad de ventanas de tiempo (ZF), aún por 10 continuar, porque un ciclo de búsqueda comprende en la trama una pluralidad de ventanas de tiempo (ZF), y porque como resultado del ciclo de búsqueda se almacenan, en una memoria intermedia (600) asociada a la memoria de mensajes (300), las posiciones de los mensajes a enviar o a recibir en la pluralidad de ventanas de tiempo (ZF) aún por continuar.
  3. 2. Método de acuerdo con la reivindicación 1, caracterizado porque, en el curso de la 15 transmisión de datos, el mensaje a transmitir a través del sistema de comunicaciones en la ventana de tiempo actual (ZF) se lee desde la posición de la memoria de mensajes (300) indicada en la memoria intermedia (600) para dicha ventana de tiempo (ZF), y se transmite a través del enlace de comunicaciones (101) o bien, el mensaje transmitido a través del enlace de comunicaciones (101) en la ventana de tiempo actual (ZF) se almacena en la posición de la memoria de mensajes (300), 20 indicada en la memoria intermedia (600) para dicha ventana de tiempo (ZF).
  4. 3. Método de acuerdo con la reivindicación 1 ó 2, caracterizado porque la transmisión de datos para la ventana de tiempo actual (ZF) y la pluralidad de ventanas de tiempo sucesivas (ZF8-ZF11), para las cuales las posiciones de los mensajes en la memoria de mensajes (300) ya se han almacenado en la memoria intermedia (600), se efectúa después de alcanzar la ventana de tiempo 25 correspondiente (ZF8-ZF11), simultáneamente con el ciclo de búsqueda (SDL3) para la ventana de tiempo (ZF) a continuación de la última ventana de tiempo (ZF11) de la transmisión de datos y la pluralidad de ventanas de tiempo sucesivos (ZF12-ZF15).
  5. 4. Método de acuerdo con una de las reivindicaciones 1 a 3, caracterizado porque la cantidad de la pluralidad de ventanas de tiempo del ciclo de búsqueda (SDL) es igual a la cantidad de 30 la pluralidad de ventanas de tiempo para la transmisión de datos (DAT).
  6. 5. Método de acuerdo con una de las reivindicaciones 1 a 4, caracterizado porque los mensajes a almacenar en la memoria de mensajes (300), comprenden primeros datos (KD0, KD1, KDk) con un primer espacio de datos, y segundos datos (D0, Dl, Dk) con un segundo espacio de datos, y los primeros datos (KD0, KD1, KDk) se almacenan en un segmento de cabecera (HS) de la 35 memoria de mensajes (300) en la respectiva zona de cabecera (HB0, HB1, HBk) por mensaje, y los segundos datos (D0, Dl, Dk) se almacenan en un segmento de datos (DS) en la respectiva zona de datos (DB0, DB1, DBk) por mensaje.
  7. 6. Método de acuerdo con la reivindicación 5, caracterizado porque en la zona de cabecera (HB0, HB1, HBk) de la memoria de mensajes (300) se encuentra almacenada por mensaje una 40 identificación, que identifica el respectivo mensaje y mediante la cual el mensaje se puede asociar a un ciclo de comunicaciones (KZY) determinado, a una ventana de tiempo (ZF) determinada dentro del ciclo (KZY) y a un canal (CH A, CH B) o a dos canales (CH A, CH B).
  8. 7. Método de acuerdo con una de las reivindicaciones 1 a 6, caracterizado porque para cada uno de los mensajes a enviar o a recibir en una ventana de tiempo de la pluralidad de ventanas 45 de tiempo (ZF) aún por continuar, y considerados durante un ciclo de búsqueda (SDL), se proveen dos campos ("indicador", "estado") en la memoria intermedia (600), en donde en un primer campo ("indicador") se almacena un indicador en la posición correspondiente del mensaje almacenado en la memoria de mensaje (300), y en un segundo campo ("estado") se almacena un estado del mensaje almacenado en la memoria de mensajes (300). 50
  9. 8. Método de acuerdo con la reivindicación 5 y 7, caracterizado porque el indicador de los primeros datos (KD0, KD1, KDk) almacenados en una zona de cabecera (HB0, HB1, HBk) en el segmento de cabecera (HS), muestra el mensaje almacenado en la memoria de mensajes (300).
  10. 9. Método de acuerdo con la reivindicación 7 u 8, caracterizado porque se almacena información en la memoria intermedia (600) como estado del mensaje almacenado en la memoria de 55 mensajes (300), ya sea que efectivamente se deba recibir o enviar (’empty’) un mensaje para la ventana de tiempo (ZF) considerada y/o que se deba enviar (’tx_buf’) o recibir (’rx_buf’) el mensaje.
  11. 10. Método de acuerdo con una de las reivindicaciones 3 a 9, caracterizado porque la memoria intermedia (600) se encuentra subdividida, en donde en una primera parte (601-604) de la memoria intermedia (600) para la transmisión de datos, se almacenan las posiciones de los mensajes para la ventana de tiempo actual (ZF) y la pluralidad de ventanas de tiempo sucesivas (ZF8-ZF11), para las cuales las posiciones de los mensajes en la memoria de mensajes (300) ya se han 5 almacenado en la memoria intermedia (600), y en una segunda parte (601a-604a) de la memoria intermedia (600) para un ciclo de búsqueda (SDL), se almacenan las posiciones de los mensajes para la ventana de tiempo (ZF) a continuación de la última ventana de tiempo (ZF11) de la transmisión de datos y la pluralidad de ventanas de tiempo sucesivas (ZF12-ZF15).
  12. 11. Método de acuerdo con una de las reivindicaciones 1 a 10, caracterizado porque para la 10 detección de las posiciones de los mensajes en la memoria de mensajes (300), dicha memoria se explora previamente en intervalos regulares respectivamente para cuatro ventanas de tiempo (ZF) aún por continuar, y porque como resultado de un ciclo de búsqueda se almacenan en la memoria intermedia (600) las posiciones de los mensajes a enviar o a recibir en las cuatro ventanas de tiempo (ZF) aún por continuar. 15
  13. 12. Método de acuerdo con una de las reivindicaciones 1 a 11, caracterizado porque en el curso de un ciclo de búsqueda, la memoria de mensajes (300) se explora para la pluralidad de ventanas de tiempo (ZF) aún por continuar, de acuerdo con uno o varios de los siguientes criterios:
    - Determinación de si en la memoria de mensajes (300) se encuentran almacenados mensajes para un canal de transmisión (CH A, CH B) considerado, 20
    - Determinación de si en la memoria de mensajes (300) se encuentran almacenados mensajes para un ciclo de comunicaciones (KZY) considerado,
    - Determinación de si en la memoria de mensajes (300) se encuentran almacenados mensajes para la pluralidad de ventanas de tiempo (ZF) aún por continuar, y
    - Determinación de si en el caso de los mensajes determinados se trata de mensajes a 25 enviar o a recibir.
  14. 13. Chip de comunicaciones (100) que se encuentra dispuesto en un sistema de comunicaciones entre un enlace de comunicaciones (101) y un participante, en donde el sistema de comunicaciones está diseñado para la transmisión cíclica de mensajes en ventanas de tiempo predeterminables, y el chip de comunicaciones (100) presenta una memoria de mensajes (300) para el 30 almacenamiento temporal de mensajes, que serán transmitidos por el participante a través del enlace de comunicaciones (101) o que han sido recibidos para el participante a través del enlace de comunicaciones (101), caracterizado porque el chip de comunicaciones (100) para la detección de las posiciones de los mensajes en la memoria de mensajes (300) presenta medios para la exploración de la memoria de mensajes (300) en una trama predeterminable respectivamente para una pluralidad 35 de ventanas de tiempo aún por continuar, previamente de una memoria intermedia asociada a la memoria de mensajes (300), y presenta medios para el almacenamiento, en una memoria intermedia (600), de las posiciones de los mensajes a enviar o a recibir en la pluralidad de ventanas de tiempo aún por continuar, como resultado del ciclo de búsqueda, y porque un ciclo de búsqueda comprende en la trama una pluralidad de ventanas de tiempo (ZF). 40
  15. 14. Chip de comunicaciones (100) de acuerdo con la reivindicación 13, caracterizado porque los medios para la exploración de la memoria de mensajes (300) y los medios para el almacenamiento de las posiciones de los mensajes determinados en la memoria intermedia (600) se conforman como una máquina de estado finito (504).
  16. 15. Chip de comunicaciones (100) de acuerdo con la reivindicación 13 ó 14, caracterizado 45 porque el chip de comunicaciones (100) se conforma como un chip de comunicaciones FlexRay para la recepción, el envío y el almacenamiento temporal de mensajes transmitidos de acuerdo con una especificación FlexRay.
  17. 16. Chip de comunicaciones (100) de acuerdo con una de las reivindicaciones 13 a 15, caracterizado porque los medios para la exploración de la memoria de mensajes (300) y los medios 50 para el almacenamiento de las posiciones de los mensajes determinados en la memoria intermedia (600) se conforman para la ejecución de un método de acuerdo con una de las reivindicaciones 2 a 12.
  18. 17. Sistema de comunicaciones con una pluralidad de participantes (102) conectados a un enlace de comunicaciones (101), en donde se encuentra dispuesto un chip de comunicaciones (100) 55 entre un enlace de comunicaciones (101) y, al menos, uno de los participantes (102), en donde el sistema de comunicaciones está diseñado para la transmisión cíclica de mensajes en ventanas de tiempo (ZF) predeterminables, y el chip de comunicaciones (100) presenta una memoria de mensajes (300) para el almacenamiento temporal de mensajes, que serán transmitidos por, al menos, un participante (102) a través del enlace de comunicaciones (101) o que han sido recibidos para, al 5 menos, un participante (102) a través del enlace de comunicaciones (101), caracterizado porque el chip de comunicaciones (100) para la detección de las posiciones de los mensajes en la memoria de mensajes (300), presenta medios para la exploración de la memoria de mensajes (300) en una trama predeterminable respectivamente para una pluralidad de ventanas de tiempo (ZF) aún por continuar, previamente de una memoria intermedia (600) asociada a la memoria de mensajes (300), y presenta 10 medios para el almacenamiento, en la memoria intermedia (600), de las posiciones de los mensajes a enviar o a recibir en la pluralidad de ventanas de tiempo (ZF) aún por continuar, como resultado del ciclo de búsqueda, y porque un ciclo de búsqueda comprende en la trama una pluralidad de ventanas de tiempo (ZF).
  19. 18. Sistema de comunicaciones de acuerdo con la reivindicación 17, caracterizado porque 15 el chip de comunicaciones (100) se conforma de acuerdo con una de las reivindicaciones 14 a 16.
ES06701281T 2005-01-31 2006-01-26 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. Active ES2353810T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102005004464 2005-01-31
DE102005004464A DE102005004464A1 (de) 2005-01-31 2005-01-31 Verfahren zur Speicherung von Botschaften in einem Botschaftsspeicher und Botschaftsspeicher

Publications (1)

Publication Number Publication Date
ES2353810T3 true ES2353810T3 (es) 2011-03-07

Family

ID=36180383

Family Applications (1)

Application Number Title Priority Date Filing Date
ES06701281T Active ES2353810T3 (es) 2005-01-31 2006-01-26 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.

Country Status (10)

Country Link
US (1) US7801131B2 (es)
EP (1) EP1846827B1 (es)
JP (1) JP4740261B2 (es)
KR (1) KR101172103B1 (es)
CN (1) CN101111826B (es)
AT (1) ATE483201T1 (es)
DE (2) DE102005004464A1 (es)
ES (1) ES2353810T3 (es)
RU (1) RU2401452C2 (es)
WO (1) WO2006079651A1 (es)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1792068A (zh) * 2003-05-21 2006-06-21 皇家飞利浦电子股份有限公司 用于通信协议的消息存储器和方法
ATE467288T1 (de) * 2004-08-05 2010-05-15 Bosch Gmbh Robert Kommunikationskontrolleur für flexray-netze
DE102005018837A1 (de) * 2005-04-22 2006-10-26 Robert Bosch Gmbh Verfahren und Vorrichtung zur Synchronisation zweier Bussysteme sowie Anordnung aus zwei Bussystemen
DE102005048582A1 (de) * 2005-10-06 2007-04-12 Robert Bosch Gmbh Teilnehmerschnittstelle zwischen einem Mikrocontroller und einem FlexRay-Kommunikationsbaustein, FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
EP1998498B1 (de) * 2007-05-26 2018-01-03 Vector Informatik GmbH Testvorrichtung und Testverfahren
WO2012006311A1 (en) 2010-07-07 2012-01-12 Huawei Technologies Co., Ltd. Deterministic placement of timestamp packets using a periodic gap
JP2012080379A (ja) * 2010-10-04 2012-04-19 Renesas Electronics Corp 半導体データ処理装置及びデータ処理システム
US8761190B2 (en) 2011-01-06 2014-06-24 GM Global Technology Operations LLC Message loss prevention by using sender and receiver buffers in event-triggered distributed embedded real-time systems
US8670314B2 (en) * 2011-01-06 2014-03-11 GM Global Technology Operations LLC Message loss prevention by using sender buffer and traffic shaping in event-triggered distributed embedded real-time systems
EP2597832B1 (en) * 2011-11-02 2016-12-28 Renesas Electronics Europe Limited Message buffer controller
CN103259655B (zh) * 2012-05-07 2016-03-16 中国交通通信信息中心 一种基于卫星通信业务的用户管理***
DE102013217595A1 (de) * 2013-09-04 2015-03-05 Robert Bosch Gmbh Bereitstellung unterschiedlicher Datenübertragungsraten und Redundanz durch gemeinsame und getrennte Nutzung von physikalischen Übertragungskanälen im Kraftfahrzeug
US10579607B2 (en) * 2017-04-28 2020-03-03 Splunk Inc. Single point of dispatch for hybrid cloud deployment for indexer clusters
CN112154503A (zh) * 2018-05-31 2020-12-29 辛纳普蒂克斯公司 低功率、高带宽、低等待时间的数据总线
EP3790232A1 (en) * 2019-09-09 2021-03-10 TTTech Computertechnik Aktiengesellschaft Method for generating a schedule for mixed critical computer networks
EP4002770B1 (en) * 2020-11-16 2024-04-03 Ratier-Figeac SAS Serial time triggered data bus
CN112769661B (zh) * 2020-12-29 2022-07-29 北京航天自动控制研究所 一种高速时分复用通信总线时隙分配与控制方法
KR20220128094A (ko) * 2021-03-12 2022-09-20 주식회사 에이치엘클레무브 차량 통신 제어 장치 및 제어 방법
TWI789103B (zh) * 2021-11-08 2023-01-01 旺宏電子股份有限公司 記憶體裝置及其操作方法
US11776618B2 (en) 2021-11-08 2023-10-03 Macronix International Co., Ltd. Memory device with in-memory searching array and operation method thereof for implementing finite state machine

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3908092A (en) * 1973-12-21 1975-09-23 Bell Telephone Labor Inc Program controlled time division switching systems
US4521880A (en) * 1983-12-06 1985-06-04 At&T Bell Laboratories Time-slot interchanger for fast circuit switching
US5884040A (en) * 1995-01-11 1999-03-16 Sony Corporation Per-packet jamming in a multi-port bridge for a local area network
US6311212B1 (en) * 1998-06-27 2001-10-30 Intel Corporation Systems and methods for on-chip storage of virtual connection descriptors
JP4319268B2 (ja) * 1998-08-07 2009-08-26 富士通株式会社 動画像復号方法及び装置
WO2000045274A1 (fr) * 1999-01-29 2000-08-03 Digitaldesign, Co., Ltd. Procede de transmission de donnees, support lisible par un ordinateur et appareil de transmission de donnees
JP3445183B2 (ja) * 1999-02-18 2003-09-08 株式会社日本自動車部品総合研究所 データ中継装置および多重通信システム
DE10215719A1 (de) 2002-04-10 2003-10-30 Philips Intellectual Property Datenspeicher
WO2004098955A1 (en) 2003-05-06 2004-11-18 Philips Intellectual Property & Standards Gmbh Timeslot sharing over different cycles in tdma bus
US7272853B2 (en) 2003-06-04 2007-09-18 Microsoft Corporation Origination/destination features and lists for spam prevention
US7398338B2 (en) * 2004-06-30 2008-07-08 Sap Ag Flexible and error resistant data buffering and connectivity

Also Published As

Publication number Publication date
US20080137679A1 (en) 2008-06-12
RU2007132705A (ru) 2009-07-27
EP1846827B1 (de) 2010-09-29
JP2008529374A (ja) 2008-07-31
DE502006007959D1 (de) 2010-11-11
EP1846827A1 (de) 2007-10-24
KR101172103B1 (ko) 2012-08-09
US7801131B2 (en) 2010-09-21
JP4740261B2 (ja) 2011-08-03
CN101111826B (zh) 2010-06-09
ATE483201T1 (de) 2010-10-15
CN101111826A (zh) 2008-01-23
WO2006079651A1 (de) 2006-08-03
RU2401452C2 (ru) 2010-10-10
DE102005004464A1 (de) 2006-10-26
KR20070114714A (ko) 2007-12-04

Similar Documents

Publication Publication Date Title
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.
KR101028898B1 (ko) 플렉스레이 통신 장치
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.
US5513320A (en) Transmit data descriptor structure in a media access control/host system interface that implements flexible transmit data descriptor structure unit
US5594702A (en) Multi-first-in-first-out memory circuit
US20100161834A1 (en) User interface between a microcontroller and a flexray communications module; flexray user; and method for transmitting messages via such an interface
JP4903801B2 (ja) FlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェース、およびFlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェースを経由するメッセージの伝送方法
US20090300254A1 (en) Method for Connecting a Flexray user having a Microcontroller to a Flexray Communications line Via a Flexray Communications Control Device, and Flexray Communications Control Device, Flexray User, and Flexray Communications System for Realizing this Method
ES2301029T3 (es) Procedimiento para el almacenamiento de mensajes en una memoria de mensajes y la memoria de mensajes.
US20090175290A1 (en) Flexray communications module, flexray communications controller, and method for transmitting messages between a flexray communications link and a flexray participant
JP2005502970A (ja) バスシステムの加入者におけるプログラム中断を発生させる方法,その装置及びバスシステム
EP0984592A2 (en) Method for transmitting large information packets over networks
ES2349340T3 (es) Módulos de comunicaciones.