เป็นจริงหรือไม่ที่เฟิร์มแวร์จะระบุในการผลิต


12

มีระบบในการผลิตขนาดใหญ่ที่อนุญาตให้มีหมายเลขซีเรียลที่ไม่ซ้ำกันเพื่อโปรแกรมในเฟิร์มแวร์หรือพื้นที่หน่วยความจำว่างสำหรับ PCB แต่ละอันที่ผ่านมาหรือไม่

ฉันพบว่าองค์การอาหารและยาได้ตัดสินใจที่จะเริ่มบังคับใช้มันสำหรับอุปกรณ์เกรดทางการแพทย์ แต่เป็นสิ่งที่ง่ายต่อการสำเร็จหรือจะต้องพัฒนากระบวนการผลิตของคุณเอง?


7
คุณมีระบบประเภทใด ซีพียูจำนวนมาก (และ MCU ระดับสูงกว่า) มีการตั้งค่า ID การลงทะเบียนล่วงหน้าที่ตั้งค่าไว้ล่วงหน้าแล้ว
Dmitry Grigoryev

4
ก่อนอื่นให้ตรวจสอบว่า MCU ของคุณยังไม่มีตัวระบุเฉพาะ
Jeroen3

คำตอบ:


14

ส่วนใหญ่โปรแกรมเมอร์ผลิตมีความสามารถในการใส่หมายเลขที่ไม่ซ้ำกันในหน่วยความจำโปรแกรมกระบวนการของมันตามปกติที่เรียกว่าอนุกรม นี่คือการคว้าของหน้าจอเป็นอันดับจากโปรแกรมเมอร์ Dataman เก่า

การแสดงผลเป็นอนุกรมจากโปรแกรมเมอร์ Dataman


serializationเป็นไปได้ แต่ต้องใช้ความระมัดระวังเป็นพิเศษโดยเฉพาะอย่างยิ่งถ้าช่วงของค่าข้ามเขตแดนของคำ หากคุณเขียนโปรแกรมเอาต์ซอร์ซมันจะยิ่งยุ่งยากมากขึ้น - มีผู้จำหน่ายที่รู้จักกันดีว่าผิด แต่ไม่ใช่สองครั้งติดต่อกันก่อนที่จะยอมรับว่าโปรแกรมเมอร์ของพวกเขาสำหรับส่วนที่เป็นปัญหานั้นไม่สามารถเรียงลำดับได้หลายไบต์ จบลงด้วยการส่งไฟล์ที่ไม่ซ้ำกันสำหรับแต่ละค่าของไบต์ที่มีความสำคัญมากขึ้นสำหรับแต่ละไฟล์ที่พวกเขารันงานเขียนโปรแกรม 256 ชิ้นที่ไม่เหมือนใครซึ่งเรียงลำดับเป็นลำดับล่าง สำหรับการออกแบบครั้งต่อไปเราได้สร้างโปรแกรมเมอร์ขึ้นมาเอง
Chris Stratton

14

คุณอาจถามถึงวิธีแก้ไขปัญหาเฉพาะซอฟต์แวร์เท่านั้น แต่หากคุณสามารถเพิ่ม IC ราคาถูกลงในบอร์ดของคุณคุณสามารถใช้ชิป 'Silicon Serial Number'

เหล่านี้เป็นชิป ROM ขนาดเล็กที่แต่ละอุปกรณ์มีหมายเลขไบนารีที่ไม่ซ้ำกัน ตัวอย่างคือ DS2401 (บัส 1 สาย) ของ Maxim และ DS28CM00 (I2C) ซึ่งมีหมายเลขเฉพาะ 48 บิต

หมายเลขนั้นไม่เหมือนใครในบรรดาไอซีทั้งหมดที่ทำจากหมายเลขชิ้นส่วนนั้นโดยผู้ผลิตนั้น ไม่ใช่เฉพาะในชิป SSN ทั้งหมดที่ทุกคนในโลกทำ แต่พวกเขาทำให้ง่ายต่อการเลือกอุปกรณ์สำหรับบอร์ดของคุณและรู้ว่าแต่ละบอร์ดที่เคยทำจะอ่านหมายเลขที่แตกต่างและไม่ซ้ำใครจากมัน


1
นั่นอาจเป็นวิธีการล็อคผู้ขายที่ดีที่สุดที่ฉันเคยเห็น
พื้นฐาน

"ไม่เหมือนกันในบรรดาชิป SSN ทั้งหมดที่ทุกคนในโลกทำชัดเจน" ทำไมนี่จึงเป็น "ชัดเจน" ตัวระบุอื่น ๆ ที่ตั้งใจจะไม่ซ้ำกันทั่วโลกเช่นที่อยู่ MAC ของอีเทอร์เน็ตทำได้โดยการจัดสรรคำนำหน้า - ผู้ขายใช้คำนำหน้าของพวกเขาแล้วเลือกบิต / หลักที่เหลือ
Ben Voigt

1
@BenVoigt ที่อยู่ MAC นั้นไม่ซ้ำกันทั่วโลก ไม่ซ้ำกันในระดับภูมิภาค เป็นไปได้ที่จะมาเอเชียและซื้ออุปกรณ์ที่มีที่อยู่ MAC ซึ่งจะขัดแย้งกับอุปกรณ์ในยุโรป เฮ้บนอุปกรณ์จำนวนมากคุณสามารถเปลี่ยนที่อยู่ MAC ของคุณเพื่อการปะทะกันกับอุปกรณ์ที่คุณมี
slebetman

สวัสดี @BenVoigt มีตระกูล SSN อยู่หลายตระกูลตัวประมวลผล / MCU จำนวนมากมี ID ที่ไม่ซ้ำกันและเป็นเฉพาะตระกูล IC เท่านั้น คุณสามารถแสดงรายการหมายเลขลำดับ IC ที่ไม่ซ้ำใครได้ทั่วโลก (ไม่ใช่หมายเลขผลิตภัณฑ์เช่น IMEI)
TonyM

5

ใช่แน่นอนตามที่กล่าวถึงที่อยู่ mac นั้นเป็นที่ชัดเจนโดยปกติแล้วจะอยู่ในแฟลช / eeprom ถัดจาก mac หากเป็นส่วนแยกต่างหากหรือในแฟลช / eeprom ที่อื่น ข้อมูลผลิตภัณฑ์สำคัญ (หมายเลขซีเรียลของบอร์ด ฯลฯ ) สามารถวางใน eeprom หรือแฟลชแยกต่างหากหรือในอุปกรณ์เดียวกันที่ใช้เพื่อจัดเก็บเฟิร์มแวร์อื่น ๆ

เมื่อคุณมีสถานการณ์เช่นที่สามารถอัปเกรดฟิลด์เฟิร์มแวร์ได้ส่วนหนึ่งของการออกแบบระบบคุณไม่ต้องการให้ข้อมูล VPD ถูกลบเมื่อแฟลชเฟิร์มแวร์ถูกลบและ reprogrammed ดังนั้นคุณต้องแก้ไขด้วยการใช้คุณสมบัติป้องกันการเขียน ของอุปกรณ์แฟลช (วาง VPD ไว้ที่ธนาคาร / พื้นที่และล็อคพื้นที่นั้น) และไม่จำเป็นต้องเผยแพร่ / จัดทำเอกสารต่อสาธารณะว่าจะปลด pin ป้องกันการเขียนและ / หรือโซลูชันอื่น ๆ เช่นที่คุณสามารถตั้งโปรแกรม VPD ใน mfg และ จากนั้นให้ล็อคเป็นอย่างอื่น (ดึงลง / ขึ้นตามที่ต้องการจากนั้นเมื่อโปรแกรมระหว่าง / รอบ ICT ที่โคมสามารถดึงมันในทางอื่น)

อาจเป็นเรื่องธรรมดามากกว่าที่คุณคิดว่าการแพทย์เป็นเพียงส่วนเล็ก ๆ ของคนที่จะทำสิ่งนี้ อาจไม่ใช่รีโมทโทรทัศน์ แต่อาจเป็นเมาส์หรือคีย์บอร์ดและแน่นอนว่าเป็นโทรศัพท์มือถือ ฯลฯ

หาก / เมื่อมีการใช้สติกเกอร์บนบอร์ดคุณอาจพบว่ามีบาร์โค้ดเพื่อให้ในระหว่างการผลิตฟิกซ์เจอร์หรือผู้ปฏิบัติงานสามารถสแกนบาร์โค้ด, rev ประกอบและอื่น ๆ และเพิ่มลงใน VPD สำหรับบอร์ดนั้น


ถ้าคุณออกแบบมาสำหรับการอัพเกรดภาคสนามอย่างน้อยคุณก็ต้องการที่จะรู้ว่าเฟิร์มแวร์เวอร์ชั่นใดที่คุณได้รวบรวมไว้ในเฟิร์มแวร์ แต่ก่อนที่จะทำการอัพเกรดภาคสนามคุณอาจจำเป็นต้องรู้ว่าแพลตฟอร์ม / กระดานนี้คืออะไร / ใช้เฟิร์มแวร์ที่ถูกต้องและ / หรือความแตกต่างของการเขียนโปรแกรมภาคสนาม ฯลฯ ) ดังนั้นไม่เพียง แต่คุณต้องการปกป้อง VPD เท่านั้นคุณอาจต้องการข้อมูล VPD ซึ่งเป็นส่วนหนึ่งของการออกแบบเพื่อให้สามารถอัพเกรดเฟิร์มแวร์นั้นได้
old_timer

3

มีรหัสที่ไม่ซ้ำกันสำหรับทุกผลิตภัณฑ์เป็นไปได้และทำได้ วิธีหนึ่งที่จะทำได้คือมีระบบการเขียนโปรแกรมซอฟต์แวร์ซึ่งจะเปลี่ยนหมายเลขประจำตัวเฟิร์มแวร์สำหรับอุปกรณ์ที่ตั้งโปรแกรมไว้ตามลำดับ สำหรับบางระบบจะทำได้ง่าย ตัวควบคุมไมโครบางตัวมีตำแหน่ง eeprom ที่สงวนไว้สำหรับการจัดเก็บ ID โดยเฉพาะ

อีกทางเลือกหนึ่งคือการเพิ่ม ID ฮาร์ดแวร์ที่ไม่ซ้ำกัน ตัวอย่างนี้เป็นดัลลัส Semi (ตอนนี้ Maxim Integrated) ซิลิคอนหมายเลขซีเรียลรวมวงจร ( DS2401 ) อุปกรณ์นี้ให้หมายเลขซีเรียลแก่คุณและคุณรับประกันว่าจะไม่ซ้ำใคร หมายเลขซีเรียลนี้สามารถใช้เพื่ออนุมานที่อยู่เฉพาะสำหรับผลิตภัณฑ์เฉพาะ


2

การ์ดเครือข่ายที่ผลิตขึ้นจำนวนมากมีหมายเลขซีเรียลในรูปแบบของที่อยู่ฮาร์ดแวร์ (MAC) ที่ตั้งโปรแกรมไว้ในแฟลช / EEPROM ระหว่างการผลิต

ในขณะที่หมายเลขซีเรียลที่ใช้กับปลอกผลิตภัณฑ์สามารถลบหรือนำสติกเกอร์กลับมาใช้ใหม่ได้การเขียนหมายเลขซีเรียลลงในบอร์ดเฉพาะจะเพิ่มอีกวิธีหนึ่งในการติดตามการใช้บอร์ด อาจเป็นไปได้ว่าหมายเลขซีเรียลนี้จะถูกพิมพ์ลงบนเอกสารทางการแพทย์เพื่อติดตามว่าอุปกรณ์ใดที่ใช้สำหรับการวินิจฉัยทางการแพทย์หรือการทำงาน


2

... นี่เป็นสิ่งที่ง่ายต่อการบรรลุผลหรือต้องการพัฒนากระบวนการผลิตของคุณเองหรือ

ประมาณ 10 ปีที่แล้วฉันอยู่ในสถานการณ์ที่คล้ายคลึงกันกับเฟิร์มแวร์อุปกรณ์การแพทย์ที่ฉันพัฒนาขึ้นมาเพื่อลูกค้า นี่คืออุปกรณ์ Class 2 ซึ่งยกระดับแถบ ปริมาณการผลิตเป็นร้อย

เราไม่พบโปรแกรมเมอร์แบบ off-the-shelf ซึ่งสามารถเขียนหมายเลขซีเรียลโดยอัตโนมัติหรือกึ่งอัตโนมัติ เราทำวิธีแก้ปัญหา เรามีเฟิร์มแวร์จากโรงงานซึ่งใช้สำหรับการสอบเทียบและการทดสอบ เฟิร์มแวร์โรงงานนี้สื่อสารกับอุปกรณ์ทดสอบส่วนที่เหลือผ่านพอร์ตอนุกรม เป็นส่วนหนึ่งของการทดสอบนี้เราจะดาวน์โหลดหมายเลขซีเรียลซึ่งถูกเก็บไว้ใน EEPROM ของไมโครคอนโทรลเลอร์ (เฟิร์มแวร์โรงงานถูกเขียนทับโดยฟิลด์เฟิร์มแวร์)


0

โปรแกรมเมอร์ผู้ผลิต SEGGER สนับสนุนการกระพริบหมายเลขซีเรียลที่ไม่ซ้ำกันใน MCU


0

หากคุณมีตัวเลือกมากมายสำหรับสิ่งนี้ (บางคนคว้ามาจากคำตอบนี้ ):

  1. ใช้ ID เฉพาะของไมโครคอนโทรลเลอร์ถ้ามี
  2. เลือกที่อยู่ที่ไม่ซ้ำกันโดยการตั้งค่าจัมเปอร์ภายนอกบน I / O เฉพาะ
  3. ตั้งโปรแกรม UID เป็น flash หรือ EEPROM ระหว่างการผลิต ไฟล์เฟิร์มแวร์สามารถเปลี่ยนแปลงได้ด้วยการทำให้เป็นอนุกรม หากแอสเซมบลีไลน์ของคุณไม่มีคุณสมบัตินี้ แต่คุณสามารถปรับแต่งได้คุณสามารถทำได้โดยการหาออฟเซ็ตของไฟล์เฟิร์มแวร์ด้วยตัวแก้ไข hex และใช้สคริปต์ / ภาษาที่คุณชื่นชอบเพื่อแก้ไขไฟล์ บางครั้งคุณสามารถ "แก้ไข" ที่อยู่นี้ได้ด้วยสคริปต์ตัวเชื่อมโยง
  4. Inferface ชิปภายนอกที่ให้ UID
  5. กำหนดค่าแฟลชภายใน / eeprom (ถ้ามี) ด้วยส่วนต่อประสานบริการหรือ bootloader ของคุณ สิ่งนี้อาจทำได้แม้ในระหว่างการทดสอบ (ไม่แน่นอนใน "สายการผลิต" ในบางกรณี) อุปกรณ์บางอย่างมีส่วนต่อประสานบริการนี้ซึ่งมีเพียงผู้ผลิตช่างเทคนิคที่ได้รับอนุญาตเท่านั้นที่สามารถเปลี่ยนแปลงค่าบางอย่างได้ เนื่องจากค่านี้ไม่สามารถแก้ไขได้ตรวจสอบให้แน่ใจว่าค่าสถานะการแก้ไขรหัสและห้ามแก้ไขเพิ่มเติม หากคุณมี bootloader ตรวจสอบให้แน่ใจว่าส่วนนี้ไม่ได้เขียนทับในการอัพเกรดภาคสนาม

0

หากคุณเข้าถึงฮาร์ดแวร์ RNG ที่ดีและที่เก็บข้อมูลถาวรเพิ่มเติมขนาด 16 ไบต์วิธีหนึ่งที่ไม่เกี่ยวข้องกับการเปลี่ยนกระบวนการผลิตของคุณมากเกินไปคือการสร้าง v4 GUID เมื่อเริ่มต้นครั้งแรกและเก็บไว้ คุณสามารถถ่ายโอนเฟิร์มแวร์ให้เป็นอนุกรมได้ในระหว่างการทดสอบหลังการตั้งโปรแกรม มันไม่ได้เรียงตามลำดับ แต่นั่นไม่สำคัญสำหรับแอปพลิเคชันส่วนใหญ่


0

หากการใช้ RFID หรือสมาร์ทแท็กในแต่ละ PCB ตรงตามความต้องการมันจะเป็นวิธีที่ง่ายที่สุดในการนำไปใช้ - ภายใต้การควบคุมของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.