Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: spartan6 sp605 + Tri-mode Ethernet MAC v5.4
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
serg_k1
Здравствуйте,помогите разобраться с адресацией и портом.
на плате spartan6 sp605 с помощью core Tri-mode Ethernet MAC v5.4 собран передатчик пакетов по 1Gb Ethernet. то что задается, то и выдается наружу. на выходе есть преамбула, старт-байт и далее, то что задается как массив данных на входе core Tri-mode Ethernet т.е. первые 6 байтов - адрес назначения,далее 6 байтов - адрес источника посылки и т.д. но я то думал , что адрес источника должен браться из конфигурационного регистра. и если без менеджера конфигурации , то просто из старших 48 разрядов input [79 : 0] tx_mac_config_vector моего core Tri-mode Ethernet . может я что-то недоделал? wireshark показывает адрес источника из моего массива данных.
и еще вопрос. по какому порту происходит передача данных? как это выяснить и можно ли задать?
akorud
Цитата(serg_k1 @ Oct 17 2013, 13:50) *
Здравствуйте,помогите разобраться с адресацией и портом.
на плате spartan6 sp605 с помощью core Tri-mode Ethernet MAC v5.4 собран передатчик пакетов по 1Gb Ethernet. то что задается, то и выдается наружу. на выходе есть преамбула, старт-байт и далее, то что задается как массив данных на входе core Tri-mode Ethernet т.е. первые 6 байтов - адрес назначения,далее 6 байтов - адрес источника посылки и т.д. но я то думал , что адрес источника должен браться из конфигурационного регистра. и если без менеджера конфигурации , то просто из старших 48 разрядов input [79 : 0] tx_mac_config_vector моего core Tri-mode Ethernet . может я что-то недоделал? wireshark показывает адрес источника из моего массива данных.
и еще вопрос. по какому порту происходит передача данных? как это выяснить и можно ли задать?

Насколько я помню задать нельзя. Адрес в конфигурационном векторе используется для flow control пакетов, о чем честно написано в документации.
Цитата
Transmitter Pause Frame Source Address[47:0].
This MAC Address is used by the MAC core to match against the destination address of any incoming flow control frames, and as the source address for any outbound flow control frames.
serg_k1
Цитата(akorud @ Oct 17 2013, 17:08) *
Насколько я помню задать нельзя. Адрес в конфигурационном векторе используется для flow control пакетов, о чем честно написано в документации.

ну я не увидел здесь запрета на передачу.
а как же тогда (pg051 стр. 27)
Configuration Vector Signal Definition
Table 2-13 describes the configuration vectors, which use direct inputs to the core to
replace the functionality of the MAC configuration bits when the Management Interface is
not used. The configuration settings described in Tables 2-24 to 2-30 are included in the
vector.
значит можно просто задать
tx_mac_config_vector = {48'b...,16'b..., 15'b0010_0000_0000_001, mac_tx_reset};

а далее в том же на стр.59 в tx_configuration_vector Bit Definitions 79:32 написано

Transmitter Pause Frame Source Address[47:0]. This MAC Address is used by the
MAC core to match against the destination address of any incoming flow control
frames, and as the source address for any outbound flow control frames.
The bits in this vector field are ordered so that the least significant bit of the MAC
Address (IEEE802.3 definition) is stored in the least significant bit of this vector field.
Consequently, bit 0 of this field differentiates between an individual or group
(multicast) address.
The transmission order within a MAC frame is to send the least significant bit of the
MAC Address first. Consequently, bits 7-0 of this vector field represent the first byte to
appear in frame transmission


разве это не про передачу.
но с адресом это можно и просто в пакете самому передать, как я сейчас и делаю. а вот как быть с портом. по какому передается и что задать на стороне приема в bind в addr.sin_port=htons( ??? );
akorud
Вы не то выделили жирным.

Transmitter Pause Frame Source Address[47:0]. This MAC Address is used by the
MAC core to match against the destination address of any incoming flow control
frames, and as the source address for any outbound flow control frames.

Адрес используется в случае если MAC сам решает выслать пакет, "от себя" и никак не влияет на ваши пакеты.

Цитата(serg_k1 @ Oct 18 2013, 07:51) *
но с адресом это можно и просто в пакете самому передать, как я сейчас и делаю. а вот как быть с портом. по какому передается и что задать на стороне приема в bind в addr.sin_port=htons( ??? );


Стоп-стоп, не надо путать теплое с мягким sm.gif - c уровня MAC сразу скакать на как минимум UDP (там только появляется порт).

UDP header:
serg_k1
Цитата(akorud @ Oct 18 2013, 10:41) *
Стоп-стоп, не надо путать теплое с мягким sm.gif - c уровня MAC сразу скакать на как минимум UDP (там только появляется порт).

спасибо, все понятно.я пока не буду передавать UDP, а только Ethernet пакеты. придется напрягаться при приеме. я так понимаю что winsocket не пойдет. нужно смотреть winpcap.
akorud
Цитата(serg_k1 @ Oct 18 2013, 12:34) *
спасибо, все понятно.я пока не буду передавать UDP, а только Ethernet пакеты. придется напрягаться при приеме. я так понимаю что winsocket не пойдет. нужно смотреть winpcap.

Да. Или как-то так http://msdn.microsoft.com/en-us/library/wi...v=vs.85%29.aspx - но я под windows не работал.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.