सिंगल-बोर्ड माइक्रोकंट्रोलर: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
[[Image:Mck glamor 320.jpg|thumb|right|Atmel AT91SAM7X256 ([[एआरएम वास्तुकला|एआरएम संरचना]]) माइक्रोकंट्रोलर के साथ [[ कंट्रोलर किट बनाएं |कंट्रोलर किट बनाएं]] ।]]सिंगल-बोर्ड [[ microcontroller |माइक्रोकंट्रोलर]] मुख्य रूप से सिंगल [[ मुद्रित सर्किट बोर्ड |प्रिंटेड सर्किट बोर्ड]] पर बनाया जाने वाला माइक्रोकंट्रोलर है। यह बोर्ड उपयोगी नियंत्रण के आधार पर कार्य के लिए आवश्यक सभी सर्किटरी प्रदान करता है: [[माइक्रोप्रोसेसर]], इनपुट/आउटपुट परिपथ, [[ घड़ी जनरेटर |घड़ी जनरेटर]] , रैम, संग्रहीत प्रोग में[[ टक्कर मारना | संघट्ट]] करने के लिए मेमोरी और किसी भी आवश्यक एकीकृत परिपथ के रूप में उपयोग किया जाता हैं। इसका आशय यह है कि नियंत्रक हार्डवेयर विकसित करने के लिए समय और प्रयास खर्च करने की आवश्यकता के बिना, बोर्ड एप्लिकेशन डेवलपर के लिए तुरंत उपयोगी है।
[[Image:Mck glamor 320.jpg|thumb|right|Atmel AT91SAM7X256 ([[एआरएम वास्तुकला]]) माइक्रोकंट्रोलर के साथ [[ कंट्रोलर किट बनाएं |कंट्रोलर किट बनाएं]] ।]]सिंगल-बोर्ड [[ microcontroller |microcontroller]] सिंगल [[ मुद्रित सर्किट बोर्ड |मुद्रित सर्किट बोर्ड]] पर बना माइक्रोकंट्रोलर है। यह बोर्ड उपयोगी नियंत्रण कार्य के लिए आवश्यक सभी सर्किटरी प्रदान करता है: [[माइक्रोप्रोसेसर]], इनपुट/आउटपुट|I/O सर्किट, [[ घड़ी जनरेटर |घड़ी जनरेटर]] , रैम, संग्रहीत प्रोग्[[ टक्कर मारना | टक्कर मारना]] मेमोरी और कोई भी आवश्यक समर्थन एकीकृत सर्किट। आशय यह है कि नियंत्रक हार्डवेयर विकसित करने के लिए समय और प्रयास खर्च करने की आवश्यकता के बिना, बोर्ड एप्लिकेशन डेवलपर के लिए तुरंत उपयोगी है।


चूंकि वे सामान्यतः कम लागत वाले होते हैं, और विकास के लिए विशेष रूप से कम पूंजी लागत होती है, एकल-बोर्ड माइक्रोकंट्रोलर लंबे समय से शिक्षा में लोकप्रिय रहे हैं। वे डेवलपर्स के लिए नए [[प्रोसेसर परिवार]] के साथ अनुभव प्राप्त करने के लिए लोकप्रिय साधन भी हैं।
चूंकि वे सामान्यतः कम लागत वाले होते हैं, और विकास के लिए विशेष रूप से कम पूंजी लागत होती है, एकल-बोर्ड माइक्रोकंट्रोलर लंबे समय से शिक्षा में लोकप्रिय रहे हैं। वे डेवलपर्स के लिए नए [[प्रोसेसर परिवार]] के साथ अनुभव प्राप्त करने के लिए लोकप्रिय साधन भी हैं।


== उत्पत्ति ==
== उत्पत्ति ==
1970 के दशक के अंत में सिंगल-बोर्ड माइक्रोकंट्रोलर दिखाई दिए, जब [[एमओएस टेक्नोलॉजी 6502]] और [[Zilog Z80]] जैसे शुरुआती माइक्रोप्रोसेसरों की उपस्थिति हुई।<ref name="ETI, Marvin" >{{Cite journal
1970 के दशक के अंत में सिंगल-बोर्ड माइक्रोकंट्रोलर दिखाई दिए, जब [[एमओएस टेक्नोलॉजी 6502]] और [[Zilog Z80|ज़िआईलाॅग Z80]] जैसे प्रारंभिक माइक्रोप्रोसेसरों की उपस्थिति करता हैं।<ref name="ETI, Marvin" >{{Cite journal
   |journal=[[Electronics Today International]]
   |journal=[[Electronics Today International]]
   |title='Marvin' - Z80 Control Computer
   |title='Marvin' - Z80 Control Computer
Line 11: Line 10:
   |author2=David Harris
   |author2=David Harris
   |date= August–October 1983
   |date= August–October 1983
}}</ref> ही बोर्ड पर संपूर्ण नियंत्रक बनाने के लिए इसे व्यावहारिक बना दिया, साथ ही अपेक्षाकृत छोटे कार्य के लिए कंप्यूटर समर्पित करने के लिए सस्ती।
}}</ref> इस बोर्ड पर संपूर्ण नियंत्रक बनाने के लिए इसे व्यावहारिक रूप से बनाया गया हैं, साथ ही अपेक्षाकृत छोटे-छोटे कार्यों को करने के लिए कंप्यूटर समर्पित करने के लिए इनका उपयोग किया जाता हैं।


मार्च 1976 में, [[इंटेल]] ने एकल-बोर्ड कंप्यूटर उत्पाद की घोषणा की, जो उनके [[8080]] माइक्रोप्रोसेसर के लिए आवश्यक सभी सहायक घटकों को एकीकृत करता है, साथ ही 1 [[किलोबाइट]] रैम, 4 किलोबाइट उपयोगकर्ता-प्रोग्राम करने योग्य ROM, और समानांतर डिजिटल I/O की 48 पंक्तियों के साथ लाइन चालक। बोर्ड ने बस कनेक्टर के माध्यम से विस्तार की भी पेशकश की, किन्तु इसका उपयोग विस्तार कार्ड केज के बिना किया जा सकता है जब अनुप्रयोगों को अतिरिक्त हार्डवेयर की आवश्यकता नहीं होती है। इस सिस्टम के लिए सॉफ्टवेयर डेवलपमेंट इंटेल के [[इंटेलेक एमडीएस]] माइक्रो कंप्यूटर डेवलपमेंट सिस्टम पर होस्ट किया गया था; यह असेंबलर और पीएल/एम समर्थन प्रदान करता है, और डिबगिंग के लिए [[इन-सर्किट अनुकरण]] की अनुमति देता है।<ref>[http://www.dvq.com/docs/brochures/intel_sbc_80_10.pdf Intel SBC 80/10 Single Board Computer brochure], 1976</ref>
मार्च 1976 में, [[इंटेल]] ने एकल-बोर्ड कंप्यूटर उत्पाद की घोषणा की गई हैं, जो उनके [[8080]] माइक्रोप्रोसेसर के लिए आवश्यक सभी सहायक घटकों को एकीकृत करता है, साथ ही 1 [[किलोबाइट]] रैम, 4 किलोबाइट उपयोगकर्ता-प्रोग्राम करने योग्य रोम, और समानांतर डिजिटल I/O की 48 पंक्तियों के साथ लाइन चालक के रूप में उपयोग किया जाता हैं। इस बोर्ड ने बस संयोजन के माध्यम से विस्तार की भी प्रस्तुति की हैं, किन्तु इसका उपयोग विस्तार कार्ड केज के बिना किया जा सकता है जब अनुप्रयोगों को अतिरिक्त हार्डवेयर की आवश्यकता नहीं होती है। इस सिस्टम के लिए सॉफ्टवेयर डेवलपमेंट इंटेल के [[इंटेलेक एमडीएस]] माइक्रो कंप्यूटर डेवलपमेंट सिस्टम पर होस्ट किया गया था, यह असेंबलर और पीएल/एम समर्थन प्रदान करता है, और डिबगिंग के लिए [[इन-सर्किट अनुकरण]] की अनुमति देता है।<ref>[http://www.dvq.com/docs/brochures/intel_sbc_80_10.pdf Intel SBC 80/10 Single Board Computer brochure], 1976</ref>
इस युग के प्रोसेसर को प्रोसेसर के बाहर सम्मिलित करने के लिए कई सपोर्ट चिप्स की आवश्यकता होती है। रैम और ईपीरॉम अलग-अलग थे, अधिकांशतः [[डायनेमिक रैंडम-एक्सेस मेमोरी]] के लिए मेमोरी मैनेजमेंट या रीफ्रेश सर्किट्री की आवश्यकता होती थी। I/O प्रसंस्करण चिप जैसे [[इंटेल 8255]] द्वारा किया जा सकता है, किन्तु अधिकांशतः कई और चिप्स की आवश्यकता होती है।


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


== आंतरिक बस ==
== आंतरिक बस ==
[[Z80]] और [[6502]] जैसे प्रारंभिक एकल-बोर्ड उपकरणों की [[बस (कंप्यूटिंग)]], सार्वभौमिक रूप से [[वॉन न्यूमैन वास्तुकला]] थी। प्रोग्राम और डेटा मेमोरी को ही साझा बस के माध्यम से एक्सेस किया गया था, भले ही वे मौलिक रूप से विभिन्न प्रकार की मेमोरी में संग्रहीत थे: प्रोग्राम के लिए [[ केवल पढ़ने के लिये मेमोरी |केवल पढ़ने के लिये मेमोरी]] और डेटा के लिए रैम। प्रोसेसर के सर्वव्यापी डुअल-इन-लाइन आईसी पैकेज के लिए उपलब्ध सीमित 40 में से आवश्यक पिनों की संख्या को कम करने के लिए इस बस आर्किटेक्चर की आवश्यकता थी।
[[Z80|जेड80]] और [[6502]] जैसे प्रारंभिक एकल-बोर्ड उपकरणों की [[बस (कंप्यूटिंग)]], सार्वभौमिक रूप से [[वॉन न्यूमैन वास्तुकला|वॉन न्यूमैन संरचना]] थी। प्रोग्राम और डेटा मेमोरी को ही साझा बस के माध्यम से एक्सेस किया गया था, भले ही वे मौलिक रूप से विभिन्न प्रकार की मेमोरी में संग्रहीत थे: प्रोग्राम के लिए [[ केवल पढ़ने के लिये मेमोरी |केवल पढ़ने के लिये मेमोरी]] और डेटा के लिए रैम का उपयोग किया जाता हैं। प्रोसेसर के सर्वव्यापी डुअल-इन-लाइन आईसी पैकेज के लिए उपलब्ध सीमित 40 में से आवश्यक पिनों की संख्या को कम करने के लिए इस बस संरचना की आवश्यकता थी।


एक विस्तार कनेक्टर के माध्यम से आंतरिक बस तक पहुंच की पेशकश करना आम था, या कम से कम कनेक्टर को सोल्डर करने के लिए जगह प्रदान करना। यह कम लागत वाला विकल्प था और विस्तार की क्षमता की पेशकश करता था, भले ही इसका उपयोग शायद ही कभी किया गया हो। विशिष्ट विस्तार I/O डिवाइस या अतिरिक्त मेमोरी होंगे। टेप या डिस्क स्टोरेज, या CRT डिस्प्ले जैसे परिधीय उपकरणों को जोड़ना असामान्य था
इस विस्तारित संयोजन के माध्यम से आंतरिक बस तक पहुंच की प्रस्तुति करना सरल था, या कम से कम संयोजन को सोल्डर करने के लिए जगह प्रदान किया जाता हैं। यह कम लागत वाले विकल्प थे और इनमें विस्तार करने की क्षमता की प्रस्तुति थी, भले ही इसका उपयोग संभवतः कभी की गयी हो। इस विशिष्ट विस्तार I/O डिवाइस या अतिरिक्त मेमोरी उपयोग की जाती हैं। टेप या डिस्क स्टोरेज, या सीआरटी डिस्प्ले जैसे परिधीय उपकरणों को जोड़ना असामान्य था।


बाद में, जब #सिंगल-चिप माइक्रोकंट्रोलर|सिंगल-चिप माइक्रोकंट्रोलर, जैसे कि [[8048]], उपलब्ध हो गए, तो बस को पैकेज के बाहर उजागर करने की आवश्यकता नहीं थी, क्योंकि चिप पैकेज के भीतर सभी आवश्यक मेमोरी प्रदान की जा सकती थी। प्रोसेसर की इस पीढ़ी ने अलग-अलग प्रोग्राम और डेटा बसों के [[संशोधित [[हार्वर्ड वास्तुकला]]]] का उपयोग किया, दोनों आंतरिक चिप के लिए। इनमें से कई प्रोसेसरों ने संशोधित हार्वर्ड आर्किटेक्चर का उपयोग किया, जहां प्रोग्राम डेटा स्पेस में कुछ लिखने की पहुंच संभव थी, इस प्रकार इन-सर्किट प्रोग्रामिंग की अनुमति थी। इनमें से किसी भी प्रोसेसर के लिए एकल-बोर्ड माइक्रोकंट्रोलर पर हार्वर्ड बस की आवश्यकता या समर्थन नहीं है। जब उन्होंने बाह्य उपकरणों के विस्तार के लिए बस का समर्थन किया, तो समर्पित I/O बस, जैसे I²C, [[ 1-तार |1-तार]] या विभिन्न [[सीरियल बस]]ों का उपयोग किया गया।
इसके पश्चात जब सिंगल चिप माइक्रोकंट्रोलर या सिंगल-चिप माइक्रोकंट्रोलर, जैसे कि [[8048]] उपलब्ध हो गए, तो बस को पैकेज के बाहर उजागर करने की आवश्यकता नहीं थी, क्योंकि चिप पैकेज के भीतर सभी आवश्यक मेमोरी प्रदान की जा सकती थी। प्रोसेसर की इस पीढ़ी ने अलग-अलग प्रोग्राम और दोनों आंतरिक चिप के लिए डेटा बसों के संशोधित [[हार्वर्ड वास्तुकला|हार्वर्ड संरचना]] का उपयोग किया था। इनमें से कई प्रोसेसरों ने संशोधित हार्वर्ड संरचना का उपयोग किया गया था, जहां प्रोग्राम डेटा स्पेस में कुछ लिखने की पहुंच संभव थी, इस प्रकार इन-सर्किट प्रोग्रामिंग की अनुमति थी। इनमें से किसी भी प्रोसेसर के लिए एकल-बोर्ड माइक्रोकंट्रोलर पर हार्वर्ड बस की आवश्यकता या समर्थन नहीं है। जब उन्होंने बाह्य उपकरणों के विस्तार के लिए बस का समर्थन किया, तो समर्पित I/O बस, जैसे I²C, [[ 1-तार |1-तार]] या विभिन्न [[सीरियल बस]] का उपयोग किया गया था।


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


== इनपुट और आउटपुट ==
== इनपुट और आउटपुट ==
[[Image:Arduino Diecimila.jpg|thumb|right|Atmel ATMEGA168 के साथ [[Arduino]] Diecimila]]माइक्रोकंट्रोलर सिस्टम बाहरी वास्तविक दुनिया प्रणाली को नियंत्रित करने के लिए एप्लिकेशन सॉफ़्टवेयर को अनुमति देने के लिए इनपुट और आउटपुट सिग्नल के कई रूप प्रदान करते हैं। असतत डिजिटल I/O डेटा का बिट (चालू या बंद) प्रदान करता है। तापमान या दबाव जैसे निरंतर चर रेंज का प्रतिनिधित्व करने वाले एनालॉग सिग्नल, माइक्रोकंट्रोलर्स के लिए इनपुट और आउटपुट भी हो सकते हैं।
[[Image:Arduino Diecimila.jpg|thumb|right|Atmel ATMEGA168 के साथ [[Arduino|आर्ड्यूनों]] Diecimila]]माइक्रोकंट्रोलर सिस्टम बाहरी वास्तविक दुनिया प्रणाली को नियंत्रित करने के लिए एप्लिकेशन सॉफ़्टवेयर को अनुमति देने के लिए इनपुट और आउटपुट सिग्नल के कई रूप प्रदान करते हैं। असतत डिजिटल I/O डेटा का बिट (चालू या बंद) प्रदान करता है। तापमान या दबाव जैसे निरंतर वैरियेबल सीमा का प्रतिनिधित्व करने वाले एनालॉग सिग्नल, माइक्रोकंट्रोलर्स के लिए इनपुट और आउटपुट भी हो सकते हैं।


असतत डिजिटल इनपुट और आउटपुट को माइक्रोप्रोसेसर डेटा बस से केवल एड्रेसेबल लैच द्वारा बफर किया जा सकता है, या विशेष इनपुट/आउटपुट आईसी द्वारा संचालित किया जा सकता है, जैसे कि इंटेल 8255 या मोटोरोला 6821 पेरिफेरल इंटरफेस एडेप्टर|समानांतर इनपुट/आउटपुट एडेप्टर। बाद में सिंगल-चिप माइक्रोकंट्रोलर्स के पास इनपुट और आउटपुट पिन उपलब्ध होते हैं। ये इनपुट/आउटपुट सर्किट सामान्यतः लैंप या मोटर जैसे उपकरणों को सीधे संचालित करने के लिए पर्याप्त करंट प्रदान नहीं करते हैं, इसलिए सॉलिड-स्टेट रिले को माइक्रोकंट्रोलर डिजिटल आउटपुट द्वारा संचालित किया जाता है, और [[ संकेत अनुकूलन |संकेत अनुकूलन]] लेवल-शिफ्टिंग और प्रोटेक्शन सर्किट द्वारा इनपुट को अलग किया जाता है।
असतत डिजिटल इनपुट और आउटपुट को माइक्रोप्रोसेसर डेटा बस से केवल एड्रेसेबल लैच द्वारा बफर किया जा सकता है, या विशेष इनपुट/आउटपुट आईसी द्वारा संचालित किया जा सकता है, जैसे कि इंटेल 8255 या मोटोरोला 6821 पेरिफेरल इंटरफेस एडेप्टर|समानांतर इनपुट/आउटपुट एडेप्टर के रूप में उपयोग किया जाता हैं। इसके पश्चात सिंगल-चिप माइक्रोकंट्रोलर्स के पास इनपुट और आउटपुट पिन उपलब्ध होती हैं। ये इनपुट/आउटपुट परिपथ सामान्यतः लैंप या मोटर जैसे उपकरणों को सीधे संचालित करने के लिए पर्याप्त करंट प्रदान नहीं करते हैं, इसलिए सॉलिड-स्टेट रिले को माइक्रोकंट्रोलर डिजिटल आउटपुट द्वारा संचालित किया जाता है, और [[ संकेत अनुकूलन |संकेत अनुकूलन]] लेवल-शिफ्टिंग और प्रोटेक्शन सर्किट द्वारा इनपुट को अलग किया जाता है।
   
   
कुछ माइक्रोकंट्रोलर बोर्डों पर एनालॉग मल्टीप्लेक्सर और सामान्य [[एनॉलॉग से डिजिटल परिवर्तित करने वाला उपकरण]] के साथ या अधिक एनालॉग इनपुट पाए जाते हैं। एनालॉग आउटपुट डिजिटल-टू-एनालॉग कनवर्टर का उपयोग कर सकते हैं या, कुछ माइक्रोकंट्रोलर्स पर, पल्स-चौड़ाई मॉडुलन द्वारा नियंत्रित किया जा सकता है। असतत इनपुट के लिए, इनपुट को स्केल करने के लिए या [[ व्हीटस्टोन पुल |व्हीटस्टोन पुल]] एक्साइटेशन या कोल्ड जंक्शन क्षतिपूर्ति जैसे कार्यों को प्रदान करने के लिए बाहरी सर्किट की आवश्यकता हो सकती है।
कुछ माइक्रोकंट्रोलर बोर्डों पर एनालॉग मल्टीप्लेक्सर और सामान्य [[एनॉलॉग से डिजिटल परिवर्तित करने वाला उपकरण]] के साथ या अधिक एनालॉग इनपुट पाए जाते हैं। एनालॉग आउटपुट डिजिटल-टू-एनालॉग कनवर्टर का उपयोग कर सकते हैं या, कुछ माइक्रोकंट्रोलर्स पर, पल्स-चौड़ाई मॉडुलन द्वारा नियंत्रित किया जा सकता है। असतत इनपुट के लिए, इनपुट को स्केल करने के लिए या [[ व्हीटस्टोन पुल |व्हीटस्टोन पुल]] एक्साइटेशन या कोल्ड जंक्शन क्षतिपूर्ति जैसे कार्यों को प्रदान करने के लिए बाहरी सर्किट की आवश्यकता हो सकती है।


घटक लागतों को नियंत्रित करने के लिए, कई बोर्डों को अतिरिक्त हार्डवेयर इंटरफ़ेस सर्किट के साथ डिज़ाइन किया गया था, किन्तु इन सर्किटों के लिए घटकों के बिना, बोर्ड को खाली छोड़ दिया गया। वितरण पर सर्किट को विकल्प के रूप में जोड़ा गया था, या बाद में आबाद किया जा सकता था।
घटक लागतों को नियंत्रित करने के लिए, कई बोर्डों को अतिरिक्त हार्डवेयर इंटरफ़ेस सर्किट के साथ डिज़ाइन किया गया था, किन्तु इन सर्किटों के लिए घटकों के बिना, बोर्ड को खाली छोड़ दिया गया है। इस वितरण पर परिपथ को विकल्प के रूप में संयोजित किया गया था, या बाद में स्वतंत्र किया जा सकता था।


बोर्डों के लिए प्रोटोटाइपिंग क्षेत्रों को सम्मिलित करना आम बात है, बोर्ड के क्षेत्रों को सोल्डर करने योग्य [[ ब्रेड बोर्ड |ब्रेड बोर्ड]] क्षेत्र के रूप में बस और पावर रेल उपलब्ध हैं, किन्तु परिभाषित सर्किट के बिना। कई नियंत्रक, विशेष रूप से जो प्रशिक्षण के लिए अभिप्रेत हैं, उनमें अतिरिक्त I/O सर्किट के आसान प्रोटोटाइप के लिए प्लग करने योग्य, पुन: उपयोग करने योग्य ब्रेडबोर्ड भी सम्मिलित है जिसे बाद की परियोजनाओं के लिए परिवर्तित कर दिया जा सकता हैं या हटाया जा सकता है।
बोर्डों के लिए प्रोटोटाइपिंग क्षेत्रों को सम्मिलित करना सरल बात है, बोर्ड के क्षेत्रों को सोल्डर करने योग्य [[ ब्रेड बोर्ड |ब्रेड बोर्ड]] क्षेत्र के रूप में बस और पावर रेल उपलब्ध हैं। किन्तु परिभाषित सर्किट के बिना कई नियंत्रक, विशेष रूप से जो प्रशिक्षण के लिए अभिप्रेत अवस्था में रहते हैं, उनमें अतिरिक्त I/O सर्किट के सरल प्रोटोटाइप के लिए प्लग करने योग्य, पुन: उपयोग करने योग्य ब्रेडबोर्ड भी सम्मिलित है जिसे पश्चात परियोजनाओं के लिए परिवर्तित कर दिया जा सकता हैं या हटाया जा सकता है।


== संचार और यूजर इंटरफेस ==
== संचार और यूजर इंटरफेस ==
माइक्रोकंट्रोलर सिस्टम की उम्र के आधार पर संचार इंटरफेस अलग-अलग होते हैं। शुरुआती सिस्टम [[RS-232]] या [[वर्तमान परिपथ]] प्रदान करने के लिए [[ आनुक्रमिक द्वार |आनुक्रमिक द्वार]] लागू कर सकते हैं। सीरियल पोर्ट का उपयोग एप्लिकेशन प्रोग्राम द्वारा किया जा सकता है या प्रोग्राम को माइक्रोकंट्रोलर मेमोरी में स्थानांतरित करने के लिए मॉनिटर रोम के संयोजन के साथ उपयोग किया जा सकता है। वर्तमान माइक्रोकंट्रोलर [[USB|यूएसबी]], वायरलेस नेटवर्क ([[Wi-Fi|वाईफाई]], [[Zigbee|जिग्बी]], या अन्य) का समर्थन कर सकते हैं, या ईथरनेट कनेक्शन प्रदान कर सकते हैं। इसके अतिरिक्त, वे टीसीपी/आईपी प्रोटोकॉल स्टैक का समर्थन कर सकते हैं। कुछ उपकरणों में वेब सर्वर को लागू करने के लिए फर्मवेयर उपलब्ध होता है, जिससे एप्लिकेशन डेवलपर तेजी से वेब-सक्षम उपकरण या सिस्टम बना सकता है।
माइक्रोकंट्रोलर सिस्टम की उम्र के आधार पर संचार इंटरफेस अलग-अलग होते हैं। प्रारंभिक प्रणालियों में आरएस[[RS-232|-232]] या [[वर्तमान परिपथ]] प्रदान करने के लिए [[ आनुक्रमिक द्वार |आनुक्रमिक द्वार]] लागू कर सकते हैं। सीरियल पोर्ट का उपयोग एप्लिकेशन प्रोग्राम द्वारा किया जा सकता है या प्रोग्राम को माइक्रोकंट्रोलर मेमोरी में स्थानांतरित करने के लिए मॉनिटर रोम के संयोजन के साथ उपयोग किया जा सकता है। वर्तमान माइक्रोकंट्रोलर [[USB|यूएसबी]], वायरलेस नेटवर्क ([[Wi-Fi|वाईफाई]], [[Zigbee|जिग्बी]], या अन्य) का समर्थन कर सकते हैं, या ईथरनेट कनेक्शन प्रदान कर सकते हैं। इसके अतिरिक्त, वे टीसीपी/आईपी प्रोटोकॉल स्टैक का समर्थन कर सकते हैं। कुछ उपकरणों में वेब सर्वर को लागू करने के लिए फर्मवेयर उपलब्ध होता है, जिससे एप्लिकेशन डेवलपर तेजी से वेब-सक्षम उपकरण या सिस्टम बना सकता है।


== प्रोग्रामिंग ==
== प्रोग्रामिंग ==
कई शुरुआती सिस्टम में प्रोग्रामिंग के लिए कोई आंतरिक सुविधा नहीं थी, और इस कार्य के लिए अलग होस्ट सिस्टम पर निर्भर थे। यह प्रोग्रामिंग सामान्यतः [[सभा की भाषा]] में या कभी-कभी C (प्रोग्रामिंग लैंग्वेज) या PL/M में की जाती थी, और फिर होस्ट पर क्रॉस-असेंबल या [[ पार संकलक |पार संकलक]] |क्रॉस-कंपाइल किया जाता था। कुछ सिंगल-बोर्ड माइक्रोकंट्रोलर बुनियादी भाषा प्रणाली का समर्थन करते हैं, जिससे लक्ष्य हार्डवेयर पर प्रोग्राम विकसित किए जा सकते हैं। होस्टेड विकास डेस्कटॉप कंप्यूटर के सभी भंडारण और बाह्य उपकरणों का उपयोग करने की अनुमति देता है, अधिक शक्तिशाली विकास वातावरण प्रदान करता है।
कई प्रारंभिक सिस्टम में प्रोग्रामिंग के लिए कोई आंतरिक सुविधा नहीं थी, और इस कार्य के लिए अलग होस्ट सिस्टम पर निर्भर थे। यह प्रोग्रामिंग सामान्यतः [[सभा की भाषा]] में या कभी-कभी C (प्रोग्रामिंग लैंग्वेज) या पीएल/एम में की जाती थी, और फिर होस्ट पर क्रॉस-असेंबल या [[ पार संकलक |पार संकलक]] या क्रॉस कंपाइल किया जाता था। कुछ सिंगल-बोर्ड माइक्रोकंट्रोलर मौलिक भाषा प्रणाली का समर्थन करते हैं, जिससे लक्ष्य हार्डवेयर पर प्रोग्राम विकसित किए जा सकते हैं। इन होस्टेड विकास डेस्कटॉप कंप्यूटर के सभी भंडारण और बाह्य उपकरणों का उपयोग करने की अनुमति देता है, अधिक शक्तिशाली विकास वातावरण प्रदान करता है।


=== ईपीरोम जल रहा है ===
=== ईपीरोम जल रहा है ===


प्रारंभिक माइक्रोकंट्रोलर्स ने एप्लिकेशन प्रोग्राम को होल्ड करने के लिए ईपीरोम | इरेजेबल प्रोग्रामेबल रीड-ओनली मेमोरी (ईपीरोम) उपकरणों पर भरोसा किया। होस्ट सिस्टम से [[ वस्तु कोड |वस्तु कोड]] को ईपीरोम प्रोग्रामर के साथ ईपीरोम पर बर्न किया जाएगा।<ref name="ETI, EPROM Programmer" >{{Cite journal
प्रारंभिक माइक्रोकंट्रोलर्स ने एप्लिकेशन प्रोग्राम को होल्ड करने के लिए ईपीरोम या इरेजेबल प्रोग्रामेबल रीड-ओनली मेमोरी (ईपीरोम) उपकरणों पर विश्वास किया है। होस्ट सिस्टम से [[ वस्तु कोड |वस्तु कोड]] को ईपीरोम प्रोग्रामर के साथ ईपीरोम पर बर्न किया जाता हैं।<ref name="ETI, EPROM Programmer" >{{Cite journal
   |journal=[[Electronics Today International]]
   |journal=[[Electronics Today International]]
   |title=Universal EPROM Programmer
   |title=Universal EPROM Programmer
Line 53: Line 53:
   |date= August–September 1983
   |date= August–September 1983
   |pages=45–51, 37–39
   |pages=45–51, 37–39
}}</ref> इस ईपीरोम को तब भौतिक रूप से बोर्ड में प्लग किया गया था। चूंकि कार्यक्रम के विकास के समय ईपीरॉम को हटा दिया जाएगा और कई बार परिवर्तित कर दिया जाएगा, पहनने या क्षति से बचने के लिए [[शून्य सम्मिलन बल]] सॉकेट प्रदान करना आम बात थी। [[पराबैंगनी]] इरेज़र के साथ ईपीरोम को मिटाने में काफी समय लगता है, और इसलिए डेवलपर के लिए किसी समय में कई ईपीरोम का प्रचलन में होना भी आम था।
}}</ref> इस ईपीरोम को तब भौतिक रूप से बोर्ड में प्लग किया गया था। चूंकि कार्यक्रम के विकास के समय ईपीरॉम को हटा दिया जाएगा और कई बार परिवर्तित कर दिया जाएगा, पहनने या क्षति से बचने के लिए [[शून्य सम्मिलन बल]] सॉकेट प्रदान करना सरल बात थी। [[पराबैंगनी]] इरेज़र के साथ ईपीरोम को मिटाने में अधिक समय लगता है, और इसलिए डेवलपर के लिए किसी समय में कई ईपीरोम का प्रचलन में होना भी सरल था।


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


ईपीरोम सॉकेट्स के उपयोग ने एप्लिकेशन प्रोग्राम को फील्ड अपडेट की अनुमति दी, या तो त्रुटियों को ठीक करने के लिए या अद्यतन सुविधाओं को प्रदान करने के लिए।
ईपीरोम सॉकेट्स के उपयोग ने एप्लिकेशन प्रोग्राम को फील्ड अपडेट की अनुमति दी, या तो त्रुटियों को ठीक करने के लिए या अद्यतन सुविधाओं को प्रदान करने के लिए किया जाता हैं।


=== कीपैड मॉनिटर ===
=== कीपैड मॉनिटर ===


[[File:MOS KIM-1 IMG 4211 cropped scale.jpg|thumb|right|हेक्स कीपैड और 7-सेगमेंट डिस्प्ले वाला सिंगल-बोर्ड कंप्यूटर]]जब एकल-बोर्ड नियंत्रक ने पूरे विकास वातावरण (सामान्यतः शिक्षा में) का गठन किया, तो बोर्ड में साधारण [[हेक्साडेसिमल]] कीपैड, कैलकुलेटर-शैली एलईडी डिस्प्ले और रॉम में स्थायी रूप से सेट मॉनिटर प्रोग्राम भी सम्मिलित हो सकता है। यह मॉनिटर [[मशीन कोड]] प्रोग्राम को सीधे कीबोर्ड के माध्यम से दर्ज करने और रैम में आयोजित करने की अनुमति देता है। ये प्रोग्राम मशीन कोड में थे, असेम्बली भाषा में भी नहीं, और अधिकांशतः इनपुट किए जाने से पहले कागज पर हाथ से इकट्ठे किए जाते थे। यह तर्कपूर्ण है कि कौन सी प्रक्रिया अधिक समय लेने वाली और त्रुटि प्रवण थी: हाथ से कोडांतरण, या बाइट-दर-बाइट कुंजीयन।
[[File:MOS KIM-1 IMG 4211 cropped scale.jpg|thumb|right|हेक्स कीपैड और 7-सेगमेंट डिस्प्ले वाला सिंगल-बोर्ड कंप्यूटर]]जब एकल-बोर्ड नियंत्रक ने पूरे विकास वातावरण (सामान्यतः शिक्षा में) का गठन किया, तो बोर्ड में साधारण [[हेक्साडेसिमल]] कीपैड, कैलकुलेटर-शैली एलईडी डिस्प्ले और रॉम में स्थायी रूप से सेट मॉनिटर प्रोग्राम भी सम्मिलित हो सकता है। यह मॉनिटर [[मशीन कोड]] प्रोग्राम को सीधे कीबोर्ड के माध्यम से दर्ज करने और रैम में आयोजित करने की अनुमति देता है। ये प्रोग्राम मशीन कोड में उपयोगी थी, इन्हें असेम्बली भाषा में भी उपयोग नहीं किया जाता हैं और अधिकांशतः इनपुट किए जाने से पहले कागज पर हाथ से एकत्रित किए जाते थे। यह तर्कपूर्ण है कि कौन सी प्रक्रिया अधिक समय लेने वाली और त्रुटि प्रवण थी: हाथ से कोडांतरण, या बाइट-दर-बाइट कुंजीयन।


इस प्रकार के सिंगल-बोर्ड कीपैड और कैलकुलेटर डिस्प्ले माइक्रोकंट्रोलर उस समय के कुछ लो-एंड माइक्रो कंप्यूटर जैसे [[KIM-1]] या [[माइक्रोप्रोफेसर आई]] के समान थे।<ref name="KIM 1" >{{cite web
इस प्रकार के सिंगल-बोर्ड कीपैड और कैलकुलेटर डिस्प्ले माइक्रोकंट्रोलर उस समय के कुछ लो-एंड माइक्रो कंप्यूटर जैसे [[KIM-1|किम-1]] या [[माइक्रोप्रोफेसर आई]] के समान थे।<ref name="KIM 1" >{{cite web
   |title=KIM 1
   |title=KIM 1
   |url=http://www.old-computers.com/museum/computer.asp?c=149
   |url=http://www.old-computers.com/museum/computer.asp?c=149
Line 76: Line 76:
=== होस्टेड विकास ===
=== होस्टेड विकास ===


जब डेस्कटॉप पर्सनल कंप्यूटर दिखाई दिए, शुरू में CP/M या [[Apple II|एप्पल II]], फिर बाद में [[IBM PC|आईबीएम पीसी]] और कॉम्पैटिबल्स, होस्ट किए गए विकास के लिए परिवर्तन था। हार्डवेयर अब सस्ता हो गया था और रैम की क्षमता इतनी बढ़ गई थी कि सीरियल पोर्ट के माध्यम से प्रोग्राम को डाउनलोड करना और उसे रैम में रखना संभव हो गया था। कार्यक्रम के नए संस्करण का परीक्षण करने के लिए चक्र समय में इस भारी कमी ने विकास की गति में समान रूप से बड़ी वृद्धि की।
जब डेस्कटॉप पर्सनल कंप्यूटर दिखाई दिए, प्रारंभ में सीपी/एम या [[Apple II|एप्पल II]], फिर बाद में [[IBM PC|आईबीएम पीसी]] और कॉम्पैटिबल्स, होस्ट किए गए विकास के लिए परिवर्तन था। हार्डवेयर अब सस्ता हो गया था और रैम की क्षमता इतनी बढ़ गई थी कि सीरियल पोर्ट के माध्यम से प्रोग्राम को डाउनलोड करना और उसे रैम में रखना संभव हो गया था। इस फंक्शन के नए संस्करण का परीक्षण करने के लिए चक्र समय में इस भारी कमी ने विकास की गति में समान रूप से बड़ी वृद्धि की हैं।


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


== सिंगल-चिप माइक्रोकंट्रोलर ==
== सिंगल-चिप माइक्रोकंट्रोलर ==
[[Image:KL Intel D8749.jpg|thumb|एक ऑन-बोर्ड UV ईपीरोम, [[8749]] के साथ [[Intel 8048]]-फ़ैमिली माइक्रोकंट्रोलर]]
[[Image:KL Intel D8749.jpg|thumb|एक ऑन-बोर्ड UV ईपीरोम, [[8749]] के साथ [[Intel 8048]]-फ़ैमिली माइक्रोकंट्रोलर]]
[[Image:Pickit1 devboard.jpg|thumb|right|एक [[तस्वीर माइक्रोकंट्रोलर]] परिवार डिवाइस के लिए विकास बोर्ड]]सिंगल-चिप माइक्रोकंट्रोलर्स, जैसे इंटेल इंटेल 8048, ने पिछले बोर्डों की कई विशेषताओं को आईसी पैकेज में संयोजित किया। सिंगल-चिप माइक्रोकंट्रोलर ऑन-पैकेज मेमोरी (रैम और रोम दोनों) को एकीकृत करते हैं और इसलिए, आईसी पैकेज के पिन के माध्यम से डेटा और एड्रेस बस (कंप्यूटिंग) को उजागर करने की आवश्यकता नहीं होती है। ये पिन तब I/O लाइनों के लिए उपलब्ध होते हैं। ये परिवर्तन मुद्रित सर्किट बोर्ड पर आवश्यक क्षेत्र को भी कम करते हैं और सिंगल-बोर्ड माइक्रोकंट्रोलर के डिज़ाइन को सरल बनाते हैं। सिंगल-चिप माइक्रोकंट्रोलर्स के उदाहरणों में सम्मिलित हैं:
[[Image:Pickit1 devboard.jpg|thumb|right|एक [[तस्वीर माइक्रोकंट्रोलर]] परिवार डिवाइस के लिए विकास बोर्ड]]सिंगल-चिप माइक्रोकंट्रोलर्स, जैसे इंटेल इंटेल 8048, ने पिछले बोर्डों की कई विशेषताओं को आईसी पैकेज में संयोजित किया गया था। सिंगल-चिप माइक्रोकंट्रोलर ऑन-पैकेज मेमोरी (रैम और रोम दोनों) को एकीकृत करते हैं और इसलिए आईसी पैकेज के पिन के माध्यम से डेटा और एड्रेस बस (कंप्यूटिंग) को उजागर करने की आवश्यकता नहीं होती है। ये पिन तब I/O लाइनों के लिए उपलब्ध होते हैं। ये परिवर्तन प्रिंटेड सर्किट बोर्ड पर आवश्यक क्षेत्र को भी कम करते हैं और सिंगल-बोर्ड माइक्रोकंट्रोलर के डिज़ाइन को सरल बनाते हैं। सिंगल-चिप माइक्रोकंट्रोलर्स के उदाहरणों में सम्मिलित हैं:
* इंटेल इंटेल 8048
* इंटेल इंटेल 8048
* तस्वीर माइक्रोकंट्रोलर
* तस्वीर माइक्रोकंट्रोलर
Line 88: Line 88:


=== प्रोग्राम मेमोरी ===
=== प्रोग्राम मेमोरी ===
[[ अंतः स्थापित प्रणाली | अंतः स्थापित प्रणाली]] के रूप में उत्पादन के उपयोग के लिए, ऑन-बोर्ड रीड-ओनली मेमोरी या तो चिप फैक्ट्री में [[ प्रोग्राम करने योग्य रीड-ओनली मेमोरी |प्रोग्राम करने योग्य रीड-ओनली मेमोरी]] थी या डेवलपर द्वारा प्रोग्रामेबल रीड-ओनली मेमोरी के रूप में वन-टाइम प्रोग्राम्ड (OTP)। पीरोम अधिकांशतः चिप के लिए समान UV ईपीरोम तकनीक का उपयोग करते थे, किन्तु सस्ते पैकेज में पारदर्शी विलोपन विंडो के बिना। कार्यक्रम के विकास के समय, ईपीरोम को जलाना अभी भी आवश्यक था। इस मामले में, संपूर्ण नियंत्रक आईसी, और इसलिए [[शून्य सम्मिलन बल]] सॉकेट प्रदान किए जाएंगे।
[[ अंतः स्थापित प्रणाली | अंतः स्थापित प्रणाली]] के रूप में उत्पादन के उपयोग के लिए, ऑन-बोर्ड रीड-ओनली मेमोरी या तो चिप फैक्ट्री में [[ प्रोग्राम करने योग्य रीड-ओनली मेमोरी |प्रोग्राम करने योग्य रीड-ओनली मेमोरी]] थी या डेवलपर द्वारा प्रोग्रामेबल रीड-ओनली मेमोरी के रूप में वन-टाइम प्रोग्राम्ड किया जाता हैं। पीरोम अधिकांशतः चिप के लिए समान यूवी ईपीरोम तकनीक का उपयोग करते थे, किन्तु सस्ते पैकेज में पारदर्शी विलोपन विंडो के बिना किया जाता हैं। कार्यक्रम के विकास के समय, ईपीरोम को जलाना अभी भी आवश्यक था। इस स्थिति में संपूर्ण नियंत्रक आईसी, और इसलिए [[शून्य सम्मिलन बल]] सॉकेट प्रदान किया जाता हैं।


किफायती [[EEPROM|Eईपीरोम]] और फ्लैश मेमोरी के विकास के साथ, नियंत्रक को स्थायी रूप से बोर्ड से जोड़ना और सीरियल कनेक्शन के माध्यम से होस्ट कंप्यूटर से प्रोग्राम कोड डाउनलोड करना व्यावहारिक हो गया। इसे [[इन-सर्किट प्रोग्रामिंग]] कहा जाता था। पुराने कार्यक्रमों को मिटाने के लिए या तो उन्हें नए डाउनलोड के साथ ओवर-राइट कर दिया गया था, या उन्हें विद्युत रूप से (ईईपीरोम के लिए) मिटा दिया गया था। बाद वाली विधि धीमी थी, किन्तु इन-सीटू में की जा सकती थी।
इस प्रकार महँगे [[EEPROM|ईईपीरोम]] और फ्लैश मेमोरी के विकास के साथ, नियंत्रक को स्थायी रूप से बोर्ड से जोड़ना और सीरियल कनेक्शन के माध्यम से होस्ट कंप्यूटर से प्रोग्राम कोड डाउनलोड करना व्यावहारिक हो गया हैं। इसे [[इन-सर्किट प्रोग्रामिंग]] भी कहा जाता था। इस प्रकार पुराने फंक्शनों को मिटाने के लिए या तो उन्हें नए डाउनलोड के साथ ओवर-राइट कर दिया गया था, या उन्हें विद्युत रूप से (ईईपीरोम के लिए) मिटा दिया गया था। इसके पश्चात विधि धीमी थी, किन्तु इन-सीटू में की जा सकती थी।


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


== सिंगल-बोर्ड माइक्रोकंट्रोलर आज ==
== सिंगल-बोर्ड माइक्रोकंट्रोलर आज ==
[[Image:DwengoBoard.jpg|thumb|right|[[ड्वेन्गो]] बोर्ड]]माइक्रोकंट्रोलर्स के लिए सर्किट बोर्ड डिजाइन करना अब सस्ता और सरल है। डेवलपमेंट होस्ट सिस्टम भी सस्ते हैं, खासकर जब [[ खुला स्रोत सॉफ्टवेयर |खुला स्रोत सॉफ्टवेयर]] सॉफ्टवेयर का उपयोग कर रहे हों। उच्च स्तरीय प्रोग्रामिंग लैंग्वेज एब्सट्रैक्शन (कंप्यूटर साइंस) हार्डवेयर का विवरण, विशिष्ट प्रोसेसर के मध्य अंतर को एप्लिकेशन प्रोग्रामर के लिए कम स्पष्ट बनाता है। कम से कम कार्यक्रम के विकास के समय, पुनर्लेखन योग्य फ्लैश मेमोरी ने धीमी प्रोग्रामिंग चक्रों को परिवर्तित कर दिया है। तदनुसार, अब लगभग सभी विकास [[मतिहीनता (कंप्यूटर विज्ञान)]] क्रॉस-संकलन पर आधारित हैं और प्रोग्राम को नियंत्रक बोर्ड में सीरियल-जैसे इंटरफ़ेस के माध्यम से डाउनलोड किया जाता है, सामान्यतः होस्ट को यूएसबी डिवाइस के रूप में दिखाई देता है।
[[Image:DwengoBoard.jpg|thumb|right|[[ड्वेन्गो]] बोर्ड]]माइक्रोकंट्रोलर्स के लिए सर्किट बोर्ड डिजाइन करना अब सस्ता और सरल है। डेवलपमेंट होस्ट सिस्टम भी सस्ते हैं, खासकर जब [[ खुला स्रोत सॉफ्टवेयर |खुला स्रोत सॉफ्टवेयर]] सॉफ्टवेयर का उपयोग कर रहे हों। उच्च स्तरीय प्रोग्रामिंग लैंग्वेज एब्सट्रैक्शन (कंप्यूटर साइंस) हार्डवेयर का विवरण, विशिष्ट प्रोसेसर के मध्य अंतर को एप्लिकेशन प्रोग्रामर के लिए कम स्पष्ट बनाता है। कम से कम कार्यक्रम के विकास के समय, पुनर्लेखन योग्य फ्लैश मेमोरी ने धीमी प्रोग्रामिंग चक्रों को परिवर्तित कर दिया है। तदनुसार, अब लगभग सभी विकास [[मतिहीनता (कंप्यूटर विज्ञान)]] क्रॉस-संकलन पर आधारित हैं और प्रोग्राम को नियंत्रक बोर्ड में सीरियल-जैसे इंटरफ़ेस के माध्यम से डाउनलोड किया जाता है, सामान्यतः होस्ट को यूएसबी डिवाइस के रूप में दिखाई देता है।


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


* पारंपरिक रूप से गैर-प्रोग्रामर समूहों, जैसे कि कलाकार, डिज़ाइनर, हॉबीस्ट, और इंटरएक्टिव ऑब्जेक्ट या वातावरण बनाने में रुचि रखने वाले अन्य लोगों के लिए सरलता से सुलभ प्लेटफ़ॉर्म।<ref>[http://www.arduino.cc/ Arduino's home page]</ref> 2011 में कुछ विशिष्ट परियोजनाओं में सम्मिलित हैं: डीएमएक्स स्टेज लाइट्स और विशेष प्रभावों का बैकअप नियंत्रण, मल्टी-कैमरा नियंत्रण, स्वायत्त लड़ाकू रोबोट, कंप्यूटर या स्मार्ट फोन से ब्लूटूथ परियोजनाओं को नियंत्रित करना,<ref name="Dwengo" />एलईडी और मल्टीप्लेक्सिंग, डिस्प्ले, ऑडियो, मोटर्स, मैकेनिक्स और पावर कंट्रोल।<ref>Arduino [http://arduino.cc/forum/ User's forum]</ref> [[भौतिक कंप्यूटिंग]] प्रोजेक्ट का हिस्सा बनने के लिए इन नियंत्रकों को एम्बेड किया जा सकता है। इस कार्य के लिए लोकप्रिय विकल्प Arduino हैं,<ref name="Arduino, Project homepage" >{{cite web
* पारंपरिक रूप से गैर-प्रोग्रामर समूहों, जैसे कि कलाकार, डिज़ाइनर, हॉबीस्ट, और इंटरएक्टिव ऑब्जेक्ट या वातावरण बनाने में रुचि रखने वाले अन्य लोगों के लिए सरलता से सुलभ प्लेटफ़ॉर्म उपलब्ध हैं।<ref>[http://www.arduino.cc/ Arduino's home page]</ref> 2011 में कुछ विशिष्ट परियोजनाओं में सम्मिलित हैं: डीएमएक्स स्टेज लाइट्स और विशेष प्रभावों का बैकअप नियंत्रण, मल्टी-कैमरा नियंत्रण, स्वायत्त लड़ाकू रोबोट, कंप्यूटर या स्मार्ट फोन से ब्लूटूथ परियोजनाओं को नियंत्रित करना,<ref name="Dwengo" />एलईडी और मल्टीप्लेक्सिंग, डिस्प्ले, ऑडियो, मोटर्स, मैकेनिक्स और पावर कंट्रोल उपलब्ध हैं।<ref>Arduino [http://arduino.cc/forum/ User's forum]</ref> [[भौतिक कंप्यूटिंग]] प्रोजेक्ट का भाग बनने के लिए इन नियंत्रकों को एम्बेड किया जा सकता है। इस कार्य के लिए लोकप्रिय विकल्प आर्ड्यूनों उपयोग किया जाता हैं,<ref name="Arduino, Project homepage" >{{cite web
   |title=Project homepage
   |title=Project homepage
   |url=http://www.arduino.cc/
   |url=http://www.arduino.cc/
   |publisher=[http://www.arduino.cc/ Arduino project]
   |publisher=[http://www.arduino.cc/ Arduino project]
}}</ref> ड्वेन्गो<ref name="Dwengo" >{{cite web
}}</ref> जैसेː ड्वेन्गो<ref name="Dwengo" >{{cite web
   |title=Project homepage
   |title=Project homepage
   |url=http://www.dwengo.org/
   |url=http://www.dwengo.org/
Line 112: Line 112:
2013.
2013.
p. 12.
p. 12.
</ref> या [[वायरिंग (विकास मंच)]]<ref>Wiring.org's Wiring development platform [http://wiring.org.co/ home page]</ref><ref name="Wiring" >{{cite web
</ref> या [[वायरिंग (विकास मंच)]] इत्यादि।<ref>Wiring.org's Wiring development platform [http://wiring.org.co/ home page]</ref><ref name="Wiring" >{{cite web
   |title=Wiring: Hardware
   |title=Wiring: Hardware
   |url=http://wiring.org.co/hardware/index.html
   |url=http://wiring.org.co/hardware/index.html
Line 120: Line 120:
** [[एवीआर तितली]]
** [[एवीआर तितली]]
** [[लंबन प्रोपेलर]]
** [[लंबन प्रोपेलर]]
[[Category:CS1 errors]]
[[Category:Machine Translated Page]]
[[Category:Templates Vigyan Ready]]

Latest revision as of 11:19, 28 March 2023

Atmel AT91SAM7X256 (एआरएम संरचना) माइक्रोकंट्रोलर के साथ कंट्रोलर किट बनाएं

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

चूंकि वे सामान्यतः कम लागत वाले होते हैं, और विकास के लिए विशेष रूप से कम पूंजी लागत होती है, एकल-बोर्ड माइक्रोकंट्रोलर लंबे समय से शिक्षा में लोकप्रिय रहे हैं। वे डेवलपर्स के लिए नए प्रोसेसर परिवार के साथ अनुभव प्राप्त करने के लिए लोकप्रिय साधन भी हैं।

उत्पत्ति

1970 के दशक के अंत में सिंगल-बोर्ड माइक्रोकंट्रोलर दिखाई दिए, जब एमओएस टेक्नोलॉजी 6502 और ज़िआईलाॅग Z80 जैसे प्रारंभिक माइक्रोप्रोसेसरों की उपस्थिति करता हैं।[1] इस बोर्ड पर संपूर्ण नियंत्रक बनाने के लिए इसे व्यावहारिक रूप से बनाया गया हैं, साथ ही अपेक्षाकृत छोटे-छोटे कार्यों को करने के लिए कंप्यूटर समर्पित करने के लिए इनका उपयोग किया जाता हैं।

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

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

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

आंतरिक बस

जेड80 और 6502 जैसे प्रारंभिक एकल-बोर्ड उपकरणों की बस (कंप्यूटिंग), सार्वभौमिक रूप से वॉन न्यूमैन संरचना थी। प्रोग्राम और डेटा मेमोरी को ही साझा बस के माध्यम से एक्सेस किया गया था, भले ही वे मौलिक रूप से विभिन्न प्रकार की मेमोरी में संग्रहीत थे: प्रोग्राम के लिए केवल पढ़ने के लिये मेमोरी और डेटा के लिए रैम का उपयोग किया जाता हैं। प्रोसेसर के सर्वव्यापी डुअल-इन-लाइन आईसी पैकेज के लिए उपलब्ध सीमित 40 में से आवश्यक पिनों की संख्या को कम करने के लिए इस बस संरचना की आवश्यकता थी।

इस विस्तारित संयोजन के माध्यम से आंतरिक बस तक पहुंच की प्रस्तुति करना सरल था, या कम से कम संयोजन को सोल्डर करने के लिए जगह प्रदान किया जाता हैं। यह कम लागत वाले विकल्प थे और इनमें विस्तार करने की क्षमता की प्रस्तुति थी, भले ही इसका उपयोग संभवतः कभी की गयी हो। इस विशिष्ट विस्तार I/O डिवाइस या अतिरिक्त मेमोरी उपयोग की जाती हैं। टेप या डिस्क स्टोरेज, या सीआरटी डिस्प्ले जैसे परिधीय उपकरणों को जोड़ना असामान्य था।

इसके पश्चात जब सिंगल चिप माइक्रोकंट्रोलर या सिंगल-चिप माइक्रोकंट्रोलर, जैसे कि 8048 उपलब्ध हो गए, तो बस को पैकेज के बाहर उजागर करने की आवश्यकता नहीं थी, क्योंकि चिप पैकेज के भीतर सभी आवश्यक मेमोरी प्रदान की जा सकती थी। प्रोसेसर की इस पीढ़ी ने अलग-अलग प्रोग्राम और दोनों आंतरिक चिप के लिए डेटा बसों के संशोधित हार्वर्ड संरचना का उपयोग किया था। इनमें से कई प्रोसेसरों ने संशोधित हार्वर्ड संरचना का उपयोग किया गया था, जहां प्रोग्राम डेटा स्पेस में कुछ लिखने की पहुंच संभव थी, इस प्रकार इन-सर्किट प्रोग्रामिंग की अनुमति थी। इनमें से किसी भी प्रोसेसर के लिए एकल-बोर्ड माइक्रोकंट्रोलर पर हार्वर्ड बस की आवश्यकता या समर्थन नहीं है। जब उन्होंने बाह्य उपकरणों के विस्तार के लिए बस का समर्थन किया, तो समर्पित I/O बस, जैसे I²C, 1-तार या विभिन्न सीरियल बस का उपयोग किया गया था।

बाहरी बस विस्तार

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

इनपुट और आउटपुट

Atmel ATMEGA168 के साथ आर्ड्यूनों Diecimila

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

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

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

घटक लागतों को नियंत्रित करने के लिए, कई बोर्डों को अतिरिक्त हार्डवेयर इंटरफ़ेस सर्किट के साथ डिज़ाइन किया गया था, किन्तु इन सर्किटों के लिए घटकों के बिना, बोर्ड को खाली छोड़ दिया गया है। इस वितरण पर परिपथ को विकल्प के रूप में संयोजित किया गया था, या बाद में स्वतंत्र किया जा सकता था।

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

संचार और यूजर इंटरफेस

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

प्रोग्रामिंग

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

ईपीरोम जल रहा है

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

ऑन-बोर्ड ईपीरोम के साथ कुछ माइक्रोकंट्रोलर यूक्ति उपलब्ध थी। इन्हें अलग बर्नर में भी प्रोग्राम किया जाएगा, फिर टारगेट सिस्टम पर सॉकेट में डाल दिया जाएगा।

ईपीरोम सॉकेट्स के उपयोग ने एप्लिकेशन प्रोग्राम को फील्ड अपडेट की अनुमति दी, या तो त्रुटियों को ठीक करने के लिए या अद्यतन सुविधाओं को प्रदान करने के लिए किया जाता हैं।

कीपैड मॉनिटर

हेक्स कीपैड और 7-सेगमेंट डिस्प्ले वाला सिंगल-बोर्ड कंप्यूटर

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

इस प्रकार के सिंगल-बोर्ड कीपैड और कैलकुलेटर डिस्प्ले माइक्रोकंट्रोलर उस समय के कुछ लो-एंड माइक्रो कंप्यूटर जैसे किम-1 या माइक्रोप्रोफेसर आई के समान थे।[4] इनमें से कुछ माइक्रोप्रोसेसर ट्रेनर सिस्टम आज भी उत्पादन में हैं, जिनका उपयोग हार्डवेयर प्रोग्रामिंग स्तर पर माइक्रोप्रोसेसरों के लिए बहुत कम लागत वाले परिचय के रूप में किया जाता है।[5]

होस्टेड विकास

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

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

सिंगल-चिप माइक्रोकंट्रोलर

एक ऑन-बोर्ड UV ईपीरोम, 8749 के साथ Intel 8048-फ़ैमिली माइक्रोकंट्रोलर
एक तस्वीर माइक्रोकंट्रोलर परिवार डिवाइस के लिए विकास बोर्ड

सिंगल-चिप माइक्रोकंट्रोलर्स, जैसे इंटेल इंटेल 8048, ने पिछले बोर्डों की कई विशेषताओं को आईसी पैकेज में संयोजित किया गया था। सिंगल-चिप माइक्रोकंट्रोलर ऑन-पैकेज मेमोरी (रैम और रोम दोनों) को एकीकृत करते हैं और इसलिए आईसी पैकेज के पिन के माध्यम से डेटा और एड्रेस बस (कंप्यूटिंग) को उजागर करने की आवश्यकता नहीं होती है। ये पिन तब I/O लाइनों के लिए उपलब्ध होते हैं। ये परिवर्तन प्रिंटेड सर्किट बोर्ड पर आवश्यक क्षेत्र को भी कम करते हैं और सिंगल-बोर्ड माइक्रोकंट्रोलर के डिज़ाइन को सरल बनाते हैं। सिंगल-चिप माइक्रोकंट्रोलर्स के उदाहरणों में सम्मिलित हैं:

प्रोग्राम मेमोरी

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

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

नियंत्रक बोर्ड का मुख्य कार्य तब इस फंक्शन के लिए समर्थन परिपथ या बाद के बोर्डों पर, यूएसबी इंटरफ़ेस को ले जाने के लिए किया गया था। विकास के समय और सुविधा के रूप में, कई बोर्डों में I/O लाइनों के एलईडी मॉनिटर या बोर्ड पर लगे रीसेट स्विच जैसी कम लागत वाली सुविधाएँ भी प्रदान की गई थीं।

सिंगल-बोर्ड माइक्रोकंट्रोलर आज

ड्वेन्गो बोर्ड

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

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

  • पारंपरिक रूप से गैर-प्रोग्रामर समूहों, जैसे कि कलाकार, डिज़ाइनर, हॉबीस्ट, और इंटरएक्टिव ऑब्जेक्ट या वातावरण बनाने में रुचि रखने वाले अन्य लोगों के लिए सरलता से सुलभ प्लेटफ़ॉर्म उपलब्ध हैं।[6] 2011 में कुछ विशिष्ट परियोजनाओं में सम्मिलित हैं: डीएमएक्स स्टेज लाइट्स और विशेष प्रभावों का बैकअप नियंत्रण, मल्टी-कैमरा नियंत्रण, स्वायत्त लड़ाकू रोबोट, कंप्यूटर या स्मार्ट फोन से ब्लूटूथ परियोजनाओं को नियंत्रित करना,[7]एलईडी और मल्टीप्लेक्सिंग, डिस्प्ले, ऑडियो, मोटर्स, मैकेनिक्स और पावर कंट्रोल उपलब्ध हैं।[8] भौतिक कंप्यूटिंग प्रोजेक्ट का भाग बनने के लिए इन नियंत्रकों को एम्बेड किया जा सकता है। इस कार्य के लिए लोकप्रिय विकल्प आर्ड्यूनों उपयोग किया जाता हैं,[9] जैसेː ड्वेन्गो[7][10] या वायरिंग (विकास मंच) इत्यादि।[11][12]
  • अभिनव प्रोसेसर या परिधीय सुविधाओं के लिए प्रौद्योगिकी प्रदर्शन बोर्ड:
  1. Peter Grigson; David Harris (August–October 1983). "'Marvin' - Z80 Control Computer". Electronics Today International.
  2. Intel SBC 80/10 Single Board Computer brochure, 1976
  3. Mike Bedford (August–September 1983). "Universal EPROM Programmer". Electronics Today International: 45–51, 37–39.
  4. "KIM 1". Old Computers.com. {{cite web}}: External link in |publisher= (help)
  5. "Microprofessor Training System". Flite Electronics International. Archived from the original on 9 May 2008.
  6. Arduino's home page
  7. 7.0 7.1 "Project homepage". Dwengo. {{cite web}}: External link in |publisher= (help)
  8. Arduino User's forum
  9. "Project homepage". Arduino project. {{cite web}}: External link in |publisher= (help)
  10. Timothy L. Warner. "Hacking Raspberry Pi". 2013. p. 12.
  11. Wiring.org's Wiring development platform home page
  12. "Wiring: Hardware". Wiring project. {{cite web}}: External link in |publisher= (help)