Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ethernet-контроллер CP2201
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Интерфейсы
Supersonic
Доброго времени суток, уважаемые разработчики и программисты. Давно уже обзавёлся я отладочной платой AVR Crumb644-NET, но за неимением опыта я не смог разобраться, что с ней делать и как жить-то вообще. Сейчас подумал, что нужно оживить сей девайс, иначе позор мне на всю голову! Возможностей у неё дофига и очень интересные штуки можно реализовать. Вот кратко то, с чем я имею дело:
1. на плате стоит атмега 644, которая общается с 2201 по параллельному порту (8 ног данных, управляющие стробы nWR и nRD).
2. Как происходит запись во внутренние регистры - разобрался.
3. Как писать в 16-разрядные регистры - разобрался.
4. Инициализацию делать научился, даже диодик мигает, чему я безмерно рад.
5. Вроде даже понял, как писать во флэш и читать оттуда.

тут начинается беспредел. Вопросов очень много и много непонятного.

1. МАК-адрес пишется в регистры MACAD0:MACAD1:MACAD2. Они 16-разрядные. нужно вписать туда 255.255.255.0. Из даташит СР2201 мы можем прочитать, что MACAD2 содержит 1й и 2й октет, MACAD1 - 3й и 4й, MACAD0 - 5й и 6й. Вопрос - зачем 5й и 6й? Потом все эти 6 байтов перегоняются в самый верх флэш памяти (8 кб - 0x1FFF) с адреса 1FFA до конца. Там и лежат долго и счастливо. Как же его правильно прописать?
2. Нет отдельного регистра для записи IP, маски. Я так понял, что нужно записывать во флэш и потом указателями высылать при запросе. Но вот же опять вопрос: Есть ли разница, куда их писать?
3. Что с ними остается делать? Допустим, я задал IP и хочу пингануть по сети свой выдуманный IP с другого компа, к примеру. Что происходит в сети при посылке с компа команды ping <ip>? И что надо отвечать на запрос?

Помогите, пожалуйста. Уже 840 строк кода накалякал чтобы просто инициализировать девайс. Может кто-то имел дело с ним?
RabidRabbit
По вопросу 1. - размер MAC-адреса для Ethernet вроде 48 бит, поделите на 16 - как раз 3 и получится...
Про 2. и дальше - на мой взгляд этот 2201 предоставляет Вам только интерфейс приёма и передачи Ethernet-кадров, всё вышележащее (IP(6),UDP/TCP) Вам придётся соорудить самостоятельно...
kolobok0
Цитата(Supersonic @ Dec 4 2013, 11:10) *
..1. МАК-адрес..
2. Нет отдельного регистра для записи IP, маски...
3. ..Что происходит в сети при посылке с компа команды ping <ip>? И что надо отвечать на запрос?
..


1) про мак уже прозвучало = 6 байт он. нужен на нижнем уровне для возможности осуществления фильтрации приходящих пакетов.
2) IP и маска под-сети это выше - в стэке. Реализовывать или где взять готовый(но лучше перепахать - поучитесь да и ляпы подправите) - вам решать.
3) при пинге происходит бриблизительно следующая картина: шлётся широковещательный ARP запрос, чтобы узнать необходимый MAC адресс.
Далее Ваш девайс отвечает на него ответом, вбивая свой MAC и IP. Далее комп посылает запрос к службе ICMP - эхо запрос, на который
вы должны ответить эхо ответом. Все протоколы изложены в открытом доступе.

вот краткая шпаргалка(чуток открывающая суть сего процесса):
Ethernet шпаргалка для начинающих
ZASADA
Цитата(Supersonic @ Dec 4 2013, 10:10) *
1. МАК-адрес пишется в регистры MACAD0:MACAD1:MACAD2. Они 16-разрядные. нужно вписать туда 255.255.255.0.

вы перепутали МАК-адрес и маску.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.