|
Модераторы: feodorv |
|
Valimor |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 12.2.2015 Репутация: нет Всего: нет |
Есть микроконтроллер на котором реализован UDP сервер со следующими параметрами:
При инициализации используется следующая конструкция:
которая соответственно инициализирует ethernet модуль устройства, и сопоставляет ему ip адрес. Будет ли конннектиться к нему комп, если просто к нему обращаться по ip адресу(arp присутствует)? Или нужно конфигурировать сеть прописав шлюз(gateway), DNS и маску(network mask) ? По типу:
И что потом прописывать в полях на компе(снизу картинка)? DHCP не используется, потому, что нужны жёстко закрепленные IP адреса за устройством и компом. |
||||||
|
|||||||
feodorv |
|
||||
Эксперт Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 10 Всего: 45 |
Гм. А почему бы тупо не попробовать присоединиться к устройству? И где у Вас находится комп по отношению к устройству и gateway'ю, никто не знает.
Я бы все сконфигурировал))) Комп находится в одной сети с устройством? Тогда:
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 1 Всего: 16 |
Ну откуда мы знаем, будет ли коннэктиться твой комп к твоему микроконтроллеру, если не имеем ни малейшэго представления ни о том, что за программа в микроконтроллере, ни дажэ что это за микроконтроллер, да и как комп к нему подсоединён?
Добавлено через 1 минуту и 4 секунды Хотя, конечно, можно дать тривиальны и правильный ответ: не будет. С Вашым уровнем понимая -- у вас и два компа несконнэктятся... |
|||
|
||||
Valimor |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 12.2.2015 Репутация: нет Всего: нет |
Программа написана с помощью библиотечных функций предоставляемых производителем, микроконтроллер PIC18F67J60. Соответственно там реализовано: канальный уровень ARP, IP, IGMP, транспортный UDP, физический уровень через Ethernet. При этом физический уровень реализован в железе. Это вам как-то поможет? Я лишь спрашивал будет ли коннектиться без конфигурирования сети на микрике(без gateway,networkmask), нужно ли конфигурировать сеть И КАКИЕ параметры вводить в компе соответсвенно исходным данным зашитым в микрике (IP, Gateway, DNS, NetworkMask) которые я вам представил. И ВСЁ Добавлено через 9 минут и 1 секунду как-то подумал что это очевидно: естественно при начальной отладке программы комп и микроконтроллер соединяются напрямую без всяких промежуточных устройств, когда все отладится на этой стадии, то уже можно будет думать и о локалке. А пока так. DNS прописывать обязательно? вообще за что он отвечает? если я правильно понимаю, то это для выдачи IP адреса по имени хоста(то есть когда мы прописываем mail.ru в адресной строке браузера и т.п.) и это больше связано с протоколом TCP(как постоянно держащим соединение), а не с UDP |
|||
|
||||
feodorv |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 10 Всего: 45 |
Это должно быть прописано в руководстве по устройству. Думаю, без DNS жить будет. За трансляцию имён в IP и наоборот.
Нет. Думаю, что Ваше устройство куда-то должно писать логи, а в этих логах оно может подменять IP-адреса именами станций. Может, ещё зачем-то нужно. Все должно быть описано в руководстве. -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
tzirechnoy |
|
||||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 1 Всего: 16 |
Да мне-то что помогать -- у меня и PIC18 с Ethernet нету, у меня всё хорошо.
То есть Microchip TCPIP. Вот только в нём судя по документацыи нет функцыи Ethernet_Init... Тем более, что сигнатура у неё странная. Такую в первой половине 80-х годов прошлого века могли бы сделать. То есть так Ваша программа, конечно, не заработает. Вероятно, дажэ не скомпилируется. Вообще, посоветовать могу найти и прочесть Stevens, TCP/IP Illustrated. Если кажэтся много -- то в концэ доки microchip tcpip есть список RFC, прочитать относящиеся к тебе (ARP, IP, ICMP, UDP). Поскольку, ну напишэт тебе кто-то один раз правильный комплект адресов и масок -- чем это тебе поможэт если ты дажэ азов не понимаешь? Только барахло полурабочее плодить... |
||||
|
|||||
Alexeis |
|
|||
Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 1 Всего: 459 |
Если устройства не разделяет шлюз, то для работы достаточно установить IP и маску подсети. Шлюз нужно указывать, только если одно устройство во внешней подсети и пакет должен пройти через шлюз. Т.е. адаптер видит, что IP адрес не является адресом текущей подсети, следовательно такой пакет нужно отправить на шлюз вместо узла напрямую. Вот в этом случае нужно указывать шлюз. Далее шлюз определит находится ли узел назначения в его собственной внешней подсети, если это не так, то шлюз отправит пакет уже своему шлюзу и так до ближайшего маршрутизатора.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Valimor |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 12.2.2015 Репутация: нет Всего: нет |
Устройство уже запускалось уже. Все прекрасно соединилось, пинговалось, устройство отвечало на ARP запросы , слало UDP пакеты, а потом я даже не понял, что случилось, то ли это мои изменения в прошивке, хотя я там только ответы на UDP пакеты дописывал(вроде), то ли в компе что-то ёкнулось, но комп его не видит, и на ARP запросы оно не отвечает и соответственно связи с ним нет. Покалупавшись с ним день и убедившись, что в прошивке никаких ошибок нет(на мой взгляд), я и создал этот пост, потому что все таки думал, что я неправильно что-то ввожу в компе.
На данный момент оживить связь так и не удалось, уже пробовал прошивать той прошивкой на основе которой я все писал - устройство так же молчит. Ах да забыл написать: на платке где микроконтроллер стоит предусмотрены 2 светодиода - 1 показывает линк, другой сигнализирует о принимаемых и отправляемых пакетах, так вот светодиод линка загорается сразу при поключении к компу и горит постоянно, второй светодиод мигает, когда я с компа пытаюсь пропинговать устройство или пробую отправит на него пакеты, то есть нормальная ситуация , всё как и должно быть при нормальной связи)) и судя по всему устройств пакеты принимает, но не отвечает на них)). И еще у меня таких платок целых 3 штуки и на всех одинаковая ситуация, я бы понимаю, что я мог как-нибудь спалить ethernet модуль на одной из них, но на всех трех это врятле)) так что с железом все в порядке сразу говорю, да и потребляет оно так как и должно. Вот такая херовая ситуация)) ещё я вроде менял MAC и первоначально у меня был чуть другой, сегодня буду пробовать менять и смотреть, что будет. P.S. имею плохую привычку не сохранять рабочие прошивки, так что как вы понимаете рабочей у меня не осталось)) |
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 1 Всего: 16 |
А, да, дружэский совет: возьмите Wireshark. Очень, знаете, помогает узнать -- отвечает что-то или нет.
|
|||
|
||||
Alexeis |
|
|||
Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 1 Всего: 459 |
Мак адреса почти ни на что не влияют. Они должны быть уникальны в пределах одной подсети. На счет прошивок, рекомендую завести svn . И комитится каждый раз как получается решение лучше предыдущего с пометками что было изменено. Я поднимаю svn даже на машинах где отлаживаю бинарники. Очень удобно. Сперва кажется что залил исправленную версию, а на практике оказывается что исправленная версия хуже работает чем не исправленная . -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 1 Всего: 16 |
svn ужэ уходит в прошлое, чему есть вполне обстоятельные причины. Так что git. |
|||
|
||||
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |