Files

2.2 KiB

C-ITS Sniffer für ESP32-C5

Ein Sniffer zur Erfassung von C-ITS (Cooperative Intelligent Transportation Systems) Daten von Fahrzeugen und Verkehrssignalen.

Ziel

  • Empfängt C-ITS Nachrichten (IEEE 1609 WAVE/DSRC) auf 5,9 GHz
  • Parst die empfangenen DATENSATZ
  • Speichert die Daten in CSV-Dateien
  • Neue CSV-Datei alle 10 Minuten

Hardware

  • ESP32-C5 (LilyGO T-Dongle-C5)
  • 5 GHz WLAN-Modul für 802.11p Kommunikation

Block 1: Hardware Initialisierung (ERLEDIGT)

  • WiFi Promiscuous Mode auf 802.11p konfiguriert
  • 802.11p PHY Initialisierung implementiert
  • Kanalwechsel zu 5900 MHz (C-ITS Primary Channel)
  • NVS Flash Initialisierung

Block 2: C-ITS Parser (ERLEDIGT)

  • WAVE/DSRC Paket Struktur definiert
  • BSI Header Parsing implementiert
  • C-ITS Message Type Erkennung (CAM, DENM, SPA, VSL, etc.)
  • MAC Address Formatierung

Block 3: CSV Writer (ERLEDIGT)

  • CSV-Datei Erstellung mit Zeitstempel
  • 10-Minuten-Rollover Implementierung
  • SPI Flash Filesystem Mounting
  • Datei-Struktur: timestamp_sec,timestamp_usec,length,sender_mac,message_type,channel,rssi

Block 4: Integration (ERLEDIGT)

  • Integration aller Blöcke in app_main()
  • Sniffer Callback Implementation
  • Debugging-Logging aller empfangenen C-ITS-Nachrichten

Debugging / Logging

Die Firmware loggt JEDERE empfangene C-ITS-Nachricht über UART mit folgenden Informationen:

[SNIFFER] Log-Einträge

[SNIFFER] 802.11p Paket empfangen: 142 Bytes | RSSI: -45 dBm

[PACKET #N] Log-Einträge

[PACKET #1] C-ITS CAM Nachricht empfangen!
  MAC: A4:CF:12:34:56:78 | PDU: 136 B | Kanal: 5900 MHz
  Zeit: 1716025200.123456 | Priorität: 4
  BSI: MsgID=8 | Count=42 | Section=0 | Part=0

Log-Ausgabe über UART (115200 baud)

  • ESP_LOGI() für jede empfangene Nachricht
  • ESP_LOGD() für Debug-Informationen
  • ESP_LOGE() für Fehlermeldungen
  • Periodische Statistik alle 60 Sekunden

CSV-Ausgabe

  • Automatische Erstellung alle 10 Minuten
  • Dateiname: cits_YYYYMMDD_HHMMSS.csv
  • Speicherung auf SPI Flash (/data/)

Verwendete Bibliotheken

  • esp_wifi.h - WiFi Treiber
  • freertos/ - Task Management
  • nvs_flash.h - Non-Volatile Storage

Referenzen