Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 415; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.117.57 (0.009 с.) |