olegras 0 20 мая, 2014 Опубликовано 20 мая, 2014 · Жалоба 2 ТС: Споры дошли до такого уровня, когда Вам нужно народу поподробнее описать функционал своего устройства. А то тут Вас сейчас заставят поменять религию, а может оно Вам и не надо. 2 Все остальные: Уважаемые, давайте сначала поможем ТС запустить трансивер. А вдруг в остальном он сам разберется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksei_Rostov 0 20 мая, 2014 Опубликовано 20 мая, 2014 · Жалоба В железе можно сделать формирователь UDP пакетов, но не более... ну вернее сделать можно все, но стоит делать не более... а если с вами это сделает кто-то еще на другом конце езернета че будет? Вы учитываете что на МАК уровне решаются конфликты и арбитраж сети? то есть, если сформировать полный кадр для UDP протокола ( преамбулу, маки, ip header, udp пакет, CRC) и отправить на ноги трансивера, сетевая карта его просто не увидит? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olegras 0 20 мая, 2014 Опубликовано 20 мая, 2014 (изменено) · Жалоба то есть, если сформировать полный кадр для UDP протокола ( преамбулу, маки, ip header, udp пакет, CRC) и отправить на ноги трансивера, сетевая карта его просто не увидит? Если правильно сформировать - обязательно увидит. Golikov A. наверное имеет ввиду если трансивер работает в режиме полудуплекс. Изменено 20 мая, 2014 пользователем olegras Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksei_Rostov 0 20 мая, 2014 Опубликовано 20 мая, 2014 · Жалоба 2 ТС: Споры дошли до такого уровня, когда Вам нужно народу поподробнее описать функционал своего устройства. А то тут Вас сейчас заставят поменять религию, а может оно Вам и не надо. 2 Все остальные: Уважаемые, давайте сначала поможем ТС запустить трансивер. А вдруг в остальном он сам разберется. большое спасибо за понимание:-) задача следующая: организовать обмен данными с компьютером. протокол UDP. приоритетом является скорость передачи, при чем с компьютера идут управляющие сигналы, реже чем данные с платы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olegras 0 20 мая, 2014 Опубликовано 20 мая, 2014 · Жалоба То есть: Со стороны ПК - с фиксированных IP и МАС адресов ПК, по фиксированным UDP портам на устройство периодически поступают пакеты из фиксированного набора ("команд"). И только. Со стороны устройства - с фиксированных IP и МАС адресов устройства, по фиксированным UDP портам на ПК непрерывно (почти непрерывно) поступают пакеты. И толко. Так? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksei_Rostov 0 20 мая, 2014 Опубликовано 20 мая, 2014 · Жалоба То есть: Со стороны ПК - с фиксированных IP и МАС адресов ПК, по фиксированным UDP портам на устройство периодически поступают пакеты из фиксированного набора ("команд"). И только. Со стороны устройства - с фиксированных IP и МАС адресов устройства, по фиксированным UDP портам на ПК непрерывно (почти непрерывно) поступают пакеты. И толко. Так? совершенно верно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olegras 0 20 мая, 2014 Опубликовано 20 мая, 2014 · Жалоба Ну здесь действительно можно обойтись без процессора. Но дополнительно устройство должно (как минимум, при работе в реальных условиях): - уметь отвечать на ARP ПК; - если предполагается, что сеть может быть и полудуплекс - уметь выполнять процедуру разрешения коллизии (эта процедура описана не помно в каком RFC и хорошо ложится на конечный автомат); - иметь возможность как-то вводить IP и МАС адреса сторон (например УАРТ + ГиперТерминал); - обязательно учитывать необходимость IPG (минимальный интервал между пакетами); - учитывать, что в сети (если она составная) может оказаться что размер Вашего пакета надо будет динамически уменьшать (об этом устройство узнает в пришедшем пакете ICMP); - учитывать, что в сети UDP пакет может потеряться (и это законно). Ну если с ходу - пока все. Потом можно будет прикрутить ICMP, чтобы с ПК пинговать (если надо). Все это возможно реализовать в автомате. Но сначала - трансивер. Или он у Вас уже заработал? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksei_Rostov 0 20 мая, 2014 Опубликовано 20 мая, 2014 · Жалоба Но сначала - трансивер. Или он у Вас уже заработал? собрал проект с процессором и Mac ядром, запустил hello world для начала, проект заработал, и заработали светодиоды на разъеме Ethernet, они в свою очередь питаются от трансивера думаю что трансивер жив, в следующий раз проверю наличие клоков Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olegras 0 20 мая, 2014 Опубликовано 20 мая, 2014 · Жалоба собрал проект с процессором и Mac ядром, запустил hello world для начала, проект заработал, и заработали светодиоды на разъеме Ethernet, они в свою очередь питаются от трансивера думаю что трансивер жив, в следующий раз проверю наличие клоков В этом проекте ничего не передавая на трансивер, проверьте уровни на всех его управляющих ногах (кабель Ethernet отключите). Потом перевключите плату (без прошивки ПЛИС) и замерьте эти же ноги. Отпишитесь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksei_Rostov 0 21 мая, 2014 Опубликовано 21 мая, 2014 (изменено) · Жалоба В этом проекте ничего не передавая на трансивер, проверьте уровни на всех его управляющих ногах (кабель Ethernet отключите). Потом перевключите плату (без прошивки ПЛИС) и замерьте эти же ноги. Отпишитесь. Создал проект с процессором, вставил туда ядро MAC contr., запустил Hello world/. на RJ 45 заморгали светодиоды. Проверил питающие трансивера -- в норме согласно мануала, осцилографом посмотрел клоки rx tx. Тоже нормально 25 МГц. Сходу попробывал запустить пример для процессора с MAC ядром. Чтобы потом настроить передачу данных на компьютер и Chipscop ом снять сигналы с ног на трансивер. Пример "слету" запустить не получилось. Далее думаю в буфер записать полный кадр и выдать на трансивер. В кадр вставить заданные адреса (MAC, IP, порт). Но для начала небходимо добиться работы трансивера (клоков) без процессора. Изменено 21 мая, 2014 пользователем farbius Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olegras 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба Хорошо. Видимо я не смог объяснить что от Вас требуется. Зайдем с другой стороны. Вы не могли бы выложить свой код? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksei_Rostov 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба Хорошо. Видимо я не смог объяснить что от Вас требуется. Зайдем с другой стороны. Вы не могли бы выложить свой код? Код довольно прост. Создаю ROM на 1500 байт. В ячейки ROM записываю побайтно UDP пакет: 7 байт преамбула (10101010), 1 байт SFD (10101011), MAC компьютера (6 байт), MAC ПЛИС задаю сам (6 байт), и т.д. весь кадр: Выводы с ПЛИС на трансивер следующие: я задействовал reset, TXD[0:3], TXen, TXclk. Выводы COL, CRS и для контроля MDC, MDIO я не задействовал. Также я не трогал все выводы на прием, т.к. на начальном этапе пытаюсь освоить передачу. Далее на PC есть приложение для установления соединения и приема UDP пакетов, плюс WIreshark. ВЫходные данные ROM я по 4 бита подаю на TXD[0:3], со скоростью TXclk (то есть клок беру из трансивера) Это все я пытался сделать сначала в надежде освоить передачу "слету". Однако не получилось: трансивер не запустился, TXclk отсутствовал. Не судите строго: прекрасно понимаю что такая попытка обречена на провал, но с чего то начать надо было :laughing: К тому же такой путь подсказал человек, у кого есть реализация подобного проекта. Теперь вот что думаю сделать: 1. При запущеном процессоре chipscop'ом сниму все сигналы на трансивер. 2. Подготовлю проект для передачи данных как и раньше считывая с ROM, где задействую все пины на трансивер. 3. Вопрос с контрольными суммами в пакете. По идее wireshark должен увидеть данный пакет (как писали выше в ветке), даже с неправильно рассчитанными суммами. Если такой путь также утопия, с удовольствием выслушаю критику. :rolleyes: Замечу дополнительно: все адреса (MAC, IP, порты) я заранее задаю, таким образом пытаюсь избежать работы с ARP запросами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба у меня вопрос где и в какой момент вы заполняете регистры физики, настраиваете ее на работу, запускаете процесс аутонегатенации, сбрасываете, и так далее? вас не удивляет что в MII есть еще командная часть интерфейса, по которой идут данные не в сеть а в физику? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksei_Rostov 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба у меня вопрос где и в какой момент вы заполняете регистры физики, настраиваете ее на работу, запускаете процесс аутонегатенации, сбрасываете, и так далее? вас не удивляет что в MII есть еще командная часть интерфейса, по которой идут данные не в сеть а в физику? Как я понял настройка происходит автоматически. Потому как больше никаких воздействий кроме вышеописанных я оказать не могу. Как я разобрался сигналы MDC(клок) и MDI для чтения контрольных регистров трансивера, никаких настроек ими не производится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olegras 0 22 мая, 2014 Опубликовано 22 мая, 2014 (изменено) · Жалоба я задействовал reset, TXD[0:3], TXen, TXclk. Выводы COL, CRS и для контроля MDC, MDIO я не задействовал. Также я не трогал все выводы на прием, т.к. на начальном этапе пытаюсь освоить передачу. Вот эту часть кода (включая .ucf) хотя бы можете выложить? Содержимое ROM и сторона ПК пока не нужны. Изменено 22 мая, 2014 пользователем olegras Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться