Интерфейс LPC


Интерфейс LPC (Low Pin Count – малое число выводов) предназначен для локального подключения устройств, ранее использовавших шину X-Bus или ISA: например, контроллеров НГМД, последовательных и параллельных портов, клавиатуры, аудиокодека, BIOS и т.д. Интерфейс обеспечивает те же циклы обращения, что и ISA: чтение-запись памяти и ввода-вывода, DMA и прямое управление шиной (bus mastering). Устройства могут вырабатывать запросы прерываний. Интерфейс LPC имеет 32-бтную адресацию памяти, что обеспечивает доступ к 4 Гбайт памяти. 16-битная адресация портов обеспечивает доступ ко всему пространству портов. Интерфейс синхронизирован с шиной PCI, но устройства могут вводить произвольное число тактов ожидания. Интерфейс программно прозрачен – как для ISA, не требует каких-либо драйверов.

Контроллер интерфейса LPC является устройством-мостом PCI. По пропускной способности интерфейс практически эквивалентен ISA. При наличии буферов FIFO интерфейс наиболее выгодно использовать в режиме DMA. В этом случае главным потребителем будет LPT-порт – при скорости передачи данных 2 Мбайт/с он занимает 47% полосы интерфейса.

Интерфейс имеет всего 7 обязательных сигналов:

? LAD [3:0] – двунаправленная мультиплексированная шина данных;

? LFRAME# – индикатор начала и конца цикла, управляемый хостом;

? LRESET# – сигнал сброса, тот же, что RST# на шине PCI;

? LCLK – синхронизация (33МГц), тот же сигнал, что и CLK на шине PCI.

Дополнительные сигналы интерфейса LPC:

? LDRQ# – кодированный запрос DMA/Bus master от периферии;

? SERIRQ – линия запросов прерывания (в последовательном коде), используется, если нет стандартных линий запросов IRQ;

? CLKRUN# – сигнал, используемый для указания на остановку шины, требуется только для устройств нуждающихся в DMA/Bus master в системах, способных останавливать шину PCI;

? PME# – событие системы управления потреблением;

? LPCPD# – Power Down, указание от хоста устройствам на подготовку к выключению питания;

? LSMI# – запрос прерывания SMI# для повтора инструкции ввода-вывода.

Сигналы LFRAME# и LAD [3:0] синхронизированы (являются действительными) по фронту LCLK. По шине LAD [3:0] в каждом такте цикла передаются поля элементов протокола. Обобщенная временная диаграмма цикла обмена по LPC приведена на рис.15. Начало каждого цикла хост отмечает сигналом LFRAME#, помещая на шину LAD [3:0] поле START. По сигналу LFRAME# все периферийные устройства должны прекратить управление шиной LAD [3:0], а по коду START они должны декодировать последующие события как цикл шины. В следующем такте хост снимает сигнал LFRAME# и поместит на шину LAD [3:0] код типа цикла CYCTYPE. Сигнал LFRAME# может длиться и более одного такта, но признаком начала цикла (поля START) является последний такт перед снятием сигнала. С помощью сигнала LFRAME# хост может принудительно прервать цикл (например, по ошибке таймаута), выставив соответствующий код.

Загрузка...