реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Засунуть TCP в UART, как скрестить ecp8266, (lpc1768) и RL-ARM - TCPnet
evgen2
сообщение Feb 15 2016, 10:28
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Есть конвертор TCP/IP->uart (дивайс ECP8266), который позволяет устанавливать TCP-IP соединение на заданном (TCP-IP) порту, после чего может посылать и принимать данные, почти аналогично функциям sendto() и recv().

И есть библиотека RL-ARM - TCPnet, в которой много чего приятного, в том числе есть возможность делать веб-сервер.
Но как одно с другим скрестить - неясно. В библиотеке есть PPP и SLIP для уартов, но это несколько не то, т.к. (1)такой протокол нужно поднимать с двух концов (2)ЕСР8266 нужно давать специфические для него команды на прием-передачу.

Но если бы получилось скрестить, было бы весьма симпатично...
Go to the top of the page
 
+Quote Post
bugdesigner
сообщение Feb 16 2016, 07:34
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 123
Регистрация: 12-06-15
Из: Земля
Пользователь №: 87 133



Цитата(evgen2 @ Feb 15 2016, 12:28) *
Но если бы получилось скрестить, было бы весьма симпатично...

Речь ведь идет о ESP8266? Статей с примерами и готовыми проектами достаточно. Из Вашего поста так и не понял что именно нужно получить.
Подробно и внятно описанная задача - это уже половина решения.

Сообщение отредактировал bugdesigner - Feb 16 2016, 07:35
Go to the top of the page
 
+Quote Post
uriy
сообщение Feb 16 2016, 10:25
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Похоже надо сделать веб сервер на хост микроконтроллере, который соединяется с ESP8266 через uart.
Что-то попадалось такое для ардины, попробуйте загуглить.
Также есть проекты вебсервера прямо внутри ESP8266.
Go to the top of the page
 
+Quote Post
evgen2
сообщение Feb 16 2016, 19:41
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(bugdesigner @ Feb 16 2016, 10:34) *
Речь ведь идет о ESP8266? Статей с примерами и готовыми проектами достаточно. Из Вашего поста так и не понял что именно нужно получить.
Подробно и внятно описанная задача - это уже половина решения.


во-первых, стандартная прошивка ESP8266 не позволяет сделать вебсервер, во-вторых, имеющиеся примеры и готовые проекты связаны исключительно с ESP8266, тут же речь о внешнем по отношению к ESP8266 контроллеру, у которого уже есть вебсервер, который работает через Эзернет и библиотеку RL-ARM - TCPnet.

В стандартной прошивке ESP8266 есть команды: "создать сервер на порту X", "получить N байт от клиента Y" (на этом порту), "Передать N байт клиенту Y".

Можно было бы взять полностью готовый какой-нибудь easyweb, но зачем умножать сущности? В библиотеке RL-ARM - TCPnet сервер уже есть, надо только найти где вход и где выход :-(

Цитата(uriy @ Feb 16 2016, 13:25) *
Похоже надо сделать веб сервер на хост микроконтроллере, который соединяется с ESP8266 через uart.
Что-то попадалось такое для ардины, попробуйте загуглить.
Также есть проекты вебсервера прямо внутри ESP8266.


Как просто сделать веб сервер на хост микроконтроллере, который соединяется с ESP8266 через uart. - понятно.
Непонятно как использовать для этой цели уже готовый вебсервер, который уже есть и соединяется с внешним миром через эзернет и RL-библиотеку
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Feb 16 2016, 21:37
Сообщение #5


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(evgen2 @ Feb 16 2016, 21:41) *
Как просто сделать веб сервер на хост микроконтроллере, который соединяется с ESP8266 через uart. - понятно.
Непонятно как использовать для этой цели уже готовый вебсервер, который уже есть и соединяется с внешним миром через эзернет и RL-библиотеку


По моему очевидно, что это сделать невозможно.
У ESP8266 примитивный набор AT команд не поддерживающий PPP, а RL-библиотека идет с закрытым TCP стеком и к модемам подключающаяся через PPP.

Для вашего случая придуман чип СС3100 и библиотеки к нему для хост контроллеров.
Go to the top of the page
 
+Quote Post
Forger
сообщение Feb 17 2016, 10:45
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(AlexandrY @ Feb 17 2016, 00:37) *
По моему очевидно, что это сделать невозможно.
У ESP8266 примитивный набор AT команд не поддерживающий PPP
В штатной прошивке действительно все работает тока через АТ команды,
но ведь можно создать свою прошивку для ESP, которая будет работать с внешним МК так, как нужно.
Есть даже готовая прошивка, чтобы писать софт на ESP8266 в среде Arduino sm.gif

Другое дело - если в самой ESP есть TCP стек, то зачем сверху городить во внешмем МК другой?

Если очень хочеться, то можно в ESP использовать, например, тока UDP, т.е. разбирать TCP/IP пакеты от внешнего контроллера с его стеком и отправлять их под UDP,
используя ESP просто как UDP-мост.
Для конфигурации ESP можно запустить отдельный UDP порт и его юзать во внешнем МК (ну, логины, пароли или даже АТ команды туда упаковать).
Т.е. в принципе ничто не мешает юзать оба стека, тока нужно удобно выбрать тот "разрез", который устроит работу обоих стеков друг с другом.



--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
CosworthRS
сообщение Feb 17 2016, 15:06
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 24-02-12
Пользователь №: 70 435



Пробовал поднимать веб-сервер через АТ-команды. Если интересно могу откопать исходники. Бросил это дело, так как работает такое ровно до тех пор, пока на странице не появляется больше 3х картинок/скриптов/css стилей. Браузер шлет запросы почти одновременно, и часть запросов пропускается самой ESPшкой. Вроде есть альтернативные прошивки, но мне было лень разбираться, поэтому задачу решил без веб-сервера.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 17 2016, 15:52
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Forger @ Feb 17 2016, 16:45) *
Если очень хочеться, то можно в ESP использовать, например, тока UDP, т.е. разбирать TCP/IP пакеты от внешнего контроллера с его стеком и отправлять их под UDP,
используя ESP просто как UDP-мост.

Если будете использовать UDP, то только UDP и получите. Веб-сервер при этом никакой не поднимете. Если конечно исключить вариант запуска спец.приложения на каком-то хосте, с кем будет коннектится изделие на ESP8266 (хоть по UDP хоть по TCP-сокету), серверный порт будет открыт на том хосте, а все данные и служебные события будут пробрасываться через туннель хост<->ESP.
Вообще, имхо, судя по командам ESP8266, ничто не мешает поднять на нём веб-сервер (AT-командами). Хотя я не работал на нём в режиме сервера, а создавал только клиентские сокеты с него. Но работало стабильно, часами и потоки неплохие передавались.

Цитата(Forger @ Feb 17 2016, 16:45) *
Т.е. в принципе ничто не мешает юзать оба стека, тока нужно удобно выбрать тот "разрез", который устроит работу обоих стеков друг с другом.

Бред какой-то. Стек стеком погоняет.....
Go to the top of the page
 
+Quote Post
gazpar
сообщение Feb 17 2016, 16:21
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 147
Регистрация: 9-01-14
Пользователь №: 79 952



В базовой версии прошивки, АТ командами можно настроить http сервер. Сервер может работать в режиме максимум 3 подключений. Т.е. одновременно, насколько я понял, может обратиться к нему три клиента.
Но есть ограничение на размер пакета: 2048 байт. Т.е. на один запрос клиента можно выдать максимум 2048 байт. Поэтому передачу большого объёма данных, в данном случае, нужно организовывать пакетно.

Работает стабильно. Сбои в работе, покамест, не наблюдал.
Go to the top of the page
 
+Quote Post
Forger
сообщение Feb 17 2016, 17:31
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(jcxz @ Feb 17 2016, 18:52) *
Если будете использовать UDP, то только UDP и получите. Веб-сервер при этом никакой не поднимете.

Имеется ввиду самые сырые пакеты, каторые сыпятся в обычных eth девайсах в ETHERNET дравер трансивера.
UDP - для примера работа. Где именно "разрезать" - надо самому решать.
Фактически нужно разгрузить ESP, заставив его тока гонять голые пакеты, а все остальное пусть разруливает стек на внешем МК.

Цитата
Если конечно исключить вариант запуска спец.приложения на каком-то хосте, с кем будет коннектится изделие на ESP8266 (хоть по UDP хоть по TCP-сокету), серверный порт будет открыт на том хосте, а все данные и служебные события будут пробрасываться через туннель хост<->ESP.

Тоже вариант )))

Цитата
Бред какой-то. Стек стеком погоняет.....
И что с того?
© Вам шашечки или ехать?
Ведь нужен результат, рабочий стабильный результат, я считаю, что тут это решаемо вполне ))


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
mantech
сообщение Feb 17 2016, 18:45
Сообщение #11


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(AlexandrY @ Feb 17 2016, 00:37) *
Для вашего случая придуман чип СС3100 и библиотеки к нему для хост контроллеров.


Интересные эти буржуи, аж до слез! biggrin.gif

"Wi-Fi Driver and Multiple Internet Protocols in ROM"... ROM!! Понимаете!, т.е. если там глюки в протоколах или придумали какой-нить новый SSL и т.п. ВСЕ!! Готовьте паяльник и меняйте чип crying.gif

А это совсем добило - "The CC3100 device maintains a proprietary file system on the SFLASH." Ну вот здесь-то зачем "шифруетесь" ? Сделали б какую-нить стандартную ФС или совместимость с СД картами, и простота и удобство...

ЗЫ. Нее, уж лучше родной LWIP на своем МК, как-то приятнее и удобнее wink.gif А этими подельями пусть лучше игрушечники в интернете(ИОТ) развлекаются...

Сообщение отредактировал mantech - Feb 17 2016, 18:48
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 18 2016, 09:01
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Forger @ Feb 17 2016, 23:31) *
Имеется ввиду самые сырые пакеты, каторые сыпятся в обычных eth девайсах в ETHERNET дравер трансивера.

Нет в ESP8266 никаких сырых пакетов и тем более Ethernet. По-крайней мере в стандартных прошивках и альтернативных которые я видел.
Есть только TCP-сокеты и UDP.
Хотя возможно можно написать свою прошивку для него

Цитата(Forger @ Feb 17 2016, 23:31) *
Ведь нужен результат, рабочий стабильный результат, я считаю, что тут это решаемо вполне ))

Если перепишете прошивку ESP8266 - будет решаемо.
Go to the top of the page
 
+Quote Post
evgen2
сообщение Feb 18 2016, 09:34
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(Forger @ Feb 17 2016, 13:45) *
В штатной прошивке действительно все работает тока через АТ команды,
но ведь можно создать свою прошивку для ESP, которая будет работать с внешним МК так, как нужно.
Есть даже готовая прошивка, чтобы писать софт на ESP8266 в среде Arduino sm.gif

Другое дело - если в самой ESP есть TCP стек, то зачем сверху городить во внешмем МК другой?


Хочется не к ESP прикрутить внешний МК, а ровно наоборот - к МК прикрутить внешний ESP и использовать ESP для транспорта TCP пакетов к уже готовому веб-серверу и не заниматься изобретением велосипеда


Цитата(jcxz @ Feb 18 2016, 12:01) *
Есть только TCP-сокеты и UDP.


ну так TCP сокеты на 80-ом порту - это и есть веб-сервер.
Надо только решить задачу по имитации оргазма получения-передачи данных с уарта в эзернет


Цитата(Forger @ Feb 17 2016, 13:45) *
Если очень хочеться, то можно в ESP использовать, например, тока UDP, т.е. разбирать TCP/IP пакеты от внешнего контроллера с его стеком и отправлять их под UDP,
используя ESP просто как UDP-мост.

с этим проблем нет - просто скармливаем данные с уарта в колл-бек от UDP.. а вот от HTTP коллбеков библиотеке несколько и непонятно, что, где и куда нужно кормить...
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 18 2016, 11:04
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(evgen2 @ Feb 18 2016, 15:34) *
ну так TCP сокеты на 80-ом порту - это и есть веб-сервер.

Веб-сервер это HTTP-протокол, реализуемый поверх TCP. Сервер открывает TCP-порт в пассивном режиме. И не обязательно 80-й. Любой.

Цитата(evgen2 @ Feb 18 2016, 15:34) *
с этим проблем нет - просто скармливаем данные с уарта в колл-бек от UDP.. а вот от HTTP коллбеков библиотеке несколько и непонятно, что, где и куда нужно кормить...

Ещё раз: UDP не имеет никакого отношения к HTTP-протоколу, как и к TCP-протоколу. RTFM наконец-то!
Go to the top of the page
 
+Quote Post
evgen2
сообщение Feb 18 2016, 16:27
Сообщение #15


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(jcxz @ Feb 18 2016, 14:04) *
Веб-сервер это HTTP-протокол, реализуемый поверх TCP. Сервер открывает TCP-порт в пассивном режиме. И не обязательно 80-й. Любой.


Ещё раз: UDP не имеет никакого отношения к HTTP-протоколу, как и к TCP-протоколу. RTFM наконец-то!

Уважаемый, мы тут не азы http/tcp/udp обсуждаем, а конкретную реализацию, которая привязана к конкретной библиотеке. Можете что-нибудь сказать по заявленной в топике теме?.

ЗЫ:
Вообще ожидалось, что ответы могут быть
* я так делал.....
* в рамках библиотеки RL-ARM - TCPnet - никак, не парься и переходи на....
* изобретай велосипед в виде двух отдельных вебсерверов
* делай вебсервер на ecp8266, а с контроллером обменивайся сообщениями

Сообщение отредактировал evgen2 - Feb 18 2016, 16:33
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 4th July 2025 - 22:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.01508 секунд с 7
ELECTRONIX ©2004-2016