ES2258427T3 - Red y procedimiento para el intercambio de mensajes. - Google Patents

Red y procedimiento para el intercambio de mensajes.

Info

Publication number
ES2258427T3
ES2258427T3 ES00112933T ES00112933T ES2258427T3 ES 2258427 T3 ES2258427 T3 ES 2258427T3 ES 00112933 T ES00112933 T ES 00112933T ES 00112933 T ES00112933 T ES 00112933T ES 2258427 T3 ES2258427 T3 ES 2258427T3
Authority
ES
Spain
Prior art keywords
message
messages
value
relevant
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES00112933T
Other languages
English (en)
Inventor
David Charles Smart
Jerry Norman Kitchen
Jeremy T. Yoder
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.)
Deere and Co
Original Assignee
Deere and Co
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 Deere and Co filed Critical Deere and Co
Application granted granted Critical
Publication of ES2258427T3 publication Critical patent/ES2258427T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Telephonic Communication Services (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Procedimiento para el intercambio de mensajes en una red (10) con una multitud de unidades (12 - 30) electrónicas de mando que están unidas entre sí mediante un bus (31), e intercambian mensajes entre sí, cada uno de los cuales presenta un sector con un identificador y datos, con los siguientes pasos realizados por las unidades (12 - 30) electrónicas de mando: Recepción de un mensaje; Conversión del identificador del mensaje en un valor de dirección, efectuándose una operación aritmética; Lectura y extracción de un valor relevante, de una tabla (36) en la que están almacenados valores de relevancia para una multitud de valores indexados, sacándose de la tabla (36) el valor de relevancia del valor indexado, que corresponda al respectivo valor de dirección; Ignorancia del mensaje cuando el valor correspondiente de relevancia indique que el mensaje no es relevante para la unidad (12 - 30) electrónica afectada de mando; Continuación del procesamiento del mensaje cuando el valor correspondientede relevancia indique que el mensaje es relevante para la unidad (12 - 30) electrónica afectada de mando.

Description

Red y procedimiento para el intercambio de mensajes.
La invención se refiere a una red y a un procedimiento para el intercambio de mensajes.
Los modernos vehículos industriales o agrícolas, comprenden por lo regular una red de unidades electrónicas de mando (ECUs, Electronic Control Units), como una unidad de mando del motor, una unidad de mando de la caja de cambios, una unidad de mando de los instrumentos del tablero de instrumentos, etc. La red puede discurrir por todo el vehículo, para hacer posible disponer las distintas unidades electrónicas de mando en la proximidad del subsistema con el que interaccionan. Por la red se envían regularmente una multitud de mensajes de datos, de los que cada mensaje individual sólo puede tener significado para algunas unidades electrónicas de mando. Por ejemplo, la unidad de mando del motor puede preparar para la unidad electrónica de mando de la pantalla, una información sobre la velocidad del motor, aunque una unidad electrónica de mando, que controle el sistema de iluminación del vehículo, no tendrá ninguna necesidad de informaciones sobre la velocidad del motor. Cada unidad electrónica de mando comprende por lo regular un juego de chips electrónicos, que presenta un microprocesador (CPU, Central Processing Unit) y hardware operacional de la red (CAN, Controller Area Network).
Hay normas aplicables para protocolos de red (SAE-J1939 e ISO-11783), que reglamentan la comunicación de mensajes en una red semejante. En la norma J1939 los mensajes presentan un identificador del mensaje. Los identificadotes de mensajes son una sucesión de varios campos, incluyendo: (i) prioridad - 3 bits; (ii) números de grupos de parámetros (PGN) - 16 bits; (iii) dirección de destino (DA, Destination Address) - 8 bits; (iv) dirección de origen (SA, Source Address) - 8 bits; y (v) otros - 2 bits. Por lo tanto estos campos se combinan en un identificador del mensaje con 29 bits.
El campo de prioridad permite a los mensajes con alta prioridad (preferencia), obtener un acceso preferente a la red, antes que mensajes con inferior prioridad. El campo de números de grupos de parámetros (PGN) se utiliza para parámetros individuales, para obtener un transporte eficiente en la red. Un ejemplo es la combinación de la velocidad del motor y del par motor en un mensaje de red. Otro grupo podría comprender el conmutador de señales de cambio de dirección, y otras señales del tipo de "cortesía". A cada grupo está coordinado un número. Además, hay algunos valores de los campos de números de grupos de parámetros, en los que el objetivo es hacer posible una comunicación directa de una unidad electrónica de mando con otra. En este caso, una parte de los campos de números de grupos de parámetros, es la dirección de destino. El campo de direcciones de destino (DA) contiene el número único de destino que está asignado a cada unidad electrónica de mando (ECU) en la red. Puesto que cada unidad electrónica de mando presenta un número único, una unidad electrónica de mando puede comunicar directamente con otra unidad electrónica de mando, utilizando una zona especial de los números de grupos de parámetros, que están asignados a este fin. El campo de direcciones de origen (SA) se utiliza para el número único que está asignado a cada unidad electrónica de mando, de manera que la unidad electrónica de mando (ECU) de procedencia de cada mensaje, pueda ser identificada en la red. Los "otros" campos están reservados para objetivos futuros.
En muchos casos un mensaje tendrá bajo el protocolo J1939, números de grupos de parámetros (PGN) predefinidos que corresponden a parámetros generales como velocidad del motor, presión del aceite, conmutadores de señales de cambio de dirección, etc. Muchas unidades electrónicas nuevas de mando presentan parámetros que no están predefinidos. J1939 permite también una "proprietary messaging" [mensajería del propietario], o sea una transmisión de mensajes, definida para el propietario, en la que para determinados valores de los números de grupos de parámetros, se ha dejado a los productores la especificación de qué datos se transmiten en los respectivos PGN, y no aparecerá en la norma J1939. Cuando se crean nuevos sistemas, es habitual redactar protocolos de estos sistemas utilizando los mensajes definidos para el propietario. Cuando hace falta colocar nuevos parámetros en la red, como por ejemplo, "altura de la antena de radio", no se encontraría en el banco actual de datos de J1939, un número predefinido correspondiente de grupos de parámetros. El sistema se crearía pues con un prototipo en el que se utilicen los mensajes definidos para el propietario, para comunicar el parámetro "altura de la antena de radio". Eventualmente podría definirse un PGN para un parámetro semejante, aunque para ello es necesario un largo plazo de desarrollo de muchos meses, hasta de más de un año.
Para respaldar este protocolo hay que sustentar una gran cantidad de mensajes de red. Cada mensaje recibido por un microprocesador de una unidad electrónica de mando, tiene que poder comprobar su identificador del mensaje, para constatar si este mensaje es relevante para la respectiva unidad electrónica de mando. Para unidades electrónicas de mando que sólo tengan que manejar una pequeña cantidad de mensajes, el hardware para la red, CAN, disponible en general, tiene un filtrado incorporado que puede realizar esta prueba, de manera que aquí se acepten automáticamente mensajes entrantes que sean de interés, mientras se rechazan otros mensajes, sin intervención del microprocesador de la unidad electrónica de mando (ECU). No obstante, una unidad típica electrónica de mando en una red semejante, tiene que procesar una cantidad mayor de mensajes que las que pueden manejar los filtros incorporados en el hardware y, por tanto, la aceptación o rechazo de mensajes ha de llevarse a cabo en el software del sistema
(ECU).
En un sistema complejo nuevo pueden existir varias decenas o incluso centenas de parámetros nuevos. En un sistema semejante estos parámetros están integrados en los PGNs para "proprietary messaging". No obstante, cabría imaginar que este grupo de números de grupos de parámetros, no presente la capacidad para todos los parámetros nuevos. Por consiguiente es práctica relativamente usual, utilizar un byte de datos en el mensaje definido para el propietario, para describir mejor el objeto del mensaje específico. La utilización de un byte de datos requiere 8 bits y, por tanto, facilita 256 combinaciones adicionales únicas que permiten una asociación de cualesquiera parámetros con los correspondientes números de grupos de parámetros.
Cuando la función de aceptación y rechazo de mensajes es realizada por el software del sistema, se aumenta esencialmente la carga de la CPU, posiblemente tanto que existe el peligro de que no se realicen correctamente actividades de inferior prioridad, que no están en relación con la red. Para resolver este problema pueden ser necesarias CPUs esencialmente de mayor capacidad, u otro hardware electrónico adicional. Cada una de estas exigencias aumentaría significativamente los costes del sistema.
Los identificadores de mensajes tienen 29 bits de longitud, y en algunos casos de identificadores de mensajes, puede necesitarse la prueba de uno o barios bytes de datos, para constatar la relevancia del mensaje para una unidad electrónica dada de mando. No es practicable una utilización del método convencional de tablas de consulta, puesto que la tabla puede exigir más de 2^{29} entradas, y cuando adicionalmente es necesario un byte de datos para comprobar la relevancia de un mensaje dado, serían necesarias 2^{37} entradas. Además, identificadores de mensajes relevantes para cada una de las unidades electrónicas de mando, no caben en un espacio de direccionamiento con suficiente frecuencia de repetición, de manera que pudiera utilizarse una fórmula matemática eficiente.
Hay que partir de que las redes típicas de producción actual, aplican un procedimiento con dos pasos, detectándose y descargándose primeramente los mensajes en un proceso de alta prioridad, y a continuación se procesan los mensajes en un proceso con prioridad inferior. La realización de este procedimiento requiere mucho tiempo cuando muchos mensajes no tienen en el sistema relevancia ninguna para una unidad electrónica específica de mando, o para un nudo. Por ejemplo, una rutina del servicio de interrupción (ISR, interrupt service routine) que responde un mensaje nuevo, coloca el mensaje en cola para su comprobación posterior. Cuando el mensaje no sea relevante, se derrocha este tiempo de procesamiento. Los procedimientos convencionales para constatar la relevancia de un mensaje, exigen demasiado tiempo en la rutina del servicio de interrupción. Otro ejemplo de tiempo derrochado de procesamiento es un proceso de inferior prioridad que periódicamente aparta mensajes de la cola y los compara con la lista de los mensajes deseados, partiendo de que los mensajes sean o no relevantes.
En detalle el procedimiento típico para el procesamiento de un mensaje de red, CAN, es como sigue:
Un mensaje de red llega al subsistema CAN de la unidad electrónica de mando. De esta manera la CPU es avisada mediante una interrupción. Se interrumpe el procesamiento normal de datos, y se hace cargo la rutina del servicio de interrupción (ISR) para sacar el mensaje del subsistema CAN, y lo pone en una cola para ulterior procesamiento. Este software está estructurado frecuentemente demasiado riguroso, para minimizar los efectos sobre otras actividades del sistema, y no puede reconocerse cómo hay que filtrar los mensajes en esta rutina del servicio de interrupción (ISR), sin añadir recursos extensivos al sistema. La CPU recupera de nuevo el control de del proceso antes activo. En un momento más favorable, la CPU comprueba la cola, si existen cualesquiera mensajes. Cuando existen uno o varios mensajes, se comprueban individualmente para constatar su relevancia para esta unidad electrónica de mando en la red. Esta comprobación se realiza por lo regular de tal manera que se compara el identificador único de este mensaje, con una lista de identificadores conocidos, que representan los mensajes relevantes. Cuando el mensaje nuevo se ajusta a un mensaje de interés, este mensaje es procesado por el sistema. Cuando el mensaje nuevo no se ajusta, después de que el identificador del mensaje se hubiera comparado exhaustivamente con todos los identificadores relevantes conocidos, se rechazará este mensaje. Este proceso se repite hasta que se haya alcanzado un cierto límite. Este límite puede ser una cola vacía, un intervalo de tiempo, o un número de mensajes. La CPU realiza otras tareas, y repite este procedimiento en un momento futuro determinado.
En un sistema semejante, la rutina del servicio de interrupción (ISR) realiza una cantidad fija de trabajo, que exige unos 60 microsegundos de tiempo de la CPU. El procesador de mensajes rastrea la lista de mensajes evaluados, lo que exige unos 100 microsegundos de tiempo de la CPU, para batir exhaustivamente la lista. A causa de la gran gama de valores para los identificadores de mensajes, no hay ninguna optimización de rápida identificación, que pudiera acelerar la búsqueda, de manera que es por lo regular una búsqueda lineal. Cuando se aumenta la longitud de la lista, crece proporcionalmente el tiempo para el examen de la lista. Cuando se encuentra un mensaje en la lista, entonces se decodifica el mensaje. Una unidad electrónica típica de mando podría encontrar menos del 20% de los mensajes relevantes por sí mismos. Para cada mensaje sin relevancia, la CPU utiliza unos 160 microsegundos.
El documento DE 41 10 372 A describe un sistema multiplexor de transmisión para vehículos, en el que están unidas unas con otras, una multitud de redes mediante un nudo de red. En los aparatos de mando conectados a la red, se intercambian datos mediante la red, reconociéndose en forma no explicada en detalle, de la mano de la información de la identidad de los mensajes individuales, a qué aparato de mando está dirigido un mensaje.
El documento EP 0 581 033 A describe otro sistema de transmisión de datos. De los datos transmitidos por una línea de la red, a una unidad de mando, se extraen los códigos de identidad, y se comparan con cada uno de códigos predeterminados. Desde luego aquí es posible un reconocimiento rápido de los datos coordinados a la unidad de mando, aunque con alto gasto de hardware, y con la problemática de que sólo pueden agregarse problemáticamente otros códigos.
La misión que sirve de base a la invención consiste en facilitar un método más rápido para el procesamiento y comprobación de la relevancia de mensajes de red, que puede utilizarse con CPUs baratas, que rechaza los mensajes sin relevancia, y que trabaja también en condiciones de gran carga de la red con mensajes.
Esta misión se resuelve según la invención mediante la teoría de la reivindicación 1, exponiéndose en las demás reivindicaciones, notas características que perfeccionan la solución en forma ventajosa.
Se realiza una operación matemática rápida con el respectivo identificador (único) del mensaje que se mande por la red. Esta operación devuelve un pequeño valor de dirección, que sirve para consultar en una tabla de consulta, relativamente pequeña, con valores indexados, y que contiene un valor relevante para cada valor indexado. La tabla devuelve un 1 (o un valor no nulo) para valores indexados que correspondan a mensajes relevantes, y un cero para mensajes irrelevantes. Se aceptan los mensajes relevantes y se continúan procesando. Lo último se hace preferentemente colocándolos primeramente en una cola de valores, en una memoria tampón RAM [de acceso aleatorio]. Se rechazan mensajes irrelevantes (es decir se ignoran o se borran). Esta implementación es eficiente y suficientemente rápida para realizarse como parte de una rutina del servicio de interrupción. Como operación matemática se toma en consideración en especial, una operación de restos de una división, a pesar de que también podrían utilizarse cualesquiera otras operaciones, por ejemplo, las que se utilizan para el cálculo de dígitos de comprobación (por ejemplo, para números de cuentas).
Una elección cuidadosa de la función aritmética y del tamaño de la tabla, facilita un sistema que no exige ningún hardware adicional para filtrar los mensajes. Cuando el mensaje no es relevante, no se le pone en la cola, y se termina la rutina del servicio de interrupción, lo cual ahorra un tiempo considerable en la misma rutina del servicio de interrupción. Tan sólo los mensajes que pasen el "filtrado" en la rutina del servicio de interrupción, son almacenados en la cola y, eventualmente, se comparan con una lista de mensajes (relevantes) deseados. Cuando el mensaje haya sido rechazado por la rutina del servicio de interrupción, en este segundo paso del procedimiento no se necesita tiempo ninguno para este mensaje. En comparación con una rutina típica de búsqueda, lineal o binaria, que podría utilizarse en el segundo paso del procedimiento, este procedimiento ahorra una cantidad considerable de tiempo de CPU, que puede utilizarse para otros fines de procesamiento.
La red según la invención puede emplearse en especial en vehículos agrícolas.
En los dibujos está representado un ejemplo de realización de la invención, descrito en detalle a continuación. Se muestran:
Figura 1 Un diagrama esquemático simplificado de bloques, de una red de un vehículo, con una multitud de unidades electrónicas de mando (ECUs).
Figura 2 Un diagrama esquemático en el que se muestra una recepción de mensajes según la presente invención.
Figura 3 Un diagrama lógico de flujo, en el que está representado un sector de recepción de mensajes o de filtros, según la invención; y
Figura 4 Un diagrama lógico de flujo, en el que está representado un sector de procesamiento de mensajes, según la presente invención.
En la figura 1 está representada una red CAN (10) de un vehículo, que comprende una multitud de unidades 12 - 30 electrónicas de mando (ECUs) (se muestran diez, aunque puede utilizarse la presente invención con más o menos ECUs), que están unidas entre sí mediante un bus 31 de CAN.
En la figura 2 el bus 31 transmite el tráfico de mensajes que se compone, por ejemplo, -con relación a una ECU específica- de mensajes relevantes M12, M27 y M89 (sombreados) y de mensajes irrelevantes M73, M43, M15, M96, M87, M78 y M10 (no sombreados). Cada mensaje comprende un sector del identificador y un sector de datos. Puesto que estos mensajes de red se envían periódicamente por otras ECUs, y se reciben por una ECU, se procesan como sigue: Una interfaz 32 de hardware de la red en la ECU, recibe un mensaje, e inicia una rutina 34 del servicio de interrupción (ISR) que interrumpe cualquier otro procesamiento de datos por el software.
La rutina 34 del servicio de interrupción es de naturaleza extremadamente crítica, puesto que interrumpe en la ECU toda actividad de prioridad inferior. Según la presente invención, un algoritmo filtrante de aceptación, calcula un valor de dirección, a partir de una clave de direcciones, es decir, de una sección del identificador del mensaje con 29 bits. El cálculo del valor de dirección se describe mediante el siguiente código ficticio:
Desenmascare la prioridad y los "otros" bits reservados, del identificador.
Desenmascare la dirección de origen (SA).
Cuando sea un mensaje definido para el propietario según J1939, se combinará automáticamente el valor 1 del byte en el lugar de la dirección de origen.
Luego se realiza la función de cálculo de la dirección.
8
El valor de dirección (en el caso del ejemplo, un resto de la división respecto a un número (primo), o sea, el valor de un módulo) se compara con un juego correspondiente de valores indexados de una tabla de direcciones, o de una tabla 36 de consulta, presentando cada valor indexado un valor REL correspondiente de relevancia, que es 0 en caso de que no sea relevante, y 1, en caso de que sea relevante. De preferencia el valor de dirección puede llegar de 0 a N, siendo N preferentemente un número primo que representa el número de valores indexados en la tabla de consulta. Una función creada apropiadamente para el cálculo de direcciones, y una tabla de consultas con un valor apropiado para N, reduce el número de mensajes irrelevantes casi a cero. Mensajes que pasen la prueba (con un valor REL de 1) se desplazan a una memoria 38 tampón RAM, que por lo regular está configurada como tampón de primera entrada primera salida (FIFO). Mensajes sin relevancia (valor REL de 0) son ignorados o eliminados por la respectiva ECU que realiza este procedimiento.
En un momento más apropiado y esencialmente menos crítico, una rutina 40 del servicio de procesamiento de mensajes, procesará los mensajes en la memoria 38 tampón, tomando en primer lugar el mensaje más antiguo. La memoria 38 tampón contendrá muchos menos mensajes para el procesamiento adicional. La rutina 40 del servicio de procesamiento de mensajes, compara los identificadores (M12, M27, etc.) de mensajes con una lista 42 almacenada de mensajes evaluados. Cuando el nuevo mensaje aparece en la lista 42, proseguirá la rutina 40 con la decodificación, y en 44 extrae los datos del mensaje. Cuando la rutina 40 constata que en la lista 42 no aparece el mensaje nuevo, ignorará el mensaje. Luego la rutina 40, o bien puede terminar, o bien puede empezar de nuevo, considerando el mensaje siguiente en la memoria 38 tampón.
En este procedimiento, la rutina del servicio de interrupción (ISR) realiza una cantidad variable de trabajo, que exige unos 60 microsegundos de tiempo de la CPU, cuando se acepta el mensaje, pero tan sólo de 25 a 30 microsegundos de tiempo de la CPU, cuando se rechaza el mensaje. La rutina 40 del servicio de procesamiento de mensajes, rastrea la lista 42 de mensajes evaluados, lo cual exige aproximadamente 100 microsegundos de tiempo de la CPU, para examinar exhaustivamente la lista 42. Los mensajes procesados son principalmente mensajes con valor para este nudo. Una elección adecuada del filtro del cálculo de direcciones, reducirá los mensajes sin interés casi a cero. Cuando se aumente la longitud de la lista 42, se aumentará el tiempo para examinar la lista.
Cuando se encuentra un mensaje en la lista 42, a continuación se decodifica el mensaje. En un sistema típico aproximadamente un 80% de los mensajes, no será relevante para una unidad electrónica concreta de mando, y un gran porcentaje de ellos será rechazado por la rutina 34 del servicio de interrupción (ISR), de manera que se ahorre una cantidad considerable de tiempo de procesamiento de la CPU, que entonces puede utilizarse para la realización de otras funciones.
Con referencia a la figura 2 y en especial, a la tabla 36 de direcciones, hay que hacer notar que la tabla 36 de direcciones permite poder procesar mediante el sistema todos los identificadores de interés, mientras que se rechazan casi todos los identificadores que no sean de interés. Como resultado de la invención, la capacidad de rendimiento global está dominada por la calidad de la tabla utilizada de direcciones. Una tabla muy grande de direcciones, que esté compuesta de 2^{29} entradas, permitirá un rechazo de todos los identificadores no relevantes para una CPU dada. Puesto que, no obstante, una memoria de tal magnitud no es económica, una tabla de direcciones más asequible, podría presentar un tamaño de 256 a 2048 entradas.
Cuando el tamaño de la tabla de direcciones se reduce (menor de 2^{29} entradas), un cierto porcentaje de los identificadores se conducirá para una función dada de cálculo de direcciones, al cálculo del propio valor de dirección. Mensajes con esta característica tienen el mismo valor de relevancia, y cuando cualquiera de estos mensajes es relevante, se identificarán, por tanto, todos como relevantes por la rutina del servicio de interrupción. A pesar de ello, los verdaderamente no relevantes se procesan, y son rechazados por la rutina 40 de procesamiento de mensajes, cuando no se encuentra en la lista 42 ningún identificador ajustado. Por consiguiente, la elección de una tabla de direcciones, apropiadamente dimensionada, y de una transformación aritmética apropiada (en este ejemplo: elección del divisor para el resto de la división) tendrá como resultado un sistema que mantenga todos los mensajes de interés, y rechace un porcentaje muy alto de mensajes sin interés. El divisor para el resto de la división puede comprobarse empíricamente en este ejemplo, mediante un proceso iterativo que aplique una operación de restos de división (operación del módulo) a los identificadores, produciendo la operación de restos de la división, valores indexados para la tabla de direcciones. Por ejemplo, un divisor de restos de división, de 251, producirá una tabla de direcciones con 251 valores indexados únicos.
La producción de una buena tabla de direcciones y de buenos divisores de restos de división, exige un análisis de la cantidad de mensajes que existen en el sistema. Es importante reconocer que para un intervalo dado de tiempo (un intervalo de prueba), existen en la red, I mensajes que son relevantes para la unidad electrónica elegida de mando (ECU), y que T será el número total de mensajes en la red. Existirá una cantidad de mensajes -J- que procesa la unidad electrónica de mando, pero que no son relevantes. Utilizando estas cantidades de mensajes, es posible iterar mediante distintos candidatos del divisor de los restos de la división, para comprobar la calidad del candidato a la solución. Una buena solución producirá la menor cantidad para J. Una prueba durante 60 segundos es en general un buen intervalo de prueba durante el cual puede calcularse esta información.
Una tabla apropiada de direcciones, puede generarse de la forma siguiente:
a.
Haga una lista de todos los mensajes que haya de recibir la unidad electrónica elegida de mando.
b.
Para cada mensaje haga una lista del identificador y de la tasa normal de repetición de este mensaje.
c.
Calcule la cantidad de apariciones de este mensaje durante un tiempo de prueba (60 segundos). Cuando el mensaje no se envíe normalmente, el resultado puede reducirse a cero. Cuando es este el caso, ponga la cantidad de apariciones en 1. Esta lista representa la cantidad de mensajes, que se identifica con X.
d.
Deduzca otra lista de todos los mensajes que queden que no tenga que recibir la unidad electrónica elegida de mando. Calcule de nuevo la cantidad de apariciones como de ha descrito más arriba. Esta lista representa la cantidad de mensajes identificados como Y.
e.
Deduzca la cantidad Z de mensajes, mediante la combinación de las cantidades X e Y. (Esta es la cantidad de todos los mensajes, que podría aparecer en la red en el tiempo de prueba).
El cálculo iterativo procede como sigue:
a.
Para cada candidato del divisor para el resto de la división
b.
Produzca una tabla de direcciones con un tamaño que corresponda al divisor para restos de la división, e inicialice todas las entradas al valor 0.
c.
Calcule el valor de la dirección para cada identificador en la cantidad X. Señale esta entrada en la tabla con un 1, para indicar que se reciba todo identificador que tenga en el resultado este valor de dirección.
d.
Cuando se hubieran procesado todos los mensajes en la cantidad X, se ha compuesto completamente la tabla de direcciones.
Para evaluar la calidad de esta tabla, procese las cantidades X y Z del modo siguiente:
a.
Inicialice un contador para los mensajes de interés, de cero - I.
b.
Inicialice un contador para los mensajes que pasen el filtro de restos de la división, pero que no se deseen, de cero - J.
c.
Inicialice un contador para todos los mensajes en la red, de cero - T.
d.
Para cada identificador en la cantidad X,
agregue la aparición en I,
agregue la aparición en T.
e.
Para cada identificador en la cantidad Y,
calcule el resto de la división (= valor de dirección), vea según el valor de relevancia, y
cuando el valor de relevancia no sea cero (el mensaje pasa el filtro), agregue la aparición en J,
agregue la aparición en T.
I + J reproduce ahora la cantidad total de los mensajes recibidos, y J/(I + J) reproduce como porcentaje, la cantidad de "ruido" en la red ¾ trabajo innecesario como resultado de los mensajes que pasan el filtro.
Esto puede expresarse también como porcentaje de la totalidad de los mensajes, como J/T.
Repita este proceso para los siguientes candidatos como divisor para el resto de la división, y después de que se hubiera realizado el proceso para todos los divisores propuestos para el resto de la división, elija el divisor para el resto de la división y, por tanto, la tabla de direcciones que rechace el mayor número de mensajes no relevantes.
Remítase a la figura 3 en la que la rutina del servicio de interrupción (ISR) comienza en el paso 100. El paso 102 constata si existen o no cualesquiera mensajes a procesar. Cuando no, se abandona la rutina en el paso 104, Cuando sí, el paso 106 calcula un valor del resto de la división, como valor de dirección. En el paso 108 se compara el valor del resto de la división, con el valor indexado en la tabla 36 de consulta. Cuando la tabla 36 de consulta indica que el mensaje no es relevante, el paso 116 inicializa para la recepción de un mensaje nuevo, y la rutina regresa al paso 102.
Cuando la tabla 36 de consulta indica que el mensaje es relevante, el paso 110 saca el mensaje del bus 31, y el paso 112 pone el mensaje en una cola (en la memoria 38 tampón), y actualiza la cola. Luego el paso 114 inicializa para la recepción de un mensaje nuevo, y la rutina regresa al paso 102.
Remítase a la figura 4 en la que la rutina 40 de procesamiento de mensajes comienza en el paso 200. El paso 202 constata si existen o no cualesquiera mensajes para procesar. Cuando no, se abandona la rutina en 204. Cuando sí, el paso 206 saca el mensaje de la cola (en la memoria 38 tampón). En el paso 208 se pone un valor indexado de la lista, de tal manera que represente el primer valor en la lista 42 almacenada de identificadores. Cuando después en el paso 210, el identificador del mensaje sacado de la cola, se ajusta al primer valor en la lista 42 almacenada, se procesa normalmente el mensaje en el paso 212. Cuando el identificador del mensaje sacado de la cola, no se ajusta al primer valor en la lista 42 almacenada, el paso 214 eleva el valor indexado de la lista, de manera que represente el valor siguiente en la lista 42. Cuando después el valor indexado de la lista exceda del último registro en la lista 42, el paso 216 retorna la rutina al paso 202. En otro caso, el paso 216 retorna la rutina al paso 210, para constatar si el identificador del mensaje extraído se ajusta al valor siguiente en la lista 42 almacenada.
La rutina 34 del servicio de interrupción es la rutina crítica en el tiempo, y lleva a cabo de preferencia los menos procesamientos posibles. Cuando la rutina 34 del servicio de interrupción coloca un mensaje en la cola, la rutina 40 de procesamiento de mensajes, procesará después los mensajes en esta cola.
Lo que sigue es el código fuente del programa (código ficticio) para las rutinas de las figuras 3 y 4.
1
2
3
Una parte de la publicación presente contiene material que es objeto de una reivindicación a la protección de la propiedad intelectual. El titular de la propiedad intelectual no tiene inconvenientes contra copias por terceros, de este documento de la oficina de patentes, pero se reserva todos los demás derechos.

Claims (7)

1. Procedimiento para el intercambio de mensajes en una red (10) con una multitud de unidades (12 - 30) electrónicas de mando que están unidas entre sí mediante un bus (31), e intercambian mensajes entre sí, cada uno de los cuales presenta un sector con un identificador y datos, con los siguientes pasos realizados por las unidades (12 - 30) electrónicas de mando:
Recepción de un mensaje;
Conversión del identificador del mensaje en un valor de dirección, efectuándose una operación aritmética;
Lectura y extracción de un valor relevante, de una tabla (36) en la que están almacenados valores de relevancia para una multitud de valores indexados, sacándose de la tabla (36) el valor de relevancia del valor indexado, que corresponda al respectivo valor de dirección;
Ignorancia del mensaje cuando el valor correspondiente de relevancia indique que el mensaje no es relevante para la unidad (12 - 30) electrónica afectada de mando;
Continuación del procesamiento del mensaje cuando el valor correspondiente de relevancia indique que el mensaje es relevante para la unidad (12 - 30) electrónica afectada de mando.
2. Procedimiento según la reivindicación 1, almacenándose el mensaje en una memoria (38) tampón, cuando el correspondiente valor de relevancia indica que el mensaje es relevante para la unidad (12 - 30) electrónica afectada de mando, y por lo regular se continúa procesando más tarde.
3. Procedimiento según la reivindicación 1, continuándose procesando solamente mensajes procedentes de la memoria (38) tampón.
4. Procedimiento según alguna de las reivindicaciones 1 a 3, presentando el valor de dirección menos bits de datos que el identificador del mensaje.
5. Procedimiento según alguna de las reivindicaciones precedentes, coincidiendo una cantidad de valores únicos de dirección con una cantidad de valores indexados.
6. Red (10) que está diseñada para la realización de un procedimiento según alguna de las reivindicaciones 1 a 5.
7. Vehículo agrícola con una red según la reivindicación 6.
ES00112933T 1999-07-14 2000-06-20 Red y procedimiento para el intercambio de mensajes. Expired - Lifetime ES2258427T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/354,345 US6496885B1 (en) 1999-07-14 1999-07-14 Method for processing network messages
US354345 2006-02-14

Publications (1)

Publication Number Publication Date
ES2258427T3 true ES2258427T3 (es) 2006-09-01

Family

ID=23392898

Family Applications (1)

Application Number Title Priority Date Filing Date
ES00112933T Expired - Lifetime ES2258427T3 (es) 1999-07-14 2000-06-20 Red y procedimiento para el intercambio de mensajes.

Country Status (11)

Country Link
US (1) US6496885B1 (es)
EP (1) EP1069731B1 (es)
JP (1) JP2001086140A (es)
AR (1) AR024726A1 (es)
AT (1) ATE322782T1 (es)
AU (1) AU764230B2 (es)
BR (1) BR0002716A (es)
CA (1) CA2298275C (es)
DE (1) DE50012511D1 (es)
DK (1) DK1069731T3 (es)
ES (1) ES2258427T3 (es)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6615302B1 (en) * 1999-09-15 2003-09-02 Koninklijke Philips Electronics N.V. Use of buffer-size mask in conjunction with address pointer to detect buffer-full and buffer-rollover conditions in a CAN device that employs reconfigurable message buffers
DE10000305B4 (de) * 2000-01-05 2011-08-11 Robert Bosch GmbH, 70469 Verfahren und Vorrichtung zum Austausch von Daten zwischen wenigstens zwei mit einem Bussystem verbundenen Teilnehmern
US7343390B2 (en) * 2000-12-20 2008-03-11 Microsoft Corporation Systems and methods for conducting internet content usage experiments
CN1293726C (zh) * 2003-01-06 2007-01-03 华为技术有限公司 在网络链路上实现快速传输桥接数据的方法
JP4209257B2 (ja) * 2003-05-29 2009-01-14 三菱重工業株式会社 分散型コントローラとその動作方法、及び、分散型コントローラを備えるフォークリフト
JP2004352466A (ja) * 2003-05-30 2004-12-16 Mitsubishi Heavy Ind Ltd 自走式産業機械の機械制御装置、及び、それの機械制御方法
US7694061B2 (en) * 2004-09-08 2010-04-06 Fisher-Rosemount Systems, Inc. Discarding a partially received message from a data queue
US7957868B2 (en) * 2007-06-06 2011-06-07 Deere & Company Electronic power module for an agricultural vehicle
EP2061215B1 (de) * 2007-11-17 2012-02-01 Vector Informatik GmbH Prüfmodul und Prüfverfahren zur Relevanzprüfung eines Kennzeichners
US8751098B2 (en) 2008-01-25 2014-06-10 Omnitracs, Llc Method of monitoring CANbus information
FR2949933B1 (fr) 2009-09-09 2012-03-30 Peugeot Citroen Automobiles Sa Procede et dispositif de filtrage de messages
JP5651615B2 (ja) * 2012-02-16 2015-01-14 日立オートモティブシステムズ株式会社 車載ネットワークシステム
EP2832070B1 (en) 2012-03-29 2020-05-20 Arilou Information Security Technologies Ltd. Device for protecting a vehicle electronic system
US9232431B2 (en) * 2012-12-19 2016-01-05 Marvell World Trade Ltd. Selective layer-2 flushing in mobile communication terminals
US9792440B1 (en) * 2014-04-17 2017-10-17 Symantec Corporation Secure boot for vehicular systems
US11048797B2 (en) * 2015-07-22 2021-06-29 Arilou Information Security Technologies Ltd. Securing vehicle bus by corrupting suspected messages transmitted thereto
US20170072876A1 (en) * 2015-09-14 2017-03-16 Broadcom Corporation Hardware-Accelerated Protocol Conversion in an Automotive Gateway Controller
US10361934B2 (en) * 2015-09-28 2019-07-23 Nxp B.V. Controller area network (CAN) device and method for controlling CAN traffic
US10715475B2 (en) * 2018-08-28 2020-07-14 Enveloperty LLC Dynamic electronic mail addressing
JP7182470B2 (ja) * 2019-01-11 2022-12-02 富士通株式会社 メッセージ処理装置およびメッセージ処理方法
JP7249853B2 (ja) * 2019-04-17 2023-03-31 日立造船株式会社 作業情報取得装置および分類器生成装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4412285A (en) * 1981-04-01 1983-10-25 Teradata Corporation Multiprocessor intercommunication system and method
JP2904296B2 (ja) * 1990-03-30 1999-06-14 マツダ株式会社 車両用多重伝送装置
US5237571A (en) * 1991-09-26 1993-08-17 Ipc Information Systems, Inc. Broadcast system for distributed switching network
JP3137437B2 (ja) * 1992-06-30 2001-02-19 株式会社東芝 データ伝送システム
US6038309A (en) * 1996-06-13 2000-03-14 Northern Telecom Limited Apparatus and method for externally controlling processing of a service call

Also Published As

Publication number Publication date
CA2298275C (en) 2004-04-13
AU764230B2 (en) 2003-08-14
BR0002716A (pt) 2001-03-13
US6496885B1 (en) 2002-12-17
JP2001086140A (ja) 2001-03-30
EP1069731B1 (de) 2006-04-05
EP1069731A3 (de) 2004-05-12
EP1069731A2 (de) 2001-01-17
DK1069731T3 (da) 2006-07-31
ATE322782T1 (de) 2006-04-15
AU4266600A (en) 2001-01-18
DE50012511D1 (de) 2006-05-18
CA2298275A1 (en) 2001-01-14
AR024726A1 (es) 2002-10-23

Similar Documents

Publication Publication Date Title
ES2258427T3 (es) Red y procedimiento para el intercambio de mensajes.
US6603394B2 (en) Multi-protocol wireless communication module
US5025364A (en) Microprocessor emulation system with memory mapping using variable definition and addressing of memory space
US20070130397A1 (en) System and method for encoding packet header to enable higher bandwidth efficiency across PCIe links
CN110460573A (zh) 一种应用于汽车ecu安全升级管理系统及方法
KR0161101B1 (ko) 호스트 인터럽트 및 지시운용을 가지는 네트워크 어댑터
RU2712138C2 (ru) Способ, система и электронный блок управления для предотвращения спуфинга в автомобильной сети
CA2583695A1 (en) Simultaneous vehicle protocol communication apparatus and method
RU2008136752A (ru) Шлюз для автоматической маршрутизации сообщений между шинами
JP4478731B2 (ja) 通信装置及びゲートウェイ装置
JP4877663B2 (ja) データ中継装置、及び当該装置で用いられるデータ中継方法
EP0621709A1 (en) Message communication system
US8590778B2 (en) Method for operating a tachograph and tachograph
US10095643B2 (en) Direct memory access control device for at least one computing unit having a working memory
EP0525736A1 (en) Data storing system for a communication control circuit
CN107329917A (zh) 一种数据传输方法及装置
JP3604548B2 (ja) アドレス一致検出装置、通信制御システム及びアドレス一致検出方法
CN110736611A (zh) 一种车灯零点校准的方法及装置
KR20240046830A (ko) 칩-대-칩 인터페이스를 위한 온-디맨드 패킷화
CN104700645A (zh) 基于记录仪管理平台端电子围栏的验证方法及电子围栏的验证装置
WO2021145116A1 (ja) 異常検知方法、プログラム及び異常検知システム
CN114572005A (zh) 车辆里程备份的方法及终端设备
CN104424137B (zh) 服务器单元与虚拟媒体装置及其存取方法数据
CN112597079B (zh) 卷积神经网络加速器的数据回写系统
CN111405592B (zh) 一种数字传感器快速组网的方法