Принципиальная схема исполнителя шины PCI

Печатные платы, программируемая логика, разработка и изготовление аппаратуры

Moderator: Shaos

ls-al
Junior
Posts: 1
Joined: 22 Nov 2014 05:43
Location: 217.118.93.137

Принципиальная схема исполнителя шины PCI

Post by ls-al »

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

Возник интерес в более подробном изучении шины PCI. К имеющемуся описанию данной шины в Гуке и в книгах прочих авторов, захотелось найти хотя бы какую-то функционально-принципиальную схему данной шины.

Нашёл либо только структурную: http://www.konsalter.ru/biblioteka/i1/6_2.htm

Либо с использованием ПЛИС: http://www.platan.ru/shem/pdf/pci.pdf
и http://elm-chan.org/works/pci/report_e.html

Если кто-то знает, где можно схемку найти - я буду огромно благодарен.

Спасибо.
viv-pm
Novelist
Posts: 31
Joined: 17 Mar 2015 21:54

Re: Принципиальная схема исполнителя шины PCI

Post by viv-pm »

ls-al wrote:Доброго времени суток.

Возник интерес в более подробном изучении шины PCI. К имеющемуся описанию данной шины в Гуке и в книгах прочих авторов, захотелось найти хотя бы какую-то функционально-принципиальную схему данной шины.

Нашёл либо только структурную: http://www.konsalter.ru/biblioteka/i1/6_2.htm

Либо с использованием ПЛИС: http://www.platan.ru/shem/pdf/pci.pdf
и http://elm-chan.org/works/pci/report_e.html

Если кто-то знает, где можно схемку найти - я буду огромно благодарен.

Спасибо.
Проблема в том, что шина в принципе создавалась как межмикросхемная, ориентированная
на реализацию как ведущего, так и ведомых устройств в виде одной ИМС (ПЛИС или заказная).
Реализация простенького ведомого на мелкой логике в принципе возможна, но очень проблематична.
дело даже не в высокой тактовой (33 МГц многие серии потянут), а в реализации конфигурационных
регистров, обязательных для корректной работы в PCI-системе.
Даже минимальный набор весьма громоздкий и корректная реализация, например, LPT-SPP порта
на PCI может вылиться в десятки корпусов 1554 или 74АС. Естественно, связываться с этим
любителям не хочется и таких схем, скорее всего, просто нет в природе.
User avatar
JeNNeR
Fanat
Posts: 52
Joined: 18 Nov 2014 09:17
Location: Отсюда

Re: Принципиальная схема исполнителя шины PCI

Post by JeNNeR »

В принципе, там же, где вы плис нашли, там и схема лежит...
http://elm-chan.org/works/pci/pci_io.png
viv-pm
Novelist
Posts: 31
Joined: 17 Mar 2015 21:54

Re: Принципиальная схема исполнителя шины PCI

Post by viv-pm »

JeNNeR wrote:В принципе, там же, где вы плис нашли, там и схема лежит...
http://elm-chan.org/works/pci/pci_io.png
Всё так, но в этой схеме U3 - хоть и слабая, но всё-таки ПЛИС и адрес задаётся переключателями SW1, SW2,
а должен задаваться регистром базового адреса (см. стандарт PCI) ...
Odin P. Morgan
Senior
Posts: 151
Joined: 23 Feb 2015 15:37
Location: OMS

Re: Принципиальная схема исполнителя шины PCI

Post by Odin P. Morgan »

viv-pm wrote:
JeNNeR wrote:В принципе, там же, где вы плис нашли, там и схема лежит...
http://elm-chan.org/works/pci/pci_io.png
Всё так, но в этой схеме U3 - хоть и слабая, но всё-таки ПЛИС и адрес задаётся переключателями SW1, SW2,
а должен задаваться регистром базового адреса (см. стандарт PCI) ...
А по-моему вполне удачное решение, если ещё можно купить ПЛИСины по 65р./шт (такие когда-то видел), то вполне реализуемо.
viv-pm
Novelist
Posts: 31
Joined: 17 Mar 2015 21:54

Re: Принципиальная схема исполнителя шины PCI

Post by viv-pm »

Odin P. Morgan wrote:
viv-pm wrote:
JeNNeR wrote:В принципе, там же, где вы плис нашли, там и схема лежит...
http://elm-chan.org/works/pci/pci_io.png
Всё так, но в этой схеме U3 - хоть и слабая, но всё-таки ПЛИС и адрес задаётся переключателями SW1, SW2,
а должен задаваться регистром базового адреса (см. стандарт PCI) ...
А по-моему вполне удачное решение, если ещё можно купить ПЛИСины по 65р./шт (такие когда-то видел), то вполне реализуемо.
Вопрос ставился, можно ли без ПЛИС? Ответ - можно, но очень трудно.

Вопрос второй - корректно ли реализованы обе схемы на ПЛИС? Ответ - не корректно,
нет обязательных, предусмотренных стандартом вещей. В PCI-системе они не сконфигурируются.
Мало того, что к этим устройствам нормально не обратиться, они ещё могут нарушить работу
других устройств.
Odin P. Morgan
Senior
Posts: 151
Joined: 23 Feb 2015 15:37
Location: OMS

Re: Принципиальная схема исполнителя шины PCI

Post by Odin P. Morgan »

Да, тут не поспоришь. Однако же можно-же что-нить придумать.
viv-pm
Novelist
Posts: 31
Joined: 17 Mar 2015 21:54

Re: Принципиальная схема исполнителя шины PCI

Post by viv-pm »

Odin P. Morgan wrote:Да, тут не поспоришь. Однако же можно-же что-нить придумать.
Тут придумывать не надо, тут просто надо разрабатывать.
Обязательными в PCI являются 5 полей в общей сложности в 4 конфигурациоонных
регистрах, плюс в регистре команд необходимо, как минимум, реализовать флаг
доступа к памяти, и для доступа даже к одному регистру данных - регистр
базового адреса. В общем, на слепыше не спаяешь - надо делать
полноценную печатную плату.
User avatar
Stan
Banned
Posts: 397
Joined: 04 Jan 2013 10:09
Location: 95.24.178.158

Re: Принципиальная схема исполнителя шины PCI

Post by Stan »

viv-pm wrote:В общем, на слепыше не спаяешь - надо делать
полноценную печатную плату.
А как же: http://elm-chan.org/works/pci/report_e.html ?
Image
Image
viv-pm wrote:...тут просто надо разрабатывать.
Обязательными в PCI являются 5 полей в общей сложности в 4 конфигурациоонных
регистрах, плюс в регистре команд необходимо, как минимум, реализовать флаг
доступа к памяти, и для доступа даже к одному регистру данных - регистр
базового адреса.

Если Вы разобрались подробно, написали бы алгоритм по тактам, что и когда и откуда считывают и куда записывают?
Ну и попробовали бы мы сделать аппаратную прикидку этого алгоритма на быстрой логике.

А то тема с PCI-платой всплывает не в первый раз, и меня тоже интересовала вот в этом топике:
viewtopic.php?f=68&t=10720
Но всякий раз это заканчивается безрезультатно... :(
Odin P. Morgan
Senior
Posts: 151
Joined: 23 Feb 2015 15:37
Location: OMS

Re: Принципиальная схема исполнителя шины PCI

Post by Odin P. Morgan »

Вид такого "слепыша" немного пугает: чем он проводки экранировал?
viv-pm
Novelist
Posts: 31
Joined: 17 Mar 2015 21:54

Re: Принципиальная схема исполнителя шины PCI

Post by viv-pm »

Stan wrote: Если Вы разобрались подробно, написали бы алгоритм по тактам, что и когда и откуда считывают и куда записывают?
Ну и попробовали бы мы сделать аппаратную прикидку этого алгоритма на быстрой логике.

А то тема с PCI-платой всплывает не в первый раз, и меня тоже интересовала вот в этом топике:
viewtopic.php?f=68&t=10720
Но всякий раз это заканчивается безрезультатно... :(
Тут дело не в алгоритме, он очень простой, просто действительно нужно много регистров.
Если немного освобожусь, нарисую подробную функциональную схему простейшего устройства
параллельного ввода/вывода для PCI.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Карта PCI - microcart

Post by Lavr »

viv-pm wrote:
Stan wrote:тема с PCI-платой всплывает не в первый раз, и меня тоже интересовала вот в этом топике:
viewtopic.php?f=68&t=10720
Но всякий раз это заканчивается безрезультатно... :(
Если немного освобожусь, нарисую подробную функциональную схему простейшего устройства
параллельного ввода/вывода для PCI
.
Интересно, что-нибуть сдвинулось с этим устройством?
А то я тоже интересовался схемотехникой PCI-плат, но так и не осилил пока это дело.

Но сегодня весьма неожиданно из статьи Программирование драйверов устройств нашел
ссылку на PCI-устройство на одной ПЛИС: Карта PCI - microcart П. Уварова

Image

Где г-н П. Уваров позиционирует своё PCI-устройство на одной ПЛИС так:
...если вам требуется разработать оригинальное PCI-устройство с не очень большой производительностью (кстати, в разы превышающей производительность шины ISA) не спешите хвататься за такие "редкоземельные" и дорогостояшие агрегаты, как PLX или MCCA. Возьмите дешовую ПЛИС в 128/256 макроячеек и сделайте свое устройство по подобию "microcart".
Image

И я вот призадумался, если есть в статье схема того, что реализовано в ПЛИС :

Image

То, может быть, есть возможность повторить это устройство на шустрой дискретной логике?
iLavr
viv-pm
Novelist
Posts: 31
Joined: 17 Mar 2015 21:54

Re: Принципиальная схема исполнителя шины PCI

Post by viv-pm »

Проблема в том, что даже функциональная схема
СООТВЕТСТВУЮЩЕГО СТАНДАРТУ устройства PCI
получается непростой (это ещё не всё)...
You do not have the required permissions to view the files attached to this post.
viv-pm
Novelist
Posts: 31
Joined: 17 Mar 2015 21:54

Re: Принципиальная схема исполнителя шины PCI

Post by viv-pm »

Описание узлов функциональной схемы:

РгВх - входной регистр адреса/данных;

РгВых - выходной регистр данных
(с разрешением выхода, как КФ1554ИР23);

Рг - регистр разнородных управляющих сигналов;

РгУВх - входной регистр управляющих сигналов;

РгУВых - выходной регистр управляющих сигналов
(с разрешением выхода);

Км - коммутатор выходных данных;

ДшКд - дешифратор команды на шине PCI
(чтение/запись памяти или конфигурационных регистров);

ДшФ - дешифратор фазы обмена на шине PCI:
ФС - фаза останова /FRAME1 = 1 /IRDY1 = 1,
ФА - фаза адреса /FRAME1 = 0 /IRDY1 = 1,
ФД - фаза данных /IRDY1 = 0;

РгА - регистр адреса
(с разрешением записи, как КФ1533ИР27);

ДшРг - дешифратор конфигурационных регистров
(Идентификаторов, КоманД, КЛасса, Базового Адреса);

РгБА - регистр базового адреса
(с разрешением записи);

== - узел сравнения текущего и базового адреса;

РгКд - регистр команд (одноразрядный, единственная
команда - разрешение обращения к памяти);

РгДВых - выходной регистр данных вывода
(с разрешением записи);

РгДВх - входной регистр данных ввода.

РгДВых и РгДВх - единственное, что доступно для записи и
чтения в 64-килобайтном пространстве памяти устройства.
You do not have the required permissions to view the files attached to this post.
viv-pm
Novelist
Posts: 31
Joined: 17 Mar 2015 21:54

Re: Принципиальная схема исполнителя шины PCI

Post by viv-pm »

Описание сигналов на функциональной схеме:

AD31..AD0, /CBE3../CBE0, /FRAME, /IRDY, IDSEL,
/DEVSEL, /TRDY, /STOP, CLK, /RST - сигналы шины PCI;

C - общий сигнал синхронизации, все регистры в устройстве
тактируются нарастающим фронтом этого сигнала;

/RES - общий сигнал сброса (необходим лишь для некоторых
регистров устройства);

/FRAME1, /IRDY1, IDSEL1 - задержанные на 1 такт сигналы шины PCI;

ФС, ФА, ФД - сигналы соответственно фазы останова, адреса, данных;

ФС1, ФА1, ФД1 - тоже самое, но задержанные на такт;

РгИ, РгКд, РгКл, РгБА, РгВВ - сигналы обращения
соответственно к регистрам идентификаторов,
команд, класса, базового адреса, ввода/вывода;

ЧтП, ЗпП, ЧтКф, ЗпКф - на шине PCI дешифрирована команда
чтения памяти, записи в память
чтения конфигурационного регистра,
записи в конфигурационный регистр;

ВыбКф - выборка конфигурационных регистров;

ВыбА - выборка адресуемой памяти;

ОБР - сигнал обращения к устройству по шине PCI;

Бт0 - выборка нулевого байта в двойном слове (т.е. AD7..AD0);

РП - разрешеие доступа к пространству памяти устройства;

ЗпК - строб записи в конфигурационый регистр;

ЗпД - строб записи в регистр данных;

Чт - строб чтения.