Englisch | 中文
Bei diesem Projekt handelt es sich um ein drahtloses Modul basierend auf dem ESP32-pico-d4-Chip von Espressif Systems mit mehreren Kommunikationsprotokollschnittstellen: UART, SPI. Die ursprüngliche Absicht des Entwurfs besteht darin, das Debuggen des Kameraalgorithmus für Smart-Car-Wettbewerbe zu erleichtern und die Schwierigkeit des Debuggens durch die Zusammenarbeit mit dem oberen Computer zu verringern.
Die esp32-Hardware unterstützt 5 Mbit/s UART und 10 Mbit/s SPI-Slave
Eines der Merkmale dieses Moduls besteht darin, dass es mit der drahtlosen seriellen Schnittstelle von ZhuFei kompatibel ist, über eine Hardware-Flusskontrollfunktion verfügt und direkt den Treiber für die drahtlose serielle Schnittstelle von ZhuFei verwenden kann, um eine Einwegkommunikation zu erreichen, sodass Autofreunde keinen Test durchführen müssen dieses Modul. Da eine erneute Platinenherstellung erforderlich ist, wird derzeit nur die Übertragung in eine Richtung an den oberen Computer unterstützt
Die Soft- und Hardware dieses Projekts ist grob. Jeder ist herzlich willkommen, zu kommunizieren und Verbesserungsvorschläge zu machen. Meine Frage lautet: 1626632460
Der Open-Source-Bildübertragungs-Obercomputer für intelligente Autos kann den Obercomputer von Zhiyong verwenden . Dieses Modul wird hauptsächlich mit diesem Obercomputer verwendet . Das Benutzerhandbuch und die Routinen für Einzelchip-Mikrocomputer befinden sich in diesem Obercomputerlager , Link: https://gitee.com /zhou-wenqi/ipc-for-car
Bilibili-Videolink: https://www.bilibili.com/video/BV1oZ4y1m7y2
Die PCB-Simulation ist wie folgt
Kategorie | UART+SPI |
---|---|
3D-Simulation | |
Schweißeffekt | |
JLC-Open-Source-Link | https://oshwhub.com/Wander_er/891fe1d235694ef7afe684f5a2f05b73 |
Name | Funktion |
---|---|
Dok | Chipdokument |
Treiber | Treiberdatei |
Firmware | Firmware |
Hardware | Hardware |
Bild | Bild |
Software | Einfaches Bildübertragungs-Python-Skript für den oberen Computer |
Zwei Kommunikationsmodi
UART- Baudrate bis zu 5 Mbit/s, Empfang von bis zu 20.000 Bytes gleichzeitig
Verwenden Sie serielle Abfrage, um empfangene Daten aus dem Puffer zu extrahieren. Es gibt zwei Parameter: die Empfangspuffergröße und die maximale Wartezeit. Wenn die Anzahl der empfangenen Bytes die Puffergröße erreicht, gilt dies sofort als abgeschlossener Empfang; Wenn der Versand abgeschlossen ist, aber die Empfangspuffergröße nicht erreicht wird, warten Sie eine maximale Wartezeit ab, bevor Sie die Übertragung als abgeschlossen betrachten. Diese Wartezeit ist auf 20ms festgelegt.
Es kann also davon ausgegangen werden, dass es zwei Modi gibt: Der Wechsel erfolgt durch Ändern des length
in der Funktion uart_read_bytes
() in der Firmware.
Transparenter Modus : bezieht sich auf kein festes Byte-Limit für übertragene Daten. Jede Kommunikation kann Daten unterschiedlicher Größe flexibler übertragen.
Es wird empfohlen, dass die Verwendung des transparenten Modus ein Intervall hat, das größer ist als serial port transmission time
+ 20ms
+ udp transmission time (rate calculated at 30Mbps)
Wenn der length
die Puffergröße RX_BUF_SIZE -1
ist, handelt es sich um einen transparenten Modus. Das bedeutet, dass davon ausgegangen wird, dass keine Daten diese Länge erreichen.
Festbyte-Modus : bezieht sich auf ein festes Byte-Limit für übertragene Daten. Die Geschwindigkeit ist höher als im transparenten Modus, es können jedoch nur Daten fester Größe übertragen werden.
Es wird empfohlen, dass bei Verwendung des Festbyte-Modus ein Intervall größer ist als serial port transmission time
+ udp transmission time (rate calculated at 30Mbps)
Wenn der length
gleich der Anzahl der gesendeten Bytes fester Daten ist, handelt es sich um feste Bytes. Wenn beispielsweise ein Graustufenbild von 60 x 90 übertragen wird, sind es 5400.
Natürlich kann das Senden von Daten mit einer kürzeren Länge als dieser Länge auch als transparenter Modus angesehen werden.
SPI- Baudrate bis zu 10 Mbit/s, Empfang von bis zu 25.000 Bytes gleichzeitig
SPI transmission time
+ udp transmission time (calculated at 30Mbps)
Die Firmware integriert die beiden Kommunikationsmodi UART und SPI, die über ein serielles Kommunikationsprotokoll konfiguriert und in Flash geschrieben werden können, ohne dass es zu Stromausfällen kommt, sodass keine wiederholte Änderung der Firmware erforderlich ist
Wie verbinde ich mich mit dem unteren Computer?
UART
Pic-o-Link | Unterer Computer |
---|---|
RXD | TXD |
TXD | RXD |
RTS (Multiplex MOSI) | CTS (falls nicht verfügbar, macht es nicht viel, aber Sie müssen die Flusskontrollerkennung in der unteren seriellen Übertragungsfunktion des Computers deaktivieren) |
SPI
Pic-o-Link | Unterer Computer |
---|---|
CLK | CLK |
MISO | MISO |
MOSI | MOSI |
CS | CS |
5V-Stromversorgung, Erdungskabel muss angeschlossen sein
Wie berechnet man die Zeit, die zum Versenden eines vollständigen Bildes benötigt wird?
Nehmen Sie als Beispiel die UART 3Mbps-Übertragung eines Graustufenbildes der Größe. Berechnen Sie zunächst die Anzahl der Bits im Bild: 60 x 90 x 8 = 43200 Bits. Teilen Sie dann die Anzahl der Bits durch die Baudrate: 43200 / 3000000 = 0,0144 s = 14,4 ms
Wie kann ich den Konfigurationsmodus aufrufen und verwenden?
Verwenden Sie den seriellen USB-zu-TTL-Assistenten auf Ihrem Computer, um Pic-o Link
anzuschließen, MOSI
und CS
-Pins kurzzuschließen und dann zurückzusetzen. Die RGB-Anzeigeleuchte leuchtet gelb und zeigt an, dass Sie sich im Konfigurationsmodus befinden. Zu diesem Zeitpunkt können Sie die Pic-o Link-Parameter über die serielle Schnittstelle konfigurieren. Die Baudrate beträgt 115200 und das Protokoll ist in der Tabelle aufgeführt
| Kategorie | Bemerkung | Frame-Header | Länge | | :------------: | :---------------: | :------: |- ----:| | Auswahl des Kommunikationsprotokolls |8-Bit-Ganzzahl ohne Vorzeichen, 0: UART, 1: SPI| 0x41 (A) | 1 Byte | | Baudrate des UART-Kommunikationsmodus | 32-Bit-Ganzzahl ohne Vorzeichen, <=5000000 | 0x42 (B) | 4 Byte | | UART-Kommunikationsmodus-Empfangspuffer-Bytenummer| 16-Bit-Ganzzahl ohne Vorzeichen, <=20000 | 0x43 (C) | 2 Byte | | WLAN-Konto | Zeichenfolge, bis zu 32 Byte | 0x44 (D) | 32 Byte | | WLAN-Passwort | Zeichenfolge, bis zu 64 Byte | 0x45 (E) | 64 Byte | | UDP-Server-IP-Adresse |Zeichenfolge, bis zu 16 Byte| 0x46 (F) | 16 Byte | | UDP-Server-Port |16-Bit-Ganzzahl ohne Vorzeichen, <=65535| 0x47 (G) | 2 Byte | | Modulparameter lesen |Einzelanweisung | 0x48 (H) |keine | |Modulspeicherparameter in Flash schreiben|Einzelanweisung | 0x49 (I) |keine |
Welche IP-Adresse sollte ich konkret konfigurieren?
Die folgenden zwei Situationen geben die von Pic-o Link konfigurierten IP-Adressparameter an:
Wie öffne ich das Firmware-Projekt?
Pic-o Link
und wählen Sie Open with Code
. Warten Sie nach dem Öffnen eine Weile. Das Plugin installiert dann automatisch die Abhängigkeiten und kompiliert die Toolchain Wie gelangt man in den Download-Modus und flasht die Firmware?
Pic-o Link
mit Ihrem Computer zu verbinden, halten Sie die DOWNLOAD
Taste auf Pic-o Link gedrückt, drücken Sie dann die RESET
-Taste und klicken Sie dann auf die Download-Schaltfläche unten in Platform IO, um zu kompilieren und herunterzuladen Denken Sie daran, nach dem Herunterladen mit einem Klick die RESET
-Taste zu drücken Wie ändere ich den Hostnamen des Moduls?
CONFIG_LWIP_LOCAL_HOSTNAME
in der Datei sdkconfig.pico32
und kompilieren Sie die Firmware neu und flashen Sie sieWelche WLAN-Frequenz unterstützt das Modul?
Anforderungen an Schnittstellen und Leiterplattenzeichnungen?
Im UART-Modus wird TC264 als Beispiel verwendet (siehe schematisches Diagramm der drahtlosen seriellen Schnittstelle von ZhuFei, kann direkt kopiert werden, beachten Sie, dass im Vergleich zur allgemeinen UART-Schnittstelle ein zusätzlicher Flusskontroll-Pin erforderlich ist, kann der Sendetreiber der drahtlosen seriellen Schnittstelle von ZhuFei einen GPIO imitieren). Eingabemodus zur Simulation)
Einfaches Python-Bildübertragungsskript für die Anzeige des oberen Computers mit Frame-Header- und Frame-Tail-Erkennung, ähnlich dem oberen Computer von Zhiyong
Zum Ausführen erforderliche Python-Bibliotheken:
Offizieller Espressif-Test der ESP32-UDP/TCP-Rate:
Typ/Durchsatz | Luft im Labor | Schildkasten | Testtool | IDF-Version (Commit-ID) |
---|---|---|---|---|
Roher 802.11-Paketempfang | N / A | 130 MBit/s | Internes Werkzeug | N / A |
Rohes 802.11-Paket-TX | N / A | 130 MBit/s | Internes Werkzeug | N / A |
UDP-RX | 30 MBit/s | 85 MBit/s | iperf-Beispiel | 15575346 |
UDP-TX | 30 MBit/s | 75 MBit/s | iperf-Beispiel | 15575346 |
TCP-RX | 20 MBit/s | 65 MBit/s | iperf-Beispiel | 15575346 |
TCP-TX | 20 MBit/s | 75 MBit/s | iperf-Beispiel | 1557534 |