|
PCI на MAX II |
|
|
|
Sep 8 2009, 08:32
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 8-09-09
Пользователь №: 52 238

|
Здравствуйте всем! Задача такова: имеется плата с ISA-интерфейсом на которой установлена ПЛИС EPM3128ATC144-10, микросхема ST16C554 (4 UARTa) гальваническая развязка UARTов и RS-422 преобразователи, четыре 8-ми разрядных регистра ввода-вывода для сканирования клавиатуры и управления светодиодами. Решено было превести сие чудо на PCI и поиметь сразу все прелести Plug`n`play а заодно и освоить новое, более дешёвое семейство MAX II. Опыта в использовании PCI нету. В связи с этим есть несколько вопросов: 1. Изучаю спецификации PCI 2.2, PCI 3.0 , книги Гука "Аппаратные интерфейсы ПК" и "PCI system architecture" Tom Shanley and Don Anderson" Что ещё посоветуете почитать? 2. Выбрали ПЛИС - EPM570T144C5. Хватит ли её ресурсов и производительности, если учесть, что новое устройство с точки зрения PCI будет иметь две функции: одна функция - это UARTы, соответственно 4 BARа одна линия прерываний - INTA, другая - ввод-вывод, 1 BAR и ещё одна линия прерываний INTB. Здесь на форуме Boris_TS говорил про проблемы реализации многофункциональных устройств с использованием нескольких прерываний, стоит ли отказаться от использования 2-х функций? 3. А не изобретаем ли мы велосипед? т.е. может посоветуете недорогие микросхемы UART со встроенным PCI-интерфейсом типа MCS9835CV. Не получится ли дешевле, чем связка ПЛИС+ST16C550? 4. Решено сделать так (по опыту ISA), новое устройство будет иметь 5-вольтовую спецификацию разъёма PCI. 5V с шины будет преобразовываться в 3,3V с помощью LM1117DT-3.3 и запитавть ПЛИС. Судя по спецификации на семейство MAX II при 3,3V питании выводы ПЛИС 5-V толерантны. Будет такая схема работать или есть лучшие варианты? 5. Прошивку ПЛИС разрабатываю в графическом редакторе пакета Quartus 8.0 (bdf), может быть есть у кого примеры реализации PCI устройства в таком формате? Я был бы очень признателен. Удастся ли сэкономить ресурсы ПЛИС, если отказаться от использования стандартной PCI-корки. Заранее спасибо всем, кто откликнется!!!
|
|
|
|
|
Sep 8 2009, 08:46
|
Профессионал
    
Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770

|
Цитата(Pavel_ @ Sep 8 2009, 12:32)  2. Выбрали ПЛИС - EPM570T144C5. Хватит ли её ресурсов и производительности, Забавно, вы сначала выбрали устройство, а потом спрашиваете, хватит ли его ресурсов. Конечно же не хватит, неужели этого не видно уже из толщины спецификации PCI? Цитата(Pavel_ @ Sep 8 2009, 12:32)  3. А не изобретаем ли мы велосипед? Изобретаете. Цитата(Pavel_ @ Sep 8 2009, 12:32)  т.е. может посоветуете недорогие микросхемы UART со встроенным PCI-интерфейсом типа MCS9835CV. OXuPCI954. Цитата(Pavel_ @ Sep 8 2009, 12:32)  Не получится ли дешевле, чем связка ПЛИС+ST16C550? Получится, причем в разы. Цитата(Pavel_ @ Sep 8 2009, 12:32)  Судя по спецификации на семейство MAX II при 3,3V питании выводы ПЛИС 5-V толерантны. Будет такая схема работать или есть лучшие варианты? Есть, QS3861 в разрыв линий. Цитата(Pavel_ @ Sep 8 2009, 12:32)  Удастся ли сэкономить ресурсы ПЛИС, если отказаться от использования стандартной PCI-корки. Удастся, но с учетом стоимости труда инженера по деньгам вы проиграете.
|
|
|
|
|
Sep 8 2009, 09:44
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 8-09-09
Пользователь №: 52 238

|
Цитата(DmitryR @ Sep 8 2009, 12:46)  Забавно, вы сначала выбрали устройство, а потом спрашиваете, хватит ли его ресурсов. Конечно же не хватит, неужели этого не видно уже из толщины спецификации PCI?
Изобретаете.
OXuPCI954.
Получится, причем в разы.
Есть, QS3861 в разрыв линий.
Удастся, но с учетом стоимости труда инженера по деньгам вы проиграете. DmitryR, спасибо за быстрый ответ! Я выбрал устройство исходя из примерных соображений и решил посоветваться с опытными людьми. Да, толста спецификация PCI, однако далеко не все функции мне потребуются. Мне нужно: пространство конфигурации для 2-х функций, в которых будут использоваться следующие регистры, приведу адреса: 00h, 04h, 08h, 0ch, 4 BARa( для другой 1 BAR), 3Ch и обработка команд доступа к пространству ввода-вывода и всё! Как Вы считаете сколько ресурсов ПЛИС для этого потребуется? Вот пример реализации доступа к пространству конфигурации PCI, реализованный на EPM3032 http://www.rlocman.ru/shem/schematics.html?di=41202 Обратите внимание как в этом примере подключена запитывается ПЛИС, есть ли необходимость в "QS3861 в разрыв линий" OXuPCI954 - может быть OXmPCI954? Спасибо за инфу, буду изучать. Цена 1111 рэ по данным efind - или есть дешевле?
Сообщение отредактировал Pavel_ - Sep 8 2009, 09:55
|
|
|
|
|
Sep 8 2009, 11:22
|
Профессионал
    
Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770

|
Что касается ресурсов, то PCI mini с OpenCores укладывается в самый маленький Spartan-3. Но это очень урезанное ядро, с одним BAR, с фиксированным размером области etc. Можно предположить, что вам потребуется следующий по емкости, или может даже еще следующий, так как UART тоже что-то занимает. QS3861 ставить придется - современные FPGA 5V не держат. А OXmPCI954 объявлен EOL, но OXu не думаю, что как-то сильно отличается. Скачайте доки, они не требуют NDA на эти чипы.
|
|
|
|
|
Sep 10 2009, 16:48
|
Профессионал
    
Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770

|
Цитата(slog @ Sep 8 2009, 18:29)  EPM570 хватит на немного урезанный PCI. Ещё и место останется. Это вполне возможно, просто слово "немного" каждый понимает по-своему. Как показывает приведенная выше ссылка, можно реализовать PCI и в меньшей CPLD, однако я назвал бы такую реализацию абсолютно минималистичной, а не "немного урезанной". И с учетом того, что задача несколько сложнее, чем зажечь лампочку при транзакции на PCI, да и FIFO при реализации UART не будут лишними - я бы все-таки советовал смотреть скорее на минимальные FPGA, чем на CPLD. Так как если уж брать ПЛИС, то и UART имеет смысл реализовать там, а также потому, что EP3C5 стоит столько же, сколько EPM570.
|
|
|
|
|
Sep 11 2009, 06:16
|
Знающий
   
Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489

|
Я делал в EPM1270 и примерно представляю сколько у меня сильно урезанный PCI занимал. В EPM570 влез бы, но действительно, сейчас я бы не связывался с EPM, нет в них смысла если есть EP3Cх. По цене примерно одинаково но ресурсов гораздо больше. Основа того что я делал взята с этого же форума вот отсюда http://electronix.ru/forum/index.php?showt...ost&p=15250В EPM1270 занимает всего 137 Logic Cells. Но я этот код несколько правил под свою задачу. Работает.
--------------------
В действительности всё не так, как на самом деле.
|
|
|
|
|
Sep 11 2009, 07:54
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Прочитал и удивился... Ей богу... "Вот был у нас паровоз. Хочется поменять, но только чтобы топить углем"... Если у Вас есть 4 потока данных, это значит, что должен быть какой-то протокол сверху. Или какая-то первичная обработка... Так кто же мешает взять быстрый процессор, имеющий встроенный выход на PCI и этим процессором ПРОГРАММНО принимать все эти UART'ы... Ну и конечно у него должны быть еще и "родные" уарты ? Если посмотрите как сделаны платы расширения, то там и найдете такую архитектуру. Ну и если скорости в уартах не сильно велики, то процессор еще и протокол успеет обработать... Процессор будет стоить примерно как ПЛИС или чуть больше, но при этом нижние уровни протокола все-таки чего-то тоже стоят. Трудозатраты на освоение - намного меньше, если для Вас ПЛИС - новая тема...
Дальше - еще одно предложение. Возможно оно покажется не слишком оптимальным, но все же. Берем KSZ8695 - у него 3 шины PCI. Одну используем как слэйв - ее втыкаем в Вашу материнку. Две другие - как мастер. На нее вешанм стандартные чипы "уарт-PCI". Получаем систему обработки. Попутно получаем Ethernet...
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Sep 11 2009, 07:59
|
Знающий
   
Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112

|
Цитата(Kuzmi4 @ Sep 11 2009, 10:27)  А не подскажете, в сторону мастера - это куда смотреть нужно? Ну кроме спецификации конечно  Если на корки мастеров то Для QII 7.2 на PCI Compiler 7.2 Для Max+PlusII на pci_1_3
|
|
|
|
|
Sep 14 2009, 08:44
|
Участник

Группа: Участник
Сообщений: 18
Регистрация: 8-09-09
Пользователь №: 52 238

|
Цитата Прочитал и удивился... Ей богу... "Вот был у нас паровоз. Хочется поменять, но только чтобы топить углем"... Если у Вас есть 4 потока данных, это значит, что должен быть какой-то протокол сверху. Или какая-то первичная обработка... Так кто же мешает взять быстрый процессор, имеющий встроенный выход на PCI и этим процессором ПРОГРАММНО принимать все эти UART'ы... Ну и конечно у него должны быть еще и "родные" уарты ? Если посмотрите как сделаны платы расширения, то там и найдете такую архитектуру. Ну и если скорости в уартах не сильно велики, то процессор еще и протокол успеет обработать... Процессор будет стоить примерно как ПЛИС или чуть больше, но при этом нижние уровни протокола все-таки чего-то тоже стоят. Трудозатраты на освоение - намного меньше, если для Вас ПЛИС - новая тема... Спасибо за ответ, тока, если можно, без издёвок, пожалуйста!  Да, есть "протокол сверху", однако требуется совместимость со старым ISA-устройством, т.е. с имеющимся ПО, написанным под него, так что этот вариант не пойдёт. Да и ПЛИС для нас не новая тема, мы их активно применяем для сопряжения с ISA-шиной. Цитата EPM570 хватит на немного урезанный PCI. Ещё и место останется. Я сделал предварительную сборку проекта под EPM570T - получилось 251 LE это 4 BAR и поддержка пространства ввода-вывода. Без подсчёта паритета. Вот цитата из ссылки, приведённой выше: Цитата Если приглядеться к схеме "microcart", то можно заметить, что карта не ведет подсчета паритета и не производит выдачи сигналов ошибок паритета. Дело в том, что многочисленные эксперименты с шиной PCI на ПЭВМ годов выпуска от 1997 до 2007 и ОС Windows, Linux, QNX показали бесполезность подсчета паритета и выдачи сигналов ошибок паритета. Ни одна из ПЭВМ ни как не реагирует на данные передаваемые по шине PCI с заведомой ошибкой паритета, т.е контроллеры (мосты) шины, установленные на материнских платах, не выставляют регламентированные спецификацией PCI сигналы PERR или SERR. В случае, когда PERR или SERR выставляет карта расширения, то же ни какой реакции не наблюдается. Как Вы относитесь к этому утверждению? Используете ли Вы в своих схемах контроль паритета? Цитата Я делал в EPM1270 и примерно представляю сколько у меня сильно урезанный PCI занимал. В EPM570 влез бы, но действительно, сейчас я бы не связывался с EPM, нет в них смысла если есть EP3Cх. По цене примерно одинаково но ресурсов гораздо больше Я сейчас задам, быть может, ламерский вопрос, но не судите строго. Насколько мне известно FPGA фирмы ALTERA в кое входит и EP3C(CYCLONE3) семейство имеет на борту энергозависимую SRAM память для хранения конфигурации, таким образом при включении питания её необходимо будет каждый раз конфигурировать, каким образом и в какой момент времени Вы организуете это дело? (если PCI-контроллер реализован в EP3C конечно)
Сообщение отредактировал Pavel_ - Sep 14 2009, 08:55
|
|
|
|
|
Sep 14 2009, 09:25
|

Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 3-07-07
Пользователь №: 28 852

|
Цитата(Pavel_ @ Sep 14 2009, 12:44)  Я сейчас задам, быть может, ламерский вопрос, но не судите строго. Насколько мне известно FPGA фирмы ALTERA в кое входит и EP3C(CYCLONE3) семейство имеет на борту энергозависимую SRAM память для хранения конфигурации, таким образом при включении питания её необходимо будет каждый раз конфигурировать, каким образом и в какой момент времени Вы организуете это дело? (если PCI-контроллер реализован в EP3C конечно) Если FPGAшка маленькая (вроде EP3C5), вполне можно обойтись конфигурированием в Active Serial mode, подключив конф. ПЗУ (epcs4), в которой храниться прошивка. Главное чтобы FPGA была бы полностью сконфигурирована раньше, чем сигнал Reset(на шине PCI) станет = 1 (примерно секунда с момента старта ПК). Физически на плате рядом с FPGA будет размещена ПЗУшка в корпусе SOIC8 - вот и всё конфигурирование.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|