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 разряда. Прочитанные или подготовленные для записи данные имеют следующий формат:
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 типа:
M - бит маски прерывания; Для чтения информации передаваемой от контроллера САМАС: Read BADR3 - чтение полученных данных в соответствии с протоколом обмена в младших 16 разрядах, а в старших 16 разрядах - слова состояния приемопередатчика. Форматы младших разрядов ответа описаны в таблицах 2 и 3 в статье "Канал передачи данных" закладки Стандарты, а старших - описаны в таблице, приведеной ниже.
Q - состояние магистрального сигнала Q при выполнении последней операции на магистрали крейта; Read BADR3+0Сh - контрольное чтение данных записанных по PCI шине в адаптер. Соответствует данным D записанным в BADR3. |