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


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

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


82
2018-03-06 15:28


मूल


जैसे यह लॉक कुंजी की स्थिति प्राप्त हो सकती है। कई कीबोर्ड में लॉक कुंजी की स्थिति इंगित करने वाले एलडीएस होते हैं। कैप्स लॉक पर स्विच करने का प्रयास करें, फिर अपने कीबोर्ड को प्रतिस्थापित करें, संभवतः राज्य अभी भी लॉक हो जाएगा, इस जानकारी को पीसी से आने की आवश्यकता है। - Máté Juhász
यहां तक ​​कि पीएस / 2 कीबोर्ड पीसी से सिग्नल प्राप्त करते हैं, अन्यथा यह एल ई डी चालू / बंद कैसे कर सकता है? - phuclv
@Devsman आप ऐसा नहीं कर सकते हैं, अन्यथा लॉक स्थिति सिंक से बाहर हो जाएगी क्योंकि इसे सॉफ़्टवेयर द्वारा बदला जा सकता है। उदाहरण के लिए यदि आप 2 कीबोर्ड प्लग करते हैं और इस पर numlock दबाते हैं, तो दूसरे पर एलईडी टॉगल करेगा। स्क्रीन कीबोर्ड पर भी इसे हासिल किया जा सकता है - phuclv
एल ई डी टॉगलिंग codegolf.stackexchange.com/questions/110974/blink-the-caps-lock - Dohn Joe
विशेष डिवाइस वर्ग को सक्षम करने के लिए प्रारंभिक हैंडशेकिंग की आवश्यकताओं के कारण, एक यूएसबी डिवाइस में द्वि-दिशात्मक डेटा होना चाहिए। - Steve


जवाब:


वहाँ से "डिवाइस कक्षा परिभाषा मानव इंटरफेस के लिए डिवाइस (एचआईडी) "संस्करण 11.1"विनिर्देशन:

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

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

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

यूएसबी से पहले भी, पीसी कीबोर्ड नियंत्रक कमांड स्वीकार करेगा क्योंकि उसने कीबोर्ड को पढ़ने के अलावा कुछ चीजें की हैं (संदर्भ):

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

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

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


100
2018-03-06 15:34



अगर हम "सिग्नल" स्तर पर सामान के बारे में बात कर रहे हैं, भले ही हम गणना और एल ई डी भूल जाएं, यूएसबी इनपुट मतदान पर आधारित है। एक मेजबान मेजबान को तब तक डेटा नहीं भेज सकता जब तक मेजबान इसके लिए पूछता न हो। एक इनपुट डिवाइस को अक्सर पूछने के लिए बहुत बार मतदान किया जाता है कि क्या इसकी रिपोर्ट करने के लिए कुछ नया है या नहीं। - Matti Virkkunen
आपका मतलब है "केवल आउटपुट" सही? - Daniel
यह सुनिश्चित नहीं है कि tbh शब्द कैसे करें, कीबोर्ड एक "इनपुट" डिवाइस है, और "इनपुट-केवल" का अर्थ यह होगा कि यह केवल मेजबान को डेटा भेजता है, लेकिन कभी प्राप्त नहीं होता है। यदि दृश्य बिंदु कीबोर्ड या मेजबान पर निर्भर करता है। - LawrenceC
@ डैनियल ज्यादातर लोग कुंजीपटल को "आउटपुट" डिवाइस नहीं कहेंगे। पेरिफेरल्स बाहरी रूप से संलग्न होते हैं ताकि हम पीसी के परिप्रेक्ष्य से इनपुट या आउटपुट कह सकें। यह वह पीसी है जिसे हम प्रयोग करना चाहते हैं, कीबोर्ड, माउस या अन्य परिधीय नहीं - phuclv
@ LưuVĩnhPhúc मुझे पता है, लेकिन वह लिखता है So it is not an "input-only" device (meaning it only outputs data to the host) जो मुझे भ्रमित करता है - Daniel


किसी भी यूएसबी डिवाइस को इसके वर्ग के बावजूद काम करने के लिए द्विपक्षीय संचार की आवश्यकता होती है। प्रत्येक यूएसबी डिवाइस (या समारोह यूएसबी स्पेक के मामले में) का एक सेट के रूप में प्रतिनिधित्व किया जाता है अंतिमबिंदुओं जिसे बफर के रूप में माना जा सकता है जो डेटा स्वीकार या प्राप्त करता है। हालांकि, यहां तक ​​कि अंतराल जो केवल एक विशेष पैकेट के लिए डेटा प्रतीक्षा कर सकते हैं टोकन जवाब देने से पहले: enter image description here

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

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


55
2018-03-06 17:13





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

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

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

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

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

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

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

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

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

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

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

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


17
2018-03-07 18:27



If keyboard has any key pressed/depressed, the keyboard will return this information - फिर भूत कुंजी कैसे होगी? मैं इस धारणा के तहत था कि कीबोर्ड को कुंजी-अप और कुंजी-डाउन ईवेंट भेजना होगा, जो बताएगा कि क्यों एक कुंजी-अप ईवेंट मिस गया है, तो आपके पास भूत कुंजी होगी ... - Shadow
@ छाया, सुनिश्चित नहीं है कि आप किस बारे में पूछ रहे हैं। कीबोर्ड के लिए मतदान दर, अगर मुझे याद है, तो 8 एमएस है। आप असीमित रूप से कुंजियां दबा रहे हैं, इसलिए कुछ ईवेंट (मेक या ब्रेक) विभिन्न मतदान फ्रेम में जा सकते हैं, कुछ ईवेंट तब ठीक होगा जब IN अनुरोध प्रगति पर है। एक अच्छा कीबोर्ड नियंत्रक सभी घटना क्रॉसिंग को सही ढंग से संभाल लेना चाहिए, और इसमें अनुपलब्ध घटनाएं नहीं होनी चाहिए। मुझे नहीं पता कि कीबोर्ड "भूत कुंजी" क्यों उत्पन्न करते हैं, लेकिन इसका यूएसबी प्रोटोकॉल से कोई लेना देना नहीं है। - Ale..chenski
भूत कुंजी चाबियाँ तारों के तरीके से संबंधित हैं। सस्ता कीबोर्ड नियंत्रकों के पास प्रत्येक कुंजी के लिए एक पिन नहीं होता है, बल्कि उनके पास संबोधित करने की ग्रिड प्रणाली होती है। पंक्तियां और कॉलम जहां नियंत्रक कॉलम तार पर जोर देता है, और पंक्ति तार पर सिग्नल की तलाश करता है। इस परिदृश्य में दो कुंजी दबाकर उदा। समय और समय के अलावा, ई और एस एक साथ डब्ल्यू और डी दबाकर अलग-अलग हो सकते हैं। - Ben


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

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

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

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

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

2
2018-03-09 08:41





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

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

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


1
2018-03-10 17:28