Criamos uma unidade flash virtual no computador. Criamos uma unidade flash virtual em um computador Criando um emulador para um dispositivo usb no Windows

Projeto Olof Lagerkvist, um excelente programa para emular discos, mas como todos podem emular discos, nem todos podem se gabar de criar um pendrive ou disquete. Os discos são criados na memória virtual, fisicamente podem ser carregados em imagens de arquivo. Após a instalação, o programa está disponível no painel de controle do PC.

Clique em "OK" e a imagem virtual está pronta.

Imagem
A imagem pode ser salva e montada, se necessário. Onde é útil? Por exemplo, para pessoas preguiçosas, você pode fazer upload de certificados para CryptoPro para uma unidade flash virtual.)) Ou usá-lo como um disco em memória de acesso aleatório para armazenar cache, arquivo de troca e outras coisas.
Há também uma GUI alternativa -

Conexão automática:
ecoar
rem colocado em autoload para montagem automática
c:\WINDOWS\system32\imdisk.exe -a -f "%PROGRAMFILES%\flash.img" -m f: -o rem

Algumas opções de linha de comando:

imdisk.exe -e -s 300M -m B: - aumenta o disco B em 300 MB

imdisk -a -t arquivo -o ro -m y: -f C:\Boot.img- monte a imagem Boot.img com a unidade Y, somente leitura

imdisk -a -t arquivo -m y: -f C:\Boot.img- monte a imagem Boot.img na unidade Y, somente leitura/gravação

imdisk -d -m y: - desmontar unidade Y

imdisk -a -s 150M -m #: -p "/fs:ntfs /y /q /v:imdisk- crie um disco de 150 MB, a primeira letra da unidade é gratuita, formato NTFS, etiqueta da unidade imdisk

imdisk -a -s 10% -m #: -p "/fs:ntfs /y /q /v:imdisk- o mesmo que o anterior, apenas o tamanho é indicado como 10 por cento do memoria livre.

imdisk -a -s -500M -m #: -p "/fs:ntfs /y /q /v:imdisk- igual ao anterior, apenas o tamanho é indicado com um sinal de menos, ou seja, igual à quantidade de memória livre menos o tamanho especificado. Com 1200 MB de memória livre, o tamanho do disco se tornará 1200-500=700 MB

imdisk.exe -a -t proxy -o ip -f 127.0.0.1:80 -m Z:- uso com o servidor, encontrado na internet, não foi verificado.

A - Conexão com fio disco.

D - desativar Wirth. disco.

E - Edição Wirth. disco.

_________________________

B - especifique o deslocamento, ou seja, o início dos dados no disco, indicado para discos criados em programas diferentes, em cujas imagens você deseja pular os atributos iniciais no arquivo.

S é o tamanho do disco virtual. Tamanho é o número de bytes, a menos que tenha o sufixo a (auto), b (número de blocos de 512 bytes), k (mil bytes), m (milhões de bytes), g (bilhões de bytes), t (trilhões de bytes), K (kilobytes), M (megabyte), G (gigabyte) ou T (terabyte). Mil bytes e kilobytes diferem porque existem 1024 bytes em um kilobyte, não 1000. Por exemplo. -s 150M ou -s 10% - 10% de memória livre. O parâmetro -500M - com um sinal de menos define o tamanho disco criado como a quantidade de memória livre menos o tamanho especificado.

O - definir opções, usado em conjunto com as opções abaixo

ro - somente leitura

rw - ler/escrever

rem - instale como um disco removível (unidade flash). Isso define as propriedades do disco, cache e muito mais.

fix - definido como uma unidade fixa permanente (em oposição a rem)

cd - cria um CD-ROM/DVD-ROM virtual.

fd - cria um disquete. Padrão para 160K, 180K, 320K, 360K, 640K, 720K, 820K, 1200K, 1440K, 1680K, 1722K, 2880K, 123264K ou 234752K.

hd - crie uma partição rígida.

ip - parâmetro para conectar a um servidor proxy.

comm - conexão com o servidor de memória via porta COM.

________________

M - Especifica a letra da unidade. Por exemplo -m B: ou -m y: ou -m #: é a primeira letra de unidade livre.

F - nome do arquivo virt. unidade, como -f C:\Boot.img ou -f \\server\share\image.bin ou -F \Dispositivo\Harddisk0\Partition1\image.bin- o último, quando a letra da unidade não é atribuída e a definição é por número de disco rígido, número de partição ( unidade lógica) e, em seguida, o caminho real.

Desenvolvimento vários dispositivos baseado em microcontroladores - uma ocupação digna de um verdadeiro geek de computador. Sem dúvida recurso útil qualquer gadget terá uma interface USB para conectar ao computador. Mas e se o chip AVR não tiver suporte a hardware USB?

V-USB: o tamanho importa

Ao desenvolver seu próprio gadget, muitas vezes surge o problema de conectá-lo a um computador. Devo dizer que as portas LPT e COM agora são exóticas no placas-mãe PCs, para não mencionar laptops, onde essas interfaces desapareceram há muito tempo. Portanto, computadores modernos praticamente não há alternativas para a interface USB.

Se os recursos do chip forem usados ​​cem por cento, é melhor procurar imediatamente dispositivos com suporte de hardware para universal barramento serial(esses microcontroladores estão presentes na linha de qualquer fabricante). Em outros casos, você pode usar um soft USB.

Para os microcontroladores Atmel, existe um maravilhoso projeto V-USB que oferece uma implementação de software de um dispositivo USB 1.1 de baixa velocidade. O código V-USB funcionará em qualquer dispositivo AVR que tenha pelo menos 2 KB de Flash e 128 bytes de RAM, com clock de 12; 12,8; quinze; 16; 16,8 ou 20MHz.

O uso do produto é possível tanto sob a licença GPL de código aberto quanto em uma base comercial. Para desenvolver seus próprios dispositivos USB, normalmente você também precisa comprar algo como uma licença. Mas os caras do V-USB cuidaram disso também, adquirindo um par de Vendor ID - Product ID e permitindo que qualquer pessoa os usasse.

A ligação de hardware para conectar o barramento USB ao microcontrolador é muito simples. Se o dispositivo não consumir muito, você poderá alimentá-lo diretamente do barramento (acredita-se que a linha de energia computador USB e é capaz de fornecer corrente de até 500 mA). Como as linhas de dados (D+ e D–) usam um nível de sinal de 3,6 V, além dos resistores limitadores de corrente, são necessários diodos zener para corresponder à lógica de 5 V no chip. Para indicar o tipo de conexão, é necessário "puxar" a tensão de alimentação através de uma resistência de 1,5 kΩ à linha D–.

Uma opção alternativa para emparelhamento via USB é reduzir a tensão de alimentação do controlador usando um chip de estabilização apropriado ou apenas um par de diodos. O esquema mais recente pode ser encontrado no site do projeto V-USB.

Programador USBtiny

Existem muitos programadores diferentes para microcontroladores AVR. O USBtiny é mencionado aqui em parte porque contém uma implementação de software USB semelhante ao V-USB. O esquema deste programador é simples: a versão 2 contém dois microcircuitos e a primeira versão contém apenas um (o próprio chip ATtiny2313). Graças a uma descrição detalhada no site e componentes simples, o dispositivo é fácil de fazer, mesmo para iniciantes. O USBtiny é compatível com o popular programa avrdude usado para programar microcontroladores AVR.

O único problema é fazer o upload do firmware para o chip do programador - para isso você precisa ... de um programador. Se houver um computador com uma porta LPT, você poderá fazer uma das opções do FBPRG, também conhecida como "cinco fios", que é de ferro

Preparando o trenó

Ferramentas de software necessárias para implementação o firmware mais simples Gadget USB, extremamente ascético: compilador gcc-avr, biblioteca avr-libc, programador avrdude e conjunto binutils para AVR. No Debian/Ubuntu, tudo que você precisa é instalado com um comando:

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

Nas vastas extensões da Internet é fácil encontrar guia detalhado via V-USB e libusb (em inglês). De acordo com o manual, para adicionar Suporte a USB o projeto precisará da pasta usbdrv do arquivo com última versão V USB. Na raiz desta pasta está o modelo de configuração usbconfig-prototype.h. Você precisa fazer uma cópia deste arquivo, nomeando-o usbconfig.h. Em seguida - corrija usbconfig.h, especificando a porta (D) cujas linhas serão usadas para I/O, diretamente os números de linha D + (2) e D - (3), bem como a frequência (12 MHz) na qual o chip opera (ATtiny2313):

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

Para usar a licença V-USB para um dispositivo, os IDs numéricos do fabricante e do dispositivo não precisam ser alterados. Mas os nomes simbólicos podem ser escolhidos ao seu gosto (eles permitirão distinguir entre vários dispositivos V-USB conectados ao mesmo computador):

#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","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

Vários gadgets

Você tem uma ideia para um dispositivo? Não se apresse em soldar e codificar, mas veja, talvez alguém já tenha feito isso. Se você não puder usar esquemas e códigos-fonte prontos, pelo menos não precisará começar tudo do zero.

Por exemplo, o projeto V-USB, graças à sua política de licenciamento, acumulou uma base decente de soluções prontas (incluindo distribuídas gratuitamente). Aqui você encontra diversas implementações de teclados, adaptadores USB para joysticks, gamepads (inclusive os raros, como SNES/NES, Nintendo 64, joystick ZX Spectrum, Sony PlayStation 1/2) e afins. Adaptadores DMX, portas virtuais COM e UART, i2c, Servo, DCF77, interfaces sem fio IR - tudo o que o ajudará a conectar mais novos dispositivos ao seu PC. Registradores, plataformas de transdutores e sensores, adaptadores de LCD, programadores e carregadores também podem ser úteis na fazenda.

O programa para o chip é elementar!

Ao se comunicar via barramento USB, o computador é o dispositivo mestre que envia periodicamente mensagens de solicitação de controle. O controlador, respectivamente, é um escravo e deve responder às requisições. O formato da mensagem de controle é definido pela estrutura usbRequest_t do arquivo usbdrv.h:

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

Vamos criar o arquivo main.c no mesmo nível da pasta usbdrv e descrever os arquivos de cabeçalho necessários, definições e variáveis ​​nele:

#incluir #incluir #incluir #include "usbdrv.h" #define F_CPU 12000000L // Frequência MCU #include #define DATA_OUT 1 // Envia o comando #define DATA_IN 2 // Recebe o comando // Buffer estático uchar replyBuf = "Hello World!"; estático uchar dataLength = 0, dataReceived = 0;

Em main.c, vamos redefinir a função usbFunctionSetup, que é chamada automaticamente quando uma nova solicitação é recebida:

USB_PUBLIC uchar usbFunctionSetup(uchar data) ( usbRequest_t *rq = (void *)data; switch(rq->bRequest) ( case DATA_OUT: // Processa o comando de envio de dados usbMsgPtr = replyBuf; // Especifica o buffer return sizeof(replyBuf); / / Retorna o tamanho do buffer case DATA_IN: // Processando o comando para receber dados dataLength = (uchar)rq->wLength.word; // Obtém o comprimento de dataReceived = 0; // Haverá muitas chamadas usbFunctionWrite if(dataLength > sizeof(replyBuf)) // Verificação de estouro dataLength = sizeof(replyBuf); return USB_NO_MSG; // Retorna 255 ) return 0; )

Como você pode ver na listagem, a maneira mais fácil de enviar dados para o computador é definir usbFunctionSetup para apontar usbMsgPtr para o buffer de RAM (replyBuf) onde os dados residem e, em seguida, retornar seu comprimento. O tamanho do buffer não deve exceder 254 bytes. Para o ATtiny2313 com seus 128 bytes de RAM, isso é suficiente. Para dispositivos mais funcionais, existe uma segunda maneira - redefinindo a função usbFunctionRead.

Para obter os dados, primeiro, na função usbFunctionSetup, precisamos extrair o comprimento da mensagem do campo wLength da solicitação e armazená-lo na variável global dataLength. Em segundo lugar, em main.c, você precisa redefinir a função usbFunctionWrite, que é projetada para processar dados recebidos e é chamada automaticamente (e obviamente várias vezes) se usbFunctionSetup retornar USB_NO_MSG (255):

USB_PUBLIC uchar usbFunctionWrite(uchar *data, uchar len) ( uchar i; // Salva a parte dos dados recebidos no buffer for(i = 0; dataReceived< dataLength && i < len; i++, dataReceived++) replyBuf = data[i]; return (dataReceived == dataLength); }

Na verdade, a função usbFunctionWrite preenche o buffer replyBuf com os dados recebidos.

A propósito, para que este método funcione, você precisa fazer alterações em usbconfig.h:

#define USB_CFG_IMPLEMENT_FN_WRITE 1

Bem, a última função do firmware é principal:

Int main() ( usbInit(); // Inicializa o USB usbDeviceConnect(); // Conecta o dispositivo sei(); // Habilita interrupções // Em um loop infinito, espera pelas mensagens de controle while(1) usbPoll(); return 0 ; )

Ativar USART/UART

Uma boa alternativa ao software/hardware USB é o uso da popular interface USART/UART no chip com um conversor de terceiros deste protocolo para USB, que pode ser realizado, por exemplo, com base no chip FT232RL.

Libusb: nem vestido nem nu

Você pergunta: você tem que escrever um driver para o sistema operacional do computador para conectar um dispositivo USB? Se você usar o libusb, poderá fazer sem implementar um módulo de kernel completo. Libusb é uma biblioteca de código aberto que permite programar rapidamente, em primeiro lugar, procurar um dispositivo no barramento e, em segundo lugar, trocar dados com ele.

No Linux, a biblioteca e os arquivos de cabeçalho necessários podem ser obtidos a partir dos códigos-fonte. E é melhor usar o repositório padrão da sua distribuição. Para Debian/Ubuntu, por exemplo:

$ sudo apt-get install libusb-dev

Há também uma porta Windows de libusb, libusb-win32. Ao contrário do nome do projeto, os sistemas operacionais de 64 bits da Microsoft também são suportados (a partir da versão 1.2.0.0).

Mas libusb é um tópico separado de conversa. Eu acho que você está familiarizado com programação de PC e você pode descobrir isso sozinho. Por isso, serei breve. Criamos o arquivo usbtest.c e começamos a preenchê-lo com conteúdo. Primeiro, os arquivos de cabeçalho e definições necessários:

#incluir [...] // Para um computador, o significado dos comandos é invertido, // mas as designações permanecem as mesmas #define DATA_OUT 1 #define DATA_IN 2

função usbOpenDevice para inicializar o dispositivo:

Usb_init(); // Inicializa USB usb_find_busses(); // Localiza barramentos usb_find_devices(); // Localizar dispositivos // Percorrer todos os barramentos for(bus=usb_get_busses(); bus; bus=bus->next) ( // Percorrer todos os dispositivos no barramento for(dev=bus->devices; dev; dev= dev-> next) ( // Se os IDs do fornecedor e do produto não corresponderem... if(dev->descriptor.idVendor != vendor || dev->descriptor.idProduct != product) continue; // ... pule esta iteração // Tenta obter o handle do dispositivo if(!(handle = usb_open(dev))) ( fprintf(stderr, "%s\n", usb_strerror()); continue; ) return handle; // Retorna handle ) ) // Dispositivo não encontrado return NULL;

Como você pode ver, os parâmetros de usbOpenDevice são os identificadores numéricos do fabricante e do dispositivo. Se o dispositivo estiver presente no barramento, seu identificador é retornado. Se houver vários dispositivos no V-USB, você terá que adicionar uma verificação para os nomes simbólicos do fornecedor e do produto.

E a principal função do utilitário de console usbtest:

Int main(int argc, char **argv) ( // Manipulador de dispositivo usb_dev_handle *handle = NULL; int nBytes = 0; char buffer; // Procurando por um manipulador de dispositivo = usbOpenDevice(0x16C0, 0x05DC); if(handle == NULL) ( fprintf(stderr, "Não foi possível encontrar o dispositivo USB!\n"); exit(1); ) // Saída do argumento - obtém dados do chip if(strcmp(argv, "out") == 0) ( nBytes = usb_control_msg (handle, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN, DATA_OUT, 0, 0, (char *)buffer, sizeof(buffer), 5000); printf("Tem %d bytes: %s\n", nBytes, buffer) ; // Argumento in - envia string (próximo argumento) ) 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, 0 , argv, strlen(argv)+1, 5000); ) if(nBytes< 0) fprintf(stderr, "%s\n", usb_strerror()); usb_close(handle); // Закрыть дескриптор return 0; }

A função usb_control_msg, que é declarada no arquivo incluído usb.h, governa a bola aqui. Ele tem vários parâmetros e realmente cria essas mensagens de controle, cujo processamento é implementado no firmware do microcontrolador.

Proteu está descansando

O popular simulador de circuito elétrico Proteus ISIS é inútil ao desenvolver dispositivos de software USB. Seu emulador USB suporta apenas chips com suporte de hardware para Universal Serial Bus (como AT90USB646 ou AT90USB1286).

Nós coletamos, piscamos, testamos

Abaixo está um Makefile pequeno, mas muito útil, com a ajuda do comando make de main.c e usbtest.c é fácil obter o firmware para o chip - main.hex e o utilitário usbtest binário:

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 # Objetivo: compilar tudo: main.hex $(CMDLINE) # Utilitário de compilação para o computador $(CMDLINE): usbtest.c gcc -I ./libusb/include -L ./libusb/lib /gcc -O -Wall usbtest.c -o usbtest -lusb # Limpa o projeto do código binário clean: $(RM) *.o *.hex *.elf usbdrv/*.o # Obtém o arquivo de firmware do arquivo elf %. hex : %.elf $(OBJCOPY) $(OBJFLAGS) $< [e-mail protegido]# Construa o arquivo elf main.elf: $(OBJECTS) $(CC) $(CFLAGS) $(OBJECTS) -o [e-mail protegido]# Construir arquivos de biblioteca V-USB $(OBJECTS): usbdrv/usbconfig.h # C para código de objeto %.o: %.c $(CC) $(CFLAGS) -c $< -o [e-mail protegido]# asm para o código do objeto %.o: %.S $(CC) $(CFLAGS) -x assembler-with-cpp -c $< -o [e-mail protegido]

Para fazer o upload do firmware para o microcontrolador usando o programador usbtiny, digitamos o comando:

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

No avrdude, os fusíveis não são definidos com muita clareza, mas podem ser facilmente calculados em uma das calculadoras online.


Conectamos o dispositivo ao computador e verificamos como ele funciona (usbtest com o parâmetro out lê uma linha, in - grava a linha especificada no buffer do chip):

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

Uma colher de alcatrão

Soft USB não é uma panacéia. As implementações de software geralmente têm uma série de simplificações, como a ausência de verificações de checksum e simetria de canal, o que afeta negativamente a imunidade a ruídos. Além disso, as bibliotecas de software geralmente usam modos USB de baixa velocidade. Sim, e o código da biblioteca USB "come" a já pequena memória do chip.

Espiando...

No nível lógico, o protocolo USB é essencialmente uma transferência de dados de pacotes multicamadas. É fácil verificar isso (e ao mesmo tempo aprender muitas coisas interessantes sobre USB) usando o analisador de protocolo de rede Wireshark. Primeiro você precisa baixar o driver do monitor USB:

$ sudo modprobe usbmon

Agora você pode selecionar os barramentos USB na lista de interfaces Wireshark. Você pode ver o número do barramento do dispositivo, por exemplo, nos logs.

Conclusão

Espero que, depois de aprender a transferir dados entre um computador e um microcontrolador AVR, sua paixão pela eletrônica cresça com vigor renovado, dando origem a muitos dispositivos originais e úteis. Resta apenas desejar-lhe sucesso neste campo difícil, mas interessante.

11

Eu tenho um aplicativo Linux para o qual gostaria de automatizar alguns testes e seu estado deve mudar com base no estado de determinados dispositivos, ou seja, dispositivos USB, dispositivos WLAN, dispositivos WAN. No entanto, não temos mais dispositivos físicos USB, WLAN, WAN, etc., então preciso descobrir uma maneira de testar este programa sem realmente conectar dispositivos físicos, ligá-los/desligá-los etc.

Começo simplesmente criando um dispositivo USB virtual que posso controlar a partir do espaço do usuário, mas há uma falta fundamental de conhecimento da minha parte que me impede de pegar qualquer um dos tópicos semelhantes nesses fóruns e aplicá-los ao meu projeto. Sinto que preciso criar algum tipo de driver usb virtual e vinculá-lo a algum programa de nível de usuário, não usbfs. No entanto, mesmo se eu criar esse driver virtual, como faço para "anexar" esse dispositivo do espaço do usuário e obter meu programa registrado com esse driver específico? O que estou tentando fazer é possível?

  • 2 respostas
  • Ordenação:

    Atividade

0

Você não pode testar o aplicativo em um ambiente virtual com VMWare? Você pode então "anexar" qualquer dispositivo virtual em sua máquina à máquina virtual convidada e testar o aplicativo dessa maneira.

8

A melhor maneira é usar drivers de gadgets Linux e hardware que permite que você seja um dispositivo USB. O driver do gadget permite que o computador "finja" ser qualquer dispositivo. Então seu sistema em teste tem um cabo USB OTG para o gadget. Você nem precisa desconectar o cabo se o seu gadget tiver o hardware certo. A "caixa de gadgets" pode ser seu desktop/laptop Linux (desde que suporte USB OTG) ou até mesmo um telefone Android ou Raspberry Pi. (Cuidado que os cabos USB são sugados. Só porque o cabo se encaixa não significa que ele está conectado corretamente ao USB OTG.).

Depois de ter o hardware USB OTG correto, o gadget encaixota todo o software:

1) Se o dispositivo em teste for compatível com OTG, verifique se o dispositivo não está tentando e não é um host USB. (Então seu dispositivo em teste se tornará um cliente USB.) Ou seja. certifique-se de que coisas como usb_storage não sejam carregadas automaticamente.

2) O kernel suporta gadgets para hubs USB, USB-Ethernet, portas seriais USB e drives USB. Basta carregar os módulos que você precisa em seu gadget e ele "simplesmente funciona". Por exemplo, para criar uma unidade USB, faça algo assim: " insmod g_file_storage.ko file=/dev/ram0 ". O outro lado pensará que você conectou uma unidade USB.

Para dispositivos seriais, o gadget pode executar o código de espaço do usuário que "pega o telefone em /dev/usbx" e ​​conversa com o dispositivo em teste. (Presumivelmente um modem 4G emulador ou qualquer outra coisa.)

Toneladas de dispositivos são realmente "serial USB" sob o capô porque o fabricante estava com preguiça de entender o USB.

3) Com um pouco de recompilação ou ajustes, você pode usar esses dispositivos genéricos para gadget, ID ou retornar strings de fornecedores diferentes, etc. Não será o mesmo que "testar em hardware real", mas pelo menos você está testando a versão padrão desses dispositivos.

4) Para tipos de dispositivos que ainda não estão no núcleo (como Wi-Fi ou qualquer outra coisa), você está sozinho. Com bastante suor e lágrimas de sangue, você pode escrever seu próprio tipo de gadget. (Idealmente, use o máximo possível no espaço do usuário e processe apenas componentes críticos no kernel..)

Às vezes, surge uma situação em que você precisa de uma unidade flash, mas ela não está à mão. Por exemplo, alguns programas de contabilidade e relatórios exigem uma unidade externa. Em tal situação, você pode criar um dispositivo de armazenamento virtual.

Usando um software especial, isso pode ser feito de várias maneiras. Vamos considerar cada um deles passo a passo.

Método 1: montagem OSF

Este pequeno programa ajuda muito quando não há pendrive em mãos. Funciona em qualquer versão do Windows.

Depois de baixar o programa, faça o seguinte:



Recursos adicionais podem ser necessários para usar este programa. Para fazer isso, entre na janela principal no item Impulsionar ações. E então será possível usar as seguintes opções:

  • Desmontar - desmontar o volume;
  • Formato - formatação do volume;
  • Definir mídia somente leitura - proíbe a gravação;
  • Extendsize - expande o tamanho do dispositivo virtual;
  • Savetoimagefile - é usado para salvar no formato desejado.

Método 2: unidade flash virtual

Uma boa alternativa para o método acima. Ao criar uma unidade flash virtual, este programa permite proteger as informações nela com uma senha. A vantagem disso é seu desempenho em versões mais antigas do Windows. Portanto, se você tiver uma versão do Windows XP ou inferior em seu computador, este utilitário o ajudará a preparar rapidamente um dispositivo de armazenamento virtual em seu computador.

As instruções para usar este programa são assim:

  1. Baixe e instale o Virtual Flash Drive.
  2. Na janela principal, clique no botão "Monte novo".
  3. Uma janela aparecerá "Criar novo volume", especifique o caminho para criar a mídia virtual e clique em "OK".


Como você pode ver, o programa é muito fácil de usar.

Método 3: ImDisk

Este é um dos programas mais populares para criar um disquete virtual. Usando um arquivo de imagem ou memória de computador, ele cria discos virtuais. Ao usar teclas especiais ao carregá-lo, uma unidade flash aparecerá como um disco removível virtual.


Método 4: armazenamento em nuvem

O desenvolvimento da tecnologia permite criar unidades flash virtuais e armazenar informações sobre elas na Internet. Este métodoé uma pasta com arquivos que está disponível para um usuário específico de qualquer computador conectado à Internet.

Esses armazenamentos de dados incluem Yandex.Disk, Google Drive e Cloud Mail.ru. O princípio de utilização destes serviços é o mesmo.

Considere como trabalhar com o Yandex Disk. Este recurso permite armazenar informações sobre ele gratuitamente até 10 GB.



Trabalhar com esse meio de armazenamento virtual permite que você gerencie totalmente seus dados: agrupe-os em pastas, exclua dados desnecessários e até compartilhe links para eles com outros usuários.

O que é e por que é necessário?
Se o rádio do carro tiver uma entrada para um trocador de CD, você pode conectar um adaptador semelhante a ele, ele enganará o rádio e decidirá que um trocador está conectado a ele e, em vez de discos, um pen drive comum com música é usada. O adaptador pode ser controlado meios regulares incluindo os comandos do volante.

Já houve várias revisões de tais adaptadores em Muska, os mais famosos são os chineses Yatour.

Decidi seguir um caminho fora do padrão, decidi experimentar o russo Trioma Flipper 2.
Avaliação geral - excelente, satisfeito com a compra, recomendo.

Para detalhes, por favor, sob o gato

Prefácio

Há um desejo simples - quero ouvir música no carro. Nem sempre há algo adequado no rádio, ele está cansado de carregar um monte de CDs com você e gravá-los constantemente.
No meu Peugeot 407 de 2007, existe um GU (Head Unit), mais tarde chamado simplesmente de rádio, sem USB, bluetooth, e até sem a habitual entrada AUX.

Se o carro tiver um gravador de rádio comum que não esteja vinculado ao controle de nenhuma função da máquina, a maneira mais fácil é comprar um novo gravador de rádio. Um rádio de marca com entrada USB pode ser comprado por cem euros. Algum valor a mais terá que ser gasto para que ela entenda os controles do volante.

Você pode fazer alguma agricultura e conectar uma entrada AUX (áudio), mas ainda precisará de uma fonte de som e terá que esquecer o controle de direção.

Eu descartei opções com transmissores FM há muito tempo - tentei alguns transmissores diferentes, a qualidade do som não era muito boa.

Existe outra maneira, de conectar um adaptador à entrada de rádio do trocador de CD, que permitirá ouvir música de pen drives, controlando o adaptador com os meios padrão do rádio, inclusive do volante. Você pode encontrar adaptadores semelhantes de diferentes fabricantes com parâmetros diferentes e diferem em qualidade, confiabilidade, conveniência ou preço.
O adaptador mais famoso é o Yatour. O mais legal, talvez, seja o americano Grom Audio, que toca, entre outras coisas, FLAC. Bem, existem mais alguns dispositivos - Audiolink, Xcarlink, DMC, Dension.

Em primeiro lugar, comecei a olhar para yatour. Em todos custa a partir de $ 50. Mas as críticas na Internet diminuíram um pouco o entusiasmo. O adaptador tem uma saída linear com um nível fixo, então em muitos gravadores de rádio o nível de volume é visivelmente mais baixo do que no rádio. Às vezes, trabalho instável, congela, criticidade à presença de arquivos externos na unidade flash. O número de diretórios suportados - quantos discos o rádio suporta, no meu caso, são 6.

Yatour não tem um site oficial, os sites da Yatour na Internet são sites de vendedores. E a informação tem que ser coletada pouco a pouco em diferentes lugares, principalmente quem instalou por conta própria cancela a inscrição, mas nem sempre a experiência deles é adequada para o seu rádio.
Mas tive sorte, me deparei com o vendedor bielorrusso yatour Sergey, também conhecido como SSD, que respondeu a todas as minhas perguntas, incluindo os recursos de trabalhar com meu rádio.
Em geral, funciona, mas pode haver problemas de volume e operação instável. De Sergey, pela primeira vez, ouvi falar de Grom Audio e Triom, que ele também vende.

Grom Audio no Android suporta FLAC, mas nenhum modelo para o meu carro.

Mas Trioma Flipper 2 interessado. Em primeiro lugar, a capacidade de ajustar o nível de saída (volume). Além disso, possui uma organização de pastas muito mais conveniente e pode haver muito mais delas. E é muito menos bugado.
Po emprestou uma boa tabela de comparação Yator vs. Trioma


Esclarecimento sobre Yatura:
1. Arquivos estranhos não interferem na reprodução. Pelo menos em algum firmware.

Então, fiz minha escolha. Trioma!!!
Ao comprar esse adaptador, certifique-se de escolher um modelo para o seu carro. Mais precisamente, sob o rádio do seu carro. Diferentes gravadores de rádio podem ter conectores diferentes para o trocador que não são compatíveis entre si.

Onde posso comprar o Trioma?

No site do fabricante há quem venda os produtos Trioma. Não há problemas em comprar um adaptador na Rússia ou na Bielorrússia. E na Europa, onde é mais fácil comprar e não tenho que passar pela alfândega e pagar o IVA, os preços são duas vezes mais altos, a partir de 120 euros sem custos de envio.

Comecei a procurar amigos que pudessem me trazer um adaptador da Rússia ou da Bielorrússia. Encontrado!!! Encontrei um amigo da Rússia que encomendou e me trouxe um adaptador no início de fevereiro! Oleg, obrigado!

E aqui está o adaptador na minha casa!



O kit inclui o próprio adaptador, um cabo para conexão ao rádio e cabo USB.
O comprimento do cabo para conectar ao rádio é de apenas 40 cm, o que impõe restrições imediatas à localização do adaptador no carro - ele deve ser colocado diretamente atrás do rádio, você não pode nem alcançar o porta-luvas com ele .
O adaptador é do tamanho de uma caixa de cigarros. Uma caixa de plástico simples com um cabo saliente para conectar subdispositivos ou cabos AUX. No entanto, depois de conectar o adaptador ao rádio, ninguém mais o verá.
Além disso, peguei um cabo AUX com um minijack no final (+500r)


Mais algumas fotos

Conector para dispositivos adicionais, cabo AUX ou adaptador bluetooth


mãe no adaptador


pai no cabo


Conector para rádio RD4


Não abra, garanta


Instalação

O gravador de rádio RD4, desaperte os dois parafusos com um hexágono e retire o gravador de rádio.

Existem dois conectores adequados na parte traseira, um deles não funcionará - verificado;)
A imagem mostra o conector que você precisa. Já foi conectado para conectar o trocador, retiramos o conector instalado e ligamos o nosso.


Conectamos o cabo ao adaptador, ligamos a ignição e um milagre - tudo funcionou imediatamente !!! E o nível de volume é quase o mesmo do CD embutido.

Mas então começamos a pensar - onde colocar o cabo USB. A maneira mais fácil no meu caso foi jogar o cabo sob o volante em um pequeno porta-luvas à esquerda do motorista.


O próprio adaptador foi enfiado em um nicho atrás à esquerda do rádio. Não há muito espaço lá, depois de instalar o rádio no lugar, o adaptador foi preso por cabos, então não foi necessário fixar adicionalmente o adaptador.

Em todos os fóruns eles escrevem que o rádio requer a ativação do trocador no serviço. Acabou sendo muito mais fácil para mim. Após ligar, o próprio rádio determinava que um trocador estava conectado a ele e tornava-se possível selecioná-lo através da chave de entrada (rádio/CD/trocador).
Como se viu, a ativação é necessária não para o rádio, mas para o display, para que ele possa refletir as informações para o trocador.
Mas há seis meses, eu e os chineses, muito bem, enviamos um display com todas as funções ativadas. Então, tudo funcionou para mim sem ativação adicional.

Operação do adaptador

Qualidade de som. Comparável ao leitor de CD. A acústica padrão no carro é bastante medíocre, então você definitivamente não ouvirá a diferença com o CD player comum no meu carro.
Velocidade de comutação. Menos de alguns segundos depois de ligar a ignição em uma unidade flash com algumas dúzias de diretórios. Nos fóruns eles escrevem que com várias centenas de diretórios, a velocidade é menor. O adaptador lembra onde jogou antes de ser desligado e começa a jogar do mesmo lugar. Esta propriedade é valiosa para quem gosta de ouvir audiolivros. O adaptador lembra a localização das últimas 4 unidades flash /
Troca de faixas. Frações de segundo, não há diferença no mesmo ou em outro diretório é a faixa. Durante a troca não há sons estranhos.
Substituição do pendrive. Com o rádio funcionando, retiramos a unidade flash USB e colocamos uma nova. É determinado dentro de alguns segundos e imediatamente começa a tocar. Durante a substituição, pode soar um trinado curto e muito baixo.

O adaptador compreende 32 diretórios, que podem ter 32 subdiretórios, cada um dos quais pode conter até 99 arquivos. Mas logo percebi que meu seletor de disco apenas alterna os primeiros seis discos. Embora no modo Random, o adaptador vê todos os diretórios.

Fiz uma pergunta no fórum do Trioma, o suporte respondeu muito rapidamente e ofereceu opções para organizar diretórios. O problema acabou sendo que no RD4, embora os botões executem a função Disc + / Disk-, na realidade eles enviam comandos diretos de seleção de disco 1-6 para o adaptador. Portanto, esses botões podem alternar apenas 6 diretórios raiz ou 6 subdiretórios.
E gerenciar 1024 diretórios no meu rádio não funcionará. Você só pode gerenciar 32*6=192 diretórios;)

A descrição diz que os botões FF / FR executam uma função dupla - alterar diretórios / subdiretórios e rebobinar.
Mas no RD4 Track+/Track- são combinados com FF/FR e para o adaptador estes botões têm uma tripla função:
1. Pressione rapidamente - Track+/Track-
2. Pressionando por 2-3 segundos, solte quando o som da faixa atual desaparecer - alternando o diretório
3. Pressione e segure > 3 segundos, há um som abafado acelerado - rebobine
O tempo é aproximado, você precisa se concentrar no som

Mesmo antes da compra, imaginei que escreveria um grande pendrive com centenas de catálogos. Mas já vejo que é mais conveniente ter vários pendrives com coleções diferentes.
Eu tenho isso agora:
1. Palco russo dos anos 80-90
2. Estágio estrangeiro 80-90s
3. Instrumentais

Total. Por relativamente pouco dinheiro, recebi um adaptador sem bugs com boa qualidade som e controles intuitivos simples. Estou muito satisfeito com a compra, Trioma - muito bem!!!

Links adicionais

Miniperguntas frequentes

Algumas perguntas ficaram de fora dessa resenha, resolvi colocá-las em um mini-faq separado. Aqui vou adicionar perguntas que surgem nos comentários.
  • O que precisa ser feito para que os nomes (nomes de arquivos, tags ou qualquer coisa) sejam exibidos no visor?
  • Os adaptadores Triom certamente "vêem" tags, nomes de arquivos e nomes de pastas. Sempre que possível, eles exibem sequências de texto nas telas padrão dos gravadores de rádio: BMW e todos os carros com um barramento MOST óptico. Talvez em breve a saída de texto seja implementada para alguns dispositivos Toyota / Lexus.
  • Os trocadores de CD fazem o trabalho sem problemas.
  • Receio que você esteja enganado: não conhecemos trocadores externos além dos modelos listados acima que lidam com essa tarefa. Trocadores embutidos na unidade principal são outra questão, onde o texto é enviado diretamente para o controlador de exibição - este é um mecanismo completamente diferente.
  • Dispositivos adicionais podem ser conectados ao adaptador Trioma Flipper 2?
  • Você pode conectar ao adaptador um cabo adaptador macho AUX-minijack 3.5
pretendo comprar +23 Adicionar aos favoritos gostei da resenha +21 +46