Protocolo abierto
Descripción general del protocolo abierto
Protocolo abierto USB KVM SuperKVM El protocolo abierto USB KVM tiene dos partes La primera cubre el tráfico genérico de teclado y ratón. Para facilitar la reutilización por parte de terceros seguimos el empaquetado CH9329 , de modo que el código open source existente suele adaptarse con rapidez a nuestros KVM La segunda es el protocolo de extensión KVM: todo lo que va más allá del teclado y el ratón (OTA, conmutación de disco USB, lectura de información del dispositivo, distintos interruptores de configuración) Velocidad en baudios UART En el host USB KVM SuperKVM el puerto serie es un CDC USB virtual , por lo que se admiten baudios desde 9600 hasta 6 M . Recomendamos 2 M baud o la velocidad máxima que tolere su cadena de herramientas Trama CH9329 Definición de campos Offset Campo Longitud Descripción 0 HEAD1 1 Valor fijo 0x57 1 HEAD2 1 Valor fijo 0xAB 2 ADDR 1 Dirección del dispositivo, por defecto 0x00 3 CMD 1 Byte de comando (véase el PDF detallado) 4 LEN 1 Número de bytes DATA siguientes 5 DATA LEN Semántica de carga según el PDF detallado 5+LEN SUM 1 Suma byte a byte desde HEAD1 hasta el último byte DATA, luego & 0xFF Solo hay tres comandos implementados hoy: Teclado (CMD= 0x02 ) Ratón absoluto (CMD= 0x04 ) Ratón relativo (CMD= 0x05 ) El MCU procesa esas tres órdenes pero no envía respuestas para mantener el rendimiento del UART. Contacte con soporte si necesita acuses de recibo Documentación CH9329: PDF oficial Extensiones SuperKVM Por coherencia, las extensiones reutilizan la cabecera estilo CH9329 pero redefinen los campos posteriores Definición de campos Orden en cable ( HEAD como bytes 57 AB , es decir notación big endian 0x57AB ; los campos numéricos posteriores son en su mayoría little endian ): Offset Campo Longitud Endianidad Notas 0 head 2 literales 0x57 , 0xAB Interpretado como uint16 little endian aparece 0xAB57 , pero sigue siendo una trama extendida 2 channel 1 — Equivale al campo ADDR de CH9329 3 sn 4 LE Número de secuencia 7 total len 4 LE Longitud TLV : type(2)+len(4)+carga , es decir 6 + bytes de carga útil ( create protocol packet ) 11 type 2 LE Subcomando 13 len 4 LE Longitud de la carga ( total len = 6 + len ) 17 payload len — Datos de aplicación 17+len CRC 4 LE Vea el algoritmo CRC más abajo El tercer octeto lleva el ID de canal : 0 para el modo compatible CH9329, cualquier otro valor para extensiones Algoritmo CRC Pseudocódigo estilo JavaScript Implementación en C Valores channel ( CH ID ) Valor (hex) Macro Significado Uso típico 00 CH ID CH9329 Canal CH9329 Compatibilidad teclado/ratón 01 CH ID DEVICE Información y control Versión, conmutación de disco USB, etc. 02 CH ID OTA OTA Actualizaciones de bootloader y aplicación 03 CH ID EXT PERIPHERAL Periferia externa Control de hardware para módulos externos 04 CH ID SHELL Paso Shell Shell bidireccional cuando el dispositivo lo expone 05 CH ID LOG Registros Transmisión de registros KVM a la interfaz web Subprotocolos por canal Documentación en curso. Contacte con soporte si necesita detalles urgentes
Canonical: https://wiki.superkvm.com/es-ES/open/protocol · Marketing: https://www.superkvm.com · GitHub: https://github.com/superkvm