|
|
  |
Поделитесь, пожалуйста, USB ISP1761 коркой без ниоса, вдруг кто знает или направит |
|
|
|
May 3 2011, 18:59
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Всем привет, имеется у меня на плисоборде USB ISP1761, его даташит я к этому топику приаттачил. Хочу через него качать в одну сторону, с плиски на линукс компьютер данные. Через ниос, как пишут на Альтера-форуме, большую скорость, больше 50МБит/с, развить не удается - типа ниос тормозит. Сама железка вроде 480МБит/с должна показывать. Как сделать - читал даташиты, не смог сам разобраться. Вдруг кто-то имел дело с таким зверьком, посоветуйте, пожалуйста, простое решение! В плиске сам этот девайс виден так: Код output [17:1] OTG_A; output OTG_CS_n; inout [31:0] OTG_D; output OTG_DC_DACK; input OTG_DC_DREQ; input OTG_DC_IRQ; output OTG_HC_DACK; input OTG_HC_DREQ; input OTG_HC_IRQ; output OTG_OE_n; output OTG_RESET_n; output OTG_WE_n; Спасибо ИИВ
|
|
|
|
|
May 14 2011, 16:01
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(Stewart Little @ May 4 2011, 13:47)  Ссылку в студию! Одно из последних холиваров там, который тянется с 2009 года такой http://www.alteraforum.com/forum/showthread.php?t=18934в основном конечно народ пишет про етернет, а не про усб, но про усб я тоже такое же там видел, да и пример, приложенный к борде, где у меня эта ISP1761 тоже совсем не мегабайты пиковой производительности показывает, вот по этому, вопрошаю. Если вдруг кто-то на ниосе с ISP1761 может хотя бы >350 МБитс показать, поделитесь, пожалуйста, сокровенными знаниями как это получается, хотя думаю, что как раз без ниоса надо. Спасибо ИИВ
|
|
|
|
|
May 14 2011, 16:27
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(iiv @ May 14 2011, 20:01)  Одно из последних холиваров там, который тянется с 2009 года такой http://www.alteraforum.com/forum/showthread.php?t=18934в основном конечно народ пишет про етернет, а не про усб, но про усб я тоже такое же там видел, да и пример, приложенный к борде, где у меня эта ISP1761 тоже совсем не мегабайты пиковой производительности показывает, вот по этому, вопрошаю. Если вдруг кто-то на ниосе с ISP1761 может хотя бы >350 МБитс показать, поделитесь, пожалуйста, сокровенными знаниями как это получается, хотя думаю, что как раз без ниоса надо. Спасибо ИИВ При таких скоростях программно гонять поток по-моему не вариант. В Вашем случае по-моему надо ДМА ставить, тогда легко получится, главное чтоб данные успели сформироваться. Так, на вскидку, у усб-камня 32 бита, sg-dma на чипе цыклон3 -8 на 80 МГц в легкую идет, ну допустим, 50% шины (вполне реально) на этой частоте при работе проца останется на дма, получаем производительность 80*32*0,5 = 1280 мбит. Т.е. ниос должен только указывать откуда данные для дма брать, тогда все ок. У меня сейчас шина ниоса (16 бит внешняя память) на 80 МГц со всеми дма реально гоняет где-то 1-1,1 Гбит. По-моему при таких скоростях надо подумать как успеть сформировать данные и потом принять их, да еще и обработать. Если не секрет, куда такие потоки? Пробовал примитивно (без прерываний, не kernel-драйвером), считывать с усб постоянный поток - проц грузится на 100%, скорость - порядка 300 кбайт/с, т.е. около 3 мбит, при этом ограничивается компом. С кернелом и прерываниями конечно выдавливается нормально. Комп Pentium4 2,4ГГц.
|
|
|
|
|
May 14 2011, 17:12
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(alexPec @ May 14 2011, 22:27)  При таких скоростях программно гонять поток по-моему не вариант. Спасибо, АлексПек, Вам за ответ, действительно я и про USB, и про что-то другое думаю. Данные у меня легко на плиске формируются, блоками примерно по 1.5-2кбайта. Скорость создания - примерно 1 такой блок в микросекунду. Задача - радиохимическое исследование распадов некоторых изотопов. Данные со спец сенсоров. Я пока эти блоки просто усредняю или выбрасываю все, кроме некоторых. Пока то, что сам смог получать, примерно один блок в две милисекунды по SPI интерфейсу. Когда данные придут, там компьютер хороший, с данными справится Основной затык - именно тащить данные с плисины на комп. На плиске есть этот пресловутый USB ISP1761 и около 24 (не помню точно) свободных 2.5В GPIO ног, каждая из которых может дрыгатся примерно с частотой около 60МГц из-за конструкционных особенностей борды. Так как я совсем не паяльник, а софтверник, я хочу туда что-то воткнуть или поюзать USB интерфейс, чтобы хоть как-то протащить, так как реально если я сильно постораюсь, я эти блоки примерно в 2-3 раза смогу сжать, но алгоритм сжатия у меня еще на плиске не запрограммирован (не успел еще, мне не до этого пока было). Вот такая незадачка. Альтернатива развести руководство еще на одну плисоборду с правильным коннектором и гигабитным етернетом, изпопрошайничать здесь на форуме корку на UDP 1GB/s для RGMII, но, если я таки руководство на эту борду разведу, а у меня все это не заработает, руководство меня за разбазаривание, не то слово, как отругает. ИИВ Цитата(AlphaMil @ May 14 2011, 22:43)  Гляньте на opencores.org, возможно там кто-то делал. спасибо Вам за ответ, но, к сожалению, я там не видел, поэтому сюда вопрос запостил. И на Альтера форуме не находится.
|
|
|
|
|
May 14 2011, 18:26
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(iiv @ May 14 2011, 21:12)  Спасибо, АлексПек, Вам за ответ, действительно я и про USB, и про что-то другое думаю. Данные у меня легко на плиске формируются, блоками примерно по 1.5-2кбайта. Скорость создания - примерно 1 такой блок в микросекунду. Задача - радиохимическое исследование распадов некоторых изотопов. Данные со спец сенсоров. Я пока эти блоки просто усредняю или выбрасываю все, кроме некоторых. Пока то, что сам смог получать, примерно один блок в две милисекунды по SPI интерфейсу. Когда данные придут, там компьютер хороший, с данными справится Основной затык - именно тащить данные с плисины на комп. На плиске есть этот пресловутый USB ISP1761 и около 24 (не помню точно) свободных 2.5В GPIO ног, каждая из которых может дрыгатся примерно с частотой около 60МГц из-за конструкционных особенностей борды. Так как я совсем не паяльник, а софтверник, я хочу туда что-то воткнуть или поюзать USB интерфейс, чтобы хоть как-то протащить, так как реально если я сильно постораюсь, я эти блоки примерно в 2-3 раза смогу сжать, но алгоритм сжатия у меня еще на плиске не запрограммирован (не успел еще, мне не до этого пока было). Вот такая незадачка. Альтернатива развести руководство еще на одну плисоборду с правильным коннектором и гигабитным етернетом, изпопрошайничать здесь на форуме корку на UDP 1GB/s для RGMII, но, если я таки руководство на эту борду разведу, а у меня все это не заработает, руководство меня за разбазаривание, не то слово, как отругает. ИИВ спасибо Вам за ответ, но, к сожалению, я там не видел, поэтому сюда вопрос запостил. И на Альтера форуме не находится. Так тут даже не мегабиты. 2кбайт за мкс это 2000 мбайт в сек = примерно 20 Гбит. Даже если сжимаем в 3 раза 20/3 = 6,... Гбит - не лезет даже в Гбит эзернет (это притом что гигабит в эзернете по-моему со всей служебной инфой, типа заголовков пакетов, CRC и т.д.). Да и комп такое точно не примет в реалтайм (если не суперкомпьютер  ) По-моему буферизировать на борде надо, ставить DDR какую-нибудь, на 2-4 Гбайт (смотря какое время записи нужно). Но при таких скоростях с разводкой попотеть надо будет, без опыта точно с первого раза не будет работать. А потом уже стравливать тихонько на комп... Цитата Задача - радиохимическое исследование распадов некоторых изотопов. Чем только люди не занимаются...
|
|
|
|
|
May 14 2011, 19:04
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Вы правы, в идеале мне нужен гигабайт в секунду  И шкаф с 24 графическими картами, которые должны обработать этот поток эмоций, мое начальство купит тут же, так как уверено в моих способностях обработать эти данные. Реалии таковы, что я ни разу в жизни ничего не разводил, к своему стыду, и могу только программировать. Именно изходя из этого факта я готов понапрягаться, чуток повыбрасывать данные (в ущерб времени эксперимента), но, таки насобирать свои положенные десять терабайт данных. Просто если я его по SPI тащить буду, то ждать придется около месяца, и за это время все изотопы распадутся. А если я хоть в 30 раз подниму свой поток в 15МБит (SPI), то эксперимент займет всего-то один день и есть надежда, что я соберу то, что мне надо.
|
|
|
|
|
May 14 2011, 20:37
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(iiv @ May 14 2011, 23:04)  Вы правы, в идеале мне нужен гигабайт в секунду  И шкаф с 24 графическими картами, которые должны обработать этот поток эмоций, мое начальство купит тут же, так как уверено в моих способностях обработать эти данные. Реалии таковы, что я ни разу в жизни ничего не разводил, к своему стыду, и могу только программировать. Именно изходя из этого факта я готов понапрягаться, чуток повыбрасывать данные (в ущерб времени эксперимента), но, таки насобирать свои положенные десять терабайт данных. Просто если я его по SPI тащить буду, то ждать придется около месяца, и за это время все изотопы распадутся. А если я хоть в 30 раз подниму свой поток в 15МБит (SPI), то эксперимент займет всего-то один день и есть надежда, что я соберу то, что мне надо. Ну если вопрос стоит "чем больше, тем лучше", а не "мне нужен гигабайт в секунду и не меньше", то запустите ниос на своей борде, дма на камень усб, и даже если все это запустить на 40 мгц - получите поток порядка 40*32*0,5 = 640 мбит, т.е. будете ограничены возможностями усб камня и компьютером который это принимает. Избыток скорости со стороны ниоса съест как раз обработчик прерываний по окончанию передачи блока данных, и выжмете максимум из своей борды, ну а если уж не хватит - тогда разводка новой платы, но подозреваю что Вам надо будет не один гигабит эзернет. Кстати, если плата недалеко от компа, то может есть смысл посмотреть в сторону SATA? Драйвер свой и скорость то поболе чем усб 2.0 будет. 10 терабайт своих быстро забьете
|
|
|
|
|
May 14 2011, 21:40
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(alexPec @ May 15 2011, 01:37)  Ну если вопрос стоит "чем больше, тем лучше", а не "мне нужен гигабайт в секунду и не меньше", то запустите ниос на своей борде, дма на камень усб, и даже если все это запустить на 40 мгц - получите поток порядка 40*32*0,5 = 640 мбит, т.е. будете ограничены возможностями усб камня и компьютером который это принимает. Избыток скорости со стороны ниоса съест как раз обработчик прерываний по окончанию передачи блока данных, и выжмете максимум из своей борды, ну а если уж не хватит - тогда разводка новой платы, но подозреваю что Вам надо будет не один гигабит эзернет. Кстати, если плата недалеко от компа, то может есть смысл посмотреть в сторону SATA? Драйвер свой и скорость то поболе чем усб 2.0 будет. 10 терабайт своих быстро забьете  Уважаемый alexPec, конечно же мне хватит и 480МБитов, а не 640МБит, как Вы советуете  и про эти 480МБит я собственно затеял этот топик. Вот только с ниосом у меня совсем плохо получается, стандартный пример, который прилагается к борде, отожрал половину блочной памяти (я так не могу, мне самому она нужна), и показывает далеко даже не мегабит, и, как мне кажется, тормозит именно из-за того, что ниос не успевает положить в дма усб камня свои 4 байта даже за несколько тактов. Поэтому-то я и ищу простую корку, по возможности без ниоса, которая бы мне это и делала бы!
|
|
|
|
|
May 14 2011, 22:40
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(iiv @ May 15 2011, 01:40)  Уважаемый alexPec, конечно же мне хватит и 480МБитов, а не 640МБит, как Вы советуете  и про эти 480МБит я собственно затеял этот топик. Вот только с ниосом у меня совсем плохо получается, стандартный пример, который прилагается к борде, отожрал половину блочной памяти (я так не могу, мне самому она нужна), и показывает далеко даже не мегабит, и, как мне кажется, тормозит именно из-за того, что ниос не успевает положить в дма усб камня свои 4 байта даже за несколько тактов. Поэтому-то я и ищу простую корку, по возможности без ниоса, которая бы мне это и делала бы! Что-то не то по-моему. Какой чип? На какой частоте ниос и на какой дма? Какой проц? (/s /f) Память снаружи еще какая-нибудь есть? И все-таки, Вы программно ложите байты в усб-камень? Тогда конечно не прокатит. В ниосе надо добавить компонент sg-dma. Вообще я год как с ниосом работаю, но система готовая уже есть (даже 2). Так вот в этой системе внешняя память, 16 бит. Проц работает на 80 МГц. В системе 2 дма, один вытаскивает данные со скоростью 5МГц х 16 бит, другой 20 МГц х 16 бит, плюс сам ниос (программа и данные расположены в той же внешней памяти). Поток приличный получается. Если бы выделить отдельную память под программу, отдельную под данные дма, то еще больше получится. И это все реально работает, почему у Вас то не должно? Тоже будет. Повторюсь, ниос не должен каждый байт заталкивать в усб, это должен делать дма ниоса, ниос только должен указать откуда и сколько байт переслать. А с коркой вряд ли кто поможет, ведь она должна быть адаптирована больше под Вашу систему. Если используете камень, усб в нем уже сделано, наруже от него только паралельный интерфейс, корка под паралельный интерфейс - это больше корка для того откуда данные будут браться. А с памятью - можно поэксперементировать, оптимизировать. Я когда первый ниос делал, он работал с 2 кбайтами ончип памяти и все. Завтра еще повнимательнее гляну на доку для усб камня.
|
|
|
|
|
May 17 2011, 11:02
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(alexPec @ May 15 2011, 04:40)  И все-таки, Вы программно ложите байты в усб-камень? Тогда конечно не прокатит. В ниосе надо добавить компонент sg-dma. Спасибо Вам за ответы! Действительно байты программно ложаться. Просто по-другому не умею, а больше примеров нет. А те, что к борде в комплекте были - все закриптованы, посмотреть можно, поверх что-то прикрутить - тоже, а выдернуть и прикрутить к своему уже нельзя. Похоже, что в моей борде - это глухая затея. Буду пытаться другими методами.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|