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

 
 
> CS8900A малый размер буферов
RCray
сообщение Nov 1 2005, 19:29
Сообщение #1


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

Группа: Свой
Сообщений: 170
Регистрация: 14-09-05
Из: Suwon
Пользователь №: 8 548



Такой вопрос:
Многие тут делали свои проекты с прикрученным чипом 10 Mbit Ethernet CS8900A.
Так вот там FIFO буферы на приём и передачу соответсвуют максимальному размеру Ethernet-пакета.
А что будет, если придут последовательно два пакета с максимально большим размером? Я не успею скопировать один целиком, прежде чем второй начнёт записываться в память. Получу потерю пакета=(

Как разрулить?

Или как выход использовать чипы с большей SRAM на борту?

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
raider
сообщение Nov 1 2005, 20:17
Сообщение #2


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

Группа: Свой
Сообщений: 117
Регистрация: 11-05-05
Из: г. Москва
Пользователь №: 4 916



Никто и не гарантирует 100%-ую доставку Ethernet пакетов. А разруливается это протоколом транспортного уровня - tcp; который, в случае, потери пакета его перезапрашивает.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Nov 2 2005, 11:27
Сообщение #3


Гуру
******

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



Цитата(2b|!2b?.. @ Nov 1 2005, 22:29)
Такой вопрос:
Многие тут делали свои проекты с прикрученным чипом 10 Mbit Ethernet CS8900A.
Так вот там FIFO буферы на приём и передачу соответсвуют максимальному размеру Ethernet-пакета.
А что будет, если придут последовательно два пакета с максимально большим размером? Я не успею скопировать один целиком, прежде чем второй начнёт записываться в память. Получу потерю пакета=(

Как разрулить?

Или как выход использовать чипы с большей SRAM на борту?

Спасибо.
*

А тогда модуль-приемник начинает "противодавление". Т.Е. начинает передачу, вызывает в линии коллизию и этим затыкает передатчик. Метод абсолютно легальный, но не прописанный в спецификации.
Кстати посмотрите на продукцию micrel. KS8842 и KS8695
Удачи!


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
alexdsp
сообщение Nov 8 2005, 15:10
Сообщение #4


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

Группа: Свой
Сообщений: 82
Регистрация: 22-10-04
Из: Moscow
Пользователь №: 954



Цитата(iosifk @ Nov 2 2005, 14:27) *
А тогда модуль-приемник начинает "противодавление". Т.Е. начинает передачу, вызывает в линии коллизию и этим затыкает передатчик. Метод абсолютно легальный, но не прописанный в спецификации.


Я бы не сказал что метод легальный. Например в сетях 100base-TX такой способ не пройдёт, так как там вообще нет никаких коллизий.

Правильно будет послать прямо на MAC передающей стороны "PAUSE control frame" либо по зарезервированному мультикасту 01-80-с2-00-00-01. В поле Length/Type должно быть 8808, далее следует 16-бит opcode 0001, а затем 16-бит поле таймера, в который вписывается число слотов на которое следует притормозить передатчик. (Слот - это время на передачу минимального 64 байтного фрэйма)

Ещё один способ, если используется UDP. При помощи ICMP сообщения "source quench"
Go to the top of the page
 
+Quote Post

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

 


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


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