2009-03-25 14 views
6

Devo creare un'applicazione che consenta a un PC Windows (XP/Vista) di emulare una pen drive. Cioè, quando il PC è collegato a un altro sistema Windows o, in questo caso, a un componente hardware che consente di collegare le chiavette USB, una cartella sul computer sembra una gigantesca unità di comando. Qualche idea su dove un tizio avrebbe iniziato a indagare su questo?PC Windows come slave USB per emulare una thumbdrive

Update (descrizione più specifica): ho bisogno di collegare il PC ad uno dei dispositivi multifunzione più recenti che supportano la scansione ad un thumbdrive USB, inserita nella parte anteriore del dispositivo. Queste unità non supportano WIA o TWAIN tramite il connettore USB posteriore normalmente utilizzato per la connettività a un PC.

+0

Stai chiedendo un modo per farlo sul tuo sistema (come negli scopi di test) o stai chiedendo più come il tuo software può farlo su un sistema di destinazione –

risposta

2

Non è possibile farlo in un'applicazione. Al livello più basso, le porte USB del computer sono controllate da un'interfaccia Host Controller. Questo chip gestirà fino a 127 dispositivi USB slave. Avresti bisogno di riprogrammare seriamente questo chip prima di implementare il lato slave del protocollo USB. Naturalmente, a quel punto qualsiasi hub USB nel tuo PC si romperà: quelle 8 porte USB che probabilmente hai sono in genere implementate da 2 smart hub USB che si collegano ai controller host USB1 e USB2. Quindi, la tastiera e il mouse USB smetteranno di funzionare.

4

La maggior parte dei controller USB nel normale PC non ha la possibilità di funzionare come slave USB. Quindi inizierei a indagare su quale tipo di hardware utilizzerai.

Un altro modo per andare: ci sono cavi di collegamento USB per collegare 2 PC via USB, forse è utilizzabile per voi?

+0

"I cavi di collegamento USB" sono fondamentalmente 2 USB-to- Adattatori Ethernet con Cat5 tra di loro. Pertanto, sono necessari due master USB su ciascun lato. – MSalters

+0

che potrebbe essere buono perché il suo "Dispositivo client" è un PC (che normalmente svolge il ruolo di master) e il suo dispositivo host è lo scanner (che ha un chipset master per poter leggere da USB) Ma lo scanner probabilmente non lo fa Comunque mi piace quel tipo di cavo .... – thijs

2

Prendere un MCU con due USB slave. Scrivi un semplice frimware che rende un atto USB una Classe di dispositivo speciale e attendi che il PC su questa USB fornisca dati obbligatori (inclusa la Classe dispositivo, ovviamente) per l'altra USB. Scrivi un programma per PC che si connette al dispositivo speciale (il tuo MCU), carica la classe di dispositivo di archiviazione di massa e reindirizza l'I/O su una partizione dedicata. L'altra USB sulla MCU diventerà un dispositivo di archiviazione di massa emulato.

Alcuni di questi codici possono essere presi da Linux.