Например TDA7294

Форум РадиоКот • Просмотр темы - W5500_client+Atmega8_для самых начинающих.
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Пт июн 27, 2025 13:23:18

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 210 ]     ... , , , 8, , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Пт фев 07, 2025 20:04:32 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 10
Зарегистрирован: Ср дек 08, 2010 19:03:17
Сообщений: 591
Рейтинг сообщения: 0
очевидный отывет: что-бы всЁ!

п.с.
ну ясен пень, контролировать "потоки" и "зачищать/удалять/сбрасывать зависшие сессии"! памяти то ограничено, а то так и пукан порвать можно!
не пойдет такой ответ?! :)))

_________________
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Пт фев 07, 2025 20:07:08 
Друг Кота

Карма: 2
Рейтинг сообщений: 63
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8080
Откуда: .ru
Рейтинг сообщения: 0
roman.com писал(а):
вообще вопрос был такой: должна или не должна W5500 сама закрывать соединение...

Ответ: закрывать соединение, когда Вы не планируете его в ближайшее время использовать, является правилом хорошего тона и здравого смысла. Таймауты, keep-alive и т.д. - это всё же способы решения нештатных ситуаций.
roman.com писал(а):
тесты показывают что W5500 сама (без команды) не закрывает соединение...

что логично.
roman.com писал(а):
через роутер не проверял... не помню...

да то ж самое будет, keep alive и висящая "до упора" сессия.
roman.com писал(а):
а нафига вообще роутеру закрывать соединение ?

из соображений самосохранения ;-) Если Вы включили свою поделку, она к роутеру подключилась - не знаю, что вы все с ними делаете - в интернет там сходить, например. И заглючило её по питанию. Вы её перезапустили, она ещё раз подключилась - а старая сессия висит, её ж никто корректно не финализировал. И так 100500 раз. На самом деле, даже вдвое меньше ;-) Если у роутера таймаута не будет - он ляжет, deny of service, хакеры победили ;-) Если будет таймаут - через пару часов отживёт. Ну, если Вы перестанете пытаться к нему подключаться к тому времени. Все роутеры последних лет 20-ти выпуска имеют к таким незатейливым DoS-атакам иммунитет. Но когда-то это был вполне реальный сценарий

не логично... ))
:tea:
не пойдет такой ответ?!

не... надо подробно.
:tea:
разберём NAT.
Вложение:
NAT.jpg [72.38 KiB]
Скачиваний: 13

-при передачи пакетов из локалки в интернет роутер меняет IP-отправителя и Port-отправителя на свой.
-при передачи пакетов из интернета в локалку происходит обратный процесс...
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Пт фев 07, 2025 20:15:46 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 10
Зарегистрирован: Ср дек 08, 2010 19:03:17
Сообщений: 591
Рейтинг сообщения: 0
по поводу НАТ-преобразований - ни чего нового, что вы хотели подчеркнуть/уточнить/выделить/обратить внимание?

Цитата:
когда зацикливаешь отправку "данного" сообщения - "шарк" выдает "предупреждение", что порт используется повторно
это криминал или чего?

пока без ответа, хотелось бы услышать мнения

_________________
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Пт фев 07, 2025 21:41:30 
Друг Кота

Карма: 2
Рейтинг сообщений: 63
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8080
Откуда: .ru
Рейтинг сообщения: 0
это не криминал )) это так работает "шарк"

у меня "шарк" подсвечивает повторяющиеся пакеты...

подключился к W5500 с помощью браузера...
Вложение:
Screenshot_1.jpg [117.89 KiB]
Скачиваний: 20

Вложение:
Screenshot_2.jpg [117.44 KiB]
Скачиваний: 20

видим повторяющиеся пакеты...
просто W5500 подключена к мега328...
а мега328 в этот момент занята прерываниями... и другой работой... поэтому ответить сразу не может))
поэтому браузер повторяет пакеты...
а "шарк" их подсвечивает))
:tea:

если раздражает... можно зайти в настройки "шарк" и отключить подсветку))
:))


Вернуться наверх
 
В продаже новые LED-драйверы XLC компании MEAN WELL с диммингом нового поколения

Компания MEAN WELL пополнила ассортимент своей широкой линейки светодиодных драйверов новым семейством XLC для внутреннего освещения. Главное отличие – поддержка широкого спектра проводных и беспроводных технологий диммирования. Новинки представлены в MEANWELL.market моделями с мощностями 25 Вт, 40 Вт и 60 Вт. В линейке есть модели, работающие как в режиме стабилизации тока (СС), так и в режиме стабилизации напряжения (CV) значением 12, 24 и 48 В.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Пт фев 07, 2025 22:03:21 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 10
Зарегистрирован: Ср дек 08, 2010 19:03:17
Сообщений: 591
Рейтинг сообщения: 0
понял, спасибо

_________________
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Пт фев 07, 2025 23:11:21 
Друг Кота

Карма: 2
Рейтинг сообщений: 63
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8080
Откуда: .ru
Рейтинг сообщения: 1
далее... NAT.

-при передачи пакетов из локалки в интернет роутер меняет IP-отправителя и Port-отправителя на свой.
при этом роутер делает соответствующую запись в NAT-таблице: IP-отправителя и Port-отправителя.
Вложение:
таблица_NAT.jpg [31.46 KiB]
Скачиваний: 15

после записи в NAT-таблицу (IP-отправителя и Port-отправителя) роутер устанавливает таймер на 120 секунд.
далее... таймер начинает обратный отсчёт)) 119... 118... 117...
пока таймер тикает пакеты из интернета могут проходить в локалку.
когда таймер дотикает до нуля роутер удаляет запись в NAT-таблице (IP-отправителя и Port-отправителя).
после этого пакеты из интернета уже не могут проходить в локалку.
поэтому чтобы "держать порт роутера открытым" надо не реже чем через каждые 120 секунд передавать пакеты из локалки в интернет.

по умолчанию W5500 передаёт пакеты из локалки в интернет каждые 45 секунд.
....
сервер [TCP keep-alive] > w5500 [TCP keep-alive]
сервер [TCP keep-alive] < w5500 [TCP keep-alive]
~45 сек
сервер [TCP keep-alive] > w5500 [TCP keep-alive]
сервер [TCP keep-alive] < w5500 [TCP keep-alive]
~45 сек
....

я обычно в своих приложениях передаю пакеты из локалки в интернет каждые 100 секунд.
....
сервер [TCP keep-alive] > w5500 [TCP keep-alive]
сервер [TCP keep-alive] < w5500 [TCP keep-alive]
~100 сек
сервер [TCP keep-alive] > w5500 [TCP keep-alive]
сервер [TCP keep-alive] < w5500 [TCP keep-alive]
~100 сек
....

передавать пакеты из локалки в интернет чаще чем через каждые 100 секунд нет никакого смысла)).
это лишняя (бесполезная) нагрузка на сеть интернет.


далее... переходим к DoS-атакам на роутер.
roman.com писал(а):
а нафига вообще роутеру закрывать соединение ?

из соображений самосохранения ;-) Если Вы включили свою поделку, она к роутеру подключилась - не знаю, что вы все с ними делаете - в интернет там сходить, например. И заглючило её по питанию. Вы её перезапустили, она ещё раз подключилась - а старая сессия висит, её ж никто корректно не финализировал. И так 100500 раз. На самом деле, даже вдвое меньше ;-) Если у роутера таймаута не будет - он ляжет, deny of service, хакеры победили ;-) Если будет таймаут - через пару часов отживёт. Ну, если Вы перестанете пытаться к нему подключаться к тому времени. Все роутеры последних лет 20-ти выпуска имеют к таким незатейливым DoS-атакам иммунитет. Но когда-то это был вполне реальный сценарий

роутеру незачем закрывать соединение.

1. во-первых...
если никто корректно не финализировал сессию... то сессия финализируется сама))

Если мы включили свою поделку, она к роутеру подключилась... то поделка должна поддерживать сессию открытой.
....
сервер [TCP keep-alive] > w5500 [TCP keep-alive]
сервер [TCP keep-alive] < w5500 [TCP keep-alive]
~45 сек
сервер [TCP keep-alive] > w5500 [TCP keep-alive]
сервер [TCP keep-alive] < w5500 [TCP keep-alive]
~45 сек
....

Если заглючило её по питанию. Вы её перезапустили, она ещё раз подключилась... то через 120 секунд сессия финализируется сама))
когда таймер дотикает до нуля роутер удаляет запись в NAT-таблице (IP-отправителя и Port-отправителя).
сервер в интернете будет пытаться связаться с w5500, но у него ничего не получится.
т.к. пакеты из интернета больше не попадают в локалку.
сервер повторит ещё несколько попыток...
....
сервер [TCP keep-alive] > w5500 [TCP keep-alive]
~45 сек
сервер [TCP keep-alive] > w5500 [TCP keep-alive]
~45 сек
....
не получив подтверждения от w5500 сервер в интернете сам закроет сессию))
хакеры проиграли))


2. во-вторых...
если хакеры залезли в локалку и открыли 100500 сессий... то все 100500 сессий хакеры должны поддерживать открытыми.
в противном случае через ~120 секунд все 100500 сессий закроются сами))
хакеры проиграли))

3. в-третьих...
а сколько реально мы можем открыть сессий одновременно ?
теоретически максимальное количество одновременно открытых сессий ограничена количеством портов... или размером NAT-таблицы.
это явно меньше чем 100500 сессий...))

а сколько у нас всего портов ?
65536
значит теоретически мы можем открыть 65536 сессий одновременно.
:tea:

а можно открыть больше чем 65536 сессий одновременно ?
теоретически максимальное количество одновременно открытых сессий НЕ ограничена.
но с оговорками))
:))
каждая новая открытая сессия перезаписывает NAT-таблицу.
при этом старые записи в NAT-таблице затираются... а новые записи в NAT-таблице добавляются...
при этом все 65536 портов в NAT-таблице будут крутится по кругу))
65535... 65534... 65533... 00000... 65535... 65534... 65533...
и так де бесконечности))
поэтому на одном роутере в теории можно открыть даже 100500 сессий... и даже больше))
и все они будут работать.

единственная оговорка - будет потеря пакетов...
и чем больше мы откроем сессий - тем больше будет теряться пакетов.
другими словами - мы просто будет терять трафик.
что в свою очередь приведёт к снижению скорости интернета...
в итоге со стороны будет казаться что роутер "тормозит" и "глючит".
однако все 100500 сессий... будут работать))
да, медленно... да, с повторами пакетов... но всё таки будут работать))
хакеры проиграли))
:tea:

но это не точно))
тут требуются дополнительные тесты роутера...
надо провести "стресс-тесты" роутера))
:tea:


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Сб фев 08, 2025 03:35:15 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 10
Зарегистрирован: Ср дек 08, 2010 19:03:17
Сообщений: 591
Рейтинг сообщения: 0
...

_________________
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Сб фев 08, 2025 17:52:17 
Это не хвост, это антенна

Карма: -10
Рейтинг сообщений: 171
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1492
Рейтинг сообщения: 0
а сколько у нас всего портов ?
65536
У вас - это где?
Если что - в TCP только 65534 порта.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Сб фев 08, 2025 18:36:30 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 10
Зарегистрирован: Ср дек 08, 2010 19:03:17
Сообщений: 591
Рейтинг сообщения: 0
а сколько у нас всего портов ?
65536

ну опечатался, со всеми бывает!
вы, лучше, по теме что ни-будь можете сказать?

_________________
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Сб фев 08, 2025 22:04:08 
Друг Кота

Карма: 2
Рейтинг сообщений: 63
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8080
Откуда: .ru
Рейтинг сообщения: 0
чёй то? ))
0000...FFFF - это сколько ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Вс фев 09, 2025 01:16:29 
Это не хвост, это антенна

Карма: -10
Рейтинг сообщений: 171
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1492
Рейтинг сообщения: 0
ну опечатался, со всеми бывает!
Как видно:
чёй то? ))
0000...FFFF - это сколько ?
не опечатался. 8)

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Вс фев 09, 2025 19:33:48 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 10
Зарегистрирован: Ср дек 08, 2010 19:03:17
Сообщений: 591
Рейтинг сообщения: 0
топикстартеру думаю эта тема уже давно не интересна.

тему не смотрели, сообщения не читали, но мнение имеете... ну как так можно? :)))
последние 3 страницы какой датой/годом отмечены?

давайте, все-таки, к теме. она сама по себе безгранична и многогранна и для сообщества пригодится! :beer:

_________________
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Ср фев 12, 2025 16:07:32 
Друг Кота

Карма: 2
Рейтинг сообщений: 63
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8080
Откуда: .ru
Рейтинг сообщения: 1
давайте, все-таки, к теме. она сама по себе безгранична...

да.

телефон подключается к компу...
Вложение:
Screenshot_1.jpg [104.61 KiB]
Скачиваний: 21

комп подключается к W5500...
Вложение:
Screenshot_2.jpg [106.25 KiB]
Скачиваний: 193

телефон подключается к W5500...
Вложение:
Screenshot_3.jpg [38.79 KiB]
Скачиваний: 16

в последнем примере мы не можем напрямую посмотреть пакеты в программе Wireshark... потому что в телефоне нет программы Wireshark.))
однако, сами пакеты мы все таки посмотреть можем...
тут нам на помощь пришёл сам W5500... )) который копирует все входящие пакеты с телефона и отравляет на комп...
а уже на компе есть программа Wireshark.

а самое интересное это самодельный модуль))
если из темы "W5500_client+Atmega8_для самых начинающих" выкинуть W5500...
то остаётся "client+Atmega8_для самых начинающих"...
и тут начинается самое интересное))

смотрим сигнал в интернете...
СпойлерИзображение

СпойлерИзображение

берём Ардуино
СпойлерИзображение

собираем схему "client+Atmega8_для самых начинающих"
пишем программу...
СпойлерИзображение

нажимаем на кнопочки... всё работает))

разберём подробнее...
СпойлерИзображение

Расчётная скорость передачи пакетов у нас должна быть 17.000 пакетов/c. Но на анализаторе мы видим 8.630 пакетов/c.
Половина пектов теряется...
Почему так происходит ?
Потому что мы нарушили требования спецификации https://ru.wikipedia.org/wiki/10BASE-T
У нас ATmega8 передаёт пакеты непрерывно... А согласно спецификации межпакетный интервал должен составлять 9,6 мкс.
https://en.wikipedia.org/wiki/Interpacket_gap
Переделаем всё по стандарту.
СпойлерИзображение

СпойлерИзображение

СпойлерИзображение

Когда ATmega8 не передаёт пакеты, ATmega8 передаёт импульсы NLP (согласно спецификации 10BASE-T).
СпойлерИзображение

Всё работает ))
Расчётная скорость передачи пакетов у нас должна быть около 14.000 пакетов/c. На анализаторе видим 14.431 пакетов/c.
Замечательно. Наша ATmega8 передаёт пакеты со скорость 14.431 пакетов/c.
Потерь пакетов нет. Всё работает стабильно.

Преамбула должна быть 8 байт... но на самом деле достаточно 4 байт.

в конце пакета CRC32
СпойлерИзображение

Wireshark это не видит. Но оно там есть)).

Далее... усложним схему...
Сделаем Сумматор.
СпойлерИзображение

СпойлерИзображение

и так работает.
Далее... делаем многоядерный процессор на МК.))
СпойлерИзображение

Далее... Синхронизировали работу двух МК.))
Теперь всё работает так:
1- Два МК работают от одного тактового генератора (кварцевый генератор).
2- Два МК выполняют все инструкции синхронно.
СпойлерИзображение

Принцип работы синхронизатора простой.))
Перед началом выполнения инструкций первый МК передаёт сигнал синхронизации второму МК.
Второй МК синхронизируется по сигналу синхронизации от первого МК.
В итоге оба МК выполняют все инструкции синхронно.

И нифига не работает))
Видимо для синтеза сигнала Ethernet недостаточно просто синхронизировать выполнений инструкций. Необходимо ещё синхронизировать фазу тактового генератора... с учётом задержек на переключение выводов самого МК...

Добавим в схему фазовый детектор тактового сигнала 20 МГц.
СпойлерИзображение

Да, действительно. Фазовый детектор показывает задержку фазы тактового сигнала 20 МГц в несколько наносекунд.
СпойлерИзображение

В этом вся проблема.
Решение.
Можно скорректировать тактовый сигнал с помощью LC или RC цепи...
Или можно использовать внешний тактовый генератор.
Другое...

Подключили внешний тактовый генератор на ATmega328.
СпойлерИзображение

Фазовый детектор показывает - отклонений фазы тактового сигнала нет.
Теперь два МК типа ATmega8 работают от одного кварцевого генератора синхронно и синфазно. ))
Короче теперь всё работает как надо.

Далее... сделали 4-х ядерный процессор ))
СпойлерИзображение

работает))

4-х МК многовато...
используем мультиплексор...
СпойлерИзображение

СпойлерИзображение

СпойлерИзображение

СпойлерИзображение

СпойлерИзображение

СпойлерИзображение

СпойлерИзображение

Всё работает))
:tea:

далее... приёмник.
делаем синхронизацию...
вообще современные заводские интернет приёмники используют PLL синтезатор...
СпойлерИзображение

СпойлерИзображение

но мы будем делать интернет приёмник как в старом компьютере...
СпойлерИзображение

а в старом компьютере используется прямой метод синхронизации...
СпойлерИзображение

:tea:

мы делаем аналог W5500 на Ардуино...
СпойлерИзображение

поэтому будем настраивать Ардуино по W5500... включим их в параллель))
СпойлерИзображение

нет никакой разницы)) они работают одинаково))

а в чём реально разница ?
ток потребления W5500 = 80 mA
ток потребления Ардуино = 1 мкА
вот и вся разца))

схема Интернет приёмника будет примерно такой...
СпойлерИзображение

СпойлерИзображение

СпойлерИзображение

блок синхронизации...
СпойлерИзображение

СпойлерИзображение

СпойлерИзображение

СпойлерИзображение

в блоке синхронизации используем время переключения логических элементов...
СпойлерИзображение

СпойлерИзображение

СпойлерИзображение

работает))
СпойлерИзображение

СпойлерИзображение

СпойлерИзображение

СпойлерИзображение

работает))

В итоге получилась такая схема.
СпойлерИзображение

Всё работает))

Итого: мы сделали аналог W5500 на Ардуино.))
:tea:


Вложения:
Ethernet_полная.rar [129.36 KiB]
Скачиваний: 35
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Чт фев 13, 2025 15:28:52 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 10
Зарегистрирован: Ср дек 08, 2010 19:03:17
Сообщений: 591
Рейтинг сообщения: 0
пробежал по последнему "трактату" (поверхностно)
для чего делалась "задержка"? (можно общ.смысл/ключ.фразы)

Цитата:
ток потребления W5500 = 80 mA
ток потребления Ардуино = 1 мкА

подозреваю, что и максимальная дальность, так-же, пропорционально?!

_________________
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Чт фев 13, 2025 18:07:20 
Друг Кота

Карма: 2
Рейтинг сообщений: 63
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8080
Откуда: .ru
Рейтинг сообщения: 1
какая "задержка"? там вся схема построена на задержках...

ток потребления W5500 = 80 mA (и не зависит от режима работы).
-в режиме передачи - ток потребления W5500 = 80 mA
-в режиме приёма - ток потребления W5500 = 80 mA
-в режиме простоя - ток потребления W5500 = 80 mA
:tea:
ток потребления Ардуино = 1 мкА (зависит от режима работы).
-в режиме передачи - ток потребления Ардуино = ~12 mA
-в режиме приёма - ток потребления Ардуино = ~10 mA
-в режиме простоя - ток потребления Ардуино = ~0,1 мкА
поэтому средний ток потребления Ардуино = ~1 мкА
:tea:
при этом максимальная дальность W5500 и Ардуино одинаковая.
потому что мощность передатчика W5500 и Ардуино одинаковая.))
:tea:

схема требует доработки...
надо выкинуть лишние детали... заменить МК на логику... и т.д.
короче... ещё есть над чем работать.))
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Вс фев 23, 2025 18:48:53 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 10
Зарегистрирован: Ср дек 08, 2010 19:03:17
Сообщений: 591
Рейтинг сообщения: 0
какая ... :tea:

привет! грызу, тут, понимаешь... вопрос по ходу дела:

для приема входных udp-пакетов "мы" использовали прерывание. отлично, все работает!
вопросы:
- будет работать без прерываний, на чистом pool()-механизме?
- какие будут подводные камни?
- на что обратить внимание?!

_________________
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Пн фев 24, 2025 13:39:07 
Друг Кота

Карма: 2
Рейтинг сообщений: 63
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8080
Откуда: .ru
Рейтинг сообщения: 0
sunjob писал(а):
- будет работать без прерываний, на чистом pool()-механизме?
- какие будут подводные камни?
- на что обратить внимание?!

- будет работать без прерываний, на чистом pool()-механизме? будет. у меня именно так и работает.
- какие будут подводные камни? скорость будет меньше. прерывания обрабатываются сразу. а опрос состояния обрабатывается не сразу... а с задержкой))
- на что обратить внимание?! на скорость)) если скорость не важна то нет никакой разницы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Пн фев 24, 2025 21:17:39 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 10
Зарегистрирован: Ср дек 08, 2010 19:03:17
Сообщений: 591
Рейтинг сообщения: 0
Ну понятно, так и предполагал, ни чего сверхестественного! :)

_________________
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Ср фев 26, 2025 21:41:31 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 10
Зарегистрирован: Ср дек 08, 2010 19:03:17
Сообщений: 591
Рейтинг сообщения: 0
будет работать
привет! исходные
Код:
src 192.168.1.1  - main comp
dst 192.168.1.55 - avr
порты видны по скрину

main-comp - отправляет udp-пакет
avr - отправляет "ответ", типа, подтверждение (тот-же пакет)
все-бы хорошо, но в отладке виден черный ICMP-пакет от main-comp:
Код:
Destination unreachable (Port unreachable)

непонятки с данным покетом:
запрос отправляется баш-скриптом, типа
Код:
echo $STR > /dev/udp/$HOST/$PORT_UDP

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

###!!! UPDATE !!!###
проверяем работу чистым си и ... все работает без проблем
исходные: linux / gcc
параметры ком.строки:
Код:
./udp_cli [host] [port] [message]

Спойлер
Код:
////////////////////////////////////////////////////////////////////////////////
//
// udp-client for debug atmega328/w5500
//
////////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>

#define BUFF_SIZE 64

////////////////////////////////////////////////////////////////////////////////
int main(int argc, char *argv[])
////////////////////////////////////////////////////////////////////////////////
{
if(argc != 4)
  {
  fprintf(stderr, "usage: %s <dst-host> <dst-port> <msg-str[%i]>\n", argv[0], BUFF_SIZE);
  exit(EXIT_FAILURE);
  }

const char *srv_host =      argv[1];
const int   srv_port = atoi(argv[2]);
const char *srv_msg  =      argv[3];

int     sockfd;
char    buffer[BUFF_SIZE];
ssize_t sent_size;
struct sockaddr_in server_addr;

//
// UDP-sock
//
if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
  {
  perror("socket creation failed");
  exit(EXIT_FAILURE);
  }

memset(&server_addr, 0, sizeof(server_addr)); // clear

//
// server info
//
server_addr.sin_family  = AF_INET;
server_addr.sin_port    = htons(srv_port);
if(inet_pton(AF_INET, srv_host, &server_addr.sin_addr) <= 0)
  {
  perror("Invalid address/ Address not supported");
  close(sockfd);
  exit(EXIT_FAILURE);
  }

//
// send udp to server
//
sent_size = sendto
  (
  sockfd,
  srv_msg,
  strlen(srv_msg),
  MSG_CONFIRM,
  (const struct sockaddr *) &server_addr,
  sizeof(server_addr));

if(sent_size < 0)
  {
  perror("send to server failed");
  close(sockfd);
  exit(EXIT_FAILURE);
  }

printf("put msg: %s\n", srv_msg);

//
// waiting for server response
//
socklen_t len = sizeof(server_addr);
ssize_t n = recvfrom
  (
  sockfd,
  (char *)buffer,
  BUFF_SIZE,
  MSG_WAITALL,
  (struct sockaddr *) &server_addr,
  &len);

buffer[n] = '\0';

printf("get msg: %s\n", buffer);

close(sockfd);
return 0;
}
////////////////////////////////////////////////////////////////////////////////

Вложение:
pic_2025.02.27_01.32.32.jpg [137.2 KiB]
Скачиваний: 14

Вложение:
pic_2025.02.27_03.12.26.jpg [114.01 KiB]
Скачиваний: 9

_________________
Енот - это кот, только инкогнито!
p.s. держитесь обоими руками, а то прорвет...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: W5500_client+Atmega8_для самых начинающих.
СообщениеДобавлено: Чт фев 27, 2025 14:24:48 
Друг Кота

Карма: 2
Рейтинг сообщений: 63
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8080
Откуда: .ru
Рейтинг сообщения: 0
Destination unreachable (Port unreachable) - порт закрыт.
СпойлерИзображение

баш закрыл порт.
точнее баш его и не открывал... ))
х.з. я с баш не работал.

я работаю с Java...
СпойлерИзображение

:o
СпойлерИзображение

:)

надо ещё будет сделать VPN...
СпойлерИзображение

будет VPN на W5500+Atmega8 ))
:))


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 210 ]     ... , , , 8, , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y