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

 
 
> самый быстрый сетевой чип ?
Огурцов
сообщение Jan 2 2013, 17:41
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Помучал(ся) w5200, начинал с 25 пакетов в секунду, сечас разогнал до 5-6 тысяч, случайный максимум 7 тысяч при какой-то там оптимизации. Но это все равно мало в сравнении с максимальной пропускной способностью 100 мегабит (200 тысяч).
Мне нужно раз в десять больше, чем сейчас, т.е. 50-60-70 тысяч в секунду. На каком чипе можно столько (или больше) выжать ? Предпочтительно на SPI, т.к. скорость SPI на скорость передачи не очень сильно влияет.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Rst7
сообщение Jan 2 2013, 19:22
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Не страдайте фигней, возьмите процессор со встроенным MAC.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jan 2 2013, 20:05
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Я бы взял stm32f407, но корпус великоват, да и PHY все равно снаружи ставить.
Более менее эквивалент w5200 - ENC424J600, но после enc28j60 как-то я опасаюсь.

По w5200
Интересно, что при снижении тактовой частоты процессора скорость передачи падает практически один в один.
А при отправке пакета через восемь сокетов сразу в некоторые моменты скорость передачи достигает максимальной. Подключение напрямую, без коммутатора.

Прикрепленное изображение



CODE

int16_t _UDPSend(uint8_t s, const uint8_t * buf, uint16_t len, uint8_t * addr, uint16_t port)
{
uint8_t status=0;
uint16_t ret=0;

if (((addr[0] == 0x00) && (addr[1] == 0x00) && (addr[2] == 0x00) && (addr[3] == 0x00)) || ((port == 0x00)))
return 0;

status = getSn_SR(s);
if(status == SOCK_CLOSED)
return ERROR_CLOSED;
if((IINCHIP_READ(Sn_MR(s))&0x0F) != Sn_MR_UDP)
return ERROR_NOT_UDP_SOCKET;
if(status != SOCK_UDP)
return ERROR_NOT_UDP_SOCKET;

//-----------------------
/* wait to process the command... */
while(IINCHIP_READ(Sn_CR(s)));

while (sending[s] && ((IINCHIP_READ(Sn_IR(s)) & Sn_IR_SEND_OK) != Sn_IR_SEND_OK))
{
if (IINCHIP_READ(Sn_IR(s)) & Sn_IR_TIMEOUT)
{
/* clear interrupt */
IINCHIP_WRITE(Sn_IR(s), (Sn_IR_SEND_OK | Sn_IR_TIMEOUT)); /* clear SEND_OK & TIMEOUT */
sending[s] = 0;
return ERROR_TIME_OUT;
}
}

IINCHIP_WRITE(Sn_IR(s), Sn_IR_SEND_OK);
sending[s] = 0;
ClearSubnet(); // for errata

//------------------

if (len > getIINCHIP_TxMAX(s))
ret = getIINCHIP_TxMAX(s); // check size not to exceed MAX size.
else
ret = len;

IINCHIP_WRITE(Sn_DIPR0(s),addr[0]);
IINCHIP_WRITE((Sn_DIPR0(s) + 1),addr[1]);
IINCHIP_WRITE((Sn_DIPR0(s) + 2),addr[2]);
IINCHIP_WRITE((Sn_DIPR0(s) + 3),addr[3]);
IINCHIP_WRITE(Sn_DPORT0(s),(uint8_t)((port & 0xff00) >> 8));
IINCHIP_WRITE((Sn_DPORT0(s) + 1),(uint8_t)(port & 0x00ff));
// copy data
send_data_processing(s, (uint8_t *)buf, ret);

SetSubnet(Subnet); // for errata
IINCHIP_WRITE(Sn_CR(s),Sn_CR_SEND);
sending[s] = 1;

return ret;
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Огурцов   самый быстрый сетевой чип ?   Jan 2 2013, 17:41
- - Cosmojam   На STM32F4 свет клином не сошёлся. Есть STM32F2 и ...   Jan 3 2013, 22:40
|- - Огурцов   Не хотелось бы на новых камнях год-другой потерять...   Jan 4 2013, 05:00
|- - Огурцов   Цитата(Cosmojam @ Jan 3 2013, 23:40) LM3S...   Jan 5 2013, 03:32
||- - Cosmojam   Цитата(Огурцов @ Jan 5 2013, 06:32) Был н...   Jan 5 2013, 10:10
||- - Огурцов   Так оно и сейчас уже очень даже вкусно. Только поч...   Jan 5 2013, 13:02
||- - Огурцов   Проверил SPI - работает адекватно. Проблема, похож...   Jan 5 2013, 14:37
||- - Огурцов   Выше наврал, с w5200 все ок - проверял пошагово в ...   Jan 5 2013, 16:38
||- - Огурцов   Дрыганьем ножек вручную (без SPI) удалось достичь ...   Jan 6 2013, 14:22
|- - Огурцов   Цитата(Cosmojam @ Jan 3 2013, 23:40) LM3S...   Jan 7 2013, 04:07
|- - Огурцов   Таки запустил код в RAMе, скорость почему-то? стал...   Jan 7 2013, 19:01
- - Rst7   QUOTE Не хотелось бы на новых камнях год-другой по...   Jan 4 2013, 07:35
- - Огурцов   Цитата(Rst7 @ Jan 4 2013, 08:35) Это каки...   Jan 4 2013, 10:48
- - Огурцов   Каким-то непонятным образом после перекомпиляции с...   Jan 4 2013, 13:59
- - Огурцов   О! это возможно из-за компиляции релиза   Jan 4 2013, 16:11
- - Огурцов   В общем, не знаю как 38, но 27К достигается стабил...   Jan 4 2013, 21:05
- - Огурцов   Может кто-нибудь объяснить, почему эстээмовский SP...   Jan 5 2013, 00:28
- - Огурцов   Посмотрел ENC424J600 - похоже, что он не подойдет,...   Jan 5 2013, 01:50
- - iosifk   Цитата(Огурцов @ Jan 5 2013, 05:50) Посмо...   Jan 5 2013, 07:15


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

 


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


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