Программируемый последовательный интерфейс

В компьютерах при выдаче данных в последовательный интерфейс (COM-порт) и в ряде других узлов применяется программируемый последовательный интерфейс, который реализован в виде большой интегральной микросхемы (БИС) КР580ВВ51 (зарубежные аналоги МC8250, NS16450). Эта БИС представляет собой универсальное программируемое устройство преобразования и передачи данных и обмена информацией в последовательном формате (универсальный синхронно-асинхронный приемопередатчик УСАПП) между микропроцессором и периферийными устройствами. Универсальность БИС заключается в возможности программного изменения форматов передаваемых слов, режима и скорости передачи. Микросхема размещается в пластмассовом корпусе с 48 выводами и потребляет 400 МВт при напряжении питания + 5 В.

Для организации передачи данных в последовательном формате необходимы как минимум две БИС КР580ВВ51 (передающая и приемная). БИС может работать как в режиме передачи, так и приема. Режимы работы интерфейса задаются либо микропроцессором, либо внешним устройством, к шинам данных которого подключена микросхема. Режим задается программно перед началом работы схемы. Функциональное обозначение микросхемы КР580ВВ51 на схемах показано на рисунке 4.9а.

  Программируемый последовательный интерфейс - student2.ru   Программируемый последовательный интерфейс - student2.ru
а) б)
Рисунок 4.9 – Программируемый последовательный интерфейс  

Выводы микросхемы имеют следующее назначение:

D0-D7 – шина данных; RST-сброс; WR-запись; RD-чтение; CS-выбор микросхемы; C/D – управление/данные; RxD – вход приемника; DSR – готовность передатчика терминала (готовность данных Data Set Ready); CTS – готовность приемника терминала (сброс для передачи Clean To Send); TxC – синхронизация передатчика; RxC – синхронизация приемника; SYNDET – вид синхронизации; высокий уровень - признак внутренней синхронизации; для синхронной передачи с внешней синхронизации этот вывод входной, для асинхронной – выходной. TxD – передаваемые данные; RTS – запрос приемника терминала (запрос передачи Request to Send); DTR – запрос передатчика терминала (Data Terminal Raedy).

Устройство может функционировать в асинхронном и синхронном режимах. В асинхронном режиме используется стартстопный метод передачи. Каждое передаваемое слово передатчик дополняет стартовыми (нулевым) и стоповым (единичным) битами, которые используются для синхронизации запуска работы приемника.

В синхронном режиме данные передаются не по одному слову, а целыми массивами. Для синхронизации используется одно или два служебных слова - символы синхронизации. В синхронном режиме передатчик работает непрерывно. При отсутствии данных в линию передаются символы синхронизации.

Один передатчик может работать на несколько приемников. Адресация того или иного приемника осуществляется символами синхронизации. При асинхронном режиме скорость передачи до 19,2 Кбит/с, при синхронном до 115 Кбит/с. Длина символов может изменяться программно от 5 до 8 битов. При длине символа менее восьми бит неиспользуемые биты дополняются нулями. Информация может подаваться с контролем по чет/нечет или без него.

Функционально БИС состоит из блоков приема (БПм, БУПм) и передачи (БПд, БУПд) информации в последовательном коде, буфера данных (БД), блока управления записью-чтением (БУЗЧ) и блока управления модемом (БУМД), соединенных внутренней шиной (рисунок 3.9б). Буферы данных соединяются с микропроцессором через восьмиразрядную двунаправленную шину данных D [0-7]. При наличии единицы на входе CS эти линии находятся в состоянии высокого импеданса. В состав буфера данных входят входной и выходной регистры данных, а также регистр состояния.

Блок передачи обеспечивает преобразование параллельного восьмиразрядного кода в последовательный, добавление бита контроля чет/нечет, и, в случае необходимости, генерацию стартового и стопового битов. Выдача информации в последовательном коде происходит по линии TxD путем сдвига данных в регистре передачи БПд под действием синхроимпульсов выдачи TxC. Принимаемые последовательные данные поступают на вход RxD и синхронизируются импульсами синхронизации, подаваемые на вход RxC. Адресация регистров последовательного интерфейса осуществляется путем соединения вывода C/D с выводом А0.

Для программирования БИС необходимо загрузить несколько управляющих слов, определяющих скорость передачи, длину символа, число стоповых бит, режим работы и условия контроля (чет или нечет). Кроме того, для синхронизации режима требуется определить внешнюю или внутреннюю синхронизацию, а также символ (или два символа) синхронизации.

После программирования интерфейс готов выполнять свои функции. На выводе TxRDY формируется высокий уровень, сигнализирующий о готовности передатчика принять от микропроцессора символ для передачи.

Управляющие слова, определяющие функциональную конфигурацию адаптера, должны загружаться сразу же после операции сброса. Управляющее слово имеет два формата: слово режима и слово приказа. Слово режима задает общие характеристики интерфейса и обязательно загружается первым, так как оно необходимо для управления коммутацией схем устройства. После слова режима загружаются один или два символа SYN, если был определен синхронный режим. SYN2 пропускается, если БИС программируется для работы с одним символом синхронизации. Если же в слове режима определен асинхронный режим, то пропускаются оба символа SYN.

Последним в интерфейс загружается слово приказа, определяющее его конкретное действие в соответствии со словом режима. Для правильной работы интерфейса управляющие слова должны следовать в определенном порядке. Слово режима записывается в адаптер сразу же после сброса устройства, который осуществляется сигналом установки (Reset) или специальным битом в слове приказа. Слово приказа подается за словом режима или после символа синхронизации. Загрузка всех управляющих слов производится командами OUT при следующих значениях управляющих сигналов: C/D = 1; CS = 0; RD = 1; WR = 0.

Слово режима имеет четыре двухбитовых поля и загружается во внутреннийрегистр режима РГРЖ. Первое поле D0 и D1 определяет синхронный или асинхронный режим работы, а в асинхронном режиме содержит множитель 1, 16 или 64, соответствующий коэффициенту деления частоты синхронизации.

Второе поле D2 и D3 задает число бит в коде символа. Третье поле D5 D4 управляет формированием бита паритета. Четвертое поле D7 D6 имеет двоякое значение, в зависимости от режима. В асинхронном режиме определяет число стоповых бит, а в синхронном управляет процессом синхронизации.

Наши рекомендации