USB केबल में, क्या D + और D- तारों को स्वैप करना ठीक है?


54

मैंने सुना है कि D + और D- डिफरेंशियल सिग्नल हैं, क्या इससे कोई फर्क नहीं पड़ता कि मैं कंप्यूटर पर यूएसबी डिवाइस कनेक्ट करते समय उन्हें स्वैप करता हूं?


दिलचस्प सवाल ... सभी मान्य विभेदक प्रोटोकॉल के लिए मान्य .. जैसे कर सकते हैं!
स्वानंद

जवाबों:


58

सारांश

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

डेटा ट्रांसमिशन

USB डेटा NRZ- कोडित है जैसे कि "एक" का भौतिक स्तर में कोई परिवर्तन नहीं होता है, और "शून्य" का भौतिक स्तर में परिवर्तन द्वारा प्रतिनिधित्व किया जाता है (नीचे आंकड़ा देखें)। इसलिए, सिग्नल को निष्क्रिय करना (उदाहरण के लिए, D + और D- स्वैप करके) डेटा ट्रांसमिशन के दौरान कोई कार्यात्मक परिवर्तन नहीं होता है। लेकिन डेटा ट्रांसमिशन से पहले और बाद में समस्याएं हो सकती हैं जो डिवाइस के साथ संचार को मार सकती हैं।

बाहर निकलने की अवस्था

होस्ट में प्रत्येक डेटा लाइन पर 15 k host पुल-डाउन रेसिस्टर्स शामिल हैं। जब कोई उपकरण कनेक्ट नहीं होता है, तो यह दोनों डेटा लाइनों को तथाकथित "सिंगल-एंडेड जीरो" स्थिति (USB प्रलेखन में SE0) में खींचता है, और एक रीसेट या डिस्कनेक्ट कनेक्शन को इंगित करता है। एक USB डिवाइस 1.5 kor रोकने वाले के साथ डेटा लाइनों में से एक को खींचती है। यह मेजबान में पुल-डाउन प्रतिरोधों में से एक को ओवरपॉवर करता है और "जे" नामक एक निष्क्रिय अवस्था में डेटा लाइनों को छोड़ देता है। यूएसबी 1.x के लिए, डेटा लाइन का विकल्प इंगित करता है कि डिवाइस किस सिग्नल दरों में सक्षम है; पूर्ण-बैंडविड्थ डिवाइस D + उच्च खींचते हैं, जबकि कम-बैंडविड्थ डिवाइस D। उच्च खींचते हैं।

जबकि डेटा एनआरजेडआई-एनकोडेड है, सिंक्रनाइज़ेशन अनुक्रम और ईओपी को निर्धारित राज्यों (जे / के / एसई 0) के संदर्भ में परिभाषित किया गया है। जब D + और D- स्विच किए जाते हैं, तो J राज्य K और SE0 के साथ स्विच किया जाता है, फिर भी SE0 (दोनों लाइनें कम) हैं। तो सिंक अनुक्रम और ईओपी उलटा होने पर गलत हो जाएगा। USB 1.x में, यदि D + और D- की अदला-बदली की जाती है, तो एक पूर्ण-बैंडविड्थ उपकरणों को कम-बैंडविड्थ और इसके विपरीत के रूप में पहचाना जाता है। तो डिवाइस मेजबान के समान गति पर भी संचार नहीं करेगा।

निष्क्रिय स्थिति दर्ज करना

एक USB पैकेट का अंत, जिसे EOP (एंड-ऑफ-पैकेट) कहा जाता है, ट्रांसमीटर द्वारा SE0 के 2 बिट बार (D + और D− दोनों अधिकतम से नीचे) और J स्टेट के 1 बिट समय को इंगित करता है। इसके बाद, ट्रांसमीटर D + / D and लाइनों को चलाने के लिए बंद हो जाता है और ऊपर खींचे गए प्रतिरोधों को जम्मू (निष्क्रिय) स्थिति में पकड़ लेता है।

D + / D- स्वैप किए गए ड्राइवर के साथ, होस्ट सही (SE0, SE0, J) के बजाय अनुक्रम (SE0, SE0, K) को देखेगा। मेजबान फिर पैकेट के अंत को पहचानने में विफल हो सकता है, जिससे समस्याएं पैदा होंगी।

यहाँ छवि विवरण दर्ज करें

निष्कर्ष

यदि डिवाइस और होस्ट USB विनिर्देशों का कड़ाई से पालन करते हैं, तो D + और D- पिन को स्वैप करने से विफलता होगी। इसकी बोधगम्यता यह है कि मेजबान के डिजाइनर ने इस तरह के एक विफलता मोड का निर्माण किया, और इसके लिए अनुकूलता का निर्माण किया। लेकिन इस तरह की अदला-बदली केबल व्यवहार में कार्यात्मक होगी या नहीं, यह निश्चित रूप से विनिर्देशों का पालन नहीं करेगा।

एक अन्य सदस्य, एंड्रयू कोहल्स्मिथ ने इसका अनुभव किया जब एक यूएसबी हब के पिनों को गलती से स्वैप किया गया था। समस्या खुद को कनेक्टेड डिवाइस के रूप में प्रकट होती है जो दिखाई नहीं दे रही है। यूएसबी डिवाइस यह दिखाएगा कि यह संचालित था लेकिन इसे हब के ऊपर की तरफ कंप्यूटर द्वारा मान्यता प्राप्त नहीं था (जो होस्ट को सही ढंग से वायर्ड किया गया था)।

स्रोत: विकिपीडिया

संपादित करें: टिप्पणी करने वालों को धन्यवाद। मैंने आपके उपयोगी नोट्स से जोर और विवरण जोड़ा।


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

2
मैं अनुभव से बोल सकता हूं कि D + / D- को स्वैप करने पर परिणाम नॉनफंक्शनल USB इंटरफ़ेस में होता है। मुझे कुछ प्रोटोटाइपों को फिर से काम करना पड़ा जिनके पास एक USB हब था, जो उन्हें बनाया गया था। इतना मज़ा नहीं आया।
२०:३३ बजे

@avakar विवरण के लिए धन्यवाद। मुझे लगता है कि उत्तर में अधिकतर संक्षेप में कवर किया गया है, लेकिन मैं और अधिक विवरण जोड़ने की कोशिश करूंगा ताकि यह अधिक स्पष्ट हो।
ट्रैविसबार्टले

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

2
@ trav1s मैंने हब की तरफ D + / D- को स्वैप किया था। समस्या डिवाइस के रूप में दिखाई नहीं दे रही है। USB कुंजी यह दर्शाती है कि यह संचालित है लेकिन इसे हब के ऊपर की तरफ कंप्यूटर द्वारा मान्यता प्राप्त नहीं थी (जिसे होस्ट को सही ढंग से वायर्ड किया गया था)। निदान मैं इस बारे में लिखने के लिए शर्मिंदा हूं, मैंने यह सोचने में बहुत समय बिताया कि यह एक हब कॉन्फ़िगरेशन / सॉफ़्टवेयर समस्या थी। अंत में मैंने तारों का पता लगाया लेकिन मैंने इसे अंतिम रूप दिया क्योंकि मुझे यकीन था कि यूएसबी ईथरनेट की तरह था और पिन को ऑटो-स्वैप कर सकता था। मैं गलत था। :-)
अकोल्समिथ

1

मैंने देखा है कि उपकरणों को केवल d + और d- स्वैप किए जाने पर कम गति के रूप में बातचीत करते हैं। यह एक पूर्ण गति (12mbps) डिवाइस और एक VIA चिपसेट आधारित पोर्ट के साथ था।


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