реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Hash Addressing в at91sam7x, зачем он нужен?
Alfa
сообщение Feb 24 2010, 11:40
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 9-02-06
Из: Челябинск
Пользователь №: 14 160



EMAC контроллера позволяет отфильтровывать входящие пакеты по адресу назначения, используя specific address registers или Hash Addressing. Какой способ лучше использовать? Какие преимущества и недостатки обоих способов?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 24 2010, 13:02
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Hash Addressing можно использовать для приема multicast'ов (собственно, другого способа их приема и нет). Unicast'ы так тоже можно принимать, только какой смысл?
Go to the top of the page
 
+Quote Post
Alfa
сообщение Feb 25 2010, 03:08
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 9-02-06
Из: Челябинск
Пользователь №: 14 160



Цитата(aaarrr @ Feb 24 2010, 18:02) *
Hash Addressing можно использовать для приема multicast'ов (собственно, другого способа их приема и нет). Unicast'ы так тоже можно принимать, только какой смысл?


стр 571 даташита:
The EMAC supports recognition of four specific addresses. Each specific address requires two
registers, specific address register bottom and specific address register top.
Specific address register bottom stores the first four bytes of the destination address and specific address register
top contains the last two bytes. The addresses stored can be specific, group, local or universal.

Последнее предложение говорит, что с помощью specific address register можно принимать и multicastы. Или я не прав?
Тогда зачем хеш?
Go to the top of the page
 
+Quote Post
KRS
сообщение Feb 25 2010, 09:25
Сообщение #4


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Alfa @ Feb 25 2010, 06:08) *
Тогда зачем хеш?

Что бы не все мультикасты принимать.
Go to the top of the page
 
+Quote Post
Alfa
сообщение Feb 25 2010, 09:41
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 9-02-06
Из: Челябинск
Пользователь №: 14 160



Цитата(KRS @ Feb 25 2010, 14:25) *
Что бы не все мультикасты принимать.

Но это можно сделать и с помощью specific address registers...
В хеше должен быть какой то глубокий смысл... smile.gif
Go to the top of the page
 
+Quote Post
KRS
сообщение Feb 25 2010, 10:50
Сообщение #6


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Alfa @ Feb 25 2010, 12:41) *
Но это можно сделать и с помощью specific address registers...
В хеше должен быть какой то глубокий смысл... smile.gif

specific address только 4 штуки!
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 25 2010, 17:15
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Alfa @ Feb 25 2010, 06:08) *
Последнее предложение говорит, что с помощью specific address register можно принимать и multicastы. Или я не прав?

Очень может быть, что я ошибаюсь. Помню только, что принимал мультикасты хэшем, а со specific address случился какой-то облом.

Если интересно, вот код для установки бита в HRT/HRB в соответствии с адресом:
Код
void emac_set_hash(unsigned int at, unsigned int ab)
{
    unsigned char hash;
    
    hash = ((at >> 8) & 0x3f) ^ ((at >> 14) & 0x03) ^
        ((at << 2) & 0x3c) ^ ((at >> 4) & 0x0f) ^
        ((ab >> 20) & 0x30) ^ ((ab >> 26) & 0x3f) ^
        ((ab >> 16) & 0x3f) ^ ((ab >> 22) & 0x03) ^
        ((ab >> 6) & 0x3c) ^ ((ab >> 12) & 0x0f) ^
        ((ab << 4) & 0x30) ^ ((ab >> 2) & 0x3f);
    if(hash < 32) *AT91C_EMAC_HRB |= (1UL << hash);
    else *AT91C_EMAC_HRT |= (1UL << (hash - 32));
}
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 06:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01408 секунд с 7
ELECTRONIX ©2004-2016