ES2869240T3 - Procedimiento y dispositivo para escribir objetos de software en una unidad de control electrónico de un motor de combustión interna - Google Patents

Procedimiento y dispositivo para escribir objetos de software en una unidad de control electrónico de un motor de combustión interna Download PDF

Info

Publication number
ES2869240T3
ES2869240T3 ES19167958T ES19167958T ES2869240T3 ES 2869240 T3 ES2869240 T3 ES 2869240T3 ES 19167958 T ES19167958 T ES 19167958T ES 19167958 T ES19167958 T ES 19167958T ES 2869240 T3 ES2869240 T3 ES 2869240T3
Authority
ES
Spain
Prior art keywords
memory
code
key code
seed
key
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
ES19167958T
Other languages
English (en)
Inventor
Iorio Felice Di
Roberto Massaro
Federico Costa
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.)
Lombardini SRL
Original Assignee
Lombardini SRL
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 Lombardini SRL filed Critical Lombardini SRL
Application granted granted Critical
Publication of ES2869240T3 publication Critical patent/ES2869240T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0423Input/output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25257Microcontroller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

Abstract

Un procedimiento de escritura de objetos de software en una memoria no volátil reescribible (245) de una unidad de control electrónico (215) de un motor de combustión interna (100), donde el procedimiento comprende: - recibir una solicitud de acceso de un dispositivo de escritura de memoria (300), - generar un código de semilla, - transmitir el código de semilla al dispositivo de escritura de memoria (300), - generar un primer código de clave sobre la base del código de semilla y un primer código de identificación almacenados en la memoria no volátil reescribible (245), - generar un segundo código de clave sobre la base del código de semilla y un segundo código de identificación almacenados en la memoria no volátil reescribible (245), - recibir un código de clave de referencia del dispositivo de escritura de memoria (300), - comparar el código de clave de referencia con el primer código de clave y/o con el segundo código de clave, - permitir que el dispositivo de escritura de memoria (300) escriba objetos de software en la memoria no volátil reescribible (245), si el código de clave de referencia corresponde al primer código de clave o al segundo código de clave, y - permitir que el dispositivo de escritura de memoria (300) sobrescriba el segundo código de identificación almacenado en la memoria no volátil reescribible (245) con un nuevo código de identificación, si el código de clave de referencia recibido del dispositivo de escritura de memoria (300) corresponde al segundo código de clave.

Description

DESCRIPCIÓN
Procedimiento y dispositivo para escribir objetos de software en una unidad de control electrónico de un motor de combustión interna
CAMPO DE LA DESCRIPCIÓN
[0001] La presente descripción se refiere a un procedimiento y a un dispositivo para escribir (o sobrescribir) objetos de software en una memoria no volátil reescribible de una unidad de control electrónico de un motor de combustión interna.
INFORMACIÓN DE ANTECEDENTES
[0002] Se sabe que un motor de combustión interna, por ejemplo, un motor de combustión de un vehículo de motor, puede estar equipado con una unidad de control electrónico (ECU) para controlar diversos dispositivos de funcionamiento del motor (por ejemplo, inyectores de combustible).
[0003] La ECU puede incluir una unidad central de procesamiento (CPU) que controla los dispositivos de funcionamiento del motor usando objetos de software predeterminados, que incluyen programas de control del motor y datos de calibración (por ejemplo, tablas/mapas de datos), que pueden almacenarse en una memoria no volátil reescribible (por ejemplo, una memoria flash) de la ECU.
[0004] Estos objetos de software se pueden escribir (o sobrescribir) mediante un dispositivo de escritura de memoria externa que se puede conectar a la ECU.
[0005] Para obtener acceso a la memoria, el usuario del dispositivo de escritura de memoria puede someterse a un procedimiento de autenticación mediante el cual solo el fabricante del motor (es decir, el personal autorizado del fabricante del motor) puede escribir (o sobrescribir) programas de control del motor y datos de calibración.
[0006] Al cambiar los programas de control y/o los datos de calibración almacenados en la memoria, el fabricante del motor puede cambiar el rendimiento del motor de combustión interna en muchos aspectos, por ejemplo, en términos de generación de energía, emisiones contaminantes, etc.
[0007] De esta manera, el fabricante del motor puede suministrar a sus clientes (por ejemplo, fabricantes de vehículos) un amplio intervalo de motores de combustión interna basados en la misma construcción mecánica.
[0008] Sin embargo, esta estrategia implica que el fabricante del motor escriba internamente las memorias de todas las ECU y, para cada configuración específica de los programas de control y los datos de calibración, asigne a estas ECU un número de pieza diferente y mantenga en stock al menos una cantidad mínima de ECU para cada número de pieza, aumentando así los costos industriales y de almacén, los documentos US 2014/317729 y US 2013/227650 se consideran técnica anterior.
RESUMEN DE LA INVENCIÓN
[0009] La invención se define por las reivindicaciones adjuntas. En vista de lo anterior, un objeto de la presente descripción es resolver, o al menos reducir positivamente, el inconveniente mencionado anteriormente proporcionando una solución que sea capaz de reducir los costos que el fabricante del motor tiene que cubrir en relación con la gestión de las ECU.
[0010] Otro objeto es alcanzar este objetivo con una solución sencilla, racional, segura y bastante barata.
[0011] Este y otros objetos se logran mediante las realizaciones de la descripción que tienen las características incluidas en las reivindicaciones independientes. Las reivindicaciones dependientes delinean aspectos adicionales de las diversas realizaciones.
[0012] Una realización de la presente descripción proporciona un procedimiento para escribir (o sobrescribir) objetos de software en una memoria no volátil reescribible de una unidad de control electrónico (ECU) de un motor de combustión interna, donde el procedimiento comprende:
- recibir una solicitud de acceso de un dispositivo de escritura de memoria,
- generar un código de semilla,
- transmitir el código de semilla al dispositivo de escritura de memoria,
- generar un primer código de clave sobre la base del código de semilla y un primer código de identificación (por ejemplo, una primera contraseña),
- generar un segundo código de clave sobre la base del código de semilla y un segundo código de identificación (por ejemplo, una segunda contraseña),
- recibir un código de clave de referencia del dispositivo de escritura de memoria,
- comparar el código de clave de referencia con el primer código de clave y/o con el segundo código de clave, y - permitir que el dispositivo de escritura de memoria escriba objetos de software en la memoria no volátil reescribible, si el código de clave de referencia corresponde (por ejemplo, es igual) al primer código de clave o al segundo código de clave.
[0013] Gracias a esta solución, la memoria de la ECU solo puede escribirse (o sobrescribirse) si el dispositivo de escritura de memoria, que puede ser un dispositivo electrónico externo configurado para conectarse a la ECU, puede proporcionar un código de clave de referencia que coincida con el primer o el segundo código de clave, realizando así un procedimiento de autenticación que evite el uso no autorizado del dispositivo de escritura de memoria. En otras palabras, solo los dispositivos de escritura de memoria que son capaces de proporcionar un código de clave de referencia que coincida con el primer o el segundo código de clave pueden escribir o sobrescribir la memoria de la ECU y, dado que el primer y el segundo códigos de clave se generan sobre la base de un primer y un segundo códigos de identificación que se pueden mantener confidenciales y solo se proporcionan a los usuarios autorizados, este procedimiento garantiza que la memoria de la ECU permanezca segura y no pueda ser escrita (por ejemplo, manipulada) por usuarios no autorizados. Por otra parte, dado que este procedimiento de autenticación puede satisfacerse mediante dos valores diferentes del código de clave de referencia, el dispositivo de escritura de memoria puede ser utilizado válidamente por dos usuarios autorizados, por ejemplo, por el fabricante del motor y por un cliente del mismo (por ejemplo, el fabricante del vehículo que utiliza el motor de combustión interna). De esta manera, mientras que el fabricante del motor siempre mantiene el control del motor de combustión interna que produce, los objetos de software pueden ser escritos en la memoria de la ECU por el fabricante del vehículo, reduciendo así los costos que el fabricante del motor tiene que cubrir en relación con la gestión de las ECU.
[0014] De acuerdo con algunas realizaciones, el primer código de clave puede generarse si (es decir, siempre que) la solicitud de acceso corresponde a una primera solicitud de acceso de tipo, y el segundo código de clave puede generarse si (es decir, siempre que) la solicitud de acceso corresponde a una segunda solicitud de acceso de tipo.
[0015] De esta manera, el primer código de clave y el segundo código de clave no se generan todas las veces que se ejecuta el procedimiento.
[0016] Cuando se recibe una primera solicitud de acceso de tipo, el procedimiento puede proporcionar solo la generación del primer código de clave, solo la comparación del código de clave de referencia con el primer código de clave y solo el permiso de que el dispositivo de escritura de memoria escriba objetos de software en la memoria no volátil reescribible, si el código de clave de referencia corresponde (por ejemplo, es igual) al primer código de clave. Cuando se recibe una segunda solicitud de acceso de tipo, el procedimiento puede proporcionar solo la generación del segundo código de clave, solo la comparación del código de clave de referencia con el segundo código de clave, y solo el permiso de que el dispositivo de escritura de memoria escriba objetos de software en la memoria no volátil reescribible, si el código de clave de referencia corresponde (por ejemplo, es igual) al segundo código de clave.
[0017] Sin embargo, otras realizaciones pueden prescribir que tanto el primer código de clave como el segundo código de clave se generen todas las veces que se ejecuta el procedimiento.
[0018] En este caso, el código de clave de referencia puede compararse tanto con el primer código de clave como con el segundo código de clave, y el dispositivo de escritura de memoria puede habilitarse para escribir objetos de software en la memoria no volátil reescribible, si el código de clave de referencia corresponde al primer código de clave o al segundo código de clave.
[0019] De acuerdo con un aspecto del procedimiento, los objetos de software que el dispositivo de escritura de memoria está habilitado para escribir (o sobrescribir) en la memoria no volátil reescribible, si el código de clave de referencia corresponde al primer código de clave o al segundo código de clave, pueden incluir al menos programas de control del motor y/o datos de calibración.
[0020] De esta manera, los fabricantes de motores podrán suministrar motores de combustión interna que tengan solo un tipo de ECU, por ejemplo, ECUs cuya memoria no tenga programas de control del motor y datos de calibración almacenados en ella (ECU en blanco) o cuya memoria solo tenga programas de control provisionales y/o datos de calibración que, por ejemplo, no permitan que el motor de combustión interna funcione realmente, mientras que los programas de control del motor efectivos y/o los datos de calibración pueden ser escritos o sobrescritos en la memoria por el cliente que compra el motor de combustión interna.
[0021] De acuerdo con otro aspecto del procedimiento, el primer código de identificación y el segundo código de identificación pueden almacenarse en la memoria no volátil reescribible. En particular, el primer y el segundo códigos de identificación se pueden almacenar en la memoria no volátil reescribible de antemano, es decir, antes de la ejecución del procedimiento de autenticación incorporado por el procedimiento descrito anteriormente, por ejemplo, por el proveedor de la unidad de control electrónico.
[0022] Gracias a esta solución, el primer y el segundo códigos de identificación se conservan dentro de la ECU, lo que aumenta la seguridad del procedimiento, es decir, aumenta la certeza de que los no autorizados no pueden acceder a la memoria de la ECU.
[0023] En particular, el primer código de identificación (que se puede asignar, por ejemplo, al fabricante del motor) se puede almacenar en una dirección de memoria fija de la memoria no volátil reescribible, por ejemplo, en un área de almacenamiento de arranque de esta.
[0024] De esta manera, el primer código de identificación se puede recuperar fácilmente de la dirección de memoria prescrita.
[0025] Por otro lado, el segundo código de identificación (que se puede asignar, por ejemplo, a los fabricantes de vehículos) se puede almacenar en una dirección de memoria de la memoria no volátil reescribible que se cifra en un código de puntero también almacenado en la memoria no volátil reescribible.
[0026] Este código de puntero puede tener una longitud fija (por ejemplo, una cantidad fija de bits) y/o puede almacenarse en una dirección de memoria fija de la memoria no volátil reescribible, por ejemplo, en un área de almacenamiento de datos de esta.
[0027] De esta manera, el segundo código de identificación se puede recuperar leyendo el código del puntero, descifrando el código del puntero para obtener la dirección de memoria real del segundo código de identificación y finalmente leyendo el segundo código de identificación de la dirección de memoria así obtenida.
[0028] Gracias a esta solución, la dirección de memoria del segundo código de identificación se puede cambiar fácilmente, por ejemplo, para permitir que el segundo código de identificación tenga diferentes longitudes (por ejemplo, cantidad diferente de bits) y/o para asignar mejor las áreas de almacenamiento de la memoria no volátil reescribible para hacer frente a diferentes liberaciones de los programas de control del motor y/o datos de calibración que se escribirán en ella.
[0029] De acuerdo con un aspecto del procedimiento, el código de semilla puede ser generado por la unidad de control electrónico, por ejemplo, mediante la ejecución de un algoritmo generador de semillas que puede almacenarse en la memoria no volátil reescribible, por ejemplo, en el área de almacenamiento de arranque.
[0030] De esta manera, el código de semilla se genera de manera segura utilizando recursos internos de la unidad de control electrónico, sin la necesidad de compartir información con el dispositivo de escritura de memoria u otros dispositivos externos.
[0031] De acuerdo con otro aspecto del procedimiento, el primer código de clave y el segundo código de clave pueden ser generados por la unidad de control electrónico, por ejemplo, mediante la ejecución de un algoritmo generador de claves que puede almacenarse en la memoria no volátil reescribible, por ejemplo, en el área de almacenamiento de arranque.
[0032] De esta manera, también el primer y el segundo códigos de clave se generan de manera segura utilizando recursos internos de la unidad de control electrónico, sin la necesidad de compartir información con el dispositivo de escritura de memoria u otros dispositivos externos.
[0033] El algoritmo generador de semillas y/o el algoritmo generador de claves pueden almacenarse en la memoria no volátil reescribible de antemano, es decir, antes de la ejecución del procedimiento de autenticación incorporado por el procedimiento descrito anteriormente, por ejemplo, por el proveedor de la unidad de control electrónico.
[0034] De acuerdo con un aspecto adicional del procedimiento, el código de clave de referencia puede ser generado por el dispositivo de escritura de memoria en función del código de semilla y un tercer código de identificación (por ejemplo, una tercera contraseña), por ejemplo, usando un algoritmo generador de claves del mismo tipo que el utilizado para generar el primer y el segundo códigos de clave.
[0035] De esta manera, la memoria de la ECU solo puede escribirse (o sobrescribirse), si el tercer código de identificación utilizado por el dispositivo de escritura de memoria corresponde (por ejemplo, es igual) al primer código de identificación o al segundo código de identificación.
[0036] El tercer código de identificación puede ser proporcionado al dispositivo de escritura de memoria por un usuario de este, por ejemplo, a través de una interfaz de usuario tal como un teclado, un lector de tarjetas, un lector de código visual (por ejemplo, un lector de código QR) u otro.
[0037] De esta manera, el dispositivo de escritura de memoria solo estará habilitado para escribir (o sobrescribir) la memoria no volátil reescribible de la ECU, si el usuario del dispositivo de escritura de memoria conoce (o está en posesión de) el primer código de identificación o el segundo código de identificación.
[0038] En otras realizaciones, el tercer código de identificación puede almacenarse en una memoria del dispositivo o memorizarse de otro modo dentro del dispositivo.
[0039] De esta manera, es posible predisponer una serie de dispositivos que son realmente capaces de acceder a la memoria de la ECU y solo los usuarios que están en posesión de uno de estos dispositivos serán realmente capaces de escribir la memoria no volátil reescribible.
[0040] De acuerdo con otro aspecto, el procedimiento puede comprender la etapa adicional de permitir que el dispositivo de escritura de memoria modifique el segundo código de identificación, si el código de clave de referencia recibido del dispositivo de escritura de memoria corresponde al segundo código de clave.
[0041] Gracias a este aspecto, el usuario que posee el segundo código de identificación, por ejemplo, el fabricante del vehículo, puede cambiar y/o personalizar su código, haciéndolo secreto para todos los demás que compran el mismo tipo de motores de combustión interna.
[0042] A modo de ejemplo, el fabricante del motor puede solicitar a su proveedor que proporcione ECUs que tienen un segundo código de identificación predeterminado. Al vender los motores de combustión interna, el fabricante del motor podrá comunicar el segundo código de identificación a todos sus clientes, de modo que cada uno de ellos esté habilitado para escribir (o sobrescribir) la memoria reescribible de las ECU. A su vez, cada uno de estos clientes puede cambiar el segundo código de identificación a voluntad, evitando así que las memorias de la ECU de los motores de combustión interna que compra sean sobrescritas por otros clientes del fabricante del motor. Por otro lado, el fabricante del motor siempre podrá escribir o sobrescribir la memoria de la ECU de sus motores de combustión interna utilizando el primer código de identificación.
[0043] En otras realizaciones, el dispositivo de escritura de memoria puede habilitarse para modificar el segundo código de identificación, si el código de clave de referencia recibido del dispositivo de escritura de memoria corresponde al primer código de clave.
[0044] De esta manera, el segundo código de identificación puede ser cambiado en cualquier momento incluso por el fabricante del motor.
[0045] El procedimiento también se puede llevar a cabo con la ayuda de un programa informático que comprende un código de programa para llevar a cabo todas las etapas del procedimiento descrito anteriormente, y en forma de un producto de programa informático que comprende el programa informático. El procedimiento también se puede incorporar como una señal electromagnética, dicha señal siendo modulada para transportar una secuencia de bits de datos que representan un programa informático para llevar a cabo todas las etapas del procedimiento.
[0046] Otra realización de la presente descripción proporciona una unidad de control electrónico de un motor de combustión interna, que comprende una memoria no volátil reescribible y una unidad de procesamiento configurada para:
- recibir una solicitud de acceso de un dispositivo de escritura de memoria,
- generar un código de semilla,
- transmitir el código de semilla al dispositivo de escritura de memoria,
- generar un primer código de clave sobre la base del código de semilla y el primer código de identificación, - generar un segundo código de clave sobre la base del código de semilla y el segundo código de identificación, - recibir un código de clave de referencia del dispositivo de escritura de memoria,
- comparar el código de clave de referencia con el primer código de clave y/o con el segundo código de clave, y - permitir que el dispositivo de escritura de memoria escriba objetos de software en la memoria no volátil reescribible si el código de clave de referencia corresponde (por ejemplo, es igual) al primer código de clave o al segundo código de clave.
[0047] Esta realización logra efectos similares del procedimiento descrito anteriormente, en particular el de permitir que al menos dos usuarios autorizados escriban (o sobrescriban) objetos de software en la memoria no volátil reescribible de la ECU.
[0048] Cualquiera de los aspectos adicionales del procedimiento descrito anteriormente se puede aplicar mutatis mutandis a esta realización de la descripción.
[0049] En particular, la unidad de procesamiento puede configurarse para generar el primer código de clave, si (es decir, siempre que) la solicitud de acceso corresponde a una primera solicitud de acceso de tipo, y para generar el segundo código de clave, si (es decir, siempre que) la solicitud de acceso corresponde a una segunda solicitud de acceso de tipo. Los objetos de software que el dispositivo de escritura de memoria está habilitado para escribir (o sobrescribir) en la memoria no volátil reescribible pueden incluir al menos programas de control del motor y/o datos de calibración. El primer código de identificación y el segundo código de identificación pueden almacenarse en la memoria no volátil reescribible. El primer código de identificación se puede almacenar en una dirección de memoria fija de la memoria no volátil reescribible, por ejemplo, en un área de almacenamiento de arranque de esta. El segundo código de identificación puede almacenarse en una dirección de memoria de la memoria no volátil reescribible que está cifrada en un código de puntero también almacenado en la memoria no volátil reescribible, por ejemplo, en una dirección fija de esta. El código de semilla se puede generar mediante una unidad de procesamiento de la ECU que ejecuta un algoritmo generador de semillas que se puede almacenar en la memoria no volátil reescribible, por ejemplo, en el área de almacenamiento de arranque. El primer código de clave y el segundo código de clave pueden ser generados por la unidad de procesamiento de la eCu que ejecuta un algoritmo generador de claves que puede almacenarse en la memoria no volátil reescribible, por ejemplo, en el área de almacenamiento de arranque.
[0050] El dispositivo de escritura de memoria puede incluir una unidad de procesamiento configurada para generar el código de clave de referencia en función del código de semilla y un tercer código de identificación, por ejemplo, usando un algoritmo generador de claves del mismo tipo que el utilizado para generar el primer y el segundo códigos de clave. La unidad de procesamiento de la ECU puede configurarse adicionalmente para permitir que el dispositivo de escritura de memoria modifique el segundo código de identificación, si el código de clave de referencia recibido del dispositivo de escritura de memoria corresponde al segundo código de clave y/o al primer código de clave (por ejemplo, cada vez que se permite que el dispositivo de escritura de memoria escriba o sobrescriba objetos de software en la memoria no volátil reescribible).
[0051] Otra realización de la descripción proporciona una unidad de control electrónico que comprende una unidad de procesamiento que accede a una memoria, donde la unidad de procesamiento está configurada para: - recibir una solicitud de acceso de un dispositivo;
- acceder a una primera contraseña desde la memoria;
- calcular una semilla basada en la primera contraseña y enviar la semilla al dispositivo;
- recibir una clave generada por el dispositivo basada en la semilla;
- determinar si la clave es válida;
- conceder acceso al dispositivo cuando la determinación indique que la clave es válida; y
- escribir una segunda contraseña en la memoria después de que se conceda el acceso para su uso con futuras solicitudes de acceso.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0052] La presente invención se describirá ahora a modo de ejemplo con referencia a los dibujos adjuntos. La FIG. 1 es una representación esquemática de una realización de un motor de combustión interna que incorpora las características de la descripción;
La FIG. 2 es una representación esquemática de una unidad de control del motor que pertenece al motor de combustión interna de la figura 1;
La FIG. 3 es un diagrama de bloques que muestra una construcción interna explicativa de una memoria no volátil reescribible utilizada en una realización de la descripción;
La FIG. 5 es un esquema que ilustra una lógica de semillas y claves;
La FIG. 5 es un diagrama de flujo que ilustra un procedimiento según una realización de la descripción;
La FIG. 6 es un diagrama de flujo que ilustra un procedimiento según otra realización de la descripción.
DESCRIPCIÓN DETALLADA
[0053] La FIG. 1 muestra una realización ejemplar que incluye un motor de combustión interna (ICE) 100. El motor de combustión interna 100 puede ser, por ejemplo, un motor encendido por compresión, tal como un motor diésel, un motor encendido por chispa, tal como un motor de gasolina, u otro tipo de motor. El motor de combustión interna 100 puede usarse en un vehículo de motor (no mostrado), tal como un automóvil de pasajeros, un camión o un vehículo agrícola todoterreno. En otras realizaciones, el motor de combustión interna 100 puede usarse en generadores de energía o equipos de energía. El motor de combustión interna 100 puede usarse en varias otras aplicaciones.
[0054] El motor de combustión interna 100 puede incluir un bloque de motor 105 que define al menos un cilindro 110. Cada cilindro 110 puede acomodar un pistón alternativo 115. Cada pistón 115 puede cooperar con el cilindro 110 para definir una cámara de combustión 120 diseñada para recibir una mezcla de combustible y aire. La mezcla de combustible y aire puede encenderse (típicamente a través de compresión, pero en algunos sistemas puede deberse a un calentador o chispa). La ignición de la mezcla de combustible y aire puede generar gases de escape calientes en expansión que causan el movimiento del pistón 115. En el lado opuesto de la cámara de combustión 120, el pistón 115 puede conectarse a un cigüeñal 125 de tal manera que los movimientos alternativos del pistón 115 se transformen en un movimiento de rotación del cigüeñal 125.
[0055] Un aparato de inyección 130 que tiene al menos un inyector de combustible 135 puede suministrar combustible a la cámara de combustión 120. El inyector de combustible 135 puede estar acoplado al cilindro 110 o de otro modo en comunicación fluida con la cámara de combustión para inyectar combustible directamente dentro de la cámara de combustión 120. El aparato de inyección 130 puede conectarse con una fuente de combustible 140 (por ejemplo, un depósito), y en algunos casos adicionalmente una bomba 145, que extrae el combustible de la fuente de combustible 140 y lo suministra a un riel de combustible 150 en comunicación fluida con el inyector de combustible 135. Son posibles otras variaciones de los sistemas de suministro de combustible.
[0056] El motor de combustión interna 100 puede comprender un cilindro 110. En otros sistemas, el motor de combustión interna 100 puede comprender una pluralidad de cilindros 110 (por ejemplo, 2, 3, 4, 6 u 8 cilindros), cada uno de los cuales puede acomodar un pistón 115 correspondiente para definir una cámara de combustión 120 correspondiente. En motores de cilindros múltiples, el aparato de inyección 130 puede comprender una pluralidad de inyectores de combustible 135, cada uno de los cuales está acoplado a un cilindro 110 correspondiente. Todos los pistones 115 pueden acoplarse al mismo cigüeñal 125. Algunos o todos los inyectores de combustible 135 pueden estar en comunicación fluida con el mismo riel de combustible 150.
[0057] Cada cilindro 110 puede tener al menos dos válvulas, que incluyen una válvula de admisión 155 que permite que el aire entre en la cámara de combustión 120 y al menos una válvula de escape 160 que permite que los gases de escape salgan de la cámara de combustión 120. Las válvulas 155 y 160 pueden accionarse mediante un árbol de levas (no mostrado) que puede girar al mismo tiempo con el cigüeñal 125, donde se puede proporcionar un sincronizador de levas para variar selectivamente el tiempo entre el árbol de levas y el cigüeñal 125.
[0058] El aire de admisión puede transportarse a la válvula de admisión 155 mediante un conducto de admisión de aire 165 que proporciona aire desde el entorno ambiental a la cámara de combustión 120 definida por el cilindro 110. El aire de admisión se puede hacer pasar a través de un filtro de aire antes de su introducción en la cámara de combustión 120. Si el motor de combustión interna 100 comprende una pluralidad de cilindros 110, se puede proporcionar un colector de admisión (no mostrado) para recibir el aire del conducto de admisión 165 y distribuirlo en todos los cilindros 110 a través de las válvulas de admisión correspondientes 155. En algunas realizaciones, se puede proporcionar un cuerpo de mariposa 167 en el conducto de admisión 165, por ejemplo, aguas arriba del colector de admisión si está presente, para regular el flujo de aire hacia el uno o más cilindros 110.
[0059] Los gases de escape (resultantes de la ignición de la mezcla de combustible y aire en la cámara de combustión 120) pueden salir del cilindro del motor 110 a través de la una o más válvulas de escape 160 y pueden dirigirse hacia un conducto de escape 170. El conducto de escape 170 puede transportar los gases de escape y expulsarlos al entorno ambiental. En algunas realizaciones donde el motor de combustión interna 100 comprende una pluralidad de cilindros 110, todas las válvulas de escape correspondientes 160 pueden estar en comunicación fluida con un colector de escape (no mostrado), que puede recoger los gases de escape y dirigirlos hacia el conducto de escape 170.
[0060] En algunas realizaciones, el motor de combustión interna 100 puede comprender un sistema de aire forzado, tal como un turbocompresor 175. El turbocompresor 175 puede comprender un compresor 180 ubicado en el conducto de admisión 165 y una turbina 185 ubicada en el conducto de escape 170 y acoplada de forma giratoria al compresor 180. La turbina 185 gira al recibir gases de escape del conducto de escape 170 que dirige los gases de escape a través de una serie de álabes antes de la expansión a través de la turbina 185. En algunos ejemplos, la turbina 185 puede ser una turbina de geometría variable (VGT) con un accionador VGT (no mostrado) dispuesto para mover los álabes para alterar el flujo de los gases de escape a través de la turbina 185. En otras realizaciones, el turbocompresor 175 puede tener una geometría fija y/o incluir una compuerta de descarga. La rotación de la turbina 185 provoca la rotación del compresor 180, cuyo efecto es el de aumentar la presión y la temperatura del aire en el conducto de admisión 165. Un enfriador intermedio 190 puede estar dispuesto en el conducto de admisión 165, aguas abajo del compresor 180, para reducir la temperatura del aire. Otros motores de combustión interna pueden no incluir un turbocompresor 175 y componentes correspondientes para turbocompresor.
[0061] El motor de combustión interna 100 también puede comprender uno o más dispositivos de postratamiento 195, que pueden estar dispuestos en el conducto de escape 170 de modo que los gases de escape pasen a través de ellos antes de la expulsión al entorno ambiental. En algunos sistemas con turbocompresores, los dispositivos de postratamiento 195 pueden colocarse aguas abajo de la turbina 185. Los dispositivos de postratamiento 195 pueden ser o incluir cualquier dispositivo configurado para cambiar la composición de los gases de escape, por ejemplo, a través de la retención y/o transformación química de algunos de sus constituyentes. Algunos ejemplos de dispositivos de postratamiento 195 incluyen, de modo no taxativo, convertidores catalíticos (de dos y tres vías), catalizadores de oxidación, trampas de NOx con mezcla pobre, adsorbentes de hidrocarburos, sistemas de reducción catalítica selectiva (SCR), catalizadores de oxidación diésel (DOC) y filtros de partículas (por ejemplo, filtros de partículas diésel).
[0062] Algunas realizaciones también pueden incluir un sistema de recirculación de gases de escape (EGR) para recircular al menos parte de los gases de escape del sistema de escape de vuelta al sistema de admisión. El sistema de EGR puede incluir un conducto de EGR 200 acoplado entre el conducto de escape 170 y el conducto de admisión 165, por ejemplo, entre el colector de escape y el colector de admisión cuando está presente. El sistema de EGR puede incluir además un enfriador de EGR 205 para reducir la temperatura de los gases de escape en el conducto de eGr 200 y/o una válvula de EGR 210 para regular un flujo de gases de escape en el conducto de EGR 200. Otros motores pueden no incluir el sistema de EGR y los componentes correspondientes.
[0063] El motor de combustión interna 100 puede incluir además una unidad de control electrónico (ECU) 215 configurada para controlar el funcionamiento del motor. La ECU 215 puede estar en comunicación con uno o más sensores configurados para generar señales en proporción a diversos parámetros físicos asociados con el motor de combustión interna 100.
[0064] Estos sensores pueden incluir, de modo no taxativo, un sensor de flujo de aire másico y temperatura en el conducto de admisión 165, un sensor de presión y temperatura del colector de admisión, un sensor de presión de combustión, sensores de temperatura y nivel de refrigerante y aceite, un sensor de presión del riel de combustible, un sensor de posición de leva, un sensor de posición del cigüeñal, sensores de presión y temperatura de escape, un sensor de temperatura de EGR y un sensor de posición del acelerador (por ejemplo, pedal del acelerador). En función de las señales recibidas de los sensores, la ECU 215 puede configurarse para generar señales de salida a varios dispositivos de control del motor que están dispuestos para controlar el funcionamiento del motor de combustión interna 100, que incluyen, de modo no taxativo, los inyectores de combustible 135, el cuerpo de mariposa 167, la válvula de EGR 210, el accionador VGT y el sincronizador de levas.
[0065] Tal como se muestra en la figura 2, la ECU 215 puede incluir un sistema informático 220, que puede incorporarse como una computadora o un microordenador. El sistema informático 220 puede recibir las señales del sensor a través de un circuito de entrada 225, que puede estar ubicado en la ECU 215. El circuito de entrada 225 puede estar configurado para realizar conformación de forma de onda, conversión A/D o el procesamiento similar de las señales. En el sistema informático 220, se pueden calcular cantidades de control óptimas de los parámetros del motor de combustión interna en función de las señales del sensor, con el fin de generar las señales de salida que accionan los dispositivos de control del motor. Las señales de salida pueden ser generadas por el sistema informático 220 usando objetos de software, tales como programas de control del motor y datos de calibración. Los programas de control del motor pueden representar las funcionalidades y/o los procedimientos (por ejemplo, secuencias de instrucciones) que son ejecutados por el sistema informático 220 para operar los dispositivos de control del motor de combustión interna 100, mientras que los datos de calibración pueden representar los ajustes de estas funcionalidades y/o procedimientos.
[0066] Se puede proporcionar un circuito de salida 230 en la ECU 215 para recibir las señales de salida del sistema informático 220 y para reenviarlas a los dispositivos de control. Además, la ECU 215 puede incluir un circuito de comunicación 235 para ejecutar comunicaciones de datos con un dispositivo de escritura de memoria 300. El dispositivo de escritura de memoria 300 puede conectarse a la ECU 215 cuando se deben escribir objetos de software, tales como programas de control del motor y/o datos de calibración, utilizados por el sistema informático 220.
[0067] El sistema informático 220 en la ECU 215 puede comprender una unidad central de procesamiento (CPU) 240, por ejemplo, un microprocesador, en comunicación con una memoria 245 legible por máquina o legible por computadora tangible o no transitoria para almacenar en ella programas de control del motor, datos de calibración y otros objetos de software que ejecutará/leerá la CPU 240. Por ejemplo, la CPU 240 puede configurarse para ejecutar instrucciones almacenadas como un programa de control del motor en la memoria 245. El programa de control del motor puede incorporar procedimientos de control, lo que permite que la CPU 240 lleve a cabo las etapas de dichos procedimientos y controle el motor de combustión interna 100. La memoria 245 puede incluir varios tipos de almacenamiento que incluyen almacenamiento óptico, almacenamiento magnético, almacenamiento en estado sólido y otra memoria no volátil. En particular, la memoria 245 puede ser una memoria no volátil reescribible, es decir, cualquier tipo de memoria capaz de borrar programas y datos una vez escritos y escribir programas y datos de nuevo. En algunas realizaciones, la memoria 245 puede incluir una memoria flash y/o una memoria de solo lectura programable y borrable (EPROM). En otras realizaciones, la memoria 245 puede comprender una memoria de acceso aleatorio (RAM), una memoria de solo lectura (ROM) u otro medio legible por máquina, tal como una memoria reescribible de disco compacto (CD-RW) o un disco magnético u óptico.
[0068] Se puede proporcionar un circuito de E/S (entrada y salida) 250 en el sistema informático 220 para recibir las señales del circuito de entrada 225 y el circuito de comunicación 235, y para aplicar las señales al circuito de salida 230. El sistema informático 220 puede incluir además un bus de interfaz que conecta los diversos circuitos. El bus de interfaz puede configurarse para enviar, recibir y modular señales analógicas y/o digitales hacia/desde los diversos sensores y dispositivos de control.
[0069] La totalidad o partes de la ECU 215 pueden incluir adicional o alternativamente circuitos en un controlador, un microprocesador o un circuito integrado específico de la aplicación (ASIC), o pueden implementarse con lógica o componentes discretos, o una combinación de otros tipos de circuitos analógicos o digitales, combinados en un solo circuito integrado o distribuidos entre múltiples circuitos integrados. El motor de combustión interna 100 puede estar equipado adicional o alternativamente con un tipo diferente de procesador para proporcionar la lógica electrónica, por ejemplo, un controlador integrado, una computadora a bordo o cualquier módulo de procesamiento que pueda desplegarse en el vehículo.
[0070] Los programas almacenados en la memoria 245 pueden transmitirse desde el exterior a través de un cable o de forma inalámbrica. Fuera de la memoria 245, los programas pueden ser visibles como productos de programas informáticos, que también pueden denominarse medios legibles por computadora o medios legibles por máquina en la técnica, y que deben entenderse como códigos de programas informáticos que residen en portadores, dichos portadores son de naturaleza transitoria o no transitoria con la consecuencia de que los productos de programas informáticos pueden considerarse de naturaleza transitoria o no transitoria. Un ejemplo de un producto de programa informático transitorio es una señal, por ejemplo, una señal electromagnética tal como una señal óptica, que es un portador transitorio para el código de programa informático. El transporte de dicho código de programa informático se puede lograr modulando la señal mediante una técnica de modulación convencional tal como QPSK para datos digitales, de modo que los datos binarios que representan dicho código de programa informático se impriman en la señal electromagnética transitoria. Dichas señales se utilizan, por ejemplo, cuando se transmite un código de programa informático de forma inalámbrica a través de una conexión inalámbrica a un portátil. En el caso de un producto de programa informático no transitorio, el código de programa informático puede incorporarse en un medio de almacenamiento tangible. El medio de almacenamiento es entonces el portador no transitorio mencionado anteriormente, de modo que el código de programa informático se almacena de forma permanente o no permanente de una manera recuperable en o sobre este medio de almacenamiento. El medio de almacenamiento puede ser de tipo convencional conocido en tecnología informática, tal como una memoria flash, un ASIC, un CD o similar.
[0071] La capacidad de procesamiento de la ECU 215 puede distribuirse entre múltiples componentes del sistema, tal como entre múltiples procesadores y memorias, que incluyen opcionalmente múltiples sistemas de procesamiento distribuidos. Los parámetros, bases de datos y otras estructuras de datos pueden almacenarse y gestionarse por separado, pueden incorporarse en una única memoria o base de datos, pueden organizarse lógica y físicamente de muchas maneras diferentes y pueden implementarse de muchas maneras, incluyendo estructuras de datos tales como listas enlazadas, tablas con códigos de comprobación o mecanismos de almacenamiento implícitos. Los programas pueden ser partes (por ejemplo, subrutinas) de un solo programa, programas separados, distribuidos a través de varias memorias y procesadores, o implementados de muchas maneras diferentes, tal como en una biblioteca, tal como una biblioteca compartida (por ejemplo, una biblioteca de enlaces dinámicos (DLL)). La DLL, por ejemplo, puede almacenar código que realiza cualquiera del procesamiento del sistema descrito anteriormente.
[0072] En la figura 3 se muestra un ejemplo de las construcciones internas de la memoria 245 utilizadas en la ECU 215. De acuerdo con esta realización, la memoria 245 puede comprender varias áreas de almacenamiento, que incluyen un área de almacenamiento de arranque 255 para un programa de arranque, al menos un área de almacenamiento de programas 260 para almacenar los programas de control de motor del motor de combustión interna 100 y al menos un área de almacenamiento de datos 265 para almacenar datos de calibración. Estas áreas de almacenamiento 255, 260 y 265 pueden separarse entre sí o fusionarse. El programa de arranque puede ser un software elemental que realiza la tarea de cargar e instalar programas (software) y/o datos en la memoria 245 de la ECU 215. Los programas de control del motor almacenados en el área de almacenamiento de programas 260 pueden ser aquellos que se llevan a cabo por el sistema informático 220 para controlar el motor de combustión interna 100 como se explicó anteriormente. Para realizar esta tarea, mientras se ejecutan los programas de control del motor, el sistema informático 220 también puede utilizar los datos de calibración que se almacenan en el área de almacenamiento de datos 265.
[0073] Los datos de calibración pueden incluir modelos matemáticos (por ejemplo, funciones, ecuaciones) y/o tablas de datos (por ejemplo, mapas) que definen correlaciones entre los diversos parámetros de funcionamiento del motor, que deben alcanzarse para controlar de manera eficaz y/o eficiente el motor de combustión interna 100. Por ejemplo, para operar el motor de combustión interna 100 correctamente, las cantidades de combustible inyectadas por los inyectores de combustible 135 pueden depender del régimen del motor (es decir, la velocidad de rotación del cigüeñal 125) y de la posición de un acelerador, por ejemplo, un pedal de acelerador (no mostrado). Para permitir que la CPU 240 ordene los inyectores de combustible 135 en consecuencia, se puede proporcionar una tabla de datos, cada celda de la cual está ubicada en la intersección de un valor específico del régimen del motor y un valor específico de la posición del acelerador y contiene el valor de la cantidad de combustible correspondiente a estos valores de entrada. Esta tabla de datos puede obtenerse durante una actividad de calibración experimental y puede almacenarse en el área de almacenamiento de datos 265. De esta manera, durante el funcionamiento del motor de combustión interna 100, mientras se ejecutan los programas de control, la CPU 240 puede determinar los valores actuales del régimen del motor y de la posición del acelerador, por ejemplo, mediante los sensores dedicados, recuperar o leer de la tabla de datos el valor correspondiente de la cantidad de combustible a inyectar, y luego ordenar los inyectores de combustible 135 en consecuencia. Además de los parámetros mencionados anteriormente, la cantidad de combustible también puede verse afectada por otros parámetros de funcionamiento del motor, tales como, por ejemplo, la presión del aire dentro del conducto de admisión 165, la temperatura del motor (por ejemplo, la temperatura del refrigerante/agua del motor), la posición de la válvula de mariposa 167, la presión del combustible en el riel de combustible 150, etc. Como consecuencia, para cada valor posible de uno o más de estos parámetros adicionales, se puede determinar una tabla de datos específica con una actividad de calibración experimental y memorizarse en el área de almacenamiento de datos 265. De esta manera, el área de almacenamiento de datos 265 puede contener una multiplicidad de tablas de datos, entre las cuales la CPU 240 puede seleccionar la correcta en función del valor actual de los parámetros adicionales. En otra realización, la tabla de datos puede tener más de dos dimensiones, para poder producir la cantidad de combustible directamente sobre la base de tres o más parámetros de funcionamiento del motor recibidos como entrada. Los datos de calibración pueden incluir además otras tablas de datos similares que, al recibir como entrada uno o más parámetros de funcionamiento del motor medibles, proporcionan como salida valores correspondientes de un parámetro de funcionamiento del motor controlable. Además de la cantidad de combustible, estos parámetros controlables pueden incluir, por ejemplo, el tiempo de inyección, la posición de los álabes de la turbina, la posición de la válvula de compuerta de descarga, la posición del sincronizador de levas y otros.
[0074] La memoria 245 puede almacenar adicionalmente los llamados códigos de inyector (por ejemplo, códigos QR) que cifran información técnica importante en los inyectores de combustible 135 del motor de combustión interna 100. De hecho, aunque los inyectores de combustible 135 se fabrican de la misma manera, su comportamiento puede ser ligeramente diferente, por ejemplo, debido a la dispersión de la producción. En particular, puede suceder que dos o más inyectores de combustible 135 del mismo tipo suministren cantidades de combustible diferentes, aunque se accionan de la misma manera (por ejemplo, durante el mismo tiempo de energización). Por esta razón, al final de la línea de producción, cada inyector de combustible puede ensayarse para determinar un parámetro, generalmente denominado desviación de inyección, que es indicativo del desplazamiento entre la cantidad de combustible realmente inyectada por el inyector de combustible y un valor esperado del mismo. Este parámetro puede cifrarse en el código del inyector y almacenarse en la memoria 245, donde la CPU 240 puede leerlo y usarlo para controlar adecuadamente el inyector de combustible 135 durante el funcionamiento del motor de combustión interna 100. Como consecuencia, si se reemplaza un inyector de combustible 135 del motor de combustión interna 100, por ejemplo, debido a un mal funcionamiento, el código del inyector correspondiente en la memoria 245 debe sobrescribirse con el código de inyección del nuevo inyector de combustible. La memoria 245 también puede contener otra información relevante, tal como un número de identificación del vehículo que utiliza el motor de combustión interna 100 y/o la información del fabricante del vehículo. Esta información adicional y/o los códigos de inyección pueden almacenarse en el área de almacenamiento de datos 265 de la memoria 245 o en otra área de almacenamiento dedicada a ello. De cualquier manera, se puede modificar información adicional y/o códigos de inyector a través del dispositivo de escritura de memoria 300.
[0075] Como se muestra en la figura 2, el dispositivo de escritura de memoria 300 puede ser un dispositivo electrónico. En particular, el dispositivo de escritura de memoria 300 puede ser un dispositivo externo, que está separado físicamente de la ECU 215 y/o del motor de combustión interna 100.
[0076] Por ejemplo, el dispositivo de escritura de memoria 300 puede diseñarse para ser portátil y estar conectado físicamente a la ECU 215 por un usuario usando cables y/o conectores. Con mayor detalle, el dispositivo de escritura de memoria 300 puede comprender una unidad central de procesamiento (CPU) 305 para ejecutar una comunicación en serie con el sistema informático 220 de la ECU 215 y/o acceder a la memoria 245. Tal como se mencionó anteriormente, el dispositivo de escritura de memoria 300 puede ser capaz de escribir o sobrescribir objetos de software (por ejemplo, programas de control del motor y datos de calibración) en la memoria 245. El dispositivo de escritura de memoria 300 puede comprender además una memoria 310 legible por máquina o legible por computadora tangible o no transitoria, por ejemplo, una memoria flash y/o una memoria de solo lectura programable y borrable (EPROM) y/o una RAM, para almacenar diversos programas y datos, que incluyen en algunos casos los objetos de software que se escribirán en la memoria 245 de la ECU 215. La comunicación en serie entre el dispositivo de escritura de memoria 300 y la ECU 215 puede incorporarse como una red de área de controlador (bus CAN), por ejemplo, un bus CAN ISO 11898 usando un bus lineal terminado en cada extremo con impedancias de 120 Ó (por ejemplo, resistencias). La velocidad de la transmisión de datos a través del bus CAN puede ser de 500 kbps (kilobits por segundo) o diferente. El protocolo de comunicación entre el dispositivo de escritura de memoria 300 y la ECU 215 a través del bus CAN puede ser del tipo ISO 15765-4, lo que permite la transmisión de paquetes de datos de 29 bits. En otras realizaciones, el protocolo de comunicación y/o la dimensión de los paquetes de datos pueden ser diferentes. La comunicación en serie puede habilitarse cuando el dispositivo de escritura de memoria 300 está conectado a la ECU 215, por ejemplo, al circuito de comunicación 235 de la ECU 215, a través de cables eléctricos físicos y/o conectores eléctricos (no mostrados). Los conectores eléctricos pueden incluir un OBD (diagnóstico a bordo) o un conector OBDII y las contrapartes correspondientes. En otras realizaciones, los conectores pueden ser de tipo diferente. Esta conexión por cable garantiza que no se pueda acceder a la ECU 215 (por ejemplo, por escrito o sobrescrito) sin querer.
[0077] El fabricante de las ECU puede suministrar la ECU 215 al fabricante del motor de combustión interna 100 en un estado en blanco, donde solo el programa de arranque se memoriza en el área de almacenamiento de arranque 255 de la memoria 245, mientras que el área de almacenamiento de programas 260 y el área de almacenamiento de datos 265 están vacíos. En otras realizaciones, la ECU 215 puede suministrarse con algunos programas provisionales y/o datos ya almacenados en el área de almacenamiento de programas 260 y el área de almacenamiento de datos 265. Estos programas y/o datos provisionales pueden diseñarse para permitir que la ECU 215 ejecute algunas funcionalidades, típicamente relacionadas con el funcionamiento de la ECU 215 en sí, pero no para operar eficazmente el motor de combustión interna 100. De cualquier manera, la memoria 245 de la ECU 215 necesita cargarse con los programas de control y los datos de calibración (por ejemplo, tablas de datos) necesarios para operar y controlar adecuadamente el motor de combustión interna 100. La memoria 245 de la ECU 215 también puede necesitar sobrescribirse una o más veces durante la vida útil del motor de combustión interna 100, por ejemplo, para instalar nuevas versiones que contienen actualizaciones de programas/datos o correcciones de errores.
[0078] Para sobrescribir objetos de software en un área de la memoria 245, puede ser necesario borrar los objetos de software que ya existen en esa área. Como consecuencia, con el fin de escribir nuevos objetos de software en un área específica en la memoria 245, estos nuevos objetos de software pueden copiarse primero en una RAM de la ECU 215, a continuación, el área específica de la memoria 245 puede borrarse y, finalmente, los nuevos objetos de software copiados en la RAM pueden escribirse en el área específica borrada en la memoria 245.
[0079] Estas actividades se pueden realizar conectando la ECU 215 con el dispositivo de escritura de memoria 300. Con el fin de limitar el acceso a la ECU 215 de manipulación y/u otras actividades no autorizadas, el dispositivo de escritura de memoria 300 solo puede autorizarse para tener acceso a la ECU 215 después de que se haya completado con éxito un procedimiento de autenticación. Cuando el dispositivo de escritura de memoria 300 obtiene acceso a la ECU 215, el dispositivo 300 puede habilitarse para escribir o sobrescribir objetos de software en la memoria 245. Estos objetos de software pueden incluir programas de control del motor y/o datos de calibración, tales como, por ejemplo, códigos de inyector, número de identificación del vehículo, número de identificación del motor e información del fabricante del vehículo. Además, el dispositivo de escritura de memoria 300 puede habilitarse para realizar otras funciones, que incluyen, de modo no taxativo, leer datos y/o información almacenada en la memoria 245, por ejemplo, leer los códigos de inyector ya mencionados, número de identificación del vehículo, número de identificación del motor, información del fabricante del vehículo y también horas totales del motor (es decir, la cantidad de horas que se ha empleado el motor).
[0080] El procedimiento de autenticación al que se somete el dispositivo de escritura de memoria 300 para tener acceso a la ECU 215 puede basarse en una estrategia de semillas y claves. En general, la estrategia de semillas y claves incluye un intercambio de información entre la ECU 215 y el dispositivo 300 que está representado en el esquema de la figura 4. En la práctica, el dispositivo 300 puede enviar a la ECU 215 una solicitud de semilla, también denominada solicitud de acceso.
[0081] La ECU 215 puede responder generando (por ejemplo, calculando) una semilla, también denominada código de semilla, y enviando esta semilla al dispositivo 300. El dispositivo puede utilizar la semilla para generar (por ejemplo, calcular una clave, también denominada código de clave de referencia y devolver esta clave a la ECU 215. La ECU 215 puede entonces verificar si la clave recibida del dispositivo es válida. En particular, la ECU 215 puede comparar la clave recibida del dispositivo 300 con una clave que la ECU 215 puede generar sobre la base de la misma semilla y utilizando la misma lógica de cálculo utilizada por el dispositivo 300. Si las dos claves coinciden (por ejemplo, son iguales), la clave recibida del dispositivo 300 se considera válida y la ECU 215 puede otorgar acceso al dispositivo 300.
[0082] Sobre la base de este esquema, una primera realización del procedimiento de autenticación se representa en el diagrama de flujo de la figura 4. En la práctica, una vez que el dispositivo de escritura de memoria 300 se ha conectado a la ECU 215, el dispositivo de escritura de memoria 300 puede enviar a la ECU 215 una solicitud de acceso (bloque S100). La solicitud de acceso puede ser una señal electrónica que tiene una codificación predeterminada y/o que incorpora una información/instrucción predeterminada. En algunos casos, la solicitud de acceso puede incluir una solicitud para leer o escribir en la memoria u otros datos asociados con la ECU o el motor. La solicitud de acceso puede ser de dos tipos alternativos, es decir, una primera solicitud de acceso de tipo o una segunda solicitud de acceso de tipo, donde la primera solicitud de acceso de tipo es diferente de la segunda solicitud de acceso de tipo. La solicitud de acceso podrá ser recibida por la ECU 215 (bloque S105). En respuesta a la solicitud de acceso, la ECU 215 puede configurarse para generar un código de semilla, por ejemplo, un código alfanumérico (bloque S110). Este código de semilla puede ser generado por la CPU 240 usando un algoritmo generador de semillas que se puede incluir en el programa de arranque y/o almacenar en el área de almacenamiento de arranque 255 de la memoria 245, por ejemplo, por el proveedor de la ECU 215. Como alternativa, el algoritmo generador de semillas puede almacenarse en otra área de almacenamiento de la memoria 245.
[0083] Después de que el código de semilla se genera en el bloque S110, el código de semilla generado de esta manera se puede reenviar mediante la ECU 215 al dispositivo de escritura de memoria 300 (bloque S115).
[0084] La ECU 215 puede configurarse adicional o alternativamente para determinar si la solicitud de acceso recibida originalmente del dispositivo de escritura de memoria es una primera solicitud de acceso de tipo o una segunda solicitud de acceso de tipo (bloque S120).
[0085] Si la solicitud de acceso recibida del dispositivo de escritura de memoria 300 es una primera solicitud de acceso de tipo, la ECU 215 puede configurarse para generar un primer código de clave, por ejemplo, otro código alfanumérico (bloque S125). Este primer código de clave puede ser generado por la CPU 240 usando un algoritmo generador de claves que puede incluirse en el programa de arranque y/o almacenarse en el área de almacenamiento de arranque 255 de la memoria 245, por ejemplo, por el proveedor de la ECU 215. Como alternativa, el algoritmo generador de semillas puede almacenarse en otra área de almacenamiento de la memoria 245. En particular, el primer código de clave se puede generar en función del código de semilla y un primer código de identificación (por ejemplo, una primera contraseña). A modo de ejemplo, el primer código de clave puede generarse usando una lógica y/o función de combinación predeterminada del código de semilla y el primer código de identificación. El primer código de identificación puede ser otro código alfanumérico. El primer código de identificación puede atribuirse de forma unívoca al fabricante del motor de combustión interna 100, de modo que el fabricante del motor puede ser el único que conoce el primer código de identificación. El primer código de identificación puede almacenarse en la memoria 245, por ejemplo, por el proveedor de la ECU 215. En particular, el primer código de identificación se puede almacenar en el área de almacenamiento de arranque 255 o en otra área de almacenamiento.
[0086] De acuerdo con algunas realizaciones, el primer código de identificación puede almacenarse en una dirección de memoria fija y predeterminada de la memoria 245. Esta dirección de memoria puede escribirse en el algoritmo generador de claves, de modo que la CPU 240, mientras ejecuta el algoritmo generador de claves, puede recuperar inmediatamente el primer código de identificación de la dirección de memoria prescrita.
[0087] Si, por el contrario, la solicitud de acceso recibida del dispositivo de escritura de memoria 300 es una segunda solicitud de acceso de tipo, la ECU 215 puede configurarse para generar un segundo código de clave, por ejemplo, otro código alfanumérico (bloque S130). En particular, el segundo código de clave se puede generar en función del código de semilla y un segundo código de identificación (por ejemplo, una segunda contraseña). El segundo código de clave puede ser generado por la CPU 240 usando una lógica y/o función de combinación predeterminada del código de semilla y el segundo código de identificación. A modo de ejemplo, el segundo código de clave puede generarse usando el mismo algoritmo generador de claves utilizado para el primer código de clave. El segundo código de identificación puede ser otro código alfanumérico. El segundo código de identificación puede atribuirse generalmente a los compradores del motor de combustión interna 100, por ejemplo, a los fabricantes de los vehículos que están equipados con el motor de combustión interna 100. En otras palabras, este segundo código de identificación, que puede ser elegido por el fabricante del motor, puede comunicarse a todos los fabricantes de vehículos y/u otros clientes, de modo que cada uno de ellos conozca el segundo código de identificación. El segundo código de identificación puede almacenarse en la memoria 245, por ejemplo, por el proveedor de la ECU 215 o por el fabricante del motor. En particular, el segundo código de identificación puede almacenarse en el área de almacenamiento del programa 260 o en el área de almacenamiento de datos 265 o en otra área de almacenamiento.
[0088] De acuerdo con algunas realizaciones, el segundo código de identificación puede almacenarse en una dirección de memoria fija y predeterminada de la memoria 245. Sin embargo, el espacio disponible en la memoria 245, particularmente en el área de almacenamiento de programas 260 o en el área de almacenamiento de datos 265, generalmente depende de la dimensión y/o posición de los programas de control del motor y/o datos de calibración que se almacenan en estos y pueden variar en función de las versiones. Además, el segundo código de identificación puede tener diferentes dimensiones (por ejemplo, diferente número de bits) caso por caso. Por estas y otras razones, podría ser difícil localizar el segundo código de identificación en una dirección de memoria fija. Para resolver este problema, algunas realizaciones pueden permitir que el segundo código de identificación se almacene en diferentes direcciones de memoria de la memoria 245 y sea recuperado por la ECU 215 usando un puntero a dicha dirección de memoria. El puntero puede ser un objeto de software, por ejemplo, un código, que simplemente cifra la dirección de memoria del segundo código de identificación. El código del puntero puede tener una dimensión fija y puede almacenarse en la memoria 245 en una dirección de memoria predeterminada y fija, por ejemplo, en la última dirección de memoria que está disponible en la memoria 245. La dirección de memoria del código del puntero puede escribirse en el algoritmo generador de claves, de modo que la ECU 215, mientras ejecuta el algoritmo generador de claves, puede recuperar el código del puntero de su dirección de memoria, descifrar el código del puntero para obtener la dirección de memoria del segundo código de identificación y a continuación recuperar el segundo código de identificación.
[0089] El código de semilla también es recibido por el dispositivo de escritura de memoria 300 (bloque S135) que puede configurarse para usarlo para generar un código de clave de referencia, por ejemplo, otro código alfanumérico (bloque S140). En particular, el código de clave de referencia se puede generar en función del código de semilla recibido de la ECU 215 y un tercer código de identificación (por ejemplo, una tercera contraseña). Este tercer código de identificación puede proporcionarse al dispositivo de escritura de memoria 300 por un usuario de este, por ejemplo, a través de una interfaz de usuario tal como un teclado, un lector de tarjetas u otro. Como alternativa, el tercer código de identificación puede almacenarse en la memoria 310. De cualquier manera, el código de clave de referencia puede generarse usando el mismo tipo de algoritmo generador de claves utilizado por la ECU 215.
[0090] El algoritmo generador de claves puede almacenarse en la memoria 310 del dispositivo de escritura de memoria 300. De esta manera, si el tercer código de identificación corresponde (por ejemplo, es igual a) al primer código de identificación o al segundo código de identificación almacenado en la memoria 245 de la ECU 215, el código de clave de referencia generado por el dispositivo de escritura de memoria 300 corresponderá (por ejemplo, será igual) al primer código de clave o al segundo código de clave generado por la ECU 215. El dispositivo de escritura de memoria 300 puede configurarse para enviar el código de clave de referencia de vuelta a la ECU 215 (bloque S145).
[0091] En caso de que la solicitud de acceso fuera una primera solicitud de acceso de tipo, la ECU 215 puede configurarse para recibir el código de clave de referencia (bloque S150) y para comparar el código de clave de referencia recibido del dispositivo de escritura de memoria 300 con el primer código de clave (bloque S155). La comparación se puede realizar mediante la CPU 240 a través de la ejecución de un algoritmo de verificación que se puede incluir en el programa de arranque o almacenar en el área de almacenamiento de arranque 255 o en otras áreas de almacenamiento de la memoria 245. Si esta comparación produce que el código de clave de referencia sea diferente del primer código de clave, por ejemplo, porque el tercer código de identificación utilizado por el dispositivo de escritura de memoria 300 es diferente del primer código de identificación en la ECU 215, la ECU 215 puede configurarse para evitar que el dispositivo de escritura de memoria 300 tenga acceso a la memoria 245 (bloque S160) y, en particular, para escribir o sobrescribir objetos de software en la memoria 245. Si, por el contrario, el código de clave de referencia corresponde al primer código de clave, la ECU 215 puede permitir que el dispositivo de escritura de memoria 300 tenga acceso a la memoria 245 (bloque S165) y, en particular, para escribir o sobrescribir objetos de software en la memoria 245. Estos objetos de software pueden incluir al menos programas de control del motor, que se escribirán o sobrescribirán, por ejemplo, en el área de almacenamiento de programas 260, y/o datos de calibración, que se escribirán o sobrescribirán, por ejemplo, en el área de almacenamiento de datos 265.
[0092] En caso de que la solicitud de acceso fuera una segunda solicitud de acceso de tipo, la ECU 215 puede configurarse para recibir el código de clave de referencia (bloque S170) y comparar el código de clave de referencia recibido del sistema de escritura de memoria 300 con el segundo código de clave (bloque S175). También la CPU 240 puede realizar esta comparación mediante la ejecución de un algoritmo de verificación que se puede incluir en el programa de arranque o almacenar en el área de almacenamiento de arranque 255 o en otras áreas de almacenamiento de la memoria 245.
[0093] Si esta comparación produce que el código de clave de referencia sea diferente del segundo código de clave, por ejemplo, porque el tercer código de identificación utilizado por el dispositivo de escritura de memoria 300 es diferente del segundo código de identificación en la ECU 215, la ECU 215 puede configurarse para evitar que el dispositivo de escritura de memoria 300 tenga acceso a la memoria 245 (bloque S180) y, en particular, para escribir o sobrescribir objetos de software en la memoria 245. Si, por el contrario, el código de clave de referencia corresponde al segundo código de clave, la ECU 215 puede permitir que el dispositivo de escritura de memoria 300 tenga acceso a la memoria 245 (bloque S185) y, en particular, escribir o sobrescribir objetos de software en la memoria 245. También en este caso, estos objetos de software pueden incluir al menos programas de control del motor, que se escribirán o sobrescribirán, por ejemplo, en el área de almacenamiento de programas 260, y/o datos de calibración, que se escribirán o sobrescribirán, por ejemplo, en el área de almacenamiento de datos 265.
[0094] De acuerdo con un aspecto de la descripción, si el código de clave de referencia recibido del dispositivo de escritura de memoria 300 en este caso corresponde al segundo código de clave, la ECU 215 también puede permitir que el dispositivo de escritura de memoria 300 modifique el segundo código de identificación (bloque S190), por ejemplo, sobrescribiendo el segundo código de identificación ya existente en la memoria 245 con un código nuevo y diferente (por ejemplo, una contraseña diferente). En algunas realizaciones, se puede permitir que el nuevo segundo código de identificación tenga una longitud diferente con respecto al original. El nuevo segundo código de identificación puede incluirse en un paquete de datos proporcionado y autorizado por el fabricante del motor y que el fabricante del vehículo puede escribir (guardar) en la memoria 245 utilizando el dispositivo de escritura de memoria 300. De esta manera, una vez que se ha comprado el motor de combustión interna 100, cada fabricante de vehículo puede personalizar el segundo código de identificación, manteniéndolo en secreto para todos los demás fabricantes de vehículos que compran el mismo motor de combustión interna.
[0095] Otra realización del procedimiento de autenticación se representa en el diagrama de flujo de la figura 6. De acuerdo con esta realización, una vez que el dispositivo de escritura de memoria 300 se ha conectado a la ECU 215, el dispositivo de escritura de memoria 300 puede generar una solicitud de acceso (bloque S200). En este caso, la solicitud de acceso puede ser una única solicitud de acceso genérica. La solicitud de acceso podrá ser recibida por la ECU 215 (bloque S205). En respuesta a la solicitud de acceso, la ECU 215 puede configurarse para generar un código de semilla (bloque S210). El código de semilla puede tener las mismas propiedades y puede generarse de la misma manera como ya se describió en relación con la primera realización anterior. El código de semilla generado de esta manera se puede reenviar mediante la ECU 215 al dispositivo de escritura de memoria 300 (bloque S215).
[0096] La ECU 215 también puede utilizar el código de semilla para generar tanto el primer código de clave (bloque S220) como el segundo código de clave (bloque S225). El primer código de clave y el segundo código de clave pueden tener las mismas propiedades y pueden generarse de la misma manera como ya se describió en relación con la primera realización anterior. Por otro lado, el código de semilla también puede ser recibido por el dispositivo de escritura de memoria 300 (bloque S230), que puede configurarse para usarlo para generar el código de clave de referencia (bloque S235). Una vez generado, el código de clave de referencia puede ser devuelto por el dispositivo de escritura de memoria 300 a la ECU 215 (bloque S240). El código de clave de referencia puede tener las mismas propiedades y puede generarse de la misma manera que ya se describió en relación con la primera realización anterior.
[0097] En este punto, la ECU 215 puede configurarse para recibir el código de clave de referencia (bloque S245) y para comparar el código de clave de referencia con el primer código de clave (bloque S250). Si esta comparación produce que el código de clave de referencia sea diferente del primer código de clave, la ECU 215 puede configurarse para comparar el código de clave de referencia con el segundo código de clave (bloque S255). En otras realizaciones, la ECU 215 puede comparar el código de clave de referencia con el segundo código de clave primero y a continuación con el primer código de clave. Algunas otras realizaciones pueden prescribir comparar la clave de referencia con el primer y con el segundo códigos de clave al mismo tiempo. En cualquier caso, la CPU 240 puede realizar estas comparaciones mediante la ejecución de un algoritmo de verificación que se puede incluir en el programa de arranque o almacenar en el área de almacenamiento de arranque 255 o en otras áreas de almacenamiento de la memoria 245.
[0098] Si el código de clave de referencia es diferente tanto del primer código de clave como del segundo código de clave, la ECU 450 puede configurarse para evitar que el dispositivo de escritura de memoria 300 obtenga acceso a la memoria 245 (bloque S260) y, particularmente, para escribir o sobrescribir objetos de software en la memoria 245. Si, por el contrario, el código de clave de referencia corresponde al primer código de clave o al segundo código de clave, la ECU 215 puede permitir que el dispositivo de escritura de memoria 300 obtenga acceso a la memoria 245 (bloque S265) y, en particular, que escriba o sobrescriba objetos de software en la memoria 245. También en este caso, estos objetos de software pueden incluir al menos programas de control del motor, que se escribirán o sobrescribirán, por ejemplo, en el área de almacenamiento de programas 260, y/o datos de calibración, que se escribirán o sobrescribirán, por ejemplo, en el área de almacenamiento de datos 265. En particular, si el código de clave de referencia corresponde al segundo código de clave, la ECU 215 puede configurarse adicionalmente para permitir que el dispositivo de escritura de memoria 300 modifique el segundo código de identificación (bloque S270) como ya se explicó en relación con la primera realización.
[0099] En algunas realizaciones, se puede permitir que el dispositivo de escritura de memoria 300 modifique el segundo código de identificación también si el código de clave de referencia corresponde al primer código de clave, de modo que también el fabricante del motor pueda cambiar este código si es necesario. Otras realizaciones pueden prescribir que el dispositivo de escritura de memoria 300 nunca esté autorizado para modificar el primer código de identificación y/o para escribir o sobrescribir objetos de software en el área de almacenamiento de arranque 255.
[0100] Los procedimientos de autenticación descritos anteriormente garantizan que el personal autorizado tanto del fabricante del motor como del fabricante del vehículo pueda escribir o sobrescribir objetos de software en la memoria 245 de la ECU 215, particularmente en el área de almacenamiento de programas 260 y/o en el área de almacenamiento de datos 265. Sin embargo, vale la pena destacar que los objetos de software permitidos para ser escritos o sobrescritos en la memoria 245 solo pueden ser objetos de software (por ejemplo, programas y/o datos) que han sido liberados y aprobados por el fabricante del motor.
[0101] Si bien al menos una realización ejemplar se ha presentado en el resumen y descripción detallada que antecede, debe apreciarse que existe una gran cantidad de variaciones. También debería apreciarse que la realización ejemplar o realizaciones ejemplares son solo ejemplos, y no pretenden limitar el alcance, la aplicabilidad o la configuración de ninguna manera. Por el contrario, el resumen y la descripción detallada anteriores proporcionarán a los expertos en la materia una hoja de ruta conveniente para implementar al menos una realización ejemplar, entendiéndose que se pueden realizar diversos cambios en la función y disposición de los elementos descritos en una realización ejemplar sin apartarse del alcance como se establece en las reivindicaciones adjuntas y sus equivalentes legales.

Claims (10)

REIVINDICACIONES
1. Un procedimiento de escritura de objetos de software en una memoria no volátil reescribible (245) de una unidad de control electrónico (215) de un motor de combustión interna (100), donde el procedimiento comprende: - recibir una solicitud de acceso de un dispositivo de escritura de memoria (300),
- generar un código de semilla,
- transmitir el código de semilla al dispositivo de escritura de memoria (300),
- generar un primer código de clave sobre la base del código de semilla y un primer código de identificación almacenados en la memoria no volátil reescribible (245),
- generar un segundo código de clave sobre la base del código de semilla y un segundo código de identificación almacenados en la memoria no volátil reescribible (245),
- recibir un código de clave de referencia del dispositivo de escritura de memoria (300),
- comparar el código de clave de referencia con el primer código de clave y/o con el segundo código de clave, - permitir que el dispositivo de escritura de memoria (300) escriba objetos de software en la memoria no volátil reescribible (245), si el código de clave de referencia corresponde al primer código de clave o al segundo código de clave, y
- permitir que el dispositivo de escritura de memoria (300) sobrescriba el segundo código de identificación almacenado en la memoria no volátil reescribible (245) con un nuevo código de identificación, si el código de clave de referencia recibido del dispositivo de escritura de memoria (300) corresponde al segundo código de clave.
2. Un procedimiento según la reivindicación 1, donde los objetos de software que el dispositivo de escritura de memoria (300) está habilitado para escribir en la memoria no volátil reescribible (245) incluyen al menos programas de control del motor y/o datos de calibración.
3. Un procedimiento según cualquiera de las reivindicaciones anteriores, donde el segundo código de identificación se almacena en una dirección de memoria de la memoria no volátil reescribible (245) que está cifrada en un código de puntero también almacenado en la memoria no volátil reescribible (245).
4. Un procedimiento según cualquiera de las reivindicaciones anteriores, donde el código de semilla es generado por la unidad de control electrónico (215) que ejecuta un algoritmo generador de semillas.
5. Un procedimiento según cualquiera de las reivindicaciones anteriores, donde el primer código de clave y el segundo código de clave son generados por la unidad de control electrónico (215) que ejecuta un algoritmo generador de claves.
6. Un procedimiento según la reivindicación 5, donde el algoritmo generador de semillas se almacena en la memoria no volátil reescribible (245).
7. Un procedimiento según la reivindicación 7, donde el algoritmo generador de claves se almacena en la memoria no volátil reescribible (245).
8. Un procedimiento según cualquiera de las reivindicaciones anteriores, donde el código de clave de referencia es generado por el dispositivo de escritura de memoria (300) en función del código de semilla y un tercer código de identificación.
9. Un procedimiento según la reivindicación 8, donde el tercer código de identificación es proporcionado al dispositivo de escritura de memoria (300) por un usuario del mismo.
10. Una unidad de control electrónico (215) de un motor de combustión interna (100), que comprende una memoria no volátil reescribible (245) y una unidad de procesamiento (240) configuradas para:
- recibir una solicitud de acceso de un dispositivo de escritura de memoria (300),
- generar un código de semilla,
- transmitir el código de semilla al dispositivo de escritura de memoria (300), - generar un primer código de clave sobre la base del código de semilla y un primer código de identificación almacenados en la memoria no volátil reescribible (245),
- generar un segundo código de clave sobre la base del código de semilla y un segundo código de identificación almacenados en la memoria no volátil reescribible (245),
- recibir un código de clave de referencia del dispositivo de escritura de memoria (300),
- comparar el código de clave de referencia con el primer código de clave y/o con el segundo código de clave, - permitir que el dispositivo de escritura de memoria (300) escriba objetos de software en la memoria no volátil reescribible (245), si el código de clave de referencia corresponde al primer código de clave o al segundo código de clave, y
- permitir que el dispositivo de escritura de memoria (300) sobrescriba el segundo código de identificación almacenado en la memoria no volátil reescribible (245) con un nuevo código de identificación, si el código de clave de referencia recibido del dispositivo de escritura de memoria (300) corresponde al segundo código de clave.
ES19167958T 2018-05-17 2019-04-08 Procedimiento y dispositivo para escribir objetos de software en una unidad de control electrónico de un motor de combustión interna Active ES2869240T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102018000005466A IT201800005466A1 (it) 2018-05-17 2018-05-17 Metodo e dispositivo per scrivere oggetti software in una unita' elettronica di controllo di un motore a combustione interna

Publications (1)

Publication Number Publication Date
ES2869240T3 true ES2869240T3 (es) 2021-10-25

Family

ID=62952364

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19167958T Active ES2869240T3 (es) 2018-05-17 2019-04-08 Procedimiento y dispositivo para escribir objetos de software en una unidad de control electrónico de un motor de combustión interna

Country Status (5)

Country Link
US (2) US11068173B2 (es)
EP (1) EP3570193B1 (es)
CN (1) CN110501935B (es)
ES (1) ES2869240T3 (es)
IT (1) IT201800005466A1 (es)

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3954271B2 (ja) * 2000-03-16 2007-08-08 本田技研工業株式会社 車両制御装置のためのメモリ書き換えシステム
JP3785299B2 (ja) * 2000-03-16 2006-06-14 本田技研工業株式会社 車両制御装置のためのメモリ書き換えシステム
US7100011B2 (en) * 2002-03-01 2006-08-29 Arris International, Inc. Method and system for reducing storage requirements for program code in a communication device
US7091857B2 (en) * 2004-02-12 2006-08-15 Mi-Jack Products, Inc. Electronic control system used in security system for cargo trailers
JP4130653B2 (ja) * 2004-12-20 2008-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 擬似公開鍵暗号方法及びシステム
US7368940B1 (en) * 2006-06-08 2008-05-06 Xilinx, Inc. Programmable integrated circuit with selective programming to compensate for process variations and/or mask revisions
JP4197038B2 (ja) * 2007-03-27 2008-12-17 トヨタ自動車株式会社 ハイブリッド自動車およびその制御方法
JP4475346B2 (ja) * 2008-05-13 2010-06-09 トヨタ自動車株式会社 故障診断システム及びこれに用いる車載ecu
WO2011034083A1 (ja) * 2009-09-18 2011-03-24 ヤンマー株式会社 エンジン制御装置及びその制御方法
US8204480B1 (en) * 2010-10-01 2012-06-19 Viasat, Inc. Method and apparatus for secured access
JP5395036B2 (ja) * 2010-11-12 2014-01-22 日立オートモティブシステムズ株式会社 車載ネットワークシステム
DE102013101508A1 (de) * 2012-02-20 2013-08-22 Denso Corporation Datenkommunikationsauthentifizierungssystem für ein Fahrzeug, Netzkopplungsvorrichtung für ein Fahrzeug, Datenkommunikationssystem für ein Fahrzeug und Datenkommunikationsvorrichtung für ein Fahrzeug
WO2013165995A1 (en) * 2012-04-30 2013-11-07 Thermo King Corporation Transport refrigeration system controller to engine control unit interface
US9270468B2 (en) * 2013-05-29 2016-02-23 GM Global Technology Operations LLC Methods to improve secure flash programming
US9571284B2 (en) * 2014-03-13 2017-02-14 GM Global Technology Operations LLC Controlling access to personal information stored in a vehicle using a cryptographic key
EP2978158A1 (en) * 2014-07-21 2016-01-27 Nxp B.V. Methods and architecture for encrypting and decrypting data
US10127743B2 (en) * 2016-03-29 2018-11-13 Rm Acquisition, Llc Apparatuses, systems and methods for electronic data logging
US10171478B2 (en) * 2016-06-30 2019-01-01 Faraday & Future Inc. Efficient and secure method and apparatus for firmware update
US10371071B2 (en) * 2016-11-09 2019-08-06 Fev North America, Inc. Systems and methods for non-intrusive closed-loop combustion control of internal combustion engines
CN107273152A (zh) * 2017-05-26 2017-10-20 安徽贵博新能科技有限公司 一种防止系统ecu软件被误升级的解决方法
CN107453864B (zh) * 2017-07-04 2020-08-04 奇瑞新能源汽车股份有限公司 一种安全验证方法和系统
JP6940365B2 (ja) * 2017-10-12 2021-09-29 日立Astemo株式会社 情報更新装置
CN107894790B (zh) * 2017-11-23 2020-03-17 重庆长安汽车股份有限公司 一种mt车型发动机油门扭矩特性匹配方法
US10891809B2 (en) * 2018-03-20 2021-01-12 Shenzhen Launch Software Co., Ltd Intelligent diagnosis assistance method, device and equipment

Also Published As

Publication number Publication date
EP3570193B1 (en) 2021-03-03
US20190354297A1 (en) 2019-11-21
IT201800005466A1 (it) 2019-11-17
US20210200451A1 (en) 2021-07-01
CN110501935B (zh) 2024-03-12
CN110501935A (zh) 2019-11-26
EP3570193A1 (en) 2019-11-20
US11068173B2 (en) 2021-07-20

Similar Documents

Publication Publication Date Title
CN110541749B (zh) 用于电加热后处理系统的预测控制的方法和系统
US20120210700A1 (en) Method to monitor pressure drop across a selective catalyst reducer for engine and exhaust airflow diagnostics
US8156733B2 (en) Method of operating an internal combustion engine to heat up a selective catalyst reducer
JP6129499B2 (ja) 自動車用電子制御システム
CN104685185A (zh) 用于减少发动机爆震的系统和方法
US7984362B2 (en) Method for static fault code synchronization in an internal combustion engine
US7980066B2 (en) Thermal management for an internal combustion engine to optimize diesel particulate filter regeneration events
CN105298655B (zh) 具有增强冷启动能力的双燃料发动机
CN106286023A (zh) 操作低压排气再循环路线中的低压排气再循环阀的方法
ES2869240T3 (es) Procedimiento y dispositivo para escribir objetos de software en una unidad de control electrónico de un motor de combustión interna
CN104653305B (zh) 机动车内燃机的控制
GB2519329A (en) Method of controlling an exhaust recirculation gas system
US8141348B2 (en) Engine after-treatment controls using dosing below catalyst light-off temperature
US20110106505A1 (en) Method for estimating ambient air temperature prior to combustion in an internal combustion engine
US8849543B2 (en) Method to operate an electronically controlled internal combustion engine
JP2014061793A (ja) 自動車用電子制御装置
US7739028B2 (en) Method of operation of internal combustion engine with permanent fault code implementation
US8769933B2 (en) Method to operate an internal combustion engine
CN105626286A (zh) 排气系统部件输入压力估计系统和方法
CN104405485A (zh) 提高scr系统的高抗硫性的模拟燃料硫传感器
US20130070804A1 (en) Method for estimating ambient air temperature prior to combustion in an internal combustion engine
Prajwowski Possibilities of changes of parameters of the driver to engine Fiat 1.3 JTD performances
US20240112200A1 (en) Systems and methods for controller updating and configuring emission certification level enforcement
Buckland et al. Technology assessment of boosted direct injection stratified charge gasoline engines
CN110273774B (zh) 控制内燃机的喷射装置的方法