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

 
 
> Обмен данными с компьютером, Принимаю советы и замечания по модернизации старого проекта
Boris_TS
сообщение Mar 13 2009, 15:46
Сообщение #1


Злополезный
****

Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188



Тему создал в этой ветке конференции, ибо надо заменить старое ПЛИС решение на новое или на что-то вообще другое.

Как лучше модифицировать имеющееся решение:

Имеется система сбора данных - ящик 19 дюймовый 4U. Внутри ящика самопальный cross на 10 плат расширения и 1 плата управления. От платы управления шел самопальный канал связи (6 диф. пар по 50МГц) к PCI плате (32бита 5V), втыкаемой в обычный компьютер.

Назрела необходимость изменить ввод данных в компьютер (отказаться от самопальной PCI платы, да и аналогичного канала передачи данных).

Cross и пачки различных плат расширения переделывать ой как неохота, а поэтому имеем такое схемно-убогое решение: от каждой платы расширения (ввода и обработки данных) к
блоку управления тянется по 6 LVPECL пар (если быть более точным, то Xilinx LVPECL аля Virtex-E/Spartan-2E) - по 4 к плате расширения и по 2 к блоку управления, итого 60 пар.

Груды LVPECL пар, заходящих на блок управления, подаются на 2 XCV50E-7PQ240, каждый Virtex-E занимался работой со своей половиной шины. Первый мультиплексировал поточные данные от плат расширения и заливал эти данные в PC (по однонаправленной шине). Второй обрабатывал запросы от PC (записать конфигурационную информацию/считать оную из плат расширения). При таком построении системы получалось 2 независимых шины, простое решение в ПЛИС (почти что одни мультиплексоры и коммутаторы). Особенностью аппарата является то, сбор данных необходимо производить с привязкой к пространственной координате, т.е. весьма шустро реагировать на изменения скорости подвижного объекта, в котором собран измерительный комплекс - в том числе и из-за этой особенности стандартные платы ввода данных в PC не использовались (может быть зря ?).

Конструктивно блок управления может быть полноразмерной ISA (PCI) платой – с местом проблем нет – задняя планка ISA (KHPC) Bracket.

Поток (по, как я это безобразие назвал, «Control Bus») данных управления в обе стороны не превышает 1 Мбит/с.
Поток данных (по, как я это безобразие назвал, «Data Bus») от плат расширения к PC пока не превышает 16 Мбит/с, но хочется развивать (потихонечку) одну из модификаций плат расширения... и раздуть поток до 105 Мбит/с, а затем и до 210 Мбит/с (из-за возрастающих пожеланий заказчика).

Думаю надо бы переделать передачу данных на Ethernet (а лучше бы с полной поддержкой TCP/IP). А вот тут и возникают вопросы как бы это получше сделать... Т.к. изделия не серийные, то можно использовать компоненты (в т.ч. ПЛИС) ценой в несколько тысяч рублей.
1. Может собрать почти как и было: поставить 2 Startan-3AN TQ144 (теоретически запаять BGA корпуса можно у соседей, но разводкой печатной платы под BGA пока не занимался, а чувствую, что это не делается с наскоку)... и приторочить к каждому Spartan’у по некоей фиговине (у которой с одной стороны какая-то шина, а с другой Ethernet (а лучше сразу TCP/IP) - знать бы еще как оные зовутся ?) ?
2. А может быть поставить одну ПЛИС и собрать там могучий мультиплексор, разгребающий данные к/от Ethernet ?
3. Может есть другие варианты - получше гигабитного Ethernet ???

P.S. работаю только с ПЛИС Xilinx. С EDK пока еще не работал...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
murmel1
сообщение Mar 13 2009, 18:45
Сообщение #2


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

Группа: Свой
Сообщений: 166
Регистрация: 2-11-08
Из: Ростов-на-Дону
Пользователь №: 41 331



Рекомендую задуматся о USB - сложность на порядок меньше, чем у Ethernet, море примеров. Скорость можно получить 20 Мбайт/сек.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 13 2009, 21:06
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(murmel1 @ Mar 13 2009, 21:45) *
Рекомендую задуматся о USB - сложность на порядок меньше, чем у Ethernet, море примеров. Скорость можно получить 20 Мбайт/сек.

Все с точностью ДО НАОБОРОТ кривизна и сложность на порядок больше, нежели у классического и простого, как лом Ethernet.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SM
сообщение Mar 14 2009, 06:20
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(zltigo @ Mar 14 2009, 00:06) *
Все с точностью ДО НАОБОРОТ кривизна и сложность на порядок больше, нежели у классического и простого, как лом Ethernet.

Тогда уж посоветуйте нам, темным, такое же простое решение для Eth, сравнимое по цене и пропускной, как CY7C68013 для USB. Wiznet? Когда я ним имел дело, он по производительности далек был от CY.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 14 2009, 08:34
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(SM @ Mar 14 2009, 09:20) *
CY7C68013 ... Wiznet....

Да, как все запущено. Оказывется Вы на самом не имеете представления не только об Ethernet, но и о USB sad.gif, поскольку оперируете на уровне внешних приблуд к микроконтроллерам содержащих некие дополнительные микроконтроллеры и "готовые" стеки. По нынешим временам вполне приличное железо, как USB, так и Ehernet MAC несут на себе даже микроконтроллеры стоимостью в единицы баксов. Про старшие модели микроконтроллеров и говорить нечего. Сравнивать и делать "выводы" о сложности из сравнения помянутых Вами костылей для не желающих ничего знать о USB/Ethernet просто неразумно.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SM
сообщение Mar 14 2009, 17:49
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(zltigo @ Mar 14 2009, 11:34) *
Оказывется Вы на самом не имеете представления не только об Ethernet, но и о USB
...
Сравнивать и делать "выводы" о сложности из сравнения помянутых Вами костылей для не желающих ничего знать о USB/Ethernet просто неразумно.

Не делайте тупых ложных выводов на пустом месте. Я реализовал и УСБ high speed в ASIC, и Ethernet MAC делал, но правда до серии второе не дошло. И я отлично знаю, что такое УСБ, и что такое Ethernet до самого нижнего уровня вплоть до схемы трансивера на транзисторном уровне. Точно также как и знаю, что засовывать маки и УСБы в ПЛИС нет никакого смысла (за редким исключением, как например отсутствие места на плате под мост), когда есть внешние решения, удешевляющие систему и упрощающие разработку.

Повторяю вопрос еще раз, причем уже расширено. Назовите теперь не только мост Ethernet<=>ПЛИС, но и мост USB<=>ПЛИС, хоть как то сравнимые по цене при пропускной способности не меньше, чем у CY7C68013 и не требующие написания дополнительного софта (изменение VID/PID у CY в готовом софте я за написание софта не считаю).

P.S. И я не думаю, что несмотря на Ваш статус в форуме, Вы имеете право на клевету. А утверждение (не предположение, а утверждение) о том, что я знаю, а что нет, при том ложное, я расцениваю именно так.

Цитата(murmel1 @ Mar 14 2009, 20:24) *
На CY78013 все делается на порядок проще. Есть способ реализовать еще проще?

Сложно сказать проще ли (на мой взгляд проще, чем 68013 нет ничего), но есть вариант использования мостов USB-IDE/ATA, навроде TUSB6250.
И не слушайте тех, кто скажет, что запихать все УСБ (кроме трансивера) в ПЛИС проще, чем использовать готовый мост. Это провокация! Это гораздо сложнее, особенно когда дойдет до сертификации в USB-IF....
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 14 2009, 20:10
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(SM @ Mar 14 2009, 20:49) *
не требующие написания дополнительного софта....

Эквивалентно - скажите, как сделать так, что-бы ничего не делать? Дайте мне мои любимые протезы sad.gif. Ну не нужны они. В данном случае для Ethеrnet, который Вы судя по Вашей реакции не отличаете от TCP/IP sad.gif на самом деле даже UDP/TCP/IP не нужны - голые фреймы, максимум с чем-нибудь типа IEEE 802.3 в заголовке. Со стороны PC RAW Socket и вперед.
Цитата
И не слушайте тех, кто скажет, что запихать все УСБ (кроме трансивера) в ПЛИС проще, чем использовать готовый мост. Это провокация! Это гораздо сложнее, особенно когда дойдет до сертификации в USB-IF....

1. USB в даном случае нужно пихать не в FPGA а куда подальше...
2. Реализация MAC Ethernet вполне обыденное дело, да и из внешние навешивать никто не мешает, не говоря уже о том, что просто берется любой 32битник по вкусу с MAC на борту.
3. И никаих проблем с совершенно ненужными USB наворотами, "сертификациями", "драйверами" и их конфликтами.
Цитата(Михаил_K @ Mar 14 2009, 21:52) *
И не забывайте и о том, что когда вы сделаете ethernet устройство, вам придется еще и решать проблему множественного доступа (с разных компов).

Вы хоть сами-то поняли что сказали? Если под "проблемой" понимается принципиальная возможность доступа из локальной сети, то ставите отдельный Ethernet контроллер в PC и получаете точка-точка.




Цитата(SM @ Mar 14 2009, 22:34) *
+Много. Системы сбора, обработки и документирования данных с USB-интерфейсом успешно работают и в авиации, и в экстренных службах, и еще много где.

А Ethernet, типа, нигде не работает smile.gif smile.gif smile.gif и вообще "покойник"


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Mar 15 2009, 06:44
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(zltigo @ Mar 14 2009, 23:10) *
Вы хоть сами-то поняли что сказали? Если под "проблемой" понимается принципиальная возможность доступа из локальной сети, то ставите отдельный Ethernet контроллер в PC и получаете точка-точка.


Конечно понял. Вставка отдельной сетевухи, и РАЗРАБОТКА ПРАВИЛ ПОДКЛЮЧЕНИЯ, в которых пользователю будет сказано, не тыкай наш дивайс в коммутатор - один из путей решения этой проблемы.

Цитата(zltigo @ Mar 15 2009, 00:58) *
Физика Ethernet, поднимается тем-же мизинцем ровно за такое-же время, причем жто время сопоставимо со временем поднятия физики и любого другого пакетного интерфейса. Стек протоколов не нужен, Все точно так-же, только нет жесткой завязки на конкретного производителя, его стеки, его драйвера....


Любительство в самом что ни наесть ярком своем представлении. Стек протоколов придуман людьми не от скуки, а чтобы придать каналу связи определенные характеристики. Не говоря уже о том, что для того, чтобы сделать на писюке ПО, работающее с МАС уровнем ethernet - задача ой как не тривиальная. И лишь использование стандартных протоколов упрощает программирование.

Цитата(zltigo @ Mar 15 2009, 00:58) *
Если-бы я НЕ БЫЛ ПОЛЬЗОВАТЕЛЕМ множества разных USB устройств, то я, возможно, и мог-бы отнестись к Вашми утверждениям с большим доверием smile.gif


Если кто-то не смог сделать нормальный USB дивайс, то это не значит что у всех разработчиков руки кривые smile.gif


Цитата(zltigo @ Mar 15 2009, 00:58) *
"20 мегабайт с FPGA" красивые слова - конкретно глянул CYPRESS - восьмибитовая шина, 4-6 тактов на запись, 48 тактовая... 20 мегабайт говорите smile.gif. Это только ограничение на стыке с FPGA.


Нет, я говорю - 40 мегабайт smile.gif.


Цитата(RobFPGA @ Mar 15 2009, 00:17) *
Я не умаляю достоинств USB он имеет свои преимущества, НО это только ЛОКАЛЬНЫЙ интерфейс периферии компьютера, с небольшим расстоянием и отсутствием гальванической развязки.

Ethernet - СЕТЕВОЙ интерфейс не привязанным к конкретному компьютеру, система с Ethernet будет работать и на столе с рядом стоящим буком, и в 200 метрах, и в 20 км если надо БЕЗ изменения самой системы!


Это несомненно преимущество Ethernet. И если предполагается что устройство будет таким образом эксплуатироваться, или такое свойство будет хорошей рекламой - берите ethernet. Только не забывайте, что как только вы отказываетесь от стека протоколов, вы сразу же получаете такое-же локальное устройство, у которого разве что кабель длиннее. А все преимущества перед USB сразу теряются.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 15 2009, 08:42
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Михаил_K @ Mar 15 2009, 09:44) *
Конечно понял. Вставка отдельной сетевухи, и РАЗРАБОТКА ПРАВИЛ ПОДКЛЮЧЕНИЯ, в которых пользователю будет сказано, не тыкай наш дивайс в коммутатор - один из путей решения этой проблемы.

Этой проблемы НЕ существует и при одной карте, но если Вам хочется "решить" ее так сказать, аппаратно, то можете заниматься созданием "инструкций". Отдельную карту можно и нужно ставить, если надо выжимать производительность.
Цитата
Любительство в самом что ни наесть ярком своем представлении. Стек протоколов придуман людьми не от скуки, а чтобы придать каналу связи определенные характеристики.

IP стек? Одругих слышать не приходилось? А в пределах локальной сети используется масса других, и стандарты существуют. Я например, опираюсь на IEEE 802.3 IEEE 802.2.
Цитата
Не говоря уже о том, что для того, чтобы сделать на писюке ПО, работающее с МАС уровнем ethernet - задача ой как не тривиальная.

Ну тогда я Вас сейчас осчастливлю smile.gif несколькими десятками строчек "для писюка". Вырезал из собственно проектика под Linux.
CODE

char *device = "eth0";

int interface_init(void)
{
struct ifreq ifr;
int fd, flags = 0;
if( ( fd = socket( PF_INET, SOCK_PACKET, htons(ETH_P_802_2) ) ) < 0 )
{
printf( "Cannot open RAW/SAP device socket\n" );
return( -1 );
}

strcpy( ifr.ifr_name, device );

if( ioctl( fd, SIOCGIFFLAGS, &ifr ) < 0 )
{ printf( "Cannot get RAW/SAP interface flags\n" );
return( -1 );
}
ifr.ifr_flags |= IFF_BROADCAST;
if( ( flags = ioctl( fd, SIOCSIFFLAGS, &ifr ) ) < 0 )
{ printf( "Cannot set RAW/SAP interface flags\n" );
return( -3 );
}

if( ioctl( fd, SIOCGIFHWADDR, &ifr ) < 0 )
{ printf( "Cannot get MAC Address\n" );
return( -4 );
}
.....

return( fd );
}

int eth_send( uchar *buff, int len )
{
........
memcpy( eth_outbuff.body, buff, len );
mac_flush();
return( 0 );
}

uchar *readinterface( int fd, int *plen )
{
int cc = 0, from_len, readmore = 1;
struct sockaddr from;
while( readmore )
{ from_len = sizeof(from);
if( ( cc = recvfrom( fd, (uchar *)&eth_inpbuff, PKT_MAX, 0, &from, &from_len ) ) < 0 )
{
if( errno != EWOULDBLOCK )
return( NULL );
}
if( strcmp( device, from.sa_data ) == 0 )
readmore = 0;
}
*plen = cc;
return( (uchar *)&eth_inpbuff );
}

int mac_flush(void)
{
int retvalue = 0;
struct sockaddr to;
errno = 0;
int plen = ntohs( eth_outbuff.mac.len ) + sizeof(MAC_addr)*2 + sizeof(ushort);
int to_len = sizeof(to);

strcpy( to.sa_data, device );

if( (retvalue = sendto( rawsock, (uchar *)&eth_outbuff, plen, 0, (struct sockaddr *)&to, to_len )) < 0 )
{
printf( "RAW Sendto:%s\n", strerror(errno));
}
return( retvalue );
}

Вот и вся премудрость доступа к фрейму. Для Windows придется, запихтвать еще драйвера cтронних производителей, ибо RAW там поддерживаются условно, но написать в результате, придется примерно то-же самое.
Цитата
И лишь использование стандартных протоколов упрощает программирование.

Не использование стандарнных, а использование стандарных КЕМ-ТО УЖЕ НАПИСАННЫХ протоколов. Да это упрощает, ибо делать ничего собственно и не надо smile.gif. Поэтому я вполне понимаю и разделяю Вашу радость от того, что повесив CYPRESS и Вам удалось решить Вашу задачу левым мизинцем.
Цитата
Если кто-то не смог сделать нормальный USB дивайс, то это не значит что у всех разработчиков руки кривые smile.gif

Может и кривые, может у CYPRESS и самые прямые руки, но проблема в том, что жить на USB вы будете все вместе и с разработчиками кривых девайсов, с разработчиками кривых драйверов и с разработчиками разных операционок.
Цитата
Нет, я говорю - 40 мегабайт smile.gif.

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


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Михаил_K
сообщение Mar 15 2009, 11:36
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 552
Регистрация: 29-02-08
Пользователь №: 35 481



Цитата(zltigo @ Mar 15 2009, 11:42) *
IP стек? Одругих слышать не приходилось? А в пределах локальной сети используется масса других, и стандарты существуют.


Ну вы нас в натуре за лохов-то не держите disco.gif

Цитата(zltigo @ Mar 15 2009, 11:42) *
Ну тогда я Вас сейчас осчастливлю smile.gif несколькими десятками строчек "для писюка". Вырезал из собственно проектика под Linux.
CODE

char *device = "eth0";

int interface_init(void)
{
struct ifreq ifr;
int fd, flags = 0;
if( ( fd = socket( PF_INET, SOCK_PACKET, htons(ETH_P_802_2) ) ) < 0 )
{
printf( "Cannot open RAW/SAP device socket\n" );
return( -1 );
}

strcpy( ifr.ifr_name, device );

if( ioctl( fd, SIOCGIFFLAGS, &ifr ) < 0 )
{ printf( "Cannot get RAW/SAP interface flags\n" );
return( -1 );
}
ifr.ifr_flags |= IFF_BROADCAST;
if( ( flags = ioctl( fd, SIOCSIFFLAGS, &ifr ) ) < 0 )
{ printf( "Cannot set RAW/SAP interface flags\n" );
return( -3 );
}

if( ioctl( fd, SIOCGIFHWADDR, &ifr ) < 0 )
{ printf( "Cannot get MAC Address\n" );
return( -4 );
}
.....

return( fd );
}

int eth_send( uchar *buff, int len )
{
........
memcpy( eth_outbuff.body, buff, len );
mac_flush();
return( 0 );
}

uchar *readinterface( int fd, int *plen )
{
int cc = 0, from_len, readmore = 1;
struct sockaddr from;
while( readmore )
{ from_len = sizeof(from);
if( ( cc = recvfrom( fd, (uchar *)&eth_inpbuff, PKT_MAX, 0, &from, &from_len ) ) < 0 )
{
if( errno != EWOULDBLOCK )
return( NULL );
}
if( strcmp( device, from.sa_data ) == 0 )
readmore = 0;
}
*plen = cc;
return( (uchar *)&eth_inpbuff );
}

int mac_flush(void)
{
int retvalue = 0;
struct sockaddr to;
errno = 0;
int plen = ntohs( eth_outbuff.mac.len ) + sizeof(MAC_addr)*2 + sizeof(ushort);
int to_len = sizeof(to);

strcpy( to.sa_data, device );

if( (retvalue = sendto( rawsock, (uchar *)&eth_outbuff, plen, 0, (struct sockaddr *)&to, to_len )) < 0 )
{
printf( "RAW Sendto:%s\n", strerror(errno));
}
return( retvalue );
}

Вот и вся премудрость доступа к фрейму. Для Windows придется, запихтвать еще драйвера cтронних производителей, ибо RAW там поддерживаются условно, но написать в результате, придется примерно то-же самое.


Этого недостаточно. А где механизм обеспечения целостности передачи?

Цитата(zltigo @ Mar 15 2009, 11:42) *
Не использование стандарнных, а использование стандарных КЕМ-ТО УЖЕ НАПИСАННЫХ протоколов. Да это упрощает, ибо делать ничего собственно и не надо smile.gif. Поэтому я вполне понимаю и разделяю Вашу радость от того, что повесив CYPRESS и Вам удалось решить Вашу задачу левым мизинцем.


Несомненно. У нас есть один специалист, который все делает сам. Типа у всех руки кривые. Вот я с ним уже шесть лет работаю. Ни одного законченного продукта.
Хотя специалист сильный.



Честно говоря, не вижу смысла дальше спорить. Я не ярый сторонник USB или Ethernet.
Просто, как я уже сказал, у нас в организации было разработано и то, и то.
И все сходятся во мнении, что для подобных задач реализация на USB - лучше. Даже те, кто разрабатывал Ethernet интерфейс.
И я, как пользователь этих каналов. Человек, которому этими интерфейсами приходится пользоваться постоянно.

А на вкус и цвет, товарищей нет
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 15 2009, 12:11
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Михаил_K @ Mar 15 2009, 14:36) *
Этого недостаточно. А где механизм обеспечения целостности передачи?

Это Вы писали:
Цитата
Не говоря уже о том, что для того, чтобы сделать на писюке ПО, работающее с МАС уровнем ethernet - задача ой как не тривиальная.

То, что Вы назвали нетривиальной задачей, то и выложил.
Следующий уровень с возможностью включения квитирования, перепередачи (ксати, а где это все у USB моста? smile.gif ) при этом нумерация принятых переданных и контроль факта пропадания есть само-собой всегда. Вcе это, кстати, за счет реального времени и пропускной способности. Представляет собой вариации на тему IEEE 802.2, писалось лет так 12 назад, работает у меня далеко не только через Ethernet и содержит ровно 378 строчек на C. Вот такая нетривиальная задача.
Цитата(Михаил_K @ Mar 15 2009, 14:36) *
Этого недостаточно. А где механизм обеспечения целостности передачи?

Это Вы писали:
Цитата
Не говоря уже о том, что для того, чтобы сделать на писюке ПО, работающее с МАС уровнем ethernet - задача ой как не тривиальная.

То, что Вы назвали нетривиальной задачей, то и выложил.
Следующий уровень с возможностью включения квитирования, перепередачи (ксати, а где это все у USB моста? smile.gif ) при этом нумерация принятых переданных и контроль факта пропадания есть само-собой всегда. Вcе это, кстати, за счет реального времени и пропускной способности. Представляет собой вариации на тему IEEE 802.2, писалось лет так 12 назад, работает у меня далеко не только через Ethernet и содержит ровно 378 строчек на C. Вот такая нетривиальная smile.gif задача.


Цитата(SM @ Mar 15 2009, 14:16) *
Ну разумеется, если уже есть 32-битник, то лучше взять его сразу с УСБ, чем цеплять к нему что-то снаружи. Речь-то все таки о FPGA, а не о 32-битнике, а это совсем другая тема.

Вы же сами сказали, что MAC уровни, тем более, что брать готовые корки smile.gif в FPGA одинаковы по трудоемкости, софт, для тупой передачи потока, как выяснилось, - тоже одного порядка. Дальше что? На моей стороне равноправные партнеры, а не опрашивемое переферийное устройство, удаление на сотни метров, гальваническая развязка, возможность гигабита. На ваше стороне, "5 баксов" и "5x5 миллиметров", да и то только в случае выбора между мостом USB и контроллером MAC. Есть выбор. Я ничего не упустил?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SM
сообщение Mar 15 2009, 14:39
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(zltigo @ Mar 15 2009, 15:11) *
Следующий уровень с возможностью включения квитирования, перепередачи (ксати, а где это все у USB моста? smile.gif )

Как где? В спецификации УСБ, главы 8.5...8.7. Любой УСБ девайс, коим является и мост, обязан это обеспечивать.
Цитата(zltigo @ Mar 15 2009, 15:11) *
Вы же сами сказали, что MAC уровни, тем более, что брать готовые корки smile.gif в FPGA одинаковы по трудоемкости, софт, для тупой передачи потока, как выяснилось, - тоже одного порядка. Дальше что? На моей стороне равноправные партнеры, а не опрашивемое переферийное устройство, удаление на сотни метров, гальваническая развязка, возможность гигабита. На ваше стороне, "5 баксов" и "5x5 миллиметров", да и то только в случае выбора между мостом USB и контроллером MAC. Есть выбор. Я ничего не упустил?

Упустили главное. Засовывание и отладка корки, что УСБ, что МАК, одинаковый геморрой недели на две, особенно если впервые, а поднятие передачи с мостом - вопрос получаса. Плюс, если впервые, еще работа по откручиванию всяких там вишбонов, ahb, amba и прочего нахрен не нужного хлама, пока до локальной шины не доберешься. Выигрышь в стоимости разработки при применении моста виден сразу.

Осталось взять все доступные мосты, а именно MACи внешние и УСБ-мосты, и сравнить их по параметрам, как то цена, занимаемое место, жрачка. Ну и сравнить их же с решением вкрячивания корки в ПЛИС с использованием внешнего PHY, предполагая, что она займет для УСБ ~2800 LE / 8 M4K (можно обкастрировать где-то до 2100) и для Eth 10/100 3800 LE / 9 M4K (можно обкастрировать где то до 1500, но потом за счет контроля целостности и ретрансмитов оно разростется обратно думаю до объема как раз USB). Объемы приведены примеро для корок от CAST под FPGA Cyclone-II.

Если свести все в единую таблицу, где учесть время на разработку, учесть стоимость компонентов, учесть площадь платы, переведя все эти составляющие в деньги, то решения с USB-мостами окажутся порядочно впереди Eth-решений с внешними макамию, а решения с УСБ-корками незначительно дешевле, чем с МАК-корками (при условии, что трансформатор можно по ТЗ выкинуть, разница за счет цен на PHY и занимаемой площади ими на плате). По крайней мере так было полтора года назад, когда я эту работу проводил. Из чего напрямую следует, что если применим по ТЗ и тот, и этот интерфейсы, то наиболее быстро реализуемое решение, при этом самое дешовое - будет именно USB мост.

Что касается 5х5 мм - то найдите хотя бы Eth PHY такой smile.gif При том, что USB PHY имеют размер 3.5х3.5 мм smile.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 15 2009, 15:51
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(SM @ Mar 15 2009, 17:39) *
поднятие передачи с мостом - вопрос получаса.

Понял, добавляем очень очень очень быстрый старт. Я правда предпочитаю быстрому старту долгую жизнь smile.gif и возможности развития. Осталось после всего этого выслушать Автора топика.
P.S.
Все, я уезжаю на недельку по делам, наверное будет не до electronix sad.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Boris_TS
сообщение Mar 16 2009, 10:34
Сообщение #14


Злополезный
****

Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188



Фуххх... Вернулся из 2 дневной командировки.

Цитата(zltigo @ Mar 15 2009, 19:51) *
Осталось после всего этого выслушать Автора топика.

После предварительного согласования параметров системы сбора данных с соратниками, выяснилось, что необходима длина кабеля для передачи данных до 30-40 метров с обязательным наличием гальванической (или оптической) развязки, предельный поток данных получается около 15 MByte/s (или 120 MBit/s - так точнее) (к сожалению "сладкое будущее" стало тоскливой реальностью). Поэтому USB отпадает, насколько мне известно он не работает на такое расстояние и не имеет развязки. А жаль, первоначально предполагалось (мною), что удастся ограничиться один метром интерфейсного кабеля.

Естественно с таким потоком Ethernet-100 не справиться, соответственно прийдется использовать Gigabit Ethernet.
Теперь вопросы:
1. С чего лучше начать знакомство с Ethernet ?
2. Что лучше использовать чистый Ethernet или еще реализовывать и TCP/IP (в чем достоинства/недостатки обоих решений) ?
3. Исходя из 2, какие микросхемы/сборки лучше использовать ?

Еще раз повторю особенности этой разработки:
1. Данные необходимо гарантированно доставлять (т.к. у меня - система сбора данных).
2. Необходимо иметь возможность в будущем увеличить поток в 2 (или 2.5) раза, т.е. до 240Mbit/s (или 300Mbit/s - это крайняя цифра, выше неё прыгать не собираемся).
3. Очень важно минимизировать время разработки.
4. Место для аппаратного решения - 1дм2, можно и 1.5дм2 (да, так спроектировал систему - место есть).
5. Желательно чтобы суммарная цена копонентов не превышала десятка киборублей (не килодолларов !).
6. Программа приема данных на компьютере будет работать под Windows XP 32bit (тоже желательно позаботиться о программисте - дабы не сильно пух от проблем с голым Ethernet, или проблем как раз с Windows XP нет ?).

Пока видел 2 предложеных решения:
1. FPGA + ARM9 (как я понял, поддержку TCP/IP в ARM9 прийдётся делать самому, али есть готовое и доступное решение ?).
2. V4 Ethernet MAC (+ MicroBlase with LwIP - для поддержки TCP/IP).
Может еще какие предложения есть ?

Пока, второе предложение кажется более близким т.к. работаю с ISE давно и очень плотно (есть надежда, что и с EDK очень долго разбираться не прийдется), а вот про ARM только приходилось иногда слышать...
Go to the top of the page
 
+Quote Post
Boris_TS
сообщение Mar 19 2009, 09:39
Сообщение #15


Злополезный
****

Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188



Подведу очередные итоги обсуждения:

Цитата(Boris_TS @ Mar 16 2009, 14:34) *
Теперь вопросы:
1. С чего лучше начать знакомство с Ethernet ?
2. Что лучше использовать чистый Ethernet или еще реализовывать и TCP/IP (в чем достоинства/недостатки обоих решений) ?
3. Исходя из 2, какие микросхемы/сборки лучше использовать ?

К сожалению, вынужден констатировать, что:
Вопрос 1 - остался без ответа (а сейчас для меня он архиважный),
Вопрос 2 - освещён только со стороны трудоёмкости разработки решения (сторона очень важная, я бы даже сказал ключевая), но необходимо всё-таки ответить на вопрос "А нужен ли вообще TCP/IP ??! И чего полезного он действительно может дать ?", т.к. если особой пользы от TCP/IP нет (а пока я склоняюсь к этой мысли), то при обсужденных трудозатратах на его освоение/поддержку тратиться жалко.
Вопрос 3 - можно считать более или менее хорошо обсужденным.

Пока думаю, что воспользуюсь Virtex5 Gigabit Ethernet MAC (по сравнению с Virtex4 у Virtex5 немного дешевле встроенная блочная память). Использовать PowerPC не хочу, может и ошибаюсь, конечно, но думаю, что проще набросать несколько несложных FSM. чем разбираться с EDK... В крайнем случае, если появиться ощущение, что я заблуждался, то воспользуюсь MicroBlase; конечно такое решение хуже встроенного PowerPC с прямым интерфейсом к Ethernet MAC.

Соединения пока планирую делать точка-точка (т.е. от моего комплекса в специально зарезервированную сетевуху).

Поэтому сейчас стоит проблема выбора конкретной микросхемы, сейчас в возможных вариантах стоят XC5VSX35T-1FF665C и XC5VLX20T-1FF323C (на случай использования PowerPC XC5VFX30T-1FF665C).
SX35T - привлекает неплохим количеством встроенной блочной памяти (заметно более дешёвой, чем у всех остальных представителей VIrtex5), цена в 20 килорублей (практически максимальная розничная цена) несколько омрачает прелести применения этого кристалла - но т.к. оная ПЛИС требуется только одна на весь комплекс, то терпимо.
LX20T - привлекает минимальной ценой среди Virtex4/5 с Ethernet MAC (такая ПЛИС стоит в 2 раза меньше, чем SX30, но и ОЗУ в ней в 3.2 раза меньше), а т.к. встроенной блочной памяти мало, то необходимо цеплять что-то внешнее.

Теперь новая пачка вопросов (в добавление к неотвеченному вопрос 1 из предыдущей пачки):
1. Применение SX35T позволит хранить данные на 25мс (при 15МБайтном потоке). Достаточно ли этого времени, чтобы гарантировать устойчивую передачу данных в Windows XP ?
2. Какой должен быть размер буфера (в мс), чтобы гарантировать устойчивую передачу данных в Windows XP (и где это можно прочесть) ?
3. Если использовать внешную память, то что лучше использовать ? (с динамической памятью пока не работал, да и что-то не тянет,.. а может зря ?)
4. Какие "неочень дорогие" микросхемы двухпортовой памяти (али даже готового FIFO) можете посоветовать. От двухпортовой памяти требуется иметь один порт для записи, второй - для чтения.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Mar 20 2009, 19:27
Сообщение #16


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(Boris_TS @ Mar 19 2009, 12:39) *
но думаю, что проще набросать несколько несложных FSM. чем разбираться с EDK... В крайнем случае, если появиться ощущение, что я заблуждался, то воспользуюсь MicroBlase; конечно такое решение хуже встроенного PowerPC с прямым интерфейсом к Ethernet MAC.

Microblaze тоже делается через EDK и у него тоже есть прямой интерфейс к MAC. И разобраться с EDK в принципе не сложнее, чем делать простенькие FSM. А в вашем случае я не думаю, что FSM будут на самом деле простыми.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Boris_TS   Обмен данными с компьютером   Mar 13 2009, 15:46
- - rezident   После прочтения "много слов" у меня возн...   Mar 13 2009, 17:00
|- - Boris_TS   Цитата(rezident @ Mar 13 2009, 21:00) Пос...   Mar 13 2009, 17:52
|- - rezident   Цитата(Boris_TS @ Mar 13 2009, 22:52) Соб...   Mar 13 2009, 20:34
|- - Boris_TS   На всякий случай опишу чуть подробнее работу имеющ...   Mar 14 2009, 08:33
|- - Boris_TS   Цитата(murmel1 @ Mar 13 2009, 22:45) Реко...   Mar 13 2009, 20:17
||- - SM   Цитата(Boris_TS @ Mar 13 2009, 23:17) Мож...   Mar 13 2009, 20:57
|- - murmel1   Цитата(zltigo @ Mar 14 2009, 11:34) помян...   Mar 14 2009, 17:24
|- - SM   Цитата(zltigo @ Mar 14 2009, 23:10) В дан...   Mar 14 2009, 20:47
||- - zltigo   Цитата(SM @ Mar 14 2009, 23:47) аналогичн...   Mar 14 2009, 21:58
||- - SM   Цитата(zltigo @ Mar 15 2009, 00:58) Если-...   Mar 15 2009, 09:50
||- - zltigo   Цитата(SM @ Mar 15 2009, 12:36) Вы опять ...   Mar 15 2009, 09:55
|||- - SM   Цитата(zltigo @ Mar 15 2009, 12:55) Прост...   Mar 15 2009, 10:06
|||- - zltigo   Цитата(SM @ Mar 15 2009, 13:06) 1) Обеспе...   Mar 15 2009, 10:27
||- - zltigo   Цитата(SM @ Mar 15 2009, 12:50) Делаете с...   Mar 15 2009, 10:11
||- - SM   Цитата(zltigo @ Mar 15 2009, 13:11) А кто...   Mar 15 2009, 10:20
||- - zltigo   Цитата(SM @ Mar 15 2009, 13:20) В софте.....   Mar 15 2009, 10:32
||- - SM   Цитата(zltigo @ Mar 15 2009, 13:32) В общ...   Mar 15 2009, 10:54
||- - zltigo   Цитата(SM @ Mar 15 2009, 13:36) Причем я ...   Mar 15 2009, 11:04
||- - SM   Цитата(zltigo @ Mar 15 2009, 14:04) Не ви...   Mar 15 2009, 11:16
||- - Михаил_K   Цитата(zltigo @ Mar 15 2009, 15:03) Следу...   Mar 15 2009, 12:12
||- - a123-flex   Цитата(zltigo @ Mar 15 2009, 18:51) Понял...   Mar 15 2009, 18:06
||- - blackfin   Цитата(Boris_TS @ Mar 16 2009, 13:34) Мож...   Mar 16 2009, 10:45
||- - DmitryR   Цитата(Boris_TS @ Mar 16 2009, 13:34) 1. ...   Mar 16 2009, 10:51
||- - SM   Цитата(Boris_TS @ Mar 19 2009, 12:39) Воп...   Mar 19 2009, 10:19
||- - Aprox   Цитата(Boris_TS @ Mar 19 2009, 12:39) Воп...   Mar 19 2009, 11:22
|||- - Boris_TS   Цитата(DmitryR @ Mar 20 2009, 23:27) Micr...   Mar 20 2009, 19:53
|||- - SM   Цитата(Boris_TS @ Mar 20 2009, 22:53) Сей...   Mar 21 2009, 15:04
|||- - Boris_TS   Цитата(SM @ Mar 21 2009, 19:04) Я Вам уже...   Mar 21 2009, 16:07
||- - AlexandrY   Странно вы решаете эту проблему. Траблы у вас в PC...   Mar 20 2009, 20:16
||- - Boris_TS   Цитата(AlexandrY @ Mar 21 2009, 00:16) Ст...   Mar 21 2009, 08:33
|- - islavv   Цитата(zltigo @ Mar 15 2009, 00:10) Эквив...   Mar 17 2009, 13:13
- - des00   Цитата(Boris_TS @ Mar 13 2009, 09:46) Гру...   Mar 14 2009, 03:59
- - RobFPGA   Приветствую! На USB в таких системах лутше не...   Mar 14 2009, 18:09
- - rsv   проще, по моему, все таки ethernet сделать через ж...   Mar 14 2009, 18:35
- - Михаил_K   Здравствуйте! Добавлю своего мнения Когда-то...   Mar 14 2009, 18:52
|- - SM   Цитата(Михаил_K @ Mar 14 2009, 21:52) И н...   Mar 14 2009, 19:34
- - RobFPGA   Приветствую! При выборе интерфейса для систем...   Mar 14 2009, 21:17
|- - SM   Цитата(RobFPGA @ Mar 15 2009, 00:17) Реал...   Mar 14 2009, 21:23
- - SM   То, что нет проблем с местом на плате, и то, что м...   Mar 15 2009, 10:32
- - Alex11   Тут уже много чего сказано, но можно добавить, что...   Mar 15 2009, 18:19
|- - SM   Цитата(Alex11 @ Mar 15 2009, 21:19) но мо...   Mar 15 2009, 22:03
- - SM   IMHO тогда так: внешний PHY, например RTL8211. ПЛ...   Mar 16 2009, 11:05
|- - DmitryR   Цитата(SM @ Mar 16 2009, 14:05) Ну и оста...   Mar 16 2009, 14:05
|- - SM   Цитата(DmitryR @ Mar 16 2009, 17:05) Оста...   Mar 16 2009, 19:33
||- - DmitryR   В этом проекте без программиста все равно вряд ли ...   Mar 17 2009, 07:55
||- - Михаил_K   Цитата(SM @ Mar 16 2009, 22:33) Для специ...   Mar 17 2009, 09:14
||- - SM   Цитата(Михаил_K @ Mar 17 2009, 12:14) ИМХ...   Mar 17 2009, 10:45
|- - zltigo   Цитата(DmitryR @ Mar 16 2009, 17:05) Я во...   Mar 21 2009, 09:35
|- - DmitryR   Цитата(zltigo @ Mar 21 2009, 12:35) Вы хо...   Mar 23 2009, 06:47
|- - zltigo   Цитата(DmitryR @ Mar 23 2009, 09:47) Пред...   Mar 24 2009, 06:58
|- - AlexandrY   Ага, народ даже не подозревает, что в большинстве ...   Mar 24 2009, 07:48
|- - blackfin   Цитата(AlexandrY @ Mar 24 2009, 10:48) Эт...   Mar 24 2009, 08:02
|- - Aprox   Цитата(AlexandrY @ Mar 24 2009, 10:48) Ни...   Mar 24 2009, 08:20
|- - Builder   Цитата(AlexandrY @ Mar 24 2009, 11:48) CU...   Mar 24 2009, 10:13
|- - Aprox   Цитата(Builder @ Mar 24 2009, 13:13) Може...   Mar 24 2009, 11:23
|- - Builder   Цитата(Aprox @ Mar 24 2009, 14:23) И не н...   Mar 24 2009, 12:01
- - jojo   Внешний PHY 10/100/1000 Древний, зато купить легко...   Mar 16 2009, 14:50
- - Михаил_K   Наши делали так. Интеловский сетевой процессор. На...   Mar 16 2009, 19:18
- - SM   Да, а что Вас так ксилинксом приплющило? Ведь есть...   Mar 19 2009, 11:58
- - jojo   >Для того, чтобы не возникало ненужных вопросов...   Mar 21 2009, 19:04
|- - Builder   Цитата(jojo @ Mar 21 2009, 23:04) По пово...   Mar 22 2009, 22:02
|- - jojo   Цитата(Builder @ Mar 23 2009, 01:02) Не п...   Mar 23 2009, 08:18
|- - Builder   Цитата(jojo @ Mar 23 2009, 12:18) NIOS2. ...   Mar 23 2009, 09:37
- - SM   Все так, трансивер -> SFP -> волокно. Если м...   Mar 21 2009, 19:19
- - Muxa   По поводу USB переходников, не всё так просто. бо...   Mar 23 2009, 00:11
- - jojo   Стек сам писал. Это же "наивная реализация...   Mar 23 2009, 10:11
- - jojo   В нормальных процессорах DMA таки ускоряет пересыл...   Mar 24 2009, 08:59
|- - AlexandrY   Цитата(jojo @ Mar 24 2009, 10:59) В норма...   Mar 24 2009, 09:43
|- - jojo   >Лучше расскажите где вы этот миф прочитали В ...   Mar 24 2009, 11:12
- - SM   Народ, вы все позабывали то, откуда берутся данные...   Mar 24 2009, 12:48
|- - Boris_TS   Цитата(SM @ Mar 24 2009, 16:48) Народ, вы...   Mar 24 2009, 14:50
|- - Builder   Цитата(Boris_TS @ Mar 24 2009, 18:50) Еще...   Mar 25 2009, 07:15
|- - blackfin   Цитата(Builder @ Mar 25 2009, 10:15) Кста...   Mar 25 2009, 07:49
|- - SM   Цитата(Builder @ Mar 25 2009, 10:15) Один...   Mar 25 2009, 08:14
- - :-)   Хотелось бы продолжить данную тему. Есть желание...   Nov 19 2009, 13:14
|- - o_khavin   Цитата(:-) @ Nov 19 2009, 17...   Nov 22 2009, 16:40
|- - :-)   Цитата(o_khavin @ Nov 22 2009, 19:40) Для...   Nov 23 2009, 07:57
|- - o_khavin   Цитата(:-) @ Nov 23 2009, 11...   Nov 23 2009, 20:56
- - :-)   Ethernet нравится тем, что, во-первых, имеются нек...   Nov 24 2009, 07:53
|- - Aprox   Цитата(:-) @ Nov 24 2009, 11...   Nov 27 2009, 14:00
- - XVR   ЦитатаГлавная сложность продумать реализацию алгор...   Nov 24 2009, 08:36
- - warrior-2001   В данной ветке проскакивало упоминание о "Vid...   Oct 11 2011, 06:42


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

 


RSS Текстовая версия Сейчас: 14th July 2025 - 07:17
Рейтинг@Mail.ru


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