|
|
  |
Кто подскажет? |
|
|
|
May 23 2007, 17:52
|
Частый гость
 
Группа: Участник
Сообщений: 147
Регистрация: 20-08-06
Пользователь №: 19 681

|
Приветствую всех знатоков электроники и тех, кто хочет ей овладеть.  Мой вопрос скорей всего не покажется новым и даже в этой ветке я нашёл информацию по нему, но она меня не удовлетворила. Опять же. Я являюсь новичком в освоении ПЛИС. Основная задача состоит в том, что мне надо разработать и создать PCI устройство которое бы имело «промежуточный» характер, то есть принимать информацию с внешних устройств и отправлять её в PC, и наоборот: PC отправляет информацию на внешние платы. Получается - Двухсторонняя связь. Я могу предположить, что для первого проекта это не так уж и сложно. После прочтения нескольких статей и относительно небольшого количества вопросов обсуждавшихся в этой ветке, я пришёл к некому мнению: итак ПЛИС представляет из себя, большое количество логических элементов (помещенный в небольшой корпус), а чтобы создать нужные нам логические входы – нужно запрограммировать нашу ПЛИС-ину. Прошивка там не такая как на МК. Для того чтобы написать прошивку и прошить, надо скачать, например MAX+Plus (ну для этих целей достаточно много программ, более новых и надёжных), так же, для написания прошивки можно использовать четыре способа: графический, символьный, текстовый или диаграммный. После написания прошивки надо провести процесс отладки и если всё OK, то можно прошивать саму ПЛИС-ину. Для того чтобы прошить, одной программы мало, нужен ещё и программатор (переделанный программатор от МК- например AVR). Ну, а в остальном, делается плата, устанавливается на неё сама ПЛИС и обвязка того устройства которое мы (или разработчик) создаем. Это небольшое описание того чего я понял из прочитанных мною статей. Если что-то не так, то пожалуйста, объясните что именно. Что делать дальше? Кроме как поиска информации и её прочтения, я больше нечего не предпринимал. Наверное, надо скачать одну из программ, для проектирования ПЛИС устройств – вот только какую? Я прекрасно понимаю, что каждый из разработчиков использует ту программу, которая ему по душе, но всё же может мы сойдемся в чём-то одном? Дальше следует выбор самой ПЛИС- микросхемы? Тут я даже прокомментировать не могу. Ну, а дальше пойдут вопросы непосредственно самого программирования и создание устройства, но это после скачивания и установки программы.
--------------------
|
|
|
|
|
May 23 2007, 18:02
|

Гуру
     
Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904

|
1. Нужно определиться, какие внешние интерфейсы должны поддерживаться. Их пропускная способность и объемы передаваемых через них данных. Это нужно чтобы определить архитектуру проекта ПЛИС и убедиться в том, что пропускной способности PCI для Вашей задачи будет достаточно. 2. ПЛИС - это действительно набор базовых элементов, который можно сконфигурировать для выполнения требуемой функции. 3. Определиться с производителем ПЛИС, т.к. это будет определять тип используемого ПО для разработки прошивки ПЛИС и тип программатора (кабеля для конфигурирования ПЛИС). 4. Для программирования ПЛИС программатор МК не подойдет. Нужен будет другой программатор. Его придется либо купить (более быстрый и удобный для шины USB), либо собрать самостоятельно (на LPT - более медленный и не такой современный). 5. Определиться с выбором конкретного кристалла, удовлетворяющего требованиям емкости, быстродействия и количеству контактов/ввода вывода. 6. Теперь можно разрабатывать схемотехнику устройства и проектировать прошивку ПЛИС.
Вы задаете слишком общие вопросы. Они должны быть конкретнее.
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
May 23 2007, 18:42
|
Частый гость
 
Группа: Участник
Сообщений: 147
Регистрация: 20-08-06
Пользователь №: 19 681

|
Цитата 1. Нужно определиться, какие внешние интерфейсы должны поддерживаться. Их пропускная способность и объемы передаваемых через них данных. Это нужно чтобы определить архитектуру проекта ПЛИС и убедиться в том, что пропускной способности PCI для Вашей задачи будет достаточно. То есть "внешние интерфейсы" и "пропускной способности PCI"? Цитата 3. Определиться с производителем ПЛИС, т.к. это будет определять тип используемого ПО для разработки прошивки ПЛИС и тип программатора (кабеля для конфигурирования ПЛИС). Я вообщето скланяюсь к "Altera", правда не смогу объяснить почему. Цитата 4. Для программирования ПЛИС программатор МК не подойдет. Нужен будет другой программатор. Его придется либо купить (более быстрый и удобный для шины USB), либо собрать самостоятельно (на LPT - более медленный и не такой современный). Ну вы меня немножко не так поняли. Я имел в виду, что программатор от МК всего лишь похож на программатор от ПЛИС, и от МК можно переделать в программатор от ПЛИС. Сам буду паять. Цитата 5. Определиться с выбором конкретного кристалла, удовлетворяющего требованиям емкости, быстродействия и количеству контактов/ввода вывода. 6. Теперь можно разрабатывать схемотехнику устройства и проектировать прошивку ПЛИС. По этим пунктам я крайне затрудняюсь ответить.
--------------------
|
|
|
|
|
May 24 2007, 00:11
|
Местный
  
Группа: Свой
Сообщений: 496
Регистрация: 14-03-07
Из: In The District
Пользователь №: 26 165

|
Я хочу произвести небольшое сравнение, надеюсь что модеры не сочтут это как переход на личность. Есть пользователь на форуме - RHnd. Человек пришел на форум как знающий что хочет, но не знающий как это осущствить на ПЛИС. Другие месные "зубры" быстро помогли поставить его наноги. Такое впечетление что Вы в аналогичной ситуации, и к Вам подлежат теже самые советы.
Ваш выбор кристалла и всего связанного с ним вращается вокруг Ваших нужд, которые Вы не написали ни в какой степени. Если Вы делаете проект для университета/самообразования, у вас будет конкретный выбор. Если вы делаете промышленное средство, у Вас другой выбор. Если, скажем, Вы делаете data aquisition карту для индустриальных целей, так Вы вобще сможите купить готовую карту и только написать прошивку для ПЛИСа который на ней находится.
Некоторые пользователи говорят что освоенние Alter-ы, и выполнение проектов на Verilog-е дается легчем чем Xilinx и VHDL. Может быть. Если Вы начнете с инетоского варианта Quartus II flow и симулятором типа ModelSim, у Вас будет реальная возможность зделать первые шаги вобще без траты денег. Часто, первый шаг для изучения нового МК это заставить LED на плате моргать. С ПЛИСом тоже самое, только в симуляторе Вы сможите точно проверить Вашу design, написав тестовую программу которая стимулирует её и выявляет её поведение. На сайте Altera есть все для начинающих. Естессно что такое изучение не заменяет requirements definition (вроде ТЗ?), надо в любом случае определить как карта будет собирать данные, через какой интерфайс, что с этими данными надо делать в ПЛИС, какой PCI нужен (их несколько скоростей и напрежений), и что с данными будет делать ПК, и будер ли ПК вобще...
--------------------
In Mozilla, you keep tabs on your browser. In the USSR, your browser keeps tabs on you.
|
|
|
|
|
May 24 2007, 04:36
|

Гуру
     
Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904

|
Цитата(PaulB @ May 23 2007, 22:42)  То есть "внешние интерфейсы" и "пропускной способности PCI"? Вы же сами написали: Цитата мне надо разработать и создать PCI устройство которое бы имело «промежуточный» характер, то есть принимать информацию с внешних устройств и отправлять её в PC, и наоборот И чтобы принимать информацию от внешних устройств Вам неизбежно придется их как-то соединить с разрабатываемым Вами устройством. Соединение выполняется с использованием стандартных (или нестандартных) интерфейсов, т.к. RS-232/485, CAN и др. Цитата Я вообщето скланяюсь к "Altera", правда не смогу объяснить почему. Попробуйте для начала оценить "доставаемость" комплектующих в Вашем регионе. Почитайте форум на тему плюсов и минусов средств разработки отдельных производителей ПЛИС. Это поможет сделать более-менее обоснованный выбор. Цитата Ну вы меня немножко не так поняли. Я имел в виду, что программатор от МК всего лишь похож на программатор от ПЛИС, и от МК можно переделать в программатор от ПЛИС. Сам буду паять. Проще сделать с нуля.  Цитата По этим пунктам я крайне затрудняюсь ответить. Без этого, боюсь, ничего путного может и не получиться.
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
May 26 2007, 19:24
|

Гуру
     
Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904

|
Цитата(PaulB @ May 26 2007, 11:54)  И так. Внешние устройства будут иметь интерфейс – I2C ("Inter-Integrated Circuit"). И я предположу, что для этого интерфейса нужна обвязка, например микросхемы PCF8583, PCF8574 и т.д. Еще этот интерфейс различается по классам: "Master"- и "Slave" – устройство. "Master"- абонент может быть достаточно легко реализован чисто программными средствами, а "Slave"- устройства требует аппаратной поддержки, кроме случая очень низких скоростей обмена. Можно реализовать переключение между этими двумя классами. Уже ближе к делу. Если начать вдаваться в подробности, то при правильном выборе ПЛИС можно обойтись без использования дополнительных ИС, или ограничиться простыми буферными ИС для преобразования уровней сигналов. Если я правильно понимаю, что Ваше устройство должно выполнять сбор данных и быть Master'ом на шине I2C. Master можно реализовать в ПЛИС, это не сложно. Цитата PCI устройство может питаться от 3.3В и 5В. А вот какое напряжение питания выбрать? Может выбрать 5В, так как в случае необходимости можно сделать 3.3В? Если Вы планируете работать со старыми матплатами, то лучше ориентироваться на 5В. 3.3В есть далеко не на всех старых машинах (особенно в корпусах AT, если помните такие). Цитата А вот данные поступаемые через I2C интерфейс, должны каким то образом обрабатываться или могут поступать на прямую, в ПК? Все зависит от Ваших целей. Что это за данные и что можно/нужно с ними делать никто кроме Вас не знает. Нам Вы об этом не говорите, т.е. и посоветовать Вам что-то определенное в этом случае сложно.
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
May 27 2007, 13:05
|
Частый гость
 
Группа: Участник
Сообщений: 147
Регистрация: 20-08-06
Пользователь №: 19 681

|
С интерфейсом (I2C) и питанием (я выбираю 5В) вроде понятно. Цитата Если я правильно понимаю, что Ваше устройство должно выполнять сбор данных и быть Master'ом на шине I2C. Master можно реализовать в ПЛИС, это не сложно. Моё устройство также может быть и Slave. Хотелось бы конечно реализовать переключение между "Master" и "Slave", но главное вообще, чтобы хоть что ни будь, получилось и работало. Данные – да в принципе «любые». Устройство (интерфейсная плата), по сути, будет центральным контроллером (эдаким спинным мозгом), реализующим простейшие (ну для начала хотя бы простейшие) автономные операции. И она же будет являться мостом между всеми устройствами и ПК. Например: одним из устройств подключаемых к интерфейсной плате является, грубо говоря, плата с датчиками. Эта плата уже сама будет конфигурировать данные о датчике, то есть номер (адрес) датчика и то, какие данные он нам сообщает. Получается то, что интерфейсной плате останется просто передать данные в ПК, а там программа, которая уже решит, что с этими данными делать.
--------------------
|
|
|
|
|
May 27 2007, 13:21
|
Местный
  
Группа: Свой
Сообщений: 496
Регистрация: 14-03-07
Из: In The District
Пользователь №: 26 165

|
Цитата(PaulB @ May 27 2007, 09:05)  Моё устройство также может быть и Slave. Хотелось бы конечно реализовать переключение между "Master" и "Slave", но главное вообще, чтобы хоть что ни будь, получилось и работало. Это переключение - предельно просто. Воспользуйтесь ядром процессора встроенным ПЛИС, напремер Microblaze, там есть возможность для каждой I2C передачи выставлят статус ПЛИСа как master или slave. Естессно какое-то из slave'ов тоже должно выставить себя как master, или Вам надо пользоватся multi-master и соответствущим образом выставить Microblaze. Цитата одним из устройств подключаемых к интерфейсной плате является, грубо говоря, плата с датчиками. Эта плата уже сама будет конфигурировать данные о датчике, то есть номер (адрес) датчика и то, какие данные он нам сообщает. Получается то, что интерфейсной плате останется просто передать данные в ПК, а там программа, которая уже решит, что с этими данными делать. Это тоже реально, но вам придется написать driver для ПК в Вашей выбранной OS. Для этого тоже есть ресурсы на форуме.
--------------------
In Mozilla, you keep tabs on your browser. In the USSR, your browser keeps tabs on you.
|
|
|
|
|
May 27 2007, 13:52
|
Частый гость
 
Группа: Участник
Сообщений: 147
Регистрация: 20-08-06
Пользователь №: 19 681

|
Цитата Цитата одним из устройств подключаемых к интерфейсной плате является, грубо говоря, плата с датчиками. Эта плата уже сама будет конфигурировать данные о датчике, то есть номер (адрес) датчика и то, какие данные он нам сообщает. Получается то, что интерфейсной плате останется просто передать данные в ПК, а там программа, которая уже решит, что с этими данными делать. Это тоже реально, но вам придется написать driver для ПК в Вашей выбранной OS. Для этого тоже есть ресурсы на форуме. Я на написание драйвера и рассчитывал, иначе, зачем мне всё это. Все устройства должны управляться программно.
--------------------
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|