Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Пересылка данных с ДСП в РС через Ethernet
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
maxut
АРМами только начинаю заниматься. Необходимо связать железяку с РС по коаксил. кабелю ~500м. Планирую использовать сетевые Ethernet-адаптеры, т.к. по кабелю будет идти питание. Нужно забирать данные (поток порядка 300КБайт/с) из внутренней памяти ADSP2185. Есть ряд вопросов:

1. стоит ли использовать TCP/IP или лучше ограничиться UDP
2. потянет ли такой поток связка например LPC2124-CS8900A ( за основу стека планирую взять пример slaa137a для MSP430. Правда там пишут, что скорость порядка нескольких килобайт/с, если переработать этот софт под АРМ насколько увеличится скорость?)
3. если п.2 проходит, что проще и лучше использовать W3100 или CS8900
4. какой лучше использовать АРМ чип (филипс или тексас). В душе тяготею к LPC так как существуют достаточно простые чипы для начального освоения + книга по работе в Keil, но умом понимаю, что TMS470R1B с его DMA-контроллером был бы лучше, т.к. DMA-контроллер очень полезен для связки с ДСП, но что-то кажется черезчур сложен для начинания тексовский чип. В принципе АРМ ничем другим кроме перекачки по Ethernet заниматься не будет, может DMA особо и не нужен?

Наверняка кто-нибудь уже сталкивался с подобной задачей. Был бы очень признателен за советы.
aaarrr
Цитата(maxut @ Apr 14 2006, 08:06) *
1. стоит ли использовать TCP/IP или лучше ограничиться UDP

Можно ограничиться UDP, но тогда целостность данных придется обеспечивать
вручную. Правда, и скорость получится выше.

Цитата(maxut @ Apr 14 2006, 08:06) *
2. потянет ли такой поток связка например LPC2124-CS8900A ( за основу стека планирую взять пример slaa137a для MSP430. Правда там пишут, что скорость порядка нескольких килобайт/с, если переработать этот софт под АРМ насколько увеличится скорость?)

Не очень понятно, чем обоснован выбор кристалла: внешней шины нет и медленные GPIO - может и
не потянуть...

Цитата(maxut @ Apr 14 2006, 08:06) *
3. если п.2 проходит, что проще и лучше использовать W3100 или CS8900

Проще, наверное, W3100 - не придется свой стек наворачивать.
Только надо проверить, сможет ли он обеспечить требуемый поток.

Цитата(maxut @ Apr 14 2006, 08:06) *
4. какой лучше использовать АРМ чип (филипс или тексас). В душе тяготею к LPC так как существуют достаточно простые чипы для начального освоения + книга по работе в Keil, но умом понимаю, что TMS470R1B с его DMA-контроллером был бы лучше, т.к. DMA-контроллер очень полезен для связки с ДСП, но что-то кажется черезчур сложен для начинания тексовский чип. В принципе АРМ ничем другим кроме перекачки по Ethernet заниматься не будет, может DMA особо и не нужен?

Учитывая п.2 тексас выглядит гораздо привлекательнее. Но не проще ли будет
прикрутить тот же W3100 непосредственно к ADSP?

P.S. Как планируется связывать ARM с ADSP?
iosifk
Цитата(maxut @ Apr 14 2006, 08:06) *
АРМами только начинаю заниматься. Необходимо связать железяку с РС по коаксил. кабелю ~500м. Планирую использовать сетевые Ethernet-адаптеры, т.к. по кабелю будет идти питание. Нужно забирать данные (поток порядка 300КБайт/с) из внутренней памяти ADSP2185. Есть ряд вопросов:


А если сразу применить BlakFin с ядром МАС?
vladec
Не совсем понятен выбор ARMа. как справедливо заметил aaarrr можно подключить W3100 (а лучше W3150) непосредственно к ADSP. Если выбор сделан, что бы легче реализовать стек, тогда еще лучше взять 100 мипсовый 51 C8051F133 от SiLabs, для него практически без доработки пойдет стек, который в исходниках дает сам Wiznet.
maxut
Цитата
А если сразу применить BlakFin с ядром МАС?

Блэкфин я не знаю. Поскольку времени на изучение особо нет, приходится ориентироваться на то, что знаю- ADSP2185- старый и медленный по современным меркам процессор, ему с обработкой справиться бы, хотя я рассматривал вариант прикрутить прямо к ДСП Визнет, но будут сложности с загрузкой программы в ДСП, придется писать загрузчик, довольно проблемная задача.

Цитата
Не очень понятно, чем обоснован выбор кристалла: внешней шины нет и медленные GPIO - может и
не потянуть...

Выбор для себя обосновывал простотой освоения контроллера, т.к. первые LPC21хх попроще других (ИМХО). Рассматриваю как вариант TMS470. Из плюсов за тексас наличие оценочной платы для начальных экспериментов, но предварительное чтение доков показывает, что посложнее будет этот чип, хотя преимущества его очевидны за счет внешней шины. Может быть следует остановиться на LPC2292. Как он по сравнению с TMS470R1B? Atmel не хочу применять, есть предубеждение против него.

Цитата
Как планируется связывать ARM с ADSP?

Планирую обращаться к внутренней памяти ДСП через его IDMA-интерфейс, было бы здорово использовать для этих целей армовский ДМА-контроллер (ИМХО). Возможно его можно было бы задействовать для обращения и к Визнету.

Почему остановился на АРМ -контроллере? Просто решил совместить давнее желание освоить эту архитектуру и текущую задачу smile.gif
Alex03
А 500м ethernet по коаксиалу работать будет?
maxut
Цитата
А 500м ethernet по коаксиалу работать будет?

Мой знакомый уже делал что-то подобное, если мне память не изменяет метров 400 у них получилось

Если ограничиться только UDP (небольшая потеря данных некритична) потянет ли 300кбайт/с связка АРМ-CS8900 ? Может кто подскажет где можно глянуть исходники для подобного примера.
Какую максимальную скорость удавалось получить при реализации программного TCP/IP стека на ARM_CS8900 ?
zltigo
Цитата(maxut @ Apr 14 2006, 09:23) *
Мой знакомый уже делал что-то подобное, если мне память не изменяет метров 400 у них получилось

Если имеется ввиду "тонкий" коаксиал, то смею Вас заверить, что Вы вступаете в область шаманства.

Цитата
Если ограничиться только UDP (небольшая потеря данных некритична)
...
Какую максимальную скорость удавалось получить при реализации программного TCP/IP стека

Если со стороны PC Ваш софт и не предусматриыается по пути никаих других сегментов сети, то вообще можете ограничиться работой практически голым Etherhet фреймом.
Ну разве только сформировать в нем фрейм IEEE 802.3 (Не пересекается с более массово используемым DIX/Ethernet II).
UDP в данном случае никаих преимуществ не даст - только затраты ресурсов на поддержку. Со стороны PC работа через RAW Socket.
Цитата
потянет ли 300кбайт/с связка АРМ-CS8900 ?

Даже LPC Армы разные бывают...
1. LPC21(0..3)x чеплять к нему на порты CS8980 и эмулировать ногодрыгательством шину - это
будет не освоение а выживание.
2. LPC214x - уже лучше по эмуляции шины, да и и что-то типа SPI-Etherntet (хотя опять - коаксиал вылезает :-( )повесить можно.
3. LPC22xx - ну там внешняя шина родная, все без проблем, но разводка.....

Хотя рассматриваемую систему можно оправдать только этим:
Цитата
Просто решил совместить давнее желание освоить эту архитектуру и текущую задачу
aaarrr
Цитата(maxut @ Apr 14 2006, 10:23) *
Цитата
А 500м ethernet по коаксиалу работать будет?

Если ограничиться только UDP (небольшая потеря данных некритична) потянет ли 300кбайт/с связка АРМ-CS8900 ? Может кто подскажет где можно глянуть исходники для подобного примера.
Какую максимальную скорость удавалось получить при реализации программного TCP/IP стека на ARM_CS8900 ?

На связке AT91R40008 и CS8900 получалась скорость около 600кбайт/с для TCP.
Но атмел заметно побыстрее и с внешней шиной.
maxut
Цитата
Если имеется ввиду "тонкий" коаксиал, то смею Вас заверить, что Вы вступаете в область шаманства.

Планируется использовать стальной кабель-трос КГ-1

Если сравнивать LPC2294 и TMS470R1B, оба с внешней шиной, какой выглядит предпочтительней?

Цитата
Хотя рассматриваемую систему можно оправдать только этим:

QUOTE

Просто решил совместить давнее желание освоить эту архитектуру и текущую задачу

А какие варианты лучше? В ближайшей перспективе планируем переходить на Тексовские ДСП, может в связи с этим сразу осваивать под эту задачу OMAP5912?
kolobok0
Цитата(maxut @ Apr 14 2006, 10:23) *
Цитата
А 500м ethernet по коаксиалу работать будет?

Мой знакомый уже делал что-то подобное, если мне память не изменяет метров 400 у них получилось

Если ограничиться только UDP (небольшая потеря данных некритична) потянет ли 300кбайт/с связка АРМ-CS8900 ? Может кто подскажет где можно глянуть исходники для подобного примера.
Какую максимальную скорость удавалось получить при реализации программного TCP/IP стека на ARM_CS8900 ?


пример реализации на x51...
at8951rc1+cs8900a+32кб ОЗУ
ARP, ICMP, IP, UDP на пингах около 20 кб в сек.


с уважением
(круглый)
Dimonira
Тогда осваивайте сразу TMS320DM642, у него в одном "флаконе" мощнючий DSP и Ethernet 10/100 Мбит/с. И стек, если мне не изменяет память, есть, поставляется для эвалюэйшон-платы EVMDM642.
Lelick
Если интересует, есть девайс состоит из adsp2181, альтеры и at91rm9200 (альтера для сопряжения уровней и организации обмена через IDMA). На девайс спортирован Линукс 2.6, написан драйвер для работы с DSP. Кроме этого на устройстве поднят Ethernet. Через него осуществляется съем данных и изменение прошивки для дсп. Если заинтересовало - обращайтесь.
alogvinov
Цитата(maxut @ Apr 14 2006, 08:06) *
4. какой лучше использовать АРМ чип (филипс или тексас). В душе тяготею к LPC так как существуют достаточно простые чипы для начального освоения + книга по работе в Keil, но умом понимаю, что TMS470R1B с его DMA-контроллером был бы лучше, т.к. DMA-контроллер очень полезен для связки с ДСП, но что-то кажется черезчур сложен для начинания тексовский чип. В принципе АРМ ничем другим кроме перекачки по Ethernet заниматься не будет, может DMA особо и не нужен?


DMA контроллер по любому не помешает. Как и внешняя память. И как-то слабо верится в то, что контроллер ничем другим заниматься не будет.

И ещё один момент - была названа требуемая пропускная способность - 300Кбайт/с - но не указано предполагаемое кол-во пакетов в единицу времени. Если пакеты будут мелкие, но их будет много, контроллер имеет шанс захлебнуться.
Electrovoicer
c W3100 получалось до 8 мбит/с
maxut
Цитата
И ещё один момент - была названа требуемая пропускная способность - 300Кбайт/с - но не указано предполагаемое кол-во пакетов в единицу времени. Если пакеты будут мелкие, но их будет много, контроллер имеет шанс захлебнуться.

Предполагается, что ДСП будет непрерывно накапливать данные поочередно в двух буферах, пока один копится из другого контроллер забирает данные и отправляет по езернету, потом наоборот. Размер каждого буфера не менее 10 КБайт, т.е пакеты можно сделать максимально возможными.

Про TMS320DM642 почитаю.

Цитата
Если интересует, есть девайс состоит из adsp2181, альтеры и at91rm9200 (альтера для сопряжения уровней и организации обмена через IDMA). На девайс спортирован Линукс 2.6, написан драйвер для работы с DSP. Кроме этого на устройстве поднят Ethernet. Через него осуществляется съем данных и изменение прошивки для дсп. Если заинтересовало - обращайтесь.

Спасибо за предложение. Вариант хороший. Но с RTOS не работал, хотя и есть большое желание освоить в будущем. Если появятся вопросы, обязательно напишу в личку.
maxut
Цитата
На связке AT91R40008 и CS8900 получалась скорость около 600кбайт/с для TCP.
Но атмел заметно побыстрее и с внешней шиной.

Такая скорость получена под РТОС? Судя по спецификации, AT91R40008 должен быть сравним по скорости с LPC2294 , TMS470R1B. Может подскажите, где в инете найти примеры реализации TCP\IP для связки ARM7 (типа LPC22xx)- CS8900A/RTL8019AS желательно без РТОС.
aaarrr
Нет, без RTOS, под самописным TCP стыком.
Примеры драйверов были в свое время на сайте цирруса (под VxWorks и, кажется,
еще подо что-то). В принципе, можно взять какой-нибудь open-source TCP/IP и
портировать его на нужную платформу без использования RTOS.
Edmundo
Цитата(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) А сам проц -- сила, не спорю, Техас рулит smile.gif
maxut
Цитата(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кбайт в сек?
aaarrr
Цитата(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/
maxut
Спасибо за советы.
alogvinov
В этом архиве http://www.rowley.co.uk/arm/uip-e2124.zip есть работающий порт для
платы Olimex.
Программирование CS8900 выполняется через порты ввода/вывода и расписано достаточно подробно.
kolobok0
Цитата(maxut @ Apr 15 2006, 16:10) *
...20 кб в сек это 20кбит или 20кбайт в сек?


простите, да килобайт.
и ышо маленьчкое замечание...
те стэки которые встречались в инете реализованы без внешней памяти (возможно я ошибаюсь, возможно не все). посему в реальных условиях - они мало пригодны. Да сообщения "хэйлохты мир" прокатит, но не более.. Например реальная разбивка и сборка на IP уровне (1500 байт - один пакет, пропускают свитчи по умолчанию) - уже меняет картину не не очень радужную...

с уважением
(круглый)
alogvinov
Цитата(kolobok0 @ Apr 17 2006, 17:36) *
Цитата(maxut @ Apr 15 2006, 16:10) *
...20 кб в сек это 20кбит или 20кбайт в сек?


простите, да килобайт.
и ышо маленьчкое замечание...
те стэки которые встречались в инете реализованы без внешней памяти (возможно я ошибаюсь, возможно не все). посему в реальных условиях - они мало пригодны. Да сообщения "хэйлохты мир" прокатит, но не более.. Например реальная разбивка и сборка на IP уровне (1500 байт - один пакет, пропускают свитчи по умолчанию) - уже меняет картину не не очень радужную...

с уважением
(круглый)


За работу с внешней памятью отвечает программист, который пишет функцию инициализации соответствующего интерфейса. И линкер, который разруливает сссылки.

В том же lwip есть возможность настротить максимальный размер пакета, с которым
будет работать программа. Файл с настройками называется, если не ошибаюсь,
opt.h .
scum
Цитата(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 компоненты по-хорошему не должны иметь прямого доступа к железу, только через аппликацию. И как этот момент обруливается?
kolobok0
Цитата(alogvinov @ Apr 18 2006, 08:27) *
За работу с внешней памятью отвечает программист, который пишет функцию инициализации соответствующего интерфейса. И линкер, который разруливает сссылки....


я правильно Вас понимаю, что для запуска существующих стэков, нужно переписать IP уровень (и нафига такой, простите "стэк") ? :)
Или по другому... Данный уровень работает ТОЛЬКО с внешней памятью (к сожалению не встречалось, может и плохо смотрел - хз..) ?


с уважением
(круглый)
alogvinov
Цитата(kolobok0 @ Apr 18 2006, 14:12) *
Цитата(alogvinov @ Apr 18 2006, 08:27) *
За работу с внешней памятью отвечает программист, который пишет функцию инициализации соответствующего интерфейса. И линкер, который разруливает сссылки....


я правильно Вас понимаю, что для запуска существующих стэков, нужно переписать IP уровень (и нафига такой, простите "стэк") ? smile.gif
Или по другому... Данный уровень работает ТОЛЬКО с внешней памятью (к сожалению не встречалось, может и плохо смотрел - хз..) ?


с уважением
(круглый)


Ничего переписывать не надо. Стек ТCP/IP будет работать с любым типом памяти: хоть внутренней, хоть внешней. Просто этой самой памяти ему надо достаточно много. А имеющиеся кристаллы эту потребность удовлетворить, как правило, не могут. Вот и приходится ставить внешнюю память.
slabnoff
Пробовал разные варианты:

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.

С уважением, Андрей Слабнов.
Edmundo
Цитата(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 я и сам не люблю smile.gif Да и нет желания платить такую сумму за непрофильный алгоритм (у нас сеть в качестве вспомогательного интерфейса для удаленного управления встраиваемой системой). Поэтому про него ничего сказать не могу. Описание его здесь.
scum
Цитата(Edmundo @ Apr 19 2006, 21:32) *
Цитата(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 я и сам не люблю :) Да и нет желания платить такую сумму за непрофильный алгоритм (у нас сеть в качестве вспомогательного интерфейса для удаленного управления встраиваемой системой). Поэтому про него ничего сказать не могу. Описание его здесь.


desined to provide во-первых всё-таки обеспечивает. И какие возникли проблемы с прикручиванием? Просто либо техасы написали в доке на ндк полную чушь, либо одно из двух. До текущего момента вопиющих косяков в документации от техасов я не встречал.
scum
Цитата(scum @ Apr 20 2006, 09:34) *
Цитата(Edmundo @ Apr 19 2006, 21:32) *

Цитата(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 я и сам не люблю smile.gif Да и нет желания платить такую сумму за непрофильный алгоритм (у нас сеть в качестве вспомогательного интерфейса для удаленного управления встраиваемой системой). Поэтому про него ничего сказать не могу. Описание его здесь.


desined to provide во-первых всё-таки обеспечивает. И какие возникли проблемы с прикручиванием? Просто либо техасы написали в доке на ндк полную чушь, либо одно из двух. До текущего момента вопиющих косяков в документации от техасов я не встречал.


Кстати, с евмной бордой есть отчетливые примеры, демонстрирующие работу со стеком. Причем работающие. Какие могут возникнуть проблемы с прикручиванием, если говорить о референсной борде? Единственный вариант что я могу представить это то что вы либу не смогли портануть на свое железо, оказались нужны сырцы, так? Но как у вас получился такой дизайн мне слабо представляется :-)
Edmundo
Да, имеется в виду своя борда. Какие именно проблемы конкретно, не могу сказать, не я этим занимаюсь. Причина в том, что HAL не доступен в source'ах, а есть он только в porting kit. Ну а дизайн у всех разный smile.gif
maxut
Цитата(slabnoff @ Apr 19 2006, 15:25) *
Пробовал разные варианты:

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.

С уважением, Андрей Слабнов.

Был бы признателен за исходники. Если не трудно вышлите, пожалуйста на max_kh@inbox.ru
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.