इन-सिस्टम प्रोग्रामिंग

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

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

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

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

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

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

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

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

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

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

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

माइक्रोचिप ICSP
अधिकांश माइक्रोचिप माइक्रोकंट्रोलर के लिए, ICSP प्रोग्रामिंग को दो पिन, घड़ी (PGC) और डेटा (PGD) का उपयोग करके किया जाता है, जबकि एक उच्च वोल्टेज (12 & nbsp; v) VPP/MCLR पिन पर मौजूद है।कम वोल्टेज प्रोग्रामिंग (5 & nbsp; v या 3.3 & nbsp; v) उच्च वोल्टेज के साथ डिस्पेंस करता है, लेकिन I/O पिन का अनन्य उपयोग करता है।हालांकि, नए माइक्रोकंट्रोलर्स के लिए, विशेष रूप से PIC18F6XJXX/8XJXX माइक्रोकंट्रोलर परिवारों, ICSP मोड में प्रवेश करना थोड़ा अलग है। ICSP प्रोग्राम/सत्यापित मोड में प्रवेश करने के लिए निम्नलिखित तीन चरणों की आवश्यकता होती है:
 * 1) वोल्टेज को संक्षेप में MCLR (मास्टर क्लियर) पिन पर लागू किया जाता है।
 * 2) PGD पर 32-बिट की कुंजी अनुक्रम प्रस्तुत किया गया है।
 * 3) वोल्टेज MCLR को फिर से लागू किया जाता है।

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


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

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

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



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

 * वीpp - प्रोग्रामिंग मोड वोल्टेज।यह MCLR पिन, या V से जुड़ा होना चाहिएpp कुछ बड़े-पिन-काउंट पिक्स पर उपलब्ध वैकल्पिक ICSP पोर्ट का पिन।PIC को प्रोग्रामिंग मोड में डालने के लिए, यह लाइन एक निर्दिष्ट रेंज में होनी चाहिए जो PIC से PIC में भिन्न होती है।5 के लिएV pics, यह हमेशा v के ऊपर कुछ राशि हैdd, और 13.5 वी के रूप में उच्च हो सकता है। 3.3 वी केवल 18 एफजे, 24 एच, और 33 एफ श्रृंखला जैसे पिक्स प्रोग्रामिंग मोड और वी में प्रवेश करने के लिए एक विशेष हस्ताक्षर का उपयोग करते हैंpp एक डिजिटल सिग्नल है जो या तो जमीन या वीडीडी पर है।कोई नहीं हैpp वोल्टेज जो मान्य v के भीतर हैpp सभी चित्रों की सीमा।वास्तव में, न्यूनतम आवश्यक वीpp कुछ पिक्स के लिए स्तर अन्य पिक्स को नुकसान पहुंचा सकता है।
 * वीdd - यह PIC के लिए सकारात्मक पावर इनपुट है।कुछ प्रोग्रामर को सर्किट द्वारा प्रदान किए जाने की आवश्यकता होती है (सर्किट को कम से कम आंशिक रूप से संचालित किया जाना चाहिए), कुछ प्रोग्रामर इस लाइन को स्वयं ड्राइव करने की उम्मीद करते हैं और सर्किट को बंद करने की आवश्यकता होती है, जबकि अन्य को किसी भी तरह से कॉन्फ़िगर किया जा सकता है (जैसे माइक्रोचिप ICD2)।एम्बेड इंक प्रोग्रामर वी को ड्राइव करने की उम्मीद करते हैंdd खुद को लाइन करें और प्रोग्रामिंग के दौरान लक्ष्य सर्किट को बंद करने की आवश्यकता होती है।
 * वीss - पिक के लिए नकारात्मक पावर इनपुट और शेष संकेतों के लिए शून्य वोल्ट संदर्भ।अन्य संकेतों के वोल्टेज v के संबंध में स्पष्ट रूप से हैंss।
 * ICSPCLK - सीरियल डेटा इंटरफ़ेस की क्लॉक लाइन।यह लाइन GND से v तक घूमती हैdd और हमेशा प्रोग्रामर द्वारा संचालित होता है।डेटा को गिरने वाले किनारे पर स्थानांतरित किया जाता है।
 * ICSPDAT - सीरियल डेटा लाइन।सीरियल इंटरफ़ेस द्वि-दिशात्मक है, इसलिए इस लाइन को वर्तमान ऑपरेशन के आधार पर प्रोग्रामर या पीआईसी द्वारा संचालित किया जा सकता है।या तो मामले में यह लाइन GND से VDD तक घूमती है।पीजीसी के गिरने के किनारे पर थोड़ा स्थानांतरित किया जाता है।
 * AUX/PGM - नए PIC कंट्रोलर कम वोल्टेज प्रोग्रामिंग (LVP) को सक्षम करने के लिए इस पिन का उपयोग करते हैं।PGM उच्च पकड़कर, माइक्रो-कंट्रोलर LVP मोड में प्रवेश करेगा।PIC माइक्रो -कंट्रोलर को LVP सक्षम के साथ भेज दिया जाता है - इसलिए यदि आप एक ब्रांड नई चिप का उपयोग करते हैं तो आप इसे LVP मोड में उपयोग कर सकते हैं।मोड को बदलने का एकमात्र तरीका उच्च वोल्टेज प्रोग्रामर का उपयोग करके है।यदि आप इस पिन से कोई कनेक्शन के साथ माइक्रो कंट्रोलर को प्रोग्राम करते हैं, तो मोड को अपरिवर्तित छोड़ दिया जाता है।

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

यह भी देखें

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

श्रेणी: डिजिटल इलेक्ट्रॉनिक्स श्रेणी: माइक्रोकंट्रोलर