उपकरणों के नियंत्रण के लिए सॉफ्टवेयर

From Vigyanwiki
Revision as of 10:43, 2 March 2023 by alpha>Indicwiki (Created page with "{{Short description|Computer software written to control machines not typically thought of as computers}} एंबेडेड सॉफ़्टवेयर कंप्...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

एंबेडेड सॉफ़्टवेयर कंप्यूटर सॉफ़्टवेयर है, जो मशीनों या उपकरणों को नियंत्रित करने के लिए लिखा जाता है, जिसे आमतौर पर कंप्यूटर के रूप में नहीं माना जाता है, जिसे आमतौर पर अंतः स्थापित प्रणालियाँ के रूप में जाना जाता है। यह विशेष रूप से विशेष इलेक्ट्रॉनिक हार्डवेयर के लिए विशिष्ट है जिस पर यह चलता है और इसमें समय और मेमोरी की कमी होती है।[1] इस शब्द का प्रयोग कभी-कभी फर्मवेयर के साथ परस्पर विनिमय के लिए किया जाता है।[2]

SMSC LAN91C110 (SMSC 91x) चिप का क्लोज़-अप, एक एम्बेडेड ईथरनेट चिप

एक सटीक और स्थिर विशेषता यह है कि एम्बेडेड सॉफ़्टवेयर के कोई भी या सभी कार्यों को मानव इंटरफ़ेस के माध्यम से शुरू/नियंत्रित नहीं किया जाता है, बल्कि इसके बजाय मशीन-इंटरफ़ेस के माध्यम से किया जाता है।[3]

उदाहरण के लिए निर्माता कारें, टेलीफोन, मोडेम, रोबोट, उपकरण, खिलौने, सुरक्षा प्रणाली, पेसमेकर, टीवी और सेट-टॉप बॉक्स और डिजिटल घड़ियों के इलेक्ट्रॉनिक्स में एम्बेडेड सॉफ़्टवेयर का निर्माण करते हैं।[4] यह सॉफ़्टवेयर बहुत सरल हो सकता है, जैसे कि कुछ किलोबाइट मेमोरी के साथ 8 बिट microcontroller पर चलने वाले प्रकाश नियंत्रण, प्रसंस्करण जटिलता के उपयुक्त स्तर के साथ संभवतः लगभग सही संगणना ढांचे के साथ निर्धारित[5] (यादृच्छिक एल्गोरिदम पर आधारित एक पद्धति)। हालांकि, एम्बेडेड सॉफ़्टवेयर राउटर (कंप्यूटिंग), ऑप्टिकल नेटवर्क तत्वों, हवाई जहाज, मिसाइल और प्रक्रिया नियंत्रण प्रणाली जैसे अनुप्रयोगों में बहुत परिष्कृत हो सकता है।[6]


ऑपरेटिंग सिस्टम

मानक कंप्यूटरों के विपरीत जो आम तौर पर macOS, Microsoft Windows या Linux जैसे ऑपरेटिंग सिस्टम का उपयोग करते हैं, एम्बेडेड सॉफ़्टवेयर किसी ऑपरेटिंग सिस्टम का उपयोग नहीं कर सकते हैं। जब वे एक का उपयोग करते हैं, तो विभिन्न प्रकार के ऑपरेटिंग सिस्टम को चुना जा सकता है, आमतौर पर एक रीयल-टाइम ऑपरेटिंग सिस्टम। एम्बेडेड सॉफ़्टवेयर के लिए कोड आमतौर पर C (प्रोग्रामिंग भाषा) या C++ में लिखा जाता है, लेकिन विभिन्न उच्च-स्तरीय प्रोग्रामिंग भाषाएँ, जैसे कि जावा (प्रोग्रामिंग भाषा), पायथन (प्रोग्रामिंग भाषा) और जावास्क्रिप्ट, अब माइक्रोकंट्रोलर्स को लक्षित करने के लिए भी आम उपयोग में हैं। अंतः स्थापित प्रणालियाँ।[7] सभा की भाषा का भी अक्सर उपयोग किया जाता है, खासकर बूटिंग और बाधा डालना हैंडलिंग में। Ada (प्रोग्रामिंग लैंग्वेज) का उपयोग कुछ सैन्य और विमानन परियोजनाओं में किया जाता है।

एप्लिकेशन सॉफ़्टवेयर से अंतर

MicroVGA का उपयोग कर एंबेडेड सिस्टम टेक्स्ट यूजर इंटरफेस[nb 1]

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

एंबेडेड सॉफ़्टवेयर को निर्माण समय पर सभी आवश्यक डिवाइस ड्राइवरों को शामिल करने की आवश्यकता होती है, और डिवाइस ड्राइवर विभिन्न हार्डवेयर उपकरणों के लिए लिखे जाते हैं। ये डिवाइस ड्राइवर, जिन्हें BSP (बोर्ड समर्थन पैकेज ) कहा जाता है, हार्डवेयर-विशिष्ट ड्राइवर और अन्य रूटीन वाले सॉफ़्टवेयर की परत बनाते हैं जो एक विशेष ऑपरेटिंग सिस्टम (पारंपरिक रूप से एक रीयल-टाइम ऑपरेटिंग सिस्टम, या RTOS) को एक विशेष हार्डवेयर वातावरण में कार्य करने की अनुमति देते हैं। (एक कंप्यूटर या सीपीयू कार्ड), आरटीओएस के साथ ही एकीकृत। सॉफ्टवेयर सीपीयू और चुने गए विशिष्ट चिप्स पर अत्यधिक निर्भर है। अधिकांश एम्बेडेड सॉफ़्टवेयर इंजीनियरों के पास रजिस्टरों और संचार प्रणाली के उपयोग को निर्धारित करने के लिए ढांच के रूप में ्स पढ़ने और घटकों के लिए डेटा शीट पढ़ने का कम से कम ज्ञान होता है। बिट हेरफेर का उपयोग करने के साथ-साथ दशमलव, हेक्साडेसिमल और बाइनरी अंक प्रणाली के बीच रूपांतरण उपयोगी है।[8] वेब एप्लिकेशन का उपयोग अक्सर हार्डवेयर के प्रबंधन के लिए किया जाता है, हालांकि प्रदर्शन के लिए XML फाइलें और अन्य आउटपुट कंप्यूटर को पास किए जा सकते हैं। फ़ोल्डर्स के साथ फ़ाइल सिस्टम आमतौर पर उपयोग किए जाते हैं, हालांकि SQL डेटाबेस अक्सर अनुपस्थित होते हैं।

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

स्टोरेज मेमोरी और रैम का आकार महत्वपूर्ण रूप से भिन्न हो सकता है। कुछ सिस्टम 16 केबी फ्लैश और 4 केबी रैम में चलते हैं, जिसमें सीपीयू 8 मेगाहर्ट्ज पर काम करता है, अन्य सिस्टम समकालीन कंप्यूटरों को टक्कर दे सकते हैं।[9] इन स्पेस आवश्यकताओं के कारण C++ के बजाय C या एम्बेडेड सी ++ में अधिक काम किया जा रहा है। व्याख्या की गई भाषाएँ जैसे बुनियादी (जबकि उदाहरण के लिए Parallax Propeller#BASIC संकलक संकलित BASIC का उपयोग कर सकते हैं) और जावा प्रोग्रामिंग भाषा (जावा एमई एंबेडेड 8.3[10] उदाहरण के लिए उपलब्ध है ARM Cortex-M4, Cortex-M7 माइक्रोकंट्रोलर और पुराने ARM11 जिनका प्रयोग Raspberry Pi और Intel Galileo Gen. 2 में किया जाता है) आमतौर पर उपयोग नहीं किए जाते हैं; व्याख्या किए गए पायथन (प्रोग्रामिंग भाषा) 3 भाषा के कार्यान्वयन के दौरान – माइक्रोपायथन – हालांकि माइक्रोकंट्रोलर उपयोग के लिए स्पष्ट रूप से उपलब्ध है, उदा। एआरएम कॉर्टेक्स-एम विकास उपकरण-आधारित (जैसे बीबीसी माइक्रो बिट | माइक्रो: बिट) की 32-बिट सूची और 16-बिट तस्वीर माइक्रोकंट्रोलर

संचार प्रोटोकॉल

प्रोसेसर के बीच और एक प्रोसेसर और अन्य घटकों के बीच संचार आवश्यक है। स्मृति पता के अलावा, हार्डवेयर स्तर के सामान्य प्रोटोकॉल में I²C, सीरियल पेरिफेरल इंटरफेस बस, आनुक्रमिक द्वार , 1-तार , इथरनेट और यूनिवर्सल सीरियल बस शामिल हैं।

एम्बेडेड सिस्टम में उपयोग के लिए डिज़ाइन किए गए संचार प्रोटोकॉल NicheStack TCP/IPv4 और CMX सिस्टम सहित कंपनियों से बंद स्रोत के रूप में उपलब्ध हैं। ओपन-सोर्स मॉडल | ओपन-सोर्स प्रोटोकॉल यूआईपी (माइक्रो आईपी), एलडब्ल्यूआईपी और अन्य से उत्पन्न होते हैं।

यह भी देखें

टिप्पणियाँ

  1. For more details of MicroVGA see this PDF.


संदर्भ

  • Edward A. Lee, "Embedded Software", Advances in Computers (Marvin Victor Zelkowitz, editor) 56, Academic Press, London, 2002.
  1. "Stroustrup on C++ for embedded (bottom p.2)" (PDF). Retrieved 9 December 2012.
  2. Emilio, Maurizio Di Paolo (2014-09-01). हाई-स्पीड डेटा अधिग्रहण और नियंत्रण के लिए एंबेडेड सिस्टम डिज़ाइन (in English). Springer. ISBN 978-3-319-06865-7.
  3. "आई.सी.एस. एम्बेडेड सॉफ्टवेयर पर". Archived from the original on 22 March 2013. Retrieved 22 July 2013.
  4. "एंबेडेड सिस्टम के तरीके और प्रौद्योगिकियां". Archived from the original on 29 October 2013. Retrieved 9 December 2012.
  5. Alippi, Cesare (2014), Intelligence for Embedded Systems, Springer, ISBN 978-3-319-05278-6.
  6. http://ptolemy.eecs.berkeley.edu/publications/papers/02/embsoft/embsoftwre.pdf[bare URL PDF]
  7. Mazzei, Daniele; Montelisciani, Gabriele; Baldi, Giacomo; Fantoni, Gualtiero (2015). आईओटी डोमेन में एम्बेडेड के लिए प्रोग्रामिंग प्रतिमान बदलना. Internet of Things (WF-IoT), 2015 IEEE 2nd World Forum on. Milan: IEEE. pp. 239–244. doi:10.1109/WF-IoT.2015.7389059.
  8. "एम्बेडेड सॉफ्टवेयर पर स्ट्राउस्ट्रप". Archived from the original on 3 February 2013. Retrieved 9 December 2012.
  9. "एम्बेडेड सीपीयू का उदाहरण". Retrieved 9 December 2012.
  10. "जावा एमई एंबेडेड". Oracle Technology Network.