Искусство схемотехники. Том 3 (Изд.4-е)
Шрифт:
Несмотря на наши иной раз нелестные замечания в адрес периферийных БИС, они в ряде случаев абсолютно незаменимы; достаточно вспомнить дисковые и видеоконтроллеры. Другим широко распространенным типом БИС поддержки является УСАПП, универсальный синхронно-асинхронный приемопередатчик.
Как использовать УСАПП. УСАПП представляет собой микросхему последовательного порта с микропроцессорным управлением, например Zilog 8530 в нашей разработке. Хороший УСАПП обеспечивает программное управление скоростью передачи, многообразие форматов кадра (число бит, контроль четности и проч.), универсальные синхронные режимы работы (по протоколам вроде HDLC и SDLC), выбор метода модуляции (без возвращения к нулю, частотный, манчестерский), восстановление тактовой синхронизации, контроль
УСАПП чаще всего используются для пересылки данных на или из терминалов, модемов, устройств для получения твердых копий (принтеры, плоттеры), а также для непосредственной связи компьютеров в общем во всех случаях, когда основными требованиями являются универсальная совместимость и простота соединения. Обычно по линии с помощью биполярных уровней интерфейса RS-232 последовательно передаются коды ASCII, как это было описано в разд. 9.14 и 10.19. В таких простых системах связи УСАПП эксплуатируется в асинхронном режиме, когда каждый 8-битовый символ заключается между старт- и стоп-битами и передается в виде 10-битовой строки с одной из стандартных скоростей; для такого рода применений микросхема 8530 слишком хороша.
Микросхема 8530 выпускается в корпусе с 40 выводами (рис. 11.25); она взаимодействует с ЦП с помощью набора процессорных интерфейсных линий, а с внешним миром — одновременно и независимо с помощью набора коммуникационных интерфейсных линий.
Рис. 11.25. Сигналы «последовательного коммуникационного контроллера» (УСАПП) Zilog 8530.
Интерфейс с процессором. Для подключения к шине ЦП в микросхеме 8530 предусмотрены 8 двунаправленных линий данных, а для программно-управляемого ввода-вывода обычная пара стробирующих сигналов (RD', WR') и сигнал разрешения микросхемы (СЕ'). Вход А/В определяет, к какому из двух каналов УСАПП осуществляется обращение, а сигнал D/C' показывает, передаются ли данные (высокий уровень D/C') или информация управления/состояния (низкий уровень D/C').
Как и в микросхеме 8536, здесь предусмотрено большое количество регистров управления/состояния, доступ к которым осуществляется парами последовательных пересылок (посмотрите еще раз программные строки инициализации порта 8536). Обычно линии А/В и D/C' попросту подключаются к младшим адресным линиям ЦП, что отображает их на начало адресного пространства, начинающегося с базового адреса УСАПП (определяемого логикой декодирования адреса в устройстве). Наконец, интерфейс с процессором включает четыре линии прерываний.
Коммуникационный интерфейс. Каждый из двух каналов УСАПП (обозначаемых А и В) включает линии передачи и приема последовательных данных (TxD, RxD) вместе с линиями, обеспечивающими квитированное управление модемом (RTS, CTS и т. д.). Соответствующие этим линиям выводы можно обнаружить в разъеме на задней панели компьютера. Кроме этого, предусмотрены менее знакомые тактовые линии, используемые только для синхронной передачи (TRxC, RTxC). Наконец, УСАПП требуется внешний тактовый
сигнал с частотой, в 32 раза превышающей наивысшую скорость передачи.УСАПП не имеет никакого представления о биполярных уровнях интерфейса RS-232, поэтому на всех упомянутых линиях следует использовать драйверы и приемники уровней RS-232. В течение десятилетий в качестве интерфейсных микросхем для уровней RS-232 использовались классические модели биполярных счетверенных драйвера 1488 и приемника 1489; однако для нашего прибора мы выбрали КМОП-микросхему МАХ233 (сдвоенный драйвер/приемник), большим достоинством которой является наличие встроенных удвоителей напряжения и инверторов, что позволяет ограничиться единственным источником питания +5 В. Заметьте, что мы не связывались с линиями управления модемом (RTS, CTS, DSR, DTR); вообще их, как правило, игнорируют, используя вместо аппаратного программное квитирование (Ctrl-S, Ctrl-Q), включаемое в поток данных.
Программное обеспечение. Как уже отмечалось, режимы работы УСАПП устанавливаются командами программы. Байт, посылаемый в УСАПП в командном режиме (сигнал D/C' имеет низкий уровень), интерпретируется УСАПП, как команда управления и устанавливает рабочий режим. Таким образом можно определить вид передачи (синхронная или асинхронная), число стоп-бит, контроль четности или нечетности и т. д. Простые УСАПП вчерашнего дня имели всего один управляющий регистр и программировались легко; хитроумные микросхемы вроде 8530 содержат буквально десятки регистров и для программирования требуют квалификации доктора философии. К сожалению, такова цена, которую вы платите за исключительную гибкость мощных БИС аппаратной поддержки микропроцессора.
Для иллюстрации сказанного рассмотрим последовательность команд инициализации микросхемы 8530 для работы в следующем режиме: асинхронная последовательная передача по каналу А, скорость 1200 бод, 8 бит, без контроля четности, 1 стоп-бит; кроме того, мы запретим прерывания. Полная процедура инициализации длинна и утомительна; мы приведем программу целиком, однако во всей красе рассмотрим лишь один-два важнейших командных байта. В табл. 11.6 перечислены регистры записи и чтения микросхемы 8530, доступ к которым, как мы уже объясняли, осуществляется в два этапа: сначала передается номер регистра в качестве команды (D/C' в низком состоянии), а затем происходит запись в регистр (или чтение из него).
Таблица 11.6. Регистры микросхем Zilog 8530
Регистр · Функция
_____________________
Регистры чтения
RR0 · Состояние буферов приема-передачи и внешнее состояние
RR1 · Состояние условия специального приема
RR2 · Немодифицированный вектор прерывания (канал А); модифицированный вектор (канал В)
RR3 · Биты незавершенных прерываний
RR8 · Буфер приема
RR10 · Общее состояние
RR12 · Счетчик скорости пересылки (младший байт)
RR13 · Счетчик скорости пересылки (старший байт)
RR15 · Информация о прерывании, внешнее/состояние
Регистры записи
WR0 · Инициализация, указатели
WR1 · Прерывания и пересылка, определение режима
WR2 · Вектор прерывания
WR3 · Прием, параметры и управление
WR4 · Общие параметры и режимы
WR5 · Передача, параметры и управление
WR6 · Символы синхронизации или адресное поле SDLC
WR7 · Символ синхронизации или флаг SDLC
WR8 · Буфер передачи
WR9 · Управление и сброс прерывания ведущего
WR10 · Биты общего управления передачи/приема