Autor Tema: Como actualizar firmware??  (Leído 1699 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado championz

  • PIC16
  • ***
  • Mensajes: 127
Como actualizar firmware??
« en: 24 de Marzo de 2007, 17:41:17 »
Buenas! les dejo una duda que me ha surgido:

Estoy haciendo un circuito con un 18f252, el cual debe ser posible que el usuario final actualice el firmware... lo que quiero es poder enviarle un archivo, si es posible encriptado para que no puedan conocer el codigo fuente y que el usuario pueda actualizar el firm.

He estado leyendo un poco... creo que esto lo hacen con un bootloader...
Tambien seria muy util que no se pueda replicar el pic, es decir... que se pueda programar SOLO ESE micro y no uno nuevo...

alguna recomendacion??

gracias!

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Como actualizar firmware??
« Respuesta #1 en: 24 de Marzo de 2007, 18:46:39 »
championz, lo que quieres realizar te comento desde ya que no es simple.

Te explico porqué

1) Si se actualiza el firmware tu soft debe ser robusto para que una vez actualizado (aun actualizándose mal) permita poderse reactualizar.
2) El archivo que envias deberá ser encriptado para lo cual lo más adecuado es que del lado de la PC haya un software que conozca dicha encriptación.  El archivo que enviarás a tu cliente será un archivo N que solo sabrá desencriptar TU software de PC.
3) El software de PC se comunicará con el PIC de una forma también encriptada.  El pic no solo deberá interpretar y desencriptar sino que también grabar y leer la flash, y hasta es muy probable que necesites que ese programa de actualización grabe/lea la eeprom. 

Son muchas etapas y solo la 1) está muy documentada en las datasheets de Microchip.

Mi idea no es desanimarte, simplemente decirte/contarte/mencionarte que lo que intentas hacer no es la cosa más simple que se puede hacer con un pic y que amén de eso los riesgos de dejar a tu pic "brainless" o "sin cerebro" son altos por lo cual debieras probarlo muchísimo.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado championz

  • PIC16
  • ***
  • Mensajes: 127
Re: Como actualizar firmware??
« Respuesta #2 en: 25 de Marzo de 2007, 04:21:28 »
Gracias maunix por la respuesta... es mas complicado de lo que pense... la otra opcion... no se si es un poco "extraña" pero es crear una web, donde en la misma corra un applet java... el cual programa el pic o lanza un programa en la maquina cliente que lo programe... esto resulve el problema del HEX. Es decir.. el usuario nunca dispondra del archivo HEX, por lo cual nunca podra replicar el pic.

La otra parte es, que el pic que deseo actualizar tenga en su eeprom un "numero de serie" el cual es verificado por el programa cargado en la flash... es decir... si el usuario coloca un pic VACIO, cuando cargue el programa en el pic, este detecte que no está el numero de serie y no corra...
A raiz de esta idea me surge una duda... se puede proteger el programa mediante el fuse de CODE PROTECTION, pero la eeprom interna del pic, se puede proteger contra lecturas externas?? es decir... que el programa en el pic pueda leer y escribir la eeprom interna, pero que el usuario no pueda leerla externamente

Que te parece esta idea maunix? es un tanto "extraña"... pero creo que podria servir.