|
ADC -> FPGA -> Ethernet |
|
|
|
 |
Ответов
|
Jun 15 2013, 04:33
|

Гуру
     
Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988

|
несколько соображений по теме. во-первых нужен компонент, который будет складывать данные с АЦП в некоторый буфер. буфер желательно побольше, чтобы payload максимизировать. во-вторых нужен некий планировщик (скорее всего в составе первого компонента), который будет распределять память между каналами. а вот дальше надо определиться, сливать данные большими пачками, либо изобразить некий риалтайм (с соотв. понижением частот АЦП). почему имеет смысл использовать udp_tx_offload: он позволяет располагать в памяти данные для передачи в "сыром" виде, без заголовков и прочей шелухи. причем непрерывным куском в памяти. фактически, дескриптор для этого компонента - это указатель + длина пакета, причем пишется через регистры. копирование из памяти в память процессором (а именно это и происходит в основном при формировании заголовков) - это одно из узких мест ниоса. т.о. при использовании аппаратного ускорения задача сведется к передаче буфера по его заполнении (вариант с передачей большими пачками), либо по прерыванию от компонента-планировщика (если выберете вариант с риалтаймом). на правах ИМХО  вдогонку: при использовании udp_tx_offload можно оставить программную реализацию протоколов, потом всегда можно переделать.
|
|
|
|
|
Jun 15 2013, 22:31
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(vadimuzzz @ Jun 15 2013, 07:33)  несколько соображений по теме. во-первых нужен компонент, который будет складывать данные с АЦП в некоторый буфер. буфер желательно побольше, чтобы payload максимизировать. во-вторых нужен некий планировщик (скорее всего в составе первого компонента), который будет распределять память между каналами. а вот дальше надо определиться, сливать данные большими пачками, либо изобразить некий риалтайм (с соотв. понижением частот АЦП). почему имеет смысл использовать udp_tx_offload: он позволяет располагать в памяти данные для передачи в "сыром" виде, без заголовков и прочей шелухи. причем непрерывным куском в памяти. фактически, дескриптор для этого компонента - это указатель + длина пакета, причем пишется через регистры. копирование из памяти в память процессором (а именно это и происходит в основном при формировании заголовков) - это одно из узких мест ниоса. т.о. при использовании аппаратного ускорения задача сведется к передаче буфера по его заполнении (вариант с передачей большими пачками), либо по прерыванию от компонента-планировщика (если выберете вариант с риалтаймом). на правах ИМХО  вдогонку: при использовании udp_tx_offload можно оставить программную реализацию протоколов, потом всегда можно переделать. Почитал ещё форум Gigabit Ethernet IP, где Вы даёте ссылку, и, как понимаю, систему необходимо строить таким образом (второй вариант):
Просто когда смотрел Ваш проект, на который указал Konst_777, понял, что у Вас udp_tx_offload используется именно для формирования на железе отправляемых пакетов (может что-то не досмотрел), вроде как у Вас через него должен был прогоняться поток от ASI. Хочу пока оставить уже работающую реализацию ARP, ICMP на программном уровне и получается для TSE необходимо реализовать переключение потоков от Niosa и от железного ускорителя UDP. UDP ускоритель формирует заголовки для пакетов UDP и соединяет заголовок с потоком (буфером) данных, далее всё выдаёт на TSE. Ещё, если можно, вопрос: для первого варианта решения, если какой-то компонент будет выдавать данные в формате ST Avalon на SgDMA ST to Memory, далее другой SgDMA Memory to ST запихивать их в TSE, что в этом случае будет грузить сам процессор, его задача сводится к составлению списка дескрипторов их обработке, копирование памяти осуществляет SgDMA, который, насколько я понимаю, работает независимо от Nios? Почему данный вариант плох и нереализуем?
|
|
|
|
|
Jun 16 2013, 09:03
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Цитата(doom13 @ Jun 16 2013, 01:31)  ...Почему данный вариант плох и нереализуем? Этот вариант неплох и реализуем. Скорость обмена будет зависеть от процессора Nios II. Попробуйте. Только, Вам еще нужно добавить SgDMA_Memory_to_Memory. А лучше, заменить ADC_to_AvalonST на ADC_to_AvalonMM и вместо SgDMA_ST_to_Memory использовать SgDMA_Memory_to_Memory. Если скорость обмена окажется низкой, то потребуется разработать сопроцессор дескрипторов для SgDMA_Memory_to_Memory.
|
|
|
|
Сообщений в этой теме
doom13 ADC -> FPGA -> Ethernet Jun 13 2013, 07:54 Копейкин Пусть данные АЦП 8-битные.
Тогда: 100МГц х 4канала... Jun 13 2013, 08:35 doom13 Цитата(Копейкин @ Jun 13 2013, 11:35) Пус... Jun 13 2013, 09:17 Konst_777 Цитата(doom13 @ Jun 13 2013, 10:54) Имеет... Jun 13 2013, 09:08 Konst_777 Цитата(doom13 @ Jun 13 2013, 10:54) Видит... Jun 13 2013, 12:00 doom13 Здравствуйте. Посмотрел проект и ip-core udp_tx_of... Jun 14 2013, 08:26 doom13 Варианты реализации:
Jun 14 2013, 08:26 iosifk Цитата(doom13 @ Jun 13 2013, 11:54) Имеет... Jun 14 2013, 09:09 doom13 Цитата(iosifk @ Jun 14 2013, 12:09) Если ... Jun 14 2013, 10:32 Lmx2315 QUOTE (iosifk @ Jun 14 2013, 13:09) Стык ... Jun 14 2013, 10:35  iosifk Цитата(Lmx2315 @ Jun 14 2013, 14:35) ..на... Jun 14 2013, 11:20   winipuh Цитата(iosifk @ Jun 14 2013, 15:20) или ф... Jun 14 2013, 12:12    doom13 Цитата(winipuh @ Jun 14 2013, 15:12) Это ... Jun 14 2013, 13:04  vadimuzzz Цитата(doom13 @ Jun 16 2013, 05:31) Почит... Jun 18 2013, 23:58   doom13 Цитата(vadimuzzz @ Jun 19 2013, 02:58) ud... Jun 19 2013, 14:34    vadimuzzz Цитата(doom13 @ Jun 19 2013, 21:34) Поясн... Jun 21 2013, 01:56 Konst_777 Цитата(doom13 @ Jun 13 2013, 10:54) Видит... Jun 15 2013, 08:24 doom13 Цитата(Konst_777 @ Jun 15 2013, 11:24) Вс... Jun 15 2013, 21:09 doom13 Затестил два варианта работы. Пока для проверки ис... Jun 18 2013, 13:43 Golikov A. обычно контроллер памяти многопортовый.
и да ДМА ... Jun 18 2013, 14:23 doom13 Цитата(Golikov A. @ Jun 18 2013, 17:23) о... Jun 18 2013, 14:43 Golikov A. если есть память 2 портовая - это здорово, 2 устро... Jun 18 2013, 14:54 doom13 Цитата(Golikov A. @ Jun 18 2013, 17:54) е... Jun 18 2013, 15:02 gosu-art Многие, для таких задач, ставят по 2 независимых к... Jun 20 2013, 04:31 Golikov A. Програма из ДДР и данные в ДДР - конечно это все п... Jun 20 2013, 04:53
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|