I (C में केवल पुल-अप रेसिस्टर्स (साक्षात्कार प्रश्न) क्यों होता है?


15

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


पिछला उत्तर देखें: Electronics.stackexchange.com/questions/113009/…
चू

बस एक टिप्पणी के रूप में अल्ट्रा फास्ट-मोड I2C- बस प्रोटोकॉल पुश-पुल कॉन्फ़िगरेशन के रूप में काम करता है, nxp.com/documents/user_manual/UM10204.pdf , खंड 3.2 अल्ट्रा फास्ट-मोड I2C- बस प्रोटोकॉल देखें
स्वैगोरो

मुझे आश्चर्य है कि NXP ने एक अल्ट्रा-फास्ट I2C प्रोटोकॉल को क्यों निर्दिष्ट नहीं किया, जो द्विदिश SDA और यूनिडायरेक्शनल SCK का उपयोग करता था, मास्टर ड्राइव SDA हार्ड था जब यह एक उच्च आउटपुट करना चाहता था, और मास्टर को लाइन को लंबा खींचने के लिए काफी लंबा इंतजार करना पड़ा। ऐसे मामलों में जहां यह परवाह करेगा कि एक दास को क्या कहना था?
सुपरकैट

क्या साक्षात्कारकर्ता ने अपने उत्तर का संस्करण दिया था?
ताम्र .9

जवाबों:


14

जॉन के जवाब पर थोड़ा विस्तार करने के लिए:

हां, यह सब करना है कि आप किस MOSFETs का उपयोग करना चाहते हैं।

पी-चैनल की तुलना में एन-चैनल MOSFETs तर्क स्विच करने के लिए बहुत बेहतर हैं क्योंकि:

  • वे आम तौर पर प्रतिरोध पर बहुत कम होते हैं ( )आरडीएसहेएन
  • वे तेजी से चालू और बंद होते हैं

तो एक ओपन-ड्रेन कॉन्फ़िगरेशन के लिए (जो कि I2C है) पी-चैनल MOSFETs के साथ "निष्क्रिय कम" के बजाय एन-चैनल MOSFETs के साथ "निष्क्रिय उच्च" व्यवस्था का उपयोग करके इसे बनाना बहुत सस्ता और आसान है।

एक तीसरा विकल्प एन-चैनल MOSFETs का उपयोग करके "निष्क्रिय कम" होगा, लेकिन इसके लिए आपको MOSFET को स्विच करने के लिए स्रोत वोल्टेज के ऊपर गेट वोल्टेज को ऊपर उठाने के लिए एक उच्च वोल्टेज गेट ड्राइवर की आवश्यकता होगी। छोटे संचार बसों के लिए व्यावहारिक नहीं है, लेकिन यह व्यवस्था वास्तव में मोटर ड्राइविंग के लिए एच-पुलों में काफी उपयोग की जाती है जहां आप एच-ब्रिज के उच्च पक्ष और निचले पक्ष के बीच समान (या समान) प्रतिक्रिया चाहते हैं। एच-ब्रिज में पी-चैनल और एन-चैनल जोड़े का उपयोग करना आमतौर पर इसका मतलब है कि आपको पी-चैनल को बंद करने और एन-चैनल को स्विच करने के बीच एक मृत क्षेत्र को शामिल करना होगा क्योंकि यह बहुत लंबा समय लेता है, और इससे आपकी शक्ति दक्षता कम हो जाती है ।

लेकिन I2C जैसे छोटे संचार बसों के लिए जहां आपको उच्च गति, कम लागत और उपयोग की सादगी की आवश्यकता होती है, एन-चैनल MOSFETs और पुल-अप प्रतिरोधों के साथ "निष्क्रिय उच्च" अब तक सबसे अधिक लागत प्रभावी है।


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

1
उच्च बैंडविड्थ के साथ उच्च गति स्विचिंग को भ्रमित न करें। उच्च गति स्विचिंग आपको बहुत तेज किनारों देता है जिसका अर्थ है अधिक विश्वसनीय संचार।
मजेंको

1
प्रतिरोधक पुल-अप भी उच्च स्विचिंग गति प्राप्त करने का तरीका नहीं है।
फोटॉन

hich यही कारण है कि I2C के लिए सही अवरोधक मानों का चयन करना महत्वपूर्ण है 'और क्यों Arduino डिफ़ॉल्ट रूप से आंतरिक पुलअप का उपयोग करने के लिए बुराई है।
माजेंको

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

12

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


मैं लगभग 100% यह वह उत्तर है जिसकी वे तलाश कर रहे थे, मेरे पास एक मित्र है जिसने पूछा कि एक बड़ी सीपीयू कंपनी के लिए एक साक्षात्कार में (अनुमान है कि कौन सा) और वह वह उत्तर था जिसकी उन्हें तलाश थी।
user34920

6

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

लेकिन PMOS ओपन ड्रेन पर NMOS ओपन ड्रेन आउटपुट का एक फायदा है जो I2C पर सीधे लागू नहीं होता है: जब VCC पॉजिटिव होता है, NMOS ओपन ड्रेन विभिन्न VCC लेवल वाले चिप्स को एक दूसरे से कनेक्ट करने की अनुमति देता है। यह (क्यों का हिस्सा है) क्यों कई NMOS खुले-नाली असतत तर्क आईसी उपलब्ध हैं।

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

NMOS ओपन ड्रेन असतत लॉजिक चिप्स की उपलब्धता NMOS ओपन ड्रेन PMOS ओपन ड्रेन की तुलना में इलेक्ट्रॉनिक डिजाइनरों के लिए अधिक परिचित है।

दोनों परिचित और असतत चिप्स की उपलब्धता (उदाहरण के लिए, उदाहरण के लिए), NMOS ओपन-ड्रेन कॉन्फ़िगरेशन को चुनने के लिए I2C के डिजाइनरों को प्रभावित करता है।


6

मुझे लगता है कि इसका जवाब यह है कि हम पहले स्थान पर एक नकारात्मक जमीनी सम्मेलन का उपयोग क्यों करते हैं (और यह निश्चित रूप से अर्धचालक युग से पहले सर्वव्यापी नहीं था)। इसका कारण यह है कि एन-चैनल उपकरणों का उपयोग पी-चैनल उपकरणों की तुलना में बेहतर प्रदर्शन के कारण होता है, क्योंकि उनमें उपयोग किए जाने वाले बहुसंख्य वाहक के भौतिकी के होते हैं।

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

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


2

यहाँ कुछ (ऐतिहासिक रूप से आधारभूत) अटकलें हैं ...

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

द्विध्रुवी ट्रांजिस्टर के "पुराने दिनों" में, सरलतम टीटीएल तर्क ने एनपीएन ट्रांजिस्टर के साथ खुले संग्राहकों का उपयोग किया - सब कुछ जमीन के संदर्भ में है, जो बस वोल्टेज की परवाह किए बिना ट्रिगर स्तरों को सरल बनाता है। इसके अलावा, एनपीएन पीएनपी की तुलना में तेज था।

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

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

जैसा कि मैंने कहा, यह सिर्फ अटकलें हैं।


1

यह एक ऐतिहासिक बात हो सकती है।

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

अब, आप इस तरह की बहुत सी चीजें देखते हैं - जहां निष्क्रिय 5 वी है - सिर्फ इसलिए कि मानक कभी नहीं बदले।


यह अभी भी सच है कि अधिकांश आईसी स्रोत की तुलना में अधिक शक्ति को डुबो सकते हैं, इसलिए यह अभी भी लागू है।
जोएल बी

1

I2C कल्पना पढ़े मुझे कई साल हो चुके हैं, लेकिन मुझे याद है कि जब पहली बार इसका इस्तेमाल किया गया था तो लोग अक्सर इसे 2-वायर-ओपन-कलेक्टर बस कहते थे। इसने कनेक्शन और टकराव का पता लगा लिया, जो कि बिट बैंगिंग के लिए भी आसान था। 20 साल पहले भी इसे उच्च प्रदर्शन वाली बस नहीं माना जाता था, बस सस्ती और आसान थी।


1

मैं कहूंगा कि ऐसा इसलिए है क्योंकि I2C को एक बस के रूप में परिभाषित किया गया है, जहां से जुड़ी सभी इकाइयां खुली-नाली या खुली-कलेक्टर होनी चाहिए। इसका मतलब है कि यह केवल बस को कम ड्राइव कर सकता है, उच्च नहीं। (जब आउटपुट ड्राइव ट्रांजिस्टर बंद कर दिया जाता है, तो पिन एक उच्च-प्रतिबाधा स्थिति में होती है।)

यह योजना कुछ अच्छे लाभ प्रदान करती है, उदाहरण के लिए, आप विभिन्न सिग्नलिंग वोल्टेज के साथ उपकरणों को कनेक्ट कर सकते हैं और यह कि बस संचार त्रुटियों से स्व-चिकित्सा है।

जाहिर है, मानक को निष्क्रिय-कम / सक्रिय-उच्च कॉन्फ़िगरेशन के रूप में चारों ओर से दूसरे तरीके से परिभाषित किया जा सकता था, और यहां अन्य उत्तर उस तत्व को बहुत अच्छी तरह से छूते हैं।

स्रोत: LabWorX 1, I2C बस का संचालन, विन्सेन्ट हिमपे द्वारा। I2C के बारे में एक बहुत अच्छी किताब, यह ऐतिहासिक पृष्ठभूमि है, इसे हार्डवेयर में कैसे लागू किया जाए और सॉफ्टवेयर और डिबग कार्यान्वयन में इसका उपयोग कैसे किया जाए।


1

असली जवाब जो किसी ने अभी तक पर्याप्त रूप से नहीं छुआ है वह यह है कि यह आपको उन उपकरणों को जोड़ने की अनुमति देता है जो विभिन्न वोल्टेज द्वारा संचालित होते हैं (जब तक कि आई / ओ पिन सहनशील होते हैं)। उदाहरण के लिए एक 3.3V डिवाइस एक ऐसे डिवाइस के साथ संचार कर सकता है जो 1.8V से संचालित होता है जब तक 1.8V डिवाइस का IO 3.3 तक के वोल्टेज के प्रति सहिष्णु होता है। बेशक हर डिवाइस 0V चला सकता है, लेकिन हर डिवाइस आपके पुल-अप प्रतिरोधों पर वोल्टेज तक ड्राइव करने में सक्षम नहीं हो सकता है।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.