|
|
  |
Gigabit Ethernet IP |
|
|
|
Apr 26 2011, 11:22
|
Профессионал
    
Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079

|
Цитата(iiv @ Apr 26 2011, 12:31)  ПолуОФФ: Скажите, пожалуйста, а UDP по 10 и 1000МБитным протоколам одинаковое? Вот то, что я для 10МБит использовал, как по ссылке http://www.fpga4fun.com/10BASE-T0.htmlя для Гигабитного UDP смогу использовать? Вообще, естественно, UDP, как протокол более высокого уровня не зависит (не должен) от используемого стандарта Ethernet. Но то, что Вы привели по ссылке, это просто учебный пример. Там в одном модуле перемешано все: и 2, и 3, и 4 уровни. Вытащить оттуда UDP можно, но смысла особого нет. Лучше заново переписать с нуля более структурировано и красиво.  (возможно, у Вас уже все написано как нужно - я комментирую исключительно тот код, что по ссылке  ) Видел ветку откуда Вы перешли в эту тему. Извиняюсь, что отвечаю на вопрос из той темы, просто чтобы все было в одном месте. Если хотите передавать относительно простой UDP трафик без использования софт-процессоров (типа NIOS), лучший вариант для Вас - скачать готовую корку MAC-ядра с OpenCores и дописать буквально пару простых модулей для формирования нужного UDP трафика.
--------------------
|
|
|
|
|
Apr 26 2011, 13:44
|

Частый гость
 
Группа: Свой
Сообщений: 131
Регистрация: 16-11-09
Из: Украина Юг
Пользователь №: 53 659

|
Цитата(iiv @ Apr 26 2011, 11:31)  ПолуОФФ: Скажите, пожалуйста, а UDP по 10 и 1000МБитным протоколам одинаковое? да. разницы никакой нет. просто надо корректно формировать пакеты и скармливать их МАС контроллеру. http://ru.wikipedia.org/wiki/UDPНо я бы рекомендовал больше смотреть на English версию страницы. На русской вроде какая-то путаница с расчетом UDP чексуммы.
--------------------
Работаю 20ns в сутки.
|
|
|
|
|
Apr 26 2011, 13:54
|

Частый гость
 
Группа: Свой
Сообщений: 131
Регистрация: 16-11-09
Из: Украина Юг
Пользователь №: 53 659

|
Цитата(des333 @ Apr 26 2011, 16:50)  Глянул - никакой путаницы, вроде, нет. Значит путаница возникала только у меня в голове. =) Тем не мение гораздо понятнее мне была именно английская версия. сейчас уже (зная все ньюансы) и русская понятна.. но сначала она мне такой прозрачной не казалась.
--------------------
Работаю 20ns в сутки.
|
|
|
|
|
Apr 26 2011, 14:00
|
Профессионал
    
Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079

|
Цитата(bark @ Apr 26 2011, 17:54)  Значит путаница возникала только у меня в голове. =) Тем не мение гораздо понятнее мне была именно английская версия. сейчас уже (зная все ньюансы) и русская понятна.. но сначала она мне такой прозрачной не казалась. Ну, это часто так. Я вообще стараюсь русскоязычную литературу не использовать - часто пишут бред.  А, если не секрет, как у Вас дела с Вашим проектом (помнится, Вы тоже хотели по гигабиту UDP гнать)? Спрашиваю не из праздного любопытства. Просто у iiv на плате RGMII, а готовые кортки на том же OpenCores с GMII. Вы тогда, если ничего не путаю, тоже с этой проблемой сталкнулись. Как решили? Сами написали или нашли готовую? Может и уважаемому iiv советом поможете?
--------------------
|
|
|
|
|
Apr 26 2011, 14:06
|

Частый гость
 
Группа: Свой
Сообщений: 131
Регистрация: 16-11-09
Из: Украина Юг
Пользователь №: 53 659

|
Цитата(des333 @ Apr 26 2011, 17:00)  Ну, это часто так. Я вообще стараюсь русскоязычную литературу не использовать - часто пишут бред.  А, если не секрет, как у Вас дела с Вашим проектом (помнится, Вы тоже хотели по гигабиту UDP гнать)? Спрашиваю не из праздного любопытства. Просто у iiv на плате RGMII, а готовые кортки на том же OpenCores с GMII. Вы тогда, если ничего не путаю, тоже с этой проблемой сталкнулись. Как решили? Сами написали или нашли готовую? Может и уважаемому iiv советом поможете?  С опенкоров проект действительно не подходит из-за MII интерфейса. СтьюардЛиттл помог с Альтеровским TSE MAC-контроллером. (по этому поводу надо к нему в личку) как только у меня появился МАС - начал писать проект под него. Разобрался с шиной Авалон. (по ней идёт общение с МАС). Сделал сбор пакетов и сейчас у меня UDP летает. последний замер был 982Мбит целостный поток от девборды к компу. +ARP + ICMP с вопросами по организации всего этого конечно могу помочь. на всё это дело, от изучения TSE и до работы 3-х протоколов потратил вроде около месяца-полтора.
--------------------
Работаю 20ns в сутки.
|
|
|
|
|
Aug 17 2011, 10:33
|

Местный
  
Группа: Свой
Сообщений: 285
Регистрация: 10-12-04
Из: Earth
Пользователь №: 1 437

|
Пытаюсь запустить TSE_MAC на скорости 1Гбит на плате CIII dev board (EP3C120F780). Пока что мало чего понимаю в этом IP, поэтому будет немало вопросов. Все делаю на базе проекта cycloneIII_3c120_dev_niosII_standard из дев-кита (как говорят на альтерафорумах, он может работать в гигабитном режиме). Итак, насколько я понял, если настроить корку в режиме "10/100/1000Mb Ethernet MAC", то она автоматически должна уметь работать в режиме 1000. Собственно, ничего в сэмпловом проекте пока не менял. Однако, при заливке проекта Simple Socket Server я по логу вижу что скорость таки 100Мбит: Код InterNiche Portable TCP/IP, v3.1
Copyright 1996-2008 by InterNiche Technologies. All rights reserved. prep_tse_mac 0 Can't read the MAC address from your board (this probably means that your flash was erased). We will assign you a MAC address and static network settings
Please enter your 9-digit serial number. This is printed on a label under your Nios dev. board. The first 3 digits of the label are ASJ and the serial number follows this. -->Created "Inet main" task (Prio: 2) Created "clock tick" task (Prio: 3)
123456789 123456789 Your Ethernet MAC address is 00:07:ed:ff:cd:15 prepped 1 interface, initializing... [tse_mac_init] INFO : TSE MAC 0 found at address 0x10022800 INFO : PHY Marvell 88E1111 found at PHY address 0x12 of MAC Group[0] INFO : PHY[0.0] - Automatically mapped to tse_mac_device[0] INFO : PHY[0.0] - Restart Auto-Negotiation, checking PHY link... INFO : PHY[0.0] - Auto-Negotiation PASSED MARVELL : Mode changed to RGMII/Modified MII to Copper mode MARVELL : Enable RGMII Timing Control MARVELL : PHY reset INFO : PHY[0.0] - Checking link... INFO : PHY[0.0] - Link not yet established, restart auto-negotiation... INFO : PHY[0.0] - Restart Auto-Negotiation, checking PHY link... INFO : PHY[0.0] - Auto-Negotiation PASSED INFO : PHY[0.0] - Link established INFO : PHY[0.0] - Speed = 100, Duplex = Full OK, x=0, CMD_CONFIG=0x00000000
MAC post-initialization: CMD_CONFIG=0x04000203 [tse_sgdma_read_init] RX descriptor chain desc (1 depth) created mctest init called IP address of et1 : 0.0.0.0 Acquired IP address via DHCP client for interface: et1 IP address : 192.168.0.104 Subnet Mask: 255.255.255.0 Gateway : 192.168.0.1
Simple Socket Server starting up [sss_task] Simple Socket Server listening on port 30 Created "simple socket server" task (Prio: 4) хотя на альтерафорумс сплошь и рядом в логах сияет "Speed = 1000". Что я на данном этапе делаю не так? И еще - нужно ли мне единичить сигнал "set_1000_to_the_tse_mac"?
|
|
|
|
|
Aug 17 2011, 13:49
|

Гуру
     
Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988

|
Цитата(spectr @ Aug 17 2011, 20:05)  Подключение сигнала enet_led_link1000 к порту set_1000_to_the_tse_mac никак не влияет - даже светодиод соответствующий на плате не загорается. светодиод должен загораться при наличии линка. смотрите не CMD_CONFIG, а STATUS-регистр PHY, он первичен. но светодиод смущает, м.б. кабель плохо обжат? Цитата(spectr @ Aug 17 2011, 20:05)  Согласно даташиту на TSE_MAC поле ETH_SPEED содержится в 4-м бите регистра CMD_CONFIG, но при инициализации контроллера этот бит не устанавливается. все правильно, если 0, то скорость определяется так, как я описывал выше. установка 1 принудительно включит гигабит, но у вас явно есть проблема в сети, ее нужно найти
|
|
|
|
|
Aug 18 2011, 12:08
|

Местный
  
Группа: Свой
Сообщений: 285
Регистрация: 10-12-04
Из: Earth
Пользователь №: 1 437

|
Итак, после ряда телодвижений (топ-левел из кита версии 10.0 оказался сильно перепилен по сравнению с этим же проектом версии 9.1) удалось увидеть в логе "Speed = 1000", светодиод соответствующий на плате горит. Теперь хочется понять следующее: 1. Что и в какой последовательности конфигурировать программно (для двух случаев - если используется ucos, и если она не используется)? 2. Каким образом можно организовать канал передачи данных (от платы к ПК) на максимально возможной скорости, желательно с достаточно высокой надежностью (т.е. без потерь)? 3. Каким образом померить (какими средствами, что учитывать и что не учитывать при подсчете) пропускную способность канала передачи данных?
Пока что параллельно изучаю тред "Ethernet+Nios+Cyclone", где есть много полезного. Наверняка многие ответы найду там, но на всякий случай оставлю свои вопросы и здесь.
П.С.: Кстати, в логе конфигурации появилась фраза "TSEMAC SW reset bit never cleared!". То есть это означает что ресет софтварно не сбрасывается или же что что-то аппаратно сидит в ресете?
Плата, хоть и конфигурируется, но до нее никак не достучаться - не пигнуется ни в какую (соединена с ПК кросс-кабелем)... Может быть я некорректно выставляю параметры сети? Какими, например, должны быть параметры для платы и ПК?
Сообщение отредактировал spectr - Aug 18 2011, 13:20
|
|
|
|
|
Aug 18 2011, 13:38
|

Гуру
     
Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988

|
Цитата(spectr @ Aug 18 2011, 19:08)  2. Каким образом можно организовать канал передачи данных (от платы к ПК) на максимально возможной скорости, желательно с достаточно высокой надежностью (т.е. без потерь)? указанные требования находятся в противоречии. максимальная надежность достигается при использовании TCP, за счет скорости, разумеется. максимальная скорость будет на UDP и Raw Ethernet сокетах, надежность не гарантируется. т.е. напрашивается UDP с по возможности максимальной длиной пакета + контроль ошибок/доставки своими руками. Цитата 3. Каким образом померить (какими средствами, что учитывать и что не учитывать при подсчете) пропускную способность канала передачи данных? счетчик пакетов + таймер. как вариант - снифер типа wireshark, там это есть. служебную информацию отбросить. Цитата Пока что параллельно изучаю тред "Ethernet+Nios+Cyclone", где есть много полезного. Наверняка многие ответы найду там, но на всякий случай оставлю свои вопросы и здесь. по пункту 1 там точно есть Цитата П.С.: Кстати, в логе конфигурации появилась фраза "TSEMAC SW reset bit never cleared!". То есть это означает что ресет софтварно не сбрасывается или же что что-то аппаратно сидит в ресете? возможно, что-то с клоками. информации недостаточно. бит в регистре не очищается - скорее всего проблема аппаратная Цитата Плата, хоть и конфигурируется, но до нее никак не достучаться - не пигнуется ни в какую (соединена с ПК кросс-кабелем)... Может быть я некорректно выставляю параметры сети? Какими, например, должны быть параметры для платы и ПК? IP-шники из одной подсети, этого должно быть достаточно
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|