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

 
 
> AT91sam7x + 2 Ethernet, Минимизировать реализацию
IJAR
сообщение Apr 23 2010, 11:45
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



Есть ARM7 - получает в течение 1 сек по SPI блоки данных по 2.5 Кбайт/100 мл сек т.е. в сумме 25 К
далее он преобразут принятое в 60Кбайт и далее все это надо
отправить в 2 сети Ethernet по протоколу TSP/IP. Из каждой сети есть небольшой асинхронный
обратный поток (десятки байт/сек) команд управления
Решение "в лоб" - ARM7 + 2 шт W5300, но приличный жор по питанию,
может кто-нибудь предложит более простое решение


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 22)
aaarrr
сообщение Apr 23 2010, 12:56
Сообщение #2


Гуру
******

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



Если уж ставите SAM7X, то зачем внешние костыли для Ethernet'а? Если нужно именно два раздельных выхода, поставьте снаружи какой-нибудь интегрированный коммутатор с MII-интерфейсом.
Go to the top of the page
 
+Quote Post
IJAR
сообщение Apr 24 2010, 15:17
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



Цитата(aaarrr @ Apr 23 2010, 17:11) *
Если уж ставите SAM7X, то зачем внешние костыли для Ethernet'а? Если нужно именно два раздельных выхода, поставьте снаружи какой-нибудь интегрированный коммутатор с MII-интерфейсом.


По требованию заказчика устройство должно быть эквивалентно PC
с двумя Ethernet картами - т.е. иметь 2 разъема RJ45 для подключения к
двум независимым сетям.


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 24 2010, 15:30
Сообщение #4


Гуру
******

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



Должно быть эквивалентно PC с двумя картами (иметь два MAC'а), или все же просто иметь два RJ45 для подключения к разным сетям (один MAC + коммутатор)? Учитывая объемы передаваемой информации, два раздельных MAC'а - слишком большая роскошь.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 24 2010, 16:23
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(aaarrr @ Apr 24 2010, 17:45) *
Должно быть эквивалентно PC с двумя картами (иметь два MAC'а)

Да и два и более MAC адреса на одном MAC иметь может.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 24 2010, 20:38
Сообщение #6


Гуру
******

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



Цитата(zltigo @ Apr 24 2010, 20:38) *
Да и два и более MAC адреса на одном MAC иметь может.

Это понятно, просто вдруг в требованиях заказчика фигурируют непременно два честных раздельных контроллера? Требования - они ведь не обязательно совместимы со здравым смыслом.
Go to the top of the page
 
+Quote Post
KRS
сообщение Apr 25 2010, 20:21
Сообщение #7


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

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



Цитата(IJAR @ Apr 24 2010, 19:17) *
По требованию заказчика устройство должно быть эквивалентно PC
с двумя Ethernet картами - т.е. иметь 2 разъема RJ45 для подключения к
двум независимым сетям.

Только что для таких целей использовали KSZ8893 у него 1 MAC и 2 PHY наружу!
Причем внутри очень хорошо конфигурится ставит таги с кагого порта пришел фрейм и при отправке можно ставить таг в какой порт отправлять (естественно при уходе из свитча так можно удалять). В общем все есть для того что бы сделать 2 независимые карты!
Go to the top of the page
 
+Quote Post
IJAR
сообщение Apr 25 2010, 20:25
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



Цитата(KRS @ Apr 26 2010, 00:21) *
Только что для таких целей использовали KSZ8893 у него 1 MAC и 2 PHY наружу!
Причем внутри очень хорошо конфигурится ставит таги с кагого порта пришел фрейм и при отправке можно ставить таг в какой порт отправлять (естественно при уходе из свитча так можно удалять). В общем все есть для того что бы сделать 2 независимые карты!

А на сколько устойчиво держися соединение, сколько ресурсов "отъедаеся" у процессор?


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
KRS
сообщение Apr 25 2010, 21:58
Сообщение #9


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

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



Цитата(IJAR @ Apr 26 2010, 00:25) *
А на сколько устойчиво держися соединение, сколько ресурсов "отъедаеся" у процессор?

Все фильтры по MAC стоят в свитче. Так что проц получает только броадкастовые фреймы и свои (по нужным mac, причем можно mac к номеру порта привязать). Никаких дополнительных ресурсов не отъедается, к фрейму только таг цепляется с какого порта он пришел, а при отправке куда отправлять. Пакеты не теряются.
Причем в свитче куча настроек по предотварещению DOS атак...
Go to the top of the page
 
+Quote Post
IJAR
сообщение Apr 26 2010, 06:24
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



Цитата(KRS @ Apr 26 2010, 01:58) *
Все фильтры по MAC стоят в свитче. Так что проц получает только броадкастовые фреймы и свои (по нужным mac, причем можно mac к номеру порта привязать). Никаких дополнительных ресурсов не отъедается, к фрейму только таг цепляется с какого порта он пришел, а при отправке куда отправлять. Пакеты не теряются.
Причем в свитче куча настроек по предотварещению DOS атак...


santa2.gif
Спасибо, похоже это то что нужно!
Можно будет несколько вопросов через личку?


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
KRS
сообщение Apr 26 2010, 11:14
Сообщение #11


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

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



Цитата(IJAR @ Apr 26 2010, 10:24) *
santa2.gif
Спасибо, похоже это то что нужно!
Можно будет несколько вопросов через личку?

Да без проблем!
Сразу скажу что мне нужен был только простой UDP, поэтому готовые стеки я не использовал.
настройка micrel у меня через SPI. И вот как его настроить что бы он изображал из себя 2 карты с минимальным оверхедом со стороны проца я разобрался полностью.
Go to the top of the page
 
+Quote Post
dch
сообщение May 15 2010, 05:14
Сообщение #12


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

Группа: Участник
Сообщений: 1 179
Регистрация: 15-09-04
Из: 141070 г. Королев МО, улица Горького 39-121
Пользователь №: 661



Смешно об этом говорить поставьте два sam7x они стоят копейки или один арм 9
Go to the top of the page
 
+Quote Post
iosifk
сообщение May 17 2010, 05:16
Сообщение #13


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(KRS @ Apr 26 2010, 00:21) *
Только что для таких целей использовали KSZ8893 у него 1 MAC и 2 PHY наружу!
Причем внутри очень хорошо конфигурится ставит таги с кагого порта пришел фрейм и при отправке можно ставить таг в какой порт отправлять (естественно при уходе из свитча так можно удалять). В общем все есть для того что бы сделать 2 независимые карты!


И я еще немного добавлю.
Если габариты не жмут, то я рекомендую 5-ти портовый свич. Они на складе есть да и стоят столько же, как и 3-х портовый. Но при этом у Вас появится порт для технологической отладки...
или предусмотреть, чтобы на одном порте подключался оптический преобразователь...
Ведь аппетит у заказчика не всегда "приходит" на момент написания ТЗ. Бывает, что и позже...
Информацию я выложил здесь
http://www.eltech.spb.ru/micrel_ethernet.html
Можно взять стартовый набор и попробовать...

Кстати, там на сайте уже наверное выложили запись вебинара по свитчам.
Удачи!


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Gunner
сообщение Jun 8 2010, 11:56
Сообщение #14


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 23-06-04
Из: Kiev
Пользователь №: 146



Цитата(iosifk @ May 17 2010, 08:16) *
И я еще немного добавлю.
Если габариты не жмут, то я рекомендую 5-ти портовый свич. Они на складе есть да и стоят столько же, как и 3-х портовый. Но при этом у Вас появится порт для технологической отладки...
или предусмотреть, чтобы на одном порте подключался оптический преобразователь...
Ведь аппетит у заказчика не всегда "приходит" на момент написания ТЗ. Бывает, что и позже...
Информацию я выложил здесь
http://www.eltech.spb.ru/micrel_ethernet.html
Можно взять стартовый набор и попробовать...

Кстати, там на сайте уже наверное выложили запись вебинара по свитчам.
Удачи!


С позволения автора хочу присоединиться к вопросу.
Исходные данные те же: ARM-контроллер (на борту один МАС) и 2 внешних интерфейса Ethernet (Eth1 и Eth2). Надо, чтобы пакеты, приходящие по Eth1, поступали в ARM. Там они будут преобразовываться, после чего должны быть отправлены по Eth2. В обратном напрвлении - аналогично.
Собственно вопрос - позволяют ли данные коммутаторы (напр., KS8893/KS8993) работу в таком режиме Eth1 <--> ARM <--> Eth2 (то есть чтобы была заблокирована связь Eth1 <--> Eth2)?
Go to the top of the page
 
+Quote Post
IJAR
сообщение Jun 8 2010, 12:04
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 232
Регистрация: 26-02-07
Из: г. Зеленоград
Пользователь №: 25 669



Цитата(Gunner @ Jun 8 2010, 15:56) *
С позволения автора хочу присоединиться к вопросу.
Исходные данные те же: ARM-контроллер (на борту один МАС) и 2 внешних интерфейса Ethernet (Eth1 и Eth2). Надо, чтобы пакеты, приходящие по Eth1, поступали в ARM. Там они будут преобразовываться, после чего должны быть отправлены по Eth2. В обратном напрвлении - аналогично.
Собственно вопрос - позволяют ли данные коммутаторы (напр., KS8893/KS8993) работу в таком режиме Eth1 <--> ARM <--> Eth2 (то есть чтобы была заблокирована связь Eth1 <--> Eth2)?

Мы смотрели DS на KS8893 у него управление по SPI
и есть настройки : выводить через канал 1
выводить через канал 2
выводить через канал 1 и 2 одновременно
IMHo:
похоже что Вам это тоже подойдет


--------------------
Вяжешь - вой, а поедешь - песни пой.
Между "хочу" и "можно" всегда есть дистанция
Go to the top of the page
 
+Quote Post
Gunner
сообщение Jun 8 2010, 12:44
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 23-06-04
Из: Kiev
Пользователь №: 146



Цитата(IJAR @ Jun 8 2010, 15:04) *
Мы смотрели DS на KS8893 у него управление по SPI
и есть настройки : выводить через канал 1
выводить через канал 2
выводить через канал 1 и 2 одновременно
IMHo:
похоже что Вам это тоже подойдет

Мне надо чтобы через канал 1 не был доступен канал 2 (и наоборот). Чтобы потоки замыкались только через контроллер, подключенный к каналу 3. Такое реализуемо?

P.S. На странице http://www.eltech.spb.ru/micrel_ethernet.html есть пример шлюза на основе KSZ8995A и сказано:
"Кроме возможности управлять режимом работы портов, у микросхем фирмы Микрел так же имеется возможность и управлять самими данными. Для этого к коммутатору, к одному из портов МАС подключают внешний микроконтроллер. Пример такого шлюза приведен на рисунке."
Но там у процессора показано два MACа. У меня есть только один.

Сообщение отредактировал Gunner - Jun 8 2010, 12:51
Go to the top of the page
 
+Quote Post
KRS
сообщение Jun 14 2010, 21:19
Сообщение #17


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

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



Цитата(Gunner @ Jun 8 2010, 16:44) *
Мне надо чтобы через канал 1 не был доступен канал 2 (и наоборот). Чтобы потоки замыкались только через контроллер, подключенный к каналу 3. Такое реализуемо?

Реализуемо! У меня так и работает! Там есть битовая настройка для каждого порта с какими он может быть связан.
Только что бы имитировать 2 мака, лучше задать в Static MAC table броадкастовый мак, нужные мультикастовые и свои юникастовые с битом OVERRIDE и открыть phy 1 и phy 2 - Recive disable | Special Tagging Mode
Тогда будет полный контроль над фреймами. При соотв. настройке у покидающих свитч пакетов через phy1 и phy2 таги будут удаляться т.е. с наружи ничего заметно не будет.

Сообщение отредактировал KRS - Jun 14 2010, 21:33
Go to the top of the page
 
+Quote Post
Gunner
сообщение Jun 22 2010, 13:22
Сообщение #18


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 23-06-04
Из: Kiev
Пользователь №: 146



QUOTE (KRS @ Jun 15 2010, 00:19) *
Реализуемо! У меня так и работает! Там есть битовая настройка для каждого порта с какими он может быть связан.
Только что бы имитировать 2 мака, лучше задать в Static MAC table броадкастовый мак, нужные мультикастовые и свои юникастовые с битом OVERRIDE и открыть phy 1 и phy 2 - Recive disable | Special Tagging Mode
Тогда будет полный контроль над фреймами. При соотв. настройке у покидающих свитч пакетов через phy1 и phy2 таги будут удаляться т.е. с наружи ничего заметно не будет.

Спасибо.
Go to the top of the page
 
+Quote Post
grinux
сообщение Jun 30 2010, 20:38
Сообщение #19


Частый гость
**

Группа: Участник
Сообщений: 97
Регистрация: 2-01-09
Пользователь №: 42 891



LAN9303
http://www.smsc.com/index.php?tid=147&pid=217
Почти в 2 раза дешевле микрела.
Go to the top of the page
 
+Quote Post
KRS
сообщение Jul 16 2010, 15:44
Сообщение #20


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

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



QUOTE (grinux @ Jul 1 2010, 00:38) *
Почти в 2 раза дешевле микрела.

Это где в 2 раза дешевле? В несколько десятков центов разница при штучной покупке. ~9 баксов
Go to the top of the page
 
+Quote Post
pulo
сообщение Sep 23 2011, 03:59
Сообщение #21





Группа: Новичок
Сообщений: 2
Регистрация: 20-09-11
Пользователь №: 67 284



Цитата(KRS @ Apr 26 2010, 00:21) *
Только что для таких целей использовали KSZ8893 у него 1 MAC и 2 PHY наружу!
Причем внутри очень хорошо конфигурится ставит таги с кагого порта пришел фрейм и при отправке можно ставить таг в какой порт отправлять (естественно при уходе из свитча так можно удалять). В общем все есть для того что бы сделать 2 независимые карты!

Примером работы через SPI с KSZ8893 не поделитесь?
Go to the top of the page
 
+Quote Post
KRS
сообщение Sep 23 2011, 11:30
Сообщение #22


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

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



Цитата(pulo @ Sep 23 2011, 07:59) *
Примером работы через SPI с KSZ8893 не поделитесь?

А что конкретно интересует? Сам интерфейс SPI - он там очень простой. К тому же мои функции низкого уровня вам не подойдут, я NXP использовал.
Там достаточно такие функции определить
Код
uint_fast8_t ks8893_read(uint_fast8_t addr);
void ks8893_write(uint_fast8_t addr, uint_fast8_t data);
void ks8893_write_mac(uint64_t data, unsigned addr);
uint64_t ks8893_read_mac(unsigned addr);

Для чтения и записи регистров и таблицы с mac адресами.

Для теста интерфейса я использовал примерно такой код:
Код
    tmp = ks8893_read(0);
    c_puts("Family ");
    c_puthex(tmp,2);
    if (tmp == 0x88) {
        c_puts("OK\x0D\x0A");
    } else {
        c_puts("Failed\x0D\x0A");
    }
    tmp = ks8893_read(1) >> 4;
    c_puts("Chip id ");
    c_puthex(tmp,1);
    if (tmp == 0x2) {
        c_puts("OK\x0D\x0A");
    } else {
        c_puts("Failed\x0D\x0A");
    }
    for(i = 0; i < 0x100; i ++) {
        ks8893_write(0x14, i);
        tmp = ks8893_read(0x14);
        if (tmp != i) {
            c_puts("SPI test failed\x0D\x0A");
        }
    }

т.к. тестового регистра нет, использовал регистр который может принимать любые значения.
Go to the top of the page
 
+Quote Post
pulo
сообщение Jan 12 2012, 06:48
Сообщение #23





Группа: Новичок
Сообщений: 2
Регистрация: 20-09-11
Пользователь №: 67 284



KRS, большое спасибо за пример.
Решил продолжить заниматься свитчем, свитч подключен по MII и настраиваю его через SMI интерфейс, ледами у выходов помигать и тп - без проблем, но вот с посылкой пакетов проблема. Разбираюсь с VLAN, собрал пакет, указал в ID 1 для первого порта, пакет точно правильный (отснифал, поменял только VID и на свой Мак адрес) и при посылке пакет дальше свитч не идет, до свитча доходит(осциллографом посмотрел)...
Перечитываю даташит, правильно ли я понял, чтобы посылать пакет в нужный порт, нужно использовать VLAN теги?
Ну и странный вопрос наверно, зачем таблицы MAC адресов?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 05:55
Рейтинг@Mail.ru


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