Protocole ouvert
Vue d’ensemble du protocole ouvert
Protocole ouvert USB KVM SuperKVM Le protocole ouvert USB KVM comporte deux volets Le premier décrit le trafic clavier/souris générique. Pour faciliter la réutilisation par des développeurs tiers, nous suivons l’encapsulation CH9329 , ce qui permet souvent d’adapter rapidement du code open source existant à nos produits KVM Le second est le protocole d’extension KVM : tout ce qui dépasse clavier et souris (OTA, commutation de disque USB, lecture d’informations appareil, réglages divers) Débit en bauds UART Côté hôte USB KVM SuperKVM, le port série est un CDC USB virtuel , donc les débits 9600 à 6 M bauds sont pris en charge. Nous recommandons 2 M baud ou le débit maximal acceptable pour votre chaîne d’outils Trame CH9329 Définition des champs Offset Champ Longueur Description 0 HEAD1 1 Valeur fixe 0x57 1 HEAD2 1 Valeur fixe 0xAB 2 ADDR 1 Adresse matérielle, par défaut 0x00 3 CMD 1 Octet de commande (voir le PDF détaillé) 4 LEN 1 Nombre d’octets DATA suivants 5 DATA LEN Sémantique de charge utile selon le PDF détaillé 5+LEN SUM 1 Somme octet par octet de HEAD1 jusqu’au dernier octet DATA, puis & 0xFF Trois commandes seulement sont implémentées aujourd’hui : Clavier (CMD= 0x02 ) Souris absolue (CMD= 0x04 ) Souris relative (CMD= 0x05 ) Le MCU traite ces trois ordres mais n’émet pas de réponses pour préserver le débit UART. Contactez le support si vous avez besoin d’accusés de réception Documentation CH9329 : PDF officiel Extensions SuperKVM Pour rester homogènes, les extensions réutilisent l’en tête façon CH9329 tout en redéfinissant les champs suivants Définition des champs Ordre sur le fil ( HEAD = octets 57 AB , soit la notation big endian 0x57AB ; les champs numériques suivants sont surtout en petit boutiste ) : Offset Champ Longueur Boutisme Notes 0 head 2 littéraux 0x57 , 0xAB Lu comme uint16 little endian la valeur apparaît comme 0xAB57 , mais il s’agit toujours d’une trame étendue 2 channel 1 — Équivalent au champ ADDR CH9329 3 sn 4 LE Numéro de séquence 7 total len 4 LE Longueur TLV : type(2)+len(4)+charge , soit 6 + octets utiles ( create protocol packet ) 11 type 2 LE Sous commande 13 len 4 LE Longueur utile ( total len = 6 + len ) 17 payload len — Données applicatives 17+len CRC 4 LE Voir algorithme CRC ci dessous Le troisième octet porte l’ ID de canal : 0 pour la voie compatible CH9329, toute autre valeur pour les extensions Algorithme CRC Pseudo code façon JavaScript Implémentation C Valeurs channel ( CH ID ) Valeur (hex) Macro Rôle Usage typique 00 CH ID CH9329 Voie CH9329 Compatibilité clavier/souris 01 CH ID DEVICE Informations & contrôle Version, commutation disque USB, etc. 02 CH ID OTA OTA Mises à jour bootloader et application 03 CH ID EXT PERIPHERAL Extensions matérielles Pilotage de modules externes 04 CH ID SHELL Passage Shell Shell bidirectionnel lorsque l’appareil l’expose 05 CH ID LOG Journaux Flux des journaux KVM vers l’interface web Sous protocoles par canal Documentation encore en cours. Contactez le support pour un besoin urgent
Canonical: https://wiki.superkvm.com/fr-FR/open/protocol · Marketing: https://www.superkvm.com · GitHub: https://github.com/superkvm