MX2012010827A - Unidad de control electronico de un vehiculo y metodo de escritura de datos. - Google Patents

Unidad de control electronico de un vehiculo y metodo de escritura de datos.

Info

Publication number
MX2012010827A
MX2012010827A MX2012010827A MX2012010827A MX2012010827A MX 2012010827 A MX2012010827 A MX 2012010827A MX 2012010827 A MX2012010827 A MX 2012010827A MX 2012010827 A MX2012010827 A MX 2012010827A MX 2012010827 A MX2012010827 A MX 2012010827A
Authority
MX
Mexico
Prior art keywords
data
program
writing
ecu
write
Prior art date
Application number
MX2012010827A
Other languages
English (en)
Inventor
Yusuke Abe
Koji Yuasa
Toshihisa Arai
Original Assignee
Hitachi Automotive Systems Ltd
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 Hitachi Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Publication of MX2012010827A publication Critical patent/MX2012010827A/es

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/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
    • G06F3/0656Data buffering arrangements
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/24Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
    • F02D41/2406Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using essentially read only memories
    • F02D41/2425Particular ways of programming the data
    • F02D41/2487Methods for rewriting
    • F02D41/249Methods for preventing the loss of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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]
    • 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/068Hybrid storage device
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W2050/0001Details of the control system
    • B60W2050/0002Automatic control, details of type of controller or control system architecture
    • B60W2050/0004In digital systems, e.g. discrete-time systems involving sampling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/173Vehicle or other transportation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Mechanical Engineering (AREA)
  • Stored Programmes (AREA)
  • Memory System (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Abstract

Una unidad de control electrónico para un vehículo incluye una memoria no volátil capaz de borrar y escribir los datos electrónicamente y dos separadores o memorias intermedias para adquirir, por comunicación, datos divididos obtenidos dividiendo un programa por tamaños predeterminado. Luego, en paralelo usando dos separadores o memorias intermedias alternadamente para recibir los datos divididos, la unidad de control electrónico para un vehículo usa un separador o memoria intermedia que no se usa para recibir los datos divididos para escribir los datos divididos recibidos en la memoria no volátil.

Description

UNIDAD DE CONTROL ELECTRÓNICO DE UN VEHÍCULO Y MÉTODO DE ESCRITURA DE DATOS ANTECEDENTES DE LA INVENCIÓN 1. Campo de la invención La presente invención se relaciona con una unidad de control electrónico de un vehículo y método de estructura de datos . 2. Descripción del arte relacionado Una unidad de control electrónico (ECU) para un vehículo se equipa con una memoria no volátil (por ejemplo, ROM flash (memoria de sólo lectura) ) en tales datos se pueden escribir y borrar electrónicamente. La unidad de control electrónico controla los dispositivos en el vehículo (por ejemplo, inyector de combustible) por un programa de control o similar almacenado en la memoria no volátil.
Como se describe en la solicitud de Patente Japonesa publicada No. 2008-146521, en un caso en que los datos de un programa de control o similar se escriben dentro de una memoria no volátil, una herramienta de escritura para la transferencia de datos escritos a una unidad de control electrónico se conecta a la unidad de control electrónico. Luego, la unidad de control electrónico escribe los datos escritos dentro de la memoria no volátil mientras que se transfieren los datos escritos desde la herramienta de escritura.
Mientras tanto, la herramienta de escritura divide los datos totales escritos por un tamaño predeterminado, y transfiere los datos escritos divididos (datos divididos) secuencialmente a la unidad de control electrónico. En este caso, después de escribir los datos divididos transferidos hacia la memoria no volátil, la unidad de control electrónico realiza el procesamiento de recepción para los siguientes datos divididos. Por lo tanto, la unidad de control electrónico realiza alternadamente el procesamiento de escritura de datos divididos y el procesamiento de recepción de los datos divididos para escribir los datos escritos totales dentro de la memoria no volátil. Por lo tanto, el tiempo requerido para escribir el total de los datos escritos dentro de la memoria no volátil es la suma del tiempo requerido para procesar la escritura de todas las piezas de los datos divididos y el tiempo requerido para el procesamiento de récepción de todas las piezas de los datos divididos .
BREVE DESCRIPCIÓN DE LA INVENCIÓN Una unidad de control electrónico para un vehículo incluye una memoria no volátil capaz de borrar y escribir datos eléctricamente y dos separadores o memorias intermedias, la unidad de control electrónica recibe, por comunicación, datos divididos obtenidos por dividir un programa por un tamaño predeterminado. Después, en paralelo con la recepción de los datos divididos por usar los dos separadores alternadamente, la unidad de control electrónica para un vehículo escribe los datos divididos usando un separador que no se use para recibir los datos divididos, dentro de la memoria no volátil.
Otros objetivos y características de aspectos de la presente invención se entenderán a partir de la siguiente descripción con referencia a los dibujos adjuntos.
BREVE DESCRIPCIÓN DE LOS DIBUJOS Fig. 1 es una vista explicativa de un proceso de fabricación de ECU y un proceso de escritura del programa de aplicación; Fig. 2 es una vista de la configuración de una ECU y una herramienta de escritura; Fig. 3 es una vista detallada de las áreas de comunicación del separador o memoria intermedia; Fig. 4 es un diagrama de flujo de un procedimiento para el proceso de escritura del programa de aplicación; Fig. 5 es una vista esquemática del procesamiento de escritura del programa total o completo; Fig. 6 es una vista detallada de las áreas del separador de comunicación después que se cambia el entorno de comunicación ; Fig. 7 es un diagrama de flujo del procesamiento realizado por un programa de transferencia de datos de la herramienta de escritura; Fig. 8 es un diagrama de flujo del procesamiento realizado por el programa de transferencia de datos de la herramienta de escritura; Fig. 9 es un diagrama de flujo del procesamiento realizado por el programa de transferencia de datos de la herramienta de escritura; Fig. 10 es diagrama de flujo del procesamiento realizado por el programa de transferencia de datos de la herramienta de escritura; Fig. 11 es un diagrama de flujo del procesamiento realizado por un programa de expansión RAM de la ECU; Fig. 12 es diagrama de flujo del procesamiento realizado por un programa principal de escritura de la ECU; Fig. 13 es un diagrama de flujo del procedimiento realizado por el programa principal de la ECU; Fig. 14 es un diagrama de flujo del procedimiento realizado por el programa principal de escritura de la ECU; Fig. 15 es un diagrama de flujo del procesamiento realizado por el programa principal de escritura de la ECU; Fig. 16 es un diagrama de flujo del procesamiento realizado por un subprograma de escritura de la ECU; y Fig. 17 es un diagrama de una secuencia de una modalidad del procesamiento de escritura y transferencia de programa.
DESCRIPCIÓN DETALLADA DE LA INVENCION Una modalidad preferida para llevar a cabo la presente invención se describirá a detalle con referencia a los dibujos adjuntos .
Fig. 1 ilustra un proceso 10 de fabricación de la ECU y un proceso 20 de escritura del programa de aplicación para la' escritura de un programa de aplicación (por ejemplo, un programa de control del motor) en un ROM (por ejemplo, ROM flash) incorporado en una ECU 100.
En el proceso 10 de fabricación de la ECU, un operador escribe un programa mínimo capaz de correr un programa de chequeo del hardware y escribir un programa de aplicación en un proceso posterior para el ROM incorporado en la ECU 100 para conducir una inspección. El proceso 10 de fabricación de la ECU es, por ejemplo, parte de un proceso de trabajo con un proveedor de la ECU o los similares.
En el proceso 20 de escritura del programa de aplicación, el operador usa una herramienta 200 de escritura para escribir un programa de aplicación de acuerdo al tipo del vehículo dentro del ROM en la ECU 100. Por lo tanto, la ECU 100 suministrada por el proceso 10 de fabricación de la ECU es la ECU 100 para cada tipo de vehículo. En el proceso de la inspección posterior, el operador comprueba si un programa de aplicación de acuerdo a un vehículo se escribe dentro del ROM de la ECU 100 montada en el vehículo. Además, un proceso 20 de escritura del programa de aplicación es, por ejemplo, parte de un proceso de trabajo realizado en asociación con un proceso de montado o ensamblaje de la ECU en una fabrica de automóviles o similares.
Por lo tanto, puesto que la ECU 100 es común entre todos los tipos de vehículos antes de escribir un programa de aplicación de la ROM en un proceso 20 de escritura del programa de aplicación, el proveedor de la ECU o similar puede, por ejemplo, fabricar ECUs comunes para todo tipo de vehículos y entregar los ECUs para la fabrica de automóviles o similares. Esto elimina la necesidad del proveedor de la ECU o los similares para hacer la programación, fabricación, administración de entregas, y de los similares de la ECU 100 para cada tipo de vehículo. Esto también elimina la necesidad de mantener y gestionar (el estado del stock o materiales y los similares de) ECU 100 para cada tipo de vehículo antes de escribir dentro de la ROM en el proceso 20 de escritura del programa de aplicación en la fabrica de automóviles o los similares. Por lo tanto, esos procesos tienen las ventajas de permitir grandes reducciones en fabricación y manejo con el proveedor de la ECU y la fabrica de automóviles o los similares .
Sin embargo, el proceso 20 de escritura del programa de que no existe en lo convencional se añade recientemente en la fábrica de automóviles o los similares. En este proceso 20 de escritura del programa de aplicación, se requiere escribir un programa de aplicación especifico del tipo de vehículo dentro de la ROM inmediatamente. La Fig. 2 ilustra una configuración de la ECU 100 y una herramienta 200 de escritura para satisfacer este requerimiento.
La ECU 100 controla la inyección de combustible, ignición, y los similares en un motor para un vehículo, y se configura para incluir un ROM 110, una microcomputadora 120 (procesador) , una RAM 130 (memoria de acceso aleatorio) como una memoria volátil, y un circuito 140 de comunicación. La ECU 100 se conecta con el fin de ser desmontable a la herramienta 200 de escritura a través de una línea 300 de comunicación tal como un CAN (área de control de red) .
La microcomputadora 120 incluye una CPU, una memoria caché, y los similares para correr varios programas guardados en la ROM 110 y la RAM 130.
En la RAM 130, una primer área 133 de separador y una segunda área 134 de separador se pre-asignan. La primer área 133 de separador y la segunda área 134 de separador son utilizadas en la escritura de datos dentro del ROM 110.
En el circuito 140 de comunicación, un área 141 de comunicación de separador se pre-asigna. El área 141 de comunicación separador se usa cuando la ECU 100 se comunica con otra unidad a través del circuito 140 de comunicación.
La herramienta 200 de escritura se configura para incluir un almacenamiento 210 (por ejemplo, disco duro) y un circuito 240 de comunicación. La herramienta 200 de escritura también incluye una terminal (por ejemplo, computadora personal) y una unidad para conectar a la ECU 100 para que el operador sea capaz de instruir interactivamente a la herramienta 200 de escritura. La herramienta 200 de escritura transfiere la escritura de datos almacenados en el almacenamiento 210 a la ECU 100.
Un programa de aplicación y los similares para ser transferidos a la ECU 100 se almacena en el almacenamiento 210.
En el circuito 240 de comunicación, una área 241 del separador de comunicación se pre-asigna. El área 241 de separador de comunicación se usa cuando la herramienta 200 de escritura se comunica con la ECU 100 a través del circuito 240 de comunicación.
Aquí, los detalles del área 141 del separador de comunicación que se usan cuando la ECU 100 se comunica con la herramienta 200 de escritura se ilustrarán en la Fig. 3.
En el área 141 del separador de comunicación de la ECU 100, hay dos o más separadores de comunicación de un tamaño dado (por ejemplo, buzones de correo en CAN) . Cuando se comunica con cada unidad, la ECU 100 usa un separador de comunicación pre-asignado para comunicarse con una unidad objetivo de comunicación entre los separadores de comunicación en el área 141 del separador de comunicación. Observe que cada separador de comunicación se divide en un separador de transmisión (TX) usado para enviar datos y un separador receptor (RX) usado para recibir datos. Aquí, el número de separadores de comunicación pre-asignados para la comunicación con una unidad objetivo de comunicación se establecen para el número de separadores usados en un entorno de comunicación en el vehículo.
Por otra parte, hay dos o más separadores de comunicación de tamaño dado en el área 241 del separador de comunicación de la herramienta 200 de escritura. El tamaño de cada separador de comunicación en el área 241 del separador de comunicación es la misma que el tamaño de cada separador de comunicación en el área 141 del separador de comunicación de la ECU 100.
En la Fig. 3, dos separadores de comunicación (una TX1 y una RX1) son asignados para el área 141 del separador de comunicación de la ECU 100 como separadores de comunicación (separadores de comunicación para la herramienta de escritura) usada por la ECU 100 para comunicarse con la herramienta 200 de escritura. Los otros separadores de comunicación in el área 141 del separador de comunicación son asignados para la comunicación con otras unidades que con la herramienta 200 de escritura .
Por lo tanto, en un caso en que el tamaño del separador de comunicación es de 8 bytes y la ECU 100 se comunica con la herramienta 200 de escritura en sincronización entre si para regresar una respuesta cada vez que reciba una parte de datos a la herramienta 200 de escritura, puesto que un RX se usa para recibir una parte de datos, la ECU 100 necesita realizar la comunicación 16 veces para recibir 64 bytes de datos. En otras palabras, puesto que la herramienta 200 de escritura transfiere 64 bytes de datos dividiéndolos en 8 bytes de datos y la ECU 100 regresa una respuesta a la herramienta 200 de escritura cada vez que recibe ocho bytes, el numero de comunicaciones es 16.
Fig . 4 ilustra un procedimiento en el proceso 20 de escritura del programa de aplicación.
En el paso 1 (abreviado como "SI" en el dibujo; la misma aplica de aquí en adelante) , el operador conecta la ECU 100 a la herramienta 200 de escritura. Una vez conectado, la ECU 100 se acciona y la micro-computadora 120 ejecuta el programa mínimo para hacer la ECU 100 transmisible con la herramienta 200 de escritura, esperando recibir los datos para ser transferidos desde la herramienta 200 de escritura.
En el paso 2, el operador especifica un programa de aplicación (por ejemplo, un programa de control del motor para el vehículo tipo A) y los similares para ser escritos dentro del ROM 110. Cuando un programa de aplicación se especifica, la herramienta 200 de escritura transfiere el programa de aplicación específica para la ECU 100. La ECU 100 escribe el programa de aplicación dentro del ROM 110 mientras que recibe el programa de aplicación transferido y los similares. En lo sucesivo, el procesamiento en el paso 2 se nombra al procesamiento de escritura del programa completo.
En el paso 3, el operador desconecta la ECU 100 desde la herramienta 200 de escritura.
Después de eso, la ECU 100 se monta o ensambla en cada vehículo. Además, en el proceso de inspección, se comprueba si un programa de aplicación correcto se escribe dentro del ROM 110 de la ECU 100 (por ejemplo, si es un programa de aplicación para el vehículo en el cual la ECU 100 se monta) . Si el correcto programa de aplicación no se escribe, la herramienta 200 de escritura se reconecta a la ECU 100 montada en el vehículo para escribir un correcto programa de aplicación .
Fig. 5 ilustra la el esguema del procesamiento de escritura del programa completo.
En el paso 11, cuando el operador especifica un programa de escritura y un programa de aplicación para ser escrito dentro del ROM 110, la herramienta 200 de escritura activa un programa de transferencia de datos para transferir el programa de escritura y el programa de aplicación. Después, la herramienta 200 de escritura envía a la ECU 100 un mensaje indicativo del comienzo de transferencia del programa de escritura (por ejemplo, programa de escritura 2) por medio del programa de transferencia de datos para transferir el programa especifico de escritura.
Aquí, el programa de escritura especificado por el operador se almacena en una base de datos 211 del programa de escritura existente en el almacenamiento 210. El programa de escritura se transfiere a la ECU 100 para mejorar, en la ECU 100, la inicialización del proceso tal como para cambiar un entorno o ambiente de comunicación, el procesamiento de recepción de datos escritos, y el procesamiento de escritura de datos escritos dentro de la ROM 110. El programa de escritura se compone de un programa principal y un subprograma de escritura.
El programa principal de escritura corre en la ECU 100 después de ser transferido datos a la ECU 100, para estabilizar un entorno de comunicación (método de usar separadores de comunicación, velocidad de comunicación, esquema cifrado, y los similares) de acuerdo al programa de escritura entre la herramienta 200 de escritura y la ECU 100. Además, el programa principal de escritura escribe el programa de aplicación transferido desde la herramienta 200 de escritura dentro del ROM 110 de acuerdo a las condiciones de escritura (dirección de un área de escritura en el ROM, y los similares) del programa de escritura. El subprograma de escritura se activa desde el programa principal de escritura para copiar los datos recibidos en el área 141 del separador o memoria intermedia de comunicación a una primera área de separador y una segunda área de separador.
Además, el programa de aplicación especificado por el operador se almacena en una base de datos 212 del programa de aplicación existente en el almacenamiento 210. Cada programa de aplicación es un programa de control del motor o los similares de acuerdo a cada tipo de vehículo.
En el paso 12, cuando la ECU 100 recibe el mensaje indicativo del comienzo de la transferencia del programa de escritura desde la herramienta 200 de escritura como la fuente del programa de escritura, se activa un programa de expansión de RAM almacenado en la ROM 110. Aquí, el programa de expansión de RAM realiza el proceso para de expansión, en la RAM 130, el programa de escritura es recibido por la ECU 100. Por lo tanto, la ECU 100 expande el programa de escritura recibido en la RAM 130 por medio del programa de expansión RAM mientras se recibe el programa de escritura.
En el paso 13, cuando la ECU 100 completa la expansión del programa de escritura, el programa de escritura que se expande en la RAM 130 se activa por el programa de expansión RAM.
En el paso 14, la ECU 100 tiene el programa de escritura que cambia el entorno de comunicación entre la ECU 100 y la herramienta 200 de escritura para un entorno de comunicación de acuerdo al programa de escritura, y envía a la herramienta 200 de escritura un mensaje de petición de transmisión de un programa de aplicación.
En el paso 15, cuando la herramienta 200 de escritura recibe el mensaje de petición de transmisión de una programa de aplicación, transferido de una programa de aplicación (por ejemplo, programa de aplicación 1) especificado por el operador a la ECU 100, se inicia por medio del programa de transferencia de datos.
En el paso 16, la ECU 100 escribe el programa de aplicación recibido dentro de la ROM 110 basado en las condiciones de escritura por medio del programa principal de escritura y el subprograma de escritura mientras que recibe el programa de aplicación desde la herramienta 200 de escritura.
Después de terminar de escribir, la ECU 100 se desconecta de la herramienta 200 de escritura, y por lo tanto la alimentación de apaga. Cuando la alimentación de la ECU 100 se enciende a continuación, el ambiente o entorno de comunicación de la ECU 100 se restaura a un estado inicial (el mismo entorno de comunicación que en el paso 1) . En un caso en que algún tipo de mal operación (por ejemplo, comunicación con la herramienta 200 de escritura se interrumpa o los similares mientras que esté corriendo el programa de escritura) se haya producido durante todo el proceso de escritura del programa, la ECU 100 se reinicia a si misma. Entonces, el entorno de comunicación de la ECU 100 se restaura al estado inicial.
Por lo tanto, se selecciona un programa de escritura, de modo que se usa el programa de escritura apropiado para el entorno de comunicación, las condiciones de escritura para el programa de aplicación, y los similares puedan correr en todo el proceso del programa de escritura. Por lo tanto, por ejemplo, un programa de escritura con velocidad mayor de comunicación puede correr para realizar la comunicación a alta velocidad para acelerar el procesamiento de escritura del programa completo.
Además, en el proceso de escritura del programa completo, el programa de escritura se transfiere a la ECU 100, y este elimina la necesidad de almacenar el programa de escritura en la ROM 110, permitiendo reducir el uso de la ROM 110.
Además, el programa de escritura se puede cambiar para añadir una nueva función en el procesamiento del programa de escritura completo.
En tal situación que cualquier otra unidad se conecte a la ECU 100 además de la herramienta 200, si la ECU 100 bloquea la comunicación con la otra unidad para comunicarse solo con la herramienta 200 de escritura, se puede realizar el procesamiento de escritura del programa.
Como un ejemplo de la realización del procesamiento de escritura del programa completo en tal situación que la otra unidad se conecte a la ECU 100 además de la herramienta 200 de escritura, hay un caso en que un programa de aplicación se escribe en tal estado que la ECU 100 se monta en un vehículo.
En ese caso, un entorno de comunicación usado cuando la ECU 100 se comunica con la herramienta 200 de escritura necesita ser un entorno de comunicación común a la otra unidad (por ejemplo, la velocidad de comunicación es común) para para prevenir la competencia entre los canales de comunicación. Por lo tanto, el operador especifica un programa de escritura para establecer un entorno o ambiente de comunicación común a la otra unidad para realizar el procesamiento de escritura del programa completo. En este momento, la ECU 100 se comunica solo con la herramienta 200 de escritura, bloqueando la comunicación con la otra unidad.
A continuación, se describirá un método de uso del área 141 del separador de comunicación usado cuando la ECU 100 recibe un programa de aplicación transferido desde la herramienta 200 de escritura.
En el proceso 20 de escritura del programa de aplicación, puesto que la ECU 100 no se comunica con cualquier otra unidad que la herramienta 200 de escritura, un separador o memoria intermedia de comunicación pre-asignada a la unidad diferente que la herramienta 200 de escritura (separador de comunicación para la otra unidad) .
Por lo tanto, el programa de escritura puede cambiar el separador de comunicación para la otra unidad a ser usada para la comunicación entre la ECU 100 y la herramienta 200 de escritura además del separador de comunicación para la herramienta de escritura.
La Fig. 6 ilustra los detalles del área 141 del separador de comunicación después de ser cambiado.
En el ejemplo de la Fig. 6, cuando la comunicación con la herramienta 200 de escritura, la ECU 100 usa dos separadores o memorias intermedias de comunicación para la herramienta de escritura y siete separadores de comunicación en los separadores de otras unidades. En este momento, un TX y ocho RXs son ajustados como los nueve separadores de comunicación usados por la ECU 100. En este momento, los separadores de comunicación en comunicación con el área 241 del separador de comunicación de la herramienta 200 de escritura son ocho TXs y un RX.
Por ejemplo, en un caso en que el tamaño de un separador de comunicación es de ocho bytes y la ECU 100 se comunica con la herramienta 200 de escritura en sincronización entre si para regresar una respuesta a la herramienta 200 de escritura cada vez que una parte o pieza de datos se recibe, puesto que las ocho RXs se pueden usar para recibir una parte de datos, la ECU 100 solo tiene que realizar la comunicación nueve veces para recibir 64 bytes de datos desde la herramienta 200 de escritura. En otras palabras, la herramienta 200 de escritura transfiere 64 bytes de datos para dividirlas dentro de ocho bytes de datos como una pieza de datos, y la ECU 100 regresa una respuesta a la herramienta 200 de escritura cada vez que se reciben las ocho piezas de ocho bytes de datos. Por lo tanto, el número de comunicaciones es nueve.
El programa de escritura puede ajustarse al numero de separadores de comunicación usados por la ECU 100 para comunicarse con la herramienta 200 de escritura para un numero de acuerdo al tamaño de datos para ser enviados y recibidos, un múltiplo entero del tamaño de datos a ser enviados y recibidos, el tamaño de una escritura dentro de la ROM 110, un múltiple integral del tamaño de una escritura en la ROM 110, o los similares.
Por lo tanto, puesto que la comunicación puede ser realizada usando los separadores de comunicación para las otras unidades además a los separadores de comunicación para la herramienta de escritura, se puede reducir el número de comunicaciones en el caso de comunicación que requiera sincronización, reduciendo el tiempo requerido para transferir datos y por lo tanto aumenta la velocidad de transferencia de datos. Además, puesto que se usan los separadores de comunicación para las otras unidades, la herramienta 200 de escritura puede transferir continuamente datos sin tomar en cuenta la sobre-escritura de los separadores de comunicación.
En al área 141 del separador de comunicación, si hay algún separador de comunicación sin usar que no este asignado a ninguna unidad, el programa de escritura puede usar el separador de comunicación sin usar para la comunicación entre la ECU 100 y la herramienta 200 de escritura. Puesto que esto incrementa el tamaño del separador de comunicación capaz de ser usado para recibir una parte o pieza de datos, el número de comunicaciones puede reducirse aun más.
A continuación, se describirá cada programa que corre en el procesamiento de escritura del programa completo.
Las Fig. 7 y Fig. 8 ilustran los diagramas del procesamiento realizados por el programa de transferencia de datos en la herramienta 200 de escritura cuando el programa de escritura y el programa de aplicación se especifican por el operador en la herramienta 200 de escritura.
En el paso 31, el programa de transferencia de datos envía un mensaje a la ECU 100 (mensaje inicial de transferencia del programa de escritura) indicativo del inicio de la transferencia del programa de escritura.
En el paso 32, el programa de transferencia de datos secuencialmente transfiere datos del programa de escritura especifico por una suma o cantidad del tamaño de datos que la ECU 100 puede recibir en una comunicación.
En el paso 33, el programa de transferencia de datos determina si fue recibido un mensaje siguiente de petición de datos desde la ECU 100. Cuando el siguiente mensaje de petición de datos se recibe des de la ECU 100, el programa de transferencia de datos procede al paso 34 (Si) , mientras que cuando el siguiente mensaje de petición de datos no es recibida desde la ECU 100, el procesamiento se regresa al paso 33 (No) .
En el paso 34, el programa de transferencia de datos determina si la transferencia del programa de escritura especificado se completó. Cuando la transferencia del programa de escritura especificado se completa, el programa de transferencia de datos procede al procedimiento del paso 35 (Si) , mientras que cuando la transferencia del programa especifico no se completa, el procesamiento regresa al paso 32 (No) .
En el paso 35, el programa de transferencia de datos envía un mensaje a la ECU 100 indicativo de la terminación de la transferencia del programa de escritura (mensaje de terminación de la transferencia del programa de escritura) .
En el paso 36, el programa de transferencia de datos determina si un mensaje es recibido desde la ECU 100. Cuando un mensaje es recibido desde la ECU 100, el programa de transferencia de datos procede al procesamiento del paso 37 (Si), mientras que cuando no se recibe le mensaje desde la ECU 100, este regresa al proceso del paso 36 (No) .
En el paso 37, el programa de transferencia de datos determina si el mensaje recibido desde la ECU 100 es un mensaje indicativo que el programa de escritura se transfirió correctamente. Cuando el mensaje recibido es el mensaje indicativo que el programa de escritura se transfirió correctamente, el programa de transferencia de datos procede al procesamiento del paso 38 (Si) , mientras que cuando el mensaje recibido no es el mensaje indicativo que el programa de escritura se transfirió correctamente, el programa de transferencia de datos procede al procesamiento del paso 39 (No) .
En el paso 38, el programa de transferencia de datos ejecuta una subrutina de procesamiento de transferencia de aplicación. La subrutina del procesamiento de transferencia de aplicación es para realizar el procesamiento para dividir y transferir datos del programa de aplicación especifica. En lo sucesivo, los datos divididos y transferidos son llamados datos divididos .
En el paso 39, el programa de transferencia de datos se ajusta para transferir de nuevo el programa de escritura desde el principio (por ejemplo, regresar el índice del programa de escritura al comienzo o los similares).
Fig. 9 y Fig. 10 ilustran diagramas de flujo de la subrutina del procesamiento de transferencia de aplicación.
En el paso 41, el programa de transferencia de datos determina si la herramienta 200 de escritura recibe un mensaje desde la ECU 100. Cuando un mensaje se recibe desde la ECU 100, el programa de transferencia de datos procede al proceso del paso 42 (Si), mientras que cuando el mensaje no se recibe desde la ECU 100, el programa de transferencia de datos regresa al proceso del paso 42 (No) .
En el paso 42, el programa de transferencia de datos determina si el mensaje recibido es cualquier mensaje diferente de un mensaje indicativo de una petición de transmisión de datos divididos (mensaje de petición de transmisión de datos divididos) . Cuando el mensaje recibido es un mensaje diferente que el mensaje de petición de transmisión de datos divididos, el programa de transferencia de datos procede al procesamiento del paso 43 (Si) , mientras que cuando el mensaje recibido es el mensaje de petición de transmisión de datos divididos, el programa de transferencia de datos procede al procesamiento del paso 44 (No) .
En el paso 43, el programa de transferencia de datos determina si el mensaje recibido es cualquier mensaje diferente del mensaje indicativo de petición de retransmisión de datos divididos (mensaje de petición de retransmisión de datos divididos) . Cuando el mensaje recibido es otro mensaje que el mensaje de petición de retransmisión de datos divididos, el proceso del programa de transferencia de datos divididos, el programa de transferencia de datos procede al procesamiento del paso 47 (Si), mientras que cuando el mensaje recibido es el mensaje es el mensaje de petición de retransmisión de datos divididos, el programa de transferencia de datos procede al procesamiento del paso 46 (No).
En el paso 44, el programa de transferencia de datos lee los datos desde una posición, para que un puntero de lectura representando el índice de los puntos específicos del programa de aplicación, y crea los datos divididos con una suma de verificación agregada a los datos leídos. Aquí, el tamaño de los datos de lectura se ajusta a un valor obtenido por substraer el tamaño de la suma de verificación del tamaño total de RXs usados en el entorno de comunicación establecida por el programa de escritura transferido en la ECU 100.
El valor inicial del puntero de lectura es la dirección de inicio de la programa de aplicación. Cada vez que se ejecuta el paso 44, el puntero de lectura se incremente por el tamaño de los datos de lectura.
Por ejemplo, en un caso en que el tamaño total de RXs usados en el entorno de comunicación establecida por el programa de transferencia de escritura es de 64 bytes y el tamaño de la suma de verificación es dos bytes, el tamaño de los datos de lectura es de 62 bytes y el tamaño de los datos divididos es 64 bytes.
Para la verificación de datos, hay un código de detección de errores como CRC (Chequeo de Redundancia Cíclica) además de la suma de verificación. Además, puede ser analizado si los datos divididos se reciben en el orden correcto de tal manera que en el lado de la herramienta 200 de escritura, los datos divididos incluyen un número de secuencia que indica como cuantas piezas de datos divididos preceden antes de esta transferencia de datos divididos, y en el lado de la ECU 100 analiza el numero de secuencia de los datos divididos recibidos .
En el paso 45, el programa de transferencia de datos transfiere los datos divididos creados en la ECU 100. En este momento, el programa de transferencia de datos clasifica los datos divididos por el tamaño de TX en comunicación con el área 241 de comunicación separador y almacena cada pieza en cada TX en el área 241 del separador de comunicación para transferir los datos divididos. Por ejemplo, en un caso en que los datos divididos son 64 bytes y hay ocho TXs, cada uno de los cuales es de ocho bytes, en el área 241 del separador de comunicación, el programa de transferencia de datos clasifica los datos divididos en de ocho piezas de datos de ocho bytes y almacena cada pieza en cada TX.
Los datos almacenados en la TX se transfieren a la ECU 100 por medio del circuito 240 de comunicación.
En el paso 46, el programa de transferencia de datos transfiere los datos divididos creados otra vez a la ECU 100.
En el paso 47, el programa de transferencia de datos determina si el mensaje recibido es cualquier mensaje diferente de un mensaje indicativo que los datos divididos no se escriben correctamente dentro de la ROM 110 de la ECU 100 (mensaje NG de escritura de los datos divididos) . Cuando el mensaje recibido es cualquier mensaje diferente del mensaje NG de escritura de los datos divididos, el programa de transferencia de datos divididos procede al procesamiento en el paso 48 (Si), mientras que cuando el mensaje recibido es el mensaje NG de escritura de los datos divididos, el programa de transferencia de datos procede al procesamiento del paso 50 (No) .
En el paso 48, el programa de transferencia de datos determina si la transferencia de la programa de aplicación se completó hasta el fin, basado en si el puntero de lectura alcanza el fin del programa de aplicación. Cuando la transferencia del programa de aplicación se completa al fin, el programa de transferencia de datos procede el procesamiento del paso 49 (Si) , mientras que cuando la transferencia del programa de aplicación no se completa hasta el fin, el programa de transferencia de datos regresa al procesamiento al paso 41 (No) .
En el paso 49, el programa de transferencia de datos envía a la ECU 100 un mensaje indicativo de terminación de la transferencia de la programa de aplicación (mensaje de terminación de la transferencia de aplicación) .
En el paso 50, el programa de transferencia de datos ajusta el valor del puntero lector a una dirección inicial del programa de aplicación para transferir el programa de aplicación de nuevo desde el principio. Después de eso, el programa de transferencia de datos regresa al procesamiento al paso 41.
La Fig. 11 ilustra un diagrama de flujo del procesamiento realizado por el programa de expansión RAM en la ECU 10 cuando la ECU 100 recibe el mensaje inicial de transferencia del programa de escritura.
En el paso 51, el programa de expansión RAM determina si la ECU 100 recibió los datos desde la herramienta 200 de escritura. Cuando la ECU 100 recibe datos desde la herramienta 200 de escritura, el programa de expansión RAM procede al procesamiento del paso 52 (Si) , mientras que cuando este no recibió los datos desde la herramienta 200 de escritura, el programa de expansión RAM regresa al procesamiento al paso 51 (No) .
En el paso 52, el programa de expansión RAM determina si los datos recibidos son un mensaje de terminación de transferencia del programa de escritura. Cuando los datos recibidos son el mensaje de terminación de transferencia del programa de escritura, el programa de expansión RAM procede al procesamiento del paso 53 (Si) , mientras que cuando los datos recibidos no son el mensaje de terminación de transferencia del programa de escritura, el programa de expansión RAM procede al procesamiento del paso 56 (No) .
En el paso 53, el programa de expansión RAM determina si el programa de escritura transferido es válido usando la suma de verificación o los similares. Cuando el programa de escritura transferido es válido, el programa de expansión RAM procede al procesamiento del paso 54 (Si) , mientras que cuando el programa de escritura transferido no es válido, el programa de expansión RAM procede al proceso del paso 58 (No) .
En el paso 54, el programa de expansión RAM envía a la herramienta 200 de escritura un mensaje indicativo que el programa de escritura se transfirió correctamente.
En el paso 55, el programa de expansión RAM activa el programa principal de escritura en el programa de escritura expandido en la RAM 130.
En el paso 56, el programa de expansión expande, en la RAM 130, los datos recibidos del programa de escritura desde el RX en el área 141 del separador de comunicación.
En el paso 57, el programa de expansión RAM envía a la herramienta 200 de escritura un mensaje de petición de los datos siguientes. Después de eso, el programa de expansión de RAM regresa al procesamiento del paso 51.
En el paso 58, el programa de expansión RAM envía la herramienta 200 de escritura un mensaje indicativo que el programa de escritura no se transfirió correctamente. Después que, el programa de expansión RAM regresa al proceso del paso 51.
La Fig. 12 ilustra un diagrama de flujo de proceso mejorado por el programa principal en la ECU 100 cuando se activa el programa principal de escritura.
En el paso 61, de acuerdo al programa de escritura transferido, el programa principal de escritura cambia el entorno de comunicación en que la ECU 100 se comunica con la herramienta 200 de escritura. Cuando la ECU 100 se comunica con cualquier unidad diferente a la herramienta 200 de escritura, el entorno de comunicación no puede ser cambiado.
En el paso 62, el programa principal de escritura ejecuta una subrutina de procesamiento de escritura en la ROM. La subrutina de procesamiento de escritura en la ROM es para recibir los datos divididos desde la herramienta 200 de escritura como la fuente de los datos divididos y de los datos escritos del programa de aplicación dentro de la ROM 110 basado en los datos divididos.
La Fig. 13 a la Fig.15 ilustran la subrutina de procesamiento de escritura en la ROM.
En el paso 71, el programa principal de escritura ajusta el área 133 del primer separador en un área de copia para copiar los datos divididos recibidos desde la herramienta 200 de escritura.
En el paso 72, él programa principal de escritura activa un subprograma de escritura.
En el paso 73, el programa principal de escritura substituye 1 en una variable n como un contador para representar cuántas piezas de datos de los datos precedieron antes de una pieza de datos a ser procesados en los datos (datos del programa de aplicación) para ser escritos dentro de la ROM 110.
En el paso 74, el programa principal de escritura envía a la herramienta 200 de escritura un mensaje de petición de transmisión de datos divididos para recibir los primeros datos divididos .
En el paso 75, el programa principal de escritura determina si un mensaje (mensaje de termino de copia de datos divididos) que indica que los datos divididos recibidos desde la herramienta 200 de escritura se copian para el área de copiado, lo que se notifica desde el subprograma de escritura. Cuando se notifica el mensaje de terminación de la copia de datos divididos, el programa principal de escritura procede al procesamiento del paso 76 (Si) , mientras que no se notifica el mensaje de terminación de la copia de datos divididos, el programa de escritura principal regresa al procesamiento del paso 75 (No) .
En el paso 76, el programa principal de escritura se refiere a los primeros datos divididos almacenados en el área de copiado para usar la suma de verificación incluida en los datos divididos para determinar si los primeros datos divididos son capaces de ser recibidos de manera correcta. Cuando los primeros datos divididos son capaces de ser recibidos correctamente, el programa principal de escritura procede al procesamiento del paso 77 (Si), mientras que cuando los primeros datos divididos no son capaces de ser recibidos correctamente, el programa principal de escritura procede al procesamiento del paso 78 (No) .
En el paso 77, el programa principal de escritura establece el primer área 133 de separador en una área de escritura usada cuando los datos divididos se escriben dentro de la ROM 110 y establece la segunda área 134 de separador en el área de copiado.
En el paso 78, el programa principal de escritura envía a la herramienta 200 de escritura un mensaje de petición de retransmisión de datos divididos para re-recibir los primeros datos divididos. Después de eso, el programa principal de escritura regresa al procesamiento del paso 75. Un mensaje (mensaje NG de recepción de datos divididos) indica que los datos divididos no son capaces de ser recibidos correctamente puede también se puede enviar a la herramienta 200 de escritura junto con el mensaje de petición de retransmisión de datos divididos.
En el paso 79, el programa principal de escritura envía a la herramienta 200 de escritura un mensaje de petición de transmisión de datos divididos para recibir unos segundos datos divididos. Un mensaje (mensaje OK de recepción de datos divididos) indica que a los anteriores datos divididos son capaces de ser recibidos correctamente y también pueden ser enviados a la herramienta 200 de escritura junto con el mensaje de petición de transmisión de datos divididos.
En el paso 80, el programa principal de escritura remueve la suma de verificación desde los nésimos datos divididos almacenados en el área de escritura y escribe, en el ROM 110, los datos almacenados en el área de escritura de acuerdo a las condiciones de escritura.
En el paso 81, el programa principal de escritura verifica los datos escritos para determinar si los nésimos datos se escriben correctamente en el ROM 110. Cuando los nésimos datos se escriben correctamente en el ROM 110, el programa principal de escritura procede al procesamiento del paso 82 (Si), mientras que cuando los nésimos datos no se escriben correctamente dentro de la ROM 110, el programa principal de escritura procede al procesamiento del paso 84 (No) .
Los datos escritos se verifican por comparación, por ejemplo, el contenido del área de escritura con el contenido de un área de escritura de la ROM 110.
En el paso 82, el programa principal de escritura determina si el mensaje de terminación de copiado de los datos divididos fue notificado desde el subprograma de escritura. Cuando se notifica el mensaje de terminación de copiado de los datos divididos, el programa principal de escritura procede al procesamiento del paso 83 (Si), mientras que cuando no se notifica el mensaje de terminado de copiado de los datos divididos, el programa principal de escritura regresa al procesamiento del paso 82 (No) .
En el paso 83, el programa principal de escritura determina si los datos almacenados en el área de copiado es el mensaje de terminado de transferencia de aplicación. Cuando los datos almacenados en el área de copiado es el mensaje de terminación de transferencia de aplicación, el programa principal de escritura termina el proceso (Si) , mientras que cuando los datos almacenados en el área de copiado no es el mensaje de terminación de transferencia de aplicación, el programa principal de escritura procede al procesamiento del paso 87 (No) .
En el paso 84, el programa principal de escritura envía un mensaje NG de la escritura de los datos divididos a la herramienta 200 de escritura.
En el paso 85, el programa principal de escritura borra los datos escritos en el área de escritura de la ROM 110.
En el paso 86, el programa principal de escritura establece el área de copiado a la primera área del separador.
En el paso 87, el programa principal de escritura verifica, basado en la suma de verificación, (n+1) lésimo datos divididos copiados en el área de copiado para determinar si los datos divididos (n+1 ) ésimos son capaces de ser recibidos correctamente. Cuando los datos divididos (n+l)ésimos son capaces de ser recibidos correctamente, el programa principal de escritura procede al procesamiento del paso 88 (Si) , mientras que cuando los datos divididos (n+l)ésimos no son capaces de ser recibidos correctamente el programa principal de escritura procede al procesamiento del paso 91 (No) . Los datos divididos (n+l)ésimos pueden también ser verificados por el subprograma de escritura inmediatamente después que se reciben los datos divididos (n+1 ) ésimos .
En el paso 88, el programa principal de escritura cambia, al área de escritura, se establece el área del separador para copiado, y cambia, al área de copiado, el área del separador establecido para escritura.
En el paso 89, el programa principal de escritura envía un mensaje de petición de transmisión a la herramienta 200 de escritura para recibir los datos divididos (n+2 ) é3imos .
Junto con el mensaje de petición de transmisión de datos divididos, un mensaje (mensaje OK de escritura de datos divididos) indica que los datos divididos nésimos se escriben en la ROM 110 y un mensaje (mensaje OK de recepción de datos divididos) indican que los datos divididos (n+l)ésimos que se reciben pueden ser enviados a la herramienta 200 de escritura.
En el paso 90, después de añadir 1 a n, el programa principal de escritura regresa al procesamiento del paso 80.
En el paso 91, el programa principal de escritura envía a la herramienta 200 de escritura un mensaje de petición de retransmisión de búsqueda de datos divididos para re-recibir los datos divididos (n+l)ésimos. Después de eso, el programa principal de escritura regresa al procesamiento del paso 82. Junto con el mensaje de petición de retransmisión de datos divididos, un mensaje (mensaje NG de recepción de datos divididos) indica que los datos divididos (n+1 ) ésimos no son capaces de ser recibidos correctamente y pueden ser enviados a la herramienta 200 de escritura.
La Fig. 16 ilustra un diagrama de flujo de procesamiento realizado por el subprograma de escritura en la ECU 100 cuando la ECU 100 recibe datos desde la herramienta 200 de escritura.
En el paso 101, el subprograma de escritura copia, al área de copiado, los datos divididos recibidos desde la RX del área 141 del separador de comunicación.
En el paso 102, el subprograma de escritura notifica al programa principal de escritura de un mensaje de terminación del copiado de datos divididos.
El área de copiado puede ser establecido en un área correspondiente a la RX del área 141 del separador de comunicación para recibir los datos usando el área de copiado en la ECU 100. En este caso, no hay necesidad de copiar, al área de copiado, datos divididos desde la RX del área 141 de separación de comunicación.
Además, en un caso en que hay una diferencia entre el tiempo de procesamiento de la petición de transmisión de los datos divididos a la terminación del copiado y el tiempo requerido para escribir los datos dentro de la ROM 110 y verificar, el procesamiento de recibir los siguientes datos divididos y el procesamiento para escribir datos dentro de la ROM 110 pueden comenzar luego de la terminación de cualquiera de los procesamientos que toman un tiempo más largo.
Asi, dos áreas de separador son preparadas para escribir los datos divididos recibidos en la ROM 110 en paralelo con la recepción de los datos divididos a través de RX. Después, las dos áreas del separador son usadas de modo que cuando un área de separador se usa para el procesamiento de escribir en la ROM 110, la otra área del separador se usa para el procesamiento de la ECU 100 para copiar los datos divididos recibidos. Aquí, el área de separador usada para el proceso de escritura y el área de separador usada para el proceso de copiado son intercambiadas entre ellas cada vez que se realiza el respectivo procesamiento. Esto permite a la ECU 100 realizar, en paralelo, el procesamiento de escritura de datos dentro de la ROM 110 usando un área de separador y el procesamiento de recepción de datos divididos y copiar los datos divididos recibidos para la otra área de separador. Por lo tanto, el tiempo requerido para el procesamiento completo de escritura del programa es capaz de ser recortado.
Además, puesto que el procesamiento en el lado de la ECU 100 solo tiene que ser cambiado para realizar este procesamiento, el tiempo requerido para el procesamiento entero de escritura del programa es capaz de ser recortado sin cambiar la herramienta 200 de escritura substancialmente .
Una secuencia de un ejemplo de la programa de aplicación de transferencia y el procesamiento de escritura serán ilustrados en la Fig. 17. Aquí, el tamaño del programa transferido por la herramienta 200 de escritura es de 180 bytes . Adicionalmente, el tamaño total de las respectivas RXs de la ECU 100 es de 64 bytes.
La ECU 100 envía a la herramienta 200 de escritura un primer mensaje de petición de transmisión de datos divididos.
Entre las piezas de datos del programa de aplicación, la herramienta 200 de escritura lee los primeros 62 bytes de datos, genera los primeros datos divididos con dos bytes de suma de verificación añadida al mismo, y transfiere los primeros datos divididos para la ECU 100.
Después de recibir los primeros datos divididos, la ECU 100 copia los primeros datos divididos desde la RX del área 141 del separador de comunicación a la primera área 133 de separador. Después, la ECU 100 verifica los primeros datos divididos y envía un segundo mensaje de petición de transmisión de datos divididos a la herramienta 200 de escritura. Además, la ECU 100 usa la primera área 133 de separador para realizar el procesamiento de escritura de datos dentro del ROM 110 y verificación de los datos escritos.
Cuando recibe el mensaje de petición de transmisión de los segundos datos divididos, la herramienta 200 de escritura lee 62 bytes de los datos a ser transferidos a continuación, genera los segundos datos divididos con la suma de verificación añadida al mismo, y transfiere los segundos datos divididos a la ECU 100.
Después de recibir los segundos datos divididos, la ECU 100 copia los segundos datos divididos desde la RX del área 141 de separador de comunicación a la segunda área 134 de separador. A continuación, la ECU 100 verifica los segundos datos divididos. Después de la terminación de verificación de los segundos datos divididos la verificación de los primeros datos escritos, la ECU 100 envía un tercer mensaje de petición de transmisión de datos divididos a la herramienta 200 de escritura. Además, la ECU 100 usa la segunda área 134 de separador para realizar el procesamiento para escribir los datos dentro del ROM 110 y verificación para la escritura.
Después de recibir el tercer mensaje de petición de transmisión de datos divididos, la herramienta 200 de escritura lee los restante 56 bytes de datos, genera los terceros datos divididos con la suma de verificación agregada al mismo, y transfiere los terceros datos divididos a la ECU 100.
El procesamiento después de la ECU 100 recibe los terceros datos divididos que son los mismos que el procesamiento después de recibir los segundos datos divididos.
Cuando se reciben uno cuarto mensaje de petición de transmisión de datos divididos, la herramienta 200 de escritura envía a la ECU 100 un mensaje de terminación de transferencia de aplicación.
La modalidad también puede ser aplicada a varias unidades de control electrónico cada una equipada con una memoria no volátil. Dos o más ECUs 100 pueden ser conectadas a una herramienta 200 de escritura de modo que una herramienta 200 de escritura transfiera, para cada ECU 100, los datos a ser escritos dentro del ROM 110 en una manera de tiempo compartido .
Además, la verificación de los datos divididos recibidos y la verificación de los datos escritos en la memoria no volátil pueden ser realizadas adicionalmente en paralelo. Esto puede acortar el tiempo requerido para escribir el programa entero dentro de la memoria no volátil, comparada con el proceso al cual se agregan los datos de verificación al proceso para escritura del programa completo.
Los contenidos completos de la solicitud de patente japonesa No. 2011-205440, presentada el 21 de septiembre de 2011, son incorporados en este documento por referencia.
Donde solo una modalidad seleccionada ha sido escogida para ilustrar la presente invención, será aparente para aquellos hábiles en el arte a partir de esta divulgación que varios cambios y modificaciones pueden ser elaborados aquí sin salirse del alcance de la invención como se define en las reivindicaciones adjuntas.
Además, la precedente descripción de las modalidades de acuerdo a la presente invención se provee solo para ilustración, y no con el propósito de limitar la invención, la invención como se reivindica en las reivindicaciones adjuntas y sus equivalentes.

Claims (12)

REIVINDICACIONES
1. Una unidad de control electrónico para un vehículo incluye una memoria no volátil en que los datos pueden ser escritos y borrados electrónicamente y dos separadores, en que la unidad de control electrónico para un vehículo es capaz de recibir, por comunicación, datos divididos obtenidos dividiendo un programa de tamaño predeterminado, caracterizada en que comprende un procesador que, en paralelo con la recepción de los datos divididos usando los dos separadores alternadamente, escribe los datos divididos recibidos usando un separador que no se usa para recibir los datos divididos, dentro de la memoria no volátil.
2. La unidad de control electrónico para un vehículo, de acuerdo con la reivindicación 1, caracterizada en que el procesador comienza a recibir los siguientes datos divididos, y escribe los datos divididos, en respuesta a la terminación de recepción de los datos divididos.
3. La unidad de control electrónica para un vehículo, de acuerdo con la reivindicación 1, caracterizada en que el procesador regresa una respuesta a una fuente de los datos divididos para indicar que los datos divididos se recibieron, y los datos divididos se escriben dentro de la memoria no volátil, tras finalizar la recepción de los datos divididos y escribir los datos divididos.
4. La unidad de control electrónico para un vehículo, de acuerdo con la reivindicación 1, caracterizada en que el procesador adicionalmente realiza la verificación de los datos divididos recibidos y la verificación de los datos escritos en la memoria no volátil en paralelo.
5. La unidad de control electrónica para un vehículo, de acuerdo con la reivindicación 4, caracterizada en que la verificación de los datos divididos recibidos se realiza usando un código de detección de errores incluido en los datos divididos .
6. La unidad de control electrónica para un vehículo, de acuerdo con la reivindicación 4, caracterizada en que la verificación de los datos escritos en la memoria no volátil se realiza por comparación de los datos en la memoria no volátil con los datos en el separador o memoria intermedia.
7. Un método de escritura de datos por una unidad de control electrónico para un vehículo, que incluye una memoria no volátil en que los datos pueden ser escritos y borrados electrónicamente y dos separadores o memorias intermedias, el método caracterizado en que comprende los pasos de: en paralelo con la recepción de los datos divididos obtenidos por dividir un programa por un tamaño predeterminado, usando los dos separadores alternadamente, escribir los datos divididos recibidos usando un separador que no se usó para recibir los datos divididos.
8. El método de escritura de datos de acuerdo a la reivindicación 7, caracterizado en que la unidad de control electrónico para un vehículo comienza recibiendo los siguientes datos divididos y escribiendo los datos divididos, en respuesta a la terminación de recepción de los datos divididos.
9. Un método de escritura de datos de acuerdo con la reivindicación 7, caracterizado en que la unidad de control electrónico para un vehículo regresa una respuesta a una fuente de los datos divididos para indicar que los datos divididos se reciben y escriben dentro de la memoria no volátil, tras la terminación de la recepción de los datos divididos y escritura de los datos divididos.
10. El método de escritura de datos de acuerdo con la reivindicación 7, caracterizado en que la unidad de control electrónico para un vehículo adicionalmente realiza la verificación de los datos divididos recibidos y la verificación de los datos escritos en la memoria no volátil en paralelo.
11. El método de escritura de acuerdo con la reivindicación 10, caracterizado en que la verificación de los datos divididos recibidos se realiza usando un código de detección de errores incluido en los datos divididos.
12. El método de escritura de datos de acuerdo con la reivindicación 10, caracterizado en que la verificación de los datos escritos en la memoria no volátil se realiza por comparación de los datos en la memoria no volátil con los datos en el separador o memoria intermedia. RESUMEN DE LA INVENCIÓN Una unidad de control electrónico para un vehículo incluye una memoria no volátil capaz de borrar y escribir los datos electrónicamente y dos separadores o memorias intermedias para adquirir, por comunicación, datos divididos obtenidos dividiendo un programa por tamaños predeterminado. Luego, en paralelo usando dos separadores o memorias intermedias alternadamente para recibir los datos divididos, la unidad de control electrónico para un vehículo usa un separador o memoria intermedia que no se usa para recibir los datos divididos para escribir los datos divididos recibidos en la memoria no volátil.
MX2012010827A 2011-09-21 2012-09-19 Unidad de control electronico de un vehiculo y metodo de escritura de datos. MX2012010827A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011205440A JP2013068105A (ja) 2011-09-21 2011-09-21 自動車用電子制御装置

Publications (1)

Publication Number Publication Date
MX2012010827A true MX2012010827A (es) 2013-03-20

Family

ID=47881754

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2012010827A MX2012010827A (es) 2011-09-21 2012-09-19 Unidad de control electronico de un vehiculo y metodo de escritura de datos.

Country Status (4)

Country Link
US (2) US10353594B2 (es)
JP (1) JP2013068105A (es)
CN (1) CN103176906B (es)
MX (1) MX2012010827A (es)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5451705B2 (ja) 2011-09-21 2014-03-26 日立オートモティブシステムズ株式会社 自動車用電子制御装置及びデータ通信方法
JP2013068105A (ja) * 2011-09-21 2013-04-18 Hitachi Automotive Systems Ltd 自動車用電子制御装置
JP5886099B2 (ja) * 2012-03-21 2016-03-16 日立オートモティブシステムズ株式会社 自動車用電子制御装置
DE102013220523B4 (de) * 2013-10-11 2023-05-25 Continental Automotive Technologies GmbH Verfahren zum Aktualisieren einer Betriebsfunktion eines Sensors und ein Sensormodul
CN106414178B (zh) * 2014-06-19 2019-08-20 日立汽车系统株式会社 车载程序写入装置
JP6782188B2 (ja) * 2016-05-27 2020-11-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 電子制御ユニット、通信方法及び車載ネットワークシステム
JP6935190B2 (ja) * 2016-12-07 2021-09-15 いすゞ自動車株式会社 制御装置、及び、制御装置へのデータ書き込み方法
JP6663938B2 (ja) * 2018-01-15 2020-03-13 本田技研工業株式会社 車両検査装置及び車両検査方法
KR20200014964A (ko) * 2018-08-02 2020-02-12 삼성전자주식회사 버츄얼 메모리 영역을 제공하는 스토리지 장치, 이를 포함하는 전자 시스템 및 전자 시스템의 동작 방법

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2753225B2 (ja) 1987-03-13 1998-05-18 株式会社日立製作所 車載制御装置
US5860149A (en) * 1995-06-07 1999-01-12 Emulex Corporation Memory buffer system using a single pointer to reference multiple associated data
US5799210A (en) * 1996-04-18 1998-08-25 Oracle Corporation Method for allocating either private or shared buffer memory for storing data from sort operations in accordance with an assigned value or threshold value
JP3881069B2 (ja) * 1996-10-08 2007-02-14 株式会社デンソー 電子装置
US5889933A (en) * 1997-01-30 1999-03-30 Aiwa Co., Ltd. Adaptive power failure recovery
US6948113B1 (en) * 1999-04-21 2005-09-20 Seagate Technology Llc Self-throttling error-correction buffer and method for a disc drive
US7966462B2 (en) * 1999-08-04 2011-06-21 Super Talent Electronics, Inc. Multi-channel flash module with plane-interleaved sequential ECC writes and background recycling to restricted-write flash chips
JP3835969B2 (ja) 2000-04-13 2006-10-18 本田技研工業株式会社 車両制御装置のための書き換えシステム
JP4711531B2 (ja) * 2001-03-23 2011-06-29 ルネサスエレクトロニクス株式会社 半導体記憶装置
JP2003122622A (ja) * 2001-10-09 2003-04-25 Honda Motor Co Ltd データの受信および書き込みを制御する車両制御装置
US7162571B2 (en) * 2003-12-09 2007-01-09 Emc Corporation Methods and apparatus for parsing a content address to facilitate selection of a physical storage location in a data storage system
US7606933B2 (en) * 2004-02-11 2009-10-20 Cray Canada Corporation Shared memory and high performance communication using interconnect tunneling
JP2005332148A (ja) 2004-05-19 2005-12-02 Keihin Corp 車載用制御装置の記憶データの書き換えシステム
US8700754B2 (en) * 2004-10-19 2014-04-15 Echelon Corporation Automated topology discovery and management for electric meters
US7380161B2 (en) * 2005-02-11 2008-05-27 International Business Machines Corporation Switching a defective signal line with a spare signal line without shutting down the computer system
JP2006340322A (ja) 2005-06-06 2006-12-14 Canon Inc データ転送システム及び方法、送信装置、受信装置
JP4581925B2 (ja) 2005-09-05 2010-11-17 日本電気株式会社 データ転送装置およびデータ転送方法
US7705753B2 (en) * 2005-10-22 2010-04-27 Sytex, Inc. Methods, systems and computer-readable media for compressing data
TWI320636B (en) * 2005-11-10 2010-02-11 Realtek Semiconductor Corp Method for compressing instruction code
US7649788B2 (en) * 2006-01-30 2010-01-19 Unity Semiconductor Corporation Buffering systems for accessing multiple layers of memory in integrated circuits
JP4418439B2 (ja) 2006-03-07 2010-02-17 パナソニック株式会社 不揮発性記憶装置およびそのデータ書込み方法
US20070226401A1 (en) * 2006-03-21 2007-09-27 Pa-Chung Huang Data accessing structure and method for flash memory
WO2007122988A1 (ja) * 2006-04-17 2007-11-01 Webstream Corporation コンテンツ記憶メディア作成方法、コンピュータプログラムおよびコンテンツ提供システム
JP2008059450A (ja) * 2006-09-01 2008-03-13 Denso Corp 車両情報書換えシステム
KR100847560B1 (ko) * 2006-12-11 2008-07-21 삼성전자주식회사 다운로드되는 펌웨어의 오류 정정을 위한 회로 및 방법
JP2008146521A (ja) * 2006-12-13 2008-06-26 Hitachi Ltd 自動車用電子制御装置
JP2008201082A (ja) * 2007-02-22 2008-09-04 Seiko Epson Corp シリアルプリンタ及びシリアルプリンタの印刷制御方法
JP4994112B2 (ja) * 2007-05-22 2012-08-08 ルネサスエレクトロニクス株式会社 半導体集積回路装置およびメモリ制御方法
TWI366100B (en) * 2007-11-02 2012-06-11 Compal Electronics Inc Method for storing data
JP5014199B2 (ja) 2008-02-29 2012-08-29 三菱電機株式会社 通信記録装置、通信データ処理方法および通信データ処理プログラム
JP4985565B2 (ja) 2008-06-30 2012-07-25 富士通株式会社 送受信回路、受信回路及び送受信回路の制御方法
JP2010015613A (ja) * 2008-07-01 2010-01-21 Fujitsu Ltd 記憶装置、記憶装置の制御方法及び制御プログラム
US8151099B2 (en) * 2008-07-01 2012-04-03 Caterpillar Inc. Virtualized service tool and virtualized control tool
KR101459520B1 (ko) * 2008-07-16 2014-11-07 시게이트 테크놀로지 엘엘씨 기입 속도를 향상시킬 수 있는 데이터 저장 장치, 및 이를포함하는 데이터 저장 시스템
JP2010176646A (ja) * 2009-02-02 2010-08-12 Toshiba Information Systems (Japan) Corp メモリシステムおよびメモリシステムのインターリーブ制御方法
JP5338458B2 (ja) * 2009-04-28 2013-11-13 ソニー株式会社 遠隔制御装置、通信装置、遠隔制御方法及びプログラム
JP2011160181A (ja) 2010-02-01 2011-08-18 Panasonic Corp 信号伝送システム、ソース装置及びシンク装置
JP5467891B2 (ja) * 2010-02-19 2014-04-09 ルネサスエレクトロニクス株式会社 情報処理装置、デバッグ装置、デバッグ方法
JP2011205440A (ja) 2010-03-26 2011-10-13 Hitachi Ltd 出力バッファ回路およびそれを用いたドライバ回路
JP5527603B2 (ja) * 2010-06-24 2014-06-18 ソニー株式会社 情報処理装置および情報処理方法
JP2011118922A (ja) * 2011-02-10 2011-06-16 Renesas Electronics Corp 半導体記憶装置の読出し・書き込み方法
US8738270B2 (en) * 2011-09-15 2014-05-27 128 Combustion, LLC Method and apparatus for improving the fuel economy of a variable displacement engine
JP5451705B2 (ja) * 2011-09-21 2014-03-26 日立オートモティブシステムズ株式会社 自動車用電子制御装置及びデータ通信方法
JP5547701B2 (ja) * 2011-09-21 2014-07-16 日立オートモティブシステムズ株式会社 自動車用電子制御装置
JP2013068105A (ja) * 2011-09-21 2013-04-18 Hitachi Automotive Systems Ltd 自動車用電子制御装置

Also Published As

Publication number Publication date
US20130073799A1 (en) 2013-03-21
US11360698B2 (en) 2022-06-14
CN103176906B (zh) 2018-10-02
JP2013068105A (ja) 2013-04-18
US20190294343A1 (en) 2019-09-26
CN103176906A (zh) 2013-06-26
US10353594B2 (en) 2019-07-16

Similar Documents

Publication Publication Date Title
US11360698B2 (en) Electronic control unit for vehicle and method of writing data
US9836225B2 (en) Electronic control unit for vehicle and data communication method
US20200183349A1 (en) Electronic Control Unit for Vehicle and Method of Executing Program
CN112307049A (zh) 数据库的读写分离方法、装置、设备及可读存储介质
JP5945044B2 (ja) 自動車用電子制御装置、自動車用電子制御装置の書込みシステム、及び車両制御の制御プログラムの書込み方法
JP5816256B2 (ja) 自動車用電子制御装置及びデータ通信方法
JP6302004B2 (ja) 書込みプログラム
JP6445646B2 (ja) 自動車用電子制御装置
JP6216000B2 (ja) 自動車用電子制御装置
JP5813833B2 (ja) 自動車用電子制御装置
JP5956505B2 (ja) 自動車用電子制御装置
JP6692400B2 (ja) 自動車用電子制御装置
US20240201971A1 (en) Software update process on a vehicle
CN110134101B (zh) 用于车辆中可更换组件的灵活更换的电子控制单元
CN115021873A (zh) 一种数据重传的方法、装置及电子设备
CN115543397A (zh) 一种修复固件bug的方法、系统、电子设备及存储介质
CN118151975A (zh) 在线升级方法、在线升级装置、电子设备及介质

Legal Events

Date Code Title Description
FG Grant or registration