Creați o unitate flash virtuală pe computer. V-USB - implementare software a USB pentru AVR Crearea unui emulator pentru un dispozitiv USB sub Windows

25.04.2020 Siguranță

Dezvoltare diverse dispozitive bazat pe microcontrolere este o activitate 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 oferă suport hardware pentru USB?

V-USB: dimensiunea contează

Când vă dezvoltați propriul gadget, apare adesea problema conectării acestuia la un computer. Trebuie să spun că porturile LPT și COM sunt acum exotice plăci de bază PC-uri, ca să nu mai vorbim de laptopuri, pentru care aceste interfețe au dispărut de mult. Prin urmare calculatoare moderne Practic nu există 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 software-ul USB.

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

Produsul poate fi utilizat 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 un fel de licență. Dar băieții de la V-USB s-au ocupat și de asta, cumpărând o pereche de Vendor ID - Product ID și permițând oricui să le folosească.

Hardware-ul pentru conectarea magistralei USB la microcontroler este foarte simplu. Dacă dispozitivul nu consumă prea mult, atunci poate fi alimentat direct din magistrală (se consideră că linia Alimentare USB computerul este capabil să furnizeze curent de până la 500 mA). Deoarece liniile de informații (D+ și D–) folosesc un nivel de semnal de 3,6 V, pe lângă rezistențele de limitare a curentului, sunt necesare diode Zener pentru a se potrivi cu logica de 5 V a cipul. 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 folosind un cip de stabilizare adecvat sau pur și simplu o pereche de diode. Cea mai recentă diagramă poate fi găsită pe site-ul web al proiectului V-USB.

Programator USBtiny

Există mulți programatori diferiți pentru microcontrolere AVR. USBtiny este menționat aici în parte 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). Mulțumită descriere detaliata pe site și cu componente 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 asta aveți nevoie de... un programator. Dacă aveți un computer cu un port LPT, atunci puteți face una dintre opțiunile FBPRG alias „cinci fire”, care este

Pregătirea saniei

Instrumentele software necesare pentru implementarea celui mai simplu firmware pentru un gadget USB sunt extrem de ascetice: compilatorul gcc-avr, biblioteca avr-libc, programatorul avrdude și setul de 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 nu este greu să găsești foarte ghid detaliat prin V-USB și libusb (în engleză). Conform manualului, pentru a adăuga suport USB la proiect veți avea nevoie de folderul usbdrv din arhivă cu ultima versiune V-USB. La rădăcina acestui folder există un șablon de configurare usbconfig-prototype.h. Trebuie să faceți o copie a acestui fișier, numindu-l usbconfig.h. Apoi, remediați usbconfig.h specificând portul (D), ale cărui linii vor fi folosite pentru I/O, numerele de linie D+ (2) și D– (3), precum și frecvența (12 MHz) la pe care îl operează 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

Pentru a utiliza o licență V-USB pentru un dispozitiv, nu trebuie să schimbați ID-urile numerice ale producătorului și ale dispozitivului. Dar puteți alege nume simbolice după bunul plac (vă vor permite să distingeți mai multe dispozitive bazate pe V-USB conectate la același computer):

#definiți USB_CFG_VENDOR_ID 0xc0, 0x16 #definiți USB_CFG_DEVICE_ID 0xdc, 0x05 #definiți USB_CFG_VENDOR_NAME "n","e","t","s","4","g","e","e","k" ,"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 vreun dispozitiv? Nu vă grăbiți să lipiți și să codificați, dar uite, poate cineva a făcut deja ceva similar. Dacă nu puteți folosi diagrame și surse gata făcute, atunci cel puțin nu va trebui să începeți totul 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 distribuite 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, joystick ZX Spectrum, Sony PlayStation 1/2) și altele asemenea. Adaptoare DMX, porturi virtuale COM și UART, i2c, Servo, interfețe fără fir DCF77, IR - tot ceea ce vă va ajuta să conectați mai multe dispozitive noi la computer. În gospodărie pot fi utile și loggerele, platformele pentru sonde și senzori, adaptoare pentru afișaje LCD, programatori și încărcătoare.

Programul pentru cip este elementar!

Când interacționați prin autobuz computer USB- Acesta este dispozitivul principal care trimite periodic mesaje de solicitare de control. Controlerul, în consecință, este un sclav ș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 vom suprascrie 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; // Specificați dimensiunea de returnare a bufferului(replyBuf) ); // Returnează dimensiunea bufferului DATA_IN: // Procesează comanda de primire a datelor dataLength = (uchar)rq->wLength.word; // Obține lungimea dataReceived = 0; // Vor fi multe apeluri către usbFunctionWrite if( dataLength > sizeof(replyBuf)) // Verificarea pentru 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 un 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 metodă - suprascrierea funcției usbFunctionRead.

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

USB_PUBLIC uchar usbFunctionWrite(uchar *data, uchar len) (uchar i; // Salvați porțiunea de date primită într-un 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(); // Activați întreruperi // Așteptați mesajele de control într-o buclă infinită while(1) usbPoll(); return 0 ;)

Să folosim 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 poate fi realizat, de exemplu, pe baza cipului FT232RL.

Libusb: nici îmbrăcat, nici gol

Vă puteți întreba: va trebui 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 nucleu cu drepturi depline. Libusb este o bibliotecă open source care vă permite să programați rapid, în primul rând, căutarea unui dispozitiv în autobuz și, în al doilea rând, schimbul de date cu acesta.

Sub Linux, biblioteca și fișierele de antet necesare pot fi obținute din codurile sursă. Este 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 discuție. Cred că sunteți familiarizat cu programarea PC-ului și vă puteți da seama singur. Așa că 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_buss(); // Găsiți autobuze usb_find_devices(); // Găsiți dispozitive // ​​Enumerează toate magistralele pentru(bus=usb_get_bussses(); bus; bus=bus->next) ( // Enumerează toate dispozitivele de pe magistrală pentru(dev=bus->devices; dev; dev=dev- > următorul) ( // Dacă ID-urile vânzătorului și ale produsului nu se potrivesc... if(dev->descriptor.idVendor != vendor || dev->descriptor.idProduct != product) continua; // ...omite acest lucru iterație // Încercați să obțineți un handle de dispozitiv if(!(handle = usb_open(dev))) ( fprintf(stderr, "%s\n", usb_strerror()); continua; ) return handle; // Return handle ) ) // 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 main(int argc, char **argv) ( // Descriptorul dispozitivului usb_dev_handle *handle = NULL; int nBytes = 0; char buffer; // Se caută handle-ul dispozitivului = 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 if(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(„Ați %d bytes: %s\n”, nBytes, buffer) ; // Argument in - trimite șirul (următorul argument) ) else if(strcmp(argv, "in") == 0 && argc > 2) ( nBytes = usb_control_msg(handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_OUT, DATA_IN, 0, DATA_IN) , argv, strlen(argv)+1, 5000); ) if(nBytes< 0) fprintf(stderr, "%s\n", usb_strerror()); usb_close(handle); // Закрыть дескриптор return 0; }

Funcția usb_control_msg, care este declarată în fișierul include usb.h, conduce aici. 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 se odihnește

Simulatorul de circuit electric preferat al tuturor, Proteus ISIS, este inutil atunci când se dezvoltă dispozitive USB bazate pe software. Emulatorul său USB acceptă doar cipuri cu suport hardware Universal Serial Bus (cum ar fi AT90USB646 sau AT90USB1286).

Asamblam, flash, testăm

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

CC = avr-gcc OBJCOPY = avr-objcopy CFLAGS = -Wall -Os -Iusbdrv -mmcu=attiny2313 OBJFLAGS = -j .text -j .data -O ihex OBIECTE = usbdrv/usbdrv.o usbdbudrv/usbdbudrv/usbdrv/od .o main.o CMDLINE = usbtest # Scop: colectați totul: main.hex $(CMDLINE) # Construiți un utilitar pentru computer $(CMDLINE): usbtest.c gcc -I ./libusb/include -L ./libusb /lib /gcc -O -Wall usbtest.c -o usbtest -lusb # Ștergeți proiectul din codul binar clean: $(RM) *.o *.hex *.elf usbdrv/*.o # Obținerea fișierului firmware din fișier elf %. hex: %.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 $@

Pentru a încărca firmware-ul pe microcontroler utilizând programatorul usbtiny, tastați comanda:

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

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


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

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

O lingură de gudron

Software-ul USB nu este un panaceu. Implementările software au de obicei o serie de simplificări, cum ar fi lipsa verificării sumei de control și a simetriei canalului, care afectează negativ imunitatea la zgomot. De asemenea, bibliotecile de software folosesc de obicei moduri de operare USB de viteză redusă. Și codul de bibliotecă USB consumă memoria deja mică a cipului.

Să aruncăm o privire...

La nivel logic, protocolul USB este, în esență, transfer de pachete de date pe mai multe niveluri. 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) utilizând 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 vizualiza numărul magistralei dispozitivului, de exemplu, în jurnale.

Concluzie

Sper că după ce ai învățat cum să transferi date între computer și microcontrolerul AVR, pasiunea ta pentru electronică 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.

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

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

Imagine
Imaginea poate fi salvată și montată dacă este necesar. Unde va fi util acest lucru? 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 un cache, un fișier de pagină și alte lucruri.
Există, de asemenea, o GUI alternativă -

Conectare automată:
ecoul oprit
rem pus în autoload pentru montare automată
c:\WINDOWS\system32\imdisk.exe -a -f „%PROGRAMFILES%\flash.img” -m f: -o rem

Câteva opțiuni de linie 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 discul Y, numai în citire

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

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

imdisk -a -s 150M -m #: -p "/fs:ntfs /y /q /v:imdisk- creați un disc cu o dimensiune de 150 MB, prima literă de unitate 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 memorie libera.

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:- utilizați cu un server, l-am găsit pe internet, dar nu l-am testat de fapt.

A - conexiune virtuală. disc.

D - dezactivați virtualul. disc.

E - editare virtuală. disc.

_________________________

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

S - dimensiunea discului virtual. Dimensiunea este numărul de octeți, dacă nu este sufixat cu 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 (kilobyți), M (megabyte), G (gigabyte) sau T (terabyte). O mie de octeți și un kilobyte 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 determină dimensiunea discului creat ca cantitate de memorie liberă minus dimensiunea specificată.

O - setați opțiuni, utilizate împreună cu parametrii indicați mai jos

ro - numai citire

rw - citire/scriere

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

fix - instalați ca un disc permanent, fix (spre deosebire de rem)

cd - crearea unui 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 2347K

hd - crearea unei partiții hard.

ip - parametru pentru conectarea la serverul proxy.

comm - conexiune la serverul de memorie prin portul COM.

________________

M - Specifică litera unității. De exemplu -m B: sau -m y: sau -m #: - prima literă de unitate liberă.

F - numele fișierului virtual. disc, de exemplu -f C:\Boot.img sau -f \\server\share\image.bin sau -F\Dispozitiv\Harddisk0\Partition1\image.bin- acesta din urmă, când litera unității nu este atribuită și determinată de numărul de hard disk, numărul de partiție (unitatea logică) și apoi calea reală.

11

Am o aplicație Linux pentru care aș dori să automatizez unele teste și starea acesteia trebuie 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, WLAN, WAN etc., așa că trebuie să găsesc o modalitate de a testa acest program fără a mă conecta efectiv. dispozitive fizice, pornirea/oprirea acestora etc.

incep cu creație ușoară 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ă iau oricare dintre firele similare de pe aceste forumuri și să le aplic în proiectul meu. Simt că trebuie să creez un fel de driver USB virtual și apoi să-l asociez cu un program la nivel de utilizator, nu cu usbfs. Cu toate acestea, chiar dacă creez acest driver virtual, cum „montez” acest dispozitiv din spațiul utilizatorului și cum am programul meu înregistrat cu acest driver specific? 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 pe computerul dvs. către cel oaspete mașină virtualăși testați aplicația în acest fel.

8

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

Odată ce ați activat hardware-ul USB OTG, gadgetul include toate programele:

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 USB-seriale și dispozitive de stocare USB. Doar descărcați modulele necesareîn gadgetul dvs. și „funcționează”. De exemplu, pentru a crea o unitate USB, faceți ceva de genul acesta: „insmod g_file_storage.ko file=/dev/ram0”. Partea îndepărtată va crede că ați conectat o unitate USB.

Pentru dispozitivele seriale, gadgetul poate rula în codul de spațiu al utilizatorului care „ ridică receptorul” la „/Dev/USBx” și vorbește cu dispozitivul testat. (Se pare că emulează un modem 4G sau oricare altul.)

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

3) Cu puțină recompilare sau configurare, puteți utiliza aceste dispozitive generice pentru gadget, ID sau returnați șiruri diferite de furnizor, etc. Nu va fi același lucru cu „testarea reală” hardware„, dar măcar testezi versiune standard aceste 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 de sânge și lacrimi, puteți scrie propriul tip de gadget. (În mod ideal, utilizați cât mai mult posibil în spațiul utilizatorului și gestionați numai componentele critice din nucleu..)

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

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

Metoda 1: OSFmount

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

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



Când lucrați cu acest program, este posibil să aveți nevoie funcții suplimentare. Pentru a face acest lucru, trebuie să introduceți elementul în fereastra principală „Drive Actions”. 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 – folosit pentru a salva în formatul necesar.

Metoda 2: Unitate flash virtuală

O alternativă bună la metoda descrisă mai sus. Când creați o unitate flash virtuală, acest program vă permite să protejați informațiile de pe aceasta folosind o parolă. Avantajul acestui lucru este că funcționează î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 „Montă nouă”.
  3. Va apărea o fereastră „Creează un volum nou”, specificați calea pentru a crea medii virtuale în acesta și faceți clic "BINE".


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

Metoda 3: ImDisk

Acesta este unul dintre cele mai multe programe populare pentru a crea o dischetă virtuală. Folosind un fișier imagine sau memoria computerului, acesta creează discuri virtuale. Când folosiți chei speciale la încărcarea acesteia, unitatea 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. Aceasta metoda este un folder cu fișiere care este accesibil unui anumit utilizator de pe orice computer conectat la Internet.

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

Să vedem cum să lucrați cu Yandex Disk. Această resursă vă permite să stocați gratuit informații de până la 10 GB.



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

Ce este și de ce este nevoie?
Dacă radioul din mașina dvs. are o intrare pentru un schimbător de CD-uri, puteți conecta la el un adaptor similar, va păcăli radioul și va crede că la el este conectat un schimbător și, în loc de discuri, o unitate flash obișnuită cu se foloseste muzica. Adaptorul poate fi controlat mijloace regulate, inclusiv controlul volanului.

Au existat deja mai multe recenzii ale adaptoarelor similare pe Muska, cel mai faimos fiind chinezul Yatour.

Am decis să merg pe un traseu neconvențional, am decis să încerc Trioma Flipper 2 rusesc.
Evaluare generală - excelent, mulțumit de achiziție, recomand.

Pentru detalii vă rugăm să vedeți mai jos

Prefaţă

Am o dorință simplă - vreau să ascult muzică în mașină. Nu există întotdeauna ceva potrivit la radio; m-am săturat să port o grămadă de CD-uri cu mine și să le înregistrez constant.
În Peugeot-ul meu 407 2007 există un GU (Head Unit), numit mai târziu simplu magnetofon radio, fără USB, bluetooth și chiar fără intrarea AUX obișnuită.

Dacă mașina dvs. are un radio obișnuit care nu este conectat la controlul niciunei funcții ale mașinii, cel mai simplu mod este să cumpărați un radio nou. Un radio de marcă cu intrare USB poate fi achiziționat cu aproximativ o sută de euro. O altă sumă va trebui cheltuită pentru ca acesta să înțeleagă comenzile de pe volan.

Îl poți pirata și atașa o intrare AUX (audio), dar vei avea totuși nevoie de o sursă de sunet și va trebui să uiți de comenzile de pe volan.

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

Există o altă modalitate: conectați un adaptor la radio la intrarea schimbătorului de CD-uri, care vă va permite să ascultați muzică de pe unități flash, controlând adaptorul folosind mijloacele standard ale radioului, inclusiv de pe volan. Puteți găsi adaptoare similare de la diferiți producători Cu parametri diferițiși 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 - 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 liniară cu un nivel fix, astfel încât la multe radiouri nivelul volumului este vizibil mai scăzut decât la radio. Uneori funcționare instabilă, înghețare, criticitate față de prezența fișierelor străine pe unitatea flash. Număr de directoare acceptate - câte discuri suportă radioul, în cazul meu este de 6.

Yatour nu are un site web oficial; site-urile web ale Yatour de pe Internet sunt site-uri web ale vânzătorilor. Iar informațiile trebuie colectate bit cu bit în diferite locuri, mai ales cei care au instalat-o ei înșiși scriu înapoi, 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 Sergei alias SSD, care mi-a răspuns la toate întrebările, inclusiv caracteristicile de lucru cu radioul meu.
În general, funcționează, dar pot apărea probleme cu volumul și muncă instabilă. De la Serghei am auzit prima dată despre Grom Audio și Triome, pe care le vinde și el.

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

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


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

Așa că am făcut alegerea mea. Trioma!!!
Atunci 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 radiouri pot avea conectori diferiți pentru schimbător care nu sunt compatibile între ele.

De unde pot cumpăra Trioma?

Există locuri pe site-ul producătorului care vând produse Trioma. Nu există probleme cu achiziționarea unui adaptor în Rusia sau Belarus. Iar în Europa, unde îmi este mai ușor să cumpăr și nu trebuie să trec prin vămuire și să plătesc TVA, prețurile sunt de două ori mai mari, de la 120eur excluzând costurile de livrare.

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 deja un adaptor la inceputul lunii februarie! Oleg, multumesc!

Și iată adaptorul de la mine acasă!



Kitul include adaptorul în sine, un cablu pentru conectarea la radio și cablu USB.
Lungimea cablului pentru conectarea la radio este de numai 40 cm, ceea ce impune imediat restricții privind amplasarea adaptorului în mașină - trebuie să fie plasat direct în spatele radioului, nici măcar nu poți ajunge în torpedo cu el .
Adaptorul are aproximativ dimensiunea unei cutii de țigări. O cutie simplă de plastic cu un cablu proeminent pentru conectarea dispozitivelor 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


Tata 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 în spate, unul dintre ei nu va funcționa - verificat;)
Fotografia arată conectorul necesar. Are deja cabluri pentru conectarea schimbătorului, așa că scoatem conectorul instalat și îl pornim pe al nostru.


Conectăm cablul cu adaptorul, punem contactul și miracol - totul a funcționat imediat!!! Mai mult, nivelul volumului este aproximativ același ca de pe CD-ul încorporat.

Dar apoi începem să ne gândim unde să conectăm cablul USB. Cel mai simplu mod în cazul meu s-a dovedit a fi direcționarea cablului sub volan în torpedoul mic din stânga șoferului.


Adaptorul în sine a fost pus într-o nișă în spatele stânga a radioului. Nu este mult spațiu acolo; după instalarea radioului la loc, adaptorul a fost prins acolo cu cabluri, așa că nu a fost nevoie să securizeze adaptorul suplimentar.

Pe toate forumurile scriu că radioul necesită activarea schimbătorului în serviciu. Pentru mine totul s-a dovedit a fi mult mai simplu. După pornire, radioul însuși a stabilit că la el era conectat un schimbător și a devenit posibil să îl selectați prin comutatorul de intrare (radio/CD/schimbător).
După cum sa dovedit, activarea este necesară nu pentru radio, ci pentru afișaj, astfel încât să poată reflecta informații pentru schimbător.
Dar acum șase luni eu și chinezii, bine făcut, am trimis un display 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 din mașina mea.
Viteza de comutare. La mai puțin de câteva secunde după pornirea contactului pe o unitate flash cu câteva zeci de cataloage. Ei scriu pe forumuri 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.Într-o fracțiune de secundă, nu există nicio diferență dacă piesa se află în același director sau în alt director. Nu există sunete străine în timpul comutării.
Înlocuirea unei unități flash. Cu radioul pornit, scoateți unitatea flash și introduceți una nouă. Este detectat în câteva secunde și începe imediat redarea. În timpul înlocuirii, poate suna un tril scurt foarte liniștit.

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

Am pus o întrebare pe forumul Trioma, asistența a răspuns foarte repede și a oferit opțiuni pentru organizarea directoarelor. Problema s-a dovedit că pe RD4 butoanele, deși realizează funcția Disc+/Disk-, în realitate trimit comenzi pentru a selecta direct discul 1-6 la adaptor. Deci aceste butoane pot comuta doar 6 directoare rădăcină sau 6 subdirectoare.
Și nu este posibil să gestionez 1024 directoare pe radioul meu. Puteți gestiona doar 32*6=192 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ăsați timp de 2-3 secunde, eliberați când sunetul va dispărea din piesa curentă - schimbă directorul
3. Apăsați lung >3 secunde, se aude un sunet înăbușit accelerat - derulați înapoi
Timpul este aproximativ, trebuie să vă concentrați pe sunet

Chiar înainte de cumpărare, am presupus că voi stoca o unitate megaflash mare cu sute de cataloage. Dar acum văd că este mai convenabil să ai mai multe unități flash cu selecții diferite.
Am asta acum:
1. Muzică pop rusă anii 80-90
2. Muzică pop străină anilor 80-90
3. Instrumentale

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

Link-uri suplimentare

Mini Întrebări frecvente

Rămân câteva întrebări această recenzie, am decis să le mut într-un minifak separat. Voi adăuga aici și întrebări care apar în comentarii.
  • Ce trebuie făcut pentru a vă asigura că numele (nume de fișiere, etichete sau orice altceva) sunt afișate pe afișaj?
  • Adaptoarele Triom cu siguranță „văd” etichetele, numele fișierelor și numele folderelor. Acolo unde este posibil, se retrag șiruri de text pe afișajele standard ale radiourilor: BMW și toate mașinile cu un autobuz optic MOST. Poate că în curând textul va fi implementat pentru unele dispozitive Toyota/Lexus.
  • Schimbatoarele de CD-uri fac treaba fara probleme.
  • Mă tem că vă înșelați: nu cunoaștem niciun schimbător extern, în afară de modelele enumerate mai sus, care să facă față acestei sarcini. Schimbatoarele încorporate în unitatea principală sunt o chestiune diferită, în care textul este transmis direct către controlerul de afișare - acesta este un mecanism complet diferit.
  • Este posibil să conectați dispozitive suplimentare la adaptorul Trioma Flipper 2?
  • Puteți conecta fie un cablu adaptor AUX-minijack 3.5 tată la adaptor
Plănuiesc să cumpăr +23 Adauga la favorite Mi-a placut recenzia +21 +46