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

💖क्या आपको यह पसंद है?लिंक को अपने दोस्तों के साथ साझा करें

विकास विभिन्न उपकरणमाइक्रोकंट्रोलर्स पर आधारित एक वास्तविक कंप्यूटर विशेषज्ञ के लिए योग्य गतिविधि है। निस्संदेह, किसी भी गैजेट की एक उपयोगी विशेषता कंप्यूटर से कनेक्ट करने के लिए यूएसबी इंटरफ़ेस होगी। लेकिन क्या होगा यदि AVR चिप USB के लिए हार्डवेयर समर्थन प्रदान नहीं करती है?

वी-यूएसबी: आकार मायने रखता है

अपना स्वयं का गैजेट विकसित करते समय अक्सर उसे कंप्यूटर से कनेक्ट करने की समस्या उत्पन्न होती है। मुझे कहना होगा कि LPT और COM पोर्ट अब विदेशी हो गए हैं motherboardsपीसी, लैपटॉप का तो जिक्र ही नहीं, जिनके लिए ये इंटरफेस काफी समय पहले गायब हो गए थे। इसलिए आधुनिक कंप्यूटर USB इंटरफ़ेस का व्यावहारिक रूप से कोई विकल्प नहीं है।

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

एटमेल माइक्रोकंट्रोलर्स के लिए एक अद्भुत वी-यूएसबी प्रोजेक्ट है जो कम गति का सॉफ्टवेयर कार्यान्वयन प्रदान करता है यूएसबी डिवाइस 1.1. वी-यूएसबी कोड किसी भी एवीआर डिवाइस पर काम करेगा जिसमें कम से कम 2 केबी फ्लैश मेमोरी और 128 बाइट्स रैम है। घड़ी की आवृत्ति 12; 12.8; 15; 16; 16.8 या 20 मेगाहर्ट्ज।

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

USB बस को माइक्रोकंट्रोलर से कनेक्ट करने का हार्डवेयर बहुत सरल है। यदि उपकरण बहुत अधिक खपत नहीं करता है, तो इसे सीधे बस (इसे विद्युत लाइन माना जाता है) से संचालित किया जा सकता है यूएसबी कंप्यूटरऔर 500 एमए तक करंट देने में सक्षम है)। चूंकि सूचना लाइनें (डी+ और डी-) 3.6 वी के सिग्नल स्तर का उपयोग करती हैं, वर्तमान सीमित प्रतिरोधों के अलावा, चिप के 5 वी तर्क से मेल खाने के लिए जेनर डायोड की आवश्यकता होती है। कनेक्शन के प्रकार को इंगित करने के लिए, आपको लाइन D– पर 1.5 kOhm प्रतिरोध के माध्यम से आपूर्ति वोल्टेज को "खींचने" की आवश्यकता है।

यूएसबी के माध्यम से युग्मन के लिए एक वैकल्पिक विकल्प एक उपयुक्त स्थिरीकरण चिप या बस डायोड की एक जोड़ी का उपयोग करके नियंत्रक आपूर्ति वोल्टेज को कम करना है। नवीनतम आरेख V-USB प्रोजेक्ट वेबसाइट पर पाया जा सकता है।

USBtiny प्रोग्रामर

AVR माइक्रोकंट्रोलर के लिए कई अलग-अलग प्रोग्रामर हैं। USBtiny का उल्लेख यहाँ आंशिक रूप से किया गया है क्योंकि इसमें V-USB के समान USB का सॉफ़्टवेयर कार्यान्वयन शामिल है। इस प्रोग्रामर का सर्किट सरल है: संस्करण 2 में दो माइक्रो सर्किट हैं, और पहले संस्करण में केवल एक (ATtiny2313 चिप) है। करने के लिए धन्यवाद विस्तृत विवरणवेबसाइट पर और सरल घटकों के साथ, नौसिखिए के लिए भी यह उपकरण बनाना आसान है। USBtiny AVR माइक्रोकंट्रोलर प्रोग्रामिंग के लिए उपयोग किए जाने वाले लोकप्रिय avrdude प्रोग्राम के साथ संगत है।

एकमात्र समस्या फर्मवेयर को प्रोग्रामर चिप में अपलोड करना है - इसके लिए आपको एक प्रोग्रामर की आवश्यकता है। यदि आपके पास एलपीटी पोर्ट वाला कंप्यूटर है, तो आप एफबीपीआरजी उर्फ ​​"पांच तार" में से एक विकल्प बना सकते हैं, जो है

स्लेज तैयार करना

USB गैजेट के लिए सबसे सरल फ़र्मवेयर को लागू करने के लिए आवश्यक सॉफ़्टवेयर उपकरण अत्यंत कठिन हैं: gcc-avr कंपाइलर, avr-libc लाइब्रेरी, avrdude प्रोग्रामर और AVR के लिए बिनुटिल्स सेट। डेबियन/उबंटू पर, आपकी ज़रूरत की हर चीज़ एक कमांड के साथ इंस्टॉल हो जाती है:

$ sudo apt-get install avrdude binutils-avr gcc-avr avr-libc

इंटरनेट के विशाल विस्तार पर इसे ढूंढना बहुत मुश्किल नहीं है विस्तृत मार्गदर्शिका V-USB और libusb के माध्यम से (अंग्रेजी में)। मैनुअल के अनुसार, जोड़ने के लिए यूएसबी समर्थनप्रोजेक्ट को संग्रह से यूएसबीडीआरवी फ़ोल्डर की आवश्यकता होगी नवीनतम संस्करणवी-यूएसबी। इस फ़ोल्डर के मूल में एक कॉन्फ़िगरेशन टेम्पलेट usbconfig-prototype.h है। आपको इस फ़ाइल की एक प्रतिलिपि बनाने की आवश्यकता है, इसे usbconfig.h कहते हुए। इसके बाद, पोर्ट (D) को निर्दिष्ट करके usbconfig.h को ठीक करें, जिसकी लाइनें I/O के लिए उपयोग की जाएंगी, लाइन नंबर D+ (2) और D– (3), साथ ही आवृत्ति (12 मेगाहर्ट्ज) पर जो चिप संचालित होती है (ATtiny2313 ):

#USB_CFG_IOPORTNAME को परिभाषित करें D #USB_CFG_DMINUS_BIT 3 को परिभाषित करें #USB_CFG_DPLUS_BIT 2 को परिभाषित करें #USB_CFG_CLOCK_KHZ 12000 को परिभाषित करें

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

#USB_CFG_VENDOR_ID 0xc0, 0x16 को परिभाषित करें #USB_CFG_DEVICE_ID 0xdc, 0x05 को परिभाषित करें #USB_CFG_VENDOR_NAME को परिभाषित करें "n","e","t","s","4","g","e","e","k" ,"s","।","c","o","m" #USB_CFG_VENDOR_NAME_LEN 14 को परिभाषित करें #USB_CFG_DEVICE_NAME को परिभाषित करें "U","S","B","e","x","a" ,"m","p","l","e" #USB_CFG_DEVICE_NAME_LEN 10 को परिभाषित करें

विभिन्न गैजेट

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

उदाहरण के लिए, वी-यूएसबी परियोजना ने, अपनी लाइसेंसिंग नीति के कारण, तैयार (स्वतंत्र रूप से वितरित सहित) समाधानों का एक अच्छा आधार जमा कर लिया है। यहां आप कीबोर्ड, जॉयस्टिक के लिए यूएसबी एडाप्टर, गेमपैड (उदाहरण के लिए एसएनईएस/एनईएस, निंटेंडो 64, जेडएक्स स्पेक्ट्रम जॉयस्टिक, सोनी प्लेस्टेशन 1/2 सहित) और इसी तरह के विभिन्न कार्यान्वयन पा सकते हैं। DMX एडाप्टर, वर्चुअल COM और UART पोर्ट, i2c, सर्वो, DCF77, IR वायरलेस इंटरफेस - वह सब कुछ जो आपको अपने पीसी से अधिक नए डिवाइस कनेक्ट करने में मदद करेगा। लॉगर, जांच और सेंसर के लिए प्लेटफॉर्म, एलसीडी डिस्प्ले के लिए एडाप्टर, प्रोग्रामर और लोडर भी घर में उपयोगी हो सकते हैं।

चिप के लिए कार्यक्रम प्राथमिक है!

यूएसबी बस के माध्यम से इंटरैक्ट करते समय, कंप्यूटर मुख्य उपकरण होता है जो समय-समय पर नियंत्रण अनुरोध संदेश भेजता है। नियंत्रक, तदनुसार, एक गुलाम है और उसे अनुरोधों का जवाब देना चाहिए। नियंत्रण संदेश प्रारूप usbdrv.h फ़ाइल से usbRequest_t संरचना द्वारा निर्धारित किया जाता है:

टाइपडिफ स्ट्रक्चर यूएसबी रिक्वेस्ट ( uchar bmRequestType; uchar bRequest; usbWord_t wValue; usbWord_t wIndex; usbWord_t wLength; ) usbRequest_t;

आइए usbdrv फ़ोल्डर के समान स्तर पर एक फ़ाइल main.c बनाएं और इसमें आवश्यक हेडर फ़ाइलों, परिभाषाओं और चर का वर्णन करें:

#शामिल करना #शामिल करना #शामिल करना # "usbdrv.h" शामिल करें #F_CPU 12000000L को परिभाषित करें // MK आवृत्ति # शामिल करें #DATA_OUT को परिभाषित करें 1 // कमांड भेजें #DATA_IN को परिभाषित करें 2 // कमांड प्राप्त करें // बफर स्टैटिक uchar रिप्लाईबफ = "हैलो वर्ल्ड!"; स्थिर उचर डेटा लंबाई = 0, डेटा प्राप्त = 0;

Main.c में हम usbFunctionSetup फ़ंक्शन को ओवरराइड करेंगे, जिसे नया अनुरोध प्राप्त होने पर स्वचालित रूप से कॉल किया जाता है:

USB_PUBLIC uchar usbFunctionSetup(uchar डेटा) ( usbRequest_t *rq = (void *)data; स्विच(rq->bRequest) ( केस DATA_OUT: // डेटा भेजने के लिए कमांड को प्रोसेस करें usbMsgPtr = रिप्लाईबफ; // बफर रिटर्न साइज निर्दिष्ट करें (रिप्लाईबफ) ); // बफर साइज केस लौटाएं DATA_IN: // डेटा प्राप्त करने वाले कमांड को प्रोसेस करना dataLength = (uchar)rq->wLength.word; // लंबाई डेटा प्राप्त करें = 0; //usbFunctionWrite पर कई कॉल होंगी। dataLength > sizeof(replyBuf)) // ओवरफ्लो चेक dataLength = sizeof(replyBuf); रिटर्न USB_NO_MSG // रिटर्न 255 ) रिटर्न 0;

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

डेटा प्राप्त करने के लिए, सबसे पहले, आपको अनुरोध के wLength फ़ील्ड से संदेश की लंबाई निकालने और इसे dataLength वैश्विक चर में संग्रहीत करने के लिए usbFunctionSetup फ़ंक्शन का उपयोग करने की आवश्यकता है। दूसरे, main.c में आपको usbFunctionWrite फ़ंक्शन को ओवरराइड करने की आवश्यकता है, जो प्राप्त डेटा को संसाधित करने के लिए डिज़ाइन किया गया है और यदि usbFunctionSetup मान USB_NO_MSG (255) लौटाता है तो स्वचालित रूप से (और स्पष्ट रूप से कई बार) कॉल किया जाता है:

USB_PUBLIC uchar usbFunctionWrite(uchar *data, uchar len) ( uchar i; // डेटा के प्राप्त हिस्से को बफर में सेव करें for(i = 0; dataReceived)< dataLength && i < len; i++, dataReceived++) replyBuf = data[i]; return (dataReceived == dataLength); }

दरअसल, usbFunctionWrite फ़ंक्शन रिप्लाईबफ बफर को प्राप्त डेटा से भरता है।

वैसे, इस विधि के काम करने के लिए, आपको usbconfig.h में परिवर्तन करने होंगे:

#USB_CFG_IMPLEMENT_FN_WRITE 1 को परिभाषित करें

खैर, फर्मवेयर का अंतिम कार्य मुख्य है:

Int main() ( usbInit(); // USB usbDeviceConnect() प्रारंभ करें; // डिवाइस कनेक्ट करें sei(); // इंटरप्ट सक्षम करें // अनंत लूप में नियंत्रण संदेशों की प्रतीक्षा करें जबकि(1) usbPoll(); वापसी 0 ; )

आइए USART/UART का उपयोग करें

सॉफ़्टवेयर/हार्डवेयर USB का एक अच्छा विकल्प चिप में लोकप्रिय USART/UART इंटरफ़ेस का उपयोग इस प्रोटोकॉल के USB में तृतीय-पक्ष कनवर्टर के साथ करना है, जिसे उदाहरण के लिए, FT232RL चिप के आधार पर बनाया जा सकता है।

लिबसब: न तो कपड़े पहने हुए और न ही नग्न

आप पूछ सकते हैं: क्या आपको यूएसबी डिवाइस कनेक्ट करने के लिए कंप्यूटर ऑपरेटिंग सिस्टम के लिए ड्राइवर लिखना होगा? यदि आप libusb का उपयोग करते हैं, तो आप पूर्ण विकसित कर्नेल मॉड्यूल को लागू किए बिना काम कर सकते हैं। Libusb एक ओपन सोर्स लाइब्रेरी है जो आपको जल्दी से प्रोग्राम करने की अनुमति देती है, सबसे पहले, बस में एक डिवाइस की खोज करना, और दूसरा, इसके साथ डेटा का आदान-प्रदान करना।

लिनक्स के तहत, लाइब्रेरी और आवश्यक हेडर फ़ाइलें स्रोत कोड से प्राप्त की जा सकती हैं। अपने वितरण के मानक भंडार का उपयोग करना बेहतर है। उदाहरण के लिए, डेबियन/उबंटू के लिए, इस तरह:

$ sudo apt-get install libusb-dev

विंडोज़ के लिए एक libusb पोर्ट भी है - libusb-win32। प्रोजेक्ट के नाम के विपरीत, माइक्रोसॉफ्ट के 64-बिट ऑपरेटिंग सिस्टम भी समर्थित हैं (संस्करण 1.2.0.0 से शुरू)।

लेकिन libusb बातचीत का एक अलग विषय है। मुझे लगता है कि आप पीसी प्रोग्रामिंग से परिचित हैं और इसे स्वयं समझ सकते हैं। तो मैं संक्षेप में बताऊंगा। एक फ़ाइल usbtest.c बनाएं और उसे सामग्री से भरना शुरू करें। सबसे पहले आवश्यक हेडर फ़ाइलें और परिभाषाएँ:

#शामिल करना [...] // कंप्यूटर के लिए, कमांड का अर्थ उलटा होता है, // लेकिन पदनाम वही रहते हैं #DATA_OUT 1 परिभाषित करें #DATA_IN 2 परिभाषित करें

डिवाइस को प्रारंभ करने के लिए usbOpenDevice फ़ंक्शन:

Usb_init(); // USB को आरंभ करें usb_find_busses(); // बसें ढूंढें usb_find_devices(); // डिवाइस ढूंढें // सभी बसों की गणना करें (bus=usb_get_busses(); बस; बस = बस->नेक्स्ट) ( // बस में सभी डिवाइसों की गणना करें for(dev=bus->devices; dev; dev=dev- > अगला) ( // यदि विक्रेता और उत्पाद आईडी मेल नहीं खाते... if(dev->descriptor.idVendor !=vendor || dev->descriptor.idProduct !=product) जारी रखें; // ...इसे छोड़ें पुनरावृत्ति // एक डिवाइस हैंडल प्राप्त करने का प्रयास करें यदि(!(हैंडल = यूएसबी_ओपन(dev))) ( fprintf(stderr, "%s\n", usb_strerror()); जारी रखें; ) हैंडल लौटाएं; ) // डिवाइस नहीं मिला।

जैसा कि आप देख सकते हैं, usbOpenDevice पैरामीटर निर्माता और डिवाइस के संख्यात्मक पहचानकर्ता हैं। यदि डिवाइस बस में मौजूद है, तो उसका डिस्क्रिप्टर वापस कर दिया जाता है। यदि वी-यूएसबी पर कई डिवाइस हैं, तो आपको विक्रेता और उत्पाद के प्रतीकात्मक नामों के लिए एक चेक जोड़ना होगा।

और यूएसबीटेस्ट कंसोल उपयोगिता का मुख्य कार्य:

Int main(int argc, char **argv) ( // डिवाइस डिस्क्रिप्टर usb_dev_handle *handle = NULL; int nBytes = 0; char बफर; // डिवाइस हैंडल ढूंढ रहा हूं = usbOpenDevice(0x16C0, 0x05DC); if(handle == NULL) ( fprintf(stderr, "USB डिवाइस नहीं मिल सका!\n"); बाहर निकलें(1); ) // तर्क निकालें - चिप से डेटा प्राप्त करें यदि (strcmp(argv, "out") == 0) ( nBytes = usb_control_msg (हैंडल, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN, DATA_OUT, 0, 0, (char *)बफ़र, साइज़ऑफ़ (बफ़र), 5000); प्रिंटफ़ ("%d बाइट्स मिला: %s\n", nBytes, बफ़र) ; में तर्क - स्ट्रिंग भेजें (अगला तर्क) ) अन्यथा यदि (strcmp(argv, "in") == 0 && argc > 2) ( nBytes = usb_control_msg(हैंडल, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_OUT, DATA_IN, 0, 0, argv , स्ट्रलेन(argv)+1, 5000); if(nBytes< 0) fprintf(stderr, "%s\n", usb_strerror()); usb_close(handle); // Закрыть дескриптор return 0; }

usb_control_msg फ़ंक्शन, जिसे usb.h include फ़ाइल में घोषित किया गया है, यहां पर शासन करता है। इसमें मापदंडों का एक समूह है और वास्तव में उन नियंत्रण संदेशों को बनाता है, जिनकी प्रसंस्करण माइक्रोकंट्रोलर फर्मवेयर में कार्यान्वित की जाती है।

प्रोटीन आराम कर रहा है

सॉफ्टवेयर-आधारित यूएसबी डिवाइस विकसित करते समय हर किसी का पसंदीदा विद्युत सर्किट सिम्युलेटर, प्रोटियस आईएसआईएस बेकार है। इसका USB एमुलेटर केवल यूनिवर्सल सीरियल बस हार्डवेयर सपोर्ट (जैसे AT90USB646 या AT90USB1286) वाले चिप्स को सपोर्ट करता है।

हम इकट्ठा करते हैं, फ्लैश करते हैं, परीक्षण करते हैं

नीचे एक छोटी लेकिन बहुत उपयोगी मेकफ़ाइल है, जिसके साथ आप आसानी से चिप के लिए फर्मवेयर प्राप्त कर सकते हैं - main.hex और usbtest उपयोगिता बाइनरी, main.c और usbtest.c से मेक कमांड का उपयोग करके:

CC = avr-gcc OBJCOPY = avr-objcopy CFLAGS = -Wall -Os -Iusbdrv -mmcu=attiny2313 OBJFLAGS = -j .text -j .data -O ihex OBJECTS = usbdrv/usbdrv.o usbdrv/oddebug.o usbdrv/usbdrvasm .o main.o CMDLINE = usbtest # लक्ष्य: सब कुछ एकत्र करें: main.hex $(CMDLINE) # कंप्यूटर के लिए एक उपयोगिता बनाएं $(CMDLINE): usbtest.c gcc -I ./libusb/include -L ./libusb /lib /gcc -O -Wall usbtest.c -o usbtest -lusb # बाइनरी कोड क्लीन से प्रोजेक्ट साफ़ करें: $(RM) *.o *.hex *.elf usbdrv/*.o # फ़र्मवेयर फ़ाइल प्राप्त करना योगिनी फ़ाइल % हेक्स: %elf $(OBJCOPY) $(OBJFLAGS) $< $@ # Сборка elf-файла main.elf: $(OBJECTS) $(CC) $(CFLAGS) $(OBJECTS) -o $@ # Сборка файлов библиотеки V-USB $(OBJECTS): usbdrv/usbconfig.h # C в объектный код %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ # asm в объектный код %.o: %.S $(CC) $(CFLAGS) -x assembler-with-cpp -c $< -o $@

यूएसबीटिनी प्रोग्रामर का उपयोग करके फर्मवेयर को माइक्रोकंट्रोलर पर अपलोड करने के लिए, कमांड टाइप करें:

$ sudo avrdude -p t2313 -c usbtiny -e -U फ़्लैश:w:main.hex:i -U lfuse:w:0xef:m

एवरड्यूड में, फ़्यूज़ सेटिंग्स बहुत स्पष्ट नहीं हैं, लेकिन उन्हें ऑनलाइन कैलकुलेटर में से किसी एक में आसानी से गणना की जा सकती है।


हम डिवाइस को कंप्यूटर से कनेक्ट करते हैं और जांचते हैं कि यह कैसे काम करता है (आउट पैरामीटर के साथ यूएसबीटेस्ट लाइन को पढ़ता है, इन - चिप बफर को निर्दिष्ट लाइन लिखता है):

$ sudo ./usbtest in all_ok $ sudo ./usbtest out

टार का एक चम्मच

सॉफ़्टवेयर USB रामबाण नहीं है. सॉफ़्टवेयर कार्यान्वयन में आमतौर पर कई सरलीकरण होते हैं, जैसे चेकसम और चैनल समरूपता की जांच की कमी, जो शोर प्रतिरक्षा को नकारात्मक रूप से प्रभावित करती है। इसके अलावा, सॉफ़्टवेयर लाइब्रेरी आमतौर पर कम गति वाले यूएसबी ऑपरेटिंग मोड का उपयोग करती हैं। और USB लाइब्रेरी कोड पहले से ही छोटी चिप मेमोरी को "खा जाता है"।

आइए झांकें...

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

$ सुडो मॉडप्रोब यूएसबीमोन

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

निष्कर्ष

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

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

विशेष सॉफ़्टवेयर का उपयोग करके, यह कई तरीकों से किया जा सकता है। आइए उनमें से प्रत्येक को चरण दर चरण देखें।

विधि 1: ओएसएफमाउंट

जब आपके पास फ्लैश ड्राइव न हो तो यह छोटा प्रोग्राम बहुत मददगार होता है। यह विंडोज़ के किसी भी संस्करण पर काम करता है।

प्रोग्राम डाउनलोड करने के बाद, यह करें:



इस प्रोग्राम का उपयोग करने के लिए अतिरिक्त सुविधाओं की आवश्यकता हो सकती है. ऐसा करने के लिए, आपको मुख्य विंडो में आइटम दर्ज करना होगा "कार्रवाई चलाएँ". तब निम्नलिखित विकल्पों का उपयोग करना संभव होगा:

  • डिसमाउंट - वॉल्यूम को अनमाउंट करें;
  • प्रारूप—वॉल्यूम स्वरूपण;
  • मीडिया को केवल पढ़ने के लिए सेट करें - रिकॉर्डिंग पर रोक लगाता है;
  • विस्तार आकार - वर्चुअल डिवाइस का आकार बढ़ाता है;
  • Savetoimagefile - आवश्यक प्रारूप में सहेजने के लिए उपयोग किया जाता है।

विधि 2: वर्चुअल फ्लैश ड्राइव

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

इस प्रोग्राम का उपयोग करने के निर्देश इस प्रकार हैं:

  1. वर्चुअल फ्लैश ड्राइव डाउनलोड और इंस्टॉल करें।
  2. मुख्य विंडो में, बटन पर क्लिक करें "नया माउंट करें".
  3. एक विंडो दिखाई देगी "नया वॉल्यूम बनाएं", इसमें वर्चुअल मीडिया बनाने का पथ निर्दिष्ट करें और क्लिक करें "ठीक है".


जैसा कि आप देख सकते हैं, प्रोग्राम का उपयोग करना बहुत आसान है।

विधि 3: इमडिस्क

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


विधि 4: क्लाउड स्टोरेज

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

ऐसे डेटा स्टोरेज में Yandex.Disk, Google Drive और Mail.ru Cloud शामिल हैं। इन सेवाओं के उपयोग का सिद्धांत समान है।

आइए देखें कि यांडेक्स डिस्क के साथ कैसे काम करें। यह संसाधन आपको इस पर 10 जीबी तक की जानकारी निःशुल्क संग्रहीत करने की अनुमति देता है।



ऐसे वर्चुअल स्टोरेज माध्यम के साथ काम करने से आप अपने डेटा को पूरी तरह से प्रबंधित कर सकते हैं: इसे फ़ोल्डरों में समूहित करें, अनावश्यक डेटा हटाएं, और यहां तक ​​कि अन्य उपयोगकर्ताओं के साथ इसके लिंक भी साझा करें।

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

मस्का पर इसी तरह के एडेप्टर की पहले से ही कई समीक्षाएं हो चुकी हैं, जिनमें से सबसे प्रसिद्ध चीनी यटौर है।

मैंने एक अपरंपरागत मार्ग पर जाने का फैसला किया, मैंने रूसी ट्रायोमा फ्लिपर 2 को आज़माने का फैसला किया।
कुल मिलाकर रेटिंग - उत्कृष्ट, खरीदारी से संतुष्ट, अनुशंसा करता हूँ।

विवरण के लिए कृपया नीचे देखें

प्रस्तावना

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

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

आप इसे हैक कर सकते हैं और AUX (ऑडियो) इनपुट संलग्न कर सकते हैं, लेकिन आपको अभी भी एक ध्वनि स्रोत की आवश्यकता होगी, और आपको स्टीयरिंग व्हील नियंत्रण के बारे में भूलना होगा।

मैंने एफएम ट्रांसमीटरों के विकल्पों को बहुत पहले ही छोड़ दिया था - मैंने कुछ अलग-अलग ट्रांसमीटरों की कोशिश की, ध्वनि की गुणवत्ता बहुत अच्छी नहीं थी।

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

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

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

एंड्रॉइड पर ग्रोम ऑडियो, FLAC का समर्थन करता है, लेकिन मेरी कार के लिए कोई मॉडल नहीं है।

लेकिन ट्रायोमा फ़्लिपर 2 में मेरी रुचि थी। सबसे पहले, आउटपुट स्तर (वॉल्यूम) को समायोजित करने की क्षमता। इसके अलावा, इसमें फ़ोल्डरों का अधिक सुविधाजनक संगठन है और उनमें से कई और भी हो सकते हैं। और यह बहुत कम छोटी गाड़ी है.
उधार लेकर अच्छी मेजयेटोर और ट्रायोमा के बीच तुलना


यात्रा पर स्पष्टीकरण:
1. बाहरी फ़ाइलें प्लेबैक में हस्तक्षेप नहीं करतीं। कम से कम कुछ फ़र्मवेयर पर।

तो, मैंने अपनी पसंद बनाई। तिकड़ी!!!
ऐसा एडॉप्टर खरीदते समय, अपनी कार के लिए एक मॉडल चुनना सुनिश्चित करें। अधिक सटीक रूप से, आपकी कार के कार रेडियो के अंतर्गत। अलग-अलग रेडियो में चेंजर के लिए अलग-अलग कनेक्टर हो सकते हैं जो एक-दूसरे के साथ संगत नहीं होते हैं।

मैं ट्रायोमा कहां से खरीद सकता हूं?

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

मैंने ऐसे दोस्तों की तलाश शुरू कर दी जो मेरे लिए रूस या बेलारूस से एडॉप्टर ला सकें। मिला!!! मुझे रूस से एक मित्र मिला जिसने फरवरी की शुरुआत में ही मेरे लिए एक एडॉप्टर ऑर्डर करके ला दिया था! ओलेग, धन्यवाद!

और यहाँ मेरे घर पर एडॉप्टर है!



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


कुछ और तस्वीरें

अतिरिक्त डिवाइस, औक्स केबल या ब्लूटूथ एडाप्टर को जोड़ने के लिए कनेक्टर


एडाप्टर पर माँ


पिताजी केबल पर


रेडियो RD4 के लिए कनेक्टर


मत खोलो, गारंटी दो


इंस्टालेशन

रेडियो टेप रिकॉर्डर RD4, एक षट्भुज के साथ दो स्क्रू खोलें और रेडियो टेप रिकॉर्डर को बाहर निकालें।

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


हम केबल को एडॉप्टर से जोड़ते हैं, इग्निशन चालू करते हैं और चमत्कार करते हैं - सब कुछ तुरंत काम करता है!!! इसके अलावा, वॉल्यूम स्तर लगभग अंतर्निहित सीडी के समान ही है।

लेकिन फिर हम यह सोचना शुरू करते हैं कि यूएसबी केबल को कहां कनेक्ट किया जाए। मेरे मामले में सबसे आसान तरीका स्टीयरिंग व्हील के नीचे केबल को ड्राइवर के बाईं ओर छोटे दस्ताने डिब्बे में रूट करना था।


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

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

एडॉप्टर संचालन

आवाज़ की गुणवत्ता।सीडी प्लेयर से तुलनीय। कार में मानक ध्वनिकी काफी औसत दर्जे की है, इसलिए आपको निश्चित रूप से मेरी कार में मानक सीडी प्लेयर के साथ अंतर नहीं सुनाई देगा।
स्विचिंग गति. कुछ दर्जन कैटलॉग के साथ फ्लैश ड्राइव पर इग्निशन चालू करने के बाद कुछ सेकंड से भी कम समय। वे मंचों पर लिखते हैं कि कई सौ निर्देशिकाओं के साथ गति कम है। एडॉप्टर को याद रहता है कि बंद होने से पहले वह कहाँ खेल रहा था और उसी स्थान से चलना शुरू कर देता है। यह संपत्ति उन लोगों के लिए मूल्यवान है जो ऑडियोबुक सुनना पसंद करते हैं। एडॉप्टर पिछले 4 फ़्लैश ड्राइव का स्थान याद रखता है/
ट्रैक बदलना.एक सेकंड के एक अंश में, इसमें कोई अंतर नहीं पड़ता कि ट्रैक उसी निर्देशिका में स्थित है या किसी अन्य निर्देशिका में। स्विचिंग के दौरान कोई बाहरी आवाजें नहीं आतीं।
फ़्लैश ड्राइव बदलना.रेडियो चालू होने पर, फ्लैश ड्राइव निकालें और एक नया डालें। कुछ ही सेकंड में इसका पता चल जाता है और तुरंत चलना शुरू हो जाता है। प्रतिस्थापन के दौरान, एक बहुत ही शांत लघु ट्रिल ध्वनि हो सकती है।

एडॉप्टर 32 निर्देशिकाओं को समझता है, जिसमें 32 उपनिर्देशिकाएँ हो सकती हैं, जिनमें से प्रत्येक में 99 फ़ाइलें तक हो सकती हैं। लेकिन मुझे जल्द ही एहसास हुआ कि मेरा डिस्क स्विच केवल पहली छह डिस्क को ही स्विच करता है। हालाँकि रैंडम मोड में एडॉप्टर सभी निर्देशिकाओं को देखता है।

मैंने ट्रायोमा फ़ोरम पर एक प्रश्न पूछा, समर्थन ने बहुत तेज़ी से प्रतिक्रिया दी और निर्देशिकाओं को व्यवस्थित करने के लिए विकल्पों की पेशकश की। समस्या यह सामने आई कि आरडी4 पर बटन, हालांकि वे डिस्क+/डिस्क- फ़ंक्शन करते हैं, वास्तव में वे एडॉप्टर को सीधे डिस्क 1-6 का चयन करने के लिए कमांड भेजते हैं। इसलिए ये बटन केवल 6 रूट निर्देशिकाओं या 6 उपनिर्देशिकाओं को स्विच कर सकते हैं।
और मेरे रेडियो पर 1024 निर्देशिकाओं को प्रबंधित करना संभव नहीं है। आप केवल 32*6=192 निर्देशिकाएँ प्रबंधित कर सकते हैं;)

विवरण में कहा गया है कि एफएफ/एफआर बटन दोहरा कार्य करते हैं - निर्देशिका/उपनिर्देशिका बदलना और रिवाइंड करना।
लेकिन आरडी4 ट्रैक+/ट्रैक- को एफएफ/एफआर के साथ जोड़ा गया है और एडॉप्टर के लिए इन बटनों का तीन उद्देश्य है:
1. लघु प्रेस - ट्रैक+/ट्रैक-
2. 2-3 सेकंड के लिए दबाएँ, जब छोड़ें ध्वनि गायब हो जाएगीवर्तमान ट्रैक से - स्विच निर्देशिका
3. 3 सेकंड से अधिक देर तक दबाने पर त्वरित धीमी ध्वनि आती है - रिवाइंड करें
समय अनुमानित है, आपको ध्वनि पर ध्यान देने की आवश्यकता है

खरीदारी से पहले ही, मैंने मान लिया था कि मैं सैकड़ों कैटलॉग के साथ एक बड़ी मेगाफ्लैश ड्राइव संग्रहीत करूंगा। लेकिन अब मैं देख रहा हूं कि विभिन्न चयनों के साथ कई फ्लैश ड्राइव रखना अधिक सुविधाजनक है।
मेरे पास अब यह है:
1. 80-90 के दशक का रूसी पॉप संगीत
2. 80-90 के दशक का विदेशी पॉप संगीत
3. वाद्ययंत्र

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

अतिरिक्त लिंक

मिनी FAQ

कुछ प्रश्न इस समीक्षा से बाहर रह गए; मैंने उन्हें एक अलग मिनीफ़ैक में शामिल करने का निर्णय लिया। मैं यहां टिप्पणियों में आने वाले प्रश्न भी जोड़ूंगा।
  • डिस्प्ले पर नाम (फ़ाइल नाम, टैग, या कुछ भी) दिखाए जाने के लिए क्या करने की आवश्यकता है?
  • ट्रायोम एडाप्टर निश्चित रूप से टैग, फ़ाइल नाम और फ़ोल्डर नाम "देखते" हैं। जहां संभव हो, वे रेडियो के मानक डिस्प्ले पर टेक्स्ट स्ट्रिंग प्रदर्शित करते हैं: बीएमडब्ल्यू और ऑप्टिकल MOST बस वाली सभी कारें। शायद जल्द ही कुछ टोयोटा/लेक्सस उपकरणों के लिए टेक्स्ट आउटपुट लागू किया जाएगा।
  • सीडी परिवर्तक बिना किसी समस्या के काम करते हैं।
  • मुझे डर है कि आप गलत हैं: हम ऊपर सूचीबद्ध मॉडलों के अलावा किसी भी बाहरी परिवर्तक को नहीं जानते हैं जो इस कार्य को संभाल सकता है। हेड यूनिट में निर्मित चेंजर एक अलग मामला है, जहां टेक्स्ट सीधे डिस्प्ले कंट्रोलर पर आउटपुट होता है - यह एक पूरी तरह से अलग तंत्र है।
  • क्या ट्रायोमा फ़्लिपर 2 एडॉप्टर से अतिरिक्त डिवाइस कनेक्ट करना संभव है?
  • आप किसी AUX-मिनीजैक 3.5 मेल एडॉप्टर केबल को एडॉप्टर से कनेक्ट कर सकते हैं
मैं +23 खरीदने की योजना बना रहा हूं पसंदीदा में जोड़े मुझे समीक्षा पसंद आयी +21 +46

11

मेरे पास एक लिनक्स एप्लिकेशन है जिसके लिए मैं कुछ परीक्षणों को स्वचालित करना चाहता हूं और इसकी स्थिति को कुछ उपकरणों, यानी यूएसबी डिवाइस, डब्लूएलएएन डिवाइस, डब्लूएएन डिवाइस की स्थिति के आधार पर बदलने की जरूरत है। हालाँकि, अब हमारे पास भौतिक USB, WLAN, WAN आदि डिवाइस नहीं हैं, इसलिए मुझे वास्तव में कनेक्ट किए बिना इस प्रोग्राम का परीक्षण करने का एक तरीका निकालने की आवश्यकता है भौतिक उपकरण, उन्हें चालू/बंद करना, आदि।

मैं शुरुआत करता हूँ आसान रचनाएक वर्चुअल यूएसबी डिवाइस जिसे मैं यूजरस्पेस से नियंत्रित कर सकता हूं, लेकिन मेरी ओर से ज्ञान की बुनियादी कमी है जो मुझे इन मंचों पर किसी भी समान थ्रेड को लेने और उन्हें अपने प्रोजेक्ट पर लागू करने से रोक रही है। मुझे ऐसा लगता है कि मुझे किसी प्रकार का वर्चुअल USB ड्राइवर बनाने की आवश्यकता है और फिर इसे किसी उपयोगकर्ता स्तर के प्रोग्राम के साथ जोड़ना होगा, USBFs के साथ नहीं। हालाँकि, भले ही मैं यह वर्चुअल ड्राइवर बनाऊं, मैं इस डिवाइस को उपयोगकर्ता स्थान से कैसे "माउंट" करूं और अपने प्रोग्राम को इस विशिष्ट ड्राइवर के साथ पंजीकृत करूं? क्या मैं जो करने का प्रयास कर रहा हूं वह संभव है?

  • 2 उत्तर
  • छँटाई:

    गतिविधि

0

क्या आप VMWare का उपयोग करके वर्चुअल वातावरण में एप्लिकेशन का परीक्षण नहीं कर सकते? फिर आप अपने कंप्यूटर पर किसी भी वर्चुअल डिवाइस को अतिथि से "कनेक्ट" कर सकते हैं आभासी मशीनऔर इस प्रकार एप्लिकेशन का परीक्षण करें.

8

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

एक बार जब आपके पास यूएसबी ओटीजी हार्डवेयर सक्षम हो जाता है, तो गैजेट बॉक्स सभी हो जाते हैं सॉफ़्टवेयर:

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

2) कर्नेल यूएसबी हब, यूएसबी-ईथरनेट, यूएसबी-सीरियल पोर्ट और यूएसबी स्टोरेज डिवाइस के लिए गैजेट का समर्थन करता है। बस अपने गैजेट में आवश्यक मॉड्यूल लोड करें और यह "बस काम करता है"। उदाहरण के लिए, USB ड्राइव बनाने के लिए, कुछ इस तरह करें: "insmod g_file_storage.ko file=/dev/ram0"। दूर वाला भाग यह सोचेगा कि आपने USB ड्राइव कनेक्ट कर लिया है।

सीरियल डिवाइस के लिए, गैजेट यूजर स्पेस कोड में चल सकता है जो "हैंडसेट को उठाता है" "/Dev/USBx" और परीक्षण के तहत डिवाइस से बात करता है। (स्पष्टतः 4जी मॉडेम या किसी अन्य का अनुकरण करते हुए।)

ढेरों डिवाइस वास्तव में हुड के नीचे "यूएसबी-टू-सीरियल" हैं क्योंकि निर्माता यूएसबी को समझने में बहुत आलसी थे।

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

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



मित्रों को बताओ