अंतःस्थापित प्रणाली
अंतःस्थापित प्रणाली एक कंप्यूटर प्रणाली है - एक कंप्यूटर प्रोसेसर, कंप्यूटर मेमोरी और इनपुट/आउटपुट पेरिफेरल उपकरण का एक संयोजन है जिसका किसी बड़े यांत्रिकी या इलेक्ट्रानिक्स प्रणाली के भीतर समर्पित कार्य है।[1][2] यह अक्सर विद्युत या इलेक्ट्रॉनिक हार्डवेयर और यांत्रिक भागों सहित एक पूर्ण उपकरण के हिस्से के रूप में अंतःस्थापित होता है। क्योंकि अंतःस्थापित प्रणाली आमतौर पर उस मशीन के भौतिक संचालन को नियंत्रित करता है जिसमें यह अंतःस्थापित होता है, इसमें अक्सर रीयल-टाइम संगणक बाधाएँ होती हैं। अंतःस्थापित प्रणाली आज आम उपयोग में आने वाले कई उपकरणों को नियंत्रित करते हैं।[3] 2009[update] में, यह अनुमान लगाया गया था कि निर्मित सभी माइक्रोप्रोसेसरों का अठानबे प्रतिशत अंतःस्थापित प्रणाली में उपयोग किया गया था।[4][needs update]
आधुनिक अंतःस्थापित प्रणाली अक्सर माइक्रोकन्ट्रोलर (अर्थात् एकीकृत मेमोरी और परिधीय इंटरफेस के साथ माइक्रोप्रोसेसर) पर आधारित होते हैं, लेकिन साधारण माइक्रोप्रोसेसर (मेमोरी और परिधीय इंटरफ़ेस सर्किट के लिए बाहरी चिप्स का उपयोग करना) भी आम हैं, खासकर अधिक जटिल प्रणालियों में। किसी भी मामले में, उपयोग किए जाने वाले प्रोसेसर सामान्य प्रयोजन से लेकर संगणना के एक निश्चित वर्ग में विशेष प्रकार के हो सकते हैं, या यहां तक कि मनपसंद अनुप्रयोगों के लिए डिज़ाइन किए गए हैं। समर्पित प्रोसेसर का एक सामान्य मानक वर्ग डिजिटल सिग्नल प्रोसेसर (डीएसपी) है।
चूंकि अंतःस्थापित प्रणाली विशिष्ट कार्यों के लिए समर्पित है, योजना अभियंता उत्पाद के आकार और लागत को कम करने और इसकी विश्वसनीयता और प्रदर्शन को बढ़ाने के लिए इसे अनुकूलित कर सकते हैं। कुछ अंतःस्थापित प्रणाली बड़े पैमाने पर उत्पादित होते हैं, जो पैमाने की अर्थव्यवस्थाओं से लाभान्वित होते हैं।
अंतःस्थापित प्रणाली पोर्टेबल व्यक्तिगत उपकरणों जैसे डिजिटल घड़ियों और एमपी 3 प्लेयर्स से लेकर घरेलू उपकरणों, औद्योगिक असेम्बली लाइनें, रोबोट, ट्रांसपोर्ट व्हीकल, ट्रैफिक लाइट नियंत्रण और समन्वय और चिकित्सीय इमेजिंग प्रणाली जैसी बड़ी मशीनों के आकार में होते हैं। अक्सर वे अन्य मशीनों की उप-प्रणालियों का गठन करते हैं जैसे कि विमान में एवियोनिक्स और अंतरिक्ष यान में आस्ट्रियनिक्स। बड़े प्रतिष्ठान जैसे कारखाने, पाइपलाइन परिवहन और विद्युत ग्रिड, एक साथ नेटवर्क किए गए कई अंतःस्थापित प्रणाली पर निर्भर करते हैं। सॉफ्टवेयर अनुकूलन के माध्यम से सामान्यीकृत, अंतःस्थापित प्रणाली जैसे निर्देशयोग्य तर्क नियंत्रक अक्सर अपनी कार्यात्मक इकाइयों को शामिल करते हैं।
अंतःस्थापित प्रणाली जटिलता में कम से लेकर, एकल माइक्रोकंट्रोलर चिप के साथ, कई इकाइयों, बाह्य उपकरणों और नेटवर्क के साथ बहुत अधिक होते हैं, जो उपकरण रैक में या लंबी दूरी की संचार लाइनों के माध्यम से जुड़े बड़े भौगोलिक क्षेत्रों में रह सकते हैं।
इतिहास
पृष्ठभूमि
माइक्रोप्रोसेसर और माइक्रोकंट्रोलर की उत्पत्ति एमओएस एकीकृत परिपथ में देखी जा सकती है, जो एमओएसFETs (मेटल-ऑक्साइड-सेमीकंडक्टर फील्ड-इफेक्ट ट्रांजिस्टर) से एमओएस एकीकृत सर्किट चिप अर्धचालक उपकरण निर्माण है और इसे 1960 के दशक की शुरुआत में विकसित किया गया था। 1964 तक, एमओएस चिप्स द्विध्रुवी जंक्शन ट्रांजिस्टर चिप्स की तुलना में उच्च ट्रांजिस्टर घनत्व और कम निर्माण लागत तक पहुंच गए थे। मूर के कानून द्वारा अनुमानित दर पर एमओएस चिप्स जटिलता में और बढ़ गए, जिससे 1960 के दशक के अंत तक एकल एमओएस चिप पर सैकड़ों ट्रांजिस्टर के साथ बड़े पैमाने पर एकीकरण (एलएसआई) हो गया। कम्प्यूटिंग के लिए एमओएस एलएसआई चिप्स का अनुप्रयोग पहले माइक्रोप्रोसेसरों का आधार था, क्योंकि इंजीनियरों ने यह पहचानना शुरू कर दिया था कि एक पूर्ण कंप्यूटर प्रोसेसर प्रणाली कई एमओएस एलएसआई चिप्स पर समाहित हो सकता है।[5]
पहला मल्टी-चिप माइक्रोप्रोसेसर, 1969 में चार-चरण प्रणाली AL1 और 1970 में गर्रेट ऐआईरिसर्च MP944, कई एमओएस एलएसआई चिप्स के साथ विकसित किए गए थे। पहला सिंगल-चिप माइक्रोप्रोसेसर इंटेल 4004 था, जिसे 1971 में जारी किया गया था। इसे फेडेरिको फागिन द्वारा अपनी सिलिकॉन गेट एमओएस तकनीक का उपयोग करके विकसित किया गया था, साथ में इंटेल इंजीनियर मार्सियन हॉफ और स्टेन मज़ोर, बुसिकम इंजीनियर मासतोषी शिमा |[6]
विकास
1965 एमआईटी इंस्ट्रुमेंटेशन प्रयोगशाला में चार्ल्स स्टार्क ड्रेपर द्वारा विकसित पहचानने योग्य सबसे पहले आधुनिक अंतःस्थापित प्रणाली में से एक अपोलो गाइडेंस कंप्यूटर था[citation needed]। परियोजना की शुरुआत में, अपोलो मार्गदर्शन कंप्यूटर को अपोलो परियोजना में सबसे जोखिम भरा कार्य माना जाता था क्योंकि इसने कंप्यूटर के आकार और वजन को कम करने के लिए तत्कालीन नव विकसित अखंड एकीकृत सर्किट को नियोजित किया था।
1961 में रिलीज़ हुई मिनुतेमान मिसाइल के लिए एक प्रारंभिक बड़े पैमाने पर निर्मित अंतःस्थापित प्रणाली ऑटोनेटिक्स D-17 मार्गदर्शन कंप्यूटर था। जब मिनुतेमान II 1966 में उत्पादन में चला गया, तो D-17 को एक नए कंप्यूटर से बदल दिया गया, जो एकीकृत परिपथों के पहले उच्च मात्रा के उपयोग का प्रतिनिधित्व करता है।
1960 के दशक में इन शुरुआती अनुप्रयोगों के बाद से, अंतःस्थापित प्रणाली की कीमत में कमी आई है और प्रसंस्करण शक्ति और कार्यक्षमता में नाटकीय वृद्धि हुई । प्रारंभिक माइक्रोप्रोसेसर, इंटेल 4004 (1971 में जारी), कैलकुलेटर और अन्य छोटी प्रणालियों के लिए डिज़ाइन किया गया था, लेकिन अभी भी बाहरी मेमोरी और सपोर्ट चिप्स की आवश्यकता थी। 1980 के दशक के प्रारंभ तक, मेमोरी, इनपुट और आउटपुट प्रणाली घटकों को एक ही चिप में एकीकृत किया गया था, जिसमें प्रोसेसर एक माइक्रोकंट्रोलर बना रहा था। माइक्रोकंट्रोलर्स ऐसे अनुप्रयोग ढूंढते हैं जहां सामान्य-उद्देश्य वाला कंप्यूटर बहुत महंगा होगा। जैसे-जैसे माइक्रोप्रोसेसरों और माइक्रोकंट्रोलर्स की लागत गिरती गई, अंतःस्थापित प्रणाली का प्रचलन बढ़ता गया।
आज, तुलनात्मक रूप से कम लागत वाले माइक्रोकंट्रोलर को बड़ी संख्या में अलग-अलग घटकों के समान भूमिका निभाने के लिए प्रोग्राम किया जा सकता है। माइक्रोकंट्रोलर्स के साथ, उपभोक्ता उत्पादों में महंगे नॉब-आधारित एनालॉग इलेक्ट्रॉनिक्स घटकों जैसे कि तनाव नापने का यंत्र और परिवर्तनीय संधारित्र को अप/डाउन बटन या माइक्रोप्रोसेसर द्वारा पढ़े जाने वाले नॉब के साथ बदलना संभव हो गया। हालांकि इस संदर्भ में अंतःस्थापित प्रणाली पारंपरिक समाधान की तुलना में आमतौर पर अधिक जटिल होता है, अधिकांश जटिलता माइक्रोकंट्रोलर के भीतर ही निहित होती है। बहुत कम अतिरिक्त घटकों की आवश्यकता हो सकती है और अधिकांश डिज़ाइन प्रयास सॉफ़्टवेयर में हैं। सॉफ्टवेयर प्रोटोटाइप और परीक्षण अंतःस्थापित प्रोसेसर का उपयोग नहीं करने वाले नए सर्किट के डिजाइन और निर्माण की तुलना में तेज हो सकता है।
अनुप्रयोग
अंतःस्थापित प्रणाली आमतौर पर उपभोक्ता, औद्योगिक, ऑटोमोटिव उद्योग, घरेलू उपकरणों, चिकित्सा, दूरसंचार, वाणिज्यिक, एयरोस्पेस और सैन्य अनुप्रयोगों में पाए जाते हैं।
दूरसंचार प्रणालियाँ नेटवर्क के लिए टेलीफोन स्विच से लेकर अंतिम उपयोगकर्ता के मोबाइल फोन तक कई अंतःस्थापित प्रणाली का उपयोग करती हैं। कंप्यूटर नेटवर्किंग डेटा को रूट करने के लिए समर्पित राउटर और नेटवर्क ब्रिज का उपयोग करती है।
उपभोक्ता इलेक्ट्रॉनिक्स में एमपी3 प्लेयर, टेलिविजन सेट, मोबाइल फोन, विडियो गेम कंसोल, डिजिटल कैमरा, ग्लोबल पोजिशनिंग प्रणाली रिसीवर और संगणक मुद्रक शामिल हैं। माइक्रोवेव ओवन, वाशिंग मशीन और डिशवाशर जैसे घरेलू उपकरणों में लचीलापन, दक्षता और सुविधाएँ प्रदान करने के लिए अंतःस्थापित प्रणाली शामिल हैं। उन्नत हीटिंग, वेंटिलेशन और एयर कंडीशनिंग (एचवीएसी) प्रणाली नेटवर्क थर्मोस्टेट्स का उपयोग अधिक सटीक और कुशलता से तापमान को नियंत्रित करने के लिए करते हैं जो दिन और मौसम के अनुसार बदल सकते हैं। गृह स्वचालन वायर्ड- और वायरलेस-नेटवर्किंग का उपयोग करता है जिसका उपयोग रोशनी, जलवायु, सुरक्षा, ऑडियो/दृश्य, निगरानी इत्यादि को नियंत्रित करने के लिए किया जा सकता है, जिनमें से सभी संवेदन और नियंत्रण के लिए अंतःस्थापित डिवाइस का उपयोग करते हैं।
उड़ान से ऑटोमोबाइल तक परिवहन प्रणालियाँ तेजी से अंतःस्थापित प्रणाली का उपयोग करती हैं। नए हवाई जहाजों में उन्नत एविओनिक्स जैसे कि जड़त्वीय मार्गदर्शन प्रणाली और ग्लोबल पोजिशनिंग प्रणाली रिसीवर होते हैं जिनकी सुरक्षा की भी काफी आवश्यकता होती है। अंतरिक्ष यान प्रक्षेपवक्र सुधार के लिए एस्ट्रियोनिक्स प्रणाली पर भरोसा करते हैं। विभिन्न इलेक्ट्रिक मोटर्स -ब्रुशलेस डीसी मोटर्स, इंडक्शन मोटर्स और डीसी मोटर्स - इलेक्ट्रॉनिक मोटर नियंत्रकों का उपयोग करते हैं। ऑटोमोबाइल, विद्युतीय वाहन और हाइब्रिड वाहन दक्षता को अधिकतम करने और प्रदूषण को कम करने के लिए तेजी से अंतःस्थापित प्रणाली का उपयोग करते हैं। अंतःस्थापित प्रणाली का उपयोग करने वाली अन्य ऑटोमोटिव सुरक्षा प्रणालियों में लॉक - रोधी ब्रेकिंग प्रणाली (एबीएस), इलेक्ट्रॉनिक स्थिरता नियंत्रण (ईएससी/ईएसपी), कर्षण नियंत्रण प्रणाली (टीसीएस) और स्वचालित चार-पहिया ड्राइव शामिल हैं।
चिकित्सा उपकरण मॉनिटरिंग, और विभिन्न चिकित्सा इमेजिंग (पोजीट्रान एमिशन टोमोग्राफी-पीईटी), एकल-फोटॉन उत्सर्जन परिकलित टोमोग्राफी(एसपीईसीटी), कंप्यूटेड टोमोग्राफी (सीटी), और नॉन-इनवेसिव के लिए चुंबकीय अनुनाद इमेजिंग (एमआरआई) के लिए अंतःस्थापित प्रणाली का उपयोग करता है। आंतरिक निरीक्षण चिकित्सा उपकरणों के भीतर अंतःस्थापित प्रणाली अक्सर औद्योगिक कंप्यूटरों द्वारा संचालित होते हैं।[8]
अंतःस्थापित प्रणाली का उपयोग एयरोस्पेस और रक्षा उद्योगों में सुरक्षा-महत्वपूर्ण प्रणालियों के लिए किया जाता है। जब तक ऑन-चिप 3जी सेलुलर या IoT निगरानी और नियंत्रण उद्देश्यों के लिए अन्य तरीकों के माध्यम से वायर्ड या वायरलेस नेटवर्क से कनेक्ट नहीं किया जाता है, तब तक इन प्रणालियों को हैकिंग से अलग किया जा सकता है और इस प्रकार अधिक सुरक्षित हो सकता है।[citation needed] अग्नि सुरक्षा के लिए, प्रणाली को उच्च तापमान को संभालने और संचालन जारी रखने की अधिक क्षमता रखने के लिए डिज़ाइन किया जा सकता है। सुरक्षा से निपटने में, अंतःस्थापित प्रणाली आत्मनिर्भर हो सकते हैं और कट इलेक्ट्रिकल और संचार प्रणालियों से निपटने में सक्षम हो सकते हैं।
मोट्स कहे जाने वाले लघु वायरलेस डिवाइस नेटवर्क वाले वायरलेस संवेदक हैं। वायरलेस संवेदक नेटवर्किंग उन्नत एकीकृत सर्किट (आईसी) डिजाइन द्वारा पूर्ण वायरलेस सबप्रणाली को परिष्कृत संवेदक से जोड़े जाने के लिए लघुकरण का उपयोग संभव बनाता है, जिससे लोगों और कंपनियों को भौतिक दुनिया में असंख्य चीजों को मापने और निगरानी और नियंत्रण प्रणाली के माध्यम से इस जानकारी पर कार्य करने में सक्षम बनाता है। ये मोट्स पूरी तरह से स्व-निहित हैं और आमतौर पर वर्षों तक बैटरी को बदलने या चार्ज करने की आवश्यकता नहीं होते हैं।
विशेषताएं
अंतःस्थापित प्रणाली को कई कार्यों के लिए एक सामान्य-उद्देश्य वाला कंप्यूटर होने के बजाय कुछ विशिष्ट कार्य करने के लिए डिज़ाइन किया गया है। कुछ में रीयल-टाइम प्रदर्शन बाधाएं भी होती हैं जिन्हें सुरक्षा और उपयोगिता जैसे कारणों से पूरा किया जाना चाहिए; दूसरों के पास कम या कोई प्रदर्शन आवश्यकता नहीं हो सकती है, जिससे लागत कम करने के लिए प्रणाली हार्डवेयर को सरल बनाया जा सकता है।
अंतःस्थापित प्रणाली हमेशा स्टैंडअलोन उपकरण नहीं होते हैं। कई अंतःस्थापित प्रणाली में बड़े उपकरण के भीतर छोटे हिस्से होते हैं जो अधिक सामान्य उद्देश्य को पूरा करता है। उदाहरण के लिए, गिब्सन रोबोट गिटार में तारों को ट्यून करने के लिए एक अंतःस्थापित प्रणाली है, लेकिन रोबोट गिटार का समग्र उद्देश्य संगीत बजाना है।[9] इसी तरह, ऑटोमोबाइल में एक अंतःस्थापित प्रणाली कार के सबप्रणाली के रूप में एक विशिष्ट कार्य प्रदान करता है।
अंतःस्थापित प्रणाली के लिए लिखे गए प्रोग्राम निर्देश फर्मवेयर के रूप में संदर्भित होते हैं, और रीड-ओनली मेमोरी या फ्लैश मेमोरी चिप्स में संग्रहीत होते हैं। वे सीमित कंप्यूटर हार्डवेयर संसाधनों के साथ चलते हैं जैसे कम मेमोरी, छोटा या गैर-मौजूद कीबोर्ड या स्क्रीन।
उपभोक्ता इंटरफेस
अंतःस्थापित प्रणाली बिना कोई यूजर इंटरफेस से लेकर आधुनिक कंप्यूटर डेस्कटॉप ऑपरेटिंग प्रणाली के समान जटिल ग्राफिकल यूज़र इंटरफ़ेस तक, केवल एक कार्य के लिए समर्पित प्रणाली में होते हैं। सरल अंतःस्थापित डिवाइस साधारण मेनू (कंप्यूटिंग) के साथ दबाने वाले बटन, प्रकाश उत्सर्जक डायोड (एलईडी), ग्राफिक या कैरेक्टर लिक्विड क्रिस्टल डिस्प्ले (एलसीडी) का उपयोग करते हैं। अधिक परिष्कृत उपकरण जो टच स्क्रीन या स्क्रीन-एज सॉफ्ट कुंजियों के साथ ग्राफिकल स्क्रीन का उपयोग करते हैं, उपयोग किए गए स्थान को कम करते हुए लचीलापन प्रदान करते हैं: बटन का अर्थ स्क्रीन के साथ बदल सकता है, और वांछित चयन की ओर इशारा करने का प्राकृतिक व्यवहार शामिल है।
कुछ प्रणाली सीरियल (जैसे RS-232) या नेटवर्क (जैसे ईथरनेट) कनेक्शन की मदद से दूरस्थ रूप से यूजर इंटरफेस प्रदान करते हैं। यह दृष्टिकोण अंतःस्थापित प्रणाली की क्षमताओं को बढ़ाता है, डिस्प्ले की लागत से बचाता है, बोर्ड समर्थन पैकेज (बीएसपी) को सरल करता है और डिजाइनरों को पीसी पर एक समृद्ध यूजर इंटरफेस बनाने की अनुमति देता है। इसका एक अच्छा उदाहरण अंतःस्थापित डिवाइस (जैसे आईपी कैमरा या राउटर (कंप्यूटिंग)) पर चलने वाले अंतःस्थापित HTTP सर्वर का संयोजन है। यूजर इंटरफेस डिवाइस से जुड़े पीसी पर वेब ब्राउजर में प्रदर्शित होता है।
अंतःस्थापित प्रणाली में प्रोसेसर
सामान्य-उद्देश्य वाले समकक्षों की तुलना में विशिष्ट अंतःस्थापित कंप्यूटरों के गुणों के उदाहरण हैं, कम बिजली की खपत, छोटे आकार, मज़बूत ऑपरेटिंग रेंज और कम प्रति-यूनिट लागत। यह सीमित प्रसंस्करण संसाधनों की कीमत पर आता है।
अंतःस्थापित प्रणाली उपयोग के लिए सामान्य माइक्रोकंट्रोलर्स की सूची विकसित की गई है। सामान्य-उद्देश्य वाले माइक्रोप्रोसेसरों का उपयोग अंतःस्थापित प्रणाली में भी किया जाता है, लेकिन आम तौर पर, माइक्रोकंट्रोलर्स की तुलना में अधिक समर्थन सर्किट्री की आवश्यकता होती है।
तैयार-निर्मित कंप्यूटर बोर्ड
पीसी/104 और पीसी/104+ तैयार-निर्मित कंप्यूटर बोर्डों के मानकों के उदाहरण हैं, जो छोटे, कम मात्रा वाले अंतःस्थापित और मजबूत प्रणाली के लिए अभिप्रेत हैं। ये ज्यादातर x86-आधारित हैं और अक्सर मानक पीसी की तुलना में शारीरिक रूप से छोटे होते हैं, हालांकि अभी भी सबसे सरल (8/16-बिट) अंतःस्थापित प्रणाली की तुलना में काफी बड़े हैं। वे डॉस, लिनक्स, नेटबीएसडी, या अंतःस्थापित रीयल-टाइम ऑपरेटिंग प्रणाली (आरटीओएस) जैसे कि माइक्रोसी/ओएस-II, क्यूएनएक्स या वीएक्सवर्क्स का उपयोग कर सकते हैं।
कुछ अनुप्रयोगों में, जहां छोटे आकार या विद्युत् दक्षता प्राथमिक चिंताएं नहीं हैं, उपयोग किए जाने वाले घटक सामान्य-उद्देश्य वाले x86 व्यक्तिगत कंप्यूटरों में उपयोग किए जाने वाले घटकों के साथ संगत हो सकते हैं। वीआईए ईपीआईए रेंज जैसे बोर्ड पीसी-संगत लेकिन अत्यधिक एकीकृत, शारीरिक रूप से छोटे या अंतःस्थापित इंजीनियरों के लिए उन्हें आकर्षक बनाने वाली अन्य विशेषताओं के द्वारा अंतर को पाटने में मदद करते हैं। इस दृष्टिकोण का लाभ यह है कि सामान्य सॉफ़्टवेयर विकास के लिए उपयोग किए जाने वाले समान सॉफ़्टवेयर डेवलपमेंट टूल के साथ कम लागत वाले कमोडिटी घटकों का उपयोग किया जा सकता है। इस तरह से निर्मित प्रणालियों को अभी भी अंतःस्थापित माना जाता है क्योंकि वे बड़े उपकरणों में एकीकृत होते हैं और एक ही भूमिका को पूरा करते हैं। इस दृष्टिकोण को अपनाने वाले उपकरणों के उदाहरण स्वचालित टेलर मशीन (एटीएम) और आर्केड मशीनें हैं, जिनमें अनुप्रयोग के लिए विशिष्ट कोड होते हैं।
हालांकि, अधिकांश तैयार अंतःस्थापित प्रणाली बोर्ड पीसी-केंद्रित नहीं होते हैं और आईएसए या पीसीआई इंटरकनेक्ट बसों का उपयोग नहीं करते हैं। जब प्रणाली-ऑन-अ-चिप प्रोसेसर शामिल होता है, तो असतत घटकों को जोड़ने वाली प्रमाणीकृत बस होने से बहुत कम लाभ हो सकता है, और दोनों, हार्डवेयर और सॉफ्टवेयर उपकरण के लिए वातावरण बहुत भिन्न हो सकता है।
एक सामान्य डिजाइन शैली एक छोटे प्रणाली मॉड्यूल का उपयोग करती है, लगभग एक व्यवसाय कार्ड केआकार का, उच्च घनत्व बीजीए चिप्स जैसे एआरएम-आधारित प्रणाली-ऑन-ए-चिप प्रोसेसर और पेरिफेरल्स, भंडारण के लिए बाहरी फ्लैश मेमोरी, और रनटाइम मेमोरी के लिए डायनेमिक रैंडम एक्सेस मेमोरी। मॉड्यूल विक्रेता आमतौर पर बूट सॉफ़्टवेयर प्रदान करेगा और ऑपरेटिंग प्रणाली का चयन सुनिश्चित करेगा, आमतौर पर लिनक्स और कुछ रीयल-टाइम विकल्पों सहित। इन मॉड्यूलों को उनके विशेष परीक्षण मुद्दों से परिचित संगठनों द्वारा उच्च मात्रा में निर्मित किया जा सकता है, और अनुप्रयोग-विशिष्ट बाह्य उपकरणों के साथ बहुत कम वॉल्यूम कस्टम मेनबोर्ड के साथ जोड़ा जा सकता है। इस दृष्टिकोण के प्रमुख उदाहरणों में ओर्दुइनो और रास्पबेरी पाई शामिल हैं।
एइसआईसी और ऍफ़पीजीए एसओसी समाधान
प्रणाली-ऑन-ए-चिप (एसओसी) में एक पूरा प्रणाली होता है - जिसमें कई प्रोसेसर, मल्टीप्लायर, कैशै, यहां तक कि विभिन्न प्रकार की मेमोरी और आमतौर पर विभिन्न बाह्य उपकरणों जैसे एक चिप पर वायर्ड या वायरलेस संचार के लिए इंटरफेस होते हैं। अक्सर ग्राफिक्स प्रोसेसिंग यूनिट (जीपीयू) और डीएसपी में ऐसे चिप्स शामिल होते हैं। एसओसी को एक अनुप्रयोग-विशिष्ट एकीकृत सर्किट (एइसआईसी) के रूप में या क्षेत्र में प्रोग्राम की जा सकने वाली द्वार श्रंखला (ऍफ़पीजीए) का उपयोग करके लागू किया जा सकता है जिसे आमतौर पर पुन: कॉन्फ़िगर किया जा सकता है।
मोबाइल फोन और स्मार्टफोन जैसे बहुत अधिक मात्रा वाले अंतःस्थापित प्रणाली के लिए एएसआईसी कार्यान्वयन आम हैं। एएसआईसी या एफपीजीए कार्यान्वयन का उपयोग एवियोनिक्स की तरह सिग्नल प्रोसेसिंग प्रदर्शन, इंटरफेस और विश्वसनीयता के प्रकार में विशेष जरूरतों के साथ इतनी अधिक मात्रा वाले अंतःस्थापित प्रणाली के लिए किया जा सकता है।
बाह्य उपकरण
अंतःस्थापित प्रणाली बाह्य दुनिया के साथ बाह्य उपकरणों के माध्यम से बात करते हैं, जैसे:
- सीरियल संचार इंटरफ़ेस (एससीआई): RS-232, RS-422, RS-485, आदि।
- तुल्यकालिक सीरियल इंटरफ़ेस: I2C, सीरियल पेरिफेरल इंटरफेस बस, एसएससी और ईएसएसआई (उन्नत सिंक्रोनस सीरियल इंटरफ़ेस)
- यूनिवर्सल सीरियल बस (युएसबी)
- मीडिया कार्ड (एसडी कार्ड, कॉम्पैक्ट फ़्लैश, आदि)
- नेटवर्क इंटरफ़ेस नियंत्रक: ईथरनेट, वाईफाई, आदि।
- फील्डबस: कैन बस, स्थानीय इंटरकनेक्ट नेटवर्क | लिन-बस, प्रोफिबस, आदि।
- टाइमर: चरण बंद लूप, प्रोग्राम करने योग्य अंतराल टाइमर
- सामान्य प्रयोजन इनपुट/आउटपुट (जीपीआईओ)
- एनालॉग-टू-डिजिटल और डिज़िटल से एनालॉग कन्वर्टर
- डिबगिंग: जेटीएजी, इन-प्रणाली प्रोग्रामिंग, पृष्ठभूमि डिबग मोड इंटरफ़ेस पोर्ट, बीआईटीपी और DB9 पोर्ट।
साधन
अन्य सॉफ़्टवेयर की तरह, अंतःस्थापित प्रणाली डिज़ाइनर अंतःस्थापित प्रणाली सॉफ़्टवेयर विकसित करने के लिए संकलक्स, असेंबली भाषा और डिबगर्स का उपयोग करते हैं। हालाँकि, वे अधिक विशिष्ट उपकरणों का भी उपयोग कर सकते हैं:
- सर्किट डिबगर्स या एमुलेटर में (#डिबगिंग देखें)।
- एक कार्यक्रम में चेकसम या चक्रीय अतिरेक जाँच जोड़ने के लिए उपयोगिताएँ, ताकि अंतःस्थापित प्रणाली जाँच सके कि कार्यक्रम वैध है या नहीं।
- अंकीय संकेत प्रक्रिया का उपयोग करने वाले प्रणाली के लिए, डेवलपर्स गणित का अनुकरण करने के लिए एक कम्प्यूटेशनल नोटबुक का उपयोग कर सकते हैं।
- प्रणाली-स्तरीय मॉडलिंग और सिमुलेशन उपकरण डिजाइनरों को प्रोसेसर, यादें, प्रत्यक्ष मेमोरी एक्सेस, इंटरफ़ेस (कंप्यूटिंग) एस, बसों और सॉफ़्टवेयर व्यवहार प्रवाह जैसे हार्डवेयर घटकों के साथ प्रणाली के सिमुलेशन मॉडल बनाने में मदद करते हैं, पुस्तकालय ब्लॉक का उपयोग करके स्थिति-आरेख या प्रवाह आरेख के रूप में कॉन्फ़िगर करने योग्य होते हैं। क्षमता बनाम प्रदर्शन के संतुलन के साथ, विश्वसनीयता विश्लेषण और अड़चन विश्लेषण करके सही घटकों का चयन करने के लिए सिमुलेशन आयोजित किया जाता है। विशिष्ट रिपोर्ट जो डिज़ाइनर को आर्किटेक्चर निर्णय लेने में मदद करती हैं, उनमें अनुप्रयोग विलंबता, डिवाइस थ्रूपुट, डिवाइस उपयोग, पूर्ण प्रणाली की बिजली खपत के साथ-साथ डिवाइस-स्तरीय बिजली खपत शामिल है।
- एक मॉडल-आधारित विकास उपकरण डिजिटल फिल्टर, मोटर नियंत्रक, संचार प्रोटोकॉल डिकोडिंग और बहु-दर कार्यों जैसे घटकों के ग्राफिकल डेटा प्रवाह और यूएमएल स्थिति चार्ट आरेख बनाता है और उनका अनुकरण करता है।
- विशेष हार्डवेयर को अनुकूलित करने के लिए कस्टम कंपाइलर और लिंकर्स का उपयोग किया जा सकता है।
- अंतःस्थापित प्रणाली की अपनी विशेष भाषा या डिज़ाइन टूल हो सकता है, या फोर्थ या बेसिक जैसी मौजूदा भाषा में वृद्धि जोड़ सकता है।
- एक अन्य विकल्प आरटीओएस या अंतःस्थापित ऑपरेटिंग प्रणाली को जोड़ना है
- मॉडलिंग और कोड जनरेटिंग यूएमएल उपकरण अक्सर यूएमएल राज्य मशीन पर आधारित होता है
सॉफ़्टवेयर टूल कई स्रोतों से आ सकते हैं:
- सॉफ्टवेयर कंपनियां जो अंतःस्थापित मार्केट में विशेषज्ञ हैं
- जीएनयू सॉफ्टवेयर डेवलपमेंट टूल्स से पोर्ट किया गया
- कभी-कभी, व्यक्तिगत कंप्यूटर के लिए विकास उपकरण का उपयोग किया जा सकता है यदि अंतःस्थापित प्रोसेसर एक सामान्य पीसी प्रोसेसर के निकट संबंधी है
जैसे-जैसे अंतःस्थापित प्रणाली की जटिलता बढ़ती है, उच्च-स्तरीय उपकरण और ऑपरेटिंग प्रणाली मशीनरी में माइग्रेट हो रहे हैं जहां यह उचित लगता है। उदाहरण के लिए, सेल फोन, व्यक्तिगत डिजिटल सहायक और अन्य उपभोक्ता कंप्यूटरों को अक्सर महत्वपूर्ण सॉफ़्टवेयर की आवश्यकता होती है जिसे इलेक्ट्रॉनिक्स के निर्माता के अलावा किसी अन्य व्यक्ति द्वारा खरीदा या प्रदान किया जाता है। इन प्रणालियों में, लिनक्स, नेटबीएसडी, ओएसजीआई या एंबेडेड जावा जैसे खुले प्रोग्रामिंग वातावरण की आवश्यकता होती है ताकि तीसरे पक्ष के सॉफ्टवेयर प्रदाता बड़े बाजार में बेच सकें।
डिबगिंग
अंतःस्थापित डिबगिंग उपलब्ध सुविधाओं के आधार पर विभिन्न स्तरों पर किया जा सकता है। विचारों में शामिल हैं: क्या यह मुख्य अनुप्रयोग को धीमा करता है, डिबग प्रणाली या अनुप्रयोग वास्तविक प्रणाली या अनुप्रयोग के कितने करीब है, डिबगिंग के लिए सेट किए जा सकने वाले ट्रिगर कितने अभिव्यंजक हैं (उदाहरण के लिए, किसी विशेष कार्यक्रम गणक वैल्यू के निश्चित सीमा पर पहुंचने पर मेमोरी का निरीक्षण करना), और डिबगिंग प्रक्रिया में क्या निरीक्षण किया जा सकता है (जैसे, केवल मेमोरी, या मेमोरी और रजिस्टर, आदि)।
सबसे सरल परिष्कृत डिबगिंग तकनीकों और प्रणालियों को मोटे तौर पर निम्नलिखित क्षेत्रों में समूहीकृत किया जाना चाहिए:
- अंतःस्थापित ऑपरेटिंग प्रणाली (जैसे फोर्थ और बेसिक) द्वारा प्रदान किए गए सरल शेल का उपयोग करके इंटरएक्टिव रेजिडेंट डिबगिंग
- केवल-सॉफ़्टवेयर डिबगर्स के पास यह लाभ है कि उन्हें किसी हार्डवेयर संशोधन की आवश्यकता नहीं होती है, लेकिन समय और संग्रहण स्थान को बचाने के लिए उन्हें सावधानीपूर्वक नियंत्रित करना पड़ता है कि वे क्या रिकॉर्ड करते हैं।[10]
- बाहरी डिबगिंग लॉगिंग या सीरियल पोर्ट आउटपुट का उपयोग करके या तो फ्लैश में मॉनिटर का उपयोग करके या रेमेडी डीबगर जैसे डिबग सर्वर का उपयोग करके ऑपरेशन का पता लगाने के लिए जो विषम मल्टी-कोर प्रोसेसर प्रणाली के लिए भी काम करता है।
- इन-सर्किट डिबगर (आईसीडी), एक हार्डवेयर डिवाइस जो जेटीऐजी या नेक्सस इंटरफ़ेस के माध्यम से माइक्रोप्रोसेसर से जुड़ता है।[11] यह माइक्रोप्रोसेसर के संचालन को बाहरी रूप से नियंत्रित करने की अनुमति देता है, लेकिन आमतौर पर प्रोसेसर में विशिष्ट डिबगिंग क्षमताओं तक ही सीमित है।
- इन-सर्किट एमुलेटर (आईसीई) माइक्रोप्रोसेसर को सिम्युलेटेड समकक्ष के साथ बदल देता है, माइक्रोप्रोसेसर के सभी पहलुओं पर पूर्ण नियंत्रण प्रदान करता है।
- पूर्ण एमुलेटर हार्डवेयर के सभी पहलुओं का अनुकरण प्रदान करता है, जिससे सभी को नियंत्रित और संशोधित किया जा सकता है, और एक सामान्य पीसी पर डिबगिंग की अनुमति मिलती है। डाउनसाइड खर्च और धीमा संचालन है, कुछ मामलों में अंतिम प्रणाली की तुलना में 100 गुना धीमा है।
- एसओसी डिजाइनों के लिए, विशिष्ट दृष्टिकोण एफपीजीए प्रोटोटाइप बोर्ड पर डिजाइन को सत्यापित और डिबग करना है। करतूस जैसे उपकरण[12] एफपीजीए कार्यान्वयन में जांच डालने के लिए उपयोग किया जाता है जो अवलोकन के लिए संकेत उपलब्ध कराता है। इसका उपयोग तर्क विश्लेषक के समान क्षमताओं के साथ कार्यान्वयन में कई एफपीजीए में हार्डवेयर, फ़र्मवेयर और सॉफ़्टवेयर इंटरैक्शन को डिबग करने के लिए किया जाता है।
जब तक बाहरी डिबगिंग तक सीमित न हो, प्रोग्रामर आमतौर पर टूल के माध्यम से सॉफ़्टवेयर को लोड और चला सकता है, प्रोसेसर में चल रहे कोड को देख सकता है, और इसके ऑपरेशन को शुरू या बंद कर सकता है। कोड की पहुंच उच्च स्तरीय प्रोग्रामिंग भाषा, विधानसभा कोड या दोनों का मिश्रण हो सकता है।
अनुरेखण
रीयल-टाइम ऑपरेटिंग प्रणाली अक्सर ऑपरेटिंग प्रणाली ईवेंट के अनुरेखण का समर्थन करते हैं। प्रणाली व्यवहार की रिकॉर्डिंग के आधार पर, होस्ट पीसी टूल द्वारा ग्राफिकल दृश्य प्रस्तुत किया जाता है। सॉफ्टवेयर में ट्रेस रिकॉर्डिंग, आरटीओएस द्वारा या विशेष ट्रेसिंग हार्डवेयर द्वारा की जा सकती है। आरटीओएस अनुरेखण डेवलपर्स को सॉफ़्टवेयर प्रणाली के समय और प्रदर्शन के मुद्दों को समझने की अनुमति देता है और उच्च-स्तरीय प्रणाली व्यवहारों की अच्छी समझ देता है। अंतःस्थापित प्रणाली में ट्रेस रिकॉर्डिंग, हार्डवेयर या सॉफ्टवेयर समाधानों का उपयोग करके प्राप्त की जा सकती है। सॉफ़्टवेयर-आधारित ट्रेस रिकॉर्डिंग के लिए विशेष डिबगिंग हार्डवेयर की आवश्यकता नहीं होती है और इसका उपयोग तैनात उपकरणों में निशान रिकॉर्ड करने के लिए किया जा सकता है, लेकिन इसका सीपीयू और रैम उपयोग पर प्रभाव पड़ सकता है।[13]आरटीओएस वातावरण में उपयोग किए जाने वाले सॉफ़्टवेयर-आधारित अनुरेखण पद्धति का एक उदाहरण खाली मैक्रो का उपयोग है, जिसे ऑपरेटिंग प्रणाली द्वारा कोड में रणनीतिक स्थानों पर लागू किया जाता है, और हुकिंग के रूप में कार्य करने के लिए लागू किया जा सकता है।
विश्वसनीयता
अंतःस्थापित प्रणाली अक्सर उन मशीनों में रहते हैं जिनके बिना त्रुटि के वर्षों तक लगातार चलने की उम्मीद होती है, और कुछ मामलों में त्रुटि होने पर खुद को ठीक कर लेते हैं। इसलिए, सॉफ्टवेयर आमतौर पर व्यक्तिगत कंप्यूटरों की तुलना में अधिक सावधानी से विकसित और परीक्षण किया जाता है, और डिस्क ड्राइव, स्विच या बटन जैसे अविश्वसनीय चर यांत्रिक भागों से बचा जाता है।
विशिष्ट विश्वसनीयता मुद्दों में शामिल हो सकते हैं:
- प्रणाली को मरम्मत के लिए सुरक्षित रूप से बंद नहीं किया जा सकता है, या यह मरम्मत के लिए बहुत दुर्गम है। उदाहरणों में स्पेस प्रणाली, अंडरसी केबल, नेविगेशनल बीकन, बोर-होल प्रणाली और ऑटोमोबाइल शामिल हैं।
- सुरक्षा कारणों से प्रणाली को चालू रखना चाहिए। विफलता की स्थिति में कम कार्यक्षमता असहनीय हो सकती है। अक्सर बैकअप, ऑपरेटर द्वारा चुने जाते हैं। उदाहरणों में विमान नेविगेशन, रिएक्टर नियंत्रण प्रणाली, सुरक्षा-महत्वपूर्ण रासायनिक फैक्ट्री नियंत्रण, ट्रेन सिग्नल शामिल हैं।
- बंद होने पर प्रणाली बड़ी मात्रा में धन खो देगा: टेलीफोन स्विच, फैक्ट्री नियंत्रण, पुल और लिफ्ट नियंत्रण, धन हस्तांतरण और बाजार निर्माण, स्वचालित बिक्री और सेवा।
त्रुटियों से पुनर्स्थापित करने के लिए कई प्रकार की तकनीकों का उपयोग किया जाता है, कभी-कभी संयोजन में, दोनों सॉफ़्टवेयर बग जैसे मेमोरी लीक्स और हार्डवेयर में सॉफ्ट त्रुटियाँ:
- वॉचडॉग टाइमर जो प्रणाली को रीसेट और पुनरारंभ करता है जब तक कि सॉफ़्टवेयर समय-समय पर वॉचडॉग सबप्रणाली को सूचित न करे
- विश्वसनीय कंप्यूटिंग बेस (टीसीबी) आर्किटेक्चर के साथ डिजाइनिंग एक अत्यधिक सुरक्षित और विश्वसनीय प्रणाली वातावरण सुनिश्चित करता है[14]
- अंतःस्थापित प्रणाली के लिए डिज़ाइन किया गया हाइपरविजर किसी भी सबप्रणाली घटक के लिए सुरक्षित इनकैप्सुलेशन प्रदान करने में सक्षम होता है ताकि जोखिम भरा सॉफ़्टवेयर घटक अन्य सबप्रणाली, या विशेषाधिकार-स्तर के प्रणाली सॉफ़्टवेयर में हस्तक्षेप न कर सके।[15] यह एनकैप्सुलेशन दोषों को एक सबप्रणाली से दूसरे सबप्रणाली में फैलने से रोकता है, जिससे विश्वसनीयता में सुधार होता है। यह सबप्रणाली को स्वचालित रूप से बंद करने और गलती का पता लगाने पर पुनः आरंभ करने की अनुमति भी दे सकता है।
- प्रतिरक्षा-जागरूक प्रोग्रामिंग इंजीनियरों को अधिक विश्वसनीय अंतःस्थापित प्रणाली कोड बनाने में मदद कर सकती है।[16][17] एम्आईएसआरए C/C++ जैसे दिशानिर्देश और कोडिंग नियम डेवलपर्स को कई अलग-अलग तरीकों से विश्वसनीय, पोर्टेबल फ़र्मवेयर बनाने में सहायता करना है: आमतौर पर कोडिंग प्रथाओं के खिलाफ सलाह देना या अनिवार्य करना जो रन-टाइम त्रुटियों (मेमोरी लीक, अमान्य सूचक उपयोग) को जन्म दे सकता है, रन-टाइम चेक और अपवाद हैंडलिंग का उपयोग (श्रेणी/स्वच्छता जांच, विभाजित-दर-शून्य और बफर इंडेक्स वैधता जांच, तर्क जांच में डिफ़ॉल्ट मामले), लूप बाउंडिंग, मानव-पठनीय, अच्छी तरह से टिप्पणी और अच्छी तरह से उत्पादन संरचित कोड, और भाषा की अस्पष्टता से बचना जो संकलक-प्रेरित विसंगतियों या साइड-इफेक्ट्स (अभिव्यक्ति मूल्यांकन आदेश, पुनरावृत्ति, कुछ प्रकार के मैक्रो) को जन्म दे सकती है। इन नियमों को अक्सर कार्यात्मक सत्यापन उद्देश्यों के लिए कोड स्टेटिक प्रोग्राम विश्लेषण या बाध्य मॉडल जांच के संयोजन के साथ प्रयोग किया जा सकता है, और कोड वर्स्ट-केस निष्पादन समय के निर्धारण में भी सहायता करता है।[16]
उच्च बनाम कम मात्रा
मोबाइल फोन जैसे उच्च-मात्रा वाले प्रणाली के लिए, न्यूनतम लागत आमतौर पर प्राथमिक डिजाइन विचार है। इंजीनियर आमतौर पर ऐसे हार्डवेयर का चयन करते हैं जो आवश्यक कार्यों को लागू करने के लिए काफी अच्छा हो।
कम मात्रा या प्रोटोटाइप अंतःस्थापित प्रणाली के लिए, सामान्य-उद्देश्य वाले कंप्यूटर प्रोग्राम को सीमित करके या ऑपरेटिंग प्रणाली को आरटीओएस के साथ बदलकर अनुकूलित किया जा सकता है।
अंतःस्थापित सॉफ्टवेयर संरचना
1978 में नेशनल इलेक्ट्रिकल मैन्युफैक्चरर्स एसोसिएशन ने ICS 3-1978 जारी किया, जो प्रोग्रामेबल माइक्रोकंट्रोलर्स के लिए एक मानक है,[18] लगभग किसी भी कंप्यूटर-आधारित नियंत्रकों सहित, जैसे एकल बोर्ड कंप्यूटर, संख्यात्मक और घटना-आधारित नियंत्रक।
आज आम उपयोग में कई अलग-अलग प्रकार के सॉफ़्टवेयर संरचना हैं।
सरल नियंत्रण पाश
इस योजना में, सॉफ़्टवेयर में केवल एक पाश (कंप्यूटिंग) होता है जो इनपुट उपकरणों पर नज़र रखता है। पाश सबरूटीन्स को कॉल करता है, जिनमें से प्रत्येक हार्डवेयर या सॉफ़्टवेयर के एक भाग का प्रबंधन करता है। इसलिए इसे सिंपल कंट्रोल लूप या प्रोग्राम्ड इनपुट-आउटपुट कहा जाता है।
व्यवधान-नियंत्रित प्रणाली
कुछ अंतःस्थापित प्रणाली मुख्य रूप से हस्तक्षेप द्वारा नियंत्रित होते हैं। इसका मतलब यह है कि प्रणाली द्वारा किए जाने वाले कार्य विभिन्न प्रकार की घटनाओं से शुरू होते हैं; एक व्यवधान उत्पन्न किया जा सकता है, उदाहरण के लिए, एक पूर्वनिर्धारित अंतराल पर टाइमर द्वारा, या डेटा प्राप्त करने वाले सीरियल पोर्ट नियंत्रक द्वारा।
इस संरचना का उपयोग तब किया जाता है जब इवेंट हैंडलर को कम विलंबता की आवश्यकता होती है, और इवेंट हैंडलर छोटे और सरल होते हैं। ये प्रणालियाँ मुख्य लूप में भी एक सरल कार्य चलाती हैं, लेकिन यह कार्य अप्रत्याशित देरी के प्रति बहुत संवेदनशील नहीं है। कभी-कभी इंटरप्ट हैंडलर कतार संरचना में लंबे कार्य जोड़ देगा। बाद में, इंटरप्ट हैंडलर समाप्त होने के बाद, इन कार्यों को मुख्य लूप द्वारा निष्पादित किया जाता है। यह विधि प्रणाली को असतत प्रक्रियाओं के साथ मल्टीटास्किंग कर्नेल के करीब लाती है।
सहकारी मल्टीटास्किंग
सहकारी मल्टीटास्किंग सरल नियंत्रण लूप योजना के समान है, सिवाय इसके कि लूप एक अप्लिकेशन प्रोग्रामिंग अंतरफलक (एपीआई) में छिपा हुआ है।[3][1]प्रोग्रामर कार्यों की एक श्रृंखला को परिभाषित करता है, और प्रत्येक कार्य को प्रचालित करने के लिए अपना स्वयं का वातावरण मिलता है। जब कोई कार्य निष्क्रिय होता है, तो यह निष्क्रिय दिनचर्या अपनाती है जो नियंत्रित को किसी अन्य कार्य को हस्तांतरित करती है।
इसके फायदे और नुकसान नियंत्रण पाश के समान हैं, सिवाय इसके कि नया सॉफ़्टवेयर जोड़ना आसान है, केवल एक नया कार्य लिखकर या कतार में जोड़कर।
प्रीमेप्टिव मल्टीटास्किंग या मल्टी-थ्रेडिंग
इस प्रकार की प्रणाली में, टाइमर के आधार पर कार्यों या थ्रेड्स के बीच कोड का एक निम्न-स्तरीय टुकड़ा स्विच होता है (एक रुकावट से जुड़ा हुआ)। यह वह स्तर है जिस पर प्रणाली को आम तौर पर एक ऑपरेटिंग प्रणाली कर्नेल माना जाता है। कितनी कार्यक्षमता की आवश्यकता है, इस पर निर्भर करते हुए, यह वैचारिक रूप से समानांतर में चल रहे कई कार्यों के प्रबंधन की कमोबेश जटिलताओं का परिचय देता है।
चूंकि कोई भी कोड संभावित रूप से किसी अन्य कार्य के डेटा को नुकसान पहुंचा सकता है (मेमोरी प्रबंधन इकाई का उपयोग करने वाले बड़े प्रणाली को छोड़कर) प्रोग्राम को सावधानी से डिज़ाइन और परीक्षण किया जाना चाहिए, और साझा डेटा तक पहुंच को कुछ सिंक्रनाइज़ेशन रणनीति द्वारा नियंत्रित किया जाना चाहिए, जैसे संदेश कतार, सेमाफोर ( प्रोग्रामिंग) या एक गैर-अवरुद्ध तुल्यकालन योजना।
इन जटिलताओं के कारण, संगठनों के लिए आरटीओएस का उपयोग करना आम बात है, जिससे अनुप्रयोग प्रोग्रामर कम से कम बड़ी प्रणालियों के लिए ऑपरेटिंग प्रणाली सेवाओं के बजाय डिवाइस की कार्यक्षमता पर ध्यान केंद्रित कर सकें; स्मृति आकार, प्रदर्शन, या बैटरी जीवन के संबंध में सीमाओं के कारण छोटी प्रणालियाँ अक्सर एक सामान्य वास्तविक समय प्रणाली से जुड़े ओवरहेड को वहन नहीं कर सकती हैं। आरटीओएस के लिए आवश्यक विकल्प अपने स्वयं के मुद्दों को लाता है, हालांकि, आवेदन विकास प्रक्रिया शुरू करने से पहले चयन किया जाना चाहिए। यह समय डेवलपर्स को वर्तमान आवश्यकताओं के आधार पर अपने डिवाइस के लिए अंतःस्थापित ऑपरेटिंग प्रणाली चुनने के लिए मजबूर करता है और इसलिए भविष्य के विकल्पों को काफी हद तक प्रतिबंधित करता है।[19] जैसे-जैसे उत्पाद का जीवन घटता है भविष्य के विकल्पों पर प्रतिबंध एक समस्या बन जाता है। इसके अतिरिक्त, जटिलता का स्तर लगातार बढ़ रहा है क्योंकि सीरियल, यूएसबी, टीसीपी/आईपी, ब्लूटूथ, वायरलेस लैन, ट्रंक रेडियो, मल्टीपल चैनल, डेटा और वॉयस, उन्नत ग्राफिक्स, मल्टीपल स्टेट्स, मल्टीपल थ्रेड्स जैसे वेरिएबल्स को प्रबंधित करने के लिए उपकरणों की आवश्यकता होती है। कई प्रतीक्षा अवस्थाएँ और इसी तरह। ये रुझान आरटीओएस के अलावा अंतःस्थापित मिडलवेयर के उत्थान की ओर अग्रसर हैं।
microkernel और एक्सोकर्नेल
एक माइक्रोकर्नेल रीयल-टाइम ओएस से एक तार्किक कदम है। सामान्य व्यवस्था यह है कि ऑपरेटिंग प्रणाली कर्नेल मेमोरी आवंटित करता है और सीपीयू को निष्पादन के विभिन्न थ्रेड्स पर स्विच करता है। उपयोगकर्ता-मोड प्रक्रियाएं प्रमुख कार्यों जैसे फाइल प्रणाली, नेटवर्क इंटरफेस आदि को लागू करती हैं।
सामान्य तौर पर, माइक्रोकर्नेल तब सफल होते हैं जब टास्क स्विचिंग और इंटरटास्क कम्युनिकेशन तेज होता है और जब वे धीमे होते हैं तो विफल हो जाते हैं।
एक्सोकर्नल्स सामान्य सबरूटीन कॉल्स द्वारा कुशलता से संवाद करते हैं। प्रणाली में हार्डवेयर और सभी सॉफ्टवेयर अनुप्रयोग प्रोग्रामर के लिए उपलब्ध और एक्स्टेंसिबल हैं।
अखंड गुठली
इस मामले में, परिष्कृत क्षमताओं वाला एक अपेक्षाकृत बड़ा कर्नेल अंतःस्थापित वातावरण के अनुरूप अनुकूलित किया जाता है। यह प्रोग्रामर्स को लिनक्स या माइक्रोसॉफ़्ट विंडोज़ जैसे डेस्कटॉप ऑपरेटिंग प्रणाली के समान वातावरण देता है, और इसलिए विकास के लिए बहुत उत्पादक है; नकारात्मक पक्ष में, इसके लिए काफी अधिक हार्डवेयर संसाधनों की आवश्यकता होती है, जो अक्सर अधिक महंगा होता है, और, इन गुठली की जटिलता के कारण, कम अनुमानित और विश्वसनीय हो सकता है।
अंतःस्थापित मोनोलिथिक कर्नेल के सामान्य उदाहरण अंतःस्थापित लिनक्स, वीएक्सवर्क्स और विंडोज सीई हैं।
हार्डवेयर में बढ़ी हुई लागत के बावजूद, इस प्रकार की अंतःस्थापित प्रणाली लोकप्रियता में बढ़ रही है, विशेष रूप से अधिक शक्तिशाली अंतःस्थापित उपकरणों जैसे कि वायरलेस राउटर और ऑटोमोटिव नेविगेशन प्रणाली पर। यहाँ कुछ कारण दिए गए हैं:
- सामान्य अंतःस्थापित चिप सेट के पोर्ट उपलब्ध हैं।
- वे डिवाइस ड्राइवरों, वेब सर्वर, फ़ायरवॉल (नेटवर्किंग) और अन्य कोड के लिए सार्वजनिक रूप से उपलब्ध कोड के पुन: उपयोग की अनुमति देते हैं।
- विकास प्रणालियाँ व्यापक फीचर-सेट के साथ शुरू हो सकती हैं, और फिर वितरण को अनावश्यक कार्यक्षमता को बाहर करने के लिए कॉन्फ़िगर किया जा सकता है, और उस मेमोरी के खर्च को बचा सकता है जिसका वह उपभोग करेगा।
- कई इंजीनियरों का मानना है कि अनुप्रयोग कोड को उपयोगकर्ता मोड में चलाना अधिक विश्वसनीय और डिबग करना आसान है, इस प्रकार विकास प्रक्रिया को आसान बनाता है और कोड को अधिक पोर्टेबल बनाता है।[citation needed]
- गारंटी से अधिक तेज प्रतिक्रिया की आवश्यकता वाली सुविधाओं को अक्सर प्रोग्रामेबल लॉजिक डिवाइस में रखा जा सकता है।
अतिरिक्त सॉफ्टवेयर घटक
कोर ऑपरेटिंग प्रणाली के अतिरिक्त, कई अंतःस्थापित प्रणाली में अतिरिक्त ऊपरी-परत सॉफ़्टवेयर घटक होते हैं। इन घटकों में कंट्रोलर-एरिया नेटवर्क, टीसीपी/आईपी, एफ़टीपी, एचटीटीपी, और HTTPS के जैसे नेटवर्किंग प्रोटोकॉल स्टैक शामिल हैं, और इसमें फ़ाइल आवंटन तालिका और फ्लैश मेमोरी मैनेजमेंट प्रणाली जैसी स्टोरेज क्षमताएं भी शामिल हैं। यदि अंतःस्थापित डिवाइस में ऑडियो और वीडियो क्षमताएं हैं, तो उपयुक्त ड्राइवर और कोडेक प्रणाली में मौजूद होंगे। अखंड गुठली के मामले में, इनमें से कई सॉफ्टवेयर परतें शामिल हैं। आरटीओएस श्रेणी में, अतिरिक्त सॉफ्टवेयर घटकों की उपलब्धता व्यावसायिक पेशकश पर निर्भर करती है।
डोमेन-विशिष्ट आर्किटेक्चर
ऑटोमोटिव क्षेत्र में, AUTOSAR अंतःस्थापित सॉफ़्टवेयर के लिए एक मानक संरचना है।
यह भी देखें
टिप्पणियाँ
संदर्भ
- ↑ 1.0 1.1 Michael Barr. "एंबेडेड सिस्टम शब्दावली". Neutrino Technical Library. Retrieved 2007-04-21.
- ↑ Heath, Steve (2003). एंबेडेड सिस्टम डिजाइन. EDN series for design engineers (2 ed.). Newnes. p. 2. ISBN 978-0-7506-5546-0.
एक एम्बेडेड सिस्टम एक माइक्रोप्रोसेसर आधारित सिस्टम है जो किसी फ़ंक्शन या फ़ंक्शन की श्रेणी को नियंत्रित करने के लिए बनाया गया है।
- ↑ 3.0 3.1 Michael Barr; Anthony J. Massa (2006). "Introduction". प्रोग्रामिंग एम्बेडेड सिस्टम: सी और जीएनयू विकास उपकरण के साथ. O'Reilly. pp. 1–2. ISBN 978-0-596-00983-0.
- ↑ Barr, Michael (1 August 2009). "सी में वास्तविक पुरुष कार्यक्रम". Embedded Systems Design. TechInsights (United Business Media). p. 2. Retrieved 2009-12-23.
- ↑ Shirriff, Ken (30 August 2016). "पहले माइक्रोप्रोसेसरों की आश्चर्यजनक कहानी". IEEE Spectrum. Institute of Electrical and Electronics Engineers. 53 (9): 48–54. doi:10.1109/MSPEC.2016.7551353. S2CID 32003640. Retrieved 13 October 2019.
- ↑ "1971: माइक्रोप्रोसेसर एक सिंगल चिप पर सीपीयू फंक्शन को एकीकृत करता है". The Silicon Engine. Computer History Museum. Retrieved 22 July 2019.
- ↑ "इलेक्ट्रॉनिक फ्रंटियर फाउंडेशन". इलेक्ट्रॉनिक फ्रंटियर फाउंडेशन.
- ↑ Embedded Systems Dell OEM Solutions | Dell. Content.dell.com (2011-01-04). Retrieved on 2013-02-06.
- ↑ David Carey (2008-04-22). "हुड के नीचे: रोबोट गिटार ऑटोट्यूनिंग एम्बेड करता है". Embedded Systems Design. Archived from the original on 2008-07-08.
- ↑ Tancreti, Matthew; Sundaram, Vinaitheerthan; Bagchi, Saurabh; Eugster, Patrick (2015). "TARDIS: वायरलेस सेंसर नेटवर्क में सॉफ्टवेयर-ओनली सिस्टम-लेवल रिकॉर्ड और रीप्ले". Proceedings of the 14th International Conference on Information Processing in Sensor Networks. IPSN '15. New York, NY, USA: ACM: 286–297. doi:10.1145/2737095.2737096. ISBN 9781450334754. S2CID 10120929.
- ↑ Tancreti, Matthew; Hossain, Mohammad Sajjad; Bagchi, Saurabh; Raghunathan, Vijay (2011). "अवक्षा: वायरलेस एंबेडेड सिस्टम के गैर-घुसपैठ ट्रेसिंग और प्रोफाइलिंग के लिए एक हार्डवेयर-सॉफ्टवेयर दृष्टिकोण". Proceedings of the 9th ACM Conference on Embedded Networked Sensor Systems. SenSys '11. New York, NY, USA: ACM: 288–301. doi:10.1145/2070942.2070972. ISBN 9781450307185. S2CID 14769602.
- ↑ "टेक्ट्रोनिक्स प्रोटोटाइपिंग को हिलाता है, एंबेडेड इंस्ट्रूमेंटेशन बोर्ड को एम्यूलेटर स्थिति में बढ़ाता है". Electronic Engineering Journal. 2012-10-30. Retrieved 2012-10-30.
- ↑ Kraft, Johan; Wall, Anders; Kienle, Holger (2010), Barringer, Howard; Falcone, Ylies; Finkbeiner, Bernd; Havelund, Klaus (eds.), "Trace Recording for Embedded Systems: Lessons Learned from Five Industrial Projects", Runtime Verification (in English), Berlin, Heidelberg: Springer Berlin Heidelberg, vol. 6418, pp. 315–329, doi:10.1007/978-3-642-16612-9_24, ISBN 978-3-642-16611-2, retrieved 2022-08-16
- ↑ Heiser, Gernot (December 2007). "आपका सिस्टम सुरक्षित है? इसे साबित करो!" (PDF). ;login:. 2 (6): 35–8. Archived (PDF) from the original on 2014-11-29.
- ↑ Moratelli, C; Johann, S; Neves, M; Hessel, F (2016). "सुरक्षित आईओटी अनुप्रयोगों के डिजाइन के लिए एंबेडेड वर्चुअलाइजेशन". 2016 International Symposium on Rapid System Prototyping (RSP): 2–6. doi:10.1145/2990299.2990301. ISBN 9781450345354. S2CID 17466572. Retrieved 2 February 2018.
- ↑ 16.0 16.1 Short, Michael (March 2008). "भरोसेमंद रीयल-टाइम एम्बेडेड सिस्टम के लिए विकास दिशानिर्देश". 2008 IEEE/ACS International Conference on Computer Systems and Applications: 1032–1039. doi:10.1109/AICCSA.2008.4493674. ISBN 978-1-4244-1967-8. S2CID 14163138.
- ↑ Motor Industry Software Reliability Association. "मिश्रा सी: 2012 तीसरा संस्करण, पहला संशोधन" (in British English). Retrieved 2022-02-03.
- ↑ "अक्सर पूछे जाने वाले प्रश्न: प्रोग्राम करने योग्य नियंत्रक" (PDF). Retrieved 2020-01-10.
- ↑ "Working across Multiple Embedded Platforms" (PDF). clarinox. Archived (PDF) from the original on 2011-02-19. Retrieved 2010-08-17.
आगे की पढाई
- John Catsoulis (May 2005). Designing Embedded Hardware, 2nd Edition. O'Reilly. ISBN 0-596-00755-8.
- James M. Conrad; Alexander G. Dean (September 2011). Embedded Systems, An Introduction Using the Renesas RX62N Microcontroller. Micrium. ISBN 978-1935-7729-96.
- Klaus Elk (August 2016). Embedded Software Development for the Internet Of Things, The Basics, The Technologies and Best Practices. ISBN 978-1534602533.
इस पेज में लापता आंतरिक लिंक की सूची
- पैमाने की अर्थव्यवस्थाएं
- हवाई जहाज
- कारखाना
- डिजिटल घड़ी
- फील्ड इफ़ेक्ट ट्रांजिस्टर
- बस से
- इंटेल 4004
- मिनटमैन (मिसाइल)
- एमआईटी इंस्ट्रूमेंटेशन प्रयोगशाला
- चुम्बकीय अनुनाद इमेजिंग
- निगरानी (दवा)
- मोटर वाहन उद्योग
- घर स्वचालन
- चिकित्सकीय संसाधन
- चार पहियों का गमन
- सुरक्षा-महत्वपूर्ण प्रणाली
- मुलायम कुंजी
- आईपी कैमरा
- पेरिफ़ेरल कंपोनेंट इंटरकनेक्ट
- विशिष्ट एकीकृत परिपथ आवेदन
- एक चिप पर प्रणाली
- समुच्चय भाषा
- चक्रीय अतिरेक की जाँच
- व्यक्तिगत अंकीय सहायक
- नेक्सस (मानक)
- एम्यूलेटर
- अनुरेखण (सॉफ्टवेयर)
- कोमल त्रुटि
- मॉडल की जाँच
- स्थैतिक कार्यक्रम विश्लेषण
- संदेश पूंछ
- सेमाफोर (प्रोग्रामिंग)
- फाइल आवन्टन तालिका
बाहरी संबंध
- Embedded Systems course with mbed YouTube, ongoing from 2015
- Trends in Cyber Security and Embedded Systems Dan Geer, November 2013
- Modern Embedded Systems Programming Video Course YouTube, ongoing from 2013
- Embedded Systems Week (ESWEEK) yearly event with conferences, workshops and tutorials covering all aspects of embedded systems and software
- Workshop on Embedded and Cyber-Physical Systems Education Archived 2018-02-11 at the Wayback Machine, workshop covering educational aspects of embedded systems