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

64 lines
2.4 KiB
Markdown
Raw Normal View 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 :
- **STX** (Start of Text) : `0x02`
- **ETX** (End of Text) : `0x03`
**Format de trame :**
---
## Détail des commandes
| OP_CODE | Nom | Description | Format |
|---------|---------------------------|--------------------------------------------------------------|------------------------------------------------------------------------|
| 0x01 | Wi-Fi State | Indique l'état du Wi-Fi (0 = down, 1 = up) | `0x02 0x01 [0x00/0x01] 0x03` |
| 0x02 | Connection Update | Notification de connexion ou déconnexion dun appareil | `0x02 0x02 [0x00/0x01] [MAC_ADDR (6 bytes)] 0x03` |
| 0x03 | Request Connected Devices | Demande la liste des appareils connectés | `0x02 0x03 0x03` |
| 0x04 | Send Message | Envoie un message à un appareil connecté via son MAC | `0x02 0x04 [MAC_ADDR (6 bytes)] [LEN (1 byte)] [MESSAGE] 0x03` |
---
## 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.