¿Es posible implementar un host en stm32 (sin soporte de hardware) con solo el código del programa para escribir datos en la unidad flash USB? No encontré ninguna información en Internet sobre este tema. Hay un dispositivo de implementación, pero no un host. Estoy estudiando la especificación usb para la respuesta, pero todavía no la entiendo bien.
¿Por qué la función de host no se puede implementar con hardware solo para dispositivos? Porque el USB no es simétrico con respecto al host y los dispositivos.
En el lado del dispositivo, la función USB es admitir el protocolo USB básico llamado "SIE", Serial Interface Engine. Este motor incluye la capacidad del dispositivo para RECIBIR solicitudes de host, comenzando con "tubería predeterminada", y responder correctamente obteniendo datos con respuesta ACK, o enviando datos y esperando que el host ACK complete las transacciones. Debido a las limitaciones de tiempo de USB (tiempo de respuesta de 1,7 us), la etapa final de la transacción de control no se puede implementar por medios de software, y la mayoría de las partes de los motores SIE del dispositivo están codificadas por hardware. Otras funciones de SIE son aceptar la asignación de direcciones y aceptar/habilitar la configuración, lo que concluye la fase de enumeración del protocolo de conexión USB. Luego, el SIE admite IN/OUT/otros conductos básicos, dentro de las mismas restricciones de protocolo. En definitiva, la función del dispositivo es RESPONDER.
Debido a estas limitaciones de hardware, es imposible usar el motor del dispositivo para la función de host, principalmente porque las funciones del host son completamente opuestas a las funciones del dispositivo. El manejo del bus sigue máquinas de estado muy diferentes. El host debe GENERAR paquetes de tramas periódicas e INICIAR todas las transacciones. Y luego proporcione un flujo fluido de datos, todo generalmente hecho usando hardware Direct Memory Access. El host debe proporcionar la función de alimentación del puerto y la función de reinicio del puerto, que no está presente en las implementaciones del dispositivo.
Estas son las principales razones por las que las MCU están diseñadas con controladores de hardware de dispositivo y hardware de host separados.
Eugenio Sh.
Jasén
никита богатов
marcus muller
никита богатов
chris stratton
никита богатов
никита богатов
chris stratton
marcus muller
chris stratton
marcus muller