- •Ббк 34.9я73
- •Предисловие
- •1. Основные понятия и определения Введение
- •1, 2, 3 – Компоненты иис
- •Общая характеристика интерфейсов
- •Классификация интерфейсов
- •2. Системные интерфейсы
- •Системная магистраль isa
- •Системная магистраль pci
- •Интерфейсы магистрально-модульных мультипроцессорных систем
- •3. Интерфейсы периферийного оборудования
- •Интерфейс ирпр
- •Интерфейс ирпс
- •Интерфейс usb
- •Однопроводной интерфейс can
- •Однопроводной интерфейс 1-Wire
- •Последовательный интерфейс arinc 429
- •4. Интерфейсы программируемых приборов Общее построение интерфейса Hewlett-Packard
- •Интерфейсы системы камак
- •5. Беспроводные интерфейсы Оптический интерфейс с открытым каналом IrDa
- •Интерфейс Bluetooth
- •6. Структуры средств системного обмена
- •Контроллеры ветви
- •Адаптеры
- •Примерный перечень вопросов к экзамену
- •Сокращения
- •Оглавление
Системная магистраль pci
PCI (Peripheral Component Interconnect bus) – шина для подсоединения периферийных устройств, разработана для персональных компьютеров с процессором Pentium от Intel. Интерфейс PCI пришел на смену интерфейсу ISA и его расширениям.
PCI, в отличие от ISA, работает в синхронном режиме, что позволяет обеспечить более высокую производительность при аналогичных параметрах ключевых схем и среды передачи данных. Частота шины от 20 до 33 МГц, теоретически максимальная скорость 132/264 МБ/с для 32/64 бит. Имеет версии с питанием 5 В и 3,3 В и универсальную (с переключением линий +VI/O с 5 на 3,3 В).
Ключами, позволяющими устанавливать в кросс-разъемы (слоты) только платы совместимой версии, являются пропущенные ряды контактов 12, 13 и 50, 51.
Для слота с питанием 5 В ключ расположен на месте контактов 50, 51, для 3,3 В – 12, 13, а для универсального – два ключа: 12, 13 и 50, 51.
32-битный слот заканчивается контактами А62/В62, 64-битный – А94/В94.
Каждый порт интерфейса PCI должен поддерживать автоконфигурирование: распределение адресного пространства, прерываний, каналов прямого доступа к памяти со стороны контроллера интерфейса.
Стандарт PCI определяет для каждого слота конфигурационное пространство размером до 256 восьмибитных регистров, не приписанных ни к пространству памяти, ни к пространству ввода-вывода.
Доступ к ним осуществляется по специальным циклам обмена данными Configuration Read и Configuration Write, вырабатываемым контроллером при обращении процессора к регистрам контроллера PCI, расположенным в его пространстве ввода-вывода.
На PCI определены два основных вида устройств – инициатор, т. е. устройство, получившее от арбитра интерфейса разрешение на ее захват, и устройство назначения (target), с которым инициатор выполняет цикл обмена данными.
С 1999 года действует спецификация 2.2, и в это же время фирма Intel выпустила первый чипсет для персональных компьютеров с поддержкой версии 2.2 – i810. В соответствии с этой спецификацией:
появилась поддержка «горячей» замены PCI-устройств (PCI Hot-Plug). Ввод этой функции позволил добавлять (изымать) PCI-платы без отключения системы. Такая возможность особенно важна для промышленных применений;
добавлена система управления энергопотреблением для устройств на PCI. Механизм управления подстроен под стандарт ACPI для облегчения управления энергопотреблением PCI-устройств со стороны операционной системы;
дополнены и переработаны требования к конструктивной реализации РСI-плат.
Для практического использования новых возможностей PCI расширения стандарта должны быть поддержаны как контроллером PCI, так и самим PCI-устройством.
Сигналы шины PCI
Знак «минус» перед названием сигнала означает, что активный уровень этого сигнала логический «0», обозначение [ХХ–0] означает группу сигналов с номерами от XX до 0.
AD[31–0] – мультиплексированная шина адреса (данных). Адрес передается по сигналу -FRAME, в последующих тактах передаются данные.
-С/ВЕ[3–0] – команда разрешения обращения к байтам. Команда, определяющая тип очередного цикла шины (чтение-запись памяти, ввода-вывода или чтение-запись конфигурации, подтверждение прерывания и др.) задается четырехбитным кодом в фазе адреса по сигналу -FRAME.
-FRAME – индикатор фазы адреса (иначе – передача данных).
-DEVSEL – выбор инициатором устройства назначения.
-IRDY – готовность инициатора к обмену данными.
-TRDY – готовность устройства назначения к обмену данными.
-STOP – запрос устройства к инициатору на останов.
-LOCK – используется для установки, обслуживания и освобождения захвата ресурса на PCI.
-REQ[3–0] – запрос от устройства на захват шины (для слотов 3:0).
-GNT[3–0] – разрешение мастеру на использование шины.
PAR – общий бит четности для линий AD[31–0] и С/ВЕ[3–0].
-ParityER – сигнал об ошибке по четности (от устройства, ее обнаружившего).
-RST – сброс всех устройств.
IDSEL – выбор устройства назначения в циклах считывания и записи-конфигурации.
-SERR – системная ошибка, активизируется любым устройством PCI и вызывает немаскируемое прерывание процессора (NMI).
-REQ64 – запрос на 64-битный обмен.
-ACK64 – подтверждение 64-битного обмена.
-INTRA,B,C,D – линии запросов прерывания, направляются на доступные линии IRQ BIOS компьютера. Запрос по низкому уровню допускает разделяемое использование линий прерывания.
Clock – сигнал синхронизации на тактовой частоте шины.
Test Clock, -TSTRES, Test DO, Test DI – сигналы для тестирования устройств по интерфейсу JTAG (на кросс-плате обычно не задействованы).
TSTMSLCT – перевод в режим тестирования.
Распределение сигналов по контактам разъема показано в таблице 2.2.
Таблица 2.2
Линии сигналов системной магистрали PCI
Ряд В |
Номер |
Ряд А |
|
Ряд В |
Номер |
Ряд А |
–12 В |
1 |
-TSTRES |
-С/ВЕ2 |
33 |
+3,3 В | |
Test Clock |
2 |
+12 В |
GND |
34 |
-FRAME | |
GND |
3 |
TSTMSLCT |
-IRDY |
35 |
GND | |
Test DO |
4 |
Test DI |
+3,3 В |
36 |
-TRDY | |
+5 В |
5 |
+5 В |
-DEVSEL |
37 |
GND | |
+5 В |
6 |
-INTRA |
GND |
38 |
-STOP | |
-INTRB |
7 |
-INTRC |
-Lock |
39 |
+3,3 В | |
-INTRD |
8 |
+5 В |
ParityER |
40 |
SDONE | |
-PRSNT1 |
9 |
Reserved |
+3,3 В |
41 |
-SBOFF | |
Reserved |
10 |
+VI/O |
SysERR |
42 |
GND | |
-PRSNT2 |
11 |
Reserved |
+3,3 В |
43 |
PAR | |
GND/<Ключ> |
12 |
GND/<Ключ> |
-С/ВЕ1 |
44 |
AD15 | |
GND/<Ключ> |
13 |
GND/<Ключ> |
AD14 |
45 |
+3,3 В | |
Reserved |
14 |
Reserved |
GND |
46 |
AD13 | |
GND |
15 |
-RST |
AD12 |
47 |
AD11 | |
Clock |
16 |
+VI/O |
AD10 |
48 |
GND | |
GND |
17 |
-GNT |
GND |
49 |
AD9 | |
-REQ |
18 |
GND |
GND/<Ключ> |
50 |
GND/<Ключ> | |
+VI/O |
19 |
Reserved |
GND/<Ключ> |
51 |
GND/<Ключ> | |
AD31 |
20 |
AD30 |
AD8 |
52 |
-C/BE0 | |
AD29 |
21 |
+3,3 В |
AD7 |
53 |
+3,3 В | |
GND |
22 |
AD28 |
+3,3 В |
54 |
AD6 | |
AD27 |
23 |
AD26 |
AD5 |
55 |
AD4 | |
AD25 |
24 |
GND |
AD3 |
56 |
GND | |
+3,3 В |
25 |
AD24 |
GND |
57 |
AD2 | |
-C/BE3 |
26 |
IDSEL |
AD1 |
58 |
AD0 | |
AD23 |
27 |
+3,3 В |
+VI/O |
59 |
+VI/O | |
GND |
28 |
AD22 |
-ACK64 |
60 |
-REQ64 | |
AD21 |
29 |
AD20 |
+5 В |
61 |
+5 B | |
AD19 |
30 |
GND |
+5 В |
62 |
+5 B | |
+3,3 В |
31 |
AD18 |
Конец 32-битного разъема | |||
AD17 |
32 |
AD16 |
12, 13 – ключ для 3,3 В; 50, 51 – ключ для 5 В.
Продолжение таблицы 2.2
Ряд В |
Номер |
Ряд А |
|
Ряд В |
Номер |
Ряд А |
Reserved |
63 |
GND |
AD47 |
80 |
AD46 | |
GND |
64 |
-С/ВЕ7 |
AD45 |
81 |
GND | |
-С/ВЕ |
65 |
-С/ВЕ5 |
GND |
82 |
AD44 | |
-С/ВЕ |
66 |
+VI/O |
AD43 |
83 |
AD42 | |
GND |
67 |
PAR64 |
AD41 |
84 |
+VI/O | |
AD63 |
68 |
AD62 |
GND |
85 |
AD40 | |
AD61 |
69 |
GND |
AD39 |
86 |
AD38 | |
+VI/O |
70 |
AD60 |
AD37 |
87 |
GND | |
AD59 |
71 |
AD58 |
+VI/O |
88 |
AD36 | |
AD57 |
72 |
GND |
AD35 |
89 |
AD34 | |
GND |
73 |
AD56 |
AD33 |
90 |
GND | |
AD55 |
74 |
AD54 |
GND |
91 |
AD32 | |
AD53 |
75 |
+VI/O |
Reserved |
92 |
Reserved | |
GND |
76 |
AD52 |
Reserved |
93 |
GND | |
AD51 |
77 |
AD50 |
GND |
94 |
Reserved | |
AD49 |
78 |
GND |
Конец 64-битного разъема | |||
+VI/O |
79 |
AD48 |
Циклы шины PCI
Шина управления PCI содержит линии -С/ВЕ[3–0] для передачи системных команд – указаний портам интерфейса работать по определенному алгоритму, называемому циклом шины. Это происходит одновременно с передачей адреса по шине адреса-данных AD[31–0]. Допустимые коды команд, определяющие типы циклов шины, приведены в таблице 2.3.
Таблица 2.3
Допустимые коды команд шины PCI
С/ВЕ |
Команда |
0000 |
Interrupt Acknowledge (подтверждение прерывания) |
0001 |
Special Cycle (специальный цикл) |
0010 |
I/O Read (чтение порта) |
0011 |
I/O Write (запись в порт) |
0100 |
reserved (резервировано) |
0101 |
reserved (резервировано) |
0110 |
Memory Read (чтение памяти) |
0111 |
Memory Write (запись в память) |
1000 |
reserved (резервировано) |
1001 |
reserved (резервировано) |
1010 |
Configuration Read (чтение конфигурации) |
1011 |
Configuration Write (запись конфигурации) |
1100 |
Multiple Memory Read (множественное чтение памяти) |
1101 |
Dual Address Cycle (двойной цикл адреса) |
1110 |
Memory-Read Line (чтение памяти) |
1111 |
Memory Write and Invalidate (запись в память и проверка) |
Подтверждение прерывания (код 0000)
Контроллер прерываний автоматически распознает сигнал INTA и реагирует на него передачей вектора прерывания по шине адреса-данных AD[31–0].
Специальный цикл (код 0001)
AD15–AD0 |
Описание |
0x0000 |
Processor Shutdown (процессор прекращает работу) |
0x0001 |
Processor Halt (останов процессора) |
0x0002 |
х86 Specific Code (специальный код для машин на архитектуре Intel x86) |
0x0003–0xFFFF |
Reserved (зарезервировано) |
Чтение порта (код 0010) и запись в порт (код 0011)
Адреса портов ввода-вывода на шине PCI могут быть 8- или 16-разрядными, хотя собственно стандарт на шину PCI позволяет иметь 32-разрядное адресное пространство. Это вызвано тем, что на компьютерах с архитектурой Intel x86 адрес порта может иметь не более 16 разрядов. В системах, где применяются связанные интерфейсы PCI и ISA, могут быть использованы только 10 разрядов, поддерживаемых ISA.
Адресное пространство конфигурации доступно по адресам портов 0x0CF8 (адрес) и 0x0CFC (данные), причем адрес должен быть записан первым.
Чтение памяти (код 0110 и запись в память (код 0111)
По шине адреса-данных AD[31–0] передается адрес двойным словом (четыре байта). Сигналы AD0 и AD1 декодировать не требуется. Истинность данных определяется сигналами С/ВЕ.
Чтение конфигурации (код 1010)
и запись конфигурационных данных (код 1011)
Эти операции выполняются для конфигурационного пространства PCI-порта. Размер области конфигурации составляет 256 байт, читать (записывать) в ней можно только в 32-разрядной сетке, т. е. двойными словами. Поэтому AD0 и AD1 должны быть установлены в 0, AD2–7 содержат адрес двойного слова, AD8–10 используются для выбора адресуемого устройства, а оставшиеся шины адреса игнорируются.
Множественное чтение памяти (код 1100)
Это расширение обычного цикла чтения памяти. Используется для чтения больших блоков памяти без кэширования.
Двойной цикл адреса (код 1101)
Двойной цикл адреса используется в том случае, если необходимо передать 64-разрядный адрес в версии PCI с 32-разрядной адресной сеткой. В первом цикле передаются четыре младших байта адреса, затем четыре старших байта. Во втором цикле необходимо также передать команду, определяющую тип устройства, чей адрес выставлен (порт ввода-вывода, память и т. д.). Собственно PCI поддерживает 64 разряда адреса для портов ввода-вывода, но в PC на процессорах архитектуры от Intel такое адресное пространство не поддерживается (не позволяет сам процессор).
На рис. 2.3 шина адреса-данных представлена группой сигналов AD. Остальные сигналы являются шиной управления.
Рис. 2.3. Временные диаграммы цикла обмена данными в интерфейсе PCI
Все события интерфейса синхронизованы сигналом тактовой частоты CLK. Инициатор передачи захватывает управление и выставляет низкий уровень сигнала FRAME. Одновременно он выставляет на шине адреса-данных адрес порта назначения, а в группе сигналов С/ВЕ код цикла шины (команду порту назначения). По положительному перепаду CLK все порты должны проанализировать эти данные и опознавший свой адрес и принявший команду порт сообщает об этом выставлением низкого уровня сигнала TRDY. Но это происходит не раньше, чем инициатор подтвердит достоверность адреса и команды низким уровнем сигнала IRDY. На эту процедуру уходит еще один такт.
После передачи адреса и команды инициатор переназначает сигналы AD в шину данных, а сигналы С/ВЕ в младшую часть шины адреса (по ним передаются адреса байтов данных). Переназначение производится выставлением низкого уровня сигнала DEVSEL.
Регулировать интерфейс PCI при помощи осциллографа удобно, если подключить синхронизацию от отрицательного перепада сигнала FRAME.