Creăm o unitate USB virtuală în computer. Creați o unitate flash USB virtuală pe computerul dvs. Creați un emulator pentru un dispozitiv USB sub Windows

Proiectul Olof Lagerkvist este un program excelent pentru emularea discurilor, dar din moment ce discurile pot emula pe toată lumea, dar nu toată lumea se poate lăuda că creează o unitate flash USB sau o dischetă. Discurile sunt create în memoria virtuală, fizic pot fi descărcate în imagini de fișiere. După instalare, programul este disponibil din panoul de control al computerului.

Faceți clic pe „OK”, toată imaginea virtuală este gata.

Imagine
Imaginea poate fi salvată și montată după cum este necesar. Unde este util? De exemplu, pentru leneși, puteți încărca certificate pentru CryptoPro pe o astfel de unitate flash virtuală.)) Sau îl puteți folosi ca disc în RAM pentru a stoca memoria cache, fișierul de paginare și alte lucruri.
Există, de asemenea, o GUI alternativă -

Conectare automată:
ecoul oprit
rem la încărcare automată pentru montare automată
c: \ WINDOWS \ system32 \ imdisk.exe -a -f "% PROGRAMFILES% \ flash.img" -m f: -o rem

Câteva opțiuni pentru linia de comandă:

imdisk.exe -e -s 300M -m B: - creșteți discul B cu 300 MB

imdisk -a -t fișier -o ro -m y: -f C: \ Boot.img- montați imaginea Boot.img cu unitatea Y, doar în citire

imdisk -a -t fișier -m y: -f C: \ Boot.img- montați imaginea Boot.img cu unitatea Y, doar citire/scriere

imdisk -d -m y: - demontați unitatea Y

imdisk -a -s 150M -m #: -p "/ fs: ntfs / y / q / v: imdisk- creați un disc cu dimensiunea de 150 MB, prima literă de disc este liberă, formatare în NTFS, etichetă disc imdisk

imdisk -a -s 10% -m #: -p "/ fs: ntfs / y / q / v: imdisk- la fel ca și precedentul, doar dimensiunea este indicată ca 10 la sută din memoria liberă.

imdisk -a -s -500M -m #: -p "/ fs: ntfs / y / q / v: imdisk- la fel ca și precedentul, doar dimensiunea este indicată cu semnul minus, adică egală cu cantitatea de memorie liberă minus dimensiunea specificată. Cu 1200 MB de memorie liberă, dimensiunea discului va deveni 1200-500 = 700 MB

imdisk.exe -a -t proxy -o ip -f 127.0.0.1:80 -m Z:- utilizarea cu un server, găsit pe internet, de fapt nu a verificat.

A - Conexiune Wirt. disc.

D - dezactivați virtualul. disc.

E - editare virtuală. disc.

_________________________

B - indicați decalajul, adică începutul datelor de pe disc, este indicat pentru discuri create în diferite programe, în imaginile cărora trebuie să săriți peste atributele inițiale din fișier.

S este dimensiunea discului virtual. Dimensiunea este numărul de octeți dacă nu se adaugă niciun sufix a (auto), b (blocuri de 512 de octeți), k (mii de octeți), m (milioane de octeți), g (miliarde de octeți), t (trilioane de octeți), K (kiloocteți), M (megaocteți), G (gigaocteți) sau T (teraocteți). Mii de octeți și kilobytes diferă prin faptul că există 1024 de octeți într-un kilobyte, nu 1000. De exemplu. -s 150M sau -s 10% - 10% din memoria liberă. Parametrul -500M - cu semnul minus definește dimensiunea discului creat ca fiind cantitatea de memorie liberă minus dimensiunea specificată.

O - setați opțiuni, se aplică împreună cu opțiunile de mai jos

ro - numai citire

rw - citire/scriere

rem - instalați ca disc amovibil (unitate flash). Aceasta determină proprietățile discului, memorarea în cache și multe altele.

fix - setat ca un disc permanent, fix (spre deosebire de rem)

cd - creați CD-ROM / DVD-ROM virtual.

fd - creați o dischetă. Implicit pentru dimensiunile 160K, 180K, 320K, 360K, 640K, 720K, 820K, 1200K, 1440K, 1680K, 1722K, 2880K, 123264K sau 23475K.

hd - creați o partiție hard.

ip - parametru pentru conectarea la un server proxy.

comm - se conectează la un server de memorie printr-un port COM.

________________

M - Definește litera de unitate. De exemplu -m B: sau -m y: sau -m #: este prima literă de unitate liberă.

F - nume de fișier virtual. unitate, de exemplu -f C: \ Boot.img sau -f \\ server \ share \ image.bin sau -F \ Dispozitiv \ Harddisk0 \ Partition1 \ image.bin- ultimul, când litera unității nu este atribuită și determinarea prin numărul de hard, numărul partiției (disc logic) și apoi calea reală.

Dezvoltarea diverselor dispozitive bazate pe microcontrolere este o ocupație demnă de un adevărat tocilar al computerelor. Fără îndoială, o caracteristică utilă a oricărui gadget va fi o interfață USB pentru conectarea la un computer. Dar ce se întâmplă dacă cipul AVR nu are suport hardware USB?

V-USB: dimensiunea contează

Când vă dezvoltați propriul gadget, vă confruntați adesea cu problema conectării acestuia la un computer. Trebuie să spun că porturile LPT și COM sunt acum exotice pe plăcile de bază de PC, ca să nu mai vorbim de laptopuri, pentru care aceste interfețe au dispărut cu mult timp în urmă. Prin urmare, computerele moderne nu au practic alternative la interfața USB.

Dacă resursele cipului sunt utilizate sută la sută, atunci este mai bine să priviți imediat dispozitivele cu suport hardware pentru magistrala serial universală (astfel de microcontrolere sunt prezente în linia oricărui producător). În alte cazuri, puteți utiliza un software USB.

Pentru microcontrolerele Atmel, există un minunat proiect V-USB care oferă o implementare software a dispozitivului USB 1.1 de viteză redusă. Codul V-USB va funcționa pe orice dispozitiv AVR care are cel puțin 2KB Flash și 128 de octeți de RAM, tactat la 12; 12,8; 15; 16; 16,8 sau 20 MHz.

Utilizarea produsului este posibilă atât sub licența open source GPL, cât și pe bază comercială. Pentru a vă dezvolta propriile dispozitive USB, de obicei trebuie să cumpărați ceva de genul unei licențe. Dar băieții de la V-USB s-au ocupat și de asta, achiziționând o pereche de Vendor ID - Product ID și permițând oricui să le folosească.

Conexiunea hardware pentru conectarea magistralei USB la microcontroler este foarte simplă. Dacă dispozitivul nu consumă prea mult, atunci poate fi alimentat direct din magistrală (se crede că linia de alimentare USB a computerului este capabilă să furnizeze curent de până la 500 mA). Deoarece liniile de date (D + și D–) folosesc un nivel de semnal de 3,6 V, în afară de rezistențele de limitare a curentului, diodele Zener sunt necesare pentru a se potrivi cu logica de 5 V de pe cip. Pentru a indica tipul de conexiune, trebuie să „trageți în sus” tensiunea de alimentare printr-o rezistență de 1,5 kOhm la linia D–.

O opțiune alternativă pentru asociere prin USB este reducerea tensiunii de alimentare a controlerului prin intermediul unui microcircuit de stabilizare adecvat sau doar a unei perechi de diode. Cea mai recentă schemă poate fi găsită pe site-ul web al proiectului V-USB.

Programator USBtiny

Există multe programatoare diferite disponibile pentru microcontrolere AVR. USBtiny este menționat aici, parțial, deoarece conține o implementare software a USB, similar cu V-USB. Circuitul acestui programator este simplu: versiunea 2 conține două microcircuite, iar prima versiune conține doar unul (cipul ATtiny2313 însuși). Datorită descrierii detaliate de pe site și accesoriilor simple, dispozitivul este ușor de realizat chiar și pentru un începător. USBtiny este compatibil cu popularul program avrdude folosit pentru programarea microcontrolerelor AVR.

Singura problemă este încărcarea firmware-ului în cipul de programare - pentru aceasta aveți nevoie de ... un programator. Dacă aveți un computer cu un port LPT, atunci puteți face una dintre opțiunile FBPRG aka „cinci fire”, care este

Pregătirea saniei

Instrumentele software necesare pentru implementarea celui mai simplu firmware de gadget USB sunt extrem de ascetice: compilatorul gcc-avr, biblioteca avr-libc, programatorul avrdude și setul binutils pentru AVR. Pe Debian / Ubuntu, tot ce aveți nevoie este instalat cu o singură comandă:

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

Pe întinderile vaste ale Internetului, este ușor să găsești un manual foarte detaliat despre V-USB și libusb (în engleză). Conform manualului, pentru a adăuga suport USB la un proiect, aveți nevoie de folderul usbdrv din arhiva cu cea mai recentă versiune V-USB. La rădăcina acestui folder se află șablonul de configurare usbconfig-prototype.h. Trebuie să faceți o copie a acestui fișier și să îl denumiți usbconfig.h. În continuare - remediați usbconfig.h, indicând portul (D), ale cărui linii vor fi utilizate pentru I/O, direct numerele de linie D + (2) și D– (3), precum și frecvența (12 MHz ) la care funcționează cipul (ATtiny2313 ):

#define USB_CFG_IOPORTNAME D #define USB_CFG_DMINUS_BIT 3 #define USB_CFG_DPLUS_BIT 2 #define USB_CFG_CLOCK_KHZ 12000

Nu trebuie să schimbați ID-urile numerice ale producătorului și ale dispozitivului pentru a utiliza licența de dispozitiv V-USB. Dar denumirile simbolice pot fi alese după bunul plac (vor distinge mai multe dispozitive V-USB conectate la același computer):

#define USB_CFG_VENDOR_ID 0xc0, 0x16 #define USB_CFG_DEVICE_ID 0xdc, 0x05 #define USB_CFG_VENDOR_NAME "n", "e", "t", "s", "4", "g", "e", "e", "" , „s”, „.”, „c”, „o”, „m” #define USB_CFG_VENDOR_NAME_LEN 14 #define USB_CFG_DEVICE_NAME „U”, „S”, „B”, „e”, „x”, „a” , „m”, „p”, „l”, „e” #define USB_CFG_DEVICE_NAME_LEN 10

Diverse gadgeturi

Ai o idee pentru un dispozitiv? Nu vă grăbiți să lipiți și să codificați, dar uite, poate cineva ca acesta a făcut-o deja. Dacă nu puteți folosi scheme și surse gata făcute, atunci cel puțin nu va trebui să începeți de la zero.

De exemplu, proiectul V-USB, datorită politicii sale de licențiere, a acumulat o bază decentă de soluții gata făcute (inclusiv distribuție gratuită). Aici puteți găsi diverse implementări de tastaturi, adaptoare USB pentru joystick-uri, gamepad-uri (inclusiv unele rare, de exemplu SNES / NES, Nintendo 64, ZX Spectrum joystick, Sony PlayStation 1/2) și altele asemenea. Adaptoare DMX, porturi COM și UART virtuale, interfețe wireless i2c, Servo, DCF77, IR - tot ceea ce vă va ajuta să conectați mai multe dispozitive noi la computer. În fermă pot fi utile și loggerele, platformele pentru senzori și senzori, adaptoarele pentru afișaje LCD, programatorii și încărcătoarele.

Programul pentru cip este elementar!

Când comunică prin magistrala USB, computerul este dispozitivul principal care trimite periodic mesaje de solicitare de control. Controlerul, respectiv, este un slave și trebuie să răspundă solicitărilor. Formatul mesajului de control este determinat de structura usbRequest_t din fișierul usbdrv.h:

Typedef struct usbRequest (uchar bmRequestType; uchar bRequest; usbWord_t wValue; usbWord_t wIndex; usbWord_t wLength;) usbRequest_t;

Să creăm un fișier main.c la același nivel cu folderul usbdrv și să descriem fișierele de antet necesare, definițiile și variabilele din acesta:

#include #include #include #include „usbdrv.h” #define F_CPU 12000000L // frecvență MK #include #define DATA_OUT 1 // Trimite comanda #define DATA_IN 2 // Primește comanda // Buffer static uchar replyBuf = "Hello World!"; static uchar dataLength = 0, dataReceived = 0;

În main.c, suprascrieți funcția usbFunctionSetup, care este apelată automat când se primește o nouă solicitare:

USB_PUBLIC uchar usbFunctionSetup (uchar data) (usbRequest_t * rq = (void *) data; switch (rq-> bRequest) (case DATA_OUT: // Procesează comanda de trimitere a datelor usbMsgPtr = replyBuf; // Specifică dimensiunea de returnare a bufferului (replyBuf /); / Returnează dimensiunea casei tampon DATA_IN: // Procesează comanda pentru a primi date dataLength = (uchar) rq-> wLength.word; // Obține lungimea dataReceived = 0; // Vor fi multe apeluri către usbFunctionWrite dacă (dataLength> sizeof (replyBuf)) // Verificare overflow dataLength = sizeof (replyBuf); return USB_NO_MSG; // Return 255) return 0;)

După cum puteți vedea din listă, cea mai ușoară modalitate de a trimite date către computer este să setați usbFunctionSetup la valoarea pointerului usbMsgPtr la memoria tampon RAM (replyBuf) unde se află datele și apoi să returnați lungimea acesteia. Dimensiunea bufferului nu trebuie să depășească 254 de octeți. Pentru ATtiny2313 cu cei 128 de octeți de RAM, acest lucru este suficient. Pentru dispozitive mai funcționale, există o a doua cale - suprascrierea funcției usbFunctionRead.

Pentru a obține datele, mai întâi, trebuie să extrageți lungimea mesajului din câmpul wLength al cererii din funcția usbFunctionSetup și să o stocați în variabila globală dataLength. În al doilea rând, în main.c, trebuie să suprascrieți funcția usbFunctionWrite, concepută pentru a procesa datele primite și apelată automat (și evident de mai multe ori) dacă usbFunctionSetup returnează USB_NO_MSG (255):

USB_PUBLIC uchar usbFunctionWrite (uchar * data, uchar len) (uchar i; // Salvați fragmentul de date primit în buffer pentru (i = 0; dataReceived)< dataLength && i < len; i++, dataReceived++) replyBuf = data[i]; return (dataReceived == dataLength); }

De fapt, funcția usbFunctionWrite umple buffer-ul replyBuf cu datele primite.

Apropo, pentru ca această metodă să funcționeze, trebuie să faceți modificări la usbconfig.h:

#define USB_CFG_IMPLEMENT_FN_WRITE 1

Ei bine, ultima funcție a firmware-ului este principală:

Int main () (usbInit (); // Inițializați USB usbDeviceConnect (); // Conectați dispozitivul sei (); // Permite întreruperi // Așteptați mesajele de control într-o buclă infinită în timp ce (1) usbPoll (); return 0; )

Folosind USART / UART

O alternativă bună la USB software / hardware este utilizarea interfeței populare USART / UART în cip cu un convertor terță parte a acestui protocol în USB, care se poate face, de exemplu, pe baza cipului FT232RL.

Libusb: nici îmbrăcat, nici nud

Vă întrebați: trebuie să scrieți un driver pentru sistemul de operare al computerului pentru a conecta un dispozitiv USB? Dacă utilizați libusb, puteți face fără implementarea unui modul de kernel cu drepturi depline. Libusb este o bibliotecă open source care vă permite să programați rapid, în primul rând, găsirea unui dispozitiv în magistrală și, în al doilea rând, schimbul de date cu acesta.

Pentru Linux, biblioteca și fișierele de antet necesare pot fi obținute din codurile sursă. Mai bine să utilizați depozitul standard al distribuției dvs. Pentru Debian / Ubuntu, de exemplu, așa:

$ sudo apt-get install libusb-dev

Există și un port libusb pentru Windows - libusb-win32. Spre deosebire de numele proiectului, sunt acceptate și sistemele de operare pe 64 de biți de la Microsoft (începând cu versiunea 1.2.0.0).

Dar libusb este un subiect separat de conversație. Cred că sunteți familiarizat cu programarea PC-ului și vă puteți da seama singur. Prin urmare, voi fi scurt. Creați un fișier usbtest.c și începeți să îl completați cu conținut. Mai întâi, fișierele de antet și definițiile necesare:

#include [...] // Pentru un computer, sensul comenzilor este inversat, // dar denumirile rămân aceleași #define DATA_OUT 1 #define DATA_IN 2

Funcția UsbOpenDevice pentru a inițializa dispozitivul:

Usb_init (); // Inițializați USB usb_find_buses (); // Găsiți autobuzele usb_find_devices (); // Găsiți dispozitive // ​​Treceți prin toate magistralele pentru (bus = usb_get_bussses (); bus; bus = bus-> next) (// Parcurgeți toate dispozitivele din magistrală pentru (dev = bus-> devices; dev; dev = dev-> next) (// Dacă ID-urile vânzătorului și ale produsului nu se potrivesc... dacă (dev-> descriptor.idVendor! = furnizor || dev-> descriptor.idProduct! = produs) continuă; // ... săriți această iterație // Încercați să obțineți descriptorul dispozitivului dacă (! (Handle = usb_open (dev))) (fprintf (stderr, "% s \ n", usb_strerror ()); continue;) return handle; // Returnează descriptorul )) // Dispozitivul nu a fost găsit returnează NULL;

După cum puteți vedea, parametrii usbOpenDevice sunt identificatorii numerici ai producătorului și dispozitivului. Dacă dispozitivul este prezent pe magistrală, descriptorul său este returnat. Dacă există mai multe dispozitive pe V-USB, va trebui să adăugați o verificare pentru numele simbolice ale vânzătorului și ale produsului.

Și funcția principală a utilitarului consolei usbtest:

Int principal (int argc, char ** argv) (// Device handle usb_dev_handle * handle = NULL; int nBytes = 0; char buffer; // Se caută dispozitiv de handle = usbOpenDevice (0x16C0, 0x05DC); if (handle == NULL ) (fprintf (stderr, "Nu s-a putut găsi dispozitivul USB! \ n"); ieșire (1);) // Argument Out - obțineți date de pe cip dacă (strcmp (argv, "out") == 0) (nBytes = usb_control_msg (mâner, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN, DATA_OUT, 0, 0, (char *) buffer, sizeof (buffer), 5000); printf ("Got% d bytes:% s \ n", nBytes, buffer); // În argument - trimiteți șirul (următorul argument)) else if (strcmp (argv, "in") == 0 && argc> 2) (nBytes = usb_control_msg (maner, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_OUT, DATA_INg, 0, 0, 0, 0) argc strlen (argv) +1, 5000);) dacă (nBytes< 0) fprintf(stderr, "%s\n", usb_strerror()); usb_close(handle); // Закрыть дескриптор return 0; }

Aici funcția usb_control_msg, care este declarată în fișierul include usb.h, conduce mingea. Are o grămadă de parametri și de fapt creează acele mesaje de control, a căror procesare este implementată în firmware-ul microcontrolerului.

Proteus odihnindu-se

Îndrăgitul simulator de cablare Proteus ISIS este inutil atunci când proiectați dispozitive cu implementare software USB. Emulatorul său USB acceptă doar cipuri cu suport hardware pentru Universal Serial Bus (cum ar fi AT90USB646 sau AT90USB1286).

Asamblare, clipire, testare

Mai jos este un Makefile mic, dar foarte util, cu ajutorul căruia comanda make de la main.c și usbtest.c poate obține cu ușurință firmware-ul pentru cip - main.hex și binarul utilitar usbtest:

CC = avr-gcc OBJCOPY = avr-objcopy CFLAGS = -Wall -Os -Iusbdrv -mmcu = attiny2313 OBJFLAGS = -j .text -j .data -O ihex OBIECTE = usbdrv / usbdrv.o usbdrvdrv / usbdrvudrv / usbdrvgv. . .o main.o CMDLINE = usbtest # Scop: construiți totul: main.hex $ (CMDLINE) # Utilitar de construcție pentru computer $ (CMDLINE): usbtest.c gcc -I ./libusb/include -L ./libusb/ lib / gcc -O -Wall usbtest.c -o usbtest -lusb # Curățați proiectul din curățarea binară: $ (RM) * .o * .hex * .elf usbdrv / *. o # Obțineți fișierul firmware de la elf fisier%.hex:% .elf $ (OBJCOPY) $ (OBJFLAGS) $< [email protected]# Construirea fișierului elf main.elf: $ (OBIECTE) $ (CC) $ (CFLAGS) $ (OBIECTE) -o [email protected]# Construiți fișiere de bibliotecă V-USB $ (OBIECTE): usbdrv / usbconfig.h # C în codul obiect% .o:% .c $ (CC) $ (CFLAGS) -c $< -o [email protected]# asm la codul obiect% .o:% .S $ (CC) $ (CFLAGS) -x assembler-with-cpp -c $< -o [email protected]

Pentru a încărca firmware-ul în microcontroler utilizând programatorul usbtiny, introducem comanda:

$ sudo avrdude -p t2313 -c usbtiny -e -U flash: w: main.hex: i -U lfuse: w: 0xef: m

În avrdude, siguranțele nu sunt foarte clare, dar pot fi calculate cu ușurință într-unul din calculatoarele online.


Conectăm dispozitivul la computer și verificăm cum funcționează (usbtest cu parametrul out citește șirul, in - scrie șirul specificat în buffer-ul cipului):

$ sudo ./usbtest în all_ok $ sudo ./usbtest out

O lingură de gudron

Soft USB nu este un panaceu. Implementările software au de obicei o serie de simplificări, cum ar fi absența sumei de control și a verificărilor de simetrie a canalului, care afectează negativ imunitatea la zgomot. De asemenea, de obicei bibliotecile de software folosesc moduri USB de viteză mică. Și codul bibliotecii USB „mâncă” memoria deja mică a cipului.

Privind...

La nivel logic, protocolul USB este în esență un transfer de date de pachete cu mai multe straturi. Este ușor să verificați acest lucru (și în același timp să învățați o mulțime de lucruri interesante despre USB) folosind analizatorul de protocol de rețea Wireshark. Mai întâi trebuie să descărcați driverul monitorului USB:

$ sudo modprobe usbmon

Acum puteți selecta magistralele USB din lista de interfețe Wireshark. Puteți vedea numărul magistralei dispozitivului, de exemplu, în jurnale.

Concluzie

Sperăm că, după ce ai învățat cum să transferi date între un computer și un microcontroler AVR, pasiunea ta pentru electronică se va aprinde cu o vigoare reînnoită, dând naștere la multe dispozitive originale și utile. Rămâne doar să vă urez succes în acest domeniu dificil, dar interesant.

11

Am o aplicație Linux pentru care aș dori să automatizez unele teste și starea acesteia ar trebui să se schimbe în funcție de starea anumitor dispozitive, adică dispozitive USB, dispozitive WLAN, dispozitive WAN. Cu toate acestea, nu mai avem dispozitive fizice USB, dispozitive WLAN, WAN etc., așa că trebuie să găsesc o modalitate de a testa acest program fără a conecta efectiv dispozitivele fizice, a le porni / dezactiva etc.

Încep prin a crea pur și simplu un dispozitiv USB virtual pe care îl pot controla din spațiul utilizatorului, dar există o lipsă fundamentală de cunoștințe din partea mea care mă împiedică să adopt oricare dintre subiectele similare din aceste forumuri și să le aplic în proiectul meu. Simt că trebuie să creez un fel de driver USB virtual și apoi să-l conectez la un fel de program la nivel de utilizator, nu usbfs. Cu toate acestea, chiar dacă creez acest driver virtual, cum „conectez” acest dispozitiv din spațiul utilizatorului și cum îmi înregistrez programul cu acel driver? Este chiar posibil ceea ce încerc să fac?

  • 2 raspunsuri
  • Triere:

    Activitate

0

Nu puteți testa aplicația într-un mediu virtual folosind VMWare? Apoi, puteți „conecta” orice dispozitiv virtual de pe computer la mașina virtuală invitată și testați aplicația în acest fel.

8

Cel mai bun mod este să utilizați drivere și hardware pentru gadget Linux care vă permit să fiți un dispozitiv USB. Driverul gadgetului permite computerului să „pretindă” că este orice dispozitiv. Apoi, sistemul dumneavoastră testat are un cablu USB OTG pentru gadget. Nici măcar nu trebuie să deconectați cablul dacă gadgetul dvs. are hardware-ul potrivit. Gadget Box poate fi desktopul/laptop-ul dumneavoastră Linux (dacă acceptă USB OTG) sau chiar un telefon Android sau un Raspberry Pi. (Aveți grijă că cablurile USB sunt absorbite. Doar pentru că frânghia se potrivește nu înseamnă că este conectată corect la USB OTG.).

Odată ce aveți hardware-ul USB OTG potrivit, gadgetul include tot software-ul:

1) Dacă dispozitivul testat acceptă OTG, asigurați-vă că gadgetul dvs. nu încearcă și că nu este o gazdă USB. (Apoi dispozitivul dvs. testat va deveni un client USB.) I.e. asigurați-vă că lucruri precum usb_storage nu sunt încărcate automat.

2) Nucleul acceptă gadgeturi pentru hub-uri USB, USB-Ethernet, porturi seriale USB și stick-uri USB. Încărcați modulele dorite în gadgetul dvs. și „funcționează”. De exemplu, pentru a crea un stick USB, faceți ceva de genul acesta: „insmod g_file_storage.ko file = / dev / ram0”. Partea îndepărtată va crede că ați conectat un stick USB.

Pentru dispozitivele seriale, gadgetul poate rula în codul spațiului utilizator care preia telefonul pe / dev / USBx și vorbește cu dispozitivul testat. (Aparent, un modem 4G care emulează sau orice altceva.)

Tone de dispozitive sunt cu adevărat „USB-serial” sub capotă, deoarece producătorul a fost prea leneș să înțeleagă USB.

3) Cu puțină recompilare sau ajustări, puteți utiliza aceste dispozitive generice pentru gadget, ID sau returnați șiruri diferite de furnizor, etc. Acest lucru nu va fi același cu „testarea pe hardware real”, dar cel puțin dvs. testarea versiunii standard a acestor dispozitive.

4) Pentru tipurile de dispozitive care nu sunt încă în nucleu (cum ar fi Wi-Fi sau orice altceva), sunteți pe cont propriu. Cu suficientă transpirație și lacrimi de sânge, puteți scrie propriul tip de gadget. (În mod ideal, utilizați cât mai mult spațiu de utilizator posibil și gestionați numai componentele critice din nucleu.)

Uneori apare o situație când aveți nevoie de o unitate flash, dar nu este la îndemână. De exemplu, unele programe de contabilitate și raportare necesită un dispozitiv de stocare extern pentru a rula. Într-o astfel de situație, puteți crea o stocare virtuală a informațiilor.

Folosind un software special, acest lucru se poate face în mai multe moduri. Să luăm în considerare fiecare dintre ele pas cu pas.

Metoda 1: OSFmount

Acest mic program este foarte util atunci când nu există o unitate flash la îndemână. Funcționează pe orice versiune de Windows.

După ce ați descărcat programul, procedați astfel:



Pot fi necesare funcții suplimentare în timpul lucrului cu acest program. Pentru a face acest lucru, accesați fereastra principală a articolului „Drive Actions”... Și apoi va fi posibil să utilizați următoarele opțiuni:

  • Demontează - demontează volumul;
  • Format - formatarea volumului;
  • Setați media doar pentru citire - interzice înregistrarea;
  • Extendsize - extinde dimensiunea dispozitivului virtual;
  • Savetoimagefile - servește la salvarea în formatul dorit.

Metoda 2: Unitate flash virtuală

O alternativă bună la metoda de mai sus. Când creați o unitate flash virtuală, acest program vă permite să protejați informațiile de pe aceasta cu o parolă. Acest lucru are avantajul de a putea funcționa în versiuni mai vechi de Windows. Prin urmare, dacă aveți o versiune de Windows XP sau o versiune anterioară pe computer, acest utilitar vă va ajuta să pregătiți rapid un dispozitiv de stocare virtuală pe computer.

Instrucțiunile pentru utilizarea acestui program arată astfel:

  1. Descărcați și instalați Virtual Flash Drive.
  2. În fereastra principală, faceți clic pe butonul Montaj nou.
  3. Va apărea o fereastră „Creează un volum nou”, specificați calea pentru crearea suportului virtual în acesta și faceți clic "BINE".


După cum puteți vedea, programul este foarte ușor de utilizat.

Metoda 3: ImDisk

Este unul dintre cele mai populare programe pentru dischete virtuale. Folosind un fișier imagine sau memoria computerului, acesta creează discuri virtuale. Când folosiți chei speciale la încărcarea acesteia, o unitate flash va apărea ca un disc virtual amovibil.


Metoda 4: stocare în cloud

Dezvoltarea tehnologiei face posibilă crearea de unități flash virtuale și stocarea informațiilor despre acestea pe Internet. Această metodă este un folder cu fișiere care este disponibil unui anumit utilizator de pe orice computer conectat la Internet.

Astfel de stocări de date includ Yandex.Disk, Google Drive și Cloud Mail.ru. Principiul utilizării acestor servicii este același.

Să ne gândim cum să lucrăm cu Yandex Disk. Această resursă vă permite să stocați gratuit informații de până la 10 GB pe ea.



Lucrul cu un astfel de mediu de stocare virtual vă permite să vă gestionați complet datele: grupați-le în foldere, ștergeți datele inutile și chiar partajați link-uri către ele cu alți utilizatori.

Ce este și de ce este nevoie?
Dacă radioul din mașină are o intrare pentru un schimbător de CD-uri, puteți conecta la el un adaptor similar, acesta va înșela radioul și va decide că la el a fost conectat un schimbător și, în loc de discuri, o unitate flash obișnuită. cu muzica se foloseste. Adaptorul poate fi controlat prin mijloace standard, inclusiv prin direcția de la volan.

Muska a avut deja mai multe recenzii ale unor astfel de adaptoare, cele mai cunoscute fiind chinezii Yatour.

Am decis să merg într-un mod non-standard, am decis să încerc Trioma Flipper 2 rusesc.
Evaluare generală - excelentă, sunt mulțumit de achiziție, o recomand.

Pentru detalii intreb sub taietura

cuvânt înainte

Există o dorință simplă - vreau să ascult muzică în mașină. La radio, departe de a fi întotdeauna ceva potrivit, să porți o grămadă de CD-uri cu tine și să le înregistrezi constant, e obosit.
Am un GU (unitate principală) în Peugeot-ul meu 407 în 2007, numit mai târziu doar un reportofon radio, fără USB, bluetooth și chiar fără intrarea AUX obișnuită.

Dacă mașina are un reportofon radio obișnuit care nu este legat de controlul niciunei funcții ale mașinii, cel mai simplu mod este să cumpărați un reportofon radio nou. Un reportofon radio de marcă cu intrare USB poate fi achiziționat cu sute de euro. Mai vor trebui cheltuiți niște bani pentru ca ea să înțeleagă direcția de la volan.

Puteți să vă uitați și să atașați o intrare AUX (audio), dar aveți nevoie totuși de o sursă de sunet și va trebui să uitați de direcția de pe volan.

Am renunțat mult timp la opțiunile cu transmițătoare FM - am încercat câteva transmițătoare diferite, calitatea sunetului nu a fost foarte bună.

Există o altă modalitate de a conecta un aporter la intrarea schimbătorului de CD-uri la reportofonul radio, care vă va permite să ascultați muzică de pe unități flash, controlând adaptorul cu mijloacele standard ale reportofonului radio, inclusiv de pe volan . Puteți găsi adaptoare similare de la diferiți producători cu parametri diferiți și care diferă în calitate, fiabilitate, comoditate sau preț.
Cel mai faimos adaptor este Yatour. Cel mai tare, poate, este American Grom Audio, care redă, printre altele, FLAC. Ei bine, mai sunt câteva dispozitive la grămadă - Audiolink, Xcarlink, DMC, Dension.

În primul rând, am început să mă uit la yatour. Pe ali costă de la 50 USD. Dar recenziile de pe Internet au diminuat puțin entuziasmul. Adaptorul are o ieșire de linie cu un nivel fix, astfel încât nivelul volumului la multe casetofone radio este vizibil mai mic decât cel al reportofonului radio. Uneori, muncă instabilă, înghețare, criticitate față de prezența fișierelor străine pe unitatea flash. Numărul de directoare acceptate - câte discuri suportă reportofonul, în cazul meu, acesta este 6.

Yatour nu are un site oficial, site-urile Yatour de pe Internet sunt site-urile vânzătorilor. Iar informațiile trebuie colectate bit cu bit în diferite locuri, majoritatea celor care le-au stabilit singuri sunt dezabonați, dar experiența lor nu este întotdeauna potrivită pentru radioul tău.
Dar am fost norocos, am dat peste un vânzător belarus yatour Sergey alias SSD, care mi-a răspuns la toate întrebările, inclusiv detaliile despre lucrul cu magnetofonul meu radio.
În general, funcționează, dar pot apărea probleme cu volumul și munca instabilă. Pentru prima dată am auzit de la Sergey despre Grom Audio și despre Triome, pe care îl vinde și el.

Grom Audio pe Android, acceptă FLAC, dar nici un model pentru mașina mea.

Dar Trioma Flipper 2 este interesat. În primul rând, capacitatea de a regla nivelul de ieșire (volum). În plus, are o organizare a folderelor mult mai convenabilă și pot fi multe altele. Și este mult mai puțin buggy.
Am împrumutat un tabel de comparație bun între Yator și Trioma


Clarificare despre Yatura:
1. Fișierele străine nu interferează cu redarea. Cel puțin pe unele firmware-uri.

Deci, mi-am făcut alegerea. Trioma!!!
Când cumpărați un astfel de adaptor, asigurați-vă că alegeți un model pentru mașina dvs. Mai exact, sub radioul mașinii mașinii tale. Diferite casetofone radio pot avea conectori de schimbător diferiți care nu sunt compatibili unul cu celălalt.

De unde poți cumpăra Trioma?

Pe site-ul producătorului sunt cei care vând produse Trioma. Nu există probleme cu achiziționarea unui adaptor în Rusia sau Belarus. Iar in Europa, unde imi este mai usor sa cumpar si nu trebuie sa trec de vama si sa platesc TVA, preturile sunt de doua ori mai mari, de la 120eur fara costuri de transport.

Am început să caut prieteni care să-mi aducă un adaptor din Rusia sau Belarus. Găsite!!! Am gasit un prieten din Rusia care a comandat si mi-a adus un adaptor la inceputul lunii februarie! Oleg, multumesc!

Și iată adaptorul la mine!



Setul include adaptorul în sine, un cablu pentru conectarea la radio și un cablu USB.
Lungimea cablului pentru conectarea la magnetofonul radio este de numai 40 cm, ceea ce impune imediat restricții privind amplasarea adaptorului în mașină - trebuie plasat direct în spatele casetofonului radio, nici măcar nu puteți ajunge în torpedo. Cu acesta.
Adaptorul are aproximativ dimensiunea unei cutii de țigări. O cutie simplă de plastic cu un cablu proeminent pentru conectarea sub dispozitive sau un cablu AUX. Totuși, după ce conectez adaptorul la radio, nimeni altcineva nu îl va vedea.
În plus, am luat un cablu AUX cu minijack la capăt (+ 500r)


Încă câteva fotografii

Conector pentru conectarea dispozitivelor suplimentare, cablu AUX sau adaptor bluetooth


Mama la adaptor


Tati pe cablu


Conector pentru radio RD4


Nu deschideți, garanție


Instalare

Casetofon radio RD4, deșurubați cele două șuruburi cu un hexagon și scoateți casetofonul radio.

Există doi conectori adecvați pe spate, unul dintre ei nu va funcționa - verificat;)
Fotografia arată conectorul necesar. În ea, cablajul este deja conectat la schimbător, scoatem conectorul instalat și pornim pe cont propriu.


Conectam cablul cu adaptorul, punem contactul și o minune - totul a funcționat imediat !!! Mai mult decât atât, nivelul volumului este aproximativ același ca de pe CD-ul încorporat.

Dar apoi începem să ne gândim - unde să aducem cablul USB. Cel mai simplu mod în cazul meu a fost să trec cablul sub volan în torpedoul din stânga șoferului.


Adaptorul în sine a fost blocat într-o nișă din spatele din stânga radioului. Nu este mult spațiu acolo, după instalarea casetofonului la loc, adaptorul a fost prins acolo prin cabluri, așa că nu a fost nevoie să fixați suplimentar adaptorul.

Toate forumurile scriu că radioul necesită activarea schimbătorului în serviciu. Pentru mine totul s-a dovedit a fi mult mai simplu. După pornire, reportofonul însuși a stabilit că la acesta era conectat un schimbător și a devenit posibil să îl selectați prin comutatorul de intrare (radio / CD / schimbător).
După cum s-a dovedit, activarea este necesară nu pentru radio, ci pentru afișaj, astfel încât să reflecte informații pentru schimbător.
Dar acum șase luni, eu și chinezii, bine făcut, trimitem un afișaj cu toate funcțiile activate. Deci totul a funcționat pentru mine fără activare suplimentară.

Funcționarea adaptorului

Calitatea sunetului. Comparabil cu un CD player. Acustica standard din mașină este destul de mediocră, așa că cu siguranță nu veți auzi diferența cu CD player-ul standard de pe mașina mea.
Viteza de pornire... La mai puțin de câteva secunde după pornirea contactului pe o unitate flash USB cu câteva zeci de cataloage. Pe forumuri, ei scriu că cu câteva sute de directoare, viteza este mai mică. Adaptorul își amintește unde era redat înainte de a fi oprit și începe redarea din același loc. Această proprietate este valoroasă pentru cei cărora le place să asculte cărți audio. Adaptorul își amintește locația de pe ultimele 4 unități flash /
Schimbarea pistelor. Fracțiuni de secundă, nu există nicio diferență în același sau alt director este piesa. Nu există sunete străine în timpul comutării.
Înlocuirea unității flash. Când radioul funcționează, scoatem unitatea flash USB și punem una nouă. Este determinat în câteva secunde și începe imediat să se joace. În timpul înlocuirii, poate suna un tril scurt foarte liniștit.

Adaptorul înțelege 32 de directoare, care pot conține 32 de subdirectoare, fiecare dintre ele putând conține până la 99 de fișiere. Dar curând mi-am dat seama că comutatorul de disc comută doar primele șase discuri. Deși în modul Aleatoriu, adaptorul vede toate directoarele.

A pus o întrebare pe forumul Trioma, asistența a răspuns foarte rapid și a sugerat opțiuni pentru organizarea cataloagelor. Problema s-a dovedit a fi că pe RD4 butoanele, deși îndeplinesc funcția Disc + / Disk-, de fapt, trimit comenzi către adaptorul de selectare directă a discului 1-6. Deci, cu aceste butoane puteți comuta doar 6 directoare rădăcină sau 6 subdirectoare.
Și nu voi putea gestiona 1024 de directoare pe casetofonul meu. Puteți gestiona doar 32 * 6 = 192 de directoare;)

Descrierea spune că butoanele FF / FR îndeplinesc o dublă funcție - schimbarea directoarelor/subdirectoarelor și derularea înapoi.
Dar pe RD4 Track + / Track- sunt combinate cu FF / FR iar pentru adaptor aceste butoane au un triplu scop:
1. Apăsați scurt - Track + / Track-
2. Apăsând timp de 2-3 secunde, eliberând când sunetul din piesa curentă dispare - comutarea directorului
3. Apăsare lungă> 3 sec, se aude un sunet înăbușit accelerat - derulează înapoi
Timpul este aproximativ, trebuie să vă concentrați pe sunet

Chiar înainte de cumpărare, am presupus că voi nota o unitate mega-flash mare cu sute de cataloage. Dar acum văd că este mai convenabil să ai mai multe unități flash cu colecții diferite.
Acum am asta:
1. Etapa rusă 80-90
2. Etapa străină 80-90
3. Instrumental

Total. Pentru bani relativ puțini, am primit un adaptor fără erori, cu o calitate bună a sunetului și comenzi simple și intuitive. Sunt foarte multumit de achizitie, Trioma este grozava !!!

Link-uri suplimentare

Mini Întrebări frecvente

Unele întrebări au rămas în afara acestei recenzii, am decis să le scot într-un minifak separat. Aici voi adăuga întrebări care apar în comentarii.
  • Ce trebuie făcut pentru ca numele (nume de fișiere, etichete sau orice altceva) să fie afișate pe afișaj?
  • Adaptoarele Triom cu siguranță „văd” etichetele, numele fișierelor și numele folderelor. Acolo unde este posibil, acestea afișează șiruri de text pe afișajele standard ale casetofonelor radio: BMW și toate vehiculele cu un autobuz optic MOST. Poate că textul va fi implementat în curând pentru unele dispozitive Toyota / Lexus.
  • Schimbatoarele de CD-uri fac treaba fara probleme.
  • Mi-e teamă că vă înșelați: nu cunoaștem schimbătoare externe, altele decât modelele enumerate mai sus, care să facă față acestei sarcini. Schimbatoarele încorporate în unitatea principală sunt o altă problemă, în care textul este transmis direct la controlerul de afișare - acesta este un mecanism complet diferit.
  • Este posibil să conectați dispozitive suplimentare la adaptorul Trioma Flipper 2?
  • Vă puteți conecta la adaptor sau la un cablu-adaptor AUX-minijack 3.5 tată
Plănuiesc să cumpăr +23 Adaugă la favorite Mi-a placut recenzia +21 +46