2009-03-25 10 views
6

Necesito crear una aplicación que permita que una PC con Windows (XP/Vista) emule una unidad de almacenamiento en miniatura. Es decir, cuando la PC se conecta a otro sistema de Windows o, en este caso, a una pieza de hardware que permite conectar unidades de almacenamiento USB, una carpeta de la computadora se ve como una unidad de almacenamiento en miniatura gigante. ¿Alguna idea de dónde un hombre podría comenzar a investigar esto?PC con Windows como un esclavo USB para emular una memoria USB

Update (descripción más específica): que necesito para conectar mi PC a uno de los dispositivos más nuevos multifuction que soportan el escaneo a una memoria USB que se inserta en la parte frontal del dispositivo. Estas unidades no son compatibles con WIA o TWAIN a través del conector USB posterior que normalmente utilizaría para la conectividad a una PC.

+0

¿Está pidiendo una forma de hacerlo en su propio sistema (como prueba) o está preguntando cómo su software puede hacerlo en un sistema de destino –

Respuesta

2

No puede hacer esto en una aplicación. En el nivel más bajo, los puertos USB de su computadora están controlados por una Interfaz de controlador de host. Este chip administrará hasta 127 dispositivos USB esclavos. Debería reprogramar seriamente este chip antes de implementar el lado esclavo del protocolo USB. Por supuesto, en ese momento cualquier concentrador USB en su PC se descompondrá: esos 8 puertos USB que probablemente tenga son generalmente implementados por 2 concentradores USB inteligentes que se conectan a los controladores host USB1 y USB2. Luego, su teclado y mouse USB dejarán de funcionar.

4

La mayoría de los controladores USB en las computadoras comunes no tienen la posibilidad de funcionar como un esclavo USB. Así que comenzaría investigando qué tipo de hardware vas a usar.

Otra manera de hacerlo: hay cables USB Link para conectar 2 pc a través de USB, ¿quizás es útil para usted?

+0

"Cables de enlace USB" básicamente son 2 USB-to- Adaptadores Ethernet con Cat5 entre ellos. Por lo tanto, necesita dos maestros USB en cada lado. – MSalters

+0

que podría ser bueno porque su "Dispositivo cliente" es una PC (que normalmente juega el papel de maestro) y su dispositivo host es el escáner (que tiene un chipset maestro para poder leer desde USB) Pero el escáner probablemente no lo haga me gusta ese tipo de cable de todos modos ... – thijs

2

Tome una MCU con dos USB esclavos. Escriba un frimware simple que haga que un USB actúe como una clase de dispositivo especial y espere hasta que la PC en este USB proporcione datos obligatorios (incluida la clase de dispositivo, por supuesto) para el otro USB. Escriba un programa de PC que se conecte al Dispositivo especial (su MCU), cargue la Clase de dispositivo de almacenamiento masivo y redirija las E/S a una partición dedicada. El otro USB en la MCU se convertirá en un dispositivo de almacenamiento masivo emulado.

Algunos de esos códigos se pueden tomar de Linux.

Cuestiones relacionadas