реклама на сайте
подробности

 
 
> ethernet + hps (Altera SoC Cyclone V), передача данных с ПЛИС на ПК
verali
сообщение Jul 10 2015, 09:11
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 6-11-14
Пользователь №: 83 540



Добрый день и с пятницей!
Есть проект на ПЛИС, собранный в Quartus 14.1. Посмотрел выход ПЛИС c помощью SignalTap, теперь хочу организовать выдачу данных с ПЛИС на ПК по ethernet. С ПЛИС передается 16-ти разрядное слово с частотой 500 кГц.
До этого с интерфейсами не работал.
Теоретически представляю это так:
1) Интерфейс Ethernet делаю на HPS (плате ethernet подключен к hps).
2) Связываю проект, выполненный на fpga с hps (на котором ethernet) с помощью AXI bridge.
3) Пишу/ищу программу для ПК, которая принимает данные с etherneta.

Вопросы:
1)Правильны ли мои теоретические представления?
2)Ни на rocketboards.org, на altera.com не нашел API, которые бы позволили работать с интерфейсом ethernet. Это мой первый опыт работы с интерфейсом, поэтому представляю наличие API (начать выдачу, закончить выдачу и т.д).
3)Есть ли стандартная программа для приема данных с ethernet?

Заранее извиняюсь за глупые вопросы, буду очень рад, если направите в нужном направлении.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 7)
Lmx2315
сообщение Jul 10 2015, 09:16
Сообщение #2


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



Принимать можно через терминальную прогу, например такую :
http://www.hw-group.com/products/hercules/index_en.html


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jul 10 2015, 10:57
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Правильный путь это превратить Ethernet в TCP/IP. И тогда оно будет приниматься уже чем угодно и кем угодно. От просто netcat до самописных приложений с сокетами и так далее...

для того чтобы просто ethernet стал TCP/IP нужен на железном уровне MAC контроллер, а потом на программном(редко железном) уровне TCP стэк, самое распространенное это LwIP - бесплатный широко распространеный стэк. Для того чтобы крутить стэк обычно пихают софт процессор (у альтеры это ниос), или используют микрухи со встроенными ядрами процов (как эти чипы зовутся у альтеры не знаю)
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jul 12 2015, 05:55
Сообщение #4


Гуру
******

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



если именно "пару байт" переслать, то можно обойтись raw sockets, без tcp/ip. что касается стандартного api, то его нет, есть описание регистров в hwlib и писанный наркоманами даташит. я тут как-то выкладывал недоделанный bare-metal с ethernet, поищите. там сетевой части вообще нет, только прием/передача пакетов.
Go to the top of the page
 
+Quote Post
verali
сообщение Jul 28 2015, 10:54
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 6-11-14
Пользователь №: 83 540



Цитата(Golikov A. @ Jul 10 2015, 10:57) *
Правильный путь это превратить Ethernet в TCP/IP. И тогда оно будет приниматься уже чем угодно и кем угодно. От просто netcat до самописных приложений с сокетами и так далее...

для того чтобы просто ethernet стал TCP/IP нужен на железном уровне MAC контроллер, а потом на программном(редко железном) уровне TCP стэк, самое распространенное это LwIP - бесплатный широко распространеный стэк. Для того чтобы крутить стэк обычно пихают софт процессор (у альтеры это ниос), или используют микрухи со встроенными ядрами процов (как эти чипы зовутся у альтеры не знаю)

У меня как раз SOC - система на кристалле, в которую входит ПЛИСовская логика и процессор cortex-A9.

Цитата(vadimuzzz @ Jul 12 2015, 05:55) *
если именно "пару байт" переслать, то можно обойтись raw sockets, без tcp/ip. что касается стандартного api, то его нет, есть описание регистров в hwlib и писанный наркоманами даташит. я тут как-то выкладывал недоделанный bare-metal с ethernet, поищите. там сетевой части вообще нет, только прием/передача пакетов.

Ваш проект нашел сразу, еще когда только начал разбираться с SOC. В Си нахожусь на уровне начальных курсов Бауманки, поэтому в коде сложно разобраться, поэтому решил выполнить эту реализацию на linux.

По туториалу с rocketboard загрузил linux. Теперь, как я понял, в linux надо поставить стэк (как посоветовал Golikov A - LwIP), а после связать fpga c hps AXI-мостом?
Я это настолько расплывчато себе представляю и удивляюсь, почему нет информации по реализации ethernet на linux для встраиваемых систем.
Скорее всего не там ищу, скиньте пожалуйста ссылочки в каком направлении копать.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jul 28 2015, 16:08
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



А знаете зачем люди ставят линуксsm.gif? Потому что в нем встроенный ТСР стэк sm.gif))) Как и файловая система и много других бонусов....

так что если вы линукс подняли, то уже все есть, ТСР/IP на уровне сокетов, пишите на С/C++, пользуйтесь... Драйвер только надо дописать работы с МАК контроллером, если в вашей сборки его нет...

Да в соседней теме люди как раз обсуждают как там правильно все мосты и связи поднимать, спросите пока не разбижалисьsm.gif

LwIP на линуксе - это кстати стильноwink.gif... интересно FatFS из сборок для процов можно поднять....
Go to the top of the page
 
+Quote Post
verali
сообщение Jul 29 2015, 09:39
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 6-11-14
Пользователь №: 83 540



Цитата(Golikov A. @ Jul 28 2015, 16:08) *
А знаете зачем люди ставят линуксsm.gif? Потому что в нем встроенный ТСР стэк sm.gif))) Как и файловая система и много других бонусов....

так что если вы линукс подняли, то уже все есть, ТСР/IP на уровне сокетов, пишите на С/C++, пользуйтесь... Драйвер только надо дописать работы с МАК контроллером, если в вашей сборки его нет...

Да в соседней теме люди как раз обсуждают как там правильно все мосты и связи поднимать, спросите пока не разбижалисьsm.gif

LwIP на линуксе - это кстати стильноwink.gif... интересно FatFS из сборок для процов можно поднять....


Вопрос про то, как писать. Где посмотреть как происходит программирование ethernet'a?
Я не могу понять, программирование происходит в среде DS-5 и использованием специальных API или же я могу из под линукса сделать автозагрузку определенной программы для передачи данных по ethernet?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Jul 29 2015, 10:42
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



тут надо разделить

1. это драйвер mac уровня, это программа между линуксом и железом. Ее пишут как пишут все драйверы линукса, встраивают в ядро или кладут внешним загружаемым модулем и так далее... как реализовано ее взаимодействие с железом мне не ведомо, API обычно не бывает, скорее адреса и протоколы связи, регистры настройки так далее, это надо описание читать самого чипа.

Но очень большой шанс если этот линукс специально для вашего СОка, то такой драйвер в нем уже есть

2. это уже взаимодействие программ пользователя с езернетом, программа между пользователем и ТСР стэком линукса. Ее пишут где вам удобнее (часто это эклипс), компилируют gcc линукса в самом линуксе, там же загружают и исполняют. Тут все делают как везде, хоть под РС компьютер, хоть под что другое. Это уже программа прикладная для операционной системы.

То есть линукс отделяет железо со всей спецификой работы с ним, от вас - пользователя, Вплоть до того что вы можете брать чужие линукс программы и они должны работать.

по последнему пункту
http://www.ibm.com/developerworks/linux/tu...sock/index.html

ну и подобные ссылки
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 1st July 2025 - 03:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01406 секунд с 7
ELECTRONIX ©2004-2016