Apakah praktis untuk firmware diidentifikasi secara unik dalam produksi

12

Apakah ada sistem yang tersedia dalam pembuatan skala besar yang memungkinkan nomor seri unik diprogram ke dalam firmware atau ruang memori kosong untuk setiap PCB yang datang?

Saya telah menemukan bahwa FDA telah memutuskan untuk mulai menegakkannya untuk perangkat kelas medis, tetapi apakah ini sesuatu yang mudah dicapai atau apakah perlu mengembangkan proses manufaktur Anda sendiri?

Lukeyb
sumber
7
Sistem apa yang Anda miliki? Banyak CPU (dan MCU kelas atas) sudah memiliki semacam register ID yang diprogram dengan nilai unik.
Dmitry Grigoryev
4
Pertama periksa MCU Anda belum memiliki pengidentifikasi unik
Jeroen3

Jawaban:

14

Sebagian besar programmer produksi mampu memasukkan nomor seri unik ke dalam memori yang diprogram, ini adalah proses yang biasa disebut serialisasi . Ini adalah layar Serialization dari programmer Dataman lama.

tampilan serialisasi dari programmer Dataman

Steve G
sumber
serializationadalah suatu kemungkinan tetapi membutuhkan kehati-hatian yang luar biasa terutama jika rentang nilai melewati batas kata. Jika Anda mengalihdayakan pemrograman, hal itu menjadi lebih rumit - jika vendor terkenal melakukan kesalahan ini tidak hanya sekali tetapi dua kali berturut-turut, sebelum akhirnya mengakui bahwa programmer mereka untuk bagian tersebut tidak dapat membuat serial lebih dari beberapa byte. Akhirnya mengirim mereka file unik untuk setiap nilai byte yang lebih signifikan, untuk masing-masing mereka menjalankan pekerjaan pemrograman 256-bagian yang unik membuat cerita yang lebih rendah. Untuk desain selanjutnya kami membangun pemrogram khusus.
Chris Stratton
14

Anda mungkin bertanya tentang solusi khusus perangkat lunak tetapi jika Anda dapat menambahkan IC murah ke papan Anda, Anda dapat menggunakan chip 'Nomor Seri Silikon'.

Ini adalah chip ROM kecil yang setiap perangkat berisi nomor biner unik. Contohnya adalah Maxim DS2401 (bus 1-kawat) dan DS28CM00 (I2C) yang memiliki nomor unik 48-bit.

Angka itu unik di antara semua IC yang dibuat dari nomor bagian itu oleh pabrikan itu. Itu tidak unik di antara semua chip SSN yang dibuat oleh semua orang di dunia, jelas. Tetapi mereka membuatnya sangat mudah untuk memilih perangkat untuk papan Anda dan tahu bahwa setiap papan yang pernah dibuat akan membaca nomor yang berbeda dan unik darinya.

TonyM
sumber
1
Itu sangat mungkin pendekatan penguncian vendor terbaik yang pernah saya lihat.
Dasar
"tidak unik di antara semua chip SSN yang dibuat oleh semua orang di dunia, jelas" Mengapa ini harus "jelas"? Pengidentifikasi lain yang dimaksudkan untuk menjadi unik secara global, misalnya alamat MAC Ethernet, menyelesaikannya menggunakan alokasi awalan - vendor menggunakan awalan mereka dan kemudian memilih bit / digit yang tersisa.
Ben Voigt
1
@BenVoigt alamat MAC tidak unik secara global. Hanya unik secara regional. Dimungkinkan untuk datang ke Asia dan membeli perangkat dengan alamat MAC yang akan berbenturan dengan perangkat di Eropa. Heck, pada banyak perangkat Anda bahkan dapat mengubah alamat MAC Anda untuk berbenturan dengan perangkat yang Anda miliki.
slebetman
Hai @ BenVoigt, banyak keluarga IC SSN ada, banyak prosesor / MCU memiliki ID unik, mereka hanya unik untuk keluarga IC. Berapa banyak skema penomoran IC yang unik secara global yang dapat Anda daftarkan? (bukan penomoran produk seperti IMEI)
TonyM
5

ya, tentu saja, seperti yang disebutkan alamat mac adalah yang jelas, biasanya di flash / eeprom di sebelah mac jika itu adalah bagian yang terpisah, atau di flash / eeprom di tempat lain. data produk vital (nomor seri board, dll) dapat ditempatkan dalam eeprom atau flash terpisah atau di perangkat yang sama yang digunakan untuk menyimpan firmware lain.

Ketika Anda memiliki situasi misalnya di mana pembaruan bidang firmware dimungkinkan, bagian dari desain sistem, Anda tidak ingin data VPD terhapus ketika flash firmware dihapus dan diprogram ulang, sehingga Anda perlu menyelesaikannya dengan menggunakan fitur proteksi tulis perangkat flash (meletakkan VPD di bank / area dan mengunci area itu), dan tidak serta merta mempublikasikan / mendokumentasikan cara melepaskan pin proteksi tulis dan / atau solusi lain sehingga Anda dapat memprogram VPD dalam mfg dan kemudian tetap terkunci jika tidak (tarik turun / naik seperti yang diperlukan kemudian ketika diprogram selama / sekitar ICT yang fixture dapat menariknya dengan cara lain).

Mungkin lebih umum daripada yang Anda pikirkan, medis hanyalah sebagian kecil dari orang yang akan melakukan ini. Mungkin bukan remote control televisi tetapi mungkin mouse atau keyboard dan tentu saja ponsel, dll.

Jika / ketika stiker juga digunakan di papan tulis, Anda mungkin menemukannya memiliki kode batang, sehingga selama pembuatan fixture atau operator dapat memindai kode batang, putaran perakitan, dll dan menambahkannya ke VPD untuk papan itu.

old_timer
sumber
jika Anda telah merancang untuk peningkatan lapangan maka Anda setidaknya ingin tahu firmware versi apa yang Anda miliki yang hanya dikompilasi ke dalam firmware, tetapi sebelum melakukan upgrade bidang Anda mungkin perlu tahu platform / papan spesifik apa ini (untuk memeriksa / gunakan firmware yang tepat dan / atau nuansa pemrograman lapangan, dll) jadi Anda tidak hanya ingin melindungi VPD, Anda juga MEMBUTUHKAN informasi VPD sebagai bagian dari desain untuk memungkinkan peningkatan firmware.
old_timer
3

Memiliki kode unik untuk setiap produk adalah mungkin dan dapat dilakukan. Salah satu cara untuk melakukannya adalah memiliki sistem pemrograman perangkat lunak yang secara berurutan mengubah nomor identifikasi firmware untuk setiap perangkat yang diprogram. Dengan beberapa sistem ini mudah dilakukan; beberapa pengontrol mikro misalnya, memiliki lokasi eeprom khusus untuk menyimpan ID.

Alternatif lain adalah menambahkan ID perangkat keras yang unik. Contoh dari hal ini adalah sirkuit serial nomor silikon Dallas Semi (sekarang Maxim Integrated) ( DS2401 ). Perangkat ini memberi Anda nomor seri dan Anda dijamin unik. Nomor seri ini dapat digunakan untuk menyimpulkan alamat unik untuk produk tertentu.

Adam Z
sumber
2

Kartu jaringan yang diproduksi secara massal memiliki nomor seri mereka dalam bentuk alamat perangkat keras (MAC) yang diprogram dalam flash / EEPROM mereka selama pembuatan.

Sementara nomor seri diterapkan pada casing produk karena stiker dapat dilepas atau diterapkan kembali, nomor seri yang dibakar ke papan khusus menimbulkan cara lain untuk melacak penggunaan papan; paling mungkin nomor seri ini juga akan dicetak ke dokumentasi medis untuk melacak perangkat mana yang digunakan untuk diagnosis atau operasi medis.

Anonim
sumber
2

... apakah ini sesuatu yang mudah dicapai atau apakah perlu mengembangkan proses pembuatan Anda sendiri?

Sekitar 10 tahun yang lalu, saya berada dalam situasi yang sama dengan firmware perangkat medis yang saya kembangkan untuk salah satu klien saya. Ini adalah perangkat Kelas 2, yang mengangkat bilah. Jumlah produksi dalam ratusan.

Kami tidak dapat menemukan pemrogram yang dapat menulis nomor seri secara otomatis atau semi-otomatis. Kami melakukan solusi. Kami memiliki firmware pabrik yang digunakan untuk kalibrasi dan pengujian. Firmware pabrik ini berkomunikasi dengan peralatan uji lainnya melalui port serial. Sebagai bagian dari pengujian ini, kami akan mengunduh nomor seri, yang disimpan di EEPROM mikrokontroler. (Firmware pabrik ditimpa oleh firmware lapangan.)

Nick Alexeev
sumber
0

Pemrogram produksi SEGGER mendukung flashing nomor seri unik ke dalam MCU.

filo
sumber
0

Jika Anda memiliki banyak opsi untuk ini (beberapa mengambil dari jawaban ini ):

  1. Gunakan ID unik mikrokontroler Anda jika tersedia.
  2. Pilih alamat unik dengan menetapkan beberapa jumper eksternal pada I / Os khusus.
  3. Memprogram UID ke flash atau EEPROM selama produksi. File firmware itu sendiri dapat diubah melalui serialisasi. Jika jalur perakitan Anda tidak memiliki fitur ini tetapi Anda dapat menyesuaikannya, mudah dilakukan dengan mencari offset file firmware dengan hex editor dan menggunakan skrip / bahasa favorit Anda untuk memodifikasi file. Terkadang Anda dapat "memperbaiki" alamat ini dengan skrip tautan.
  4. Inferface sebuah chip eksternal yang menyediakan UID.
  5. Konfigurasikan flash / eeprom internal (jika tersedia) dengan antarmuka layanan atau bootloader Anda. Ini bahkan dapat dilakukan selama pengujian (tidak persis di "jalur produksi" dalam beberapa kasus). Beberapa perangkat memiliki antarmuka layanan ini di mana hanya produsen teknisi yang berwenang yang dapat mengubah beberapa nilai. Karena nilai ini harus tidak dapat dimodifikasi, pastikan kode menandai nilai yang dimodifikasi dan melarang modifikasi lebih lanjut. Jika Anda memiliki bootloader, pastikan bagian ini tidak ditimpa dalam peningkatan lapangan.
Ronan Paixão
sumber
0

Jika Anda memiliki akses ke RNG perangkat keras yang baik dan penyimpanan ekstra gigih 16 byte, salah satu cara yang tidak melibatkan terlalu banyak mengubah proses produksi Anda adalah dengan menghasilkan GUID v4 pada startup pertama dan menyimpannya. Anda dapat meminta firmware untuk membuangnya ke serial selama tes pasca pemrograman apa pun yang Anda jalankan. Itu tidak berurutan, tetapi itu tidak masalah untuk sebagian besar aplikasi.

Reid Rankin
sumber
0

Jika penggunaan RFID atau Smart Tag pada setiap PCB memenuhi persyaratan, itu akan menjadi metode implementasi termudah - di bawah kendali Anda.

Guill
sumber