1
0
forked from tanchou/Verilog
Files
Verilog_Louis/Semaine_2/Projet_esp32/protocole_esp_fpga.md

3.5 KiB
Raw Blame History

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 dun 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 ladresse MAC du destinataire.
  • LEN : Longueur du message à envoyer (1 octet).
  • MESSAGE : Suite doctets 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 ladresse 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" à lappareil 12:34:56:78:9A:BC.


Remarques

  • Aucune vérification CRC/Checksum nest ajoutée pour le moment (possible amélioration future).
  • Le protocole est extensible : il suffit dajouter de nouveaux OP_CODEs au besoin.