Перейти к содержанию

Организация связи по ethernet, по аналогии с USB CDC VCP


Krounis

Рекомендуемые сообщения

Всех приветствую! Я новичок в программировании МК, так что подробно и своими словами опишу суть вопроса, прошу прощения за неточности и ошибки.

Мне удалось организовать обмен данными между ПК и stm32 (у меня отладочная плата stm32 nucleo-f767zi) посредством создания виртуального последовательного порта на базе USB (USB CDC Virtual com port). Открываю терминал, подключаюсь к com port'у, шлю команду "ENABLE" - включается светодиод, шлю "DISABLE" отключается, все норм.

Вопрос:
Какой самый простой способ организовать такой же обмен данными, но по ethernet (как этого требует ТЗ)? 

Покопав в эту сторону и осмотрев свою плату, понял, что rj45 уже на борту и можно организовать связь по tcp/ip, подняв на плате tcp сервер. Открыл stm32cubeMX, включил ethernet в режим RMII и подрубил стек LwIP. Сгенерировал проект и сел на стул, поняв что тупик, что делать дальше? RTOS пока затрагивать не хочу, поэтому хочу использовать LwIP Raw API, но с чего начать? Раз есть API значит есть функции, нашел инструкцию с их описанием, но алгоритм и пример их использования не нашел. 

Может кто-то уже сталкивался с такой задачей и есть пример подобный?

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

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

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

1 час назад, Krounis сказал:

Раз есть API значит есть функции, нашел инструкцию с их описанием, но алгоритм и пример их использования не нашел.

Должен быть пример использования! У меня атмеловский процессор с LWIP - начинали на базе атмеловского примера! Он правда был в отдельном пакаже, но на атмеловском сайте скачивался,-скачивается(насколько помню)!

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

2 минуты назад, ruhi сказал:

Должен быть пример использования! У меня атмеловский процессор с LWIP - начинали на базе атмеловского примера! Он правда был в отдельном пакаже, но на атмеловском сайте скачивался,-скачивается(насколько помню)!

как то не получилось найти, да и если найду будет сложно разобраться((

Ссылка на комментарий
Поделиться на другие сайты

Только что, Krounis сказал:

как то не получилось найти, да и если найду будет сложно разобраться((

При таком пессимизме, наверно искать не стоит. :)

А так там стандартный АПИ к сокетам. Кстати АПИ это и есть набор функций, в данном случае:

открыть сокет,

биндить сокет,

записать в сокет,

...

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, ruhi сказал:

При таком пессимизме, наверно искать не стоит. :)

А так там стандартный АПИ к сокетам. Кстати АПИ это и есть набор функций, в данном случае:

открыть сокет,

биндить сокет,

записать в сокет,

...

а можно короткий примерчик? кстати, а АПИ к сокетам тут можно применять? Ведь Raw API сами сокеты не использует, или я ошибаюсь)

Ссылка на комментарий
Поделиться на другие сайты

6 минут назад, Krounis сказал:

а можно короткий примерчик? кстати, а АПИ к сокетам тут можно применять? Ведь Raw API сами сокеты не использует, или я ошибаюсь)

в "SAME70 Xplained Software Package 1.5"  не знаю можно ли щас скачать, завтра посмотрю, есть:

\SAME70_Xplained\documentation\html\gmac_lwip.html

там исходники для работы с LWIP и надо выкинуть/заменить то что обращается к UART-у, насколько я понимаю!

Изменено пользователем ruhi

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

3 минуты назад, ruhi сказал:

\SAME70_Xplained\documentation\html\gmac_lwip.html

вот тут исходники для работы с LWIP и надо выкинуть/заменить то что обращается к UART-у, насколько я понимаю!

спасибо, почитаю

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, Krounis сказал:

спасибо, почитаю

сори я просмотрел. оно из скачаного пакажа у меня, завтра посмотрю где взять!

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

16 часов назад, Krounis сказал:

а можно короткий примерчик? кстати, а АПИ к сокетам тут можно применять? Ведь Raw API сами сокеты не использует, или я ошибаюсь)

А вы с чем собираетесь связываться через  Raw API? С Виндосом-линуксом? Драйвер будете писать специальный?

Там вот такой пример для Атмела, но написано, конечно... ох! как всегда - что бы никто ничего не понял :(.

main.chttpd.hhttpd.c

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, ruhi сказал:

А вы с чем собираетесь связываться через  Raw API? С Виндосом-линуксом? Драйвер будете писать специальный?

Там вот такой пример для Атмела, но написано, конечно... ох! как всегда - что бы никто ничего не понял :(.

main.chttpd.hhttpd.c

По LwIP используя Raw API хочу связать плату с ПК на windows. На плате собираюсь поднять tcp server, а клиентом будет ПК. На первых парах чтобы посылать сообщения с ПК на МК буду использовать программу терминал, к примеру Tera Term, а в дальнейшем написать уже программу на C# с GUI и прочим, чтобы посылать команды по ethernet. Вообще в финале плата будет подключена к компьютеру по сети, ПК будет высылать команды, а МК будет их обрабатывать и выполнять некоторые функции согласно пришедшим от ПК командам. 

Изменено пользователем Krounis
Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, Krounis сказал:

По LwIP используя Raw API хочу связать плату с ПК на windows. На плате собираюсь поднять tcp server, а клиентом будет ПК

TCP сокеты вам надо тогда использовать и там и там, и соответствующие функции (как в примере который я выложил)! Ни как не Raw API!!!

Потом держать сервер в железке с очень ограниченными ресурсами (STM32) - очень странное решение, сервер по определению предъявляет повышенные требования к ресурсам!

- Рассмотрите возможность поменять: сервер на ПК, клиента на девайс!

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

13 минуты назад, ruhi сказал:

TCP сокеты вам надо тогда использовать и там и там, и соответствующие функции (как в примере который я выложил)! Ни как не Raw API!!!

Потом держать сервер в железке с очень ограниченными ресурсами (STM32) - очень странное решение, сервер по определению предъявляет повышенные требования к ресурсам!

- Рассмотрите возможность поменять: сервер на ПК, клиента на девайс!

В примерах к плате stm32 nucleo-f767zi есть HTTP веб сервер, да и характеристики ее позволяют городить на ней сервер. Вот только мне не нужен веб сервер, да и пример не основан на  stm32cubeMX что значит переделать и доработать не получиться просто, а мне нужен простой обмен сообщениями между ПК и платой по ethernet. 

Ссылка на комментарий
Поделиться на другие сайты

40 минут назад, Krounis сказал:

мне нужен простой обмен сообщениями между ПК и платой по ethernet.

ethrnet+tcp/ip обмен по определению не простой, но LWIP призвана скрывать все эти сложности в себе, предоставляя пользователю стандартный интерфейс к сокетам, такой же как в windows, и он в общем то почти такой и есть-получился там, но все равно некоторые отличия избежать не удалось поскольку нет ОС! В основном это связано с необходимостью периодической активации библиотеки методом полинг-вызовов, ведь на голом (без ОС) процессоре, если функцию библиотеки не вызвать то библиотека и не работает! Для этого там таймер заводится.

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

36 минут назад, ruhi сказал:

ethrnet+tcp/ip обмен по определению не простой, но LWIP призвана скрывать все эти сложности в себе, предоставляя пользователю стандартный интерфейс к сокетам, такой же как в windows, и он в общем то почти такой и есть-получился там, но все равно некоторые отличия избежать не удалось поскольку нет ОС! В основном это связано с необходимостью периодической активации библиотеки методом полинг-вызовов, ведь на голом (без ОС) процессоре, если функцию библиотеки не вызвать то библиотека и не работает! Для этого там таймер заводится.

ага, но как теперь это реализовать) 

Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, Krounis сказал:

В примерах к плате stm32 nucleo-f767zi есть HTTP веб сервер

Дык пример то работает??? - поменяете в нем порт и IP-шник и ловите запросы с ПК с самодельного клиента?

А что такое stm32cubeMX я не знаю.

На атмеле LWIP тоже, кстати, с какой то самодельной библиотекой аппаратной поддержки идет, если это об этом!

Изменено пользователем ruhi

Можно сделать все! Но чем больше можно, тем больше нельзя!

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...