|
Реально Fast Ethernet, Использование RAW-пакетов |
|
|
|
Mar 3 2008, 21:30
|

Местный
  
Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131

|
Периодически вспыхивают дискуссии о реальной скорости передачи данных по Ethernet. У меня именно такая задача - в сенменте Ethernet-100 обеспечить передачу потока данных со скоростью не менее 80 Мbps. Как я уже докладывал, существующие стеки TCP/IP не обеспечивают такой скорости, даже в протоколе UDP. Для известных конструкций на микроконтроллерах, реальная скорость не превышает 20..25 Mbps. Поэтому было решено отойти от стандартов TCP/IP и максимально сократить программное вмешательство процессора в процесс отсылки пакетов. Городить FPGA для ENET-100 тоже не показалось оправданным. В результате, поиск остановился на кристалле STR912FAxx c ARM9 и Ethernet контроллером на борту. Почему именно на нем. Потому, что в нем так организована периферия, AHB шина, контроллер внешней шины и DMA-MAC, что позволяет заполнять FIFO MAC-контроллера внешними данными автономно, минуя шину процессора и минуя шину FLASH и SRAM. Т.е. процессор практически не тормозится, а закачка данных идет на максимальной скорости. Я реализовал простейший вид RAW-пакетов в формате Ethernet-II: <Dst><Src><FrameId><...Data...>. Где FrameId мне любезно предоставил наш уважаемый гуру. Вот первые результаты натурных испытания на модуле MMstr912 от Propox получена максимальная скорость передачи данных- 96 Mbps. Использование 100M сети на 96%. Это скорость, когда процессор ничем не занят. В реале же, я ожидаю незначительного снижения производительности из-за того, что подготовка и отсылка пакетов практически полностью осуществляется аппаратными средствами кристалла. Было проверено также прохождение такого потока данных через свитч. Нареканий нет. Также проверена возможность WinPCAP капчурить поток пакетов такой скорости поступления и записывать их в файл. Работает исправно на Windows XP c обычным пентиумом 800MHz. Сейчас я полон оптимизма и приступаю к реализации WEB-сервера на RAW-пакетах.
|
|
|
|
|
 |
Ответов
|
Mar 3 2008, 22:10
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Aprox @ Mar 4 2008, 00:30)  Как я уже докладывал, существующие стеки TCP/IP не обеспечивают такой скорости, даже в протоколе UDP. Для известных конструкций на микроконтроллерах, реальная скорость не превышает 20..25 Mbps. На ARM9 200MHz под Linux'ом получается скорость 93.9МБит/с для TCP соединения. Измерялось iperf'ом. Цитата(Aprox @ Mar 4 2008, 00:30)  Сейчас я полон оптимизма и приступаю к реализации WEB-сервера на RAW-пакетах. Какие же тут RAW-пакеты, если WEB-сервер предполагает использование TCP/IP?
|
|
|
|
|
Mar 4 2008, 09:22
|

Местный
  
Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131

|
Цитата(aaarrr @ Mar 4 2008, 01:10)  На ARM9 200MHz под Linux'ом получается скорость 93.9МБит/с для TCP соединения. Измерялось iperf'ом. Мой выбор конструкции- все на одном кристалле, в корпусе LQFP-128, стоимостью $14. Ваш вариант ARM9 200MHz с Linux сопоставим по простоте и стоимости? Цитата Какие же тут RAW-пакеты, если WEB-сервер предполагает использование TCP/IP? Точно такой же, как делают WEB-сервер в сети на RS-485. Через шлюз CGI.
|
|
|
|
|
Mar 4 2008, 15:06
|

Местный
  
Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131

|
Цитата(aaarrr @ Mar 4 2008, 13:18)  По стоимости сопоставим, по простоте - не очень  Если не секрет, какой кристалл используете, какая вокруг обвязка, сколько потребляет все вместе. И самый главный вопрос, ваш процессор кроме прокачки по TCP может заниматься еще чем-нибудь, например, управлением моторами, DSP обработкой речи?
|
|
|
|
|
Mar 4 2008, 15:29
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Aprox @ Mar 4 2008, 18:06)  Если не секрет, какой кристалл используете, какая вокруг обвязка, сколько потребляет все вместе. Скорость измерялась на платформе EP9312, но он уже старенький и потому дорогой. За $20 можно поставить AT91SAM9260+SDRAM+Flash. Цитата(Aprox @ Mar 4 2008, 18:06)  И самый главный вопрос, ваш процессор кроме прокачки по TCP может заниматься еще чем-нибудь, например, управлением моторами, DSP обработкой речи? Может, но "прокачка" при этом пострадает. Только зачем контроллеру мотора иметь 100Мбит Ethernet на полной скорости? Жевать полноценно такие потоки он все равно не сможет.
|
|
|
|
|
Mar 5 2008, 15:19
|

Местный
  
Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131

|
Цитата(aaarrr @ Mar 4 2008, 18:29)  Скорость измерялась на платформе EP9312, но он уже старенький и потому дорогой. За $20 можно поставить AT91SAM9260+SDRAM+Flash. Я приглядывался к подобным вариантам, и показались они слишком громоздкими для моих задач. Раньше вся система WEB-управления прибором умещалась в однокристаллке с разумной тактовой частотой. Потом было поставлена задача, параллельно с уже существующем, создать канал перекачки внешних потоков данных в компьютер по Ethernet. Порывшись в вариантах, я понял, что однокристаллкой с существующим TCP/IP программным стеком тут делать нечего. А переходить на монстрообразные конструкции с дополнительными SDRAM, Flash, высокой тактовой частотой, BGA корпусами и многослойной печатной платой- сильно не хотелось. Очень обрадовался, когда узнал про однокристаллку STR912F, что там можно устроить практически аппаратную перекачку потока из внешней параллельной шины в MAC контроллер. Процессор не тормозится и спокойно может вести прежнюю задачу управления. Это было решающим пунктом в выборе решения. Этим же обстоятельством продиктован переход на RAW-пакеты и отказ от IP. Только в этом случае обеспечивается минимальное вмешательство процессора в перекачку данных, отсюда скорость. Цитата Может, но "прокачка" при этом пострадает. Только зачем контроллеру мотора иметь 100Мбит Ethernet на полной скорости? Жевать полноценно такие потоки он все равно не сможет. "Жевать" не требуется, надо тупо брать данные с EMI шины в виде готовых Raw-пакетов и пулять наружу через ENET. Если суда вклиниваются программные действия процессора, то скорость падает и тем больше, чем хуже написан софт TCP/IP стека. Кстати, какой использовали стек в своих испытаниях? GNU, opensource или покупной? Кроме того, задача управления прибором имеет высший приоритет, что в случае программного TCP/IP, потребует организации больших буферов в оперативной памяти на случай паузы из-за отвлечения процессора на управление. Крайне нежелательно для однокристальных ARM-ов, у которых довольно сильная напряженка именно со встроенной SRAM. Короче, чем меньше процессор участвует в тупой перекачке данных, тем лучше.
|
|
|
|
Сообщений в этой теме
Aprox Реально Fast Ethernet Mar 3 2008, 21:30 aaarrr Понятно. У меня тоже в одной разработке использует... Mar 5 2008, 15:27 Raimis Цитата(Aprox @ Mar 4 2008, 01:30) Периоди... Mar 9 2008, 18:33 Aprox Цитата(Raimis @ Mar 9 2008, 21:33) Как я ... Mar 10 2008, 08:04  Raimis Цитата(Aprox @ Mar 10 2008, 12:04) Я проб... Mar 11 2008, 13:47   Aprox Цитата(Raimis @ Mar 11 2008, 16:47) это о... Mar 11 2008, 18:39 AlexandrY Решил я тут проверить эти утверждения.
Картина нем... Mar 13 2008, 21:40  Aprox Цитата(AlexandrY @ Mar 14 2008, 00:40) Ре... Mar 14 2008, 12:14   AlexandrY Нет PAUSE пакетов никаких не было.
Во первых карта... Mar 14 2008, 14:41    Aprox Цитата(AlexandrY @ Mar 14 2008, 17:41) Не... Mar 14 2008, 15:33 GL_basik А как Ваше устройство отреагирует на сеть, где mul... Mar 11 2008, 07:03 Aprox Цитата(GL_basik @ Mar 11 2008, 10:03) А к... Mar 11 2008, 12:36  Aprox Цитата(Aprox @ Mar 11 2008, 15:36) Как ра... Mar 12 2008, 17:00
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|