Описание обязательных сигналов интерфейса PCI


1. AD[31?0] (Address/Data) – мультиплексируемые линии для конвейерной передачи адреса и данных. Сигналы активны по переднему фронту тактового сигнала и на всем его протяжении.

2. C/BE[3?0] (Command/Byte Enable). В начале части цикла обмена передаётся тип обмена или команды.

Таблица 1.1. Циклы системного интерфейса PCI

C/BE[3?0]

Тип команды

0000

Interrupt Acknowledge – ответ на прерывание

0001

Special Cycle — специальный цикл

0010

I/O Read – чтение порта ввода/вывода

0011

I/O Write – запись в порт ввода/вывода

0100

Зарезервировано

0101

Зарезервировано

0110

Memory Read – чтение памяти

0111

Memory Write – запись в память

1000

Зарезервировано

1001

Зарезервировано

1010

Configuration Read – конфигурационное чтение

1011

Configuration Write – конфигурационная запись

1100

Multiple Memory Read – множественное чтение памяти

1101

Dual Address Cycle – двухадресный цикл

1110

Memory-Read Line – чтение строки памяти

1111

Memory Write and Invalidate– запись в память и аннулирование

Интерфейс PCI поддерживает 3 группы адресуемых объектов:

§ адресное пространство ввода/вывода;

§ адресное пространство памяти;

§ конфигурационное адресное пространство.

Во второй части цикла обмена интерфейса PCI передаются разряды разрешения байт, которые определяют позиции байт на интерфейсе по разрядам.

3. PAR (паритет) – бит контроля. Дополняет число единиц в группе AD до нечётного.

4. FRAME# — идентефикация начала цикла системного интерфейса. Как правило, когда он активен, передаются адрес и команда в группе адрес/данные

5. TRDY# (Target Ready) — готовность целевого устройства.

6. IRDY# (Initiator Ready) — готовность инициатора.

На интерфейсе PCI имеется 2 типа устройств: инициатор (активное) и цель (пассивное). Активное устройство управляет обменом по интерфейсу PCI. Пассивное устройство участвует в этом обмене. Как активное, так и пассивное устройство могут принимать или передавать данные.

7. STOP# — Ресурс (устройство) требует завершение цикла обмена преждевременно. Выдаётся пассивным устройством, когда оно не в состоянии завершить обмен.

8. DEVSEL# (Device Select) — сигнал выдается, когда целевое устройство декодировало адрес и претендует на цикл обмена по интерфейсу. То есть, устройство сообщает, что по тому адресу, который был выставлен до начала обмена, может быть осуществлен обмен, потому что этот адрес опознан. Но здесь есть тонкость. Допустим у нас есть 4 разъема интерфейса PCI. Можно вставить в эти разъемы устройства, которые откликаются на один и тот же адрес. Поэтому устройство обрабатывает этот сигнал реально столько, сколько разъемов. Значит, возможно, что несколько устройств заявят о том, что они претендуют на цикл системного интерфейса.

9. IDSEL (Initialization Device Select) – выдается активным устройством при доступе в конфигурационное адресное пространство. Является результатом дешифрации разрядов адреса AD[31?11]. 10 разрядов, которые не подвергаются дешифрации, фактически, не участвуют в формировании этого сигнала. Это означает, что все конфигурационное адресное пространство разбивается на 220 частей, каждая размером по 2048 байт.

10. Сигналы ошибок:

§ PERR# (Parity Error) – сигнал об ошибке паритета. Возникает в фазе передачи данных. Вырабатывается устройством, принимающим данные.

§ SERR# (System Error) – системная ошибка. Вырабатывается контроллером.

11. Сигналы арбитража:

§ REQ# (Request) – сигнал запроса системного интерфейса. Каждый инициатор имеет свой сигнал запроса. Этот сигнал используется для запроса цикла системного интерфейса, так как системный интерфейс – это разделяемое устройство (возможна только одна передача данных в каждый момент времени).

§ GNT# (Grant) — каждый инициатор имеет свой сигнал GNT#, который сигнализирует о том, что интерфейс предоставлен запросившему его активному устройству.

12. RST# (Reset) – сброс (инициализация) всех устройств, подключенных к системному интерфейсу (кнопка RESET).

13. CLK (Clock) – сигнал тактовой частоты. Интерфейс PCI синхронный, поэтому все сигналы воспринимаются (стробируются) при переходе сигнала CLK от низкого уровня к высокому.