इन-सिस्टम प्रोग्रामिंग: Difference between revisions

From Vigyanwiki
No edit summary
 
(6 intermediate revisions by 4 users not shown)
Line 3: Line 3:
{{Use mdy dates|date = March 2019}}
{{Use mdy dates|date = March 2019}}
[[Image:Isp headers.svg|thumb|6- और 10-पिन एवीआर आईएसपी हेडर]]
[[Image:Isp headers.svg|thumb|6- और 10-पिन एवीआर आईएसपी हेडर]]
'''इन-सिस्टम प्रोग्रामिंग''' (ISP), या जिसे '''इन-सर्किट सीरियल प्रोग्रामिंग''' (ICSP) भी कहा जाता है, कुछ [[प्रोग्रामेबल लॉजिक डिवाइसेस]], [[:hi:माइक्रोकंट्रोलर|माइक्रोकंट्रोलर्स]] और अन्य [[:hi:अन्तःस्थापित तंत्र|एम्बेडेड डिवाइसों]] की क्षमता है, जिन्हें चिप की आवश्यकता के बजाय एक पूर्ण सिस्टम में स्थापित करते समय प्रोग्राम किया जाता है। इसे सिस्टम में स्थापित करने से पहले प्रोग्राम किया जाना है। यह सर्किट बोर्ड पर विशेषज्ञ प्रोग्रामिंग सर्किटरी की आवश्यकता के बिना फर्मवेयर अपडेट को माइक्रोकंट्रोलर्स और संबंधित प्रोसेसर की ऑन-चिप मेमोरी में वितरित करने की अनुमति देता है, और डिज़ाइन कार्य को सरल करता है।<ref>[https://www.oreilly.com/library/view/designing-embedded-hardware/0596007558/ch01.html ''Oreilly, Designing Embedded Hardware, 2nd Edition by John Catsoulis'']</ref>
'''इन-सिस्टम प्रोग्रामिंग''' (ISP), या जिसे '''इन-परिपथ सीरियल प्रोग्रामिंग''' (ICSP) भी कहा जाता है, कुछ [[प्रोग्रामेबल लॉजिक डिवाइसेस]], [[:hi:माइक्रोकंट्रोलर|माइक्रोकंट्रोलर्स]] और अन्य [[:hi:अन्तःस्थापित तंत्र|एम्बेडेड डिवाइसों]] की क्षमता है, जिन्हें चिप की आवश्यकता के बजाय एक पूर्ण सिस्टम में स्थापित करते समय प्रोग्राम किया जाता है। इसे सिस्टम में स्थापित करने से पहले प्रोग्राम किया जाना है। यह परिपथ बोर्ड पर विशेषज्ञ प्रोग्रामिंग परिपथ की आवश्यकता के बिना फर्मवेयर अपडेट को माइक्रोकंट्रोलर्स और संबंधित प्रोसेसर की ऑन-चिप मेमोरी में वितरित करने की अनुमति देता है, और डिज़ाइन कार्य को सरल करता है।<ref>[https://www.oreilly.com/library/view/designing-embedded-hardware/0596007558/ch01.html ''Oreilly, Designing Embedded Hardware, 2nd Edition by John Catsoulis'']</ref>


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


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


माइक्रोकंट्रोलर्स को आमतौर पर एक मुद्रित सर्किट बोर्ड में सीधे टांका लगाया जाता है और आमतौर पर दूसरे [[कंप्यूटर]] के लिए एक बड़े बाहरी प्रोग्रामिंग केबल के लिए सर्किट्री या स्थान नहीं होता है।
माइक्रोकंट्रोलर्स को सामान्यतः  एक मुद्रित परिपथ बोर्ड में सीधे टांका लगाया जाता है और सामान्यतः  दूसरे [[कंप्यूटर]] के लिए एक बड़े बाहरी प्रोग्रामिंग केबल के लिए परिपथ्री या स्थान नहीं होता है।


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


== इतिहास ==
== इतिहास ==
1990 के दशक की शुरुआत से माइक्रोकंट्रोलर्स की वास्तुकला में एक महत्वपूर्ण तकनीकी विकास देखा गया था। सबसे पहले, उन्हें दो संभावित समाधानों में महसूस किया गया: [[:hi:प्रोग्राम करने योग्य रीड-ओनली मेमोरी|ओटीपी (वन-टाइम प्रोग्रामेबल)]] या [[:hi:ईपीरोम|ईपीरॉम मेमोरी]] के साथ। इन प्रौद्योगिकियों में, स्मृति-मिटाने की प्रक्रिया के लिए पैकेज के ऊपर एक विशिष्ट विंडो के माध्यम से चिप को पराबैंगनी प्रकाश के संपर्क में लाने की आवश्यकता होती है। 1993 में [[माइक्रोचिप टेक्नोलॉजी]] ने  [[:hi:EEPROM|ईईपीरोम(EEPROM) मेमोरी]] के साथ पहला माइक्रोकंट्रोलर पेश किया: PIC16C84। ईईपीरोम मेमोरी को विद्युत रूप से मिटाया जा सकता है। इस सुविधा ने पैकेज के ऊपर मिटाने वाली विंडो को हटाकर और इन-सिस्टम प्रोग्रामिंग तकनीक शुरू करके वसूली लागत को कम करने की अनुमति दी। आईएसपी फ्लैशिंग प्रक्रिया के साथ उत्पादन प्रक्रिया के अंत में सीधे बोर्ड पर प्रदर्शन किया जा सकता है। इस विकास ने प्रोग्रामिंग और कार्यात्मक परीक्षण चरण और उत्पादन वातावरणों को एकजुट करने और बोर्डों के प्रारंभिक उत्पादन को शुरू करने की संभावना दी, भले ही फर्मवेयर विकास अभी तक पूरा नहीं हुआ हो। इस तरह बग को ठीक करना या बाद में बदलाव करना संभव था। उसी वर्ष, Atmel ने फ्लैश मेमोरी के साथ पहला माइक्रोकंट्रोलर विकसित किया, प्रोग्राम के लिए आसान और तेज़ और ईईपीरोम मेमोरी की तुलना में बहुत लंबे जीवन चक्र के साथ है।
1990 के दशक की शुरुआत से माइक्रोकंट्रोलर्स की वास्तुकला में एक महत्वपूर्ण तकनीकी विकास देखा गया था। सबसे पहले, उन्हें दो संभावित समाधानों में महसूस किया गया: [[:hi:प्रोग्राम करने योग्य रीड-ओनली मेमोरी|ओटीपी (वन-टाइम प्रोग्रामेबल)]] या [[:hi:ईपीरोम|ईपीरॉम मेमोरी]] के साथ। इन प्रौद्योगिकियों में, स्मृति-मिटाने की प्रक्रिया के लिए पैकेज के ऊपर एक विशिष्ट विंडो के माध्यम से चिप को पराबैंगनी प्रकाश के संपर्क में लाने की आवश्यकता होती है। 1993 में [[माइक्रोचिप टेक्नोलॉजी]] ने  [[:hi:EEPROM|ईईपीरोम(EEPROM) मेमोरी]] के साथ पहला माइक्रोकंट्रोलर पेश किया: PIC16C84। ईईपीरोम मेमोरी को विद्युत रूप से मिटाया जा सकता है। इस सुविधा ने पैकेज के ऊपर मिटाने वाली विंडो को हटाकर और इन-सिस्टम प्रोग्रामिंग तकनीक शुरू करके वसूली लागत को कम करने की अनुमति दी। आईएसपी फ्लैशिंग प्रक्रिया के साथ उत्पादन प्रक्रिया के अंत में सीधे बोर्ड पर प्रदर्शन किया जा सकता है। इस विकास ने प्रोग्रामिंग और कार्यात्मक परीक्षण चरण और उत्पादन वातावरणों को एकजुट करने और बोर्डों के प्रारंभिक उत्पादन को शुरू करने की संभावना दी, भले ही फर्मवेयर विकास अभी तक पूरा नहीं हुआ हो। इस तरह बग को ठीक करना या बाद में बदलाव करना संभव था। उसी वर्ष, Atmel ने फ्लैश मेमोरी के साथ पहला माइक्रोकंट्रोलर विकसित किया, प्रोग्राम के लिए आसान और तेज़ और ईईपीरोम मेमोरी की तुलना में बहुत लंबे जीवन चक्र के साथ है।


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


आईएसपी प्रोग्रामिंग के लिए इलेक्ट्रॉनिक बोर्ड डिजाइन करते समय प्रोग्रामिंग चरण को यथासंभव विश्वसनीय बनाने के लिए कुछ दिशानिर्देशों को ध्यान में रखना आवश्यक है। कम संख्या में पिन वाले कुछ माइक्रोकंट्रोलर प्रोग्रामिंग लाइनों को I/O लाइनों के साथ साझा करते हैं। यदि बोर्ड के डिजाइन में आवश्यक सावधानियों को ध्यान में नहीं रखा गया तो यह एक समस्या हो सकती है; डिवाइस प्रोग्रामिंग के दौरान I/O घटकों के नुकसान का सामना कर सकता है। इसके अलावा, प्रोग्रामर द्वारा घटकों के नुकसान से बचने के लिए ISP लाइनों को [[उच्च प्रतिबाधा]] सर्किटरी से जोड़ना महत्वपूर्ण है और क्योंकि माइक्रोकंट्रोलर अक्सर लाइन को पायलट करने के लिए पर्याप्त करंट की आपूर्ति नहीं कर सकता है। प्रोग्रामिंग मोड में प्रवेश करने के लिए कई माइक्रोकंट्रोलर्स को एक समर्पित रीसेट(RESET) लाइन की आवश्यकता होती है। लाइन ड्राइविंग के लिए आपूर्ति की गई वर्तमान पर ध्यान देना और रीसेट लाइन से जुड़े [[:hi:निगरानी घड़ी|वॉचडॉग]] की उपस्थिति की जांच करना आवश्यक है जो एक अवांछित रीसेट उत्पन्न कर सकता है और इसलिए, प्रोग्रामिंग विफलता का नेतृत्व कर सकता है। इसके अलावा, कुछ माइक्रोकंट्रोलर्स को प्रोग्रामिंग मोड में प्रवेश करने के लिए एक उच्च वोल्टेज की आवश्यकता होती है और इसलिए, यह जांचना आवश्यक है कि यह मान क्षीण नहीं है और यह वोल्टेज बोर्ड पर अन्य घटकों को अग्रेषित नहीं किया गया है।
आईएसपी प्रोग्रामिंग के लिए इलेक्ट्रॉनिक बोर्ड डिजाइन करते समय प्रोग्रामिंग चरण को यथासंभव विश्वसनीय बनाने के लिए कुछ दिशानिर्देशों को ध्यान में रखना आवश्यक है। कम संख्या में पिन वाले कुछ माइक्रोकंट्रोलर प्रोग्रामिंग लाइनों को I/O लाइनों के साथ साझा करते हैं। यदि बोर्ड के डिजाइन में आवश्यक सावधानियों को ध्यान में नहीं रखा गया तो यह एक समस्या हो सकती है; डिवाइस प्रोग्रामिंग के दौरान I/O घटकों के नुकसान का सामना कर सकता है। इसके अलावा, प्रोग्रामर द्वारा घटकों के नुकसान से बचने के लिए ISP लाइनों को [[उच्च प्रतिबाधा]] परिपथरी से जोड़ना महत्वपूर्ण है और क्योंकि माइक्रोकंट्रोलर प्रायः लाइन को पायलट करने के लिए पर्याप्त करंट की आपूर्ति नहीं कर सकता है। प्रोग्रामिंग मोड में प्रवेश करने के लिए कई माइक्रोकंट्रोलर्स को एक समर्पित रीसेट(RESET) लाइन की आवश्यकता होती है। लाइन ड्राइविंग के लिए आपूर्ति की गई वर्तमान पर ध्यान देना और रीसेट लाइन से जुड़े [[:hi:निगरानी घड़ी|वॉचडॉग]] की उपस्थिति की जांच करना आवश्यक है जो एक अवांछित रीसेट उत्पन्न कर सकता है और इसलिए, प्रोग्रामिंग विफलता का नेतृत्व कर सकता है। इसके अलावा, कुछ माइक्रोकंट्रोलर्स को प्रोग्रामिंग मोड में प्रवेश करने के लिए एक उच्च वोल्टेज की आवश्यकता होती है और इसलिए, यह जांचना आवश्यक है कि यह मान क्षीण नहीं है और यह वोल्टेज बोर्ड पर अन्य घटकों को अग्रेषित नहीं किया गया है।


== औद्योगिक आवेदन ==
== औद्योगिक आवेदन ==
Line 27: Line 27:
दूसरी विधि बोर्ड पर [[परीक्षण बिंदुओं]] का उपयोग करती है। ये मुद्रित बोर्ड, या [[:hi:प्रिन्टेड सर्किट बोर्ड|पीसीबी]] पर रखे गए विशिष्ट क्षेत्र हैं, जो बोर्ड पर कुछ इलेक्ट्रॉनिक घटकों से विद्युत रूप से जुड़े होते हैं। परीक्षण बिंदुओं का उपयोग बोर्ड पर लगे घटकों के लिए कार्यात्मक परीक्षण करने के लिए किया जाता है और चूंकि वे सीधे कुछ माइक्रोकंट्रोलर पिन से जुड़े होते हैं, वे आईएसपी के लिए बहुत प्रभावी होते हैं। मध्यम और उच्च उत्पादन मात्रा के लिए परीक्षण बिंदुओं का उपयोग करना सबसे अच्छा समाधान है क्योंकि यह असेंबली लाइन में प्रोग्रामिंग चरण को एकीकृत करने की अनुमति देता है।
दूसरी विधि बोर्ड पर [[परीक्षण बिंदुओं]] का उपयोग करती है। ये मुद्रित बोर्ड, या [[:hi:प्रिन्टेड सर्किट बोर्ड|पीसीबी]] पर रखे गए विशिष्ट क्षेत्र हैं, जो बोर्ड पर कुछ इलेक्ट्रॉनिक घटकों से विद्युत रूप से जुड़े होते हैं। परीक्षण बिंदुओं का उपयोग बोर्ड पर लगे घटकों के लिए कार्यात्मक परीक्षण करने के लिए किया जाता है और चूंकि वे सीधे कुछ माइक्रोकंट्रोलर पिन से जुड़े होते हैं, वे आईएसपी के लिए बहुत प्रभावी होते हैं। मध्यम और उच्च उत्पादन मात्रा के लिए परीक्षण बिंदुओं का उपयोग करना सबसे अच्छा समाधान है क्योंकि यह असेंबली लाइन में प्रोग्रामिंग चरण को एकीकृत करने की अनुमति देता है।


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


== माइक्रोचिप आईसीएसपी (ICSP) ==
== माइक्रोचिप आईसीएसपी (ICSP) ==
Line 33: Line 33:
अधिकांश माइक्रोचिप माइक्रोकंट्रोलर्स के लिए, आईसीएसपी (ICSP) प्रोग्रामिंग दो पिनों, घड़ी (PGC) और डेटा (PGD) का उपयोग करके की जाती है, जबकि एक उच्च वोल्टेज (12V) Vpp/MCLR पिन पर मौजूद है। कम वोल्टेज प्रोग्रामिंग (5V या 3.3V) उच्च वोल्टेज के साथ डिस्पेंस करता है, लेकिन I/O पिन के अनन्य उपयोग को सुरक्षित रखता है। हालाँकि, नए माइक्रोकंट्रोलर्स के लिए, विशेष रूप से [[माइक्रोचिप टेक्नोलॉजी]] से PIC18F6XJXX/8XJXX माइक्रोकंट्रोलर्स परिवारों के लिए, आईसीएसपी मोड में प्रवेश करना थोड़ा अलग है।<ref>http://ww1.microchip.com/downloads/en/DeviceDoc/39644l.pdf {{Bare URL PDF|date=March 2022}}</ref> आईसीएसपी प्रोग्राम/सत्यापन मोड में प्रवेश करने के लिए निम्नलिखित तीन चरणों की आवश्यकता होती है::
अधिकांश माइक्रोचिप माइक्रोकंट्रोलर्स के लिए, आईसीएसपी (ICSP) प्रोग्रामिंग दो पिनों, घड़ी (PGC) और डेटा (PGD) का उपयोग करके की जाती है, जबकि एक उच्च वोल्टेज (12V) Vpp/MCLR पिन पर मौजूद है। कम वोल्टेज प्रोग्रामिंग (5V या 3.3V) उच्च वोल्टेज के साथ डिस्पेंस करता है, लेकिन I/O पिन के अनन्य उपयोग को सुरक्षित रखता है। हालाँकि, नए माइक्रोकंट्रोलर्स के लिए, विशेष रूप से [[माइक्रोचिप टेक्नोलॉजी]] से PIC18F6XJXX/8XJXX माइक्रोकंट्रोलर्स परिवारों के लिए, आईसीएसपी मोड में प्रवेश करना थोड़ा अलग है।<ref>http://ww1.microchip.com/downloads/en/DeviceDoc/39644l.pdf {{Bare URL PDF|date=March 2022}}</ref> आईसीएसपी प्रोग्राम/सत्यापन मोड में प्रवेश करने के लिए निम्नलिखित तीन चरणों की आवश्यकता होती है::


# वोल्टेज संक्षेप में एमसीएलआर (मास्टर क्लियर) पिन पर लागू होता है।
# पीजीडी पर एक 32-बिट कुंजी अनुक्रम प्रस्तुत किया गया है।
# वोल्टेज को एमसीएलआर में फिर से लागू किया जाता है।


वोल्टेज MCLR को फिर से लागू किया जाता है।[[File:pic Icsp programmer.jpg|thumb|माइक्रोचिप पिकिट आईसीएसपी प्रोग्रामर]]
[[File:pic Icsp programmer.jpg|thumb|माइक्रोचिप पिकिट आईसीएसपी प्रोग्रामर]]
हार्डवेयर का एक अलग टुकड़ा, जिसे प्रोग्रामर कहा जाता है, एक तरफ एक पीसी के I/O पोर्ट से कनेक्ट करने के लिए और दूसरी तरफ PIC से कनेक्ट करने की आवश्यकता होती है। प्रत्येक प्रमुख प्रोग्रामिंग प्रकार के लिए सुविधाओं की एक सूची हैं:
हार्डवेयर का एक अलग खंड, जिसे प्रोग्रामर कहा जाता है, एक पीसी के I/O पोर्ट से एक तरफ और दूसरी तरफ PIC से कनेक्ट करने की आवश्यकता होती है। प्रत्येक प्रमुख प्रोग्रामिंग प्रकार के लिए सुविधाओं की सूची इस प्रकार है:


# समानांतर पोर्ट - बड़े भारी केबल, अधिकांश कंप्यूटरों में केवल एक पोर्ट होता है और यह एक संलग्न प्रिंटर के साथ प्रोग्रामिंग केबल को स्वैप करने के लिए असुविधाजनक हो सकता है। 2010 की तुलना में अधिकांश लैपटॉप इस बंदरगाह का समर्थन नहीं करते हैं। समानांतर पोर्ट प्रोग्रामिंग बहुत तेज है।
# '''पैरेलल पोर्ट''' - बड़ी भारी केबल, अधिकांश कंप्यूटरों में केवल एक पोर्ट होता है और संलग्न प्रिंटर के साथ प्रोग्रामिंग केबल को स्वैप करना असुविधाजनक हो सकता है। 2010 के बाद के अधिकांश लैपटॉप इस पोर्ट का समर्थन नहीं करते हैं। समानांतर पोर्ट प्रोग्रामिंग बहुत तेज है।
# सीरियल पोर्ट (COM पोर्ट) - एक समय में सबसे लोकप्रिय विधि। सीरियल पोर्ट में आमतौर पर पर्याप्त सर्किट प्रोग्रामिंग आपूर्ति वोल्टेज की कमी होती है। अधिकांश कंप्यूटर और लैपटॉप इस बंदरगाह के लिए 2010 की कमी के समर्थन में नए हैं।
# '''सीरियल पोर्ट''' (COM पोर्ट) - एक समय में सबसे लोकप्रिय तरीका। सीरियल पोर्ट में सामान्यतः  पर्याप्त परिपथ प्रोग्रामिंग आपूर्ति वोल्टेज की कमी होती है। 2010 के बाद के अधिकांश कंप्यूटर और लैपटॉप में इस पोर्ट के लिए समर्थन की कमी है।
# सॉकेट (सर्किट में या बाहर) - सीपीयू को या तो सर्किट बोर्ड से हटा दिया जाना चाहिए, या एक क्लैंप को चिप -मेकिंग एक्सेस एक समस्या से जोड़ा जाना चाहिए।
# '''सॉकेट''' (परिपथ के अंदर या बाहर) - सीपीयू को या तो परिपथ बोर्ड से हटा दिया जाना चाहिए, या एक क्लैंप को चिप बनाने वाली पहुंच से जुड़ा होना चाहिए।
# यूएसबी केबल - छोटे और हल्के वजन, वोल्टेज स्रोत के लिए समर्थन है और अधिकांश कंप्यूटरों में अतिरिक्त पोर्ट उपलब्ध हैं। प्रोग्राम किए जाने वाले सर्किट के बीच की दूरी और कंप्यूटर USB केबल की लंबाई तक सीमित है - यह आमतौर पर 180 & nbsp; सेमी से कम होना चाहिए। यह प्रोग्रामिंग उपकरणों को मशीनरी में गहराई से या अलमारियाँ एक समस्या बना सकता है।
# '''USB केबल''' - छोटा और हल्का वजन, वोल्टेज स्रोत के लिए समर्थन है और अधिकांश कंप्यूटरों में अतिरिक्त पोर्ट उपलब्ध हैं। प्रोग्राम किए जाने वाले परिपथ और कंप्यूटर के बीच की दूरी यूएसबी (USB) केबल की लंबाई से सीमित होती है - यह सामान्यतः  180 सेमी से कम होनी चाहिए। यह प्रोग्रामिंग उपकरणों को मशीनरी या कैबिनेट में एक समस्या बना सकता है।


ICSP प्रोग्रामर के कई फायदे हैं, आकार, कंप्यूटर पोर्ट उपलब्धता और बिजली स्रोत प्रमुख विशेषताएं हैं। इंटरकनेक्ट स्कीम में भिन्नता और एक माइक्रो-कंट्रोलर के आसपास के लक्ष्य सर्किट के कारण, कोई प्रोग्रामर नहीं है जो '' सभी 'संभावित लक्ष्य सर्किट या इंटरकनेक्ट्स के साथ काम करता है। [http://www.microchip.com microchip] एक विस्तृत ICSP प्रोग्रामिंग गाइड प्रदान करता है<ref>[http://ww1.microchip.com/downloads/en/devicedoc/30277d.pdf ww1.microchip.com/downloads/en/devicedoc/30277d.pdf ICSP programming guide], Microchip</ref> कई साइटें प्रोग्रामिंग और सर्किट उदाहरण प्रदान करती हैं।


PICs को पांच संकेतों का उपयोग करके प्रोग्राम किया जाता है (एक छठा पिन 'औक्स' प्रदान किया जाता है लेकिन उपयोग नहीं किया जाता है)।डेटा को दो-तार सिंक्रोनस सीरियल स्कीम का उपयोग करके स्थानांतरित किया जाता है, तीन और तार प्रोग्रामिंग और चिप पावर प्रदान करते हैं।क्लॉक सिग्नल को हमेशा प्रोग्रामर द्वारा नियंत्रित किया जाता है।
आईसीएसपी (ICSP) प्रोग्रामर के कई फायदे हैं, आकार, कंप्यूटर पोर्ट उपलब्धता और बिजली स्रोत प्रमुख विशेषताएं हैं। इंटरकनेक्ट स्कीम में भिन्नता और एक माइक्रो-कंट्रोलर के आसपास के लक्ष्य परिपथ के कारण, कोई प्रोग्रामर नहीं है जो '' सभी 'संभावित लक्ष्य परिपथ या इंटरकनेक्ट्स के साथ काम करता है। [http://www.microchip.com माइक्रोचिप] एक विस्तृत ICSP प्रोग्रामिंग गाइड प्रदान करता है<ref>[http://ww1.microchip.com/downloads/en/devicedoc/30277d.pdf ww1.microchip.com/downloads/en/devicedoc/30277d.pdf ICSP programming guide], Microchip</ref> कई साइटें प्रोग्रामिंग और परिपथ उदाहरण प्रदान करती हैं।''
 
PICs को पांच संकेतों का उपयोग करके प्रोग्राम किया जाता है (छठा पिन 'ऑक्स' प्रदान किया जाता है लेकिन उपयोग नहीं किया जाता है)। डेटा को दो-तार तुल्यकालिक धारावाहिक योजना का उपयोग करके स्थानांतरित किया जाता है, तीन और तार प्रोग्रामिंग और चिप शक्ति प्रदान करते हैं। क्लॉक सिग्नल को हमेशा प्रोग्रामर द्वारा नियंत्रित किया जाता है।


[[File:Icsp communication.jpg|thumb|विशिष्ट प्रोग्रामिंग संचार]]
[[File:Icsp communication.jpg|thumb|विशिष्ट प्रोग्रामिंग संचार]]
Line 52: Line 56:
[[File:pic icsp.jpg|अँगूठा]]
[[File:pic icsp.jpg|अँगूठा]]
[[File:Icsp-pinouts.png|thumb|विशिष्ट चिप कनेक्शन]]
[[File:Icsp-pinouts.png|thumb|विशिष्ट चिप कनेक्शन]]
* वी<sub>pp</sub> - प्रोग्रामिंग मोड वोल्टेज।यह MCLR पिन, या V से जुड़ा होना चाहिए<sub>pp</sub> कुछ बड़े-पिन-काउंट पिक्स पर उपलब्ध वैकल्पिक ICSP पोर्ट का पिन।PIC को प्रोग्रामिंग मोड में डालने के लिए, यह लाइन एक निर्दिष्ट रेंज में होनी चाहिए जो PIC से PIC में भिन्न होती है।5 के लिए{{Nbsp}}V pics, यह हमेशा v के ऊपर कुछ राशि है<sub>dd</sub>, और 13.5 वी के रूप में उच्च हो सकता है। 3.3 वी केवल 18 एफजे, 24 एच, और 33 एफ श्रृंखला जैसे पिक्स प्रोग्रामिंग मोड और वी में प्रवेश करने के लिए एक विशेष हस्ताक्षर का उपयोग करते हैं<sub>pp</sub> एक डिजिटल सिग्नल है जो या तो जमीन या वीडीडी पर है।कोई नहीं है<sub>pp</sub> वोल्टेज जो मान्य v के भीतर है<sub>pp</sub> सभी चित्रों की सीमा।वास्तव में, न्यूनतम आवश्यक वी<sub>pp</sub> कुछ पिक्स के लिए स्तर अन्य पिक्स को नुकसान पहुंचा सकता है।
* '''V<sub>pp</sub> -''' प्रोग्रामिंग मोड वोल्टेज हैf। यह MCLR पिन, या कुछ बड़े पिन-काउंट PIC पर उपलब्ध वैकल्पिक ICSP पोर्ट के Vpp पिन से जुड़ा होना चाहिए। PIC को प्रोग्रामिंग मोड में डालने के लिए, यह लाइन एक निर्दिष्ट सीमा में होनी चाहिए जो PIC से PIC में भिन्न होती है। 5 V PICs के लिए, यह हमेशा V<sub>dd</sub> से कुछ अधिक होता है, और 13.5 V जितना अधिक हो सकता है। केवल 3.3 V PIC जैसे 18FJ, 24H, और 33F श्रृंखला प्रोग्रामिंग मोड में प्रवेश करने के लिए एक विशेष हस्ताक्षर का उपयोग करते हैं और V<sub>pp</sub> एक डिजिटल सिग्नल है वह या तो जमीन पर है या Vdd। कोई भी V<sub>pp</sub> वोल्टेज नहीं है जो सभी PIC की मान्य V<sub>pp</sub> सीमा के भीतर हो। वास्तव में, कुछ PIC के लिए न्यूनतम आवश्यक V<sub>pp</sub> स्तर अन्य PIC को नुकसान पहुँचा सकता है।
* वी<sub>dd</sub> - यह PIC के लिए सकारात्मक पावर इनपुट है।कुछ प्रोग्रामर को सर्किट द्वारा प्रदान किए जाने की आवश्यकता होती है (सर्किट को कम से कम आंशिक रूप से संचालित किया जाना चाहिए), कुछ प्रोग्रामर इस लाइन को स्वयं ड्राइव करने की उम्मीद करते हैं और सर्किट को बंद करने की आवश्यकता होती है, जबकि अन्य को किसी भी तरह से कॉन्फ़िगर किया जा सकता है (जैसे माइक्रोचिप ICD2)।एम्बेड इंक प्रोग्रामर वी को ड्राइव करने की उम्मीद करते हैं<sub>dd</sub> खुद को लाइन करें और प्रोग्रामिंग के दौरान लक्ष्य सर्किट को बंद करने की आवश्यकता होती है।
* '''V<sub>dd</sub>''' - यह PIC का सकारात्मक पावर इनपुट है। कुछ प्रोग्रामर को इसे परिपथ द्वारा प्रदान करने की आवश्यकता होती है (परिपथ कम से कम आंशिक रूप से संचालित होना चाहिए), कुछ प्रोग्रामर इस लाइन को स्वयं ड्राइव करने की अपेक्षा करते हैं और परिपथ को बंद करने की आवश्यकता होती है, जबकि अन्य को किसी भी तरह से कॉन्फ़िगर किया जा सकता है (जैसे माइक्रोचिप ICD2) . एंबेड इंक प्रोग्रामर स्वयं V<sub>dd</sub> लाइन को चलाने की अपेक्षा करते हैं और प्रोग्रामिंग के दौरान लक्ष्य परिपथ को बंद करने की आवश्यकता होती है।
* वी<sub>ss</sub> - पिक के लिए नकारात्मक पावर इनपुट और शेष संकेतों के लिए शून्य वोल्ट संदर्भ।अन्य संकेतों के वोल्टेज v के संबंध में स्पष्ट रूप से हैं<sub>ss</sub>
* '''V<sub>ss</sub>''' - PIC को नकारात्मक शक्ति इनपुट और शेष संकेतों के लिए शून्य वोल्ट संकेत है। अन्य संकेतों के वोल्टेज V<sub>ss</sub> के संबंध में निहित हैं।
* ICSPCLK - सीरियल डेटा इंटरफ़ेस की क्लॉक लाइन।यह लाइन GND से v तक घूमती है<sub>dd</sub> और हमेशा प्रोग्रामर द्वारा संचालित होता है।डेटा को गिरने वाले किनारे पर स्थानांतरित किया जाता है।
* '''ICSPCLK''' - सीरियल डेटा इंटरफ़ेस की क्लॉक लाइन। यह रेखा GND से V<sub>dd</sub> तक घूमती है और हमेशा प्रोग्रामर द्वारा संचालित होती है। डेटा को गिरते हुए किनारे पर स्थानांतरित किया जाता है।
* ICSPDAT - सीरियल डेटा लाइन।सीरियल इंटरफ़ेस द्वि-दिशात्मक है, इसलिए इस लाइन को वर्तमान ऑपरेशन के आधार पर प्रोग्रामर या पीआईसी द्वारा संचालित किया जा सकता है।या तो मामले में यह लाइन GND से VDD तक घूमती है।पीजीसी के गिरने के किनारे पर थोड़ा स्थानांतरित किया जाता है।
* '''ICSPDAT''' - सीरियल डेटा लाइन है। सीरियल इंटरफ़ेस द्वि-दिशात्मक है, इसलिए वर्तमान ऑपरेशन के आधार पर इस लाइन को प्रोग्रामर या पीआईसी द्वारा संचालित किया जा सकता है। किसी भी स्थिति में यह रेखा GND से Vdd तक झूलती है। पीजीसी के गिरते किनारे पर थोड़ा स्थानांतरित किया जाता है।
* AUX/PGM - नए PIC कंट्रोलर कम वोल्टेज प्रोग्रामिंग (LVP) को सक्षम करने के लिए इस पिन का उपयोग करते हैं।PGM उच्च पकड़कर, माइक्रो-कंट्रोलर LVP मोड में प्रवेश करेगा।PIC माइक्रो -कंट्रोलर को LVP सक्षम के साथ भेज दिया जाता है - इसलिए यदि आप एक ब्रांड नई चिप का उपयोग करते हैं तो आप इसे LVP मोड में उपयोग कर सकते हैं।मोड को बदलने का एकमात्र तरीका उच्च वोल्टेज प्रोग्रामर का उपयोग करके है।यदि आप इस पिन से कोई कनेक्शन के साथ माइक्रो कंट्रोलर को प्रोग्राम करते हैं, तो मोड को अपरिवर्तित छोड़ दिया जाता है।
* '''AUX/PGM''' - नए PIC कंट्रोलर लो वोल्टेज प्रोग्रामिंग (LVP) को सक्षम करने के लिए इस पिन का उपयोग करते हैं। PGM को ऊंचा रखने से, माइक्रो-नियंत्रक LVP मोड में प्रवेश करेगा। PIC माइक्रो-कंट्रोलर LVP सक्षम के साथ भेजे जाते हैं - इसलिए यदि आप एक बिलकुल नई चिप का उपयोग करते हैं तो आप इसे LVP मोड में उपयोग कर सकते हैं। उच्च वोल्टेज प्रोग्रामर का उपयोग करके मोड को बदलने का एकमात्र तरीका है। यदि आप इस पिन से बिना किसी कनेक्शन के माइक्रो कंट्रोलर को प्रोग्राम करते हैं, तो मोड अपरिवर्तित रहता है।


=== RJ11 पिनआउट ===
=== RJ11 पिनआउट ===
एक ICSP प्रोग्रामर के साथ पंजीकृत जैक#RJ11 | RJ11 सॉकेट्स का उपयोग करने के लिए एक उद्योग मानक माइक्रोचिप द्वारा समर्थित है।चित्रण उनके डेटा शीट में प्रदान की गई जानकारी का प्रतिनिधित्व करता है।हालांकि, भ्रम के लिए जगह है।PIC डेटा शीट एक उल्टे सॉकेट दिखाती हैं और पिनआउट का एक चित्रात्मक दृश्य प्रदान नहीं करती हैं, इसलिए यह स्पष्ट नहीं है कि सॉकेट पिन 1 के किस तरफ स्थित है।यहां प्रदान किया गया चित्रण अप्रयुक्त है, लेकिन फोन उद्योग मानक पिनआउट (RJ11 प्लग/सॉकेट को वायर्ड डेस्कटॉप फोन के लिए विकसित किया गया था) का उपयोग करता है।
ICSP प्रोग्रामर के साथ [[:hi:पंजीकृत जैक|RJ11 सॉकेट]] का उपयोग करने के लिए एक उद्योग मानक माइक्रोचिप द्वारा समर्थित है। चित्रण उनके डेटा शीट में प्रदान की गई जानकारी का प्रतिनिधित्व करता है। हालांकि, भ्रम की गुंजाइश है। PIC डेटा शीट एक उलटा सॉकेट दिखाती है और पिनआउट का सचित्र दृश्य प्रदान नहीं करती है, इसलिए यह स्पष्ट नहीं है कि सॉकेट पिन 1 किस तरफ स्थित है। यहां प्रदान किया गया चित्रण अप्रमाणित है लेकिन फोन उद्योग मानक '''पिनआउट''' का उपयोग करता है (RJ11 प्लग/सॉकेट मूल रूप से वायर्ड डेस्कटॉप फोन के लिए विकसित किया गया था)
[[File:Rj11-4-6 to icsp.jpg|thumb|ICSP PIC प्रोग्रामर के लिए RJ11]]
[[File:Rj11-4-6 to icsp.jpg|thumb|ICSP PIC प्रोग्रामर के लिए RJ11]]
==संदर्भ==
==संदर्भ==
{{reflist}}
{{reflist}}
== यह भी देखें ==
== यह भी देखें ==
*डिवाइस प्रोग्रामर
*डिवाइस प्रोग्रामर
Line 73: Line 73:
{{Microchip Technology}}
{{Microchip Technology}}
{{Microcontrollers}}
{{Microcontrollers}}
श्रेणी: डिजिटल इलेक्ट्रॉनिक्स
 
श्रेणी: माइक्रोकंट्रोलर
[[Category:All Wikipedia articles written in American English]]
[[Category:All articles with bare URLs for citations]]
[[Category:Articles with PDF format bare URLs for citations]]
[[Category:Articles with bare URLs for citations from March 2022]]
[[Category:Articles with short description]]
[[Category:Collapse templates]]
[[Category:Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages with script errors]]
[[Category:Short description with empty Wikidata description]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates generating microformats]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates using TemplateData]]
[[Category:Use American English from March 2019]]
[[Category:Use mdy dates from March 2019]]
[[Category:Wikipedia metatemplates]]

Latest revision as of 14:47, 30 November 2022

6- और 10-पिन एवीआर आईएसपी हेडर

इन-सिस्टम प्रोग्रामिंग (ISP), या जिसे इन-परिपथ सीरियल प्रोग्रामिंग (ICSP) भी कहा जाता है, कुछ प्रोग्रामेबल लॉजिक डिवाइसेस, माइक्रोकंट्रोलर्स और अन्य एम्बेडेड डिवाइसों की क्षमता है, जिन्हें चिप की आवश्यकता के बजाय एक पूर्ण सिस्टम में स्थापित करते समय प्रोग्राम किया जाता है। इसे सिस्टम में स्थापित करने से पहले प्रोग्राम किया जाना है। यह परिपथ बोर्ड पर विशेषज्ञ प्रोग्रामिंग परिपथ की आवश्यकता के बिना फर्मवेयर अपडेट को माइक्रोकंट्रोलर्स और संबंधित प्रोसेसर की ऑन-चिप मेमोरी में वितरित करने की अनुमति देता है, और डिज़ाइन कार्य को सरल करता है।[1]

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

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

माइक्रोकंट्रोलर्स को सामान्यतः एक मुद्रित परिपथ बोर्ड में सीधे टांका लगाया जाता है और सामान्यतः दूसरे कंप्यूटर के लिए एक बड़े बाहरी प्रोग्रामिंग केबल के लिए परिपथ्री या स्थान नहीं होता है।

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

इतिहास

1990 के दशक की शुरुआत से माइक्रोकंट्रोलर्स की वास्तुकला में एक महत्वपूर्ण तकनीकी विकास देखा गया था। सबसे पहले, उन्हें दो संभावित समाधानों में महसूस किया गया: ओटीपी (वन-टाइम प्रोग्रामेबल) या ईपीरॉम मेमोरी के साथ। इन प्रौद्योगिकियों में, स्मृति-मिटाने की प्रक्रिया के लिए पैकेज के ऊपर एक विशिष्ट विंडो के माध्यम से चिप को पराबैंगनी प्रकाश के संपर्क में लाने की आवश्यकता होती है। 1993 में माइक्रोचिप टेक्नोलॉजी ने ईईपीरोम(EEPROM) मेमोरी के साथ पहला माइक्रोकंट्रोलर पेश किया: PIC16C84। ईईपीरोम मेमोरी को विद्युत रूप से मिटाया जा सकता है। इस सुविधा ने पैकेज के ऊपर मिटाने वाली विंडो को हटाकर और इन-सिस्टम प्रोग्रामिंग तकनीक शुरू करके वसूली लागत को कम करने की अनुमति दी। आईएसपी फ्लैशिंग प्रक्रिया के साथ उत्पादन प्रक्रिया के अंत में सीधे बोर्ड पर प्रदर्शन किया जा सकता है। इस विकास ने प्रोग्रामिंग और कार्यात्मक परीक्षण चरण और उत्पादन वातावरणों को एकजुट करने और बोर्डों के प्रारंभिक उत्पादन को शुरू करने की संभावना दी, भले ही फर्मवेयर विकास अभी तक पूरा नहीं हुआ हो। इस तरह बग को ठीक करना या बाद में बदलाव करना संभव था। उसी वर्ष, Atmel ने फ्लैश मेमोरी के साथ पहला माइक्रोकंट्रोलर विकसित किया, प्रोग्राम के लिए आसान और तेज़ और ईईपीरोम मेमोरी की तुलना में बहुत लंबे जीवन चक्र के साथ है।

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

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

औद्योगिक आवेदन

इन-सिस्टम प्रोग्रामिंग प्रक्रिया उत्पाद के उत्पादन के अंतिम चरण के दौरान होती है और इसे उत्पादन की मात्रा के आधार पर दो अलग-अलग तरीकों से किया जा सकता है।

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

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

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

माइक्रोचिप आईसीएसपी (ICSP)

अधिकांश माइक्रोचिप माइक्रोकंट्रोलर्स के लिए, आईसीएसपी (ICSP) प्रोग्रामिंग दो पिनों, घड़ी (PGC) और डेटा (PGD) का उपयोग करके की जाती है, जबकि एक उच्च वोल्टेज (12V) Vpp/MCLR पिन पर मौजूद है। कम वोल्टेज प्रोग्रामिंग (5V या 3.3V) उच्च वोल्टेज के साथ डिस्पेंस करता है, लेकिन I/O पिन के अनन्य उपयोग को सुरक्षित रखता है। हालाँकि, नए माइक्रोकंट्रोलर्स के लिए, विशेष रूप से माइक्रोचिप टेक्नोलॉजी से PIC18F6XJXX/8XJXX माइक्रोकंट्रोलर्स परिवारों के लिए, आईसीएसपी मोड में प्रवेश करना थोड़ा अलग है।[2] आईसीएसपी प्रोग्राम/सत्यापन मोड में प्रवेश करने के लिए निम्नलिखित तीन चरणों की आवश्यकता होती है::

  1. वोल्टेज संक्षेप में एमसीएलआर (मास्टर क्लियर) पिन पर लागू होता है।
  2. पीजीडी पर एक 32-बिट कुंजी अनुक्रम प्रस्तुत किया गया है।
  3. वोल्टेज को एमसीएलआर में फिर से लागू किया जाता है।
माइक्रोचिप पिकिट आईसीएसपी प्रोग्रामर

हार्डवेयर का एक अलग खंड, जिसे प्रोग्रामर कहा जाता है, एक पीसी के I/O पोर्ट से एक तरफ और दूसरी तरफ PIC से कनेक्ट करने की आवश्यकता होती है। प्रत्येक प्रमुख प्रोग्रामिंग प्रकार के लिए सुविधाओं की सूची इस प्रकार है:

  1. पैरेलल पोर्ट - बड़ी भारी केबल, अधिकांश कंप्यूटरों में केवल एक पोर्ट होता है और संलग्न प्रिंटर के साथ प्रोग्रामिंग केबल को स्वैप करना असुविधाजनक हो सकता है। 2010 के बाद के अधिकांश लैपटॉप इस पोर्ट का समर्थन नहीं करते हैं। समानांतर पोर्ट प्रोग्रामिंग बहुत तेज है।
  2. सीरियल पोर्ट (COM पोर्ट) - एक समय में सबसे लोकप्रिय तरीका। सीरियल पोर्ट में सामान्यतः पर्याप्त परिपथ प्रोग्रामिंग आपूर्ति वोल्टेज की कमी होती है। 2010 के बाद के अधिकांश कंप्यूटर और लैपटॉप में इस पोर्ट के लिए समर्थन की कमी है।
  3. सॉकेट (परिपथ के अंदर या बाहर) - सीपीयू को या तो परिपथ बोर्ड से हटा दिया जाना चाहिए, या एक क्लैंप को चिप बनाने वाली पहुंच से जुड़ा होना चाहिए।
  4. USB केबल - छोटा और हल्का वजन, वोल्टेज स्रोत के लिए समर्थन है और अधिकांश कंप्यूटरों में अतिरिक्त पोर्ट उपलब्ध हैं। प्रोग्राम किए जाने वाले परिपथ और कंप्यूटर के बीच की दूरी यूएसबी (USB) केबल की लंबाई से सीमित होती है - यह सामान्यतः 180 सेमी से कम होनी चाहिए। यह प्रोग्रामिंग उपकरणों को मशीनरी या कैबिनेट में एक समस्या बना सकता है।


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

PICs को पांच संकेतों का उपयोग करके प्रोग्राम किया जाता है (छठा पिन 'ऑक्स' प्रदान किया जाता है लेकिन उपयोग नहीं किया जाता है)। डेटा को दो-तार तुल्यकालिक धारावाहिक योजना का उपयोग करके स्थानांतरित किया जाता है, तीन और तार प्रोग्रामिंग और चिप शक्ति प्रदान करते हैं। क्लॉक सिग्नल को हमेशा प्रोग्रामर द्वारा नियंत्रित किया जाता है।

विशिष्ट प्रोग्रामिंग संचार


सिग्नल और पिनआउट

अँगूठा

विशिष्ट चिप कनेक्शन
  • Vpp - प्रोग्रामिंग मोड वोल्टेज हैf। यह MCLR पिन, या कुछ बड़े पिन-काउंट PIC पर उपलब्ध वैकल्पिक ICSP पोर्ट के Vpp पिन से जुड़ा होना चाहिए। PIC को प्रोग्रामिंग मोड में डालने के लिए, यह लाइन एक निर्दिष्ट सीमा में होनी चाहिए जो PIC से PIC में भिन्न होती है। 5 V PICs के लिए, यह हमेशा Vdd से कुछ अधिक होता है, और 13.5 V जितना अधिक हो सकता है। केवल 3.3 V PIC जैसे 18FJ, 24H, और 33F श्रृंखला प्रोग्रामिंग मोड में प्रवेश करने के लिए एक विशेष हस्ताक्षर का उपयोग करते हैं और Vpp एक डिजिटल सिग्नल है वह या तो जमीन पर है या Vdd। कोई भी Vpp वोल्टेज नहीं है जो सभी PIC की मान्य Vpp सीमा के भीतर हो। वास्तव में, कुछ PIC के लिए न्यूनतम आवश्यक Vpp स्तर अन्य PIC को नुकसान पहुँचा सकता है।
  • Vdd - यह PIC का सकारात्मक पावर इनपुट है। कुछ प्रोग्रामर को इसे परिपथ द्वारा प्रदान करने की आवश्यकता होती है (परिपथ कम से कम आंशिक रूप से संचालित होना चाहिए), कुछ प्रोग्रामर इस लाइन को स्वयं ड्राइव करने की अपेक्षा करते हैं और परिपथ को बंद करने की आवश्यकता होती है, जबकि अन्य को किसी भी तरह से कॉन्फ़िगर किया जा सकता है (जैसे माइक्रोचिप ICD2) . एंबेड इंक प्रोग्रामर स्वयं Vdd लाइन को चलाने की अपेक्षा करते हैं और प्रोग्रामिंग के दौरान लक्ष्य परिपथ को बंद करने की आवश्यकता होती है।
  • Vss - PIC को नकारात्मक शक्ति इनपुट और शेष संकेतों के लिए शून्य वोल्ट संकेत है। अन्य संकेतों के वोल्टेज Vss के संबंध में निहित हैं।
  • ICSPCLK - सीरियल डेटा इंटरफ़ेस की क्लॉक लाइन। यह रेखा GND से Vdd तक घूमती है और हमेशा प्रोग्रामर द्वारा संचालित होती है। डेटा को गिरते हुए किनारे पर स्थानांतरित किया जाता है।
  • ICSPDAT - सीरियल डेटा लाइन है। सीरियल इंटरफ़ेस द्वि-दिशात्मक है, इसलिए वर्तमान ऑपरेशन के आधार पर इस लाइन को प्रोग्रामर या पीआईसी द्वारा संचालित किया जा सकता है। किसी भी स्थिति में यह रेखा GND से Vdd तक झूलती है। पीजीसी के गिरते किनारे पर थोड़ा स्थानांतरित किया जाता है।
  • AUX/PGM - नए PIC कंट्रोलर लो वोल्टेज प्रोग्रामिंग (LVP) को सक्षम करने के लिए इस पिन का उपयोग करते हैं। PGM को ऊंचा रखने से, माइक्रो-नियंत्रक LVP मोड में प्रवेश करेगा। PIC माइक्रो-कंट्रोलर LVP सक्षम के साथ भेजे जाते हैं - इसलिए यदि आप एक बिलकुल नई चिप का उपयोग करते हैं तो आप इसे LVP मोड में उपयोग कर सकते हैं। उच्च वोल्टेज प्रोग्रामर का उपयोग करके मोड को बदलने का एकमात्र तरीका है। यदि आप इस पिन से बिना किसी कनेक्शन के माइक्रो कंट्रोलर को प्रोग्राम करते हैं, तो मोड अपरिवर्तित रहता है।

RJ11 पिनआउट

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

ICSP PIC प्रोग्रामर के लिए RJ11

संदर्भ

यह भी देखें

  • डिवाइस प्रोग्रामर