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

 
 
 
Reply to this topicStart new topic
> Помогите подобрать готовое решение., Необходимо принять данные по 8-битной шине и передать на ПК
KIM
сообщение Dec 19 2009, 07:40
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 25-10-06
Пользователь №: 21 655



Уважаемые Коллеги.

У меня возникла проблема со следующей задачей: необходимо ввести данные передаваемые с одного девайса в ПК для их дальнейшей обработки. Данные передаются по 8-битной шине с частотой 40 МГц, протокло нестандартный. Передаются с перерывами, то есть средняя скорость - не 380 МБит (48 000 000 * 8 бит), а примерно около 100 МБит в секунду. Необходимо изготовить платку, которая бы корректно принимала данные с этого девайса и передавала на ПК по USB, или там, Ethernet.

Здесь и возникает проблема - одним из первых приходящи на ум решений было бы взять что нибудь типа cy7c68013, и либо по GPIF напрямую принимать данные с девайса, либо завести его на ПЛИС (достаточно бы было какой нибудь недорогой FPGA), а плис бы принимала данные с девайса и слала их в cy7c68013 по Slave Fifo. Ну или что нибудь типа этого ))

проблема состоиит в отсутствии специалиста по программированию ПЛИС.

В этой связи мысли уходили в сторону покупки какого нибудь одноплатного компьютера с GPIO,тогда бы можно было завести GPIO на девайсину и принимать через него, а потом слать на ПК по одному из кучи доступных на одноплатном компе интерфейсов, однако мне кажется, что GPIO не успеет отрабатывать с требуемой скоростью (40 МГц).

Есть ли какие нибудь решения данной проблемы? Может какие нить высокоскоростные интерфейсы, которые можно прогать с одноплатного ПК?
Go to the top of the page
 
+Quote Post
guxa
сообщение Dec 24 2009, 06:27
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 17-12-06
Пользователь №: 23 612



Как мне кажется, ПЛИС - это наиболее гибкое решение проблемы, т.к. на нее вы можете завести фактически любые данные. Трудности в передаче на ПК возникнуть не должно. По ПЛИСам здесь советчиков много wink.gif

Сообщение отредактировал Omen_13 - Dec 24 2009, 20:04
Причина редактирования: Нарушение правил п.3.4
Go to the top of the page
 
+Quote Post
KIM
сообщение Dec 24 2009, 16:35
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 25-10-06
Пользователь №: 21 655



Цитата(guxa @ Dec 24 2009, 09:27) *
Как мне кажется, ПЛИС - это наиболее гибкое решение проблемы, т.к. на нее вы можете завести фактически любые данные. Трудности в передаче на ПК возникнуть не должно. По ПЛИСам здесь советчиков много wink.gif

Это да, можно сделать на плисе, спору нет, но может есть еще варианты, пусть не гибкие, лиж бы работало. Суть вопроса - существует ли программируемый с микроконтроллера или с ПК интерфейс, типа GPIO, только побыстрее.

вот например, читал usb fx2, судя повсему можно на чип usb fx2(cy7с68013) принимать при помощи интерфейса gpif (он вроде как до 48 мегагерц пашет) GPIF там можно прогаммировать под как удобно, ширина шины данных - 8 или 16

Может есть еще какие нибудь предложения?
Go to the top of the page
 
+Quote Post
Andron_
сообщение Dec 24 2009, 16:59
Сообщение #4


.NET developer
***

Группа: Свой
Сообщений: 218
Регистрация: 20-10-07
Из: Новосибирск
Пользователь №: 31 532



че-то подсказывает, что такие скорости можно прокачать через IEEE1394b... или PCI...
Go to the top of the page
 
+Quote Post
Muxa
сообщение Dec 26 2009, 02:52
Сообщение #5


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

Группа: Свой
Сообщений: 159
Регистрация: 8-10-04
Из: Москва
Пользователь №: 818



 реально CY7C68013 позволяет получить около 20Мбайт/сек. здорово облегчает жизнь встроенный 4кбайт буфер, который можно распределять между энд пойнтами. с его помощью можно немного сгладить неравномерность потока. протокол устройства можно попробовать реализовать на CPLD, например, MAX 3000 или MAX II. CPLD освоить довольно просто... для подобной задачи (согласование несложных протоколов) мне понадобилось около недели, а начинал я практически с нуля. осваивал лишь по материалам нашего форума и документации с альтеры. сам же собрал программатор и всё легко отладил. не стоит бояться ПЛИС. ничего сложного в небольших ПЛИС нет. та же схемотехника, только реализована на кристалле. можно схемы рисовать, а можно описывать. для описательного языка имеются готовые шаблоны и интерактивная подсказка. совершенно замечательный отладочный доктор, который предупреждает о типичных ошибках, например желанием получить задержку на вентилях.

кстати, для CPLD MAX II имеется готовое PCI решение, которое продаётся вместе с прототипной платой.
http://www.altera.com/products/devkits/alt...maxii-1270.html
стОит примерно 8000т. р. да вот, прямо сейчас в терре http://www.terraelectronica.ru/catalog_inf...=class_19_4_2_3

KIM, при рассмотрении интерфейса USB имейте ввиду, что в самом протоколе заложена неприятная особенность, не позволяющая нормально работать в условиях синфазных помех. дело в том, что если с оконечного устройства по обоим диф. линиям приходит импульс определённой длительности, то хост, согласно протоколу, может посчитать что оконечное устройство заснуло или отключилось. при этом хост обрывает обмен и снижает ток питания до дежурной величины. для того чтобы возобновить обмен, ендпойнт должен послать команду своего пробуждения. вся эта кутерьма занимает десятки миллисекунд. так что буферизация не поможет.
я на эти грабли уже наступил и продолжаю по ним ходить. поверьте, никакая опторазвязка до конца не решает проблемы. она только снижает частоту сбоев. так что, если ваше устройство питается от другого щитка, USB точно не для вас.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Dec 26 2009, 06:53
Сообщение #6


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(KIM @ Dec 19 2009, 10:40) *
Данные передаются по 8-битной шине с частотой 40 МГц, протокол нестандартный.


Передать еще можно исхитриться, но что будет делать ПК с таким потоком данных? Ведь это же получается 40 МегаБайт в секунду! На диск с такой скоростью не запишешь, и в памяти не сохранишь.
Если плату в PCI-разъем городить, то придется через DMA с ней работать, ведь прерывания на каждый принятый байт ПК не успеет делать. И в протоколе тут некогда разбираться - скоростища-то какая! Выходит, что протокол надо разбирать либо на аппаратном уровне, либо какой-то очень быстрый процессор на линию ставить. Что-то типа тех, что на видеокартах используются.
Go to the top of the page
 
+Quote Post
KIM
сообщение Dec 26 2009, 07:48
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 25-10-06
Пользователь №: 21 655



Цитата(Xenia @ Dec 26 2009, 09:53) *
Передать еще можно исхитриться, но что будет делать ПК с таким потоком данных? Ведь это же получается 40 МегаБайт в секунду! На диск с такой скоростью не запишешь, и в памяти не сохранишь.
Если плату в PCI-разъем городить, то придется через DMA с ней работать, ведь прерывания на каждый принятый байт ПК не успеет делать. И в протоколе тут некогда разбираться - скоростища-то какая! Выходит, что протокол надо разбирать либо на аппаратном уровне, либо какой-то очень быстрый процессор на линию ставить. Что-то типа тех, что на видеокартах используются.


я указывал что данные передаются с небольшими перерывами, то есть среднняя скорость за секунду не 40 Мбайт, а примерно 12- 15 мегабайт, в дальнешем идет запись на диск.

Цитата(Muxa)
реально CY7C68013 позволяет получить около 20Мбайт/сек. здорово облегчает жизнь встроенный 4кбайт буфер, который можно распределять между энд пойнтами. с его помощью можно немного сгладить неравномерность потока. протокол устройства можно попробовать реализовать на CPLD, например, MAX 3000 или MAX II. CPLD освоить довольно просто... для подобной задачи (согласование несложных протоколов) мне понадобилось около недели, а начинал я практически с нуля. осваивал лишь по материалам нашего форума и документации с альтеры. сам же собрал программатор и всё легко отладил. не стоит бояться ПЛИС. ничего сложного в небольших ПЛИС нет. та же схемотехника, только реализована на кристалле. можно схемы рисовать, а можно описывать. для описательного языка имеются готовые шаблоны и интерактивная подсказка. совершенно замечательный отладочный доктор, который предупреждает о типичных ошибках, например желанием получить задержку на вентилях.


Спасибо, совершенно согласен ) Уже начал разбираться. Просто хотелось уже ради интереса узнать, альтернатив ипользованеимя ПЛИС в данном случае никаких? Протокол передачи данных с устройства действительно простейший.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Dec 26 2009, 07:52
Сообщение #8


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(KIM @ Dec 26 2009, 10:28) *
я указывал что данные передаются с небольшими перерывами, то есть среднняя скорость за секунду не 40 Мбайт, а примерно 12-15 мегабайт, в дальнешем идет запись на диск.


При приеме важна пиковая нагрузка, а не средняя. Т.е. здесь более важна продолжительность беспрерывной передачи, чем продолжительность перерыва. Представьте себе, что данные идут непрерывно 1 час, а потом перерыв 1 месяц.
Данные-то у вас хоть стробируются? Если да, то можно поставить 8 SPI-интерфейсов smile.gif, по штуке на каждый бит, а строб завести на общий clock, - и пусть собирают smile.gif.
Go to the top of the page
 
+Quote Post
KIM
сообщение Dec 26 2009, 09:42
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 25-10-06
Пользователь №: 21 655



Цитата(Xenia @ Dec 26 2009, 10:52) *
При приеме важна пиковая нагрузка, а не средняя. Т.е. здесь более важна продолжительность беспрерывной передачи, чем продолжительность перерыва. Представьте себе, что данные идут непрерывно 1 час, а потом перерыв 1 месяц.
Данные-то у вас хоть стробируются? Если да, то можно поставить 8 SPI-интерфейсов smile.gif, по штуке на каждый бит, а строб завести на общий clock, - и пусть собирают smile.gif.


Спасибо за идею.
Срнедняя продолжительность передачи - 1-2 милисекунды )
Данные стробируются. 8 SPI интерфейсов - думаю подойдет ) Попытаюсь сейчас подыскать что нибудь готовенькое
Go to the top of the page
 
+Quote Post

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

 


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


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