Чи практично прошивку однозначно ідентифікувати у виробництві


12

Чи існують системи широкомасштабного виробництва, які дозволяють запрограмувати унікальний серійний номер на прошивку чи якийсь вільний простір пам’яті для кожної плати, що надходить?

Я виявив, що FDA вирішила почати застосовувати його для медичних пристроїв, але чи це щось, що легко здійснити, чи це потребує розробки власного виробничого процесу?


7
Яка у вас система? У багатьох процесорах (і MCU вищого рівня) вже є якийсь регістр ідентифікаторів, попередньо запрограмований з унікальним значенням.
Дмитро Григор’єв

4
Спочатку перевірте, що ваш MCU не має унікального ідентифікатора
Jeroen3

Відповіді:


14

Більшість виробників програми здатні вставити унікальний серійний номер у запрограмовану пам'ять, процес, який зазвичай називають серіалізацією . Це захоплення екрану серіалізації від старого програміста Dataman.

дисплей серіалізації від програміста Dataman


serializationце можливість, але вимагає особливої ​​обережності, особливо якщо діапазон значень переходить межу слова. Якщо ви програмуєте аутсорсинг, це стає ще більш складним - якщо відомий постачальник помилявся не один раз, а два рази поспіль, перш ніж нарешті визнати, що їхній програміст для розглядуваної частини не міг серіалізуватися на кілька байтів. На завершення надсилали їм унікальний файл для кожного значення більш значущого байта, для кожного з яких вони виконували унікальну 256-частинну програмування, серіалізуючи нижню. Для наступного дизайну ми побудували спеціальний програміст.
Кріс Страттон

14

Ви можете запитати про рішення, яке стосується лише програмного забезпечення, але якщо ви можете додати дешевий ІС на свій борт, ви можете скористатися мікросхемою «Силіконовий серійний номер».

Це крихітні мікросхеми ROM, кожен пристрій містить унікальне двійкове число. Прикладами є DS2401 Maxim DS1401 (1-провідна шина) та DS28CM00 (I2C), які мають 48-бітове унікальне число.

Цей номер унікальний серед усіх ІМС, виготовлених із цього номера деталі цього виробника. Вочевидь, це не унікально серед усіх чіпів SSN, зроблених усіма у світі. Але вони дуже легко підбирають пристрій для вашої дошки і знають, що кожна коли-небудь виготовлена ​​дошка прочитає з неї інший та унікальний номер.


1
Це, мабуть, найкращий підхід до блокування постачальників, який я коли-небудь бачив.
Основні

"Не унікальна серед усіх SSN-фішок, зроблених усіма у світі, очевидно" Чому це повинно бути "очевидним"? Інші ідентифікатори, призначені для глобальної унікальності, наприклад, MAC-адреси Ethernet, виконують його за допомогою розподілу префіксів - постачальник використовує їх префікс, а потім вибирає решта бітів / цифр.
Бен Войгт

1
@BenVoigt MAC-адреси не є унікальними у всьому світі. Просто регіонально унікальний. Можна приїхати в Азію і придбати пристрій з MAC-адресою, який зіткнеться з пристроєм у Європі. Чортів, на багатьох пристроях ви навіть можете змінити свою MAC-адресу, щоб навмисно зіткнутися з вашим пристроєм.
slebetman

Привіт @BenVoigt, існує багато сімейств SSN IC, багато процесорів / MCU мають унікальні ідентифікатори, вони унікальні лише для сімейства ІС. Скільки глобально унікальних схем нумерації ІС ви можете перелічити? (не нумерація товару, як IMEI)
TonyM

5

так, звичайно, як зазначені mac-адреси очевидні, як правило, у спалаху / eeprom поруч із mac, якщо це окрема частина, або у спалаху / eeprom в іншому місці. Дані про життєво важливі продукти (серійний номер плати тощо) можна розмістити в окремому еепром або спалаху або на тому ж пристрої, який використовується для зберігання іншої мікропрограми.

Якщо у вас є ситуація, наприклад, коли можливі оновлення прошивки на місцях, частина дизайну системи, ви не хочете, щоб дані VPD стиралися, коли спалах мікропрограмного забезпечення стирається та перепрограмовано, тому вам потрібно вирішити це, використовуючи функції захисту від запису. флеш-пристрою (розміщення VPD у своєму банку / області та блокування цієї області), а не обов’язково публікування / документування публічно, як звільнити контактний захист від запису та / або якесь інше рішення, щоб ви могли запрограмувати VPD у mfg та потім тримайте його заблокованим в іншому випадку (підтягування вгору / вгору, як потрібно, тоді, коли запрограмовано під час / навколо ІКТ, що кріплення може витягнути його в інший бік).

Це, мабуть, частіше, ніж ви думаєте, медичний, але це дуже крихітна підгрупа людей, яка б це зробила. Можливо, не телевізійний пульт, але, мабуть, миша чи клавіатура і, звичайно, мобільний телефон тощо.

Якщо / коли на дошці також використовується наклейка, ви можете виявити, що на ній є штрих-код, щоб під час виготовлення кріплення або оператор міг сканувати штрих-код, ревізію складання тощо та додавати його до VPD для цієї дошки.


якщо ви розробили для оновлення поля, то ви, принаймні, хочете дізнатися, яка у вас версія прошивки, яка просто компілюється в прошивку, але перед тим як зробити оновлення в полі, можливо, вам доведеться знати, що це за конкретна платформа / плата (щоб перевірити наявність / використовувати правильну прошивку та / або нюанси програмування на місцях тощо), тому не тільки ви хочете захистити VPD, ви можете ПОТРІБИТИ інформацію про VPD як частину проекту, щоб дозволити оновлення прошивки.
old_timer

3

Наявність унікальних кодів для кожного продукту цілком можливо і здійсненно. Один із способів зробити це - мати систему програмування програмного забезпечення, яка послідовно змінює ідентифікаційний номер мікропрограмного забезпечення для кожного запрограмованого пристрою. З деякими системами це легко зробити; Наприклад, деякі мікроконтролери мають зарезервоване розташування eeprom, спеціально для зберігання ідентифікатора.

Ще одна альтернатива - додати унікальний ідентифікатор обладнання. Прикладом цього є інтегрована мікросхема серійного номера Dallas Semi (нині Maxim Integrated) із серійним номером ( DS2401 ). Цей пристрій дає вам серійний номер, і ви гарантуєте, що він буде унікальним. Цей серійний номер можна використовувати для отримання унікальної адреси для певного товару.


2

Масові мережеві картки мають свої серійні номери у вигляді апаратної (MAC) адреси, запрограмованої на їх флеш / EEPROM під час виготовлення.

Хоча серійні номери, нанесені на кожух виробу як наклейку, можна видалити або повторно застосувати, якщо записаний на певній дошці серійний номер створює ще один спосіб відстеження використання дошки; найімовірніше, цей серійний номер також буде надрукований на медичній документації, щоб відстежити, який саме прилад використовувався для медичної діагностики чи операції.


2

... це щось легко здійснити чи потребує розробки власного виробничого процесу?

Близько 10 років тому я опинився в подібній ситуації з прошивкою медичних пристроїв, яку я розробив для одного з своїх клієнтів. Це був пристрій класу 2, який підняв планку. Кількість продукції була сотнями.

Ми не змогли знайти програміста, який міг би записувати серійні номери автоматично або напівавтоматично. Ми зробили обхід. У нас була заводська прошивка, яка використовувалася для калібрування та тестування. Ця фабрична прошивка спілкувалася з рештою тестового обладнання через послідовний порт. У рамках цього тестування ми завантажили серійний номер, який зберігався в EEPROM мікроконтролера. (Фабрична прошивка була перезаписана польовою прошивкою.)


0

Програмісти виробництва SEGGER підтримують миготіння унікальних серійних номерів у MCU.


0

Якщо у вас є багато варіантів цього (деякі схоплені з цієї відповіді ):

  1. Використовуйте унікальний ідентифікатор мікроконтролера, якщо він є.
  2. Виберіть унікальну адресу, встановивши деякі зовнішні перемички на спеціальні введення-виведення.
  3. Програмуйте UID на flash або EEPROM під час виробництва. Сам файл прошивки можна змінити шляхом серіалізації. Якщо у вашій збірній лінії немає цієї функції, але ви можете налаштувати її, це легко зробити, знайшовши зміщення файлу мікропрограмного забезпечення в шестигранному редакторі та використовуючи улюблений сценарій / мову для зміни файлу. Іноді ви можете «виправити» цю адресу за допомогою сценарію посилання.
  4. Інтерфейс зовнішній чіп, який забезпечує UID.
  5. Налаштуйте внутрішній спалах / eeprom (якщо є) за допомогою сервісного інтерфейсу або завантажувача. Це може бути зроблено навіть під час тестування (не зовсім на "виробничій лінії" в деяких випадках). Деякі пристрої мають цей сервісний інтерфейс, коли лише виробник авторизованих техніків може змінити деякі значення. Оскільки це значення має бути незмінним, переконайтеся, що код позначає змінені значення та забороняє подальші зміни. Якщо у вас є завантажувач, переконайтеся, що цей розділ не перезаписаний у полі оновленнях.

0

Якщо у вас є доступ до хорошої апаратної RNG та 16 байт зайвого постійного сховища, один із способів, який не передбачає занадто змінити ваш виробничий процес, - це сформувати v4 GUID під час першого запуску та зберегти його. Ви можете скинути прошивку на серійну програму під час будь-яких тестів після програмування. Це не є послідовним, але це не має значення для більшості програм.


0

Якщо використання RFID або Smart Tag на кожній друкованій платі відповідає вимозі, це буде найпростіший спосіб реалізації - під вашим контролем.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.