आई2सी संचार इंटरफ़ेस
20 अक्टूबर 2023
एम्बेडेड सिस्टम और इलेक्ट्रॉनिक्स की दुनिया में, घटकों के बीच कुशल संचार अत्यंत आवश्यक है। आज उपलब्ध कई संचार प्रोटोकॉल में से, I2C (इंटर-इंटीग्रेटेड सर्किट) अपनी सरलता, लचीलेपन और कम बिजली खपत के कारण कई इंजीनियरों और डेवलपर्स के बीच एक लोकप्रिय विकल्प के रूप में उभरा है।
इस आलेख में:
I2C क्या है?
इंटर-इंटीग्रेटेड सर्किट (I2C), जिसे संक्षेप में I²C कहा जाता है, एक व्यापक रूप से अपनाया जाने वाला सीरियल संचार प्रोटोकॉल है। इसकी विशेषता इसका मल्टी-मास्टर, मल्टी-स्लेव और सिंगल-एंडेड सीरियल बस डिज़ाइन है, जो कम दूरी के संचार के लिए उपयुक्त है। I2C की अनूठी विशेषता यह है कि यह संचार के लिए केवल दो तारों, SDA (सीरियल डेटा) और SCL (सीरियल क्लॉक) का उपयोग करता है, जिससे कनेक्शन सरल हो जाते हैं और जगह की बचत होती है।
हालांकि आधिकारिक रूप से इसे "I²C" कहा जाता है, सरलता के लिए हम इसे "I2C" कहेंगे। ² चिह्न सुपरस्क्रिप्ट 2 है, जिसका अर्थ है कि I को दो बार स्वयं से गुणा किया गया है। यह संचार के लिए उपयोग किए जाने वाले दो तारों का संकेत है।
आई2सी विशेषताएं:
- I2C एक सीरियल, सिंक्रोनस डेटा संचार प्रोटोकॉल है।
- यह संचार के लिए केवल दो तारों का उपयोग करता है - सीरियल डेटा और सीरियल क्लॉक।
- यह एक ही बस पर कई मास्टर और कई स्लेव डिवाइसों को सपोर्ट करता है।
- हाफ-डुप्लेक्स ट्रांसमिशन - मास्टर और स्लेव डिवाइस के बीच संचार दोनों दिशाओं में हो सकता है, लेकिन एक साथ नहीं।
- क्लॉक स्ट्रेचिंग - डेटा प्रोसेसिंग के लिए अधिक समय देने के लिए एक स्लेव डिवाइस क्लॉक लाइन को होल्ड कर सकता है।
- मध्यस्थता - यदि दो मास्टर एक ही समय में ट्रांसमिशन शुरू करते हैं, तो I2C में यह तय करने की एक अंतर्निहित विधि होती है कि कौन सा मास्टर जारी रखेगा और कौन सा प्रतीक्षा करेगा, जिससे डेटा की अखंडता सुनिश्चित होती है।
- यह 7-बिट एड्रेसिंग सिस्टम है, लेकिन यह 10-बिट एड्रेस को भी सपोर्ट कर सकता है।
- विभिन्न गति का समर्थन करता है - मानक I2C विनिर्देश चार गति ग्रेड परिभाषित करता है: मानक मोड (100 kbps), फास्ट मोड (400 kbps), फास्ट मोड प्लस (1 Mbps), और हाई-स्पीड मोड (3.4 Mbps)।
और जानें : सीरियल बनाम पैरेलल संचार
I2C कैसे काम करता है?
I2C एक दो-तार वाली सीरियल बस है जो दो द्वि-दिशात्मक ओपन-ड्रेन लाइनों, SDA और SCL का उपयोग करती है, जिनमें से दोनों को हाई पर खींचा जाता है।
- एसडीए (सीरियल डेटा लाइन) : यह लाइन डेटा ले जाती है।
- एससीएल (सीरियल क्लॉक लाइन) : यह लाइन सिंक्रोनाइज़ेशन प्रदान करती है।
आई2सी बस पर मौजूद डिवाइस या तो मास्टर हो सकते हैं या स्लेव:
- मास्टर (नियंत्रक): बस पर डेटा स्थानांतरण को आरंभ और नियंत्रित करता है।
- दास (परिधीय): स्वामी के प्रति जवाबदेह।
ऐतिहासिक रूप से, "मास्टर" और "स्लेव" शब्दों का उपयोग I2C बस पर डिवाइस की भूमिकाओं का वर्णन करने के लिए किया जाता रहा है, लेकिन कई संदर्भों में इन्हें मुख्य रूप से "कंट्रोलर" और "पेरिफेरल" से प्रतिस्थापित कर दिया गया है।
आई2सी डेटा संचार प्रक्रिया
- बस खाली (बस खाली) स्थिति:
- किसी भी संचार के शुरू होने से पहले, एसडीए (सीरियल डेटा लाइन) और एससीएल (सीरियल क्लॉक लाइन) दोनों हाई रहती हैं, जो यह दर्शाती हैं कि बस निष्क्रिय है।
- प्रारंभ स्थिति:
- मास्टर द्वारा शुरू की गई, प्रारंभ स्थिति तब उत्पन्न होती है जब SDA लाइन हाई से लो हो जाती है जबकि SCL लाइन हाई रहती है। यह सभी स्लेव डिवाइसों को संकेत देता है कि संचार शुरू होने वाला है।
- पता भेजा जा रहा है:
- मास्टर डिवाइस उस स्लेव डिवाइस को 7-बिट का पता भेजता है जिससे वह संचार करना चाहता है। इसके बाद 8वां बिट, रीड/राइट (R/W) बिट होता है, जो ऑपरेशन की दिशा को इंगित करता है:
0लिखने के लिए और1पढ़ने के लिए। - इस संयुक्त 8-बिट अनुक्रम को एड्रेस फ्रेम कहा जाता है।
- 10-बिट एड्रेस के विशेष मामले में, मास्टर 2 बाइट भेजता है। पहली बाइट 11110 से शुरू होती है, उसके बाद 10-बिट एड्रेस के बिट 9 और 8 होते हैं, और फिर R/W बिट होता है। दूसरी बाइट में 10-बिट एड्रेस के बिट 7 से 0 होते हैं।
- मास्टर डिवाइस उस स्लेव डिवाइस को 7-बिट का पता भेजता है जिससे वह संचार करना चाहता है। इसके बाद 8वां बिट, रीड/राइट (R/W) बिट होता है, जो ऑपरेशन की दिशा को इंगित करता है:
- स्वीकृति (ACK) बिट:
- एड्रेस और R/W बिट्स भेजे जाने के बाद, मास्टर SDA लाइन को रिलीज़ कर देता है। एड्रेस प्राप्त स्लेव डिवाइस SDA लाइन को लो (एक्नॉलेजमेंट बिट) करके यह पुष्टि करता है कि उसे अपना एड्रेस सफलतापूर्वक प्राप्त हो गया है और वह संचार के लिए तैयार है।
- डेटा स्थानांतरण:
- राइट ऑपरेशन के लिए, मास्टर स्लेव को डेटा का एक बाइट भेजता है। स्लेव एक क्लॉक पल्स के लिए SDA लाइन को लो करके प्राप्ति की पुष्टि करता है।
- रीड ऑपरेशन के लिए, स्लेव मास्टर को डेटा का एक बाइट भेजता है। मास्टर प्राप्ति की पुष्टि करता है, लेकिन रीड ऑपरेशन के दौरान अंतिम बाइट के बाद एसडीए लाइन (एनएके या कोई स्वीकृति नहीं) जारी कर देता है, जिससे स्लेव को डेटा भेजना बंद करने का संकेत मिलता है।
- रोक की स्थिति:
- संचार सत्र समाप्त करने के लिए, मास्टर SCL लाइन के हाई रहते हुए SDA लाइन को लो से हाई में बदलकर स्टॉप कंडीशन उत्पन्न करता है। स्टॉप कंडीशन के बाद, बस निष्क्रिय अवस्था में लौट आती है।
- मास्टर किसी अन्य रीड या राइट ऑपरेशन के लिए बस पर नियंत्रण बनाए रखने के लिए बार-बार स्टार्ट कंडीशन भी उत्पन्न कर सकता है। इसका उपयोग अक्सर अधिक जटिल ऑपरेशनों में किया जाता है, जैसे कि बस को छोड़े बिना डेटा की दिशा बदलना।
और जानें : बॉड दर क्या है?
कई दासों को संबोधित करना
यदि एक से अधिक स्लेव डिवाइस हैं, तो मास्टर प्रत्येक डिवाइस से उनके विशिष्ट पतों का उपयोग करके संचार करता है। केवल मेल खाने वाले पते वाला स्लेव ही प्रतिक्रिया देता है और संचार करता है, जबकि अन्य संदेशों को अनदेखा कर देते हैं।
घड़ी खींचना
यदि किसी निर्देश को संसाधित करने या डेटा प्राप्त करने के लिए अधिक समय की आवश्यकता होती है, तो एक स्लेव SCL लाइन को रोक सकता है (इस प्रक्रिया को क्लॉक स्ट्रेचिंग के रूप में जाना जाता है)। मास्टर को SCL के मुक्त होने तक प्रतीक्षा करनी होगी।
बस आर्बिट्रेशन (मल्टी-मास्टर के लिए)
आर्बिट्रेशन वह प्रक्रिया है जिसके द्वारा यह निर्धारित किया जाता है कि जब एकाधिक मास्टर एक साथ या कम समय अंतराल में संचार शुरू करने का प्रयास करते हैं तो किस मास्टर डिवाइस को बस का नियंत्रण प्राप्त होगा। I2C कई मास्टर्स का समर्थन करता है, जिसका अर्थ है कि एक से अधिक मास्टर संदेश को दूषित किए बिना एक ही समय में बस को नियंत्रित करने का प्रयास कर सकते हैं।
आई2सी मध्यस्थता प्रक्रिया:
- जब कोई मास्टर ट्रांसमिशन शुरू करता है, तो वह मान लेता है कि बस पर उसका नियंत्रण है।
- पता और डेटा बिट्स भेजते समय, यह प्रत्येक बिट लिखने के बाद एसडीए लाइन की जाँच करता है। यदि यह लिखता है कि
0और इसे पढ़कर सुनाता है1उसे पता है कि दूसरे स्वामी का नियंत्रण है और वह पीछे हट जाता है, जिससे मध्यस्थता में उसकी हार हो जाती है। - आर्बिट्रेशन हारने वाला मास्टर तुरंत ट्रांसमिशन बंद कर देता है और फिर से कोशिश करने से पहले एससीएल (सीरियल क्लॉक) लाइन के हाई होने का इंतजार करता है, जो वर्तमान ट्रांसफर के समाप्त होने का संकेत देता है।
केवल दो तारों का उपयोग करके कुशल डेटा हस्तांतरण के साथ, I2C विश्वसनीय और लागत प्रभावी संचार चाहने वाले सिस्टम के लिए एक लोकप्रिय सीरियल संचार इंटरफ़ेस बन गया है।
अधिक जानें : 16x2 COG LCD पर I2C लागू करने के लिए उदाहरण कोड
आई2सी के फायदे:
- सरलता : चाहे कितने भी उपकरण जुड़े हों, इसके लिए केवल दो तारों की आवश्यकता होती है।
- लचीलापन : एकाधिक मास्टर और स्लेव को सपोर्ट करता है।
- विद्युत दक्षता : उपयोग में न होने पर I2C परिधीय उपकरणों को बस को प्रभावित किए बिना बंद किया जा सकता है।
- अंतर्निर्मित एड्रेसिंग : बस पर मौजूद प्रत्येक डिवाइस का एक अद्वितीय एड्रेस होता है।
- व्यापक रूप से समर्थित : कई माइक्रोकंट्रोलर और परिधीय उपकरण अंतर्निहित I2C हार्डवेयर इंटरफेस के साथ आते हैं, जिससे एकीकरण आसान हो जाता है।
- लचीले गति मोड : I2C कई गति मोड का समर्थन करता है।
आई2सी के नुकसान:
- गति संबंधी सीमाएँ : आमतौर पर SPI जैसे अन्य प्रोटोकॉल की तुलना में धीमी होती हैं।
- दूरी संबंधी सीमाएँ : I2C को कम दूरी के लिए डिज़ाइन किया गया है। अधिक दूरी के लिए, सिग्नल की अखंडता और शोर समस्याग्रस्त हो सकते हैं।
- बड़े नेटवर्कों में जटिलता : जैसे-जैसे अधिक डिवाइस जोड़े जाते हैं, एड्रेसिंग जटिल हो सकती है।
- त्रुटि जाँच का अभाव : इसमें अंतर्निहित त्रुटि जाँच तंत्र का अभाव है।
- एकल-छोर : कोई विभेदक संकेतन नहीं, जिससे शोर प्रतिरोधक क्षमता में सुधार हो सकता है।
आई2सी बनाम अन्य सीरियल संचार प्रोटोकॉल
अपने प्रोजेक्ट के लिए सीरियल कम्युनिकेशन प्रोटोकॉल चुनते समय, अपने एप्लिकेशन की विशिष्ट आवश्यकताओं पर विचार करना महत्वपूर्ण है। हालांकि I2C एक लोकप्रिय विकल्प है, लेकिन SPI, RS-232 , CAN और UART जैसे अन्य प्रोटोकॉल भी उपलब्ध हैं। प्रत्येक प्रोटोकॉल के अपने फायदे और नुकसान हैं, इसलिए निर्णय लेने से पहले उनके लाभ और हानियों का मूल्यांकन करना आवश्यक है।
I2C बनाम SPI (सीरियल पेरिफेरल इंटरफेस):
- तार: SPI में अधिक तारों की आवश्यकता होती है: SCLK (सीरियल क्लॉक), MOSI (मास्टर आउट स्लेव इन), MISO (मास्टर इन स्लेव आउट), और प्रत्येक डिवाइस के लिए एक अलग SS (स्लेव सेलेक्ट)। इसके विपरीत, I2C में केवल SDA और SCL तारों की आवश्यकता होती है।
- गति: डेटा ट्रांसमिशन में एड्रेस फेज न होने के कारण SPI, I2C से तेज़ हो सकता है।
- लचीलापन: जहां I2C मूल रूप से मल्टी-मास्टर कॉन्फ़िगरेशन का समर्थन करता है, वहीं SPI ऐसा नहीं करता है।
I2C बनाम UART (यूनिवर्सल एसिंक्रोनस रिसीवर-ट्रांसमीटर):
- प्रोटोकॉल की जटिलता: UART सरल है क्योंकि इसमें केवल दो डिवाइस दो लाइनों (TX और RX) का उपयोग करके एक दूसरे से बात करते हैं। I2C केवल दो लाइनों का उपयोग करके कई डिवाइसों को कनेक्ट कर सकता है।
- सिंक्रोनाइज़ेशन: यूएआरटी अतुल्यकालिक है (कोई क्लॉक लाइन नहीं), जबकि आई2सी तुल्यकालिक है (क्लॉक लाइन की आवश्यकता होती है)।
आई2सी बनाम सीएएन (कंट्रोलर एरिया नेटवर्क):
- उपयोग का उदाहरण: CAN को वाहनों और औद्योगिक प्रणालियों के लिए डिज़ाइन किया गया है जहाँ शोरगुल वाली परिस्थितियों में विश्वसनीयता अत्यंत महत्वपूर्ण है। I2C मुख्य रूप से ICs के बीच कम दूरी के, ऑन-बोर्ड संचार के लिए है।
- विश्वसनीयता: CAN में अंतर्निहित त्रुटि-जांच और सुधार तंत्र होते हैं, जबकि I2C में ऐसा नहीं होता है।
I2C बनाम RS232:
- RS232 में 3 तारों का उपयोग होता है और यह केवल दो उपकरणों (एक ट्रांसमीटर और एक रिसीवर) को सपोर्ट करता है, जबकि I2C केवल 2 तारों के साथ कई उपकरणों को सपोर्ट करता है।
- RS-232 लंबी दूरी के संचार के लिए उपयुक्त है।
| शिष्टाचार | तारों की संख्या | रफ़्तार | जटिलता | बिजली की खपत | सामान्य अनुप्रयोग |
|---|---|---|---|---|---|
| I2C | 2 | धीमा | मध्यम | कम | एम्बेडेड सिस्टम, सेंसर, डिस्प्ले, एक्चुएटर, पेरिफेरल्स। |
| एसपीआई | 4 | तेज़ | मध्यम | मध्यम | उच्च गति संचार, मेमोरी चिप्स। |
| यूएआरटी | 2 | धीमा | कम | कम | अतुल्यकालिक संचार, लंबी दूरी पर क्रमिक संचार। |
| कर सकना | 2 | तेज़ | मध्यम | मध्यम | ऑटोमोटिव और औद्योगिक अनुप्रयोग। |
| 232 रुपये | 3 | धीमा | मध्यम | मध्यम | कंप्यूटर, प्रिंटर, मॉडेम। |
निष्कर्ष
I2C एक अनिवार्य संचार प्रोटोकॉल है जिसकी इलेक्ट्रॉनिक्स जगत में दशकों से सिद्ध प्रभावशीलता है। इसकी सरलता और केवल दो लाइनों का उपयोग करके कई उपकरणों को जोड़ने की क्षमता इसे अनेक अनुप्रयोगों के लिए एक लोकप्रिय विकल्प बनाती है। हालांकि, किसी भी प्रोटोकॉल की तरह, इसकी भी कुछ सीमाएँ हैं और यह सभी परिस्थितियों के लिए आदर्श नहीं है। किसी सिस्टम को डिज़ाइन करते समय, अनुप्रयोग की विशिष्ट आवश्यकताओं का मूल्यांकन करना चाहिए और उन आवश्यकताओं के अनुरूप सबसे उपयुक्त संचार प्रोटोकॉल का चयन करना चाहिए।