Inglés | 中文
Este proyecto es un módulo inalámbrico basado en el chip ESP32-pico-d4 de Espressif Systems, con múltiples interfaces de protocolo de comunicación: UART, SPI. La intención original del diseño es facilitar la depuración del algoritmo de la cámara para competiciones de automóviles inteligentes y reducir la dificultad de la depuración cooperando con la computadora superior.
El hardware esp32 admite UART de 5 Mbps y esclavo SPI de 10 Mbps
Una de las características de este módulo es que puede ser compatible con la interfaz del puerto serie inalámbrico ZhuFei, tiene función de control de flujo de hardware y puede usar directamente el controlador del puerto serie inalámbrico ZhuFei para lograr una comunicación unidireccional, eliminando la necesidad de que los amigos del automóvil lo prueben. este módulo. La necesidad de volver a hacer la placa actualmente solo admite la transmisión unidireccional a la computadora superior
El software y el hardware de este proyecto son aproximados, bienvenidos a todos a comunicarse y hacer sugerencias para mejorar, mi QQ: 1626632460
La computadora superior de transmisión de imágenes del automóvil inteligente de código abierto puede usar la computadora superior Zhiyong . Este módulo se usa principalmente con esta computadora superior . El manual de usuario y las rutinas de la microcomputadora de un solo chip se encuentran en este almacén de computadoras superior , enlace: https://gitee.com /zhou-wenqi/ipc-para-coche
Enlace del vídeo de Bilibili: https://www.bilibili.com/video/BV1oZ4y1m7y2
La simulación de PCB es la siguiente
Categoría | UART+SPI |
---|---|
simulación 3D | |
Efecto soldadura | |
Enlace de código abierto JLC | https://oshwhub.com/Wander_er/891fe1d235694ef7afe684f5a2f05b73 |
Nombre | Función |
---|---|
doc | documento chip |
conductor | archivo de controlador |
firmware | firmware |
hardware | Hardware |
imagen | Imagen |
software | Script de Python de computadora superior de transmisión de imagen simple |
Dos modos de comunicación
Velocidad de transmisión UART de hasta 5 Mbps, recibe hasta 20000 bytes a la vez
Utilice el sondeo en serie para extraer los datos recibidos del búfer. Hay dos parámetros, que son el tamaño del búfer de recepción y el tiempo máximo de espera. Cuando el número de bytes recibidos alcanza el tamaño del búfer, se considera inmediatamente que se completa la recepción; cuando se completa el envío pero no se alcanza el tamaño del búfer de recepción, espere un tiempo de espera máximo antes de ver que se completa una transferencia. Este tiempo de espera se fija en 20 ms.
Por lo tanto, se puede considerar que tiene dos modos, cambie modificando el parámetro length
en la función uart_read_bytes
() en el firmware.
Modo transparente : se refiere a que no hay límite de bytes fijo para los datos transmitidos. Cada comunicación puede transmitir datos de varios tamaños, más flexibles.
Se recomienda que el uso del modo transparente tenga un intervalo mayor que serial port transmission time
+ 20ms
+ udp transmission time (rate calculated at 30Mbps)
Cuando el parámetro length
es el tamaño del búfer RX_BUF_SIZE -1
, está en modo transparente, es decir, suponiendo que ningún dato alcanzará esta longitud.
Modo de byte fijo : se refiere a tener un límite de bytes fijo para los datos transmitidos. La velocidad es más rápida que el modo transparente pero solo puede transmitir datos de tamaño fijo.
Se recomienda que el uso del modo de byte fijo tenga un intervalo mayor que serial port transmission time
+ udp transmission time (rate calculated at 30Mbps)
Cuando el parámetro length
es igual al número de bytes de datos fijos enviados, son bytes fijos, por ejemplo, cuando se transmite una imagen en escala de grises de 60 x 90 cuando es 5400.
Por supuesto, el envío de datos de longitud inferior a esta también se puede considerar como modo transparente.
Velocidad de transmisión SPI de hasta 10 Mbps, recibe hasta 25000 bytes a la vez
SPI transmission time
+ udp transmission time (calculated at 30Mbps)
El firmware integra dos modos de comunicación UART y SPI, que pueden configurarse mediante protocolo de comunicación serie y escribirse en Flash, sin perder energía, eliminando la necesidad de modificaciones repetidas del firmware.
¿Cómo conectarse con la computadora inferior?
UART
Enlace de foto | Computadora inferior |
---|---|
RXD | TXD |
TXD | RXD |
RTS (MOSI múltiplex) | CTS (si no está disponible, no importa mucho, pero debe desactivar la detección de control de flujo en la función de transmisión en serie de la computadora inferior) |
SPI
Enlace de foto | Computadora inferior |
---|---|
CLK | CLK |
miso | miso |
MOSI | MOSI |
CS | CS |
Fuente de alimentación de 5 V, el cable de tierra debe estar conectado
¿Cómo calcular el tiempo que tarda en enviar una imagen completa?
Tomemos como ejemplo la transmisión UART de 3 Mbps de una imagen de tamaño en escala de grises. Primero calcule el número de bits en la imagen: 60 x 90 x 8 = 43200 bits. Luego divida el número de bits por la velocidad en baudios: 43200/3000000 = 0,0144 s = 14,4 ms
¿Cómo ingresar y usar el modo de configuración?
Utilice el asistente serie USB a TTL en su computadora para conectar Pic-o Link
, cortocircuitar los pines MOSI
y CS
y luego restablecer. La luz indicadora rgb se muestra en amarillo indica que ha ingresado al modo de configuración. En este momento, puede configurar los parámetros de Pic-o Link a través del puerto serie. La velocidad en baudios es 115200 y el protocolo se muestra en la tabla
| Categoría | Observación | Encabezado de marco | Longitud | | :--------------------------: | :------------------------------: | :------: |- ----:| | Selección de protocolo de comunicación |Entero sin signo de 8 bits, 0: UART, 1: SPI| 0x41 (A) | 1 byte | | Velocidad en baudios del modo de comunicación UART | Entero sin signo de 32 bits, <= 5000000 | 0x42 (B) | 4bytes | | Modo de comunicación UART número de bytes del búfer de recepción | Entero sin signo de 16 bits, <= 20000 | 0x43 (C) | 2 bytes | | Cuenta Wi-Fi | cadena, hasta 32 bytes | 0x44 (D) | 32 bytes | | Contraseña WiFi | cadena, hasta 64 bytes | 0x45 (E) | 64 bytes | | Dirección IP del servidor UDP |cadena, hasta 16 bytes| 0x46 (F) | 16 bytes | | Puerto del servidor UDP |Entero sin signo de 16 bits, <=65535| 0x47 (G) | 2 bytes | | Leer los parámetros del módulo | instrucción única | 0x48 (H) |ninguno | |Escribir los parámetros de la memoria del módulo en Flash|instrucción única | 0x49 (Yo) |ninguno |
¿Qué dirección IP debo configurar específicamente?
Las siguientes dos situaciones indican los parámetros de dirección IP configurados por Pic-o Link:
¿Cómo abrir el proyecto de firmware?
Pic-o Link
y seleccione Open with Code
, espere un momento después de abrirlo, el complemento instalará automáticamente las dependencias y compilará la cadena de herramientas. ¿Cómo ingresar al modo de descarga y actualizar el firmware?
Pic-o Link
a su computadora, presione y mantenga presionado el botón DOWNLOAD
en Pic-o Link y luego presione el botón RESET
, luego haga clic en el botón de descarga en la parte inferior de Platform IO para compilar y descargar con un clic, recuerde presionar el botón RESET
después de la descarga ¿Cómo modificar el nombre de host del módulo?
CONFIG_LWIP_LOCAL_HOSTNAME
en el archivo sdkconfig.pico32
y vuelva a compilar y actualizar el firmware¿Qué frecuencia WiFi admite el módulo?
¿Requisitos de dibujo de interfaz y PCB?
El modo UART toma TC264 como ejemplo (consulte el diagrama esquemático de la interfaz del puerto serie inalámbrico de ZhuFei, se puede copiar directamente; tenga en cuenta que, en comparación con la interfaz UART general, se requiere un pin de control de flujo adicional, puede imitar el controlador de envío del puerto serie inalámbrico de ZhuFei y use un GPIO como modo de entrada para simular)
Script de visualización de la computadora superior de transmisión de imágenes de Python simple, con detección de encabezado y cola de cuadro, similar a la computadora superior de Zhiyong
Bibliotecas de Python necesarias para ejecutar:
Prueba oficial de Espressif de tasa udp/tcp de ESP32:
Tipo/Rendimiento | Aire en el laboratorio | Caja de escudo | Herramienta de prueba | Versión IDF (ID de confirmación) |
---|---|---|---|---|
RX de paquetes 802.11 sin procesar | N / A | 130 MBit/s | herramienta interna | N / A |
Transmisión de paquetes 802.11 sin procesar | N / A | 130 MBit/s | herramienta interna | N / A |
RX UDP | 30 MBit/s | 85 MBit/s | ejemplo de iperf | 15575346 |
Transmisión UDP | 30 MBit/s | 75 MBit/s | ejemplo de iperf | 15575346 |
recepción TCP | 20 MBit/s | 65 MBit/s | ejemplo de iperf | 15575346 |
Transmisión TCP | 20 MBit/s | 75 MBit/s | ejemplo de iperf | 1557534 |