Полная версия этой страницы:
Контролер CompactPCI на ПЛИС
Karbofoz
Sep 14 2008, 08:29
Хочу сделать плату с разъемом CompactPCI. Порвышись по форуму я для себя окончательно все и не уяснил, поэтому попытаюсь изложить свою идею. надеюсь на ваши коментарии. Моя цель - управлять платой через CPCI.
В качестве контроллера штны использую Spartan3A (3В серию) на 50к вентилей в корпусе TQ144 (хватит ли объема и выводов для контроллера?). Начинка плисины - стандартное коргеновское ядро. Можно ли запитывать спартан напрямую от 3В шины или надо ставить стабилизаторы? хватит ли мне только питания от шины, если на плату будут стоять еще неск ПЛИС? Есть ли схемы по подключения CPCI к плисине, рекомендации куда какие ножки заводить? можно ли напрямую подводить контакты разъема на вход плис? Может кто-то может поделиться схемой и примером разводки платы?
И теперь самое мне непонятное - работа по шине. Если я правильно понял работу по PCI, то после включения питания с матинской платы рассылаются запросы по всем шинам PCI и ожидает ответов на запрос. Если ответа не последовало, то шина считается неактивной и не используется. В случае с плис получается, что МС не успеет загрузиться к моменту прихода запроса и ответа не последует, и плата окажется неопознанной, и работать я с ней не смогу. Как быть в этом случае? оветное слово не должно быть равно FFFF, если я просто шину данных повешу на пулдайны и ответное слово будет 0000 - это поможет? есть другие лекарства?
Ну и еще один вопрос по режимам работу контроллера. предположим, что плата распознана. Можно ли контроллер установить в режим мастера - будет ли конфликт с контроллером на материнской плате или они умеют договариваться?
Victor®
Sep 14 2008, 15:09
Цитата(Karbofoz @ Sep 14 2008, 11:29)

Хочу сделать плату с разъемом CompactPCI. Порвышись по форуму я для себя окончательно все и не уяснил, поэтому попытаюсь изложить свою идею. надеюсь на ваши коментарии. Моя цель - управлять платой через CPCI.
В качестве контроллера штны использую Spartan3A (3В серию) на 50к вентилей в корпусе TQ144 (хватит ли объема и выводов для контроллера?). Начинка плисины - стандартное коргеновское ядро. Можно ли запитывать спартан напрямую от 3В шины или надо ставить стабилизаторы? хватит ли мне только питания от шины, если на плату будут стоять еще неск ПЛИС? Есть ли схемы по подключения CPCI к плисине, рекомендации куда какие ножки заводить? можно ли напрямую подводить контакты разъема на вход плис? Может кто-то может поделиться схемой и примером разводки платы?
И теперь самое мне непонятное - работа по шине. Если я правильно понял работу по PCI, то после включения питания с матинской платы рассылаются запросы по всем шинам PCI и ожидает ответов на запрос. Если ответа не последовало, то шина считается неактивной и не используется. В случае с плис получается, что МС не успеет загрузиться к моменту прихода запроса и ответа не последует, и плата окажется неопознанной, и работать я с ней не смогу. Как быть в этом случае? оветное слово не должно быть равно FFFF, если я просто шину данных повешу на пулдайны и ответное слово будет 0000 - это поможет? есть другие лекарства?
Ну и еще один вопрос по режимам работу контроллера. предположим, что плата распознана. Можно ли контроллер установить в режим мастера - будет ли конфликт с контроллером на материнской плате или они умеют договариваться?
Извините, конечно...
Но Вам еще книжек надо читать и читать....
В первую очередь стандарт PCI
Потом и спросите...
Skywolf
Sep 14 2008, 17:05
Мы совсем недавно решали такую задачу. Сначала тренировались на кошках, в смысле на обычном ПС. В качестве ПЛИС был Cyclone II (общем в 144ногий 8к влезает) с коркой какойто альтеровской если комп PCI 3.3в т можно включать на прямую. а потом поэкт перетащили на cPCI правда всеравно 5в на землю замкнули, круто пыхнуло.....исправили дрелью кусок разъема высверлив.
вобщем читайте....
Karbofoz
Sep 14 2008, 19:27
Цитата(Victor® @ Sep 14 2008, 19:09)

Извините, конечно...
Но Вам еще книжек надо читать и читать....
В первую очередь стандарт PCI
Потом и спросите...
от этого мне легче не стало...
Skywolf
Sep 15 2008, 06:51
Где то на сайте Altera (на FTP вроде) есть пример PCI на Cyclone....
Вам следует пока забыть про cPCI и изучать PCI тк инфы больше,а cPCI это восновном спецификация на разъем.....вобщех чертах
Поройте в разделе "интерфейсы" там были ссылки на русскоязычное описание PCI сам находил пару месяцев назад. вы надеюсь пользуетесь поиском по форуму.
Karbofoz
Sep 15 2008, 10:59
Цитата(Skywolf @ Sep 15 2008, 10:51)

Где то на сайте Altera (на FTP вроде) есть пример PCI на Cyclone....
Вам следует пока забыть про cPCI и изучать PCI тк инфы больше,а cPCI это восновном спецификация на разъем.....вобщех чертах
Поройте в разделе "интерфейсы" там были ссылки на русскоязычное описание PCI сам находил пару месяцев назад. вы надеюсь пользуетесь поиском по форуму.
а в чем вообще разница между комактом и простой PCI. только в разъеме?
Skywolf
Sep 15 2008, 11:08
да ну и еще есть сигналы(необязательные) географического адреса - четыре??? контакта которые дают информации в каком слоте плата установлена....а больше чегото и не вспомнить
Karbofoz
Sep 15 2008, 18:25
C этим вроде потихоньку разбираюсь. но как быть с моментом включения. Если плис не успеет загрузиться к моменту опроса слотов, то материнка посчитает, что никакой платы там нет и работать с ней не смогу. может стоти отсрочить момент включения основной платы после времени загрузки плис. или я что-то опять не дочитал?
Цитата(Karbofoz @ Sep 15 2008, 22:25)

C этим вроде потихоньку разбираюсь. но как быть с моментом включения. Если плис не успеет загрузиться к моменту опроса слотов, то материнка посчитает, что никакой платы там нет и работать с ней не смогу. может стоти отсрочить момент включения основной платы после времени загрузки плис. или я что-то опять не дочитал?
Нет, отсрочить не получится. Но зато в стандарте шины PCI нормировано время, через которое устройства должны перейти в состояние готовности к первичному опросу и конфигурации. Исходя из режима конфигурирования ПЛИС можно оценить время конфигурирования и сделать вывод - будет работать или нет (уложится - не уложится).
Skywolf
Sep 16 2008, 06:55
вобще у большенстав, я так думаю, плис успевает загружаться....только если специально не тормозить
ЗЫ судя по ключам многих материнок они 5вольтовые..... но на самом деле большинство 3в, но подозреваю что толерантны к 5в, так что буферы QS3861 можно не ставить
Syberian
Sep 16 2008, 10:20
CPCI от PCI отличается не глобально, поэтому изложу то, что знаю о разработке устройств на PCI (у меня в планах такое)
В Квартусе под альтеру есть PCI-компилер. Там собирается как бы устройство на ПЛИС, в котором есть входы/выходы интерфейса PCI, и отдельно адресное пространство BAR (их может быть до 6 штук).
При запуске компилера можно указать Vendor ID, "модель" устр-ва и некоторые параметры PCI стыка. К Барам можно подключать адресуемую память, регистры микроконтроллера, I2C и проч.... Да хоть ноги с уровнем!
Но самая главная тема - дрова для компа!
Чтобы особенно не морочиться с операционкой, ядром и прочими прелестями, советую применить Jungo WinDriver. Вставляешь устройство в слот PCI, и программа показывает все его доступные ресурсы, и - главное! - генерирует inf-файл устройства и костяк драйвера в виде проекта под MSVS или BCB или GCC, для виндовс, линух или мака...
Далее все сводится к элементарным процедурам на С++:
- открыть устройство (хэндл)
- инициализировать драйвер
- инициализировать устр-во
- считать/записать из Бара №хх по адресу хх (короче, работать с устр-вом)
- закрыть устройство
При втыкании устройства на другой комп, Винда его определит (выдаст название, которое зашивают в ПЛИС при компиляции PCI), и достаточно подсунуть дискетку с полученными "дровами"
БЫОС в табличке после определения дисков показывает обнаруженные устр-ва на PCI. Но если ПЛИС не успела грузануться - не страшно, т.к. Plug-n-Play операционка все равно заново сканит шину на предмет новых устройств.
Karbofoz
Sep 16 2008, 11:41
Спасибо за информацию, буду пробовать... надеюсь хатабычей не будет )
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.