Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Cетевые протоколы и технологии

Cетевые протоколы и технологии TCP/IP стек

Ответ
 
Опции темы Опции просмотра
Старый 21.10.2016, 09:02   #1
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Orel
Возраст: 38
Сообщений: 4,418
Вес репутации: 4322/119
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию LwIP TCP-сервер и UDP-клиент на одном MCU+LAN8720A?

Всем привет!

Проект без операционной системы с LwIP-стеком (low-level "core" / "callback" or "raw" API) на одном микроконтроллере (основная программа + TCP-сервер (Modbus TCP)), работает.

Меня интересует, можно ли в этот проект добавить еще и UDP-клиент (SNTP-клиент) и не будет ли TCP-сервер конфликтовать с UDP-клиентом?
По отдельности TCP-сервер работает, UDP-клиент работает, а как все вместе совместить (в проект c TCP-сервером добавить UDP-клиент)? Я еще с такой задачей не сталкивался, поэтому сильно не ругайте.

Если что, то в качестве PHY используется LAN8720A, разъем RJ45 один, проект на STM32, но микроконтроллер пока не важен, меня интересует сама возможность совмещения серера и клиента.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 21.10.2016, 10:13   #2
bzx
Senior Member
 
Аватар для bzx
 
Регистрация: 25.02.2007
Адрес: St. Petersburg
Возраст: 44
Сообщений: 436
Вес репутации: 1021/53
bzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud of
Отправить сообщение для bzx с помощью ICQ Отправить сообщение для bzx с помощью Skype™
По умолчанию Re: LwIP TCP-сервер и UDP-клиент на одном MCU+LAN8720A?

Цитата:
Сообщение от Pridnya Посмотреть сообщение
...проект на STM32, но микроконтроллер пока не важен, меня интересует сама возможность совмещения серера и клиента.
Да, без проблем.
По опыту, на f407 и f429 + LwIP + rtl8201 постоянно открыто несколько входящих исходящих соккетов udp и tcp, включая порт 80.
http://qbit.su/example/riskom/contrF429/
__________________
Для связи email: info собака qbit.su
bzx вне форума   Ответить с цитированием
Старый 21.10.2016, 10:36   #3
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Orel
Возраст: 38
Сообщений: 4,418
Вес репутации: 4322/119
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: LwIP TCP-сервер и UDP-клиент на одном MCU+LAN8720A?

Цитата:
Сообщение от bzx Посмотреть сообщение
Да, без проблем.
По опыту, на f407 и f429 + LwIP + rtl8201 постоянно открыто несколько входящих исходящих соккетов udp и tcp, включая порт 80.
http://qbit.su/example/riskom/contrF429/
LwIP предполагает три вида API.
Цитата:
lwIP provides three Application Program's Interfaces (APIs) for programs
to use for communication with the TCP/IP code:
1) low-level "core" / "callback" or "raw" API.
2) higher-level "sequential" API.
3) BSD-style socket API.
Каждый из видов API основан на предыдущем.
Я использую самый низкоуровневый вид API (low-level "core" / "callback" or "raw" API), вы используете сокеты.
Вы можете ответить, какой вид API вы используете из этих трех? Виды 2 и 3 предполагают наличие операционной системы (у меня её нет).
PS: Фотки посмотрел. Есть вопрос и замечание. Работает плата? Часы не убегают?
Миниатюры
01.PNG   02.jpg  
__________________
Прогресс неизбежен.

Последний раз редактировалось Pridnya; 21.10.2016 в 10:47.
Pridnya вне форума   Ответить с цитированием
Старый 03.11.2016, 15:05   #4
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Orel
Возраст: 38
Сообщений: 4,418
Вес репутации: 4322/119
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: LwIP TCP-сервер и UDP-клиент на одном MCU+LAN8720A?

Оказалось все проще простого: достаточно добавить два файла:
udp_client.h
void udp_echoclient_connect(void); // с прототипом функции

udp_client.c
с двумя функциями (функции из примера udp_echo_client):
void udp_echoclient_connect(void){...}
void udp_receive_callback(...){...}

В настройках проекта указать IP-адрес и порт UDP-сервера на стороне компьютера (IP=192.168.1.10, #define UDP_SERVER_PORT 7).

В файле main.c (или в любом другом) периодически, например через 4 секунды, вызываем функцию void udp_echoclient_connect(void);

Собираем проект, прошиваем микроконтроллер.
На стороне компьютера запускаем:
1) для проверки работы UDP-клиента в командной строке программу echotool с параметрами: echotool.exe /p udp /s 7
2) для проверки работы ModbusTCP-сервера - любой ModbusTCP-клиент (соединяемся с IP 192.168.1.101, TCP-порт 502).
Оба работают и не мешают друг другу.

Остался вопрос: как теперь заменить UDP-клиент на SNTP-клиент (SNTP-клиент работает как UDP-клиент, но есть свои особенности).

PS: А сначала спросил на электрониксе, так так стали учить цитатами из мультиков и расказывать что нужно глубоко знать работу lwIp-стека, что модератор из незалежной на неделю забанил. Это я для Guaho.
Миниатюры
EchotoolAndUdpClient.PNG   ModbusTCPClient.PNG  
__________________
Прогресс неизбежен.

Последний раз редактировалось Pridnya; 03.11.2016 в 15:14.
Pridnya вне форума   Ответить с цитированием
Старый 03.11.2016, 17:08   #5
Рак
Senior Member
 
Регистрация: 02.04.2008
Адрес: Кременчуг
Возраст: 31
Сообщений: 1,278
Вес репутации: 2210/69
Рак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond reputeРак has a reputation beyond repute
По умолчанию Re: LwIP TCP-сервер и UDP-клиент на одном MCU+LAN8720A?

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Оказалось все проще простого: достаточно добавить два файла:
udp_client.h
void udp_echoclient_connect(void); // с прототипом функции

udp_client.c
с двумя функциями (функции из примера udp_echo_client):
void udp_echoclient_connect(void){...}
void udp_receive_callback(...){...}

В настройках проекта указать IP-адрес и порт UDP-сервера на стороне компьютера (IP=192.168.1.10, #define UDP_SERVER_PORT 7).

В файле main.c (или в любом другом) периодически, например через 4 секунды, вызываем функцию void udp_echoclient_connect(void);

Собираем проект, прошиваем микроконтроллер.
На стороне компьютера запускаем:
1) для проверки работы UDP-клиента в командной строке программу echotool с параметрами: echotool.exe /p udp /s 7
2) для проверки работы ModbusTCP-сервера - любой ModbusTCP-клиент (соединяемся с IP 192.168.1.101, TCP-порт 502).
Оба работают и не мешают друг другу.

Остался вопрос: как теперь заменить UDP-клиент на SNTP-клиент (SNTP-клиент работает как UDP-клиент, но есть свои особенности).

PS: А сначала спросил на электрониксе, так так стали учить цитатами из мультиков и расказывать что нужно глубоко знать работу lwIp-стека, что модератор из незалежной на неделю забанил. Это я для Guaho.
А разве SNTP не над UDP работает?
Рак вне форума   Ответить с цитированием
Старый 03.11.2016, 22:35   #6
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Orel
Возраст: 38
Сообщений: 4,418
Вес репутации: 4322/119
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: LwIP TCP-сервер и UDP-клиент на одном MCU+LAN8720A?

Цитата:
Сообщение от Рак Посмотреть сообщение
А разве SNTP не над UDP работает?
Андрей, протокол NTP использует протокол UDP, т.е. внутри UDP-пакета содержится NTP-пакет. Хочешь, называй это "работает поверх UDP".
А протокол SNTP - это более простая версия протокола NTP. Структура SNTP и NTP-пакетов одинаковая. На скриншоте фрагмент, это я реальные пакеты разбирал с помощью Wireshark и своего NTP-клиента (в текстовых комментариях справа могут быть неверные цифры - копипастил предыдущие запросы). В PDF-ках стандарты: rfc1305c NTP v3 1992.pdf и rfc1769 SNTP v3 1995.txt.pdf (есть более новый SNTP v4, но он для IP v6). Вот подумай, как много мы пропустили в 90-е и 00-е годы. Уже скоро 10 лет будем отмечать с рождения PTP v2, а у нас не все еще SNTP внедрили.
Миниатюры
rfc1305c NTP v3 1992.pdf   rfc1769 SNTP v3 1995.txt.pdf   NTP.PNG  
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чем/как отлаживать код написаный на Си в WinAVR Yokel Микроконтроллеры других производителей 49 30.09.2014 09:48
Присоветуйте тип и способ управления MOSFETом "верхнего" плеча dr_Sash Источники питания и силовая электроника 37 08.09.2012 18:50
подключение магнитолы Sergey1 Общетехнические вопросы 10 27.12.2007 22:39
Контроль интернет-трафика SSH Общетехнические вопросы 9 28.10.2007 08:39


Часовой пояс GMT +3, время: 18:41.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot