¿Qué clase de usb para un dispositivo pretende ser la prueba más futura posible?

4

Estoy escribiendo especificaciones para un producto y necesito ayuda para minimizar su futura necesidad de mantenimiento.

Para poder ser monitoreado (opcionalmente) desde Internet, se supone que el dispositivo tiene un puerto USB para conectarlo a una computadora (ahora lo estoy desarrollando como una secuencia de comandos de Python en frambuesa) capaz de sondear datos desde (menos de 10 bytes por minuto, la velocidad no es el problema aquí) y genera una buena página web.

Mi preocupación es minimizar la necesidad de trabajo futuro en esta función de capacidad de comunicación: decidimos hacerlo como un truco pero esperamos que sea usado por una minoría de nuestros clientes, pasando días todos los años manteniendo y arreglando el código no es una opción.

Desde el lado del equipo, decidimos abrir el código fuente y, por supuesto, también el comando AT para el dispositivo. Lado del dispositivo, lo que me preocupa es la necesidad de controladores.

¿En qué clase de USB debo colocar mi dispositivo para que sea reconocido como un puerto COM sin la necesidad de distribuir controladores? ES DECIR. si lo hago conforme a la especificación de la clase de dispositivos de comunicación, ¿puedo hacer que se reconozca como un puerto com a través de controladores "omni-presentes" estándar?

    
pregunta Caterpillaraoz

2 respuestas

4

Probablemente quieras un puerto serie CDC. No voy a estar de acuerdo con laptop2d aquí, aunque los controladores HID (por ejemplo, los de un mouse y teclado USB) son comunes, no veo cómo usaría ninguno de los controladores estándar para una comunicación de tipo serial. Por supuesto, podría escribir su propio controlador HID, o tal vez haya una compañía que los venda.

Las versiones de Windows de Vista en adelante (y probablemente también antes) incluyen un controlador serie CDC de usb llamado usbser.sys. Hasta donde puedo decir dos versiones principales, una en Windows Vista / 7/8 / 8.1 y otra en Windows 10.

Para la primera versión, debe proporcionar un archivo inf, para vincular su USB VID / PID al controlador, luego Windows lo cargará. El conductor es un poco tonto, no intenta recuperarse de interrupciones transitorias en el autobús, y hemos tenido problemas para superar las pruebas de inmunidad estándar en Europa. Debido a un error del controlador, no es posible recuperar una conexión perdida simplemente en el software (!!).

La versión de Windows 10 es mejor. Si configura la clase de dispositivo y la subclase correctas (02/02, IIRC), Windows cargará el controlador sin una inf. ¡Todavía tendrá un amarillo! sin embargo, en el administrador de dispositivos, por lo que para un aspecto profesional todavía querrá esa información. Si usa una inf, tendrá que estar firmado, y un certificado de firma de código lo reservará en algún lugar por debajo de £ 100.

También puede comprar un controlador comercial de, por ejemplo, Thesycon . Son mucho mejores que las ventanas integradas uno, y proporcionarán distribuibles personalizados. Sin embargo, los costos son muy altos.

Entiendo que el soporte de Linux para puertos serie CDC es bueno, no se necesita controlador (aunque quizás algunas reglas de udev), y no tengo idea acerca de Mac.

Todo esto asume que usted hace el USB usted mismo en un microcontrolador equipado con USB, usando las bibliotecas apropiadas, y luego ordena un controlador. Otra opción sería trabajar con alguien como FTDI. Probablemente puedan proporcionar controladores si utiliza uno de sus chips usb / serie.

    
respondido por el Jack B
2

Usted querrá mirar a los controladores de puerto com com. Si puede hacer que su dispositivo se vea como un puerto HID com, la mayoría de los dispositivos tendrán controladores compatibles con HID USB .

Si no, tendrás que proporcionar los controladores a la antigua usanza.

    
respondido por el laptop2d

Lea otras preguntas en las etiquetas