forked from tanchou/Verilog
3.5 KiB
3.5 KiB
Protocole between FPGA and ESP32
Ce protocole permet la communication entre le FPGA et l'ESP32 via UART, principalement pour transférer des données ou des commandes de contrôle simples.
Structure générale des trames
Chaque trame est encadrée par des caractères spéciaux :
- ESCAPE (Before special char) :
0x1B
- STX (Start of Text) :
0x02
- ETX (End of Text) :
0x03
Format de trame :
0x02 OP_CODE VALUE_1 VALUE_2 ... 0x1B 0x03
Détail des commandes
OP_CODE | Nom | Description | Format |
---|---|---|---|
0x00 | Error | Indique une erreur | 0x02 0x00 [ERROR_CODE] 0x1B 0x03 |
0x01 | Wi-Fi State | Indique l'état du Wi-Fi (0 = down, 1 = up) | 0x02 0x01 [0x00/0x01] 0x1B 0x03 |
0x02 | Connection Update | Notification de connexion ou déconnexion d’un appareil | 0x02 0x02 [0x00/0x01] [MAC_ADDR (6 bytes)] 0x1B 0x03 |
0x03 | Request Connected Devices | Demande la liste des appareils connectés | 0x02 0x03 0x1B 0x03 |
0x04 | Send Connected Devices | Envoie la liste des appareil connecter | 0x02 0x04 [LEN (1 byte)] [MAC_LIST (n bytes)[MAC_ADDR (6 bytes)]] 0x1B 0x03 |
0x05 | Send Message | Envoie un message à un appareil connecté via son MAC | 0x02 0x05 [MAC_ADDR (6 bytes)] [LEN (1 byte)] [MESSAGE] 0x1B 0x03 |
Détail des code erreur
ERROR_CODE | Description |
---|---|
0x00 | |
0x01 | Unknow command |
0x02 | Args error |
0x03 | Invalid Trame |
0x04 | Too long trame |
Détails des champs
- MAC_ADDR : 6 octets représentant l’adresse MAC du destinataire.
- LEN : Longueur du message à envoyer (1 octet).
- MESSAGE : Suite d’octets de taille
LEN
représentant le message (binaire ou texte selon le contexte).
Exemples
Exemple 1 : Wi-Fi actif
0x02 0x01 0x01 0x03
→ Indique que le Wi-Fi est actif.
Exemple 2 : Connexion d'un appareil
0x02 0x02 0x01 0x12 0x34 0x56 0x78 0x9A 0xBC 0x03
→ Un appareil avec l’adresse MAC 12:34:56:78:9A:BC
vient de se connecter.
Exemple 3 : Envoi de message
0x02 0x04 0x12 0x34 0x56 0x78 0x9A 0xBC 0x05 0x48 0x65 0x6C 0x6C 0x6F 0x03
→ Envoi du message "Hello"
à l’appareil 12:34:56:78:9A:BC
.
Remarques
- Aucune vérification CRC/Checksum n’est ajoutée pour le moment (possible amélioration future).
- Le protocole est extensible : il suffit d’ajouter de nouveaux OP_CODEs au besoin.