Método y dispositivo para la actualización de datos en dispositivos electrónicos.

Método para la actualización de datos en un dispositivo electrónico conectado a una red de comunicaciones y dispositivo

, donde el dispositivo electrónico consta de al menos una primera unidad de memoria de tipo no volátil y una segunda unidad de memoria de tipo volátil y de un procesador, donde en las unidades de memoria se encuentran almacenados conjuntos de datos, donde en la primera unidad de memoria se encuentra almacenada una primera tabla con al menos una entrada para cada conjunto de datos. El método comprende las siguientes etapas:

- Recibir a través de la red de comunicaciones, un fichero de datos de actualización.

- Para cada conjunto de datos: almacenar dicha nueva versión del conjunto de datos en posiciones libres de una de las unidades de memoria; y añadir a la primera tabla una entrada indicando la posición en la unidad de memoria y si dicha entrada es válida.

- Actualizar una segunda tabla almacenada en la segunda unidad de memoria.

Un producto de programa de ordenador que comprende instrucciones ejecutables por ordenador para realizar el procedimiento según el método de la invención. Un medio de almacenamiento de datos digitales que codifica un programa de instrucciones ejecutable por máquina, para realizar el procedimiento según el método de la invención.

Tipo: Patente de Invención. Resumen de patente/invención. Número de Solicitud: P201301076.

Solicitante: UNIVERSIDAD DE CANTABRIA.

Nacionalidad solicitante: España.

Inventor/es: SÁNCHEZ ESPESO,Pablo Pedro, DÍAZ SUÁREZ,Álvaro.

Fecha de Publicación: .

Clasificación Internacional de Patentes:

  • SECCION G — FISICA > COMPUTO; CALCULO; CONTEO > TRATAMIENTO DE DATOS DIGITALES ELECTRICOS (computadores... > Disposiciones para el control por programa, p. ej.... > G06F9/445 (Carga o lanzamiento de programa)
google+ twitter facebookPin it
Método y dispositivo para la actualización de datos en dispositivos electrónicos.

Fragmento de la descripción:

CAMPO TÉCNICO DE LA INVENCIÓN

La presente invención tiene su campo de aplicación en la actualización eficiente de datos en dispositivos electrónicos y más concretamente, en la actualización eficiente de software en dispositivos electrónicos, especialmente en dispositivos electrónicos embebidos (también llamados dispositivos electrónicos empotrados). Se denomina sistema electrónico embebido a los circuitos electrónicos que realizan tareas específicas en un determinado sistema electrónico más complejo, como por ejemplo la unidad de control electrónico (ECU, Electronic Control Unit) de un automóvil.

ANTECEDENTES DE LA INVENCIÓN

Los dispositivos electrónicos como teléfonos móviles, PDAs (del inglés, Personal Digital Assistants, Asistentes digitales personales), tabletas, televisores, routers... almacenan distintos tipos de software (por ejemplo, aplicaciones o sistema operativo) suministrados bien de los propios fabricantes del dispositivo electrónico, de operadores de telecomunicación o de terceras partes que, en muchos casos, deben ser actualizados a menudo.

Un ejemplo de un tipo de software que almacenan los dispositivos electrónicos es el firmware. El firmware se puede definir como un conjunto de instrucciones de máquina para propósitos específicos, grabado en una memoria, que establece la

lógica de más bajo nivel que controla el funcionamiento (por ejemplo, controla los circuitos electrónicos) de un dispositivo electrónico de cualquier tipo. Está fuertemente integrado con la electrónica del dispositivo. Es decir, el firmware es el software encargado de controlar y hacer funcionar el dispositivo para ejecutar correctamente las instrucciones externas o en otras palabras, es el software que tiene interacción directa y controla el hardware.

Tradicionalmente, el firmware se almacena en chips de memoria ROM o Flash. Por esta razón (almacenarse en chips de memoria Flash/ROM), al software que se ejecuta en sistemas embebidos o empotrados, se le suele considerar firmware. Dicho código incluye tanto el código de inicio como el sistema operativo. En algunas aplicaciones, incluso se considera al software de aplicación como elemento del firmware del sistema.

Los dispositivos electrónicos constan de unidades electrónicas de almacenamiento de datos (memoria) para almacenar estas instrucciones software y en general cualquier tipo de datos que necesiten. Hay numerosos tipos de memorias, conocidas del estado de la técnica. Esas unidades deben estar configuradas para recibir datos electrónicos de una fuente externa o interna, preservar los datos durante un cierto tiempo y suministrarlos cuando se le soliciten.

Hay por ejemplo, un tipo de unidades de memoria que son volátiles (es decir, se borran si hay una interrupción del suministro de energía) como las RAM (del inglés Random Access Memory, Memorias de Acceso Aleatorio). Estas memorias son baratas y rápidas, pero deben estar continuamente con alimentación eléctrica para no perder la información que almacenan. Esto hace que las memorias RAM sean caras de operar y consuman mucha energía. Por lo tanto este tipo de memorias se usan para almacenamiento a corto plazo, para facilitar la transferencia rápida de datos que se van a usar rápidamente en los dispositivos

electrónicos y se modifiquen frecuentemente.

Hay otros tipos de unidades de memoria que son no volátiles (es decir, que sigue almacenando la información aún sin suministro de energía). Un ejemplo de este tipo de memorias no volátiles es la llamada memoria flash, formada por chips no volátiles para el almacenamiento de información que pueden ser electrónicamente borrado y programados. Otros ejemplos de memoria no volátil son la ROM y la EEPROM. Estas memorias, al contrario de las RAM, pueden preservar los datos largo tiempo sin necesidad de mantener el suministro eléctrico, pero son más caras y requieren, como veremos, un interfaz de operación más complejo.

Por razones obvias de seguridad, al ser fundamental para el funcionamiento del dispositivo, normalmente el firmware se almacena en unidades de memoria no- volátiles.

Por otro lado, para asegurar un correcto funcionamiento del dispositivo, el firmware de un dispositivo suele ser actualizado frecuentemente (por ejemplo, cuando hay una nueva versión del mismo) y esto plantea problemas, ya que, como hemos dicho el interfaz de operación con las memorias no volátiles es complejo y están más pensadas para guardar datos a largo plazo y no para ser actualizadas frecuentemente.

Las modificaciones del software para actualizar la versión o para corregir errores (lo que se conoce de manera general como actualizar el software) puede ser un punto muy crítico en el funcionamiento de dispositivos electrónicos. En dispositivos en el que el consumo es un factor importante, como por ejemplo, los dispositivos inalámbricos, es importante que el proceso de actualización sea eficiente. Una actualización eficiente nos permitirá aumentar la vida útil del dispositivo al reducir su consumo durante la actualización. Esto es especialmente importante cuando hablamos de software fundamental que se actualiza frecuentemente como es el firmware.

Estas actualizaciones se suelen realizar a través de redes de comunicación que comunican el dispositivo electrónico a actualizar con el nodo (servidor) donde se encuentra el nuevo software. Esta red puede ser una red de cable, de fibra, sin hilos, una red de telefonía móvil, de fibra óptica o cualquier otro tipo de red de comunicación a la que esté conectado el dispositivo electrónico y que le permita comunicarse. Opcionalmente las actualizaciones pueden cargarse directamente en el dispositivo, por ejemplo mediante una unidad de memoria externa (como un USB, un CD o cualquiera otra) que se inserta en el dispositivo.

Actualmente, existen distintas estrategias a la hora de actualizar el firmware. La más simple manera consiste en cargar completamente todo el firmware nuevo. Esta técnica es una de las más utilizadas ya que permite actualizar el firmware de una manera muy sencilla. Sin embargo, el consumo de potencia en la transmisión y durante la actualización es muy alto debido a que es necesario la transmisión de todo el firmware para cada actualización. Además, al ser necesario un borrado previo de las memorias no-volátiles (como flash o EEPROM), se reduce la vida útil de dichas memorias cuyos ciclos de borrado están limitados (el fabricante no garantiza que el dispositivo funcione después de un cierto número de borrados).

Por esto, se han desarrollado técnicas de reducción del tamaño de las actualizaciones. Estas técnicas tienen un impacto importante en el consumo de energía utilizado durante la transmisión, y por lo tanto, en el tiempo de vida de estos dispositivos, los cuales están habitualmente alimentados por baterías. Dentro de la técnica de reducción del tamaño de la actualización existen dos métodos distintos. El primer método consiste en el desarrollo del firmware de modo modular, de tal modo que únicamente sea necesario transmitir los módulos que sean requeridos. El segundo método consiste en actualizaciones increméntales, donde únicamente los cambios respecto al software antiguo (el que ya está almacenado en el dispositivo en el momento de la actualización) son

transmitidos. Un ejemplo de estas técnicas se pueden ve en el documento Efficient code distribution in wireless sensor networks de N. Reijers y K.Langendoen publicado en ia WSNA '03 Proceedings of the 2nd ACM international conference on Wireless sensor networks and applications, 2003, donde los autores utilizan una técnica de actualización basada en las diferencias entre el firmware antiguo y el nuevo. Las actualizaciones son realizadas construyendo el nuevo firmware a...

 


Reivindicaciones:

1. Método para la actualización de datos en un dispositivo electrónico conectado a una red de comunicaciones, donde el dispositivo electrónico consta de al menos una primera unidad de memoria de tipo no volátil y una segunda unidad de memoria de tipo volátil y de un procesador, donde en las unidades de memoria se encuentran almacenados conjuntos de datos, donde en la primera unidad de memoria se encuentra almacenada una primera tabla con al menos una entrada para cada conjunto de datos con un campo de posición que indica una posición en una de las unidades de memoria de dicho conjunto de datos y un campo de validez que indica de si dicha entrada es válida o no, donde el método comprende las siguientes etapas:

a) Recibir a través de la red de comunicaciones, un fichero de datos de actualización que incluye una nueva versión de al menos uno de los conjuntos de datos almacenados en las unidades de memoria

b) Para cada conjunto de datos del que se incluye una nueva versión en el fichero de actualización:

b1) Almacenar dicha nueva versión del conjunto de datos en posiciones libres de una de las unidades de memoria

b2) Añadir a la primera tabla una entrada para dicho conjunto de datos indicando en el campo de posición la posición en la unidad de memoria donde se ha almacenado la nueva versión de dicho conjunto de datos e indicando en el campo de validez que dicha entrada es válida y en el resto

de entradas de dicha tabla para dicho conjunto de datos indicar en el campo de validez que no son válidas

c) Basándose en la información que hay en la primera tabla, actualizar una segunda tabla almacenada en la segunda unidad de memoria con una entrada para cada conjunto de datos, donde para cada conjunto de datos, indica su posición válida en una de las unidades de memoria.

2. Método según cualquiera de las reivindicaciones anteriores donde la primera unidad de memoria es de tipo flash y la segunda unidad de memoria es de tipo RAM.

3. Método según cualquiera de las reivindicaciones anteriores donde dichos conjuntos de datos forman parte del firmware del dispositivo.

4. Método según cualquiera de las reivindicaciones anteriores donde el fichero de datos de actualización es enviado por un servidor al dispositivo electrónico a través de la red de comunicaciones.

5. Método según cualquiera de las reivindicaciones anteriores donde previamente al paso a), se produce una comparación de una nueva versión de los conjuntos de datos con los conjuntos de datos almacenados en el dispositivo y de dicha comparación se obtiene el fichero de datos de actualización.

6. Método según cualquiera de las reivindicaciones anteriores donde dichos conjuntos de datos son objetos de datos que pueden ser funciones, variables o cualquier otro tipo de objetos de datos.

7. Método según cualquiera de las reivindicaciones anteriores donde dicho campo

de validez no sólo indica si la entrada es válida o no, si no que en el caso de ser no válida indicará una nueva posición en la tabla para dicho conjunto de datos.

8. Método según cualquiera de las reivindicaciones anteriores donde en la primera tabla existe un campo para cada entrada indicando el número de versión del conjunto de datos al que pertenece dicha entrada.

9. Método según cualquiera de las reivindicaciones anteriores donde en la primera tabla existe un campo para cada entrada indicando el índice de la segunda tabla al que hace referencia.

10. Método según cualquiera de las reivindicaciones anteriores donde el dispositivo electrónico es un dispositivo electrónico sin Unidad de Gestión de Memoria MMU (del inglés Memory Management Unit).

11. Dispositivo electrónico para la actualización de datos, donde dicho dispositivo electrónico está conectado a una red de comunicaciones y comprende: - al menos una primera unidad de memoria de tipo no volátil y una segunda unidad de memoria de tipo volátil que almacenan conjuntos de datos, donde la al menos una primera unidad de memoria de tipo no volátil almacena una primera tabla con al menos una entrada para cada conjunto de datos con un campo de posición que indica una posición de dicho conjunto de datos en una de las unidades de memoria y un campo de validez que indica de si dicha entrada es válida o no; y la al menos una segunda unidad de memoria de tipo volátil almacena una segunda tabla con una entrada para cada conjunto de datos que indica para cada conjunto de datos, la posición válida en una de las unidades de memoria de dicho conjunto de datos;

- un receptor para a recibir través de la red de comunicaciones, un fichero de datos de actualización que incluye una nueva versión de al menos uno de los

conjuntos de datos almacenados en las unidades de memoria; y - un procesador conectado al receptor y a las al menos primera y segunda unidades de memoria, donde dicho procesador contiene medios para analizar el fichero de actualización y, para cada conjunto de datos del que se incluye una nueva versión en el fichero de actualización, almacenar la nueva versión del dicho un conjunto de datos en posiciones libres de una de las unidades de memoria, añadir a la primera tabla una entrada para dicho al menos un conjunto de datos indicando en el campo de posición la posición en la unidad de memoria donde se ha almacenado dicha nueva versión e indicar en el campo de validez que dicha entrada es válida y en el resto de entradas de dicha tabla para dicho conjunto de datos indicar en el campo de validez que dicha entrada no es válida y para, basándose en la información que hay en la primera tabla, actualizar la segunda tabla almacenada en la segunda unidad de memoria de manera que en la entrada que corresponde a cada conjunto de datos del que se incluye una nueva versión en el fichero de actualización, se indica la posición en la unidad de memoria donde se ha almacenado dicha nueva versión

12. Dispositivo electrónico según la reivindicación 11 donde dicho dispositivo electrónico es un teléfono móvil, una tableta, una PDAs (del inglés, Personal Digital Assistants, Asistente digital personal), reproductor MP-3, cámara digital, una televisión inteligente, nodo de red inalámbrica o dispositivo similar.

13. Un producto de programa de ordenador que comprende instrucciones ejecutables por ordenador para realizar el procedimiento según cualquiera de las reivindicaciones 1 a 10, cuando el programa es ejecutado en un ordenador.

14. Un medio de almacenamiento de datos digitales que codifica un programa de instrucciones ejecutable por máquina, para realizar un procedimiento según

cualquiera de las reivindicaciones 1 a 10.