Як сказав Стівен, у виробничих кодах PIC не вбудовані унікальні серійні номери в час виготовлення. Давайте будемо зрозуміти, що ми говоримо про число, яке буде змінюватися між двома чіпами однакової моделі.
Більшість PIC мають закодований в них чіп. Це може прочитати програміст PIC, щоб визначити тип PIC, до якого він підключений. Наскільки я можу сказати, лише 12-бітові основні PIC не мають такого чіпа. Всі інші PIC можна ідентифікувати електрично, хоча існує досить багато різних способів їх переведення в режим програмування, а потім зчитування ідентифікатора чіпа. Програмне забезпечення програми PIC, яке може ідентифікувати довільну PIC, не є тривіальною.
Якщо ви дійсно мали на увазі серійний номер, то це потрібно запрограмувати на частину після виробництва. Ми це робили багато разів. Під час процесу тестування виробництва, коли прошивка запрограмована в PIC, ви налаштовуєте її також, щоб отримати унікальний серійний номер та програму, що теж. Один простий спосіб - почати з головного HEX-файлу, створеного інструментами прошивки. Тут міститься порожній серійний номер. Ви пишете невелику програму, яка захоплює новий серійний номер відповідно до вашої стратегії, читає головний HEX-файл, замінює новий серійний номер порожнім і записує тимчасовий файл HEX. Тимчасовий файл HEX використовується для програмування частини, а потім видаляється.
Для кращої надійності ви зберігаєте стан серійного номера в EEPROM у виробничому джизі, а не у файлі диска. Система просить у джига новий номер, і цей джиг покликаний ніколи не видавати одне і те ж число двічі. Коли присвоєний діапазон серійних номерів вичерпується, він відмовляється працювати. Це особливо корисно, якщо для вас є віддалені виробничі будівельні блоки. Таким чином, якщо вони щось зіпсують на комп’ютері та відновлять із резервного копіювання, воно також не скине діапазон серійних номерів. Так, це насправді сталося.
Якщо серійний номер слід читати ззовні, то розташування ідентифікаторів користувача, які мають більшість PIC, може бути відповідним місцем для його зберігання. Вони відрізняються від загальної програмної пам'яті або EEPROM тим, що їх можна читати, навіть якщо чіп захищений кодом.
Якщо ви отримуєте свої PIC-програми, запрограмовані мікрочіпом або розповсюджувачем, зазвичай ви можете отримати їх деяким чином серіалізованими. Однак фабричне програмування призначене лише для зрілих продуктів високого обсягу. Якщо ви думаєте, що будете регулярно оновлювати прошивку, тоді не використовуйте заводські програми. Час виконання тривалий, і ви будете застрягли зі старими версіями в процесі роботи. Ваш пристрій доведеться протестувати після його побудови, тому додавання кроку до програмування PIC зазвичай є дуже невеликим додатковим навантаженням.