• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

UART->WiFi Почему так медленно?

SSP123

New member
Подключил ESP-12F к UART на скорости 115200 (она такая по умолчанию). Шлю куски данных по 2048 байт (больше за раз нельзя, как я понял). Между отправкой куска 2048 байт, до того, как ESP скажет "SEND OK" проходит почти секунда (!!!) Так и должно быть? Если слать следующие 2048 байт раньше этой "почти секунды", то ESP говорит, что он "BUSY". Как так, что я делаю не так, куда рыть? Прошивку не менял (version 0.40.0.0 Aug 8 2015 SDK 1.3.0).

Пробовал включать ESP и как сервер, и как клиент - результат один и тот же. Данные не теряются по дороге, хоть на этом спасибо, но почему так медленно, как снизить эту задержку?
 

yron

Member
Подключил ESP-12F к UART на скорости 115200 (она такая по умолчанию). Шлю куски данных по 2048 байт (больше за раз нельзя, как я понял). Между отправкой куска 2048 байт, до того, как ESP скажет "SEND OK" проходит почти секунда (!!!) Так и должно быть? Если слать следующие 2048 байт раньше этой "почти секунды", то ESP говорит, что он "BUSY". Как так, что я делаю не так, куда рыть? Прошивку не менял (version 0.40.0.0 Aug 8 2015 SDK 1.3.0).

Пробовал включать ESP и как сервер, и как клиент - результат один и тот же. Данные не теряются по дороге, хоть на этом спасибо, но почему так медленно, как снизить эту задержку?
Попробуй другие прошивки , у меня на NodeMcu если не ошибаюсь отсылает по 10-20кб без потерь за раз.
 

SSP123

New member
Попробуй другие прошивки , у меня на NodeMcu если не ошибаюсь отсылает по 10-20кб без потерь за раз.
Спасибо, я только начал разбираться, но сразу понял, что NodeMcu мне не надо. У меня задача - прогонять большие объемы данных через UART -> WiFi на максимально возможной скорости. А эта прошивка, как я понял, такого максимума скорости не дает. Рулить ADC, PWM и GPIO на этом чипе мне не надо. Попробую прошивку TCP2UART, о результатах по скорости передачи обязательно отпишусь.

Вообще странно, на этом форуме скорость передачи людей интересует как-то слабо. Или все уже давно все поняли? Тогда в FAQ вынесли бы, что-ли.
 

pvvx

Активный участник сообщества

SSP123

New member
Через пару-тройку дней я заимею USB <-> UART и сам все пойму, конечно. Ну... Наверное. Наверное пойму.

А вы, pvxx, кокаин все время употребляете, или только утром?
 

SSP123

New member
Круто. Ну и чего мне ждать, от Вашей прошивки? Ведь интересно же знать заранее, да и полезно?

Скольколько тактов esp8266, работающим на частоте 80 МГц, проходит между последним байтом посылки из UART и готовностью ESP принять новую посылку? Шучу, просто на вскидку скажите - не томите.
 

pvvx

Активный участник сообщества
Круто. Ну и чего мне ждать, от Вашей прошивки? Ведь интересно же знать заранее, да и полезно?

Скольколько тактов esp8266, работающим на частоте 80 МГц, проходит между последним байтом посылки из UART и готовностью ESP принять новую посылку? Шучу, просто на вскидку скажите - не томите.
Вечность. Она у всех разная. У вас с кокаиновая... :)
Вы вопрос задали - на него и отвечено, что в FAQ и темы про "скорость передачи" есть, а прошивки тут не при чем.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Вечность - это вообще хер пойми чего. Я не хочу даже обсуждать "кокаиновую вечность". Так как там с байтами, хотя бы примерно?
Как в Modbus - если пауза на приеме в 2.5 байта, то передача блока. Если непрерывный поток, то одно из ограничений - отсылка по сколько влезет в размер MTU блока сети или по времени ~50 ms, если скорость UART совсем низкая (за эти 50 ms не набирается пакет TCP).
Вопросы у вас неопределенные, несформированные. Понятия "скорости" расплывчаты.
После приема последнего стоп бита от байта по UART, с выше описанными условиями, "скорость" доставки пакета зависит от роутера и приемного компа - порядок от сотни мкс.

И WiFi не является надежным каналом – всегда есть дырки в передаче в зависимости от загрузки эфира другими устройствами и помехами, по этому передача непрерывного потока c UART без учета RTS/CTS сигналов невозможна. При лучших летных погодных условиях для выделенного частного роутера для ESP8266 в лесу, можно добиться непрерывной полу-дуплексной передачи в 3 Мбит/с, а дуплекса к 1 Мбит/сек, если не оптимизировать передачи по блокам.

Т.ч. бытовое, кухонное понятие “скорости” для передачи UART-WiFi-... определяется “кокаиновой вечностью” и не подлежит переводу на понятия “телепузиков”. Соответственно каждый “телепузик” и создает тему – “какая скорость у UART-WiFi-… ?”
 
Последнее редактирование:

SSP123

New member
Т.ч. бытовое, кухонное понятие “скорости” для передачи UART-WiFi-... определяется “кокаиновой вечностью” и не подлежит переводу на понятия “телепузиков”. Соответственно каждый “телепузик” и создает тему – “какая скорость у UART-WiFi-… ?”
Да нормальный вопрос, и для телепузика тоже нормальный и вполне ожидаемый. Понятия скорости - самые обычные. Со входа ясно, что скажем скорость UART совсем не соответствует скорости передачи по Wi-Fi + TCP. По UART, к примеру, скорость 115200, а "по Wi-Fi" выходит от силы 3000 кбпс, при режиме AT и размере блока 2048 байт. Видно, что есть некая "мгновенная" скорость и некая "долговременная", причем "долговременная" меньше на порядки. Но вы, тем не менее, ответили на этот телепузичный вопрос вполне нормально, спасибо :) Отпишусь, что получится у меня на счет скорости, с временными диаграммами, если, конечно, ума хватит перепрошить вашей прошивкой этот ESP ;)
 
Сверху Снизу