английский | 中文
Этот проект представляет собой беспроводной модуль на базе чипа ESP32-pico-d4 от Espressif Systems, с несколькими интерфейсами протоколов связи: UART, SPI. Первоначальная цель проекта — облегчить отладку алгоритма камеры для соревнований умных автомобилей и снизить сложность отладки за счет взаимодействия с верхним компьютером.
Аппаратное обеспечение esp32 поддерживает UART 5 Мбит/с и ведомое устройство SPI 10 Мбит/с.
Одной из особенностей этого модуля является то, что он может быть совместим с интерфейсом беспроводного последовательного порта ZhuFei, имеет функцию аппаратного управления потоком данных и может напрямую использовать драйвер беспроводного последовательного порта ZhuFei для достижения односторонней связи, что устраняет необходимость тестирования для друзей-автомобилистов. этот модуль. Необходимость повторного изготовления платы, в настоящее время поддерживается только односторонняя передача на верхний компьютер.
Программное и аппаратное обеспечение этого проекта являются грубыми, приветствуем всех, кто общается и вносит предложения по улучшению, мой QQ: 1626632460
Верхний компьютер передачи изображения интеллектуального автомобиля с открытым исходным кодом может использовать верхний компьютер Zhiyong , этот модуль в основном используется с этим верхним компьютером , руководство пользователя и одночиповые процедуры микрокомпьютера находятся на этом верхнем компьютерном складе , ссылка: https://gitee.com /zhou-wenqi/ipc-for-car
Ссылка на видео Билибили: https://www.bilibili.com/video/BV1oZ4y1m7y2
Моделирование печатной платы выглядит следующим образом
Категория | УАПП+SPI |
---|---|
3D-моделирование | |
Сварочный эффект | |
Ссылка на открытый исходный код JLC | https://oshwhub.com/Wander_er/891fe1d235694ef7afe684f5a2f05b73 |
Имя | Функция |
---|---|
док | Чип-документ |
водитель | Файл драйвера |
прошивка | Прошивка |
аппаратное обеспечение | Аппаратное обеспечение |
изображение | Картина |
программное обеспечение | Простая передача изображения на верхний компьютерный скрипт Python |
Два режима связи
Скорость передачи данных UART до 5 Мбит/с, прием до 20000 байт за раз
Используйте последовательный опрос для извлечения полученных данных из буфера. Есть два параметра: размер приемного буфера и максимальное время ожидания. Когда количество полученных байтов достигает размера буфера, это немедленно считается завершением приема; когда отправка завершена, но не достигнут размер буфера приема, подождите максимальное время ожидания, прежде чем считать, что передача завершена. Это время ожидания фиксировано и составляет 20 мс.
Таким образом, его можно рассматривать как имеющий два режима, переключение путем изменения параметра length
в функции uart_read_bytes
() в прошивке.
Прозрачный режим : означает отсутствие фиксированного ограничения в байтах для передаваемых данных. Каждая связь может передавать данные различного размера, более гибко.
Рекомендуется использовать прозрачный режим с интервалом, превышающим serial port transmission time
+ 20ms
+ udp transmission time (rate calculated at 30Mbps)
Когда параметр length
равен размеру буфера RX_BUF_SIZE -1
, это прозрачный режим. При этом предполагается, что никакие данные не достигнут этой длины.
Режим фиксированного байта : означает наличие фиксированного ограничения в байтах для передаваемых данных. Скорость выше, чем в прозрачном режиме, но можно передавать только данные фиксированного размера.
Рекомендуется, чтобы при использовании режима фиксированных байтов интервал превышал serial port transmission time
+ udp transmission time (rate calculated at 30Mbps)
Когда параметр length
равен количеству отправленных фиксированных данных в байтах, это фиксированные байты. Например, при передаче изображения в оттенках серого размером 60 x 90, когда оно равно 5400.
Конечно, отправка данных меньшей длины также может рассматриваться как прозрачный режим.
Скорость передачи данных SPI до 10 Мбит/с, прием до 25000 байт за раз
SPI transmission time
+ udp transmission time (calculated at 30Mbps)
Прошивка объединяет два режима связи UART и SPI, которые можно настроить с помощью протокола последовательной связи и записать во флэш-память без потери мощности, что устраняет необходимость повторной модификации прошивки.
Как подключиться к нижнему компьютеру?
УАРТ
Пик-о ссылка | Нижний компьютер |
---|---|
прием | TXD |
TXD | прием |
РТС (мультиплексный MOSI) | CTS (если не доступен, это не имеет большого значения, но вам необходимо отключить обнаружение управления потоком в функции последовательной передачи нижнего компьютера) |
СПИ
Пик-о ссылка | Нижний компьютер |
---|---|
КЛК | КЛК |
МИСО | МИСО |
МОСИ | МОСИ |
CS | CS |
Источник питания 5 В, необходимо подключить заземляющий провод
Как рассчитать время отправки полного изображения?
В качестве примера возьмем передачу UART 3 Мбит/с изображения в оттенках серого. Сначала подсчитайте количество бит в изображении: 60 х 90 х 8 = 43200 бит. Затем разделите количество бит на скорость передачи данных: 43200/3000000 = 0,0144 с = 14,4 мс.
Как войти и использовать режим конфигурации?
Используйте последовательный помощник USB-TTL на своем компьютере, чтобы подключить Pic-o Link
, закоротить контакты MOSI
и CS
, а затем выполнить сброс. Индикатор RGB горит желтым цветом и указывает на то, что вы вошли в режим настройки. В это время вы можете настроить параметры Pic-o Link через последовательный порт. Скорость передачи данных — 115200 , протокол указан в таблице.
| Категория | Примечание | Заголовок кадра | Длина | | :--------------------------: | :------------------------------: | :------: |- ----:| | Выбор протокола связи |8-битное целое число без знака, 0: UART, 1: SPI| 0x41 (А) | 1 байт | | Скорость передачи данных в режиме связи UART | 32-битное целое число без знака, <=5000000 | 0x42 (Б) | 4 байта | | Режим связи UART получает номер байта буфера | 16-битное целое число без знака, <=20000 | 0x43 (С) | 2 байта | | учетная запись Wi-Fi | строка до 32 байт | 0x44 (Д) | 32 байта | | Пароль Wi-Fi | строка длиной до 64 байт | 0x45 (Е) | 64 байта | | IP-адрес UDP-сервера |строка, до 16 байт| 0x46 (Ф) | 16 байт | | Порт UDP-сервера |16-битное целое число без знака, <=65535| 0x47 (Г) | 2 байта | | Чтение параметров модуля |одна инструкция | 0x48 (H) |нет | |Запись параметров памяти модуля во Flash|одной командой | 0x49 (I) |нет |
Какой IP-адрес мне следует настроить конкретно?
Следующие две ситуации указывают на параметры IP-адреса, настроенные с помощью Pic-o Link:
Как открыть проект прошивки?
Pic-o Link
и выберите Open with Code
, подождите некоторое время после открытия, плагин автоматически установит зависимости и скомпилирует набор инструментов. Как войти в режим загрузки и прошить прошивку?
Pic-o Link
к компьютеру, нажмите и удерживайте кнопку DOWNLOAD
на Pic-o Link, затем нажмите кнопку RESET
, затем нажмите кнопку загрузки в нижней части Platform IO, чтобы скомпилировать и загрузить с помощью одним щелчком мыши, не забудьте нажать кнопку RESET
после загрузки Как изменить имя хоста модуля?
CONFIG_LWIP_LOCAL_HOSTNAME
в файле sdkconfig.pico32
, перекомпилируйте и прошейте прошивку.Какую частоту WiFI поддерживает модуль?
Требования к интерфейсу и чертежу печатной платы?
В режиме UART в качестве примера используется TC264 (см. принципиальную схему интерфейса беспроводного последовательного порта ZhuFei, которую можно скопировать напрямую, обратите внимание, что по сравнению с общим интерфейсом UART требуется дополнительный контакт управления потоком, который может имитировать драйвер отправки последовательного порта беспроводного порта ZhuFei, используя GPIO в качестве режим ввода для моделирования)
Простой скрипт отображения верхнего компьютера для передачи изображений на Python, с обнаружением заголовка и конца кадра, аналогичный верхнему компьютеру Zhiyong
Библиотеки Python, необходимые для запуска:
Официальный тест Espressif скорости ESP32 udp/tcp:
Тип/Пропускная способность | Воздух в лаборатории | Щит-коробка | Инструмент тестирования | Версия IDF (идентификатор фиксации) |
---|---|---|---|---|
Прием необработанных пакетов 802.11 | Н/Д | 130 МБит/с | Внутренний инструмент | NA |
Необработанная передача пакетов 802.11 | Н/Д | 130 МБит/с | Внутренний инструмент | NA |
UDP-приемник | 30 Мбит/с | 85 Мбит/с | пример iperf | 15575346 |
UDP-TX | 30 Мбит/с | 75 Мбит/с | пример iperf | 15575346 |
TCP-приемник | 20 Мбит/с | 65 Мбит/с | пример iperf | 15575346 |
TCP-передача | 20 Мбит/с | 75 Мбит/с | пример iperf | 1557534 |