Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Вопросы ENC28J60

Непрочитано 08.04.2011, 13:36  
forgid
Прохожий
 
Регистрация: 23.04.2010
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
forgid на пути к лучшему
По умолчанию Re: Вопросы ENC28J60

Сообщение от borysik Посмотреть сообщение
Кому надо могу дать разводку в лайауте. И схему рабочую в протеусе.
Дайте пожалуйста плату в лайоуте
Реклама:
forgid вне форума  
Непрочитано 15.05.2011, 18:46  
AndreiVV
Гражданин KAZUS.RUN
 
Регистрация: 29.06.2006
Сообщений: 638
Сказал спасибо: 37
Сказали Спасибо 56 раз(а) в 41 сообщении(ях)
AndreiVV на пути к лучшему
По умолчанию Re: Вопросы ENC28J60

подскажите как послать с enc28j60 команду ping на пк или другую такую же enc28j60
AndreiVV вне форума  
Непрочитано 16.05.2011, 09:26  
rear
Вид на жительство
 
Аватар для rear
 
Регистрация: 30.12.2006
Адрес: Junktown
Сообщений: 300
Сказал спасибо: 160
Сказали Спасибо 171 раз(а) в 59 сообщении(ях)
rear на пути к лучшему
По умолчанию Re: Вопросы ENC28J60

Сообщение от AndreiVV Посмотреть сообщение
подскажите как послать с enc28j60 команду ping на пк или другую такую же enc28j60
Пинг - это ICMP запрос по указанному IP адресу.
вам нужно сформировать этот запрос, и отправить пакет, потом запустить таймер, и ждать ответ. Если придет ICMP ответ, сравнить то что пришло, с тем что отправляли. Если совпадает, значит пинг прошел. Если ответ не пришел вовремя, значит пакет потерян

в общем, разбирайте структуру ICMP сообщений

Сам запрос может быть примерно так:

Код:
extern void send_icmp_request(uint8_t *dest_ip, uint8_t *dest_mac, uint8_t *buf,
                              uint16_t sequence_num, uint8_t *ping_msg, uint8_t msg_len){
    uint8_t i;
    uint16_t ck;
    // заповняємо поля пакета
    // ethernet header
    set_eth(buf, dest_mac, ETHTYPE_IP_V);
    set_ip(buf, dest_ip, IP_PROTO_ICMP_V, (msg_len + 8));
    // END OF IP HEADER
    // заповняємо секцію ІР даних
    // START ICMP HEADER
    buf[ICMP_TYPE_P] = ICMP_TYPE_ECHOREQUEST_V;
    // type
    buf[ICMP_TYPE_P + 1] = 0x00;
    //checksum = 0
    buf[ICMP_CHECKSUM_P] = 0x00;
    buf[ICMP_CHECKSUM_P + 1] = 0x00;
    //
    buf[ICMP_ID_H_P] = 0x55;
    buf[ICMP_ID_L_P] = 0x55;
    //
    buf[ICMP_SEQ_H_P] = (uint8_t)(sequence_num ›› 8);
    buf[ICMP_SEQ_L_P] = (uint8_t)(sequence_num & 0xFF);
    i = 0;
    while (i ‹ msg_len){
        buf[ICMP_MSG_P + i] = *(ping_msg + i);
        i++;
    }
    //
    ck=checksum(&buf[ICMP_TYPE_P], (msg_len + 8),0);
    buf[ICMP_CHECKSUM_P]=ck ›› 8;
    buf[ICMP_CHECKSUM_P+1]=ck& 0xff;
    enc28j60PacketSend(8 + IP_HEADER_LEN + ETH_HEADER_LEN + msg_len, buf);
}
__________________
Всегда стремись к недоступному
rear вне форума  
Сказали "Спасибо" rear
AndreiVV (16.05.2011)
Непрочитано 16.05.2011, 13:06  
di_halt
Прописка
 
Аватар для di_halt
 
Регистрация: 17.10.2006
Сообщений: 147
Сказал спасибо: 2
Сказали Спасибо 22 раз(а) в 11 сообщении(ях)
di_halt на пути к лучшему
По умолчанию Re: Вопросы ENC28J60

Вот тут подробно расписана работа с ENC28J60 на примере AVR от азов сети до построения полноценного вебсервера на Atmega32 с рабочим чатом и кнопочками.

Теория
Работа с ENC28J60
UDP сервер
UDP клиент
работа с DHCP и бродкаст сообщения
tcp клиент
http и CGI
HTTP и TCP часть 2
http и CGI (заключение)
Тесты производительности и краткое описание получившегося стека
FAQ (в процессе написания)
__________________
Мой блог по электронике - www.easyelectronics.ru
di_halt вне форума  
Эти 8 пользователя(ей) сказали Спасибо di_halt за это сообщение:
AndreiVV (16.05.2011), finevlad (17.05.2011), grbizly (16.05.2011), kaf-0 (16.05.2011), kalina105 (16.05.2011), rear (16.05.2011), Uz_Sleep_Walker (18.05.2011), vsky (19.05.2011)
Непрочитано 16.05.2011, 13:11  
di_halt
Прописка
 
Аватар для di_halt
 
Регистрация: 17.10.2006
Сообщений: 147
Сказал спасибо: 2
Сказали Спасибо 22 раз(а) в 11 сообщении(ях)
di_halt на пути к лучшему
По умолчанию Re: Вопросы ENC28J60

Вот еще, до кучи:

Вебсервер на Tiny2313 от того же товарища. Чисто ради лулзов, т.к. ни на что больше места там уже почти не осталось
__________________
Мой блог по электронике - www.easyelectronics.ru
di_halt вне форума  
Сказали "Спасибо" di_halt
rear (16.05.2011)
Непрочитано 16.05.2011, 14:48  
artist
Частый гость
 
Регистрация: 01.07.2005
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
artist на пути к лучшему
По умолчанию Re: Вопросы ENC28J60

Сначала посылаем arp запрос, если ответили можно запускать пинг, если нет то пинг можно не запускать пинг т.к данный узел в сети отсутствует
artist вне форума  
Непрочитано 16.05.2011, 20:20  
AndreiVV
Гражданин KAZUS.RUN
 
Регистрация: 29.06.2006
Сообщений: 638
Сказал спасибо: 37
Сказали Спасибо 56 раз(а) в 41 сообщении(ях)
AndreiVV на пути к лучшему
По умолчанию Re: Вопросы ENC28J60

Сообщение от rear Посмотреть сообщение
Пинг - это ICMP запрос по указанному IP адресу.
вам нужно сформировать этот запрос, и отправить пакет, потом запустить таймер
то есть не важно что отсылать?
AndreiVV вне форума  
Непрочитано 17.05.2011, 02:58  
urmlr
Почётный гражданин KAZUS.RUN
 
Аватар для urmlr
 
Регистрация: 15.07.2009
Адрес: San Jose, USA
Сообщений: 927
Сказал спасибо: 11
Сказали Спасибо 228 раз(а) в 166 сообщении(ях)
urmlr на пути к лучшему
По умолчанию Re: Вопросы ENC28J60

Сообщение от artist Посмотреть сообщение
Сначала посылаем arp запрос, если ответили можно запускать пинг, если нет то пинг можно не запускать пинг т.к данный узел в сети отсутствует
Красиво, но к сожалению, неверно. arp касается лишь локальной сети и дальше default gateway не уходит, а пинговать можно хоть Африку, хоть яндекс.

Соответственно, если адрес назначения в пакете не является адресом локальной подсетки, то посылается такой пакет, в том числе и пинг, на default gateway.
urmlr вне форума  
Непрочитано 17.05.2011, 03:05  
urmlr
Почётный гражданин KAZUS.RUN
 
Аватар для urmlr
 
Регистрация: 15.07.2009
Адрес: San Jose, USA
Сообщений: 927
Сказал спасибо: 11
Сказали Спасибо 228 раз(а) в 166 сообщении(ях)
urmlr на пути к лучшему
По умолчанию Re: Вопросы ENC28J60

Сообщение от AndreiVV Посмотреть сообщение
то есть не важно что отсылать?
Смотря в каком смысле. Пинг, вообще-то, имеет определённый формат и его надо выдержать. То, что не определяется форматом (длина пакета например) можно делать как б-г на душу положит, хотя есть риск что не все системы отнесутся к этому благосклонно.
urmlr вне форума  
Непрочитано 17.05.2011, 12:40  
artist
Частый гость
 
Регистрация: 01.07.2005
Сообщений: 14
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
artist на пути к лучшему
По умолчанию Re: Вопросы ENC28J60

Обычно подобные устройства работают в прнделах локальной сети,а чтобы достучаться до гейтвея опять нужно посылать arp запро,мас то узнать как то надо, а что касаетсчя пинга то тут лучше всего посмотреть например
wiresharkом как и куда комп отсылает пакеты и что получает в ответ.
artist вне форума  
 
Опции темы

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

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

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


Часовой пояс GMT +4, время: 14:38.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.