क्या फर्मवेयर के लिए उत्पादन में विशिष्ट रूप से पहचाना जाना व्यावहारिक है


12

क्या बड़े पैमाने पर निर्माण में ऐसी प्रणालियाँ उपलब्ध हैं जो एक अद्वितीय सीरियल नंबर को फर्मवेयर में प्रोग्राम किया जा सकता है या प्रत्येक पीसीबी के लिए कुछ मुफ्त मेमोरी स्पेस के माध्यम से आता है?

मैंने पाया है कि एफडीए ने इसे चिकित्सा ग्रेड उपकरणों के लिए लागू करना शुरू करने का फैसला किया है, लेकिन क्या यह कुछ ऐसा है जिसे पूरा करना आसान है या इसे आपके स्वयं के निर्माण की प्रक्रिया को विकसित करने की आवश्यकता होगी?


7
आपके पास किस तरह की व्यवस्था है? कई CPU (और उच्च-अंत MCU) में पहले से ही एक अद्वितीय मान के साथ पूर्व-क्रमबद्ध ID रजिस्टर के कुछ प्रकार होते हैं।
दिमित्री ग्रिगोरीव

4
पहले जांचें कि आपके MCU में पहले से कोई विशिष्ट पहचानकर्ता नहीं है
Jeroen3

जवाबों:


14

अधिकांश उत्पादन प्रोग्रामर क्रमादेशित मेमोरी में एक अद्वितीय सीरियल नंबर डालने में सक्षम हैं, इसकी प्रक्रिया को आमतौर पर क्रमबद्धता कहा जाता है । यह एक पुराने डाटामन प्रोग्रामर से सीरियलाइजेशन स्क्रीन का एक हिस्सा है।

दातमण प्रोग्रामर से क्रमबद्ध प्रदर्शन


serializationएक संभावना है लेकिन अत्यधिक देखभाल की आवश्यकता होती है खासकर यदि मूल्यों की सीमा शब्द सीमा पार करती है। यदि आप प्रोग्रामिंग को आउटसोर्स करते हैं तो यह और भी मुश्किल हो जाता है - एक प्रसिद्ध विक्रेता को एक बार नहीं बल्कि दो बार एक पंक्ति में यह गलत पता चल गया था, अंत में स्वीकार करने से पहले कि प्रश्न में भाग के लिए उनका प्रोग्रामर कई बाइट्स पर अनुक्रमित नहीं कर सकता है। अधिक महत्वपूर्ण बाइट के प्रत्येक मूल्य के लिए उन्हें एक अनूठी फ़ाइल भेजने का समर्थन किया, जिनमें से प्रत्येक के लिए उन्होंने निचले हिस्से को क्रमबद्ध करते हुए एक अद्वितीय 256-टुकड़ा प्रोग्रामिंग नौकरी चलाई। अगले डिजाइन के लिए हमने एक कस्टम प्रोग्रामर बनाया।
क्रिस स्ट्रैटन

14

आप एक सॉफ़्टवेयर-केवल समाधान के बारे में पूछ सकते हैं, लेकिन यदि आप अपने बोर्ड में एक सस्ता आईसी जोड़ने में सक्षम हैं, तो आप 'सिलिकॉन सीरियल नंबर' चिप का उपयोग कर सकते हैं।

ये छोटे रोम चिप हैं जो प्रत्येक डिवाइस में एक अद्वितीय बाइनरी नंबर होते हैं। उदाहरण मैक्सिम के DS2401 (1-तार बस) और DS28CM00 (I2C) हैं जिनकी संख्या 48-बिट अद्वितीय है।

संख्या उस निर्माता द्वारा उस भाग संख्या से बने सभी आईसी के बीच अद्वितीय है। यह स्पष्ट रूप से दुनिया में हर किसी द्वारा किए गए सभी एसएसएन चिप्स के बीच अद्वितीय नहीं है। लेकिन वे आपके बोर्ड के लिए एक डिवाइस चुनना बहुत आसान बनाते हैं और जानते हैं कि प्रत्येक बोर्ड जो कभी बनाया गया है वह उससे एक अलग और अद्वितीय संख्या पढ़ेगा।


1
संभवतः यह सबसे अच्छा विक्रेता लॉक-इन दृष्टिकोण है जो मैंने कभी देखा है।
बेसिक

"दुनिया में हर किसी द्वारा किए गए सभी एसएसएन चिप्स के बीच अद्वितीय नहीं है, जाहिर है" यह "स्पष्ट" क्यों होना चाहिए? अन्य पहचानकर्ता विश्व स्तर पर अद्वितीय होने का इरादा रखते हैं, उदाहरण के लिए ईथरनेट मैक पते, इसे उपसर्ग आवंटन का उपयोग करके पूरा करें - विक्रेता अपने उपसर्ग का उपयोग करता है और फिर शेष बिट्स / अंकों का चयन करता है।
बेन वोइगट

1
@BenVoigt मैक पते विश्व स्तर पर अद्वितीय नहीं हैं। सिर्फ क्षेत्रीय रूप से अद्वितीय। एशिया में आना और मैक पते के साथ एक उपकरण खरीदना संभव है जो यूरोप में एक उपकरण से टकराएगा। हेक, बहुत सारे उपकरणों पर आप अपने मैक पते को जानबूझकर आपके पास मौजूद डिवाइस के साथ बदल सकते हैं।
स्लीवतमैन

हाय @BenVoigt, कई SSN IC परिवार मौजूद हैं, कई प्रोसेसर / MCU में विशिष्ट ID हैं, वे केवल IC परिवार के लिए अद्वितीय हैं। आप कितने विश्व स्तर पर अद्वितीय आईसी नंबरिंग योजनाओं को सूचीबद्ध कर सकते हैं? (IMEI की तरह प्रोडक्ट नंबरिंग नहीं)
टोनीएम

5

हां, निश्चित रूप से, जैसा कि उल्लेख किया गया है मैक पते एक स्पष्ट एक हैं, आमतौर पर एक फ्लैश / इप्रोम में मैक के बगल में अगर यह एक अलग हिस्सा है, या एक फ्लैश / ईप्रोम में कहीं और है। महत्वपूर्ण उत्पाद डेटा (बोर्ड सीरियल नंबर, आदि) को एक अलग इप्रोम या फ्लैश में या उसी डिवाइस में रखा जा सकता है जो अन्य फर्मवेयर को स्टोर करने के लिए उपयोग किया जाता है।

जब आपके पास ऐसी स्थिति होती है, जहां फर्मवेयर के क्षेत्र उन्नयन संभव होते हैं, तो सिस्टम डिज़ाइन का हिस्सा, आप नहीं चाहते कि वीपीडी डेटा मिटा दिया जाए जब फ़र्मवेयर फ्लैश मिटा दिया जाए और फिर से डिज़ाइन किया जाए, इसलिए आपको इसे लिखने की सुविधा का उपयोग करके इसे हल करने की आवश्यकता है फ्लैश डिवाइस (बैंक / क्षेत्र पर अपने VPD को लगाते हुए और उस क्षेत्र को लॉक करते हुए), और जरूरी नहीं कि प्रकाशन को प्रलेखित / प्रलेखित करें कि पिन की रक्षा और / या कुछ अन्य समाधान कैसे जारी करें जैसे कि आप VPD को mgg में प्रोग्राम कर सकते हैं और फिर इसे लॉक रखें अन्यथा (एक पुल डाउन / आवश्यकता के रूप में तब जब ICT के दौरान प्रोग्राम किया जाता है कि स्थिरता इसे दूसरे तरीके से खींच सकती है)।

यह शायद आपके विचार से अधिक सामान्य है, चिकित्सा है, लेकिन लोगों का एक बहुत छोटा उपसमुच्चय जो ऐसा करेगा। शायद टेलीविज़न रिमोट कंट्रोल नहीं, लेकिन शायद एक माउस या कीबोर्ड और निश्चित रूप से एक सेल फोन, आदि।

यदि / जब बोर्ड पर स्टिकर का उपयोग किया जाता है, तो आप पा सकते हैं कि इसमें एक बारकोड है, ताकि निर्माण के दौरान स्थिरता या ऑपरेटर बारकोड, असेंबली रिव्यू आदि को स्कैन कर सके और उस बोर्ड के लिए VPD में जोड़ सके।


यदि आपने फ़ील्ड अपग्रेड के लिए डिज़ाइन किया है, तो आप कम से कम जानना चाहते हैं कि आपके पास कौन सा संस्करण फ़र्मवेयर है, जो बस फ़र्मवेयर में संकलित है, लेकिन फ़ील्ड अपग्रेड करने से पहले आपको यह जानने की आवश्यकता हो सकती है कि यह कौन सा विशिष्ट प्लेटफ़ॉर्म / बोर्ड है (जांच के लिए) / सही फर्मवेयर और / या फ़ील्ड प्रोग्रामिंग की बारीकियों का उपयोग करें, आदि) तो न केवल आप वीपीडी की रक्षा करना चाहते हैं, आप उस फर्मवेयर के उन्नयन के लिए अनुमति देने के लिए डिज़ाइन के भाग के रूप में वीपीडी की जानकारी की आवश्यकता कर सकते हैं।
old_timer

3

हर उत्पाद के लिए अद्वितीय कोड होना अच्छी तरह से संभव और संभव है। ऐसा करने का एक तरीका यह होगा कि एक सॉफ्टवेयर प्रोग्रामिंग सिस्टम हो, जो क्रमादेशित रूप से प्रोग्राम किए गए प्रत्येक डिवाइस के लिए फर्मवेयर पहचान संख्या को बदल दे। कुछ प्रणालियों के साथ यह करना आसान है; उदाहरण के लिए कुछ माइक्रो कंट्रोलर, विशेष रूप से एक आईडी स्टोर करने के लिए एक आरक्षित eeprom स्थान है।

एक अन्य विकल्प एक अद्वितीय हार्डवेयर आईडी जोड़ना होगा। इसका एक उदाहरण डलास सेमी (अब मैक्सिम इंटीग्रेटेड) सिलिकॉन सीरियल नंबर इंटीग्रेटेड सर्किट ( DS2401 ) है। यह डिवाइस आपको एक सीरियल नंबर देता है और आपको गारंटी दी जाती है कि यह अद्वितीय होगा। इस सीरियल नंबर का उपयोग किसी विशिष्ट उत्पाद के लिए एक अद्वितीय पते का पता लगाने के लिए किया जा सकता है।


2

बड़े पैमाने पर उत्पादित नेटवर्क कार्ड निर्माण के दौरान उनके फ्लैश / ईईप्रॉम में प्रोग्राम किए गए हार्डवेयर (मैक) पते के रूप में उनके सीरियल नंबर रखते हैं

जबकि उत्पाद आवरण पर लागू सीरियल नंबर स्टिकर के रूप में हटाए जा सकते हैं या फिर से लागू किए जा सकते हैं, विशिष्ट बोर्ड में जलने वाले सीरियल नंबर बोर्ड के उपयोग को ट्रैक करने का दूसरा तरीका उठाते हैं; संभवत: यह सीरियल नंबर मेडिकल डॉक्यूमेंट पर भी छापा जाएगा ताकि पता लगाया जा सके कि डिवाइस का इस्तेमाल मेडिकल डायग्नोसिस या ऑपरेशन के लिए किया गया था।


2

... क्या यह कुछ ऐसा है जिसे पूरा करना आसान है या इसके लिए आपको स्वयं की निर्माण प्रक्रिया विकसित करने की आवश्यकता होगी?

लगभग 10 साल पहले, मैं एक चिकित्सा उपकरण फर्मवेयर के साथ ऐसी ही स्थिति में था जिसे मैंने अपने ग्राहकों में से एक के लिए विकसित किया है। यह एक क्लास 2 डिवाइस था, जिसने बार उठाया। उत्पादन की मात्रा सैकड़ों में थी।

हमें एक ऑफ-द-शेल्फ प्रोग्रामर नहीं मिला, जो सीरियल नंबर को स्वचालित या अर्ध-स्वचालित रूप से लिख सके। हमने एक वर्कअराउंड किया। हमारे पास एक कारखाना फर्मवेयर था जिसका उपयोग अंशांकन और परीक्षण के लिए किया जाता था। इस कारखाने के फर्मवेयर ने सीरियल पोर्ट के माध्यम से बाकी परीक्षण उपकरण के साथ संचार किया। इस परीक्षण के एक भाग के रूप में, हम सीरियल नंबर डाउनलोड करेंगे, जिसे माइक्रोकंट्रोलर के EEPROM में संग्रहीत किया गया था। (फ़ैक्टरी फ़र्मवेयर को फ़र्मवेयर द्वारा अधिलेखित कर दिया गया था।)


0

SEGGER उत्पादन प्रोग्रामर MCUs में अद्वितीय सीरियल नंबर की चमकती समर्थन करते हैं।


0

यदि आपके पास इसके लिए कई विकल्प हैं (कुछ इस उत्तर से पकड़े गए ):

  1. यदि उपलब्ध हो तो अपने माइक्रोकंट्रोलर की यूनिक आईडी का उपयोग करें।
  2. समर्पित I / Os पर कुछ बाहरी जंपर्स सेट करके एक अद्वितीय पते का चयन करें।
  3. उत्पादन के दौरान फ्लैश या EEPROM के लिए एक UID प्रोग्राम। फ़र्मवेयर फ़ाइल को क्रमांकन के माध्यम से बदला जा सकता है। यदि आपकी असेंबली लाइन में यह सुविधा नहीं है, लेकिन आप इसे कस्टमाइज़ कर सकते हैं, तो फर्मवेयर फ़ाइल की हेक्स संपादक के साथ ऑफसेट करके और फ़ाइल को संशोधित करने के लिए अपनी पसंदीदा स्क्रिप्ट / भाषा का उपयोग करके इसे करना आसान है। कभी-कभी आप लिंकर स्क्रिप्ट के साथ इस पते को "ठीक" कर सकते हैं।
  4. एक बाहरी चिप को बांधे जो एक यूआईडी प्रदान करता है।
  5. अपने सेवा इंटरफ़ेस या बूटलोडर के साथ आंतरिक फ्लैश / इप्रोम (यदि उपलब्ध हो) कॉन्फ़िगर करें। यह परीक्षण के दौरान भी हो सकता है (कुछ मामलों में "उत्पादन लाइन" में बिल्कुल नहीं)। कुछ उपकरणों में यह सेवा इंटरफ़ेस होता है जहां केवल अधिकृत तकनीशियनों के निर्माता कुछ मूल्यों को बदल सकते हैं। चूँकि यह मान असम्बद्ध होना चाहिए, इसलिए सुनिश्चित करें कि कोड झंडे संशोधित मूल्यों और आगे के संशोधनों को मना करें। यदि आपके पास बूटलोडर है, तो सुनिश्चित करें कि यह अनुभाग फ़ील्ड अपग्रेड में अधिलेखित नहीं है।

0

यदि आपके पास एक अच्छा हार्डवेयर RNG और 16 बाइट्स के साथ लगातार स्टोरेज का उपयोग है, तो एक तरीका जो आपकी उत्पादन प्रक्रिया को बहुत अधिक नहीं बदलता है, वह है पहला स्टार्टअप पर एक v4 GUID उत्पन्न करना और उसे स्टोर करना। आपके द्वारा चलाए जा रहे पोस्ट-प्रोग्रामिंग परीक्षणों के दौरान आप फर्मवेयर को सीरियल में डंप कर सकते हैं। यह अनुक्रमिक नहीं है, लेकिन यह अधिकांश अनुप्रयोगों के लिए मायने नहीं रखता है।


0

यदि प्रत्येक पीसीबी पर आरएफआईडी या स्मार्ट टैग का उपयोग आवश्यकता को पूरा करता है, तो यह आपके नियंत्रण में - कार्यान्वयन का सबसे आसान तरीका होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.