|
Транспорт с низкой латентностью, Есть несколько плат, нужен транспорт между ними... |
|
|
|
Feb 7 2007, 11:36
|

Частый гость
 
Группа: Свой
Сообщений: 93
Регистрация: 5-03-06
Из: Украина, Киев
Пользователь №: 14 970

|
Добрый день! Вот встала задача. В устройстве есть N плат между которыми нужно организовать передачу данных на высокой скорости и с низкой латентностью. Даные должны передаваться с любой платы на любую, так сказать, что то вроде сети. Идеи возникали разные: 1. Поставить на каждой плате ARM и использовать I2C - не прошла идея из-за низкой скорости. 2. Поставить на каждой плате ARM и на одной организовать HOST - детально еще не думал. 3. Поставить на каждой плате ARM и использовать TCP/IP - тестировал скорость соединения на основе чипа LPC 2378, получил скорость от 1-10Mbps в зависимости от размера пакета. Думаем как ускорится, пока единственный вариант. Может кто чего еще посоветует. Главное это низкая латентность и желательно скорость повыше. К рассмотрению принимаются всевозможные идеи
|
|
|
|
|
Feb 7 2007, 12:04
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(zltigo @ Feb 7 2007, 11:48)  Цитата(Bosicc @ Feb 7 2007, 10:36)  Думаем как ускорится, пока единственный вариант.
Выкинуть нахрен и TCP и IP. Для нескольких плат прекрасно будет работать физический уровень Ethernet - MAC адресация есть, контрольные суммы есть, аппаратная фиксация ошибок в канале передачи есть. Легкую надстройку по вкусу над фреймом IEEE 802.3 и все. Можно даже вместо трансформаторов поставить конденсаторы. Просто контроллер Ethernet с PHY на борту. А может для этого брать процессор с ядром МАС. И в продолжение темы, в КиТе была статья о том, как ДСП-процессоры общались между собой через свич.
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Feb 7 2007, 13:28
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(Bosicc @ Feb 7 2007, 13:36)  Может кто чего еще посоветует. Главное это низкая латентность и желательно скорость повыше. К рассмотрению принимаются всевозможные идеи  Давайте все же на инженерном форуме пытаться формулировать свои вопросы понятно. Ну что значит скорость повыше? Приведите хотя бы в байт/с, что ли. Я бы предложил CAN на 1.6 МБит, но непонятно много это ли мало.
--------------------
Пасу котов...
|
|
|
|
|
Feb 7 2007, 13:40
|

Частый гость
 
Группа: Свой
Сообщений: 93
Регистрация: 5-03-06
Из: Украина, Киев
Пользователь №: 14 970

|
Цитата(Andy Mozzhevilov @ Feb 7 2007, 12:28)  Давайте все же на инженерном форуме пытаться формулировать свои вопросы понятно. Ну что значит скорость повыше? Приведите хотя бы в байт/с, что ли. Я бы предложил CAN на 1.6 МБит, но непонятно много это ли мало. Извиняюсь за недоговаривание, исправляюсь. Скорость требуется не меньше 32Mbps и при этом необходима низкая латентность. 1.6Мbps однозначно недостаточно. А как можно прикинуть необходимую скорость процессора, что б он успевал обеспечивать скорость порядка 50Mbps ?
|
|
|
|
|
Feb 7 2007, 15:22
|

Частый гость
 
Группа: Свой
Сообщений: 93
Регистрация: 5-03-06
Из: Украина, Киев
Пользователь №: 14 970

|
Цитата(zltigo @ Feb 7 2007, 13:15)  Но в любом случае 50Mbit это очень даже не мало - просто так за счет "волшебного слова" Ethernet не решится. Ок. А может можно еще можно что то придумать помимо Ethernet? Может кто нибуть использует что нибуть другое? Или такой скоростью некто дел не имел. Просто я сам первый раз столкнулся с таким заданием. Вот теперь сижу думаю
|
|
|
|
|
Feb 7 2007, 15:24
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(Bosicc @ Feb 7 2007, 15:22)  Цитата(zltigo @ Feb 7 2007, 13:15)  Но в любом случае 50Mbit это очень даже не мало - просто так за счет "волшебного слова" Ethernet не решится.
Ок. А может можно еще можно что то придумать помимо Ethernet? Может кто нибуть использует что нибуть другое? Или такой скоростью некто дел не имел. Просто я сам первый раз столкнулся с таким заданием. Вот теперь сижу думаю Последовательные порты в DSP-процессорах или SerDes в FPGA.
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Feb 8 2007, 15:51
|
Участник

Группа: Свой
Сообщений: 56
Регистрация: 25-06-05
Пользователь №: 6 300

|
А данные случайно не легко упаковываемые?
|
|
|
|
|
Feb 9 2007, 07:32
|
Местный
  
Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034

|
Цитата(Bosicc @ Feb 9 2007, 06:24)  Вчера начали тестировать скорость TCP/IP в связке DSP + WizNet chip ( W3150A ) Буду надеятся что скорость будет достаточная, но вот вопрос латентности.... Ведь в DSP и сам чип вносят некого рода задержку, хотелось бы что нибуть в одном корпусе, да еще и достаточно резвое. 2lolikandr Уточните вопрос с данными. Вы кстати требуемую латентность никак не охарактеризовали (в цифровом виде). Также впрочем и то какие данные у вас передаются. Одно дело пакеты, другое дело битовые потоки. Т.е. если Вам надо передавать, например, какие-то команды, состояния и т.д. (неделимые куски информации объёмом X..Y байт) то имеет смысл пакетная передача. Если у Вас идёт поток однородных данных, например с АЦП, и его надо как можно быстрей передать, то тут уже следует подумать о всяких битовых потоках (SPORT-ы в DSP-ях, LVDS и т.д.), тут латентность может быть в пару отсчётов, в то время как при пакетной передаче с N отсчётов в пакете латентность будет около 2*N отсчётов.
|
|
|
|
|
Feb 9 2007, 09:04
|
Местный
  
Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425

|
Цитата(Bosicc @ Feb 9 2007, 04:24)  Вчера начали тестировать скорость TCP/IP в связке DSP + WizNet chip ( W3150A ) Буду надеятся что скорость будет достаточная, но вот вопрос латентности.... Ведь в DSP и сам чип вносят некого рода задержку, хотелось бы что нибуть в одном корпусе, да еще и достаточно резвое. 2lolikandr Уточните вопрос с данными. В связке DSP + WizNet удалось достигнуть скорости 24Mbit (близко к пределу, 16Mbit - легко) с использованием UDP.
|
|
|
|
|
Feb 9 2007, 11:41
|

Частый гость
 
Группа: Свой
Сообщений: 93
Регистрация: 5-03-06
Из: Украина, Киев
Пользователь №: 14 970

|
Цитата(Alex03 @ Feb 9 2007, 06:32)  Вы кстати требуемую латентность никак не охарактеризовали (в цифровом виде). Также впрочем и то какие данные у вас передаются. Одно дело пакеты, другое дело битовые потоки. Передавать надо пакеты, примерно 32 байта. Может больше. А про числовое значение латентности много сказать немогу что команда должна выполнится за 5 мксек. Так что из такого расчета надо подобрать транспорт. 2DoplerА какую DSP и какой WizNet использовали? А в этой связке нельзя поднять скорость хотябы до 32Mbps?
|
|
|
|
|
Feb 9 2007, 12:48
|
Местный
  
Группа: Свой
Сообщений: 437
Регистрация: 23-04-05
Из: Таганрог
Пользователь №: 4 425

|
Цитата(zltigo @ Feb 9 2007, 12:15)  Цитата(Bosicc @ Feb 9 2007, 10:41)  А какую DSP и какой WizNet использовали? А в этой связке нельзя поднять скорость хотябы до 32Mbps?
В этой связке WizNet с его даже теоретическими 25Mbit причем далеко не на 32байтовых пакетах  лишний. СОВСЕМ лишний. DSP соединяются, как предписано Создателем  встроенными синхронными интерфейсами. 32Mbit - легко. Да, zltigo прав. В нашем случае данные передавались в компьютер пакетами 1024 байта (плюс несколько служебных байт). Использовалось ADSP2185 и WIZNET W310A, больше 25 поднять производительность нельзя. Простой тест - без заполнения буферов просто давать команду отправить пакет (например, те же 1024 байта), а на компьютере оценить пропускную способность (количество принятых пакетов за, например, 10 сек.). Это решение годится для внешней связи устройства, для внутренней SPORT ADSP на мой взгляд намного предпочтительней.
|
|
|
|
|
Feb 9 2007, 14:17
|
Частый гость
 
Группа: Новичок
Сообщений: 79
Регистрация: 1-11-06
Пользователь №: 21 868

|
Цитата(Bosicc @ Feb 9 2007, 10:41)  Передавать надо пакеты, примерно 32 байта. Может больше. А про числовое значение латентности много сказать немогу что команда должна выполнится за 5 мксек. Так что из такого расчета надо подобрать транспорт. Как вариант - а нельзя команду передать чуть заранее, а строб времени дать по отдельной ноге? Ну это конечно если нужна именно синхронизация, а не время реагирования. А так вообще-то жесткие требования - 32 байта и 5 мкс это чуть больше 50 мбит даже если просто это время затратить на передачу пакета... И может 32 байта можно уменьшить? Кроме прочего, эзернет тут вам добавит кучку лишних байт. Посмотрите правда в сторону последовательных синхронных каналов.
|
|
|
|
|
Feb 9 2007, 23:43
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
У меня стек TCP дает 67 Мбит/c без напряга. Но на UDP с размером пакета 8192 байта и без собственно использования принятого пакета. А на 64 байта тот же стек всего 5 Мбит/c , так что на Ethernet вам своей задачи не достичь. Включите 2-а SPI параллельно, и на любом ARM-е с DMA получите заветные 50 Мбит/c Цитата(Bosicc @ Feb 9 2007, 05:54)  Вчера начали тестировать скорость TCP/IP в связке DSP + WizNet chip ( W3150A ) Буду надеятся что скорость будет достаточная, но вот вопрос латентности.... Ведь в DSP и сам чип вносят некого рода задержку, хотелось бы что нибуть в одном корпусе, да еще и достаточно резвое. 2lolikandr Уточните вопрос с данными.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|