Перейти к содержанию
    

Реализация протоколов TCP/IP, UDP

A mozhet prosche postavit' Virtex 2 Pro ili Virtex 4, instantiirovat' PowerPC, zapustit' na nem Linux i pol'zovat'sya na nem gotovim, otlazhennim TCP/IP, UDP ili lyubim drugim setevim stekom. Esli est' problemi s bistrodeystviem, to zastavlyaem ustroystvo podkladivat' payload TCP paketov napryamuyu, bez uchastiya processora v etom processe. Po moey informatsii takoe reshenie mozhet uspeshno zafludit' 100MBit Ethernet.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Помогите с аппаратной реализацией протоколов TCP/IP, UDP на ПЛИС Xilinx

Не стоит усложнять себе жизнь "аппаратной" реализацией стека TCP/IP, так же не стоит усложнять жизнь портированием *nix и использовать только чипы со встронным PowerPC.

Поставте себе EDK, там в либах лежит стек TCP/IP для Microblaze/PowerPC.

На сайте Xilinx, в примерах к EDK, есть примерчик в котором на отладочной плате рожается HTML страничка с состоянием кнопок/переключателей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не стоит усложнять себе жизнь "аппаратной" реализацией стека TCP/IP, так же не стоит усложнять жизнь портированием *nix и использовать только чипы со встронным PowerPC. Поставте себе EDK, там в либах лежит стек TCP/IP для Microblaze/PowerPC. На сайте Xilinx, в примерах к EDK, есть примерчик в котором на отладочной плате рожается HTML страничка с состоянием кнопок/переключателей.

 

Speshu zametit', chto *nix portirovat' ne nado, Xilinx s etim uzhe spravilsya :) A u Microblaze, po otklikam, ne slishkom horoshee bistrodeystvie - softoviy processor ved' :cranky: Esli zhe vozlozhit' zadachu polnogo formiravaniya paketov na CPU, to skorost' budet slishkom malen'kaya - tam zhe maksimal'naya rabochaya chastota sostavlyaet "vsego" 450MHz :( Potomu bez DMA v visokoproizvoditel'noy sistememe ne oboytis'. Podobnoe reshenie realizovano u Andreya Fillipova, tol'ko tam ispol'zuetsya vneshniy CPU ETRAX 100LX ot Axis.

 

A voobsche - vse zavisit ot zadachi i neobhodimoy shirini kanala.

 

A voobsche, esli bi stoyala zadacha realizatsii isklyuchitel'no hardwernogo setevogo steka, to ya bi realizovival UDP - v molodosti svoya programnaya realizatsiya UDP zanyala menee 20KB C++ koda, da i protokol tam sravnitel'no prostoy, ne to chto TCP s ego SYN, ACK, kontrol'nimi summami, podtverzhdeniyami i t.d :((

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я хотел сказать, не то что товарищу хватит "мягкого" процессора для формирования IP пакетов с инкапсулированными видео строками. Если он захочет реализовывать стек (скорее да же часть) аппаратно, ему нужна будет БОЛЬШАЯ FPGA. В EDK имеются корки EMAC и EMAC lite, вторая оперирует только с ethernet пакетами, а первая еще мудрут с TCP/IP (детально не разбирался). Так вот, первая корка ~20 раз больше первой весит (~2000 slices =~ Spartan3-200).

 

<A voobsche, esli bi stoyala zadacha realizatsii isklyuchitel'no hardwernogo setevogo steka, to ya bi realizovival UDP>

Если память не изменяет, UDP не гарантирует доставку пакетов :(

 

<Speshu zametit', chto *nix portirovat' ne nado, Xilinx s etim uzhe spravilsya >

Где, когда?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

<A voobsche, esli bi stoyala zadacha realizatsii isklyuchitel'no hardwernogo setevogo steka, to ya bi realizovival UDP>

Если память не изменяет, UDP не гарантирует доставку пакетов :(

Aga, no navernut' poverh nego nechto s podtvrzhdeniyami na poluchenie gorazdo prosche, nezheli postroit' polniy TCP/IP stack. Prosto v TCP/IP realizuetsya logicheskiy pipe mezhdu dvumya socket'ami, a zatrati na ego organizatsiyu i podderzhku gorazdo vishe, nezheli na prosto posilku podtverzhdeniya na poluchenie ocherednogo paketa. Na hoste zhe napisat' programmu chteniya iz TCP/IP socket'a tak zhe legko kak i napisat' programmu chteniya iz UDP socket'a s otpravkoy podtverzhdeniy na priem.

 

<Speshu zametit', chto *nix portirovat' ne nado, Xilinx s etim uzhe spravilsya >

Где, когда?

Nazivaetsya - MontaVista Linux, nam dostalsya po nasledstvu vmeste s kuplennoy platoy, po idee, mozhet bit' sgruzhen s WWW Xilinx.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

<Aga, no navernut' poverh nego nechto s podtvrzhdeniyami na poluchenie gorazdo ...>

Оно, конечто все правомерно, но в контексте определенных задач.

В принципе, ничего не мешает, организовать "надежный" протокол и просто через ethernet пакеты, но решение получается "уникальным", и время на разработку требует. А так, прикрутил TCP и рули своим устройством через Intenet Explorer.

 

<Nazivaetsya - MontaVista Linux, nam dostalsya po nasledstvu vmeste s kuplennoy platoy, po idee, mozhet bit' sgruzhen s WWW Xilinx.>

Очень интересно. Стыдно признаться, в первый раз слышу, можно поподробней. Какие процессоры поддерживает, сколько памяти надо. И потом просто ядром не отделаешся, нужна файловая система (соответственно устройство, с\оответствено корка для подключения), корки устройств I/O.

Было бы очень здорово, если б Вы положили ее на FTP, да и пример бы не помешал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

http://penguinppc.org/kernel/ - zdes' mozhno sgruzit' yadro Linux v ishodnikah.

 

http://penguinppc.org/embedded/howto/x348.html - sdes' oni rasskazivayut kak sobrat' eto yadro, kakoy versii dolzhen bit' GCC i BIN-Utils, chtobi vse vmeste rabotalo normal'no.

 

http://www.xilinx.com/publications/xcellon.../xc_linux48.htm - sdes' obsuzhdaetsya kak vse eto poimet' v predelah Virtex-2 Pro.

 

V EDK nabor periferii bedniy, no dlya nachala vpolne dostatochniy. Tam lezhat korki i k nim drivera. Drivera lezhat v ishodnikah - v sootvetstvii s GNU GPL, korki chastichno otkriti, chastichno zakriti.

 

Posledovatel'nost' deystviy sleduyuschaya:

1. Nahodim Linux-mashinu - pod Windami vse ochen' ploho i nenadezhno :(

 

2. Installiruem gcc pod PowerPC. Zdes' nemnogo poyasnyu: gcc vipolnyaetsya na odnoy platforme, no kompilit kod pod PowerPC. V moem sluchae gcc ispolnyaetsya na x86.

 

3. Raspakovivaem ishodniki Linux yadra pod PowerPC. Konfigurim yadro pod vibrannuyu periferiyu plus berem ishodniki driverov iz EDK i vkompilivaem ih v yadro.

 

4. Zapuskaem yadro na sborku - esli vse pravil'no, to cherez nekotoroe vremya poyavitsya file - sobstvenno nash kernel.

 

5. Podklyuchaem k etomu zhe hostu vibranniy nami nositel' dlya faylovoy sistemi. V moem sluchae - eto Compact Flash. Compact Flash podklyuchen cherez SystemACE k Virtex'u. Chip SystemACE vipolnyaet v sisteme dvoyakuyu rol' - vipolnyaet nachal'nuyu initsializatsiyu Virtex'a i organizovivaet dostup k CF vo vremya raboti Linux'a. Podrobnee - nado smotret' dokumentatsiyu na SystemACE. BTW, mozhno SystemACE ne ispol'zovat', t.k. yadro Linux mozhno apparatno zagruzit' v pamyat' po fiksirovannim adresam i zapustit' na nego PowerPC, a yadro mozhet soderzhat' v sebe vkompilirovannuyu kornevuyu faylovuyu sistemu. V nekotorih sluchayah etogo bolee chem dostatochno.

 

6. Sozdaem proshivku dlya Virtex'a v EDK. Pomnim adresa ustroystv, ukazannie v konfiguratsii Linux yadra inache pri zagruzke Linux ne obnaruzhit periferiyu.

 

7. EDK rezultatom svoey raboti sozdast proekt sistemi, kotoraya posle kompilyatsii ISE stanovitsya proshivkoy FPGA.

 

Tipa vse :cranky: Esli bez oshibok, to zarabotaet srazu. Za bolee podrobnoy informatsiey nado na Xilinx, MontaVista Linux i t.d. Ob'em informatsii kotoruyu nado perevernut' dlya togo, chtobi eto zarabotalo prosto ogromniy.Obichno takoy proekt vedut dvoe - programmist i designer FPGA. Programmist podkruchivaet Linux, designer pishet FPGA. Sistema v rezul'tate poluchaetsya ochen' elegantnoy i sravnitel'no deshevoy. Linux uzhe rabotaet s 8MB RAM, esli faylovaya sistema budet v yadre, to nuzhno postavit' nemnogo bol'she. Odnako SDRAM seychas deshevaya, i 8MB - eto prakticheskiy minimum dlya chipa s shirinoy shini dannih 32 bita. Kontroller SDRAM kak i DDR SDRAM est' v EDK. Tseplyaetsya na pryamuyu na PLB, rabotaet shustro. Skorost' obmena v nashem sluchae s shirinoy shini 64 bita dostigala 50-60 MB/s.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, буду иметь в виду.

Забавно, я до этого не обращал внимания на то что EDK дает для PowerPC.

С удивлением заметил, что список ядер ОС состоит аш из 4 штук (для MB только xilkernel).

Интересно, linux там то же присутствует, чем она Вас не устроила, или когда проект начинали не было встроенной linux?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

V dannom sluchae reshenie bilo ne nashe :) Dlya togo, chtobi umen'shit' vremya razrabotki i uvelichit' krutiznu krivoy obucheniya mi prosto kupili gotovuyu platu s primernim resheniem pod nee u storonney kompanii, dalee razobralis' v fizike ee raboti, a seychas menyat' to chto rabotaet na chto-to novoe net osobo bol'shogo smisla. K tomu zhe neskol'ko smestilis' prioritety - kamera dolzhna po 1 Gigabit Ethernet kidat' raw data v komp, a Linux s embedded WEB-serverom dobavim potom.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

<Nazivaetsya - MontaVista Linux, nam dostalsya po nasledstvu vmeste s kuplennoy platoy, po idee, mozhet bit' sgruzhen s WWW Xilinx.>

Очень интересно.

MontaVista и VxWorks идут с платами под Virtex2pro. Обе укоцанные, но насколько - сейчас не вспомню. MontaVista идет двумя образами, которые можно скачать с www.MontaVista.com.При скачивании выбирается проц (большой список). Второй образ парольный.Включает в себя графическую оболочку и поддерживает стандартную переферию.В полной версии присутствует среда для разработки драйверов дополнительной переферии (Rocket чегото там ).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поставте NIOS и не мучайтесь. Так даже в примерах реализован WEBSERVER...

Если немного поднапряжтись то его можно и на зайнлинкс портировать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поставте NIOS и не мучайтесь. Так даже в примерах реализован WEBSERVER...

Если немного поднапряжтись то его можно и на зайнлинкс портировать...

Дык у Зайлинка то же в примерах есть WEBserver

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В среде проектирования под NIOS идет версия uCLinux. Довольно удобно сделана работа в Eclipse c генерацией требуемого ядра uCLinux и набора базовых утилит , сборкой образа и флэш-файл системой. Поддержка TCP\IP

реализована вполне работоспособной.!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...