क्या वास्तव में "USB संचार प्रोटोकॉल" है?


24

विकिपीडिया के अनुसार , USB:

कंप्यूटर और इलेक्ट्रॉनिक उपकरणों के बीच कनेक्शन, संचार और बिजली की आपूर्ति के लिए बस में उपयोग किए जाने वाले केबल, कनेक्टर और संचार प्रोटोकॉल को परिभाषित करता है

लेकिन क्या वास्तव में "USB संचार प्रोटोकॉल " है? मेरी समझ यह है कि:

  1. आप USB डिवाइस को एक मशीन से जोड़ते हैं (जैसे, उबंटू या किसी भी तरह का लिनक्स)
  2. लिनक्स उस डिवाइस के लिए डिवाइस ड्राइवर को ढूंढता है (किसी तरह - बोनस यदि आप जानते हैं!) और इसे लोड करता है
  3. डिवाइस अब के तहत जुड़ा हुआ है /dev/theDevice
  4. उपयोगकर्ता स्थान एप्लिकेशन अब पढ़ सकते हैं / लिख सकते हैं /dev/theDeviceऔर ड्राइवर निम्न-स्तरीय IO को अंतर्निहित डिवाइस / हार्डवेयर को संभालता है

मेरे लिए, इस प्रवाह में कहीं भी "USB संचार प्रोटोकॉल" दिखाई नहीं देता है। अगर मेरी समझ सही है, तो USB सिर्फ पीसी और डिवाइस के बीच का केबल और इलेक्ट्रिकल कनेक्शन है।

क्या मैं यहाँ गलत हूँ? क्या वास्तव में USB किसी प्रकार के निम्न-स्तर के प्रोटोकॉल को कार्यान्वित करता है जो ऊपर दिए गए प्रवाह को रेखांकित करता है? यदि हां, तो यह क्या है और यह 30,000 फुट के दृश्य पर कैसे काम करता है?


45
"ड्राइवर निम्न-स्तरीय IO को अंतर्निहित डिवाइस / हार्डवेयर को हैंडल करता है" यह संचार प्रोटोकॉल का उपयोग करता है जो मानक में है।
ईबीग्रीन

29
ओह ... मैंने पढ़ा है कि "क्या वास्तव में" USB संचार प्रोटोकॉल "है?" तो जवाब होगा हां। यदि आप जानना चाहते हैं कि वास्तविक संचार प्रोटोकॉल क्या है, तो बस मानक पढ़ें। या आपके द्वारा लिंक किए गए विकी पृष्ठ पर धारा 11 पढ़ें।
ईबीग्रीन

6
"USB पीसी और डिवाइस के बीच सिर्फ केबल और इलेक्ट्रिकल कनेक्शन है"। ईथरनेट केबल पीसी और स्विच / राउटर / जो कुछ भी है, के बीच एक केबल है। फिर भी इस केबल पर संचार करने और इसके साथ उपयोगी सामान करने के लिए कुछ प्रोटोकॉल का उपयोग किया जाता है।
ysdx

13
"लिनक्स उस डिवाइस के लिए डिवाइस ड्राइवर पाता है" आपको कैसे लगता है कि लिनक्स यह पता लगाने में सक्षम है कि कौन सा डिवाइस दूसरे छोर से जुड़ा है। एक आम प्रोटोकॉल, शायद?
खर्चा

4
@ रामहाउंड "उन संचार प्रोटोकॉल मानक के मामले में कम से कम ईथरनेट के मामले में स्वतंत्र हैं।" यह गलत है। ईथरनेट प्रोटोकॉल (भौतिक और मैक दोनों परत) IEEE ईथरनेट मानकों (विशेष रूप से, 802.3 मानकों ) द्वारा परिभाषित किए गए हैं । यह निश्चित रूप से, संभव है (और आम) ईथरनेट प्रोटोकॉल के अलावा कुछ और के साथ एक श्रेणी 6 केबल नीचे भेजने के लिए। आरजे -45 कनेक्टर, लेकिन उस समय यह ईथरनेट नहीं है। उदाहरण के लिए, गैर-वीओआईपी फोन सिस्टम के साथ यह आम बात है।
रीहैब

जवाबों:


47

हाँ, USB प्रोटोकॉल देखें

जैसा कि मैंने इसे समझा, USB कल्पना स्तरित प्रोटोकॉल और डिवाइस प्रोफाइल के एक जटिल सेट को परिभाषित करता है।

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


30

प्रश्न: क्या कार्रवाई में एक निम्न-स्तरीय यूएसबी संचार प्रोटोकॉल है और यह क्या है?

उत्तर:

हाँ, USB विनिर्देश में USB प्रोटोकॉल शामिल है जो बस स्तर को थोड़ा स्तर पर उपयोग करने के तरीके को परिभाषित करता है। यह 'निम्न-स्तरीय' प्रोटोकॉल होगा जो उच्च स्तर के प्रोटोकॉल यानी मास-स्टोरेज, छिपाई इत्यादि को रेखांकित करता है।

USB प्रोटोकॉल कैसे काम करता है, इसकी बारीकियों के लिए , यह OSDev wiki मददगार है। यूएसबी प्रोटोकॉल प्रति विभिन्न डेटा लेनदेन का वर्णन करने के लिए अनुक्रम आरेखों का उपयोग करके एक और दिलचस्प विवरण यहां दिया गया है ।

बोनस प्रश्न: लिनक्स उस डिवाइस के लिए डिवाइस ड्राइवर को कैसे खोज और लोड करता है?

बोनस उत्तर:

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

मैंने इस उत्कृष्ट Opensourceforu लेख से विरोधाभास किया है , जिसमें लिनक्स संदर्भ में आपके प्रश्न के बारे में अधिक विवरण और स्पष्टता है।


7
मुझे उम्मीद है कि "बोनस प्रश्न" का अर्थ आपके लिए "बाउंटी" है।
11

@projectdp - यह बहुत उपयोगी होगा यदि आप अपने प्राथमिक संदर्भों में से कुछ जानकारी को अपने उत्तर में ही डालेंगे।
रामहाउंड २ Ram

@ रामहाउंड - आपकी प्रतिक्रिया के लिए धन्यवाद, मैंने अपने उत्तर को और अधिक उपयोगी तरीके से लिखा। संसाधनों से अधिक जानकारी जोड़ने के लिए, आप यह देखना चाहेंगे कि यह प्रश्नों के लिए क्या प्रासंगिक है?
प्रोजेक्टडैप

14

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

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

इसके बाद, एक बस प्रबंधन प्रोटोकॉल है, जिसका उपयोग यह बताने के लिए किया जाता है कि बस में कौन कब बात कर सकता है। इसे OSI मॉडल में मीडिया एक्सेस लेयर कहा जाता है। USB में इस लेयर को बहुत अधिक संक्षेप में प्रस्तुत किया जा सकता है, क्योंकि जब USB में इस लेयर पर विशेष रूप से जटिल प्रोटोकॉल नहीं होता है, तो डिवाइस इसे तब प्रसारित कर सकता है, जब होस्ट इसे करने के लिए कहता है।

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

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


9

वास्तव में संबंधित संचार प्रोटोकॉल का एक सेट है जो बातचीत करते हैं।

सबसे निचले स्तर पर, एक प्रोटोकॉल है जो बताता है कि एक सीरियल कनेक्शन पर बाइट्स के पैकेट कैसे भेजे जाते हैं। यह सभी USB उपकरणों (लेकिन USB2 और USB3 के बीच भिन्न) के लिए सामान्य है।

भेजे गए पहले पैकेट में से एक डिवाइस को खुद का वर्णन करने के लिए कहता है। चिकन और अंडे की समस्या को रोकने के लिए, पहचान प्रोटोकॉल सभी USB उपकरणों के लिए समान है। OS सही ड्राइवर लोड करने के लिए इस पहचान का उपयोग कर सकता है।

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

अंत में, कई सरल यूएसबी डिवाइस इतने सरल होते हैं कि अतिरिक्त प्रोटोकॉल होते हैं जो उपकरणों की एक पूरी कक्षा (पति-पत्नी, कीबोर्ड, भंडारण, ईथरनेट एडेप्टर, ...) का वर्णन करते हैं। अधिकांश डिवाइस शून्य या इनमें से एक कार्यात्मक प्रोटोकॉल का समर्थन करते हैं।


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

@sawdust चूंकि यह सभी पर काम करता है (यहां तक ​​कि बिंदु से बिंदु तक), हम यह अनुमान लगा सकते हैं कि एक प्रोटोकॉल है। उदाहरण के लिए, यदि कोई मानक प्रोटोकॉल नहीं थे, तो डिवाइस डिस्कवरी संभव नहीं होगी।
अक्टूबर को

वास्तव में एक संचार मानक है और इसके मूल में इसका धारावाहिक संचार है Universal Serial Bus
रामहाउंड २ Ram

@ रेमाउंड हां, मेमोरी इंटरफेस को छोड़कर हर चीज के लिए सबसे आधुनिक बस डिजाइन की तरह, USB डेटा ट्रांसमिशन के लिए सीरियल डिफरेंशियल जोड़े का उपयोग करता है। USB <= 2.0 में एक एकल अंतर जोड़ी थी, जबकि USB 3 में दो अतिरिक्त अंतर जोड़े हैं (एक सुपरस्पीड ट्रांसमिशन के लिए और दूसरा सुपरस्पीड प्राप्त करने के लिए, प्रत्येक 5 Gbps पर पूर्ण-द्वैध संचार की अनुमति देता है।)
पुनः आरंभ करें

मैंने सोचा था कि मैं मानक के मूल में एक सीरियल बस को इंगित करूंगा, लेखक को इस तथ्य के बारे में पता नहीं था, इस प्रकार प्रश्न।
रामहाउंड २ Ram

5

शायद उत्तर का हिस्सा " संचार प्रोटोकॉल " वाक्यांश की परिभाषा के भीतर है । आपने (विकिपीडिया) उसी स्रोत पर जाकर आपको उपयोगी जानकारी मिलेगी जैसे:

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

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

तो हाँ, वहाँ है एक यूएसबी प्रोटोकॉल, या अधिक सही ढंग से वहाँ हैं की एक संख्या पूर्व निर्धारित और पर USB प्रोटोकॉल सहमति रों भिन्न USB उपयोगों के लिए।


1
1. संचारकी प्रक्रिया में (न्यूनतम) तीन तत्व शामिल हैं: (1) एन्कोडिंग / भेजना और (2) प्राप्त करना / डिकोड करना (3) _information_ (यादृच्छिक शोर के विपरीत)। यदि इन 3 तत्वों में से कोई भी अनुपस्थित है तो प्रक्रिया विफल हो जाती है। अतिरिक्त तत्व भी मौजूद हो सकते हैं जैसे कि प्रतिक्रिया, माध्यम (चैनल), और दूसरों के बीच संदर्भ। स्रोत: मेरी एक डिग्री संचार अध्ययन में है
OMY

1
2. SETIसंचार के बारेमें नहीं है, यह अन्वेषण और खोज के बारे में है। यहां तक ​​कि अगर हम एक प्रामाणिक निर्मित सिग्नल का पता लगाते हैं, तो भी कोई गारंटी नहीं है कि हम इसे कभी भी समझेंगे या प्रेषक के साथ संवाद करने में सक्षम होंगे। स्रोत: [SETI मिशन स्टेटमेंट] [१] [१]: seti.org/about-us
OMY

1
3. क्रॉस ब्राउज़र संगतता आमतौर पर (ए) ब्राउज़र निर्माताओं द्वाराप्रोटोकॉल का पालन नहीं करने के कारण होती है, या (बी) खराब लिखित प्रोटोकॉल के कारण त्रुटिपूर्ण कार्यान्वयन होता है (उदाहरण के लिए कुख्यात IE बॉक्स मॉडल बगपर विचार करेंऔर यह भी देखें < quirksmode.org> )। यही कारण है कि अब हमारे पास HTML 5 और CSS 3 है , क्योंकि प्रोटोकॉल में सुधार की आवश्यकता है। स्रोत: स्वामित्व और कई वर्षों के लिए मेरी खुद की वेब विकास कंपनी संचालित
OMY

1
4. सबसे पहले, रेडियो सिग्नल जो आवृत्ति पर "सिंक" एएम (आयाम मॉडुलन) प्रोटोकॉल का उपयोग करते हैं। एफएम (फ्रीक्वेंसी मॉड्यूलेशन) रेडियो सिग्नल "सिंक" को एक समय अभिन्न बनाता है। एफएम सिस्टम के प्रोटोकॉलमें सूचना को संसाधित करने के लिए निश्चित और गतिशील तत्वशामिलहैं। डायनामिक तत्व वैरिएबल फ़्रीक्वेंसी सेटिंग्स है, जो कि पूर्वनिर्धारित और सीमित आवृत्तियों तक सीमित है।
ओएमवाई

1
सिग्नल को मॉड्यूलेट और डिमोड्यूलेट करने के लिए निर्धारित तत्व गणितीय सूत्र हैं। कोई फर्क नहीं पड़ता कि इन फ़ार्मुलों की आवृत्तियों स्थिर हैं और एनालॉग हार्डवेयर या डिजिटल सॉफ़्टवेयर के माध्यम से सिग्नल को संसाधित करने के लिए लागू किया जा सकता है। स्रोत: एक इलेक्ट्रॉनिक
हॉबीस्ट के
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.