क्या यूएसबी कीबोर्ड केवल सिग्नल भेजता है, या क्या यह उन्हें कंप्यूटर से भी प्राप्त होता है?


83

कीबोर्ड को कंप्यूटर से किसी भी सिग्नल की आवश्यकता नहीं है, बस शक्ति है, है ना? या इसे सिग्नल भेजने के साथ-साथ भेजने की भी जरूरत है?

संपादित करें: मुझे इस सवाल की उम्मीद नहीं थी कि यह बहुत रुचि पैदा करेगा! मैंने इसे इसलिए पूछा क्योंकि मेरे पास एक डॉक्यूकी बनाने का एक बेकार सपना था जो सिग्नल को डुप्लिकेट करता है ताकि कीबोर्ड एक ही अक्षर को एक साथ दो कंप्यूटरों पर भेज सके। चूंकि (मैं उत्तरों में क्या बना सकता हूं) कंप्यूटर किसी अन्य डिवाइस की तरह कीबोर्ड को सक्रिय रूप से नियंत्रित करता है, यह स्पष्ट रूप से संभव नहीं है। व्यावहारिक रूप से कोई बड़ी बात नहीं है क्योंकि मेरे पास इसे बनाने का कौशल नहीं है!


40
उदाहरण के लिए, यह लॉक कीज की स्थिति प्राप्त कर सकता है। कई कीबोर्ड ने लॉक कीज की स्थिति का संकेत दिया है। कैप्स लॉक पर स्विच करने का प्रयास करें, फिर अपने कीबोर्ड को बदलें, संभावना है कि राज्य अभी भी लॉक होगा, यह जानकारी पीसी से आने की आवश्यकता है।
मेत जुहेसज

8
यहां तक ​​कि PS / 2 कीबोर्ड पीसी से सिग्नल प्राप्त करते हैं, अन्यथा यह एल ई डी को कैसे चालू / बंद कर सकता है?
फुलेव

8
@Devsman आप ऐसा नहीं कर सकते, अन्यथा लॉक स्टेट सिंक से बाहर हो जाएगा क्योंकि इसे सॉफ्टवेयर द्वारा बदला जा सकता है। उदाहरण के लिए यदि आप 2 कीबोर्ड प्लग करते हैं और इस पर न्यूक्लॉक दबाते हैं, तो दूसरे पर एलईडी टॉगल होगा। वही स्क्रीन कीबोर्ड पर प्राप्त किया जा सकता है
1


7
एक USB डिवाइस में द्वि-दिशात्मक डेटा होना चाहिए, बस विशेष उपकरण वर्ग को सक्षम करने के लिए प्रारंभिक हैंडशेकिंग की आवश्यकताओं के कारण।
स्टीव

जवाबों:


101

" डिवाइस क्लास डेफिनिशन फॉर ह्यूमन इंटरफेस डिवाइसेस (HID)" संस्करण 11.1 "विनिर्देश से:

एलईडी राज्यों और CAPS LOCK, NUM LOCK, SCROLL LOCK, COMPOSE, और KANA ईवेंट्स के बीच सिंक्रोनाइज़ेशन को होस्ट और कीबोर्ड द्वारा बनाए रखा जाता है। यदि परिशिष्ट B में कीबोर्ड डिस्क्रिप्टर का उपयोग कर रहे हैं, तो Set_Report (आउटपुट) अनुरोध के माध्यम से कीबोर्ड पर 5-बिट निरपेक्ष रिपोर्ट भेजकर एलईडी स्टेट्स सेट किए जाते हैं।

कीबोर्ड एलईडी को बदलने के लिए, कीबोर्ड ऐसा करने के लिए एक कमांड स्वीकार करता है। तो यह एक "इनपुट-ओनली" डिवाइस नहीं है (इसका अर्थ है कि यह केवल होस्ट को डेटा आउटपुट करता है)।

कहा जा रहा है कि, सभी USB उपकरणों के साथ एक बातचीत और गणना प्रक्रिया है जिसमें मेजबान और डिवाइस के बीच एक बैक-एंड-एंड बातचीत की आवश्यकता होती है। आपके पास "केवल पढ़ने के लिए" USB डिवाइस नहीं हो सकता।

USB से पहले भी, पीसी कीबोर्ड कंट्रोलर आदेशों को स्वीकार करेगा क्योंकि उसने कीबोर्ड ( संदर्भ ) को पढ़ने के अलावा कुछ चीजें की थीं :

यदि एक कीबोर्ड एक अलग परिधीय प्रणाली इकाई है (जैसे कि अधिकांश आधुनिक डेस्कटॉप कंप्यूटरों में), तो कीबोर्ड नियंत्रक सीधे कुंजियों से जुड़ा नहीं होता है, लेकिन किसी प्रकार के सीरियल इंटरफ़ेस के माध्यम से कीबोर्ड में एम्बेडेड माइक्रोकंट्रोलर से स्केनोड प्राप्त करता है। इस मामले में, नियंत्रक आमतौर पर कीबोर्ड के एलईडी को तार के माध्यम से कीबोर्ड पर डेटा भेजकर नियंत्रित करता है।

IBM PC AT ने कीबोर्ड पर इंटरफ़ेस करने के लिए Intel 8042 चिप का उपयोग किया। इस कंप्यूटर ने इंटेल 80286 में चिप बग के लिए एक वर्कअराउंड को लागू करने के लिए A20 लाइन तक पहुंच को नियंत्रित किया। 1 सीपीयू नियंत्रक को एक सॉफ्टवेयर सीपीयू रीसेट आरंभ करने के लिए भी इस्तेमाल किया गया था ताकि सीपीयू को संरक्षित मोड से वास्तविक में बदलने की अनुमति मिल सके। मोड 1 क्योंकि 286 में सीपीयू के रीसेट होने तक सीपीयू को संरक्षित मोड से वास्तविक मोड में जाने की अनुमति नहीं थी। यह एक समस्या थी क्योंकि BIOS और ऑपरेटिंग सिस्टम सेवाओं को केवल वास्तविक मोड में कार्यक्रमों द्वारा बुलाया जा सकता था।

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


15
यदि हम "सिग्नल" स्तर पर सामान के बारे में बात कर रहे हैं, भले ही हम गणना और एल ई डी भूल जाते हैं, यूएसबी इनपुट मतदान पर आधारित है। जब तक होस्ट इसके लिए कोई डिवाइस होस्ट से डेटा नहीं भेजेगा, तब तक वह डेटा नहीं भेज सकता है। इनपुट डिवाइस को केवल यह पूछने के लिए बहुत बार प्रदूषित किया जाता है कि क्या उसके पास रिपोर्ट करने के लिए कुछ नया है।
मत्ती वीरकुंकेन

आपका मतलब "आउटपुट-ओनली" सही है?
डैनियल

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

1
@ डैनियल अधिकांश लोग कीबोर्ड को "आउटपुट" डिवाइस नहीं कहेंगे। परिधीय बाहरी रूप से जुड़े होते हैं इसलिए हम उन्हें इनपुट या आउटपुट कहने के लिए पीसी के दृष्टिकोण से खड़े होते हैं। यह वह पीसी है जिसका हम उपयोग करना चाहते हैं, कीबोर्ड, माउस या अन्य परिधीय नहीं
फुल्विक

@ LưuV LnhPhúc मुझे पता है, लेकिन वह लिखते हैं So it is not an "input-only" device (meaning it only outputs data to the host)जो मुझे भ्रमित करता है
डैनियल

56

अपनी श्रेणी की परवाह किए बिना किसी भी USB डिवाइस को कार्य करने के लिए द्विदिश संचार की आवश्यकता होती है । प्रत्येक USB डिवाइस (या USB युक्ति के संदर्भ में कार्य ) को एंडपॉइंट के एक सेट के रूप में दर्शाया जाता है जिसे बफ़र के रूप में सोचा जा सकता है जो डेटा को स्वीकार या प्राप्त करते हैं। हालांकि, यहां तक ​​कि समापन बिंदु जो केवल एक विशेष पैकेट टोकन के लिए प्रतीक्षा करने से पहले डेटा भेज सकते हैं: यहाँ छवि विवरण दर्ज करें

( यहां से छवि , ग्रे बॉक्स USB होस्ट का प्रतिनिधित्व करते हैं, सफेद बॉक्स USB फ़ंक्शन का प्रतिनिधित्व करते हैं)

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


18

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

जबकि USB सतह पर सरल दिखता है, वास्तव में इसकी कार्यप्रणाली काफी जटिल है। किसी भी नए USB डिवाइस को काम शुरू करने से पहले "एनुमरेटेड" होना चाहिए। अनुक्रम इस प्रकार है:

  1. कीबोर्ड को प्लग इन करने के बाद, होस्ट पोर्ट को "कनेक्ट स्टेटस" सिग्नल मिलता है (एलएस सिग्नल के लिए, D- कीबोर्ड द्वारा हाई खींचा जाता है)।

  2. तब होस्ट पोर्ट को "पोर्ट रीसेट" मोड में सेट करता है, और USB PHY (भौतिक परत चालक) D + / D- लाइनों के नीचे "USB_RESET" भेजता है (दोनों लाइनें निर्धारित समय के लिए कम संचालित होती हैं)। एफएस / एचएस उपकरणों के लिए "पोर्ट रीसेट" पर कुछ जानकारी यहां मिल सकती है

  3. फिर मेजबान 1ms अंतराल पर फ़्रेम सीमा पैकेट का उत्पादन शुरू करता है। साधारण वायर्ड कीबोर्ड के रूप में कम गति (एलएस) उपकरणों के लिए, ये सिर्फ "जीवित रखें" दालें हैं, जबकि एफएस के लिए विशेष एसओएफ - स्टार्ट-ऑफ-फ्रेम पैकेट उत्पन्न होते हैं। ये पैकेट डिवाइस को सक्रिय मोड में रखते हैं और इसे कम-शक्ति वाले SUSPEND में करने से रोकते हैं।

  4. फिर "गणना" शुरू होती है। मेजबान डिवाइस डिस्क्रिप्टर प्राप्त करने के लिए एक अनुरोध भेजता है। अनुरोध डिवाइस पते "0" के साथ "डिफ़ॉल्ट पाइप" को भेजा जाता है। [इस समय केवल एक ऐसा उपकरण है - कीबोर्ड - चूंकि बस में अन्य सभी उपकरणों में पहले से ही उनके व्यक्तिगत रूप से निर्दिष्ट USB पते होने चाहिए]

  5. कीबोर्ड ने अनुरोधित जानकारी दी है, इसलिए मेजबान यह निर्धारित करने में सक्षम होगा कि किस प्रकार का ड्राइवर लोड किया जाना चाहिए।

  6. होस्ट एक लेनदेन भेजता है जिसे डिवाइस को अपने डिफ़ॉल्ट पते को नए असाइन किए गए पते में बदलने की आवश्यकता होती है।

  7. तब होस्ट डिवाइस के साथ संचार का नया दौर शुरू करता है, अब नए असाइन किए गए पते पर। अन्य सभी उपकरण इस संचार को अनदेखा करते हैं क्योंकि यह उन्हें संबोधित नहीं है।

  8. होस्ट कई अन्य विवरणों से बहुत अधिक जानकारी पढ़ सकता है, और अंततः "डिवाइस कॉन्फ़िगरेशन" का चयन करता है। यह गणना की प्रक्रिया को समाप्त करता है।

  9. USB डिवाइस वर्ग के आधार पर, होस्ट डिवाइस के साथ संचार करना शुरू कर देता है। कीबोर्ड मामले में, होस्ट अनिवार्य रूप से "IN" अनुरोध समय-समय पर अनिवार्य रूप से डिवाइस को भेजता है (भले ही इस आवधिक पाइप को "इंटरप्ट" पाइप कहा जाता है)। यदि कीबोर्ड में कोई कुंजी दबा / दबा दी गई है, तो कीबोर्ड इस जानकारी को वापस कर देगा। यदि नहीं, तो डिवाइस ड्राइवर को कोई डेटा वापस नहीं किया जाएगा।

यह छोटा है, प्रत्येक USB डिवाइस को USB होस्ट से अद्वितीय पता प्राप्त करना होगा, और दो USB होस्ट को डिवाइस के साथ संवाद करने में कठिनाई होगी - बस टकराव, पता बेमेल, कीपर डेटा का यादृच्छिक अवरोधन, आदि। USB प्रोटोकॉल इसे साझा करना असंभव बनाता है दो USB होस्ट के बीच डिवाइस।


If keyboard has any key pressed/depressed, the keyboard will return this information- भूत की चाबी कैसे होगी? मैं इस धारणा के तहत था कि कीबोर्ड को की-अप और की-डाउन इवेंट भेजना होगा, जो यह समझाएगा कि अगर कोई की-अप इवेंट छूट गया है तो आपके पास भूत की चाबी होगी ...
शैडो

2
@ शादो, निश्चित नहीं कि तुम किस बारे में पूछ रहे हो। कीबोर्ड के लिए मतदान दर, अगर मुझे याद है, 8 एमएस है। आप कुंजियों को एसिंक्रोनस रूप से दबा रहे हैं, इसलिए कुछ ईवेंट (मेक या ब्रेक) अलग-अलग पोलिंग फ्रेम में जा सकते हैं, कुछ घटना ठीक उसी समय होगी जब IN अनुरोध प्रगति पर है। एक अच्छे कीबोर्ड कंट्रोलर को सभी इवेंट क्रॉसिंग को ठीक से हैंडल करना चाहिए, और मिसिंग इवेंट्स नहीं होने चाहिए। मुझे पता नहीं है कि कीबोर्ड "भूत कुंजी" क्यों उत्पन्न करते हैं, लेकिन इसका USB प्रोटोकॉल से कोई लेना-देना नहीं है।
अले..चेंस्की

4
भूत की चाबियाँ उस तरह से संबंधित हैं जिस तरह से भौतिक चाबियाँ वायर्ड हैं। सस्ते कीबोर्ड नियंत्रकों में प्रत्येक कुंजी के लिए एक भी पिन नहीं होता है, बल्कि उनके पास उदाहरण के लिए पंक्तियों और स्तंभों के साथ पते की एक ग्रिड प्रणाली होती है जहां नियंत्रक स्तंभ के तार को अंकित करता है, और पंक्ति तार पर संकेत की तलाश करता है। इस परिदृश्य में, E और S को एक साथ दबाने वाली दो कुंजियाँ, समय के अलावा, W और D को दबाने से अप्रभेद्य हो सकती हैं।
बेन

2

जैसा कि अन्य जवाबों ने समझाया है, यूएसबी को जिस तरह से काम करता है, उसके हिस्से के रूप में द्वि-दिशात्मक संचार की आवश्यकता होती है। पीएस / 2, द्वि-दिशात्मक संचार की अनुमति देते समय, कंप्यूटर की चाबियाँ भेजने के लिए इसकी आवश्यकता नहीं होती है, लेकिन इसके लिए कीबोर्ड एलईडी को सेट करने की आवश्यकता होती है।

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

मुझे यकीन नहीं है कि इस तरह की परियोजना कितनी जटिल होगी। जब से मैंने PS / 2 के साथ काम किया है, तब से कुछ समय हो गया है, इसलिए मुझे नहीं पता कि क्या आप बस कुछ तारों / कनेक्टरों को पा सकते हैं या यदि आपको एक दिशा में कमांड पास करने के लिए एक सक्रिय डिवाइस (जैसे माइक्रोकंट्रोलर) की आवश्यकता होगी, लेकिन उन्हें त्याग दें अन्य में। यदि आपके पास एक माइक्रोकंट्रोलर है, तो आप डिवाइस को ऐसे भी बना सकते हैं कि यह कीबोर्ड एलईडी कमांड्स की व्याख्या कर सके और उन्हें डिस्प्ले के लिए "कंबाइन" कर सके (उदाहरण के लिए एलईडी फ्लैश यदि यह कंप्यूटर एक पर है, लेकिन कंप्यूटर दो पर बंद है, तो लघु फ्लैश एलईडी अगर यह कंप्यूटर पर दो पर है, लेकिन कंप्यूटर एक पर बंद है, अगर यह दोनों कंप्यूटरों पर है, तो स्थिर एलईडी और यदि यह दोनों कंप्यूटरों पर बंद है)। हालांकि यह अधिक उन्नत होगा।

इसके अलावा, यदि आपका लक्ष्य एक कंप्यूटर को दूसरे कंप्यूटर से नियंत्रित करने में सक्षम है, या एक ही डेस्क से दो कंप्यूटर, या जो भी हो, आप इस पर गौर करना चाहते हैं:

  • VNC (एक नेटवर्क से दूसरे कंप्यूटर को नियंत्रित करने की अनुमति देता है)
  • RDP (Microsoft Windows में निर्मित एक नेटवर्क से दूसरे कंप्यूटर को नियंत्रित करने की अनुमति देता है, लेकिन व्यावसायिक संस्करण की आवश्यकता होती है)
  • KVM (हार्डवेयर का एक टुकड़ा जो आपको दो कंप्यूटरों के बीच बाह्य उपकरणों के एक सेट को बदलने देता है)

1

यूएसबी कीबोर्ड से पहले, PS / 2 कीबोर्ड ने बहुत सरल प्रोटोकॉल का उपयोग किया, जहां 2 डिवाइस से जुड़ा एक कीबोर्ड होना संभव है और यह काम करता है। एक साधारण वाई कनेक्शन वह सब है जिसकी आवश्यकता है।

पुराने USB कीबोर्ड में अभी भी PS / 2 इम्यूलेशन मोड बना है; उन बैंगनी कनेक्टर एडेप्टर में से एक का उपयोग करने से आप इसे कंप्यूटर के पीछे PS / 2 पोर्ट में प्लग कर सकते हैं। इसलिए, 2 कंप्यूटरों पर USB से PS / 2 ब्रेकआउट केबल का उपयोग करके, फिर आपके USB कीबोर्ड पर वापस बैंगनी एडॉप्टर काम कर सकता है।

नए USB कीबोर्डों ने विरासत PS / 2 मोड को गिरा दिया, इसलिए इस मामले में काम नहीं करेगा।

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