Собственная шина аля PCI

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Встал на лапы
Сообщения: 128
Зарегистрирован: Пн дек 01, 2008 00:32:18
Откуда: CCCP

Сообщение tytar »

Добрый день всем. В общем такая ситуация нужно сделать собственную шину данных. Что бы долго не думать, решил повторить шину PCI только сделать ее 8-битную и немного упрощенную.
Линии
1.Clock{1} - сигнал тактирования
2.Frame#{1} - индикатор передачи данных
3.AD{0:7} - шина адрес/дата
4.C/BE#{0:2} - команда/разрешение обращения к байтам.
5.IRDY#{1} - готовность инициатора к обмену данными
6.TRDY#{1} - готовность устройства назначения к обмену данными
7.DEVSEL#{1} - запрос устройства назначения к инициатору на останов текущей транзакции
8.INTR{0:1} - линии запросов прерывания.

А так же линии арбитража

8.LOCK(BUSY)#{1} - используется для установки, обслуживания и освобождения захвата ресурса на PCI
9.REQ#{1} - запрос от PCI-устройства на захват шины
10.IN
11.OUT


Арбитраж шины будет децентрализованый. И тут сразу вопрос по арбитражу. Вот небольшое описание.
При другом типе децентрализованного арбитража используются только три линии независимо от того, сколько устройств имеется в наличии (рис. 3.38). Первая линия - монтажное ИЛИ. Она требуется для запроса шины. Вторая линия называется BUSY и означает занятость. Она запускается текущим задающим устройством шины. Третья линия служит для арбитража шины. Она последовательно соединяет все устройства. Начало цепи связано с источником питания с напряжением 5 В.

Изображение

Арбитраж шины
Рис. 3.38. Децентрализованный арбитраж шины

Когда шина не требуется ни одному из устройств, линия арбитража передает сигнал всем устройствам. Чтобы получить доступ к шине, устройство сначала проверяет, свободна ли шина, и установлен ли сигнал арбитража IN. Если сигнал IN не установлен, устройство не может стать задающим устройством шины. В этом случае оно сбрасывает сигнал OUT. Если сигнал IN установлен, устройство также сбрасывает сигнал OUT, в результате чего следующее устройство не получает сигнала IN и, в свою очередь, сбрасывает сигнал OUT. Следовательно, все следующие по цепи устройства не получают сигнал IN и сбрасывают сигнал OUT. В результате остается только одно устройство, у которого сигнал IN установлен, а сигнал OUT сброшен. Оно становится задающим устройством шины, устанавливает линию BUSY и сигнал OUT, после чего начинает передачу данных.
И собственно вопрос какова роль первой линии - этого монтажного ИЛИ?. Вроде и ясно и нет.

В качестве контроллера шины думаю заюзать атмегу16 у нее как раз хватает ног смотрел в сторону ФПГА, но пока нет времени с этим разбираться.

У кого какие мысли по этому есть?
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15633
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

А зачем собственно сие творить?
Существует ведь куча разнообразных вариантов значительно проще.
Возьми хоша бы простейшие рашения по организации системной шины от I8088/8086...
жевано/пережевано... :sleep:
Да и чего соединять? Ежли самомтоятельные устройства - езернет со стандартными протоколами ноне вроде в моде, или USB или еще чего... Ежли распределенная МК система - SPI/ I2C или же опять простейшие решения от старых добрых ПК на I8080/Z80 (если еще грамотно разводку платки сделать удастся - народ давненько уже навыки построения таких "монстро" посеял). :)
P.S.
Ежли речь о вставке-самоделке к ПК то делались ранее(давным-давноо) для шины ISA на резервное поле адресов вроде 0x0300-0x030F, ежли шклерозь не изменяет... :facepalm:
Реклама
Встал на лапы
Сообщения: 128
Зарегистрирован: Пн дек 01, 2008 00:32:18
Откуда: CCCP

Сообщение tytar »

BOB51 писал(а):А зачем собственно сие творить?
Существует ведь куча разнообразных вариантов значительно проще.
Возьми хоша бы простейшие рашения по организации системной шины от I8088/8086...
жевано/пережевано... :sleep:
Да и чего соединять? Ежли самомтоятельные устройства - езернет со стандартными протоколами ноне вроде в моде, или USB или еще чего... Ежли распределенная МК система - SPI/ I2C или же опять простейшие решения от старых добрых ПК на I8080/Z80 (если еще грамотно разводку платки сделать удастся - народ давненько уже навыки построения таких "монстро" посеял). :)
P.S.
Ежли речь о вставке-самоделке к ПК то делались ранее(давным-давноо) для шины ISA на резервное поле адресов вроде 0x0300-0x030F, ежли шклерозь не изменяет... :facepalm:

Спасибо большое за советы! Да, действительно я забыл про I8080/Z80 и I8088/8086. Для чего это делается? Я вечный студент, а это тема для след. курсоков и диплома. Условие - шина должна спроектирована самостоятельно.


Вам нужно прочитать Правила форума.
http://radiokot.ru/forum/viewtopic.php?f=19&t=6538
Нарушение Правил форума п. 2.7

aen
Друг Кота
Аватара пользователя
Сообщения: 15633
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

У меня "в коробочке" до сих пор лежит самоделка на базе Z80 - работоспособная версия именно шинного варианта данного микроконтроллера. Тоже "тренировочная", далее проверки не пошло - началась эра МК. :) На сегодня пытаюсь в равной мере овладеть "ширпотребом" - MCS51,atmega,attiny,pic10/12/16/18 для их совместно-комбинированного применения. Пока под ассемблером, а дале видно бедеть. 8)
Реклама
Эиком - электронные компоненты и радиодетали
Ответить

Вернуться в «Интеграция с ПК»