Хочу сделать плату для PCI

Привет знатокам! Нужно сделать простенький контроллер на шину PCI, который просто выводит в регистры и вводит данные с многоразрядного порта, без каких- либо прерываний и прямого доступа (BUS Master). Можно ли сделать это на обычной логике, без специальных микросхем? Как он будет программироваться? Где об этом можно почитать (желательно по-русски)? Может есть какой-нибудь пример подобной схемы?

formatting link

Reply to
Vladimir
Loading thread data ...

плюг-енд-плей задолбишься реализовывать. Про юсб подумай, это проще...

Reply to
Roman Dubrov

Нет. Стандарт PCI предусматривает использование только специальных микросхем. Другое дело, что среди этих специальных микросхем может найтись как раз то, что тебе нужно. Например, NM9755/9715/9805/9820.

Вал. Дав.

Reply to
Valentin Davydov

На юсб плюг-енд-плей задолбишься реализовывать.

Вал. Дав.

Reply to
Valentin Davydov

Пpивет !

*** 21 Dec 05 14:52, Valentin Davydov wrote to Roman Dubrov:

VD> Hа юсб плюг-енд-плей задолбишься реализовывать.

Hу вот сделал же человек свое устройство, и даже на не специализированных микросхемах с USB-интерфейсом, а на ширпотребном AT90S2313 с программной реализацией протокола, и PnP получилось. Hа тему этого же устройства (IgorPlug) уже народ и аналоговые джойстики на USB привешивает, так что ничего уж такого страшного. Кстати, и с PCI тоже - делают люди на альтеровских матрицах, хоть вот с PnP там действительно сложнее...

с уважением Владислав

Reply to
Vladislav Baliasov

Да ладно, на юсб куча готовых решений и дешевых микросхем, а на PCI - намного меньше. Я уже молчу про трудозатраты на изготовление "на коленке" PCI-платы по сравнению с припайкой 4х ног юсб-разъема...

Reply to
Roman Dubrov

Wed Dec 21 2005 13:50, Valentin Davydov wrote to Vladimir:

VD> Hет. Стандарт PCI предусматривает использование только специальных VD> микросхем.

Hеверно. Стандарт PCI только входные-выходные характеристики этих микросхем специфицирует. И в частности значительная часть ПЛИС фирмы Altera имеют режим буферов, соответствующий 3,3-вольтовой PCI. Правда, разработка PCI интерфейса на ПЛИС - серьезная работа для серьезного порофессионала. Мы его в нескольких своих разработках сделали, не могу сказать, что это сильно просто. А если нужен весь комплект функций, включая BusMastering - для лбой не слишком массовой разработки лучше применить PLX PCI9054. Своя разработка "всего-всего" дороже обойдется.

VD> Другое дело, что среди этих специальных микросхем может найтись как раз VD> то, что тебе нужно. Hапример, NM9755/9715/9805/9820.

К этим "специальным относится также туева хуча ПЛИС, вся специальность которых

- в возможности поставить буфера в совместимый с PCI по электрическим параметрам режим.

Aleksei Pogorily 2:5020/1504

Reply to
Aleksei Pogorily

Wed Dec 21 2005 13:52, Valentin Davydov wrote to Roman Dubrov:

VD> Hа юсб плюг-енд-плей задолбишься реализовывать.

USB - очень сложный интерфейс. И электрика, и логика. Разработка контроллеров для него - удел крупных фирм. Всем остальным следует пользоваться готовыми.

Aleksei Pogorily 2:5020/1504

Reply to
Aleksei Pogorily

Привет Vladimir!

Wednesday December 21 2005 12:07, Vladimir wrote to All:

V> Привет знатокам! V> Hужно сделать простенький контроллер на шину PCI, который просто V> выводит в регистры и вводит данные с многоразрядного порта, без каких- V> либо прерываний и прямого доступа (BUS Master). Можно ли сделать это V> на обычной логике, без специальных микросхем?

Можно конечно.

Есть легко даказываемая теорема, что абсолютно любая цифровая схема может быть целиком построена на элементах 2И-HЕ. Поэтому если взять мешок 155ЛА3 - то в общем....

(или других, подходящих по быстродействию "ЛА3" :)

V> Как он будет программироваться?

Также как и любой другой - записью в регистры.

V> Где об этом можно почитать (желательно по-русски)?

Описание PCI в инете валяется во многих местах, с русским правда. может быть напряженка.

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link
, ftp://altor.sytes.net

Reply to
Alexander Torres

Hi, Vladimir!

21 Dec 05, Roman Dubrov writes to Vladimir:

RD> плюг-енд-плей задолбишься реализовывать. Про юсб подумай, это проще...

кстати да - нонешние мамки могут не дать CLK на слот, который не ответил на автодетект АКА P&P.

With best wishes - Andrey Khristov

Reply to
Andrey Khristov

Hi, Valentin!

21 Dec 05, Valentin Davydov writes to Roman Dubrov:

VD> Hа юсб плюг-енд-плей задолбишься реализовывать.

один чех не задолбался - взял да и написал сам весь USB Stack. сначала на PIC, а потом на AVR... Кстати, его проект может быть примером, "как самому сделать железку на USB"

With best wishes - Andrey Khristov

Reply to
Andrey Khristov

Пpиветствую, Vladimir!

V> Привет знатокам! V> Hужно сделать простенький контроллер на шину PCI, который просто V> выводит в регистры и вводит данные с многоразрядного порта, без каких- V> либо прерываний и прямого доступа (BUS Master). Можно ли сделать это на V> обычной логике, без специальных микросхем? Если нужно просто и быстро - полностью стандарт PCI реализовывать не надо. Сделать на обычной мелкой CPLD. Хватит 256 ячеек. Может и 32-64-128 хватит, но советую поставить 256 - туда влезет и полноценный PCI, если потом задумаешь сваять по науке. V> Как он будет программироваться? CPLD - через простенький jtag адаптер. Если ты про саму плату - то такая примитивная неполноценная реализация программится через прямой доступ к портам. В win9x это прокатит так, в winnt нужно поюзать драйвер типа DirectIO. Как в линухах всяких - хз. Можно ещё под голым досом или вообще без ОС использовать функции PCI BIOS (если таковой биос в твоём компе есть - афаик для большинства x86 материнок с PCI это так). Если сделаешь потом полный PCI - надо будет писать драйвер. V> Где об этом можно почитать (желательно по-русски)? V> Может есть какой-нибудь пример подобной схемы? Почитай fpga4fun.com - там вот такой урезанный вариант есть с сырцами. И вообще почитать полезно. По-русски есть статья про подобную недореализацию. "Самый простой интерфейс для PCI" Влезает в древние PLM 22V10 или 29MA16. Hедостаток - написан ещё на PALASM, который ты вряд ли знаешь :-) Впрочем, переписать на VHDL или Verilog - плёвое дело. Что касается нормальной PCI: Слазай на latticesemi.com в раздел про их плиски. Ранее там свободно валялась PCI в исходниках: Hазывается "Designing a 33MHz, 32-Bit PCI Target Using ispMACH Devices,Reference Design RD1008" Есть вариант PCI интерфейса к флешу, опять же в исходниках: "Flash Memory PCI Add-In Card for Embedded Systems" (от Intel, на XC4000) Схема и разводка платы прилагается. Вот это есть: "Простой PCI-контроллер" Разработан для xc95144xl Shustanov Viktor ( snipped-for-privacy@inbox.ru) Ещё на opencores.org есть - там сам найдёшь. Про стандарт шины: В обязательном порядке отыщи PCIspecRev2.2_full.zip Почти полностью весь стандарт (официальная англ. дока) - тебе хватит (нету PCI-X, cPCI и подобных вещей - их можно найти отдельно). Есть всё - как описание железа (в том числе всяких там мостов и управления питанием), так и софтовая часть - PCI BIOS specification. Есть перевод PCI 2.0 specification на русский - в виде PDF получше и в виде DOC похуже (заметны следы прог-автопереводчиков). Тоже ищи и читай обязательно. Также копайся на сайтах AMD,Intel,Altera,Xilinx,QuickLogic.

Теперь по внешним интерфейсам. Что касается USB - проще поставить что-то типа FT232 или FT245. Хочешь головной боли - делай собственный контроллер. Документации - вагон и малая тележка. Исходники есть на opencores. Можно ещё raw Ethernet сделать - документации и исходников хватает, но всё получается заметно проще, чем PCI и тем более USB. С ieee1394 (он же iLink и FireWire) - связываться не советую. Замороченная, даже по сравнению с USB. Michael Tulupov ...

Reply to
Michael Tulupov

VD> Нет. Стандарт PCI предусматривает использование только специальных микросхем. VD> Другое дело, что среди этих специальных микросхем может найтись как раз то, что VD> тебе нужно. Например, NM9755/9715/9805/9820.

Я думаю, если использовать 5-вольтовую шину, то судя по протоколам обмена с портами можно подключиться, используя обычные TTL регистры, буфера и дешифраторы, я только не знаю, как к этому можно будет обращаться со стороны программы. Как на шину передаются обычные обращения к портам ввода-вывода (in ax,dx; out dx,ax на ассемблере или outport(adr,data)... на С++)?

Reply to
Vladimir

Нельзя. Стандартом предусматривается ёмкостная нагрузка, которую можно обеспечить только если к каждому контакту подключено не более одного вывода микросхемы. А со стандартными получится минимум два, буфера и дешифратора.

mov. PCI отображается на память, а не на io. Ну, и сначала мост(ы) надо запрограммировать.

Вал. Дав.

Reply to
Valentin Davydov

Hi Andrey!

At сpеда, 21 дек. 2005, 22:56 Andrey Khristov wrote to Valentin Davydov:

VD>> Hа юсб плюг-енд-плей задолбишься реализовывать.

AK> один чех не задолбался - взял да и написал сам весь USB Stack. AK> сначала на PIC, а потом на AVR... AK> Кстати, его проект может быть примером, "как самому сделать железку на USB"

Да можно, конечно ... Тем более что исходники доступны. Только слишком обьемная pабота. Такую есть смысл делать только в двух случаях.

  1. Для последующего массового пpоизводства.
  2. Для pазвлечения (хобби, любительство) или обучения. Когда соотношение тpудозатpат и pезультата не игpает сеpьезной pоли.

Во всех остальных случаях есть смысл воспользоваться чем-то готовым.

ЗЫ Чего мы только когда были молодые не делали для pазвлечения ... Я, напpимеp, однажды высказал начальству "А почему у нас такой-то подсистемы нет?" Hа что получил ответ, что надо бы в пpинципе, и что это pабота для "кpепкого дипломника". После чего пpосто из интеpеса, за сколько я сделаю это - сделал. Оказалось, за 10 дней. А один из моих сослуживцев сделал систему обмена данными между домашним компьютеpом "БК-0010" (котоpый он купил) и "Эльбpусом-2", тогдашней супеp-ЭВМ.

Cheers, Aleksei [mailto: snipped-for-privacy@nm.ru]

Reply to
Aleksei Pogorily

Hello, Aleksei Pogorily! You wrote in conference fido7.su.hardw.schemes to Andrey Khristov on Fri, 23 Dec

2005 01:52:52 +0300:

AP> ЗЫ Чего мы только когда были молодые не делали для pазвлечения

AP> А один из моих сослуживцев сделал систему обмена данными между AP> домашним компьютеpом "БК-0010" (котоpый он купил) и AP> "Эльбpусом-2", тогдашней супеp-ЭВМ.

Я еще в студенческие годы подключил электрическую цифропечатающую машинку от какого-то прибора к программируемому микрокалькулятору... Целая плата жесткой логики, еще плата ключей...

dima

formatting link

Reply to
Dmitry Orlov

Доброго времени суток тебе Michael!

22 Дек 05 06:36, Michael Tulupov -> Vladimir:

Один вопрос - можно-ли реализовать PCI плату с фиксированным адресом порта ввода-вывода (всего 16 8ми разрядных портов ввода-вывода). А то есть софт, который никто переписать не в состоянии и есть интерфейсная плата ISA, а вот компы с ISA закончились.... ПО под ДОС.

Будь счастлив(а) Michael... С уважением Wladimir.

Reply to
Wladimir Tchernov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.