Data type: Программы
Updated: 15.06.2011 18:52

Система команд PCI-адаптера последовательной связи

Адаптер выполнен на базе PLX PCI9052 PCI Bus Interface chip. Подробную информации о микросхеме можно найти в PCI 9052 Data Book (September 2001), которая доступна на сайте PLX Technology в www.plxtech.com/products/9052/default.htm.

Адаптер последовательной связи выполнен в виде универсального асинхронного приемопередатчика, для обращения к которому в абсолютном адресном пространстве, в котором работает процессор, выделено два подпространства, каждое из которых соответствует зарезервированному блоку адресов устройств ввода-вывода. Для инициализации каждого из адресных пространств ADR0 и ADR1 выделено два базовых регистра BADR1 и BADR3 соответственно. Смещение адреса внутри каждого адресного пространства определяется программным обеспечением PC.

В данной реализации контроллера PCI имеется возможность программного доступа к этим адресным пространствам. Область адресов, связанная с BADR1, используется для PCI конфигурации PCI9052 во время работы, а область адресов, связанная с BADR3, - для управления приемопередатчиком.

BADR1 регистры.

Для управления прерыванием INTA на шине PCI используется только PCI Interrupt Control/Status Register (BADR1+4Ch). Другие регистры из этого адресного пространства могут только читаться. В данном проекте прерывания могут генерироваться только от источника сигнала на LINT1.

Read BADR1+4Ch - чтение по адресу BADR1+4Ch Interrupt Status регистра.

Write BADR1+4Ch, D - запись данных D по адресу BADR1+4Ch в Interrupt Control регистр.

Длина слов для чтения и записи - 32 разряда. Прочитанные или подготовленные для записи данные имеют следующий формат:

D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
- - - - - - - - - - - - - - - -

D15 D14 D13 D12 D11 D10  D9   D8   D7   D6   D5   D4   D3   D2   D1   D0 
0 0 0 0 0 INTCLR 0 INTSEL 0 PCIINT 1 0 0 INT INTPOL INTE

INTE - разрешение прохождения сигнала преривания LINT1 на локальной шине:
0 - запрещено,
1 - разрешено (исходное состояние);

INTPOL - полярность сигнала прерывания:
0 - активный низкий уровень (исходное состояние);
1 - активный высокий уровень;

INT - статус прерывания:
0 - прерывание не активное,
1 - прерывание активное;

PCIINT - разрешение прерывания на PCI шине:
0 - запрещено,
1 - разрешено (исходное состояние);

INTSEL - прерывание по фронту или по уровню:
0 - прерывание по уровню (исходное состояние),
1 - прерывание по фронту;

INTCLR - очистка прерывания INTA на PCI шине:
0 - никаких действий нет,
1 - очистка прерывания INTA на PCI шине.

BADR3 регистры.

Для управления приемопередатчиком используется адресное пространство I/O, определяемое BADR3. Длина слов для чтения и записи также составляет 32 разряда.

Для записи данных:

Write BADR3, D - запись данных D (см. табл., расположенную ниже) по базовому адресу ВАDR3 устанавливает номер крейта, с которым ведется обмен, тип команды передачи, маскирует-демаскирует прерывания, а также инициирует передачу данных в контроллер САМАС. В зависимости от выставленных битов типа команды Т0 и Т1 (см. табл., расположенную ниже) передача данных может быть разделена на 4 типа:

  • тип команды 00 (Т1=0, Т0=0) - с последующей генерацией командного цикла САМАС и выполнением адресной или безадресной команды на магистрали крейта, а также передачей ответа контроллера.Формат передаваемых данных и ответов описаны первыми двумя строками таблицы 1 и таблицей 2 в статье "Канал передачи данных" закладки Стандарты;
  • тип команды 01 (Т1=0, Т0=1) - приводит к передаче запроса дополнительных данных. Формат данных D описан третьей строкой таблицы 1 в статье Канал передачи данных" закладки Стандарты;
  • тип команды 10 (Т1=1, Т0=0) - приводит к передаче в контроллер младших шестнадцати разрядов данных. Формат данных D описан четвертой строкой таблицы 1 в статье "Канал передачи данных" закладки Стандарты;
  • тип команды 11 (Т1=1, Т0=1) - приводит к передаче в контроллер старших восьми разрядов данных. Формат данных D описан пятой строкой таблицы 1 в статье "Канал передачи данных" закладки Стандарты.
  • D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
    0 0 0 0 0 0 0 0 0 0 0 M K1 K0 T1 T0

    D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
    D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

    M - бит маски прерывания;
    К0,К1 - биты номера крейта;
    Т0, Т1 - биты типа команды;
    D0..D15 - биты передаваемых данных.

    Для чтения информации передаваемой от контроллера САМАС:

    Read BADR3 - чтение полученных данных в соответствии с протоколом обмена в младших 16 разрядах, а в старших 16 разрядах - слова состояния приемопередатчика. Форматы младших разрядов ответа описаны в таблицах 2 и 3 в статье "Канал передачи данных" закладки Стандарты, а старших - описаны в таблице, приведеной ниже.

    D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16
    - - - - - - - M K1 K0 ER FR MR MT X Q

    Q - состояние магистрального сигнала Q при выполнении последней операции на магистрали крейта;
    Х - состояние магистрального сигнала Х при выполнении последней операции на магистрали крейта;
    примечание: обновление флагов Х и Q в регистре адаптера происходит только в случае передачи команд 0 и 1 типа при последующем получении ответа, передача команд 2 и 3 типа не обновляет состояние флагов, так как ответ от контроллера на эти команды не предусмотрен протоколом обмена;
    МТ - флаговый бит режима передачи PCI-адаптера;
    МR - флаговый бит режима приема PCI-адаптера;
    FR - флаг приема данных, устанавливается в случае получения от контроллера ответа, предусмотренного протоколом обмена;
    ER - флаг превышения таймаута: ответ не получен в течение контрольного времени - более 6,4 мкс после передачи команды;
    примечание: установка данного флага происходит не только в случае нарушении обмена при передаче команд 0 и 1 типа, но и является закономерным при передаче команд 2 и 3 типа, так как ответ от контроллера на эти команды не предусмотрен протоколом обмена;
    K0, K1 - установленный номер крейта;
    M - бит маски прерывания.

    Read BADR3+0Сh - контрольное чтение данных записанных по PCI шине в адаптер. Соответствует данным D записанным в BADR3.


    Copyright © IEC 1995-2021