Comme Steven l'a dit, les PIC n'ont pas de numéros de série uniques intégrés au moment de la fabrication. Soyons clairs, nous parlons d'un nombre qui varierait entre deux puces du modèle identique.
La plupart des PIC ont un ID de puce codé. Il peut être lu par un programmeur PIC pour déterminer le type de PIC auquel il est connecté. Pour autant que je sache, seuls les PIC de base 12 bits n'ont pas un tel ID de puce. Tous les autres PIC peuvent être identifiés électriquement, bien qu'il existe un certain nombre de façons différentes de les mettre en mode de programmation, puis de lire l'ID de la puce. Le logiciel de programmation PIC qui peut identifier un PIC arbitraire n'est pas anodin.
Si vous vouliez vraiment un numéro de série, alors cela doit être programmé dans la pièce après la production. Nous l'avons fait plusieurs fois. Pendant le processus de test de production lorsque le micrologiciel est programmé dans le PIC, vous le configurez pour obtenir également un numéro de série unique et le programmez également. Une façon simple consiste à commencer avec un fichier HEX maître tel que produit par les outils du micrologiciel. Celui-ci contient un numéro de série vierge. Vous écrivez un petit programme qui saisit un nouveau numéro de série en fonction de votre stratégie, lit le fichier HEX maître, substitue le nouveau numéro de série au blanc et écrit un fichier HEX temporaire. Le fichier HEX temporaire est utilisé pour programmer la pièce, puis supprimé.
Pour une meilleure robustesse, vous stockez l'état du numéro de série dans l'EEPROM dans le gabarit de production, pas dans un fichier disque. Le système demande au gabarit un nouveau numéro, et ce gabarit est conçu pour ne jamais donner le même numéro deux fois. Lorsque la plage de numéros de série attribuée est épuisée, elle refuse de fonctionner. Ceci est particulièrement utile si vous avez un fabricant à distance d'unités de construction pour vous. De cette façon, s'ils gâchent quelque chose sur l'ordinateur et restaurent à partir d'une sauvegarde, cela ne réinitialisera pas également la plage de numéros de série. Oui, cela s'est réellement produit.
Si le numéro de série doit être lu de l'extérieur, les emplacements d'ID utilisateur dont disposent la plupart des PIC peuvent être l'endroit approprié pour le stocker. Celles-ci diffèrent de la mémoire de programme générale ou de l'EEPROM en ce qu'elles peuvent être lues même lorsque la puce est protégée par un code.
Si vous obtenez vos PIC programmés par la micropuce ou un distributeur, vous pouvez généralement les faire sérialiser d'une manière ou d'une autre. Cependant, la programmation en usine ne concerne que les produits matures à volume élevé. Si vous pensez que vous allez régulièrement mettre à jour le firmware, n'utilisez pas la programmation d'usine. Les délais sont longs et vous serez coincé avec les anciennes versions dans le pipeline. De toute façon, votre appareil devra être testé après sa construction, donc ajouter une étape pour programmer le PIC est généralement très peu de charge supplémentaire.