|
|
  |
Пересылка данных с ДСП в РС через Ethernet, Нужен совет по выбору архитектуры |
|
|
|
Apr 14 2006, 13:53
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 20-12-05
Пользователь №: 12 440

|
Цитата И ещё один момент - была названа требуемая пропускная способность - 300Кбайт/с - но не указано предполагаемое кол-во пакетов в единицу времени. Если пакеты будут мелкие, но их будет много, контроллер имеет шанс захлебнуться. Предполагается, что ДСП будет непрерывно накапливать данные поочередно в двух буферах, пока один копится из другого контроллер забирает данные и отправляет по езернету, потом наоборот. Размер каждого буфера не менее 10 КБайт, т.е пакеты можно сделать максимально возможными. Про TMS320DM642 почитаю. Цитата Если интересует, есть девайс состоит из adsp2181, альтеры и at91rm9200 (альтера для сопряжения уровней и организации обмена через IDMA). На девайс спортирован Линукс 2.6, написан драйвер для работы с DSP. Кроме этого на устройстве поднят Ethernet. Через него осуществляется съем данных и изменение прошивки для дсп. Если заинтересовало - обращайтесь. Спасибо за предложение. Вариант хороший. Но с RTOS не работал, хотя и есть большое желание освоить в будущем. Если появятся вопросы, обязательно напишу в личку.
|
|
|
|
|
Apr 14 2006, 14:08
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 20-12-05
Пользователь №: 12 440

|
Цитата На связке AT91R40008 и CS8900 получалась скорость около 600кбайт/с для TCP. Но атмел заметно побыстрее и с внешней шиной. Такая скорость получена под РТОС? Судя по спецификации, AT91R40008 должен быть сравним по скорости с LPC2294 , TMS470R1B. Может подскажите, где в инете найти примеры реализации TCP\IP для связки ARM7 (типа LPC22xx)- CS8900A/RTL8019AS желательно без РТОС.
|
|
|
|
|
Apr 14 2006, 20:00
|

Мастер
   
Группа: Свой
Сообщений: 730
Регистрация: 18-02-06
Из: Москва
Пользователь №: 14 474

|
Цитата(Dimonira @ Apr 14 2006, 13:53)  Тогда осваивайте сразу TMS320DM642, у него в одном "флаконе" мощнючий DSP и Ethernet 10/100 Мбит/с. И стек, если мне не изменяет память, есть, поставляется для эвалюэйшон-платы EVMDM642. Делали мы плату на DM642 с поддержкой Ethernet. Правда стека не реализовывали, слали голый Ethernet (на PC использовали библиотеку WinPcap). Есть несколько моментов: 1) На поднятие обмена у нашего лид-программера ушло несколько дней -- как-то заморочно немного там все организовано. 2) Стек TCP/IP есть в виде XDAS-алгоритма за несколько кило$$. Что касается диска EVMDM642, там есть NDK. В данное время пытаемся портировать стек, но с этим NDK все не так просто, возможно не хватает каких-то исходников. Хотя если сделать железо аналогично с эво-модулем, может легче будет. 3) Raw Ethernet при пакетах максимальной длины удалось разогнать мегабит до 60-80. 4) А сам проц -- сила, не спорю, Техас рулит
--------------------
شامل
|
|
|
|
|
Apr 15 2006, 12:10
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 20-12-05
Пользователь №: 12 440

|
Цитата(aaarrr @ Apr 14 2006, 17:54)  Нет, без RTOS, под самописным TCP стыком. Примеры драйверов были в свое время на сайте цирруса (под VxWorks и, кажется, еще подо что-то). В принципе, можно взять какой-нибудь open-source TCP/IP и портировать его на нужную платформу без использования RTOS. Скачал с Сируса, попробую поизучать примеры драйверов. Может подскажете еще ссылки на примеры исходников TCP стека, по которым можно было бы разобраться начинающему в построении стека для cs8900 + ARM7(желательно 16-разр. режим доступа к памяти) Цитата(kolobok0 @ Apr 14 2006, 12:53)  пример реализации на x51... at8951rc1+cs8900a+32кб ОЗУ ARP, ICMP, IP, UDP на пингах около 20 кб в сек. 20 кб в сек это 20кбит или 20кбайт в сек?
|
|
|
|
|
Apr 15 2006, 17:50
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(maxut @ Apr 15 2006, 16:10)  Скачал с Сируса, попробую поизучать примеры драйверов. Может подскажете еще ссылки на примеры исходников TCP стека, по которым можно было бы разобраться начинающему в построении стека для cs8900 + ARM7(желательно 16-разр. режим доступа к памяти) Тут нужно мух от котлет отделить: 1. Связка CS8900 + ARM7. Приличных исходников для 16 бит режима, кроме драйверов от цирруса, я не встречал. Скорее всего, Вам придется написать свой. Ничего хитрого в этом нет, только стоит обратить внимание на то, что CS8900 очень не любит медленное обслуживание со стороны хоста. 2. IP/UDP/TCP. Если нужна связь с одной машиной, и достаточно только UDP, то не составит труда написать все самостоятельно. Если же нужен TCP - смотрите open-source проекты, например LwIP: http://savannah.nongnu.org/projects/lwip/
|
|
|
|
|
Apr 16 2006, 02:21
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 20-12-05
Пользователь №: 12 440

|
Спасибо за советы.
Сообщение отредактировал maxut - Apr 16 2006, 02:28
|
|
|
|
|
Apr 17 2006, 04:38
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 17-01-05
Пользователь №: 1 995

|
В этом архиве http://www.rowley.co.uk/arm/uip-e2124.zip есть работающий порт для платы Olimex. Программирование CS8900 выполняется через порты ввода/вывода и расписано достаточно подробно.
|
|
|
|
|
Apr 17 2006, 13:36
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(maxut @ Apr 15 2006, 16:10)  ...20 кб в сек это 20кбит или 20кбайт в сек? простите, да килобайт. и ышо маленьчкое замечание... те стэки которые встречались в инете реализованы без внешней памяти (возможно я ошибаюсь, возможно не все). посему в реальных условиях - они мало пригодны. Да сообщения "хэйлохты мир" прокатит, но не более.. Например реальная разбивка и сборка на IP уровне (1500 байт - один пакет, пропускают свитчи по умолчанию) - уже меняет картину не не очень радужную... с уважением (круглый)
|
|
|
|
|
Apr 18 2006, 04:27
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 17-01-05
Пользователь №: 1 995

|
Цитата(kolobok0 @ Apr 17 2006, 17:36)  Цитата(maxut @ Apr 15 2006, 16:10)  ...20 кб в сек это 20кбит или 20кбайт в сек? простите, да килобайт. и ышо маленьчкое замечание... те стэки которые встречались в инете реализованы без внешней памяти (возможно я ошибаюсь, возможно не все). посему в реальных условиях - они мало пригодны. Да сообщения "хэйлохты мир" прокатит, но не более.. Например реальная разбивка и сборка на IP уровне (1500 байт - один пакет, пропускают свитчи по умолчанию) - уже меняет картину не не очень радужную... с уважением (круглый) За работу с внешней памятью отвечает программист, который пишет функцию инициализации соответствующего интерфейса. И линкер, который разруливает сссылки. В том же lwip есть возможность настротить максимальный размер пакета, с которым будет работать программа. Файл с настройками называется, если не ошибаюсь, opt.h .
|
|
|
|
|
Apr 18 2006, 07:53
|
Участник

Группа: Новичок
Сообщений: 21
Регистрация: 14-04-06
Пользователь №: 16 128

|
Цитата(Edmundo @ Apr 15 2006, 03:00)  Цитата(Dimonira @ Apr 14 2006, 13:53)  Тогда осваивайте сразу TMS320DM642, у него в одном "флаконе" мощнючий DSP и Ethernet 10/100 Мбит/с. И стек, если мне не изменяет память, есть, поставляется для эвалюэйшон-платы EVMDM642. Делали мы плату на DM642 с поддержкой Ethernet. Правда стека не реализовывали, слали голый Ethernet (на PC использовали библиотеку WinPcap). Есть несколько моментов: 1) На поднятие обмена у нашего лид-программера ушло несколько дней -- как-то заморочно немного там все организовано. 2) Стек TCP/IP есть в виде XDAS-алгоритма за несколько кило$$. Что касается диска EVMDM642, там есть NDK. В данное время пытаемся портировать стек, но с этим NDK все не так просто, возможно не хватает каких-то исходников. Хотя если сделать железо аналогично с эво-модулем, может легче будет. 3) Raw Ethernet при пакетах максимальной длины удалось разогнать мегабит до 60-80. 4) А сам проц -- сила, не спорю, Техас рулит :) Разве в НДК нет реализации стека? Собственно, например, вот из ug322.pdf: The NDK was designed to provide a full TCP/IP functional environment, with or without routing, in a small memory footprint. Фактически, по-моему там даже хттп сервер есть. Исходников, впрочем, действительно нет, только либы. Или я ошибаюсь, и там нет заявленной функциональности? Что же касается стека в виде xdais алгоритма, то не возникнет ли с ним проблем, xdais компоненты по-хорошему не должны иметь прямого доступа к железу, только через аппликацию. И как этот момент обруливается?
|
|
|
|
|
Apr 18 2006, 10:12
|
практикующий тех. волшебник
    
Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417

|
Цитата(alogvinov @ Apr 18 2006, 08:27)  За работу с внешней памятью отвечает программист, который пишет функцию инициализации соответствующего интерфейса. И линкер, который разруливает сссылки.... я правильно Вас понимаю, что для запуска существующих стэков, нужно переписать IP уровень (и нафига такой, простите "стэк") ? :) Или по другому... Данный уровень работает ТОЛЬКО с внешней памятью (к сожалению не встречалось, может и плохо смотрел - хз..) ? с уважением (круглый)
|
|
|
|
|
Apr 18 2006, 11:41
|
Участник

Группа: Участник
Сообщений: 30
Регистрация: 17-01-05
Пользователь №: 1 995

|
Цитата(kolobok0 @ Apr 18 2006, 14:12)  Цитата(alogvinov @ Apr 18 2006, 08:27)  За работу с внешней памятью отвечает программист, который пишет функцию инициализации соответствующего интерфейса. И линкер, который разруливает сссылки.... я правильно Вас понимаю, что для запуска существующих стэков, нужно переписать IP уровень (и нафига такой, простите "стэк") ? Или по другому... Данный уровень работает ТОЛЬКО с внешней памятью (к сожалению не встречалось, может и плохо смотрел - хз..) ? с уважением (круглый) Ничего переписывать не надо. Стек ТCP/IP будет работать с любым типом памяти: хоть внутренней, хоть внешней. Просто этой самой памяти ему надо достаточно много. А имеющиеся кристаллы эту потребность удовлетворить, как правило, не могут. Вот и приходится ставить внешнюю память.
|
|
|
|
|
Apr 19 2006, 12:25
|
Частый гость
 
Группа: Свой
Сообщений: 82
Регистрация: 26-09-05
Пользователь №: 8 955

|
Пробовал разные варианты:
LPC-2214+Rtl8019AS - использовал стек OpenTCP + FreeRTOS(это совсем не обязательно), в том варианте, который я в итоге сделал удалось добиться скорости порядка 800 Кб/с по UDP (прошелся по стеку и постарался прооптимизировать под ARM) на пакетах по 1 Кб, вариант, работающий с прерываниями и использующий преимущества многозадачности к сожалению так и не доделал, но по расчетам на 900 Кб/с можно было выйти. Могу выслать исходники тестового проекта. Вашу задачу должно покрыть полностью, без внешней памяти можно вполне обойтись, внутренних 16 Кб должно хватить, если делать только мост .
Сейчас использую LPC-2214+W3100a, на данных из внешней памяти (16 бит 55 нс) удалось получить суммарный поток туда-обратно порядка 1.4 Мб/с (UDP). Если просто слать снизу - 1 Мб/с вполне реально. Исходники к сожалению выслать не могу - коммерческий проект, хотя какие-то куски могу выдрать (правда у меня очень сильно на FreeRTOS завязано). Единственная проблема - поделка от корейских ПТУшников из WizNet имеет большой комплект странностей, типа невозможности ответить на другой IP, нежели чем при инициализации сокета и т.п.. Еще более простой вариант с точки зрения программирования, но более неприятный в плане потенциальных глюков, которые могут возникнуть. В принципе можно прикрутить прямо к ADSP - ничего сложного нет, по себе оценил бы в три недели работы максимум + неделю на разработку протокола обмена и несложного отладочного ПО, это если совершенно никуда не спешить, плотненько все по-исследовать, отладить. Единственная проблема - сделать так, чтобы не мешать задачам сбора и обработки в ADSP.
С уважением, Андрей Слабнов.
|
|
|
|
|
Apr 19 2006, 14:32
|

Мастер
   
Группа: Свой
Сообщений: 730
Регистрация: 18-02-06
Из: Москва
Пользователь №: 14 474

|
Цитата(scum @ Apr 18 2006, 11:53)  Разве в НДК нет реализации стека? Собственно, например, вот из ug322.pdf: The NDK was designed to provide a full TCP/IP functional environment, with or without routing, in a small memory footprint. Фактически, по-моему там даже хттп сервер есть. Исходников, впрочем, действительно нет, только либы. Или я ошибаюсь, и там нет заявленной функциональности? Что же касается стека в виде xdais алгоритма, то не возникнет ли с ним проблем, xdais компоненты по-хорошему не должны иметь прямого доступа к железу, только через аппликацию. И как этот момент обруливается? Так чтобы сразу взять и прикрутить -- нету. "designed to provide" -- это значит он помогает в этом, насколько я понимаю. Xdais я и сам не люблю  Да и нет желания платить такую сумму за непрофильный алгоритм (у нас сеть в качестве вспомогательного интерфейса для удаленного управления встраиваемой системой). Поэтому про него ничего сказать не могу. Описание его здесь.
--------------------
شامل
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|