Михаил Гук - Аппаратные интерфейсы ПК. Энциклопедия
- Название:Аппаратные интерфейсы ПК. Энциклопедия
- Автор:
- Жанр:
- Издательство:Издательский дом «Питер»
- Год:2002
- Город:Санкт-Петербург
- ISBN:5-94723-180-8
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Михаил Гук - Аппаратные интерфейсы ПК. Энциклопедия краткое содержание
Книга посвящена аппаратным интерфейсам, использующимся в современных персональных компьютерах и окружающих их устройствах. В ней подробно рассмотрены универсальные внешние интерфейсы, специализированные интерфейсы периферийных устройств, интерфейсы устройств хранения данных, электронной памяти, шины расширения, аудио и видеоинтерфейсы, беспроводные интерфейсы, коммуникационные интерфейсы, вспомогательные последовательные интерфейсы. Сведения по интерфейсам включают состав, описание сигналов и их расположение на разъемах, временные диаграммы, регистровые модели интерфейсных адаптеров, способы использования в самостоятельно разрабатываемых устройствах. Книга адресована широкому кругу специалистов, связанных с эксплуатацией ПК, а также разработчикам аппаратных средств компьютеризированной аппаратуры и их программной поддержки.
Аппаратные интерфейсы ПК. Энциклопедия - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Микросхемы UART 16550А с программной точки зрения представляют собой набор регистров, доступ к которым определяется адресом (смещением адреса регистра относительно базового адреса порта) и значением бита DLAB
(бита 7 регистра LCR
). В адресном пространстве микросхема занимает 8 смежных адресов. Список регистров UART 16550A и способы доступа к ним приведены в табл. 2.4. Микросхемы 8250 отличаются отсутствием регистра FCR и всех возможностей FIFO и DMA.
Таблица 2.4. Регистры UART 16550A
Доступ | Регистр | Чтение/запись R/W | ||
---|---|---|---|---|
Смещение | DLAB | Имя | Название | |
0h | 0 | THR | Transmit Holding Register | WO |
0h | 0 | RBR | Receiver Buffer Register | RO |
0h | 1 | DLL | Divisor Latch LSB | R/W |
1h | 1 | DIM | Divisor Latch MSB | R/W |
1h | 0 | IER | Interrupt Enable Register | R/W |
2h | x | IIR | Interrupt Identification Register | RO |
2h | x | FOR | FIFO Control Register | WO |
3h | x | LCR | Line Control Register | R/W |
4h | x | MCR | Modem Control Register | R/W |
5h | x | LSR | Line Status Register | R/W¹ |
6h | x | MSR | Modem Status Register | R/W¹ |
7h | x | SCR | Scratch Pad Register | R/W |
¹ Некоторые биты допускают только чтение. Запись в регистр может привести к сбою протокола.
ТHR
— промежуточный регистр данных передатчика (только для записи). Данные, записанные в регистр, будут пересланы в выходной сдвигающий регистр (когда он будет свободен), из которого поступят на выход при наличии разрешающего сигнала CTS
. Бит 0 передается (и принимается) первым. При длине посылки менее 8 бит старшие биты игнорируются.
RBR
— буферный регистр принимаемых данных (только для чтения). Данные, принятые входным сдвигающим регистром, помещаются в регистр RBR
, откуда они могут быть считаны процессором. Если к моменту окончания приема очередного символа предыдущий не был считан из регистра, фиксируется ошибка переполнения. При длине посылки менее 8 бит старшие биты в регистре имеют нулевое значение.
DLL
— регистр младшего байта делителя частоты .
DLM
— регистр старшего байта делителя частоты . Делитель определяется по формуле D=115200/V, где V — скорость передачи, бит/с. Входная частота синхронизации 1,8432 МГц делится на заданный коэффициент, после чего получается 16-кратная частота передачи данных.
IER
— регистр разрешения прерываний . Единичное значение бита разрешает прерывание от соответствующего источника.
Назначение бит регистра IER
:
♦ биты [7:4]=0 — не используются;
♦ бит 3 — Mod_IE
— по изменению состояния модема (любой из линий CTS
, DSR
, RI
, DCD
);
♦ бит 2 — RxL_IЕ
— по обрыву/ошибке линии;
♦ бит 1 — TxD_IE
— по завершении передачи;
♦ бит 0 — RxD_IЕ
— по приему символа (в режиме FIFO — прерывание по тайм-ауту).
IIR
— регистр идентификации прерываний и признака режима FIFO (только для чтения). Для упрощения программного анализа UART выстраивает внутренние запросы прерывания по четырехуровневой системе приоритетов. Порядок приоритетов (по убыванию): состояние линии, прием символа, освобождение регистра передатчика, состояние модема. При возникновении условий прерывания UART указывает на источник с высшим приоритетом до тех пор, пока он не будет сброшен соответствующей операцией. Только после этого будет выставлен запрос с указанием следующего источника. Ниже описано назначение бит регистра IIR.
♦ Биты [7:6] — признак режима FIFO:
• 11 — режим FIFO 16550A;
• 10 — режим FIFO 16550;
• 00 — обычный.
♦ Биты [5:4] — не используются.
♦ Бит 3 — прерывание по тайм-ауту приема в режиме FIFO (в буфере есть символы для считывания).
♦ Биты [2:1] — причина прерывания с наивысшим приоритетом (в обычном, не FIFO-режиме):
• 11 — ошибка/обрыв линии, сброс выполняется чтением регистра состояния линии;
• 10 — принят символ, сброс выполняется чтением данных;
• 01 — передан символ (регистр THR
пуст), сброс выполняется записью данных;
• 00 — изменение состояния модема; сброс выполняется чтением регистра состояния модема.
♦ Бит 0 — признак необслуженного запроса прерывания (1 — нет запроса, 0 — есть запрос).
В режиме FIFO причину прерывания идентифицируют биты [3:1].
♦ 011 — ошибка/обрыв линии. Сброс выполняется чтением регистра состояния линии.
♦ 010 — принят символ. Сброс выполняется чтением регистра данных приемника.
♦ 110 — индикатор тайм-аута (за 4-кратный интервал времени символа не передано и не принято ни одного символа, хотя в буфере имеется, по крайней мере, один). Сброс выполняется чтением регистра данных приемника.
♦ 001 — регистр THR
пуст. Сброс выполняется записью данных.
♦ 000 — изменение состояния модема ( CIS
, DSR
, RI
или DCD
). Сброс выполняется чтением регистра MSR
.
FCR
— регистр управления FIFO (только для записи). Ниже описано назначение бит регистра FCR
:
♦ Биты [7:6] — ITL
(Interrupt Trigger Level) — уровень заполнения FIFO-буфера, при котором вырабатывается прерывание:
• 00 — 1 байт (по умолчанию);
• 01 — 4 байта;
• 10 — 8 байт;
• 11–14 байт.
♦ Биты [5:4] зарезервированы.
♦ Бит 3 — разрешение операций DMA.
♦ Бит 2 — RESETTF
(Reset Transmitter FIFO) — сброс счетчика FIFO-передатчика (записью единицы; сдвигающий регистр не сбрасывается).
♦ Бит 1 — RESETRF
(Reset Receiver FIFO) — сброс счетчика FIFO-приемника (записью единицы; сдвигающий регистр не сбрасывается).
♦ Бит 0 — TRFIFOE
(Transmit And Receive FIFO Enable) — разрешение (единицей) режима FIFO для передатчика и приемника. При смене режима FIFO-буферы автоматически очищаются.
LCR
— регистр управления линией (настройки параметров канала). Ниже описано назначение бит регистра LCR
.
♦ Бит 7 — DLAB
(Divisor Latch Access Bit) — управление доступом к делителю частоты.
♦ Бит 6 — BRCON
(Break Control) — формирование обрыва линии (посылка нулей) при BRCON
=1.
♦ Бит 5 — STICPAR
(Sticky Parity) — принудительное формирование бита паритета:
• 0 — контрольный бит генерируется в соответствии с паритетом выводимого символа;
• 1 — постоянное значение контрольного бита: при EVENPAR
=1 — нулевое, при EVENPAR
=0 — единичное.
♦ Бит 4 — EVENPAR
(Even Parity Select) — выбор типа контроля: 0 — нечетность, 1 — четность.
♦ Бит 3 — PAREN
(Parity Enable) — разрешение контрольного бита:
• 1 — контрольный бит (паритет или постоянный) разрешен;
• 0 — контрольный бит запрещен.
♦ Бит 2 — STOPВ
(Stop Bits) — количество стоп-бит:
• 0–1 стоп-бит;
• 1–2 стоп-бита (для 5-битного кода стоп-бит будет иметь длину 1,5 бит).
♦ Биты [1:0] — SERIALDB
(Serial Data Bits) — количество бит данных:
• 00 — 5 бит;
• 01 — 6 бит;
Читать дальшеИнтервал:
Закладка: