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 CDC para conectarlo a una computadora (ahora lo estoy desarrollando como un script de Python en raspberry) capaz de sondear datos de él ( menos de 10 bytes por minuto, la velocidad no es el problema aquí) y generar 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 de relaciones públicas, pero esperamos que lo use una minoría de nuestros clientes, pasar días todos los años manteniendo y arreglando el código no es un problema. opción.
Del lado de la computadora, decidimos abrir el código fuente y, por supuesto, también el comando AT para el dispositivo. Del 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 necesidad de distribuir controladores? Es decir, si hago que se adhiera a la especificación de clase de dispositivos de comunicación, ¿puedo hacer que se reconozca como un puerto com a través de controladores "estándar, omnipresentes"?
Probablemente desee un puerto serie CDC. No estoy 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 tipo serie. Por supuesto, podría escribir su propio controlador HID, o tal vez haya una compañía que los venda.
Las versiones de Windows desde Vista en adelante (y probablemente también antes) incluyen un controlador serie usb CDC llamado usbser.sys. Por lo que puedo decir, hay 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 VID/PID USB al controlador, luego Windows lo cargará. El conductor es un poco basura, no intenta recuperarse de las interrupciones transitorias en el autobús, y hemos tenido problemas para pasar las pruebas de inmunidad estándar europeas con él. Debido a un error en el controlador, no es posible recuperar una conexión interrumpida únicamente en el software (!!).
La versión de Windows 10 es mejor. Si configura la clase y subclase de dispositivo correctas (02/02, IIRC), Windows cargará el controlador sin inf. ¡Todavía tendrá un amarillo! Sin embargo, en el administrador de dispositivos, por lo que para una apariencia profesional aún querrá esa inf. Si usa un inf, tendrá que estar firmado, y un certificado de firma de código le costará menos de £ 100.
También puede comprar un controlador comercial de, por ejemplo, Thesycon . Son mucho mejores que los integrados en Windows y proporcionarán distribuibles personalizados. Aunque cuesta ££££s.
Entiendo que el soporte de Linux para los puertos seriales de CDC es bueno, no se necesita controlador (aunque tal vez algunas reglas de udev), y no tengo idea sobre Mac.
Todo esto supone que usted mismo hace el USB en un microcontrolador equipado con USB, utilizando las bibliotecas apropiadas y luego selecciona un controlador. Otra opción sería trabajar con alguien como FTDI. Probablemente puedan proporcionar controladores si usa uno de sus chips USB/serie.
Querrá mirar los controladores de puerto com ocultos. Si puede hacer que su dispositivo se vea como un puerto com HID, la mayoría de los dispositivos tendrán controladores compatibles con USB HID .
De lo contrario, tendrá que proporcionar controladores a la antigua usanza.
Jon
gato b
Ale..chenski
gato b
orugaoz
CL.
gato b
orugaoz