मानव इंटरफ़ेस डिवाइस

ह्यूमन इंटरफेस डिवाइस या एचआईडी एक प्रकार का कंप्यूटर उपकरण है जो सामान्यतः इंसानों द्वारा इस्तेमाल किया जाता है जो इंसानों से इनपुट लेता है और आउटपुट देता है।

शब्द "एचआईडी" सबसे सामान्य रूप से यूएसबी-एचआईडी विनिर्देशन को संदर्भित करता है। यह शब्द माइक्रोसॉफ्ट के माइक वैन फ्लैंडर्न द्वारा गढ़ा गया था जब उन्होंने प्रस्तावित किया था कि यूएसबी (यूनिवर्सल सीरियल बस) समिति एक मानव इनपुट डिवाइस वर्ग कार्य समूह बनाती है। कार्य समूह का नाम बदलकर मानव इंटरफ़ेस डिवाइस वर्ग के रूप में डीईसी के टॉम श्मिट के सुझाव पर किया गया था क्योंकि प्रस्तावित मानक ने द्वि-दिशात्मक संचार का समर्थन किया।

एचआईडी मानक
एचआईडी मानक मुख्य रूप से पीसी इनपुट उपकरणों में नवाचार को सक्षम करने और ऐसे उपकरणों को स्थापित करने की प्रक्रिया को सरल बनाने के लिए अपनाया गया था। एचआईडी अवधारणा की आरम्भ से पहले, उपकरण सामान्यतः माउस, कीबोर्ड और जॉयस्टिक के लिए कड़ाई से परिभाषित प्रोटोकॉल के अनुरूप होते थे; उदाहरण के लिए, उस समय के मानक माउस प्रोटोकॉल ने रिश्तेदार एक्स- और वाई-अक्ष डेटा और दो बटन तक बाइनरी इनपुट का समर्थन किया, जिसमें कोई विरासत समर्थन नहीं था। सभी हार्डवेयर नवाचारों के लिए या तो मौजूदा प्रोटोकॉल में डेटा के उपयोग को ओवरलोड करना या कस्टम डिवाइस ड्राइवरों का निर्माण करना और डेवलपर्स के लिए नए प्रोटोकॉल का प्रचार करना आवश्यक है। इसके विपरीत, सभी एचआईडी-परिभाषित डिवाइस स्वयं-वर्णन पैकेज प्रदान करते हैं जिनमें डेटा प्रकारों और स्वरूपों की संख्या हो सकती है। कंप्यूटर पर सिंगल एचआईडी ड्राइवर डेटा को पार्स करता है और एप्लिकेशन कार्यक्षमता के साथ डेटा I/O के गतिशील जुड़ाव को सक्षम बनाता है, जिससे तेजी से नवाचार और विकास और नए मानव-इंटरफ़ेस उपकरणों के विविधीकरण को सक्षम किया गया है।

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

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

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

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

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

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

उपरोक्त तंत्र वर्णन करता है कि एचआईडी "रिपोर्ट प्रोटोकॉल" के रूप में जाना जाता है। क्योंकि यह समझा गया था कि सभी होस्ट एचआईडी डिस्क्रिप्टर को पार्स करने में सक्षम नहीं होंगे, एचआईडी "बूट प्रोटोकॉल" को भी परिभाषित करता है। बूट प्रोटोकॉल में, केवल विशिष्ट उपकरणों को केवल विशिष्ट विशेषताओं के साथ समर्थित किया जाता है क्योंकि निश्चित डेटा पैकेट स्वरूपों का उपयोग किया जाता है। इस मोड में एचआईडी डिस्क्रिप्टर का उपयोग नहीं किया जाता है, इसलिए नवाचार सीमित है। हालाँकि, लाभ यह है कि मेजबानों पर न्यूनतम कार्यक्षमता अभी भी संभव है जो अन्यथा एचआईडी का समर्थन करने में असमर्थ होंगे। बूट प्रोटोकॉल में समर्थित केवल डिवाइस हैं बूट मोड का सामान्य उपयोग कंप्यूटर के बूट-अप अनुक्रम के पहले क्षणों के दौरान होता है। कंप्यूटर के बायोस को सीधे कॉन्फ़िगर करना अक्सर केवल बूट मोड का उपयोग करके किया जाता है। कभी-कभी संदेश उपयोगकर्ता को सूचित करेगा कि डिवाइस ने सही ड्राइवर स्थापित किया है और अब प्रयोग करने योग्य है।
 * कीबोर्ड - एचआईडी उपयोग तालिका, उपयोग पृष्ठ 7 में परिभाषित पहले 256 कुंजी कोड ("उपयोग") में से कोई भी बूट प्रोटोकॉल का उपयोग करके कीबोर्ड द्वारा रिपोर्ट किया जा सकता है, लेकिन अधिकांश सिस्टम केवल इन कुंजियों के सबसेट को संभालते हैं। अधिकांश प्रणालियाँ आईबीएम एटी-101 लेआउट पर सभी 104 कुंजियों का समर्थन करती हैं, साथ ही माइक्रोसॉफ़्ट विंडोज़ 95 (Windows 95) के लिए डिज़ाइन की गई तीन अतिरिक्त कुंजियाँ (बाएँ और दाएँ विंडोज़ कीज़, और मेनू कीज़)। कई प्रणालियाँ बुनियादी पश्चिमी यूरोपीय 105-, कोरियाई 106-, ब्राज़ीलियाई एबीएनटी 107- और जापानी डॉस/वी 109-कीज़ लेआउट पर अतिरिक्त कीज़  का समर्थन करती हैं। बटन, घुंडी और चाबियां जो उपयोग पृष्ठ 7 पर रिपोर्ट नहीं की गई हैं, उपलब्ध नहीं हैं। उदाहरण के लिए, एक विशेष यूएस कीबोर्ड की क्वर्टी कीज़ काम करेंगी लेकिन कैलकुलेटर और लॉगऑफ़ कीज़ नहीं होंगी क्योंकि वे उपयोग पृष्ठ 12 पर परिभाषित हैं और बूट प्रोटोकॉल में रिपोर्ट नहीं की जा सकती हैं।
 * माउस - केवल X-अक्ष, Y-अक्ष और पहले 3 बटन उपलब्ध होंगे। माउस पर कोई भी अतिरिक्त सुविधाएँ काम नहीं करेंगी।

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

अन्य प्रोटोकॉल एचआईडी का उपयोग कर रहे हैं
यूएसबी पर एचआईडी की मूल परिभाषा के बाद से, एचआईडी अब अन्य कंप्यूटर संचार बसों में भी प्रयोग किया जाता है। यह एचआईडी उपकरणों को सक्षम बनाता है जो पारंपरिक रूप से केवल यूएसबी पर पाए जाते थे, जिनका उपयोग वैकल्पिक बसों में भी किया जा सकता है। ऐसा इसलिए किया जाता है क्योंकि यूएसबी एचआईडी उपकरणों के लिए मौजूदा समर्थन को सामान्यतः माउस, टचपैड, कीबोर्ड और इस तरह के समर्थन के लिए एक पूरी तरह से नए प्रोटोकॉल का आविष्कार करने की तुलना में बहुत तेजी से अनुकूलित किया जा सकता है। ज्ञात बसें जो एचआईडी का उपयोग करती हैं:
 * ब्लूटूथ एचआईडी - माउस और कीबोर्ड के लिए उपयोग किया जाता है जो ब्लूटूथ के माध्यम से जुड़े होते हैं
 * सीरियल एचआईडी - माइक्रोसॉफ्ट के विंडोज़ मीडिया सेंटर पीसी रिमोट कंट्रोल रिसीवर्स में उपयोग किया जाता है।
 * ज़िगबी (ZigBee) इनपुट डिवाइस - ज़िगबी (आरएफ4सीई RF4CE) ज़िगबी इनपुट डिवाइस प्रोफाइल के जरिए एचआईडी डिवाइस को सपोर्ट करता है।
 * I²C पर एचआईडी - माइक्रोसॉफ्ट विंडोज 8 [2] में एम्बेडेड डिवाइस के लिए प्रयुक्त किया जाता है।
 * एसपीआई पर एचआईडी - माइक्रोसॉफ्ट द्वारा तेज, कम विलंबता फिक्स्ड-डिवाइस संचार के लिए विकसित गया।
 * एचओजीपी (एचआईडी ओवर जीएटीटी) – ब्लूटूथ लो एनर्जी तकनीक का उपयोग करके कनेक्टेड एचआईडी डिवाइस के लिए उपयोग किया जाता है

यह भी देखें

 * मानव इंटरफ़ेस दिशानिर्देश
 * ह्यूमन कंप्यूटर इंटरेक्शन
 * यूएसबी मानव इंटरफ़ेस डिवाइस वर्ग
 * ग्राफिकल यूजर इंटरफेस बिल्डर
 * डेस्कटॉप पर लिनक्स
 * पेरीफेरल
 * टैंजिबल यूजर इंटरफ़ेस

बाहरी कड़ियाँ

 * HID developers forum, USB.org
 * HID Device Class Definition 1.11 Specification, USB.org
 * HID Usage Tables 1.12 Specification, USB.org