अन्तःस्थापित तंत्र

(सन्निहित संगणक से अनुप्रेषित)

अन्तःस्थापित तंत्र या इम्बेडेड सिस्टम एक कम्प्यूटर सिस्टम है, जिसे अक्सर रीयल-टाइम कम्प्यूटिंग की बाध्यताओं के साथ एक या कुछ समर्पित कार्यों[1][2] को करने के लिए बनाया जाता है। यह पूरे उपकरण के एक भाग में एम्बेडेड (अंत:स्थापित) होता है, जिसमें अक्सर हार्डवेयर तथा यांत्रिक भाग शामिल होते हैं। इसके विपरीत, सामान्य उद्देश्य वाले किसी कम्प्यूटर, जैसे पर्सनल कम्प्यूटर, की रचना लचीला होने और अंतिम-प्रयोक्ता की आवश्यकताओं की एक वृहद श्रेणी की पूर्ति करने के लिए की जाती है। एम्बेडेड सिस्टम वर्तमान में प्रयोग किये जाने वाले अनेक उपकरणों को नियंत्रित करते हैं।[3]

ADSL मॉडेम/रूटर के आतंरिक भागों का चित्र.अंतःस्थापित प्रणाली का एक आधुनिक उदाहरण ; नामांकित अवयवों में प्रमुख ये हैं- माइक्रोप्रोसेसर (4), रैम (6) और फ्लैश मेमोरी (7)

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

चूंकि एम्बेडेड सिस्टम विशिष्ट कार्यों के प्रति समर्पित होता है, अतः डिजाइन इंजीनियर्स, उत्पाद के आकार व लागत को घटाकर तथा विश्वसनीयता एवं प्रदर्शन को बढ़ाकर इसे अधिक उपयोगी बना सकते हैं। पैमाने की अर्थव्यवस्थाओं (Economies of scale) से लाभ उठाते हुए कुछ एम्बेडेड सिस्टम्स का उत्पादन बड़े-पैमाने पर किया जाता है।

भौतिक रूप से, एम्बेडेड सिस्टम, वहनीय उपकरणों, जैसे डिजिटल घड़ियों तथा MP3 प्लेयर्स, से लेकर बड़ी स्थिर संस्थापनाओं, जैसे यातायात बत्तियों, कारखानों के नियंत्रकों अथवा परमाणु ऊर्जा केन्द्रों, तक की श्रेणी में होते हैं। जटिलता का स्तर एकल माइक्रोकंट्रोलर चिप के लिए निम्न जटिलता से लेकर किसी बड़े ढांचे (Chassis) या घेरे में लगी अनेक इकाइयों, उपकरणों तथा नेटवर्क्स के लिए उच्च जटिलता तक होता है।

सामान्यत: "एम्बेडेड सिस्टम" शब्दावली की कोई सटीक परिभाषा नहीं दी जा सकती क्योंकि अधिकांश सिस्टम्स में विस्तारण अथवा प्रोग्रामिंग की क्षमता के कुछ तत्त्व भी शामिल होते हैं। उदाहरण के लिए, हैण्ड-हेल्ड कम्प्यूटर्स अपने कुछ तत्वों, जैसे ऑपरेटिंग सिस्टम्स और उन्हें शक्ति देने वाले माइक्रोप्रोसेसर्स, को एम्बेडेड सिस्टम्स के साथ साझा करते हैं, परन्तु वे अन्य अनुप्रयोगों को लोड करने और उपकरणों को जोड़ने की अनुमति भी देते हैं। इसके अलावा, यहां तक कि जो सिस्टम्स प्रोग्रामिंग की क्षमता को अपनी प्राथमिक विशेषता के रूप में प्रदर्शित नहीं करते, उन्हें भी सॉफ्टवेयर अद्यतनों का समर्थन करने की आवश्यकता होती है। "सामान्य उद्देश्य" से "एम्बेडेड" की ओर एक अबाध क्रम में बढ़ने पर, बड़े अनुप्रयोगों में अधिकांश स्थानों पर कुछ उप-घटक होंगे, भले ही सम्पूर्ण सिस्टम को "एक या कुछ समर्पित कार्यों को पूर्ण करने के लिए बनाया गया हो" और इस प्रकार उसे "एम्बेडेड" कहना उपयुक्त हो।

एम्बेडेड सिस्टम्स के विभिन्न प्रकार संपादित करें

 
एक x86 AMD जियोड LX 800 के साथ-साथ कॉम्पैक्ट फ्लैश, मिनीPCI और PCI स्लॉट्स, 22-पिन IDE इंटरफ़ेस, ऑडियो, USB और 256MB RAM युक्त PC इंजिन्स' ALIX.1C मिनी-ITX एम्बेडेड बोर्ड
 
चेक गणराज्य में बेतार इंटरनेट सेवा प्रदाताओं (WISPs) द्वारा व्यापक रूप से प्रयुक्त U.FL-RSMA पिगटेल और R52 मिनीPCI वाई-फ़ाई कार्ड युक्त एक एम्बेडेड रूटरबोर्ड 112

एम्बेडेड सिस्टम्स का विस्तार आधुनिक जीवन के सभी पहलुओं तक है और उनके प्रयोग के अनेक उदाहरण उपलब्ध हैं।

दूरसंचार तंत्र अपने नेटवर्क के टेलीफोन स्विच से लेकर अंतिम-प्रयोक्ता के मोबाइल फोन तक विभिन्न एम्बेडेड सिस्टम्स का प्रयोग करते हैं। कम्प्यूटर नेटवर्किंग में डाटा का मार्ग-निर्धारण करने के लिए समर्पित रूटर्स तथा नेटवर्क ब्रिज का प्रयोग किया जाता है।

उपभोक्ता इलेक्ट्रॉनिक्स में पर्सनल डिजिटल असिस्टंट्स (PDAs), mp3 प्लेयर्स, मोबाइल फोन, वीडियोगेम कंसोल, डिजिटल कैमरा, DVD प्लेयर्स, GPS रिसीवर्स तथा प्रिंटर्स शामिल हैं। अनेक घरेलू उपकरणों जैसे माइक्रोवेव ओवन, वाशिंग मशीन तथा डिश-वाशर में लचीलापन, दक्षता और विशेषताएं प्रदान करने के लिए एम्बेडेड सिस्टम्स को शामिल किया जाता है। उन्नत HVAC तंत्र दिन के समय तथा मौसम के साथ बदल सकने वाले तापमान को अधिक सटीक रूप से और दक्षतापूर्वक नियंत्रित करने के लिए नेटवर्क-युक्त थर्मोस्टैट का प्रयोग करते हैं। घरों के स्वचालन में तारयुक्त- और बेतार-नेटवर्किंग का प्रयोग किया जाता है, जिसका प्रयोग बत्तियों, वातावरण, सुरक्षा, ऑडियो/वीडियो, निगरानी इत्यादि को नियंत्रित करने के लिए किया जा सकता है, जिनमें से सभी में संवेदनशीलता एवं नियंत्रण के लिए एम्बेडेड सिस्टम्स का प्रयोग हो सकता है।

हवाई-यातायात से लेकर वाहनों के यातायात तक परिवहन तंत्रों में एम्बेडेड सिस्टम का प्रयोग बढ़ता जा रहा है। नए हवाई-जहाज़ों में जड़त्वीय मार्गदर्शन तंत्रों (Inertial guidance systems) तथा GPS रिसीवर्स जैसी उन्नत वैमानिकी का प्रयोग किया जाता है, जिनमें महत्वपूर्ण सुरक्षा आवश्यकताएं भी होती हैं। विभिन्न विद्युत् यंत्र- ब्रशविहीन DC मोटर्स, प्रवर्तन (Induction) मोटर्स तथा DC मोटर्स- इलेक्ट्रिक/इलेक्ट्रॉनिक मोटर नियंत्रकों का प्रयोग कर रहे हैं। वाहनों (ऑटोमोबाइल्स), विद्युत् वाहनों तथा संकरित वाहनों में दक्षता को अधिकतम सीमा तक बढ़ाने और प्रदूषण को कम करने के लिए एम्बेडेड सिस्टम्स का प्रयोग बढ़ता जा रहा है। अन्य स्वचालित सुरक्षा तंत्रों में एंटी-लॉक ब्रेकिंग सिस्टम (ABS), इलेक्ट्रॉनिक स्थिरता नियंत्रण (ESC/ESP), कर्षण नियंत्रण (TCS), तथा स्वचालित फोर-व्हील ड्राइव शामिल हैं।

महत्वपूर्ण संकेतों के निरीक्षण, ध्वनि को बढ़ाने के लिए इलेक्ट्रॉनिक स्टेथोस्कोप तथा गैर-आक्रमणशील आतंरिक निरीक्षण के लिए विभिन्न चिकीत्सकीय चित्रणों (PET, SPECT, CT, MRI) के लिए एम्बेडेड सिस्टम्स के बढ़ते प्रयोग के साथ चिकित्सीय उपकरण लगातार उन्नत होते जा रहे हैं।

छोटे कम्प्यूटर्स पर आधारित सामान्यत: वर्णित एम्बेडेड सिस्टम्स के अतिरिक्त, बेतार संवेदक नेटवर्किंग में उन्नति के साथ ही छोटे बेतार उपकरणों की एक नई श्रेणी, जिसे मोट्स (motes) कहा जाता है, बहुत तेज़ी से लोकप्रिय हो रही है। बेतार संवेदक नेटवर्किंग, WSN, लघुरूपण का प्रयोग करती है, जो पूर्ण बेतार उप-तंत्रों को परिष्कृत संवेदकों के साथ जोड़ने के लिए उन्नत IC रचना द्वारा संभव हुआ है और लोगों तथा कंपनियों को भौतिक-विश्व में असंख्य वस्तुओं का मापन कर पाने और IT निरीक्षण तथा नियंत्रण तंत्रों के माध्यम से इस जानकारी पर कार्य कर पाने में सक्षम बनाता है। ये मोट्स पूरी तरह स्व-सम्पूर्ण होते हैं और ये कई वर्षों तक एक बैटरी स्रोत की सहायता से चलेंगे, जिसके बाद बैटरियों को बदलने या चार्ज करने की आवश्यकता होगी।

इतिहास संपादित करें

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

चार्ल्स स्टार्क ड्रेपर (Charles Stark Draper) द्वारा MIT इंस्ट्रूमेंटेशन लैबोरेटरी में विकसित किया गया अपोलो गाइडेंस कम्प्यूटर शुरूआती उल्लेखनीय आधुनिक एम्बेडेड सिस्टम्स में से एक था। इस परियोजना के प्रारम्भ में, अपोलो गाइडेंस कम्प्यूटर को अपोलो परियोजना की सबसे जोखिमपूर्ण वस्तु माना गया था क्योंकि आकार तथा वज़न को कम करने के लिए इसमें मोनोलिथिक इंटीग्रेटेड सर्किट का प्रयोग किया गया था, जो उस समय नई-नई विकसित हुई थी। बड़े पैमाने पर उत्पादित शुरूआती एम्बेडेड सिस्टम, मिनटमैन (Minuteman) मिसाइल के लिए 1961 में जारी किया गया ऑटोनेटिक्स D-17 (Autonetics D-17) गाइडेंस कम्प्यूटर था। यह ट्रांज़िस्टर तर्क से बनाया गया था और इसमें मेन मेमोरी के लिए एक हार्ड-डिस्क थी। 1966 में जब मिनटमैन II का उत्पादन शुरू हुआ, तो D-17 के स्थान पर एक नए कम्प्यूटर का प्रयोग किया जाने लगा, जिसमें पहली बार बड़े पैमाने पर इंटीग्रेटेड सर्किट का प्रयोग किया गया था। इस अकेले कार्यक्रम ने ही क्वैड नैण्ड गेट ICs की कीमत $1000/प्रति IC से घटाकर $3/प्रति IC कर दी, जिससे वाणिज्यिक उत्पादों में उनका प्रयोग कर पाना संभव हो गया।

1960 के दशक के प्रारम्भिक अनुप्रयोगों के बाद से, एम्बेडेड सिस्टम की कीमत में कमी आई है और प्रोसेसिंग शक्ति और कार्यात्मकता में एक नाटकीय वृद्धि हुई है। उदाहरण के लिए, पहले माइक्रोप्रोसेसर, इंटेल 4004 (Intel 4004), की रचना कैल्क्यूलेटर तथा अन्य छोटे तंत्रों के लिए की गई थी, लेकिन फिर भी इसमें अनेक बाह्य मेमोरी और समर्थन चिप्स की आवश्यकता थी। सन् 1978 में, नैशनल इंजीनियरिंग मैनुफैक्चरर्स एसोसियेशन ने प्रोग्रामेबल माइक्रोकंट्रोलर्स के लिए एक "मानक" जारी किया, जिसमें एकल बोर्ड वाले कम्प्यूटर्स, अंकीय तथा घटना-आधारित कम्प्यूटर्स सहित लगभग किसी भी कम्प्यूटर पर आधारित कंट्रोलर्स शामिल थे।

माइक्रोप्रोसेसर्स और माइक्रोकंट्रोलर्स की लागत कम हो जाने के कारण घुंडी-आधारित (Knob-based) महंगे एनालॉग घटकों, जैसे पोटेंशियोमीटर्स और वेरिएबल कैपेसिटर्स के स्थान पर माइक्रोप्रोसेसर द्वारा पढ़ी जाने वाली अप/डाउन बटनों या घुंडियों का कुछ उपभोक्ता उत्पादों में भी प्रयोग कर पाना साध्य हो गया। 1980 के दशक के मध्य तक, पूर्ववर्ती अधिकांश सामान्य बाहरी सिस्टम घटकों को प्रोसेसर की चिप में ही एकीकृत कर दिया गया था और माइक्रोकंट्रोलर्स के इस आधुनिक रूप ने और अधिक व्यापक प्रयोग की अनुमति दी, जो दशक के अंत तक लगभग सभी इलेक्ट्रॉनिक्स उपकरणों के लिए अपवाद न रह कर मानक बन गए थे।

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

अभिलक्षण संपादित करें

 
सोएक्रिस नेट4801, नेटवर्क अनुप्रयोगों लक्षित एक एम्बेडेड सिस्टम.
  1. एम्बेडेड सिस्टम्स की रचना कुछ विशिष्ट कार्य करने के लिए की जाती है, न कि अनेक कार्यों के लिए एक सामान्य-उद्देश्य वाले कम्प्यूटर के रूप में कार्य करने के लिए। इनमें से कुछ को सुरक्षा और उपयोगिता जैसे कारणों से रीयल-टाइम प्रदर्शन से जुड़े कुछ निर्बंधों की पूर्ति भी करनी होती है; अन्य की प्रदर्शन आवश्यकताएं कम या शून्य हो सकती हैं, जो लागत को कम करने के लिए सिस्टम हार्डवेयर के सरलीकरण की अनुमति देता है।
  2. एम्बेडेड सिस्टम्स सदैव ही स्व-सम्पूर्ण उपकरण नहीं होते. अनेक एम्बेडेड सिस्टम्स किसी बड़े उपकरण में लगे छोटे, कम्प्यूटरीकृत भागों से मिलकर बनते हैं, जो अधिक सामान्य उद्देश्य की पूर्ति करते हैं। उदाहरण के लिए, गिब्सन रोबोट गिटार, तारों का समस्वरण (tuning) करने वाले एक एम्बेडेड सिस्टम को प्रदर्शित करता है, लेकिन स्वाभाविक रूप से रोबोट गिटार का सकल उद्देश्य, संगीत बजाना है।[5] इसी प्रकार किसी मोटर-वाहन में लगा एम्बेडेड सिस्टम उस कार के एक उप-तंत्र के रूप में कोई विशिष्ट कार्य करने की सुविधा प्रदान करता है।
  3. एम्बेडेड सिस्टम्स के लिए लिखे गए प्रोग्राम निर्देशों को फर्मवेयर कहा जाता है और इन्हें रीड-ओन्ली मेमोरी या फ्लैश मेमोरी चिप्स में संचित किया जाता है। वे सीमित कम्प्यूटर हार्डवेयर संसाधनों: बहुत थोड़ी मेमोरी, छोटे या अनुपस्थित की-बोर्ड और/या स्क्रीन की सहायता से चलते हैं।

यूज़र इंटरफ़ेस संपादित करें

 
माइक्रोVGA प्रयुक्त करने वाला एम्बेडेड सिस्टम टेक्स्ट यूज़र इंटरफ़ेस

एम्बेडेड सिस्टम्स यूज़र इंटरफ़ेस विहीन-केवल एक कार्य के प्रति समर्पित- से लेकर आधुनिक कम्प्यूटर डेस्कटॉप ऑपरेटिंग सिस्टम्स के समान दिखाई देने वाले जटिल ग्राफिकल यूज़र इंटरफ़ेस तक की श्रेणी में होते हैं। सरल एम्बेडेड सिस्टम उपकरण एक सरल मेनू सिस्टम के साथ बटनों, LEDs, ग्राफिक या कैरेक्टर LCDs (उदाहरणार्थ लोकप्रिय HD44780 LCD) का प्रयोग करते हैं।

कुछ अधिक परिष्कृत उपकरण स्पर्श संवेदनशीलता (Touch Sensing) से युक्त ग्राफिकल स्क्रीन का या स्क्रीन पर बनी बटनों (Screen-Edge Buttons) का प्रयोग करते हैं, जो लचीलापन प्रदान करने के साथ ही प्रयोग किये जा रहे स्थान में भी कमी लाती है: बटनों का अर्थ स्क्रीन के अनुसार बदल सकता है और चयन में वांछित विकल्प की ओर सूचित करने का प्राकृतिक व्यवहार शामिल होता है। हैण्डहेल्ड सिस्टम्स में अक्सर सूचक उपकरण के लिए एक "जॉयस्टिक बटन" के साथ स्क्रीन होती है।

कुछ तंत्र क्रमिक (उदा. RS-232, USB, I²C इत्यादि) या नेटवर्क (उदा. ईथरनेट) संयोजन की सहायता से दूरस्थ रूप से यूज़र इंटरफ़ेस प्रदान करते हैं। स्थापित क्लाएंट सॉफ्टवेयर तथा तारों की आवश्यकता होने के बावजूद यह पद्धति सामान्यत: अनेक लाभ देती है: एम्बेडेड सिस्टम्स की क्षमताओं को बढ़ाती है, प्रदर्शन की लागत बचाती है, BSP को सरल बनाती है, PC पर उपयोगी यूज़र इंटरफ़ेस के निर्माण की अनुमति देती है। एम्बेडेड उपकरण पर चल रहे एम्बेडेड वेब सर्वर तथा PC पर वेब ब्राउज़र में चल रहे यूज़र इंटरफेस का संयोजन (IP कैमरों और नेटवर्क रूटर्स के लिए विशिष्ट) इस दिशा में एक सुस्थापित मॉडल है।

एम्बेडेड सिस्टम्स में प्रोसेसर्स संपादित करें

एम्बेडेड प्रोसेसर्स को मोटे तौर पर दो श्रेणियों में विभाजित किया जा सकता है: सामान्य माइक्रोप्रोसेसर्स (μP) तथा माइक्रोकंट्रोलर्स (μC), जिनमें लागत व आकार को कम करने के लिए एक चिप पर बहुत अधिक उपकरण होते हैं। पर्सनल कम्प्यूटर तथा सर्वर बाज़ार के विपरीत, बुनियादी CPU संरचना का एक पर्याप्त बड़ी मात्रा में प्रयोग किया जाता है; वॉन न्यूमन और साथ ही हारवर्ड संरचना की विभिन्न श्रेणियां, RISC और साथ ही गैर-RISC तथा VLIW; शब्दों की लम्बाई 4-बिट से 64-बिट और उससे अधिक (मुख्यत: DSP प्रोसेसर्स में) तक भिन्न हो सकती है, हालांकि आदर्श 8/16 बिट बना हुआ है। अधिकांश संरचनाएं अनेक भिन्न संस्करणों और आकारों के साथ उपलब्ध हैं और जिनमें से अनेक का उत्पादन विभिन्न कंपनियों द्वारा भी किया जाता है।

सामान्य संरचनाओं की एक लंबी, लेकिन अभी भी अपूर्ण सूची है: 65816, 65C02, 68HC08, 68HC11, 68k, 8051, ARM, AVR, AVR32, Blackfin, C167, Coldfire, COP8, Cortus APS3, eZ8, eZ80, FR-V, H8, HT48, M16C, M32C, MIPS, MSP430, PIC, PowerPC, R8C, SHARC, ST6, SuperH, TLCS-47, TLCS-870, TLCS-900, Tricore, V850, x86, XE8000, Z80, AsAP आदि।

बने बनाए कम्प्यूटर बोर्ड्स संपादित करें

PC/104 तथा PC/104+ छोटे, कम मात्रा में एम्बेडेड तथा मज़बूत बनाए गए (Ruggedized), अधिकांशत: x86-आधारित, सिस्टम्स के लिए अभीष्ट पूर्व-निर्मित (Ready made) कम्प्यूटर बोर्ड्स के लिए मानकों के उदाहरण हैं। अक्सर ये DOS, [[लिनक्स [Linux] [Linux]]], NetBSD या किसी एम्बेडेड रीयल-टाइम ऑपरेटिंग सिस्टम, जैसे MicroC/OS-II, QNX या VxWorks, का प्रयोग करते हैं। कभी-कभी ये बोर्ड्स गैर-x86 प्रोसेसर्स का प्रयोग भी करते हैं।

कुछ विशिष्ट अनुप्रयोगों, जिनमें छोटा आकार या ऊर्जा-दक्षता प्राथमिक चिंताएं न हों, में प्रयुक्त घटक सामान्य-उद्देश्य वाले x86 पर्सनल कम्प्यूटर्स में प्रयुक्त घटकों के साथ सुसंगत हो सकते हैं। कुछ बोर्ड्स, जैसे VIA EPIA श्रेणी, PC-सुसंगत लेकिन अत्यधिक एकीकृत, भौतिक रूप से छोटे होने के कारण इस कमी को पूरा करने में सहायता करते हैं या इनमें कुछ ऐसे लक्षण होते हैं, जो एम्बेडेड इंजीनियर्स को इनकी ओर आकर्षित करते हैं। इस पद्धति का लाभ यह है कि सामान्य सॉफ्टवेयर विकास के लिए प्रयुक्त सॉफ्टवेयर विकास उपकरणों के साथ कम-लागत सामग्री वाले घटकों का प्रयोग किया जा सकता है। इस प्रकार बनाए गए सिस्टम्स को भी एम्बेडेड माना जाता है क्योंकि वे बड़े उपकरणों में एकीकृत किये जाते हैं और किसी एकल भूमिका की पूर्ति करते हैं। ATMs तथा आर्केड मशीनें, जिनमें अनुप्रयोग के लिए विशिष्ट कोड होता है, इस पद्धति का प्रयोग करने वाले उपकरणों के उदाहरण हो सकते हैं।

हालांकि, अधिकांश पूर्व-निर्मित एम्बेडेड सिस्टम्स बोर्ड्स PC-केन्द्रित नहीं होते और ISA या PCI बसों का प्रयोग नहीं करते. जब एक सिस्टम-ऑन-अ-चिप (System-on-a-chip) प्रोसेसर शामिल होता है, तो पृथक घटकों को जोड़ने वाली एक मानक बस के होने से कुछ लाभ हो सकता है और हार्डवेयर और सॉफ्टवेयर उपकरणों, दोनों के लिए वातावरण बहुत भिन्न हो सकता है।

एक सामान्य डिजाइन शैली एक छोटे, शायद एक व्यापारिक कार्ड के आकार के, सिस्टम मॉड्यूल, उच्च घनत्व वाली BGA चिप्स, जैसे ARM-आधारित एक सिस्टम-ऑन-अ-चिप प्रोसेसर तथा बाह्य उपकरण, भंडारण के लिए बाहरी फ्लैश मेमोरी तथा रनटाइम मेमोरी के लिए DRAM का प्रयोग करती है। मॉड्यूल विक्रेता सामान्यत: बूट सॉफ्टवेयर प्रदान करेगा और इस बात को सुनिश्चित करेगा कि एक ऑपरेटिंग सिस्टम का चुनाव किया गया है, जिनमें सामान्यत: [[लिनक्स [Linux]]] और कुछ रीयल-टाइम विकल्प शामिल होते हैं। इन मॉड्यूल्स का उत्पादन, उन संगठनों द्वारा बड़े पैमाने पर किया जा सकता है जो इनके विशेषीकृत परीक्षण मुद्दों से परिचित हों और अनुप्रयोग-विशिष्ट बाहरी उपकरणों के साथ बहुत छोटे पैमाने पर बने पारंपरिक मेनबोर्ड्स के साथ जोड़ा जा सकते हैं। गमस्टिक्स (Gumstix) उत्पाद पंक्तियां इस मॉडल का एक लिनक्स [Linux]-केन्द्रित उदाहरण हैं।

ASIC और FPGA समाधान संपादित करें

सिस्टम-ऑन-अ-चिप (SoC), अत्यधिक-बड़ी-मात्रा में एम्बेडेड सिस्टम्स के लिए एक सामान्य विन्यास है, जिसमें अनेक प्रोसेसर्स, मल्टीप्लायर्स, कैशे तथा इंटरफ़ेस युक्त एक पूरा सिस्टम किसी एकल चिप पर होता है। SoCs को एक अनुप्रयोग-विशिष्ट एकीकृत सर्किट (ASIC) के रूप में या एक फील्ड-प्रोग्रामेबल गेट ऐरे (FPGA) का प्रयोग करके लागू किया जा सकता है।

परिधीय उपकरण संपादित करें

एम्बेडेड सिस्टम्स, परिधीय उपकरणों (Peripherals) के माध्यम से बाहरी विश्व से संपर्क करते हैं, जैसे:

उपकरण संपादित करें

अन्य सॉफ्टवेयर्स की ही तरह एम्बेडेड सिस्टम डिज़ाइनर्स भी एम्बेडेड सिस्टम सॉफ्टवेयर विकसित करने के लिए कंपाइलर्स, असेम्बलर्स और डीबगर्स का प्रयोग करते हैं। हालांकि, वे कुछ अधिक विशिष्ट उपकरणों का प्रयोग भी कर सकते हैं।

  • अंत:सर्किट डीबगर्स या इम्युलेटर्स (अगला अनुभाग देखें).
  • किसी प्रोग्राम में चेकसम या CRC जोड़ने के लिए उपयोगिताएं, ताकि एम्बेडेड सिस्टम इस बात की जांच कर सके कि क्या प्रोग्राम वैध है।
  • डिजिटल सिग्नल प्रोसेसिंग का प्रयोग करने वाले सिस्टम्स के लिए डेवलपर्स गणितीय वर्कबेंच, जैसे Scilab / Scicos, MATLAB / Simulink, EICASLAB, MathCad या Mathematica का प्रयोग गणित की नक़ल करने के लिए कर सकते हैं। वे मेज़बान और लक्ष्य दोनों के लिए लाइब्ररीज का प्रयोग भी कर सकते हैं, जिससे DSP रूटीन्स विकसित करने की आवश्यकता नहीं रह जाती, जैसा कि DSPnano RTOS और यूनिसन ऑपरेटिंग सिस्टम में किया जाता है।
  • किसी विशिष्ट हार्ड वेयर के लिए इष्टतमीकरण (Optimization) में सुधार करने के लिए पारंपरिक कम्पाइलर्स और लिंकर्स का प्रयोग किया जा सकता है।
  • एक एम्बेडेड सिस्टम में इसकी स्वयं की एक विशेष भाषा या डिजाइन उपकरण हो सकता है या यह पहले से उपस्थित किसी भाषा, जैसे फोर्थ या बेसिक, में वृद्धियों को जोड़ सकता है।
  • एक अन्य विकल्प किसी रीयल-टाइम ऑपरेटिंग सिस्टम या एम्बेडेड ऑपरेटिंग सिस्टम को जोड़ना है, जिसमें DSP क्षमताएं, जैसे- DSPnano RTOS, हो सकती हैं।

सॉफ्टवेयर उपकरण विभिन्न स्त्रोतों से आ सकते हैं:

  • एम्बेडेड बाज़ार में विशेषज्ञता रखने वाली सॉफ्टवेयर कम्पनियां
  • GNU सॉफ्टवेयर विकास उपकरणों से प्राप्त
  • यदि एम्बेडेड प्रोसेसर सामान्य PC प्रोसेसर से निकट सम्बन्ध रखता हो, तो कभी-कभी एक पर्सनल कम्प्यूटर के लिए प्रयुक्त विकास उपकरणों का प्रयोग किया जा सकता है।

जैसे-जैसे एम्बेडेड सिस्टम्स की जटिलता बढ़ रही है, उच्च-स्तरीय उपकरण और ऑपरेटिंग सिस्टम्स उस मशीनरी में स्थानांतरित हो रहे हैं, जहां उनका होना अर्थ-पूर्ण होता है। उदाहरण के लिए, सेलफोन, पर्सनल डिजिटल असिस्टन्ट्स तथा अन्य उपभोक्ता कम्प्यूटर्स के लिए अक्सर लक्षणीय सॉफ्टवेयर की आवश्यकता होती है, जो इलेक्ट्रानिक्स के उत्पादक के अतिरिक्त किसी अन्य व्यक्ति द्वारा खरीदा या प्रदान किया जाता है। ऐसे तंत्रों में, एक मुक्त प्रोग्रामिंग वातावरण, जैसे: [[लिनक्स [Linux]]], NetBSD, OSGi अथवा एम्बेडेड जावा, की आवश्यकता होती है, ताकि थर्ड-पार्टी सॉफ्टवेयर प्रदाता इन्हें एक बड़े बाज़ार को बेच सके।

डीबगिंग संपादित करें

उपलब्ध सुविधाओं के आधार पर एम्बेडेड डीबगिंग विभिन्न स्तरों पर की जा सकती है। सरलतम से सर्वाधिक परिष्कृत तक, मोटे तौर पर उन्हें निम्नलिखित क्षेत्रों में वर्गीकृत किया जा सकता है:

  • अंत:सक्रिय निवासी डीबगिंग (Interactive Resident Debugging), जो एम्बेडेड ऑपरेटिंग सिस्टम द्वारा प्रदत्त सरल शेल का प्रयोग करके की जाती है (उदा. फोर्थ तथा बेसिक)
  • कार्य पर निगरानी रखने के लिए फ्लैश में एक मॉनिटर के प्रयोग द्वारा या किसी डीबग सर्वर, जैसे रिमेडी डीबगर (Remedy Debugger), जो भिन्न मल्टीकोर सिस्टम्स के साथ भी कार्य करता है, के प्रयोग द्वारा लॉगिंग या सीरियल पोर्ट आउटपुट का प्रयोग करके बाहरी डीबगिंग.
  • एक अंत:सर्किट डीबगर (ICD), एक हार्ड वेयर उपकरण, जो माइक्रोप्रोसेसर को JTAG या NEXUS इंटरफ़ेस के माध्यम से जोड़ता है। यह माइक्रोप्रोसेसर के कार्य को बाह्य रूप से नियंत्रित करने की अनुमति देता है, लेकिन यह विशिष्ट रूप से प्रोसेसर की विशिष्ट डीबगिंग क्षमताओं तक सीमित होता है।
  • एक अंत:सर्किट इम्युलेटर माइक्रोप्रोसेसर को इसके सिम्युलेटेड समकक्ष द्वारा प्रतिस्थापित करके माइक्रोप्रोसेसर के सभी पहलुओं पर पूर्ण नियंत्रण प्रदान करता है।
  • एक सम्पूर्ण इम्युलेटर हार्डवेयर के सभी पहलुओं का सिम्युलेशन प्रदान करता है, जिससे सम्पूर्ण हार्डवेयर को नियंत्रित एवं संशोधित किया जा सकता है और एक सामान्य PC पर डीबगिंग की जा सकती है।

जब तक बाहरी डीबगिंग को प्रतिबंधित न किया जाये, तब तक प्रोग्रामर विशिष्ट रूप से सॉफ्टवेयर को उपकरणों द्वारा लोड कर सकता है और चला सकता है, प्रोसेसर में चल रहे कोड को देख सकता है और कार्य को शुरू या बंद कर सकता है। कोड को असेम्बली कोड या स्रोत-कोड के रूप में देखा जा सकता है।

चूंकि एक एम्बेडेड सिस्टम अक्सर विभिन्न प्रकार के तत्वों से मिलकर बना होता है, अत: डीबगिंग रणनीति भी अलग-अलग हो सकती है। उदाहरण के लिए, किसी सॉफ्टवेयर- (और माइक्रोप्रोसेसर-) केन्द्रित एम्बेडेड सिस्टम की डीबगिंग किसी ऐसे एम्बेडेड सिस्टम की डीबगिंग से भिन्न होती है, जहां अधिकांश प्रोसेसिंग परिधीय उपकरणों (DSP, FPGA, को-प्रोसेसर) द्वारा की जाती है। एक से अधिक एकल प्रोसेसर कोर का प्रयोग करने वाले एम्बेडेड सिस्टम्स की संख्या लगातार बढ़ती जा रही है। सॉफ्टवेयर क्रियान्वयन का उचित सिन्क्रोनाइज़ेशन करना मल्टी-कोर विकास के साथ एक सामान्य समस्या है। ऎसी स्थिति में, एम्बेडेड सिस्टम डिजाइन को प्रोसेसर कोर के बीच बसों पर डाटा के यातायात की जांच करने की आवश्यकता हो सकती है, जिसके लिए सिग्नल/बस स्तर पर, उदा. एक लॉजिक एनालाइज़र के साथ, बहुत निम्न-स्तर की डीबगिंग की आवश्यकता होती है।

विश्वसनीयता संपादित करें

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

विशिष्ट विश्वसनीयता मुद्दों में शामिल हो सकते हैं:

  1. सिस्टम को मरम्मत के लिए सुरक्षित रूप से बंद नहीं किया जा सकता, या मरम्मत के लिए इसका अभिगमन नहीं किया जा सकता. उदाहरणों में अंतरिक्ष प्रणालियां, समुद्र के अन्दर बिछी तारें, नौवहन के लिए प्रयुक्त संकेत-दीप, बोर-होल सिस्टम्स तथा स्वचालित-वाहन शामिल हैं।
  2. सुरक्षा कारणों से सिस्टम को सतत चलायमान स्थिति में रखना अनिवार्य है। "शिथिल विधियां (Limp modes)" कम सहनीय हैं। अक्सर ऑपरेटर द्वारा बैकअप का चयन किया जाता है। उदाहरणों में हवाई परिवहन, रिएक्टर कंट्रोल सिस्टम, सुरक्षा के लिहाज से महत्वपूर्ण रासायनिक फैक्ट्री के नियंत्रक, रेलगाड़ियों के सिग्नल, एकल-इंजन वाले वायुयान के इंजन शामिल हैं।
  3. सिस्टम को बंद किये जाने पर बहुत अधिक धन की हानि होगी: टेलीफोन स्विच, फैक्ट्री के नियंत्रक, पुल और एलीवेटर के नियंत्रक, पूंजी का अंतरण और बाज़ार का निर्माण, स्वचालित विक्रय और सेवा.

त्रुटियों से उबरने के लिए विभिन्न प्रकार की तकनीकों का प्रयोग, कभी-कभी संयोजित रूप से, किया जाता है- मेमोरी लीक जैसी सॉफ्टवेयर त्रुटियों और साथ ही हार्डवेयर की सामान्य त्रुटियों, दोनों के लिए:

  • निरीक्षक टाइमर (watchdog timer), जो सॉफ्टवेयर द्वारा नियमित अंतराल पर निरीक्षक को सूचना न देने पर कम्प्यूटर को रीसेट कर देता है।
  • अनावश्यक दोहराव युक्त उप-सिस्टम्स, जिन्हें बदला जा सकता है।
  • सॉफ्टवेयर की "शिथिल विधियां (Limp modes)", जो आंशिक रूप से कार्य करती हैं।
  • एक विश्वसनीय कम्प्यूटर आधार (TCB) संरचना[6] के साथ डिजाइन करना ताकि उच्च सुरक्षा और विश्वसनीय सिस्टम वातावरण को सुनिश्चित किया जा सके।
  • एक एम्बेडेड हाइपरवाइज़र किसी भी उप-सिस्टम घटक के लिए सुरक्षित प्रावरण (encapsulation) प्रदान करने में सक्षम होता है, ताकि जोखिम की संभावना वाला कोई सॉफ्टवेयर घटक अन्य उप-सिस्टम्स या विशेषाधिकार-स्तर वाले सिस्टम सॉफ्टवेयर में हस्तक्षेप न कर सके। यह प्रावरण त्रुटियों को एक उप-सिस्टम से दूसरे में जाने से रोकता है और इस प्रकार विश्वसनीयता को बढ़ाता है। यह त्रुटि का पता चलने पर उप-सिस्टम को स्वचालित रूप से बंद होने और पुन:प्रारम्भ होने की अनुमति भी दे सकता है।
  • प्रतिरक्षा के प्रति जागरुक प्रोग्रामिंग

उच्च बनाम कम मात्रा संपादित करें

उच्च मात्रा वाले सिस्टम्स, जैसे पोर्टेबल म्युज़िक प्लेयर्स या मोबाइल फोन के लिए, लागत को कम करना सामान्यत: डिजाइन के दौरान प्राथमिक विचार होता है। इंजीनियर्स विशिष्टत: ऐसे हार्डवेयर का चयन करते हैं, जो आवश्यक कार्यों को लागू करने के लिए केवल "पर्याप्त" हो।

प्रोग्राम्स को सीमित करके या ऑपरेटिंग सिस्टम को किसी रीयल-टाइम ऑपरेटिंग सिस्टम द्वारा प्रतिस्थापित करके सामान्य उद्देश्य वाले कम्प्यूटर्स को निम्न मात्रा वाले या प्रोटोटाइप एम्बेडेड सिस्टम्स के लिए अनुकूलित किया जा सकता है।

एम्बेडेड सॉफ्टवेयर संरचनाएं संपादित करें

विभिन्न प्रकार की सॉफ्टवेयर संरचनाओं का प्रयोग प्रचलित है।

सरल नियंत्रण लूप संपादित करें

इस डिजाइन में, सॉफ्टवेयर में केवल एक लूप होता है। यह लूप सब-रूटीन्स को कॉल करता है, जिनमें से प्रत्येक द्वारा हार्डवेयर या सॉफ्टवेयर के एक भाग का प्रबंधन किया जाता है।

इंटरप्ट द्वारा नियंत्रित सिस्टम संपादित करें

कुछ एम्बेडेड सिस्टम्स मुख्यत: इंटरप्ट द्वारा नियंत्रित किये जाते हैं। इसका अर्थ यह है कि सिस्टम द्वारा किये जाने वाले कार्य विभिन्न प्रकार की घटनाओं (Events) द्वारा शुरू किये जाते हैं। उदाहरणार्थ, एक पूर्व-परिभाषित अंतराल पर किसी टाइमर द्वारा या एक बाइट प्राप्त करने वाले किसी सीरियल पोर्ट नियंत्रक द्वारा एक इंटरप्ट उत्पन्न किया जा सकता है।

यदि इवेन्ट हैण्डलर्स को निम्न-विलंबता की आवश्यकता हो तथा इवेन्ट हैण्डलर्स छोटे और सरल हों, तो इस प्रकार के सिस्टम्स का प्रयोग किया जाता है।

सामान्यत: इस प्रकार के सिस्टम्स एक मुख्य लूप में कोई सरल कार्य भी क्रियान्वित करते हैं, लेकिन यह कार्य अनापेक्षित विलंबों के प्रति बहुत अधिक संवेदनशील नहीं होता।

कभी-कभी इंटरप्ट हैंडलर लम्बे कार्यों को एक पंक्ति-संरचना (Queue Structure) में जोड़ देगा। बाद में इंटरप्ट हैंडलर का कार्य समाप्त हो जाने पर ये कार्य मुख्य लूप द्वारा क्रियान्वित किये जाते हैं। यह विधि सिस्टम को असतत प्रक्रियाओं वाले एक मल्टी-टास्किंग कर्नल के निकट ले जाती है।

सहकारी मल्टी-टास्किंग संपादित करें

एक नॉन-प्रिएम्पटिव मल्टी टास्किंग सिस्टम भी एक सरल नियंत्रण लूप योजना के समान ही होता है, अंतर केवल इतना है कि लूप एक API में छिपा होता है। प्रोग्रामर कार्यों की एक शृंखला को परिभाषित करता है और प्रत्येक कार्य को अपना स्वयं का एक वातावरण प्राप्त होता है, जिसमें इसे "क्रियान्वित" किया जाता है। जब कोई कार्य निष्क्रिय (Idle) होता है, तो वह एक निष्क्रिय रूटीन को कॉल करता है, जिसे सामान्यत: "pause", "wait", "yield", "nop" (नो ऑपरेशन का संक्षिप्त रूप) आदि कहा जाता है।

इसके लाभ और हानियां नियंत्रण लूप के समान ही हैं, अंतर केवल इतना है कि नया सॉफ्टवेयर जोड़ना सरल होता है, केवल एक नया कार्य लिखा जाता है या इसे क्यू-इन्टरप्रेटर में जोड़ दिया जाता है।

प्रिएम्पटिव मल्टी-टास्किंग या मल्टी-थ्रेडिंग संपादित करें

इस प्रकार के सिस्टम में कोड का एक निम्न-स्तरीय भाग एक टाइमर (इंटरप्ट से संयोजित) के आधार पर कार्यों या थ्रेड्स के बीच आदान-प्रदान (Switch) करता रहता है। इस स्तर पर सामान्यत: यह माना जाता है कि सिस्टम में एक "ऑपरेटिंग कर्नल" उपस्थित है। कितनी कार्यात्मकता की आवश्यकता है, इस पर निर्भर करते हुए, यह अवधारणात्मक रूप से समानांतर स्थिति में क्रियान्वित हो रहे अनेक कार्यों के प्रबंधन के लिए अधिक या कम जटिलताएं प्रस्तुत करता है।

चूंकि कोई भी कोड संभावित रूप से किसी अन्य कार्य के डाटा को हानि पहुंचा सकता है (MMU का प्रयोग करने वाले बड़े सिस्टम्स को छोड़कर), अत: प्रोग्राम्स की रचना एवं परीक्षण सतर्कतापूर्वक किया जाना चाहिए, तथा साझा किये गए डाटा का नियंत्रण किसी सिन्क्रोनाइज़ेशन रणनीति, जैसे सन्देश-पंक्ति (Message queue), सेमाफोर या किसी गैर-अवरोधी (Non-blocking) सिन्क्रोनाइज़ेशन योजना द्वारा अनिवार्य रूप से किया जाना चाहिए।

इन जटिलताओं के कारण, संगठनों द्वारा एक रीयल-टाइम ऑपरेटिंग सिस्टम को खरीदना एक सामान्य बात है, जो अनुप्रयोग प्रोग्रामर्स को, कम-से-कम बड़े सिस्टम्स के लिए, ऑपरेटिंग सिस्टम सेवाओं की बजाय उपकरणों की कार्यात्मकता पर ध्यान केन्द्रित करने की अनुमति देता है; मेमोरी आकार, प्रदर्शन तथा/या बैटरी जीवन-काल आदि की सीमाओं के कारण छोटे सिस्टम्स एक सामान्य (Generic) रीयल-टाइम सिस्टम से जुड़े अतिरिक्त खर्च को वहन नहीं कर सकते.

माइक्रोकर्नल तथा एक्सोकर्नल संपादित करें

एक माइक्रोकर्नल तार्किक रूप से रीयल-टाइम OS का अगला चरण होता है। सामान्य व्यवस्था यह है कि ऑपरेटिंग सिस्टम कर्नल मेमोरी आवंटित करता है और क्रियान्वन के विभिन्न थ्रेड्स पर CPU का आदान-प्रदान करता है। यूज़र मोड प्रक्रियाएं मुख्य कार्यों, जैसे फ़ाइल सिस्टम, नेटवर्क इंटरफ़ेस आदि को लागू करती हैं।

सामान्य रूप में, माइक्रोकर्नल तब सफल होते हैं, जब कार्यों का आदान-प्रदान तथा कार्यों के बीच संवाद तीव्र हो और तब असफल होते हैं, जब ये धीमे हों.

एक्सोकर्नल सामान्य सबरूटीन कॉल्स के द्वारा दक्षतापूर्वक संवाद करते हैं। हार्डवेयर और सिस्टम में उपस्थित सम्पूर्ण सॉफ्टवेयर, अनुप्रयोग प्रोग्रामर्स के लिए उपलब्ध और उनके द्वारा वितान्य होता है।

मोनोलिथिक कर्नल संपादित करें

इस स्थिति में, एम्बेडेड वातावरण के अनुरूप बनाने के लिए परिष्कृत क्षमताओं वाले एक अपेक्षाकृत बड़े कर्नल का अनुकूलन किया जाता है। यह प्रोग्रामर्स को [[लिनक्स [Linux]]] या [[माइक्रोसॉफ्ट विन्डोज़ [Microsoft Windows]]] जैसे एक डेस्कटॉप ऑपरेटिंग सिस्टम के समान वातावरण प्रदान करता है और इसलिए विकास के लिए बहुत उत्पादक होता है; दूसरी ओर इसे लक्षणीय रूप से अधिक मात्रा में हार्डवेयर संसाधनों की आवश्यकता होती है, यह अधिक महंगा होता है और इन कर्नल की जटिलता के कारण कम अनुमान-योग्य और कम विश्वसनीय होता है।

[[एम्बेडेड लिनक्स [Embedded Linux]]] और [[विन्डोज़ CE [Windows CE]]] एम्बेडेड मोनोलिथिक कर्नल के सामान्य उदाहरण हैं।

हार्डवेयर की लागत बढ़ने के बावजूद इस प्रकार के एम्बेडेड सिस्टम की लोकप्रियता, विशेषत: अधिक शक्तिशाली एम्बेडेड उपकरणों, जैसे बेतार रूटर्स और GPS नेविगेशन सिस्टम्स पर, बढ़ती जा रही है। इसके कुछ कारण ये हैं:

  • सामान्य एम्बेडेड चिप सेट्स के लिए पोर्ट्स उपलब्ध हैं।
  • वे डिवाइस ड्राइवर्स, वेब सर्वर्स एवं फायरवॉल के लिए सार्वजनिक रूप से उपलब्ध कोड तथा अन्य कोड के पुन: प्रयोग की अनुमति देते हैं।
  • विकास प्रणालियां विशेषताओं के व्यापक समूह के साथ शुरुआत कर सकती हैं और बाद में अनावश्यक कार्यात्मकता को हटाने और इसके द्वारा प्रयोग की जाने वाली मेमोरी पर होने वाले खर्च को बचाने के लिए वितरण को विन्यासित किया जा सकता है।
  • अनेक इंजीनियर्स यह मानते हैं कि अनुप्रयोग कोड को यूज़र मोड में क्रियान्वित करना अधिक विश्वसनीय और डीबग करने में सरल होता है और इस कारण विकास प्रक्रिया अधिक सरल हो जाती है और कोड अधिक वहनीय हो जाता है।
  • अनेक एम्बेडेड सिस्टम्स में एक नियंत्रण सिस्टम की दृढ़ रीयल-टाइम आवश्यकताओं का अभाव होता है। एम्बेडेड लिनक्स [Linux] जैसा कोई सिस्टम अनेक अनुप्रयोगों के लिए प्रतिक्रया देने हेतु पर्याप्त रूप से तीव्र होता है।
  • जितनी तीव्र प्रतिक्रिया की गारंटी दी जा सकती हो, उससे अधिक तीव्र प्रतिक्रया की आवश्यकता वाली विशेषताओं को अक्सर हार्डवेयर में रखा जा सकता है।
  • अनेक RTOS सिस्टम्स की एक प्रति-इकाई लागत होती है। किसी ऐसे उत्पाद पर प्रयोग किये जाने पर, जो एक विक्रय-वस्तु है या बनेगा, यह लागत लक्षणीय होती है।

बाह्य कस्टम ऑपरेटिंग सिस्टम्स संपादित करें

एम्बेडेड सिस्टम्स के एक छोटे भाग को सुरक्षित, सामयिक, विश्वसनीय या दक्ष व्यवहार की आवश्यकता होती है, जिसे उपर्युक्त में से किसी एक संरचना द्वारा प्राप्त नहीं किया जा सकता. ऎसी स्थिति में संगठन एक उपयुक्त सिस्टम का निर्माण करता है। कुछ स्थितियों में, विशेष तकनीकों का प्रयोग करके सिस्टम को एक "क्रियाविधि नियंत्रक (Mechanism Controller)" और एक पारंपरिक ऑपरेटिंग सिस्टम के साथ एक "प्रदर्शन नियंत्रक (Display Controller)" में विभाजित किया जा सकता है। एक संवाद तंत्र दोनों के बीच डाटा का आदान-प्रदान करता है।

अतिरिक्त सॉफ्टवेयर घटक संपादित करें

मूल ऑपरेटिंग सिस्टम के अलावा, अनेक एम्बेडेड सिस्टम्स में उच्च-परत वाले अतिरिक्त सॉफ्टवेयर घटक होते हैं। इन घटकों में CAN, TCP/IP, FTP, HTTP तथा HTTPS जैसे प्रोटोकॉल स्टैक होते हैं और इनमें FAT और फ्लैश मेमोरी प्रबंधन सिस्टम जैसी भंडारण क्षमताएं भी शामिल होती हैं। यदि एम्बेडेड उपकरण में ऑडियो तथा वीडियो क्षमताएं हैं, तो उपयुक्त ड्राइवर एवं कोडेक्स सिस्टम में उपस्थित होंगे। मोनोलिथिक कर्नल की स्थिति में, इनमें से अनेक सॉफ्टवेयर परतें शामिल होती हैं। RTOS श्रेणी में अतिरिक्त सॉफ्टवेयर घटकों की उपलब्धता वाणिज्यिक पेशकश पर निर्भर होती है।

इन्हें भी देखें संपादित करें

सन्दर्भ संपादित करें

  1. Michael Barr. "Embedded Systems Glossary". Netrino Technical Library. मूल से 25 जून 2013 को पुरालेखित. अभिगमन तिथि 2007-04-21.
  2. Heath, Steve (2003). Embedded systems design. EDN series for design engineers (2 संस्करण). Newnes. पृ॰ 2. मूल से 8 जून 2013 को पुरालेखित. अभिगमन तिथि 18 जून 2010. An embedded system is a microprocessor based system that is built to control a function or a range of functions.
  3. Michael Barr; Anthony J. Massa (2006). "Introduction". Programming embedded systems: with C and GNU development tools. O'Reilly. पपृ॰ 1–2. मूल से 8 जून 2013 को पुरालेखित. अभिगमन तिथि 18 जून 2010.
  4. Bill Giovino (Industry Analyst). "Microcontroller.com - Embedded Systems supersite". मूल से 15 जून 2010 को पुरालेखित. अभिगमन तिथि 18 जून 2010. पाठ "Bill Giovino" की उपेक्षा की गयी (मदद)
  5. Embedded.com - अंडर द हूड: रोबोट गिटार एम्बेड्स ऑटोट्यूनिंग Archived 2008-07-08 at the वेबैक मशीन डेविड केरी द्वारा, टेकऑनलाइन EE टाइम्स (04/22/08, 11:10:00 AM EDT) एम्बेडेड सिस्टम्स डिजाइन - Embedded.com
  6. आपका सिस्टम सुरक्षित है? Archived 2011-06-08 at the वेबैक मशीनइसे साबित कीजिए! Archived 2011-06-08 at the वेबैक मशीन, गेरनॉट हेइज़र, दिसंबर 2007, खंड 2 अंक 6 पृष्ठ 35-38,; लॉगिन: द USENIX मैगज़ीन

बाहरी कड़ियाँ संपादित करें