4 votos

Inyección de UUID en la ROM durante la producción

Soy nuevo a la electrónica y me preguntaba si alguien podría explicarme cómo individuo MCU/MPU-powered electrónica de las unidades se pueden asignar identidades únicas en la línea de fábrica.

Por ejemplo, supongamos que un dispositivo en particular está siendo construida. Este dispositivo dispone de una MCU/MPU (todavía no entendemos completamente su diferencia) que tiene una CPU, ROM para mantener un binario/RTOS y RAM para la ejecución de ese binario en tiempo de ejecución. Un programa de control es flasheado a la ROM en algún momento durante la producción.

Decir que este dispositivo tiene la necesidad de ser dado un UUID que se puede leer de la memoria cuando el programa de control se inicia. Obviamente, cada dispositivo necesita una diferente (unico) ID. Y así iba a imaginar que el MCU se someten a dos fases diferentes durante su construcción de producción: en primer lugar, el parpadeo del programa de control a la ROM, seguido por un segundo parpadeo que "anexa" (sin sobrescribir, que es) específico de un dispositivo UUID a una dirección específica en la ROM. El programa de control de entonces sería codificada para que busque el valor (UUID) que se almacenan en esta dirección en el inicio.

Estoy en la pista aquí, o es que hay un más eficiente/diferentes/norma forma de llevar a cabo esta tarea? Y supongo que me gustaría generalizar más allá de un UUID y la misma pregunta de cualquier situación en la que todas las unidades de compartir un archivo binario (el programa de control), pero luego también tienen su propia y única información que debe estar presente en la ROM en el inicio.

6voto

GetFree Puntos 495

La producción de los programadores en general tiene una opción para serializar la imagen se graba en la memoria: cada producto es flasheado con datos diferentes, por ejemplo por el incremento de datos específico de la palabra, pero las operaciones más complejas son también posibles.

Otra opción es comprar un chip que tiene en sí misma una unqiue número. Este es por ejemplo el hecho de direcciones Ethernet, que son asignados por alguna autoridad. Compruebe por ejemplo de Microchip "Único Chip de IDENTIFICACIÓN de los Productos".

Dallas/Maxim 1-productos de alambre puede usar uno común (1 cable) bus para (casi) cualquier número de fichas. Para realizar este trabajo, cada chip tiene un número de serie único. La forma más simple de estos chips no tiene nada más que este ID.

6voto

Stefan Arentz Puntos 151

La manera que usted describe es válido, al menos es lo que usamos en nuestros proyectos. Primero tenemos el flash de la totalidad del programa que contiene un conjunto inicial de valores, por lo que el programa se ejecuta bien. Durante la calibración, el número de serie (UUID) de que el dispositivo se establecerá, junto con los otros factores de calibración. Para esto nos reservamos una página flash al final de la flash, por lo que una actualización del programa es posible sin borrar las constantes de calibración.

Para que esto funcione, por supuesto, se necesita alguna forma de comunicarse con el controlador y una parte del programa que va a hacer la escritura de la flash. Si su producto no está diseñado para esto, usted tiene que inyectar los datos durante el proceso inicial de parpadear. Para que usted puede cambiar el archivo hex en la marcha de cada uno (el formato es bastante fácil) o las capacidades de uso de la flasher para incluir automáticamente incrementa el número de serie o algo por el estilo. Las capacidades de las luces intermitentes son también muy diferentes - por ejemplo, Segger produce algunos con muy buenas capacidades de programación de la producción.

Si usted sólo necesita una manera de identificar a un dispositivo sin necesidad de un requerimiento para lo que UUID tiene que parecer, los microcontroladores a menudo tienen alguna información del dispositivo en ellos, entre otros, un ID. Si que se puede usar tiene que ser determinada para cada microcontrolador tipo de uso, ya que no hay un estándar que soy consciente de.

Por ejemplo, el STM32F401 (un dispositivo actualmente estoy trabajando) tiene un 96 bits de IDENTIFICADOR de Dispositivo Único que puede ser leído por la CPU y con JTAG. (más detalles en el manual de referencia)

2voto

Nate Puntos 3229

Hay dispositivos para tal fin, por ejemplo esta es la página de Maxim integrado para sus productos de Autenticación e identificación de PCB , que proporcionan un identificador único programado en fábrica, 64-bit de la ROM y estoy seguro que hay otros fabricantes que proporcionan similares productos

1voto

Bernd Puntos 61

Otra solución ideal a este problema es el uso de uno de Microchip de la memoria EEPROM Serie de piezas que vienen con un identificador único programado en ellos. Estos dispositivos son pequeños huella de dispositivos I2C que usted compra listo para rellenar en su consejo de administración como cualquier otra parte. No medidas especiales en los tiempos de fabricación son necesarios. Simple I2C acceso puede ser usada desde el microcontrolador y no consume recursos adicionales en su consejo de administración o pines MCU si usted ya tiene uno o más dispositivos I2C en el tablero.

Las piezas de Microchip están dirigidas fundamentalmente a la Ethernet de mercado para el suministro de la Dirección MAC de su dispositivo. Nada impide sin embargo a partir de utilizar el identificador único de otras maneras para serializar el producto o para sintetizar los Uuid del código en la memoria EEPROM serie.

Microchip comete una parte de la EEPROM dispositivo para sostener el identificador y bloquea la supresión y de la programación de la parte de la pieza. El resto de la EEPROM, las células pueden ser utilizados libremente de varios otros datos de configuración o de las constantes de calibración.

La parte en la que estoy utilizando en mi diseño actual es el 24AA025E48.

0voto

user38748 Puntos 191

Además de todas las respuestas publicadas, algunos dispositivos contienen dos por separado en la memoria: una gran flash/EEPROM para el programa y otro más pequeño de memoria (normalmente solo alrededor de 100 bytes) de datos. Para tales dispositivos se había almacenar el UUID en los datos de la EEPROM.

Pueden ser programados por separado (he visto los dispositivos donde el número de serie y los datos de calibración son dirigidos justo antes de la entrega a los clientes) o durante la ejecución de la producción (necesitarías un programa, que normalmente sólo un script en Perl, para generar el UUID a continuación, pase el programador).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X