![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Микросхемы асинхронных приемопередатчиковСодержание книги
Поиск на нашем сайте
В СОМ-портах преобразование параллельного кода в последовательный для передачи и обратное преобразование при приеме данных выполняют специализированные микросхемы UART (Universal Asynchronous Receiver-Transmitter — универсальный асинхронный приемопередатчик). Эти же микросхемы формируют и обрабатывают управляющие сигналы интерфейса. СОМ-порты IBM PC XT/AT базируются на микросхемах, совместимых на уровне регистров с UART i8250 — 8250/16450/16550А. Это семейство представляет собой усовершенствование начальной модели, направленное на повышение быстродействия, снижение потребляемой мощности и загрузки процессора при интенсивном обмене. Отметим, что: ♦ 8250 имеет ошибки (появление ложных прерываний), учтенные в XT BIOS; ♦ 8250А — ошибки исправлены, но в результате потеряна совместимость с BIOS; эта микросхема работает в некоторых моделях AT, но непригодна для скорости 9600 бит/с; ♦ 8250В — исправлены ошибки 8250 и 8250A, восстановлена ошибка в прерываниях — возвращена совместимость с XT BIOS; работает в AT под DOS (кроме скорости 9600 бит/с). Микросхемы 8250x имеют невысокое быстродействие по обращениям со стороны системной шины. Они не допускают обращения к своим регистрам в смежных шинных циклах процессора — для корректной работы с ними требуется введение программных задержек между обращениями CPU. В компьютерах класса AT применяют микросхемы UART перечисленных ниже модификаций. ♦ 16450 — быстродействующая версия 8250 для AT. Ошибок 8250 и полной совместимости с XT BIOS не имеет. ♦ 16550 — развитие 16450. Может использовать канал DMA для обмена данными. Имеет FIFO-буфер, но некорректность его работы не позволяет им воспользоваться. ♦ 16550А — имеет работающие 16-байтные FIFO-буферы приема и передачи и возможность использования DMA. Именно этот тип UART должен применяться в AT при интенсивных обменах на скоростях 9600 бит/с и выше. Совместимость с этой микросхемой обеспечивает большинство микросхем контроллеров портов ввода-вывода, входящих в современные чипсеты. Микросхемы UART 16550А с программной точки зрения представляют собой набор регистров, доступ к которым определяется адресом (смещением адреса регистра относительно базового адреса порта) и значением бита DLAB (бита 7 регистра LCR). В адресном пространстве микросхема занимает 8 смежных адресов. Список регистров UART 16550A и способы доступа к ним приведены в табл. 2.4. Микросхемы 8250 отличаются отсутствием регистра FCR и всех возможностей FIFO и DMA.
Таблица 2.4. Регистры UART 16550A
¹ Некоторые биты допускают только чтение. Запись в регистр может привести к сбою протокола.
Т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 бит; • 10 — 7 бит; • 11 — 8 бит. MCR — регистр управления модемом. Ниже описано назначение бит регистра MCR. ♦ Биты [7:5]=0 — зарезервированы. ♦ Бит 4 — LME (Loopback Mode Enable) — разрешение режима диагностики: • 0 — нормальный режим; • 1 — режим диагностики (см. ниже). ♦ Бит 3 — IE (Interrupt Enable) — разрешение прерываний с помощью внешнего выхода OUT2; в режиме диагностики поступает на вход MSR.7: • 0 — прерывания запрещены; • 1 — прерывания разрешены. ♦ Бит 2 — OUT1C (OUT1 Bit Control) — управление выходным сигналом 1 (не используется); в режиме диагностики поступает на вход MSR.6. ♦ Бит 1 — RTSC (Request To Send Control) — управление выходом RTS; в режиме диагностики поступает на вход MSR.4: • 0 — активен (-V); • 1 — пассивен (+V). ♦ Бит 0 — DTRC (Data Terminal Ready Control) — управление выходом DTR; в режиме диагностики поступает на вход MSR.5: • 0 — активен (-V); • 1 — пассивен (+V). LSR — регистр состояния линии (точнее, состояния приемопередатчика). Ниже описано назначение бит регистра LSR. ♦ Бит 7 — FIFOE (FIFO Error Status) — ошибка принятых данных в режиме FIFO (буфер содержит хотя бы один символ, принятый с ошибкой формата, паритета или обрывом). В не FIFO-режиме всегда 0. ♦ Бит 6 — TEMPT (Transmitter Empty Status) — регистр передатчика пуст (нет данных для передачи ни в сдвиговом регистре, ни в буферных регистрах THR или FIFO). ♦ Бит 5 — THRE (Transmitter Holding Register Empty) — регистр передатчика готов принять байт для передачи. В режиме FIFO указывает на отсутствие символов в FIFO-буфере передачи. Может являться источником прерывания. ♦ Бит 4 — BD (Break Detected) — индикатор обрыва линии (вход приемника находится в состоянии 0 не менее чем время посылки символа). ♦ Бит 3 — FE (Framing Error) — ошибка кадра (неверный стоп-бит). ♦ Бит 2 — РЕ (Parity Error) — ошибка контрольного бита (паритета или фиксированного). ♦ Бит 1 — ОЕ (Overrun Error) — переполнение (потеря символа). Если прием очередного символа начинается до того, как предыдущий выгружен из сдвигающего регистра в буферный регистр или в регистр FIFO, прежний символ в сдвигающем регистре теряется. ♦ Бит 0 — DR (Receiver Data Ready) — принятые данные готовы (в DHR или FIFO- буфере). Сброс — чтением приемника. Индикаторы ошибок — биты [4:1] — сбрасываются после чтения регистра LSR. В режиме FIFO признаки ошибок хранятся в FIFO-буфере вместе с каждым символом. В регистре они устанавливаются (и вызывают прерывание) в тот момент, когда символ, принятый с ошибкой, находится на вершине FIFO (первый в очереди на считывание). В случае обрыва линии в FIFO заносится только один «обрывной» символ, и UART ждет восстановления и последующего старт-бита.
MSR — регистр состояния модема. Ниже описано назначение бит регистра MSR: ♦ Бит 7 — DCD (Data Carrier Detect) — состояние линии DCD: • 0 — активна (-V); • 1 — пассивна (+V). ♦ Бит 6 — RI (Ring Indicator) — состояние линии RI: • 0 — активна (-V); • 1 — пассивна (+V). ♦ Бит 5 — DSR (Data Set Ready) — состояние линии DSR: • 0 — активна (-V); • 1 — пассивна (+V). ♦ Бит 4 — CTS (Clear To Send) — состояние линии CTS: • 0 — активна (-V); • 1 — пассивна (+V). ♦ Бит 3 — DDCD (Delta Data Carrier Detect) — изменение состояния DCD. ♦ Бит 2 — ТЕRI (Trailing Edge Of Ring Indicator) — спад огибающей RI (окончание звонка). ♦ Бит 1 — DDSR (Delta Data Set Ready) — изменение состояния DSR. ♦ Бит 0 — DCTS (Delta Clear To Send) — изменение состояния CTS. Признаки изменения (биты [3:0]) сбрасываются по чтению регистра. SCR — рабочий регистр (8 бит), на работу UART не влияет, предназначен для временного хранения данных (в 8250 отсутствует). В диагностическом режиме (при LME=1) внутри UART организуется внутренняя «заглушка»: ♦ выход передатчика переводится в состояние логической единицы; ♦ вход приемника отключается; ♦ выход сдвигающего регистра передатчика логически соединяется со входом приемника; ♦ входы DSR, CIS, RI и DCD отключаются от входных линий и внутренне управляются битами DTRC, RISC, OUT1C, IE; ♦ выходы управления модемом переводятся в пассивное состояние (логический ноль). Переданные данные в последовательном виде немедленно принимаются, что позволяет проверять внутренний канал данных порта (включая сдвигающие регистры) и отработку прерываний, а также определять скорость работы UART.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-07-14; просмотров: 426; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.129.23.151 (0.009 с.) |