I2S प्रोटोकॉल: कार्य, अंतर और इसके अनुप्रयोग

समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें





मोबाइल हैंडसेट, कंप्यूटर और के भीतर डिजिटल सिस्टम और इसकी ऑडियो डेटा आवश्यकताएं घर स्वचालन समय के साथ उत्पादों में नाटकीय रूप से बदलाव आया है। प्रोसेसर से या उसके लिए ऑडियो सिग्नल डिजिटल होता जा रहा है। विभिन्न प्रणालियों में यह डेटा कई उपकरणों के माध्यम से संसाधित किया जाता है जैसे डीएसपी , एडीसी, डीएसी, डिजिटल आई/ओ इंटरफेस इत्यादि। इन उपकरणों के लिए एक दूसरे के साथ ऑडियो डेटा संचार करने के लिए एक मानक प्रोटोकॉल की आवश्यकता होती है। ऐसा ही एक है I2S प्रोटोकॉल। यह एक सीरियल बस इंटरफ़ेस है, जिसे फिलिप सेमीकंडक्टर द्वारा फरवरी 1986 में उपकरणों के बीच डिजिटल ऑडियो इंटरफ़ेस के लिए डिज़ाइन किया गया था। यह लेख I . के एक सिंहावलोकन पर चर्चा करता है 2S प्रोटोकॉल यह अनुप्रयोगों के साथ काम कर रहा है।


I2S प्रोटोकॉल क्या है?

डिजिटल ऑडियो डेटा को एक डिवाइस से दूसरे डिवाइस में ट्रांसमिट करने के लिए जिस प्रोटोकॉल का उपयोग किया जाता है, उसे I2S या इंटर-आईसी साउंड प्रोटोकॉल के रूप में जाना जाता है। यह प्रोटोकॉल एक इलेक्ट्रॉनिक डिवाइस के भीतर पीसीएम (पल्स-कोड मॉड्यूलेटेड) ऑडियो डेटा को एक आईसी से दूसरे में ट्रांसमिट करता है। I2S ऑडियो फ़ाइलों को प्रसारित करने में महत्वपूर्ण भूमिका निभाता है जो MCU से DAC या एम्पलीफायर में पहले से रिकॉर्ड की जाती हैं। इस प्रोटोकॉल का उपयोग माइक्रोफ़ोन का उपयोग करके ऑडियो को डिजिटाइज़ करने के लिए भी किया जा सकता है। I2S प्रोटोकॉल के भीतर कोई संपीड़न नहीं है, इसलिए आप OGG या MP3 या अन्य ऑडियो प्रारूप नहीं चला सकते हैं जो ऑडियो को संघनित करते हैं, हालाँकि, आप WAV फ़ाइलें चला सकते हैं।



विशेषताएँ

I2S प्रोटोकॉल विशेषताएं निम्नलिखित को शामिल कीजिए।

  • इसमें प्रत्येक नमूने के लिए 8 से 32 डेटा बिट होते हैं।
  • टीएक्स और आरएक्स फीफो बाधित।
  • यह डीएमए का समर्थन करता है।
  • 16-बिट, 32-बिट, 48-बिट, या 64-बिट शब्द चयन अवधि।
  • एक साथ द्वि-दिशात्मक ऑडियो स्ट्रीमिंग।
  • 8-बिट, 16-बिट और 24-बिट नमूना चौड़ाई।
  • इसकी अलग-अलग नमूना दरें हैं।
  • 64-बिट शब्द चयन अवधि के दौरान डेटा दर 96 kHz तक है।
  • इंटरलीव्ड स्टीरियो फीफो या स्वतंत्र दाएं और बाएं चैनल फीफो
  • टीएक्स और आरएक्स की स्वतंत्र सक्षमता।

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

I2S संचार प्रोटोकॉल एक 3 वायर प्रोटोकॉल है जो केवल 3-लाइन सीरियल बस के माध्यम से ऑडियो डेटा को संभालता है जिसमें SCK (कंटीन्यूअस सीरियल क्लॉक), WS (वर्ड सेलेक्ट) और SD (सीरियल डेटा) शामिल हैं।



I2S का 3-तार कनेक्शन:

एससीके

SCK या सीरियल क्लॉक I2S प्रोटोकॉल की पहली पंक्ति है जिसे BCLK या बिट क्लॉक लाइन के रूप में भी जाना जाता है जिसका उपयोग समान चक्र पर डेटा प्राप्त करने के लिए किया जाता है। सीरियल क्लॉक फ़्रीक्वेंसी को केवल फ़्रीक्वेंसी = नमूना दर x बिट्स जैसे प्रत्येक चैनल x संख्या के सूत्र का उपयोग करके परिभाषित किया गया है। चैनलों की।

डब्ल्यूएस

I2S संचार प्रोटोकॉल में, WS या शब्द चयन वह रेखा है जिसे FS (फ़्रेम चयन) तार के रूप में भी जाना जाता है जो दाएं या बाएं चैनल को अलग करता है।

यदि WS = 0 है तो बाएँ चैनल या channel-1 का उपयोग किया जाता है।

यदि WS = 1 है तो सही चैनल या चैनल-2 का उपयोग किया जाता है।

एसडी

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

  • यदि रिसीवर की शब्द लंबाई ट्रांसमीटर से अधिक है, तो शब्द छोटा हो जाता है (एलएसबी बिट्स शून्य पर सेट होते हैं)।
  • यदि रिसीवर की शब्द लंबाई ट्रांसमीटर की शब्द लंबाई से कम है, तो एलएसबी बिट्स को नजरअंदाज कर दिया जाता है।

ट्रांसमीटर या तो पर डेटा भेज सकते हैं घड़ी की पल्स का अग्रणी किनारा या पिछला किनारा . इसे संबंधित में कॉन्फ़िगर किया जा सकता है नियंत्रण रजिस्टर . लेकिन वो रिसीवर सीरियल डेटा और WS को केवल क्लॉक पल्स के अग्रणी किनारे पर लैच करता है . ट्रांसमीटर WS में परिवर्तन के बाद एक घड़ी की पल्स के बाद ही डेटा प्रसारित करता है। रिसीवर सीरियल डेटा के सिंक्रनाइज़ेशन के लिए WS सिग्नल का उपयोग करता है।

I2S नेटवर्क घटक

जब कई I2S घटक एक दूसरे से जुड़े होते हैं तो इसे I2S नेटवर्क कहा जाता है। इस नेटवर्क के घटक में अलग-अलग नाम और अलग-अलग कार्य भी शामिल हैं। तो, निम्न आरेख 3 अलग-अलग नेटवर्क दिखाता है। यहां एक ESP NodeMCU बोर्ड का उपयोग ट्रांसमीटर के रूप में किया जाता है और एक I2S ऑडियो ब्रेकआउट बोर्ड का उपयोग रिसीवर के रूप में किया जाता है। ट्रांसमीटर और रिसीवर को जोड़ने के लिए उपयोग किए जाने वाले तीन तार SCK, WS और SD हैं।

  I2S नेटवर्क घटक
I2S नेटवर्क घटक

पहले आरेख में, ट्रांसमीटर (Tx) मास्टर है इसलिए यह SCK (सीरियल क्लॉक) और WS (शब्द चयन) लाइनों को नियंत्रित करता है।

दूसरे आरेख में, रिसीवर मास्टर है। तो SCK और WS दोनों लाइनें रिसीवर से शुरू होती हैं और ट्रांसमीटर समाप्त होता है।

तीसरे आरेख में, एक बाहरी नियंत्रक नेटवर्क के भीतर नोड्स से जुड़ा होता है जो मास्टर डिवाइस की तरह काम करता है। तो यह उपकरण SCK & WS उत्पन्न करता है।

उपरोक्त सभी I2S नेटवर्क में, केवल एक ही मास्टर डिवाइस उपलब्ध है और कई अन्य घटक हैं जो ध्वनि डेटा संचारित या प्राप्त करते हैं।

I2S में कोई भी उपकरण क्लॉक सिग्नल प्रदान करके मास्टर हो सकता है।

I2S समय आरेख

I2S और इसकी कार्यक्षमता की बेहतर समझ के लिए, हमारे पास I2S संचार प्रोटोकॉल समय आरेख नीचे दिखाया गया है। I2S प्रोटोकॉल का समय आरेख नीचे दिखाया गया है जिसमें तीन तार SCK, WS और SD शामिल हैं।

  I2S प्रोटोकॉल समय आरेख
I2S प्रोटोकॉल समय आरेख

ऊपर दिए गए आरेख में, सबसे पहले, सीरियल घड़ी की आवृत्ति = नमूना दर * प्रत्येक चैनल के लिए बिट्स * नहीं है। चैनलों का)। शब्द चयन पंक्ति दूसरी पंक्ति है जो दाएं चैनल के लिए '1' और बाएं चैनल के लिए '0' के बीच बदलती है।

तीसरी पंक्ति सीरियल डेटा लाइन है जहां डेटा प्रत्येक घड़ी चक्र पर गिरने वाले किनारे पर उच्च से निम्न तक बिंदुओं के साथ प्रेषित होता है।

इसके अलावा, हम देख सकते हैं कि WS लाइन MSB के प्रसारित होने से पहले एक CLK चक्र बदलती है जो रिसीवर को पहले के शब्द को संग्रहीत करने और अगले शब्द के लिए इनपुट रजिस्टर को साफ़ करने का समय देती है। MSB भेजा जाता है जब WS परिवर्तन के बाद SCK बदलता है।

जब भी ट्रांसमीटर और रिसीवर के बीच कोई डेटा प्रेषित किया जाता है तो एक प्रसार विलंब होता है  जो कि होगा

प्रसार विलंब = (बाहरी घड़ी और रिसीवर की आंतरिक घड़ी के बीच समय का अंतर) + (आंतरिक घड़ी के बीच समय का अंतर जब डेटा प्राप्त होता है)।

प्रसार विलंब को कम करने के लिए और ट्रांसमीटर और रिसीवर के बीच डेटा ट्रांसमिशन के सिंक्रनाइज़ेशन के लिए यह आवश्यक है कि ट्रांसमीटर की घड़ी की अवधि हो

टी > ट्र  - यह मानने के लिए कि T ट्रांसमीटर की घड़ी की अवधि है और tr ट्रांसमीटर की न्यूनतम घड़ी की अवधि है।

उपरोक्त शर्त के तहत यदि हम उदाहरण के लिए विचार करते हैं a ट्रांसमीटर  डेटा ट्रांसमिशन दर 2.5MHz के साथ तब:

टीआर = 360ns

घड़ी उच्च टीएचसी (न्यूनतम)>0.35 टी।

घड़ी कम टीएलसी (न्यूनतम>> 0.35 टी।

डेटा ट्रांसमिशन दर 2.5 मेगाहर्ट्ज के साथ दास के रूप में रिसीवर तब:

घड़ी उच्च टीएचसी (न्यूनतम) <0.35 टी

घड़ी कम टीएलसी (न्यूनतम) <0.35 टी।

सेटअप समय टीएसटी (न्यूनतम) <0.20 टी।

I2S प्रोटोकॉल Arduino

इस परियोजना का मुख्य उद्देश्य Arduino I2S लाइब्रेरी का उपयोग करके एक I2S  इसमें इंटरफ़ेस बनाना है। इस परियोजना को बनाने के लिए आवश्यक घटक हैं; अरुडिनो एमकेआर जीरो, ब्रेड बोर्ड , जम्पर वायर, एडफ्रूट MAX98357A, 3W, 4 ओम स्पीकर, और रोबोटगीक स्लाइडर।

Arduino I2S लाइब्रेरी बस आपको I2S बस पर डिजिटल ऑडियो डेटा संचारित और प्राप्त करने की अनुमति देती है। तो यह उदाहरण यह समझाने का लक्ष्य रखता है कि Arduino डिज़ाइन में गणना की गई ध्वनि को पुन: उत्पन्न करने के लिए I2S DAC को चलाने के लिए इस पुस्तकालय का उपयोग कैसे करें।

इस सर्किट के रूप में जोड़ा जा सकता है; इस उदाहरण में उपयोग किए गए I2S DAC को केवल तीन तारों के साथ-साथ I2S बस के लिए बिजली की आपूर्ति की आवश्यकता है। Arduino MKRZero पर I2S के लिए कनेक्शन निम्नानुसार हैं;

पिन A6 पर सीरियल डेटा (SD);

पिन2 पर सीरियल क्लॉक (एससीके);

पिन3 पर फ्रेम या वर्ड सिलेक्ट (FS);

कार्यरत

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

  I2S थर्मिन आरेख
I2S थर्मिन आरेख

I2S बस में प्रसारित ध्वनि एक साधारण साइन वेव है जिसका आयाम और आवृत्ति पोटेंशियोमीटर के पढ़ने के आधार पर संशोधित की जाती है।

कोड

एक Arduino MKRZero, 2-स्लाइडर पोटेंशियोमीटर और एक I2S DAC के साथ थेरेमिन को इंटरफ़ेस करने के लिए कोड नीचे दिया गया है।

#शामिल करें

कॉन्स्ट इंट मैक्सफ़्रीक्वेंसी = 5000; // अधिकतम उत्पन्न आवृत्ति
कास्ट इंट मिनफ्रीक्वेंसी = 220; // न्यूनतम उत्पन्न आवृत्ति
कॉन्स्ट इंट मैक्सवॉल्यूम = 100; // उत्पन्न आवृत्ति की अधिकतम मात्रा
कॉन्स्ट इंट मिनवॉल्यूम = 0; // उत्पन्न आवृत्ति की न्यूनतम मात्रा
कॉन्स्ट इंट नमूना दर = 44100; // उत्पन्न आवृत्ति का नमूना
const int wavSize = 256; //बफर आकार
लघु साइन [wavSize]; // बफर जिसमें साइन मान संग्रहीत होते हैं
कॉन्स्ट इंट फ़्रीक्वेंसीपिन = A0; // पॉट से जुड़ा पिन जो सिग्नल की आवृत्ति निर्धारित करता है
कास्ट इंट एम्पलीट्यूडपिन = ए1; // पॉट से जुड़ा पिन जो सिग्नल के आयाम को निर्धारित करता है
कॉन्स्ट इंट बटन = 6; // पिन बटन नियंत्रण से जुड़ा है  आवृत्ति प्रदर्शित करने के लिए

व्यर्थ व्यवस्था()
{

सीरियल.बेगिन (9600); // सीरियल पोर्ट को कॉन्फ़िगर करें
// I2S ट्रांसमीटर को इनिशियलाइज़ करें।
अगर (!I2S.begin(I2S_PHILIPS_MODE, नमूना दर, 16)) {
Serial.println ('I2S को प्रारंभ करने में विफल!');

जबकि (1);
}

जनरेटसाइन (); // बफर को साइन वैल्यू से भरें
पिनमोड (बटन, INPUT_PULLUP); // बटन पिन को इनपुट पुलअप में डालें

}
शून्य लूप () {

अगर (डिजिटल रीड (बटन) == कम)

{

फ्लोट फ़्रीक्वेंसी = मैप (एनालॉग रीड (फ़्रीक्वेंसीपिन), 0, 1023, मिनफ़्रीक्वेंसी, मैक्स फ़्रिक्वेंसी); // मानचित्र आवृत्ति
int आयाम = नक्शा (एनालॉग रीड (आयाम पिन), 0, 1023, न्यूनतम वॉल्यूम, अधिकतम वॉल्यूम); // नक्शा आयाम
प्लेवेव (आवृत्ति, 0.1, आयाम); //आवाज़ बजाएं
// सीरियल पर मान प्रिंट करें
सीरियल.प्रिंट ('फ़्रीक्वेंसी =');
Serial.println (आवृत्ति);
सीरियल.प्रिंट ('आयाम =');
Serial.println (आयाम);

}

}
शून्य उत्पन्नसाइन () {
के लिए (int i = 0; i
साइन [i] = ushort (फ्लोट (100) * पाप (2.0 * PI * (1.0 / wavSize) * i)); // 100 का उपयोग छोटी संख्या नहीं होने के लिए किया जाता है
}
}
शून्य प्लेवेव (फ्लोट आवृत्ति, फ्लोट सेकंड, इंट आयाम) {
// निर्दिष्ट के लिए दिए गए तरंग बफर को वापस चलाएं
// सेकंड की मात्रा।
// पहले गणना करें कि कितने नमूनों को चलाने के लिए वापस खेलने की आवश्यकता है
// सेकंड की वांछित राशि के लिए।

अहस्ताक्षरित int पुनरावृत्तियों = सेकंड * नमूना दर;

// फिर 'गति' की गणना करें जिस पर हम तरंग के माध्यम से आगे बढ़ते हैं
// बजने वाले टोन की आवृत्ति के आधार पर बफर।

फ्लोट डेल्टा = (आवृत्ति * wavSize) / फ्लोट (नमूना दर);

// अब सभी नमूनों के माध्यम से लूप करें और गणना करते हुए उन्हें चलाएं
// समय में प्रत्येक क्षण के लिए तरंग बफर के भीतर स्थिति।

के लिए (हस्ताक्षरित int i = 0; i <पुनरावृत्तियों; ++i) {
लघु स्थिति = (हस्ताक्षरित int) (i * डेल्टा)% wavSize;
लघु नमूना = आयाम * साइन [स्थिति];

// नमूने को डुप्लिकेट करें ताकि इसे बाएं और दाएं दोनों चैनलों पर भेजा जा सके।
// ऐसा लगता है कि ऑर्डर राइट चैनल है, लेफ्ट चैनल अगर आप लिखना चाहते हैं
// स्टीरियो साउंड।

जबकि (I2S.availableForWrite() < 2);
I2S.लिखें (नमूना);
I2S.लिखें (नमूना);

}
}

I2C और I2S प्रोटोकॉल के बीच अंतर

I2C और I2S प्रोटोकॉल के बीच अंतर में निम्नलिखित शामिल हैं।

2सी

I2S

I2C प्रोटोकॉल इंटर-आईसी बस प्रोटोकॉल के लिए खड़ा है I2S का मतलब इंटर-आईसी साउंड प्रोटोकॉल है .
यह मुख्य रूप से एक समान पीसीबी पर रखे एकीकृत सर्किट के बीच सिग्नल चलाने के लिए उपयोग किया जाता है। इसका उपयोग डिजिटल ऑडियो उपकरणों को जोड़ने के लिए किया जाता है।
यह एसडीए और एससीएल जैसे कई स्वामी और दासों के बीच दो पंक्तियों का उपयोग करता है . यह तीन लाइनों WS, SCK और SD का उपयोग करता है।
यह मल्टी-मास्टर और मल्टी-स्लेव को सपोर्ट करता है। यह एकल मास्टर का समर्थन करता है।
यह प्रोटोकॉल CLK स्ट्रेचिंग को सपोर्ट करता है। इस प्रोटोकॉल में CLK स्ट्रेचिंग नहीं है।
I2C में अतिरिक्त ओवरहेड स्टार्ट और स्टॉप बिट्स शामिल हैं। I2S में कोई स्टार्ट और स्टॉप बिट शामिल नहीं है।

लाभ

I2S बस के फायदे निम्नलिखित को शामिल कीजिए।

  • I2S अलग CLK और सीरियल डेटा लाइनों का उपयोग करता है। इसलिए इसमें एसिंक्रोनस सिस्टम की तुलना में बहुत ही सरल रिसीवर डिज़ाइन हैं।
  • यह एक सिंगल मास्टर डिवाइस है इसलिए डेटा सिंक्रोनाइज़ेशन में कोई समस्या नहीं है।
  • I2S o/p पर आधारित माइक्रोफ़ोन को एनालॉग फ्रंट एंड की आवश्यकता नहीं होती है, लेकिन डिजिटल ट्रांसमीटर का उपयोग करके वायरलेस माइक्रोफ़ोन के भीतर इसका उपयोग किया जाता है। इसका उपयोग करके, आप ट्रांसमीटर और ट्रांसड्यूसर के बीच पूरी तरह से डिजिटल कनेक्शन प्राप्त कर सकते हैं।

नुकसान

I2S बस के नुकसान निम्नलिखित को शामिल कीजिए।

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

अनुप्रयोग

I2S प्रोटोकॉल के अनुप्रयोग निम्नलिखित को शामिल कीजिए।

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

इस प्रकार, यह सब एक सिंहावलोकन के बारे में है I2S प्रोटोकॉल विनिर्देश जिसमें कार्य, अंतर और इसके अनुप्रयोग शामिल हैं। I²S एक 3 वायर सिंक्रोनस सीरियल प्रोटोकॉल है दो एकीकृत परिपथों के बीच डिजिटल स्टीरियो ऑडियो को स्थानांतरित करने के लिए उपयोग किया जाता है। I2S प्रोटोकॉल विश्लेषक एक सिग्नल डिकोडर है जिसमें सभी DigiView लॉजिक एनालाइज़र शामिल हैं। यह डिजीव्यू सॉफ्टवेयर सभी प्रकार के संकेतों को व्यापक खोज, नेविगेशन, निर्यात, माप, प्लॉट और प्रिंटिंग क्षमताएं प्रदान करता है। यहाँ आपके लिए एक प्रश्न है, I3C प्रोटोकॉल क्या है?