¿Es práctico que el firmware se identifique de forma única en la producción?

11

¿Hay sistemas disponibles en la fabricación a gran escala que permitan programar un número de serie único en el firmware o algún espacio libre en la memoria para cada PCB que reciba?

Descubrí que la FDA ha decidido comenzar a aplicarla para dispositivos de grado médico , pero ¿es esto algo que es fácil de lograr o requeriría desarrollar su propio proceso de fabricación?

    
pregunta Lukeyb

10 respuestas

13

La mayoría de los programadores de producción son capaces de insertar un número de serie único en la memoria programada, es un proceso que normalmente se llama serialización . Esta es una captura de la pantalla de serialización de un antiguo programador de Dataman.

    
respondido por el Steve G
12

Es posible que esté preguntando por una solución solo de software, pero si puede agregar un IC barato a su tablero, puede usar un chip de 'Número de serie de silicio'.

Estos son pequeños chips ROM que cada dispositivo contiene un número binario único. Los ejemplos son el DS2401 de Maxim (bus de 1 cable) y el DS28CM00 (I2C) que tienen un número único de 48 bits.

El número es único entre todos los circuitos integrados fabricados con ese número de parte por ese fabricante. No es único entre todos los chips SSN hechos por todos en el mundo, obviamente. Pero hacen que sea muy fácil elegir un dispositivo para su tablero y saber que cada tablero que se haya hecho leerá un número diferente y único.

    
respondido por el TonyM
5

sí, ciertamente, como se mencionó, las direcciones de mac son obvias, generalmente en un flash / eeprom junto al mac si es una parte separada, o en un flash / eeprom en otra parte. los datos vitales del producto (número de serie de la placa, etc.) se pueden colocar en un eeprom o flash por separado o en el mismo dispositivo utilizado para almacenar otro firmware.

Cuando tiene una situación, por ejemplo, donde las actualizaciones de campo del firmware son posibles, parte del diseño del sistema, no desea que los datos del VPD se borren cuando el flash del firmware se borra y se reprograma, por lo que debe resolverlo utilizando las funciones de protección contra escritura del dispositivo flash (colocar el VPD en su banco / área y bloquear esa área), y no necesariamente publicar / documentar públicamente cómo liberar el pin de protección contra escritura y / o alguna otra solución para que pueda programar el VPD en mfg y luego manténgalo bloqueado de lo contrario (un tirón hacia abajo / arriba según sea necesario y luego, cuando esté programado durante / alrededor de las TIC, ese dispositivo puede tirar de la otra manera).

Probablemente sea más común de lo que piensas, la medicina no es más que un subconjunto muy pequeño de personas que harían esto. Quizás no sea un control remoto de televisión, sino probablemente un mouse o teclado y ciertamente un teléfono celular, etc.

Si / cuando también se usa una pegatina en la placa, es posible que tenga un código de barras, de modo que durante la fabricación el dispositivo u operador pueda escanear el código de barras, revoluciones del ensamblaje, etc. y agregarlo al VPD para esa placa.

    
respondido por el old_timer
3

Tener códigos únicos para cada producto es posible y factible. Una forma de hacerlo sería tener un sistema de programación de software que cambie secuencialmente el número de identificación del firmware para cada dispositivo programado. Con algunos sistemas esto es fácil de hacer; Por ejemplo, algunos microcontroladores tienen una ubicación reservada de eeprom específicamente para almacenar una ID.

Otra alternativa sería agregar una ID de hardware única. Un ejemplo de esto es un circuito integrado de silicio Dallas Semi (ahora Maxim Integrated) ( DS2401 ). Este dispositivo le da un número de serie y tiene la garantía de que será único. Este número de serie se puede utilizar para inferir una dirección única para un producto específico.

    
respondido por el Adam Z
2

Las tarjetas de red producidas en masa tienen sus números de serie en forma de dirección de hardware (MAC) programadas en su flash / EEPROM durante la fabricación.

Mientras que los números de serie aplicados en la carcasa del producto como adhesivo se pueden quitar o volver a aplicar, tener el número de serie grabado en la placa específica plantea otra forma de rastrear el uso de la placa; lo más probable es que este número de serie también se imprima en la documentación médica para rastrear qué dispositivo se usó exactamente para el diagnóstico u operación médica.

    
respondido por el Anonymous
2
  

... ¿es esto algo que es fácil de lograr o requeriría desarrollar su propio proceso de fabricación?

Hace unos 10 años, estaba en una situación similar con un firmware de dispositivo médico que he desarrollado para uno de mis clientes. Este fue un dispositivo de Clase 2, que levantó la barra. Las cantidades de producción fueron en cientos.

No pudimos encontrar un programador estándar que pudiera escribir números de serie de forma automática o semiautomática. Hicimos una solución. Teníamos un firmware de fábrica que se usaba para la calibración y las pruebas. Este firmware de fábrica se comunicó con el resto del equipo de prueba a través de un puerto serie. Como parte de esta prueba, descargaríamos el número de serie, que estaba almacenado en la memoria EEPROM del microcontrolador. (El firmware de fábrica sobrescribió el firmware de fábrica).

    
respondido por el Nick Alexeev
0

Los programadores de producción de SEGGER admiten el flasheo de números de serie únicos en las MCU.

    
respondido por el filo
0

Si tiene muchas opciones para esto (algunos tomados de esta respuesta ):

  1. Use la ID única de su microcontrolador si está disponible.
  2. Seleccione una dirección única configurando algunos puentes externos en las E / S dedicadas.
  3. Programe un UID a flash o EEPROM durante la producción. El propio archivo de firmware se puede cambiar a través de la serialización. Si su línea de ensamblaje no tiene esta función, pero puede personalizarla, es fácil hacerlo al ubicar la compensación del archivo de firmware con un editor hexadecimal y usar su script / idioma favorito para modificar el archivo. A veces, puede "arreglar" esta dirección con el script del vinculador.
  4. Inferface un chip externo que proporciona un UID.
  5. Configure el flash / eeprom interno (si está disponible) con la interfaz de servicio o el cargador de arranque. Esto se puede hacer incluso durante las pruebas (no exactamente en la "línea de producción" en algunos casos). Algunos dispositivos tienen esta interfaz de servicio donde solo el fabricante de técnicos autorizados puede cambiar algunos valores. Dado que este valor no debe modificarse, asegúrese de que el código marque los valores modificados y prohíba más modificaciones. Si tiene un gestor de arranque, asegúrese de que esta sección no se sobrescriba en las actualizaciones de campo.
respondido por el Ronan Paixão
0

Si tiene acceso a un buen hardware RNG y 16 bytes de almacenamiento persistente adicional, una forma que no implique cambiar demasiado su proceso de producción es generar un GUID v4 en el primer inicio y almacenarlo. Puede hacer que el firmware lo coloque en serie durante cualquier prueba posterior a la programación que ejecute. No es secuencial, pero eso no importa para la mayoría de las aplicaciones.

    
respondido por el Reid Rankin
0

Si el uso de una RFID o una etiqueta inteligente en cada PCB cumple con el requisito, será el método de implementación más fácil, bajo su control.

    
respondido por el Guill

Lea otras preguntas en las etiquetas